diff --git a/.woodpecker.yml b/.woodpecker.yml index d8558694..a73d31b9 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -3,7 +3,7 @@ variables: steps: fetch_git_submodules: - image: node:20-alpine + image: node:22-alpine commands: - apk add git - git submodule init @@ -12,7 +12,7 @@ steps: - event: [pull_request, tag] install: - image: node:20-alpine + image: node:22-alpine commands: - *install_pnpm - pnpm i @@ -20,7 +20,7 @@ steps: - event: pull_request lint: - image: node:20-alpine + image: node:22-alpine commands: - *install_pnpm - pnpm lint @@ -28,7 +28,7 @@ steps: - event: pull_request build_dev: - image: node:20-alpine + image: node:22-alpine commands: - *install_pnpm - pnpm prebuild:dev @@ -38,10 +38,13 @@ steps: publish_release_docker: image: woodpeckerci/plugin-docker-buildx - secrets: [docker_username, docker_password] settings: repo: dessalines/lemmy-ui dockerfile: Dockerfile + username: + from_secret: docker_username + password: + from_secret: docker_password platforms: linux/amd64, linux/arm64 tag: ${CI_COMMIT_TAG} when: @@ -49,10 +52,13 @@ steps: nightly_build: image: woodpeckerci/plugin-docker-buildx - secrets: [docker_username, docker_password] settings: repo: dessalines/lemmy-ui dockerfile: Dockerfile + username: + from_secret: docker_username + password: + from_secret: docker_password platforms: linux/amd64, linux/arm64 tag: dev when: diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..ef763dbe --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3342 @@ +## What's Changed + +- Fix date-fns dynamic import by @matc-pub in [#2716](https://github.com/LemmyNet/lemmy-ui/pull/2716) +- Adding a post title only filter to the search page. by @dessalines in [#2695](https://github.com/LemmyNet/lemmy-ui/pull/2695) +- Fixing woodpecker warnings. by @dessalines in [#2696](https://github.com/LemmyNet/lemmy-ui/pull/2696) +- Separating login and register links for must login alert. by @dessalines in [#2679](https://github.com/LemmyNet/lemmy-ui/pull/2679) +- Dont simplify cross-posts for a community feed. by @dessalines in [#2678](https://github.com/LemmyNet/lemmy-ui/pull/2678) + +## What's Changed in v0.19.6-beta.7 + +- 0.19.6-beta.7 by @dessalines +- Updating translations. by @dessalines +- Fixing peertube and ordinary video embeds. by @dessalines in [#2676](https://github.com/LemmyNet/lemmy-ui/pull/2676) +- Changing sameSite cookie from Strict to Lax. by @dessalines in [#2677](https://github.com/LemmyNet/lemmy-ui/pull/2677) +- Remove show new post notifs setting. by @dessalines in [#2675](https://github.com/LemmyNet/lemmy-ui/pull/2675) +- Fix memory leak around emojis on server render by @makotech222 in [#2674](https://github.com/LemmyNet/lemmy-ui/pull/2674) +- Enable spellcheck for markdown text area by @SleeplessOne1917 in [#2669](https://github.com/LemmyNet/lemmy-ui/pull/2669) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.6-beta.6...v0.19.6-beta.7 + +## What's Changed in v0.19.6-beta.6 + +- 0.19.6-beta.6 by @dessalines +- Pre release dep bump by @SleeplessOne1917 in [#2661](https://github.com/LemmyNet/lemmy-ui/pull/2661) +- Updating translations. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.6-beta.5...v0.19.6-beta.6 + +## What's Changed in v0.19.6-beta.5 + +- 0.19.6-beta.5 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.6-beta.4...v0.19.6-beta.5 + +## What's Changed in v0.19.6-beta.4 + +- 0.19.6-beta.4 by @dessalines +- Add ability to fill magnet link title on post creation. by @dessalines in [#2654](https://github.com/LemmyNet/lemmy-ui/pull/2654) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.6-beta.3...v0.19.6-beta.4 + +## What's Changed in v0.19.6-beta.3 + +- 0.19.6-beta.3 by @dessalines +- Updating translations. by @dessalines +- Registration application view by @SleeplessOne1917 in [#2651](https://github.com/LemmyNet/lemmy-ui/pull/2651) +- Add torrent help by @dessalines in [#2650](https://github.com/LemmyNet/lemmy-ui/pull/2650) +- More moderation history by @dessalines in [#2649](https://github.com/LemmyNet/lemmy-ui/pull/2649) +- Fix tribute related bug by @SleeplessOne1917 in [#2647](https://github.com/LemmyNet/lemmy-ui/pull/2647) +- Update typescript-eslint monorepo to v8 (major) by @dessalines in [#2646](https://github.com/LemmyNet/lemmy-ui/pull/2646) +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.6-beta.2...v0.19.6-beta.3 + +## What's Changed in v0.19.6-beta.2 + +- 0.19.6-beta.2 by @dessalines +- Adding renovate schedule. by @dessalines in [#2644](https://github.com/LemmyNet/lemmy-ui/pull/2644) +- Remove min and max length from password input when using login form by @SleeplessOne1917 in [#2643](https://github.com/LemmyNet/lemmy-ui/pull/2643) +- Remove trending communities card from home. by @dessalines in [#2639](https://github.com/LemmyNet/lemmy-ui/pull/2639) +- Set data-bs-theme based on the presence of "dark" in theme name by @SleeplessOne1917 in [#2638](https://github.com/LemmyNet/lemmy-ui/pull/2638) +- Fixing modlog filtering to allow admins and mods to filter by mod. by @dessalines in [#2629](https://github.com/LemmyNet/lemmy-ui/pull/2629) +- Fix issue from logo bugfix by @SleeplessOne1917 in [#2620](https://github.com/LemmyNet/lemmy-ui/pull/2620) +- Make more post params cross-postable by @SleeplessOne1917 in [#2621](https://github.com/LemmyNet/lemmy-ui/pull/2621) +- Fix wonky comment action icon button alignment by @SleeplessOne1917 in [#2622](https://github.com/LemmyNet/lemmy-ui/pull/2622) +- Prevent broken logo from crashing site by @SleeplessOne1917 in [#2619](https://github.com/LemmyNet/lemmy-ui/pull/2619) +- Add rate limit info message. by @dessalines in [#2563](https://github.com/LemmyNet/lemmy-ui/pull/2563) +- Removing renovate from git cliff by @dessalines in [#2564](https://github.com/LemmyNet/lemmy-ui/pull/2564) +- Update dependency prettier to v3.3.3 by @dessalines in [#2600](https://github.com/LemmyNet/lemmy-ui/pull/2600) +- Fix getQueryString by @matc-pub in [#2558](https://github.com/LemmyNet/lemmy-ui/pull/2558) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.5...v0.19.6-beta.2 + +## What's Changed in v0.19.5 + +- 0.19.5 by @dessalines +- Leave admin confirmation by @SleeplessOne1917 in [#2556](https://github.com/LemmyNet/lemmy-ui/pull/2556) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.5-alpha.3...v0.19.5 + +## What's Changed in v0.19.5-alpha.3 + +- 0.19.5-alpha.3 by @dessalines +- Regenerate themes by @SleeplessOne1917 in [#2554](https://github.com/LemmyNet/lemmy-ui/pull/2554) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.5-alpha.2...v0.19.5-alpha.3 + +## What's Changed in v0.19.5-alpha.2 + +- 0.19.5-alpha.2 by @dessalines +- Fix auto download bug by @SleeplessOne1917 in [#2552](https://github.com/LemmyNet/lemmy-ui/pull/2552) +- Remove ignore scripts by @SleeplessOne1917 in [#2545](https://github.com/LemmyNet/lemmy-ui/pull/2545) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.5-alpha.1...v0.19.5-alpha.2 + +## What's Changed in v0.19.5-alpha.1 + +- 0.19.5-alpha.1 by @dessalines +- Make uploads only viewable to oneself by @SleeplessOne1917 in [#2540](https://github.com/LemmyNet/lemmy-ui/pull/2540) +- Handle CrossPostParams when mounting CreatePost by @matc-pub in [#2521](https://github.com/LemmyNet/lemmy-ui/pull/2521) +- Keep CreatePost mounted when updating URL, fixes focus resets. by @matc-pub in [#2520](https://github.com/LemmyNet/lemmy-ui/pull/2520) +- Move fetchPageTitle into componentWillMount and only call client side. by @matc-pub in [#2519](https://github.com/LemmyNet/lemmy-ui/pull/2519) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4...v0.19.5-alpha.1 + +## What's Changed in v0.19.4 + +- 0.19.4 by @dessalines +- Revert "0.19.4" by @dessalines +- 0.19.4 by @dessalines +- Revert "0.19.4" by @dessalines +- 0.19.4 by @dessalines +- Revert "0.19.4" by @dessalines +- Fix copy title from metadata by @SleeplessOne1917 in [#2518](https://github.com/LemmyNet/lemmy-ui/pull/2518) +- 0.19.4 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.11...v0.19.4 + +## What's Changed in v0.19.4-rc.11 + +- 0.19.4-rc.11 by @dessalines +- Create post query params by @SleeplessOne1917 in [#2515](https://github.com/LemmyNet/lemmy-ui/pull/2515) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.10...v0.19.4-rc.11 + +## What's Changed in v0.19.4-rc.10 + +- 0.19.4-rc.10 by @dessalines +- Upping lemmy-js-client_version. by @dessalines in [#2513](https://github.com/LemmyNet/lemmy-ui/pull/2513) +- Bump translation submodule by @SleeplessOne1917 in [#2511](https://github.com/LemmyNet/lemmy-ui/pull/2511) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.9...v0.19.4-rc.10 + +## What's Changed in v0.19.4-rc.9 + +- 0.19.4-rc.9 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.8...v0.19.4-rc.9 + +## What's Changed in v0.19.4-rc.8 + +- 0.19.4-rc.8 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.7...v0.19.4-rc.8 + +## What's Changed in v0.19.4-rc.7 + +- 0.19.4-rc.7 by @dessalines +- Updating translations. by @dessalines +- Update deps and package manager by @SleeplessOne1917 in [#2505](https://github.com/LemmyNet/lemmy-ui/pull/2505) +- Adding @matc-pub to codeowners. by @dessalines in [#2500](https://github.com/LemmyNet/lemmy-ui/pull/2500) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.6...v0.19.4-rc.7 + +## What's Changed in v0.19.4-rc.6 + +- 0.19.4-rc.6 by @dessalines +- Fix 502 error on initial settings page load. by @dessalines in [#2498](https://github.com/LemmyNet/lemmy-ui/pull/2498) +- Fix some submit button issues by @matc-pub in [#2487](https://github.com/LemmyNet/lemmy-ui/pull/2487) +- Remove renovate schedule. by @dessalines in [#2488](https://github.com/LemmyNet/lemmy-ui/pull/2488) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.5...v0.19.4-rc.6 + +## What's Changed in v0.19.4-rc.5 + +- 0.19.4-rc.5 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.4...v0.19.4-rc.5 + +## What's Changed in v0.19.4-rc.4 + +- 0.19.4-rc.4 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.3...v0.19.4-rc.4 + +## What's Changed in v0.19.4-rc.3 + +- 0.19.4-rc.3 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.2...v0.19.4-rc.3 + +## What's Changed in v0.19.4-rc.2 + +- 0.19.4-rc.2 by @dessalines +- Updating translations. by @dessalines +- Render more while reloading only some resources by @matc-pub in [#2480](https://github.com/LemmyNet/lemmy-ui/pull/2480) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-rc.1...v0.19.4-rc.2 + +## What's Changed in v0.19.4-rc.1 + +- 0.19.4-rc.1 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.19.4-beta.8...v0.19.4-rc.1 + +## What's Changed in 0.19.4-beta.8 + +- 0.19.4-beta.8 by @Nutomic +- Fix video thumbnail override issue by @SleeplessOne1917 in [#2474](https://github.com/LemmyNet/lemmy-ui/pull/2474) +- Use non-deprecated QR library by @SleeplessOne1917 in [#2475](https://github.com/LemmyNet/lemmy-ui/pull/2475) +- Updating translations. by @dessalines +- Fix Language not allowed infinite loading on failed post by @SleeplessOne1917 in [#2457](https://github.com/LemmyNet/lemmy-ui/pull/2457) +- Refresh admin settings on submit by @SleeplessOne1917 in [#2456](https://github.com/LemmyNet/lemmy-ui/pull/2456) +- Fix leap year issue by @SleeplessOne1917 in [#2453](https://github.com/LemmyNet/lemmy-ui/pull/2453) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.7...0.19.4-beta.8 + +## What's Changed in v0.19.4-beta.7 + +- 0.19.4-beta.7 by @dessalines +- Updating translations. by @dessalines +- Fix bug where newly created communities cannot be edited until refresh by @SleeplessOne1917 in [#2451](https://github.com/LemmyNet/lemmy-ui/pull/2451) +- Fix bug where UI breaks trying to send a DM by @SleeplessOne1917 in [#2452](https://github.com/LemmyNet/lemmy-ui/pull/2452) +- Prevent onBlur from appending URL scheme to URLs by @SleeplessOne1917 in [#2449](https://github.com/LemmyNet/lemmy-ui/pull/2449) +- Fix dev dockerfile by @SleeplessOne1917 in [#2444](https://github.com/LemmyNet/lemmy-ui/pull/2444) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.6...v0.19.4-beta.7 + +## What's Changed in v0.19.4-beta.6 + +- 0.19.4-beta.6 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.5...v0.19.4-beta.6 + +## What's Changed in v0.19.4-beta.5 + +- 0.19.4-beta.5 by @dessalines +- Hiding RSS button for saved view on profile page. Fixes #2438 by @dessalines in [#2440](https://github.com/LemmyNet/lemmy-ui/pull/2440) +- Prevent videos and embeds from showing if adult consent not accepted by @SleeplessOne1917 in [#2436](https://github.com/LemmyNet/lemmy-ui/pull/2436) +- Mod action history by @SleeplessOne1917 in [#2437](https://github.com/LemmyNet/lemmy-ui/pull/2437) +- Adding creator_banned_from_community to view votes modal. by @dessalines in [#2435](https://github.com/LemmyNet/lemmy-ui/pull/2435) +- Add fallback image for broken images by @SleeplessOne1917 in [#2434](https://github.com/LemmyNet/lemmy-ui/pull/2434) +- Content warning fixups by @matc-pub in [#2432](https://github.com/LemmyNet/lemmy-ui/pull/2432) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.19.4-beta.4...v0.19.4-beta.5 + +## What's Changed in 0.19.4-beta.4 + +- Using corepack to install pnpm, instead of npm -g by @dessalines in [#2431](https://github.com/LemmyNet/lemmy-ui/pull/2431) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.4...0.19.4-beta.4 + +## What's Changed in v0.19.4-beta.4 + +- 0.19.4-beta.4 by @dessalines +- Adding vote display modes by @dessalines in [#2426](https://github.com/LemmyNet/lemmy-ui/pull/2426) +- Make confirm popup for adult consent by @SleeplessOne1917 in [#2419](https://github.com/LemmyNet/lemmy-ui/pull/2419) +- chore: fix some comments by @TechVest in [#2427](https://github.com/LemmyNet/lemmy-ui/pull/2427) +- Adding image upload views for admins and profiles. by @dessalines in [#2424](https://github.com/LemmyNet/lemmy-ui/pull/2424) +- Use muted display names, and always show instance for non-local. #1975 #2064 by @dessalines in [#2425](https://github.com/LemmyNet/lemmy-ui/pull/2425) +- Only conditionally render most of content action dropdown and workaround for tippy warning by @matc-pub in [#2422](https://github.com/LemmyNet/lemmy-ui/pull/2422) +- Correct mistake from block urls PR by @SleeplessOne1917 in [#2420](https://github.com/LemmyNet/lemmy-ui/pull/2420) +- Add hide post UI by @SleeplessOne1917 in [#2408](https://github.com/LemmyNet/lemmy-ui/pull/2408) +- Use mixins and decorators for scroll restoration and tippy cleanup by @matc-pub in [#2415](https://github.com/LemmyNet/lemmy-ui/pull/2415) +- Fix parent comment linking when not showing context by @snan in [#2417](https://github.com/LemmyNet/lemmy-ui/pull/2417) +- Block urls by @SleeplessOne1917 in [#2409](https://github.com/LemmyNet/lemmy-ui/pull/2409) +- Fix deselecting community/creator filter for search form by @matc-pub in [#2416](https://github.com/LemmyNet/lemmy-ui/pull/2416) + +## New Contributors + +- @TechVest made their first contribution in [#2427](https://github.com/LemmyNet/lemmy-ui/pull/2427) +- @snan made their first contribution in [#2417](https://github.com/LemmyNet/lemmy-ui/pull/2417) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.3...v0.19.4-beta.4 + +## What's Changed in v0.19.4-beta.3 + +- 0.19.4-beta.3 by @dessalines +- fix: add a default margin bottom to ul and ol in a comment field by @richardj in [#2414](https://github.com/LemmyNet/lemmy-ui/pull/2414) +- Fix incorrectly escaped user export JSON by @aeharding in [#2412](https://github.com/LemmyNet/lemmy-ui/pull/2412) +- Adding generate translations to pnpm dev task. by @dessalines in [#2410](https://github.com/LemmyNet/lemmy-ui/pull/2410) +- Adding alt_text and custom_thumbnail to post form. by @dessalines in [#2404](https://github.com/LemmyNet/lemmy-ui/pull/2404) +- Fix tag failure notifs. by @dessalines in [#2403](https://github.com/LemmyNet/lemmy-ui/pull/2403) + +## New Contributors + +- @richardj made their first contribution in [#2414](https://github.com/LemmyNet/lemmy-ui/pull/2414) +- @aeharding made their first contribution in [#2412](https://github.com/LemmyNet/lemmy-ui/pull/2412) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.2...v0.19.4-beta.3 + +## What's Changed in v0.19.4-beta.2 + +- 0.19.4-beta.2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.4-beta.1...v0.19.4-beta.2 + +## What's Changed in v0.19.4-beta.1 + +- 0.19.4-beta.1 by @dessalines +- Updating translations. by @dessalines +- Add matrix account link to create private message form by @SleeplessOne1917 in [#2399](https://github.com/LemmyNet/lemmy-ui/pull/2399) +- Adds a loading skeleton to posts, comments and trending communities by @rodrigo-fm in [#2311](https://github.com/LemmyNet/lemmy-ui/pull/2311) +- Fixing woodpecker. by @dessalines in [#2402](https://github.com/LemmyNet/lemmy-ui/pull/2402) +- Show user email in registration application by @SleeplessOne1917 in [#2400](https://github.com/LemmyNet/lemmy-ui/pull/2400) +- Rework query parsing by @matc-pub in [#2396](https://github.com/LemmyNet/lemmy-ui/pull/2396) +- Notify users that they are banned from a community by @SleeplessOne1917 in [#2397](https://github.com/LemmyNet/lemmy-ui/pull/2397) +- Fix registration pending translation bug by @SleeplessOne1917 in [#2393](https://github.com/LemmyNet/lemmy-ui/pull/2393) +- Community visibility setting by @SleeplessOne1917 in [#2376](https://github.com/LemmyNet/lemmy-ui/pull/2376) +- Do most of the theme handling from the Theme component by @matc-pub in [#2390](https://github.com/LemmyNet/lemmy-ui/pull/2390) +- Lazy loading less common languages for syntax highlighting by @matc-pub in [#2388](https://github.com/LemmyNet/lemmy-ui/pull/2388) +- Lazy load translations and date-fns, server side support for "Browser Default" language by @matc-pub in [#2380](https://github.com/LemmyNet/lemmy-ui/pull/2380) +- Removing alectrocute and jsit from codeowners. by @dessalines in [#2391](https://github.com/LemmyNet/lemmy-ui/pull/2391) +- Adding git-cliff to help generate changelogs. by @dessalines in [#2386](https://github.com/LemmyNet/lemmy-ui/pull/2386) +- On account deletion add 'delete content' checkbox (fixes #2384) by @Nutomic in [#2385](https://github.com/LemmyNet/lemmy-ui/pull/2385) +- Add badge for local subscribers to communities by @SleeplessOne1917 in [#2377](https://github.com/LemmyNet/lemmy-ui/pull/2377) +- Bump dependencies by @SleeplessOne1917 in [#2378](https://github.com/LemmyNet/lemmy-ui/pull/2378) +- Fix links to users and communities not including query in hyperlink by @SleeplessOne1917 in [#2368](https://github.com/LemmyNet/lemmy-ui/pull/2368) +- Make code blocks use correct theme when in dark mode by @SleeplessOne1917 in [#2367](https://github.com/LemmyNet/lemmy-ui/pull/2367) +- Hide WYSIWYG buttons when previewing markdown by @SleeplessOne1917 in [#2366](https://github.com/LemmyNet/lemmy-ui/pull/2366) +- always show fedilinks (issue #2160) by @Die4Ever in [#2344](https://github.com/LemmyNet/lemmy-ui/pull/2344) +- Changing security.txt to use github security advisories page. by @dessalines in [#2334](https://github.com/LemmyNet/lemmy-ui/pull/2334) +- Fix scroll bug when modal closes from browser back button by @SleeplessOne1917 in [#2363](https://github.com/LemmyNet/lemmy-ui/pull/2363) +- Prevent password length error silent truncation by @SleeplessOne1917 in [#2364](https://github.com/LemmyNet/lemmy-ui/pull/2364) +- Show the community name instead of the creator name when appointing mod by @Kradyz in [#2358](https://github.com/LemmyNet/lemmy-ui/pull/2358) +- Update deps, namely sharp by @SleeplessOne1917 in [#2357](https://github.com/LemmyNet/lemmy-ui/pull/2357) +- increase font sizes on all themes by @iatenine in [#2352](https://github.com/LemmyNet/lemmy-ui/pull/2352) +- Move to pnpm by @dessalines in [#2345](https://github.com/LemmyNet/lemmy-ui/pull/2345) + +## New Contributors + +- @rodrigo-fm made their first contribution in [#2311](https://github.com/LemmyNet/lemmy-ui/pull/2311) +- @iatenine made their first contribution in [#2352](https://github.com/LemmyNet/lemmy-ui/pull/2352) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.3...v0.19.4-beta.1 + +## What's Changed in v0.19.3 + +- v0.19.3 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.3-rc.2...v0.19.3 + +## What's Changed in v0.19.3-rc.2 + +- v0.19.3-rc.2 by @dessalines +- Make it more obvious when a community is locked by @SleeplessOne1917 in [#2329](https://github.com/LemmyNet/lemmy-ui/pull/2329) +- Downgrade sharp. by @dessalines in [#2337](https://github.com/LemmyNet/lemmy-ui/pull/2337) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.3-rc.1...v0.19.3-rc.2 + +## What's Changed in v0.19.3-rc.1 + +- v0.19.3-rc.1 by @dessalines +- Upgrading deps. by @dessalines in [#2336](https://github.com/LemmyNet/lemmy-ui/pull/2336) +- Updating translations. by @dessalines +- Revert "Fix captcha cache control bug" by @dessalines in [#2335](https://github.com/LemmyNet/lemmy-ui/pull/2335) +- Improve TOTP modal by @SleeplessOne1917 in [#2327](https://github.com/LemmyNet/lemmy-ui/pull/2327) +- Make a separate post markdown field character limit. by @dessalines in [#2331](https://github.com/LemmyNet/lemmy-ui/pull/2331) +- Fix fedi link regression by @SleeplessOne1917 in [#2324](https://github.com/LemmyNet/lemmy-ui/pull/2324) +- Fix captcha cache control bug by @SleeplessOne1917 in [#2326](https://github.com/LemmyNet/lemmy-ui/pull/2326) +- Add logic to filter view for denied registration applications by @jmcharter in [#2322](https://github.com/LemmyNet/lemmy-ui/pull/2322) +- Update Dockerfile to Node 21 by @kroese in [#2315](https://github.com/LemmyNet/lemmy-ui/pull/2315) +- Clean up Dockerfile by @ubergeek77 in [#2314](https://github.com/LemmyNet/lemmy-ui/pull/2314) + +## New Contributors + +- @jmcharter made their first contribution in [#2322](https://github.com/LemmyNet/lemmy-ui/pull/2322) +- @ubergeek77 made their first contribution in [#2314](https://github.com/LemmyNet/lemmy-ui/pull/2314) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.2...v0.19.3-rc.1 + +## What's Changed in v0.19.2 + +- v0.19.2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.2-rc.5...v0.19.2 + +## What's Changed in v0.19.2-rc.5 + +- v0.19.2-rc.5 by @dessalines +- Adding admin view vote modal. by @dessalines in [#2303](https://github.com/LemmyNet/lemmy-ui/pull/2303) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.2-rc.4...v0.19.2-rc.5 + +## What's Changed in v0.19.2-rc.4 + +- v0.19.2-rc.4 by @dessalines +- Fix error page error interpolation by @SleeplessOne1917 in [#2302](https://github.com/LemmyNet/lemmy-ui/pull/2302) +- Fix compact theme letter tail cutoff bug by @SleeplessOne1917 in [#2301](https://github.com/LemmyNet/lemmy-ui/pull/2301) +- Store volume level on window object by @ismailkarsli in [#2307](https://github.com/LemmyNet/lemmy-ui/pull/2307) +- Do not auto expand media if blur_nsfw is active and the post is NSFW by @ismailkarsli in [#2305](https://github.com/LemmyNet/lemmy-ui/pull/2305) +- Fix dark theme highlight color for recent comments, restores colors to 0.18 values by @Pseudochron in [#2297](https://github.com/LemmyNet/lemmy-ui/pull/2297) + +## New Contributors + +- @Pseudochron made their first contribution in [#2297](https://github.com/LemmyNet/lemmy-ui/pull/2297) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.1...v0.19.2-rc.4 + +## What's Changed in v0.19.1 + +- v0.19.1 by @dessalines +- Updating translations. by @dessalines +- Use highlight color for new comments on dark themes that won't burn your eyes out by @SleeplessOne1917 in [#2295](https://github.com/LemmyNet/lemmy-ui/pull/2295) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.1-rc.1...v0.19.1 + +## What's Changed in v0.19.1-rc.1 + +- v0.19.1-rc.1 by @dessalines +- Re-add show source for comments by @SleeplessOne1917 in [#2290](https://github.com/LemmyNet/lemmy-ui/pull/2290) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0...v0.19.1-rc.1 + +## What's Changed in v0.19.0 + +- v0.19.0 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.16...v0.19.0 + +## What's Changed in v0.19.0-rc.16 + +- v0.19.0-rc.16 by @dessalines +- Upgrading lemmy-js-client. by @dessalines in [#2285](https://github.com/LemmyNet/lemmy-ui/pull/2285) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.15...v0.19.0-rc.16 + +## What's Changed in v0.19.0-rc.15 + +- v0.19.0-rc.15 by @dessalines +- Updating translations. by @dessalines +- Make sure banned toast has correct user. by @dessalines in [#2281](https://github.com/LemmyNet/lemmy-ui/pull/2281) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.14...v0.19.0-rc.15 + +## What's Changed in v0.19.0-rc.14 + +- v0.19.0-rc.14 by @dessalines +- Fixing link targets reloading page. Fixes #2275 by @dessalines in [#2276](https://github.com/LemmyNet/lemmy-ui/pull/2276) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.13...v0.19.0-rc.14 + +## What's Changed in v0.19.0-rc.13 + +- v0.19.0-rc.13 by @dessalines +- Moderation/content action overhaul by @SleeplessOne1917 in [#2258](https://github.com/LemmyNet/lemmy-ui/pull/2258) +- Fixing communityToChoice. Fixes #2231 . Fixes #2232 . by @dessalines in [#2271](https://github.com/LemmyNet/lemmy-ui/pull/2271) +- Only generate manifest if it isn't already in memory by @SleeplessOne1917 in [#2272](https://github.com/LemmyNet/lemmy-ui/pull/2272) +- Adding a few promise.all concurrent fetches to FetchInitialData. #2234 by @dessalines in [#2270](https://github.com/LemmyNet/lemmy-ui/pull/2270) +- Changing auth cookie name back to jwt. by @dessalines in [#2269](https://github.com/LemmyNet/lemmy-ui/pull/2269) +- Added aspect ratio to the videos by @ismailkarsli in [#2268](https://github.com/LemmyNet/lemmy-ui/pull/2268) +- Move lemmyClient generation into fetchInitialData functions. Fixes #2243 by @dessalines in [#2260](https://github.com/LemmyNet/lemmy-ui/pull/2260) +- fix wrapped http client by @phiresky in [#2267](https://github.com/LemmyNet/lemmy-ui/pull/2267) +- Revert "Improve build performance" by @SleeplessOne1917 in [#2262](https://github.com/LemmyNet/lemmy-ui/pull/2262) +- Improve build performance by @kroese in [#2261](https://github.com/LemmyNet/lemmy-ui/pull/2261) +- Revert "Ignore autogenerated css files from being tracked in the repo" by @dessalines in [#2259](https://github.com/LemmyNet/lemmy-ui/pull/2259) +- Ignore autogenerated css files from being tracked in the repo by @SleeplessOne1917 in [#2256](https://github.com/LemmyNet/lemmy-ui/pull/2256) + +## New Contributors + +- @phiresky made their first contribution in [#2267](https://github.com/LemmyNet/lemmy-ui/pull/2267) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.11...v0.19.0-rc.13 + +## What's Changed in v0.19.0-rc.11 + +- v0.19.0-rc.11 by @dessalines +- Fixing cross-fetch issues. by @dessalines in [#2254](https://github.com/LemmyNet/lemmy-ui/pull/2254) +- Fixing comments auto-collapsing. Fixes #2252 by @dessalines in [#2253](https://github.com/LemmyNet/lemmy-ui/pull/2253) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.10...v0.19.0-rc.11 + +## What's Changed in v0.19.0-rc.10 + +- v0.19.0-rc.10 by @dessalines +- Merge branch 'ssr_fix_2' by @dessalines +- Forgot to add yarn.lock. by @dessalines +- Trying another SSR fix. #2243 by @dessalines +- Trying another SSR fix. #2243 by @dessalines in [#2251](https://github.com/LemmyNet/lemmy-ui/pull/2251) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.9...v0.19.0-rc.10 + +## What's Changed in v0.19.0-rc.9 + +- v0.19.0-rc.9 by @dessalines +- Updating translations. by @dessalines +- Disable post voting buttons when logged out. Fixes #2248 by @dessalines in [#2249](https://github.com/LemmyNet/lemmy-ui/pull/2249) +- Attempting to fix SSR. #2243 by @dessalines in [#2247](https://github.com/LemmyNet/lemmy-ui/pull/2247) +- Fixing instance blocking. Fixes #2245 by @dessalines in [#2246](https://github.com/LemmyNet/lemmy-ui/pull/2246) +- Fixing QR code CSP, try 2. Fixes #2241 by @dessalines in [#2242](https://github.com/LemmyNet/lemmy-ui/pull/2242) +- Fix shutdown behaviour by @kroese in [#2239](https://github.com/LemmyNet/lemmy-ui/pull/2239) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.8...v0.19.0-rc.9 + +## What's Changed in v0.19.0-rc.8 + +- v0.19.0-rc.8 by @dessalines +- Multi-platform Dockerfile by @kroese in [#2235](https://github.com/LemmyNet/lemmy-ui/pull/2235) +- Update deps by @SleeplessOne1917 in [#2237](https://github.com/LemmyNet/lemmy-ui/pull/2237) +- Upgrading deps. by @dessalines in [#2233](https://github.com/LemmyNet/lemmy-ui/pull/2233) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.7...v0.19.0-rc.8 + +## What's Changed in v0.19.0-rc.7 + +- v0.19.0-rc.7 by @dessalines +- Fixing follow from subscribe page. Fixes #2215 by @dessalines in [#2229](https://github.com/LemmyNet/lemmy-ui/pull/2229) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.6...v0.19.0-rc.7 + +## What's Changed in v0.19.0-rc.6 + +- v0.19.0-rc.6 by @dessalines +- Updating translations. by @dessalines +- Adding creator_is_admin and creator_is_mod, removing pointless functions by @dessalines in [#2228](https://github.com/LemmyNet/lemmy-ui/pull/2228) +- Update bs theme when site theme is changed by @SleeplessOne1917 in [#2226](https://github.com/LemmyNet/lemmy-ui/pull/2226) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.5...v0.19.0-rc.6 + +## What's Changed in v0.19.0-rc.5 + +- v0.19.0-rc.5 by @dessalines +- Settings Import/export by @SleeplessOne1917 in [#2223](https://github.com/LemmyNet/lemmy-ui/pull/2223) +- Auto focus search input when navigating to search page by @SleeplessOne1917 in [#2224](https://github.com/LemmyNet/lemmy-ui/pull/2224) +- Remove previous button for PaginatorCursor by @dessalines in [#2221](https://github.com/LemmyNet/lemmy-ui/pull/2221) +- Fix back button from posts going back twice instead of once by @SleeplessOne1917 in [#2220](https://github.com/LemmyNet/lemmy-ui/pull/2220) +- Fixing errors. Fixes #2216 by @dessalines in [#2219](https://github.com/LemmyNet/lemmy-ui/pull/2219) +- Fixing QR code CSP. by @dessalines in [#2218](https://github.com/LemmyNet/lemmy-ui/pull/2218) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.4...v0.19.0-rc.5 + +## What's Changed in v0.19.0-rc.4 + +- v0.19.0-rc.4 by @dessalines +- Upgrade for lemmy js client `0.19.0-alpha.16` by @dessalines in [#2210](https://github.com/LemmyNet/lemmy-ui/pull/2210) +- Search page select fix by @SleeplessOne1917 in [#2201](https://github.com/LemmyNet/lemmy-ui/pull/2201) +- Fixed markdown parsing error particularly with the spoiler tag. by @jgrim in [#2200](https://github.com/LemmyNet/lemmy-ui/pull/2200) +- use improved notification system for all notification types by @biosfood in [#2190](https://github.com/LemmyNet/lemmy-ui/pull/2190) +- Make 2FA input play nicer with phone keyboards by @SleeplessOne1917 in [#2199](https://github.com/LemmyNet/lemmy-ui/pull/2199) +- Add code highlighting by @Ategon in [#2195](https://github.com/LemmyNet/lemmy-ui/pull/2195) + +## New Contributors + +- @jgrim made their first contribution in [#2200](https://github.com/LemmyNet/lemmy-ui/pull/2200) +- @Ategon made their first contribution in [#2195](https://github.com/LemmyNet/lemmy-ui/pull/2195) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.3...v0.19.0-rc.4 + +## What's Changed in v0.19.0-rc.3 + +- v0.19.0-rc.3 by @dessalines +- Updating for new v19 changes. by @dessalines in [#2191](https://github.com/LemmyNet/lemmy-ui/pull/2191) +- Dont hide reply box on other actions. Fixes #1968 by @dessalines in [#2189](https://github.com/LemmyNet/lemmy-ui/pull/2189) +- Add curl for basic healthcheck by @dvanderveer in [#2186](https://github.com/LemmyNet/lemmy-ui/pull/2186) +- Tweak 2fa by @SleeplessOne1917 in [#2179](https://github.com/LemmyNet/lemmy-ui/pull/2179) +- Add RTL/BIDI to post text by @hamidrezakp in [#1963](https://github.com/LemmyNet/lemmy-ui/pull/1963) +- Simplify favicon by removing unneeded metadata by @Daniel15 in [#2176](https://github.com/LemmyNet/lemmy-ui/pull/2176) + +## New Contributors + +- @dvanderveer made their first contribution in [#2186](https://github.com/LemmyNet/lemmy-ui/pull/2186) +- @hamidrezakp made their first contribution in [#1963](https://github.com/LemmyNet/lemmy-ui/pull/1963) +- @Daniel15 made their first contribution in [#2176](https://github.com/LemmyNet/lemmy-ui/pull/2176) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-beta.8...v0.19.0-rc.3 + +## What's Changed in v0.19.0-beta.8 + +- v0.19.0-beta.8 by @dessalines +- Adding cursor pagination. Fixes #2155 by @dessalines in [#2173](https://github.com/LemmyNet/lemmy-ui/pull/2173) +- fix: Fix emoji picker custom emoji bug by @SleeplessOne1917 in [#2175](https://github.com/LemmyNet/lemmy-ui/pull/2175) +- Fixing broken docker build due to missing rxjs. by @dessalines in [#2174](https://github.com/LemmyNet/lemmy-ui/pull/2174) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-beta.7...v0.19.0-beta.8 + +## What's Changed in v0.19.0-beta.7 + +- v0.19.0-beta.7 by @dessalines +- Dont push to :latest docker tag by @Nutomic in [#2171](https://github.com/LemmyNet/lemmy-ui/pull/2171) +- fix: Prevent login screen from redirecting to signup by @SleeplessOne1917 in [#2170](https://github.com/LemmyNet/lemmy-ui/pull/2170) +- Totp change by @SleeplessOne1917 in [#2165](https://github.com/LemmyNet/lemmy-ui/pull/2165) +- Adding scaled sort to UI. Fixes #2156 by @dessalines in [#2169](https://github.com/LemmyNet/lemmy-ui/pull/2169) +- Improve notifications by @biosfood in [#2132](https://github.com/LemmyNet/lemmy-ui/pull/2132) +- Smart url parsing by @Trombach in [#2141](https://github.com/LemmyNet/lemmy-ui/pull/2141) +- fix: Fix bug where old settings would linger on page until browser refresh by @SleeplessOne1917 in [#2153](https://github.com/LemmyNet/lemmy-ui/pull/2153) +- fix: Fix bug where user could not block person from profile page by @SleeplessOne1917 in [#2151](https://github.com/LemmyNet/lemmy-ui/pull/2151) +- Husky fix for production build. by @dessalines in [#2150](https://github.com/LemmyNet/lemmy-ui/pull/2150) + +## New Contributors + +- @Trombach made their first contribution in [#2141](https://github.com/LemmyNet/lemmy-ui/pull/2141) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.19.0-rc.1...v0.19.0-beta.7 + +## What's Changed in v0.19.0-rc.1 + +- v0.19.0-rc.1 by @dessalines +- feat: Block instance by @SleeplessOne1917 in [#2144](https://github.com/LemmyNet/lemmy-ui/pull/2144) +- Remote follow by @SleeplessOne1917 in [#1875](https://github.com/LemmyNet/lemmy-ui/pull/1875) +- Remove auth from API request body params by @SleeplessOne1917 in [#2140](https://github.com/LemmyNet/lemmy-ui/pull/2140) +- fix inbox read filtering by @biosfood in [#2131](https://github.com/LemmyNet/lemmy-ui/pull/2131) +- allow limited markdown in spoiler summary by @biosfood in [#2126](https://github.com/LemmyNet/lemmy-ui/pull/2126) +- Changed blocked instances to not be linked from instance page by @Security-Chief-Odo in [#2121](https://github.com/LemmyNet/lemmy-ui/pull/2121) +- fix purge submit button by @biosfood in [#2128](https://github.com/LemmyNet/lemmy-ui/pull/2128) +- Increase cache-control max-age to 60s by @Nutomic in [#2124](https://github.com/LemmyNet/lemmy-ui/pull/2124) +- Don't hide the 'show source' button for anonymous users by @biosfood in [#2127](https://github.com/LemmyNet/lemmy-ui/pull/2127) +- Disable "Next" button in Paginator when the next page is empty by @noskla in [#2114](https://github.com/LemmyNet/lemmy-ui/pull/2114) +- Add moderator view button by @biosfood in [#1993](https://github.com/LemmyNet/lemmy-ui/pull/1993) +- Communities search by @SleeplessOne1917 in [#2108](https://github.com/LemmyNet/lemmy-ui/pull/2108) +- Display more information why has the login failed by @noskla in [#2109](https://github.com/LemmyNet/lemmy-ui/pull/2109) +- Fix husky for yarn 2 . by @dessalines in [#2110](https://github.com/LemmyNet/lemmy-ui/pull/2110) +- Report fix by @SleeplessOne1917 in [#2089](https://github.com/LemmyNet/lemmy-ui/pull/2089) +- always show community name with instance for easy copy-pasting to friends by @Die4Ever in [#2073](https://github.com/LemmyNet/lemmy-ui/pull/2073) +- Update spoiler icon to diamond shape. by @camporter in [#2102](https://github.com/LemmyNet/lemmy-ui/pull/2102) +- Ensure markdown links have the noopener and nofollow rel tags by @camporter in [#2100](https://github.com/LemmyNet/lemmy-ui/pull/2100) +- Move allowed and blocked instance tables to the column right of linked instance table by @dnswrsrx in [#2071](https://github.com/LemmyNet/lemmy-ui/pull/2071) +- Woodpecker updates. by @dessalines in [#2046](https://github.com/LemmyNet/lemmy-ui/pull/2046) +- Federate emoji sizing by @makotech222 in [#2063](https://github.com/LemmyNet/lemmy-ui/pull/2063) +- Moved title field to the top of post-form (#2039, #2059) by @drumlinish in [#2061](https://github.com/LemmyNet/lemmy-ui/pull/2061) +- Temp fix to modlog failing to render future dates by @makotech222 in [#2058](https://github.com/LemmyNet/lemmy-ui/pull/2058) +- Move banned users to a separate admin tab. by @camporter in [#2057](https://github.com/LemmyNet/lemmy-ui/pull/2057) +- Fixing webpack build. by @dessalines in [#2042](https://github.com/LemmyNet/lemmy-ui/pull/2042) +- Frontend Settings - "Blur NSFW" and "Auto Expand" by @tgxn in [#1640](https://github.com/LemmyNet/lemmy-ui/pull/1640) +- Add open links in new tab by @dessalines in [#2032](https://github.com/LemmyNet/lemmy-ui/pull/2032) +- Fix comment insertion from context views. Fixes #2030 by @dessalines in [#2031](https://github.com/LemmyNet/lemmy-ui/pull/2031) +- Fix password autocomplete by @SleeplessOne1917 in [#2033](https://github.com/LemmyNet/lemmy-ui/pull/2033) +- Fix suggested title " " spaces by @devalnor in [#2037](https://github.com/LemmyNet/lemmy-ui/pull/2037) +- Lemmy 2515 controversial posts and comments by @iByteABit256 in [#1727](https://github.com/LemmyNet/lemmy-ui/pull/1727) +- Update translation submodule by @SleeplessOne1917 in [#2023](https://github.com/LemmyNet/lemmy-ui/pull/2023) +- Mark post as read when clicking "Expand here" on the preview image on the post listing page (#1600) by @milandamen in [#1978](https://github.com/LemmyNet/lemmy-ui/pull/1978) +- Expanded the RegEx to check if the title contains new line caracters. Should fix issue #1962 by @SomeoneStoleMyNickname in [#1965](https://github.com/LemmyNet/lemmy-ui/pull/1965) +- Fix document title of admin settings being overwritten by tagline and emoji forms in [#2003](https://github.com/LemmyNet/lemmy-ui/pull/2003) +- Upgrading deps, running prettier. by @dessalines in [#1987](https://github.com/LemmyNet/lemmy-ui/pull/1987) +- ES-Lint tweak by @SleeplessOne1917 in [#2001](https://github.com/LemmyNet/lemmy-ui/pull/2001) +- Use proper modifier key in markdown text input on macOS by @HamzahMansour in [#1995](https://github.com/LemmyNet/lemmy-ui/pull/1995) +- Fixing comment report showing dot. by @dessalines in [#1989](https://github.com/LemmyNet/lemmy-ui/pull/1989) +- Make sure comment score color matches your vote. by @dessalines in [#1988](https://github.com/LemmyNet/lemmy-ui/pull/1988) +- Allow limited set of markdown in title inline md rendering, fixes #1976 by @creesch in [#1977](https://github.com/LemmyNet/lemmy-ui/pull/1977) +- Allow selecting from all languages in person settings (fixes #1971) by @Nutomic in [#1985](https://github.com/LemmyNet/lemmy-ui/pull/1985) +- Separate final comment row + add classes by @djvs in [#1982](https://github.com/LemmyNet/lemmy-ui/pull/1982) +- Allow sorting on /communities by @googleben in [#1934](https://github.com/LemmyNet/lemmy-ui/pull/1934) +- Fix base.output (see #1911) by @tiziodcaio in [#1943](https://github.com/LemmyNet/lemmy-ui/pull/1943) +- Add show/hide button to password fields by @SleeplessOne1917 in [#1861](https://github.com/LemmyNet/lemmy-ui/pull/1861) +- Fix start_url and scope in web app manifest by @randfur in [#1931](https://github.com/LemmyNet/lemmy-ui/pull/1931) +- Remove lodash.merge dependency by @tiziodcaio in [#1911](https://github.com/LemmyNet/lemmy-ui/pull/1911) +- Set person_id to myId in handleLeaveModTeam by @lionirdeadman in [#1929](https://github.com/LemmyNet/lemmy-ui/pull/1929) +- Remove invalid default option from language list by @lemmus-org in [#1919](https://github.com/LemmyNet/lemmy-ui/pull/1919) +- Fix CSP in dev mode by @sunaurus in [#1918](https://github.com/LemmyNet/lemmy-ui/pull/1918) +- Add Toast Messages for Bad Logins by @rosenjcb in [#1874](https://github.com/LemmyNet/lemmy-ui/pull/1874) +- Comment border tweak by @SleeplessOne1917 in [#1820](https://github.com/LemmyNet/lemmy-ui/pull/1820) +- Add nonce-based CSP header by @sunaurus in [#1907](https://github.com/LemmyNet/lemmy-ui/pull/1907) +- Use the 'node' user instead of root while running in a container by @camporter in [#1894](https://github.com/LemmyNet/lemmy-ui/pull/1894) +- Add community name to featured post action in Modlog by @KarboniteKream in [#1891](https://github.com/LemmyNet/lemmy-ui/pull/1891) +- Use canonical URLs by @mminer237 in [#1883](https://github.com/LemmyNet/lemmy-ui/pull/1883) +- Add theme option for compact that respects browser default by @lemmus-org in [#1870](https://github.com/LemmyNet/lemmy-ui/pull/1870) +- Update post listing to prefer local image when available by @lemmus-org in [#1858](https://github.com/LemmyNet/lemmy-ui/pull/1858) +- robots.txt: Disallow /modlog since it is not relevant for bots by @drumlinish in [#1850](https://github.com/LemmyNet/lemmy-ui/pull/1850) + +## New Contributors + +- @noskla made their first contribution in [#2114](https://github.com/LemmyNet/lemmy-ui/pull/2114) +- @drumlinish made their first contribution in [#2061](https://github.com/LemmyNet/lemmy-ui/pull/2061) +- @tgxn made their first contribution in [#1640](https://github.com/LemmyNet/lemmy-ui/pull/1640) +- @devalnor made their first contribution in [#2037](https://github.com/LemmyNet/lemmy-ui/pull/2037) +- @iByteABit256 made their first contribution in [#1727](https://github.com/LemmyNet/lemmy-ui/pull/1727) +- @milandamen made their first contribution in [#1978](https://github.com/LemmyNet/lemmy-ui/pull/1978) +- @SomeoneStoleMyNickname made their first contribution in [#1965](https://github.com/LemmyNet/lemmy-ui/pull/1965) +- @HamzahMansour made their first contribution in [#1995](https://github.com/LemmyNet/lemmy-ui/pull/1995) +- @creesch made their first contribution in [#1977](https://github.com/LemmyNet/lemmy-ui/pull/1977) +- @googleben made their first contribution in [#1934](https://github.com/LemmyNet/lemmy-ui/pull/1934) +- @tiziodcaio made their first contribution in [#1943](https://github.com/LemmyNet/lemmy-ui/pull/1943) +- @randfur made their first contribution in [#1931](https://github.com/LemmyNet/lemmy-ui/pull/1931) +- @lionirdeadman made their first contribution in [#1929](https://github.com/LemmyNet/lemmy-ui/pull/1929) +- @lemmus-org made their first contribution in [#1919](https://github.com/LemmyNet/lemmy-ui/pull/1919) +- @rosenjcb made their first contribution in [#1874](https://github.com/LemmyNet/lemmy-ui/pull/1874) +- @KarboniteKream made their first contribution in [#1891](https://github.com/LemmyNet/lemmy-ui/pull/1891) +- @mminer237 made their first contribution in [#1883](https://github.com/LemmyNet/lemmy-ui/pull/1883) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.2-rc.1...v0.19.0-rc.1 + +## What's Changed in v0.18.2-rc.1 + +- v0.18.2-rc.1 by @Nutomic +- Fix XSS vuln by @makotech222 in [#1897](https://github.com/LemmyNet/lemmy-ui/pull/1897) +- User inferno prompt instead of handrolled one by @SleeplessOne1917 in [#1867](https://github.com/LemmyNet/lemmy-ui/pull/1867) +- Darkly tweak by @SleeplessOne1917 in [#1811](https://github.com/LemmyNet/lemmy-ui/pull/1811) +- Reopen PR 1420 Feature add three six and nine months options frontend by @c-andy-candies in [#1689](https://github.com/LemmyNet/lemmy-ui/pull/1689) +- Update lemmy-js-client and lemmy-translations by @sunaurus in [#1848](https://github.com/LemmyNet/lemmy-ui/pull/1848) + +## New Contributors + +- @c-andy-candies made their first contribution in [#1689](https://github.com/LemmyNet/lemmy-ui/pull/1689) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1...v0.18.2-rc.1 + +## What's Changed in v0.18.1 + +- v0.18.1 by @dessalines +- Dark theme tweaks by @SleeplessOne1917 in [#1840](https://github.com/LemmyNet/lemmy-ui/pull/1840) +- fix: Adjust sidebar banner to wrap bellow the title by @oliverwhite19 in [#1819](https://github.com/LemmyNet/lemmy-ui/pull/1819) + +## New Contributors + +- @oliverwhite19 made their first contribution in [#1819](https://github.com/LemmyNet/lemmy-ui/pull/1819) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.11...v0.18.1 + +## What's Changed in v0.18.1-rc.11 + +- v0.18.1-rc.11 by @dessalines +- add ruby annotation support by @MichaelCharles in [#1831](https://github.com/LemmyNet/lemmy-ui/pull/1831) +- fix: Fix mobile thumbnail being too small by @jsit in [#1814](https://github.com/LemmyNet/lemmy-ui/pull/1814) +- Use Join Lemmy hostname as link text in footer by @dnswrsrx in [#1737](https://github.com/LemmyNet/lemmy-ui/pull/1737) +- fix: Add focus ring color to post action buttons and markdown help link by @jsit in [#1816](https://github.com/LemmyNet/lemmy-ui/pull/1816) +- fix: Fix focus ring styles for radio button toggles #1772 by @jsit in [#1773](https://github.com/LemmyNet/lemmy-ui/pull/1773) +- Don't show login toaster upon user settings change by @alectrocute in [#1802](https://github.com/LemmyNet/lemmy-ui/pull/1802) +- Fix home page not using site-level listing type #1612 by @jcgurango in [#1778](https://github.com/LemmyNet/lemmy-ui/pull/1778) +- feat: Subtler user badge style by @jsit in [#1796](https://github.com/LemmyNet/lemmy-ui/pull/1796) +- Fix data-bs-theme by @SleeplessOne1917 in [#1810](https://github.com/LemmyNet/lemmy-ui/pull/1810) + +## New Contributors + +- @MichaelCharles made their first contribution in [#1831](https://github.com/LemmyNet/lemmy-ui/pull/1831) +- @jcgurango made their first contribution in [#1778](https://github.com/LemmyNet/lemmy-ui/pull/1778) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.10...v0.18.1-rc.11 + +## What's Changed in 0.18.1-rc.10 + +- v0.18.1-rc.10 by @SleeplessOne1917 +- Attempt to fix inability to logout from some instances (subdomains) by @alectrocute in [#1809](https://github.com/LemmyNet/lemmy-ui/pull/1809) +- feat(theme): Vaporwave by @SleeplessOne1917 in [#1682](https://github.com/LemmyNet/lemmy-ui/pull/1682) +- fix: Revert smaller text size by @jsit in [#1795](https://github.com/LemmyNet/lemmy-ui/pull/1795) +- Updated the regex for isAuthPath to reduce false positive hits by @Security-Chief-Odo in [#1806](https://github.com/LemmyNet/lemmy-ui/pull/1806) +- fix: Add focus border to markdown toolbar buttons by @SleeplessOne1917 in [#1797](https://github.com/LemmyNet/lemmy-ui/pull/1797) +- fix: Add focus border to markdown toolbar buttons by @jsit +- fix: Add data-bs-theme attribute for user dark/light modes by @jsit in [#1782](https://github.com/LemmyNet/lemmy-ui/pull/1782) +- fix: Break text on post titles so long words don't overflow by @SleeplessOne1917 in [#1771](https://github.com/LemmyNet/lemmy-ui/pull/1771) +- Merge remote-tracking branch 'lemmy/main' into fix/fix-long-words-in-titles-overflow by @jsit + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.9...0.18.1-rc.10 + +## What's Changed in v0.18.1-rc.9 + +- v0.18.1-rc.9 by @dessalines +- fix: Fix comment collapse and vote buttons not having focus style by @jsit in [#1789](https://github.com/LemmyNet/lemmy-ui/pull/1789) +- Add missing modlog reasons by @SleeplessOne1917 in [#1787](https://github.com/LemmyNet/lemmy-ui/pull/1787) +- Fix search page breaking on initial load when logged in by @SleeplessOne1917 in [#1781](https://github.com/LemmyNet/lemmy-ui/pull/1781) +- feat: Add PR template by @jsit in [#1785](https://github.com/LemmyNet/lemmy-ui/pull/1785) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.8...v0.18.1-rc.9 + +## What's Changed in 0.18.1-rc.8 + +- v0.18.1-rc.8 by @SleeplessOne1917 +- Fix profile loading spinner by @SleeplessOne1917 in [#1780](https://github.com/LemmyNet/lemmy-ui/pull/1780) +- Merge branch 'main' into fix-profile-loading-spinner by @SleeplessOne1917 +- fix: Fix badge alignment and break out into component by @SleeplessOne1917 in [#1770](https://github.com/LemmyNet/lemmy-ui/pull/1770) +- Merge branch 'main' into fix/fix-badges-spacing-componentize by @SleeplessOne1917 +- Merge branch 'main' into fix/fix-badges-spacing-componentize by @jsit +- fix: Move getRoleLabelPill to the only component that uses it by @jsit +- fix: Remove unused hasBadges() function by @jsit +- Merge branch 'main' into fix/fix-badges-spacing-componentize by @jsit +- fix: Fix badge alignment and break out into component by @jsit +- Fix profile loading spinner by @m-gail +- fix: Fix heading levels by @SleeplessOne1917 in [#1762](https://github.com/LemmyNet/lemmy-ui/pull/1762) +- Merge branch 'main' into fix/h1-page-titles by @jsit +- fix: Small cleanup to search/inbox controls by @SleeplessOne1917 in [#1760](https://github.com/LemmyNet/lemmy-ui/pull/1760) +- Merge branch 'main' into fix/use-row-in-filters by @SleeplessOne1917 +- fix: Fix up filter row gaps and margins a little by @jsit +- fix: Simplify row classes a bit by @jsit +- fix: Fix some gaps in search filters by @jsit +- fix: Fix row gap on search options by @jsit +- fix: Add bottom margin to inbox controls by @jsit +- fix: Small cleanup to search/inbox controls by @jsit +- Merge branch 'main' into fix/h1-page-titles by @jsit +- fix: Fix heading levels by @jsit +- fix: Break text on post titles so long words don't overflow by @jsit +- fix: Post expand button was not showing if body-only post by @SleeplessOne1917 in [#1757](https://github.com/LemmyNet/lemmy-ui/pull/1757) +- Merge branch 'main' into fix/expand-button-when-no-link by @alectrocute +- Prevent JWT token from showing up on error page by @SleeplessOne1917 in [#1766](https://github.com/LemmyNet/lemmy-ui/pull/1766) +- Merge branch 'main' into auth-error-message by @SleeplessOne1917 +- feat(a11y): Change behavior of some file upload fields by @SleeplessOne1917 in [#1577](https://github.com/LemmyNet/lemmy-ui/pull/1577) +- Merge branch 'main' into feat/create-post-file-upload-a11y by @SleeplessOne1917 +- Merge branch 'main' into feat/create-post-file-upload-a11y by @jsit +- fix: Fix avatar image overlay aspect ratio by @jsit +- fix: Fix circle image aspect ratio by @jsit +- fix: Add some spacing between upload field and image; fix circle image aspect ratio by @jsit +- Merge branch 'main' into feat/create-post-file-upload-a11y by @jsit +- Merge branch 'main' into feat/create-post-file-upload-a11y by @jsit +- fix: Use Bootstrap file upload form control styles by @jsit +- Fix feedback on banning an unbanning by @pascaldevink +- fix vote button alignment by @alectrocute +- remove icon by @alectrocute +- Indicate valid and invalid fields in signup form by @dullbananas +- capitalize button by @alectrocute +- Move password reset form to separate route, view by @alectrocute +- feat(UI): Reduce base font size by @jsit +- Fix: missing semantic css classes and html elements by @0xAnansi +- chore(DX): Add prettier to eslint config for use with editors by @jsit +- Only give child comments colored borders by @SleeplessOne1917 +- Associate NSFW label with its checkbox by @minorninth +- fix: Remove unnecessary string interpolations by @jsit +- fix: Remove unnecessary class by @jsit +- fix: Remove unnecessary classes by @jsit +- fix: Restore removed classes by @jsit +- fix: Remove wrapping li's by @jsit +- fix: Remove extraneous classes by @jsit +- fix: Move things back to where they were by @jsit +- chore: Separate post mod buttons into functions by @jsit +- Merge branch 'main' into feat/create-post-file-upload-a11y by @jsit +- Merge remote-tracking branch 'lemmy/main' into feat/create-post-file-upload-a11y by @jsit +- fix(a11y): Change the look and behavior of some file upload fields by @jsit +- Merge branch 'auth-error-message' of https://github.com/LemmyNet/lemmy-ui into auth-error-message by @SleeplessOne1917 +- Merge branch 'main' into auth-error-message by @SleeplessOne1917 +- fix: Fix vote buttons not showing spinners while registering vote #1761 by @jsit in [#1764](https://github.com/LemmyNet/lemmy-ui/pull/1764) +- Merge branch 'main' into fix/vote-button-no-spinners-1761 by @jsit +- fix: Fix vote buttons not showing spinners while registering vote #1761 by @jsit +- Update yarn lock by @SleeplessOne1917 +- Move export to barrel file by @SleeplessOne1917 +- Prevent JWT token from showing up on error page by @SleeplessOne1917 +- fix: Fix joined button check color by @SleeplessOne1917 in [#1763](https://github.com/LemmyNet/lemmy-ui/pull/1763) +- Merge branch 'main' into fix/fix-joined-check-color by @SleeplessOne1917 +- Fix markdown editor quote bugs by @jsit in [#1732](https://github.com/LemmyNet/lemmy-ui/pull/1732) +- Merge branch 'main' into undefined_quote by @jsit +- Merge branch 'main' into undefined_quote by @SleeplessOne1917 +- Fix quotedText bugs in markdown editor by @sunaurus +- fix: Fix joined button check color by @jsit +- Fix DM replies not working by @jsit in [#1730](https://github.com/LemmyNet/lemmy-ui/pull/1730) +- Merge branch 'main' into dm_fix by @jsit +- Fix DM replies by @sunaurus +- Merge branch 'main' into fix/expand-button-when-no-link by @SleeplessOne1917 +- fix: Fix vote buttons in list view variable width by @SleeplessOne1917 in [#1756](https://github.com/LemmyNet/lemmy-ui/pull/1756) +- Merge branch 'main' into fix/list-view-vote-button-width by @SleeplessOne1917 +- fix: Fix thumb buttons having gray background #1754 by @SleeplessOne1917 in [#1755](https://github.com/LemmyNet/lemmy-ui/pull/1755) +- fix: Fix thumb buttons having gray background #1754 by @jsit +- fix: Fix vote buttons in list view variable width by @jsit +- fix: Update comment to reflect new logic by @jsit +- fix: Post expand button was not showing if body-only post by @jsit +- Add support for Command (⌘) key shortcuts on Markdown text areas by @SleeplessOne1917 in [#1750](https://github.com/LemmyNet/lemmy-ui/pull/1750) +- Add metaKey to markdown-textarea, for macos by @paradox460 +- Fix jwt cookie path by @SleeplessOne1917 in [#1741](https://github.com/LemmyNet/lemmy-ui/pull/1741) +- Fix jwt cookie path by @sunaurus +- Add fallback date-fns locale import by @SleeplessOne1917 in [#1729](https://github.com/LemmyNet/lemmy-ui/pull/1729) +- Add fallback date-fns locale import by @sunaurus + +## New Contributors + +- @m-gail made their first contribution +- @paradox460 made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.7...0.18.1-rc.8 + +## What's Changed in 0.18.1-rc.7 + +- v0.18.1-rc.7 by @SleeplessOne1917 +- v0.18.1-rc.6 by @SleeplessOne1917 +- Fix date-fns locale import failing for some locales by @SleeplessOne1917 in [#1721](https://github.com/LemmyNet/lemmy-ui/pull/1721) +- Fix date-fns locale import failing for some locales by @sunaurus +- Fix nonexistent property `req.cookies` by @SleeplessOne1917 in [#1719](https://github.com/LemmyNet/lemmy-ui/pull/1719) +- fix req.cookie nonexistent -.- by @alectrocute +- Fix broken `user.auth()` method on `middleware.ts` by @SleeplessOne1917 in [#1718](https://github.com/LemmyNet/lemmy-ui/pull/1718) +- Merge branch 'fix-cache-auth' of https://github.com/LemmyNet/lemmy-ui into fix-cache-auth by @alectrocute +- Merge branch 'main' into fix-cache-auth by @SleeplessOne1917 +- wip by @alectrocute +- wip by @alectrocute +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui into fix-cache-auth by @alectrocute +- Enforce SameSite=Strict by @diamondburned in [#1713](https://github.com/LemmyNet/lemmy-ui/pull/1713) +- fix service worker path by @alectrocute +- fix cache auth method by @alectrocute +- Fix some issues by @SleeplessOne1917 in [#1711](https://github.com/LemmyNet/lemmy-ui/pull/1711) +- Fix authorized route false flag by @SleeplessOne1917 +- Fix dev caching issue by @SleeplessOne1917 + +## New Contributors + +- @diamondburned made their first contribution in [#1713](https://github.com/LemmyNet/lemmy-ui/pull/1713) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.5...0.18.1-rc.7 + +## What's Changed in v0.18.1-rc.5 + +- v0.18.1-rc.5 by @dessalines +- Cache static data for a day by @SleeplessOne1917 in [#1708](https://github.com/LemmyNet/lemmy-ui/pull/1708) +- Merge branch 'main' into cache-control by @SleeplessOne1917 +- Fix `PostListing` mobile margin layout issue by @alectrocute in [#1706](https://github.com/LemmyNet/lemmy-ui/pull/1706) +- change max-age to 5 for non-authed responses by @alectrocute +- Cache static data for a day by @SleeplessOne1917 + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.4...v0.18.1-rc.5 + +## What's Changed in 0.18.1-rc.4 + +- Try increasing node memory. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.4...0.18.1-rc.4 + +## What's Changed in v0.18.1-rc.4 + +- v0.18.1-rc.4 by @dessalines +- Fix taglines on `Home` by @alectrocute in [#1701](https://github.com/LemmyNet/lemmy-ui/pull/1701) +- Use git hash to break cache by @SleeplessOne1917 in [#1684](https://github.com/LemmyNet/lemmy-ui/pull/1684) +- Removing unecessary timezone adjusting by @SleeplessOne1917 in [#1698](https://github.com/LemmyNet/lemmy-ui/pull/1698) +- Merge branch 'main' into fix_datetime_2 by @SleeplessOne1917 +- Fix missing classes on external link thumbnails with images by @alectrocute in [#1695](https://github.com/LemmyNet/lemmy-ui/pull/1695) +- Merge branch 'main' into fix_datetime_2 by @alectrocute +- Fixing site setup. Fixes #1694 by @dessalines in [#1697](https://github.com/LemmyNet/lemmy-ui/pull/1697) +- Removing unecessary timezone adjusting by @dessalines +- Communities page: make search type default to "Communities' by @SleeplessOne1917 in [#1685](https://github.com/LemmyNet/lemmy-ui/pull/1685) +- Merge branch 'main' into community-search by @alectrocute +- Allow audio captcha through CSP by @SleeplessOne1917 in [#1690](https://github.com/LemmyNet/lemmy-ui/pull/1690) +- fix formatting by @Raicuparta +- Merge branch 'main' into community-search by @SleeplessOne1917 + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.3...v0.18.1-rc.4 + +## What's Changed in 0.18.1-rc.3 + +- Fixing lints. by @dessalines in [#1686](https://github.com/LemmyNet/lemmy-ui/pull/1686) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.3...0.18.1-rc.3 + +## What's Changed in v0.18.1-rc.3 + +- v0.18.1-rc.3 by @dessalines +- Merge branch 'main' into community-search by @Raicuparta +- Add Security.txt by @rcmaehl in [#1408](https://github.com/LemmyNet/lemmy-ui/pull/1408) +- Fixing timezone issue with date-fns. Fixes #1680 by @dessalines in [#1681](https://github.com/LemmyNet/lemmy-ui/pull/1681) +- Add error toast for 413 content too large response on image uploads by @sunaurus in [#1675](https://github.com/LemmyNet/lemmy-ui/pull/1675) +- Add publicPath for static js by @sunaurus in [#1672](https://github.com/LemmyNet/lemmy-ui/pull/1672) +- Fix search page to stop `couldnt_find_object` error by @scme0 in [#1669](https://github.com/LemmyNet/lemmy-ui/pull/1669) +- Add fixed width/height to `PostListing` thumbnail parent by @alectrocute in [#1660](https://github.com/LemmyNet/lemmy-ui/pull/1660) +- fix: Add user action buttons to post dropdown #1653 by @jsit in [#1655](https://github.com/LemmyNet/lemmy-ui/pull/1655) +- Search only communities by default when coming from communities page by @Raicuparta + +## New Contributors + +- @rcmaehl made their first contribution in [#1408](https://github.com/LemmyNet/lemmy-ui/pull/1408) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.2...v0.18.1-rc.3 + +## What's Changed in v0.18.1-rc.2 + +- v0.18.1-rc.2 by @dessalines +- Adding nightly docker build. by @dessalines in [#1678](https://github.com/LemmyNet/lemmy-ui/pull/1678) +- Return appropriate error codes by @SleeplessOne1917 in [#1665](https://github.com/LemmyNet/lemmy-ui/pull/1665) +- Add i386 theme by @SleeplessOne1917 in [#1662](https://github.com/LemmyNet/lemmy-ui/pull/1662) +- Set cache-control headers to reduce server load (fixes #412) by @Nutomic in [#1641](https://github.com/LemmyNet/lemmy-ui/pull/1641) +- Make community sidebar "Subscribe"/"Joined"/"Pending" button consistent by @SleeplessOne1917 in [#1670](https://github.com/LemmyNet/lemmy-ui/pull/1670) +- Merge branch 'main' into bugfix/fix-subscribe-button-layout by @alectrocute +- Add `darkly-pureblack` theme by @SleeplessOne1917 in [#1610](https://github.com/LemmyNet/lemmy-ui/pull/1610) +- Merge branch 'main' into feat/pureblack-theme by @alectrocute +- Revert #1463, markdown default lang select by @jsit in [#1667](https://github.com/LemmyNet/lemmy-ui/pull/1667) +- Revert #1463, markdown default lang select by @jsit +- Merge branch 'main' into feat/pureblack-theme by @alectrocute +- Merge branch 'main' into feat/pureblack-theme by @alectrocute +- fix a few colors by @alectrocute +- Merge branch 'main' into feat/pureblack-theme by @alectrocute +- Merge branch 'main' into feat/pureblack-theme by @alectrocute +- run prettier by @alectrocute +- add darkly-pureblack theme by @alectrocute +- formatting by @alectrocute +- make subscribe/unsub/pending button consistent by @alectrocute +- Fix subscribe and block community buttons not showing up on first load by @jsit in [#1661](https://github.com/LemmyNet/lemmy-ui/pull/1661) +- Merge branch 'main' into subscribe-fix by @SleeplessOne1917 +- Remove hard-coded `getRoleLabelPill` text foreground color classes by @alectrocute in [#1658](https://github.com/LemmyNet/lemmy-ui/pull/1658) +- Fix subscribe and block community buttons not showing up on first load by @SleeplessOne1917 +- fix: Fix alignment of preview mini-overlay buttons on thumbs by @SleeplessOne1917 in [#1630](https://github.com/LemmyNet/lemmy-ui/pull/1630) +- Merge branch 'main' into fix/thumb-action-button-alignment by @alectrocute +- Move `getRoleLabelPill` to `@utils/app` by @SleeplessOne1917 in [#1656](https://github.com/LemmyNet/lemmy-ui/pull/1656) +- refactor by @alectrocute +- Distinguish "Creator" badge on comments by @SleeplessOne1917 in [#1623](https://github.com/LemmyNet/lemmy-ui/pull/1623) +- refactor again by @alectrocute +- change me-2 to me-1, no need for me-2 width by @alectrocute +- make mod shrunken label text-primary by @alectrocute +- oops by @alectrocute +- refactor x2 by @alectrocute +- refactor by @alectrocute +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui into bugfix/make-post-creator-badge-stand-out-more by @alectrocute +- Use `classNames` in #1650 by @SleeplessOne1917 in [#1651](https://github.com/LemmyNet/lemmy-ui/pull/1651) +- add @jsit advice by @alectrocute +- Fix borders on `MarkdownTextarea` buttons when disabled by @SleeplessOne1917 in [#1650](https://github.com/LemmyNet/lemmy-ui/pull/1650) +- fix weird borders when markdown textarea is disabled by @alectrocute +- use span by @alectrocute +- always show badge on mobile by @alectrocute +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui into bugfix/make-post-creator-badge-stand-out-more by @alectrocute +- remove toUpperCase since the translation is uppercase by @alectrocute +- add tooltip by @alectrocute +- make post creator badge stand out more by @alectrocute +- Merge branch 'main' into fix/thumb-action-button-alignment by @jsit +- Reduce fetchLimit (40 -> 20) by @sunaurus in [#1638](https://github.com/LemmyNet/lemmy-ui/pull/1638) +- feat(UI): Always put post body behind toggle on post listings by @jsit in [#1596](https://github.com/LemmyNet/lemmy-ui/pull/1596) +- Merge branch 'main' into feat/toggle-body-1595 by @jsit +- Moving webpack-bundle-analyzer require inside mode check to fix docker. by @SleeplessOne1917 in [#1642](https://github.com/LemmyNet/lemmy-ui/pull/1642) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.1-rc.1...v0.18.1-rc.2 + +## What's Changed in 0.18.1-rc.1 + +- Moving webpack-bundle-analyzer require inside mode check to fix docker. by @dessalines +- Merge branch 'main' into feat/toggle-body-1595 by @jsit + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.1-rc.1...0.18.1-rc.1 + +## What's Changed in v0.18.1-rc.1 + +- v0.18.1-rc.1 by @dessalines +- Fix allowed and blocked instances not being fetched for admin settings by @SleeplessOne1917 in [#1627](https://github.com/LemmyNet/lemmy-ui/pull/1627) +- Add space between cancel and ban button by @SleeplessOne1917 in [#1620](https://github.com/LemmyNet/lemmy-ui/pull/1620) +- Merge branch 'main' into create_space_between_cancel_and_ban_button by @dessalines +- Merge branch 'main' into create_space_between_cancel_and_ban_button by @SleeplessOne1917 +- Add space between cancel and ban button by @pascaldevink +- fix: Move toggle button to its own function by @jsit +- Merge remote-tracking branch 'lemmy/main' into feat/toggle-body-1595 by @jsit +- fix: Show metadata preview card on all post pages by @jsit +- Fix feedback on banning an unbanning by @pascaldevink +- fix vote button alignment by @alectrocute +- remove icon by @alectrocute +- Indicate valid and invalid fields in signup form by @dullbananas +- capitalize button by @alectrocute +- Move password reset form to separate route, view by @alectrocute +- feat(UI): Reduce base font size by @jsit +- Fix: missing semantic css classes and html elements by @0xAnansi +- partially revert change by @alectrocute +- chore(DX): Add prettier to eslint config for use with editors by @jsit +- fix: Remove unnecessary class by @jsit +- fix: Remove unnecessary classes by @jsit +- fix: Restore removed classes by @jsit +- fix: Remove wrapping li's by @jsit +- fix: Remove extraneous classes by @jsit +- fix: Move things back to where they were by @jsit +- chore: Separate post mod buttons into functions by @jsit +- remove hook entirely by @alectrocute +- fix bug collapsing previews when voting by @alectrocute +- fix: Remove unnecessary string interpolations by @jsit +- Merge branch 'main' into feat/toggle-body-1595 by @jsit +- fix: Remove unused comment by @jsit +- feat: Use plus/minus expand button in title for showing body/preview by @jsit +- Merge branch 'main' into feat/toggle-body-1595 by @jsit +- feat(UI): Always put post body behind togggle on post listings (home/community) #1595 by @jsit +- fix: Restore mdNoImages import by @jsit +- fix: Fix alignment of preview mini-overlay buttons on thumbs by @jsit +- fix: Remove body preview by @SleeplessOne1917 in [#1629](https://github.com/LemmyNet/lemmy-ui/pull/1629) +- fix: Remove body preview by @jsit +- fix(UI): Make max-width wider, and make sidebar narrower on wide screens (#1536) by @SleeplessOne1917 in [#1590](https://github.com/LemmyNet/lemmy-ui/pull/1590) +- Merge branch 'main' into fix/wider-max-width-1536 by @SleeplessOne1917 +- feat(UI): Make post listing (icon) avatars smaller (line-height) by @SleeplessOne1917 in [#1597](https://github.com/LemmyNet/lemmy-ui/pull/1597) +- Merge branch 'main' into feat/hide-avatars-on-listings by @jsit +- fix: Remove smallavatars prop by @jsit +- fix: Restore icon avatars; make smaller and roundrect by @jsit +- Merge branch 'main' into feat/hide-avatars-on-listings by @jsit +- Merge branch 'main' into feat/hide-avatars-on-listings by @jsit +- Merge remote-tracking branch 'lemmy/main' into feat/hide-avatars-on-listings by @jsit +- feat(UI): Hide avatars on listings by @jsit +- Merge branch 'main' into fix/wider-max-width-1536 by @jsit +- Prevent `PostListing` previews from collapsing when voting by @SleeplessOne1917 in [#1608](https://github.com/LemmyNet/lemmy-ui/pull/1608) +- Merge branch 'main' into bug/fix-image-collapse-upon-vote by @SleeplessOne1917 +- partially revert change by @alectrocute +- Merge branch 'main' into bug/fix-image-collapse-upon-vote by @alectrocute +- remove hook entirely by @alectrocute +- fix bug collapsing previews when voting by @alectrocute +- Merge remote-tracking branch 'lemmy/main' into fix/wider-max-width-1536 by @jsit +- Fix `VoteButtons` positioning by @SleeplessOne1917 in [#1624](https://github.com/LemmyNet/lemmy-ui/pull/1624) +- Merge branch 'main' into bugfix/vote-button-position by @SleeplessOne1917 +- Fix feedback on banning an unbanning by @SleeplessOne1917 in [#1622](https://github.com/LemmyNet/lemmy-ui/pull/1622) +- Merge branch 'main' into fix_feedback_on_ban_and_unban by @SleeplessOne1917 +- Fix feedback on banning an unbanning by @pascaldevink +- fix vote button alignment by @alectrocute +- Remove thumbnail expand icon on `PostListing`'s `postTitleLine` by @alectrocute in [#1618](https://github.com/LemmyNet/lemmy-ui/pull/1618) +- Indicate valid and invalid fields in signup form by @dullbananas in [#1450](https://github.com/LemmyNet/lemmy-ui/pull/1450) +- Capitalize "Mark all as read" button on `Inbox` by @alectrocute in [#1616](https://github.com/LemmyNet/lemmy-ui/pull/1616) +- Move password reset form to separate route, view by @alectrocute in [#1390](https://github.com/LemmyNet/lemmy-ui/pull/1390) +- feat(UI): Reduce base font size by @jsit in [#1591](https://github.com/LemmyNet/lemmy-ui/pull/1591) +- Fix: missing semantic css classes and html elements by @0xAnansi in [#1583](https://github.com/LemmyNet/lemmy-ui/pull/1583) +- Merge remote-tracking branch 'lemmy/main' into fix/wider-max-width-1536 by @jsit +- chore: Separate post mod buttons into functions by @jsit in [#1599](https://github.com/LemmyNet/lemmy-ui/pull/1599) +- Merge branch 'main' into chore/separate-mod-button-functions by @jsit +- Merge branch 'main' into chore/separate-mod-button-functions by @jsit +- fix: Remove unnecessary class by @jsit +- fix: Remove unnecessary classes by @jsit +- fix: Restore removed classes by @jsit +- fix: Remove wrapping li's by @jsit +- fix: Remove extraneous classes by @jsit +- fix: Move things back to where they were by @jsit +- chore: Separate post mod buttons into functions by @jsit +- Merge remote-tracking branch 'lemmy/main' into fix/wider-max-width-1536 by @jsit +- chore(DX): Add prettier to eslint config for use with editors by @jsit in [#1611](https://github.com/LemmyNet/lemmy-ui/pull/1611) +- chore(DX): Add prettier to eslint config for use with editors by @jsit +- chore: Remove unnecessary string interpolations by @SleeplessOne1917 in [#1603](https://github.com/LemmyNet/lemmy-ui/pull/1603) +- Merge branch 'main' into chore/fix-unnecessary-string-interpolation by @jsit +- Merge branch 'main' into chore/fix-unnecessary-string-interpolation by @SleeplessOne1917 +- fix: Remove unnecessary string interpolations by @jsit +- Merge branch 'main' into fix/wider-max-width-1536 by @jsit +- Only give child comments colored borders by @SleeplessOne1917 in [#1594](https://github.com/LemmyNet/lemmy-ui/pull/1594) +- Merge branch 'main' into comment-border by @SleeplessOne1917 +- Associate NSFW label with its checkbox by @jsit in [#1605](https://github.com/LemmyNet/lemmy-ui/pull/1605) +- Associate NSFW label with its checkbox by @minorninth +- Only give child comments colored borders by @SleeplessOne1917 +- fix: Fix image/title wrapping on small by @jsit +- fix: Fix post listing vote/image/title widths by @jsit +- fix: Fix a too-small thumbnail column by @jsit +- fix: Set max height on post listing thumbnails by @jsit +- fix: Tidy up divs by @jsit +- fix: Make navbar container full screen width #1536 by @jsit +- Merge branch 'main' into fix/wider-max-width-1536 by @jsit +- feat(UI): Fix some link hover colors by @SleeplessOne1917 in [#1598](https://github.com/LemmyNet/lemmy-ui/pull/1598) +- feat(UI): Fix some link hover colors by @jsit +- Merge branch 'main' into fix/wider-max-width-1536 by @jsit +- CSP should allow data urls for media-src or the audio captcha won't work by @SleeplessOne1917 in [#1592](https://github.com/LemmyNet/lemmy-ui/pull/1592) +- Merge branch 'main' into csp_media_src_data_urls by @SleeplessOne1917 +- Add margin to new comment text by @SleeplessOne1917 in [#1588](https://github.com/LemmyNet/lemmy-ui/pull/1588) +- Update post-listing.tsx by @SleeplessOne1917 +- Merge branch 'main' into new-comment-space by @SleeplessOne1917 +- Use spae instead of margin by @SleeplessOne1917 +- Add margin to new comment text by @SleeplessOne1917 +- CSP should allow data urls for media-src or the audio captcha won't work by @minorninth +- Merge branch 'main' into fix/wider-max-width-1536 by @jsit +- Fix search request being called twice on search page by @SleeplessOne1917 in [#1589](https://github.com/LemmyNet/lemmy-ui/pull/1589) +- Merge branch 'main' into double-search by @alectrocute +- Fix search request being called twice on search page by @SleeplessOne1917 +- fix(UI): Make max-width wider, and make sidebar narrower on wide screens #1536 by @jsit +- Fix noisy "Can't set headers after they are sent" error by @SleeplessOne1917 in [#1585](https://github.com/LemmyNet/lemmy-ui/pull/1585) +- Merge branch 'main' into bug/cant-set-headers-after-sent-fix by @jsit +- Handle embedded videos the same as other content by @SleeplessOne1917 in [#1586](https://github.com/LemmyNet/lemmy-ui/pull/1586) +- handle embedded iframe content better by @alectrocute +- fix lint error by @alectrocute +- fix error on prod by @alectrocute +- chore(a11y): Remove a11y eslint overrides by @SleeplessOne1917 in [#1578](https://github.com/LemmyNet/lemmy-ui/pull/1578) +- chore: Empty commit to re-trigger Woodpecker by @jsit +- chore(a11y): Remove a11y eslint overrides, as there are (almost) no more violations by @jsit +- feat(dev): Vote components by @SleeplessOne1917 in [#1488](https://github.com/LemmyNet/lemmy-ui/pull/1488) +- Merge branch 'main' into feat/vote-components by @SleeplessOne1917 +- fix(a11y): Some accessibility fixes by @SleeplessOne1917 in [#1576](https://github.com/LemmyNet/lemmy-ui/pull/1576) +- fix: Fix some classes on private message collapse/expand button by @jsit +- chore(a11y): Remove now-passing jsx-a11y tests from exemptions by @jsit +- fix(a11y): Change divs and links to buttons by @jsit +- fix: Remove invalid class by @jsit +- fix: Add type=button to buttons by @jsit +- Merge remote-tracking branch 'lemmy/main' into feat/vote-components by @jsit +- fix(a11y): Fixing some small a11y issues by @SleeplessOne1917 in [#1570](https://github.com/LemmyNet/lemmy-ui/pull/1570) +- Merge remote-tracking branch 'lemmy/main' into fix/a11y-fixes-2 by @jsit +- fix(UI): Fix some Bootstrap 5 font classes by @jsit in [#1567](https://github.com/LemmyNet/lemmy-ui/pull/1567) +- Merge remote-tracking branch 'lemmy/main' into fix/fix-font-classes-bs5 by @jsit +- chore: Empty commit to re-trigger Woodpecker by @jsit +- fix: Fix another class by @jsit +- fix: Fix some Bootstrap 5 font classes by @jsit +- fix(a11y): Restore aria-activedescendant by @jsit +- fix(a11y): Make foreground of 'remove image button' white by @jsit +- fix(a11y): Add alt text to emojis form by @jsit +- fix(a11y): Fix some a11y markup in Searchable Select component by @jsit +- fix(a11y): Change image remove button to true button element by @jsit +- fix: Ignore rule for clickaway div; 'Esc' works for this by @jsit +- chore: Empty commit to re-trigger Woodpecker by @jsit +- fix: Fix some Bootstrap 5 font classes by @jsit +- fix: Fix some Bootstrap 5 font classes by @jsit +- Merge branch 'main' into feat/vote-components by @jsit +- Fix emojis being unable to save by @SleeplessOne1917 in [#1539](https://github.com/LemmyNet/lemmy-ui/pull/1539) +- Merge branch 'main' into emoji-upload-button by @SleeplessOne1917 +- fix(a11y): Fix non-list item being inside ul list in navbar by @SleeplessOne1917 in [#1569](https://github.com/LemmyNet/lemmy-ui/pull/1569) +- Merge branch 'main' into fix/non-list-item-in-navbar by @SleeplessOne1917 +- fix(a11y): Fix non-unique ID attribute on re-used element by @SleeplessOne1917 in [#1568](https://github.com/LemmyNet/lemmy-ui/pull/1568) +- Merge branch 'main' into fix/fix-dropdown-id-unique by @SleeplessOne1917 +- fix(a11y): Close Emoji Picker on 'esc', make jump link interactive button by @SleeplessOne1917 in [#1547](https://github.com/LemmyNet/lemmy-ui/pull/1547) +- Merge branch 'main' into fix/a11y-fixes by @SleeplessOne1917 +- feat: Private Message UX improvements by @SleeplessOne1917 in [#1543](https://github.com/LemmyNet/lemmy-ui/pull/1543) +- Merge branch 'main' into feat/create-private-message-updates by @jsit +- fix: Fix incorrect function reference by @jsit +- Merge remote-tracking branch 'lemmy/main' into feat/create-private-message-updates by @jsit +- fix: Clarify a comment by @jsit +- fix: Fix merge error by @jsit +- Remove federation worker count by @cetra3 +- fix: Add triangle alert icon to language warning by @jsit +- added litely-compact by @dankxiaobong +- changed where custom compact code goes by @dankxiaobong +- added darkly-compact - issue 552 by @dankxiaobong +- Refactor first load handling by @SleeplessOne1917 +- Fix issue when navigating awat from settings by @SleeplessOne1917 +- Give function better name by @SleeplessOne1917 +- Change function name by @SleeplessOne1917 +- Make date distance format use correct verbiage by @SleeplessOne1917 +- Extract date fns setup by @SleeplessOne1917 +- Remove unused dep by @SleeplessOne1917 +- Replace momentjs with date-fns by @SleeplessOne1917 +- Cache post listings and restore listing state when using browser back navigation buttons. by @dudeami0 +- v0.18.0 by @dessalines +- Fix homepage `scrollTo(0, 0)` failing when document size changes. by @dudeami0 +- v0.18.0-rc.8 by @dessalines +- Moved `!isBrowser()` check to `FirstLoadServer.isFirstLoad` by @dudeami0 +- Fix server-side rendering after first load. by @dudeami0 +- fix: Add aria-describedby for language warning by @jsit +- Update src/shared/components/common/markdown-textarea.tsx by @jsit +- Update src/shared/components/common/markdown-textarea.tsx by @jsit +- fix: Disable save button if no text is entered by @jsit +- fix: Fix some more private message form stuff by @jsit +- feat: Clean up the Create Private Message page a bit by @jsit +- Merge branch 'main' into fix/a11y-fixes by @jsit +- fix: Fix some emoji escape logic by @jsit +- fix: Button doesn't need tabindex by @jsit +- fix: Emoji picker can be closed with escape key, other a11y fixes by @jsit +- fix: Fix some a11y issues on jump to content button by @jsit +- fix: Fix non-unique ID attribute on re-used element by @jsit +- fix(a11y): Fix non-list item being inside ul list in navbar by @jsit +- Merge branch 'main' into emoji-upload-button by @SleeplessOne1917 +- Merge branch 'main' into emoji-upload-button by @alectrocute +- Fix emojis being unable to save by @SleeplessOne1917 +- Merge branch 'main' into feat/vote-components by @jsit +- feat: Default language dropdowns to user's interface language by @jsit in [#1463](https://github.com/LemmyNet/lemmy-ui/pull/1463) +- fix: Empty commit to re-trigger Woodpecker by @jsit +- fix: Fix up some interface language logic and design by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @jsit +- fix: Use simpler syntax for languageId array by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @SleeplessOne1917 +- fix: Fix language selection bug by @jsit +- fix: Use Interface Language instead by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @jsit +- Merge branch 'main' into feat/default-to-user-primary-lang by @jsit +- feat: Default language dropdowns to user's primary language by @jsit +- Merge branch 'main' into feat/vote-components by @jsit +- Fix comments uncollapsing when they're not supposed to by @SleeplessOne1917 in [#1540](https://github.com/LemmyNet/lemmy-ui/pull/1540) +- Remove federation worker count by @SleeplessOne1917 in [#1541](https://github.com/LemmyNet/lemmy-ui/pull/1541) +- Remove federation worker count by @cetra3 +- fix: Add triangle alert icon to language warning by @SleeplessOne1917 in [#1534](https://github.com/LemmyNet/lemmy-ui/pull/1534) +- Merge branch 'main' into fix/add-aria-describedby-lang-warn by @jsit +- fix: Add aria-describedby for language warning by @SleeplessOne1917 in [#1533](https://github.com/LemmyNet/lemmy-ui/pull/1533) +- fix: Add triangle alert icon to language warning by @jsit +- Merge branch 'main' into fix/add-aria-describedby-lang-warn by @SleeplessOne1917 +- Refactor first load handling by @SleeplessOne1917 in [#1529](https://github.com/LemmyNet/lemmy-ui/pull/1529) +- Merge branch 'main' into first-load-refactor by @SleeplessOne1917 +- added litely-compact and darkly-compact - issue 552 by @SleeplessOne1917 in [#1438](https://github.com/LemmyNet/lemmy-ui/pull/1438) +- Merge branch 'LemmyNet:main' into added-darkly-compact-552 by @dankxiaobong +- Merge branch 'main' into added-darkly-compact-552 by @dankxiaobong +- Merge branch 'LemmyNet:main' into added-darkly-compact-552 by @dankxiaobong +- Merge branch 'LemmyNet:main' into added-darkly-compact-552 by @dankxiaobong +- Merge branch 'main' into added-darkly-compact-552 by @dankxiaobong +- Merge branch 'main' into added-darkly-compact-552 by @dankxiaobong +- added litely-compact by @dankxiaobong +- changed where custom compact code goes by @dankxiaobong +- added darkly-compact - issue 552 by @dankxiaobong +- Refactor first load handling by @SleeplessOne1917 +- Fix issue when navigating awat from settings by @SleeplessOne1917 in [#1528](https://github.com/LemmyNet/lemmy-ui/pull/1528) +- Fix issue when navigating awat from settings by @SleeplessOne1917 +- Cache post listings and restore listing state when using browser back navigation buttons. by @SleeplessOne1917 in [#1526](https://github.com/LemmyNet/lemmy-ui/pull/1526) +- Merge branch 'main' into feature/home-scroll-restoration by @dudeami0 +- Replace MomentJS with Date-Fns (Retry) by @SleeplessOne1917 in [#1517](https://github.com/LemmyNet/lemmy-ui/pull/1517) +- Give function better name by @SleeplessOne1917 +- Merge branch 'main' into reduce-bundle by @SleeplessOne1917 +- Change function name by @SleeplessOne1917 +- Make date distance format use correct verbiage by @SleeplessOne1917 +- Extract date fns setup by @SleeplessOne1917 +- Merge branch 'main' into reduce-bundle by @SleeplessOne1917 +- Remove unused dep by @SleeplessOne1917 +- Replace momentjs with date-fns by @SleeplessOne1917 +- Cache post listings and restore listing state when using browser back navigation buttons. by @dudeami0 +- fix: Add aria-describedby for language warning by @jsit +- Merge remote-tracking branch 'origin/main' into feat/vote-components by @jsit +- Fix homepage `scrollTo(0, 0)` failing when document size changes. by @SleeplessOne1917 in [#1515](https://github.com/LemmyNet/lemmy-ui/pull/1515) +- Merge remote-tracking branch 'upstream/main' into fix/home-scrollTo by @dudeami0 + +## New Contributors + +- @cetra3 made their first contribution +- @dankxiaobong made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0...v0.18.1-rc.1 + +## What's Changed in v0.18.0 + +- v0.18.0 by @dessalines +- Fix homepage `scrollTo(0, 0)` failing when document size changes. by @dudeami0 + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.8...v0.18.0 + +## What's Changed in v0.18.0-rc.8 + +- v0.18.0-rc.8 by @dessalines +- Fix server-side rendering after first load. by @SleeplessOne1917 in [#1509](https://github.com/LemmyNet/lemmy-ui/pull/1509) +- Moved `!isBrowser()` check to `FirstLoadServer.isFirstLoad` by @dudeami0 +- Fix server-side rendering after first load. by @dudeami0 +- fix: Specify vote content type so buttons work for both comments and posts by @jsit +- v0.18.0 by @dessalines +- Fix homepage `scrollTo(0, 0)` failing when document size changes. by @dudeami0 +- v0.18.0-rc.8 by @dessalines +- Moved `!isBrowser()` check to `FirstLoadServer.isFirstLoad` by @dudeami0 +- Fix server-side rendering after first load. by @dudeami0 +- fix!: Try to get Vote Buttons component working in Comments by @jsit +- fix: Remove unused prop by @jsit +- Merge branch 'main' into feat/vote-components by @jsit +- Remove `noIndent` prop from comment nodes on person view by @alectrocute in [#1491](https://github.com/LemmyNet/lemmy-ui/pull/1491) +- Fix inability to navigate to `Home` from `Settings` routes by @alectrocute in [#1506](https://github.com/LemmyNet/lemmy-ui/pull/1506) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.7...v0.18.0-rc.8 + +## What's Changed in v0.18.0-rc.7 + +- v0.18.0-rc.7 by @dessalines +- Remove bullet list items from `ISSUE_TEMPLATE` by @SleeplessOne1917 in [#1504](https://github.com/LemmyNet/lemmy-ui/pull/1504) +- Merge branch 'main' into actually-last-issue-template-tweaks by @alectrocute +- Minor `ISSUE_TEMPLATE` cleanup by @alectrocute in [#1493](https://github.com/LemmyNet/lemmy-ui/pull/1493) +- Fix broken `BUG_REPORT.yml` template by @alectrocute in [#1492](https://github.com/LemmyNet/lemmy-ui/pull/1492) +- Fix `Modlog` refetch on component mount by @alectrocute in [#1490](https://github.com/LemmyNet/lemmy-ui/pull/1490) +- remove bullet list items by @alectrocute +- Update `ISSUE_TEMPLATE` config by @alectrocute in [#1478](https://github.com/LemmyNet/lemmy-ui/pull/1478) +- Merge branch 'main' into update-issue-template by @alectrocute +- make suggested changes by @alectrocute +- change verbiage by @alectrocute +- good catch by @alectrocute +- make suggested changes by @alectrocute +- Merge branch 'update-issue-template' of https://github.com/alectrocute/lemmy-ui into update-issue-template by @alectrocute +- Merge branch 'main' into update-issue-template by @alectrocute +- add emojis back to ISSUE_TEMPLATE by @alectrocute +- formatting ISSUE_TEMPLATE by @alectrocute +- update issue template by @alectrocute +- fix: Rework some vote buttons architecture by @jsit +- Merge remote-tracking branch 'origin/main' into feat/vote-components by @jsit +- feat: Add post body preview to desktop by @SleeplessOne1917 in [#1455](https://github.com/LemmyNet/lemmy-ui/pull/1455) +- Merge remote-tracking branch 'origin/main' into feat/add-post-body-preview-to-desktop by @jsit +- fix: Add post body preview to desktop post listing view by @jsit +- fix: Fix i18n UserService import issue by @jsit +- fix: Undo some other extraneous changes by @jsit +- fix: Undo some extraneous changes by @jsit +- fix: Remove tippy duplicate functions by @jsit +- Merge remote-tracking branch 'origin/main' into feat/vote-components by @jsit +- Convert Lemmy and KBin community and user references into local instance links by @SleeplessOne1917 in [#1462](https://github.com/LemmyNet/lemmy-ui/pull/1462) +- Merge branch 'main' into main by @SleeplessOne1917 +- Adding jsit to codeowners. by @dessalines +- Fix video embeds by @SleeplessOne1917 in [#1479](https://github.com/LemmyNet/lemmy-ui/pull/1479) +- Merge branch 'main' into fix-video-embeds-on-posts by @alectrocute +- bandaid fix our video embeds by @alectrocute +- Cleanup, only check for /u/ if /c/ and /m/ checks fail by @Zetaphor +- Rename function to be more generic, since it parses users by @Zetaphor +- Merge branch 'main' into main by @Zetaphor +- Enable users to zoom on mobile by @SleeplessOne1917 in [#1474](https://github.com/LemmyNet/lemmy-ui/pull/1474) +- Merge branch 'main' into enable-zoom by @SleeplessOne1917 +- Fix avatar alignment issue by @SleeplessOne1917 in [#1475](https://github.com/LemmyNet/lemmy-ui/pull/1475) +- Merge branch 'enable-zoom' of https://github.com/LemmyNet/lemmy-ui into enable-zoom by @SleeplessOne1917 +- Merge branch 'main' into enable-zoom by @SleeplessOne1917 +- Omit user-scalable to use default by @SleeplessOne1917 +- Enable users to zoom on mobile by @SleeplessOne1917 +- Typescript linter fixes by @Zetaphor +- Remove pipe from community link regex by @Zetaphor +- Add missing classes by @Zetaphor +- Use shorter regex in community link parser by @Zetaphor +- Move regex pattern to config by @Zetaphor +- Update community link markdown parsing by @Zetaphor +- Update getHttpBase dependency reference by @Zetaphor +- Merge branch 'main' into main by @Zetaphor +- Remove scroll position set/get for `Community` and `Home` by @SleeplessOne1917 in [#1472](https://github.com/LemmyNet/lemmy-ui/pull/1472) +- Merge branch 'main' into grave-scroll-issue-bugfix by @alectrocute +- Feature add hours as sorting options frontend by @SleeplessOne1917 in [#1345](https://github.com/LemmyNet/lemmy-ui/pull/1345) +- Merge branch 'main' into main by @L3v3L +- Add fallback `style` tag for theme if backend offline by @SleeplessOne1917 in [#1469](https://github.com/LemmyNet/lemmy-ui/pull/1469) +- rethink it a bit by @alectrocute +- add fallback style tag by @alectrocute +- Merge branch 'main' into main by @L3v3L +- prettier by @L3v3L +- woodpecker trigger by @L3v3L +- woodpecker trigger by @L3v3L +- Merge branch 'main' into main by @L3v3L +- woodpecker trigger by @L3v3L +- Merge remote-tracking branch 'upstream/main' into main by @L3v3L +- Merge branch 'main' into main by @L3v3L +- refactor if into switch case by @L3v3L +- Merge branch 'main' of github.com:L3v3L/lemmy-ui into main by @L3v3L +- Merge branch 'main' into main by @SleeplessOne1917 +- Merge branch 'main' into main by @L3v3L +- clean code by @L3v3L +- add hours as sorting options by @L3v3L +- rethink it a bit by @alectrocute +- Merge branch 'main' into main by @Zetaphor +- Add community link class by @Zetaphor +- Add local community link parser plugin for Markdown-It by @Zetaphor +- fix: Revert to old mobile vote style by @jsit +- feat: Move vote buttons to separate component by @jsit +- Organize `env.ts` files into `@utils/env` by @SleeplessOne1917 in [#1468](https://github.com/LemmyNet/lemmy-ui/pull/1468) +- fix merge conflicts by @alectrocute +- Fix capitalization on post "Lock" button by @alectrocute in [#1467](https://github.com/LemmyNet/lemmy-ui/pull/1467) +- Fix buildThemeList() function to ensure no duplicates by @scme0 in [#1466](https://github.com/LemmyNet/lemmy-ui/pull/1466) + +## New Contributors + +- @L3v3L made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.6...v0.18.0-rc.7 + +## What's Changed in v0.18.0-rc.6 + +- v0.18.0-rc.6 by @dessalines +- Fix grave `ReferenceError: fetch is not defined` error by @alectrocute in [#1460](https://github.com/LemmyNet/lemmy-ui/pull/1460) +- move env utils into folder by @alectrocute +- Regenerate manifest on HTTPBase external change by @SleeplessOne1917 in [#1459](https://github.com/LemmyNet/lemmy-ui/pull/1459) +- Fix I18 next circular reference by @SleeplessOne1917 in [#1456](https://github.com/LemmyNet/lemmy-ui/pull/1456) +- Merge branch 'main' into remove-i18-circle by @SleeplessOne1917 +- (Hopefully) fix webmanifest different origin issue by @SleeplessOne1917 in [#1457](https://github.com/LemmyNet/lemmy-ui/pull/1457) +- Expand video embeds to fullwidth by @SleeplessOne1917 in [#1437](https://github.com/LemmyNet/lemmy-ui/pull/1437) +- Merge branch 'main' into expand-video-embeds-to-fullwidth by @SleeplessOne1917 + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.5...v0.18.0-rc.6 + +## What's Changed in v0.18.0-rc.5 + +- v0.18.0-rc.5 by @dessalines +- remove embed prefix until a translation can be added by @cloventt +- Merge branch 'main' into expand-video-embeds-to-fullwidth by @cloventt +- Merge branch 'main' into expand-video-embeds-to-fullwidth by @cloventt +- Merge branch 'main' into expand-video-embeds-to-fullwidth by @cloventt +- add a prefix to hint to screenreaders what this iframe is by @cloventt +- wrap video embeds in the ratio container by @cloventt +- Fix I18 next circular reference by @SleeplessOne1917 +- fix: Fix i18n UserService import issue by @SleeplessOne1917 in [#1453](https://github.com/LemmyNet/lemmy-ui/pull/1453) +- Merge branch 'main' into fix/fix-i18n-user-service-import by @SleeplessOne1917 +- Commenting out markdown_it_emoji, because it breaks bolds. by @SleeplessOne1917 in [#1448](https://github.com/LemmyNet/lemmy-ui/pull/1448) +- Merge branch 'main' into remove_markdown_it_emoji by @dessalines +- Merge branch 'main' into remove_markdown_it_emoji by @SleeplessOne1917 +- Merge branch 'main' into remove_markdown_it_emoji by @SleeplessOne1917 +- Commenting out markdown_it_emoji, because it breaks bolds. by @dessalines +- fix: Fix i18n UserService import issue by @jsit +- `utils.ts` organization, round two by @alectrocute in [#1427](https://github.com/LemmyNet/lemmy-ui/pull/1427) +- Cleaning up new comment badge. Fixes #1443 by @SleeplessOne1917 in [#1449](https://github.com/LemmyNet/lemmy-ui/pull/1449) +- Merge branch 'main' into fix_new_comments_badge by @SleeplessOne1917 +- Centering emojimart in view. by @SleeplessOne1917 in [#1447](https://github.com/LemmyNet/lemmy-ui/pull/1447) +- Merge branch 'main' into center_emojis by @SleeplessOne1917 +- Centering emojimart in view. by @dessalines +- Merge branch 'main' into fix_new_comments_badge by @SleeplessOne1917 +- Upgrade lemmy-js-client to `0.18.0-rc.2` by @dessalines in [#1445](https://github.com/LemmyNet/lemmy-ui/pull/1445) +- Cleaning up new comment badge. Fixes #1443 by @dessalines +- Remove docs translations from links by @Nutomic in [#1441](https://github.com/LemmyNet/lemmy-ui/pull/1441) + +## New Contributors + +- @cloventt made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.4...v0.18.0-rc.5 + +## What's Changed in v0.18.0-rc.4 + +- v0.18.0-rc.4 by @dessalines +- fix(tabs): Fix tab semantics and a11y by @jsit in [#1382](https://github.com/LemmyNet/lemmy-ui/pull/1382) +- fix: Fix Communities search/filter header #1417 by @dessalines in [#1435](https://github.com/LemmyNet/lemmy-ui/pull/1435) +- Merge branch 'main' into fix/1417-communities-search-layout by @dessalines +- Post form adj by @dessalines in [#1442](https://github.com/LemmyNet/lemmy-ui/pull/1442) +- Fixing handlePostNsfwChange. by @dessalines +- fix: Small adjustments to create post form by @dessalines in [#1436](https://github.com/LemmyNet/lemmy-ui/pull/1436) +- fix: Small adjustments to create post form by @jsit +- Merge branch 'main' into fix/1417-communities-search-layout by @dessalines +- fix: Remove Bootstrap JS in sidebars by @jsit in [#1434](https://github.com/LemmyNet/lemmy-ui/pull/1434) +- Store manifest in memory so it does not need to be generated for every page request by @SleeplessOne1917 in [#1433](https://github.com/LemmyNet/lemmy-ui/pull/1433) +- Com create post by @SleeplessOne1917 in [#1431](https://github.com/LemmyNet/lemmy-ui/pull/1431) +- fix: Fix Communities search/filter header #1417 by @jsit +- feat: Hide 'comments' in post listing comments button by @SleeplessOne1917 in [#1429](https://github.com/LemmyNet/lemmy-ui/pull/1429) +- Merge branch 'main' into feat/shorten-comments-button-text by @SleeplessOne1917 +- Fix mobile navbar bug by @SleeplessOne1917 in [#1428](https://github.com/LemmyNet/lemmy-ui/pull/1428) +- fix loading custom themes with a custom LEMMY_UI_EXTRA_THEMES_FOLDER by @SleeplessOne1917 in [#1325](https://github.com/LemmyNet/lemmy-ui/pull/1325) +- Merge branch 'main' into patch-1 by @SleeplessOne1917 +- feat: Drop dependency for tsconfig-paths-webpack-plugin by @SleeplessOne1917 in [#1426](https://github.com/LemmyNet/lemmy-ui/pull/1426) +- feat: Drop dependency for tsconfig-paths-webpack-plugin by @jsit +- Merge branch 'main' into patch-1 by @n3oney +- fix: fix loading custom themes with a custom LEMMY_UI_EXTRA_THEMES_FOLDER by @n3oney +- feat: Hide 'comments' in post listing comments button; icon and title text is clear by @jsit +- Organize `utils.ts` into folder, update imports by @SleeplessOne1917 in [#1332](https://github.com/LemmyNet/lemmy-ui/pull/1332) +- Merge branch 'main' into breakout-role-utils by @SleeplessOne1917 +- Component classes v2 by @SleeplessOne1917 in [#1421](https://github.com/LemmyNet/lemmy-ui/pull/1421) +- Merge branch 'main' into feat/component-classes-v2 by @SleeplessOne1917 +- Fix `main.css` variables by @alectrocute in [#1424](https://github.com/LemmyNet/lemmy-ui/pull/1424) +- component classes v2 by @djvs +- Merge branch 'main' into breakout-role-utils by @alectrocute + +## New Contributors + +- @n3oney made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.3...v0.18.0-rc.4 + +## What's Changed in v0.18.0-rc.3 + +- v0.18.0-rc.3 by @dessalines +- forgot an import by @alectrocute +- add tsconfigpathsplugin to resolve by @alectrocute +- Merge branch 'breakout-role-utils' of https://github.com/alectrocute/lemmy-ui into breakout-role-utils by @alectrocute +- Merge branch 'main' into breakout-role-utils by @alectrocute + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-beta.9...v0.18.0-rc.3 + +## What's Changed in v0.18.0-beta.9 + +- v0.18.0-beta.9 by @dessalines +- feat: Bootstrap 5 by @jsit in [#1378](https://github.com/LemmyNet/lemmy-ui/pull/1378) +- Add scripts to make managing translations easier by @SleeplessOne1917 in [#1414](https://github.com/LemmyNet/lemmy-ui/pull/1414) +- fix: Shrink and normalize some post action button colors and sizes by @SleeplessOne1917 in [#1409](https://github.com/LemmyNet/lemmy-ui/pull/1409) +- Merge branch 'main' into fix/fix-post-action-button-sizes by @SleeplessOne1917 +- Fix redirect after successful password reset by @SleeplessOne1917 in [#1412](https://github.com/LemmyNet/lemmy-ui/pull/1412) +- Fix redirect after successful password reset by @sunaurus +- fix: Shrink and normalize some post action button colors and sizes by @jsit +- make suggested changes by @alectrocute +- Merge branch 'breakout-role-utils' of https://github.com/alectrocute/lemmy-ui into breakout-role-utils by @alectrocute +- Merge branch 'main' into breakout-role-utils by @alectrocute +- Fix language missing class. by @SleeplessOne1917 in [#1392](https://github.com/LemmyNet/lemmy-ui/pull/1392) +- Merge branch 'main' into fix_language_select_custom by @SleeplessOne1917 +- Fixing missing class for language select. by @dessalines +- Updating translations. by @dessalines +- make suggested changes by @alectrocute +- update imports by @alectrocute +- Merge branch 'breakout-role-utils' of https://github.com/alectrocute/lemmy-ui into breakout-role-utils by @alectrocute +- Merge branch 'main' into breakout-role-utils by @SleeplessOne1917 +- fix(themes): Litely Red was importing the wrong vars by @SleeplessOne1917 in [#1399](https://github.com/LemmyNet/lemmy-ui/pull/1399) +- Merge branch 'main' into fix/fix-wrong-litely-red-import by @SleeplessOne1917 +- fix(a11y): Add aria-label to featured pins by @SleeplessOne1917 in [#1354](https://github.com/LemmyNet/lemmy-ui/pull/1354) +- Merge branch 'main' into fix/add-aria-label-to-featured-pins by @SleeplessOne1917 +- Merge remote-tracking branch 'origin/main' into fix/add-aria-label-to-featured-pins by @jsit +- fix: Fix display inline of post title by @jsit +- fix: Only post title should be inside h5, not the additional metadata icons by @jsit +- fix: Use btn-sm for advanced menu dropdown buttons by @jsit +- fix: Remove some extra classes on flag/report buttons by @jsit +- fix: Fix vertical alignment and border radius of advanced dropdown menu items by @jsit +- fix(a11y): Add aria-controls for advanced button dropdown by @jsit +- fix: Fix some button labels and tippy text by @jsit +- Empty commit to re-trigger Woodpecker job by @jsit +- fix: Remove unused var by @jsit +- feat: Move advanced post menu into dropdown by @jsit +- Merge branch 'main' into fix/add-aria-label-to-featured-pins by @SleeplessOne1917 +- Merge branch 'main' into fix/add-aria-label-to-featured-pins by @jsit +- Merge branch 'main' into fix/add-aria-label-to-featured-pins by @SleeplessOne1917 +- Empty commit to re-trigger Woodpecker job by @jsit +- fix(a11y): Add aria-label to fetaured pins by @jsit +- fix: Litely Red was importing the wrong vars by @jsit +- export default everything, will fix type errors next by @alectrocute +- fix missing imports by @alectrocute +- Merge branch 'main' into breakout-role-utils by @dessalines +- fix: Always show advanced post buttons dropdown by @SleeplessOne1917 in [#1398](https://github.com/LemmyNet/lemmy-ui/pull/1398) +- fix: Always show advanced post buttons dropdown by @jsit + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.18.0-rc.2...v0.18.0-beta.9 + +## What's Changed in v0.18.0-rc.2 + +- v0.18.0-rc.2 by @dessalines +- feat(post): Move post domain beneath post title by @jsit in [#1363](https://github.com/LemmyNet/lemmy-ui/pull/1363) +- Merge branch 'main' into breakout-role-utils by @dessalines +- Changed some text in feature request template by @SleeplessOne1917 in [#1386](https://github.com/LemmyNet/lemmy-ui/pull/1386) +- Updated link to lemmy-repo as direct link to issues by @krestenlaust +- Merge branch 'main' into main by @SleeplessOne1917 +- feat(css): make vertical rhythm more consistent for post listings by @SleeplessOne1917 in [#1383](https://github.com/LemmyNet/lemmy-ui/pull/1383) +- feat(css): make vertical rhythm more consistent for post listings by @ayan4m1 +- Changed text in feature request template by @krestenlaust +- fix: Fix post creator text alignment by @SleeplessOne1917 in [#1373](https://github.com/LemmyNet/lemmy-ui/pull/1373) +- Merge branch 'main' into fix/fix-post-creator-alignment by @jsit +- fix(post): Fix missing labels on block/report buttons in new dropdown by @SleeplessOne1917 in [#1377](https://github.com/LemmyNet/lemmy-ui/pull/1377) +- Merge branch 'main' into fix/add-labels-to-block-report by @jsit +- fix(post): Fix missing labels on block/report buttons in new dropdown by @jsit +- Merge branch 'main' into fix/fix-post-creator-alignment by @SleeplessOne1917 +- fix: Fix too-intense hr color between posts by @SleeplessOne1917 in [#1376](https://github.com/LemmyNet/lemmy-ui/pull/1376) +- Merge branch 'main' into fix/fix-intense-hr-color by @SleeplessOne1917 +- fix: Add compiled theme stylesheets by @jsit +- fix: Fix too-intense hr color between posts by @jsit +- fix: Use classnames by @jsit +- Merge remote-tracking branch 'origin/main' into fix/fix-post-creator-alignment by @jsit +- fix: Prettier ignore generated themes, as they aren't written by humans by @SleeplessOne1917 in [#1372](https://github.com/LemmyNet/lemmy-ui/pull/1372) +- Merge branch 'main' into fix/prettier-ignore-generated-themes by @SleeplessOne1917 +- feat: Badge-ify NSFW and removed by mod title info by @SleeplessOne1917 in [#1370](https://github.com/LemmyNet/lemmy-ui/pull/1370) +- feat: Badge-ify NSFW and removed by mod title info by @jsit +- fix: Prettier ignore generated themes, as they aren't written by humans by @jsit +- chore: Empty commit to retrigger Woodpecker job by @jsit +- fix: Fix post creator text alignment by @jsit +- feat: Move advanced post menu into dropdown by @SleeplessOne1917 in [#1362](https://github.com/LemmyNet/lemmy-ui/pull/1362) +- Merge branch 'main' into feat/move-advanced-post-menu-into-dropdown by @SleeplessOne1917 +- fix: Only post title should be inside h5, not the additional metadata icons by @SleeplessOne1917 in [#1353](https://github.com/LemmyNet/lemmy-ui/pull/1353) +- Merge branch 'main' into fix/fix-post-title-element by @SleeplessOne1917 +- Don't hide "show NSFW" checkbox on instances that have NSFW disabled by @SleeplessOne1917 in [#1366](https://github.com/LemmyNet/lemmy-ui/pull/1366) +- Merge branch 'main' into main by @SleeplessOne1917 +- Always allow users to control whether they see NSFW content by @sunaurus +- Merge branch 'main' into fix/fix-post-title-element by @jsit +- fix: Fix display inline of post title by @jsit +- Merge branch 'main' into fix/fix-post-title-element by @jsit +- fix: Only post title should be inside h5, not the additional metadata icons by @jsit +- Merge branch 'main' into feat/move-advanced-post-menu-into-dropdown by @jsit +- fix(a11y): Fix some a11y issues in Site Sidebar and use native Bootstrap Collapse and Card classes by @SleeplessOne1917 in [#1355](https://github.com/LemmyNet/lemmy-ui/pull/1355) +- Merge branch 'main' into fix/site-sidebar-collapse by @SleeplessOne1917 +- feat(a11y): Add eslint-plugin-jsx-a11y by @SleeplessOne1917 in [#1358](https://github.com/LemmyNet/lemmy-ui/pull/1358) +- feat(a11y): Add eslint-plugin-jsx-a11y by @jsit +- fix: Fix build error by @jsit +- chore: Empty commit to re-trigger woodpecker job by @jsit +- fix: Remove unused var by @jsit +- Merge branch 'main' into fix/site-sidebar-collapse by @jsit +- fix: Fix some small style issues by @jsit +- fix: Fix Trending sidebar card too by @jsit +- fix: Cleaner logic by @jsit +- fix(a11y): Fix some mobile styles for Sidebar Cards by @jsit +- fix(a11y): Apply same accordion/collapse markup to Subscribed Communities sidebar card by @jsit +- fix: Add .accordion wrapper around sidebar to obtain negative bottom margin by @jsit +- fix(a11y): Fix some a11y issues in Site Sidebar and use native Bootstrap Collapse and Card classes by @jsit +- fix: Use btn-sm for advanced menu dropdown buttons by @jsit +- fix: Remove some extra classes on flag/report buttons by @jsit +- fix: Fix vertical alignment and border radius of advanced dropdown menu items by @jsit +- fix(a11y): Add aria-controls for advanced button dropdown by @jsit +- fix: Fix some button labels and tippy text by @jsit +- Empty commit to re-trigger Woodpecker job by @jsit +- fix: Remove unused var by @jsit +- feat: Move advanced post menu into dropdown by @jsit +- Refactor/tidy server by @SleeplessOne1917 in [#1322](https://github.com/LemmyNet/lemmy-ui/pull/1322) +- Merge branch 'main' into refactor-server-tidy by @SleeplessOne1917 +- fix: Remove some unused vars by @SleeplessOne1917 in [#1352](https://github.com/LemmyNet/lemmy-ui/pull/1352) +- Merge branch 'main' into chore/sass-cleanup by @SleeplessOne1917 +- fix: Remove some unused vars by @jsit +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- chore: Sass cleanup by @SleeplessOne1917 in [#1351](https://github.com/LemmyNet/lemmy-ui/pull/1351) +- Merge branch 'main' into chore/sass-cleanup by @SleeplessOne1917 +- fix: Fix some references to ; they should refer to a specific gray in case changes by @jsit +- fix: Move var to grays area by @jsit +- fix: Fix broken theme overrides; group theme variable files by variable type by @jsit +- Merge branch 'main' into refactor-server-tidy by @SleeplessOne1917 +- chore: Theme sass cleanup by @SleeplessOne1917 in [#1343](https://github.com/LemmyNet/lemmy-ui/pull/1343) +- Merge branch 'main' into chore/sass-cleanup by @SleeplessOne1917 +- fix: Fix input-bg for darkly theme by @jsit +- chore: Fix a missing theme color by @jsit +- chore: Remove some more redundancies by @jsit +- chore: Remove some more redundancies by @jsit +- chore: Fix vars by @jsit +- Merge remote-tracking branch 'origin/main' into chore/sass-cleanup by @jsit +- chore: Remove some redundant Sass variable declarations and re-organize them by @jsit +- fix: Fix imports by @jsit +- fix merge conflicts by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @dessalines +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- Merge branch 'main' into refactor-server-tidy by @alectrocute +- formatting by @alectrocute +- use tsx ext only when needed by @alectrocute +- refactor server, tidy up, use handlers/middleware/utils pattern by @alectrocute +- fix accidental changes by @alectrocute +- remove comments by @alectrocute +- Merge branch 'main' into breakout-role-utils by @alectrocute +- Add default profile picture for users who do not set one by @SleeplessOne1917 in [#1339](https://github.com/LemmyNet/lemmy-ui/pull/1339) +- feat(navbar): Add labels for navbar items on mobile in [#1323](https://github.com/LemmyNet/lemmy-ui/pull/1323) +- fix: Fix rounded top corners in markdown textarea by @SleeplessOne1917 in [#1344](https://github.com/LemmyNet/lemmy-ui/pull/1344) +- fix: Fix rounded top corners in markdown textarea by @jsit +- Revert "fix: Sass files don't need to refer to full node_modules path" by @SleeplessOne1917 in [#1342](https://github.com/LemmyNet/lemmy-ui/pull/1342) +- Revert "fix: Sass files don't need to refer to full node_modules path" by @jsit +- fix: Sass files don't need to refer to full node_modules path by @SleeplessOne1917 in [#1341](https://github.com/LemmyNet/lemmy-ui/pull/1341) +- fix: Sass files don't need to refer to full node_modules path by @jsit +- fix: Remove inline styles and use Bootstrap classes by @SleeplessOne1917 in [#1340](https://github.com/LemmyNet/lemmy-ui/pull/1340) +- Merge branch 'main' into fix/markdown-bootstrap-classes by @jsit +- feat: Add Badges common component by @SleeplessOne1917 in [#1336](https://github.com/LemmyNet/lemmy-ui/pull/1336) +- Merge branch 'main' into feat/add-badges-common-component by @jsit +- Merge branch 'main' into feat/add-badges-common-component by @jsit +- fix: Fix missing prop by @jsit +- Merge branch 'main' into feat/add-badges-common-component by @SleeplessOne1917 +- fix: Add total users in site sidebar by @jsit +- fix: Re-add 'number of communities' to site sidebar by @jsit +- fix: Fix broken link by @jsit +- Merge remote-tracking branch 'origin/main' into feat/add-badges-common-component by @jsit +- feat: Move Badges to common component by @jsit +- fix: Remove inline styles and use Bootstrap classes by @jsit +- Fixed NSFW image blur spilling outside the preview by @SleeplessOne1917 in [#1251](https://github.com/LemmyNet/lemmy-ui/pull/1251) +- Merge branch 'main' into fix-nsfw-blur-spill by @SleeplessOne1917 +- Route data refactor by @SleeplessOne1917 in [#1043](https://github.com/LemmyNet/lemmy-ui/pull/1043) +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Generate theme css by @SleeplessOne1917 in [#1246](https://github.com/LemmyNet/lemmy-ui/pull/1246) +- Merge branch 'main' into generate-theme-css by @SleeplessOne1917 +- Merge branch 'main' into generate-theme-css by @SleeplessOne1917 +- Merge branch 'main' into generate-theme-css by @SleeplessOne1917 +- Merge branch 'main' into generate-theme-css by @SleeplessOne1917 +- Fixed color scheme variables of litely-red by @fheft +- Merge branch 'main' into generate-theme-css by @SleeplessOne1917 +- Recompiled theme files using latest Bootstrap 4 by @fheft +- Added npm scripts to rebuild theme files by @fheft +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- 1117 jump to main content by @SleeplessOne1917 in [#1158](https://github.com/LemmyNet/lemmy-ui/pull/1158) +- Merge branch 'main' into 1117-jump-to-main-content by @SleeplessOne1917 +- feat: Move text formatting bar above textarea by @SleeplessOne1917 in [#1334](https://github.com/LemmyNet/lemmy-ui/pull/1334) +- Merge branch 'main' into feat/markdown-format-bar-above by @SleeplessOne1917 +- Merge branch 'main' into feat/markdown-format-bar-above by @jsit +- fix: Fix rounded textarea in Markdown box by @jsit +- feat: Fix some colors on dark mode by @jsit +- feat: Redesign the format bar / textarea into a single bordered area with divider by @jsit +- feat: Move text formatting bar above textarea by @jsit +- feat: Adds Jump to main content functionality by @skspade +- chore: ensures validURL function does not throw exception by @skspade +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Fix first loads not working by @SleeplessOne1917 +- Cleanup by @SleeplessOne1917 +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Merge branch 'main' into route-data-refactor by @SleeplessOne1917 +- Refactor route data by @SleeplessOne1917 +- Merge branch 'main' into fix-nsfw-blur-spill by @SleeplessOne1917 +- fix: Vertically align icons in post listing by @SleeplessOne1917 in [#1337](https://github.com/LemmyNet/lemmy-ui/pull/1337) +- fix: Vertically align icons in post listing by @jsit +- Merge branch 'main' into fix-nsfw-blur-spill by @SleeplessOne1917 +- Merge branch 'main' into fix-nsfw-blur-spill by @dessalines +- Merge branch 'main' into fix-nsfw-blur-spill by @dessalines +- Removed duplicated CSS rule by @fheft +- Merge branch 'main' into fix-nsfw-blur-spill by @SleeplessOne1917 +- Fixed NSFW image blur spilling outside the preview by @fheft +- and of course, yarn.lock by @alectrocute +- hopefully last merge fiasco cleanup by @alectrocute +- more cleanup by @alectrocute +- even more cleanup by @alectrocute +- more cleanup by @alectrocute +- attempt to fix crazy merge fiasco by @alectrocute +- Merge branch 'LemmyNet:main' into breakout-role-utils by @alectrocute +- Fix infinite spinner for login that results in failure by @SleeplessOne1917 in [#1305](https://github.com/LemmyNet/lemmy-ui/pull/1305) +- Merge branch 'main' into feature/login-error by @SleeplessOne1917 +- Add semantic ID's and classes to improve theming/userscript experience by @SleeplessOne1917 in [#1327](https://github.com/LemmyNet/lemmy-ui/pull/1327) +- Remove extra div in post sidebar by @Zetaphor +- Add a class to the more button on a comment node by @Zetaphor +- Merge branch 'feature/add-ids-and-classes' of github.com:Zetaphor/lemmy-ui into feature/add-ids-and-classes by @Zetaphor +- Merge branch 'main' into feature/add-ids-and-classes by @SleeplessOne1917 +- Switch navbar classes to ids by @Zetaphor +- Merge branch 'LemmyNet:main' into feature/add-ids-and-classes by @Zetaphor +- Use aside semantic HTML tag for sidebars by @Zetaphor +- Use article semantic HTML tag for posts/comments by @Zetaphor +- Use footer semantic HTML tag by @Zetaphor +- Add lemmy-site class for easier detection by @Zetaphor +- Merge branch 'main' into feature/add-ids-and-classes by @Zetaphor +- Add ID's and classes to sidebars by @Zetaphor +- Add clases and ID's to post form/listing by @Zetaphor +- Add classes to post and comment repy textareas by @Zetaphor +- Rename markdown-textarea ID's by @Zetaphor +- Add nav and footer ID's by @Zetaphor +- handle login failures correctly by @ayan4m1 +- wrap login call in try/catch for error handling by @ayan4m1 +- Merge branch 'breakout-role-utils' of https://github.com/alectrocute/lemmy-ui into breakout-role-utils by @alectrocute +- pull latest main by @alectrocute +- forgot debounce by @alectrocute +- reset, merge issues by @alectrocute +- Merge branch 'main' into breakout-role-utils by @alectrocute +- V18.0 additions by @dessalines in [#1324](https://github.com/LemmyNet/lemmy-ui/pull/1324) +- Adding codeowners. by @dessalines +- fix "block community" functionality in sidebar by @jenterkin in [#1316](https://github.com/LemmyNet/lemmy-ui/pull/1316) +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui by @dessalines +- Admin Settings: Bugfixes by @alectrocute in [#1313](https://github.com/LemmyNet/lemmy-ui/pull/1313) +- hardcoded node version due to bug "Text file busy" error introduced in node 20.3 by @peterwilli in [#1320](https://github.com/LemmyNet/lemmy-ui/pull/1320) +- Changed required checkbox in github template by @ludrol in [#1318](https://github.com/LemmyNet/lemmy-ui/pull/1318) +- Fix `CreatePost` infinite loading bug by @alectrocute in [#1311](https://github.com/LemmyNet/lemmy-ui/pull/1311) +- Make community IDs more easily selectable by @TheLastZombie in [#1306](https://github.com/LemmyNet/lemmy-ui/pull/1306) +- fix: Re-arrange elements beneath markdown textarea #1057 by @jsit in [#1288](https://github.com/LemmyNet/lemmy-ui/pull/1288) +- Match more specific locales to supported ones by @MageJohn in [#1241](https://github.com/LemmyNet/lemmy-ui/pull/1241) +- Improve the look of tables by @ayan4m1 in [#1299](https://github.com/LemmyNet/lemmy-ui/pull/1299) + +## New Contributors + +- @krestenlaust made their first contribution +- @jenterkin made their first contribution in [#1316](https://github.com/LemmyNet/lemmy-ui/pull/1316) +- @peterwilli made their first contribution in [#1320](https://github.com/LemmyNet/lemmy-ui/pull/1320) +- @ludrol made their first contribution in [#1318](https://github.com/LemmyNet/lemmy-ui/pull/1318) +- @TheLastZombie made their first contribution in [#1306](https://github.com/LemmyNet/lemmy-ui/pull/1306) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.18.0-rc.1...v0.18.0-rc.2 + +## What's Changed in 0.18.0-rc.1 + +- break out browser and helper methods by @alectrocute +- break out all role utils by @alectrocute +- feat(post-listing): Add link to post for mobile preview by @SleeplessOne1917 in [#1310](https://github.com/LemmyNet/lemmy-ui/pull/1310) +- Merge branch 'main' into main by @SleeplessOne1917 +- Go back to previous page after login by @SleeplessOne1917 in [#1309](https://github.com/LemmyNet/lemmy-ui/pull/1309) +- Merge branch 'main' into go-back-after-login by @alectrocute +- use .replace() instead by @alectrocute +- go back if last history action was push, fix bug preventing navigation to / working from login by @alectrocute +- feat(post-listing): Add link to post for mobile preview by @marcinmrozdisplate +- Prevent dragging zoom on mobile by @SleeplessOne1917 in [#1308](https://github.com/LemmyNet/lemmy-ui/pull/1308) +- Merge branch 'main' into add-user-scalable-no by @SleeplessOne1917 +- Fix
being almost invisible by @SleeplessOne1917 in [#1304](https://github.com/LemmyNet/lemmy-ui/pull/1304) +- remove explicit types by @ayan4m1 +- fix:
is almost invisible in darkly theme by @ayan4m1 +- add user-scalable=no to meta tag by @alectrocute +- Comment depth by @SleeplessOne1917 in [#1072](https://github.com/LemmyNet/lemmy-ui/pull/1072) +- Merge branch 'comment-depth' of https://github.com/LemmyNet/lemmy-ui into comment-depth by @SleeplessOne1917 +- Merge branch 'main' into comment-depth by @SleeplessOne1917 +- Address PR feedback by @SleeplessOne1917 +- Make comment border colors semi-transparent by @SleeplessOne1917 +- Merge branch 'main' into comment-depth by @SleeplessOne1917 +- Add checkboxes to issue template by @SleeplessOne1917 in [#1250](https://github.com/LemmyNet/lemmy-ui/pull/1250) +- Merge branch 'main' into issue-template-checkboxes by @SleeplessOne1917 +- Remove `pictrsDeleteToast` usage from `PostForm` by @SleeplessOne1917 in [#1284](https://github.com/LemmyNet/lemmy-ui/pull/1284) +- Merge branch 'main' into AA/remove-pictrsdeletetoast-from-postform by @SleeplessOne1917 +- Merge branch 'AA/remove-pictrsdeletetoast-from-postform' of https://github.com/alectrocute/lemmy-ui into AA/remove-pictrsdeletetoast-from-postform by @alectrocute +- Merge branch 'main' into AA/remove-pictrsdeletetoast-from-postform by @alectrocute +- make button a tad smaller by @alectrocute +- remove pictrsDeleteToast usage from PostForm, add delete image button, fix infinite loading bug if upload error occured by @alectrocute +- Merge branch 'main' into issue-template-checkboxes by @RayBB +- add instance url by @RayBB +- no comma by @RayBB +- reorder questions by @RayBB +- improve q for feature request by @RayBB +- make question clearer by @RayBB +- Update BUG_REPORT.yml by @RayBB +- prettier by @RayBB +- add checkboxes to feature requests by @RayBB +- required under label by @RayBB +- indent validations by @RayBB +- label array by @RayBB +- add checkboxes to issue template by @RayBB +- Merge branch 'main' into comment-depth by @SleeplessOne1917 +- Add missing tooltip for `cross-post` button on `PostListing` by @SleeplessOne1917 in [#1269](https://github.com/LemmyNet/lemmy-ui/pull/1269) +- Merge branch 'main' into AA/missing-tooltip-from-post-listing by @SleeplessOne1917 +- Remove whitespace from all username input fields by @SleeplessOne1917 in [#1265](https://github.com/LemmyNet/lemmy-ui/pull/1265) +- Merge branch 'main' into AA/trim-all-username-inputs by @SleeplessOne1917 +- Horizontally scrollable code blocks, instead of wrapping. by @SleeplessOne1917 in [#1261](https://github.com/LemmyNet/lemmy-ui/pull/1261) +- Merge branch 'main' into patch-1 by @SleeplessOne1917 +- Horizontally scrollable code blocks, instead of wrapping. by @camel-cdr +- Merge branch 'main' into AA/trim-all-username-inputs by @alectrocute +- trim all username state input by @alectrocute +- Merge branch 'main' into AA/missing-tooltip-from-post-listing by @alectrocute +- Fix bug preventing `CommunityForm` from being resubmitted after error by @SleeplessOne1917 in [#1264](https://github.com/LemmyNet/lemmy-ui/pull/1264) +- update prop name by @alectrocute +- handle loading state on community-form.tsx by @alectrocute +- adds missing tooltip by @alectrocute +- Add title to pictrs-image by @SleeplessOne1917 in [#1237](https://github.com/LemmyNet/lemmy-ui/pull/1237) +- Add title to pictrs-image by @Zetaphor +- Make the community title in the sidebar link to the local community. by @camporter in [#1161](https://github.com/LemmyNet/lemmy-ui/pull/1161) +- Fix prompt component by @SleeplessOne1917 in [#1223](https://github.com/LemmyNet/lemmy-ui/pull/1223) +- Fix mobile menu collapse bug by @SleeplessOne1917 in [#1222](https://github.com/LemmyNet/lemmy-ui/pull/1222) +- Fix unclickable button paddings by @SleeplessOne1917 in [#1195](https://github.com/LemmyNet/lemmy-ui/pull/1195) +- Merge branch 'main' into fix-button-click-area by @SleeplessOne1917 +- Fix avatar/icon aspect ratio by @SleeplessOne1917 in [#1210](https://github.com/LemmyNet/lemmy-ui/pull/1210) +- Merge branch 'main' into avatar-aspect-ratio-fix by @SleeplessOne1917 +- Another try at sanitize. by @dessalines in [#1208](https://github.com/LemmyNet/lemmy-ui/pull/1208) +- remove unused theme files by @RayBB in [#1202](https://github.com/LemmyNet/lemmy-ui/pull/1202) +- issue templates in yml format by @RayBB in [#1211](https://github.com/LemmyNet/lemmy-ui/pull/1211) +- Make preview button say "edit" when in preview mode by @SleeplessOne1917 in [#1164](https://github.com/LemmyNet/lemmy-ui/pull/1164) +- Add shortcut for submitting post by @SleeplessOne1917 in [#1163](https://github.com/LemmyNet/lemmy-ui/pull/1163) +- Merge branch 'main' into avatar-aspect-ratio-fix by @alectrocute +- format with prettier by @alectrocute +- add .img-cover class, implement by @alectrocute +- Merge branch 'main' into fix-button-click-area by @SleeplessOne1917 +- Fix typo in post-listing.tsx by @eltociear in [#1181](https://github.com/LemmyNet/lemmy-ui/pull/1181) +- Fixed unclickable button paddings by @fheft +- Set html lang attr to the interface language by @SleeplessOne1917 in [#1176](https://github.com/LemmyNet/lemmy-ui/pull/1176) +- Set html lang attr to the interface language by @MageJohn +- Run prettier by @SleeplessOne1917 in [#1185](https://github.com/LemmyNet/lemmy-ui/pull/1185) +- Run prettier by @MageJohn +- Left-align comment collapse/expand button by @SleeplessOne1917 in [#1173](https://github.com/LemmyNet/lemmy-ui/pull/1173) +- Merge branch 'collapse-expand-align-comment' of https://github.com/alectrocute/lemmy-ui into collapse-expand-align-comment by @alectrocute +- Merge branch 'main' into collapse-expand-align-comment by @SleeplessOne1917 +- Specify package manager version in package.json by @SleeplessOne1917 in [#1170](https://github.com/LemmyNet/lemmy-ui/pull/1170) +- Specify package manager version in package.json by @MageJohn +- make suggested change by @alectrocute +- move expand/collapse button by @alectrocute +- Added additional keybinds by @SleeplessOne1917 in [#1145](https://github.com/LemmyNet/lemmy-ui/pull/1145) +- Remove unnecessary comments by @Adam-Shea +- Added additional keybinds by @Adam-Shea +- fix: Adds ability to hide language warning by @SleeplessOne1917 in [#1125](https://github.com/LemmyNet/lemmy-ui/pull/1125) +- Merge branch 'main' into 1078-language-select-disable-warning by @SleeplessOne1917 +- Only show 'saved' tab on own profile page by @SleeplessOne1917 in [#1140](https://github.com/LemmyNet/lemmy-ui/pull/1140) +- Only show 'saved' tab on own profile page by @fheft +- Added Ctrl-K keybind by @SleeplessOne1917 in [#1136](https://github.com/LemmyNet/lemmy-ui/pull/1136) +- Added Ctrl-K keybind by @Adam-Shea +- Merge branch 'main' into 1078-language-select-disable-warning by @SleeplessOne1917 +- Fix quotes by @Nutomic in [#1131](https://github.com/LemmyNet/lemmy-ui/pull/1131) +- Alternative way to sanitize isoData by @Nutomic in [#1129](https://github.com/LemmyNet/lemmy-ui/pull/1129) +- chore: switched to enabling language warning by prop rather than disabling by @skspade +- fix: Adds ability to hide language warning by @skspade +- fix(#1067): Fix language not updating when editing post by @SleeplessOne1917 in [#1118](https://github.com/LemmyNet/lemmy-ui/pull/1118) +- styles: Run prettier by @marcinmrozdisplate +- fix: Fix language not updating when editing post by @marcinmrozdisplate +- Fix isoData can contain user generated content by @0xDEADCADE in [#1114](https://github.com/LemmyNet/lemmy-ui/pull/1114) +- Add media-src \* to Content-Security-Policy header to fix video posts with non-local links by @SleeplessOne1917 in [#1092](https://github.com/LemmyNet/lemmy-ui/pull/1092) +- Add media-src \* to Content-Security-Policy header by @thomasdouwes +- Refactor lets to consts by @SleeplessOne1917 in [#1089](https://github.com/LemmyNet/lemmy-ui/pull/1089) +- Merge branch 'main' into fix/1039 by @SleeplessOne1917 +- Fix aria-label for language select by @SleeplessOne1917 in [#1088](https://github.com/LemmyNet/lemmy-ui/pull/1088) +- Fix aria-label for language select by @jwhitmarsh +- Refactor lets to consts by @jwhitmarsh +- Add aria attribute to track toggle status of up/down votes. by @SleeplessOne1917 in [#1074](https://github.com/LemmyNet/lemmy-ui/pull/1074) +- Make comment depth easier to track visually by @SleeplessOne1917 +- Make comments nested lists by @SleeplessOne1917 +- Fix sorting help link by @SleeplessOne1917 in [#1063](https://github.com/LemmyNet/lemmy-ui/pull/1063) +- Merge branch 'main' into fix-sorting-help-url by @SleeplessOne1917 +- Fix CONTRIBUTING link by @SleeplessOne1917 in [#1064](https://github.com/LemmyNet/lemmy-ui/pull/1064) +- Fix CONTRIBUTING link by @mezzode +- Fix sorting help link by @mezzode +- Post form fix by @SleeplessOne1917 in [#1042](https://github.com/LemmyNet/lemmy-ui/pull/1042) +- Update translations by @SleeplessOne1917 in [#1041](https://github.com/LemmyNet/lemmy-ui/pull/1041) +- Changes to language tag by @SleeplessOne1917 in [#1036](https://github.com/LemmyNet/lemmy-ui/pull/1036) +- remove badge-muted by @Nutomic +- Merge branch 'main' into language-tag-changes by @SleeplessOne1917 +- Rate limiting tab by @SleeplessOne1917 in [#1031](https://github.com/LemmyNet/lemmy-ui/pull/1031) +- Merge branch 'main' into rate-limiting-tab by @SleeplessOne1917 +- Navbar fix 2 by @SleeplessOne1917 in [#1038](https://github.com/LemmyNet/lemmy-ui/pull/1038) +- Merge branch 'rate-limiting-tab' of https://github.com/SleeplessOne1917/lemmy-ui into rate-limiting-tab by @SleeplessOne1917 +- Merge branch 'main' into rate-limiting-tab by @SleeplessOne1917 +- Add translations by @SleeplessOne1917 +- Merge branch 'main' into rate-limiting-tab by @SleeplessOne1917 +- Nicer error handling by @SleeplessOne1917 in [#1024](https://github.com/LemmyNet/lemmy-ui/pull/1024) +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Lint fix by @SleeplessOne1917 in [#1035](https://github.com/LemmyNet/lemmy-ui/pull/1035) +- Hopefully stop lint command from erroring by @SleeplessOne1917 +- Merge branch 'nicer-error-hnadling' of https://github.com/SleeplessOne1917/lemmy-ui into nicer-error-hnadling by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Run prettier by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Always replace host with internal host by @SleeplessOne1917 +- Revert "User HTTP instead of HTTPS when fetching icon in docker internal network" by @SleeplessOne1917 +- Revert "Add debug statement." by @SleeplessOne1917 +- Add debug statement. by @SleeplessOne1917 +- User HTTP instead of HTTPS when fetching icon in docker internal network by @SleeplessOne1917 +- Add error message paragraph by @SleeplessOne1917 +- Merge branch 'nicer-error-hnadling' of https://github.com/SleeplessOne1917/lemmy-ui into nicer-error-hnadling by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Make error code always display by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Include forgotten translation by @SleeplessOne1917 +- Remove console logs by @SleeplessOne1917 +- Incorporate translations by @SleeplessOne1917 +- Merge branch 'nicer-error-hnadling' of https://github.com/SleeplessOne1917/lemmy-ui into nicer-error-hnadling by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Replace link to issue tracker with proper support spaces by @SleeplessOne1917 +- Fix isoData bug by @SleeplessOne1917 +- Refactor how error data is passed from server to client by @SleeplessOne1917 +- Get rid or forced error by @SleeplessOne1917 +- Cleanup by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Fix things not working in production build by @SleeplessOne1917 +- Fix error page not showing when site not fetched and adjust styles by @SleeplessOne1917 +- Handle error when site not returned by @SleeplessOne1917 +- Use node env instead of version for environment specific logic by @SleeplessOne1917 +- Redirect to login and remove duplicated code by @SleeplessOne1917 +- Fix server redirect error by @SleeplessOne1917 +- Merge branch 'main' into nicer-error-hnadling by @SleeplessOne1917 +- Set up logic for handling errors by @SleeplessOne1917 +- Extract helper function by @SleeplessOne1917 +- Redirect fomr pages that require auth on logout by @SleeplessOne1917 +- Merge branch 'rate-limiting-tab' of https://github.com/SleeplessOne1917/lemmy-ui into rate-limiting-tab by @SleeplessOne1917 +- Merge branch 'main' into rate-limiting-tab by @SleeplessOne1917 +- Add heading tag to rate limit form by @SleeplessOne1917 +- Remove console log by @SleeplessOne1917 +- Allow user to submit rate limit changes by @SleeplessOne1917 +- Put rate limit options in its own tab by @SleeplessOne1917 +- Refactor tabs into reuseable component by @SleeplessOne1917 +- use badge-muted by @Nutomic +- Changes to language tag by @Nutomic +- Navbar hide menu fix by @SleeplessOne1917 in [#1033](https://github.com/LemmyNet/lemmy-ui/pull/1033) +- Show parent comment for comment link. Fixes #1030 by @dessalines in [#1032](https://github.com/LemmyNet/lemmy-ui/pull/1032) +- Add web share for browsers that have it enabled by @SleeplessOne1917 in [#1029](https://github.com/LemmyNet/lemmy-ui/pull/1029) +- Show language on posts and comments by @SleeplessOne1917 in [#1026](https://github.com/LemmyNet/lemmy-ui/pull/1026) +- Make admin UI for allowing/blocking instances easier to work with by @SleeplessOne1917 in [#1012](https://github.com/LemmyNet/lemmy-ui/pull/1012) +- Changing all bigints to numbers by @SleeplessOne1917 in [#1023](https://github.com/LemmyNet/lemmy-ui/pull/1023) +- Changing all bigints to numbers by @dessalines +- Upgrade lemmy-js-client to work with bigints. Fixes #1018 by @dessalines in [#1022](https://github.com/LemmyNet/lemmy-ui/pull/1022) +- Redirect from pages that require auth on logout by @SleeplessOne1917 in [#1016](https://github.com/LemmyNet/lemmy-ui/pull/1016) +- Dont preselect new post language by @Nutomic in [#1008](https://github.com/LemmyNet/lemmy-ui/pull/1008) +- Update JS client to version with fixed JSON serialization by @SleeplessOne1917 in [#1017](https://github.com/LemmyNet/lemmy-ui/pull/1017) +- Remove "banned" badge from posts and comments (fixes 899) by @Nutomic in [#1011](https://github.com/LemmyNet/lemmy-ui/pull/1011) +- Add support for PWA by @SleeplessOne1917 in [#1005](https://github.com/LemmyNet/lemmy-ui/pull/1005) +- Using auto-generated types from ts-rs. by @dessalines in [#1003](https://github.com/LemmyNet/lemmy-ui/pull/1003) +- Fixing some outdated docs links. Fixes #1006 by @dessalines in [#1007](https://github.com/LemmyNet/lemmy-ui/pull/1007) +- Upgrading deps. by @dessalines in [#1004](https://github.com/LemmyNet/lemmy-ui/pull/1004) +- Prettier css by @dessalines in [#995](https://github.com/LemmyNet/lemmy-ui/pull/995) +- Add content warning to modlog and fix modlog routing bug by @SleeplessOne1917 in [#994](https://github.com/LemmyNet/lemmy-ui/pull/994) +- Get rid of "No Results" showing while search is still loading. by @SleeplessOne1917 in [#997](https://github.com/LemmyNet/lemmy-ui/pull/997) +- Add SleeplessOne1917 to Codeowners. by @dessalines +- Handle when logged out by @SleeplessOne1917 in [#986](https://github.com/LemmyNet/lemmy-ui/pull/986) +- Make pages use query params instead of route params where appropriate by @SleeplessOne1917 in [#977](https://github.com/LemmyNet/lemmy-ui/pull/977) +- Multiple image upload by @SleeplessOne1917 in [#971](https://github.com/LemmyNet/lemmy-ui/pull/971) +- Updating translations. by @dessalines +- I18 quality of life change by @SleeplessOne1917 in [#973](https://github.com/LemmyNet/lemmy-ui/pull/973) +- Optimize Tagline Form page by @makotech222 in [#972](https://github.com/LemmyNet/lemmy-ui/pull/972) +- Add Custom Emojis Support by @dessalines in [#877](https://github.com/LemmyNet/lemmy-ui/pull/877) +- Merge branch 'main' into custom-emojis by @makotech222 +- Fix table layout on mobile by @makotech222 +- Fix improper use of map by @makotech222 +- Fix loading emojis by @makotech222 +- fix casing by @makotech222 +- Add Custom Emoji Support by @makotech222 +- Don't show icons / banners for banned users and removed communities. by @dessalines in [#962](https://github.com/LemmyNet/lemmy-ui/pull/962) +- fix: Fix undefined showing up in markdown by @SleeplessOne1917 in [#970](https://github.com/LemmyNet/lemmy-ui/pull/970) +- refactor: update UI to use new client uploadImage function by @SleeplessOne1917 in [#967](https://github.com/LemmyNet/lemmy-ui/pull/967) +- Add woodpecker ci by @dessalines in [#964](https://github.com/LemmyNet/lemmy-ui/pull/964) +- fix: Make search screen able to change type, listing type, and sort when there is no query. by @SleeplessOne1917 in [#966](https://github.com/LemmyNet/lemmy-ui/pull/966) +- Adding 2FA support. Fixes #938 by @dessalines in [#939](https://github.com/LemmyNet/lemmy-ui/pull/939) +- Only show the determined warning for multiple. by @dessalines in [#952](https://github.com/LemmyNet/lemmy-ui/pull/952) +- Upgrading deps by @dessalines in [#951](https://github.com/LemmyNet/lemmy-ui/pull/951) +- Adding ban_from_community to be more clear. Fixes #872 by @dessalines in [#943](https://github.com/LemmyNet/lemmy-ui/pull/943) +- Let any mod feature and lock posts. Fixes #875 by @dessalines in [#944](https://github.com/LemmyNet/lemmy-ui/pull/944) +- Adding a warning for deselecting the undetermined language. by @dessalines in [#945](https://github.com/LemmyNet/lemmy-ui/pull/945) +- Fixing line formatting. by @dessalines in [#947](https://github.com/LemmyNet/lemmy-ui/pull/947) +- Do local community checks for buttons. Fixes #918 by @dessalines in [#948](https://github.com/LemmyNet/lemmy-ui/pull/948) +- Check to make sure post is correct. Fixes #934 by @dessalines in [#949](https://github.com/LemmyNet/lemmy-ui/pull/949) +- Remove buggy navbar search. Fixes #921 by @dessalines in [#950](https://github.com/LemmyNet/lemmy-ui/pull/950) +- Fix issue with empty markdown content not nulling DB. Fixes #924 by @dessalines in [#925](https://github.com/LemmyNet/lemmy-ui/pull/925) +- Adding reports send email to admins option by @dessalines in [#932](https://github.com/LemmyNet/lemmy-ui/pull/932) + +## New Contributors + +- @marcinmrozdisplate made their first contribution +- @RayBB made their first contribution +- @camel-cdr made their first contribution +- @eltociear made their first contribution in [#1181](https://github.com/LemmyNet/lemmy-ui/pull/1181) +- @Adam-Shea made their first contribution +- @0xDEADCADE made their first contribution in [#1114](https://github.com/LemmyNet/lemmy-ui/pull/1114) +- @thomasdouwes made their first contribution +- @jwhitmarsh made their first contribution +- @mezzode made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.17.1...0.18.0-rc.1 + +## What's Changed in 0.17.1 + +- Merge branch 'main' into release/v0.17 by @dessalines +- Fix comment box closing. Fixes #904 by @dessalines in [#914](https://github.com/LemmyNet/lemmy-ui/pull/914) +- Fix showing crosspost dupes. Fixes #900 by @dessalines in [#912](https://github.com/LemmyNet/lemmy-ui/pull/912) +- Fix live updating postres edit. Fixes #908 by @dessalines in [#911](https://github.com/LemmyNet/lemmy-ui/pull/911) +- Removing extra themes. Fixes #905 by @dessalines in [#910](https://github.com/LemmyNet/lemmy-ui/pull/910) +- Fixing post setState error. Fixes #902 by @dessalines in [#903](https://github.com/LemmyNet/lemmy-ui/pull/903) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.1...0.17.1 + +## What's Changed in v0.17.1 + +- v0.17.1 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.0...v0.17.1 + +## What's Changed in v0.17.0 + +- v0.17.0 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.0-rc.4...v0.17.0 + +## What's Changed in v0.17.0-rc.4 + +- v0.17.0-rc.4 by @dessalines +- Upgrading deps. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.0-rc.3...v0.17.0-rc.4 + +## What's Changed in v0.17.0-rc.3 + +- v0.17.0-rc.3 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.0-rc.2...v0.17.0-rc.3 + +## What's Changed in v0.17.0-rc.2 + +- v0.17.0-rc.2 by @dessalines +- Fixing requireapplication string. by @dessalines in [#895](https://github.com/LemmyNet/lemmy-ui/pull/895) +- Fixing PWA install. Fixes #822 by @dessalines in [#893](https://github.com/LemmyNet/lemmy-ui/pull/893) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.17.0-rc.1...v0.17.0-rc.2 + +## What's Changed in v0.17.0-rc.1 + +- v0.17.0-rc.1 by @dessalines +- Removing monads. Fixes #884 by @dessalines in [#886](https://github.com/LemmyNet/lemmy-ui/pull/886) +- Sanitize article html. Fixes #882 by @dessalines in [#883](https://github.com/LemmyNet/lemmy-ui/pull/883) +- Add `id` to `App` component by @zcdunn in [#880](https://github.com/LemmyNet/lemmy-ui/pull/880) +- Adding Community Language fixes. #783 by @dessalines in [#868](https://github.com/LemmyNet/lemmy-ui/pull/868) +- Add FeaturedPosts support by @makotech222 in [#873](https://github.com/LemmyNet/lemmy-ui/pull/873) +- Fix csp header for svgs in firefox. Fixes #869 by @dessalines in [#870](https://github.com/LemmyNet/lemmy-ui/pull/870) +- Remove federation strict_allowlist and retry_count. by @dessalines in [#867](https://github.com/LemmyNet/lemmy-ui/pull/867) +- Add Taglines support by @makotech222 in [#854](https://github.com/LemmyNet/lemmy-ui/pull/854) +- Fix wrong comment link. Fixes #714 by @dessalines in [#865](https://github.com/LemmyNet/lemmy-ui/pull/865) +- Dont render images in tippy. Fixes #776 by @dessalines in [#864](https://github.com/LemmyNet/lemmy-ui/pull/864) +- Move symbols to its own cacheable file. Fixes #809 by @dessalines in [#862](https://github.com/LemmyNet/lemmy-ui/pull/862) +- Hide post report images. Fixes #824 by @dessalines in [#861](https://github.com/LemmyNet/lemmy-ui/pull/861) +- Add inline markdown rendering for post titles. Fixes #827 by @dessalines in [#860](https://github.com/LemmyNet/lemmy-ui/pull/860) +- Show deleted on profile page. Fixes #834 by @dessalines in [#859](https://github.com/LemmyNet/lemmy-ui/pull/859) +- Make sure user is logged in for site creation. Fixes #838 by @dessalines in [#858](https://github.com/LemmyNet/lemmy-ui/pull/858) +- Fix missing report shield. Fixes #842 by @dessalines in [#855](https://github.com/LemmyNet/lemmy-ui/pull/855) +- Increase markdown field char limit to 50k. Fixes #849 by @dessalines in [#850](https://github.com/LemmyNet/lemmy-ui/pull/850) +- Adding new site setup fields. by @dessalines in [#840](https://github.com/LemmyNet/lemmy-ui/pull/840) +- Fix workaround for broken logout by @sam365724 in [#836](https://github.com/LemmyNet/lemmy-ui/pull/836) +- Strip html from og descriptions. Fixes #830 by @dessalines in [#831](https://github.com/LemmyNet/lemmy-ui/pull/831) +- Cleanup docker builds by @dessalines in [#829](https://github.com/LemmyNet/lemmy-ui/pull/829) +- Fix admin default listing type. Fixes #797 by @dessalines in [#818](https://github.com/LemmyNet/lemmy-ui/pull/818) +- Merge branch 'browser_popup' by @dessalines +- Fixing up popup code. by @dessalines +- Fix browser popup warning when deleting image by @sam365724 in [#811](https://github.com/LemmyNet/lemmy-ui/pull/811) +- Merge branch 'LemmyNet:main' into multiple-images-upload by @sam365724 +- merge by @sam365724 +- Avoid browser warning about leaving page, handle delete image fail. by @sam365724 +- Avoid browser warning about leaving page, handle delete image fail and add user filenames to messages. by @sam365724 +- Search button and input style fixes by @rgroothuijsen in [#825](https://github.com/LemmyNet/lemmy-ui/pull/825) +- Support new video embed api format (fixes #709) by @Nutomic in [#817](https://github.com/LemmyNet/lemmy-ui/pull/817) +- Change for container divs to container-lg by @xximj in [#813](https://github.com/LemmyNet/lemmy-ui/pull/813) +- Updating translations. by @dessalines +- Adding private message reporting. Fixes #782 by @dessalines in [#806](https://github.com/LemmyNet/lemmy-ui/pull/806) +- Adding the email_admins for new application config. by @dessalines in [#742](https://github.com/LemmyNet/lemmy-ui/pull/742) +- Adding new unread comments. by @dessalines in [#749](https://github.com/LemmyNet/lemmy-ui/pull/749) +- Fix broken profile page, and missing sidebars. by @dessalines in [#795](https://github.com/LemmyNet/lemmy-ui/pull/795) +- Updating translations. by @dessalines +- Adding a loading indicator for post community searching. Fixes #692 by @dessalines in [#794](https://github.com/LemmyNet/lemmy-ui/pull/794) +- Fix missing initial load of discussion languages. by @dessalines in [#793](https://github.com/LemmyNet/lemmy-ui/pull/793) +- Fix posts pushed from blocked users/comms. Fixes #697 by @dessalines in [#792](https://github.com/LemmyNet/lemmy-ui/pull/792) +- Adding post and comment language tagging. Fixes #771 by @dessalines in [#781](https://github.com/LemmyNet/lemmy-ui/pull/781) +- Hide create community by @dessalines in [#787](https://github.com/LemmyNet/lemmy-ui/pull/787) +- Upgrade inferno v8.0.0 try2 by @dessalines in [#790](https://github.com/LemmyNet/lemmy-ui/pull/790) +- Merge branch 'fix/notif_new_fetch_bug' of https://github.com/ernestwisniewski/lemmy-ui into notif_bug by @dessalines +- Fix Notification browser fetch by @ernestwisniewski +- Fix issue with new notification trying to do a fetch. by @dessalines +- Increase fetch limit for user and community searches. Fixes #756 by @dessalines in [#773](https://github.com/LemmyNet/lemmy-ui/pull/773) +- Fix private instance setting. Fixes #769 by @dessalines in [#786](https://github.com/LemmyNet/lemmy-ui/pull/786) +- Hide extra comment and post functionality from search page. Fixes #752 by @dessalines in [#788](https://github.com/LemmyNet/lemmy-ui/pull/788) +- Show create post even if not subscribed. Fixes #768 by @dessalines in [#789](https://github.com/LemmyNet/lemmy-ui/pull/789) +- Cantarell for darkly/darkly-red. Fixes #779 by @IngrownMink4 in [#784](https://github.com/LemmyNet/lemmy-ui/pull/784) +- Merge branch 'modlog-filters-dess' by @dessalines +- Upgrading deps by @dessalines +- Updating translations. by @dessalines +- Add Modlog Filters by @dessalines in [#682](https://github.com/LemmyNet/lemmy-ui/pull/682) +- Use match by @makotech222 +- Add support for filtering mod logs by @makotech222 +- Adding mod / admin distinguish. by @dessalines in [#744](https://github.com/LemmyNet/lemmy-ui/pull/744) +- Disable CSP when in debug mode. by @dessalines in [#743](https://github.com/LemmyNet/lemmy-ui/pull/743) +- Reduce search minLength to 1. Fixes #750 by @dessalines in [#751](https://github.com/LemmyNet/lemmy-ui/pull/751) +- Documenting and changing a few env vars. Fixes #661 by @dessalines in [#739](https://github.com/LemmyNet/lemmy-ui/pull/739) +- Fixing post_view glitch. Fixes #740 by @dessalines in [#741](https://github.com/LemmyNet/lemmy-ui/pull/741) +- Change CSP rule for connect-src (websocket) to wildcard (fixes #730) by @Nutomic in [#737](https://github.com/LemmyNet/lemmy-ui/pull/737) +- Comment Tree paging by @dessalines in [#726](https://github.com/LemmyNet/lemmy-ui/pull/726) +- Upgrading deps by @dessalines in [#732](https://github.com/LemmyNet/lemmy-ui/pull/732) +- Adding block from community sidebar. Fixes #690 by @dessalines in [#716](https://github.com/LemmyNet/lemmy-ui/pull/716) +- Fix suggested post title html. Fixes #691 by @dessalines in [#717](https://github.com/LemmyNet/lemmy-ui/pull/717) +- Fix missing deny button. Fixes #723 by @dessalines in [#728](https://github.com/LemmyNet/lemmy-ui/pull/728) +- Fix community filtering. by @dessalines in [#729](https://github.com/LemmyNet/lemmy-ui/pull/729) +- Use zh-TW for language code, instead of zh_Hant. by @sonata-chen in [#725](https://github.com/LemmyNet/lemmy-ui/pull/725) +- Forgot to type a few Searches. Fixes #718 by @dessalines in [#722](https://github.com/LemmyNet/lemmy-ui/pull/722) +- Fixing linkify GC crash. by @dessalines in [#715](https://github.com/LemmyNet/lemmy-ui/pull/715) +- New communities fetch limit is 50. by @dessalines in [#711](https://github.com/LemmyNet/lemmy-ui/pull/711) +- Clicking "subscribe pending" button performs unsubscribe (fixes #705) by @Nutomic in [#706](https://github.com/LemmyNet/lemmy-ui/pull/706) +- Fix site setup and login. Fixes #699 by @dessalines in [#702](https://github.com/LemmyNet/lemmy-ui/pull/702) +- Updating translations. by @dessalines +- Adding purging of comments, posts, communities, and users. by @dessalines in [#459](https://github.com/LemmyNet/lemmy-ui/pull/459) +- Removing save and read config hjson. Fixes #695 by @dessalines in [#696](https://github.com/LemmyNet/lemmy-ui/pull/696) +- Expose pending 2 by @dessalines in [#662](https://github.com/LemmyNet/lemmy-ui/pull/662) +- Adding option types 2 by @dessalines in [#689](https://github.com/LemmyNet/lemmy-ui/pull/689) +- Fix NPE during new site startup by @kac- in [#677](https://github.com/LemmyNet/lemmy-ui/pull/677) +- Fixing CSP for iOS devices. Fixes #669 by @dessalines in [#678](https://github.com/LemmyNet/lemmy-ui/pull/678) + +## New Contributors + +- @zcdunn made their first contribution in [#880](https://github.com/LemmyNet/lemmy-ui/pull/880) +- @sam365724 made their first contribution in [#836](https://github.com/LemmyNet/lemmy-ui/pull/836) +- @rgroothuijsen made their first contribution in [#825](https://github.com/LemmyNet/lemmy-ui/pull/825) +- @xximj made their first contribution in [#813](https://github.com/LemmyNet/lemmy-ui/pull/813) +- @IngrownMink4 made their first contribution in [#784](https://github.com/LemmyNet/lemmy-ui/pull/784) +- @sonata-chen made their first contribution in [#725](https://github.com/LemmyNet/lemmy-ui/pull/725) +- @ernestwisniewski made their first contribution +- @kac- made their first contribution in [#677](https://github.com/LemmyNet/lemmy-ui/pull/677) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.5...v0.17.0-rc.1 + +## What's Changed in v0.16.5 + +- v0.16.5 by @dessalines +- Commenting out csp headers, since it broke iOS devices. Fixes #669 by @dessalines in [#675](https://github.com/LemmyNet/lemmy-ui/pull/675) +- Fixes LemmyNet/lemmy-ui#667 first issue: names for Chinese. by @ianiiaannn in [#668](https://github.com/LemmyNet/lemmy-ui/pull/668) +- Using correct lemmy-js-client version. by @dessalines +- Revert "Fix lint" by @dessalines +- Legal info dess by @dessalines in [#666](https://github.com/LemmyNet/lemmy-ui/pull/666) +- Fix local development. by @dessalines in [#644](https://github.com/LemmyNet/lemmy-ui/pull/644) + +## New Contributors + +- @ianiiaannn made their first contribution in [#668](https://github.com/LemmyNet/lemmy-ui/pull/668) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.4-rc.10...v0.16.5 + +## What's Changed in v0.16.4-rc.10 + +- v0.16.4-rc.10 by @dessalines +- Add nightly dev drone cron build. by @dessalines in [#664](https://github.com/LemmyNet/lemmy-ui/pull/664) +- Add LEMMY_UI_CUSTOM_SCRIPT env var. Fixes #655 by @dessalines in [#656](https://github.com/LemmyNet/lemmy-ui/pull/656) +- Turn off html in markdown. Fixes #650 by @dessalines in [#657](https://github.com/LemmyNet/lemmy-ui/pull/657) +- Fix lint by @dessalines +- Add posting restricted to mods by @dessalines in [#642](https://github.com/LemmyNet/lemmy-ui/pull/642) +- Add default post listing by @dessalines in [#645](https://github.com/LemmyNet/lemmy-ui/pull/645) +- Don't render markdown for summaries. Fixes #658 by @dessalines in [#659](https://github.com/LemmyNet/lemmy-ui/pull/659) +- Set content security policy http header for all responses by @Nutomic in [#621](https://github.com/LemmyNet/lemmy-ui/pull/621) +- Adding site sidebar for remote communities. Fixes #626 by @dessalines in [#640](https://github.com/LemmyNet/lemmy-ui/pull/640) +- Properly debouncing tribute mentions. Fixes #633 by @dessalines in [#639](https://github.com/LemmyNet/lemmy-ui/pull/639) +- Adding litely-red and darkly-red themes. by @dessalines in [#636](https://github.com/LemmyNet/lemmy-ui/pull/636) +- Fixing initial loading of admin page. Fixes #635 by @dessalines in [#638](https://github.com/LemmyNet/lemmy-ui/pull/638) +- Upgrading deps by @dessalines in [#637](https://github.com/LemmyNet/lemmy-ui/pull/637) +- Fixing helmet theme bug. Fixes #628 by @dessalines in [#629](https://github.com/LemmyNet/lemmy-ui/pull/629) +- Adding site ban from profile page. Fixes #588 by @dessalines in [#627](https://github.com/LemmyNet/lemmy-ui/pull/627) +- Adding sidebar and subscribed collapse. Fixes #609 by @dessalines in [#622](https://github.com/LemmyNet/lemmy-ui/pull/622) +- Adding a LEMMY_UI_DEBUG flag for eruda debugging by @dessalines in [#624](https://github.com/LemmyNet/lemmy-ui/pull/624) +- Adds OC by @ensag-dev in [#620](https://github.com/LemmyNet/lemmy-ui/pull/620) + +## New Contributors + +- @ensag-dev made their first contribution in [#620](https://github.com/LemmyNet/lemmy-ui/pull/620) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.3...v0.16.4-rc.10 + +## What's Changed in v0.16.3 + +- v0.16.3 by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.3-rc.2...v0.16.3 + +## What's Changed in v0.16.3-rc.2 + +- v0.16.3-rc.2 by @dessalines +- Revert "Set content security policy http header for all responses" by @dessalines in [#613](https://github.com/LemmyNet/lemmy-ui/pull/613) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.3-rc.1...v0.16.3-rc.2 + +## What's Changed in v0.16.3-rc.1 + +- v0.16.3-rc.1 by @dessalines +- Dont allow community urls like /c/{id} (fixes #611) by @Nutomic in [#612](https://github.com/LemmyNet/lemmy-ui/pull/612) +- Set content security policy http header for all responses by @Nutomic in [#608](https://github.com/LemmyNet/lemmy-ui/pull/608) +- Fix loading indicator on search page (fixes #443) by @Nutomic in [#606](https://github.com/LemmyNet/lemmy-ui/pull/606) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.2...v0.16.3-rc.1 + +## What's Changed in v0.16.2 + +- v0.16.2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.2-rc.3...v0.16.2 + +## What's Changed in v0.16.2-rc.3 + +- v0.16.2-rc.3 by @dessalines +- Upgrade deps by @dessalines in [#604](https://github.com/LemmyNet/lemmy-ui/pull/604) +- Updating translations. by @dessalines +- Remove auth token from error message. Fixes #600 by @dessalines in [#601](https://github.com/LemmyNet/lemmy-ui/pull/601) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.1...v0.16.2-rc.3 + +## What's Changed in v0.16.1 + +- v0.16.1 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.1-rc.1...v0.16.1 + +## What's Changed in v0.16.1-rc.1 + +- v0.16.1-rc.1 by @dessalines +- Fix error during new site setup by @Nutomic in [#596](https://github.com/LemmyNet/lemmy-ui/pull/596) +- Differentiate between mods and admins in mod log by @Nutomic in [#597](https://github.com/LemmyNet/lemmy-ui/pull/597) +- Fix comment fedilink (fixes #594) by @Nutomic in [#595](https://github.com/LemmyNet/lemmy-ui/pull/595) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.0...v0.16.1-rc.1 + +## What's Changed in v0.16.0 + +- v0.16.0 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.0-rc.3...v0.16.0 + +## What's Changed in v0.16.0-rc.3 + +- v0.16.0-rc.3 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.0-rc.2...v0.16.0-rc.3 + +## What's Changed in v0.16.0-rc.2 + +- v0.16.0-rc.2 by @dessalines +- Rename theme files from _.min.css to _.css by @Nutomic in [#590](https://github.com/LemmyNet/lemmy-ui/pull/590) +- Fixing custom theme issue. by @dessalines in [#589](https://github.com/LemmyNet/lemmy-ui/pull/589) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.16.0-rc.1...v0.16.0-rc.2 + +## What's Changed in v0.16.0-rc.1 + +- v0.16.0-rc.1 by @dessalines +- Custom themes by @Nutomic in [#584](https://github.com/LemmyNet/lemmy-ui/pull/584) +- Upping lemmy-js-client version. by @dessalines +- Add option to set site default theme by @Nutomic in [#586](https://github.com/LemmyNet/lemmy-ui/pull/586) +- Add option to set site default theme by @Nutomic +- Adding nofollow to links. Fixes #542 by @dessalines in [#543](https://github.com/LemmyNet/lemmy-ui/pull/543) +- Fix language names by @Nutomic in [#580](https://github.com/LemmyNet/lemmy-ui/pull/580) +- Move fedi link in post listing location. Fixes #569 by @dessalines in [#583](https://github.com/LemmyNet/lemmy-ui/pull/583) +- Don't redirect on server error. Fixes #570 by @dessalines in [#582](https://github.com/LemmyNet/lemmy-ui/pull/582) +- Smart select inner content after bold or italics. Fixes #497 by @dessalines in [#577](https://github.com/LemmyNet/lemmy-ui/pull/577) +- Fix comment jumping. Fixes #529 by @dessalines in [#576](https://github.com/LemmyNet/lemmy-ui/pull/576) +- Add federated post and comment links. Fixes #569 by @dessalines in [#575](https://github.com/LemmyNet/lemmy-ui/pull/575) +- Fix community comments iso fetch. Fixes #572 by @dessalines in [#574](https://github.com/LemmyNet/lemmy-ui/pull/574) +- Don't allow transfer site. by @dessalines in [#551](https://github.com/LemmyNet/lemmy-ui/pull/551) +- Add codeowners. by @dessalines +- Fix report page bugs. Fixes #558 by @dessalines in [#568](https://github.com/LemmyNet/lemmy-ui/pull/568) +- Forgot to remove testing line. by @dessalines in [#565](https://github.com/LemmyNet/lemmy-ui/pull/565) +- Fix post title link bug. Fixes #547 by @dessalines in [#563](https://github.com/LemmyNet/lemmy-ui/pull/563) +- Add markdown footnotes. Fixes #561 by @dessalines in [#562](https://github.com/LemmyNet/lemmy-ui/pull/562) +- Update issue templates by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.15.2...v0.16.0-rc.1 + +## What's Changed in v0.15.2 + +- v0.15.2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.15.2-rc.1...v0.15.2 + +## What's Changed in v0.15.2-rc.1 + +- v0.15.2-rc.1 by @dessalines +- Move lemmy.ml signup message to top of registration page by @Nutomic in [#554](https://github.com/LemmyNet/lemmy-ui/pull/554) +- Adding rss links. Fixes #548 by @dessalines in [#549](https://github.com/LemmyNet/lemmy-ui/pull/549) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.15.1...v0.15.2-rc.1 + +## What's Changed in v0.15.1 + +- v0.15.1 by @dessalines +- Fixing issue with offset post body and metadata card. Fixes #544 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.15.0...v0.15.1 + +## What's Changed in v0.15.0 + +- v0.15.0 by @dessalines +- Upgrading deps by @dessalines +- Improvements to post listings by @eduardog3000 in [#536](https://github.com/LemmyNet/lemmy-ui/pull/536) + +## New Contributors + +- @eduardog3000 made their first contribution in [#536](https://github.com/LemmyNet/lemmy-ui/pull/536) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.15.0-rc.7...v0.15.0 + +## What's Changed in v0.15.0-rc.7 + +- v0.15.0-rc.7 by @dessalines +- Adding as and lt languages. by @dessalines +- Updating translations. by @dessalines +- Temp bans by @dessalines in [#524](https://github.com/LemmyNet/lemmy-ui/pull/524) +- Revert "Remove uppercase letters from the allowed username characters" by @dessalines in [#541](https://github.com/LemmyNet/lemmy-ui/pull/541) +- Fix banner. Fixes #466 by @dessalines in [#534](https://github.com/LemmyNet/lemmy-ui/pull/534) +- Making the modlog badge stand out more. Fixes #531 by @dessalines in [#539](https://github.com/LemmyNet/lemmy-ui/pull/539) +- Add some fallback properties for display in older browsers in [#535](https://github.com/LemmyNet/lemmy-ui/pull/535) +- Private instances by @dessalines in [#523](https://github.com/LemmyNet/lemmy-ui/pull/523) +- Add nord theme. Fixes #520 by @dessalines in [#527](https://github.com/LemmyNet/lemmy-ui/pull/527) +- Remove uppercase letters from the allowed username characters by @Kradyz in [#525](https://github.com/LemmyNet/lemmy-ui/pull/525) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.5...v0.15.0-rc.7 + +## What's Changed in v0.14.5 + +- v0.14.5 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.5-rc.2...v0.14.5 + +## What's Changed in v0.14.5-rc.2 + +- v0.14.5-rc.2 by @dessalines +- Upgrading deps by @dessalines +- Dont receive post room comments from blocked users. by @dessalines in [#516](https://github.com/LemmyNet/lemmy-ui/pull/516) +- Using console.error for error logs. by @dessalines in [#517](https://github.com/LemmyNet/lemmy-ui/pull/517) +- Fix issue with websocket buffer. by @dessalines +- Upgrade deps by @dessalines +- Fix websocket 3 by @dessalines in [#515](https://github.com/LemmyNet/lemmy-ui/pull/515) +- Fix native language issue. (zh_Hant) by @dessalines in [#513](https://github.com/LemmyNet/lemmy-ui/pull/513) +- Updating translations. by @dessalines +- Fix tippy on component mount. Fixes #509 by @dessalines in [#511](https://github.com/LemmyNet/lemmy-ui/pull/511) +- Fix docker latest by @dessalines in [#510](https://github.com/LemmyNet/lemmy-ui/pull/510) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.3...v0.14.5-rc.2 + +## What's Changed in v0.14.3 + +- v0.14.3 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.2...v0.14.3 + +## What's Changed in v0.14.2 + +- v0.14.2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.2-rc.1...v0.14.2 + +## What's Changed in v0.14.2-rc.1 + +- v0.14.2-rc.1 by @dessalines +- Updating translations. by @dessalines +- Upgrading deps by @dessalines +- A few fixes. by @dessalines in [#502](https://github.com/LemmyNet/lemmy-ui/pull/502) +- A few fixes. by @dessalines +- Enabling html tags in markdown. Fixes #498 by @dessalines in [#499](https://github.com/LemmyNet/lemmy-ui/pull/499) +- Enabling html tags in markdown. Fixes #498 by @dessalines +- Fix comment scroll bug. Fixes #492 by @dessalines in [#495](https://github.com/LemmyNet/lemmy-ui/pull/495) +- Fix comment scroll bug. Fixes #492 by @dessalines +- Fixing error for null person_block. Fixes #491 by @dessalines in [#494](https://github.com/LemmyNet/lemmy-ui/pull/494) +- Fixing error for null person_block. Fixes #491 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.1...v0.14.2-rc.1 + +## What's Changed in v0.14.1 + +- v0.14.1 by @dessalines +- Trying to catch promise and json parse errors. #489 by @dessalines in [#490](https://github.com/LemmyNet/lemmy-ui/pull/490) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.0...v0.14.1 + +## What's Changed in v0.14.0 + +- v0.14.0 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.0-rc.2...v0.14.0 + +## What's Changed in v0.14.0-rc.2 + +- v0.14.0-rc.2 by @dessalines +- Fixing unload by @dessalines in [#487](https://github.com/LemmyNet/lemmy-ui/pull/487) +- Fix setup password. Fixes #478 by @dessalines in [#484](https://github.com/LemmyNet/lemmy-ui/pull/484) +- Adding post comment scrolling hack. Fixes #480 by @dessalines in [#486](https://github.com/LemmyNet/lemmy-ui/pull/486) +- Navlink 1 by @dessalines in [#483](https://github.com/LemmyNet/lemmy-ui/pull/483) +- Upgrade deps by @dessalines +- Fixing nav-link by @dessalines +- Change from using Link to NavLink. resolve #269 by @hermantolim +- Updating translations. by @dessalines +- Upgrade deps by @dessalines +- Remove another touch end. by @dessalines +- Remove touch events by @dayinjing in [#482](https://github.com/LemmyNet/lemmy-ui/pull/482) + +## New Contributors + +- @dayinjing made their first contribution in [#482](https://github.com/LemmyNet/lemmy-ui/pull/482) +- @hermantolim made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.14.0-rc.1...v0.14.0-rc.2 + +## What's Changed in v0.14.0-rc.1 + +- v0.14.0-rc.1 by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.13.6-rc.2...v0.14.0-rc.1 + +## What's Changed in v0.13.6-rc.2 + +- v0.13.6-rc.2 by @dessalines +- Updating translations. by @dessalines +- Remove dev image building from drone. by @dessalines in [#477](https://github.com/LemmyNet/lemmy-ui/pull/477) +- Fix markdown guide url. by @dessalines +- Navbar links by @dessalines in [#476](https://github.com/LemmyNet/lemmy-ui/pull/476) +- Try fixing crypto node bug. Fixes #473 by @dessalines in [#474](https://github.com/LemmyNet/lemmy-ui/pull/474) +- Use community title and user display name for dropdown. by @dessalines +- Post form community name using title instead of name by @dessalines in [#469](https://github.com/LemmyNet/lemmy-ui/pull/469) +- chore: in case display_name not exist by @theowenyoung +- ui: show user's display_name instead of username by @theowenyoung +- feat: post form community use title instead of name by @theowenyoung +- Merge branch 'mahanstreamer-archi' by @dessalines +- Run prettier by @dessalines +- Archive URL fixes by @dessalines in [#470](https://github.com/LemmyNet/lemmy-ui/pull/470) +- Update post-form.tsx +- Update utils.ts +- Mahanstreamer userpage by @dessalines in [#471](https://github.com/LemmyNet/lemmy-ui/pull/471) +- Using i18next compatibility v3 by @dessalines in [#465](https://github.com/LemmyNet/lemmy-ui/pull/465) +- Show original created time tooltip by @dessalines in [#462](https://github.com/LemmyNet/lemmy-ui/pull/462) +- Revert version of i18next to fix plurals. Fixes #451 by @dessalines in [#460](https://github.com/LemmyNet/lemmy-ui/pull/460) +- Fixing cross-posts showing on initial load. Fixes #457 by @dessalines in [#464](https://github.com/LemmyNet/lemmy-ui/pull/464) +- Show bot account info. Fixes #458 by @dessalines in [#463](https://github.com/LemmyNet/lemmy-ui/pull/463) +- Very weak by @dessalines in [#461](https://github.com/LemmyNet/lemmy-ui/pull/461) +- Simplifying getunreadcount. by @dessalines in [#455](https://github.com/LemmyNet/lemmy-ui/pull/455) +- Updating translations. by @dessalines +- ui changes for marking comment as read on reply by @LunaticHacker in [#454](https://github.com/LemmyNet/lemmy-ui/pull/454) +- Force husky install by @dessalines +- Hide mod actions appropriately by @LunaticHacker in [#447](https://github.com/LemmyNet/lemmy-ui/pull/447) +- Add honeypot for user and form creation. Fixes #433 by @dessalines in [#435](https://github.com/LemmyNet/lemmy-ui/pull/435) + +## New Contributors + +- @theowenyoung made their first contribution +- @LunaticHacker made their first contribution in [#454](https://github.com/LemmyNet/lemmy-ui/pull/454) + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.13.0...v0.13.6-rc.2 + +## What's Changed in v0.13.0 + +- v0.13.0 by @dessalines +- Upgrade deps by @dessalines +- Upgrade deps by @dessalines +- Updating translations. by @dessalines +- Upgrading deps by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.13.0-rc.1...v0.13.0 + +## What's Changed in v0.13.0-rc.1 + +- v0.13.0-rc.1 by @dessalines +- Adding bn, ml, and cs langs by @dessalines +- Updating translations. by @dessalines +- Reporting by @dessalines in [#434](https://github.com/LemmyNet/lemmy-ui/pull/434) +- Splitting login and signup pages. Fixes #386 by @dessalines in [#431](https://github.com/LemmyNet/lemmy-ui/pull/431) +- Fixing image in newtab. Fixes #382 by @dessalines in [#430](https://github.com/LemmyNet/lemmy-ui/pull/430) +- Navigate away from login page if already logged in. by @dessalines in [#429](https://github.com/LemmyNet/lemmy-ui/pull/429) +- Add username validation message. Fixes #387 by @dessalines in [#428](https://github.com/LemmyNet/lemmy-ui/pull/428) +- Password strength meter by @dessalines in [#427](https://github.com/LemmyNet/lemmy-ui/pull/427) +- Adding JWT secure flag. by @dessalines in [#426](https://github.com/LemmyNet/lemmy-ui/pull/426) +- Fix community display name overflow. Fixes #390 by @dessalines in [#425](https://github.com/LemmyNet/lemmy-ui/pull/425) +- Fix logout bug. Fixes #391 by @dessalines in [#424](https://github.com/LemmyNet/lemmy-ui/pull/424) +- Fix up post, profile and community forms. Fixes #409 by @dessalines in [#423](https://github.com/LemmyNet/lemmy-ui/pull/423) +- Upgrading deps by @dessalines in [#422](https://github.com/LemmyNet/lemmy-ui/pull/422) +- Adding markdown audio and video embeds. Fixes #420 by @dessalines in [#421](https://github.com/LemmyNet/lemmy-ui/pull/421) +- Remove active in the last by @dessalines +- Si simplifier by @dessalines +- Fix profile paging. Fixes #416 by @dessalines +- Use my fork of inferno-i18next. Fixes #413 by @dessalines +- Add version to package.json . Fixes #411 by @dessalines +- v0.12.2 by @dessalines +- Don't show your own subscribed on other users profiles. by @dessalines +- Fixing missing arabic. Fixes #404 by @dessalines +- Fixing lint, adding a few endpoints. by @dessalines +- Add robots.txt file +- Fix comment scrolling bug. Fixes #394 by @dessalines +- Fix issue with new notification trying to do a fetch. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.12.0...v0.13.0-rc.1 + +## What's Changed in 0.12.0 + +- Upgrading to lemmy-js-client 0.12.0 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.12.0-rc.2...0.12.0 + +## What's Changed in 0.12.0-rc.2 + +- Using newer alpine image by @dessalines +- Add pt lang. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.12.0-rc.1...0.12.0-rc.2 + +## What's Changed in 0.12.0-rc.1 + +- Using 0.12.0-rc.1 by @dessalines +- Integrating resolve_user into search. by @dessalines +- Add lazy loading of images. Fixes #329 by @dessalines +- Adding vi, sk, mnc, and cy languages. by @dessalines +- Updating translations. by @dessalines +- upgrade deps. by @dessalines +- Feature/user community block by @dessalines +- Swapping out iframely. by @dessalines +- Adding mod transfer community by @dessalines +- Remove content more by @dessalines +- Cleaning up scroll to comments by @dessalines +- Scroll to comments on post's x comments button by @hammsvietro +- Merge pull request #361 from unbeatable-101/patch-1 by @dessalines +- Remove uneeded `ui` from FEATURE_REQUEST.md by @unbeatable-101 + +## New Contributors + +- @unbeatable-101 made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.4-rc.1...0.12.0-rc.1 + +## What's Changed in 0.11.4-rc.1 + +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui by @dessalines +- Remove websocket connection messages. Fixes #355 by @dessalines +- Center spinner, make smaller. Fixes #203 by @dessalines +- Fix font issues. Fixes #354 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.3-rc.5...0.11.4-rc.1 + +## What's Changed in 0.11.3-rc.5 + +- Fix captcha replay issue. by @dessalines +- Fixing darkly danger color by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.3-rc.4...0.11.3-rc.5 + +## What's Changed in 0.11.3-rc.4 + +- Have setting to disable notifs for new posts. Fixes #132 by @dessalines +- Revert "Update litely" by @dessalines +- Remove max length constraints on actors. Fixes #350 by @dessalines +- Fix captcha replay bug. Fixes #348 by @dessalines +- Removing community and user routes in favor of shortnames. Fixes #317 by @dessalines +- Fix/front end helpers 1 by @dessalines +- Merge pull request #344 from LemmyNet/fix/add_communities_listing_type_filter by @dessalines +- Updating translations. by @dessalines +- Don't use default subscribed for communities page. by @dessalines +- Adding Listing type to communities page, default local. #190 by @dessalines +- Fix language bug on mobile browsers by @dessalines +- Collapse sidebar on mobile. Fixes #335 by @dessalines +- Updating translations. by @dessalines +- Re-organized components folder. by @dessalines +- Fixing too many large spinners by @dessalines +- Moving comment link to top bar. Fixes #307 by @dessalines +- Fix/ws error messages by @dessalines +- Merge pull request #333 from LemmyNet/fix/spinner_size by @dessalines +- Make spinner bigger. Fixes #203 by @dessalines +- Merge pull request #330 from LemmyNet/update_darkly_colors_1 by @dessalines +- Update darkly, make danger darker. Fixes #16 by @dessalines +- Merge pull request #332 from LemmyNet/fix/preview_desc by @dessalines +- Fix preview description html. Fixes #110 by @dessalines +- Update litely by @dessalines +- Merge pull request #327 from LemmyNet/fix/paginator-previous by @dessalines +- Always show previous paginator, extract paginator component. by @dessalines +- Merge pull request #322 from LemmyNet/fix/comment_collapse by @dessalines +- Use better comment collapse icon, and add text. Fixes #318 by @dessalines +- Merge pull request #323 from LemmyNet/fix/page-refresh by @dessalines +- Don't restore scroll position on page refresh. Fixes #186 by @dessalines +- Merge pull request #321 from LemmyNet/fix/symbols_issue by @dessalines +- Fix symbols issue. Fixes #319 by @dessalines +- Merge pull request #324 from LemmyNet/upgrade_deps_4 by @dessalines +- Upgrade deps by @dessalines +- Fix/multilang by @dessalines +- Adding a few missing langs. by @dessalines +- Updating translations. by @dessalines +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui by @dessalines +- Merge pull request #313 from remram44/patch-1 by @Nutomic +- Fix link to docs in CONTRIBUTING.md by @remram44 +- Insert triple backticks for 'code' button when multiple lines are selected. by @hammsvietro +- Fix Contributing link by @dessalines + +## New Contributors + +- @remram44 made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.2...0.11.3-rc.4 + +## What's Changed in 0.11.2 + +- Updating translations. by @dessalines +- Merge pull request #303 from LemmyNet/joinlemmyorg by @Nutomic +- Change join.lemmy.ml to join-lemmy.org by @dessalines +- Upgrading deps. by @dessalines +- Merge pull request #302 from LemmyNet/comment_here by @dessalines +- Adding a comment here placeholder. Fixes #301 by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.1...0.11.2 + +## What's Changed in 0.11.1 + +- Merge pull request #292 from LemmyNet/bug/delete_acct_logout by @dessalines +- Fixing delete acct logout bug. by @dessalines +- Merge pull request #291 from LemmyNet/bug/fed_community_link by @dessalines +- Fix non-local community and person links. Fixes #290 by @dessalines +- Fix navbar bug. Fixes #289 by @dessalines +- Merge pull request #288 from LemmyNet/hide_modlog_names by @dessalines +- Hide names of mods / admins without priveleges. Fixes #285 by @dessalines +- Merge pull request #287 from LemmyNet/feature/url_search by @dessalines +- Adding URL search type. Fixes #286 by @dessalines +- Merge pull request #283 from LemmyNet/dupe_site_desc by @dessalines +- Fix duped site description. Fixes #281 by @dessalines +- Merge pull request #284 from LemmyNet/feature/nonlemmy_ml_message by @dessalines +- Add a link to joinlemmy on lemmy.ml signup. Fixes #235 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.0...0.11.1 + +## What's Changed in 0.11.0 + +- Upgrading lemmy-js-client. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.0-rc.3...0.11.0 + +## What's Changed in 0.11.0-rc.3 + +- Fixing an issue with federated search names by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.0-rc.2...0.11.0-rc.3 + +## What's Changed in 0.11.0-rc.2 + +- Fix httpBase by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.11.0-rc.1...0.11.0-rc.2 + +## What's Changed in 0.11.0-rc.1 + +- Updating translations. by @dessalines +- Only show UI version if they are different by @dessalines +- Add UI version to UI via docker. Fixes #263 by @dessalines +- Merge pull request #277 from LemmyNet/feature/mark_post_as_read by @dessalines +- Add show read posts option. Fixes #276 by @dessalines +- Merge pull request #275 from LemmyNet/upgrade_deps_2 by @dessalines +- Upgrading deps. by @dessalines +- Merge pull request #274 from LemmyNet/feature/admin_only_community_creation by @dessalines +- Adding only admins can create communities. Fixes #268 by @dessalines +- Merge pull request #273 from LemmyNet/feature/bot_accounts by @dessalines +- Adding bot acct settings. Fixes #242 by @dessalines +- Merge pull request #272 from LemmyNet/feature/site_desc by @dessalines +- Adding site desc. Fixes #266 by @dessalines +- Adding listing_type to search. #143 by @dessalines +- Merge branch 'main' into unused-langs-check by @dessalines +- Add Korean language by @dessalines +- use set -e in all bash scripts by @Nutomic +- Add check for unused languages in update_translations.sh by @Nutomic +- Merge pull request #261 from LemmyNet/show_score_setting by @dessalines +- Showing / hiding scores based on setting. Fixes #241 by @dessalines +- Merge branch 'release/v0.10' by @dessalines +- Fix html notif bug. Fixes #254 by @dessalines +- Merge pull request #259 from LemmyNet/community_sort_top_monthly by @dessalines +- Communities page sorts by monthly active users. Fixes #244 by @dessalines +- Merge pull request #260 from LemmyNet/validate_matrix_id by @dessalines +- Validate matrix id on the front end. Fixes #245 by @dessalines +- Merge pull request #258 from LemmyNet/change_password by @dessalines +- Updating translations. by @dessalines +- Moved ChangePassword to its own action. by @dessalines +- Merge pull request #256 from LemmyNet/html_notif_fix by @dessalines +- Fix html notif bug. Fixes #254 by @dessalines +- Fixing main fetch submodule. by @dessalines +- Merge pull request #255 from LemmyNet/drone-release-main by @dessalines +- Publish docker images from main by @Nutomic + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.3...0.11.0-rc.1 + +## What's Changed in 0.10.3 + +- Merge pull request #253 from LemmyNet/fix_unban_1 by @dessalines +- Fixing unban. Fixes #248 by @dessalines +- Merge pull request #252 from LemmyNet/fetch_url_title by @dessalines +- Fixing issue with debounce. Fixes #236 by @dessalines +- Merge pull request #251 from LemmyNet/upgrade_deps_1 by @dessalines +- Updating translations. by @dessalines +- Merge pull request #250 from LemmyNet/fix_user_page by @dessalines +- Fixing user page, issue with matrix button. Fixes #239 by @dessalines +- Updating translations. by @dessalines +- Adding back in logging by @dessalines +- Merge pull request #249 from LemmyNet/fix_instances_page by @dessalines +- Fix instances page. Fixes #237 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.2...0.10.3 + +## What's Changed in 0.10.2 + +- Updating translations. by @dessalines +- Adding bulgarian language. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.15...0.10.2 + +## What's Changed in 0.10.0-rc.15 + +- Using LEMMY_UI_HOST by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.14...0.10.0-rc.15 + +## What's Changed in 0.10.0-rc.14 + +- Fixing lemmy-ui default port. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.13...0.10.0-rc.14 + +## What's Changed in 0.10.0-rc.13 + +- Updating to use api v3 lemmy-js-client. by @dessalines +- Set listen host and port with environment variables by @stemid + +## New Contributors + +- @stemid made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.12...0.10.0-rc.13 + +## What's Changed in 0.10.0-rc.12 + +- Updating deps by @dessalines +- Fix loading indicator. Fixes #188 by @dessalines +- Remove extra cross-post lines by @dessalines +- Adding cross-post quote and link. Fixes #189 by @dessalines +- Merge branch 'split_user_table' by @dessalines +- Fix restore scroll position. Fixes #227 by @dessalines +- Adding expandable post texts by clicking on book. Fixes #225 by @dessalines +- Adding more footer margin. Fixes #204 by @dessalines +- Adding not allowed to password reset. Fixes #205 by @dessalines +- Adding autocomplete for login fields. Fixes #206 by @dessalines +- Fix import. by @dessalines +- Fixing custom favicons. Fixes #220 by @dessalines +- Merge branch 'remote-mods' by @dessalines +- Remove creator local check from modding on comment-node by @dessalines +- Allow adding and removing remote mods by @Nutomic +- Merge pull request #212 from LemmyNet/add_password_length by @dessalines +- Merge branch 'main' into add_password_length by @dessalines +- Updating translations. by @dessalines +- Merge pull request #221 from LemmyNet/split_user_table by @dessalines +- Fix type names. Fixes #219 by @dessalines +- Some fixes. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.11...0.10.0-rc.12 + +## What's Changed in 0.10.0-rc.11 + +- Fixing saved_only by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.10...0.10.0-rc.11 + +## What's Changed in 0.10.0-rc.10 + +- New fixes. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.7...0.10.0-rc.10 + +## What's Changed in 0.10.0-rc.7 + +- Updating translations. by @dessalines +- Updating claims. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.6...0.10.0-rc.7 + +## What's Changed in 0.10.0-rc.6 + +- Fixing an issue with incorrect jwts by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.10.0-rc.5...0.10.0-rc.6 + +## What's Changed in 0.10.0-rc.5 + +- user\_ -> person table migration. by @dessalines +- Updating translations. by @dessalines +- Fixing an issue with remove categories by @dessalines +- Dont fetch on ARM CI except for tags by @Nutomic +- Remove categories by @Nutomic +- Merge branch 'shilangyu-feature/i18n-type-constraint' by @dessalines +- Merge branch 'feature/i18n-type-constraint' of https://github.com/shilangyu/lemmy-ui into shilangyu-feature/i18n-type-constraint by @dessalines +- Add I18nKeys type to errCode by @shilangyu +- Improve type safety by @shilangyu +- Generate typescript i18n types by @shilangyu +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui by @dessalines +- Merge pull request #196 from marek-lach/patch-1 by @dessalines +- Improve rendering in older browsers +- Fixing private message disclaimer. by @dessalines +- Updating translations. by @dessalines +- Adding thai language. by @dessalines +- Adding more max password lengths. Fixes #211 by @dessalines +- Merge branch 'main' of https://github.com/LemmyNet/lemmy-ui by @dessalines +- Merge pull request #193 from LemmyNet/markup_bug by @dessalines +- Merge branch 'run_prettier_1' into markup_bug by @dessalines +- Fixing markup not throwing onContentChange. Fixes #182 by @dessalines +- Merge pull request #194 from LemmyNet/run_prettier_1 by @dessalines +- Running newer prettier. by @dessalines +- Change subscribers to users. Fixes #195 by @dessalines +- Extra lints by @dessalines +- Merge pull request #191 from LemmyNet/use_emoji_utf8 by @dessalines +- Using utf-8 emojis. Fixes #184 by @dessalines + +## New Contributors + +- @shilangyu made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.9...0.10.0-rc.5 + +## What's Changed in 0.9.9 + +- Updating deps. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.8...0.9.9 + +## What's Changed in 0.9.8 + +- Updating translations. by @dessalines +- Adding new comment sort. by @dessalines +- Removing targets by @dessalines +- Make WS host configurable by @revmischa + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.8-rc.3...0.9.8 + +## What's Changed in 0.9.8-rc.3 + +- Updating translations. by @dessalines +- Merge pull request #174 from LemmyNet/more_accessibility by @dessalines +- Merge branch 'main' into more_accessibility by @dessalines +- Merge pull request #178 from LemmyNet/icon_component by @dessalines +- Adding an icon component. Fixes #172 by @dessalines +- Merge pull request #177 from LemmyNet/always_show_reset_password by @dessalines +- Always show password reset link. Fixes #176 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.8-rc.2...0.9.8-rc.3 + +## What's Changed in 0.9.8-rc.2 + +- Fixing lint by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.8-rc.1...0.9.8-rc.2 + +## What's Changed in 0.9.8-rc.1 + +- Adding accessibility tests script. by @dessalines +- Adding more aria labels based on tota11y recs. #170 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.7...0.9.8-rc.1 + +## What's Changed in 0.9.7 + +- Fixing broken federated community paging. Fixes #166 by @dessalines +- Upgrading deps. by @dessalines +- Merge pull request #171 from LemmyNet/post_title_expand by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.7-rc.2...0.9.7 + +## What's Changed in 0.9.7-rc.2 + +- Adding post title expanding on copy. Fixes #168 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.9.7-rc.1...0.9.7-rc.2 + +## What's Changed in v0.9.7-rc.1 + +- Merge pull request #169 from LemmyNet/no_live_sorting by @dessalines +- Comments and posts no longer live-sorted. Fixes #51 by @dessalines +- Updating translations. by @dessalines +- Add aria attributes where possible by @MitchLillie +- Adding croatian. by @dessalines +- Updating translations. by @dessalines + +## New Contributors + +- @MitchLillie made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.6...v0.9.7-rc.1 + +## What's Changed in 0.9.6 + +- Upgrading deps. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.5-rc.1...0.9.6 + +## What's Changed in 0.9.5-rc.1 + +- Trying to fix form bug. Fixes #165 by @dessalines +- Updating docs locations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.4...0.9.5-rc.1 + +## What's Changed in 0.9.4 + +- Updating lemmy-js-client. by @dessalines +- Reworking combined inbox. Fixes #161 by @dessalines +- Updating translations. by @dessalines +- Adding simple scroll position restore. Fixes #18 by @dessalines +- Ignore updated for user page. Fixes #139 by @dessalines +- Fixing uri protected params getting clipped from cross posts. Fixes #141 by @dessalines +- Adding tippy to active users badges. Fixes #150 by @dessalines +- Updating translations. by @dessalines +- Add preventDefaults to stop form submits on likes. Fixes #153 by @dessalines +- Fix url link selection placement. Fixes #155 by @dessalines +- Add most commented by @dessalines +- Adding lemmy translations. by @dessalines +- Merge pull request #158 from LemmyNet/add_federated_instances_details by @dessalines +- Fixing showLocal. by @dessalines +- Updating federated instances page. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.3...0.9.4 + +## What's Changed in 0.9.3 + +- Upgrading lemmy-js-client. by @dessalines +- Adding some active users aggregate fields. by @dessalines +- Fixing post title height. Fixes #147 by @dessalines +- Adding maxLength to verify_password field. Fixes #145 by @dessalines +- Fixing mod ban removeData default. by @dessalines +- Merge pull request #144 from LemmyNet/fix_trending_to_local_only by @dessalines +- Make sure trending is local only. Fixes #142 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0...0.9.3 + +## What's Changed in 0.9.0 + +- Upgrading deps. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.20...0.9.0 + +## What's Changed in 0.9.0-rc.20 + +- Fixing service worker lint. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.19...0.9.0-rc.20 + +## What's Changed in 0.9.0-rc.19 + +- Trying to fix manifest csp. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.18...0.9.0-rc.19 + +## What's Changed in 0.9.0-rc.18 + +- Only push notifs if on first page, and right local context. Fixes #131 by @dessalines +- Fixing switch user navbar info remnant. Fixes #128 by @dessalines +- Try standalone. Fixes #138 by @dessalines +- Show cross-posts for isomorphic loading. Fixes #113 by @dessalines +- Fixing markdown spaces. Fixes #101 Fixes #126 by @dessalines +- Dont replace edited comment if text selected. Fixes #125 by @dessalines +- Fixing views for remote users. Fixes #120 by @dessalines +- Add search field to communities page. Fixes #118 by @dessalines +- Adding a few markdown header sizes. Fixes #99 by @dessalines +- Fix search page community titles. by @dessalines +- Use display titles for community links. Fixes #98 by @dessalines +- Using fully qualified actor_ids for name and community tributes. Fixes #93 by @dessalines +- Adding tippy to new comments. Fixes #92 by @dessalines +- Updating deps. by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.17...0.9.0-rc.18 + +## What's Changed in 0.9.0-rc.17 + +- Adding multi-arch images. by @dessalines +- Fixing top_time translations. by @dessalines +- Updating translations. by @dessalines +- Updating deps. by @dessalines +- Updating translations. by @dessalines +- Merge pull request #134 from LemmyNet/issue-template by @dessalines +- Add issue template by @Nutomic +- Updating deps. by @dessalines +- Fix issue with site view for initial site setup. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.12...0.9.0-rc.17 + +## What's Changed in 0.9.0-rc.12 + +- Updating v2 API based on nutomics recommends. by @dessalines +- Adding occitan. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.7...0.9.0-rc.12 + +## What's Changed in 0.9.0-rc.7 + +- Fixing docs location by @dessalines +- Adding live comment count. by @dessalines +- Adding back in drone arm build. by @dessalines +- Disabling arm for now. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/0.9.0-rc.5...0.9.0-rc.7 + +## What's Changed in 0.9.0-rc.5 + +- Fixing comment issue. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.9.0-rc.3...0.9.0-rc.5 + +## What's Changed in v0.9.0-rc.3 + +- fixing drone. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.9.0-rc.2...v0.9.0-rc.3 + +## What's Changed in v0.9.0-rc.2 + +- Adding drone docker deploy. by @dessalines +- Fixing community link wrapping. Fixes #96 by @dessalines +- Updating translations. by @dessalines +- Updating translations. by @dessalines +- Fixing websockets. by @dessalines +- Fix mark as read. by @dessalines +- Add proper docs url. by @dessalines +- Remove lint in generate translations. by @dessalines +- Fix user mentions read. by @dessalines +- Some clean up. by @dessalines +- Changing docker tag. by @dessalines +- fetch git submodules. by @dessalines +- more apk deps. by @dessalines +- Try to add python. by @dessalines +- Removing node-prune. by @dessalines +- Fixing apk install. by @dessalines +- Trying a regular node for arm. by @dessalines +- Merge remote-tracking branch 'origin/drone-ci' into drone-ci-dess by @dessalines +- WIP:Aadd drone ci config by @Nutomic +- A few fixes. by @dessalines +- Actually sending ws requests, some other fixes. by @dessalines +- Upgrading deps. by @dessalines +- First pass at v2_api by @dessalines +- Simplifying html tags code. by @dessalines +- Converting html tags description field from md to html. Fixes #110 by @dessalines +- Redirect inbox to login. Fixes #105 by @dessalines +- Merge pull request #109 from realkinetix/fix-broken-help-links by @dessalines +- Fix guide URL, fixes link breakages in moved docs. This should resolve Issue 108. +- Updating deps. by @dessalines +- Adding danish, not yet translated. by @dessalines +- Trying to fix site loading errors. #104 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.10...v0.9.0-rc.2 + +## What's Changed in v0.8.10 + +- Fixing max image size. by @dessalines +- Fix safari websocket bug. by @dessalines +- fixing loading on community page. Fixes #91 by @dessalines +- Fixing CSP by @dessalines +- Upgrade deps. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.9...v0.8.10 + +## What's Changed in v0.8.9 + +- Fixing side scrolling community links. Fixes #89 by @dessalines +- Adding a proper navbar toggler icon. Fixes #90 by @dessalines +- Remove inline javascript. Fixes #83 by @dessalines +- Updating translations. by @dessalines +- Adding the support / donate page to the navbar. Fixes #86 by @dessalines +- Some icon / banner fixes. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.8...v0.8.9 + +## What's Changed in v0.8.8 + +- Logging out user on account deletion. Fixes #84 by @dessalines +- Fixing update translation script. by @dessalines +- Updating translations. by @dessalines +- Adding local rss feed. by @dessalines +- Fixing CSP for local dev by @dessalines +- Adding a content security policy. Fixes #20 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.7...v0.8.8 + +## What's Changed in v0.8.7 + +- Have option to show apub shortname in parenthesis. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.6...v0.8.7 + +## What's Changed in v0.8.6 + +- Updating deps. by @dessalines +- Fixing mark all as read. Fixes #72 by @dessalines +- Fixing user link in search page. Fixes #74 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.5...v0.8.6 + +## What's Changed in v0.8.5 + +- Fix post listing formatting. by @dessalines +- Hide downvote on mobile when downvotes disabled +- Fix create post for federated communities. Fixes #76 by @dessalines +- Fixing off-site links for community and user. Fixes #78 by @dessalines +- fixing federated community / cross-post display links. Fixes #75 by @dessalines +- Fixing undefined user page title. Fixes #77 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.4...v0.8.5 + +## What's Changed in v0.8.4 + +- Copy forward-headers from nginx to local node-fetch. Fixes #73 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.3...v0.8.4 + +## What's Changed in v0.8.3 + +- Forwarding error code to 404 page. by @dessalines +- Fix formatting offset. by @dessalines +- Add update translations script. by @dessalines +- Fetching site data first to get UserService / my_user. Fixes #66 by @dessalines +- Hiding embed title if matches post title. Fixes #60 by @dessalines +- Create a 404 page. Fixes #71 by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.2...v0.8.3 + +## What's Changed in v0.8.2 + +- Updating deps. by @dessalines +- On component unmounting, unset the window iso data, to force a refresh. by @dessalines +- Fixing empty post url. Fixes #70 by @dessalines +- Increasing timeout, removing isomporphic-ws by @dessalines +- Upgrading deps. by @dessalines +- Fixing webpack lint. by @dessalines +- Fixing an issue with browser theme. by @dessalines +- PR feedback by @0rvar +- Use helmet for theme inclusion instead by @0rvar +- Refactor by @0rvar +- Don't flash default theme on page load by @0rvar +- Merge pull request #67 from 0rvar/0rvar/revamp-dev-flow by @dessalines +- Use webpack-watch, run server via RunNodeWebpackPlugin by @0rvar +- Combine webpack configs to build everything at once by @0rvar +- Use Webpack 5 filesystem cache by @0rvar + +## New Contributors + +- @0rvar made their first contribution + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.1...v0.8.2 + +## What's Changed in v0.8.1 + +- Fixing extending width icons. Fixes #64 by @dessalines +- Upgrading deps, moving to webpack 5 by @dessalines +- Removing landing and donations page, adding joinlemmy. Fixes #63 by @dessalines +- Merge pull request #62 from jetbridge/main by @dessalines +- COPY requires / suffix by @revmischa +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.8.0...v0.8.1 + +## What's Changed in v0.8.0 + +- Merge pull request #59 from LemmyNet/pictrs_v2 by @dessalines +- Making front end work w/ pictrs v2. Fixes #57 by @dessalines +- Fix issue with env.ts by @dessalines +- Fixing RSS for non-local communities. Fixes #53 by @dessalines +- Fix httpBase adding a : . Fixes #56 by @dessalines +- Fix post listing mod actions. Fixes #58 by @dessalines +- Updating translations. by @dessalines +- Update yarn deps. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.7.64...v0.8.0 + +## What's Changed in v0.7.64 + +- Merge pull request #55 from LemmyNet/urlencode-search by @dessalines +- Use urlencode for search queries by @Nutomic +- Update translations. by @dessalines +- Make /c/local the default for not-logged-in users. Fixes #52 by @dessalines +- Upgrade deps. by @dessalines +- Adding uppercase M, Y, for month, year. by @dessalines +- Adding max password length for registering. by @dessalines +- Add link to contributing docs. Fixes #43 by @dessalines +- Updating translations. by @dessalines +- Adding librejs and a banner to javascript. Fixes #50 by @dessalines +- fixing some star margins. by @dessalines +- Changing choices background. Fixes #48 by @dessalines +- Fixing saved / starred. Fixes #42 by @dessalines +- Fixing post listing issue. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.7.61...v0.7.64 + +## What's Changed in v0.7.61 + +- Improving action / comment bar. Fixes #37 by @dessalines +- Rejoin websocket rooms on reconnect. Fixes #41 by @dessalines +- Fix private message reply from inbox. Fixes #40 by @dessalines +- Adding a browser default theme option. Fixes #35 by @dessalines +- Upgrade deps. by @dessalines +- Fix create post from community bug. Fixes #39 by @dessalines +- Re-arranging subscribed. Removing transparent cards. Fixes #38" by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.7.60...v0.7.61 + +## What's Changed in v0.7.60 + +- Fix opengraph tags. Fixes #36 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.7.59...v0.7.60 + +## What's Changed in v0.7.59 + +- Adding test deploy script. by @dessalines +- Updating translations, repo url, fixing webmanifest. by @dessalines +- Revert "Splitting out chinese region translations." by @dessalines +- Splitting out chinese region translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.14...v0.7.59 + +## What's Changed in v0.0.14 + +- Fix pictrs fetch url to use https by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.13...v0.0.14 + +## What's Changed in v0.0.13 + +- Changing name to lemmy-ui. Fixes #12 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.12...v0.0.13 + +## What's Changed in v0.0.12 + +- Get it working for non-setup site. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.11...v0.0.12 + +## What's Changed in v0.0.11 + +- Site again. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.10...v0.0.11 + +## What's Changed in v0.0.10 + +- Adding some logging. by @dessalines +- Trying out fixing a null site issue. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.9...v0.0.10 + +## What's Changed in v0.0.9 + +- Trying out ignoring secure for httpBase. #13 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.8...v0.0.9 + +## What's Changed in v0.0.8 + +- Bolding no js message, fixing settheme and setLang on login event. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.7...v0.0.8 + +## What's Changed in v0.0.7 + +- Upgrading deps. by @dessalines +- Moving javascript disabled warning to top. by @dessalines +- Updating readme. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.6...v0.0.7 + +## What's Changed in v0.0.6 + +- Adding support for join messages. Fixes #8 by @dessalines +- Updating translations. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.5...v0.0.6 + +## What's Changed in v0.0.5 + +- Adding https flag. Fixes #7 by @dessalines +- Adding opengraph tags. Fixes #5 by @dessalines +- Inferno helmet SSR. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.4...v0.0.5 + +## What's Changed in v0.0.4 + +- Trying to fix picture uploads. by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.3...v0.0.4 + +## What's Changed in v0.0.3 + +- Adding themes, assets. Hate doing this but oh well. Fixes #2 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.2...v0.0.3 + +## What's Changed in v0.0.2 + +- Set up docker deploys. Fixes #4 by @dessalines + +**Full Changelog**: https://github.com/LemmyNet/lemmy-ui/compare/v0.0.1...v0.0.2 + +## What's Changed in v0.0.1 + +- Test submodules by @dessalines +- Fixing docker by @dessalines +- Making a pass at adding a service worker. by @dessalines +- Somewhat working dockerfile, without the networking. by @dessalines +- Upgrading deps, cleaning up package.json. by @dessalines +- Logging in working, languages working. by @dessalines +- Making communities in PostForm optional. Fixing private-message. by @dessalines +- Some cleanup. by @dessalines +- Modlog, admin-settings, search, and user done. by @dessalines +- Add post, inbox, and user routes. by @dessalines +- Adding create private message. by @dessalines +- Community page done. by @dessalines +- Main page done. by @dessalines +- Create community, Create post, and instances pages done. by @dessalines +- Better resolver, communities mostly done. by @dessalines +- Somewhat working webpack. Sponsors and communities pages done. by @dessalines +- Partly functioning fuse-box, but moving te webpack now. by @dessalines +- Adding prettier by @dessalines +- Initial commit. by @dessalines + + diff --git a/cliff.toml b/cliff.toml index 2bfd5ea2..295865fa 100644 --- a/cliff.toml +++ b/cliff.toml @@ -14,18 +14,19 @@ body = """ {%- if version %} in {{ version }}{%- endif -%} {% for commit in commits %} - {% if commit.github.pr_title -%} - {%- set commit_message = commit.github.pr_title -%} + {% if commit.remote.pr_title -%} + {%- set commit_message = commit.remote.pr_title -%} {%- else -%} {%- set commit_message = commit.message -%} {%- endif -%} * {{ commit_message | split(pat="\n") | first | trim }}\ - {% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%} - {% if commit.github.pr_number %} in \ - [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}) \ + {% if commit.remote.username %} by @{{ commit.remote.username }}{%- endif -%} + {% if commit.remote.pr_number %} in \ + [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }}) \ {%- endif %} {%- endfor -%} +{%- if github -%} {% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} {% raw %}\n{% endraw -%} ## New Contributors @@ -36,6 +37,7 @@ body = """ [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ {%- endif %} {%- endfor -%} +{%- endif -%} {% if version %} {% if previous.version %} @@ -51,7 +53,7 @@ body = """ """ # remove the leading and trailing whitespace from the template trim = true -# changelog footer +# template for the changelog footer footer = """ """ @@ -70,16 +72,12 @@ commit_preprocessors = [ # remove issue numbers from commits { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, ] -# protect breaking changes from being skipped due to matching a skipping commit_parser -protect_breaking_commits = false +commit_parsers = [ + { field = "author.name", pattern = "renovate", skip = true }, + { field = "message", pattern = "Upping version", skip = true }, +] # filter out the commits that are not matched by commit parsers filter_commits = false -# regex for matching git tags -tag_pattern = "v[0-9].*" -# regex for skipping tags -skip_tags = "beta|alpha" -# regex for ignoring tags -ignore_tags = "rc" # sort the tags topologically topo_order = false # sort the commits inside sections by oldest/newest order diff --git a/dev.dockerfile b/dev.dockerfile index 35fef76c..4064476c 100644 --- a/dev.dockerfile +++ b/dev.dockerfile @@ -1,4 +1,4 @@ -FROM node:20-alpine as builder +FROM node:22-alpine as builder RUN apk update && apk add curl python3 build-base gcc wget git --no-cache RUN corepack enable pnpm @@ -30,7 +30,7 @@ RUN echo "export const BUILD_DATE_ISO8601 = '$(date -u +"%Y-%m-%dT%H:%M:%SZ")';" RUN pnpm i --prefer-offline RUN pnpm build:dev -FROM node:20-alpine as runner +FROM node:22-alpine as runner COPY --from=builder /usr/src/app/dist /app/dist COPY --from=builder /usr/src/app/node_modules /app/node_modules diff --git a/generate_changelog.sh b/generate_changelog.sh new file mode 100755 index 00000000..967b34e2 --- /dev/null +++ b/generate_changelog.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +# Adding to CHANGELOG.md +git cliff --output CHANGELOG.md +prettier -w CHANGELOG.md diff --git a/lemmy-translations b/lemmy-translations index ee2cffac..2bde7ace 160000 --- a/lemmy-translations +++ b/lemmy-translations @@ -1 +1 @@ -Subproject commit ee2cffac809ad466644f061ad79ac577b6c2e4fd +Subproject commit 2bde7acef9807d28cb13b6584fc63d7b8a457005 diff --git a/package.json b/package.json index 85c05e5f..844ae980 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "lemmy-ui", "description": "An isomorphic UI for lemmy", - "version": "0.19.5", + "version": "0.19.6-beta.14", "author": "Dessalines ", "license": "AGPL-3.0", "scripts": { @@ -26,12 +26,12 @@ }, "dependencies": { "@babel/plugin-proposal-decorators": "^7.24.7", - "@babel/plugin-transform-class-properties": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.24.7", - "@babel/preset-env": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-runtime": "^7.25.4", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/preset-env": "^7.25.4", "@babel/preset-typescript": "^7.24.7", - "@babel/runtime": "^7.24.7", + "@babel/runtime": "^7.25.4", "@emoji-mart/data": "^1.2.1", "autosize": "^6.0.1", "babel-loader": "^9.1.3", @@ -40,18 +40,18 @@ "check-password-strength": "^2.0.10", "classnames": "^2.5.1", "clean-webpack-plugin": "^4.0.0", - "cookie": "^0.6.0", + "cookie": "^1.0.0", "cookie-parser": "^1.4.6", "copy-webpack-plugin": "^12.0.2", "css-loader": "^7.1.2", - "date-fns": "^3.6.0", + "date-fns": "^4.0.0", "emoji-mart": "^5.6.0", "emoji-short-name": "^2.0.0", - "express": "~4.19.2", - "highlight.js": "^11.9.0", + "express": "~4.21.0", + "highlight.js": "^11.10.0", "history": "^5.3.0", "html-to-text": "^9.0.5", - "i18next": "^23.11.5", + "i18next": "^23.14.0", "inferno": "^8.2.3", "inferno-create-element": "^8.2.3", "inferno-helmet": "^5.2.1", @@ -60,78 +60,78 @@ "inferno-router": "^8.2.3", "inferno-server": "^8.2.3", "jwt-decode": "^4.0.0", - "lemmy-js-client": "0.19.4", + "lemmy-js-client": "0.20.0-alpha.17", "lodash.isequal": "^4.5.0", "markdown-it": "^14.1.0", - "markdown-it-bidi": "^0.1.0", + "markdown-it-bidi": "^0.2.0", "markdown-it-container": "^4.0.0", "markdown-it-emoji": "^3.0.0", "markdown-it-footnote": "^4.0.0", "markdown-it-highlightjs": "^4.1.0", "markdown-it-html5-embed": "^1.0.0", - "markdown-it-ruby": "^0.1.1", + "markdown-it-ruby": "^1.0.0", "markdown-it-sub": "^2.0.0", "markdown-it-sup": "^2.0.0", - "mini-css-extract-plugin": "^2.9.0", - "qreator": "^9.2.0", + "mini-css-extract-plugin": "^2.9.1", + "qreator": "^9.3.0", "register-service-worker": "^1.7.2", "run-node-webpack-plugin": "^1.3.0", "rxjs": "^7.8.1", "sanitize-html": "^2.13.0", - "sass": "^1.77.4", - "sass-loader": "^14.2.1", + "sass": "^1.77.8", + "sass-loader": "^16.0.1", "serialize-javascript": "^6.0.2", "service-worker-webpack": "^1.0.0", - "sharp": "0.33.4", + "sharp": "0.33.5", "tippy.js": "^6.3.7", "toastify-js": "^1.12.0", "tributejs": "^5.1.3", - "webpack": "^5.91.0", + "webpack": "^5.94.0", "webpack-cli": "^5.1.4", "webpack-node-externals": "^3.0.0" }, "devDependencies": { - "@babel/core": "^7.24.7", - "@eslint/js": "^9.4.0", + "@babel/core": "^7.25.2", + "@eslint/js": "^9.9.1", "@types/autosize": "^4.0.3", "@types/bootstrap": "^5.2.10", - "@types/cookie": "^0.6.0", + "@types/cookie": "^1.0.0", "@types/cookie-parser": "^1.4.7", "@types/express": "^4.17.21", "@types/html-to-text": "^9.0.4", "@types/lodash.isequal": "^4.5.8", - "@types/markdown-it": "^14.1.1", + "@types/markdown-it": "^14.1.2", "@types/markdown-it-container": "^2.0.10", - "@types/node": "^20.14.2", - "@types/path-browserify": "^1.0.2", - "@types/sanitize-html": "^2.11.0", + "@types/node": "^22.5.0", + "@types/path-browserify": "^1.0.3", + "@types/sanitize-html": "^2.13.0", "@types/serialize-javascript": "^5.0.4", "@types/toastify-js": "^1.12.3", - "@typescript-eslint/eslint-plugin": "^7.12.0", - "@typescript-eslint/parser": "^7.12.0", - "eslint": "^9.4.0", + "@typescript-eslint/eslint-plugin": "^8.3.0", + "@typescript-eslint/parser": "^8.3.0", + "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-inferno": "^7.34.0", - "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-prettier": "^5.1.3", - "globals": "^15.3.0", - "husky": "^9.0.11", + "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-plugin-prettier": "^5.2.1", + "globals": "^15.9.0", + "husky": "^9.1.5", "import-sort-style-module": "^6.0.0", - "lint-staged": "^15.2.5", - "prettier": "^3.3.1", + "lint-staged": "^15.2.9", + "prettier": "^3.4.1", "prettier-plugin-import-sort": "^0.0.7", "prettier-plugin-organize-imports": "^4.0.0", - "prettier-plugin-packagejson": "^2.5.0", - "qs": "^6.12.1", - "rimraf": "^6.0.0", + "prettier-plugin-packagejson": "^2.5.2", + "qs": "^6.13.0", + "rimraf": "^6.0.1", "sortpack": "^2.4.0", "style-loader": "^4.0.0", - "terser": "^5.31.0", - "typescript": "^5.4.5", - "typescript-eslint": "^7.12.0", + "terser": "^5.31.6", + "typescript": "^5.5.4", + "typescript-eslint": "^8.3.0", "typescript-language-server": "^4.3.3", "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "5.0.4" + "webpack-dev-server": "5.1.0" }, "lint-staged": { "*.{css, scss}": [ @@ -145,7 +145,7 @@ "sortpack" ] }, - "packageManager": "pnpm@9.5.0", + "packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c", "engineStrict": true, "importSort": { ".js, .jsx, .ts, .tsx": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 360657b5..756226cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,25 +10,25 @@ importers: dependencies: '@babel/plugin-proposal-decorators': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.9) + version: 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-class-properties': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.9) + specifier: ^7.25.4 + version: 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-runtime': - specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.9) + specifier: ^7.25.4 + version: 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-typescript': - specifier: ^7.24.7 - version: 7.24.8(@babel/core@7.24.9) + specifier: ^7.25.2 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-env': - specifier: ^7.24.7 - version: 7.24.8(@babel/core@7.24.9) + specifier: ^7.25.4 + version: 7.26.0(@babel/core@7.26.0) '@babel/preset-typescript': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.9) + version: 7.26.0(@babel/core@7.26.0) '@babel/runtime': - specifier: ^7.24.7 - version: 7.24.8 + specifier: ^7.25.4 + version: 7.26.0 '@emoji-mart/data': specifier: ^1.2.1 version: 1.2.1 @@ -37,10 +37,10 @@ importers: version: 6.0.1 babel-loader: specifier: ^9.1.3 - version: 9.1.3(@babel/core@7.24.9)(webpack@5.93.0(webpack-cli@5.1.4)) + version: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1) babel-plugin-inferno: specifier: ^6.7.1 - version: 6.7.1(@babel/core@7.24.9) + version: 6.7.2(@babel/core@7.26.0) bootstrap: specifier: ^5.3.3 version: 5.3.3(@popperjs/core@2.11.8) @@ -52,22 +52,22 @@ importers: version: 2.5.1 clean-webpack-plugin: specifier: ^4.0.0 - version: 4.0.0(webpack@5.93.0(webpack-cli@5.1.4)) + version: 4.0.0(webpack@5.97.1) cookie: - specifier: ^0.6.0 - version: 0.6.0 + specifier: ^1.0.0 + version: 1.0.2 cookie-parser: specifier: ^1.4.6 - version: 1.4.6 + version: 1.4.7 copy-webpack-plugin: specifier: ^12.0.2 - version: 12.0.2(webpack@5.93.0(webpack-cli@5.1.4)) + version: 12.0.2(webpack@5.97.1) css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.93.0(webpack-cli@5.1.4)) + version: 7.1.2(webpack@5.97.1) date-fns: - specifier: ^3.6.0 - version: 3.6.0 + specifier: ^4.0.0 + version: 4.1.0 emoji-mart: specifier: ^5.6.0 version: 5.6.0 @@ -75,10 +75,10 @@ importers: specifier: ^2.0.0 version: 2.0.0 express: - specifier: ~4.19.2 - version: 4.19.2 + specifier: ~4.21.0 + version: 4.21.2 highlight.js: - specifier: ^11.9.0 + specifier: ^11.10.0 version: 11.10.0 history: specifier: ^5.3.0 @@ -87,8 +87,8 @@ importers: specifier: ^9.0.5 version: 9.0.5 i18next: - specifier: ^23.11.5 - version: 23.12.1 + specifier: ^23.14.0 + version: 23.16.8 inferno: specifier: ^8.2.3 version: 8.2.3 @@ -114,8 +114,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 lemmy-js-client: - specifier: 0.19.4 - version: 0.19.4 + specifier: 0.20.0-alpha.17 + version: 0.20.0-alpha.17 lodash.isequal: specifier: ^4.5.0 version: 4.5.0 @@ -123,8 +123,8 @@ importers: specifier: ^14.1.0 version: 14.1.0 markdown-it-bidi: - specifier: ^0.1.0 - version: 0.1.0 + specifier: ^0.2.0 + version: 0.2.0 markdown-it-container: specifier: ^4.0.0 version: 4.0.0 @@ -136,13 +136,13 @@ importers: version: 4.0.0 markdown-it-highlightjs: specifier: ^4.1.0 - version: 4.1.0 + version: 4.2.0 markdown-it-html5-embed: specifier: ^1.0.0 version: 1.0.0 markdown-it-ruby: - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^1.0.0 + version: 1.1.2 markdown-it-sub: specifier: ^2.0.0 version: 2.0.0 @@ -150,38 +150,38 @@ importers: specifier: ^2.0.0 version: 2.0.0 mini-css-extract-plugin: - specifier: ^2.9.0 - version: 2.9.0(webpack@5.93.0(webpack-cli@5.1.4)) + specifier: ^2.9.1 + version: 2.9.2(webpack@5.97.1) qreator: - specifier: ^9.2.0 - version: 9.3.0 + specifier: ^9.3.0 + version: 9.7.0(react@18.3.1) register-service-worker: specifier: ^1.7.2 version: 1.7.2 run-node-webpack-plugin: specifier: ^1.3.0 - version: 1.3.0(webpack@5.93.0(webpack-cli@5.1.4)) + version: 1.3.0(webpack@5.97.1) rxjs: specifier: ^7.8.1 version: 7.8.1 sanitize-html: specifier: ^2.13.0 - version: 2.13.0 + version: 2.13.1 sass: - specifier: ^1.77.4 - version: 1.77.8 + specifier: ^1.77.8 + version: 1.82.0 sass-loader: - specifier: ^14.2.1 - version: 14.2.1(sass@1.77.8)(webpack@5.93.0(webpack-cli@5.1.4)) + specifier: ^16.0.1 + version: 16.0.4(sass@1.82.0)(webpack@5.97.1) serialize-javascript: specifier: ^6.0.2 version: 6.0.2 service-worker-webpack: specifier: ^1.0.0 - version: 1.0.0(webpack@5.93.0(webpack-cli@5.1.4)) + version: 1.0.0(webpack@5.97.1) sharp: - specifier: 0.33.4 - version: 0.33.4 + specifier: 0.33.5 + version: 0.33.5 tippy.js: specifier: ^6.3.7 version: 6.3.7 @@ -192,21 +192,21 @@ importers: specifier: ^5.1.3 version: 5.1.3 webpack: - specifier: ^5.91.0 - version: 5.93.0(webpack-cli@5.1.4) + specifier: ^5.94.0 + version: 5.97.1(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 - version: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + version: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) webpack-node-externals: specifier: ^3.0.0 version: 3.0.0 devDependencies: '@babel/core': - specifier: ^7.24.7 - version: 7.24.9 + specifier: ^7.25.2 + version: 7.26.0 '@eslint/js': - specifier: ^9.4.0 - version: 9.7.0 + specifier: ^9.9.1 + version: 9.16.0 '@types/autosize': specifier: ^4.0.3 version: 4.0.3 @@ -214,11 +214,11 @@ importers: specifier: ^5.2.10 version: 5.2.10 '@types/cookie': - specifier: ^0.6.0 - version: 0.6.0 + specifier: ^1.0.0 + version: 1.0.0 '@types/cookie-parser': specifier: ^1.4.7 - version: 1.4.7 + version: 1.4.8(@types/express@4.17.21) '@types/express': specifier: ^4.17.21 version: 4.17.21 @@ -229,20 +229,20 @@ importers: specifier: ^4.5.8 version: 4.5.8 '@types/markdown-it': - specifier: ^14.1.1 - version: 14.1.1 + specifier: ^14.1.2 + version: 14.1.2 '@types/markdown-it-container': specifier: ^2.0.10 version: 2.0.10 '@types/node': - specifier: ^20.14.2 - version: 20.14.10 + specifier: ^22.5.0 + version: 22.10.1 '@types/path-browserify': - specifier: ^1.0.2 - version: 1.0.2 + specifier: ^1.0.3 + version: 1.0.3 '@types/sanitize-html': - specifier: ^2.11.0 - version: 2.11.0 + specifier: ^2.13.0 + version: 2.13.0 '@types/serialize-javascript': specifier: ^5.0.4 version: 5.0.4 @@ -250,71 +250,71 @@ importers: specifier: ^1.12.3 version: 1.12.3 '@typescript-eslint/eslint-plugin': - specifier: ^7.12.0 - version: 7.16.0(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + specifier: ^8.3.0 + version: 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3) '@typescript-eslint/parser': - specifier: ^7.12.0 - version: 7.16.0(eslint@9.7.0)(typescript@5.5.3) + specifier: ^8.3.0 + version: 8.17.0(eslint@9.16.0)(typescript@5.6.3) eslint: - specifier: ^9.4.0 - version: 9.7.0 + specifier: ^9.9.1 + version: 9.16.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.7.0) + version: 9.1.0(eslint@9.16.0) eslint-plugin-inferno: specifier: ^7.34.0 - version: 7.34.0(eslint@9.7.0) + version: 7.34.0(eslint@9.16.0) eslint-plugin-jsx-a11y: - specifier: ^6.8.0 - version: 6.9.0(eslint@9.7.0) + specifier: ^6.9.0 + version: 6.10.2(eslint@9.16.0) eslint-plugin-prettier: - specifier: ^5.1.3 - version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3) + specifier: ^5.2.1 + version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0))(eslint@9.16.0)(prettier@3.4.1) globals: - specifier: ^15.3.0 - version: 15.8.0 + specifier: ^15.9.0 + version: 15.13.0 husky: - specifier: ^9.0.11 - version: 9.0.11 + specifier: ^9.1.5 + version: 9.1.7 import-sort-style-module: specifier: ^6.0.0 version: 6.0.0 lint-staged: - specifier: ^15.2.5 - version: 15.2.7 + specifier: ^15.2.9 + version: 15.2.10 prettier: - specifier: ^3.3.1 - version: 3.3.3 + specifier: ^3.4.1 + version: 3.4.1 prettier-plugin-import-sort: specifier: ^0.0.7 - version: 0.0.7(prettier@3.3.3) + version: 0.0.7(prettier@3.4.1) prettier-plugin-organize-imports: specifier: ^4.0.0 - version: 4.0.0(prettier@3.3.3)(typescript@5.5.3) + version: 4.1.0(prettier@3.4.1)(typescript@5.6.3) prettier-plugin-packagejson: - specifier: ^2.5.0 - version: 2.5.0(prettier@3.3.3) + specifier: ^2.5.2 + version: 2.5.6(prettier@3.4.1) qs: - specifier: ^6.12.1 - version: 6.12.3 + specifier: ^6.13.0 + version: 6.13.1 rimraf: - specifier: ^6.0.0 + specifier: ^6.0.1 version: 6.0.1 sortpack: specifier: ^2.4.0 version: 2.4.0 style-loader: specifier: ^4.0.0 - version: 4.0.0(webpack@5.93.0(webpack-cli@5.1.4)) + version: 4.0.0(webpack@5.97.1) terser: - specifier: ^5.31.0 - version: 5.31.2 + specifier: ^5.31.6 + version: 5.37.0 typescript: - specifier: ^5.4.5 - version: 5.5.3 + specifier: ^5.5.4 + version: 5.6.3 typescript-eslint: - specifier: ^7.12.0 - version: 7.16.0(eslint@9.7.0)(typescript@5.5.3) + specifier: ^8.3.0 + version: 8.17.0(eslint@9.16.0)(typescript@5.6.3) typescript-language-server: specifier: ^4.3.3 version: 4.3.3 @@ -322,8 +322,8 @@ importers: specifier: ^4.10.2 version: 4.10.2 webpack-dev-server: - specifier: 5.0.4 - version: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) + specifier: 5.1.0 + version: 5.1.0(webpack-cli@5.1.4)(webpack@5.97.1) packages: @@ -337,52 +337,50 @@ packages: peerDependencies: ajv: '>=8' - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.26.0': + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.8': - resolution: {integrity: sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + '@babel/compat-data@7.26.0': + resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.9': - resolution: {integrity: sha512-G8v3jRg+z8IwY1jHFxvCNhOPYPterE4XljNgdGTYfSTtzzwjIswIzIaSPSLs3R7yFuqnqNeay5rjICfqVr+/6A==} + '@babel/generator@7.26.0': + resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': + resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.7': - resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.24.8': - resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.24.7': - resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==} + '@babel/helper-create-regexp-features-plugin@7.25.9': + resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -392,135 +390,118 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.24.7': - resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.24.7': - resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==} + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.7': - resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + '@babel/helper-replace-supers@7.25.9': + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-simple-access@7.25.9': + resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.24.7': - resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.24.8': - resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + '@babel/parser@7.26.1': + resolution: {integrity: sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7': - resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==} + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': - resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': - resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7': - resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-proposal-decorators@7.24.7': - resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + '@babel/plugin-proposal-decorators@7.25.9': + resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -531,110 +512,38 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-syntax-decorators@7.25.9': + resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.24.7': - resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.24.7': - resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + '@babel/plugin-syntax-jsx@7.25.7': + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -645,314 +554,320 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.24.7': - resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==} + '@babel/plugin-transform-async-generator-functions@7.25.9': + resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.7': - resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + '@babel/plugin-transform-block-scoped-functions@7.25.9': + resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.7': - resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.7': - resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} + '@babel/plugin-transform-class-properties@7.25.9': + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.7': - resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + '@babel/plugin-transform-class-static-block@7.26.0': + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.24.8': - resolution: {integrity: sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==} + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.8': - resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.7': - resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + '@babel/plugin-transform-dotall-regex@7.25.9': + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.24.7': - resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + '@babel/plugin-transform-duplicate-keys@7.25.9': + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.24.7': - resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.24.7': - resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.24.7': - resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.24.7': - resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.24.7': - resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.24.7': - resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.24.7': - resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.24.7': - resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.24.7': - resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.24.7': - resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': - resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.24.7': - resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + '@babel/plugin-transform-dynamic-import@7.25.9': + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + '@babel/plugin-transform-exponentiation-operator@7.25.9': + resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.24.7': - resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.24.7': - resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + '@babel/plugin-transform-for-of@7.25.9': + resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.24.7': - resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + '@babel/plugin-transform-json-strings@7.25.9': + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-logical-assignment-operators@7.25.9': + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.7': - resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==} + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.7': - resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + '@babel/plugin-transform-modules-amd@7.25.9': + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + '@babel/plugin-transform-modules-commonjs@7.25.9': + resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.24.7': - resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + '@babel/plugin-transform-modules-systemjs@7.25.9': + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-reserved-words@7.24.7': - resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + '@babel/plugin-transform-modules-umd@7.25.9': + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.24.7': - resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.24.7': - resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.24.8': - resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.24.8': - resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.24.7': - resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.24.7': - resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.24.7': - resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.24.7': - resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==} + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.8': - resolution: {integrity: sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==} + '@babel/plugin-transform-new-target@7.25.9': + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': + resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.25.9': + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.25.9': + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.25.9': + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.25.9': + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.25.9': + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.25.9': + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.25.9': + resolution: {integrity: sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.25.9': + resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.25.9': + resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.26.3': + resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.25.9': + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.25.9': + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9': + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.26.0': + resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -962,189 +877,206 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-typescript@7.24.7': - resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==} + '@babel/preset-typescript@7.26.0': + resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + '@babel/traverse@7.26.4': + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} '@discoveryjs/json-ext@0.5.7': resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.3.0': + resolution: {integrity: sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==} '@emoji-mart/data@1.2.1': resolution: {integrity: sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==} - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.17.0': - resolution: {integrity: sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/core@0.9.0': + resolution: {integrity: sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.7.0': - resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.2.3': + resolution: {integrity: sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.0': - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@img/sharp-darwin-arm64@0.33.4': - resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.4': - resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.4': - resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.4': - resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.4': - resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} - engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.4': - resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.4': - resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.4': - resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.4': - resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.4': - resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.4': - resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1179,14 +1111,14 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.0.4': - resolution: {integrity: sha512-aOcSN4MeAtFROysrbqG137b7gaDDSmVrl5mpo6sT/w+kcXpWnzhMjmY/Fh/sDx26NBxyIE7MB1seqLeCAzy9Sg==} + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.1.3': - resolution: {integrity: sha512-g//kkF4kOwUjemValCtOc/xiYzmwMRmWq3Bn+YnzOzuZLHq2PpMOxxIayN3cKbo7Ko2Np65t6D9H81IvXbXhqg==} + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1206,22 +1138,100 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + '@pdf-lib/standard-fonts@1.0.0': resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==} '@pdf-lib/upng@1.0.1': resolution: {integrity: sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -1282,26 +1292,32 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie-parser@1.4.7': - resolution: {integrity: sha512-Fvuyi354Z+uayxzIGCwYTayFKocfV7TuDYZClCdIP9ckhvAu/ixDtCB6qx2TT0FKjPLf1f3P/J1rgf6lPs64mw==} + '@types/cookie-parser@1.4.8': + resolution: {integrity: sha512-l37JqFrOJ9yQfRQkljb41l0xVphc7kg5JTjjr+pLRZ0IyZ49V4BQ8vbF4Ut2C2e+WH4al3xD3ZwYwIUfnbT4NQ==} + peerDependencies: + '@types/express': '*' - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/cookie@1.0.0': + resolution: {integrity: sha512-mGFXbkDQJ6kAXByHS7QAggRXgols0mAdP4MuXgloGY1tXokvzaFFM4SMqWvf7AH0oafI7zlFJwoGWzmhDqTZ9w==} + deprecated: This is a stub types definition. cookie provides its own type definitions, so you do not need this installed. '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.3': - resolution: {integrity: sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + + '@types/express-serve-static-core@5.0.0': + resolution: {integrity: sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -1315,8 +1331,8 @@ packages: '@types/http-errors@2.0.4': resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/http-proxy@1.17.14': - resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/http-proxy@1.17.15': + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1327,14 +1343,14 @@ packages: '@types/lodash.isequal@4.5.8': resolution: {integrity: sha512-uput6pg4E/tj2LGxCZo9+y27JNyB2OZuuI/T5F+ylVDYuqICLG2/ktjxx0v6GvVntAf8TvEzeQLcV0ffRirXuA==} - '@types/lodash@4.17.4': - resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} + '@types/lodash@4.17.10': + resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} '@types/markdown-it-container@2.0.10': resolution: {integrity: sha512-zv+YxrlSYRq51e9kzm3orv4OvF4U79Ll1OyplNXr00o4ZC/8PukJk/jEWH7CnsMtrSWZlyv0czhz42jm9J4uLw==} - '@types/markdown-it@14.1.1': - resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==} + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} @@ -1348,26 +1364,35 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@20.14.10': - resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + '@types/node@22.10.1': + resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} - '@types/path-browserify@1.0.2': - resolution: {integrity: sha512-ZkC5IUqqIFPXx3ASTTybTzmQdwHwe2C0u3eL75ldQ6T9E9IWFJodn6hIfbZGab73DfyiHN4Xw15gNxUq2FbvBA==} + '@types/path-browserify@1.0.3': + resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} + + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} + '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - '@types/sanitize-html@2.11.0': - resolution: {integrity: sha512-7oxPGNQHXLHE48r/r/qjn7q0hlrs3kL7oZnGj0Wf/h9tj/6ibFyRkNbsDxaBBZ4XUZ0Dx5LGCyDJ04ytSofacQ==} + '@types/sanitize-html@2.13.0': + resolution: {integrity: sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -1390,111 +1415,115 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@typescript-eslint/eslint-plugin@7.16.0': - resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.17.0': + resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.16.0': - resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.17.0': + resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/scope-manager@7.16.0': - resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.17.0': + resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@7.16.0': - resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/type-utils@8.17.0': + resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/types@7.16.0': - resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.17.0': + resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.16.0': - resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@8.17.0': + resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/utils@7.16.0': - resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/utils@8.17.0': + resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true - '@typescript-eslint/visitor-keys@7.16.0': - resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.17.0': + resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@webpack-cli/configtest@2.1.1': resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} @@ -1531,30 +1560,25 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.12.1: resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -1579,9 +1603,9 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} @@ -1592,14 +1616,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1618,8 +1638,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} @@ -1636,10 +1657,6 @@ packages: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} @@ -1659,8 +1676,8 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} @@ -1673,22 +1690,23 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} - babel-loader@9.1.3: - resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} peerDependencies: '@babel/core': ^7.12.0 webpack: '>=5' - babel-plugin-inferno@6.7.1: - resolution: {integrity: sha512-PE21ZL2ABgQUKdOehlrSrmT/pPSUqp1ASzwKmAzvB2gg7gLHdhJbCh4cKmjF2w1nwKcil+lGr5WutTpbLDt+YA==} + babel-plugin-inferno@6.7.2: + resolution: {integrity: sha512-Bmub+hAHU7PH6myulEqD3d1NYqQf8qLWCRcKwah7ZI2r5G5OsRyIfsF9J3L4e9+Q0MlwY9JiF9XmLWCLx01Shg==} engines: {node: '>=6'} babel-plugin-polyfill-corejs2@0.4.11: @@ -1696,8 +1714,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.4: - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -1716,8 +1734,8 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} bonjour-service@1.2.1: @@ -1738,8 +1756,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1782,12 +1800,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001641: - resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + caniuse-lite@1.0.30001687: + resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1804,6 +1818,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -1817,9 +1835,9 @@ packages: peerDependencies: webpack: '>=4.0.0 <6.0.0' - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} @@ -1829,16 +1847,10 @@ packages: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1900,21 +1912,25 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-parser@1.4.6: - resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} + cookie-parser@1.4.7: + resolution: {integrity: sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==} engines: {node: '>= 0.8.0'} cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.4.1: - resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + copy-webpack-plugin@11.0.0: resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} @@ -1927,8 +1943,8 @@ packages: peerDependencies: webpack: ^5.1.0 - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1941,6 +1957,10 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} @@ -1980,8 +2000,8 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -1994,8 +2014,17 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2007,10 +2036,6 @@ packages: resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} engines: {node: '>= 0.4'} - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2026,10 +2051,6 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} - default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -2062,6 +2083,11 @@ packages: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -2116,14 +2142,14 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.4.825: - resolution: {integrity: sha512-OCcF+LwdgFGcsYPYC5keEEFC2XT0gBhrYbeGzHCx7i9qRFbzO/AqTmc/C/1xNhJj+JA7rzlN7mpBuStshh96Cg==} + electron-to-chromium@1.5.71: + resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} emoji-mart@5.6.0: resolution: {integrity: sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==} - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2138,8 +2164,12 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} - enhanced-resolve@5.17.0: - resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} entities@1.1.2: @@ -2149,11 +2179,15 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} engines: {node: '>=4'} hasBin: true + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -2169,11 +2203,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + es-iterator-helpers@1.1.0: + resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==} engines: {node: '>= 0.4'} es-module-lexer@1.5.4: @@ -2194,17 +2225,13 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2221,14 +2248,14 @@ packages: peerDependencies: eslint: ^6 || ^7 || ^8 - eslint-plugin-jsx-a11y@6.9.0: - resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2245,25 +2272,30 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@8.0.2: - resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.7.0: - resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -2308,10 +2340,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -2319,8 +2347,8 @@ packages: exenv@1.2.2: resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} fast-deep-equal@3.1.3: @@ -2339,8 +2367,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -2353,6 +2381,14 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -2364,8 +2400,8 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-cache-dir@4.0.0: @@ -2398,11 +2434,11 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2413,8 +2449,8 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} forwarded@0.2.0: @@ -2466,10 +2502,6 @@ packages: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} engines: {node: '>=12'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -2492,10 +2524,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - glob@11.0.0: resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} engines: {node: 20 || >=22} @@ -2513,24 +2541,20 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.8.0: - resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} engines: {node: '>=18'} globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} engines: {node: '>=18'} globby@6.1.0: @@ -2556,10 +2580,6 @@ packages: has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -2626,8 +2646,8 @@ packages: http-parser-js@0.5.8: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - http-proxy-middleware@2.0.6: - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + http-proxy-middleware@2.0.7: + resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -2639,16 +2659,12 @@ packages: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@9.0.11: - resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true @@ -2656,8 +2672,8 @@ packages: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} - i18next@23.12.1: - resolution: {integrity: sha512-l4y291ZGRgUhKuqVSiqyuU2DDzxKStlIWSaoNBR4grYmh0X+pRYbFpTMs3CnJ5ECKbOI8sQcJ3PbTUfLgPRaMA==} + i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -2672,12 +2688,12 @@ packages: idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - immutable@4.3.6: - resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} import-fresh@2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} @@ -2687,8 +2703,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true @@ -2819,8 +2835,9 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -2910,10 +2927,6 @@ packages: resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} engines: {node: '>=6'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-plain-obj@3.0.0: resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} engines: {node: '>=10'} @@ -2997,18 +3010,16 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jackspeak@4.0.1: - resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} engines: {node: 20 || >=22} - jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true @@ -3034,13 +3045,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: @@ -3098,14 +3105,14 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - launch-editor@2.6.1: - resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - lemmy-js-client@0.19.4: - resolution: {integrity: sha512-k3d+YRDj3+JuuEP+nuEg27efR/e4m8oMk2BoC8jq9AnMrwSAKfsN2F2vG70Zke0amXtOclDZrCSHkIpNw99ikg==} + lemmy-js-client@0.20.0-alpha.17: + resolution: {integrity: sha512-4iZQtZNldhioTecSgi1LMR4E3uK5IcQ+EuWg4aAXmciOIHxPXPAHy7qSLuHqbzEiL1QP5G3MFwQnlVf/sJkFaQ==} leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} @@ -3125,13 +3132,13 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.1: - resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} loader-runner@4.3.0: @@ -3165,15 +3172,16 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true - lru-cache@11.0.0: - resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -3182,8 +3190,8 @@ packages: magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - markdown-it-bidi@0.1.0: - resolution: {integrity: sha512-4GloQnF+PiILh6wkLAIeSxCLo9qUW7LcKj/08GyCpvo0LLC6YEhrZBvM9RkMkieGG7i4uIRE/F5jmU14DgR8Wg==} + markdown-it-bidi@0.2.0: + resolution: {integrity: sha512-7vm0gsynh8I1wcz5zD/Z2pWRbn/99HFlF9qfoH1u0bmdcOVSi+X4PCINujz+VqPVIbg/9q2wCFCdqMKLL3y7nQ==} markdown-it-container@4.0.0: resolution: {integrity: sha512-HaNccxUH0l7BNGYbFbjmGpf5aLHAMTinqRZQAEQbMr2cdD3z91Q6kIo1oUn1CQndkT03jat6ckrdRYuwwqLlQw==} @@ -3194,14 +3202,14 @@ packages: markdown-it-footnote@4.0.0: resolution: {integrity: sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==} - markdown-it-highlightjs@4.1.0: - resolution: {integrity: sha512-aYcgme5aYn10BHEvLZaCNgwxU2oaAX9inK9dwCv38wJdq7tal5FzZrLdQQY8MR3I1H07S3BKgYGRX2kKuPT+sA==} + markdown-it-highlightjs@4.2.0: + resolution: {integrity: sha512-NC7pXE8KkOl6xWJVRNt8p6wgJVznXKsE0HgYGdk6DD2tn1l4L9f0ALf3VIoGVkotNU1uGQatSxfBF1zZPUMmuQ==} markdown-it-html5-embed@1.0.0: resolution: {integrity: sha512-SPgugO/1+/9sZcgxoxijoTHSUpCUgFCNe1MSuTmDxDkV6NQrVzMclhRMFgE/rcHO+2rhIg3U7Oy80XA/E8ytpg==} - markdown-it-ruby@0.1.1: - resolution: {integrity: sha512-ct8t/Drt7scv20VdaQtOhpBOC2SDICaW8E/WQS8kY2eUdu0eoDwW8ugXcCy8Vku4Y5CuA5qrewlHpwaFsJxbpQ==} + markdown-it-ruby@1.1.2: + resolution: {integrity: sha512-tFAuH3HlxiFmx0JtqA02uBKjTZF7ICQu/g3tVf3vwU+ZVPTAMAjWUqcMuj5icO3vwJWSTeST8+D34blL7Q41gA==} markdown-it-sub@2.0.0: resolution: {integrity: sha512-iCBKgwCkfQBRg2vApy9vx1C1Tu6D8XYo8NvevI3OlwzBRmiMtsJ2sXupBgEA7PPxiDwNni3qIUkhZ6j5wofDUA==} @@ -3227,12 +3235,12 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@4.9.2: - resolution: {integrity: sha512-f16coDZlTG1jskq3mxarwB+fGRrd0uXWt+o1WIhRfOwbXQZqUDsTVxQBFK9JjRQHblg8eAG2JSbprDXKjc7ijQ==} + memfs@4.13.0: + resolution: {integrity: sha512-dIs5KGy24fbdDhIAg0RxXpFqQp3RwL6wgSMRF9OSuphL/Uc9a4u2/SDJKPLj/zUgtOGKuHrRMrj563+IErj4Cg==} engines: {node: '>= 4.0.0'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3245,14 +3253,18 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -3262,19 +3274,19 @@ packages: engines: {node: '>=4'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + mimoza@1.0.0: resolution: {integrity: sha512-+j7SSye/hablu66K/jjeyPmk6WL8RoXfeZ+MMn37vSNDGuaWY/5wm10LpSpxAHX4kNoEwkTWYHba8ePVip+Hqg==} - mini-css-extract-plugin@2.9.0: - resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} + mini-css-extract-plugin@2.9.2: + resolution: {integrity: sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 @@ -3293,10 +3305,6 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -3312,9 +3320,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -3337,21 +3342,20 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3481,8 +3485,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-is@1.1.6: @@ -3519,14 +3523,14 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} @@ -3579,8 +3583,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -3629,10 +3633,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} @@ -3640,8 +3640,8 @@ packages: path-to-regexp-es6@1.7.0: resolution: {integrity: sha512-QdT7okCAMGv7FR7w6KWFH9OSMivOgtXAGKodD6MDZBNR/XNL16W+hHoj6qBmV6cy/7eR1fr0Qujrg9OhBf5QPw==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} path-to-regexp@1.7.0: resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==} @@ -3660,13 +3660,20 @@ packages: peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -3724,15 +3731,15 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -3748,29 +3755,26 @@ packages: peerDependencies: prettier: '>= 2.0' - prettier-plugin-organize-imports@4.0.0: - resolution: {integrity: sha512-vnKSdgv9aOlqKeEFGhf9SCBsTyzDSyScy1k7E0R1Uo4L0cTcOV7c1XQaT7jfXIOc/p08WLBfN2QUQA9zDSZMxA==} + prettier-plugin-organize-imports@4.1.0: + resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==} peerDependencies: - '@vue/language-plugin-pug': ^2.0.24 prettier: '>=2.0' typescript: '>=2.9' - vue-tsc: ^2.0.24 + vue-tsc: ^2.1.0 peerDependenciesMeta: - '@vue/language-plugin-pug': - optional: true vue-tsc: optional: true - prettier-plugin-packagejson@2.5.0: - resolution: {integrity: sha512-6XkH3rpin5QEQodBSVNg+rBo4r91g/1mCaRwS1YGdQJZ6jwqrg2UchBsIG9tpS1yK1kNBvOt84OILsX8uHzBGg==} + prettier-plugin-packagejson@2.5.6: + resolution: {integrity: sha512-TY7KiLtyt6Tlf53BEbXUWkN0+TRdHKgIMmtXtDCyHH6yWnZ50Lwq6Vb6lyjapZrhDTXooC4EtlY5iLe1sCgi5w==} peerDependencies: prettier: '>= 1.16.0' peerDependenciesMeta: prettier: optional: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + prettier@3.4.1: + resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==} engines: {node: '>=14'} hasBin: true @@ -3793,16 +3797,16 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qreator@9.3.0: - resolution: {integrity: sha512-u811D9aywKnWjFt8p9p2RnbeWI0kGDEv2AbncYHX2r3MOHL6vO1ZkWRjpZpZx4h/NfTJz6i+/UZnVRQloZLEBA==} + qreator@9.7.0: + resolution: {integrity: sha512-yon0h4oNDa0oU62pkd1xisbLc3UZVlV+E2iRRU02KiB/0MR4SvH3v9YpwSa365O0mkjjOdZHPuR5Q9z+bWRjIw==} engines: {node: '>=18'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.12.3: - resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -3819,6 +3823,15 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -3830,6 +3843,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + rechoir@0.8.0: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} @@ -3838,8 +3855,8 @@ packages: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} regenerate@1.4.2: @@ -3851,19 +3868,22 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + regexpu-core@6.1.1: + resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} register-service-worker@1.7.2: resolution: {integrity: sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==} - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.11.1: + resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} hasBin: true require-from-string@2.0.2: @@ -3897,9 +3917,9 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} @@ -3917,11 +3937,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rimraf@5.0.9: - resolution: {integrity: sha512-3i7b8OcswU6CpU8Ej89quJD4O98id7TtVM5U4Mybh84zQXdrFmDLouWBEEaD/QfO3gDDfH+AGFCGsR7kngzQnA==} - engines: {node: 14 >=14.20 || 16 >=16.20 || >=18} - hasBin: true - rimraf@6.0.1: resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} engines: {node: 20 || >=22} @@ -3933,8 +3948,8 @@ packages: peerDependencies: rollup: ^2.0.0 - rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true @@ -3970,11 +3985,11 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-html@2.13.0: - resolution: {integrity: sha512-Xff91Z+4Mz5QiNSLdLWwjgBDm5b1RU6xBT0+12rapjiaR7SwfRdjw8f+6Rir2MXKLrDicRFHdb51hGOAxmsUIA==} + sanitize-html@2.13.1: + resolution: {integrity: sha512-ZXtKq89oue4RP7abL9wp/9URJcqQNABB5GGJ2acW1sdO8JTVl92f4ygD7Yc9Ze09VAZhnt2zegeU0tbNsdcLYg==} - sass-loader@14.2.1: - resolution: {integrity: sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==} + sass-loader@16.0.4: + resolution: {integrity: sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -3994,11 +4009,14 @@ packages: webpack: optional: true - sass@1.77.8: - resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + sass@1.82.0: + resolution: {integrity: sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==} engines: {node: '>=14.0.0'} hasBin: true + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -4021,13 +4039,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} serialize-javascript@4.0.0: @@ -4040,8 +4058,8 @@ packages: resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} engines: {node: '>= 0.8.0'} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} service-worker-webpack@1.0.0: @@ -4070,9 +4088,9 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - sharp@0.33.4: - resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -4089,9 +4107,6 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -4103,10 +4118,6 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} @@ -4126,17 +4137,11 @@ packages: sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} - sonic-forest@1.0.3: - resolution: {integrity: sha512-dtwajos6IWMEWXdEbW1IkEkyL2gztCAgDplRIX+OT5aRKnEd5e7r7YCxRgXZdhRP1FBdOBf8axeTPhzDv8T4wQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - sort-package-json@2.10.0: - resolution: {integrity: sha512-MYecfvObMwJjjJskhxYfuOADkXp1ZMMnCFC8yhp+9HDsk7HhR336hd7eiBs96lTXfiqmUNI+WQCeCMRBhl251g==} + sort-package-json@2.12.0: + resolution: {integrity: sha512-/HrPQAeeLaa+vbAH/znjuhwUluuiM/zL5XX9kop8UpDgjtyWKt43hGDk2vd/TBdDpzIyzIHVUgmYofzYrAQjew==} hasBin: true sortpack@2.4.0: @@ -4147,8 +4152,8 @@ packages: source-list-map@2.0.1: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -4184,10 +4189,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} - string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -4200,12 +4201,13 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string-width@7.1.0: - resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string.prototype.includes@2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} @@ -4244,10 +4246,6 @@ packages: resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} engines: {node: '>=10'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -4262,10 +4260,6 @@ packages: peerDependencies: webpack: ^5.27.0 - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -4278,12 +4272,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - synckit@0.8.8: - resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} - engines: {node: ^14.18.0 || >=16.0.0} - - synckit@0.9.0: - resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} tapable@2.2.1: @@ -4314,14 +4304,11 @@ packages: uglify-js: optional: true - terser@5.31.2: - resolution: {integrity: sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==} + terser@5.37.0: + resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -4331,6 +4318,10 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + tippy.js@6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} @@ -4356,8 +4347,8 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tree-dump@1.0.1: - resolution: {integrity: sha512-WCkcRBVPSlHHq1dc/px9iOfqklvzCbdRwvlNfxGZsrHqf6aZttfPrd7DJTt6oR10dwUfpFFQeVTkPbBIZxX/YA==} + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -4365,8 +4356,8 @@ packages: tributejs@5.1.3: resolution: {integrity: sha512-B5CXihaVzXw+1UHhNFyAwUTMDk1EfoLP5Tj1VhD9yybZ1I8DZJEv8tZ1l0RJo0t0tk9ZhR8eG5tEsaCvRigmdQ==} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -4374,8 +4365,11 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -4405,11 +4399,11 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typescript-eslint@7.16.0: - resolution: {integrity: sha512-kaVRivQjOzuoCXU6+hLnjo3/baxyzWVO5GrnExkFzETRYJKVHYkrJglOu2OCm8Hi9RPDWX1PTNNTpU5KRV0+RA==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript-eslint@8.17.0: + resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -4425,8 +4419,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - typescript@5.5.3: - resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -4439,19 +4433,19 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: @@ -4478,8 +4472,8 @@ packages: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4520,8 +4514,8 @@ packages: vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} wbuf@1.7.3: @@ -4552,8 +4546,8 @@ packages: webpack-dev-server: optional: true - webpack-dev-middleware@7.2.1: - resolution: {integrity: sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==} + webpack-dev-middleware@7.4.2: + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 @@ -4561,8 +4555,8 @@ packages: webpack: optional: true - webpack-dev-server@5.0.4: - resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + webpack-dev-server@5.1.0: + resolution: {integrity: sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==} engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -4594,8 +4588,8 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.93.0: - resolution: {integrity: sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==} + webpack@5.97.1: + resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -4618,8 +4612,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -4714,8 +4708,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4726,8 +4720,8 @@ packages: utf-8-validate: optional: true - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4741,8 +4735,8 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true @@ -4750,8 +4744,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} snapshots: @@ -4768,907 +4762,804 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.26.0': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/compat-data@7.24.8': {} + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/compat-data@7.24.9': {} + '@babel/compat-data@7.26.0': {} - '@babel/core@7.24.9': + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.9': + '@babel/generator@7.26.0': dependencies: - '@babel/types': 7.24.9 + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/generator@7.26.3': dependencies: - '@babel/types': 7.24.9 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/types': 7.26.3 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': + dependencies: + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.24.8': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.24.9 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 + '@babel/compat-data': 7.26.0 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.9)': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.4 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.24.9)': + '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.1.1 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.9)': + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.5 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.4.0 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.7': + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-member-expression-to-functions@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.24.8': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/types': 7.26.3 + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.4 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-plugin-utils@7.24.7': {} - - '@babel/helper-plugin-utils@7.24.8': {} - - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-wrap-function': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.4 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': + '@babel/helper-simple-access@7.25.9': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.24.7': + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + '@babel/helper-string-parser@7.25.7': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helper-wrap-function@7.25.9': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': + '@babel/helpers@7.26.0': dependencies: - '@babel/types': 7.24.9 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 - '@babel/helper-string-parser@7.24.7': {} - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.7': {} - - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helper-wrap-function@7.24.7': + '@babel/parser@7.26.1': dependencies: - '@babel/helper-function-name': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.3': + dependencies: + '@babel/types': 7.26.3 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helpers@7.24.8': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/highlight@7.24.7': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/parser@7.24.8': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/types': 7.24.9 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9)': + '@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.26.0 + + '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.25.9 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.25.9 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-simple-access': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-simple-access': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.9) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.24.9)': + '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.9)': + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.9) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/preset-env@7.24.8(@babel/core@7.24.9)': + '@babel/preset-env@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/compat-data': 7.24.8 - '@babel/core': 7.24.9 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.9) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.9) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-classes': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.9) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.9) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.9) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.9) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.9) - core-js-compat: 3.37.1 + '@babel/compat-data': 7.26.0 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-exponentiation-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.26.0) + core-js-compat: 3.38.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.9)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.24.9 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/types': 7.26.0 esutils: 2.0.3 - '@babel/preset-typescript@7.24.7(@babel/core@7.24.9)': + '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-transform-typescript': 7.24.8(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/regjsgen@0.8.0': {} - - '@babel/runtime@7.24.8': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.7': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/code-frame': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/types': 7.26.0 - '@babel/traverse@7.24.8': + '@babel/traverse@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - debug: 4.3.5 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.7': + '@babel/traverse@7.26.4': dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 - '@babel/types@7.24.9': + '@babel/types@7.26.0': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 '@discoveryjs/json-ext@0.5.7': {} - '@emnapi/runtime@1.2.0': + '@emnapi/runtime@1.3.0': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 optional: true '@emoji-mart/data@1.2.1': {} - '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.16.0)': dependencies: - eslint: 9.7.0 + eslint: 9.16.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.17.0': + '@eslint/config-array@0.19.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.5 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.1.0': + '@eslint/core@0.9.0': {} + + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 - espree: 10.1.0 + debug: 4.3.7 + espree: 10.3.0 globals: 14.0.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -5676,87 +5567,100 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.7.0': {} + '@eslint/js@9.16.0': {} '@eslint/object-schema@2.1.4': {} + '@eslint/plugin-kit@0.2.3': + dependencies: + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.0': {} + '@humanwhocodes/retry@0.3.1': {} - '@img/sharp-darwin-arm64@0.33.4': + '@humanwhocodes/retry@0.4.1': {} + + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.4': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.4': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.4': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.4': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.4': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.4': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.4': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.4': + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.0 optional: true - '@img/sharp-win32-ia32@0.33.4': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.4': + '@img/sharp-win32-x64@0.33.5': optional: true '@isaacs/cliui@8.0.2': @@ -5790,21 +5694,21 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@jsonjoy.com/base64@1.1.2(tslib@2.6.3)': + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.0.4(tslib@2.6.3)': + '@jsonjoy.com/json-pack@1.1.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.3) - '@jsonjoy.com/util': 1.1.3(tslib@2.6.3) + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.6.3) - tslib: 2.6.3 + thingies: 1.21.0(tslib@2.8.1) + tslib: 2.8.1 - '@jsonjoy.com/util@1.1.3(tslib@2.6.3)': + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@leichtgewicht/ip-codec@2.0.5': {} @@ -5820,6 +5724,67 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.0': + optional: true + + '@parcel/watcher-win32-arm64@2.5.0': + optional: true + + '@parcel/watcher-win32-ia32@2.5.0': + optional: true + + '@parcel/watcher-win32-x64@2.5.0': + optional: true + + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + optional: true + '@pdf-lib/standard-fonts@1.0.0': dependencies: pako: 1.0.11 @@ -5828,46 +5793,43 @@ snapshots: dependencies: pako: 1.0.11 - '@pkgjs/parseargs@0.11.0': - optional: true - '@pkgr/core@0.1.1': {} - '@polka/url@1.0.0-next.25': {} + '@polka/url@1.0.0-next.28': {} '@popperjs/core@2.11.8': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.24.9)(rollup@2.79.1)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.26.0)(rollup@2.79.2)': dependencies: - '@babel/core': 7.24.9 - '@babel/helper-module-imports': 7.24.7 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + rollup: 2.79.2 transitivePeerDependencies: - supports-color - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) '@types/resolve': 1.17.1 builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/plugin-replace@2.4.2(rollup@2.79.1)': + '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) magic-string: 0.25.9 - rollup: 2.79.1 + rollup: 2.79.2 - '@rollup/pluginutils@3.1.0(rollup@2.79.1)': + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': dependencies: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 2.79.2 '@selderee/plugin-htmlparser2@0.11.0': dependencies: @@ -5888,11 +5850,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/bonjour@3.5.13': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/bootstrap@5.2.10': dependencies: @@ -5900,59 +5862,68 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.3 - '@types/node': 20.14.10 + '@types/express-serve-static-core': 5.0.0 + '@types/node': 22.10.1 '@types/connect@3.4.38': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 - '@types/cookie-parser@1.4.7': + '@types/cookie-parser@1.4.8(@types/express@4.17.21)': dependencies: '@types/express': 4.17.21 - '@types/cookie@0.6.0': {} + '@types/cookie@1.0.0': + dependencies: + cookie: 1.0.2 '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/estree@0.0.39': {} - '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.3': + '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.14.10 - '@types/qs': 6.9.15 + '@types/node': 22.10.1 + '@types/qs': 6.9.16 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express-serve-static-core@5.0.0': + dependencies: + '@types/node': 22.10.1 + '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.3 - '@types/qs': 6.9.15 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/html-to-text@9.0.4': {} '@types/http-errors@2.0.4': {} - '@types/http-proxy@1.17.14': + '@types/http-proxy@1.17.15': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/json-schema@7.0.15': {} @@ -5960,15 +5931,15 @@ snapshots: '@types/lodash.isequal@4.5.8': dependencies: - '@types/lodash': 4.17.4 + '@types/lodash': 4.17.10 - '@types/lodash@4.17.4': {} + '@types/lodash@4.17.10': {} '@types/markdown-it-container@2.0.10': dependencies: - '@types/markdown-it': 14.1.1 + '@types/markdown-it': 14.1.2 - '@types/markdown-it@14.1.1': + '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 @@ -5981,32 +5952,43 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 - '@types/node@20.14.10': + '@types/node@22.10.1': dependencies: - undici-types: 5.26.5 + undici-types: 6.20.0 - '@types/path-browserify@1.0.2': {} + '@types/path-browserify@1.0.3': {} - '@types/qs@6.9.15': {} + '@types/prop-types@15.7.13': {} + + '@types/qs@6.9.16': {} '@types/range-parser@1.2.7': {} + '@types/react-dom@18.3.1': + dependencies: + '@types/react': 18.3.12 + + '@types/react@18.3.12': + dependencies: + '@types/prop-types': 15.7.13 + csstype: 3.1.3 + '@types/resolve@1.17.1': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/retry@0.12.2': {} - '@types/sanitize-html@2.11.0': + '@types/sanitize-html@2.13.0': dependencies: htmlparser2: 8.0.2 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/serialize-javascript@5.0.4': {} @@ -6017,194 +5999,195 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 '@types/toastify-js@1.12.3': {} '@types/trusted-types@2.0.7': {} - '@types/ws@8.5.10': + '@types/ws@8.5.12': dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.0 - eslint: 9.7.0 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.17.0 + eslint: 9.16.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 - eslint: 9.7.0 + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.4.0 + eslint: 9.16.0 optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.16.0': + '@typescript-eslint/scope-manager@8.17.0': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@7.16.0(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - debug: 4.3.5 - eslint: 9.7.0 - ts-api-utils: 1.3.0(typescript@5.5.3) + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + debug: 4.4.0 + eslint: 9.16.0 + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/types@8.17.0': {} - '@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.3)': + '@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 - globby: 11.1.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 + debug: 4.4.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.3) + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint@9.7.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - eslint: 9.7.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.3) + eslint: 9.16.0 + optionalDependencies: + typescript: 5.6.3 transitivePeerDependencies: - supports-color - - typescript - '@typescript-eslint/visitor-keys@7.16.0': + '@typescript-eslint/visitor-keys@8.17.0': dependencies: - '@typescript-eslint/types': 7.16.0 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.17.0 + eslint-visitor-keys: 4.2.0 - '@webassemblyjs/ast@1.12.1': + '@webassemblyjs/ast@1.14.1': dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.11.6': {} + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.12.1': {} + '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-numbers@1.11.6': + '@webassemblyjs/helper-numbers@1.13.2': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-section@1.12.1': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/ieee754@1.11.6': + '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/wasm-edit@1.12.1': + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-gen@1.12.1': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-opt@1.12.1': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-parser@1.12.1': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wast-printer@1.12.1': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4))': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.97.1)': dependencies: - webpack: 5.93.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + webpack: 5.97.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4))': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.97.1)': dependencies: - webpack: 5.93.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + webpack: 5.97.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4))': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.1.0)(webpack@5.97.1)': dependencies: - webpack: 5.93.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + webpack: 5.97.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) optionalDependencies: - webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) + webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.97.1) '@xtuc/ieee754@1.2.0': {} @@ -6215,20 +6198,18 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-walk@8.3.4: dependencies: acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.12.1): - dependencies: - acorn: 8.12.1 - - acorn-walk@8.3.2: {} - - acorn@8.11.3: {} - acorn@8.12.1: {} + acorn@8.14.0: {} + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -6252,21 +6233,19 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-escapes@6.2.1: {} + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 ansi-html-community@0.0.8: {} ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -6285,9 +6264,7 @@ snapshots: argparse@2.0.1: {} - aria-query@5.1.3: - dependencies: - deep-equal: 2.2.3 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.1: dependencies: @@ -6309,8 +6286,6 @@ snapshots: dependencies: array-uniq: 1.0.3 - array-union@2.1.0: {} - array-uniq@1.0.3: {} array.prototype.flat@1.3.2: @@ -6340,7 +6315,7 @@ snapshots: ast-types-flow@0.0.8: {} - async@3.2.5: {} + async@3.2.6: {} at-least-node@1.0.0: {} @@ -6350,47 +6325,45 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} + axe-core@4.10.2: {} - axobject-query@3.1.1: - dependencies: - deep-equal: 2.2.3 + axobject-query@4.1.0: {} - babel-loader@9.1.3(@babel/core@7.24.9)(webpack@5.93.0(webpack-cli@5.1.4)): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1): dependencies: - '@babel/core': 7.24.9 + '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) - babel-plugin-inferno@6.7.1(@babel/core@7.24.9): + babel-plugin-inferno@6.7.2(@babel/core@7.26.0): dependencies: - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) - '@babel/types': 7.24.7 + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.26.0) + '@babel/types': 7.25.8 transitivePeerDependencies: - '@babel/core' - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.9): + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.0): dependencies: - '@babel/compat-data': 7.24.8 - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + '@babel/compat-data': 7.26.0 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.9): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): dependencies: - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) - core-js-compat: 3.37.1 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.9): + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.0): dependencies: - '@babel/core': 7.24.9 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.9) + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) transitivePeerDependencies: - supports-color @@ -6400,7 +6373,7 @@ snapshots: binary-extensions@2.3.0: {} - body-parser@1.20.2: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -6410,7 +6383,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -6439,12 +6412,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001641 - electron-to-chromium: 1.4.825 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.2) + caniuse-lite: 1.0.30001687 + electron-to-chromium: 1.5.71 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} @@ -6478,13 +6451,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001641: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + caniuse-lite@1.0.30001687: {} chalk@4.1.2: dependencies: @@ -6507,23 +6474,27 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chrome-trace-event@1.0.4: {} classnames@2.5.1: {} - clean-webpack-plugin@4.0.0(webpack@5.93.0(webpack-cli@5.1.4)): + clean-webpack-plugin@4.0.0(webpack@5.97.1): dependencies: del: 4.1.1 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) - cli-cursor@4.0.0: + cli-cursor@5.0.0: dependencies: - restore-cursor: 4.0.0 + restore-cursor: 5.1.0 cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 - string-width: 7.1.0 + string-width: 7.2.0 clone-deep@4.0.1: dependencies: @@ -6531,16 +6502,10 @@ snapshots: kind-of: 6.0.3 shallow-clone: 3.0.1 - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-string@1.9.1: @@ -6569,7 +6534,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 compression@1.7.4: dependencies: @@ -6595,18 +6560,20 @@ snapshots: convert-source-map@2.0.0: {} - cookie-parser@1.4.6: + cookie-parser@1.4.7: dependencies: - cookie: 0.4.1 + cookie: 0.7.2 cookie-signature: 1.0.6 cookie-signature@1.0.6: {} - cookie@0.4.1: {} + cookie@0.7.1: {} - cookie@0.6.0: {} + cookie@0.7.2: {} - copy-webpack-plugin@11.0.0(webpack@5.93.0(webpack-cli@5.1.4)): + cookie@1.0.2: {} + + copy-webpack-plugin@11.0.0(webpack@5.97.1): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -6614,21 +6581,21 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) - copy-webpack-plugin@12.0.2(webpack@5.93.0(webpack-cli@5.1.4)): + copy-webpack-plugin@12.0.2(webpack@5.97.1): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 - globby: 14.0.1 + globby: 14.0.2 normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) - core-js-compat@3.37.1: + core-js-compat@3.38.1: dependencies: - browserslist: 4.23.2 + browserslist: 4.24.2 core-util-is@1.0.3: {} @@ -6645,20 +6612,26 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + crypto-random-string@2.0.0: {} - css-loader@7.1.2(webpack@5.93.0(webpack-cli@5.1.4)): + css-loader@7.1.2(webpack@5.97.1): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.38) - postcss-modules-scope: 3.2.0(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) + postcss-modules-scope: 3.2.0(postcss@8.4.47) + postcss-modules-values: 4.0.0(postcss@8.4.47) postcss-value-parser: 4.2.0 - semver: 7.6.2 + semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) cssesc@3.0.0: {} @@ -6684,7 +6657,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - date-fns@3.6.0: {} + date-fns@4.1.0: {} debounce@1.2.1: {} @@ -6692,9 +6665,13 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.3.5: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 + + debug@4.4.0: + dependencies: + ms: 2.1.3 deep-equal@1.1.2: dependencies: @@ -6703,28 +6680,7 @@ snapshots: is-regex: 1.1.4 object-is: 1.1.6 object-keys: 1.1.1 - regexp.prototype.flags: 1.5.2 - - deep-equal@2.2.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 + regexp.prototype.flags: 1.5.3 deep-is@0.1.4: {} @@ -6737,10 +6693,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 - default-gateway@6.0.3: - dependencies: - execa: 5.1.1 - define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -6773,6 +6725,9 @@ snapshots: detect-indent@7.0.1: {} + detect-libc@1.0.3: + optional: true + detect-libc@2.0.3: {} detect-newline@2.1.0: {} @@ -6819,13 +6774,13 @@ snapshots: ejs@3.1.10: dependencies: - jake: 10.9.1 + jake: 10.9.2 - electron-to-chromium@1.4.825: {} + electron-to-chromium@1.5.71: {} emoji-mart@5.6.0: {} - emoji-regex@10.3.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -6835,7 +6790,9 @@ snapshots: encodeurl@1.0.2: {} - enhanced-resolve@5.17.0: + encodeurl@2.0.0: {} + + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -6844,7 +6801,9 @@ snapshots: entities@4.5.0: {} - envinfo@7.13.0: {} + envinfo@7.14.0: {} + + environment@1.1.0: {} error-ex@1.3.2: dependencies: @@ -6883,10 +6842,10 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.2 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -6905,19 +6864,7 @@ snapshots: es-errors@1.3.0: {} - es-get-iterator@1.1.3: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - - es-iterator-helpers@1.0.19: + es-iterator-helpers@1.1.0: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -6931,7 +6878,7 @@ snapshots: has-proto: 1.0.3 has-symbols: 1.0.3 internal-slot: 1.0.7 - iterator.prototype: 1.1.2 + iterator.prototype: 1.1.3 safe-array-concat: 1.1.2 es-module-lexer@1.5.4: {} @@ -6956,117 +6903,114 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - escalade@3.1.2: {} + escalade@3.2.0: {} escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.7.0): + eslint-config-prettier@9.1.0(eslint@9.16.0): dependencies: - eslint: 9.7.0 + eslint: 9.16.0 - eslint-plugin-inferno@7.34.0(eslint@9.7.0): + eslint-plugin-inferno@7.34.0(eslint@9.16.0): dependencies: doctrine: 3.0.0 - es-iterator-helpers: 1.0.19 - eslint: 9.7.0 + es-iterator-helpers: 1.1.0 + eslint: 9.16.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 - minimatch: 9.0.4 + minimatch: 9.0.5 resolve: 2.0.0-next.5 - semver: 7.6.2 + semver: 7.6.3 - eslint-plugin-jsx-a11y@6.9.0(eslint@9.7.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.16.0): dependencies: - aria-query: 5.1.3 + aria-query: 5.3.2 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.9.1 - axobject-query: 3.1.1 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 9.7.0 + eslint: 9.16.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 object.fromentries: 2.0.8 safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 + string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@9.7.0))(eslint@9.7.0)(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.16.0))(eslint@9.16.0)(prettier@3.4.1): dependencies: - eslint: 9.7.0 - prettier: 3.3.3 + eslint: 9.16.0 + prettier: 3.4.1 prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 + synckit: 0.9.2 optionalDependencies: - '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@9.7.0) + '@types/eslint': 9.6.1 + eslint-config-prettier: 9.1.0(eslint@9.16.0) eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@8.0.2: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.2.0: {} - eslint@9.7.0: + eslint@9.16.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/config-array': 0.17.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.7.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.9.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.3 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 - '@nodelib/fs.walk': 1.2.8 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.5 + cross-spawn: 7.0.6 + debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.2 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@10.1.0: + espree@10.3.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -7094,21 +7038,9 @@ snapshots: events@3.3.0: {} - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -7120,34 +7052,34 @@ snapshots: exenv@1.2.2: {} - express@4.19.2: + express@4.21.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.6.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -7166,13 +7098,13 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fast-uri@3.0.1: {} + fast-uri@3.0.3: {} fastest-levenshtein@1.0.16: {} @@ -7184,6 +7116,10 @@ snapshots: dependencies: websocket-driver: 0.7.4 + fdir@6.4.2(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -7196,10 +7132,10 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -7234,22 +7170,22 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 flat@5.0.2: {} - flatted@3.3.1: {} + flatted@3.3.2: {} - follow-redirects@1.15.6: {} + follow-redirects@1.15.9: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 forwarded@0.2.0: {} @@ -7295,8 +7231,6 @@ snapshots: get-stdin@9.0.0: {} - get-stream@6.0.1: {} - get-stream@8.0.1: {} get-symbol-description@1.0.2: @@ -7317,22 +7251,13 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.5: - dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - glob@11.0.0: dependencies: - foreground-child: 3.2.1 - jackspeak: 4.0.1 + foreground-child: 3.3.0 + jackspeak: 4.0.2 minimatch: 10.0.1 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 2.0.0 glob@7.2.3: @@ -7348,35 +7273,26 @@ snapshots: globals@14.0.0: {} - globals@15.8.0: {} + globals@15.13.0: {} globalthis@1.0.4: dependencies: define-properties: 1.2.1 gopd: 1.0.1 - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - globby@13.2.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 4.0.0 - globby@14.0.1: + globby@14.0.2: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -7405,8 +7321,6 @@ snapshots: has-bigints@1.0.2: {} - has-flag@3.0.0: {} - has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -7429,7 +7343,7 @@ snapshots: history@5.3.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 hoist-non-inferno-statics@1.1.3: {} @@ -7482,13 +7396,13 @@ snapshots: http-parser-js@0.5.8: {} - http-proxy-middleware@2.0.6(@types/express@4.17.21): + http-proxy-middleware@2.0.7(@types/express@4.17.21): dependencies: - '@types/http-proxy': 1.17.14 + '@types/http-proxy': 1.17.15 http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.7 + micromatch: 4.0.8 optionalDependencies: '@types/express': 4.17.21 transitivePeerDependencies: @@ -7497,36 +7411,34 @@ snapshots: http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.6 + follow-redirects: 1.15.9 requires-port: 1.0.0 transitivePeerDependencies: - debug - human-signals@2.1.0: {} - human-signals@5.0.0: {} - husky@9.0.11: {} + husky@9.1.7: {} hyperdyperid@1.2.0: {} - i18next@23.12.1: + i18next@23.16.8: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.38): + icss-utils@5.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.38 + postcss: 8.4.47 idb@7.1.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} - immutable@4.3.6: {} + immutable@5.0.3: {} import-fresh@2.0.0: dependencies: @@ -7538,7 +7450,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 @@ -7552,10 +7464,10 @@ snapshots: import-sort-parser-babylon@6.0.0: dependencies: - '@babel/core': 7.24.9 - '@babel/parser': 7.24.8 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/core': 7.26.0 + '@babel/parser': 7.26.1 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 find-line-column: 0.5.2 transitivePeerDependencies: - supports-color @@ -7695,7 +7607,7 @@ snapshots: is-callable@1.2.7: {} - is-core-module@2.13.1: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -7763,8 +7675,6 @@ snapshots: dependencies: path-is-inside: 1.0.2 - is-path-inside@3.0.3: {} - is-plain-obj@3.0.0: {} is-plain-obj@4.1.0: {} @@ -7829,7 +7739,7 @@ snapshots: isobject@3.0.1: {} - iterator.prototype@1.1.2: + iterator.prototype@1.1.3: dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.4 @@ -7837,34 +7747,26 @@ snapshots: reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 - jackspeak@3.4.3: + jackspeak@4.0.2: dependencies: '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jackspeak@4.0.1: + jake@10.9.2: dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jake@10.9.1: - dependencies: - async: 3.2.5 + async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 jest-worker@26.6.2: dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 20.14.10 + '@types/node': 22.10.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7881,9 +7783,7 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@0.5.0: {} - - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-buffer@3.0.1: {} @@ -7930,14 +7830,14 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 - launch-editor@2.6.1: + launch-editor@2.9.1: dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 shell-quote: 1.8.1 leac@0.6.0: {} - lemmy-js-client@0.19.4: {} + lemmy-js-client@0.20.0-alpha.17: {} leven@3.1.0: {} @@ -7956,27 +7856,27 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@15.2.7: + lint-staged@15.2.10: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.5 + debug: 4.3.7 execa: 8.0.1 lilconfig: 3.1.2 - listr2: 8.2.1 - micromatch: 4.0.7 + listr2: 8.2.5 + micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.4.5 + yaml: 2.5.1 transitivePeerDependencies: - supports-color - listr2@8.2.1: + listr2@8.2.5: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.0.0 + log-update: 6.1.0 rfdc: 1.4.1 wrap-ansi: 9.0.0 @@ -8004,17 +7904,19 @@ snapshots: lodash@4.17.21: {} - log-update@6.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 6.2.1 - cli-cursor: 4.0.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 - lru-cache@10.4.3: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 - lru-cache@11.0.0: {} + lru-cache@11.0.1: {} lru-cache@5.1.1: dependencies: @@ -8024,7 +7926,7 @@ snapshots: dependencies: sourcemap-codec: 1.4.8 - markdown-it-bidi@0.1.0: {} + markdown-it-bidi@0.2.0: {} markdown-it-container@4.0.0: {} @@ -8032,7 +7934,7 @@ snapshots: markdown-it-footnote@4.0.0: {} - markdown-it-highlightjs@4.1.0: + markdown-it-highlightjs@4.2.0: dependencies: highlight.js: 11.10.0 @@ -8041,7 +7943,7 @@ snapshots: markdown-it: 8.4.2 mimoza: 1.0.0 - markdown-it-ruby@0.1.1: {} + markdown-it-ruby@1.1.2: {} markdown-it-sub@2.0.0: {} @@ -8070,14 +7972,14 @@ snapshots: media-typer@0.3.0: {} - memfs@4.9.2: + memfs@4.13.0: dependencies: - '@jsonjoy.com/json-pack': 1.0.4(tslib@2.6.3) - '@jsonjoy.com/util': 1.1.3(tslib@2.6.3) - sonic-forest: 1.0.3(tslib@2.6.3) - tslib: 2.6.3 + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) + tslib: 2.8.1 - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -8085,32 +7987,34 @@ snapshots: methods@1.1.2: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 mime@1.6.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + mimoza@1.0.0: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 - mini-css-extract-plugin@2.9.0(webpack@5.93.0(webpack-cli@5.1.4)): + mini-css-extract-plugin@2.9.2(webpack@5.97.1): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) minimalistic-assert@1.0.1: {} @@ -8126,10 +8030,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -8140,8 +8040,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} multicast-dns@7.2.5: @@ -8157,16 +8055,15 @@ snapshots: neo-async@2.6.2: {} + node-addon-api@7.1.1: + optional: true + node-forge@1.3.1: {} - node-releases@2.0.14: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -8175,7 +8072,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} + object-inspect@1.13.3: {} object-is@1.1.6: dependencies: @@ -8216,14 +8113,14 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + open@10.1.0: dependencies: default-browser: 5.2.1 @@ -8254,7 +8151,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 p-locate@4.1.0: dependencies: @@ -8278,7 +8175,7 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} pako@1.0.11: {} @@ -8314,21 +8211,16 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - path-scurry@2.0.0: dependencies: - lru-cache: 11.0.0 + lru-cache: 11.0.1 minipass: 7.1.2 path-to-regexp-es6@1.7.0: dependencies: path-to-regexp: 1.7.0 - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.12: {} path-to-regexp@1.7.0: dependencies: @@ -8347,10 +8239,14 @@ snapshots: peberminta@0.9.0: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} + + picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.2: {} + pidtree@0.6.0: {} pify@2.3.0: {} @@ -8373,39 +8269,39 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.4.38): + postcss-modules-extract-imports@3.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.38 + postcss: 8.4.47 - postcss-modules-local-by-default@4.0.5(postcss@8.4.38): + postcss-modules-local-by-default@4.0.5(postcss@8.4.47): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + icss-utils: 5.1.0(postcss@8.4.47) + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.38): + postcss-modules-scope@3.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - postcss-modules-values@4.0.0(postcss@8.4.38): + postcss-modules-values@4.0.0(postcss@8.4.47): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 + icss-utils: 5.1.0(postcss@8.4.47) + postcss: 8.4.47 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.4.38: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -8413,29 +8309,29 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-import-sort@0.0.7(prettier@3.3.3): + prettier-plugin-import-sort@0.0.7(prettier@3.4.1): dependencies: import-sort: 6.0.0 import-sort-config: 6.0.0 import-sort-parser-babylon: 6.0.0 import-sort-parser-typescript: 6.0.0 - prettier: 3.3.3 + prettier: 3.4.1 transitivePeerDependencies: - supports-color - prettier-plugin-organize-imports@4.0.0(prettier@3.3.3)(typescript@5.5.3): + prettier-plugin-organize-imports@4.1.0(prettier@3.4.1)(typescript@5.6.3): dependencies: - prettier: 3.3.3 - typescript: 5.5.3 + prettier: 3.4.1 + typescript: 5.6.3 - prettier-plugin-packagejson@2.5.0(prettier@3.3.3): + prettier-plugin-packagejson@2.5.6(prettier@3.4.1): dependencies: - sort-package-json: 2.10.0 - synckit: 0.9.0 + sort-package-json: 2.12.0 + synckit: 0.9.2 optionalDependencies: - prettier: 3.3.3 + prettier: 3.4.1 - prettier@3.3.3: {} + prettier@3.4.1: {} pretty-bytes@5.6.0: {} @@ -8450,18 +8346,22 @@ snapshots: punycode@2.3.1: {} - qreator@9.3.0: + qreator@9.7.0(react@18.3.1): dependencies: + '@types/react-dom': 18.3.1 color-string: 1.9.1 js-base64: 3.7.7 pdf-lib: 1.17.1 - sharp: 0.33.4 + react-dom: 18.3.1(react@18.3.1) + sharp: 0.33.5 + transitivePeerDependencies: + - react - qs@6.11.0: + qs@6.13.0: dependencies: side-channel: 1.0.6 - qs@6.12.3: + qs@6.13.1: dependencies: side-channel: 1.0.6 @@ -8480,6 +8380,16 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -8500,6 +8410,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + rechoir@0.8.0: dependencies: resolve: 1.22.8 @@ -8512,9 +8424,9 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 - regenerate-unicode-properties@10.1.1: + regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -8524,29 +8436,31 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - regexpu-core@5.3.2: + regexpu-core@6.1.1: dependencies: - '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.11.1 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 + unicode-match-property-value-ecmascript: 2.2.0 register-service-worker@1.7.2: {} - regjsparser@0.9.1: + regjsgen@0.8.0: {} + + regjsparser@0.11.1: dependencies: - jsesc: 0.5.0 + jsesc: 3.0.2 require-from-string@2.0.2: {} @@ -8564,20 +8478,20 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@4.0.0: + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + onetime: 7.0.0 + signal-exit: 4.1.0 retry@0.13.1: {} @@ -8589,32 +8503,28 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@5.0.9: - dependencies: - glob: 10.4.5 - rimraf@6.0.1: dependencies: glob: 11.0.0 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 - rollup-plugin-terser@7.0.2(rollup@2.79.1): + rollup-plugin-terser@7.0.2(rollup@2.79.2): dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 jest-worker: 26.6.2 - rollup: 2.79.1 + rollup: 2.79.2 serialize-javascript: 4.0.0 - terser: 5.31.2 + terser: 5.37.0 - rollup@2.79.1: + rollup@2.79.2: optionalDependencies: fsevents: 2.3.3 run-applescript@7.0.0: {} - run-node-webpack-plugin@1.3.0(webpack@5.93.0(webpack-cli@5.1.4)): + run-node-webpack-plugin@1.3.0(webpack@5.97.1): dependencies: - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) run-parallel@1.2.0: dependencies: @@ -8622,7 +8532,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.3 + tslib: 2.7.0 safe-array-concat@1.1.2: dependencies: @@ -8643,27 +8553,33 @@ snapshots: safer-buffer@2.1.2: {} - sanitize-html@2.13.0: + sanitize-html@2.13.1: dependencies: deepmerge: 4.3.1 escape-string-regexp: 4.0.0 htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.38 + postcss: 8.4.47 - sass-loader@14.2.1(sass@1.77.8)(webpack@5.93.0(webpack-cli@5.1.4)): + sass-loader@16.0.4(sass@1.82.0)(webpack@5.97.1): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.77.8 - webpack: 5.93.0(webpack-cli@5.1.4) + sass: 1.82.0 + webpack: 5.97.1(webpack-cli@5.1.4) - sass@1.77.8: + sass@1.82.0: dependencies: - chokidar: 3.6.0 - immutable: 4.3.6 - source-map-js: 1.2.0 + chokidar: 4.0.1 + immutable: 5.0.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.0 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 schema-utils@3.3.0: dependencies: @@ -8691,9 +8607,9 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -8731,23 +8647,23 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color - service-worker-webpack@1.0.0(webpack@5.93.0(webpack-cli@5.1.4)): + service-worker-webpack@1.0.0(webpack@5.97.1): dependencies: - copy-webpack-plugin: 11.0.0(webpack@5.93.0(webpack-cli@5.1.4)) + copy-webpack-plugin: 11.0.0(webpack@5.97.1) schema-utils: 4.2.0 - webpack: 5.93.0(webpack-cli@5.1.4) - webpack-inject-entry-plugin: 0.0.4(webpack@5.93.0(webpack-cli@5.1.4)) + webpack: 5.97.1(webpack-cli@5.1.4) + webpack-inject-entry-plugin: 0.0.4(webpack@5.97.1) workbox-build: 6.6.0 - workbox-webpack-plugin: 6.6.0(webpack@5.93.0(webpack-cli@5.1.4)) + workbox-webpack-plugin: 6.6.0(webpack@5.97.1) workbox-window: 6.6.0 transitivePeerDependencies: - '@types/babel__core' @@ -8779,31 +8695,31 @@ snapshots: shallowequal@1.1.0: {} - sharp@0.33.4: + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.2 + semver: 7.6.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.4 - '@img/sharp-darwin-x64': 0.33.4 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.4 - '@img/sharp-linux-arm64': 0.33.4 - '@img/sharp-linux-s390x': 0.33.4 - '@img/sharp-linux-x64': 0.33.4 - '@img/sharp-linuxmusl-arm64': 0.33.4 - '@img/sharp-linuxmusl-x64': 0.33.4 - '@img/sharp-wasm32': 0.33.4 - '@img/sharp-win32-ia32': 0.33.4 - '@img/sharp-win32-x64': 0.33.4 + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 shebang-command@2.0.0: dependencies: @@ -8818,9 +8734,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - - signal-exit@3.0.7: {} + object-inspect: 1.13.3 signal-exit@4.1.0: {} @@ -8830,12 +8744,10 @@ snapshots: sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.25 + '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 - slash@3.0.0: {} - slash@4.0.0: {} slash@5.1.0: {} @@ -8856,29 +8768,24 @@ snapshots: uuid: 8.3.2 websocket-driver: 0.7.4 - sonic-forest@1.0.3(tslib@2.6.3): - dependencies: - tree-dump: 1.0.1(tslib@2.6.3) - tslib: 2.6.3 - sort-object-keys@1.1.3: {} - sort-package-json@2.10.0: + sort-package-json@2.12.0: dependencies: detect-indent: 7.0.1 detect-newline: 4.0.1 get-stdin: 9.0.0 git-hooks-list: 3.1.0 - globby: 13.2.2 is-plain-obj: 4.1.0 - semver: 7.6.2 + semver: 7.6.3 sort-object-keys: 1.1.3 + tinyglobby: 0.2.10 sortpack@2.4.0: {} source-list-map@2.0.1: {} - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -8895,7 +8802,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.5 + debug: 4.4.0 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -8906,7 +8813,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.5 + debug: 4.4.0 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -8920,10 +8827,6 @@ snapshots: statuses@2.0.1: {} - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.7 - string-argv@0.3.2: {} string-width@4.2.3: @@ -8938,14 +8841,15 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string-width@7.1.0: + string-width@7.2.0: dependencies: - emoji-regex: 10.3.0 + emoji-regex: 10.4.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 - string.prototype.includes@2.0.0: + string.prototype.includes@2.0.1: dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 @@ -8960,7 +8864,7 @@ snapshots: gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 side-channel: 1.0.6 @@ -9003,23 +8907,17 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-comments@2.0.1: {} - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} strip-json-comments@3.1.1: {} - style-loader@4.0.0(webpack@5.93.0(webpack-cli@5.1.4)): + style-loader@4.0.0(webpack@5.97.1): dependencies: - webpack: 5.93.0(webpack-cli@5.1.4) - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 + webpack: 5.97.1(webpack-cli@5.1.4) supports-color@7.2.0: dependencies: @@ -9031,15 +8929,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - synckit@0.8.8: + synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.3 - - synckit@0.9.0: - dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tslib: 2.8.1 tapable@2.2.1: {} @@ -9052,30 +8945,33 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.10(webpack@5.93.0(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.10(webpack@5.97.1): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.2 - webpack: 5.93.0(webpack-cli@5.1.4) + terser: 5.37.0 + webpack: 5.97.1(webpack-cli@5.1.4) - terser@5.31.2: + terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 - text-table@0.2.0: {} - - thingies@1.21.0(tslib@2.6.3): + thingies@1.21.0(tslib@2.8.1): dependencies: - tslib: 2.6.3 + tslib: 2.8.1 thunky@1.1.0: {} + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.2(picomatch@4.0.2) + picomatch: 4.0.2 + tippy.js@6.3.7: dependencies: '@popperjs/core': 2.11.8 @@ -9096,19 +8992,21 @@ snapshots: dependencies: punycode: 2.3.1 - tree-dump@1.0.1(tslib@2.6.3): + tree-dump@1.0.2(tslib@2.8.1): dependencies: - tslib: 2.6.3 + tslib: 2.8.1 tributejs@5.1.3: {} - ts-api-utils@1.3.0(typescript@5.5.3): + ts-api-utils@1.4.3(typescript@5.6.3): dependencies: - typescript: 5.5.3 + typescript: 5.6.3 tslib@1.14.1: {} - tslib@2.6.3: {} + tslib@2.7.0: {} + + tslib@2.8.1: {} type-check@0.4.0: dependencies: @@ -9153,14 +9051,14 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - typescript-eslint@7.16.0(eslint@9.7.0)(typescript@5.5.3): + typescript-eslint@8.17.0(eslint@9.16.0)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) - eslint: 9.7.0 + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.3))(eslint@9.16.0)(typescript@5.6.3) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.3) + eslint: 9.16.0 optionalDependencies: - typescript: 5.5.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -9171,7 +9069,7 @@ snapshots: typescript@3.9.10: {} - typescript@5.5.3: {} + typescript@5.6.3: {} uc.micro@1.0.6: {} @@ -9184,16 +9082,16 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@5.26.5: {} + undici-types@6.20.0: {} - unicode-canonical-property-names-ecmascript@2.0.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + unicode-match-property-value-ecmascript@2.2.0: {} unicode-property-aliases-ecmascript@2.1.0: {} @@ -9209,11 +9107,11 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.2): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 uri-js@4.4.1: dependencies: @@ -9240,7 +9138,7 @@ snapshots: vscode-languageserver-types@3.17.5: {} - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -9254,53 +9152,53 @@ snapshots: webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.11.3 - acorn-walk: 8.3.2 + acorn: 8.12.1 + acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 gzip-size: 6.0.0 html-escaper: 2.0.2 opener: 1.5.2 - picocolors: 1.0.1 + picocolors: 1.1.0 sirv: 2.0.4 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate - webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0): + webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0))(webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.93.0))(webpack@5.93.0(webpack-cli@5.1.4)) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.97.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.97.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.1.0)(webpack@5.97.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 - envinfo: 7.13.0 + envinfo: 7.14.0 fastest-levenshtein: 1.0.16 - import-local: 3.1.0 + import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) + webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.97.1) - webpack-dev-middleware@7.2.1(webpack@5.93.0(webpack-cli@5.1.4)): + webpack-dev-middleware@7.4.2(webpack@5.97.1): dependencies: colorette: 2.0.20 - memfs: 4.9.2 + memfs: 4.13.0 mime-types: 2.1.35 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) - webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.93.0): + webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.97.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -9308,43 +9206,41 @@ snapshots: '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.7 '@types/sockjs': 0.3.36 - '@types/ws': 8.5.10 + '@types/ws': 8.5.12 ansi-html-community: 0.0.8 bonjour-service: 1.2.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.7.4 connect-history-api-fallback: 2.0.0 - default-gateway: 6.0.3 - express: 4.19.2 + express: 4.21.2 graceful-fs: 4.2.11 html-entities: 2.5.2 - http-proxy-middleware: 2.0.6(@types/express@4.17.21) + http-proxy-middleware: 2.0.7(@types/express@4.17.21) ipaddr.js: 2.2.0 - launch-editor: 2.6.1 + launch-editor: 2.9.1 open: 10.1.0 p-retry: 6.2.0 - rimraf: 5.0.9 schema-utils: 4.2.0 selfsigned: 2.4.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.2.1(webpack@5.93.0(webpack-cli@5.1.4)) - ws: 8.17.0 + webpack-dev-middleware: 7.4.2(webpack@5.97.1) + ws: 8.18.0 optionalDependencies: - webpack: 5.93.0(webpack-cli@5.1.4) - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + webpack: 5.97.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) transitivePeerDependencies: - bufferutil - debug - supports-color - utf-8-validate - webpack-inject-entry-plugin@0.0.4(webpack@5.93.0(webpack-cli@5.1.4)): + webpack-inject-entry-plugin@0.0.4(webpack@5.97.1): dependencies: schema-utils: 4.2.0 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) webpack-merge@5.10.0: dependencies: @@ -9361,18 +9257,17 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.93.0(webpack-cli@5.1.4): + webpack@5.97.1(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.2 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 @@ -9384,11 +9279,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.93.0(webpack-cli@5.1.4)) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.10(webpack@5.97.1) + watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.0.4)(webpack@5.93.0) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.97.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -9416,7 +9311,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -9466,12 +9361,12 @@ snapshots: workbox-build@6.6.0: dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.24.9 - '@babel/preset-env': 7.24.8(@babel/core@7.24.9) - '@babel/runtime': 7.24.8 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.24.9)(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) - '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@babel/core': 7.26.0 + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/runtime': 7.26.0 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.0)(rollup@2.79.2) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 ajv: 8.17.1 common-tags: 1.8.2 @@ -9480,8 +9375,8 @@ snapshots: glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-terser: 7.0.2(rollup@2.79.1) + rollup: 2.79.2 + rollup-plugin-terser: 7.0.2(rollup@2.79.2) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 @@ -9562,12 +9457,12 @@ snapshots: workbox-sw@6.6.0: {} - workbox-webpack-plugin@6.6.0(webpack@5.93.0(webpack-cli@5.1.4)): + workbox-webpack-plugin@6.6.0(webpack@5.97.1): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.93.0(webpack-cli@5.1.4) + webpack: 5.97.1(webpack-cli@5.1.4) webpack-sources: 1.4.3 workbox-build: 6.6.0 transitivePeerDependencies: @@ -9594,19 +9489,19 @@ snapshots: wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 - string-width: 7.1.0 + string-width: 7.2.0 strip-ansi: 7.1.0 wrappy@1.0.2: {} - ws@7.5.9: {} + ws@7.5.10: {} - ws@8.17.0: {} + ws@8.18.0: {} yallist@3.1.1: {} - yaml@2.4.5: {} + yaml@2.5.1: {} yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yocto-queue@1.1.1: {} diff --git a/renovate.json b/renovate.json index 4bc8dea8..a2091cdd 100644 --- a/renovate.json +++ b/renovate.json @@ -1,5 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended"], - "automerge": true + "schedule": ["every weekend"], + "automerge": true, + "ignoreDeps": ["lemmy-js-client"] } diff --git a/src/assets/css/main.css b/src/assets/css/main.css index a7d7e706..329e734a 100644 --- a/src/assets/css/main.css +++ b/src/assets/css/main.css @@ -461,3 +461,15 @@ br.big { .totp-link { width: fit-content; } + +.oauth-item details[open] .oauth-item-caret { + transform: rotate(90deg); +} + +.default-oauth-providers-section > ul { + list-style: none; +} + +em-emoji-picker { + width: 100%; +} diff --git a/src/assets/css/themes/_variables.i386.scss b/src/assets/css/themes/_variables.i386-dark.scss similarity index 100% rename from src/assets/css/themes/_variables.i386.scss rename to src/assets/css/themes/_variables.i386-dark.scss diff --git a/src/assets/css/themes/darkly-compact.css b/src/assets/css/themes/darkly-compact.css index 92984114..07c37bdd 100644 --- a/src/assets/css/themes/darkly-compact.css +++ b/src/assets/css/themes/darkly-compact.css @@ -85,28 +85,28 @@ hr.my-3 { --bs-danger-rgb: 231, 76, 60; --bs-light-rgb: 48, 48, 48; --bs-dark-rgb: 222, 226, 230; - --bs-primary-text-emphasis: #004b38; - --bs-secondary-text-emphasis: #45484c; - --bs-success-text-emphasis: #004b38; - --bs-info-text-emphasis: #153d58; - --bs-warning-text-emphasis: #613e07; - --bs-danger-text-emphasis: #5c1e18; + --bs-primary-text-emphasis: rgb(0, 75.2, 56); + --bs-secondary-text-emphasis: rgb(69.2, 72.4, 75.6); + --bs-success-text-emphasis: rgb(0, 75.2, 56); + --bs-info-text-emphasis: rgb(20.8, 60.8, 87.6); + --bs-warning-text-emphasis: rgb(97.2, 62.4, 7.2); + --bs-danger-text-emphasis: rgb(92.4, 30.4, 24); --bs-light-text-emphasis: #444; --bs-dark-text-emphasis: #444; - --bs-primary-bg-subtle: #ccf2e8; - --bs-secondary-bg-subtle: #eff0f2; - --bs-success-bg-subtle: #ccf2e8; - --bs-info-bg-subtle: #d6eaf8; - --bs-warning-bg-subtle: #fdebd0; - --bs-danger-bg-subtle: #fadbd8; - --bs-light-bg-subtle: #fcfcfd; + --bs-primary-bg-subtle: rgb(204, 241.6, 232); + --bs-secondary-bg-subtle: rgb(238.6, 240.2, 241.8); + --bs-success-bg-subtle: rgb(204, 241.6, 232); + --bs-info-bg-subtle: rgb(214.4, 234.4, 247.8); + --bs-warning-bg-subtle: rgb(252.6, 235.2, 207.6); + --bs-danger-bg-subtle: rgb(250.2, 219.2, 216); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #99e4d1; - --bs-secondary-border-subtle: #dee1e5; - --bs-success-border-subtle: #99e4d1; - --bs-info-border-subtle: #aed6f1; - --bs-warning-border-subtle: #fad7a0; - --bs-danger-border-subtle: #f5b7b1; + --bs-primary-border-subtle: rgb(153, 228.2, 209); + --bs-secondary-border-subtle: rgb(222.2, 225.4, 228.6); + --bs-success-border-subtle: rgb(153, 228.2, 209); + --bs-info-border-subtle: rgb(173.8, 213.8, 240.6); + --bs-warning-border-subtle: rgb(250.2, 215.4, 160.2); + --bs-danger-border-subtle: rgb(245.4, 183.4, 177); --bs-light-border-subtle: #ebebeb; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -137,7 +137,7 @@ hr.my-3 { --bs-link-color: #00bc8c; --bs-link-color-rgb: 0, 188, 140; --bs-link-decoration: none; - --bs-link-hover-color: #009670; + --bs-link-hover-color: rgb(0, 150.4, 112); --bs-link-hover-color-rgb: 0, 150, 112; --bs-code-color: #d63384; --bs-highlight-color: #dee2e6; @@ -182,44 +182,44 @@ hr.my-3 { --bs-tertiary-color-rgb: 222, 226, 230; --bs-tertiary-bg: #292929; --bs-tertiary-bg-rgb: 41, 41, 41; - --bs-primary-text-emphasis: #66d7ba; - --bs-secondary-text-emphasis: #ced3d7; - --bs-success-text-emphasis: #66d7ba; - --bs-info-text-emphasis: #85c1e9; - --bs-warning-text-emphasis: #f8c471; - --bs-danger-text-emphasis: #f1948a; + --bs-primary-text-emphasis: rgb(102, 214.8, 186); + --bs-secondary-text-emphasis: rgb(205.8, 210.6, 215.4); + --bs-success-text-emphasis: rgb(102, 214.8, 186); + --bs-info-text-emphasis: rgb(133.2, 193.2, 233.4); + --bs-warning-text-emphasis: rgb(247.8, 195.6, 112.8); + --bs-danger-text-emphasis: rgb(240.6, 147.6, 138); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #00261c; - --bs-secondary-bg-subtle: #232426; - --bs-success-bg-subtle: #00261c; - --bs-info-bg-subtle: #0a1e2c; - --bs-warning-bg-subtle: #311f04; - --bs-danger-bg-subtle: #2e0f0c; + --bs-primary-bg-subtle: rgb(0, 37.6, 28); + --bs-secondary-bg-subtle: rgb(34.6, 36.2, 37.8); + --bs-success-bg-subtle: rgb(0, 37.6, 28); + --bs-info-bg-subtle: rgb(10.4, 30.4, 43.8); + --bs-warning-bg-subtle: rgb(48.6, 31.2, 3.6); + --bs-danger-bg-subtle: rgb(46.2, 15.2, 12); --bs-light-bg-subtle: #303030; --bs-dark-bg-subtle: #181818; - --bs-primary-border-subtle: #007154; - --bs-secondary-border-subtle: #686d71; - --bs-success-border-subtle: #007154; - --bs-info-border-subtle: #1f5b83; - --bs-warning-border-subtle: #925e0b; - --bs-danger-border-subtle: #8b2e24; + --bs-primary-border-subtle: rgb(0, 112.8, 84); + --bs-secondary-border-subtle: rgb(103.8, 108.6, 113.4); + --bs-success-border-subtle: rgb(0, 112.8, 84); + --bs-info-border-subtle: rgb(31.2, 91.2, 131.4); + --bs-warning-border-subtle: rgb(145.8, 93.6, 10.8); + --bs-danger-border-subtle: rgb(138.6, 45.6, 36); --bs-light-border-subtle: #444; --bs-dark-border-subtle: #303030; --bs-heading-color: inherit; - --bs-link-color: #66d7ba; - --bs-link-hover-color: #85dfc8; + --bs-link-color: rgb(102, 214.8, 186); + --bs-link-hover-color: rgb(132.6, 222.84, 199.8); --bs-link-color-rgb: 102, 215, 186; --bs-link-hover-color-rgb: 133, 223, 200; - --bs-code-color: #e685b5; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; --bs-highlight-bg: #333; --bs-border-color: #444; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66d7ba; - --bs-form-valid-border-color: #66d7ba; - --bs-form-invalid-color: #f1948a; - --bs-form-invalid-border-color: #f1948a; + --bs-form-valid-color: rgb(102, 214.8, 186); + --bs-form-valid-border-color: rgb(102, 214.8, 186); + --bs-form-invalid-color: rgb(240.6, 147.6, 138); + --bs-form-invalid-border-color: rgb(240.6, 147.6, 138); } *, @@ -1951,13 +1951,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1965,13 +1965,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #eff0f2; - --bs-table-border-color: #bfc0c2; - --bs-table-striped-bg: #e3e4e6; + --bs-table-bg: rgb(238.6, 240.2, 241.8); + --bs-table-border-color: rgb(190.88, 192.16, 193.44); + --bs-table-striped-bg: rgb(226.67, 228.19, 229.71); --bs-table-striped-color: #000; - --bs-table-active-bg: #d7d8da; + --bs-table-active-bg: rgb(214.74, 216.18, 217.62); --bs-table-active-color: #000; - --bs-table-hover-bg: #dddee0; + --bs-table-hover-bg: rgb(220.705, 222.185, 223.665); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1979,13 +1979,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1993,13 +1993,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #d6eaf8; - --bs-table-border-color: #abbbc6; - --bs-table-striped-bg: #cbdeec; + --bs-table-bg: rgb(214.4, 234.4, 247.8); + --bs-table-border-color: rgb(171.52, 187.52, 198.24); + --bs-table-striped-bg: rgb(203.68, 222.68, 235.41); --bs-table-striped-color: #000; - --bs-table-active-bg: #c1d3df; + --bs-table-active-bg: rgb(192.96, 210.96, 223.02); --bs-table-active-color: #000; - --bs-table-hover-bg: #c6d8e5; + --bs-table-hover-bg: rgb(198.32, 216.82, 229.215); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2007,13 +2007,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fdebd0; - --bs-table-border-color: #cabca6; - --bs-table-striped-bg: #f0dfc6; + --bs-table-bg: rgb(252.6, 235.2, 207.6); + --bs-table-border-color: rgb(202.08, 188.16, 166.08); + --bs-table-striped-bg: rgb(239.97, 223.44, 197.22); --bs-table-striped-color: #000; - --bs-table-active-bg: #e4d4bb; + --bs-table-active-bg: rgb(227.34, 211.68, 186.84); --bs-table-active-color: #000; - --bs-table-hover-bg: #ead9c0; + --bs-table-hover-bg: rgb(233.655, 217.56, 192.03); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2021,13 +2021,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: #fadbd8; - --bs-table-border-color: #c8afad; - --bs-table-striped-bg: #eed0cd; + --bs-table-bg: rgb(250.2, 219.2, 216); + --bs-table-border-color: rgb(200.16, 175.36, 172.8); + --bs-table-striped-bg: rgb(237.69, 208.24, 205.2); --bs-table-striped-color: #000; - --bs-table-active-bg: #e1c5c2; + --bs-table-active-bg: rgb(225.18, 197.28, 194.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #e7cbc8; + --bs-table-hover-bg: rgb(231.435, 202.76, 199.8); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2036,12 +2036,12 @@ progress { .table-light { --bs-table-color: #fff; --bs-table-bg: #303030; - --bs-table-border-color: #595959; - --bs-table-striped-bg: #3a3a3a; + --bs-table-border-color: rgb(89.4, 89.4, 89.4); + --bs-table-striped-bg: rgb(58.35, 58.35, 58.35); --bs-table-striped-color: #fff; - --bs-table-active-bg: #454545; + --bs-table-active-bg: rgb(68.7, 68.7, 68.7); --bs-table-active-color: #fff; - --bs-table-hover-bg: #404040; + --bs-table-hover-bg: rgb(63.525, 63.525, 63.525); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2050,12 +2050,12 @@ progress { .table-dark { --bs-table-color: #000; --bs-table-bg: #dee2e6; - --bs-table-border-color: #b2b5b8; - --bs-table-striped-bg: #d3d7db; + --bs-table-border-color: rgb(177.6, 180.8, 184); + --bs-table-striped-bg: rgb(210.9, 214.7, 218.5); --bs-table-striped-color: #000; - --bs-table-active-bg: #c8cbcf; + --bs-table-active-bg: rgb(199.8, 203.4, 207); --bs-table-active-color: #000; - --bs-table-hover-bg: #cdd1d5; + --bs-table-hover-bg: rgb(205.35, 209.05, 212.75); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2155,7 +2155,7 @@ progress { .form-control:focus { color: #fff; background-color: #444; - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2173,7 +2173,7 @@ progress { opacity: 1; } .form-control:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); opacity: 1; } .form-control::file-selector-button { @@ -2300,7 +2300,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2309,7 +2309,7 @@ textarea.form-control-lg { background-image: none; } .form-select:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .form-select:-moz-focusring { color: transparent; @@ -2384,7 +2384,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2431,7 +2431,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380dec6'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28127.5, 221.5, 197.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2501,7 +2501,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2527,7 +2527,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-moz-range-track { width: 100%; @@ -2634,7 +2634,7 @@ textarea.form-control-lg { } .form-floating > :disabled ~ label::after, .form-floating > .form-control:disabled ~ label::after { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .input-group { @@ -2991,12 +2991,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -3008,12 +3008,12 @@ textarea.form-control-lg { --bs-btn-bg: #adb5bd; --bs-btn-border-color: #adb5bd; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b9c0c7; - --bs-btn-hover-border-color: #b5bcc4; + --bs-btn-hover-bg: rgb(185.3, 192.1, 198.9); + --bs-btn-hover-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-focus-shadow-rgb: 147, 154, 161; --bs-btn-active-color: #000; - --bs-btn-active-bg: #bdc4ca; - --bs-btn-active-border-color: #b5bcc4; + --bs-btn-active-bg: rgb(189.4, 195.8, 202.2); + --bs-btn-active-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #adb5bd; @@ -3025,12 +3025,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -3042,12 +3042,12 @@ textarea.form-control-lg { --bs-btn-bg: #3498db; --bs-btn-border-color: #3498db; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #2c81ba; - --bs-btn-hover-border-color: #2a7aaf; + --bs-btn-hover-bg: rgb(44.2, 129.2, 186.15); + --bs-btn-hover-border-color: rgb(41.6, 121.6, 175.2); --bs-btn-focus-shadow-rgb: 82, 167, 224; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #2a7aaf; - --bs-btn-active-border-color: #2772a4; + --bs-btn-active-bg: rgb(41.6, 121.6, 175.2); + --bs-btn-active-border-color: rgb(39, 114, 164.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #3498db; @@ -3059,12 +3059,12 @@ textarea.form-control-lg { --bs-btn-bg: #f39c12; --bs-btn-border-color: #f39c12; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f5ab36; - --bs-btn-hover-border-color: #f4a62a; + --bs-btn-hover-bg: rgb(244.8, 170.85, 53.55); + --bs-btn-hover-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-focus-shadow-rgb: 207, 133, 15; --bs-btn-active-color: #000; - --bs-btn-active-bg: #f5b041; - --bs-btn-active-border-color: #f4a62a; + --bs-btn-active-bg: rgb(245.4, 175.8, 65.4); + --bs-btn-active-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f39c12; @@ -3076,12 +3076,12 @@ textarea.form-control-lg { --bs-btn-bg: #e74c3c; --bs-btn-border-color: #e74c3c; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #c44133; - --bs-btn-hover-border-color: #b93d30; + --bs-btn-hover-bg: rgb(196.35, 64.6, 51); + --bs-btn-hover-border-color: rgb(184.8, 60.8, 48); --bs-btn-focus-shadow-rgb: 235, 103, 89; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #b93d30; - --bs-btn-active-border-color: #ad392d; + --bs-btn-active-bg: rgb(184.8, 60.8, 48); + --bs-btn-active-border-color: rgb(173.25, 57, 45); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #e74c3c; @@ -3093,11 +3093,11 @@ textarea.form-control-lg { --bs-btn-bg: #303030; --bs-btn-border-color: #303030; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #292929; - --bs-btn-hover-border-color: #262626; + --bs-btn-hover-bg: rgb(40.8, 40.8, 40.8); + --bs-btn-hover-border-color: rgb(38.4, 38.4, 38.4); --bs-btn-focus-shadow-rgb: 79, 79, 79; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #262626; + --bs-btn-active-bg: rgb(38.4, 38.4, 38.4); --bs-btn-active-border-color: #242424; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; @@ -3110,12 +3110,12 @@ textarea.form-control-lg { --bs-btn-bg: #dee2e6; --bs-btn-border-color: #dee2e6; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #e3e6ea; - --bs-btn-hover-border-color: #e1e5e9; + --bs-btn-hover-bg: rgb(226.95, 230.35, 233.75); + --bs-btn-hover-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-focus-shadow-rgb: 189, 192, 196; --bs-btn-active-color: #000; - --bs-btn-active-bg: #e5e8eb; - --bs-btn-active-border-color: #e1e5e9; + --bs-btn-active-bg: rgb(228.6, 231.8, 235); + --bs-btn-active-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #dee2e6; @@ -4506,7 +4506,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23004b38' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%280, 75.2, 56%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4624,8 +4624,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -4670,16 +4670,16 @@ textarea.form-control-lg { --bs-pagination-border-color: transparent; --bs-pagination-border-radius: var(--bs-border-radius); --bs-pagination-hover-color: #fff; - --bs-pagination-hover-bg: #00efb2; + --bs-pagination-hover-bg: rgb(0, 239, 177.9787234043); --bs-pagination-hover-border-color: transparent; --bs-pagination-focus-color: var(--bs-link-hover-color); --bs-pagination-focus-bg: var(--bs-secondary-bg); --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-pagination-active-color: #fff; - --bs-pagination-active-bg: #00efb2; + --bs-pagination-active-bg: rgb(0, 239, 177.9787234043); --bs-pagination-active-border-color: transparent; --bs-pagination-disabled-color: #fff; - --bs-pagination-disabled-bg: #007053; + --bs-pagination-disabled-bg: rgb(0, 111.5, 83.0319148936); --bs-pagination-disabled-border-color: transparent; display: flex; padding-left: 0; diff --git a/src/assets/css/themes/darkly-pureblack.css b/src/assets/css/themes/darkly-pureblack.css index 53256eed..7149e3ef 100644 --- a/src/assets/css/themes/darkly-pureblack.css +++ b/src/assets/css/themes/darkly-pureblack.css @@ -45,28 +45,28 @@ --bs-danger-rgb: 231, 76, 60; --bs-light-rgb: 17, 17, 17; --bs-dark-rgb: 222, 226, 230; - --bs-primary-text-emphasis: #004b38; - --bs-secondary-text-emphasis: #292929; - --bs-success-text-emphasis: #004b38; - --bs-info-text-emphasis: #153d58; - --bs-warning-text-emphasis: #613e07; - --bs-danger-text-emphasis: #5c1e18; + --bs-primary-text-emphasis: rgb(0, 75.2, 56); + --bs-secondary-text-emphasis: rgb(40.8, 40.8, 40.8); + --bs-success-text-emphasis: rgb(0, 75.2, 56); + --bs-info-text-emphasis: rgb(20.8, 60.8, 87.6); + --bs-warning-text-emphasis: rgb(97.2, 62.4, 7.2); + --bs-danger-text-emphasis: rgb(92.4, 30.4, 24); --bs-light-text-emphasis: #333; --bs-dark-text-emphasis: #333; - --bs-primary-bg-subtle: #ccf2e8; - --bs-secondary-bg-subtle: #e0e0e0; - --bs-success-bg-subtle: #ccf2e8; - --bs-info-bg-subtle: #d6eaf8; - --bs-warning-bg-subtle: #fdebd0; - --bs-danger-bg-subtle: #fadbd8; - --bs-light-bg-subtle: #f6f6f7; + --bs-primary-bg-subtle: rgb(204, 241.6, 232); + --bs-secondary-bg-subtle: rgb(224.4, 224.4, 224.4); + --bs-success-bg-subtle: rgb(204, 241.6, 232); + --bs-info-bg-subtle: rgb(214.4, 234.4, 247.8); + --bs-warning-bg-subtle: rgb(252.6, 235.2, 207.6); + --bs-danger-bg-subtle: rgb(250.2, 219.2, 216); + --bs-light-bg-subtle: rgb(245.5, 246, 246.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #99e4d1; - --bs-secondary-border-subtle: #c2c2c2; - --bs-success-border-subtle: #99e4d1; - --bs-info-border-subtle: #aed6f1; - --bs-warning-border-subtle: #fad7a0; - --bs-danger-border-subtle: #f5b7b1; + --bs-primary-border-subtle: rgb(153, 228.2, 209); + --bs-secondary-border-subtle: rgb(193.8, 193.8, 193.8); + --bs-success-border-subtle: rgb(153, 228.2, 209); + --bs-info-border-subtle: rgb(173.8, 213.8, 240.6); + --bs-warning-border-subtle: rgb(250.2, 215.4, 160.2); + --bs-danger-border-subtle: rgb(245.4, 183.4, 177); --bs-light-border-subtle: #ebebeb; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 243, 243, 243; @@ -97,7 +97,7 @@ --bs-link-color: #00bc8c; --bs-link-color-rgb: 0, 188, 140; --bs-link-decoration: none; - --bs-link-hover-color: #009670; + --bs-link-hover-color: rgb(0, 150.4, 112); --bs-link-hover-color-rgb: 0, 150, 112; --bs-code-color: #d63384; --bs-highlight-color: #ebebeb; @@ -140,46 +140,46 @@ --bs-secondary-bg-rgb: 32, 32, 32; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #191919; + --bs-tertiary-bg: rgb(24.5, 24.5, 24.5); --bs-tertiary-bg-rgb: 25, 25, 25; - --bs-primary-text-emphasis: #66d7ba; - --bs-secondary-text-emphasis: #a3a3a3; - --bs-success-text-emphasis: #66d7ba; - --bs-info-text-emphasis: #85c1e9; - --bs-warning-text-emphasis: #f8c471; - --bs-danger-text-emphasis: #f1948a; + --bs-primary-text-emphasis: rgb(102, 214.8, 186); + --bs-secondary-text-emphasis: rgb(163.2, 163.2, 163.2); + --bs-success-text-emphasis: rgb(102, 214.8, 186); + --bs-info-text-emphasis: rgb(133.2, 193.2, 233.4); + --bs-warning-text-emphasis: rgb(247.8, 195.6, 112.8); + --bs-danger-text-emphasis: rgb(240.6, 147.6, 138); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #00261c; - --bs-secondary-bg-subtle: #141414; - --bs-success-bg-subtle: #00261c; - --bs-info-bg-subtle: #0a1e2c; - --bs-warning-bg-subtle: #311f04; - --bs-danger-bg-subtle: #2e0f0c; + --bs-primary-bg-subtle: rgb(0, 37.6, 28); + --bs-secondary-bg-subtle: rgb(20.4, 20.4, 20.4); + --bs-success-bg-subtle: rgb(0, 37.6, 28); + --bs-info-bg-subtle: rgb(10.4, 30.4, 43.8); + --bs-warning-bg-subtle: rgb(48.6, 31.2, 3.6); + --bs-danger-bg-subtle: rgb(46.2, 15.2, 12); --bs-light-bg-subtle: #202020; --bs-dark-bg-subtle: #101010; - --bs-primary-border-subtle: #007154; - --bs-secondary-border-subtle: #3d3d3d; - --bs-success-border-subtle: #007154; - --bs-info-border-subtle: #1f5b83; - --bs-warning-border-subtle: #925e0b; - --bs-danger-border-subtle: #8b2e24; + --bs-primary-border-subtle: rgb(0, 112.8, 84); + --bs-secondary-border-subtle: rgb(61.2, 61.2, 61.2); + --bs-success-border-subtle: rgb(0, 112.8, 84); + --bs-info-border-subtle: rgb(31.2, 91.2, 131.4); + --bs-warning-border-subtle: rgb(145.8, 93.6, 10.8); + --bs-danger-border-subtle: rgb(138.6, 45.6, 36); --bs-light-border-subtle: #333; --bs-dark-border-subtle: #202020; --bs-heading-color: inherit; - --bs-link-color: #66d7ba; - --bs-link-hover-color: #85dfc8; + --bs-link-color: rgb(102, 214.8, 186); + --bs-link-hover-color: rgb(132.6, 222.84, 199.8); --bs-link-color-rgb: 102, 215, 186; --bs-link-hover-color-rgb: 133, 223, 200; - --bs-code-color: #e685b5; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; --bs-highlight-bg: #111; --bs-border-color: #333; --bs-border-color-translucent: rgba(243, 243, 243, 0.15); - --bs-form-valid-color: #66d7ba; - --bs-form-valid-border-color: #66d7ba; - --bs-form-invalid-color: #f1948a; - --bs-form-invalid-border-color: #f1948a; + --bs-form-valid-color: rgb(102, 214.8, 186); + --bs-form-valid-border-color: rgb(102, 214.8, 186); + --bs-form-invalid-color: rgb(240.6, 147.6, 138); + --bs-form-invalid-border-color: rgb(240.6, 147.6, 138); } *, @@ -1935,13 +1935,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1949,13 +1949,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #e0e0e0; - --bs-table-border-color: #b3b3b3; - --bs-table-striped-bg: #d5d5d5; + --bs-table-bg: rgb(224.4, 224.4, 224.4); + --bs-table-border-color: rgb(179.52, 179.52, 179.52); + --bs-table-striped-bg: rgb(213.18, 213.18, 213.18); --bs-table-striped-color: #000; - --bs-table-active-bg: #cacaca; + --bs-table-active-bg: rgb(201.96, 201.96, 201.96); --bs-table-active-color: #000; - --bs-table-hover-bg: #cfcfcf; + --bs-table-hover-bg: rgb(207.57, 207.57, 207.57); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1963,13 +1963,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1977,13 +1977,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #d6eaf8; - --bs-table-border-color: #abbbc6; - --bs-table-striped-bg: #cbdeec; + --bs-table-bg: rgb(214.4, 234.4, 247.8); + --bs-table-border-color: rgb(171.52, 187.52, 198.24); + --bs-table-striped-bg: rgb(203.68, 222.68, 235.41); --bs-table-striped-color: #000; - --bs-table-active-bg: #c1d3df; + --bs-table-active-bg: rgb(192.96, 210.96, 223.02); --bs-table-active-color: #000; - --bs-table-hover-bg: #c6d8e5; + --bs-table-hover-bg: rgb(198.32, 216.82, 229.215); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1991,13 +1991,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fdebd0; - --bs-table-border-color: #cabca6; - --bs-table-striped-bg: #f0dfc6; + --bs-table-bg: rgb(252.6, 235.2, 207.6); + --bs-table-border-color: rgb(202.08, 188.16, 166.08); + --bs-table-striped-bg: rgb(239.97, 223.44, 197.22); --bs-table-striped-color: #000; - --bs-table-active-bg: #e4d4bb; + --bs-table-active-bg: rgb(227.34, 211.68, 186.84); --bs-table-active-color: #000; - --bs-table-hover-bg: #ead9c0; + --bs-table-hover-bg: rgb(233.655, 217.56, 192.03); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2005,13 +2005,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: #fadbd8; - --bs-table-border-color: #c8afad; - --bs-table-striped-bg: #eed0cd; + --bs-table-bg: rgb(250.2, 219.2, 216); + --bs-table-border-color: rgb(200.16, 175.36, 172.8); + --bs-table-striped-bg: rgb(237.69, 208.24, 205.2); --bs-table-striped-color: #000; - --bs-table-active-bg: #e1c5c2; + --bs-table-active-bg: rgb(225.18, 197.28, 194.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #e7cbc8; + --bs-table-hover-bg: rgb(231.435, 202.76, 199.8); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2020,12 +2020,12 @@ progress { .table-light { --bs-table-color: #f3f3f3; --bs-table-bg: #111; - --bs-table-border-color: #3e3e3e; - --bs-table-striped-bg: #1c1c1c; + --bs-table-border-color: rgb(62.2, 62.2, 62.2); + --bs-table-striped-bg: rgb(28.3, 28.3, 28.3); --bs-table-striped-color: #f3f3f3; - --bs-table-active-bg: #282828; + --bs-table-active-bg: rgb(39.6, 39.6, 39.6); --bs-table-active-color: #f3f3f3; - --bs-table-hover-bg: #222222; + --bs-table-hover-bg: rgb(33.95, 33.95, 33.95); --bs-table-hover-color: #f3f3f3; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2034,12 +2034,12 @@ progress { .table-dark { --bs-table-color: #000; --bs-table-bg: #dee2e6; - --bs-table-border-color: #b2b5b8; - --bs-table-striped-bg: #d3d7db; + --bs-table-border-color: rgb(177.6, 180.8, 184); + --bs-table-striped-bg: rgb(210.9, 214.7, 218.5); --bs-table-striped-color: #000; - --bs-table-active-bg: #c8cbcf; + --bs-table-active-bg: rgb(199.8, 203.4, 207); --bs-table-active-color: #000; - --bs-table-hover-bg: #cdd1d5; + --bs-table-hover-bg: rgb(205.35, 209.05, 212.75); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2139,7 +2139,7 @@ progress { .form-control:focus { color: #f3f3f3; background-color: #111; - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2284,7 +2284,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2368,7 +2368,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2415,7 +2415,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380dec6'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28127.5, 221.5, 197.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2485,7 +2485,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2511,7 +2511,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-moz-range-track { width: 100%; @@ -2975,12 +2975,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -2992,12 +2992,12 @@ textarea.form-control-lg { --bs-btn-bg: #666; --bs-btn-border-color: #666; --bs-btn-hover-color: #f3f3f3; - --bs-btn-hover-bg: #575757; - --bs-btn-hover-border-color: #525252; + --bs-btn-hover-bg: rgb(86.7, 86.7, 86.7); + --bs-btn-hover-border-color: rgb(81.6, 81.6, 81.6); --bs-btn-focus-shadow-rgb: 123, 123, 123; --bs-btn-active-color: #f3f3f3; - --bs-btn-active-bg: #525252; - --bs-btn-active-border-color: #4d4d4d; + --bs-btn-active-bg: rgb(81.6, 81.6, 81.6); + --bs-btn-active-border-color: rgb(76.5, 76.5, 76.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #f3f3f3; --bs-btn-disabled-bg: #666; @@ -3009,12 +3009,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -3026,12 +3026,12 @@ textarea.form-control-lg { --bs-btn-bg: #3498db; --bs-btn-border-color: #3498db; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #52a7e0; - --bs-btn-hover-border-color: #48a2df; + --bs-btn-hover-bg: rgb(82.45, 167.45, 224.4); + --bs-btn-hover-border-color: rgb(72.3, 162.3, 222.6); --bs-btn-focus-shadow-rgb: 44, 129, 186; --bs-btn-active-color: #000; - --bs-btn-active-bg: #5dade2; - --bs-btn-active-border-color: #48a2df; + --bs-btn-active-bg: rgb(92.6, 172.6, 226.2); + --bs-btn-active-border-color: rgb(72.3, 162.3, 222.6); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #3498db; @@ -3043,12 +3043,12 @@ textarea.form-control-lg { --bs-btn-bg: #f39c12; --bs-btn-border-color: #f39c12; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f5ab36; - --bs-btn-hover-border-color: #f4a62a; + --bs-btn-hover-bg: rgb(244.8, 170.85, 53.55); + --bs-btn-hover-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-focus-shadow-rgb: 207, 133, 15; --bs-btn-active-color: #000; - --bs-btn-active-bg: #f5b041; - --bs-btn-active-border-color: #f4a62a; + --bs-btn-active-bg: rgb(245.4, 175.8, 65.4); + --bs-btn-active-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f39c12; @@ -3060,12 +3060,12 @@ textarea.form-control-lg { --bs-btn-bg: #e74c3c; --bs-btn-border-color: #e74c3c; --bs-btn-hover-color: #f3f3f3; - --bs-btn-hover-bg: #c44133; - --bs-btn-hover-border-color: #b93d30; + --bs-btn-hover-bg: rgb(196.35, 64.6, 51); + --bs-btn-hover-border-color: rgb(184.8, 60.8, 48); --bs-btn-focus-shadow-rgb: 233, 101, 87; --bs-btn-active-color: #f3f3f3; - --bs-btn-active-bg: #b93d30; - --bs-btn-active-border-color: #ad392d; + --bs-btn-active-bg: rgb(184.8, 60.8, 48); + --bs-btn-active-border-color: rgb(173.25, 57, 45); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #f3f3f3; --bs-btn-disabled-bg: #e74c3c; @@ -3077,12 +3077,12 @@ textarea.form-control-lg { --bs-btn-bg: #111; --bs-btn-border-color: #111; --bs-btn-hover-color: #f3f3f3; - --bs-btn-hover-bg: #0e0e0e; - --bs-btn-hover-border-color: #0e0e0e; + --bs-btn-hover-bg: rgb(14.45, 14.45, 14.45); + --bs-btn-hover-border-color: rgb(13.6, 13.6, 13.6); --bs-btn-focus-shadow-rgb: 51, 51, 51; --bs-btn-active-color: #f3f3f3; - --bs-btn-active-bg: #0e0e0e; - --bs-btn-active-border-color: #0d0d0d; + --bs-btn-active-bg: rgb(13.6, 13.6, 13.6); + --bs-btn-active-border-color: rgb(12.75, 12.75, 12.75); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #f3f3f3; --bs-btn-disabled-bg: #111; @@ -3094,12 +3094,12 @@ textarea.form-control-lg { --bs-btn-bg: #dee2e6; --bs-btn-border-color: #dee2e6; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #e3e6ea; - --bs-btn-hover-border-color: #e1e5e9; + --bs-btn-hover-bg: rgb(226.95, 230.35, 233.75); + --bs-btn-hover-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-focus-shadow-rgb: 189, 192, 196; --bs-btn-active-color: #000; - --bs-btn-active-bg: #e5e8eb; - --bs-btn-active-border-color: #e1e5e9; + --bs-btn-active-bg: rgb(228.6, 231.8, 235); + --bs-btn-active-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #dee2e6; @@ -4494,7 +4494,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23004b38' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%280, 75.2, 56%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4612,8 +4612,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -4658,16 +4658,16 @@ textarea.form-control-lg { --bs-pagination-border-color: transparent; --bs-pagination-border-radius: var(--bs-border-radius); --bs-pagination-hover-color: #f3f3f3; - --bs-pagination-hover-bg: #00efb2; + --bs-pagination-hover-bg: rgb(0, 239, 177.9787234043); --bs-pagination-hover-border-color: transparent; --bs-pagination-focus-color: var(--bs-link-hover-color); --bs-pagination-focus-bg: var(--bs-secondary-bg); --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-pagination-active-color: #f3f3f3; - --bs-pagination-active-bg: #00efb2; + --bs-pagination-active-bg: rgb(0, 239, 177.9787234043); --bs-pagination-active-border-color: transparent; --bs-pagination-disabled-color: #f3f3f3; - --bs-pagination-disabled-bg: #007053; + --bs-pagination-disabled-bg: rgb(0, 111.5, 83.0319148936); --bs-pagination-disabled-border-color: transparent; display: flex; padding-left: 0; diff --git a/src/assets/css/themes/darkly-red.css b/src/assets/css/themes/darkly-red.css index f4039dc9..c9083303 100644 --- a/src/assets/css/themes/darkly-red.css +++ b/src/assets/css/themes/darkly-red.css @@ -45,28 +45,28 @@ --bs-danger-rgb: 231, 76, 60; --bs-light-rgb: 48, 48, 48; --bs-dark-rgb: 222, 226, 230; - --bs-primary-text-emphasis: #162433; - --bs-secondary-text-emphasis: #45484c; - --bs-success-text-emphasis: #004b38; - --bs-info-text-emphasis: #153d58; - --bs-warning-text-emphasis: #613e07; - --bs-danger-text-emphasis: #5c1e18; + --bs-primary-text-emphasis: rgb(22, 36, 50.8); + --bs-secondary-text-emphasis: rgb(69.2, 72.4, 75.6); + --bs-success-text-emphasis: rgb(0, 75.2, 56); + --bs-info-text-emphasis: rgb(20.8, 60.8, 87.6); + --bs-warning-text-emphasis: rgb(97.2, 62.4, 7.2); + --bs-danger-text-emphasis: rgb(92.4, 30.4, 24); --bs-light-text-emphasis: #444; --bs-dark-text-emphasis: #444; - --bs-primary-bg-subtle: #d7dee5; - --bs-secondary-bg-subtle: #eff0f2; - --bs-success-bg-subtle: #ccf2e8; - --bs-info-bg-subtle: #d6eaf8; - --bs-warning-bg-subtle: #fdebd0; - --bs-danger-bg-subtle: #fadbd8; - --bs-light-bg-subtle: #fcfcfd; + --bs-primary-bg-subtle: rgb(215, 222, 229.4); + --bs-secondary-bg-subtle: rgb(238.6, 240.2, 241.8); + --bs-success-bg-subtle: rgb(204, 241.6, 232); + --bs-info-bg-subtle: rgb(214.4, 234.4, 247.8); + --bs-warning-bg-subtle: rgb(252.6, 235.2, 207.6); + --bs-danger-bg-subtle: rgb(250.2, 219.2, 216); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #afbdcc; - --bs-secondary-border-subtle: #dee1e5; - --bs-success-border-subtle: #99e4d1; - --bs-info-border-subtle: #aed6f1; - --bs-warning-border-subtle: #fad7a0; - --bs-danger-border-subtle: #f5b7b1; + --bs-primary-border-subtle: rgb(175, 189, 203.8); + --bs-secondary-border-subtle: rgb(222.2, 225.4, 228.6); + --bs-success-border-subtle: rgb(153, 228.2, 209); + --bs-info-border-subtle: rgb(173.8, 213.8, 240.6); + --bs-warning-border-subtle: rgb(250.2, 215.4, 160.2); + --bs-danger-border-subtle: rgb(245.4, 183.4, 177); --bs-light-border-subtle: #ebebeb; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -97,7 +97,7 @@ --bs-link-color: #e74c3c; --bs-link-color-rgb: 231, 76, 60; --bs-link-decoration: none; - --bs-link-hover-color: #b93d30; + --bs-link-hover-color: rgb(184.8, 60.8, 48); --bs-link-hover-color-rgb: 185, 61, 48; --bs-code-color: #d63384; --bs-highlight-color: #dee2e6; @@ -142,44 +142,44 @@ --bs-tertiary-color-rgb: 222, 226, 230; --bs-tertiary-bg: #292929; --bs-tertiary-bg-rgb: 41, 41, 41; - --bs-primary-text-emphasis: #879cb2; - --bs-secondary-text-emphasis: #ced3d7; - --bs-success-text-emphasis: #66d7ba; - --bs-info-text-emphasis: #85c1e9; - --bs-warning-text-emphasis: #f8c471; - --bs-danger-text-emphasis: #f1948a; + --bs-primary-text-emphasis: rgb(135, 156, 178.2); + --bs-secondary-text-emphasis: rgb(205.8, 210.6, 215.4); + --bs-success-text-emphasis: rgb(102, 214.8, 186); + --bs-info-text-emphasis: rgb(133.2, 193.2, 233.4); + --bs-warning-text-emphasis: rgb(247.8, 195.6, 112.8); + --bs-danger-text-emphasis: rgb(240.6, 147.6, 138); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #0b1219; - --bs-secondary-bg-subtle: #232426; - --bs-success-bg-subtle: #00261c; - --bs-info-bg-subtle: #0a1e2c; - --bs-warning-bg-subtle: #311f04; - --bs-danger-bg-subtle: #2e0f0c; + --bs-primary-bg-subtle: rgb(11, 18, 25.4); + --bs-secondary-bg-subtle: rgb(34.6, 36.2, 37.8); + --bs-success-bg-subtle: rgb(0, 37.6, 28); + --bs-info-bg-subtle: rgb(10.4, 30.4, 43.8); + --bs-warning-bg-subtle: rgb(48.6, 31.2, 3.6); + --bs-danger-bg-subtle: rgb(46.2, 15.2, 12); --bs-light-bg-subtle: #303030; --bs-dark-bg-subtle: #181818; - --bs-primary-border-subtle: #21364c; - --bs-secondary-border-subtle: #686d71; - --bs-success-border-subtle: #007154; - --bs-info-border-subtle: #1f5b83; - --bs-warning-border-subtle: #925e0b; - --bs-danger-border-subtle: #8b2e24; + --bs-primary-border-subtle: rgb(33, 54, 76.2); + --bs-secondary-border-subtle: rgb(103.8, 108.6, 113.4); + --bs-success-border-subtle: rgb(0, 112.8, 84); + --bs-info-border-subtle: rgb(31.2, 91.2, 131.4); + --bs-warning-border-subtle: rgb(145.8, 93.6, 10.8); + --bs-danger-border-subtle: rgb(138.6, 45.6, 36); --bs-light-border-subtle: #444; --bs-dark-border-subtle: #303030; --bs-heading-color: inherit; - --bs-link-color: #879cb2; - --bs-link-hover-color: #9fb0c1; + --bs-link-color: rgb(135, 156, 178.2); + --bs-link-hover-color: rgb(159, 175.8, 193.56); --bs-link-color-rgb: 135, 156, 178; - --bs-link-hover-color-rgb: 159, 176, 193; - --bs-code-color: #e685b5; + --bs-link-hover-color-rgb: 159, 176, 194; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; --bs-highlight-bg: #333; --bs-border-color: #444; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66d7ba; - --bs-form-valid-border-color: #66d7ba; - --bs-form-invalid-color: #f1948a; - --bs-form-invalid-border-color: #f1948a; + --bs-form-valid-color: rgb(102, 214.8, 186); + --bs-form-valid-border-color: rgb(102, 214.8, 186); + --bs-form-invalid-color: rgb(240.6, 147.6, 138); + --bs-form-invalid-border-color: rgb(240.6, 147.6, 138); } *, @@ -1935,13 +1935,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #d7dee5; - --bs-table-border-color: #acb2b7; - --bs-table-striped-bg: #ccd3da; + --bs-table-bg: rgb(215, 222, 229.4); + --bs-table-border-color: rgb(172, 177.6, 183.52); + --bs-table-striped-bg: rgb(204.25, 210.9, 217.93); --bs-table-striped-color: #000; - --bs-table-active-bg: #c2c8ce; + --bs-table-active-bg: rgb(193.5, 199.8, 206.46); --bs-table-active-color: #000; - --bs-table-hover-bg: #c7cdd4; + --bs-table-hover-bg: rgb(198.875, 205.35, 212.195); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1949,13 +1949,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #eff0f2; - --bs-table-border-color: #bfc0c2; - --bs-table-striped-bg: #e3e4e6; + --bs-table-bg: rgb(238.6, 240.2, 241.8); + --bs-table-border-color: rgb(190.88, 192.16, 193.44); + --bs-table-striped-bg: rgb(226.67, 228.19, 229.71); --bs-table-striped-color: #000; - --bs-table-active-bg: #d7d8da; + --bs-table-active-bg: rgb(214.74, 216.18, 217.62); --bs-table-active-color: #000; - --bs-table-hover-bg: #dddee0; + --bs-table-hover-bg: rgb(220.705, 222.185, 223.665); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1963,13 +1963,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1977,13 +1977,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #d6eaf8; - --bs-table-border-color: #abbbc6; - --bs-table-striped-bg: #cbdeec; + --bs-table-bg: rgb(214.4, 234.4, 247.8); + --bs-table-border-color: rgb(171.52, 187.52, 198.24); + --bs-table-striped-bg: rgb(203.68, 222.68, 235.41); --bs-table-striped-color: #000; - --bs-table-active-bg: #c1d3df; + --bs-table-active-bg: rgb(192.96, 210.96, 223.02); --bs-table-active-color: #000; - --bs-table-hover-bg: #c6d8e5; + --bs-table-hover-bg: rgb(198.32, 216.82, 229.215); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1991,13 +1991,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fdebd0; - --bs-table-border-color: #cabca6; - --bs-table-striped-bg: #f0dfc6; + --bs-table-bg: rgb(252.6, 235.2, 207.6); + --bs-table-border-color: rgb(202.08, 188.16, 166.08); + --bs-table-striped-bg: rgb(239.97, 223.44, 197.22); --bs-table-striped-color: #000; - --bs-table-active-bg: #e4d4bb; + --bs-table-active-bg: rgb(227.34, 211.68, 186.84); --bs-table-active-color: #000; - --bs-table-hover-bg: #ead9c0; + --bs-table-hover-bg: rgb(233.655, 217.56, 192.03); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2005,13 +2005,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: #fadbd8; - --bs-table-border-color: #c8afad; - --bs-table-striped-bg: #eed0cd; + --bs-table-bg: rgb(250.2, 219.2, 216); + --bs-table-border-color: rgb(200.16, 175.36, 172.8); + --bs-table-striped-bg: rgb(237.69, 208.24, 205.2); --bs-table-striped-color: #000; - --bs-table-active-bg: #e1c5c2; + --bs-table-active-bg: rgb(225.18, 197.28, 194.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #e7cbc8; + --bs-table-hover-bg: rgb(231.435, 202.76, 199.8); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2020,12 +2020,12 @@ progress { .table-light { --bs-table-color: #fff; --bs-table-bg: #303030; - --bs-table-border-color: #595959; - --bs-table-striped-bg: #3a3a3a; + --bs-table-border-color: rgb(89.4, 89.4, 89.4); + --bs-table-striped-bg: rgb(58.35, 58.35, 58.35); --bs-table-striped-color: #fff; - --bs-table-active-bg: #454545; + --bs-table-active-bg: rgb(68.7, 68.7, 68.7); --bs-table-active-color: #fff; - --bs-table-hover-bg: #404040; + --bs-table-hover-bg: rgb(63.525, 63.525, 63.525); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2034,12 +2034,12 @@ progress { .table-dark { --bs-table-color: #000; --bs-table-bg: #dee2e6; - --bs-table-border-color: #b2b5b8; - --bs-table-striped-bg: #d3d7db; + --bs-table-border-color: rgb(177.6, 180.8, 184); + --bs-table-striped-bg: rgb(210.9, 214.7, 218.5); --bs-table-striped-color: #000; - --bs-table-active-bg: #c8cbcf; + --bs-table-active-bg: rgb(199.8, 203.4, 207); --bs-table-active-color: #000; - --bs-table-hover-bg: #cdd1d5; + --bs-table-hover-bg: rgb(205.35, 209.05, 212.75); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2139,7 +2139,7 @@ progress { .form-control:focus { color: #fff; background-color: #444; - border-color: #9badbf; + border-color: rgb(155, 172.5, 191); outline: 0; box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25); } @@ -2157,7 +2157,7 @@ progress { opacity: 1; } .form-control:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); opacity: 1; } .form-control::file-selector-button { @@ -2284,7 +2284,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #9badbf; + border-color: rgb(155, 172.5, 191); outline: 0; box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25); } @@ -2293,7 +2293,7 @@ textarea.form-control-lg { background-image: none; } .form-select:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .form-select:-moz-focusring { color: transparent; @@ -2368,7 +2368,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #9badbf; + border-color: rgb(155, 172.5, 191); outline: 0; box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25); } @@ -2415,7 +2415,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28155, 172.5, 191%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2485,7 +2485,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #c3ced9; + background-color: rgb(195, 205.5, 216.6); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2511,7 +2511,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #c3ced9; + background-color: rgb(195, 205.5, 216.6); } .form-range::-moz-range-track { width: 100%; @@ -2618,7 +2618,7 @@ textarea.form-control-lg { } .form-floating > :disabled ~ label::after, .form-floating > .form-control:disabled ~ label::after { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .input-group { @@ -2975,12 +2975,12 @@ textarea.form-control-lg { --bs-btn-bg: #375a7f; --bs-btn-border-color: #375a7f; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #2f4d6c; - --bs-btn-hover-border-color: #2c4866; + --bs-btn-hover-bg: rgb(46.75, 76.5, 107.95); + --bs-btn-hover-border-color: rgb(44, 72, 101.6); --bs-btn-focus-shadow-rgb: 85, 115, 146; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #2c4866; - --bs-btn-active-border-color: #29445f; + --bs-btn-active-bg: rgb(44, 72, 101.6); + --bs-btn-active-border-color: rgb(41.25, 67.5, 95.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #375a7f; @@ -2992,12 +2992,12 @@ textarea.form-control-lg { --bs-btn-bg: #adb5bd; --bs-btn-border-color: #adb5bd; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b9c0c7; - --bs-btn-hover-border-color: #b5bcc4; + --bs-btn-hover-bg: rgb(185.3, 192.1, 198.9); + --bs-btn-hover-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-focus-shadow-rgb: 147, 154, 161; --bs-btn-active-color: #000; - --bs-btn-active-bg: #bdc4ca; - --bs-btn-active-border-color: #b5bcc4; + --bs-btn-active-bg: rgb(189.4, 195.8, 202.2); + --bs-btn-active-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #adb5bd; @@ -3009,12 +3009,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -3026,12 +3026,12 @@ textarea.form-control-lg { --bs-btn-bg: #3498db; --bs-btn-border-color: #3498db; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #2c81ba; - --bs-btn-hover-border-color: #2a7aaf; + --bs-btn-hover-bg: rgb(44.2, 129.2, 186.15); + --bs-btn-hover-border-color: rgb(41.6, 121.6, 175.2); --bs-btn-focus-shadow-rgb: 82, 167, 224; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #2a7aaf; - --bs-btn-active-border-color: #2772a4; + --bs-btn-active-bg: rgb(41.6, 121.6, 175.2); + --bs-btn-active-border-color: rgb(39, 114, 164.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #3498db; @@ -3043,12 +3043,12 @@ textarea.form-control-lg { --bs-btn-bg: #f39c12; --bs-btn-border-color: #f39c12; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f5ab36; - --bs-btn-hover-border-color: #f4a62a; + --bs-btn-hover-bg: rgb(244.8, 170.85, 53.55); + --bs-btn-hover-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-focus-shadow-rgb: 207, 133, 15; --bs-btn-active-color: #000; - --bs-btn-active-bg: #f5b041; - --bs-btn-active-border-color: #f4a62a; + --bs-btn-active-bg: rgb(245.4, 175.8, 65.4); + --bs-btn-active-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f39c12; @@ -3060,12 +3060,12 @@ textarea.form-control-lg { --bs-btn-bg: #e74c3c; --bs-btn-border-color: #e74c3c; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #c44133; - --bs-btn-hover-border-color: #b93d30; + --bs-btn-hover-bg: rgb(196.35, 64.6, 51); + --bs-btn-hover-border-color: rgb(184.8, 60.8, 48); --bs-btn-focus-shadow-rgb: 235, 103, 89; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #b93d30; - --bs-btn-active-border-color: #ad392d; + --bs-btn-active-bg: rgb(184.8, 60.8, 48); + --bs-btn-active-border-color: rgb(173.25, 57, 45); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #e74c3c; @@ -3077,11 +3077,11 @@ textarea.form-control-lg { --bs-btn-bg: #303030; --bs-btn-border-color: #303030; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #292929; - --bs-btn-hover-border-color: #262626; + --bs-btn-hover-bg: rgb(40.8, 40.8, 40.8); + --bs-btn-hover-border-color: rgb(38.4, 38.4, 38.4); --bs-btn-focus-shadow-rgb: 79, 79, 79; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #262626; + --bs-btn-active-bg: rgb(38.4, 38.4, 38.4); --bs-btn-active-border-color: #242424; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; @@ -3094,12 +3094,12 @@ textarea.form-control-lg { --bs-btn-bg: #dee2e6; --bs-btn-border-color: #dee2e6; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #e3e6ea; - --bs-btn-hover-border-color: #e1e5e9; + --bs-btn-hover-bg: rgb(226.95, 230.35, 233.75); + --bs-btn-hover-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-focus-shadow-rgb: 189, 192, 196; --bs-btn-active-color: #000; - --bs-btn-active-bg: #e5e8eb; - --bs-btn-active-border-color: #e1e5e9; + --bs-btn-active-bg: rgb(228.6, 231.8, 235); + --bs-btn-active-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #dee2e6; @@ -4494,7 +4494,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23162433' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%2822, 36, 50.8%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4612,8 +4612,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28135, 156, 178.2%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28135, 156, 178.2%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -4658,16 +4658,16 @@ textarea.form-control-lg { --bs-pagination-border-color: transparent; --bs-pagination-border-radius: var(--bs-border-radius); --bs-pagination-hover-color: #fff; - --bs-pagination-hover-bg: #00efb2; + --bs-pagination-hover-bg: rgb(0, 239, 177.9787234043); --bs-pagination-hover-border-color: transparent; --bs-pagination-focus-color: var(--bs-link-hover-color); --bs-pagination-focus-bg: var(--bs-secondary-bg); --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25); --bs-pagination-active-color: #fff; - --bs-pagination-active-bg: #00efb2; + --bs-pagination-active-bg: rgb(0, 239, 177.9787234043); --bs-pagination-active-border-color: transparent; --bs-pagination-disabled-color: #fff; - --bs-pagination-disabled-bg: #007053; + --bs-pagination-disabled-bg: rgb(0, 111.5, 83.0319148936); --bs-pagination-disabled-border-color: transparent; display: flex; padding-left: 0; diff --git a/src/assets/css/themes/darkly.css b/src/assets/css/themes/darkly.css index 85aaf2df..9f567431 100644 --- a/src/assets/css/themes/darkly.css +++ b/src/assets/css/themes/darkly.css @@ -45,28 +45,28 @@ --bs-danger-rgb: 231, 76, 60; --bs-light-rgb: 48, 48, 48; --bs-dark-rgb: 222, 226, 230; - --bs-primary-text-emphasis: #004b38; - --bs-secondary-text-emphasis: #45484c; - --bs-success-text-emphasis: #004b38; - --bs-info-text-emphasis: #153d58; - --bs-warning-text-emphasis: #613e07; - --bs-danger-text-emphasis: #5c1e18; + --bs-primary-text-emphasis: rgb(0, 75.2, 56); + --bs-secondary-text-emphasis: rgb(69.2, 72.4, 75.6); + --bs-success-text-emphasis: rgb(0, 75.2, 56); + --bs-info-text-emphasis: rgb(20.8, 60.8, 87.6); + --bs-warning-text-emphasis: rgb(97.2, 62.4, 7.2); + --bs-danger-text-emphasis: rgb(92.4, 30.4, 24); --bs-light-text-emphasis: #444; --bs-dark-text-emphasis: #444; - --bs-primary-bg-subtle: #ccf2e8; - --bs-secondary-bg-subtle: #eff0f2; - --bs-success-bg-subtle: #ccf2e8; - --bs-info-bg-subtle: #d6eaf8; - --bs-warning-bg-subtle: #fdebd0; - --bs-danger-bg-subtle: #fadbd8; - --bs-light-bg-subtle: #fcfcfd; + --bs-primary-bg-subtle: rgb(204, 241.6, 232); + --bs-secondary-bg-subtle: rgb(238.6, 240.2, 241.8); + --bs-success-bg-subtle: rgb(204, 241.6, 232); + --bs-info-bg-subtle: rgb(214.4, 234.4, 247.8); + --bs-warning-bg-subtle: rgb(252.6, 235.2, 207.6); + --bs-danger-bg-subtle: rgb(250.2, 219.2, 216); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #99e4d1; - --bs-secondary-border-subtle: #dee1e5; - --bs-success-border-subtle: #99e4d1; - --bs-info-border-subtle: #aed6f1; - --bs-warning-border-subtle: #fad7a0; - --bs-danger-border-subtle: #f5b7b1; + --bs-primary-border-subtle: rgb(153, 228.2, 209); + --bs-secondary-border-subtle: rgb(222.2, 225.4, 228.6); + --bs-success-border-subtle: rgb(153, 228.2, 209); + --bs-info-border-subtle: rgb(173.8, 213.8, 240.6); + --bs-warning-border-subtle: rgb(250.2, 215.4, 160.2); + --bs-danger-border-subtle: rgb(245.4, 183.4, 177); --bs-light-border-subtle: #ebebeb; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -97,7 +97,7 @@ --bs-link-color: #00bc8c; --bs-link-color-rgb: 0, 188, 140; --bs-link-decoration: none; - --bs-link-hover-color: #009670; + --bs-link-hover-color: rgb(0, 150.4, 112); --bs-link-hover-color-rgb: 0, 150, 112; --bs-code-color: #d63384; --bs-highlight-color: #dee2e6; @@ -142,44 +142,44 @@ --bs-tertiary-color-rgb: 222, 226, 230; --bs-tertiary-bg: #292929; --bs-tertiary-bg-rgb: 41, 41, 41; - --bs-primary-text-emphasis: #66d7ba; - --bs-secondary-text-emphasis: #ced3d7; - --bs-success-text-emphasis: #66d7ba; - --bs-info-text-emphasis: #85c1e9; - --bs-warning-text-emphasis: #f8c471; - --bs-danger-text-emphasis: #f1948a; + --bs-primary-text-emphasis: rgb(102, 214.8, 186); + --bs-secondary-text-emphasis: rgb(205.8, 210.6, 215.4); + --bs-success-text-emphasis: rgb(102, 214.8, 186); + --bs-info-text-emphasis: rgb(133.2, 193.2, 233.4); + --bs-warning-text-emphasis: rgb(247.8, 195.6, 112.8); + --bs-danger-text-emphasis: rgb(240.6, 147.6, 138); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #00261c; - --bs-secondary-bg-subtle: #232426; - --bs-success-bg-subtle: #00261c; - --bs-info-bg-subtle: #0a1e2c; - --bs-warning-bg-subtle: #311f04; - --bs-danger-bg-subtle: #2e0f0c; + --bs-primary-bg-subtle: rgb(0, 37.6, 28); + --bs-secondary-bg-subtle: rgb(34.6, 36.2, 37.8); + --bs-success-bg-subtle: rgb(0, 37.6, 28); + --bs-info-bg-subtle: rgb(10.4, 30.4, 43.8); + --bs-warning-bg-subtle: rgb(48.6, 31.2, 3.6); + --bs-danger-bg-subtle: rgb(46.2, 15.2, 12); --bs-light-bg-subtle: #303030; --bs-dark-bg-subtle: #181818; - --bs-primary-border-subtle: #007154; - --bs-secondary-border-subtle: #686d71; - --bs-success-border-subtle: #007154; - --bs-info-border-subtle: #1f5b83; - --bs-warning-border-subtle: #925e0b; - --bs-danger-border-subtle: #8b2e24; + --bs-primary-border-subtle: rgb(0, 112.8, 84); + --bs-secondary-border-subtle: rgb(103.8, 108.6, 113.4); + --bs-success-border-subtle: rgb(0, 112.8, 84); + --bs-info-border-subtle: rgb(31.2, 91.2, 131.4); + --bs-warning-border-subtle: rgb(145.8, 93.6, 10.8); + --bs-danger-border-subtle: rgb(138.6, 45.6, 36); --bs-light-border-subtle: #444; --bs-dark-border-subtle: #303030; --bs-heading-color: inherit; - --bs-link-color: #66d7ba; - --bs-link-hover-color: #85dfc8; + --bs-link-color: rgb(102, 214.8, 186); + --bs-link-hover-color: rgb(132.6, 222.84, 199.8); --bs-link-color-rgb: 102, 215, 186; --bs-link-hover-color-rgb: 133, 223, 200; - --bs-code-color: #e685b5; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; --bs-highlight-bg: #333; --bs-border-color: #444; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66d7ba; - --bs-form-valid-border-color: #66d7ba; - --bs-form-invalid-color: #f1948a; - --bs-form-invalid-border-color: #f1948a; + --bs-form-valid-color: rgb(102, 214.8, 186); + --bs-form-valid-border-color: rgb(102, 214.8, 186); + --bs-form-invalid-color: rgb(240.6, 147.6, 138); + --bs-form-invalid-border-color: rgb(240.6, 147.6, 138); } *, @@ -1935,13 +1935,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1949,13 +1949,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #eff0f2; - --bs-table-border-color: #bfc0c2; - --bs-table-striped-bg: #e3e4e6; + --bs-table-bg: rgb(238.6, 240.2, 241.8); + --bs-table-border-color: rgb(190.88, 192.16, 193.44); + --bs-table-striped-bg: rgb(226.67, 228.19, 229.71); --bs-table-striped-color: #000; - --bs-table-active-bg: #d7d8da; + --bs-table-active-bg: rgb(214.74, 216.18, 217.62); --bs-table-active-color: #000; - --bs-table-hover-bg: #dddee0; + --bs-table-hover-bg: rgb(220.705, 222.185, 223.665); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1963,13 +1963,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #ccf2e8; - --bs-table-border-color: #a3c2ba; - --bs-table-striped-bg: #c2e6dc; + --bs-table-bg: rgb(204, 241.6, 232); + --bs-table-border-color: rgb(163.2, 193.28, 185.6); + --bs-table-striped-bg: rgb(193.8, 229.52, 220.4); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dad1; + --bs-table-active-bg: rgb(183.6, 217.44, 208.8); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde0d7; + --bs-table-hover-bg: rgb(188.7, 223.48, 214.6); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1977,13 +1977,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #d6eaf8; - --bs-table-border-color: #abbbc6; - --bs-table-striped-bg: #cbdeec; + --bs-table-bg: rgb(214.4, 234.4, 247.8); + --bs-table-border-color: rgb(171.52, 187.52, 198.24); + --bs-table-striped-bg: rgb(203.68, 222.68, 235.41); --bs-table-striped-color: #000; - --bs-table-active-bg: #c1d3df; + --bs-table-active-bg: rgb(192.96, 210.96, 223.02); --bs-table-active-color: #000; - --bs-table-hover-bg: #c6d8e5; + --bs-table-hover-bg: rgb(198.32, 216.82, 229.215); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1991,13 +1991,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fdebd0; - --bs-table-border-color: #cabca6; - --bs-table-striped-bg: #f0dfc6; + --bs-table-bg: rgb(252.6, 235.2, 207.6); + --bs-table-border-color: rgb(202.08, 188.16, 166.08); + --bs-table-striped-bg: rgb(239.97, 223.44, 197.22); --bs-table-striped-color: #000; - --bs-table-active-bg: #e4d4bb; + --bs-table-active-bg: rgb(227.34, 211.68, 186.84); --bs-table-active-color: #000; - --bs-table-hover-bg: #ead9c0; + --bs-table-hover-bg: rgb(233.655, 217.56, 192.03); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2005,13 +2005,13 @@ progress { .table-danger { --bs-table-color: #000; - --bs-table-bg: #fadbd8; - --bs-table-border-color: #c8afad; - --bs-table-striped-bg: #eed0cd; + --bs-table-bg: rgb(250.2, 219.2, 216); + --bs-table-border-color: rgb(200.16, 175.36, 172.8); + --bs-table-striped-bg: rgb(237.69, 208.24, 205.2); --bs-table-striped-color: #000; - --bs-table-active-bg: #e1c5c2; + --bs-table-active-bg: rgb(225.18, 197.28, 194.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #e7cbc8; + --bs-table-hover-bg: rgb(231.435, 202.76, 199.8); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2020,12 +2020,12 @@ progress { .table-light { --bs-table-color: #fff; --bs-table-bg: #303030; - --bs-table-border-color: #595959; - --bs-table-striped-bg: #3a3a3a; + --bs-table-border-color: rgb(89.4, 89.4, 89.4); + --bs-table-striped-bg: rgb(58.35, 58.35, 58.35); --bs-table-striped-color: #fff; - --bs-table-active-bg: #454545; + --bs-table-active-bg: rgb(68.7, 68.7, 68.7); --bs-table-active-color: #fff; - --bs-table-hover-bg: #404040; + --bs-table-hover-bg: rgb(63.525, 63.525, 63.525); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2034,12 +2034,12 @@ progress { .table-dark { --bs-table-color: #000; --bs-table-bg: #dee2e6; - --bs-table-border-color: #b2b5b8; - --bs-table-striped-bg: #d3d7db; + --bs-table-border-color: rgb(177.6, 180.8, 184); + --bs-table-striped-bg: rgb(210.9, 214.7, 218.5); --bs-table-striped-color: #000; - --bs-table-active-bg: #c8cbcf; + --bs-table-active-bg: rgb(199.8, 203.4, 207); --bs-table-active-color: #000; - --bs-table-hover-bg: #cdd1d5; + --bs-table-hover-bg: rgb(205.35, 209.05, 212.75); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2139,7 +2139,7 @@ progress { .form-control:focus { color: #fff; background-color: #444; - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2157,7 +2157,7 @@ progress { opacity: 1; } .form-control:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); opacity: 1; } .form-control::file-selector-button { @@ -2284,7 +2284,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2293,7 +2293,7 @@ textarea.form-control-lg { background-image: none; } .form-select:disabled { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .form-select:-moz-focusring { color: transparent; @@ -2368,7 +2368,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #80dec6; + border-color: rgb(127.5, 221.5, 197.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); } @@ -2415,7 +2415,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380dec6'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28127.5, 221.5, 197.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2485,7 +2485,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2511,7 +2511,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #b3ebdd; + background-color: rgb(178.5, 234.9, 220.5); } .form-range::-moz-range-track { width: 100%; @@ -2618,7 +2618,7 @@ textarea.form-control-lg { } .form-floating > :disabled ~ label::after, .form-floating > .form-control:disabled ~ label::after { - background-color: #2b2b2b; + background-color: rgb(42.5, 42.5, 42.5); } .input-group { @@ -2975,12 +2975,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -2992,12 +2992,12 @@ textarea.form-control-lg { --bs-btn-bg: #adb5bd; --bs-btn-border-color: #adb5bd; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b9c0c7; - --bs-btn-hover-border-color: #b5bcc4; + --bs-btn-hover-bg: rgb(185.3, 192.1, 198.9); + --bs-btn-hover-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-focus-shadow-rgb: 147, 154, 161; --bs-btn-active-color: #000; - --bs-btn-active-bg: #bdc4ca; - --bs-btn-active-border-color: #b5bcc4; + --bs-btn-active-bg: rgb(189.4, 195.8, 202.2); + --bs-btn-active-border-color: rgb(181.2, 188.4, 195.6); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #adb5bd; @@ -3009,12 +3009,12 @@ textarea.form-control-lg { --bs-btn-bg: #00bc8c; --bs-btn-border-color: #00bc8c; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #26c69d; - --bs-btn-hover-border-color: #1ac398; + --bs-btn-hover-bg: rgb(38.25, 198.05, 157.25); + --bs-btn-hover-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-focus-shadow-rgb: 0, 160, 119; --bs-btn-active-color: #000; - --bs-btn-active-bg: #33c9a3; - --bs-btn-active-border-color: #1ac398; + --bs-btn-active-bg: rgb(51, 201.4, 163); + --bs-btn-active-border-color: rgb(25.5, 194.7, 151.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #00bc8c; @@ -3026,12 +3026,12 @@ textarea.form-control-lg { --bs-btn-bg: #3498db; --bs-btn-border-color: #3498db; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #2c81ba; - --bs-btn-hover-border-color: #2a7aaf; + --bs-btn-hover-bg: rgb(44.2, 129.2, 186.15); + --bs-btn-hover-border-color: rgb(41.6, 121.6, 175.2); --bs-btn-focus-shadow-rgb: 82, 167, 224; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #2a7aaf; - --bs-btn-active-border-color: #2772a4; + --bs-btn-active-bg: rgb(41.6, 121.6, 175.2); + --bs-btn-active-border-color: rgb(39, 114, 164.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #3498db; @@ -3043,12 +3043,12 @@ textarea.form-control-lg { --bs-btn-bg: #f39c12; --bs-btn-border-color: #f39c12; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f5ab36; - --bs-btn-hover-border-color: #f4a62a; + --bs-btn-hover-bg: rgb(244.8, 170.85, 53.55); + --bs-btn-hover-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-focus-shadow-rgb: 207, 133, 15; --bs-btn-active-color: #000; - --bs-btn-active-bg: #f5b041; - --bs-btn-active-border-color: #f4a62a; + --bs-btn-active-bg: rgb(245.4, 175.8, 65.4); + --bs-btn-active-border-color: rgb(244.2, 165.9, 41.7); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #f39c12; @@ -3060,12 +3060,12 @@ textarea.form-control-lg { --bs-btn-bg: #e74c3c; --bs-btn-border-color: #e74c3c; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #c44133; - --bs-btn-hover-border-color: #b93d30; + --bs-btn-hover-bg: rgb(196.35, 64.6, 51); + --bs-btn-hover-border-color: rgb(184.8, 60.8, 48); --bs-btn-focus-shadow-rgb: 235, 103, 89; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #b93d30; - --bs-btn-active-border-color: #ad392d; + --bs-btn-active-bg: rgb(184.8, 60.8, 48); + --bs-btn-active-border-color: rgb(173.25, 57, 45); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #e74c3c; @@ -3077,11 +3077,11 @@ textarea.form-control-lg { --bs-btn-bg: #303030; --bs-btn-border-color: #303030; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #292929; - --bs-btn-hover-border-color: #262626; + --bs-btn-hover-bg: rgb(40.8, 40.8, 40.8); + --bs-btn-hover-border-color: rgb(38.4, 38.4, 38.4); --bs-btn-focus-shadow-rgb: 79, 79, 79; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #262626; + --bs-btn-active-bg: rgb(38.4, 38.4, 38.4); --bs-btn-active-border-color: #242424; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; @@ -3094,12 +3094,12 @@ textarea.form-control-lg { --bs-btn-bg: #dee2e6; --bs-btn-border-color: #dee2e6; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #e3e6ea; - --bs-btn-hover-border-color: #e1e5e9; + --bs-btn-hover-bg: rgb(226.95, 230.35, 233.75); + --bs-btn-hover-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-focus-shadow-rgb: 189, 192, 196; --bs-btn-active-color: #000; - --bs-btn-active-bg: #e5e8eb; - --bs-btn-active-border-color: #e1e5e9; + --bs-btn-active-bg: rgb(228.6, 231.8, 235); + --bs-btn-active-border-color: rgb(225.3, 228.9, 232.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #dee2e6; @@ -4494,7 +4494,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23004b38' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%280, 75.2, 56%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4612,8 +4612,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2366d7ba'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28102, 214.8, 186%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -4658,16 +4658,16 @@ textarea.form-control-lg { --bs-pagination-border-color: transparent; --bs-pagination-border-radius: var(--bs-border-radius); --bs-pagination-hover-color: #fff; - --bs-pagination-hover-bg: #00efb2; + --bs-pagination-hover-bg: rgb(0, 239, 177.9787234043); --bs-pagination-hover-border-color: transparent; --bs-pagination-focus-color: var(--bs-link-hover-color); --bs-pagination-focus-bg: var(--bs-secondary-bg); --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25); --bs-pagination-active-color: #fff; - --bs-pagination-active-bg: #00efb2; + --bs-pagination-active-bg: rgb(0, 239, 177.9787234043); --bs-pagination-active-border-color: transparent; --bs-pagination-disabled-color: #fff; - --bs-pagination-disabled-bg: #007053; + --bs-pagination-disabled-bg: rgb(0, 111.5, 83.0319148936); --bs-pagination-disabled-border-color: transparent; display: flex; padding-left: 0; diff --git a/src/assets/css/themes/i386-dark.css b/src/assets/css/themes/i386-dark.css new file mode 100644 index 00000000..4b15d01c --- /dev/null +++ b/src/assets/css/themes/i386-dark.css @@ -0,0 +1,11582 @@ +@charset "UTF-8"; +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root, +[data-bs-theme=light] { + --bs-blue: #5555ff; + --bs-indigo: #ff55ff; + --bs-purple: #fe5454; + --bs-pink: #fe54fe; + --bs-red: #ff5555; + --bs-orange: #a85400; + --bs-yellow: #fefe54; + --bs-green: #55ff55; + --bs-teal: #20c997; + --bs-cyan: #55ffff; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #303030; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #ebebeb; + --bs-gray-300: #bbb; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #303030; + --bs-gray-900: #222; + --bs-primary: #fefe54; + --bs-secondary: #222; + --bs-success: #00aa00; + --bs-info: #00aaaa; + --bs-warning: #aa00aa; + --bs-danger: #aa0000; + --bs-light: #303030; + --bs-dark: #bbb; + --bs-primary-rgb: 254, 254, 84; + --bs-secondary-rgb: 34, 34, 34; + --bs-success-rgb: 0, 170, 0; + --bs-info-rgb: 0, 170, 170; + --bs-warning-rgb: 170, 0, 170; + --bs-danger-rgb: 170, 0, 0; + --bs-light-rgb: 48, 48, 48; + --bs-dark-rgb: 187, 187, 187; + --bs-primary-text-emphasis: rgb(101.6, 101.6, 33.6); + --bs-secondary-text-emphasis: rgb(13.6, 13.6, 13.6); + --bs-success-text-emphasis: #004400; + --bs-info-text-emphasis: #004444; + --bs-warning-text-emphasis: #440044; + --bs-danger-text-emphasis: #440000; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: rgb(254.8, 254.8, 220.8); + --bs-secondary-bg-subtle: rgb(210.8, 210.8, 210.8); + --bs-success-bg-subtle: #cceecc; + --bs-info-bg-subtle: #cceeee; + --bs-warning-bg-subtle: #eeccee; + --bs-danger-bg-subtle: #eecccc; + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: rgb(254.6, 254.6, 186.6); + --bs-secondary-border-subtle: rgb(166.6, 166.6, 166.6); + --bs-success-border-subtle: #99dd99; + --bs-info-border-subtle: #99dddd; + --bs-warning-border-subtle: #dd99dd; + --bs-danger-border-subtle: #dd9999; + --bs-light-border-subtle: #ebebeb; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + --bs-font-monospace: DOS, Monaco, Menlo, Consolas, "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-root-font-size: 100%; + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #bbb; + --bs-body-color-rgb: 187, 187, 187; + --bs-body-bg: #000084; + --bs-body-bg-rgb: 0, 0, 132; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(187, 187, 187, 0.75); + --bs-secondary-color-rgb: 187, 187, 187; + --bs-secondary-bg: #ebebeb; + --bs-secondary-bg-rgb: 235, 235, 235; + --bs-tertiary-color: rgba(187, 187, 187, 0.5); + --bs-tertiary-color-rgb: 187, 187, 187; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #fefe54; + --bs-link-color-rgb: 254, 254, 84; + --bs-link-decoration: none; + --bs-link-hover-color: #fff; + --bs-link-hover-color-rgb: 255, 255, 255; + --bs-code-color: #fe54fe; + --bs-highlight-color: #bbb; + --bs-highlight-bg: #463b00; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #bbb; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(254, 254, 84, 0.25); + --bs-form-valid-color: #00aa00; + --bs-form-valid-border-color: #00aa00; + --bs-form-invalid-color: #aa0000; + --bs-form-invalid-border-color: #aa0000; +} + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #bbb; + --bs-body-color-rgb: 187, 187, 187; + --bs-body-bg: #222; + --bs-body-bg-rgb: 34, 34, 34; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(187, 187, 187, 0.75); + --bs-secondary-color-rgb: 187, 187, 187; + --bs-secondary-bg: #303030; + --bs-secondary-bg-rgb: 48, 48, 48; + --bs-tertiary-color: rgba(187, 187, 187, 0.5); + --bs-tertiary-color-rgb: 187, 187, 187; + --bs-tertiary-bg: #292929; + --bs-tertiary-bg-rgb: 41, 41, 41; + --bs-primary-text-emphasis: rgb(254.4, 254.4, 152.4); + --bs-secondary-text-emphasis: rgb(122.4, 122.4, 122.4); + --bs-success-text-emphasis: #66cc66; + --bs-info-text-emphasis: #66cccc; + --bs-warning-text-emphasis: #cc66cc; + --bs-danger-text-emphasis: #cc6666; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #bbb; + --bs-primary-bg-subtle: rgb(50.8, 50.8, 16.8); + --bs-secondary-bg-subtle: rgb(6.8, 6.8, 6.8); + --bs-success-bg-subtle: #002200; + --bs-info-bg-subtle: #002222; + --bs-warning-bg-subtle: #220022; + --bs-danger-bg-subtle: #220000; + --bs-light-bg-subtle: #303030; + --bs-dark-bg-subtle: #181818; + --bs-primary-border-subtle: rgb(152.4, 152.4, 50.4); + --bs-secondary-border-subtle: rgb(20.4, 20.4, 20.4); + --bs-success-border-subtle: #006600; + --bs-info-border-subtle: #006666; + --bs-warning-border-subtle: #660066; + --bs-danger-border-subtle: #660000; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #303030; + --bs-heading-color: inherit; + --bs-link-color: rgb(254.4, 254.4, 152.4); + --bs-link-hover-color: rgb(254.52, 254.52, 172.92); + --bs-link-color-rgb: 254, 254, 152; + --bs-link-hover-color-rgb: 255, 255, 173; + --bs-code-color: rgb(254.4, 152.4, 254.4); + --bs-highlight-color: #bbb; + --bs-highlight-bg: #463b00; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #99ff99; + --bs-form-valid-border-color: #99ff99; + --bs-form-invalid-color: #ff9999; + --bs-form-invalid-border-color: #ff9999; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +:root { + font-size: var(--bs-root-font-size); +} +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); +} + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; + } +} + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; + } +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title] { + text-decoration: underline dotted; + cursor: help; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: none; +} +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); +} +kbd kbd { + padding: 0; + font-size: 1em; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: var(--bs-border-width) 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 var(--bs-border-width); +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: rgb(254.8, 254.8, 220.8); + --bs-table-border-color: rgb(203.84, 203.84, 176.64); + --bs-table-striped-bg: rgb(242.06, 242.06, 209.76); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(229.32, 229.32, 198.72); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(235.69, 235.69, 204.24); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: rgb(210.8, 210.8, 210.8); + --bs-table-border-color: rgb(168.64, 168.64, 168.64); + --bs-table-striped-bg: rgb(200.26, 200.26, 200.26); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(189.72, 189.72, 189.72); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(194.99, 194.99, 194.99); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #cceecc; + --bs-table-border-color: rgb(163.2, 190.4, 163.2); + --bs-table-striped-bg: rgb(193.8, 226.1, 193.8); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(183.6, 214.2, 183.6); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(188.7, 220.15, 188.7); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cceeee; + --bs-table-border-color: rgb(163.2, 190.4, 190.4); + --bs-table-striped-bg: rgb(193.8, 226.1, 226.1); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(183.6, 214.2, 214.2); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(188.7, 220.15, 220.15); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #eeccee; + --bs-table-border-color: rgb(190.4, 163.2, 190.4); + --bs-table-striped-bg: rgb(226.1, 193.8, 226.1); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(214.2, 183.6, 214.2); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(220.15, 188.7, 220.15); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #eecccc; + --bs-table-border-color: rgb(190.4, 163.2, 163.2); + --bs-table-striped-bg: rgb(226.1, 193.8, 193.8); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(214.2, 183.6, 183.6); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(220.15, 188.7, 188.7); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-light { + --bs-table-color: #fff; + --bs-table-bg: #303030; + --bs-table-border-color: rgb(89.4, 89.4, 89.4); + --bs-table-striped-bg: rgb(58.35, 58.35, 58.35); + --bs-table-striped-color: #fff; + --bs-table-active-bg: rgb(68.7, 68.7, 68.7); + --bs-table-active-color: #fff; + --bs-table-hover-bg: rgb(63.525, 63.525, 63.525); + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-dark { + --bs-table-color: #000; + --bs-table-bg: #bbb; + --bs-table-border-color: rgb(149.6, 149.6, 149.6); + --bs-table-striped-bg: rgb(177.65, 177.65, 177.65); + --bs-table-striped-color: #000; + --bs-table-active-bg: rgb(168.3, 168.3, 168.3); + --bs-table-active-color: #000; + --bs-table-hover-bg: rgb(172.975, 172.975, 172.975); + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + appearance: none; + background-color: rgb(102, 102, 102); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: 0; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: #fff; + background-color: rgb(102, 102, 102); + border-color: rgb(254.5, 254.5, 169.5); + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; +} +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; +} +.form-control::placeholder { + color: #adb5bd; + opacity: 1; +} +.form-control:disabled { + background-color: #303030; + opacity: 1; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + margin-inline-end: 0.75rem; + color: #fff; + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + border: 0 !important; +} +.form-control-color::-webkit-color-swatch { + border: 0 !important; +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23303030' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + appearance: none; + background-color: rgb(102, 102, 102); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: 0; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: rgb(254.5, 254.5, 169.5); + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: #303030; +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #fff; +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +[data-bs-theme=dark] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23bbb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.form-check-input { + --bs-form-check-bg: rgb(102, 102, 102); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + print-color-adjust: exact; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: rgb(254.5, 254.5, 169.5); + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.form-check-input:checked { + background-color: #fefe54; + border-color: #fefe54; +} +.form-check-input:checked[type=checkbox] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #fefe54; + border-color: #fefe54; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 0; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28254.5, 254.5, 169.5%29'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + appearance: none; + background-color: transparent; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #000084, 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #000084, 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + appearance: none; + background-color: #fefe54; + border: 0; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: rgb(254.7, 254.7, 203.7); +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + appearance: none; + background-color: #fefe54; + border: 0; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: rgb(254.7, 254.7, 203.7); +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color); +} +.form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color); +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext, +.form-floating > .form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + z-index: 2; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label::after, +.form-floating > .form-control:not(:placeholder-shown) ~ label::after, +.form-floating > .form-control-plaintext ~ label::after, +.form-floating > .form-select ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: rgb(102, 102, 102); +} +.form-floating > .form-control:-webkit-autofill ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; +} +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; +} +.form-floating > :disabled ~ label::after, +.form-floating > .form-control:disabled ~ label::after { + background-color: #303030; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} + +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(var(--bs-border-width) * -1); +} +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300aa00' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300aa00' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23aa0000'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23aa0000' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23aa0000'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23aa0000' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked:focus-visible + .btn { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.btn-primary { + --bs-btn-color: #000; + --bs-btn-bg: #fefe54; + --bs-btn-border-color: #fefe54; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: rgb(254.15, 254.15, 109.65); + --bs-btn-hover-border-color: rgb(254.1, 254.1, 101.1); + --bs-btn-focus-shadow-rgb: 216, 216, 71; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(254.2, 254.2, 118.2); + --bs-btn-active-border-color: rgb(254.1, 254.1, 101.1); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #fefe54; + --bs-btn-disabled-border-color: #fefe54; +} + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #222; + --bs-btn-border-color: #222; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(28.9, 28.9, 28.9); + --bs-btn-hover-border-color: rgb(27.2, 27.2, 27.2); + --bs-btn-focus-shadow-rgb: 67, 67, 67; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(27.2, 27.2, 27.2); + --bs-btn-active-border-color: rgb(25.5, 25.5, 25.5); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #222; + --bs-btn-disabled-border-color: #222; +} + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #00aa00; + --bs-btn-border-color: #00aa00; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(0, 144.5, 0); + --bs-btn-hover-border-color: #008800; + --bs-btn-focus-shadow-rgb: 38, 183, 38; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #008800; + --bs-btn-active-border-color: rgb(0, 127.5, 0); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #00aa00; + --bs-btn-disabled-border-color: #00aa00; +} + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #00aaaa; + --bs-btn-border-color: #00aaaa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: rgb(38.25, 182.75, 182.75); + --bs-btn-hover-border-color: rgb(25.5, 178.5, 178.5); + --bs-btn-focus-shadow-rgb: 0, 145, 145; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #33bbbb; + --bs-btn-active-border-color: rgb(25.5, 178.5, 178.5); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #00aaaa; + --bs-btn-disabled-border-color: #00aaaa; +} + +.btn-warning { + --bs-btn-color: #fff; + --bs-btn-bg: #aa00aa; + --bs-btn-border-color: #aa00aa; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(144.5, 0, 144.5); + --bs-btn-hover-border-color: #880088; + --bs-btn-focus-shadow-rgb: 183, 38, 183; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #880088; + --bs-btn-active-border-color: rgb(127.5, 0, 127.5); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #aa00aa; + --bs-btn-disabled-border-color: #aa00aa; +} + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #aa0000; + --bs-btn-border-color: #aa0000; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(144.5, 0, 0); + --bs-btn-hover-border-color: #880000; + --bs-btn-focus-shadow-rgb: 183, 38, 38; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #880000; + --bs-btn-active-border-color: rgb(127.5, 0, 0); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #aa0000; + --bs-btn-disabled-border-color: #aa0000; +} + +.btn-light { + --bs-btn-color: #fff; + --bs-btn-bg: #303030; + --bs-btn-border-color: #303030; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: rgb(40.8, 40.8, 40.8); + --bs-btn-hover-border-color: rgb(38.4, 38.4, 38.4); + --bs-btn-focus-shadow-rgb: 79, 79, 79; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: rgb(38.4, 38.4, 38.4); + --bs-btn-active-border-color: #242424; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #303030; + --bs-btn-disabled-border-color: #303030; +} + +.btn-dark { + --bs-btn-color: #000; + --bs-btn-bg: #bbb; + --bs-btn-border-color: #bbb; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: rgb(197.2, 197.2, 197.2); + --bs-btn-hover-border-color: rgb(193.8, 193.8, 193.8); + --bs-btn-focus-shadow-rgb: 159, 159, 159; + --bs-btn-active-color: #000; + --bs-btn-active-bg: rgb(200.6, 200.6, 200.6); + --bs-btn-active-border-color: rgb(193.8, 193.8, 193.8); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #bbb; + --bs-btn-disabled-border-color: #bbb; +} + +.btn-outline-primary { + --bs-btn-color: #fefe54; + --bs-btn-border-color: #fefe54; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #fefe54; + --bs-btn-hover-border-color: #fefe54; + --bs-btn-focus-shadow-rgb: 254, 254, 84; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #fefe54; + --bs-btn-active-border-color: #fefe54; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fefe54; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #fefe54; + --bs-gradient: none; +} + +.btn-outline-secondary { + --bs-btn-color: #222; + --bs-btn-border-color: #222; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #222; + --bs-btn-hover-border-color: #222; + --bs-btn-focus-shadow-rgb: 34, 34, 34; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #222; + --bs-btn-active-border-color: #222; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #222; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #222; + --bs-gradient: none; +} + +.btn-outline-success { + --bs-btn-color: #00aa00; + --bs-btn-border-color: #00aa00; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #00aa00; + --bs-btn-hover-border-color: #00aa00; + --bs-btn-focus-shadow-rgb: 0, 170, 0; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #00aa00; + --bs-btn-active-border-color: #00aa00; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #00aa00; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #00aa00; + --bs-gradient: none; +} + +.btn-outline-info { + --bs-btn-color: #00aaaa; + --bs-btn-border-color: #00aaaa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #00aaaa; + --bs-btn-hover-border-color: #00aaaa; + --bs-btn-focus-shadow-rgb: 0, 170, 170; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #00aaaa; + --bs-btn-active-border-color: #00aaaa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #00aaaa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #00aaaa; + --bs-gradient: none; +} + +.btn-outline-warning { + --bs-btn-color: #aa00aa; + --bs-btn-border-color: #aa00aa; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #aa00aa; + --bs-btn-hover-border-color: #aa00aa; + --bs-btn-focus-shadow-rgb: 170, 0, 170; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #aa00aa; + --bs-btn-active-border-color: #aa00aa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #aa00aa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #aa00aa; + --bs-gradient: none; +} + +.btn-outline-danger { + --bs-btn-color: #aa0000; + --bs-btn-border-color: #aa0000; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #aa0000; + --bs-btn-hover-border-color: #aa0000; + --bs-btn-focus-shadow-rgb: 170, 0, 0; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #aa0000; + --bs-btn-active-border-color: #aa0000; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #aa0000; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #aa0000; + --bs-gradient: none; +} + +.btn-outline-light { + --bs-btn-color: #303030; + --bs-btn-border-color: #303030; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #303030; + --bs-btn-hover-border-color: #303030; + --bs-btn-focus-shadow-rgb: 48, 48, 48; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #303030; + --bs-btn-active-border-color: #303030; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #303030; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #303030; + --bs-gradient: none; +} + +.btn-outline-dark { + --bs-btn-color: #bbb; + --bs-btn-border-color: #bbb; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #bbb; + --bs-btn-hover-border-color: #bbb; + --bs-btn-focus-shadow-rgb: 187, 187, 187; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #bbb; + --bs-btn-active-border-color: #bbb; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #bbb; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #bbb; + --bs-gradient: none; +} + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 216, 216, 71; + text-decoration: none; +} +.btn-link:focus-visible { + color: var(--bs-btn-color); +} +.btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg); +} + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm); +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #fefe54; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.dropdown-menu-dark { + --bs-dropdown-color: #bbb; + --bs-dropdown-bg: #303030; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #bbb; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #fefe54; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: calc(var(--bs-border-width) * -1); +} +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(var(--bs-border-width) * -1); +} +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); +} +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: #f8f9fa; + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #fefe54; +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); +} +.nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; +} +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: #bbb; + --bs-navbar-hover-color: #ebebeb; + --bs-navbar-disabled-color: #303030; + --bs-navbar-active-color: #f8f9fa; + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: #bbb; + --bs-navbar-brand-hover-color: #f8f9fa; + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28187, 187, 187, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + white-space: nowrap; +} +.navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link.active, .navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color); +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + transition: var(--bs-navbar-toggler-transition); +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { + display: none; +} +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-dark, +.navbar[data-bs-theme=dark] { + --bs-navbar-color: #bbb; + --bs-navbar-hover-color: rgba(187, 187, 187, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #f8f9fa; + --bs-navbar-brand-color: #f8f9fa; + --bs-navbar-brand-hover-color: #f8f9fa; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23bbb' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +[data-bs-theme=dark] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23bbb' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: #fff; + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: #303030; + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; +} +.card > .list-group:last-child { + border-bottom-width: 0; +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color); +} + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; + color: var(--bs-card-subtitle-color); +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } +} + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23bbb' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%28101.6, 101.6, 33.6%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle); +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.accordion-flush > .accordion-item { + border-right: 0; + border-left: 0; +} +.accordion-flush > .accordion-item:first-child { + border-top: 0; +} +.accordion-flush > .accordion-item:last-child { + border-bottom: 0; +} +[data-bs-theme=dark] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28254.4, 254.4, 152.4%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28254.4, 254.4, 152.4%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #fefe54; + --bs-pagination-active-border-color: #fefe54; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); +} +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg); +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm); +} + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color); +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis); +} + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis); +} + +.alert-success { + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis); +} + +.alert-info { + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis); +} + +.alert-warning { + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis); +} + +.alert-danger { + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis); +} + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis); +} + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis); +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #fefe54; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.progress-stacked > .progress { + overflow: visible; +} + +.progress-stacked > .progress > .progress-bar { + width: 100%; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #fefe54; + --bs-list-group-active-border-color: #fefe54; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} +.list-group-item.disabled, .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} +.list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +.list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); +} + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); +} + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis); +} + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis); +} + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); +} + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); +} + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis); +} + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); +} + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + border: 0; + opacity: var(--bs-btn-close-opacity); +} +.btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity); +} +.btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity); +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity); +} + +.btn-close-white { + filter: var(--bs-btn-close-white-filter); +} + +[data-bs-theme=dark] .btn-close { + filter: var(--bs-btn-close-white-filter); +} + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); +} +.toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + outline: 0; +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: var(--bs-tooltip-opacity); +} +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); +} + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +[data-bs-theme=dark] .carousel .carousel-control-prev-icon, +[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon, +[data-bs-theme=dark].carousel .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] { + background-color: #000; +} +[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5; +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto; +} + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height); +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; +} + +@keyframes placeholder-wave { + 100% { + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.text-bg-primary { + color: #000 !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #fff !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #fff !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #000 !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(254, 254, 118, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(254, 254, 118, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(27, 27, 27, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(27, 27, 27, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(0, 136, 0, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(0, 136, 0, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(51, 187, 187, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(51, 187, 187, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(136, 0, 136, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(136, 0, 136, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(136, 0, 0, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(136, 0, 0, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(38, 38, 38, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(38, 38, 38, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(201, 201, 201, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(201, 201, 201, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} +.visually-hidden:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { + float: left !important; +} + +.float-end { + float: right !important; +} + +.float-none { + float: none !important; +} + +.object-fit-contain { + object-fit: contain !important; +} + +.object-fit-cover { + object-fit: cover !important; +} + +.object-fit-fill { + object-fit: fill !important; +} + +.object-fit-scale { + object-fit: scale-down !important; +} + +.object-fit-none { + object-fit: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !important; +} + +.opacity-100 { + opacity: 1 !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.overflow-x-auto { + overflow-x: auto !important; +} + +.overflow-x-hidden { + overflow-x: hidden !important; +} + +.overflow-x-visible { + overflow-x: visible !important; +} + +.overflow-x-scroll { + overflow-x: scroll !important; +} + +.overflow-y-auto { + overflow-y: auto !important; +} + +.overflow-y-hidden { + overflow-y: hidden !important; +} + +.overflow-y-visible { + overflow-y: visible !important; +} + +.overflow-y-scroll { + overflow-y: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + box-shadow: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; +} + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important; +} + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important; +} + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important; +} + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important; +} + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important; +} + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important; +} + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important; +} + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important; +} + +.border-1 { + border-width: 1px !important; +} + +.border-2 { + border-width: 2px !important; +} + +.border-3 { + border-width: 3px !important; +} + +.border-4 { + border-width: 4px !important; +} + +.border-5 { + border-width: 5px !important; +} + +.border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.border-opacity-100 { + --bs-border-opacity: 1; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.row-gap-0 { + row-gap: 0 !important; +} + +.row-gap-1 { + row-gap: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.5rem !important; +} + +.row-gap-3 { + row-gap: 1rem !important; +} + +.row-gap-4 { + row-gap: 1.5rem !important; +} + +.row-gap-5 { + row-gap: 3rem !important; +} + +.column-gap-0 { + column-gap: 0 !important; +} + +.column-gap-1 { + column-gap: 0.25rem !important; +} + +.column-gap-2 { + column-gap: 0.5rem !important; +} + +.column-gap-3 { + column-gap: 1rem !important; +} + +.column-gap-4 { + column-gap: 1.5rem !important; +} + +.column-gap-5 { + column-gap: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-medium { + font-weight: 500 !important; +} + +.fw-semibold { + font-weight: 600 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important; +} + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important; +} + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important; +} + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important; +} + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important; +} + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important; +} + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important; +} + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important; +} + +.link-opacity-10 { + --bs-link-opacity: 0.1; +} + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1; +} + +.link-opacity-25 { + --bs-link-opacity: 0.25; +} + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25; +} + +.link-opacity-50 { + --bs-link-opacity: 0.5; +} + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5; +} + +.link-opacity-75 { + --bs-link-opacity: 0.75; +} + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75; +} + +.link-opacity-100 { + --bs-link-opacity: 1; +} + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1; +} + +.link-offset-1 { + text-underline-offset: 0.125em !important; +} + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important; +} + +.link-offset-2 { + text-underline-offset: 0.25em !important; +} + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important; +} + +.link-offset-3 { + text-underline-offset: 0.375em !important; +} + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important; +} + +.link-underline-primary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1; +} + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important; +} + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important; +} + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important; +} + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important; +} + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important; +} + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important; +} + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important; +} + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + user-select: all !important; +} + +.user-select-auto { + user-select: auto !important; +} + +.user-select-none { + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important; +} + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important; +} + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important; +} + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; +} + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important; +} + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +.z-n1 { + z-index: -1 !important; +} + +.z-0 { + z-index: 0 !important; +} + +.z-1 { + z-index: 1 !important; +} + +.z-2 { + z-index: 2 !important; +} + +.z-3 { + z-index: 3 !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .object-fit-sm-contain { + object-fit: contain !important; + } + .object-fit-sm-cover { + object-fit: cover !important; + } + .object-fit-sm-fill { + object-fit: fill !important; + } + .object-fit-sm-scale { + object-fit: scale-down !important; + } + .object-fit-sm-none { + object-fit: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .row-gap-sm-0 { + row-gap: 0 !important; + } + .row-gap-sm-1 { + row-gap: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.5rem !important; + } + .row-gap-sm-3 { + row-gap: 1rem !important; + } + .row-gap-sm-4 { + row-gap: 1.5rem !important; + } + .row-gap-sm-5 { + row-gap: 3rem !important; + } + .column-gap-sm-0 { + column-gap: 0 !important; + } + .column-gap-sm-1 { + column-gap: 0.25rem !important; + } + .column-gap-sm-2 { + column-gap: 0.5rem !important; + } + .column-gap-sm-3 { + column-gap: 1rem !important; + } + .column-gap-sm-4 { + column-gap: 1.5rem !important; + } + .column-gap-sm-5 { + column-gap: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .object-fit-md-contain { + object-fit: contain !important; + } + .object-fit-md-cover { + object-fit: cover !important; + } + .object-fit-md-fill { + object-fit: fill !important; + } + .object-fit-md-scale { + object-fit: scale-down !important; + } + .object-fit-md-none { + object-fit: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .row-gap-md-0 { + row-gap: 0 !important; + } + .row-gap-md-1 { + row-gap: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.5rem !important; + } + .row-gap-md-3 { + row-gap: 1rem !important; + } + .row-gap-md-4 { + row-gap: 1.5rem !important; + } + .row-gap-md-5 { + row-gap: 3rem !important; + } + .column-gap-md-0 { + column-gap: 0 !important; + } + .column-gap-md-1 { + column-gap: 0.25rem !important; + } + .column-gap-md-2 { + column-gap: 0.5rem !important; + } + .column-gap-md-3 { + column-gap: 1rem !important; + } + .column-gap-md-4 { + column-gap: 1.5rem !important; + } + .column-gap-md-5 { + column-gap: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .object-fit-lg-contain { + object-fit: contain !important; + } + .object-fit-lg-cover { + object-fit: cover !important; + } + .object-fit-lg-fill { + object-fit: fill !important; + } + .object-fit-lg-scale { + object-fit: scale-down !important; + } + .object-fit-lg-none { + object-fit: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .row-gap-lg-0 { + row-gap: 0 !important; + } + .row-gap-lg-1 { + row-gap: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.5rem !important; + } + .row-gap-lg-3 { + row-gap: 1rem !important; + } + .row-gap-lg-4 { + row-gap: 1.5rem !important; + } + .row-gap-lg-5 { + row-gap: 3rem !important; + } + .column-gap-lg-0 { + column-gap: 0 !important; + } + .column-gap-lg-1 { + column-gap: 0.25rem !important; + } + .column-gap-lg-2 { + column-gap: 0.5rem !important; + } + .column-gap-lg-3 { + column-gap: 1rem !important; + } + .column-gap-lg-4 { + column-gap: 1.5rem !important; + } + .column-gap-lg-5 { + column-gap: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .object-fit-xl-contain { + object-fit: contain !important; + } + .object-fit-xl-cover { + object-fit: cover !important; + } + .object-fit-xl-fill { + object-fit: fill !important; + } + .object-fit-xl-scale { + object-fit: scale-down !important; + } + .object-fit-xl-none { + object-fit: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .row-gap-xl-0 { + row-gap: 0 !important; + } + .row-gap-xl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xl-3 { + row-gap: 1rem !important; + } + .row-gap-xl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xl-5 { + row-gap: 3rem !important; + } + .column-gap-xl-0 { + column-gap: 0 !important; + } + .column-gap-xl-1 { + column-gap: 0.25rem !important; + } + .column-gap-xl-2 { + column-gap: 0.5rem !important; + } + .column-gap-xl-3 { + column-gap: 1rem !important; + } + .column-gap-xl-4 { + column-gap: 1.5rem !important; + } + .column-gap-xl-5 { + column-gap: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .object-fit-xxl-contain { + object-fit: contain !important; + } + .object-fit-xxl-cover { + object-fit: cover !important; + } + .object-fit-xxl-fill { + object-fit: fill !important; + } + .object-fit-xxl-scale { + object-fit: scale-down !important; + } + .object-fit-xxl-none { + object-fit: none !important; + } + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .row-gap-xxl-0 { + row-gap: 0 !important; + } + .row-gap-xxl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xxl-3 { + row-gap: 1rem !important; + } + .row-gap-xxl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xxl-5 { + row-gap: 3rem !important; + } + .column-gap-xxl-0 { + column-gap: 0 !important; + } + .column-gap-xxl-1 { + column-gap: 0.25rem !important; + } + .column-gap-xxl-2 { + column-gap: 0.5rem !important; + } + .column-gap-xxl-3 { + column-gap: 1rem !important; + } + .column-gap-xxl-4 { + column-gap: 1.5rem !important; + } + .column-gap-xxl-5 { + column-gap: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} +.btn-outline-secondary { + color: #adb5bd; +} + +.dropdown-item.active, +.dropdown-item:hover, +option:disabled { + color: #222; +} + +.input-group-text { + background: #adb5bd; +} + +/*# sourceMappingURL=i386-dark.css.map */ diff --git a/src/assets/css/themes/i386.scss b/src/assets/css/themes/i386-dark.scss similarity index 88% rename from src/assets/css/themes/i386.scss rename to src/assets/css/themes/i386-dark.scss index 8cf9cc8c..7b10410c 100644 --- a/src/assets/css/themes/i386.scss +++ b/src/assets/css/themes/i386-dark.scss @@ -1,4 +1,4 @@ -@import "variables.i386"; +@import "variables.i386-dark"; @import "../../../../node_modules/bootstrap/scss/bootstrap"; .btn-outline-secondary { diff --git a/src/assets/css/themes/i386.css b/src/assets/css/themes/i386.css index de54fbbe..aea1833f 100644 --- a/src/assets/css/themes/i386.css +++ b/src/assets/css/themes/i386.css @@ -191,12 +191,12 @@ :root { font-size: var(--bs-root-font-size); } + @media (prefers-reduced-motion: no-preference) { :root { scroll-behavior: smooth; } } - body { margin: 0; font-family: var(--bs-body-font-family); @@ -229,39 +229,39 @@ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { h1, .h1 { font-size: calc(1.375rem + 1.5vw); } + @media (min-width: 1200px) { h1, .h1 { font-size: 2.5rem; } } - h2, .h2 { font-size: calc(1.325rem + 0.9vw); } + @media (min-width: 1200px) { h2, .h2 { font-size: 2rem; } } - h3, .h3 { font-size: calc(1.3rem + 0.6vw); } + @media (min-width: 1200px) { h3, .h3 { font-size: 1.75rem; } } - h4, .h4 { font-size: calc(1.275rem + 0.3vw); } + @media (min-width: 1200px) { h4, .h4 { font-size: 1.5rem; } } - h5, .h5 { font-size: 1.25rem; } @@ -354,6 +354,7 @@ a { color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); text-decoration: none; } + a:hover { --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } @@ -378,6 +379,7 @@ pre { overflow: auto; font-size: 0.875em; } + pre code { font-size: inherit; color: inherit; @@ -389,6 +391,7 @@ code { color: var(--bs-code-color); word-wrap: break-word; } + a > code { color: inherit; } @@ -399,6 +402,7 @@ kbd { color: var(--bs-body-bg); background-color: var(--bs-body-color); } + kbd kbd { padding: 0; font-size: 1em; @@ -476,6 +480,7 @@ select { select { word-wrap: normal; } + select:disabled { opacity: 1; } @@ -490,6 +495,7 @@ button, [type=submit] { -webkit-appearance: button; } + button:not(:disabled), [type=button]:not(:disabled), [type=reset]:not(:disabled), @@ -521,6 +527,7 @@ legend { font-size: calc(1.275rem + 0.3vw); line-height: inherit; } + @media (min-width: 1200px) { legend { font-size: 1.5rem; @@ -601,67 +608,67 @@ progress { font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-1 { font-size: 5rem; } } - .display-2 { font-size: calc(1.575rem + 3.9vw); font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-2 { font-size: 4.5rem; } } - .display-3 { font-size: calc(1.525rem + 3.3vw); font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-3 { font-size: 4rem; } } - .display-4 { font-size: calc(1.475rem + 2.7vw); font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-4 { font-size: 3.5rem; } } - .display-5 { font-size: calc(1.425rem + 2.1vw); font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-5 { font-size: 3rem; } } - .display-6 { font-size: calc(1.375rem + 1.5vw); font-weight: 300; line-height: 1.2; } + @media (min-width: 1200px) { .display-6 { font-size: 2.5rem; } } - .list-unstyled { padding-left: 0; list-style: none; @@ -675,6 +682,7 @@ progress { .list-inline-item { display: inline-block; } + .list-inline-item:not(:last-child) { margin-right: 0.5rem; } @@ -688,6 +696,7 @@ progress { margin-bottom: 1rem; font-size: 1.25rem; } + .blockquote > :last-child { margin-bottom: 0; } @@ -698,6 +707,7 @@ progress { font-size: 0.875em; color: #6c757d; } + .blockquote-footer::before { content: "— "; } @@ -788,6 +798,7 @@ progress { margin-right: calc(-0.5 * var(--bs-gutter-x)); margin-left: calc(-0.5 * var(--bs-gutter-x)); } + .row > * { flex-shrink: 0; width: 100%; @@ -1870,6 +1881,7 @@ progress { vertical-align: top; border-color: var(--bs-table-border-color); } + .table > :not(caption) > * > * { padding: 0.5rem 0.5rem; color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); @@ -1877,9 +1889,11 @@ progress { border-bottom-width: var(--bs-border-width); box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); } + .table > tbody { vertical-align: inherit; } + .table > thead { vertical-align: bottom; } @@ -1899,6 +1913,7 @@ progress { .table-bordered > :not(caption) > * { border-width: var(--bs-border-width) 0; } + .table-bordered > :not(caption) > * > * { border-width: 0 var(--bs-border-width); } @@ -1906,6 +1921,7 @@ progress { .table-borderless > :not(caption) > * > * { border-bottom-width: 0; } + .table-borderless > :not(:first-child) { border-top-width: 0; } @@ -2122,6 +2138,7 @@ progress { border-radius: 0; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-control { transition: none; @@ -2130,9 +2147,11 @@ progress { .form-control[type=file] { overflow: hidden; } + .form-control[type=file]:not(:disabled):not([readonly]) { cursor: pointer; } + .form-control:focus { color: #fff; background-color: rgb(102, 102, 102); @@ -2140,23 +2159,28 @@ progress { outline: 0; box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .form-control::-webkit-date-and-time-value { min-width: 85px; height: 1.5em; margin: 0; } + .form-control::-webkit-datetime-edit { display: block; padding: 0; } + .form-control::placeholder { color: #adb5bd; opacity: 1; } + .form-control:disabled { background-color: #303030; opacity: 1; } + .form-control::file-selector-button { padding: 0.375rem 0.75rem; margin: -0.375rem -0.75rem; @@ -2171,6 +2195,7 @@ progress { border-radius: 0; transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-control::file-selector-button { transition: none; @@ -2191,19 +2216,22 @@ progress { border: solid transparent; border-width: var(--bs-border-width) 0; } + .form-control-plaintext:focus { outline: 0; } + .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { padding-right: 0; padding-left: 0; } .form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(1.5em + 0.5rem + var(--bs-border-width) * 2); padding: 0.25rem 0.5rem; font-size: 0.875rem; } + .form-control-sm::file-selector-button { padding: 0.25rem 0.5rem; margin: -0.25rem -0.5rem; @@ -2211,10 +2239,11 @@ progress { } .form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + min-height: calc(1.5em + 1rem + var(--bs-border-width) * 2); padding: 0.5rem 1rem; font-size: 1.25rem; } + .form-control-lg::file-selector-button { padding: 0.5rem 1rem; margin: -0.5rem -1rem; @@ -2222,34 +2251,41 @@ progress { } textarea.form-control { - min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + min-height: calc(1.5em + 0.75rem + var(--bs-border-width) * 2); } + textarea.form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(1.5em + 0.5rem + var(--bs-border-width) * 2); } + textarea.form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + min-height: calc(1.5em + 1rem + var(--bs-border-width) * 2); } .form-control-color { width: 3rem; - height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + height: calc(1.5em + 0.75rem + var(--bs-border-width) * 2); padding: 0.375rem; } + .form-control-color:not(:disabled):not([readonly]) { cursor: pointer; } + .form-control-color::-moz-color-swatch { border: 0 !important; } + .form-control-color::-webkit-color-swatch { border: 0 !important; } + .form-control-color.form-control-sm { - height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + height: calc(1.5em + 0.5rem + var(--bs-border-width) * 2); } + .form-control-color.form-control-lg { - height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + height: calc(1.5em + 1rem + var(--bs-border-width) * 2); } .form-select { @@ -2271,6 +2307,7 @@ textarea.form-control-lg { border-radius: 0; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-select { transition: none; @@ -2281,13 +2318,16 @@ textarea.form-control-lg { outline: 0; box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .form-select[multiple], .form-select[size]:not([size="1"]) { padding-right: 0.75rem; background-image: none; } + .form-select:disabled { background-color: #303030; } + .form-select:-moz-focusring { color: transparent; text-shadow: 0 0 0 #fff; @@ -2317,6 +2357,7 @@ textarea.form-control-lg { padding-left: 1.5em; margin-bottom: 0.125rem; } + .form-check .form-check-input { float: left; margin-left: -1.5em; @@ -2327,6 +2368,7 @@ textarea.form-control-lg { padding-left: 0; text-align: right; } + .form-check-reverse .form-check-input { float: right; margin-right: -1.5em; @@ -2349,37 +2391,46 @@ textarea.form-control-lg { border: var(--bs-border-width) solid var(--bs-border-color); print-color-adjust: exact; } + .form-check-input[type=radio] { border-radius: 50%; } + .form-check-input:active { filter: brightness(90%); } + .form-check-input:focus { border-color: #ffffaa; outline: 0; box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .form-check-input:checked { background-color: #fefe54; border-color: #fefe54; } + .form-check-input:checked[type=checkbox] { --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); } + .form-check-input:checked[type=radio] { --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); } + .form-check-input[type=checkbox]:indeterminate { background-color: #fefe54; border-color: #fefe54; --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); } + .form-check-input:disabled { pointer-events: none; filter: none; opacity: 0.5; } + .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { cursor: default; opacity: 0.5; @@ -2388,6 +2439,7 @@ textarea.form-control-lg { .form-switch { padding-left: 2.5em; } + .form-switch .form-check-input { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); width: 2em; @@ -2397,6 +2449,7 @@ textarea.form-control-lg { border-radius: 0; transition: background-position 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-switch .form-check-input { transition: none; @@ -2405,14 +2458,17 @@ textarea.form-control-lg { .form-switch .form-check-input:focus { --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffaa'/%3e%3c/svg%3e"); } + .form-switch .form-check-input:checked { background-position: right center; --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } + .form-switch.form-check-reverse { padding-right: 2.5em; padding-left: 0; } + .form-switch.form-check-reverse .form-check-input { margin-right: -2.5em; margin-left: 0; @@ -2428,6 +2484,7 @@ textarea.form-control-lg { clip: rect(0, 0, 0, 0); pointer-events: none; } + .btn-check[disabled] + .btn, .btn-check:disabled + .btn { pointer-events: none; filter: none; @@ -2445,18 +2502,23 @@ textarea.form-control-lg { appearance: none; background-color: transparent; } + .form-range:focus { outline: 0; } + .form-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 1px #000084, 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .form-range:focus::-moz-range-thumb { box-shadow: 0 0 0 1px #000084, 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .form-range::-moz-focus-outer { border: 0; } + .form-range::-webkit-slider-thumb { width: 1rem; height: 1rem; @@ -2466,6 +2528,7 @@ textarea.form-control-lg { border: 0; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-range::-webkit-slider-thumb { transition: none; @@ -2474,6 +2537,7 @@ textarea.form-control-lg { .form-range::-webkit-slider-thumb:active { background-color: #ffffcc; } + .form-range::-webkit-slider-runnable-track { width: 100%; height: 0.5rem; @@ -2482,6 +2546,7 @@ textarea.form-control-lg { background-color: var(--bs-secondary-bg); border-color: transparent; } + .form-range::-moz-range-thumb { width: 1rem; height: 1rem; @@ -2490,6 +2555,7 @@ textarea.form-control-lg { border: 0; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-range::-moz-range-thumb { transition: none; @@ -2498,6 +2564,7 @@ textarea.form-control-lg { .form-range::-moz-range-thumb:active { background-color: #ffffcc; } + .form-range::-moz-range-track { width: 100%; height: 0.5rem; @@ -2506,12 +2573,15 @@ textarea.form-control-lg { background-color: var(--bs-secondary-bg); border-color: transparent; } + .form-range:disabled { pointer-events: none; } + .form-range:disabled::-webkit-slider-thumb { background-color: var(--bs-secondary-color); } + .form-range:disabled::-moz-range-thumb { background-color: var(--bs-secondary-color); } @@ -2519,13 +2589,15 @@ textarea.form-control-lg { .form-floating { position: relative; } + .form-floating > .form-control, .form-floating > .form-control-plaintext, .form-floating > .form-select { - height: calc(3.5rem + calc(var(--bs-border-width) * 2)); - min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + height: calc(3.5rem + var(--bs-border-width) * 2); + min-height: calc(3.5rem + var(--bs-border-width) * 2); line-height: 1.25; } + .form-floating > label { position: absolute; top: 0; @@ -2542,6 +2614,7 @@ textarea.form-control-lg { transform-origin: 0 0; transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .form-floating > label { transition: none; @@ -2551,25 +2624,30 @@ textarea.form-control-lg { .form-floating > .form-control-plaintext { padding: 1rem 0.75rem; } + .form-floating > .form-control::placeholder, .form-floating > .form-control-plaintext::placeholder { color: transparent; } + .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), .form-floating > .form-control-plaintext:focus, .form-floating > .form-control-plaintext:not(:placeholder-shown) { padding-top: 1.625rem; padding-bottom: 0.625rem; } + .form-floating > .form-control:-webkit-autofill, .form-floating > .form-control-plaintext:-webkit-autofill { padding-top: 1.625rem; padding-bottom: 0.625rem; } + .form-floating > .form-select { padding-top: 1.625rem; padding-bottom: 0.625rem; } + .form-floating > .form-control:focus ~ label, .form-floating > .form-control:not(:placeholder-shown) ~ label, .form-floating > .form-control-plaintext ~ label, @@ -2577,6 +2655,7 @@ textarea.form-control-lg { color: rgba(var(--bs-body-color-rgb), 0.65); transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control:focus ~ label::after, .form-floating > .form-control:not(:placeholder-shown) ~ label::after, .form-floating > .form-control-plaintext ~ label::after, @@ -2588,17 +2667,21 @@ textarea.form-control-lg { content: ""; background-color: rgb(102, 102, 102); } + .form-floating > .form-control:-webkit-autofill ~ label { color: rgba(var(--bs-body-color-rgb), 0.65); transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } + .form-floating > .form-control-plaintext ~ label { border-width: var(--bs-border-width) 0; } + .form-floating > :disabled ~ label, .form-floating > .form-control:disabled ~ label { color: #6c757d; } + .form-floating > :disabled ~ label::after, .form-floating > .form-control:disabled ~ label::after { background-color: #303030; @@ -2611,6 +2694,7 @@ textarea.form-control-lg { align-items: stretch; width: 100%; } + .input-group > .form-control, .input-group > .form-select, .input-group > .form-floating { @@ -2619,15 +2703,18 @@ textarea.form-control-lg { width: 1%; min-width: 0; } + .input-group > .form-control:focus, .input-group > .form-select:focus, .input-group > .form-floating:focus-within { z-index: 5; } + .input-group .btn { position: relative; z-index: 2; } + .input-group .btn:focus { z-index: 5; } @@ -2670,6 +2757,7 @@ textarea.form-control-lg { .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { margin-left: calc(var(--bs-border-width) * -1); } + .valid-feedback { display: none; width: 100%; @@ -2706,6 +2794,7 @@ textarea.form-control-lg { background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:valid:focus, .form-control.is-valid:focus { border-color: var(--bs-form-valid-border-color); box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); @@ -2719,30 +2808,35 @@ textarea.form-control-lg { .was-validated .form-select:valid, .form-select.is-valid { border-color: var(--bs-form-valid-border-color); } + .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300aa00' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); padding-right: 4.125rem; background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:valid:focus, .form-select.is-valid:focus { border-color: var(--bs-form-valid-border-color); box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } .was-validated .form-control-color:valid, .form-control-color.is-valid { - width: calc(3rem + calc(1.5em + 0.75rem)); + width: calc(3rem + 1.5em + 0.75rem); } .was-validated .form-check-input:valid, .form-check-input.is-valid { border-color: var(--bs-form-valid-border-color); } + .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { background-color: var(--bs-form-valid-color); } + .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } + .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { color: var(--bs-form-valid-color); } @@ -2795,6 +2889,7 @@ textarea.form-control-lg { background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { border-color: var(--bs-form-invalid-border-color); box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); @@ -2808,30 +2903,35 @@ textarea.form-control-lg { .was-validated .form-select:invalid, .form-select.is-invalid { border-color: var(--bs-form-invalid-border-color); } + .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23aa0000'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23aa0000' stroke='none'/%3e%3c/svg%3e"); padding-right: 4.125rem; background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } + .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { border-color: var(--bs-form-invalid-border-color); box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } .was-validated .form-control-color:invalid, .form-control-color.is-invalid { - width: calc(3rem + calc(1.5em + 0.75rem)); + width: calc(3rem + 1.5em + 0.75rem); } .was-validated .form-check-input:invalid, .form-check-input.is-invalid { border-color: var(--bs-form-invalid-border-color); } + .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { background-color: var(--bs-form-invalid-color); } + .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } + .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { color: var(--bs-form-invalid-color); } @@ -2879,6 +2979,7 @@ textarea.form-control-lg { background-color: var(--bs-btn-bg); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .btn { transition: none; @@ -2889,11 +2990,13 @@ textarea.form-control-lg { background-color: var(--bs-btn-hover-bg); border-color: var(--bs-btn-hover-border-color); } + .btn-check + .btn:hover { color: var(--bs-btn-color); background-color: var(--bs-btn-bg); border-color: var(--bs-btn-border-color); } + .btn:focus-visible { color: var(--bs-btn-hover-color); background-color: var(--bs-btn-hover-bg); @@ -2901,22 +3004,27 @@ textarea.form-control-lg { outline: 0; box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:focus-visible + .btn { border-color: var(--bs-btn-hover-border-color); outline: 0; box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { color: var(--bs-btn-active-color); background-color: var(--bs-btn-active-bg); border-color: var(--bs-btn-active-border-color); } + .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { box-shadow: var(--bs-btn-focus-box-shadow); } + .btn-check:checked:focus-visible + .btn { box-shadow: var(--bs-btn-focus-box-shadow); } + .btn:disabled, .btn.disabled, fieldset:disabled .btn { color: var(--bs-btn-disabled-color); pointer-events: none; @@ -3212,9 +3320,11 @@ textarea.form-control-lg { --bs-btn-focus-shadow-rgb: 216, 216, 71; text-decoration: none; } + .btn-link:focus-visible { color: var(--bs-btn-color); } + .btn-link:hover { color: var(--bs-btn-hover-color); } @@ -3236,6 +3346,7 @@ textarea.form-control-lg { .fade { transition: opacity 0.15s linear; } + @media (prefers-reduced-motion: reduce) { .fade { transition: none; @@ -3254,6 +3365,7 @@ textarea.form-control-lg { overflow: hidden; transition: height 0.35s ease; } + @media (prefers-reduced-motion: reduce) { .collapsing { transition: none; @@ -3264,12 +3376,12 @@ textarea.form-control-lg { height: auto; transition: width 0.35s ease; } + @media (prefers-reduced-motion: reduce) { .collapsing.collapse-horizontal { transition: none; } } - .dropup, .dropend, .dropdown, @@ -3282,6 +3394,7 @@ textarea.form-control-lg { .dropdown-toggle { white-space: nowrap; } + .dropdown-toggle::after { display: inline-block; margin-left: 0.255em; @@ -3292,6 +3405,7 @@ textarea.form-control-lg { border-bottom: 0; border-left: 0.3em solid transparent; } + .dropdown-toggle:empty::after { margin-left: 0; } @@ -3337,6 +3451,7 @@ textarea.form-control-lg { background-clip: padding-box; border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); } + .dropdown-menu[data-bs-popper] { top: 100%; left: 0; @@ -3346,6 +3461,7 @@ textarea.form-control-lg { .dropdown-menu-start { --bs-position: start; } + .dropdown-menu-start[data-bs-popper] { right: auto; left: 0; @@ -3354,6 +3470,7 @@ textarea.form-control-lg { .dropdown-menu-end { --bs-position: end; } + .dropdown-menu-end[data-bs-popper] { right: 0; left: auto; @@ -3445,6 +3562,7 @@ textarea.form-control-lg { margin-top: 0; margin-bottom: var(--bs-dropdown-spacer); } + .dropup .dropdown-toggle::after { display: inline-block; margin-left: 0.255em; @@ -3455,6 +3573,7 @@ textarea.form-control-lg { border-bottom: 0.3em solid; border-left: 0.3em solid transparent; } + .dropup .dropdown-toggle:empty::after { margin-left: 0; } @@ -3466,6 +3585,7 @@ textarea.form-control-lg { margin-top: 0; margin-left: var(--bs-dropdown-spacer); } + .dropend .dropdown-toggle::after { display: inline-block; margin-left: 0.255em; @@ -3476,9 +3596,11 @@ textarea.form-control-lg { border-bottom: 0.3em solid transparent; border-left: 0.3em solid; } + .dropend .dropdown-toggle:empty::after { margin-left: 0; } + .dropend .dropdown-toggle::after { vertical-align: 0; } @@ -3490,15 +3612,18 @@ textarea.form-control-lg { margin-top: 0; margin-right: var(--bs-dropdown-spacer); } + .dropstart .dropdown-toggle::after { display: inline-block; margin-left: 0.255em; vertical-align: 0.255em; content: ""; } + .dropstart .dropdown-toggle::after { display: none; } + .dropstart .dropdown-toggle::before { display: inline-block; margin-right: 0.255em; @@ -3508,9 +3633,11 @@ textarea.form-control-lg { border-right: 0.3em solid; border-bottom: 0.3em solid transparent; } + .dropstart .dropdown-toggle:empty::after { margin-left: 0; } + .dropstart .dropdown-toggle::before { vertical-align: 0; } @@ -3535,15 +3662,18 @@ textarea.form-control-lg { background-color: transparent; border: 0; } + .dropdown-item:hover, .dropdown-item:focus { color: var(--bs-dropdown-link-hover-color); background-color: var(--bs-dropdown-link-hover-bg); } + .dropdown-item.active, .dropdown-item:active { color: var(--bs-dropdown-link-active-color); text-decoration: none; background-color: var(--bs-dropdown-link-active-bg); } + .dropdown-item.disabled, .dropdown-item:disabled { color: var(--bs-dropdown-link-disabled-color); pointer-events: none; @@ -3590,11 +3720,13 @@ textarea.form-control-lg { display: inline-flex; vertical-align: middle; } + .btn-group > .btn, .btn-group-vertical > .btn { position: relative; flex: 1 1 auto; } + .btn-group > .btn-check:checked + .btn, .btn-group > .btn-check:focus + .btn, .btn-group > .btn:hover, @@ -3615,6 +3747,7 @@ textarea.form-control-lg { flex-wrap: wrap; justify-content: flex-start; } + .btn-toolbar .input-group { width: auto; } @@ -3623,13 +3756,16 @@ textarea.form-control-lg { .btn-group > .btn-group:not(:first-child) { margin-left: calc(var(--bs-border-width) * -1); } + .dropdown-toggle-split { padding-right: 0.5625rem; padding-left: 0.5625rem; } + .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { margin-left: 0; } + .dropstart .dropdown-toggle-split::before { margin-right: 0; } @@ -3649,14 +3785,17 @@ textarea.form-control-lg { align-items: flex-start; justify-content: center; } + .btn-group-vertical > .btn, .btn-group-vertical > .btn-group { width: 100%; } + .btn-group-vertical > .btn:not(:first-child), .btn-group-vertical > .btn-group:not(:first-child) { margin-top: calc(var(--bs-border-width) * -1); } + .nav { --bs-nav-link-padding-x: 1rem; --bs-nav-link-padding-y: 0.5rem; @@ -3681,6 +3820,7 @@ textarea.form-control-lg { border: 0; transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .nav-link { transition: none; @@ -3689,10 +3829,12 @@ textarea.form-control-lg { .nav-link:hover, .nav-link:focus { color: var(--bs-nav-link-hover-color); } + .nav-link:focus-visible { outline: 0; box-shadow: 0 0 0 0.25rem rgba(254, 254, 84, 0.25); } + .nav-link.disabled, .nav-link:disabled { color: var(--bs-nav-link-disabled-color); pointer-events: none; @@ -3709,20 +3851,24 @@ textarea.form-control-lg { --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); } + .nav-tabs .nav-link { margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); border: var(--bs-nav-tabs-border-width) solid transparent; } + .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { isolation: isolate; border-color: var(--bs-nav-tabs-link-hover-border-color); } + .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { color: var(--bs-nav-tabs-link-active-color); background-color: var(--bs-nav-tabs-link-active-bg); border-color: var(--bs-nav-tabs-link-active-border-color); } + .nav-tabs .dropdown-menu { margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); } @@ -3732,6 +3878,7 @@ textarea.form-control-lg { --bs-nav-pills-link-active-color: #fff; --bs-nav-pills-link-active-bg: #fefe54; } + .nav-pills .nav-link.active, .nav-pills .show > .nav-link { color: var(--bs-nav-pills-link-active-color); @@ -3744,14 +3891,17 @@ textarea.form-control-lg { --bs-nav-underline-link-active-color: var(--bs-emphasis-color); gap: var(--bs-nav-underline-gap); } + .nav-underline .nav-link { padding-right: 0; padding-left: 0; border-bottom: var(--bs-nav-underline-border-width) solid transparent; } + .nav-underline .nav-link:hover, .nav-underline .nav-link:focus { border-bottom-color: currentcolor; } + .nav-underline .nav-link.active, .nav-underline .show > .nav-link { font-weight: 700; @@ -3780,6 +3930,7 @@ textarea.form-control-lg { .tab-content > .tab-pane { display: none; } + .tab-content > .active { display: block; } @@ -3812,6 +3963,7 @@ textarea.form-control-lg { justify-content: space-between; padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); } + .navbar > .container, .navbar > .container-fluid, .navbar > .container-sm, @@ -3824,6 +3976,7 @@ textarea.form-control-lg { align-items: center; justify-content: space-between; } + .navbar-brand { padding-top: var(--bs-navbar-brand-padding-y); padding-bottom: var(--bs-navbar-brand-padding-y); @@ -3832,6 +3985,7 @@ textarea.form-control-lg { color: var(--bs-navbar-brand-color); white-space: nowrap; } + .navbar-brand:hover, .navbar-brand:focus { color: var(--bs-navbar-brand-hover-color); } @@ -3849,9 +4003,11 @@ textarea.form-control-lg { margin-bottom: 0; list-style: none; } + .navbar-nav .nav-link.active, .navbar-nav .nav-link.show { color: var(--bs-navbar-active-color); } + .navbar-nav .dropdown-menu { position: static; } @@ -3861,6 +4017,7 @@ textarea.form-control-lg { padding-bottom: 0.5rem; color: var(--bs-navbar-color); } + .navbar-text a, .navbar-text a:hover, .navbar-text a:focus { @@ -3882,6 +4039,7 @@ textarea.form-control-lg { border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); transition: var(--bs-navbar-toggler-transition); } + @media (prefers-reduced-motion: reduce) { .navbar-toggler { transition: none; @@ -3890,6 +4048,7 @@ textarea.form-control-lg { .navbar-toggler:hover { text-decoration: none; } + .navbar-toggler:focus { text-decoration: none; outline: 0; @@ -4151,26 +4310,33 @@ textarea.form-control-lg { flex-wrap: nowrap; justify-content: flex-start; } + .navbar-expand .navbar-nav { flex-direction: row; } + .navbar-expand .navbar-nav .dropdown-menu { position: absolute; } + .navbar-expand .navbar-nav .nav-link { padding-right: var(--bs-navbar-nav-link-padding-x); padding-left: var(--bs-navbar-nav-link-padding-x); } + .navbar-expand .navbar-nav-scroll { overflow: visible; } + .navbar-expand .navbar-collapse { display: flex !important; flex-basis: auto; } + .navbar-expand .navbar-toggler { display: none; } + .navbar-expand .offcanvas { position: static; z-index: auto; @@ -4183,9 +4349,11 @@ textarea.form-control-lg { transform: none !important; transition: none; } + .navbar-expand .offcanvas .offcanvas-header { display: none; } + .navbar-expand .offcanvas .offcanvas-body { display: flex; flex-grow: 0; @@ -4240,20 +4408,25 @@ textarea.form-control-lg { background-clip: border-box; border: var(--bs-card-border-width) solid var(--bs-card-border-color); } + .card > hr { margin-right: 0; margin-left: 0; } + .card > .list-group { border-top: inherit; border-bottom: inherit; } + .card > .list-group:first-child { border-top-width: 0; } + .card > .list-group:last-child { border-bottom-width: 0; } + .card > .card-header + .list-group, .card > .list-group + .card-footer { border-top: 0; @@ -4291,18 +4464,21 @@ textarea.form-control-lg { background-color: var(--bs-card-cap-bg); border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } + .card-footer { padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); color: var(--bs-card-cap-color); background-color: var(--bs-card-cap-bg); border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); } + .card-header-tabs { margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); border-bottom: 0; } + .card-header-tabs .nav-link.active { background-color: var(--bs-card-bg); border-bottom-color: var(--bs-card-bg); @@ -4331,6 +4507,7 @@ textarea.form-control-lg { .card-group > .card { margin-bottom: var(--bs-card-group-margin); } + @media (min-width: 576px) { .card-group { display: flex; @@ -4345,7 +4522,6 @@ textarea.form-control-lg { border-left: 0; } } - .accordion { --bs-accordion-color: var(--bs-body-color); --bs-accordion-bg: var(--bs-body-bg); @@ -4384,6 +4560,7 @@ textarea.form-control-lg { overflow-anchor: none; transition: var(--bs-accordion-transition); } + @media (prefers-reduced-motion: reduce) { .accordion-button { transition: none; @@ -4394,10 +4571,12 @@ textarea.form-control-lg { background-color: var(--bs-accordion-active-bg); box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); } + .accordion-button:not(.collapsed)::after { background-image: var(--bs-accordion-btn-active-icon); transform: var(--bs-accordion-btn-icon-transform); } + .accordion-button::after { flex-shrink: 0; width: var(--bs-accordion-btn-icon-width); @@ -4409,6 +4588,7 @@ textarea.form-control-lg { background-size: var(--bs-accordion-btn-icon-width); transition: var(--bs-accordion-btn-icon-transition); } + @media (prefers-reduced-motion: reduce) { .accordion-button::after { transition: none; @@ -4417,6 +4597,7 @@ textarea.form-control-lg { .accordion-button:hover { z-index: 2; } + .accordion-button:focus { z-index: 3; outline: 0; @@ -4432,9 +4613,11 @@ textarea.form-control-lg { background-color: var(--bs-accordion-bg); border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); } + .accordion-item:not(:first-of-type) { border-top: 0; } + .accordion-body { padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); } @@ -4443,12 +4626,15 @@ textarea.form-control-lg { border-right: 0; border-left: 0; } + .accordion-flush > .accordion-item:first-child { border-top: 0; } + .accordion-flush > .accordion-item:last-child { border-bottom: 0; } + [data-bs-theme=dark] .accordion-button::after { --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fefe98'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fefe98'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); @@ -4475,12 +4661,14 @@ textarea.form-control-lg { .breadcrumb-item + .breadcrumb-item { padding-left: var(--bs-breadcrumb-item-padding-x); } + .breadcrumb-item + .breadcrumb-item::before { float: left; padding-right: var(--bs-breadcrumb-item-padding-x); color: var(--bs-breadcrumb-divider-color); - content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; + content: var(--bs-breadcrumb-divider, "/"); } + .breadcrumb-item.active { color: var(--bs-breadcrumb-item-active-color); } @@ -4521,6 +4709,7 @@ textarea.form-control-lg { border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .page-link { transition: none; @@ -4532,6 +4721,7 @@ textarea.form-control-lg { background-color: var(--bs-pagination-hover-bg); border-color: var(--bs-pagination-hover-border-color); } + .page-link:focus { z-index: 3; color: var(--bs-pagination-focus-color); @@ -4539,12 +4729,14 @@ textarea.form-control-lg { outline: 0; box-shadow: var(--bs-pagination-focus-box-shadow); } + .page-link.active, .active > .page-link { z-index: 3; color: var(--bs-pagination-active-color); background-color: var(--bs-pagination-active-bg); border-color: var(--bs-pagination-active-border-color); } + .page-link.disabled, .disabled > .page-link { color: var(--bs-pagination-disabled-color); pointer-events: none; @@ -4555,6 +4747,7 @@ textarea.form-control-lg { .page-item:not(:first-child) .page-link { margin-left: calc(var(--bs-border-width) * -1); } + .pagination-lg { --bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-y: 0.75rem; @@ -4586,6 +4779,7 @@ textarea.form-control-lg { white-space: nowrap; vertical-align: baseline; } + .badge:empty { display: none; } @@ -4625,6 +4819,7 @@ textarea.form-control-lg { .alert-dismissible { padding-right: 3rem; } + .alert-dismissible .btn-close { position: absolute; top: 0; @@ -4722,12 +4917,12 @@ textarea.form-control-lg { background-color: var(--bs-progress-bar-bg); transition: var(--bs-progress-bar-transition); } + @media (prefers-reduced-motion: reduce) { .progress-bar { transition: none; } } - .progress-bar-striped { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: var(--bs-progress-height) var(--bs-progress-height); @@ -4744,12 +4939,12 @@ textarea.form-control-lg { .progress-bar-animated { animation: 1s linear infinite progress-bar-stripes; } + @media (prefers-reduced-motion: reduce) { .progress-bar-animated { animation: none; } } - .list-group { --bs-list-group-color: var(--bs-body-color); --bs-list-group-bg: var(--bs-body-bg); @@ -4778,6 +4973,7 @@ textarea.form-control-lg { list-style-type: none; counter-reset: section; } + .list-group-numbered > .list-group-item::before { content: counters(section, ".") ". "; counter-increment: section; @@ -4788,12 +4984,14 @@ textarea.form-control-lg { color: var(--bs-list-group-action-color); text-align: inherit; } + .list-group-item-action:hover, .list-group-item-action:focus { z-index: 1; color: var(--bs-list-group-action-hover-color); text-decoration: none; background-color: var(--bs-list-group-action-hover-bg); } + .list-group-item-action:active { color: var(--bs-list-group-action-active-color); background-color: var(--bs-list-group-action-active-bg); @@ -4807,20 +5005,24 @@ textarea.form-control-lg { background-color: var(--bs-list-group-bg); border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } + .list-group-item.disabled, .list-group-item:disabled { color: var(--bs-list-group-disabled-color); pointer-events: none; background-color: var(--bs-list-group-disabled-bg); } + .list-group-item.active { z-index: 2; color: var(--bs-list-group-active-color); background-color: var(--bs-list-group-active-bg); border-color: var(--bs-list-group-active-border-color); } + .list-group-item + .list-group-item { border-top-width: 0; } + .list-group-item + .list-group-item.active { margin-top: calc(-1 * var(--bs-list-group-border-width)); border-top-width: var(--bs-list-group-border-width); @@ -4829,13 +5031,16 @@ textarea.form-control-lg { .list-group-horizontal { flex-direction: row; } + .list-group-horizontal > .list-group-item.active { margin-top: 0; } + .list-group-horizontal > .list-group-item + .list-group-item { border-top-width: var(--bs-list-group-border-width); border-left-width: 0; } + .list-group-horizontal > .list-group-item + .list-group-item.active { margin-left: calc(-1 * var(--bs-list-group-border-width)); border-left-width: var(--bs-list-group-border-width); @@ -4924,6 +5129,7 @@ textarea.form-control-lg { .list-group-flush > .list-group-item { border-width: 0 0 var(--bs-list-group-border-width); } + .list-group-flush > .list-group-item:last-child { border-bottom-width: 0; } @@ -5050,16 +5256,19 @@ textarea.form-control-lg { border: 0; opacity: var(--bs-btn-close-opacity); } + .btn-close:hover { color: var(--bs-btn-close-color); text-decoration: none; opacity: var(--bs-btn-close-hover-opacity); } + .btn-close:focus { outline: 0; box-shadow: var(--bs-btn-close-focus-shadow); opacity: var(--bs-btn-close-focus-opacity); } + .btn-close:disabled, .btn-close.disabled { pointer-events: none; user-select: none; @@ -5100,9 +5309,11 @@ textarea.form-control-lg { border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); box-shadow: var(--bs-toast-box-shadow); } + .toast.showing { opacity: 0; } + .toast:not(.show) { display: none; } @@ -5115,6 +5326,7 @@ textarea.form-control-lg { max-width: 100%; pointer-events: none; } + .toast-container > :not(:last-child) { margin-bottom: var(--bs-toast-spacing); } @@ -5128,6 +5340,7 @@ textarea.form-control-lg { background-clip: padding-box; border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); } + .toast-header .btn-close { margin-right: calc(-0.5 * var(--bs-toast-padding-x)); margin-left: var(--bs-toast-padding-x); @@ -5178,10 +5391,12 @@ textarea.form-control-lg { margin: var(--bs-modal-margin); pointer-events: none; } + .modal.fade .modal-dialog { transition: transform 0.3s ease-out; transform: translate(0, -50px); } + @media (prefers-reduced-motion: reduce) { .modal.fade .modal-dialog { transition: none; @@ -5190,6 +5405,7 @@ textarea.form-control-lg { .modal.show .modal-dialog { transform: none; } + .modal.modal-static .modal-dialog { transform: scale(1.02); } @@ -5197,10 +5413,12 @@ textarea.form-control-lg { .modal-dialog-scrollable { height: calc(100% - var(--bs-modal-margin) * 2); } + .modal-dialog-scrollable .modal-content { max-height: 100%; overflow: hidden; } + .modal-dialog-scrollable .modal-body { overflow-y: auto; } @@ -5236,9 +5454,11 @@ textarea.form-control-lg { height: 100vh; background-color: var(--bs-backdrop-bg); } + .modal-backdrop.fade { opacity: 0; } + .modal-backdrop.show { opacity: var(--bs-backdrop-opacity); } @@ -5250,6 +5470,7 @@ textarea.form-control-lg { padding: var(--bs-modal-header-padding); border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); } + .modal-header .btn-close { padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; @@ -5276,6 +5497,7 @@ textarea.form-control-lg { background-color: var(--bs-modal-footer-bg); border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); } + .modal-footer > * { margin: calc(var(--bs-modal-footer-gap) * 0.5); } @@ -5311,10 +5533,12 @@ textarea.form-control-lg { height: 100%; margin: 0; } + .modal-fullscreen .modal-content { height: 100%; border: 0; } + .modal-fullscreen .modal-body { overflow-y: auto; } @@ -5428,14 +5652,17 @@ textarea.form-control-lg { word-wrap: break-word; opacity: 0; } + .tooltip.show { opacity: var(--bs-tooltip-opacity); } + .tooltip .tooltip-arrow { display: block; width: var(--bs-tooltip-arrow-width); height: var(--bs-tooltip-arrow-height); } + .tooltip .tooltip-arrow::before { position: absolute; content: ""; @@ -5446,6 +5673,7 @@ textarea.form-control-lg { .bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { bottom: calc(-1 * var(--bs-tooltip-arrow-height)); } + .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { top: -1px; border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; @@ -5458,6 +5686,7 @@ textarea.form-control-lg { width: var(--bs-tooltip-arrow-height); height: var(--bs-tooltip-arrow-width); } + .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { right: -1px; border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; @@ -5468,6 +5697,7 @@ textarea.form-control-lg { .bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { top: calc(-1 * var(--bs-tooltip-arrow-height)); } + .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { bottom: -1px; border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); @@ -5480,6 +5710,7 @@ textarea.form-control-lg { width: var(--bs-tooltip-arrow-height); height: var(--bs-tooltip-arrow-width); } + .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { left: -1px; border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); @@ -5539,11 +5770,13 @@ textarea.form-control-lg { background-clip: padding-box; border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); } + .popover .popover-arrow { display: block; width: var(--bs-popover-arrow-width); height: var(--bs-popover-arrow-height); } + .popover .popover-arrow::before, .popover .popover-arrow::after { position: absolute; display: block; @@ -5556,13 +5789,16 @@ textarea.form-control-lg { .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } + .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; } + .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { bottom: 0; border-top-color: var(--bs-popover-arrow-border); } + .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { bottom: var(--bs-popover-border-width); border-top-color: var(--bs-popover-bg); @@ -5574,13 +5810,16 @@ textarea.form-control-lg { width: var(--bs-popover-arrow-height); height: var(--bs-popover-arrow-width); } + .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; } + .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { left: 0; border-right-color: var(--bs-popover-arrow-border); } + .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { left: var(--bs-popover-border-width); border-right-color: var(--bs-popover-bg); @@ -5590,17 +5829,21 @@ textarea.form-control-lg { .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } + .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); } + .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { top: 0; border-bottom-color: var(--bs-popover-arrow-border); } + .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { top: var(--bs-popover-border-width); border-bottom-color: var(--bs-popover-bg); } + .bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { position: absolute; top: 0; @@ -5618,13 +5861,16 @@ textarea.form-control-lg { width: var(--bs-popover-arrow-height); height: var(--bs-popover-arrow-width); } + .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); } + .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { right: 0; border-left-color: var(--bs-popover-arrow-border); } + .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { right: var(--bs-popover-border-width); border-left-color: var(--bs-popover-bg); @@ -5639,6 +5885,7 @@ textarea.form-control-lg { background-color: var(--bs-popover-header-bg); border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); } + .popover-header:empty { display: none; } @@ -5661,6 +5908,7 @@ textarea.form-control-lg { width: 100%; overflow: hidden; } + .carousel-inner::after { display: block; clear: both; @@ -5676,12 +5924,12 @@ textarea.form-control-lg { backface-visibility: hidden; transition: transform 0.6s ease-in-out; } + @media (prefers-reduced-motion: reduce) { .carousel-item { transition: none; } } - .carousel-item.active, .carousel-item-next, .carousel-item-prev { @@ -5703,25 +5951,27 @@ textarea.form-control-lg { transition-property: opacity; transform: none; } + .carousel-fade .carousel-item.active, .carousel-fade .carousel-item-next.carousel-item-start, .carousel-fade .carousel-item-prev.carousel-item-end { z-index: 1; opacity: 1; } + .carousel-fade .active.carousel-item-start, .carousel-fade .active.carousel-item-end { z-index: 0; opacity: 0; transition: opacity 0s 0.6s; } + @media (prefers-reduced-motion: reduce) { .carousel-fade .active.carousel-item-start, .carousel-fade .active.carousel-item-end { transition: none; } } - .carousel-control-prev, .carousel-control-next { position: absolute; @@ -5740,6 +5990,7 @@ textarea.form-control-lg { opacity: 0.5; transition: opacity 0.15s ease; } + @media (prefers-reduced-motion: reduce) { .carousel-control-prev, .carousel-control-next { @@ -5774,11 +6025,11 @@ textarea.form-control-lg { } .carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); } .carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .carousel-indicators { @@ -5794,6 +6045,7 @@ textarea.form-control-lg { margin-bottom: 1rem; margin-left: 15%; } + .carousel-indicators [data-bs-target] { box-sizing: content-box; flex: 0 1 auto; @@ -5812,6 +6064,7 @@ textarea.form-control-lg { opacity: 0.5; transition: opacity 0.6s ease; } + @media (prefers-reduced-motion: reduce) { .carousel-indicators [data-bs-target] { transition: none; @@ -5836,9 +6089,11 @@ textarea.form-control-lg { .carousel-dark .carousel-control-next-icon { filter: invert(1) grayscale(100); } + .carousel-dark .carousel-indicators [data-bs-target] { background-color: #000; } + .carousel-dark .carousel-caption { color: #000; } @@ -5848,9 +6103,11 @@ textarea.form-control-lg { [data-bs-theme=dark].carousel .carousel-control-next-icon { filter: invert(1) grayscale(100); } + [data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] { background-color: #000; } + [data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption { color: #000; } @@ -5867,7 +6124,7 @@ textarea.form-control-lg { @keyframes spinner-border { to { - transform: rotate(360deg) /* rtl:ignore */; + transform: rotate(360deg); } } .spinner-border { @@ -6009,7 +6266,6 @@ textarea.form-control-lg { background-color: transparent !important; } } - @media (max-width: 767.98px) { .offcanvas-md { position: fixed; @@ -6087,7 +6343,6 @@ textarea.form-control-lg { background-color: transparent !important; } } - @media (max-width: 991.98px) { .offcanvas-lg { position: fixed; @@ -6165,7 +6420,6 @@ textarea.form-control-lg { background-color: transparent !important; } } - @media (max-width: 1199.98px) { .offcanvas-xl { position: fixed; @@ -6243,7 +6497,6 @@ textarea.form-control-lg { background-color: transparent !important; } } - @media (max-width: 1399.98px) { .offcanvas-xxl { position: fixed; @@ -6321,7 +6574,6 @@ textarea.form-control-lg { background-color: transparent !important; } } - .offcanvas { position: fixed; bottom: 0; @@ -6336,6 +6588,7 @@ textarea.form-control-lg { outline: 0; transition: var(--bs-offcanvas-transition); } + @media (prefers-reduced-motion: reduce) { .offcanvas { transition: none; @@ -6348,6 +6601,7 @@ textarea.form-control-lg { border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(-100%); } + .offcanvas.offcanvas-end { top: 0; right: 0; @@ -6355,6 +6609,7 @@ textarea.form-control-lg { border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateX(100%); } + .offcanvas.offcanvas-top { top: 0; right: 0; @@ -6364,6 +6619,7 @@ textarea.form-control-lg { border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(-100%); } + .offcanvas.offcanvas-bottom { right: 0; left: 0; @@ -6372,9 +6628,11 @@ textarea.form-control-lg { border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); transform: translateY(100%); } + .offcanvas.showing, .offcanvas.show:not(.hiding) { transform: none; } + .offcanvas.showing, .offcanvas.hiding, .offcanvas.show { visibility: visible; } @@ -6388,9 +6646,11 @@ textarea.form-control-lg { height: 100vh; background-color: #000; } + .offcanvas-backdrop.fade { opacity: 0; } + .offcanvas-backdrop.show { opacity: 0.5; } @@ -6400,6 +6660,7 @@ textarea.form-control-lg { align-items: center; padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); } + .offcanvas-header .btn-close { padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto; @@ -6424,6 +6685,7 @@ textarea.form-control-lg { background-color: currentcolor; opacity: 0.5; } + .placeholder.btn::before { display: inline-block; content: ""; @@ -6511,6 +6773,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-primary:hover, .link-primary:focus { color: RGBA(254, 254, 118, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(254, 254, 118, var(--bs-link-underline-opacity, 1)) !important; @@ -6520,6 +6783,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-secondary:hover, .link-secondary:focus { color: RGBA(27, 27, 27, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(27, 27, 27, var(--bs-link-underline-opacity, 1)) !important; @@ -6529,6 +6793,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-success:hover, .link-success:focus { color: RGBA(0, 136, 0, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(0, 136, 0, var(--bs-link-underline-opacity, 1)) !important; @@ -6538,6 +6803,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-info:hover, .link-info:focus { color: RGBA(51, 187, 187, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(51, 187, 187, var(--bs-link-underline-opacity, 1)) !important; @@ -6547,6 +6813,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-warning:hover, .link-warning:focus { color: RGBA(136, 0, 136, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(136, 0, 136, var(--bs-link-underline-opacity, 1)) !important; @@ -6556,6 +6823,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-danger:hover, .link-danger:focus { color: RGBA(136, 0, 0, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(136, 0, 0, var(--bs-link-underline-opacity, 1)) !important; @@ -6565,6 +6833,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-light:hover, .link-light:focus { color: RGBA(38, 38, 38, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(38, 38, 38, var(--bs-link-underline-opacity, 1)) !important; @@ -6574,6 +6843,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-dark:hover, .link-dark:focus { color: RGBA(201, 201, 201, var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(201, 201, 201, var(--bs-link-underline-opacity, 1)) !important; @@ -6583,6 +6853,7 @@ textarea.form-control-lg { color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } + .link-body-emphasis:hover, .link-body-emphasis:focus { color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; @@ -6601,6 +6872,7 @@ textarea.form-control-lg { text-underline-offset: 0.25em; backface-visibility: hidden; } + .icon-link > .bi { flex-shrink: 0; width: 1em; @@ -6608,12 +6880,12 @@ textarea.form-control-lg { fill: currentcolor; transition: 0.2s ease-in-out transform; } + @media (prefers-reduced-motion: reduce) { .icon-link > .bi { transition: none; } } - .icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); } @@ -6622,11 +6894,13 @@ textarea.form-control-lg { position: relative; width: 100%; } + .ratio::before { display: block; padding-top: var(--bs-aspect-ratio); content: ""; } + .ratio > * { position: absolute; top: 0; @@ -6764,6 +7038,7 @@ textarea.form-control-lg { white-space: nowrap !important; border: 0 !important; } + .visually-hidden:not(caption), .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { position: absolute !important; @@ -11579,4 +11854,6 @@ option:disabled { background: #adb5bd; } + + /*# sourceMappingURL=i386.css.map */ diff --git a/src/assets/css/themes/litely-compact.css b/src/assets/css/themes/litely-compact.css index 701fce59..79968dc2 100644 --- a/src/assets/css/themes/litely-compact.css +++ b/src/assets/css/themes/litely-compact.css @@ -74,7 +74,7 @@ hr.my-3 { --bs-success: #6610f2; --bs-info: #007bff; --bs-warning: #ffc107; - --bs-danger: #873208; + --bs-danger: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-light: #f8f9fa; --bs-dark: #212529; --bs-primary-rgb: 241, 100, 30; @@ -85,28 +85,28 @@ hr.my-3 { --bs-danger-rgb: 135, 50, 8; --bs-light-rgb: 248, 249, 250; --bs-dark-rgb: 33, 37, 41; - --bs-primary-text-emphasis: #60280c; - --bs-secondary-text-emphasis: #00431c; - --bs-success-text-emphasis: #290661; - --bs-info-text-emphasis: #003166; - --bs-warning-text-emphasis: #664d03; - --bs-danger-text-emphasis: #361403; + --bs-primary-text-emphasis: rgb(96.4, 40, 12); + --bs-secondary-text-emphasis: rgb(0, 67.2, 28); + --bs-success-text-emphasis: rgb(40.8, 6.4, 96.8); + --bs-info-text-emphasis: rgb(0, 49.2, 102); + --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); + --bs-danger-text-emphasis: rgb(54.0376569038, 20.1740585774, 3.3623430962); --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #fce0d2; - --bs-secondary-bg-subtle: #cceeda; - --bs-success-bg-subtle: #e0cffc; - --bs-info-bg-subtle: #cce5ff; - --bs-warning-bg-subtle: #fff3cd; - --bs-danger-bg-subtle: #e7d6ce; - --bs-light-bg-subtle: #fcfcfd; + --bs-primary-bg-subtle: rgb(252.2, 224, 210); + --bs-secondary-bg-subtle: rgb(204, 237.6, 218); + --bs-success-bg-subtle: rgb(224.4, 207.2, 252.4); + --bs-info-bg-subtle: rgb(204, 228.6, 255); + --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); + --bs-danger-bg-subtle: rgb(231.0188284519, 214.0870292887, 205.6811715481); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #f9c1a5; - --bs-secondary-border-subtle: #99dcb5; - --bs-success-border-subtle: #c29ffa; - --bs-info-border-subtle: #99caff; - --bs-warning-border-subtle: #ffe69c; - --bs-danger-border-subtle: #cfad9c; + --bs-primary-border-subtle: rgb(249.4, 193, 165); + --bs-secondary-border-subtle: rgb(153, 220.2, 181); + --bs-success-border-subtle: rgb(193.8, 159.4, 249.8); + --bs-info-border-subtle: rgb(153, 202.2, 255); + --bs-warning-border-subtle: rgb(255, 230.2, 155.8); + --bs-danger-border-subtle: rgb(207.0376569038, 173.1740585774, 156.3623430962); --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -137,7 +137,7 @@ hr.my-3 { --bs-link-color: #f1641e; --bs-link-color-rgb: 241, 100, 30; --bs-link-decoration: none; - --bs-link-hover-color: #c15018; + --bs-link-hover-color: rgb(192.8, 80, 24); --bs-link-hover-color-rgb: 193, 80, 24; --bs-code-color: #d63384; --bs-highlight-color: #495057; @@ -162,8 +162,8 @@ hr.my-3 { --bs-focus-ring-color: rgba(241, 100, 30, 0.25); --bs-form-valid-color: #007bff; --bs-form-valid-border-color: #007bff; - --bs-form-invalid-color: #873208; - --bs-form-invalid-border-color: #873208; + --bs-form-invalid-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-form-invalid-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); } [data-bs-theme=dark] { @@ -180,46 +180,46 @@ hr.my-3 { --bs-secondary-bg-rgb: 52, 58, 64; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg: rgb(42.5, 47.5, 52.5); --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #f7a278; - --bs-secondary-text-emphasis: #66cb90; - --bs-success-text-emphasis: #a370f7; - --bs-info-text-emphasis: #66b0ff; - --bs-warning-text-emphasis: #ffda6a; - --bs-danger-text-emphasis: #b7846b; + --bs-primary-text-emphasis: rgb(246.6, 162, 120); + --bs-secondary-text-emphasis: rgb(102, 202.8, 144); + --bs-success-text-emphasis: rgb(163.2, 111.6, 247.2); + --bs-info-text-emphasis: rgb(102, 175.8, 255); + --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); + --bs-danger-text-emphasis: rgb(183.0564853556, 132.2610878661, 107.0435146444); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #301406; - --bs-secondary-bg-subtle: #00220e; - --bs-success-bg-subtle: #140330; - --bs-info-bg-subtle: #001933; - --bs-warning-bg-subtle: #332701; - --bs-danger-bg-subtle: #1b0a02; + --bs-primary-bg-subtle: rgb(48.2, 20, 6); + --bs-secondary-bg-subtle: rgb(0, 33.6, 14); + --bs-success-bg-subtle: rgb(20.4, 3.2, 48.4); + --bs-info-bg-subtle: rgb(0, 24.6, 51); + --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); + --bs-danger-bg-subtle: rgb(27.0188284519, 10.0870292887, 1.6811715481); --bs-light-bg-subtle: #343a40; --bs-dark-bg-subtle: #2b2e31; - --bs-primary-border-subtle: #913c12; - --bs-secondary-border-subtle: #00652a; - --bs-success-border-subtle: #3d0a91; - --bs-info-border-subtle: #004a99; - --bs-warning-border-subtle: #997404; - --bs-danger-border-subtle: #511e05; + --bs-primary-border-subtle: rgb(144.6, 60, 18); + --bs-secondary-border-subtle: rgb(0, 100.8, 42); + --bs-success-border-subtle: rgb(61.2, 9.6, 145.2); + --bs-info-border-subtle: rgb(0, 73.8, 153); + --bs-warning-border-subtle: rgb(153, 115.8, 4.2); + --bs-danger-border-subtle: rgb(81.0564853556, 30.2610878661, 5.0435146444); --bs-light-border-subtle: #495057; --bs-dark-border-subtle: #343a40; --bs-heading-color: inherit; - --bs-link-color: #f7a278; - --bs-link-hover-color: #f9b593; + --bs-link-color: rgb(246.6, 162, 120); + --bs-link-hover-color: rgb(248.28, 180.6, 147); --bs-link-color-rgb: 247, 162, 120; - --bs-link-hover-color-rgb: 249, 181, 147; - --bs-code-color: #e685b5; + --bs-link-hover-color-rgb: 248, 181, 147; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #664d03; + --bs-highlight-bg: rgb(102, 77.2, 2.8); --bs-border-color: #495057; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66cb90; - --bs-form-valid-border-color: #66cb90; - --bs-form-invalid-color: #e891a6; - --bs-form-invalid-border-color: #e891a6; + --bs-form-valid-color: rgb(102, 202.8, 144); + --bs-form-valid-border-color: rgb(102, 202.8, 144); + --bs-form-invalid-color: rgb(231.6, 145.2, 165.6); + --bs-form-invalid-border-color: rgb(231.6, 145.2, 165.6); } *, @@ -1950,13 +1950,13 @@ progress { .table-primary { --bs-table-color: #222; - --bs-table-bg: #fce0d2; - --bs-table-border-color: #d0baaf; - --bs-table-striped-bg: #f1d7c9; + --bs-table-bg: rgb(252.2, 224, 210); + --bs-table-border-color: rgb(208.56, 186, 174.8); + --bs-table-striped-bg: rgb(241.29, 214.5, 201.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e6cdc0; + --bs-table-active-bg: rgb(230.38, 205, 192.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #ecd2c5; + --bs-table-hover-bg: rgb(235.835, 209.75, 196.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1964,13 +1964,13 @@ progress { .table-secondary { --bs-table-color: #222; - --bs-table-bg: #cceeda; - --bs-table-border-color: #aac5b5; - --bs-table-striped-bg: #c4e4d1; + --bs-table-bg: rgb(204, 237.6, 218); + --bs-table-border-color: rgb(170, 196.88, 181.2); + --bs-table-striped-bg: rgb(195.5, 227.42, 208.8); --bs-table-striped-color: #222; - --bs-table-active-bg: #bbdac8; + --bs-table-active-bg: rgb(187, 217.24, 199.6); --bs-table-active-color: #222; - --bs-table-hover-bg: #bfdfcc; + --bs-table-hover-bg: rgb(191.25, 222.33, 204.2); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1978,13 +1978,13 @@ progress { .table-success { --bs-table-color: #222; - --bs-table-bg: #e0cffc; - --bs-table-border-color: #baacd0; - --bs-table-striped-bg: #d7c6f1; + --bs-table-bg: rgb(224.4, 207.2, 252.4); + --bs-table-border-color: rgb(186.32, 172.56, 208.72); + --bs-table-striped-bg: rgb(214.88, 198.54, 241.48); --bs-table-striped-color: #222; - --bs-table-active-bg: #cdbee6; + --bs-table-active-bg: rgb(205.36, 189.88, 230.56); --bs-table-active-color: #222; - --bs-table-hover-bg: #d2c2ec; + --bs-table-hover-bg: rgb(210.12, 194.21, 236.02); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1992,13 +1992,13 @@ progress { .table-info { --bs-table-color: #222; - --bs-table-bg: #cce5ff; - --bs-table-border-color: #aabed3; - --bs-table-striped-bg: #c4dbf4; + --bs-table-bg: rgb(204, 228.6, 255); + --bs-table-border-color: rgb(170, 189.68, 210.8); + --bs-table-striped-bg: rgb(195.5, 218.87, 243.95); --bs-table-striped-color: #222; - --bs-table-active-bg: #bbd2e9; + --bs-table-active-bg: rgb(187, 209.14, 232.9); --bs-table-active-color: #222; - --bs-table-hover-bg: #bfd6ee; + --bs-table-hover-bg: rgb(191.25, 214.005, 238.425); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2006,13 +2006,13 @@ progress { .table-warning { --bs-table-color: #222; - --bs-table-bg: #fff3cd; - --bs-table-border-color: #d3c9ab; - --bs-table-striped-bg: #f4e9c4; + --bs-table-bg: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(210.8, 200.88, 171.12); + --bs-table-striped-bg: rgb(243.95, 232.17, 196.83); --bs-table-striped-color: #222; - --bs-table-active-bg: #e9debc; + --bs-table-active-bg: rgb(232.9, 221.74, 188.26); --bs-table-active-color: #222; - --bs-table-hover-bg: #eee3c0; + --bs-table-hover-bg: rgb(238.425, 226.955, 192.545); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2020,13 +2020,13 @@ progress { .table-danger { --bs-table-color: #222; - --bs-table-bg: #e7d6ce; - --bs-table-border-color: #c0b2ac; - --bs-table-striped-bg: #ddcdc5; + --bs-table-bg: rgb(231.0188284519, 214.0870292887, 205.6811715481); + --bs-table-border-color: rgb(191.6150627615, 178.069623431, 171.3449372385); + --bs-table-striped-bg: rgb(221.1678870293, 205.0826778243, 197.0971129707); --bs-table-striped-color: #222; - --bs-table-active-bg: #d3c4bd; + --bs-table-active-bg: rgb(211.3169456067, 196.0783263598, 188.5130543933); --bs-table-active-color: #222; - --bs-table-hover-bg: #d8c9c1; + --bs-table-hover-bg: rgb(216.242416318, 200.5805020921, 192.805083682); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2035,12 +2035,12 @@ progress { .table-light { --bs-table-color: #222; --bs-table-bg: #f8f9fa; - --bs-table-border-color: #cdcecf; - --bs-table-striped-bg: #edeeef; + --bs-table-border-color: rgb(205.2, 206, 206.8); + --bs-table-striped-bg: rgb(237.3, 238.25, 239.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e3e4e4; + --bs-table-active-bg: rgb(226.6, 227.5, 228.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #e8e9ea; + --bs-table-hover-bg: rgb(231.95, 232.875, 233.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2049,12 +2049,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: #4d5154; - --bs-table-striped-bg: #2c3034; + --bs-table-border-color: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2154,7 +2154,7 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: var(--bs-body-bg); - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2299,7 +2299,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.75); } @@ -2383,7 +2383,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2430,7 +2430,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23f8b28f'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28248, 177.5, 142.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2500,7 +2500,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2526,7 +2526,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-moz-range-track { width: 100%; @@ -2849,7 +2849,7 @@ textarea.form-control-lg { .was-validated .form-control:invalid, .form-control.is-invalid { border-color: var(--bs-form-invalid-border-color); padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23873208'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23873208' stroke='none'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29' stroke='none'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2868,7 +2868,7 @@ textarea.form-control-lg { border-color: var(--bs-form-invalid-border-color); } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23873208'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23873208' stroke='none'/%3e%3c/svg%3e"); + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29' stroke='none'/%3e%3c/svg%3e"); padding-right: 4.125rem; background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2990,12 +2990,12 @@ textarea.form-control-lg { --bs-btn-bg: #f1641e; --bs-btn-border-color: #f1641e; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #cd551a; - --bs-btn-hover-border-color: #c15018; + --bs-btn-hover-bg: rgb(204.85, 85, 25.5); + --bs-btn-hover-border-color: rgb(192.8, 80, 24); --bs-btn-focus-shadow-rgb: 243, 123, 64; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #c15018; - --bs-btn-active-border-color: #b54b17; + --bs-btn-active-bg: rgb(192.8, 80, 24); + --bs-btn-active-border-color: rgb(180.75, 75, 22.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #f1641e; @@ -3007,12 +3007,12 @@ textarea.form-control-lg { --bs-btn-bg: #00a846; --bs-btn-border-color: #00a846; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #008f3c; - --bs-btn-hover-border-color: #008638; + --bs-btn-hover-bg: rgb(0, 142.8, 59.5); + --bs-btn-hover-border-color: rgb(0, 134.4, 56); --bs-btn-focus-shadow-rgb: 38, 181, 98; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #008638; - --bs-btn-active-border-color: #007e35; + --bs-btn-active-bg: rgb(0, 134.4, 56); + --bs-btn-active-border-color: rgb(0, 126, 52.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #00a846; @@ -3024,12 +3024,12 @@ textarea.form-control-lg { --bs-btn-bg: #6610f2; --bs-btn-border-color: #6610f2; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #570ece; - --bs-btn-hover-border-color: #520dc2; + --bs-btn-hover-bg: rgb(86.7, 13.6, 205.7); + --bs-btn-hover-border-color: rgb(81.6, 12.8, 193.6); --bs-btn-focus-shadow-rgb: 125, 52, 244; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #520dc2; - --bs-btn-active-border-color: #4d0cb6; + --bs-btn-active-bg: rgb(81.6, 12.8, 193.6); + --bs-btn-active-border-color: rgb(76.5, 12, 181.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6610f2; @@ -3041,12 +3041,12 @@ textarea.form-control-lg { --bs-btn-bg: #007bff; --bs-btn-border-color: #007bff; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #0069d9; - --bs-btn-hover-border-color: #0062cc; + --bs-btn-hover-bg: rgb(0, 104.55, 216.75); + --bs-btn-hover-border-color: rgb(0, 98.4, 204); --bs-btn-focus-shadow-rgb: 38, 143, 255; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #0062cc; - --bs-btn-active-border-color: #005cbf; + --bs-btn-active-bg: rgb(0, 98.4, 204); + --bs-btn-active-border-color: rgb(0, 92.25, 191.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #007bff; @@ -3058,12 +3058,12 @@ textarea.form-control-lg { --bs-btn-bg: #ffc107; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #ffca2c; - --bs-btn-hover-border-color: #ffc720; + --bs-btn-hover-bg: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); --bs-btn-focus-shadow-rgb: 222, 169, 11; --bs-btn-active-color: #222; - --bs-btn-active-bg: #ffcd39; - --bs-btn-active-border-color: #ffc720; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #ffc107; @@ -3072,19 +3072,19 @@ textarea.form-control-lg { .btn-danger { --bs-btn-color: #fff; - --bs-btn-bg: #873208; - --bs-btn-border-color: #873208; + --bs-btn-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #732b07; - --bs-btn-hover-border-color: #6c2806; + --bs-btn-hover-bg: rgb(114.8300209205, 42.869874477, 7.1449790795); + --bs-btn-hover-border-color: rgb(108.0753138075, 40.3481171548, 6.7246861925); --bs-btn-focus-shadow-rgb: 153, 81, 45; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #6c2806; - --bs-btn-active-border-color: #652606; + --bs-btn-active-bg: rgb(108.0753138075, 40.3481171548, 6.7246861925); + --bs-btn-active-border-color: rgb(101.3206066946, 37.8263598326, 6.3043933054); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #873208; - --bs-btn-disabled-border-color: #873208; + --bs-btn-disabled-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-disabled-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); } .btn-light { @@ -3092,12 +3092,12 @@ textarea.form-control-lg { --bs-btn-bg: #f8f9fa; --bs-btn-border-color: #f8f9fa; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #d3d4d5; - --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-hover-bg: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); --bs-btn-focus-shadow-rgb: 216, 217, 218; --bs-btn-active-color: #222; - --bs-btn-active-bg: #c6c7c8; - --bs-btn-active-border-color: #babbbc; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #f8f9fa; @@ -3109,12 +3109,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #424649; - --bs-btn-hover-border-color: #373b3e; + --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #4d5154; - --bs-btn-active-border-color: #373b3e; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3207,19 +3207,19 @@ textarea.form-control-lg { } .btn-outline-danger { - --bs-btn-color: #873208; - --bs-btn-border-color: #873208; + --bs-btn-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #873208; - --bs-btn-hover-border-color: #873208; + --bs-btn-hover-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-hover-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-focus-shadow-rgb: 135, 50, 8; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #873208; - --bs-btn-active-border-color: #873208; + --bs-btn-active-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-active-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); - --bs-btn-disabled-color: #873208; + --bs-btn-disabled-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #873208; + --bs-btn-disabled-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-gradient: none; } @@ -4505,7 +4505,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2360280c' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%2896.4, 40, 12%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4623,8 +4623,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -6846,8 +6846,8 @@ textarea.form-control-lg { text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } .link-danger:hover, .link-danger:focus { - color: RGBA(108, 40, 6, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(108, 40, 6, var(--bs-link-underline-opacity, 1)) !important; + color: RGBA(108, 40, 7, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(108, 40, 7, var(--bs-link-underline-opacity, 1)) !important; } .link-light { diff --git a/src/assets/css/themes/litely-red.css b/src/assets/css/themes/litely-red.css index ee3ccb06..e9ba7191 100644 --- a/src/assets/css/themes/litely-red.css +++ b/src/assets/css/themes/litely-red.css @@ -34,7 +34,7 @@ --bs-success: #6610f2; --bs-info: #007bff; --bs-warning: #ffc107; - --bs-danger: #8c3409; + --bs-danger: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-light: #f8f9fa; --bs-dark: #212529; --bs-primary-rgb: 241, 100, 30; @@ -45,28 +45,28 @@ --bs-danger-rgb: 140, 52, 9; --bs-light-rgb: 248, 249, 250; --bs-dark-rgb: 33, 37, 41; - --bs-primary-text-emphasis: #60280c; + --bs-primary-text-emphasis: rgb(96.4, 40, 12); --bs-secondary-text-emphasis: #500000; - --bs-success-text-emphasis: #290661; - --bs-info-text-emphasis: #003166; - --bs-warning-text-emphasis: #664d03; - --bs-danger-text-emphasis: #381504; + --bs-success-text-emphasis: rgb(40.8, 6.4, 96.8); + --bs-info-text-emphasis: rgb(0, 49.2, 102); + --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); + --bs-danger-text-emphasis: rgb(55.9581589958, 20.8910460251, 3.4818410042); --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #fce0d2; + --bs-primary-bg-subtle: rgb(252.2, 224, 210); --bs-secondary-bg-subtle: #f4cccc; - --bs-success-bg-subtle: #e0cffc; - --bs-info-bg-subtle: #cce5ff; - --bs-warning-bg-subtle: #fff3cd; - --bs-danger-bg-subtle: #e8d6ce; - --bs-light-bg-subtle: #fcfcfd; + --bs-success-bg-subtle: rgb(224.4, 207.2, 252.4); + --bs-info-bg-subtle: rgb(204, 228.6, 255); + --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); + --bs-danger-bg-subtle: rgb(231.9790794979, 214.4455230126, 205.7409205021); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #f9c1a5; + --bs-primary-border-subtle: rgb(249.4, 193, 165); --bs-secondary-border-subtle: #e99999; - --bs-success-border-subtle: #c29ffa; - --bs-info-border-subtle: #99caff; - --bs-warning-border-subtle: #ffe69c; - --bs-danger-border-subtle: #d1ae9d; + --bs-success-border-subtle: rgb(193.8, 159.4, 249.8); + --bs-info-border-subtle: rgb(153, 202.2, 255); + --bs-warning-border-subtle: rgb(255, 230.2, 155.8); + --bs-danger-border-subtle: rgb(208.9581589958, 173.8910460251, 156.4818410042); --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -97,7 +97,7 @@ --bs-link-color: #f1641e; --bs-link-color-rgb: 241, 100, 30; --bs-link-decoration: none; - --bs-link-hover-color: #c15018; + --bs-link-hover-color: rgb(192.8, 80, 24); --bs-link-hover-color-rgb: 193, 80, 24; --bs-code-color: #d63384; --bs-highlight-color: #495057; @@ -122,8 +122,8 @@ --bs-focus-ring-color: rgba(241, 100, 30, 0.25); --bs-form-valid-color: #007bff; --bs-form-valid-border-color: #007bff; - --bs-form-invalid-color: #8c3409; - --bs-form-invalid-border-color: #8c3409; + --bs-form-invalid-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-form-invalid-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); } [data-bs-theme=dark] { @@ -140,46 +140,46 @@ --bs-secondary-bg-rgb: 52, 58, 64; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg: rgb(42.5, 47.5, 52.5); --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #f7a278; + --bs-primary-text-emphasis: rgb(246.6, 162, 120); --bs-secondary-text-emphasis: #de6666; - --bs-success-text-emphasis: #a370f7; - --bs-info-text-emphasis: #66b0ff; - --bs-warning-text-emphasis: #ffda6a; - --bs-danger-text-emphasis: #ba856b; + --bs-success-text-emphasis: rgb(163.2, 111.6, 247.2); + --bs-info-text-emphasis: rgb(102, 175.8, 255); + --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); + --bs-danger-text-emphasis: rgb(185.9372384937, 133.3365690377, 107.2227615063); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #301406; + --bs-primary-bg-subtle: rgb(48.2, 20, 6); --bs-secondary-bg-subtle: #280000; - --bs-success-bg-subtle: #140330; - --bs-info-bg-subtle: #001933; - --bs-warning-bg-subtle: #332701; - --bs-danger-bg-subtle: #1c0a02; + --bs-success-bg-subtle: rgb(20.4, 3.2, 48.4); + --bs-info-bg-subtle: rgb(0, 24.6, 51); + --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); + --bs-danger-bg-subtle: rgb(27.9790794979, 10.4455230126, 1.7409205021); --bs-light-bg-subtle: #343a40; --bs-dark-bg-subtle: #2b2e31; - --bs-primary-border-subtle: #913c12; + --bs-primary-border-subtle: rgb(144.6, 60, 18); --bs-secondary-border-subtle: #780000; - --bs-success-border-subtle: #3d0a91; - --bs-info-border-subtle: #004a99; - --bs-warning-border-subtle: #997404; - --bs-danger-border-subtle: #541f05; + --bs-success-border-subtle: rgb(61.2, 9.6, 145.2); + --bs-info-border-subtle: rgb(0, 73.8, 153); + --bs-warning-border-subtle: rgb(153, 115.8, 4.2); + --bs-danger-border-subtle: rgb(83.9372384937, 31.3365690377, 5.2227615063); --bs-light-border-subtle: #495057; --bs-dark-border-subtle: #343a40; --bs-heading-color: inherit; - --bs-link-color: #f7a278; - --bs-link-hover-color: #f9b593; + --bs-link-color: rgb(246.6, 162, 120); + --bs-link-hover-color: rgb(248.28, 180.6, 147); --bs-link-color-rgb: 247, 162, 120; - --bs-link-hover-color-rgb: 249, 181, 147; - --bs-code-color: #e685b5; + --bs-link-hover-color-rgb: 248, 181, 147; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #664d03; + --bs-highlight-bg: rgb(102, 77.2, 2.8); --bs-border-color: #495057; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66cb90; - --bs-form-valid-border-color: #66cb90; - --bs-form-invalid-color: #e891a6; - --bs-form-invalid-border-color: #e891a6; + --bs-form-valid-color: rgb(102, 202.8, 144); + --bs-form-valid-border-color: rgb(102, 202.8, 144); + --bs-form-invalid-color: rgb(231.6, 145.2, 165.6); + --bs-form-invalid-border-color: rgb(231.6, 145.2, 165.6); } *, @@ -1934,13 +1934,13 @@ progress { .table-primary { --bs-table-color: #222; - --bs-table-bg: #fce0d2; - --bs-table-border-color: #d0baaf; - --bs-table-striped-bg: #f1d7c9; + --bs-table-bg: rgb(252.2, 224, 210); + --bs-table-border-color: rgb(208.56, 186, 174.8); + --bs-table-striped-bg: rgb(241.29, 214.5, 201.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e6cdc0; + --bs-table-active-bg: rgb(230.38, 205, 192.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #ecd2c5; + --bs-table-hover-bg: rgb(235.835, 209.75, 196.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1950,11 +1950,11 @@ progress { --bs-table-color: #222; --bs-table-bg: #f4cccc; --bs-table-border-color: #caaaaa; - --bs-table-striped-bg: #eac4c4; + --bs-table-striped-bg: rgb(233.5, 195.5, 195.5); --bs-table-striped-color: #222; --bs-table-active-bg: #dfbbbb; --bs-table-active-color: #222; - --bs-table-hover-bg: #e4bfbf; + --bs-table-hover-bg: rgb(228.25, 191.25, 191.25); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1962,13 +1962,13 @@ progress { .table-success { --bs-table-color: #222; - --bs-table-bg: #e0cffc; - --bs-table-border-color: #baacd0; - --bs-table-striped-bg: #d7c6f1; + --bs-table-bg: rgb(224.4, 207.2, 252.4); + --bs-table-border-color: rgb(186.32, 172.56, 208.72); + --bs-table-striped-bg: rgb(214.88, 198.54, 241.48); --bs-table-striped-color: #222; - --bs-table-active-bg: #cdbee6; + --bs-table-active-bg: rgb(205.36, 189.88, 230.56); --bs-table-active-color: #222; - --bs-table-hover-bg: #d2c2ec; + --bs-table-hover-bg: rgb(210.12, 194.21, 236.02); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1976,13 +1976,13 @@ progress { .table-info { --bs-table-color: #222; - --bs-table-bg: #cce5ff; - --bs-table-border-color: #aabed3; - --bs-table-striped-bg: #c4dbf4; + --bs-table-bg: rgb(204, 228.6, 255); + --bs-table-border-color: rgb(170, 189.68, 210.8); + --bs-table-striped-bg: rgb(195.5, 218.87, 243.95); --bs-table-striped-color: #222; - --bs-table-active-bg: #bbd2e9; + --bs-table-active-bg: rgb(187, 209.14, 232.9); --bs-table-active-color: #222; - --bs-table-hover-bg: #bfd6ee; + --bs-table-hover-bg: rgb(191.25, 214.005, 238.425); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1990,13 +1990,13 @@ progress { .table-warning { --bs-table-color: #222; - --bs-table-bg: #fff3cd; - --bs-table-border-color: #d3c9ab; - --bs-table-striped-bg: #f4e9c4; + --bs-table-bg: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(210.8, 200.88, 171.12); + --bs-table-striped-bg: rgb(243.95, 232.17, 196.83); --bs-table-striped-color: #222; - --bs-table-active-bg: #e9debc; + --bs-table-active-bg: rgb(232.9, 221.74, 188.26); --bs-table-active-color: #222; - --bs-table-hover-bg: #eee3c0; + --bs-table-hover-bg: rgb(238.425, 226.955, 192.545); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2004,13 +2004,13 @@ progress { .table-danger { --bs-table-color: #222; - --bs-table-bg: #e8d6ce; - --bs-table-border-color: #c0b2ac; - --bs-table-striped-bg: #decdc5; + --bs-table-bg: rgb(231.9790794979, 214.4455230126, 205.7409205021); + --bs-table-border-color: rgb(192.3832635983, 178.35641841, 171.3927364017); + --bs-table-striped-bg: rgb(222.080125523, 205.4232468619, 197.153874477); --bs-table-striped-color: #222; - --bs-table-active-bg: #d4c4bd; + --bs-table-active-bg: rgb(212.1811715481, 196.4009707113, 188.5668284519); --bs-table-active-color: #222; - --bs-table-hover-bg: #d9c9c1; + --bs-table-hover-bg: rgb(217.1306485356, 200.9121087866, 192.8603514644); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2019,12 +2019,12 @@ progress { .table-light { --bs-table-color: #222; --bs-table-bg: #f8f9fa; - --bs-table-border-color: #cdcecf; - --bs-table-striped-bg: #edeeef; + --bs-table-border-color: rgb(205.2, 206, 206.8); + --bs-table-striped-bg: rgb(237.3, 238.25, 239.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e3e4e4; + --bs-table-active-bg: rgb(226.6, 227.5, 228.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #e8e9ea; + --bs-table-hover-bg: rgb(231.95, 232.875, 233.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2033,12 +2033,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: #4d5154; - --bs-table-striped-bg: #2c3034; + --bs-table-border-color: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2138,7 +2138,7 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: var(--bs-body-bg); - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2283,7 +2283,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.75); } @@ -2367,7 +2367,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2414,7 +2414,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23f8b28f'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28248, 177.5, 142.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2484,7 +2484,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2510,7 +2510,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-moz-range-track { width: 100%; @@ -2833,7 +2833,7 @@ textarea.form-control-lg { .was-validated .form-control:invalid, .form-control.is-invalid { border-color: var(--bs-form-invalid-border-color); padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%238c3409'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%238c3409' stroke='none'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28139.8953974895, 52.2276150628, 8.7046025105%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28139.8953974895, 52.2276150628, 8.7046025105%29' stroke='none'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2852,7 +2852,7 @@ textarea.form-control-lg { border-color: var(--bs-form-invalid-border-color); } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%238c3409'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%238c3409' stroke='none'/%3e%3c/svg%3e"); + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28139.8953974895, 52.2276150628, 8.7046025105%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28139.8953974895, 52.2276150628, 8.7046025105%29' stroke='none'/%3e%3c/svg%3e"); padding-right: 4.125rem; background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2974,12 +2974,12 @@ textarea.form-control-lg { --bs-btn-bg: #f1641e; --bs-btn-border-color: #f1641e; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #cd551a; - --bs-btn-hover-border-color: #c15018; + --bs-btn-hover-bg: rgb(204.85, 85, 25.5); + --bs-btn-hover-border-color: rgb(192.8, 80, 24); --bs-btn-focus-shadow-rgb: 243, 123, 64; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #c15018; - --bs-btn-active-border-color: #b54b17; + --bs-btn-active-bg: rgb(192.8, 80, 24); + --bs-btn-active-border-color: rgb(180.75, 75, 22.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #f1641e; @@ -3008,12 +3008,12 @@ textarea.form-control-lg { --bs-btn-bg: #6610f2; --bs-btn-border-color: #6610f2; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #570ece; - --bs-btn-hover-border-color: #520dc2; + --bs-btn-hover-bg: rgb(86.7, 13.6, 205.7); + --bs-btn-hover-border-color: rgb(81.6, 12.8, 193.6); --bs-btn-focus-shadow-rgb: 125, 52, 244; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #520dc2; - --bs-btn-active-border-color: #4d0cb6; + --bs-btn-active-bg: rgb(81.6, 12.8, 193.6); + --bs-btn-active-border-color: rgb(76.5, 12, 181.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6610f2; @@ -3025,12 +3025,12 @@ textarea.form-control-lg { --bs-btn-bg: #007bff; --bs-btn-border-color: #007bff; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #0069d9; - --bs-btn-hover-border-color: #0062cc; + --bs-btn-hover-bg: rgb(0, 104.55, 216.75); + --bs-btn-hover-border-color: rgb(0, 98.4, 204); --bs-btn-focus-shadow-rgb: 38, 143, 255; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #0062cc; - --bs-btn-active-border-color: #005cbf; + --bs-btn-active-bg: rgb(0, 98.4, 204); + --bs-btn-active-border-color: rgb(0, 92.25, 191.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #007bff; @@ -3042,12 +3042,12 @@ textarea.form-control-lg { --bs-btn-bg: #ffc107; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #ffca2c; - --bs-btn-hover-border-color: #ffc720; + --bs-btn-hover-bg: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); --bs-btn-focus-shadow-rgb: 222, 169, 11; --bs-btn-active-color: #222; - --bs-btn-active-bg: #ffcd39; - --bs-btn-active-border-color: #ffc720; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #ffc107; @@ -3056,19 +3056,19 @@ textarea.form-control-lg { .btn-danger { --bs-btn-color: #fff; - --bs-btn-bg: #8c3409; - --bs-btn-border-color: #8c3409; + --bs-btn-bg: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-btn-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #772c08; - --bs-btn-hover-border-color: #702a07; - --bs-btn-focus-shadow-rgb: 157, 82, 46; + --bs-btn-hover-bg: rgb(118.9110878661, 44.3934728033, 7.3989121339); + --bs-btn-hover-border-color: rgb(111.9163179916, 41.7820920502, 6.9636820084); + --bs-btn-focus-shadow-rgb: 157, 83, 46; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #702a07; - --bs-btn-active-border-color: #692707; + --bs-btn-active-bg: rgb(111.9163179916, 41.7820920502, 6.9636820084); + --bs-btn-active-border-color: rgb(104.9215481172, 39.1707112971, 6.5284518828); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #8c3409; - --bs-btn-disabled-border-color: #8c3409; + --bs-btn-disabled-bg: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-btn-disabled-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); } .btn-light { @@ -3076,12 +3076,12 @@ textarea.form-control-lg { --bs-btn-bg: #f8f9fa; --bs-btn-border-color: #f8f9fa; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #d3d4d5; - --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-hover-bg: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); --bs-btn-focus-shadow-rgb: 216, 217, 218; --bs-btn-active-color: #222; - --bs-btn-active-bg: #c6c7c8; - --bs-btn-active-border-color: #babbbc; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #f8f9fa; @@ -3093,12 +3093,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #424649; - --bs-btn-hover-border-color: #373b3e; + --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #4d5154; - --bs-btn-active-border-color: #373b3e; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3191,19 +3191,19 @@ textarea.form-control-lg { } .btn-outline-danger { - --bs-btn-color: #8c3409; - --bs-btn-border-color: #8c3409; + --bs-btn-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-btn-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #8c3409; - --bs-btn-hover-border-color: #8c3409; + --bs-btn-hover-bg: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-btn-hover-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-btn-focus-shadow-rgb: 140, 52, 9; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #8c3409; - --bs-btn-active-border-color: #8c3409; + --bs-btn-active-bg: rgb(139.8953974895, 52.2276150628, 8.7046025105); + --bs-btn-active-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); - --bs-btn-disabled-color: #8c3409; + --bs-btn-disabled-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #8c3409; + --bs-btn-disabled-border-color: rgb(139.8953974895, 52.2276150628, 8.7046025105); --bs-gradient: none; } @@ -4493,7 +4493,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2360280c' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%2896.4, 40, 12%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4611,8 +4611,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { diff --git a/src/assets/css/themes/litely.css b/src/assets/css/themes/litely.css index 3f5dcfc0..20ad67c1 100644 --- a/src/assets/css/themes/litely.css +++ b/src/assets/css/themes/litely.css @@ -34,7 +34,7 @@ --bs-success: #6610f2; --bs-info: #007bff; --bs-warning: #ffc107; - --bs-danger: #873208; + --bs-danger: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-light: #f8f9fa; --bs-dark: #212529; --bs-primary-rgb: 241, 100, 30; @@ -45,28 +45,28 @@ --bs-danger-rgb: 135, 50, 8; --bs-light-rgb: 248, 249, 250; --bs-dark-rgb: 33, 37, 41; - --bs-primary-text-emphasis: #60280c; - --bs-secondary-text-emphasis: #00431c; - --bs-success-text-emphasis: #290661; - --bs-info-text-emphasis: #003166; - --bs-warning-text-emphasis: #664d03; - --bs-danger-text-emphasis: #361403; + --bs-primary-text-emphasis: rgb(96.4, 40, 12); + --bs-secondary-text-emphasis: rgb(0, 67.2, 28); + --bs-success-text-emphasis: rgb(40.8, 6.4, 96.8); + --bs-info-text-emphasis: rgb(0, 49.2, 102); + --bs-warning-text-emphasis: rgb(102, 77.2, 2.8); + --bs-danger-text-emphasis: rgb(54.0376569038, 20.1740585774, 3.3623430962); --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #fce0d2; - --bs-secondary-bg-subtle: #cceeda; - --bs-success-bg-subtle: #e0cffc; - --bs-info-bg-subtle: #cce5ff; - --bs-warning-bg-subtle: #fff3cd; - --bs-danger-bg-subtle: #e7d6ce; - --bs-light-bg-subtle: #fcfcfd; + --bs-primary-bg-subtle: rgb(252.2, 224, 210); + --bs-secondary-bg-subtle: rgb(204, 237.6, 218); + --bs-success-bg-subtle: rgb(224.4, 207.2, 252.4); + --bs-info-bg-subtle: rgb(204, 228.6, 255); + --bs-warning-bg-subtle: rgb(255, 242.6, 205.4); + --bs-danger-bg-subtle: rgb(231.0188284519, 214.0870292887, 205.6811715481); + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #f9c1a5; - --bs-secondary-border-subtle: #99dcb5; - --bs-success-border-subtle: #c29ffa; - --bs-info-border-subtle: #99caff; - --bs-warning-border-subtle: #ffe69c; - --bs-danger-border-subtle: #cfad9c; + --bs-primary-border-subtle: rgb(249.4, 193, 165); + --bs-secondary-border-subtle: rgb(153, 220.2, 181); + --bs-success-border-subtle: rgb(193.8, 159.4, 249.8); + --bs-info-border-subtle: rgb(153, 202.2, 255); + --bs-warning-border-subtle: rgb(255, 230.2, 155.8); + --bs-danger-border-subtle: rgb(207.0376569038, 173.1740585774, 156.3623430962); --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; --bs-white-rgb: 255, 255, 255; @@ -97,7 +97,7 @@ --bs-link-color: #f1641e; --bs-link-color-rgb: 241, 100, 30; --bs-link-decoration: none; - --bs-link-hover-color: #c15018; + --bs-link-hover-color: rgb(192.8, 80, 24); --bs-link-hover-color-rgb: 193, 80, 24; --bs-code-color: #d63384; --bs-highlight-color: #495057; @@ -122,8 +122,8 @@ --bs-focus-ring-color: rgba(241, 100, 30, 0.25); --bs-form-valid-color: #007bff; --bs-form-valid-border-color: #007bff; - --bs-form-invalid-color: #873208; - --bs-form-invalid-border-color: #873208; + --bs-form-invalid-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-form-invalid-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); } [data-bs-theme=dark] { @@ -140,46 +140,46 @@ --bs-secondary-bg-rgb: 52, 58, 64; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg: rgb(42.5, 47.5, 52.5); --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #f7a278; - --bs-secondary-text-emphasis: #66cb90; - --bs-success-text-emphasis: #a370f7; - --bs-info-text-emphasis: #66b0ff; - --bs-warning-text-emphasis: #ffda6a; - --bs-danger-text-emphasis: #b7846b; + --bs-primary-text-emphasis: rgb(246.6, 162, 120); + --bs-secondary-text-emphasis: rgb(102, 202.8, 144); + --bs-success-text-emphasis: rgb(163.2, 111.6, 247.2); + --bs-info-text-emphasis: rgb(102, 175.8, 255); + --bs-warning-text-emphasis: rgb(255, 217.8, 106.2); + --bs-danger-text-emphasis: rgb(183.0564853556, 132.2610878661, 107.0435146444); --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #301406; - --bs-secondary-bg-subtle: #00220e; - --bs-success-bg-subtle: #140330; - --bs-info-bg-subtle: #001933; - --bs-warning-bg-subtle: #332701; - --bs-danger-bg-subtle: #1b0a02; + --bs-primary-bg-subtle: rgb(48.2, 20, 6); + --bs-secondary-bg-subtle: rgb(0, 33.6, 14); + --bs-success-bg-subtle: rgb(20.4, 3.2, 48.4); + --bs-info-bg-subtle: rgb(0, 24.6, 51); + --bs-warning-bg-subtle: rgb(51, 38.6, 1.4); + --bs-danger-bg-subtle: rgb(27.0188284519, 10.0870292887, 1.6811715481); --bs-light-bg-subtle: #343a40; --bs-dark-bg-subtle: #2b2e31; - --bs-primary-border-subtle: #913c12; - --bs-secondary-border-subtle: #00652a; - --bs-success-border-subtle: #3d0a91; - --bs-info-border-subtle: #004a99; - --bs-warning-border-subtle: #997404; - --bs-danger-border-subtle: #511e05; + --bs-primary-border-subtle: rgb(144.6, 60, 18); + --bs-secondary-border-subtle: rgb(0, 100.8, 42); + --bs-success-border-subtle: rgb(61.2, 9.6, 145.2); + --bs-info-border-subtle: rgb(0, 73.8, 153); + --bs-warning-border-subtle: rgb(153, 115.8, 4.2); + --bs-danger-border-subtle: rgb(81.0564853556, 30.2610878661, 5.0435146444); --bs-light-border-subtle: #495057; --bs-dark-border-subtle: #343a40; --bs-heading-color: inherit; - --bs-link-color: #f7a278; - --bs-link-hover-color: #f9b593; + --bs-link-color: rgb(246.6, 162, 120); + --bs-link-hover-color: rgb(248.28, 180.6, 147); --bs-link-color-rgb: 247, 162, 120; - --bs-link-hover-color-rgb: 249, 181, 147; - --bs-code-color: #e685b5; + --bs-link-hover-color-rgb: 248, 181, 147; + --bs-code-color: rgb(230.4, 132.6, 181.2); --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #664d03; + --bs-highlight-bg: rgb(102, 77.2, 2.8); --bs-border-color: #495057; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #66cb90; - --bs-form-valid-border-color: #66cb90; - --bs-form-invalid-color: #e891a6; - --bs-form-invalid-border-color: #e891a6; + --bs-form-valid-color: rgb(102, 202.8, 144); + --bs-form-valid-border-color: rgb(102, 202.8, 144); + --bs-form-invalid-color: rgb(231.6, 145.2, 165.6); + --bs-form-invalid-border-color: rgb(231.6, 145.2, 165.6); } *, @@ -1934,13 +1934,13 @@ progress { .table-primary { --bs-table-color: #222; - --bs-table-bg: #fce0d2; - --bs-table-border-color: #d0baaf; - --bs-table-striped-bg: #f1d7c9; + --bs-table-bg: rgb(252.2, 224, 210); + --bs-table-border-color: rgb(208.56, 186, 174.8); + --bs-table-striped-bg: rgb(241.29, 214.5, 201.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e6cdc0; + --bs-table-active-bg: rgb(230.38, 205, 192.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #ecd2c5; + --bs-table-hover-bg: rgb(235.835, 209.75, 196.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1948,13 +1948,13 @@ progress { .table-secondary { --bs-table-color: #222; - --bs-table-bg: #cceeda; - --bs-table-border-color: #aac5b5; - --bs-table-striped-bg: #c4e4d1; + --bs-table-bg: rgb(204, 237.6, 218); + --bs-table-border-color: rgb(170, 196.88, 181.2); + --bs-table-striped-bg: rgb(195.5, 227.42, 208.8); --bs-table-striped-color: #222; - --bs-table-active-bg: #bbdac8; + --bs-table-active-bg: rgb(187, 217.24, 199.6); --bs-table-active-color: #222; - --bs-table-hover-bg: #bfdfcc; + --bs-table-hover-bg: rgb(191.25, 222.33, 204.2); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1962,13 +1962,13 @@ progress { .table-success { --bs-table-color: #222; - --bs-table-bg: #e0cffc; - --bs-table-border-color: #baacd0; - --bs-table-striped-bg: #d7c6f1; + --bs-table-bg: rgb(224.4, 207.2, 252.4); + --bs-table-border-color: rgb(186.32, 172.56, 208.72); + --bs-table-striped-bg: rgb(214.88, 198.54, 241.48); --bs-table-striped-color: #222; - --bs-table-active-bg: #cdbee6; + --bs-table-active-bg: rgb(205.36, 189.88, 230.56); --bs-table-active-color: #222; - --bs-table-hover-bg: #d2c2ec; + --bs-table-hover-bg: rgb(210.12, 194.21, 236.02); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1976,13 +1976,13 @@ progress { .table-info { --bs-table-color: #222; - --bs-table-bg: #cce5ff; - --bs-table-border-color: #aabed3; - --bs-table-striped-bg: #c4dbf4; + --bs-table-bg: rgb(204, 228.6, 255); + --bs-table-border-color: rgb(170, 189.68, 210.8); + --bs-table-striped-bg: rgb(195.5, 218.87, 243.95); --bs-table-striped-color: #222; - --bs-table-active-bg: #bbd2e9; + --bs-table-active-bg: rgb(187, 209.14, 232.9); --bs-table-active-color: #222; - --bs-table-hover-bg: #bfd6ee; + --bs-table-hover-bg: rgb(191.25, 214.005, 238.425); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1990,13 +1990,13 @@ progress { .table-warning { --bs-table-color: #222; - --bs-table-bg: #fff3cd; - --bs-table-border-color: #d3c9ab; - --bs-table-striped-bg: #f4e9c4; + --bs-table-bg: rgb(255, 242.6, 205.4); + --bs-table-border-color: rgb(210.8, 200.88, 171.12); + --bs-table-striped-bg: rgb(243.95, 232.17, 196.83); --bs-table-striped-color: #222; - --bs-table-active-bg: #e9debc; + --bs-table-active-bg: rgb(232.9, 221.74, 188.26); --bs-table-active-color: #222; - --bs-table-hover-bg: #eee3c0; + --bs-table-hover-bg: rgb(238.425, 226.955, 192.545); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2004,13 +2004,13 @@ progress { .table-danger { --bs-table-color: #222; - --bs-table-bg: #e7d6ce; - --bs-table-border-color: #c0b2ac; - --bs-table-striped-bg: #ddcdc5; + --bs-table-bg: rgb(231.0188284519, 214.0870292887, 205.6811715481); + --bs-table-border-color: rgb(191.6150627615, 178.069623431, 171.3449372385); + --bs-table-striped-bg: rgb(221.1678870293, 205.0826778243, 197.0971129707); --bs-table-striped-color: #222; - --bs-table-active-bg: #d3c4bd; + --bs-table-active-bg: rgb(211.3169456067, 196.0783263598, 188.5130543933); --bs-table-active-color: #222; - --bs-table-hover-bg: #d8c9c1; + --bs-table-hover-bg: rgb(216.242416318, 200.5805020921, 192.805083682); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2019,12 +2019,12 @@ progress { .table-light { --bs-table-color: #222; --bs-table-bg: #f8f9fa; - --bs-table-border-color: #cdcecf; - --bs-table-striped-bg: #edeeef; + --bs-table-border-color: rgb(205.2, 206, 206.8); + --bs-table-striped-bg: rgb(237.3, 238.25, 239.2); --bs-table-striped-color: #222; - --bs-table-active-bg: #e3e4e4; + --bs-table-active-bg: rgb(226.6, 227.5, 228.4); --bs-table-active-color: #222; - --bs-table-hover-bg: #e8e9ea; + --bs-table-hover-bg: rgb(231.95, 232.875, 233.8); --bs-table-hover-color: #222; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2033,12 +2033,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: #4d5154; - --bs-table-striped-bg: #2c3034; + --bs-table-border-color: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2138,7 +2138,7 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: var(--bs-body-bg); - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2283,7 +2283,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.75); } @@ -2367,7 +2367,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #f8b28f; + border-color: rgb(248, 177.5, 142.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); } @@ -2414,7 +2414,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23f8b28f'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28248, 177.5, 142.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2484,7 +2484,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-webkit-slider-runnable-track { width: 100%; @@ -2510,7 +2510,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #fbd1bc; + background-color: rgb(250.8, 208.5, 187.5); } .form-range::-moz-range-track { width: 100%; @@ -2833,7 +2833,7 @@ textarea.form-control-lg { .was-validated .form-control:invalid, .form-control.is-invalid { border-color: var(--bs-form-invalid-border-color); padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23873208'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23873208' stroke='none'/%3e%3c/svg%3e"); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29' stroke='none'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2852,7 +2852,7 @@ textarea.form-control-lg { border-color: var(--bs-form-invalid-border-color); } .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23873208'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23873208' stroke='none'/%3e%3c/svg%3e"); + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='rgb%28135.0941422594, 50.4351464435, 8.4058577406%29' stroke='none'/%3e%3c/svg%3e"); padding-right: 4.125rem; background-position: right 0.75rem center, center right 2.25rem; background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); @@ -2974,12 +2974,12 @@ textarea.form-control-lg { --bs-btn-bg: #f1641e; --bs-btn-border-color: #f1641e; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #cd551a; - --bs-btn-hover-border-color: #c15018; + --bs-btn-hover-bg: rgb(204.85, 85, 25.5); + --bs-btn-hover-border-color: rgb(192.8, 80, 24); --bs-btn-focus-shadow-rgb: 243, 123, 64; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #c15018; - --bs-btn-active-border-color: #b54b17; + --bs-btn-active-bg: rgb(192.8, 80, 24); + --bs-btn-active-border-color: rgb(180.75, 75, 22.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #f1641e; @@ -2991,12 +2991,12 @@ textarea.form-control-lg { --bs-btn-bg: #00a846; --bs-btn-border-color: #00a846; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #008f3c; - --bs-btn-hover-border-color: #008638; + --bs-btn-hover-bg: rgb(0, 142.8, 59.5); + --bs-btn-hover-border-color: rgb(0, 134.4, 56); --bs-btn-focus-shadow-rgb: 38, 181, 98; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #008638; - --bs-btn-active-border-color: #007e35; + --bs-btn-active-bg: rgb(0, 134.4, 56); + --bs-btn-active-border-color: rgb(0, 126, 52.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #00a846; @@ -3008,12 +3008,12 @@ textarea.form-control-lg { --bs-btn-bg: #6610f2; --bs-btn-border-color: #6610f2; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #570ece; - --bs-btn-hover-border-color: #520dc2; + --bs-btn-hover-bg: rgb(86.7, 13.6, 205.7); + --bs-btn-hover-border-color: rgb(81.6, 12.8, 193.6); --bs-btn-focus-shadow-rgb: 125, 52, 244; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #520dc2; - --bs-btn-active-border-color: #4d0cb6; + --bs-btn-active-bg: rgb(81.6, 12.8, 193.6); + --bs-btn-active-border-color: rgb(76.5, 12, 181.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #6610f2; @@ -3025,12 +3025,12 @@ textarea.form-control-lg { --bs-btn-bg: #007bff; --bs-btn-border-color: #007bff; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #0069d9; - --bs-btn-hover-border-color: #0062cc; + --bs-btn-hover-bg: rgb(0, 104.55, 216.75); + --bs-btn-hover-border-color: rgb(0, 98.4, 204); --bs-btn-focus-shadow-rgb: 38, 143, 255; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #0062cc; - --bs-btn-active-border-color: #005cbf; + --bs-btn-active-bg: rgb(0, 98.4, 204); + --bs-btn-active-border-color: rgb(0, 92.25, 191.25); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #007bff; @@ -3042,12 +3042,12 @@ textarea.form-control-lg { --bs-btn-bg: #ffc107; --bs-btn-border-color: #ffc107; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #ffca2c; - --bs-btn-hover-border-color: #ffc720; + --bs-btn-hover-bg: rgb(255, 202.3, 44.2); + --bs-btn-hover-border-color: rgb(255, 199.2, 31.8); --bs-btn-focus-shadow-rgb: 222, 169, 11; --bs-btn-active-color: #222; - --bs-btn-active-bg: #ffcd39; - --bs-btn-active-border-color: #ffc720; + --bs-btn-active-bg: rgb(255, 205.4, 56.6); + --bs-btn-active-border-color: rgb(255, 199.2, 31.8); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #ffc107; @@ -3056,19 +3056,19 @@ textarea.form-control-lg { .btn-danger { --bs-btn-color: #fff; - --bs-btn-bg: #873208; - --bs-btn-border-color: #873208; + --bs-btn-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #732b07; - --bs-btn-hover-border-color: #6c2806; + --bs-btn-hover-bg: rgb(114.8300209205, 42.869874477, 7.1449790795); + --bs-btn-hover-border-color: rgb(108.0753138075, 40.3481171548, 6.7246861925); --bs-btn-focus-shadow-rgb: 153, 81, 45; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #6c2806; - --bs-btn-active-border-color: #652606; + --bs-btn-active-bg: rgb(108.0753138075, 40.3481171548, 6.7246861925); + --bs-btn-active-border-color: rgb(101.3206066946, 37.8263598326, 6.3043933054); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #873208; - --bs-btn-disabled-border-color: #873208; + --bs-btn-disabled-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-disabled-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); } .btn-light { @@ -3076,12 +3076,12 @@ textarea.form-control-lg { --bs-btn-bg: #f8f9fa; --bs-btn-border-color: #f8f9fa; --bs-btn-hover-color: #222; - --bs-btn-hover-bg: #d3d4d5; - --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-hover-bg: rgb(210.8, 211.65, 212.5); + --bs-btn-hover-border-color: rgb(198.4, 199.2, 200); --bs-btn-focus-shadow-rgb: 216, 217, 218; --bs-btn-active-color: #222; - --bs-btn-active-bg: #c6c7c8; - --bs-btn-active-border-color: #babbbc; + --bs-btn-active-bg: rgb(198.4, 199.2, 200); + --bs-btn-active-border-color: rgb(186, 186.75, 187.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #222; --bs-btn-disabled-bg: #f8f9fa; @@ -3093,12 +3093,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #424649; - --bs-btn-hover-border-color: #373b3e; + --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #4d5154; - --bs-btn-active-border-color: #373b3e; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3191,19 +3191,19 @@ textarea.form-control-lg { } .btn-outline-danger { - --bs-btn-color: #873208; - --bs-btn-border-color: #873208; + --bs-btn-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #873208; - --bs-btn-hover-border-color: #873208; + --bs-btn-hover-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-hover-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-focus-shadow-rgb: 135, 50, 8; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #873208; - --bs-btn-active-border-color: #873208; + --bs-btn-active-bg: rgb(135.0941422594, 50.4351464435, 8.4058577406); + --bs-btn-active-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-active-shadow: inset 0 3px 5px rgba(34, 34, 34, 0.125); - --bs-btn-disabled-color: #873208; + --bs-btn-disabled-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #873208; + --bs-btn-disabled-border-color: rgb(135.0941422594, 50.4351464435, 8.4058577406); --bs-gradient: none; } @@ -4493,7 +4493,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2360280c' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%2896.4, 40, 12%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(241, 100, 30, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4611,8 +4611,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f7a278'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28246.6, 162, 120%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -6834,8 +6834,8 @@ textarea.form-control-lg { text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } .link-danger:hover, .link-danger:focus { - color: RGBA(108, 40, 6, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(108, 40, 6, var(--bs-link-underline-opacity, 1)) !important; + color: RGBA(108, 40, 7, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(108, 40, 7, var(--bs-link-underline-opacity, 1)) !important; } .link-light { diff --git a/src/assets/css/themes/vaporwave-dark.css b/src/assets/css/themes/vaporwave-dark.css index 478b5b6f..124489e1 100644 --- a/src/assets/css/themes/vaporwave-dark.css +++ b/src/assets/css/themes/vaporwave-dark.css @@ -45,27 +45,27 @@ --bs-danger-rgb: 255, 95, 110; --bs-light-rgb: 68, 68, 68; --bs-dark-rgb: 235, 235, 235; - --bs-primary-text-emphasis: #661a4a; - --bs-secondary-text-emphasis: #005266; - --bs-success-text-emphasis: #026640; - --bs-info-text-emphasis: #005266; - --bs-warning-text-emphasis: #66643c; + --bs-primary-text-emphasis: rgb(102, 25.6, 74.4); + --bs-secondary-text-emphasis: rgb(0.4, 82, 101.6); + --bs-success-text-emphasis: rgb(2, 102, 64.4); + --bs-info-text-emphasis: rgb(0.4, 82, 101.6); + --bs-warning-text-emphasis: rgb(102, 100.4, 60); --bs-danger-text-emphasis: #66262c; --bs-light-text-emphasis: #444; --bs-dark-text-emphasis: #444; - --bs-primary-bg-subtle: #ffd9f1; - --bs-secondary-bg-subtle: #ccf5ff; - --bs-success-bg-subtle: #cdffec; - --bs-info-bg-subtle: #ccf5ff; - --bs-warning-bg-subtle: #fffeea; + --bs-primary-bg-subtle: rgb(255, 216.8, 241.2); + --bs-secondary-bg-subtle: rgb(204.2, 245, 254.8); + --bs-success-bg-subtle: rgb(205, 255, 236.2); + --bs-info-bg-subtle: rgb(204.2, 245, 254.8); + --bs-warning-bg-subtle: rgb(255, 254.2, 234); --bs-danger-bg-subtle: #ffdfe2; - --bs-light-bg-subtle: #fcfcfd; + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #ffb3e3; - --bs-secondary-border-subtle: #99ebff; - --bs-success-border-subtle: #9bffd9; - --bs-info-border-subtle: #99ebff; - --bs-warning-border-subtle: #fffdd5; + --bs-primary-border-subtle: rgb(255, 178.6, 227.4); + --bs-secondary-border-subtle: rgb(153.4, 235, 254.6); + --bs-success-border-subtle: rgb(155, 255, 217.4); + --bs-info-border-subtle: rgb(153.4, 235, 254.6); + --bs-warning-border-subtle: rgb(255, 253.4, 213); --bs-danger-border-subtle: #ffbfc5; --bs-light-border-subtle: #ebebeb; --bs-dark-border-subtle: #adb5bd; @@ -97,7 +97,7 @@ --bs-link-color: rgb(255, 64, 186); --bs-link-color-rgb: 255, 64, 186; --bs-link-decoration: none; - --bs-link-hover-color: #cc3395; + --bs-link-hover-color: rgb(204, 51.2, 148.8); --bs-link-hover-color-rgb: 204, 51, 149; --bs-code-color: rgb(255, 64, 186); --bs-highlight-color: #ebebeb; @@ -142,42 +142,42 @@ --bs-tertiary-color-rgb: 222, 226, 230; --bs-tertiary-bg: #292929; --bs-tertiary-bg-rgb: 41, 41, 41; - --bs-primary-text-emphasis: #ff8cd6; - --bs-secondary-text-emphasis: #67e1fe; - --bs-success-text-emphasis: #69ffc7; - --bs-info-text-emphasis: #67e1fe; - --bs-warning-text-emphasis: #fffdc0; + --bs-primary-text-emphasis: rgb(255, 140.4, 213.6); + --bs-secondary-text-emphasis: rgb(102.6, 225, 254.4); + --bs-success-text-emphasis: rgb(105, 255, 198.6); + --bs-info-text-emphasis: rgb(102.6, 225, 254.4); + --bs-warning-text-emphasis: rgb(255, 252.6, 192); --bs-danger-text-emphasis: #ff9fa8; --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #330d25; - --bs-secondary-bg-subtle: #002933; - --bs-success-bg-subtle: #013320; - --bs-info-bg-subtle: #002933; - --bs-warning-bg-subtle: #33321e; + --bs-primary-bg-subtle: rgb(51, 12.8, 37.2); + --bs-secondary-bg-subtle: rgb(0.2, 41, 50.8); + --bs-success-bg-subtle: rgb(1, 51, 32.2); + --bs-info-bg-subtle: rgb(0.2, 41, 50.8); + --bs-warning-bg-subtle: rgb(51, 50.2, 30); --bs-danger-bg-subtle: #331316; --bs-light-bg-subtle: #303030; --bs-dark-bg-subtle: #181818; - --bs-primary-border-subtle: #992670; - --bs-secondary-border-subtle: #017b98; - --bs-success-border-subtle: #039961; - --bs-info-border-subtle: #017b98; - --bs-warning-border-subtle: #99975a; + --bs-primary-border-subtle: rgb(153, 38.4, 111.6); + --bs-secondary-border-subtle: rgb(0.6, 123, 152.4); + --bs-success-border-subtle: rgb(3, 153, 96.6); + --bs-info-border-subtle: rgb(0.6, 123, 152.4); + --bs-warning-border-subtle: rgb(153, 150.6, 90); --bs-danger-border-subtle: #993942; --bs-light-border-subtle: #444; --bs-dark-border-subtle: #303030; --bs-heading-color: inherit; - --bs-link-color: #ff8cd6; - --bs-link-hover-color: #ffa3de; + --bs-link-color: rgb(255, 140.4, 213.6); + --bs-link-hover-color: rgb(255, 163.32, 221.88); --bs-link-color-rgb: 255, 140, 214; --bs-link-hover-color-rgb: 255, 163, 222; - --bs-code-color: #ff8cd6; + --bs-code-color: rgb(255, 140.4, 213.6); --bs-highlight-color: #dee2e6; --bs-highlight-bg: #888; --bs-border-color: #444; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #69ffc7; - --bs-form-valid-border-color: #69ffc7; + --bs-form-valid-color: rgb(105, 255, 198.6); + --bs-form-valid-border-color: rgb(105, 255, 198.6); --bs-form-invalid-color: #ff9fa8; --bs-form-invalid-border-color: #ff9fa8; } @@ -1936,13 +1936,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #ffd9f1; - --bs-table-border-color: #ccaec1; - --bs-table-striped-bg: #f2cee5; + --bs-table-bg: rgb(255, 216.8, 241.2); + --bs-table-border-color: rgb(204, 173.44, 192.96); + --bs-table-striped-bg: rgb(242.25, 205.96, 229.14); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6c3d9; + --bs-table-active-bg: rgb(229.5, 195.12, 217.08); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecc9df; + --bs-table-hover-bg: rgb(235.875, 200.54, 223.11); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1950,13 +1950,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #ccf5ff; - --bs-table-border-color: #a3c4cc; - --bs-table-striped-bg: #c2e9f2; + --bs-table-bg: rgb(204.2, 245, 254.8); + --bs-table-border-color: rgb(163.36, 196, 203.84); + --bs-table-striped-bg: rgb(193.99, 232.75, 242.06); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dde6; + --bs-table-active-bg: rgb(183.78, 220.5, 229.32); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde3ec; + --bs-table-hover-bg: rgb(188.885, 226.625, 235.69); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1964,13 +1964,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #cdffec; - --bs-table-border-color: #a4ccbd; - --bs-table-striped-bg: #c3f2e0; + --bs-table-bg: rgb(205, 255, 236.2); + --bs-table-border-color: rgb(164, 204, 188.96); + --bs-table-striped-bg: rgb(194.75, 242.25, 224.39); --bs-table-striped-color: #000; - --bs-table-active-bg: #b9e6d4; + --bs-table-active-bg: rgb(184.5, 229.5, 212.58); --bs-table-active-color: #000; - --bs-table-hover-bg: #beecda; + --bs-table-hover-bg: rgb(189.625, 235.875, 218.485); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1978,13 +1978,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #ccf5ff; - --bs-table-border-color: #a3c4cc; - --bs-table-striped-bg: #c2e9f2; + --bs-table-bg: rgb(204.2, 245, 254.8); + --bs-table-border-color: rgb(163.36, 196, 203.84); + --bs-table-striped-bg: rgb(193.99, 232.75, 242.06); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dde6; + --bs-table-active-bg: rgb(183.78, 220.5, 229.32); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde3ec; + --bs-table-hover-bg: rgb(188.885, 226.625, 235.69); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1992,13 +1992,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fffeea; - --bs-table-border-color: #cccbbb; - --bs-table-striped-bg: #f2f1de; + --bs-table-bg: rgb(255, 254.2, 234); + --bs-table-border-color: rgb(204, 203.36, 187.2); + --bs-table-striped-bg: rgb(242.25, 241.49, 222.3); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6e5d3; + --bs-table-active-bg: rgb(229.5, 228.78, 210.6); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecebd8; + --bs-table-hover-bg: rgb(235.875, 235.135, 216.45); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2007,12 +2007,12 @@ progress { .table-danger { --bs-table-color: #000; --bs-table-bg: #ffdfe2; - --bs-table-border-color: #ccb2b5; - --bs-table-striped-bg: #f2d4d7; + --bs-table-border-color: rgb(204, 178.4, 180.8); + --bs-table-striped-bg: rgb(242.25, 211.85, 214.7); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6c9cb; + --bs-table-active-bg: rgb(229.5, 200.7, 203.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecced1; + --bs-table-hover-bg: rgb(235.875, 206.275, 209.05); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2021,12 +2021,12 @@ progress { .table-light { --bs-table-color: #fff; --bs-table-bg: #444; - --bs-table-border-color: dimgray; - --bs-table-striped-bg: #4d4d4d; + --bs-table-border-color: rgb(105.4, 105.4, 105.4); + --bs-table-striped-bg: rgb(77.35, 77.35, 77.35); --bs-table-striped-color: #fff; - --bs-table-active-bg: #575757; + --bs-table-active-bg: rgb(86.7, 86.7, 86.7); --bs-table-active-color: #fff; - --bs-table-hover-bg: #525252; + --bs-table-hover-bg: rgb(82.025, 82.025, 82.025); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2036,11 +2036,11 @@ progress { --bs-table-color: #000; --bs-table-bg: #ebebeb; --bs-table-border-color: #bcbcbc; - --bs-table-striped-bg: #dfdfdf; + --bs-table-striped-bg: rgb(223.25, 223.25, 223.25); --bs-table-striped-color: #000; - --bs-table-active-bg: #d4d4d4; + --bs-table-active-bg: rgb(211.5, 211.5, 211.5); --bs-table-active-color: #000; - --bs-table-hover-bg: #d9d9d9; + --bs-table-hover-bg: rgb(217.375, 217.375, 217.375); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2141,7 +2141,7 @@ progress { .form-control:focus { color: #fff; background-color: #888; - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2288,7 +2288,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2372,7 +2372,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2419,7 +2419,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffa0dd'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28255, 159.5, 220.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2491,7 +2491,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #ffc6ea; + background-color: rgb(255, 197.7, 234.3); background-image: var(--bs-gradient); } .form-range::-webkit-slider-runnable-track { @@ -2521,7 +2521,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #ffc6ea; + background-color: rgb(255, 197.7, 234.3); background-image: var(--bs-gradient); } .form-range::-moz-range-track { @@ -2994,12 +2994,12 @@ textarea.form-control-lg { --bs-btn-bg: rgb(255, 64, 186); --bs-btn-border-color: rgb(255, 64, 186); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #d9369e; - --bs-btn-hover-border-color: #cc3395; + --bs-btn-hover-bg: rgb(216.75, 54.4, 158.1); + --bs-btn-hover-border-color: rgb(204, 51.2, 148.8); --bs-btn-focus-shadow-rgb: 255, 93, 196; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #cc3395; - --bs-btn-active-border-color: #bf308c; + --bs-btn-active-bg: rgb(204, 51.2, 148.8); + --bs-btn-active-border-color: rgb(191.25, 48, 139.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: rgb(255, 64, 186); @@ -3011,12 +3011,12 @@ textarea.form-control-lg { --bs-btn-bg: #01cdfe; --bs-btn-border-color: #01cdfe; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #27d5fe; - --bs-btn-hover-border-color: #1ad2fe; + --bs-btn-hover-bg: rgb(39.1, 212.5, 254.15); + --bs-btn-hover-border-color: rgb(26.4, 210, 254.1); --bs-btn-focus-shadow-rgb: 1, 174, 216; --bs-btn-active-color: #000; - --bs-btn-active-bg: #34d7fe; - --bs-btn-active-border-color: #1ad2fe; + --bs-btn-active-bg: rgb(51.8, 215, 254.2); + --bs-btn-active-border-color: rgb(26.4, 210, 254.1); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #01cdfe; @@ -3028,12 +3028,12 @@ textarea.form-control-lg { --bs-btn-bg: #05ffa1; --bs-btn-border-color: #05ffa1; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #2bffaf; - --bs-btn-hover-border-color: #1effaa; + --bs-btn-hover-bg: rgb(42.5, 255, 175.1); + --bs-btn-hover-border-color: rgb(30, 255, 170.4); --bs-btn-focus-shadow-rgb: 4, 217, 137; --bs-btn-active-color: #000; - --bs-btn-active-bg: #37ffb4; - --bs-btn-active-border-color: #1effaa; + --bs-btn-active-bg: rgb(55, 255, 179.8); + --bs-btn-active-border-color: rgb(30, 255, 170.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #05ffa1; @@ -3045,12 +3045,12 @@ textarea.form-control-lg { --bs-btn-bg: #01cdfe; --bs-btn-border-color: #01cdfe; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #27d5fe; - --bs-btn-hover-border-color: #1ad2fe; + --bs-btn-hover-bg: rgb(39.1, 212.5, 254.15); + --bs-btn-hover-border-color: rgb(26.4, 210, 254.1); --bs-btn-focus-shadow-rgb: 1, 174, 216; --bs-btn-active-color: #000; - --bs-btn-active-bg: #34d7fe; - --bs-btn-active-border-color: #1ad2fe; + --bs-btn-active-bg: rgb(51.8, 215, 254.2); + --bs-btn-active-border-color: rgb(26.4, 210, 254.1); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #01cdfe; @@ -3062,12 +3062,12 @@ textarea.form-control-lg { --bs-btn-bg: #fffb96; --bs-btn-border-color: #fffb96; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #fffca6; - --bs-btn-hover-border-color: #fffba1; + --bs-btn-hover-bg: rgb(255, 251.6, 165.75); + --bs-btn-hover-border-color: rgb(255, 251.4, 160.5); --bs-btn-focus-shadow-rgb: 217, 213, 128; --bs-btn-active-color: #000; - --bs-btn-active-bg: #fffcab; - --bs-btn-active-border-color: #fffba1; + --bs-btn-active-bg: rgb(255, 251.8, 171); + --bs-btn-active-border-color: rgb(255, 251.4, 160.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #fffb96; @@ -3079,12 +3079,12 @@ textarea.form-control-lg { --bs-btn-bg: rgb(255, 95, 110); --bs-btn-border-color: rgb(255, 95, 110); --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ff7784; - --bs-btn-hover-border-color: #ff6f7d; + --bs-btn-hover-bg: rgb(255, 119, 131.75); + --bs-btn-hover-border-color: rgb(255, 111, 124.5); --bs-btn-focus-shadow-rgb: 217, 81, 94; --bs-btn-active-color: #000; --bs-btn-active-bg: #ff7f8b; - --bs-btn-active-border-color: #ff6f7d; + --bs-btn-active-border-color: rgb(255, 111, 124.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: rgb(255, 95, 110); @@ -3096,11 +3096,11 @@ textarea.form-control-lg { --bs-btn-bg: #444; --bs-btn-border-color: #444; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #3a3a3a; - --bs-btn-hover-border-color: #363636; + --bs-btn-hover-bg: rgb(57.8, 57.8, 57.8); + --bs-btn-hover-border-color: rgb(54.4, 54.4, 54.4); --bs-btn-focus-shadow-rgb: 96, 96, 96; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #363636; + --bs-btn-active-bg: rgb(54.4, 54.4, 54.4); --bs-btn-active-border-color: #333333; --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; @@ -4534,7 +4534,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23661a4a' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%28102, 25.6, 74.4%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(255, 64, 186, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4652,8 +4652,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ff8cd6'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ff8cd6'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28255, 140.4, 213.6%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28255, 140.4, 213.6%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { diff --git a/src/assets/css/themes/vaporwave-light.css b/src/assets/css/themes/vaporwave-light.css index 14db532b..b171b3cd 100644 --- a/src/assets/css/themes/vaporwave-light.css +++ b/src/assets/css/themes/vaporwave-light.css @@ -35,7 +35,7 @@ --bs-info: #01cdfe; --bs-warning: #fffb96; --bs-danger: rgb(255, 95, 110); - --bs-light: #dadee3; + --bs-light: rgb(217.6474137931, 222.175, 226.7025862069); --bs-dark: #212529; --bs-primary-rgb: 255, 64, 186; --bs-secondary-rgb: 1, 205, 254; @@ -45,27 +45,27 @@ --bs-danger-rgb: 255, 95, 110; --bs-light-rgb: 218, 222, 227; --bs-dark-rgb: 33, 37, 41; - --bs-primary-text-emphasis: #661a4a; - --bs-secondary-text-emphasis: #005266; - --bs-success-text-emphasis: #026640; - --bs-info-text-emphasis: #005266; - --bs-warning-text-emphasis: #66643c; + --bs-primary-text-emphasis: rgb(102, 25.6, 74.4); + --bs-secondary-text-emphasis: rgb(0.4, 82, 101.6); + --bs-success-text-emphasis: rgb(2, 102, 64.4); + --bs-info-text-emphasis: rgb(0.4, 82, 101.6); + --bs-warning-text-emphasis: rgb(102, 100.4, 60); --bs-danger-text-emphasis: #66262c; --bs-light-text-emphasis: #495057; --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #ffd9f1; - --bs-secondary-bg-subtle: #ccf5ff; - --bs-success-bg-subtle: #cdffec; - --bs-info-bg-subtle: #ccf5ff; - --bs-warning-bg-subtle: #fffeea; + --bs-primary-bg-subtle: rgb(255, 216.8, 241.2); + --bs-secondary-bg-subtle: rgb(204.2, 245, 254.8); + --bs-success-bg-subtle: rgb(205, 255, 236.2); + --bs-info-bg-subtle: rgb(204.2, 245, 254.8); + --bs-warning-bg-subtle: rgb(255, 254.2, 234); --bs-danger-bg-subtle: #ffdfe2; - --bs-light-bg-subtle: #fcfcfd; + --bs-light-bg-subtle: rgb(251.5, 252, 252.5); --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #ffb3e3; - --bs-secondary-border-subtle: #99ebff; - --bs-success-border-subtle: #9bffd9; - --bs-info-border-subtle: #99ebff; - --bs-warning-border-subtle: #fffdd5; + --bs-primary-border-subtle: rgb(255, 178.6, 227.4); + --bs-secondary-border-subtle: rgb(153.4, 235, 254.6); + --bs-success-border-subtle: rgb(155, 255, 217.4); + --bs-info-border-subtle: rgb(153.4, 235, 254.6); + --bs-warning-border-subtle: rgb(255, 253.4, 213); --bs-danger-border-subtle: #ffbfc5; --bs-light-border-subtle: #e9ecef; --bs-dark-border-subtle: #adb5bd; @@ -97,11 +97,11 @@ --bs-link-color: rgb(255, 64, 186); --bs-link-color-rgb: 255, 64, 186; --bs-link-decoration: none; - --bs-link-hover-color: #cc3395; + --bs-link-hover-color: rgb(204, 51.2, 148.8); --bs-link-hover-color-rgb: 204, 51, 149; --bs-code-color: rgb(255, 64, 186); --bs-highlight-color: #495057; - --bs-highlight-bg: #fffeea; + --bs-highlight-bg: rgb(255, 254.2, 234); --bs-border-width: 1px; --bs-border-style: solid; --bs-border-color: #dee2e6; @@ -140,44 +140,44 @@ --bs-secondary-bg-rgb: 52, 58, 64; --bs-tertiary-color: rgba(222, 226, 230, 0.5); --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg: rgb(42.5, 47.5, 52.5); --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #ff8cd6; - --bs-secondary-text-emphasis: #67e1fe; - --bs-success-text-emphasis: #69ffc7; - --bs-info-text-emphasis: #67e1fe; - --bs-warning-text-emphasis: #fffdc0; + --bs-primary-text-emphasis: rgb(255, 140.4, 213.6); + --bs-secondary-text-emphasis: rgb(102.6, 225, 254.4); + --bs-success-text-emphasis: rgb(105, 255, 198.6); + --bs-info-text-emphasis: rgb(102.6, 225, 254.4); + --bs-warning-text-emphasis: rgb(255, 252.6, 192); --bs-danger-text-emphasis: #ff9fa8; --bs-light-text-emphasis: #f8f9fa; --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #330d25; - --bs-secondary-bg-subtle: #002933; - --bs-success-bg-subtle: #013320; - --bs-info-bg-subtle: #002933; - --bs-warning-bg-subtle: #33321e; + --bs-primary-bg-subtle: rgb(51, 12.8, 37.2); + --bs-secondary-bg-subtle: rgb(0.2, 41, 50.8); + --bs-success-bg-subtle: rgb(1, 51, 32.2); + --bs-info-bg-subtle: rgb(0.2, 41, 50.8); + --bs-warning-bg-subtle: rgb(51, 50.2, 30); --bs-danger-bg-subtle: #331316; --bs-light-bg-subtle: #343a40; --bs-dark-bg-subtle: #1a1d20; - --bs-primary-border-subtle: #992670; - --bs-secondary-border-subtle: #017b98; - --bs-success-border-subtle: #039961; - --bs-info-border-subtle: #017b98; - --bs-warning-border-subtle: #99975a; + --bs-primary-border-subtle: rgb(153, 38.4, 111.6); + --bs-secondary-border-subtle: rgb(0.6, 123, 152.4); + --bs-success-border-subtle: rgb(3, 153, 96.6); + --bs-info-border-subtle: rgb(0.6, 123, 152.4); + --bs-warning-border-subtle: rgb(153, 150.6, 90); --bs-danger-border-subtle: #993942; --bs-light-border-subtle: #495057; --bs-dark-border-subtle: #343a40; --bs-heading-color: inherit; - --bs-link-color: #ff8cd6; - --bs-link-hover-color: #ffa3de; + --bs-link-color: rgb(255, 140.4, 213.6); + --bs-link-hover-color: rgb(255, 163.32, 221.88); --bs-link-color-rgb: 255, 140, 214; --bs-link-hover-color-rgb: 255, 163, 222; - --bs-code-color: #ff8cd6; + --bs-code-color: rgb(255, 140.4, 213.6); --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #66643c; + --bs-highlight-bg: rgb(102, 100.4, 60); --bs-border-color: #495057; --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #69ffc7; - --bs-form-valid-border-color: #69ffc7; + --bs-form-valid-color: rgb(105, 255, 198.6); + --bs-form-valid-border-color: rgb(105, 255, 198.6); --bs-form-invalid-color: #ff9fa8; --bs-form-invalid-border-color: #ff9fa8; } @@ -1935,13 +1935,13 @@ progress { .table-primary { --bs-table-color: #000; - --bs-table-bg: #ffd9f1; - --bs-table-border-color: #ccaec1; - --bs-table-striped-bg: #f2cee5; + --bs-table-bg: rgb(255, 216.8, 241.2); + --bs-table-border-color: rgb(204, 173.44, 192.96); + --bs-table-striped-bg: rgb(242.25, 205.96, 229.14); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6c3d9; + --bs-table-active-bg: rgb(229.5, 195.12, 217.08); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecc9df; + --bs-table-hover-bg: rgb(235.875, 200.54, 223.11); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1949,13 +1949,13 @@ progress { .table-secondary { --bs-table-color: #000; - --bs-table-bg: #ccf5ff; - --bs-table-border-color: #a3c4cc; - --bs-table-striped-bg: #c2e9f2; + --bs-table-bg: rgb(204.2, 245, 254.8); + --bs-table-border-color: rgb(163.36, 196, 203.84); + --bs-table-striped-bg: rgb(193.99, 232.75, 242.06); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dde6; + --bs-table-active-bg: rgb(183.78, 220.5, 229.32); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde3ec; + --bs-table-hover-bg: rgb(188.885, 226.625, 235.69); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1963,13 +1963,13 @@ progress { .table-success { --bs-table-color: #000; - --bs-table-bg: #cdffec; - --bs-table-border-color: #a4ccbd; - --bs-table-striped-bg: #c3f2e0; + --bs-table-bg: rgb(205, 255, 236.2); + --bs-table-border-color: rgb(164, 204, 188.96); + --bs-table-striped-bg: rgb(194.75, 242.25, 224.39); --bs-table-striped-color: #000; - --bs-table-active-bg: #b9e6d4; + --bs-table-active-bg: rgb(184.5, 229.5, 212.58); --bs-table-active-color: #000; - --bs-table-hover-bg: #beecda; + --bs-table-hover-bg: rgb(189.625, 235.875, 218.485); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1977,13 +1977,13 @@ progress { .table-info { --bs-table-color: #000; - --bs-table-bg: #ccf5ff; - --bs-table-border-color: #a3c4cc; - --bs-table-striped-bg: #c2e9f2; + --bs-table-bg: rgb(204.2, 245, 254.8); + --bs-table-border-color: rgb(163.36, 196, 203.84); + --bs-table-striped-bg: rgb(193.99, 232.75, 242.06); --bs-table-striped-color: #000; - --bs-table-active-bg: #b8dde6; + --bs-table-active-bg: rgb(183.78, 220.5, 229.32); --bs-table-active-color: #000; - --bs-table-hover-bg: #bde3ec; + --bs-table-hover-bg: rgb(188.885, 226.625, 235.69); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -1991,13 +1991,13 @@ progress { .table-warning { --bs-table-color: #000; - --bs-table-bg: #fffeea; - --bs-table-border-color: #cccbbb; - --bs-table-striped-bg: #f2f1de; + --bs-table-bg: rgb(255, 254.2, 234); + --bs-table-border-color: rgb(204, 203.36, 187.2); + --bs-table-striped-bg: rgb(242.25, 241.49, 222.3); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6e5d3; + --bs-table-active-bg: rgb(229.5, 228.78, 210.6); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecebd8; + --bs-table-hover-bg: rgb(235.875, 235.135, 216.45); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2006,12 +2006,12 @@ progress { .table-danger { --bs-table-color: #000; --bs-table-bg: #ffdfe2; - --bs-table-border-color: #ccb2b5; - --bs-table-striped-bg: #f2d4d7; + --bs-table-border-color: rgb(204, 178.4, 180.8); + --bs-table-striped-bg: rgb(242.25, 211.85, 214.7); --bs-table-striped-color: #000; - --bs-table-active-bg: #e6c9cb; + --bs-table-active-bg: rgb(229.5, 200.7, 203.4); --bs-table-active-color: #000; - --bs-table-hover-bg: #ecced1; + --bs-table-hover-bg: rgb(235.875, 206.275, 209.05); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2019,13 +2019,13 @@ progress { .table-light { --bs-table-color: #000; - --bs-table-bg: #dadee3; - --bs-table-border-color: #aeb2b6; - --bs-table-striped-bg: #cfd3d8; + --bs-table-bg: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-table-border-color: rgb(174.1179310345, 177.74, 181.3620689655); + --bs-table-striped-bg: rgb(206.7650431034, 211.06625, 215.3674568966); --bs-table-striped-color: #000; - --bs-table-active-bg: #c4c8cc; + --bs-table-active-bg: rgb(195.8826724138, 199.9575, 204.0323275862); --bs-table-active-color: #000; - --bs-table-hover-bg: #cacdd2; + --bs-table-hover-bg: rgb(201.3238577586, 205.511875, 209.6998922414); --bs-table-hover-color: #000; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2034,12 +2034,12 @@ progress { .table-dark { --bs-table-color: #fff; --bs-table-bg: #212529; - --bs-table-border-color: #4d5154; - --bs-table-striped-bg: #2c3034; + --bs-table-border-color: rgb(77.4, 80.6, 83.8); + --bs-table-striped-bg: rgb(44.1, 47.9, 51.7); --bs-table-striped-color: #fff; - --bs-table-active-bg: #373b3e; + --bs-table-active-bg: rgb(55.2, 58.8, 62.4); --bs-table-active-color: #fff; - --bs-table-hover-bg: #323539; + --bs-table-hover-bg: rgb(49.65, 53.35, 57.05); --bs-table-hover-color: #fff; color: var(--bs-table-color); border-color: var(--bs-table-border-color); @@ -2140,7 +2140,7 @@ progress { .form-control:focus { color: var(--bs-body-color); background-color: var(--bs-body-bg); - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2287,7 +2287,7 @@ textarea.form-control-lg { } } .form-select:focus { - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2371,7 +2371,7 @@ textarea.form-control-lg { filter: brightness(90%); } .form-check-input:focus { - border-color: #ffa0dd; + border-color: rgb(255, 159.5, 220.5); outline: 0; box-shadow: 0 0 0 0.25rem rgba(255, 64, 186, 0.25); } @@ -2418,7 +2418,7 @@ textarea.form-control-lg { } } .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffa0dd'/%3e%3c/svg%3e"); + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28255, 159.5, 220.5%29'/%3e%3c/svg%3e"); } .form-switch .form-check-input:checked { background-position: right center; @@ -2490,7 +2490,7 @@ textarea.form-control-lg { } } .form-range::-webkit-slider-thumb:active { - background-color: #ffc6ea; + background-color: rgb(255, 197.7, 234.3); background-image: var(--bs-gradient); } .form-range::-webkit-slider-runnable-track { @@ -2520,7 +2520,7 @@ textarea.form-control-lg { } } .form-range::-moz-range-thumb:active { - background-color: #ffc6ea; + background-color: rgb(255, 197.7, 234.3); background-image: var(--bs-gradient); } .form-range::-moz-range-track { @@ -2993,12 +2993,12 @@ textarea.form-control-lg { --bs-btn-bg: rgb(255, 64, 186); --bs-btn-border-color: rgb(255, 64, 186); --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #d9369e; - --bs-btn-hover-border-color: #cc3395; + --bs-btn-hover-bg: rgb(216.75, 54.4, 158.1); + --bs-btn-hover-border-color: rgb(204, 51.2, 148.8); --bs-btn-focus-shadow-rgb: 255, 93, 196; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #cc3395; - --bs-btn-active-border-color: #bf308c; + --bs-btn-active-bg: rgb(204, 51.2, 148.8); + --bs-btn-active-border-color: rgb(191.25, 48, 139.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: rgb(255, 64, 186); @@ -3010,12 +3010,12 @@ textarea.form-control-lg { --bs-btn-bg: #01cdfe; --bs-btn-border-color: #01cdfe; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #27d5fe; - --bs-btn-hover-border-color: #1ad2fe; + --bs-btn-hover-bg: rgb(39.1, 212.5, 254.15); + --bs-btn-hover-border-color: rgb(26.4, 210, 254.1); --bs-btn-focus-shadow-rgb: 1, 174, 216; --bs-btn-active-color: #000; - --bs-btn-active-bg: #34d7fe; - --bs-btn-active-border-color: #1ad2fe; + --bs-btn-active-bg: rgb(51.8, 215, 254.2); + --bs-btn-active-border-color: rgb(26.4, 210, 254.1); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #01cdfe; @@ -3027,12 +3027,12 @@ textarea.form-control-lg { --bs-btn-bg: #05ffa1; --bs-btn-border-color: #05ffa1; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #2bffaf; - --bs-btn-hover-border-color: #1effaa; + --bs-btn-hover-bg: rgb(42.5, 255, 175.1); + --bs-btn-hover-border-color: rgb(30, 255, 170.4); --bs-btn-focus-shadow-rgb: 4, 217, 137; --bs-btn-active-color: #000; - --bs-btn-active-bg: #37ffb4; - --bs-btn-active-border-color: #1effaa; + --bs-btn-active-bg: rgb(55, 255, 179.8); + --bs-btn-active-border-color: rgb(30, 255, 170.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #05ffa1; @@ -3044,12 +3044,12 @@ textarea.form-control-lg { --bs-btn-bg: #01cdfe; --bs-btn-border-color: #01cdfe; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #27d5fe; - --bs-btn-hover-border-color: #1ad2fe; + --bs-btn-hover-bg: rgb(39.1, 212.5, 254.15); + --bs-btn-hover-border-color: rgb(26.4, 210, 254.1); --bs-btn-focus-shadow-rgb: 1, 174, 216; --bs-btn-active-color: #000; - --bs-btn-active-bg: #34d7fe; - --bs-btn-active-border-color: #1ad2fe; + --bs-btn-active-bg: rgb(51.8, 215, 254.2); + --bs-btn-active-border-color: rgb(26.4, 210, 254.1); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #01cdfe; @@ -3061,12 +3061,12 @@ textarea.form-control-lg { --bs-btn-bg: #fffb96; --bs-btn-border-color: #fffb96; --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #fffca6; - --bs-btn-hover-border-color: #fffba1; + --bs-btn-hover-bg: rgb(255, 251.6, 165.75); + --bs-btn-hover-border-color: rgb(255, 251.4, 160.5); --bs-btn-focus-shadow-rgb: 217, 213, 128; --bs-btn-active-color: #000; - --bs-btn-active-bg: #fffcab; - --bs-btn-active-border-color: #fffba1; + --bs-btn-active-bg: rgb(255, 251.8, 171); + --bs-btn-active-border-color: rgb(255, 251.4, 160.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: #fffb96; @@ -3078,12 +3078,12 @@ textarea.form-control-lg { --bs-btn-bg: rgb(255, 95, 110); --bs-btn-border-color: rgb(255, 95, 110); --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ff7784; - --bs-btn-hover-border-color: #ff6f7d; + --bs-btn-hover-bg: rgb(255, 119, 131.75); + --bs-btn-hover-border-color: rgb(255, 111, 124.5); --bs-btn-focus-shadow-rgb: 217, 81, 94; --bs-btn-active-color: #000; --bs-btn-active-bg: #ff7f8b; - --bs-btn-active-border-color: #ff6f7d; + --bs-btn-active-border-color: rgb(255, 111, 124.5); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; --bs-btn-disabled-bg: rgb(255, 95, 110); @@ -3092,19 +3092,19 @@ textarea.form-control-lg { .btn-light { --bs-btn-color: #000; - --bs-btn-bg: #dadee3; - --bs-btn-border-color: #dadee3; + --bs-btn-bg: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-btn-border-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b9bdc1; - --bs-btn-hover-border-color: #aeb2b6; + --bs-btn-hover-bg: rgb(185.0003017241, 188.84875, 192.6971982759); + --bs-btn-hover-border-color: rgb(174.1179310345, 177.74, 181.3620689655); --bs-btn-focus-shadow-rgb: 185, 189, 193; --bs-btn-active-color: #000; - --bs-btn-active-bg: #aeb2b6; - --bs-btn-active-border-color: #a4a7aa; + --bs-btn-active-bg: rgb(174.1179310345, 177.74, 181.3620689655); + --bs-btn-active-border-color: rgb(163.2355603448, 166.63125, 170.0269396552); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #dadee3; - --bs-btn-disabled-border-color: #dadee3; + --bs-btn-disabled-bg: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-btn-disabled-border-color: rgb(217.6474137931, 222.175, 226.7025862069); } .btn-dark { @@ -3112,12 +3112,12 @@ textarea.form-control-lg { --bs-btn-bg: #212529; --bs-btn-border-color: #212529; --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #424649; - --bs-btn-hover-border-color: #373b3e; + --bs-btn-hover-bg: rgb(66.3, 69.7, 73.1); + --bs-btn-hover-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-focus-shadow-rgb: 66, 70, 73; --bs-btn-active-color: #fff; - --bs-btn-active-bg: #4d5154; - --bs-btn-active-border-color: #373b3e; + --bs-btn-active-bg: rgb(77.4, 80.6, 83.8); + --bs-btn-active-border-color: rgb(55.2, 58.8, 62.4); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #212529; @@ -3227,19 +3227,19 @@ textarea.form-control-lg { } .btn-outline-light { - --bs-btn-color: #dadee3; - --bs-btn-border-color: #dadee3; + --bs-btn-color: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-btn-border-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #dadee3; - --bs-btn-hover-border-color: #dadee3; + --bs-btn-hover-bg: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-btn-hover-border-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-btn-focus-shadow-rgb: 218, 222, 227; --bs-btn-active-color: #000; - --bs-btn-active-bg: #dadee3; - --bs-btn-active-border-color: #dadee3; + --bs-btn-active-bg: rgb(217.6474137931, 222.175, 226.7025862069); + --bs-btn-active-border-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #dadee3; + --bs-btn-disabled-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #dadee3; + --bs-btn-disabled-border-color: rgb(217.6474137931, 222.175, 226.7025862069); --bs-gradient: none; } @@ -4533,7 +4533,7 @@ textarea.form-control-lg { --bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23661a4a' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%28102, 25.6, 74.4%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(255, 64, 186, 0.25); --bs-accordion-body-padding-x: 1.25rem; --bs-accordion-body-padding-y: 1rem; @@ -4651,8 +4651,8 @@ textarea.form-control-lg { } [data-bs-theme=dark] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ff8cd6'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ff8cd6'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28255, 140.4, 213.6%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28255, 140.4, 213.6%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } .breadcrumb { @@ -6896,8 +6896,8 @@ textarea.form-control-lg { text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; } .link-light:hover, .link-light:focus { - color: RGBA(225, 229, 233, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(225, 229, 233, var(--bs-link-underline-opacity, 1)) !important; + color: RGBA(225, 229, 232, var(--bs-link-opacity, 1)) !important; + text-decoration-color: RGBA(225, 229, 232, var(--bs-link-underline-opacity, 1)) !important; } .link-dark { diff --git a/src/assets/symbols.svg b/src/assets/symbols.svg index 8abe98c0..60f3c71e 100644 --- a/src/assets/symbols.svg +++ b/src/assets/symbols.svg @@ -305,5 +305,8 @@ + + + diff --git a/src/client/index.tsx b/src/client/index.tsx index 27031189..432b6231 100644 --- a/src/client/index.tsx +++ b/src/client/index.tsx @@ -5,6 +5,7 @@ import App from "../shared/components/app/app"; import { lazyHighlightjs } from "../shared/lazy-highlightjs"; import { loadUserLanguage } from "../shared/services/I18NextService"; import { verifyDynamicImports } from "../shared/dynamic-imports"; +import { setupEmojiDataModel } from "../shared/markdown"; import "bootstrap/js/dist/collapse"; import "bootstrap/js/dist/dropdown"; @@ -22,7 +23,7 @@ async function startClient() { lazyHighlightjs.enableLazyLoading(); - await loadUserLanguage(); + await Promise.all([loadUserLanguage(), setupEmojiDataModel()]); const wrapper = ( diff --git a/src/server/utils/build-themes-list.ts b/src/server/utils/build-themes-list.ts index 4d92a04a..4ad63e86 100644 --- a/src/server/utils/build-themes-list.ts +++ b/src/server/utils/build-themes-list.ts @@ -14,7 +14,7 @@ const themes: ReadonlyArray = [ "litely-compact", "vaporwave-dark", "vaporwave-light", - "i386", + "i386-dark", ]; export async function buildThemeList(): Promise> { diff --git a/src/server/utils/create-ssr-html.tsx b/src/server/utils/create-ssr-html.tsx index fddb5b26..2381b009 100644 --- a/src/server/utils/create-ssr-html.tsx +++ b/src/server/utils/create-ssr-html.tsx @@ -33,22 +33,29 @@ export async function createSsrHtml( ); if (!appleTouchIcon) { - appleTouchIcon = site?.site_view.site.icon - ? `data:image/png;base64,${await sharp( - await fetchIconPng(site.site_view.site.icon), - ) - .resize(180, 180) - .extend({ - bottom: 20, - top: 20, - left: 20, - right: 20, - background: "#222222", - }) - .png() - .toBuffer() - .then(buf => buf.toString("base64"))}` - : favIconPngUrl; + try { + appleTouchIcon = site?.site_view.site.icon + ? `data:image/png;base64,${await sharp( + await fetchIconPng(site.site_view.site.icon), + ) + .resize(180, 180) + .extend({ + bottom: 20, + top: 20, + left: 20, + right: 20, + background: "#222222", + }) + .png() + .toBuffer() + .then(buf => buf.toString("base64"))}` + : favIconPngUrl; + } catch { + console.log( + "Could not fetch site logo for apple touch icon. Using default icon.", + ); + appleTouchIcon = favIconPngUrl; + } } const erudaStr = diff --git a/src/server/utils/generate-manifest-json.ts b/src/server/utils/generate-manifest-json.ts index 5571a39a..3a959377 100644 --- a/src/server/utils/generate-manifest-json.ts +++ b/src/server/utils/generate-manifest-json.ts @@ -1,19 +1,54 @@ -import { readFile } from "fs/promises"; import { Site } from "lemmy-js-client"; -import path from "path"; import { fetchIconPng } from "./fetch-icon-png"; +import { getStaticDir } from "@utils/env"; +type Icon = { sizes: string; src: string; type: string; purpose: string }; const iconSizes = [72, 96, 128, 144, 152, 192, 384, 512]; +let icons: Icon[] | null = null; -const defaultLogoPathDirectory = path.join( - process.cwd(), - "dist", - "assets", - "icons", -); +function mapIcon(src: string, size: number): Icon { + return { + sizes: `${size}x${size}`, + type: "image/png", + src, + purpose: "any maskable", + }; +} + +function generateDefaultIcons() { + return iconSizes.map(size => + mapIcon(`${getStaticDir()}/assets/icons/icon-${size}x${size}.png`, size), + ); +} export default async function (site: Site) { - const icon = site.icon ? await fetchIconPng(site.icon) : null; + if (!icons) { + try { + const icon = site.icon ? await fetchIconPng(site.icon) : null; + + if (icon) { + icons = await Promise.all( + iconSizes.map(async size => { + const sharp = (await import("sharp")).default; + const src = `data:image/png:base64,${await sharp(icon) + .resize(size, size) + .png() + .toBuffer() + .then(buf => buf.toString("base64"))}`; + + return mapIcon(src, size); + }), + ); + } else { + icons = generateDefaultIcons(); + } + } catch { + console.log( + `Failed to fetch site logo for manifest icon. Using default icon`, + ); + icons = generateDefaultIcons(); + } + } return { name: site.name, @@ -24,29 +59,7 @@ export default async function (site: Site) { id: "/", background_color: "#222222", theme_color: "#222222", - icons: await Promise.all( - iconSizes.map(async size => { - let src = await readFile( - path.join(defaultLogoPathDirectory, `icon-${size}x${size}.png`), - ).then(buf => buf.toString("base64")); - - if (icon) { - const sharp = (await import("sharp")).default; - src = await sharp(icon) - .resize(size, size) - .png() - .toBuffer() - .then(buf => buf.toString("base64")); - } - - return { - sizes: `${size}x${size}`, - type: "image/png", - src: `data:image/png;base64,${src}`, - purpose: "any maskable", - }; - }), - ), + icons, shortcuts: [ { name: "Search", diff --git a/src/shared/components/app/app.tsx b/src/shared/components/app/app.tsx index cb44e505..2fb3a380 100644 --- a/src/shared/components/app/app.tsx +++ b/src/shared/components/app/app.tsx @@ -13,16 +13,18 @@ import { Navbar } from "./navbar"; import "./styles.scss"; import { Theme } from "./theme"; import AnonymousGuard from "../common/anonymous-guard"; -import AdultConsentModal from "../common/adult-consent-modal"; +import AdultConsentModal from "../common/modal/adult-consent-modal"; import { destroyTippy, setupTippy } from "../../tippy"; -function handleJumpToContent(event) { +function handleJumpToContent(app: App, event: any) { event.preventDefault(); + app.contentRef.current?.focus(); } export default class App extends Component { private isoData: IsoDataOptionalSite = setIsoData(this.context); private readonly rootRef = createRef(); + readonly contentRef = createRef(); componentDidMount() { setupTippy(this.rootRef); @@ -69,7 +71,7 @@ export default class App extends Component { return ( -
+
{RouteComponent && (isAuthPath(path ?? "") ? ( diff --git a/src/shared/components/comment/comment-form.tsx b/src/shared/components/comment/comment-form.tsx index 0cfbf8b0..4c761e56 100644 --- a/src/shared/components/comment/comment-form.tsx +++ b/src/shared/components/comment/comment-form.tsx @@ -74,6 +74,9 @@ export class CommentForm extends Component { # + + # +
)} diff --git a/src/shared/components/comment/comment-node.tsx b/src/shared/components/comment/comment-node.tsx index eb644363..905c730f 100644 --- a/src/shared/components/comment/comment-node.tsx +++ b/src/shared/components/comment/comment-node.tsx @@ -51,7 +51,7 @@ import { CommunityLink } from "../community/community-link"; import { PersonListing } from "../person/person-listing"; import { CommentForm } from "./comment-form"; import { CommentNodes } from "./comment-nodes"; -import { BanUpdateForm } from "../common/mod-action-form-modal"; +import { BanUpdateForm } from "../common/modal/mod-action-form-modal"; import CommentActionDropdown from "../common/content-actions/comment-action-dropdown"; import { RequestState } from "../../services/HttpService"; import { VoteDisplay } from "../common/vote-display"; @@ -294,7 +294,7 @@ export class CommentNode extends Component { /> )}
-
+
{this.props.showContext && this.getLinkButton()} {this.props.markable && ( )} )} + + {/* A flex expander */} +
+ + {this.props.showLanguage && ( + + )}
@@ -451,7 +449,7 @@ export class MarkdownTextArea extends Component< })); }), ); - } catch (e) { + } catch { errorOccurred = true; } } @@ -462,12 +460,29 @@ export class MarkdownTextArea extends Component< if (res.state === "success") { if (res.data.msg === "ok") { const imageMarkdown = `![](${res.data.url})`; - i.setState(({ content }) => ({ - content: content ? `${content}\n${imageMarkdown}` : imageMarkdown, - })); + const textarea: HTMLTextAreaElement = document.getElementById( + i.id, + ) as HTMLTextAreaElement; + const cursorPosition = textarea.selectionStart; + + i.setState(({ content }) => { + const currentContent = content || ""; + return { + content: + currentContent.slice(0, cursorPosition) + + imageMarkdown + + currentContent.slice(cursorPosition), + }; + }); + i.contentChange(); - const textarea: any = document.getElementById(i.id); - autosize.update(textarea); + // Update cursor position to after the inserted image link + setTimeout(() => { + textarea.selectionStart = cursorPosition + imageMarkdown.length; + textarea.selectionEnd = cursorPosition + imageMarkdown.length; + autosize.update(textarea); + }, 10); + pictrsDeleteToast(image.name, res.data.delete_url as string); } else if (res.data.msg === "too_large") { toast(I18NextService.i18n.t("upload_too_large"), "danger"); diff --git a/src/shared/components/common/adult-consent-modal.tsx b/src/shared/components/common/modal/adult-consent-modal.tsx similarity index 93% rename from src/shared/components/common/adult-consent-modal.tsx rename to src/shared/components/common/modal/adult-consent-modal.tsx index bd46abb2..a0656168 100644 --- a/src/shared/components/common/adult-consent-modal.tsx +++ b/src/shared/components/common/modal/adult-consent-modal.tsx @@ -1,10 +1,10 @@ import { Component, LinkedEvent, createRef, linkEvent } from "inferno"; -import { modalMixin } from "../mixins/modal-mixin"; -import { adultConsentCookieKey } from "../../config"; -import { mdToHtml } from "../../markdown"; -import { I18NextService } from "../../services"; +import { modalMixin } from "../../mixins/modal-mixin"; +import { adultConsentCookieKey } from "../../../config"; +import { mdToHtml } from "../../../markdown"; +import { I18NextService } from "../../../services"; import { isHttps } from "@utils/env"; -import { IsoData } from "../../interfaces"; +import { IsoData } from "../../../interfaces"; import { setIsoData } from "@utils/app"; interface AdultConsentModalProps { diff --git a/src/shared/components/common/confirmation-modal.tsx b/src/shared/components/common/modal/confirmation-modal.tsx similarity index 88% rename from src/shared/components/common/confirmation-modal.tsx rename to src/shared/components/common/modal/confirmation-modal.tsx index 53848497..4ba93acc 100644 --- a/src/shared/components/common/confirmation-modal.tsx +++ b/src/shared/components/common/modal/confirmation-modal.tsx @@ -1,20 +1,14 @@ -import { - Component, - InfernoNode, - RefObject, - createRef, - linkEvent, -} from "inferno"; -import { I18NextService } from "../../services"; +import { Component, RefObject, createRef, linkEvent } from "inferno"; +import { I18NextService } from "../../../services"; import type { Modal } from "bootstrap"; -import { Spinner } from "./icon"; -import { LoadingEllipses } from "./loading-ellipses"; -import { modalMixin } from "../mixins/modal-mixin"; +import { Spinner } from "../icon"; +import { LoadingEllipses } from "../loading-ellipses"; +import { modalMixin } from "../../mixins/modal-mixin"; +import { MouseEventHandler } from "inferno"; interface ConfirmationModalProps { - children?: InfernoNode; onYes: () => Promise; - onNo: () => void; + onNo: MouseEventHandler; message: string; loadingMessage: string; show: boolean; diff --git a/src/shared/components/common/modal/create-or-edit-oauth-provider-modal.tsx b/src/shared/components/common/modal/create-or-edit-oauth-provider-modal.tsx new file mode 100644 index 00000000..a0112f27 --- /dev/null +++ b/src/shared/components/common/modal/create-or-edit-oauth-provider-modal.tsx @@ -0,0 +1,386 @@ +import { + Component, + FormEventHandler, + MouseEventHandler, + RefObject, + createRef, + linkEvent, +} from "inferno"; +import type { Modal } from "bootstrap"; +import { modalMixin } from "../../mixins/modal-mixin"; +import { I18NextService } from "../../../services/I18NextService"; +import { + CreateOAuthProvider, + EditOAuthProvider, + OAuthProvider, +} from "lemmy-js-client"; +import { ProviderToEdit } from "@utils/types/oauth"; + +export type CreateOrEditOAuthProviderModalData = + | { type: "add"; provider?: ProviderToEdit } + | { type: "edit" | "add"; provider: OAuthProvider }; + +interface CreateOrEditOAuthProviderModalProps { + onClose: MouseEventHandler; + show: boolean; + data: CreateOrEditOAuthProviderModalData; + onSubmit: ( + provider: CreateOAuthProvider | EditOAuthProvider, + ) => Promise; +} + +interface CreateOrEditOAuthProviderModalState { + changed: boolean; + provider: Partial; + loading: boolean; +} + +interface ProviderFieldProps { + id: string; + i18nKey: string; + onInput: FormEventHandler; +} + +interface ProviderTextFieldProps extends ProviderFieldProps { + disabled?: boolean; + placeholder?: string; + type?: "text" | "url" | "password"; + value?: string; + required?: boolean; +} + +type ProviderBooleanProperties = + | "enabled" + | "account_linking_enabled" + | "auto_verify_email"; + +interface ProviderCheckboxFieldProps extends ProviderFieldProps { + checked?: boolean; +} + +const FORM_ID = "create-or-edit-oauth-provider-form-id"; + +function handleTextPropertyChange( + { + modal, + property, + }: { + modal: CreateOrEditOAuthProviderModal; + property: Exclude; + }, + event: any, +) { + modal.setState(prevState => ({ + changed: true, + provider: { + ...prevState.provider, + [property]: event.target.value, + }, + })); +} + +function handleBooleanPropertyChange({ + modal, + property, +}: { + modal: CreateOrEditOAuthProviderModal; + property: Extract; +}) { + modal.setState(prevState => ({ + changed: true, + provider: { + ...prevState.provider, + [property]: !prevState.provider[property], + }, + })); +} + +function ProviderTextField({ + id, + i18nKey, + type = "text", + value, + onInput, + required = true, + disabled, + placeholder, +}: ProviderTextFieldProps) { + return ( +
+ + +
+ ); +} + +function ProviderCheckboxField({ + i18nKey, + id, + onInput, + checked, +}: ProviderCheckboxFieldProps) { + return ( +
+ + +
+ ); +} + +@modalMixin +export default class CreateOrEditOAuthProviderModal extends Component< + CreateOrEditOAuthProviderModalProps, + CreateOrEditOAuthProviderModalState +> { + readonly modalDivRef: RefObject; + modal?: Modal; + + state: CreateOrEditOAuthProviderModalState = { + changed: false, + provider: {}, + loading: false, + }; + + constructor(props: CreateOrEditOAuthProviderModalProps, context: any) { + super(props, context); + + this.modalDivRef = createRef(); + + this.handleSubmit = this.handleSubmit.bind(this); + } + + componentDidUpdate(prevProps: Readonly) { + if (this.props.show && this.props.show !== prevProps.show) { + this.setState({ provider: this.props.data.provider ?? {} }); + } + } + + render( + { onClose, data }: CreateOrEditOAuthProviderModalProps, + { provider, changed, loading }: CreateOrEditOAuthProviderModalState, + ) { + return ( +
+
+
+
+

+ {data.type === "edit" + ? `Edit ${data.provider.display_name}` + : "Add OAuth Provider"} +

+
+
+
+
+ + + + + + + + + +
+
+
+ + + +
+
+
+
+
+ + +
+
+
+
+ ); + } + + async handleSubmit(event) { + event.preventDefault(); + + this.setState({ loading: true }); + await this.props.onSubmit(this.state.provider as CreateOAuthProvider); + this.setState({ loading: false, changed: false, provider: {} }); + } +} diff --git a/src/shared/components/common/modal/display-modal.tsx b/src/shared/components/common/modal/display-modal.tsx new file mode 100644 index 00000000..2736861b --- /dev/null +++ b/src/shared/components/common/modal/display-modal.tsx @@ -0,0 +1,77 @@ +import { + Component, + InfernoNode, + MouseEventHandler, + RefObject, + createRef, +} from "inferno"; +import type { Modal } from "bootstrap"; +import { Spinner } from "../icon"; +import { LoadingEllipses } from "../loading-ellipses"; +import { modalMixin } from "../../mixins/modal-mixin"; + +interface DisplayModalProps { + children: InfernoNode; + loadingMessage?: string; + title: string; + onClose: MouseEventHandler; + show: boolean; + loading?: boolean; +} + +@modalMixin +export default class DisplayModal extends Component { + readonly modalDivRef: RefObject; + modal?: Modal; + + constructor(props: DisplayModalProps, context: any) { + super(props, context); + + this.modalDivRef = createRef(); + } + + render() { + const { children, loadingMessage, title, onClose, loading } = this.props; + + return ( +
+
+
+
+

+ {title} +

+
+
+ {loading ? ( +
+ +
+ {loadingMessage} + +
+
+ ) : ( + children + )} +
+
+
+
+ ); + } +} diff --git a/src/shared/components/common/mod-action-form-modal.tsx b/src/shared/components/common/modal/mod-action-form-modal.tsx similarity index 93% rename from src/shared/components/common/mod-action-form-modal.tsx rename to src/shared/components/common/modal/mod-action-form-modal.tsx index 36a41d28..84487d97 100644 --- a/src/shared/components/common/mod-action-form-modal.tsx +++ b/src/shared/components/common/modal/mod-action-form-modal.tsx @@ -5,18 +5,18 @@ import { createRef, linkEvent, } from "inferno"; -import { I18NextService } from "../../services/I18NextService"; -import { PurgeWarning, Spinner } from "./icon"; +import { I18NextService } from "../../../services/I18NextService"; +import { PurgeWarning, Spinner } from "../icon"; import { getApubName, randomStr } from "@utils/helpers"; import type { Modal } from "bootstrap"; import classNames from "classnames"; import { Community, Person } from "lemmy-js-client"; -import { LoadingEllipses } from "./loading-ellipses"; -import { modalMixin } from "../mixins/modal-mixin"; +import { LoadingEllipses } from "../loading-ellipses"; +import { modalMixin } from "../../mixins/modal-mixin"; export interface BanUpdateForm { reason?: string; - shouldRemove?: boolean; + shouldRemoveOrRestoreData?: boolean; daysUntilExpires?: number; } @@ -31,7 +31,7 @@ interface ModActionFormModalPropsCommunityBan { modActionType: "community-ban"; onSubmit: (form: BanUpdateForm) => Promise; creator: Person; - community: Community; + community?: Community; isBanned: boolean; } @@ -69,7 +69,7 @@ interface ModActionFormFormState { loading: boolean; reason: string; daysUntilExpire?: number; - shouldRemoveData?: boolean; + shouldRemoveOrRestoreData?: boolean; shouldPermaBan?: boolean; } @@ -84,7 +84,7 @@ function handleExpiryChange(i: ModActionFormModal, event: any) { function handleToggleRemove(i: ModActionFormModal) { i.setState(prev => ({ ...prev, - shouldRemoveData: !prev.shouldRemoveData, + shouldRemoveOrRestoreData: !prev.shouldRemoveOrRestoreData, })); } @@ -104,7 +104,7 @@ async function handleSubmit(i: ModActionFormModal, event: any) { await i.props.onSubmit({ reason: i.state.reason, daysUntilExpires: i.state.daysUntilExpire!, - shouldRemove: i.state.shouldRemoveData!, + shouldRemoveOrRestoreData: i.state.shouldRemoveOrRestoreData!, } as BanUpdateForm & string); // Need to & string to handle type weirdness } else { await i.props.onSubmit(i.state.reason); @@ -135,7 +135,7 @@ export default class ModActionFormModal extends Component< this.reasonRef = createRef(); if (this.isBanModal) { - this.state.shouldRemoveData = false; + this.state.shouldRemoveOrRestoreData = false; } } @@ -144,7 +144,7 @@ export default class ModActionFormModal extends Component< loading, reason, daysUntilExpire, - shouldRemoveData, + shouldRemoveOrRestoreData, shouldPermaBan, } = this.state; const reasonId = `mod-form-reason-${randomStr()}`; @@ -249,7 +249,7 @@ export default class ModActionFormModal extends Component< {I18NextService.i18n.t("remove_content")} @@ -328,7 +328,12 @@ export default class ModActionFormModal extends Component< : "ban_from_community_with_name", { user: getApubName(this.props.creator), - community: getApubName(this.props.community), + community: getApubName( + this.props.community ?? { + actor_id: "", + name: "", + }, + ), }, ); } diff --git a/src/shared/components/common/totp-modal.tsx b/src/shared/components/common/modal/totp-modal.tsx similarity index 97% rename from src/shared/components/common/totp-modal.tsx rename to src/shared/components/common/modal/totp-modal.tsx index 93fdb0cd..220db5b6 100644 --- a/src/shared/components/common/totp-modal.tsx +++ b/src/shared/components/common/modal/totp-modal.tsx @@ -6,10 +6,10 @@ import { createRef, linkEvent, } from "inferno"; -import { I18NextService } from "../../services"; -import { toast } from "../../toast"; +import { I18NextService } from "../../../services"; +import { toast } from "../../../toast"; import type { Modal } from "bootstrap"; -import { modalMixin } from "../mixins/modal-mixin"; +import { modalMixin } from "../../mixins/modal-mixin"; interface TotpModalProps { children?: InfernoNode; diff --git a/src/shared/components/common/view-votes-modal.tsx b/src/shared/components/common/modal/view-votes-modal.tsx similarity index 93% rename from src/shared/components/common/view-votes-modal.tsx rename to src/shared/components/common/modal/view-votes-modal.tsx index 2bf739ee..538af745 100644 --- a/src/shared/components/common/view-votes-modal.tsx +++ b/src/shared/components/common/modal/view-votes-modal.tsx @@ -5,10 +5,10 @@ import { createRef, linkEvent, } from "inferno"; -import { I18NextService } from "../../services"; +import { I18NextService } from "../../../services"; import type { Modal } from "bootstrap"; -import { Icon, Spinner } from "./icon"; -import { Paginator } from "../common/paginator"; +import { Icon, Spinner } from "../icon"; +import { Paginator } from "../paginator"; import { ListCommentLikesResponse, ListPostLikesResponse, @@ -19,11 +19,11 @@ import { HttpService, LOADING_REQUEST, RequestState, -} from "../../services/HttpService"; -import { fetchLimit } from "../../config"; -import { PersonListing } from "../person/person-listing"; -import { modalMixin } from "../mixins/modal-mixin"; -import { UserBadges } from "./user-badges"; +} from "../../../services/HttpService"; +import { fetchLimit } from "../../../config"; +import { PersonListing } from "../../person/person-listing"; +import { modalMixin } from "../../mixins/modal-mixin"; +import { UserBadges } from "../user-badges"; import { isBrowser } from "@utils/browser"; interface ViewVotesModalProps { diff --git a/src/shared/components/common/paginator.tsx b/src/shared/components/common/paginator.tsx index e51ab550..cff71cb5 100644 --- a/src/shared/components/common/paginator.tsx +++ b/src/shared/components/common/paginator.tsx @@ -5,6 +5,7 @@ interface PaginatorProps { page: number; onChange(val: number): any; nextDisabled: boolean; + disabled?: boolean; } export class Paginator extends Component { @@ -18,6 +19,7 @@ export class Paginator extends Component { @@ -26,6 +28,7 @@ export class Paginator extends Component { diff --git a/src/shared/components/common/password-input.tsx b/src/shared/components/common/password-input.tsx index 518cacb6..b0f066c6 100644 --- a/src/shared/components/common/password-input.tsx +++ b/src/shared/components/common/password-input.tsx @@ -16,6 +16,7 @@ interface PasswordInputProps { label?: string | null; showForgotLink?: boolean; isNew?: boolean; + required?: boolean; } interface PasswordInputState { @@ -77,6 +78,7 @@ class PasswordInput extends Component { label, showForgotLink, isNew, + required, }, state: { show }, } = this; @@ -98,9 +100,11 @@ class PasswordInput extends Component { autoComplete={isNew ? "new-password" : "current-password"} onInput={onInput} value={value} - required - pattern=".{10,60}" + required={required !== false} + pattern=".+" title={I18NextService.i18n.t("invalid_password")} + minLength={isNew ? 10 : undefined} + maxLength={isNew ? 60 : undefined} />
+ - ))} + ); + })}
@@ -273,43 +318,91 @@ export class EmojiForm extends Component { page={this.state.page} onChange={this.handlePageChange} nextDisabled={false} + disabled={this.hasPendingChanges()} /> ); } - canEdit(cv: CustomEmojiViewForm) { - const noEmptyFields = - cv.alt_text.length > 0 && - cv.category.length > 0 && - cv.image_url.length > 0 && - cv.shortcode.length > 0; - const noDuplicateShortCodes = - this.state.customEmojis.filter( - x => x.shortcode === cv.shortcode && x.id !== cv.id, - ).length === 0; - return noEmptyFields && noDuplicateShortCodes && !cv.loading && cv.changed; + canSave(cv: EditableEmoji) { + const requiredFields = + cv.emoji.custom_emoji.image_url.length > 0 && + cv.emoji.custom_emoji.shortcode.length > 0; + return requiredFields && !cv.loading; } - getEditTooltip(cv: CustomEmojiViewForm) { - if (this.canEdit(cv)) return I18NextService.i18n.t("save"); + getEditTooltip(cv: EditableEmoji) { + if (this.canSave(cv)) return I18NextService.i18n.t("save"); else return I18NextService.i18n.t("custom_emoji_save_validation"); } - handlePageChange(page: number) { - this.setState({ page: page }); + async handlePageChange(page: number) { + this.setState({ loading: true }); + let allEmojis: CustomEmojiView[] = this.state.allEmojis; + let emojiMartCustom: EmojiMartCategory[] = this.state.emojiMartCustom; + let emojiMartKey: number = this.state.emojiMartKey; + if (this.needsRefetch) { + const emojiRes = await HttpService.client.listCustomEmojis({ + ignore_page_limits: true, + }); + if (emojiRes.state === "success") { + this.needsRefetch = false; + allEmojis = emojiRes.data.custom_emojis; + allEmojis.sort((a, b) => { + const categoryOrder = a.custom_emoji.category.localeCompare( + b.custom_emoji.category, + ); + if (categoryOrder === 0) { + return a.custom_emoji.shortcode.localeCompare( + b.custom_emoji.shortcode, + ); + } + return categoryOrder; + }); + } + emojiMartCustom = emojiMartCategories(allEmojis); + emojiMartKey++; + } + if (allEmojis) { + const startIndex = (page - 1) * this.itemsPerPage; + const emojis = allEmojis + .slice(startIndex, startIndex + this.itemsPerPage) + .map(x => ({ emoji: structuredClone(x) })); // clone for restore after cancel + this.setState({ + loading: false, + allEmojis, + emojiMartCustom, + emojiMartKey, + emojis, + page, + }); + } else { + this.setState({ loading: false, page }); + } } - handleEmojiClick(e: any) { - const view = customEmojisLookup.get(e.id); - if (view) { - const page = this.state.customEmojis.find( - x => x.id === view.custom_emoji.id, - )?.page; - if (page) { - this.setState({ page: page }); - this.scrollRef[view.custom_emoji.shortcode].scrollIntoView(); + async handleEmojiClick(e: any) { + const emojiIndex = this.state.allEmojis.findIndex( + x => x.custom_emoji.shortcode === e.id, + ); + if (emojiIndex >= 0) { + const { shortcode } = this.state.allEmojis[emojiIndex].custom_emoji; + const page = Math.floor(emojiIndex / this.itemsPerPage) + 1; + if (page !== this.state.page) { + if ( + this.hasPendingChanges() && + !confirm(I18NextService.i18n.t("block_leaving")) + ) { + return; + } + await this.handlePageChange(page); + await new Promise(r => setTimeout(r)); + } + if (shortcode) { + const categoryInput: HTMLInputElement | undefined = + this.scrollRef[shortcode]; + categoryInput?.focus(); } } } @@ -318,32 +411,22 @@ export class EmojiForm extends Component { props: { form: EmojiForm; index: number }, event: any, ) { - const custom_emojis = [...props.form.state.customEmojis]; - const pagedIndex = - (props.form.state.page - 1) * props.form.itemsPerPage + props.index; - const item = { - ...props.form.state.customEmojis[pagedIndex], - category: event.target.value, - changed: true, - }; - custom_emojis[Number(pagedIndex)] = item; - props.form.setState({ customEmojis: custom_emojis }); + const editable: EditableEmoji = props.form.state.emojis[props.index]; + props.form.setState(() => { + markForUpdate(editable); + editable.emoji.custom_emoji.category = event.target.value; + }); } handleEmojiShortCodeChange( props: { form: EmojiForm; index: number }, event: any, ) { - const custom_emojis = [...props.form.state.customEmojis]; - const pagedIndex = - (props.form.state.page - 1) * props.form.itemsPerPage + props.index; - const item = { - ...props.form.state.customEmojis[pagedIndex], - shortcode: event.target.value, - changed: true, - }; - custom_emojis[Number(pagedIndex)] = item; - props.form.setState({ customEmojis: custom_emojis }); + const editable: EditableEmoji = props.form.state.emojis[props.index]; + props.form.setState(() => { + markForUpdate(editable); + editable.emoji.custom_emoji.shortcode = event.target.value; + }); } handleEmojiImageUrlChange( @@ -354,28 +437,11 @@ export class EmojiForm extends Component { }: { form: EmojiForm; index: number; overrideValue: string | null }, event: any, ) { - form.setState(prevState => { - const custom_emojis = [...form.state.customEmojis]; - const pagedIndex = (form.state.page - 1) * form.itemsPerPage + index; - const item = { - ...form.state.customEmojis[pagedIndex], - image_url: overrideValue ?? event.target.value, - changed: true, - }; - custom_emojis[Number(pagedIndex)] = item; - return { - ...prevState, - customEmojis: prevState.customEmojis.map((ce, i) => - i === pagedIndex - ? { - ...ce, - image_url: overrideValue ?? event.target.value, - changed: true, - loading: false, - } - : ce, - ), - }; + const editable: EditableEmoji = form.state.emojis[index]; + form.setState(() => { + markForUpdate(editable); + editable.emoji.custom_emoji.image_url = + overrideValue ?? event.target.value; }); } @@ -383,97 +449,117 @@ export class EmojiForm extends Component { props: { form: EmojiForm; index: number }, event: any, ) { - const custom_emojis = [...props.form.state.customEmojis]; - const pagedIndex = - (props.form.state.page - 1) * props.form.itemsPerPage + props.index; - const item = { - ...props.form.state.customEmojis[pagedIndex], - alt_text: event.target.value, - changed: true, - }; - custom_emojis[Number(pagedIndex)] = item; - props.form.setState({ customEmojis: custom_emojis }); + const editable: EditableEmoji = props.form.state.emojis[props.index]; + props.form.setState(() => { + markForUpdate(editable); + editable.emoji.custom_emoji.alt_text = event.target.value; + }); } handleEmojiKeywordChange( props: { form: EmojiForm; index: number }, event: any, ) { - const custom_emojis = [...props.form.state.customEmojis]; - const pagedIndex = - (props.form.state.page - 1) * props.form.itemsPerPage + props.index; - const item = { - ...props.form.state.customEmojis[pagedIndex], - keywords: event.target.value, - changed: true, - }; - custom_emojis[Number(pagedIndex)] = item; - props.form.setState({ customEmojis: custom_emojis }); + const editable: EditableEmoji = props.form.state.emojis[props.index]; + props.form.setState(() => { + markForUpdate(editable); + editable.emoji.keywords = event.target.value + .split(" ") + .map((x: string) => ({ id: -1, keyword: x })); + }); } handleDeleteEmojiClick(d: { i: EmojiForm; index: number; - cv: CustomEmojiViewForm; + cv: EditableEmoji; }) { - const pagedIndex = (d.i.state.page - 1) * d.i.itemsPerPage + d.index; - if (d.cv.id !== 0) { - d.i.props.onDelete({ - id: d.cv.id, - }); + if (d.cv.change === "create") { + // This drops the entry immediately, other deletes have to be saved. + d.i.setState(prev => ({ + emojis: prev.emojis.filter(x => x !== d.cv), + })); } else { - const custom_emojis = [...d.i.state.customEmojis]; - custom_emojis.splice(Number(pagedIndex), 1); - d.i.setState({ customEmojis: custom_emojis }); - } - } - - handleEditEmojiClick(d: { i: EmojiForm; cv: CustomEmojiViewForm }) { - const keywords = d.cv.keywords - .split(" ") - .filter(x => x.length > 0) as string[]; - const uniqueKeywords = Array.from(new Set(keywords)); - if (d.cv.id !== 0) { - d.i.props.onEdit({ - id: d.cv.id, - category: d.cv.category, - image_url: d.cv.image_url, - alt_text: d.cv.alt_text, - keywords: uniqueKeywords, - }); - } else { - d.i.props.onCreate({ - category: d.cv.category, - shortcode: d.cv.shortcode, - image_url: d.cv.image_url, - alt_text: d.cv.alt_text, - keywords: uniqueKeywords, + d.i.setState(() => { + d.cv.change = "delete"; }); } } - handleAddEmojiClick(form: EmojiForm, event: any) { + async handleSaveEmojiClick(d: { i: EmojiForm; cv: EditableEmoji }) { + d.i.needsRefetch = true; + const editable = d.cv; + if (editable.change === "update") { + const resp = await HttpService.client.editCustomEmoji({ + ...editable.emoji.custom_emoji, + keywords: editable.emoji.keywords.map(x => x.keyword), + }); + if (resp.state === "success") { + d.i.setState(() => { + editable.emoji = resp.data.custom_emoji; + editable.change = undefined; + }); + } + } else if (editable.change === "delete") { + const resp = await HttpService.client.deleteCustomEmoji( + editable.emoji.custom_emoji, + ); + if (resp.state === "success") { + d.i.setState(prev => ({ + emojis: prev.emojis.filter(x => x !== editable), + })); + } + } else if (editable.change === "create") { + const resp = await HttpService.client.createCustomEmoji({ + ...editable.emoji.custom_emoji, + keywords: editable.emoji.keywords.map(x => x.keyword), + }); + if (resp.state === "success") { + d.i.setState(() => { + editable.emoji = resp.data.custom_emoji; + editable.change = undefined; + }); + } + } + } + + async handleCancelEmojiClick(d: { i: EmojiForm; cv: EditableEmoji }) { + if (d.cv.change === "create") { + d.i.setState(() => { + return { + emojis: d.i.state.emojis.filter(x => x !== d.cv), + }; + }); + } else if (d.cv.change === "update" || d.cv.change === "delete") { + const original = d.i.state.allEmojis.find( + x => x.custom_emoji.id === d.cv.emoji.custom_emoji.id, + ); + if (original) { + d.i.setState(() => { + d.cv.emoji = structuredClone(original); + d.cv.change = undefined; + }); + } + } + } + + async handleAddEmojiClick(form: EmojiForm, event: any) { event.preventDefault(); - form.setState(prevState => { - const page = - 1 + Math.floor(prevState.customEmojis.length / form.itemsPerPage); - const item: CustomEmojiViewForm = { - id: 0, - shortcode: "", - alt_text: "", - category: "", - image_url: "", - keywords: "", - changed: false, - page: page, - loading: false, - }; - - return { - ...prevState, - customEmojis: [...prevState.customEmojis, item], - page, - }; + form.setState(prev => { + prev.emojis.push({ + emoji: { + custom_emoji: { + id: -1, + published: "", + category: "", + shortcode: "", + image_url: "", + alt_text: "", + }, + keywords: [], + }, + change: "create", + }); }); } @@ -489,14 +575,15 @@ export class EmojiForm extends Component { file = event; } - form.setState(prevState => ({ - ...prevState, - customEmojis: prevState.customEmojis.map((cv, i) => - i === index ? { ...cv, loading: true } : cv, - ), - })); + const editable = form.state.emojis[index]; + form.setState(() => { + editable.loading = true; + }); HttpService.client.uploadImage({ image: file }).then(res => { + form.setState(() => { + editable.loading = false; + }); if (res.state === "success") { if (res.data.msg === "ok") { pictrsDeleteToast(file.name, res.data.delete_url as string); @@ -517,10 +604,20 @@ export class EmojiForm extends Component { } configurePicker(): any { + const custom = this.state.emojiMartCustom; + if (process.env["NODE_ENV"] === "development") { + // Once an emoji-mart Picker is initialized with these options, other + // instances also only show the custom emojis. + console.assert( + amAdmin(), + "EmojiMart doesn't deal well with differently configured instances.", + ); + } return { data: { categories: [], emojis: [], aliases: [] }, maxFrequentRows: 0, dynamicWidth: true, + custom, }; } } diff --git a/src/shared/components/home/home.tsx b/src/shared/components/home/home.tsx index 84aa97a8..0e1f451f 100644 --- a/src/shared/components/home/home.tsx +++ b/src/shared/components/home/home.tsx @@ -1,5 +1,6 @@ import { commentsToFlatNodes, + commentToPostSortType, editComment, editPost, editWith, @@ -16,12 +17,9 @@ import { import { getQueryParams, getQueryString, - getRandomFromList, resourcesSettled, - bareRoutePush, } from "@utils/helpers"; import { scrollMixin } from "../mixins/scroll-mixin"; -import { canCreateCommunity } from "@utils/roles"; import type { QueryParams, StringBoolean } from "@utils/types"; import { RouteDataResponse } from "@utils/types"; import { NoOptionI18nKeys } from "i18next"; @@ -56,8 +54,6 @@ import { GetSiteResponse, HidePost, LemmyHttp, - ListCommunities, - ListCommunitiesResponse, ListingType, LockPost, MarkCommentReplyAsRead, @@ -71,11 +67,12 @@ import { RemovePost, SaveComment, SavePost, - SortType, + PostSortType, SuccessResponse, TransferCommunity, + CommentSortType, } from "lemmy-js-client"; -import { fetchLimit, relTags, trendingFetchLimit } from "../../config"; +import { fetchLimit, relTags } from "../../config"; import { CommentViewType, DataType, @@ -106,19 +103,17 @@ import { getHttpBaseInternal } from "../../utils/env"; import { CommentsLoadingSkeleton, PostsLoadingSkeleton, - TrendingCommunitiesLoadingSkeleton, } from "../common/loading-skeleton"; import { RouteComponentProps } from "inferno-router/dist/Route"; import { IRoutePropsWithFetch } from "../../routes"; import PostHiddenSelect from "../common/post-hidden-select"; import { isBrowser, snapToTop } from "@utils/browser"; +import { CommentSortSelect } from "../common/comment-sort-select"; interface HomeState { postsRes: RequestState; commentsRes: RequestState; - trendingCommunitiesRes: RequestState; showSubscribedMobile: boolean; - showTrendingMobile: boolean; showSidebarMobile: boolean; subscribedCollapsed: boolean; tagline?: string; @@ -129,7 +124,7 @@ interface HomeState { interface HomeProps { listingType?: ListingType; dataType: DataType; - sort: SortType; + sort: PostSortType; pageCursor?: PaginationCursor; showHidden?: StringBoolean; } @@ -137,10 +132,9 @@ interface HomeProps { type HomeData = RouteDataResponse<{ postsRes: GetPostsResponse; commentsRes: GetCommentsResponse; - trendingCommunitiesRes: ListCommunitiesResponse; }>; -function getRss(listingType: ListingType, sort: SortType) { +function getRss(listingType: ListingType, sort: PostSortType) { let rss: string | undefined = undefined; const queryString = getQueryString({ sort }); @@ -185,13 +179,13 @@ function getListingTypeFromQuery( function getSortTypeFromQuery( type: string | undefined, - fallback: SortType, -): SortType { - return type ? (type as SortType) : fallback; + fallback: PostSortType, +): PostSortType { + return type ? (type as PostSortType) : fallback; } type Fallbacks = { - sort: SortType; + sort: PostSortType; listingType: ListingType; }; @@ -212,7 +206,8 @@ export function getHomeQueryParams( }, source, { - sort: local_user?.default_sort_type ?? local_site.default_sort_type, + sort: + local_user?.default_post_sort_type ?? local_site.default_post_sort_type, listingType: local_user?.default_listing_type ?? local_site.default_post_listing_type, @@ -238,18 +233,6 @@ const MobileButton = ({ ); -const LinkButton = ({ - path, - translationKey, -}: { - path: string; - translationKey: NoOptionI18nKeys; -}) => ( - - {I18NextService.i18n.t(translationKey)} - -); - type HomePathProps = Record; type HomeRouteProps = RouteComponentProps & HomeProps; export type HomeFetchConfig = IRoutePropsWithFetch< @@ -265,10 +248,8 @@ export class Home extends Component { state: HomeState = { postsRes: EMPTY_REQUEST, commentsRes: EMPTY_REQUEST, - trendingCommunitiesRes: EMPTY_REQUEST, siteRes: this.isoData.site_res, showSubscribedMobile: false, - showTrendingMobile: false, showSidebarMobile: false, subscribedCollapsed: false, isIsomorphic: false, @@ -276,7 +257,6 @@ export class Home extends Component { loadingSettled(): boolean { return resourcesSettled([ - this.state.trendingCommunitiesRes, this.props.dataType === DataType.Post ? this.state.postsRes : this.state.commentsRes, @@ -287,6 +267,7 @@ export class Home extends Component { super(props, context); this.handleSortChange = this.handleSortChange.bind(this); + this.handleCommentSortChange = this.handleCommentSortChange.bind(this); this.handleListingTypeChange = this.handleListingTypeChange.bind(this); this.handleDataTypeChange = this.handleDataTypeChange.bind(this); this.handleShowHiddenChange = this.handleShowHiddenChange.bind(this); @@ -324,21 +305,17 @@ export class Home extends Component { // Only fetch the data if coming from another route if (FirstLoadService.isFirstLoad) { - const { trendingCommunitiesRes, commentsRes, postsRes } = - this.isoData.routeData; + const { commentsRes, postsRes } = this.isoData.routeData; this.state = { ...this.state, - trendingCommunitiesRes, commentsRes, postsRes, isIsomorphic: true, }; } - this.state.tagline = getRandomFromList( - this.state?.siteRes?.taglines ?? [], - )?.content; + this.state.tagline = this.state?.siteRes?.tagline?.content; } async componentWillMount() { @@ -349,10 +326,7 @@ export class Home extends Component { )) && isBrowser() ) { - await Promise.all([ - this.fetchTrendingCommunities(), - this.fetchData(this.props), - ]); + await this.fetchData(this.props); } } @@ -360,10 +334,6 @@ export class Home extends Component { nextProps: HomeRouteProps & { children?: InfernoNode }, ) { this.fetchData(nextProps); - - if (bareRoutePush(this.props, nextProps)) { - this.fetchTrendingCommunities(); - } } static async fetchInitialData({ @@ -401,24 +371,12 @@ export class Home extends Component { commentsFetch = client.getComments(getCommentsForm); } - const trendingCommunitiesForm: ListCommunities = { - type_: "Local", - sort: "Hot", - limit: trendingFetchLimit, - }; - - const trendingCommunitiesFetch = client.listCommunities( - trendingCommunitiesForm, - ); - - const [postsRes, commentsRes, trendingCommunitiesRes] = await Promise.all([ + const [postsRes, commentsRes] = await Promise.all([ postsFetch, commentsFetch, - trendingCommunitiesFetch, ]); return { - trendingCommunitiesRes, commentsRes, postsRes, }; @@ -481,7 +439,6 @@ export class Home extends Component { admins, }, showSubscribedMobile, - showTrendingMobile, showSidebarMobile, } = this.state; @@ -495,11 +452,6 @@ export class Home extends Component { onClick={linkEvent(this, this.handleShowSubscribedMobile)} /> )} - { isMobile={true} /> )} - {showTrendingMobile && ( -
- {this.trendingCommunities()} -
- )} {showSubscribedMobile && (
{this.subscribedCommunities(true)} @@ -539,9 +486,6 @@ export class Home extends Component { return (
-
- {this.trendingCommunities()} -
{ ); } - trendingCommunities() { - switch (this.state.trendingCommunitiesRes?.state) { - case "loading": - return ; - case "success": { - const trending = this.state.trendingCommunitiesRes.data.communities; - return ( - <> -
-
- - # - - # - - -
-
-
- {trending.length > 0 && ( -
    - {trending.map(cv => ( -
  • - -
  • - ))} -
- )} - {canCreateCommunity(this.state.siteRes) && ( - - )} - -
- - ); - } - } - } - subscribedCommunities(isMobile = false) { const { subscribedCollapsed } = this.state; @@ -829,7 +728,14 @@ export class Home extends Component { />
- + {this.props.dataType === DataType.Post ? ( + + ) : ( + + )}
{getRss( @@ -842,17 +748,6 @@ export class Home extends Component { ); } - async fetchTrendingCommunities() { - this.setState({ trendingCommunitiesRes: LOADING_REQUEST }); - this.setState({ - trendingCommunitiesRes: await HttpService.client.listCommunities({ - type_: "Local", - sort: "Hot", - limit: trendingFetchLimit, - }), - }); - } - fetchDataToken?: symbol; async fetchData({ dataType, @@ -893,10 +788,6 @@ export class Home extends Component { i.setState({ showSubscribedMobile: !i.state.showSubscribedMobile }); } - handleShowTrendingMobile(i: Home) { - i.setState({ showTrendingMobile: !i.state.showTrendingMobile }); - } - handleShowSidebarMobile(i: Home) { i.setState({ showSidebarMobile: !i.state.showSidebarMobile }); } @@ -917,10 +808,14 @@ export class Home extends Component { this.updateUrl({ pageCursor: nextPage }); } - handleSortChange(val: SortType) { + handleSortChange(val: PostSortType) { this.updateUrl({ sort: val, pageCursor: undefined }); } + handleCommentSortChange(val: CommentSortType) { + this.updateUrl({ sort: commentToPostSortType(val), pageCursor: undefined }); + } + handleListingTypeChange(val: ListingType) { this.updateUrl({ listingType: val, pageCursor: undefined }); } diff --git a/src/shared/components/home/login.tsx b/src/shared/components/home/login.tsx index 4a7723d8..01f3d781 100644 --- a/src/shared/components/home/login.tsx +++ b/src/shared/components/home/login.tsx @@ -3,7 +3,12 @@ import { isBrowser, refreshTheme } from "@utils/browser"; import { getQueryParams } from "@utils/helpers"; import { Component, linkEvent } from "inferno"; import { RouteComponentProps } from "inferno-router/dist/Route"; -import { GetSiteResponse, LoginResponse } from "lemmy-js-client"; +import { + GetSiteResponse, + LoginResponse, + OAuthProvider, + PublicOAuthProvider, +} from "lemmy-js-client"; import { I18NextService, UserService } from "../../services"; import { EMPTY_REQUEST, @@ -15,7 +20,7 @@ import { toast } from "../../toast"; import { HtmlTags } from "../common/html-tags"; import { Spinner } from "../common/icon"; import PasswordInput from "../common/password-input"; -import TotpModal from "../common/totp-modal"; +import TotpModal from "../common/modal/totp-modal"; import { UnreadCounterService } from "../../services"; import { RouteData } from "../../interfaces"; import { IRoutePropsWithFetch } from "../../routes"; @@ -42,6 +47,7 @@ interface State { }; siteRes: GetSiteResponse; show2faModal: boolean; + showOAuthModal: boolean; } async function handleLoginSuccess(i: Login, loginRes: LoginResponse) { @@ -52,16 +58,21 @@ async function handleLoginSuccess(i: Login, loginRes: LoginResponse) { if (site.state === "success") { UserService.Instance.myUserInfo = site.data.my_user; + const isoData = setIsoData(i.context); + isoData.site_res.oauth_providers = site.data.oauth_providers; + isoData.site_res.admin_oauth_providers = site.data.admin_oauth_providers; refreshTheme(); } const { prev } = i.props; - prev - ? i.props.history.replace(prev) - : i.props.history.action === "PUSH" - ? i.props.history.back() - : i.props.history.replace("/"); + if (prev) { + i.props.history.replace(prev); + } else if (i.props.history.action === "PUSH") { + i.props.history.back(); + } else { + i.props.history.replace("/"); + } UnreadCounterService.Instance.updateAll(); } @@ -105,6 +116,45 @@ async function handleLoginSubmit(i: Login, event: any) { } } +export async function handleUseOAuthProvider(params: { + oauth_provider: OAuthProvider; + username?: string; + prev?: string; + answer?: string; + show_nsfw?: boolean; +}) { + const redirectUri = `${window.location.origin}/oauth/callback`; + + const state = crypto.randomUUID(); + const requestUri = + params.oauth_provider.authorization_endpoint + + "?" + + [ + `client_id=${encodeURIComponent(params.oauth_provider.client_id)}`, + `response_type=code`, + `scope=${encodeURIComponent(params.oauth_provider.scopes)}`, + `redirect_uri=${encodeURIComponent(redirectUri)}`, + `state=${state}`, + ].join("&"); + + // store state in local storage + localStorage.setItem( + "oauth_state", + JSON.stringify({ + state, + oauth_provider_id: params.oauth_provider.id, + redirect_uri: redirectUri, + prev: params.prev ?? "/", + username: params.username, + answer: params.answer, + show_nsfw: params.show_nsfw, + expires_at: Date.now() + 5 * 60_000, + }), + ); + + window.location.assign(requestUri); +} + function handleLoginUsernameChange(i: Login, event: any) { i.setState( prevState => (prevState.form.username_or_email = event.target.value.trim()), @@ -138,12 +188,14 @@ export class Login extends Component { }, siteRes: this.isoData.site_res, show2faModal: false, + showOAuthModal: false, }; constructor(props: any, context: any) { super(props, context); this.handleSubmitTotp = this.handleSubmitTotp.bind(this); + this.handleLoginWithProvider = this.handleLoginWithProvider.bind(this); } get documentTitle(): string { @@ -172,6 +224,35 @@ export class Login extends Component {
{this.loginForm()}
+ {(this.state.siteRes.oauth_providers?.length || 0) > 0 && ( + <> +
+
+ {I18NextService.i18n.t("or")} +
+
+
+
+

+ {I18NextService.i18n.t("oauth_login_with_provider")} +

+ {(this.state.siteRes.oauth_providers ?? []).map( + (provider: PublicOAuthProvider) => ( + + ), + )} +
+
+ + )}
); } @@ -194,6 +275,13 @@ export class Login extends Component { return successful; } + async handleLoginWithProvider(params: { oauth_provider: OAuthProvider }) { + handleUseOAuthProvider({ + oauth_provider: params.oauth_provider, + prev: this.props.prev ?? "/", + }); + } + loginForm() { return (
diff --git a/src/shared/components/home/oauth/oauth-callback.tsx b/src/shared/components/home/oauth/oauth-callback.tsx new file mode 100644 index 00000000..8d8ea3db --- /dev/null +++ b/src/shared/components/home/oauth/oauth-callback.tsx @@ -0,0 +1,175 @@ +import { setIsoData } from "@utils/app"; +import { Component } from "inferno"; +import { refreshTheme } from "@utils/browser"; +import { GetSiteResponse, LoginResponse } from "lemmy-js-client"; +import { Spinner } from "../../common/icon"; +import { getQueryParams } from "@utils/helpers"; +import { IRoutePropsWithFetch } from "../../../routes"; +import { RouteData } from "../../../interfaces"; +import { I18NextService, UserService } from "../../../services"; +import { RouteComponentProps } from "inferno-router/dist/Route"; +import { UnreadCounterService } from "../../../services"; +import { HttpService } from "../../../services/HttpService"; +import { toast } from "../../../toast"; + +interface OAuthCallbackProps { + code?: string; + state?: string; +} + +export function getOAuthCallbackQueryParams( + source?: string, +): OAuthCallbackProps { + return getQueryParams( + { + code: (code?: string) => code, + state: (state?: string) => state, + }, + source, + ); +} + +type OAuthCallbackRouteProps = RouteComponentProps> & + OAuthCallbackProps; +export type OAuthCallbackConfig = IRoutePropsWithFetch< + RouteData, + Record, + OAuthCallbackProps +>; + +interface State { + siteRes: GetSiteResponse; +} + +export class OAuthCallback extends Component { + private isoData = setIsoData(this.context); + + state: State = { + siteRes: this.isoData.site_res, + }; + + constructor(props: any, context: any) { + super(props, context); + } + + async componentDidMount() { + // store state in local storage + const local_oauth_state = JSON.parse( + localStorage.getItem("oauth_state") || "{}", + ); + if ( + !( + this.props.state && + this.props.code && + local_oauth_state?.state && + local_oauth_state?.oauth_provider_id && + local_oauth_state?.expires_at && + this.props.state === local_oauth_state.state + ) || + local_oauth_state.expires_at < Date.now() + ) { + // oauth failed or expired + toast(I18NextService.i18n.t("oauth_authorization_invalid"), "danger"); + this.props.history.replace("/login"); + } else { + const loginRes = await HttpService.client.authenticateWithOAuth({ + code: this.props.code, + oauth_provider_id: local_oauth_state.oauth_provider_id, + redirect_uri: local_oauth_state.redirect_uri, + show_nsfw: local_oauth_state.show_nsfw, + username: local_oauth_state.username, + answer: local_oauth_state.answer, + }); + + switch (loginRes.state) { + case "success": { + if (loginRes.data.jwt) { + handleOAuthLoginSuccess( + this, + local_oauth_state.prev, + loginRes.data, + ); + } else { + if (loginRes.data.verify_email_sent) { + toast(I18NextService.i18n.t("verify_email_sent")); + } + if (loginRes.data.registration_created) { + toast(I18NextService.i18n.t("registration_application_sent")); + } + this.props.history.push("/login"); + } + break; + } + case "failed": { + let err_redirect = "/login"; + switch (loginRes.err.message) { + case "registration_username_required": + case "registration_application_answer_required": + err_redirect = `/signup?sso_provider_id=${local_oauth_state.oauth_provider_id}`; + toast(I18NextService.i18n.t(loginRes.err.message), "danger"); + break; + case "registration_application_is_pending": + toast( + I18NextService.i18n.t("registration_application_pending"), + "danger", + ); + break; + case "registration_denied": + case "oauth_authorization_invalid": + case "oauth_login_failed": + case "oauth_registration_closed": + case "email_already_exists": + case "username_already_exists": + case "no_email_setup": + toast(I18NextService.i18n.t(loginRes.err.message), "danger"); + break; + default: + toast(I18NextService.i18n.t("incorrect_login"), "danger"); + break; + } + this.props.history.push(err_redirect); + } + } + } + } + + get documentTitle(): string { + return `${I18NextService.i18n.t("login")} - ${ + this.state.siteRes.site_view.site.name + }`; + } + + render() { + return ( +
+ +
+ ); + } +} + +async function handleOAuthLoginSuccess( + i: OAuthCallback, + prev: string, + loginRes: LoginResponse, +) { + UserService.Instance.login({ + res: loginRes, + }); + const site = await HttpService.client.getSite(); + + if (site.state === "success") { + UserService.Instance.myUserInfo = site.data.my_user; + refreshTheme(); + } + + if (prev) { + i.props.history.replace(prev); + } else if (i.props.history.action === "PUSH") { + i.props.history.back(); + } else { + i.props.history.replace("/"); + } + + UnreadCounterService.Instance.updateAll(); +} diff --git a/src/shared/components/home/oauth/oauth-provider-list-item.tsx b/src/shared/components/home/oauth/oauth-provider-list-item.tsx new file mode 100644 index 00000000..e87ae3f1 --- /dev/null +++ b/src/shared/components/home/oauth/oauth-provider-list-item.tsx @@ -0,0 +1,98 @@ +import { OAuthProvider } from "lemmy-js-client"; +import { I18NextService } from "../../../services/I18NextService"; +import { Icon } from "../../common/icon"; +import { MouseEventHandler } from "inferno"; + +type OAuthProviderListItemProps = { + provider: OAuthProvider; + onEdit: MouseEventHandler; + onDelete: MouseEventHandler; +}; + +type TextInfoFieldProps = { + i18nKey: string; + data: string; +}; + +function TextInfoField({ i18nKey, data }: TextInfoFieldProps) { + return ( +
+
{I18NextService.i18n.t(i18nKey)}
+
{data}
+
+ ); +} + +function boolToYesNo(value?: boolean) { + return I18NextService.i18n.t(value ? "yes" : "no"); +} + +export default function OAuthProviderListItem({ + provider, + onEdit, + onDelete, +}: OAuthProviderListItemProps) { + return ( +
  • +
    + +
    + + {provider.display_name} +
    +
    + + +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    +
  • + ); +} diff --git a/src/shared/components/home/oauth/oauth-providers-tab.tsx b/src/shared/components/home/oauth/oauth-providers-tab.tsx new file mode 100644 index 00000000..e6efa537 --- /dev/null +++ b/src/shared/components/home/oauth/oauth-providers-tab.tsx @@ -0,0 +1,204 @@ +import { Component, linkEvent } from "inferno"; +import { I18NextService } from "../../../services/I18NextService"; +import { + CreateOAuthProvider, + DeleteOAuthProvider, + EditOAuthProvider, + OAuthProvider, +} from "lemmy-js-client"; +import OAuthProviderListItem from "./oauth-provider-list-item"; +import CreateOrEditOAuthProviderModal, { + CreateOrEditOAuthProviderModalData, +} from "../../common/modal/create-or-edit-oauth-provider-modal"; +import ConfirmationModal from "../../common/modal/confirmation-modal"; +import { ProviderToEdit } from "@utils/types/oauth"; + +type OAuthProvidersTabProps = { + oauthProviders: OAuthProvider[]; + onEdit(form: EditOAuthProvider): Promise; + onCreate(form: CreateOAuthProvider): Promise; + onDelete(form: DeleteOAuthProvider): Promise; +}; + +type OAuthProvidersTabState = { + providerToDelete?: OAuthProvider; + createOrEditModalData?: CreateOrEditOAuthProviderModalData; +}; + +const PRESET_OAUTH_PROVIDERS: ProviderToEdit[] = [ + { + display_name: "Privacy Portal", + issuer: "https://api.privacyportal.org/", + authorization_endpoint: "https://app.privacyportal.org/oauth/authorize", + token_endpoint: "https://api.privacyportal.org/oauth/token", + userinfo_endpoint: "https://api.privacyportal.org/oauth/userinfo", + id_claim: "sub", + scopes: "openid email", + auto_verify_email: true, + account_linking_enabled: true, + enabled: true, + }, + // additional preset providers can be added here +]; + +function handleShowCreateOrEditProviderModal({ + data, + tab, +}: { + tab: OAuthProvidersTab; + data: CreateOrEditOAuthProviderModalData; +}) { + tab.setState({ + createOrEditModalData: data, + }); +} + +function handleCloseCreateOrEditModal(tab: OAuthProvidersTab) { + tab.setState({ + createOrEditModalData: undefined, + }); +} + +function handleTryDeleteOauthProvider({ + tab, + provider, +}: { + tab: OAuthProvidersTab; + provider: OAuthProvider; +}) { + tab.setState({ providerToDelete: provider }); +} + +function handleCloseDeleteConfirmationModal(tab: OAuthProvidersTab) { + tab.setState({ providerToDelete: undefined }); +} + +export default class OAuthProvidersTab extends Component< + OAuthProvidersTabProps, + OAuthProvidersTabState +> { + state: OAuthProvidersTabState = {}; + + constructor(props: OAuthProvidersTabProps, context: any) { + super(props, context); + + this.handleDeleteProvider = this.handleDeleteProvider.bind(this); + this.handleCreateOrEditProviderSubmit = + this.handleCreateOrEditProviderSubmit.bind(this); + } + + render( + { oauthProviders }: Readonly, + { + providerToDelete, + createOrEditModalData, + }: Readonly, + ) { + return ( +
    +

    {I18NextService.i18n.t("oauth_config")}

    + {oauthProviders.length > 0 ? ( + <> +

    + {I18NextService.i18n.t("oauth_providers")} +

    +
      + {oauthProviders.map(provider => ( + + ))} +
    + + ) : ( +
    {I18NextService.i18n.t("no_oauth_providers_blurb")}
    + )} + + {PRESET_OAUTH_PROVIDERS.length > 0 && ( +
    +

    + {I18NextService.i18n.t("oauth_provider_presets")} +

    +
      + {PRESET_OAUTH_PROVIDERS.map(provider => { + const isAlreadyUsed = oauthProviders.some( + p => p.issuer === provider.issuer, + ); + + return ( +
    • + +
    • + ); + })} +
    +
    + )} + + +
    + ); + } + + async handleDeleteProvider() { + const id = this.state.providerToDelete?.id; + + if (id !== undefined) { + await this.props.onDelete({ id }); + } + + this.setState({ providerToDelete: undefined }); + } + + async handleCreateOrEditProviderSubmit( + provider: CreateOAuthProvider | EditOAuthProvider, + ) { + if (this.state.createOrEditModalData?.type === "edit") { + await this.props.onEdit(provider as EditOAuthProvider); + } else { + await this.props.onCreate(provider as CreateOAuthProvider); + } + + this.setState({ + createOrEditModalData: undefined, + }); + } +} diff --git a/src/shared/components/home/rate-limit-form.tsx b/src/shared/components/home/rate-limit-form.tsx index 21b3364b..bef1440a 100644 --- a/src/shared/components/home/rate-limit-form.tsx +++ b/src/shared/components/home/rate-limit-form.tsx @@ -3,7 +3,7 @@ import classNames from "classnames"; import { Component, FormEventHandler, linkEvent } from "inferno"; import { EditSite, LocalSiteRateLimit } from "lemmy-js-client"; import { I18NextService } from "../../services"; -import { Spinner } from "../common/icon"; +import { Icon, Spinner } from "../common/icon"; import Tabs from "../common/tabs"; const rateLimitTypes = [ @@ -144,6 +144,10 @@ export default class RateLimitsForm extends Component<

    {I18NextService.i18n.t("rate_limit_header")}

    +
    + + {I18NextService.i18n.t("rate_limit_info")} +
    ({ key: rateLimitType, diff --git a/src/shared/components/home/signup.tsx b/src/shared/components/home/signup.tsx index 7c6c9471..2af157e6 100644 --- a/src/shared/components/home/signup.tsx +++ b/src/shared/components/home/signup.tsx @@ -1,6 +1,6 @@ import { setIsoData } from "@utils/app"; import { isBrowser } from "@utils/browser"; -import { resourcesSettled, validEmail } from "@utils/helpers"; +import { getQueryParams, resourcesSettled, validEmail } from "@utils/helpers"; import { scrollMixin } from "../mixins/scroll-mixin"; import { Component, linkEvent } from "inferno"; import { T } from "inferno-i18next-dess"; @@ -11,7 +11,7 @@ import { LoginResponse, SiteView, } from "lemmy-js-client"; -import { joinLemmyUrl } from "../../config"; +import { joinLemmyUrl, validActorRegexPattern } from "../../config"; import { mdToHtml } from "../../markdown"; import { I18NextService, UserService } from "../../services"; import { @@ -26,6 +26,13 @@ import { Icon, Spinner } from "../common/icon"; import { MarkdownTextArea } from "../common/markdown-textarea"; import PasswordInput from "../common/password-input"; import { RouteComponentProps } from "inferno-router/dist/Route"; +import { RouteData } from "../../interfaces"; +import { IRoutePropsWithFetch } from "../../routes"; +import { handleUseOAuthProvider } from "./login"; + +interface SignupProps { + sso_provider_id?: string; +} interface State { registerRes: RequestState; @@ -45,11 +52,25 @@ interface State { siteRes: GetSiteResponse; } +export function getSignupQueryParams(source?: string): SignupProps { + return getQueryParams( + { + sso_provider_id: (param?: string) => param, + }, + source, + ); +} + +type SignupRouteProps = RouteComponentProps> & + SignupProps; +export type SignupFetchConfig = IRoutePropsWithFetch< + RouteData, + Record, + SignupProps +>; + @scrollMixin -export class Signup extends Component< - RouteComponentProps>, - State -> { +export class Signup extends Component { private isoData = setIsoData(this.context); private audio?: HTMLAudioElement; @@ -132,6 +153,8 @@ export class Signup extends Component< registerForm() { const siteView = this.state.siteRes.site_view; + const oauth_provider = getOAuthProvider(this); + return (
    -
    - -
    - - {!siteView.local_site.require_email_verification && - this.state.form.email && - !validEmail(this.state.form.email) && ( -
    - - {I18NextService.i18n.t("no_password_reset")} + {!oauth_provider && ( + <> + { +
    + +
    + + {!siteView.local_site.require_email_verification && + this.state.form.email && + !validEmail(this.state.form.email) && ( +
    + + {I18NextService.i18n.t("no_password_reset")} +
    + )}
    - )} -
    -
    +
    + } -
    - -
    + { +
    + +
    + } -
    - -
    + { +
    + +
    + } + + )} {siteView.local_site.registration_mode === "RequireApplication" && ( <> @@ -296,7 +341,12 @@ export class Signup extends Component< {this.state.registerRes.state === "loading" ? ( ) : ( - this.titleName(siteView) + [ + this.titleName(siteView), + ...(oauth_provider + ? [`(${oauth_provider.display_name})`] + : []), + ].join(" ") )}
    @@ -389,6 +439,19 @@ export class Signup extends Component< password_verify, username, } = i.state.form; + + const oauthProvider = getOAuthProvider(i); + + // oauth registration + if (username && oauthProvider) + return handleUseOAuthProvider({ + oauth_provider: oauthProvider, + username, + answer, + show_nsfw, + }); + + // normal registration if (username && password && password_verify) { i.setState({ registerRes: LOADING_REQUEST }); @@ -516,3 +579,9 @@ export class Signup extends Component< return `data:image/png;base64,${captcha.png}`; } } + +function getOAuthProvider(signup: Signup) { + return (signup.state.siteRes.oauth_providers ?? []).find( + provider => provider.id === Number(signup.props?.sso_provider_id ?? -1), + ); +} diff --git a/src/shared/components/home/site-form.tsx b/src/shared/components/home/site-form.tsx index 43036559..f1967436 100644 --- a/src/shared/components/home/site-form.tsx +++ b/src/shared/components/home/site-form.tsx @@ -2,7 +2,6 @@ import { capitalizeFirstLetter, validInstanceTLD } from "@utils/helpers"; import { Component, InfernoKeyboardEvent, - InfernoMouseEvent, InfernoNode, linkEvent, } from "inferno"; @@ -64,7 +63,7 @@ export class SiteForm extends Component { description: site.description, enable_downvotes: ls.enable_downvotes, registration_mode: ls.registration_mode, - enable_nsfw: ls.enable_nsfw, + oauth_registration: ls.oauth_registration, community_creation_admin_only: ls.community_creation_admin_only, icon: site.icon, banner: site.banner, @@ -334,6 +333,25 @@ export class SiteForm extends Component { )} +
    +
    +
    + + +
    +
    +
    @@ -783,6 +801,7 @@ export class SiteForm extends Component { enable_downvotes: stateSiteForm.enable_downvotes, application_question: stateSiteForm.application_question, registration_mode: stateSiteForm.registration_mode, + oauth_registration: stateSiteForm.oauth_registration, require_email_verification: stateSiteForm.require_email_verification, private_instance: stateSiteForm.private_instance, default_theme: stateSiteForm.default_theme, @@ -878,42 +897,6 @@ export class SiteForm extends Component { this.setState(s => ((s.siteForm.legal_information = val), s)); } - handleTaglineChange(i: SiteForm, index: number, val: string) { - const taglines = i.state.siteForm.taglines; - if (taglines) { - taglines[index] = val; - i.setState(i.state); - } - } - - handleDeleteTaglineClick( - i: SiteForm, - index: number, - event: InfernoMouseEvent, - ) { - event.preventDefault(); - const taglines = i.state.siteForm.taglines; - if (taglines) { - taglines.splice(index, 1); - i.state.siteForm.taglines = undefined; - i.setState(i.state); - i.state.siteForm.taglines = taglines; - i.setState(i.state); - } - } - - handleAddTaglineClick( - i: SiteForm, - event: InfernoMouseEvent, - ) { - event.preventDefault(); - if (!i.state.siteForm.taglines) { - i.state.siteForm.taglines = []; - } - i.state.siteForm.taglines.push(""); - i.setState(i.state); - } - handleSiteApplicationQuestionChange(val: string) { this.setState(s => ((s.siteForm.application_question = val), s)); } @@ -933,6 +916,11 @@ export class SiteForm extends Component { i.setState(i.state); } + handleSiteOauthRegistration(i: SiteForm, event: any) { + i.state.siteForm.oauth_registration = event.target.checked; + i.setState(i.state); + } + handleSiteCommunityCreationAdminOnly(i: SiteForm, event: any) { i.state.siteForm.community_creation_admin_only = event.target.checked; i.setState(i.state); diff --git a/src/shared/components/home/tagline-form.tsx b/src/shared/components/home/tagline-form.tsx index ed93f466..5c08ce1d 100644 --- a/src/shared/components/home/tagline-form.tsx +++ b/src/shared/components/home/tagline-form.tsx @@ -1,49 +1,84 @@ import { capitalizeFirstLetter } from "@utils/helpers"; import { Component, InfernoMouseEvent, linkEvent } from "inferno"; -import { EditSite, Tagline } from "lemmy-js-client"; -import { I18NextService } from "../../services"; +import { Tagline } from "lemmy-js-client"; +import { HttpService, I18NextService } from "../../services"; import { Icon, Spinner } from "../common/icon"; import { MarkdownTextArea } from "../common/markdown-textarea"; import { tippyMixin } from "../mixins/tippy-mixin"; +import { Paginator } from "../common/paginator"; +import classNames from "classnames"; +import { isBrowser } from "@utils/browser"; +import { Prompt } from "inferno-router"; -interface TaglineFormProps { - taglines: Array; - onSaveSite(form: EditSite): void; - loading: boolean; +interface EditableTagline { + change?: "update" | "delete" | "create"; + editMode?: boolean; + tagline: Tagline; +} + +function markForUpdate(editable: EditableTagline) { + if (editable.change !== "create") { + editable.change = "update"; + } } interface TaglineFormState { - taglines: Array; - editingRow?: number; + taglines: Array; + page: number; + loading: boolean; } @tippyMixin -export class TaglineForm extends Component { +export class TaglineForm extends Component< + Record, + TaglineFormState +> { state: TaglineFormState = { - editingRow: undefined, - taglines: this.props.taglines.map(x => x.content), + taglines: [], + page: 1, + loading: false, }; constructor(props: any, context: any) { super(props, context); + this.handlePageChange = this.handlePageChange.bind(this); + } + + componentWillMount(): void { + if (isBrowser()) { + this.handlePageChange(1); + } + } + + hasPendingChanges(): boolean { + return this.state.taglines.some(x => x.change); } render() { return (
    +

    {I18NextService.i18n.t("taglines")}

    - +
    + {this.state.taglines.map((cv, index) => ( +
    - {this.state.editingRow === index && ( + {cv.editMode ? ( this.handleTaglineChange(this, index, s) } @@ -51,8 +86,32 @@ export class TaglineForm extends Component { allLanguages={[]} siteLanguages={[]} /> + ) : ( +
    {cv.tagline.content}
    + )} +
    + {cv.change === "update" && ( + + + + )} + {cv.change === "delete" && ( + + + + )} + {cv.change === "create" && ( + + + )} - {this.state.editingRow !== index &&
    {cv}
    }
    + {this.hasPendingChanges() && ( + + )} +
    + +
    ); } handleTaglineChange(i: TaglineForm, index: number, val: string) { - if (i.state.taglines) { - i.setState(prev => ({ - ...prev, - taglines: prev.taglines.map((tl, i) => (i === index ? val : tl)), - })); - } + const editable = i.state.taglines[index]; + i.setState(() => { + markForUpdate(editable); + const tagline: Tagline = editable.tagline; + tagline.content = val; + }); } - handleDeleteTaglineClick(d: { i: TaglineForm; index: number }, event: any) { + async handleDeleteTaglineClick( + d: { i: TaglineForm; index: number }, + event: any, + ) { event.preventDefault(); - d.i.setState(prev => ({ - ...prev, - taglines: prev.taglines.filter((_, i) => i !== d.index), - editingRow: undefined, - })); + const editable = d.i.state.taglines[d.index]; + if (editable.change === "create") { + // This drops the entry immediately, other deletes have to be saved. + d.i.setState(prev => { + return { taglines: prev.taglines.filter(x => x !== editable) }; + }); + } else { + d.i.setState(() => { + editable.change = "delete"; + editable.editMode = false; + }); + } } handleEditTaglineClick(d: { i: TaglineForm; index: number }, event: any) { event.preventDefault(); - if (d.i.state.editingRow === d.index) { - d.i.setState({ editingRow: undefined }); - } else { - d.i.setState({ editingRow: d.index }); - } - } - - async handleSaveClick(i: TaglineForm) { - i.props.onSaveSite({ - taglines: i.state.taglines, + const editable = d.i.state.taglines[d.index]; + d.i.setState(prev => { + prev.taglines + .filter(x => x !== editable) + .forEach(x => { + x.editMode = false; + }); + editable.editMode = !editable.editMode; }); } - handleAddTaglineClick( + async handleSaveClick(i: TaglineForm) { + const promises: Promise[] = []; + for (const editable of i.state.taglines) { + if (editable.change === "update") { + promises.push( + HttpService.client.editTagline(editable.tagline).then(res => { + if (res.state === "success") { + i.setState(() => { + editable.change = undefined; + editable.tagline = res.data.tagline; + }); + } + }), + ); + } else if (editable.change === "delete") { + promises.push( + HttpService.client.deleteTagline(editable.tagline).then(res => { + if (res.state === "success") { + i.setState(() => { + editable.change = undefined; + return { + taglines: this.state.taglines.filter(x => x !== editable), + }; + }); + } + }), + ); + } else if (editable.change === "create") { + promises.push( + HttpService.client.createTagline(editable.tagline).then(res => { + if (res.state === "success") { + i.setState(() => { + editable.change = undefined; + editable.tagline = res.data.tagline; + }); + } + }), + ); + } + } + await Promise.all(promises); + } + + async handleCancelClick(i: TaglineForm) { + i.handlePageChange(i.state.page); + } + + async handleAddTaglineClick( i: TaglineForm, event: InfernoMouseEvent, ) { event.preventDefault(); - const newTaglines = [...i.state.taglines]; - newTaglines.push(""); - - i.setState({ - taglines: newTaglines, - editingRow: newTaglines.length - 1, + i.setState(prev => { + prev.taglines.forEach(x => { + x.editMode = false; + }); + prev.taglines.push({ + tagline: { id: -1, content: "", published: "" }, + change: "create", + editMode: true, + }); }); } + + async handlePageChange(val: number) { + this.setState({ loading: true }); + const taglineRes = await HttpService.client.listTaglines({ page: val }); + if (taglineRes.state === "success") { + this.setState({ + page: val, + loading: false, + taglines: taglineRes.data.taglines.map(t => ({ tagline: t })), + }); + } else { + this.setState({ loading: false }); + } + } } diff --git a/src/shared/components/modlog.tsx b/src/shared/components/modlog.tsx index d055fbbd..1afa53b0 100644 --- a/src/shared/components/modlog.tsx +++ b/src/shared/components/modlog.tsx @@ -907,8 +907,9 @@ export class Modlog extends Component { options={userSearchOptions} loading={loadingUserSearch} /> - {!this.isoData.site_res.site_view.local_site - .hide_modlog_mod_names && ( + {(this.amAdminOrMod || + !this.isoData.site_res.site_view.local_site + .hide_modlog_mod_names) && ( { limit: fetchLimit, type_: actionType, other_person_id: userId, - mod_person_id: !this.isoData.site_res.site_view.local_site - .hide_modlog_mod_names - ? modId - : undefined, + mod_person_id: modId, comment_id: commentId, post_id: postId, }); @@ -1090,19 +1088,15 @@ export class Modlog extends Component { static async fetchInitialData({ headers, - query: { page, userId, modId: modId_, actionType, commentId, postId }, + query: { page, userId, modId, actionType, commentId, postId }, match: { params: { communityId: urlCommunityId }, }, - site, }: InitialFetchRequest): Promise { const client = wrapClient( new LemmyHttp(getHttpBaseInternal(), { headers }), ); const communityId = getIdFromString(urlCommunityId); - const modId = !site.site_view.local_site.hide_modlog_mod_names - ? modId_ - : undefined; const modlogForm: GetModlog = { page, diff --git a/src/shared/components/person/person-details.tsx b/src/shared/components/person/person-details.tsx index 67aab710..5667a572 100644 --- a/src/shared/components/person/person-details.tsx +++ b/src/shared/components/person/person-details.tsx @@ -37,7 +37,7 @@ import { RemovePost, SaveComment, SavePost, - SortType, + PostSortType, TransferCommunity, } from "lemmy-js-client"; import { CommentViewType, PersonDetailsView } from "../../interfaces"; @@ -53,7 +53,7 @@ interface PersonDetailsProps { siteLanguages: number[]; page: number; limit: number; - sort: SortType; + sort: PostSortType; enableDownvotes: boolean; voteDisplayMode: LocalUserVoteDisplayMode; enableNsfw: boolean; diff --git a/src/shared/components/person/profile.tsx b/src/shared/components/person/profile.tsx index 8f103838..138867ac 100644 --- a/src/shared/components/person/profile.tsx +++ b/src/shared/components/person/profile.tsx @@ -20,7 +20,7 @@ import { resourcesSettled, bareRoutePush, } from "@utils/helpers"; -import { canMod } from "@utils/roles"; +import { amAdmin, canMod } from "@utils/roles"; import type { QueryParams } from "@utils/types"; import { RouteDataResponse } from "@utils/types"; import classNames from "classnames"; @@ -70,9 +70,10 @@ import { RemovePost, SaveComment, SavePost, - SortType, + PostSortType, SuccessResponse, TransferCommunity, + RegistrationApplicationResponse, } from "lemmy-js-client"; import { fetchLimit, relTags } from "../../config"; import { InitialFetchRequest, PersonDetailsView } from "../../interfaces"; @@ -100,6 +101,7 @@ import { IRoutePropsWithFetch } from "../../routes"; import { MediaUploads } from "../common/media-uploads"; import { cakeDate } from "@utils/helpers"; import { isBrowser } from "@utils/browser"; +import DisplayModal from "../common/modal/display-modal"; type ProfileData = RouteDataResponse<{ personRes: GetPersonDetailsResponse; @@ -112,18 +114,20 @@ interface ProfileState { // to render the start of the profile while the new details are loading. personDetailsRes: RequestState; uploadsRes: RequestState; + registrationRes: RequestState; personBlocked: boolean; banReason?: string; banExpireDays?: number; showBanDialog: boolean; - removeData: boolean; + removeOrRestoreData: boolean; siteRes: GetSiteResponse; isIsomorphic: boolean; + showRegistrationDialog: boolean; } interface ProfileProps { view: PersonDetailsView; - sort: SortType; + sort: PostSortType; page: number; } @@ -138,8 +142,8 @@ export function getProfileQueryParams(source?: string): ProfileProps { ); } -function getSortTypeFromQuery(sort?: string): SortType { - return sort ? (sort as SortType) : "New"; +function getSortTypeFromQuery(sort?: string): PostSortType { + return sort ? (sort as PostSortType) : "New"; } function getViewFromProps(view?: string): PersonDetailsView { @@ -178,7 +182,7 @@ function isPersonBlocked(personRes: RequestState) { return ( (personRes.state === "success" && UserService.Instance.myUserInfo?.person_blocks.some( - ({ target: { id } }) => id === personRes.data.person_view.person.id, + ({ id }) => id === personRes.data.person_view.person.id, )) ?? false ); @@ -202,8 +206,10 @@ export class Profile extends Component { personBlocked: false, siteRes: this.isoData.site_res, showBanDialog: false, - removeData: false, + removeOrRestoreData: false, isIsomorphic: false, + showRegistrationDialog: false, + registrationRes: EMPTY_REQUEST, }; loadingSettled() { @@ -252,6 +258,8 @@ export class Profile extends Component { this.handlePurgePost = this.handlePurgePost.bind(this); this.handleFeaturePost = this.handleFeaturePost.bind(this); this.handleModBanSubmit = this.handleModBanSubmit.bind(this); + this.handleRegistrationShow = this.handleRegistrationShow.bind(this); + this.handleRegistrationClose = this.handleRegistrationClose.bind(this); // Only fetch the data if coming from another route if (FirstLoadService.isFirstLoad) { @@ -628,6 +636,8 @@ export class Profile extends Component { personBlocked, siteRes: { admins }, showBanDialog, + showRegistrationDialog, + registrationRes, } = this.state; return ( @@ -671,15 +681,27 @@ export class Profile extends Component {
    {!this.amCurrentUser && UserService.Instance.myUserInfo && ( <> - - {I18NextService.i18n.t("send_secure_message")} - + {amAdmin() && ( + + {I18NextService.i18n.t("user_moderation_history", { + user: pv.person.name, + })} + + )} + {pv.person.matrix_user_id && ( + + {I18NextService.i18n.t("send_secure_message")} + + )} { {capitalizeFirstLetter(I18NextService.i18n.t("unban"))} ))} + {amAdmin() && ( + <> + + {showRegistrationDialog && ( + + {registrationRes.state === "success" ? ( +
    this.forceUpdate(), + )} + /> + ) : registrationRes.state === "failed" ? ( + I18NextService.i18n.t("fetch_registration_error") + ) : ( + "" + )} + + )} + + )} {pv.person.bio && (
    @@ -829,7 +891,7 @@ export class Profile extends Component { className="form-check-input" id="mod-ban-remove-data" type="checkbox" - checked={this.state.removeData} + checked={this.state.removeOrRestoreData} onChange={linkEvent(this, this.handleModRemoveDataChange)} />
    @@ -557,14 +561,14 @@ export class Settings extends Component { <>

    {I18NextService.i18n.t("blocked_users")}

      - {this.state.personBlocks.map(pb => ( -
    • + {this.state.personBlocks.map(p => ( +
    • - +
    -
    -
    - - -
    -
    { instance => instance.domain.toLowerCase().includes(text.toLowerCase()) && !this.state.instanceBlocks.some( - blockedInstance => blockedInstance.instance.id === instance.id, + blockedInstance => blockedInstance.id === instance.id, ), ) ?? []; } @@ -1496,14 +1498,6 @@ export class Settings extends Component { ); } - handleShowNewPostNotifs(i: Settings, event: any) { - i.setState( - s => ( - (s.saveUserSettingsForm.show_new_post_notifs = event.target.checked), s - ), - ); - } - handleOpenInNewTab(i: Settings, event: any) { i.setState( s => ( @@ -1607,8 +1601,16 @@ export class Settings extends Component { ); } - handleSortTypeChange(val: SortType) { - this.setState(s => ((s.saveUserSettingsForm.default_sort_type = val), s)); + handlePostSortTypeChange(val: PostSortType) { + this.setState( + s => ((s.saveUserSettingsForm.default_post_sort_type = val), s), + ); + } + + handleCommentSortTypeChange(val: CommentSortType) { + this.setState( + s => ((s.saveUserSettingsForm.default_comment_sort_type = val), s), + ); } handleListingTypeChange(val: ListingType) { @@ -1708,12 +1710,12 @@ export class Settings extends Component { const { new_password, new_password_verify, old_password } = i.state.changePasswordForm; - if (new_password && old_password && new_password_verify) { + if (new_password && new_password_verify) { i.setState({ changePasswordRes: LOADING_REQUEST }); const changePasswordRes = await HttpService.client.changePassword({ new_password, new_password_verify, - old_password, + old_password: old_password || "", }); if (changePasswordRes.state === "success") { snapToTop(); @@ -1770,14 +1772,13 @@ export class Settings extends Component { local_user: { show_nsfw, blur_nsfw, - auto_expand, theme, - default_sort_type, + default_post_sort_type, + default_comment_sort_type, default_listing_type, interface_language, show_avatars, show_bot_accounts, - show_scores, show_read_posts, send_notifications_to_email, email, @@ -1810,18 +1811,17 @@ export class Settings extends Component { display_name, bio, matrix_user_id, - auto_expand, blur_nsfw, bot_account, default_listing_type, - default_sort_type, + default_post_sort_type, + default_comment_sort_type, discussion_languages: siteRes.data.my_user?.discussion_languages, email, interface_language, open_links_in_new_tab, send_notifications_to_email, show_read_posts, - show_scores, }, })); } diff --git a/src/shared/components/post/create-post.tsx b/src/shared/components/post/create-post.tsx index 4c6073af..9235e776 100644 --- a/src/shared/components/post/create-post.tsx +++ b/src/shared/components/post/create-post.tsx @@ -203,6 +203,9 @@ export class CreatePost extends Component< title: locationState.name, url: locationState.url, body: locationState.body, + altText: locationState.altText, + nsfw: locationState.nsfw, + languageId: locationState.languageId, }); this.setState(s => ({ resetCounter: s.resetCounter + 1 })); } @@ -234,6 +237,7 @@ export class CreatePost extends Component< title, nsfw, url, + altText, } = this.props; const params: PostFormParams = { @@ -244,6 +248,7 @@ export class CreatePost extends Component< custom_thumbnail: customThumbnailUrl, language_id: languageId, nsfw: nsfw === "true", + alt_text: altText, }; return ( @@ -278,6 +283,7 @@ export class CreatePost extends Component< onUrlBlur={this.handleUrlBlur} onThumbnailUrlBlur={this.handleThumbnailUrlBlur} onNsfwChange={this.handleNsfwChange} + onAltTextBlur={this.handleAltTextBlur} onCopySuggestedTitle={this.handleCopySuggestedTitle} />
    diff --git a/src/shared/components/post/post-form.tsx b/src/shared/components/post/post-form.tsx index 0670dc08..9a658d73 100644 --- a/src/shared/components/post/post-form.tsx +++ b/src/shared/components/post/post-form.tsx @@ -27,7 +27,7 @@ import { ghostArchiveUrl, postMarkdownFieldCharacterLimit, relTags, - trendingFetchLimit, + similarPostFetchLimit, webArchiveUrl, } from "../../config"; import { PostFormParams } from "../../interfaces"; @@ -45,6 +45,14 @@ import { MarkdownTextArea } from "../common/markdown-textarea"; import { SearchableSelect } from "../common/searchable-select"; import { PostListings } from "./post-listings"; import { isBrowser } from "@utils/browser"; +import isMagnetLink, { + extractMagnetLinkDownloadName, +} from "@utils/media/is-magnet-link"; +import { + getUnixTimeLemmy, + getUnixTime, + unixTimeToLocalDateStr, +} from "@utils/helpers/get-unix-time"; const MAX_POST_TITLE_LENGTH = 200; @@ -85,6 +93,8 @@ interface PostFormState { honeypot?: string; custom_thumbnail?: string; alt_text?: string; + // Javascript treats this field as a string, that can't have timezone info. + scheduled_publish_time?: string; }; suggestedPostsRes: RequestState; metadataRes: RequestState; @@ -109,6 +119,7 @@ function handlePostSubmit(i: PostForm, event: any) { const pForm = i.state.form; const pv = i.props.post_view; + const scheduled_publish_time = getUnixTimeLemmy(pForm.scheduled_publish_time); if (pv) { i.props.onEdit?.( @@ -121,6 +132,7 @@ function handlePostSubmit(i: PostForm, event: any) { language_id: pForm.language_id, custom_thumbnail: pForm.custom_thumbnail, alt_text: pForm.alt_text, + scheduled_publish_time, }, () => { i.setState({ bypassNavWarning: true }); @@ -138,6 +150,7 @@ function handlePostSubmit(i: PostForm, event: any) { honeypot: pForm.honeypot, custom_thumbnail: pForm.custom_thumbnail, alt_text: pForm.alt_text, + scheduled_publish_time, }, () => { i.setState({ bypassNavWarning: true }); @@ -199,6 +212,18 @@ function handlePostNsfwChange(i: PostForm, event: any) { ); } +function handlePostScheduleChange(i: PostForm, event: any) { + const scheduled_publish_time = event.target.value; + + i.setState(prev => ({ + ...prev, + form: { + ...prev.form, + scheduled_publish_time, + }, + })); +} + function handleHoneyPotChange(i: PostForm, event: any) { i.setState(s => ((s.form.honeypot = event.target.value), s)); } @@ -314,9 +339,10 @@ export class PostForm extends Component { this.updateUrl = this.updateUrl.bind(this); const { post_view, selectedCommunityChoice, params } = this.props; - // Means its an edit if (post_view) { + const unix = getUnixTime(post_view.post.scheduled_publish_time); + var scheduled_publish_time = unixTimeToLocalDateStr(unix); this.state = { ...this.state, form: { @@ -328,6 +354,7 @@ export class PostForm extends Component { language_id: post_view.post.language_id, custom_thumbnail: post_view.post.thumbnail_url, alt_text: post_view.post.alt_text, + scheduled_publish_time, }, }; } else if (selectedCommunityChoice) { @@ -681,6 +708,23 @@ export class PostForm extends Component {
    )} + +
    + +
    + +
    +
    + { async fetchPageTitle() { const url = this.state.form.url; if (url && validURL(url)) { - this.setState({ metadataRes: LOADING_REQUEST }); - this.setState({ - metadataRes: await HttpService.client.getSiteMetadata({ url }), - }); + // If its a magnet link, fill in the download name + if (isMagnetLink(url)) { + const title = extractMagnetLinkDownloadName(url); + if (title) { + this.setState({ + metadataRes: { + state: "success", + data: { + metadata: { title }, + }, + }, + }); + } + } else { + this.setState({ metadataRes: LOADING_REQUEST }); + this.setState({ + metadataRes: await HttpService.client.getSiteMetadata({ url }), + }); + } } } @@ -825,7 +884,7 @@ export class PostForm extends Component { listing_type: "All", community_id: this.state.form.community_id, page: 1, - limit: trendingFetchLimit, + limit: similarPostFetchLimit, }), }); } diff --git a/src/shared/components/post/post-listing.tsx b/src/shared/components/post/post-listing.tsx index 1d8b3b0d..0ef6fa3f 100644 --- a/src/shared/components/post/post-listing.tsx +++ b/src/shared/components/post/post-listing.tsx @@ -1,12 +1,13 @@ import { myAuth, setIsoData } from "@utils/app"; import { canShare, share } from "@utils/browser"; import { getExternalHost, getHttpBase } from "@utils/env"; -import { futureDaysToUnixTime, hostname } from "@utils/helpers"; +import { formatPastDate, futureDaysToUnixTime, hostname } from "@utils/helpers"; import { isImage, isVideo } from "@utils/media"; import { canAdmin, canMod } from "@utils/roles"; import classNames from "classnames"; import { Component, linkEvent } from "inferno"; import { Link } from "inferno-router"; +import { T } from "inferno-i18next-dess"; import { AddAdmin, AddModToCommunity, @@ -33,7 +34,7 @@ import { SavePost, TransferCommunity, } from "lemmy-js-client"; -import { relTags } from "../../config"; +import { relTags, torrentHelpUrl } from "../../config"; import { IsoDataOptionalSite, VoteContentType } from "../../interfaces"; import { mdToHtml, mdToHtmlInline } from "../../markdown"; import { I18NextService, UserService } from "../../services"; @@ -47,11 +48,14 @@ import { CommunityLink } from "../community/community-link"; import { PersonListing } from "../person/person-listing"; import { MetadataCard } from "./metadata-card"; import { PostForm } from "./post-form"; -import { BanUpdateForm } from "../common/mod-action-form-modal"; +import { BanUpdateForm } from "../common/modal/mod-action-form-modal"; import PostActionDropdown from "../common/content-actions/post-action-dropdown"; import { CrossPostParams } from "@utils/types"; import { RequestState } from "../../services/HttpService"; import { toast } from "../../toast"; +import isMagnetLink, { + extractMagnetLinkDownloadName, +} from "@utils/media/is-magnet-link"; type PostListingState = { showEdit: boolean; @@ -144,10 +148,10 @@ export class PostListing extends Component { UserService.Instance.myUserInfo && !this.isoData.showAdultConsentModal ) { - const { auto_expand, blur_nsfw } = - UserService.Instance.myUserInfo.local_user_view.local_user; + const blur_nsfw = + UserService.Instance.myUserInfo.local_user_view.local_user.blur_nsfw; this.setState({ - imageExpanded: auto_expand && !(blur_nsfw && this.postView.post.nsfw), + imageExpanded: !(blur_nsfw && this.postView.post.nsfw), }); } @@ -176,9 +180,14 @@ export class PostListing extends Component { <> {this.listing()} {this.state.imageExpanded && !this.props.hideImage && this.img} + {this.showBody && + post.url && + isMagnetLink(post.url) && + this.torrentHelp()} {this.showBody && post.url && post.embed_title && ( )} + {this.showBody && this.videoBlock} {this.showBody && this.body()} ) : ( @@ -217,37 +226,69 @@ export class PostListing extends Component { ); } - get img() { - const { post } = this.postView; - const { url } = post; + torrentHelp() { + return ( +
    + + + # + + # + + +
    + ); + } - if (this.isoData.showAdultConsentModal) { - return <>; - } + get videoBlock() { + const post = this.postView.post; + const url = post.url; // if direct video link or embedded video link - if (url && (isVideo(url) || post.embed_video_url)) { + if (url && isVideo(url)) { return ( -
    +
    ); + } else if (post.embed_video_url) { + return ( +
    + +
    + ); + } + } + + get img() { + if (this.isoData.showAdultConsentModal) { + return <>; } - if (this.imageSrc) { + // Use the full-size image for expands + const post = this.postView.post; + const url = post.url; + const thumbnail = post.thumbnail_url; + const imageSrc = url && isImage(url) ? url : thumbnail; + + if (imageSrc) { return ( <>
    @@ -256,7 +297,7 @@ export class PostListing extends Component { className="p-0 border-0 bg-transparent d-inline-block" onClick={linkEvent(this, this.handleImageExpandClick)} > - +
    @@ -278,26 +319,12 @@ export class PostListing extends Component { ); } - get imageSrc(): string | undefined { - const post = this.postView.post; - const url = post.url; - const thumbnail = post.thumbnail_url; - - if (thumbnail) { - return thumbnail; - } else if (url && isImage(url)) { - return url; - } else { - return undefined; - } - } - thumbnail() { const post = this.postView.post; const url = post.url; const thumbnail = post.thumbnail_url; - if (!this.props.hideImage && url && isImage(url) && this.imageSrc) { + if (!this.props.hideImage && url && isImage(url) && thumbnail) { return ( ); - } else if ( - !this.props.hideImage && - url && - thumbnail && - this.imageSrc && - !isVideo(url) - ) { + } else if (!this.props.hideImage && url && thumbnail && !isVideo(url)) { return ( { title={url} target={this.linkTarget} > - {this.imgThumb(this.imageSrc)} + {this.imgThumb(thumbnail)} { createdLine() { const pv = this.postView; - return (
    @@ -422,6 +442,13 @@ export class PostListing extends Component { } )}{" "} + {pv.post.scheduled_publish_time && ( + + {I18NextService.i18n.t("publish_in_time", { + time: formatPastDate(pv.post.scheduled_publish_time), + })} + + )}{" "} ·
    ); @@ -542,20 +569,31 @@ export class PostListing extends Component { const post = this.postView.post; const url = post.url; - return ( -

    - {url && !(hostname(url) === getExternalHost()) && ( - - {hostname(url)} - - )} -

    - ); + if (url) { + // If its a torrent link, extract the download name + const linkName = isMagnetLink(url) + ? extractMagnetLinkDownloadName(url) + : !(hostname(url) === getExternalHost()) + ? hostname(url) + : null; + + if (linkName) { + return ( +

    + {url && !(hostname(url) === getExternalHost()) && ( + + {linkName} + + )} +

    + ); + } + } } duplicatesLine() { @@ -878,7 +916,7 @@ export class PostListing extends Component { } get crossPostParams(): CrossPostParams { - const { name, url } = this.postView.post; + const { name, url, alt_text, nsfw, language_id } = this.postView.post; const crossPostParams: CrossPostParams = { name }; if (url) { @@ -890,6 +928,18 @@ export class PostListing extends Component { crossPostParams.body = crossPostBody; } + if (alt_text) { + crossPostParams.altText = alt_text; + } + + if (nsfw) { + crossPostParams.nsfw = nsfw ? "true" : "false"; + } + + if (language_id !== undefined) { + crossPostParams.languageId = language_id; + } + return crossPostParams; } @@ -963,7 +1013,7 @@ export class PostListing extends Component { handleModBanFromCommunity({ daysUntilExpires, reason, - shouldRemove, + shouldRemoveOrRestoreData, }: BanUpdateForm) { const { creator: { id: person_id }, @@ -974,7 +1024,7 @@ export class PostListing extends Component { // If its an unban, restore all their data if (ban === false) { - shouldRemove = false; + shouldRemoveOrRestoreData = true; } const expires = futureDaysToUnixTime(daysUntilExpires); @@ -982,7 +1032,7 @@ export class PostListing extends Component { community_id, person_id, ban, - remove_data: shouldRemove, + remove_or_restore_data: shouldRemoveOrRestoreData, reason, expires, }); @@ -991,7 +1041,7 @@ export class PostListing extends Component { handleModBanFromSite({ daysUntilExpires, reason, - shouldRemove, + shouldRemoveOrRestoreData, }: BanUpdateForm) { const { creator: { id: person_id, banned }, @@ -1000,14 +1050,14 @@ export class PostListing extends Component { // If its an unban, restore all their data if (ban === false) { - shouldRemove = false; + shouldRemoveOrRestoreData = true; } const expires = futureDaysToUnixTime(daysUntilExpires); return this.props.onBanPerson({ person_id, ban, - remove_data: shouldRemove, + remove_or_restore_data: shouldRemoveOrRestoreData, reason, expires, }); diff --git a/src/shared/components/post/post.tsx b/src/shared/components/post/post.tsx index 8b5fa535..53fada7a 100644 --- a/src/shared/components/post/post.tsx +++ b/src/shared/components/post/post.tsx @@ -124,11 +124,12 @@ interface PostState { lastCreatedCommentId?: CommentId; } -const defaultCommentSort: CommentSortType = "Hot"; - -function getCommentSortTypeFromQuery(source?: string): CommentSortType { +function getCommentSortTypeFromQuery( + source: string | undefined, + fallback: CommentSortType, +): CommentSortType { if (!source) { - return defaultCommentSort; + return fallback; } switch (source) { case "Hot": @@ -138,14 +139,21 @@ function getCommentSortTypeFromQuery(source?: string): CommentSortType { case "Controversial": return source; default: - return defaultCommentSort; + return fallback; } } function getQueryStringFromCommentSortType( sort: CommentSortType, + siteRes: GetSiteResponse, ): undefined | string { - if (sort === defaultCommentSort) { + const myUserInfo = siteRes.my_user ?? UserService.Instance.myUserInfo; + const local_user = myUserInfo?.local_user_view.local_user; + const local_site = siteRes.site_view.local_site; + const defaultSort = + local_user?.default_comment_sort_type ?? + local_site.default_comment_sort_type; + if (sort === defaultSort) { return undefined; } return sort; @@ -185,14 +193,31 @@ interface PostProps { view: CommentViewType; scrollToComments: boolean; } -export function getPostQueryParams(source: string | undefined): PostProps { - return getQueryParams( + +type Fallbacks = { + sort: CommentSortType; +}; + +export function getPostQueryParams( + source: string | undefined, + siteRes: GetSiteResponse, +): PostProps { + const myUserInfo = siteRes.my_user ?? UserService.Instance.myUserInfo; + const local_user = myUserInfo?.local_user_view.local_user; + const local_site = siteRes.site_view.local_site; + + return getQueryParams( { scrollToComments: (s?: string) => !!s, sort: getCommentSortTypeFromQuery, view: getCommentViewTypeFromQuery, }, source, + { + sort: + local_user?.default_comment_sort_type ?? + local_site.default_comment_sort_type, + }, ); } @@ -325,7 +350,7 @@ export class Post extends Component { }; const query: QueryParams = { - sort: getQueryStringFromCommentSortType(sort), + sort: getQueryStringFromCommentSortType(sort, this.state.siteRes), view: getQueryStringFromCommentView(view), }; diff --git a/src/shared/components/private_message/private-message.tsx b/src/shared/components/private_message/private-message.tsx index d2d1eae6..4e595057 100644 --- a/src/shared/components/private_message/private-message.tsx +++ b/src/shared/components/private_message/private-message.tsx @@ -14,7 +14,7 @@ import { Icon, Spinner } from "../common/icon"; import { MomentTime } from "../common/moment-time"; import { PersonListing } from "../person/person-listing"; import { PrivateMessageForm } from "./private-message-form"; -import ModActionFormModal from "../common/mod-action-form-modal"; +import ModActionFormModal from "../common/modal/mod-action-form-modal"; import { tippyMixin } from "../mixins/tippy-mixin"; interface PrivateMessageState { diff --git a/src/shared/components/search.tsx b/src/shared/components/search.tsx index 45c1e557..a42ce446 100644 --- a/src/shared/components/search.tsx +++ b/src/shared/components/search.tsx @@ -18,6 +18,7 @@ import { dedupByProperty, getIdFromString, getPageFromString, + getBoolFromString, getQueryParams, getQueryString, numToSI, @@ -45,7 +46,7 @@ import { Search as SearchForm, SearchResponse, SearchType, - SortType, + PostSortType, } from "lemmy-js-client"; import { fetchLimit } from "../config"; import { CommentViewType, InitialFetchRequest } from "../interfaces"; @@ -75,8 +76,9 @@ import { isBrowser } from "@utils/browser"; interface SearchProps { q?: string; type: SearchType; - sort: SortType; + sort: PostSortType; listingType: ListingType; + titleOnly?: boolean; communityId?: number; creatorId?: number; page: number; @@ -122,6 +124,7 @@ export function getSearchQueryParams(source?: string): SearchProps { type: getSearchTypeFromQuery, sort: getSortTypeFromQuery, listingType: getListingTypeFromQuery, + titleOnly: getBoolFromString, communityId: getIdFromString, creatorId: getIdFromString, page: getPageFromString, @@ -136,8 +139,8 @@ function getSearchTypeFromQuery(type_?: string): SearchType { return type_ ? (type_ as SearchType) : defaultSearchType; } -function getSortTypeFromQuery(sort?: string): SortType { - return sort ? (sort as SortType) : defaultSortType; +function getSortTypeFromQuery(sort?: string): PostSortType { + return sort ? (sort as PostSortType) : defaultSortType; } function getListingTypeFromQuery(listingType?: string): ListingType { @@ -283,6 +286,7 @@ export class Search extends Component { this.handleCommunityFilterChange = this.handleCommunityFilterChange.bind(this); this.handleCreatorFilterChange = this.handleCreatorFilterChange.bind(this); + this.handleTitleOnlyChange = this.handleTitleOnlyChange.bind(this); // Only fetch the data if coming from another route if (FirstLoadService.isFirstLoad) { @@ -469,6 +473,7 @@ export class Search extends Component { type: searchType, sort, listingType: listing_type, + titleOnly: title_only, communityId: community_id, creatorId: creator_id, page, @@ -514,6 +519,7 @@ export class Search extends Component { type_: searchType, sort, listing_type, + title_only, page, limit: fetchLimit, }; @@ -589,7 +595,6 @@ export class Search extends Component { case "Comments": return this.comments; case "Posts": - case "Url": return this.posts; case "Communities": return this.communities; @@ -635,7 +640,8 @@ export class Search extends Component { } get selects() { - const { type, listingType, sort, communityId, creatorId } = this.props; + const { type, listingType, titleOnly, sort, communityId, creatorId } = + this.props; const { communitySearchOptions, creatorSearchOptions, @@ -673,6 +679,20 @@ export class Search extends Component { onChange={this.handleListingTypeChange} />
    + {(type === "All" || type === "Posts") && ( +
    + + +
    + )}
    { searchToken?: symbol; async search(props: SearchRouteProps) { const token = (this.searchToken = Symbol()); - const { q, communityId, creatorId, type, sort, listingType, page } = props; + const { + q, + communityId, + creatorId, + type, + sort, + listingType, + titleOnly, + page, + } = props; if (q) { this.setState({ searchRes: LOADING_REQUEST }); @@ -1054,6 +1083,7 @@ export class Search extends Component { type_: type, sort, listing_type: listingType, + title_only: titleOnly, page, limit: fetchLimit, }); @@ -1118,10 +1148,15 @@ export class Search extends Component { return this.searchInput.current?.value ?? this.props.q; } - handleSortChange(sort: SortType) { + handleSortChange(sort: PostSortType) { this.updateUrl({ sort, page: 1, q: this.getQ() }); } + handleTitleOnlyChange(event: any) { + const titleOnly = event.target.checked; + this.updateUrl({ titleOnly, q: this.getQ() }); + } + handleTypeChange(i: Search, event: any) { const type = event.target.value as SearchType; @@ -1170,7 +1205,16 @@ export class Search extends Component { } async updateUrl(props: Partial) { - const { q, type, listingType, sort, communityId, creatorId, page } = { + const { + q, + type, + listingType, + titleOnly, + sort, + communityId, + creatorId, + page, + } = { ...this.props, ...props, }; @@ -1179,6 +1223,7 @@ export class Search extends Component { q, type: type, listingType: listingType, + titleOnly: titleOnly?.toString(), communityId: communityId?.toString(), creatorId: creatorId?.toString(), page: page?.toString(), diff --git a/src/shared/config.ts b/src/shared/config.ts index 37800dd6..8418ee8e 100644 --- a/src/shared/config.ts +++ b/src/shared/config.ts @@ -9,6 +9,7 @@ export const donateLemmyUrl = `${joinLemmyUrl}/donate`; export const docsUrl = `${joinLemmyUrl}/docs/en/index.html`; export const helpGuideUrl = `${joinLemmyUrl}/docs/en/users/01-getting-started.html`; // TODO find a way to redirect to the non-en folder export const markdownHelpUrl = `${joinLemmyUrl}/docs/en/users/02-media.html`; +export const torrentHelpUrl = `${markdownHelpUrl}#torrents`; export const sortingHelpUrl = `${joinLemmyUrl}/docs/en/users/03-votes-and-ranking.html`; export const archiveTodayUrl = "https://archive.today"; export const ghostArchiveUrl = "https://ghostarchive.org"; @@ -16,7 +17,6 @@ export const webArchiveUrl = "https://web.archive.org"; export const elementUrl = "https://element.io"; export const postRefetchSeconds: number = 60 * 1000; -export const trendingFetchLimit = 6; export const mentionDropdownFetchLimit = 10; export const commentTreeMaxDepth = 8; export const postMarkdownFieldCharacterLimit = 50000; @@ -25,6 +25,7 @@ export const maxUploadImages = 20; export const concurrentImageUpload = 4; export const updateUnreadCountsInterval = 30000; export const fetchLimit = 20; +export const similarPostFetchLimit = 6; export const relTags = "noopener nofollow"; export const emDash = "\u2014"; export const authCookieName = "jwt"; @@ -49,3 +50,6 @@ export const instanceLinkRegex = new RegExp( ); export const testHost = "0.0.0.0:8536"; + +export const validActorRegexPattern = + "^\\w+|[\\p{Script=Arabic}\\d_]+|[\\p{Script=Cyrillic}\\d_]+$"; diff --git a/src/shared/markdown.ts b/src/shared/markdown.ts index 9e510bfc..3a380af6 100644 --- a/src/shared/markdown.ts +++ b/src/shared/markdown.ts @@ -1,5 +1,4 @@ import { communitySearch, personSearch } from "@utils/app"; -import { isBrowser } from "@utils/browser"; import { debounce, groupBy } from "@utils/helpers"; import { CommunityTribute, PersonTribute } from "@utils/types"; import { Picker } from "emoji-mart"; @@ -18,8 +17,10 @@ import markdown_it_highlightjs from "markdown-it-highlightjs/core"; import { Renderer, Token } from "markdown-it"; import { instanceLinkRegex, relTags } from "./config"; import { lazyHighlightjs } from "./lazy-highlightjs"; +import { HttpService } from "./services"; +import { WrappedLemmyHttp } from "./services/HttpService"; -export let Tribute: any; +let Tribute: any; export let md: MarkdownIt = new MarkdownIt(); @@ -33,17 +34,13 @@ export const mdLimited: MarkdownIt = new MarkdownIt("zero").enable([ "strikethrough", ]); -export const customEmojis: EmojiMartCategory[] = []; +let customEmojis: EmojiMartCategory[] = []; export let customEmojisLookup: Map = new Map< string, CustomEmojiView >(); -if (isBrowser()) { - Tribute = require("tributejs"); -} - export function mdToHtml(text: string, rerender: () => void) { return { __html: lazyHighlightjs.render(md, text, rerender) }; } @@ -209,14 +206,17 @@ export function setupMarkdown() { ) { //Provide custom renderer for our emojis to allow us to add a css class and force size dimensions on them. const item = tokens[idx] as any; - let title = item.attrs.length >= 3 ? item.attrs[2][1] : ""; + const url = item.attrs.length > 0 ? item.attrs[0][1] : ""; + const altText = item.attrs.length > 1 ? item.attrs[1][1] : ""; + const title = item.attrs.length > 2 ? item.attrs[2][1] : ""; const splitTitle = title.split(/ (.*)/, 2); const isEmoji = splitTitle[0] === "emoji"; + let shortcode: string | undefined; if (isEmoji) { - title = splitTitle[1]; + shortcode = splitTitle[1]; } - const customEmoji = customEmojisLookup.get(title); - const isLocalEmoji = customEmoji !== undefined; + // customEmojisLookup is empty in SSR, CSR rerenders markdown anyway + const isLocalEmoji = shortcode && customEmojisLookup.has(shortcode); if (!isLocalEmoji) { const imgElement = defaultImageRenderer?.(tokens, idx, options, env, self) ?? ""; @@ -227,10 +227,8 @@ export function setupMarkdown() { } else return ""; } return `${
-      customEmoji!.custom_emoji.alt_text
-    }`; + url + }" title="${shortcode}" alt="${altText}"/>`; }; md.renderer.rules.table_open = function () { return ''; @@ -252,11 +250,14 @@ export function setupMarkdown() { }; } -export function setupEmojiDataModel(custom_emoji_views: CustomEmojiView[]) { +export function emojiMartCategories( + custom_emoji_views: CustomEmojiView[], +): EmojiMartCategory[] { const groupedEmojis = groupBy( custom_emoji_views, x => x.custom_emoji.category, ); + const customEmojis: EmojiMartCategory[] = []; for (const [category, emojis] of Object.entries(groupedEmojis)) { customEmojis.push({ id: category, @@ -269,63 +270,24 @@ export function setupEmojiDataModel(custom_emoji_views: CustomEmojiView[]) { })), }); } + return customEmojis; +} + +export async function setupEmojiDataModel( + client: WrappedLemmyHttp = HttpService.client, +): Promise { + const emojisRes = await client.listCustomEmojis({ + ignore_page_limits: true, + }); + if (emojisRes.state !== "success") { + return false; + } + const custom_emoji_views = emojisRes.data.custom_emojis; + customEmojis = emojiMartCategories(custom_emoji_views); customEmojisLookup = new Map( custom_emoji_views.map(view => [view.custom_emoji.shortcode, view]), ); -} - -export function updateEmojiDataModel(custom_emoji_view: CustomEmojiView) { - const emoji: EmojiMartCustomEmoji = { - id: custom_emoji_view.custom_emoji.shortcode, - name: custom_emoji_view.custom_emoji.shortcode, - keywords: custom_emoji_view.keywords.map(x => x.keyword), - skins: [{ src: custom_emoji_view.custom_emoji.image_url }], - }; - const categoryIndex = customEmojis.findIndex( - x => x.id === custom_emoji_view.custom_emoji.category, - ); - if (categoryIndex === -1) { - customEmojis.push({ - id: custom_emoji_view.custom_emoji.category, - name: custom_emoji_view.custom_emoji.category, - emojis: [emoji], - }); - } else { - const emojiIndex = customEmojis[categoryIndex].emojis.findIndex( - x => x.id === custom_emoji_view.custom_emoji.shortcode, - ); - if (emojiIndex === -1) { - customEmojis[categoryIndex].emojis.push(emoji); - } else { - customEmojis[categoryIndex].emojis[emojiIndex] = emoji; - } - } - customEmojisLookup.set( - custom_emoji_view.custom_emoji.shortcode, - custom_emoji_view, - ); -} - -export function removeFromEmojiDataModel(id: number) { - let view: CustomEmojiView | undefined; - for (const item of customEmojisLookup.values()) { - if (item.custom_emoji.id === id) { - view = item; - break; - } - } - if (!view) return; - const categoryIndex = customEmojis.findIndex( - x => x.id === view?.custom_emoji.category, - ); - const emojiIndex = customEmojis[categoryIndex].emojis.findIndex( - x => x.id === view?.custom_emoji.shortcode, - ); - customEmojis[categoryIndex].emojis = customEmojis[ - categoryIndex - ].emojis.splice(emojiIndex, 1); - - customEmojisLookup.delete(view?.custom_emoji.shortcode); + return true; } export function getEmojiMart( @@ -333,14 +295,20 @@ export function getEmojiMart( customPickerOptions: any = {}, ) { const pickerOptions = { - ...customPickerOptions, onEmojiSelect: onEmojiSelect, custom: customEmojis, + ...customPickerOptions, }; return new Picker(pickerOptions); } -export function setupTribute() { +export async function setupTribute() { + // eslint-disable-next-line eqeqeq + if (Tribute == null) { + console.debug("Tribute is null, importing..."); + Tribute = (await import("tributejs")).default; + } + return new Tribute({ noMatchTemplate: function () { return ""; @@ -414,7 +382,7 @@ export function setupTribute() { }); } -interface EmojiMartCategory { +export interface EmojiMartCategory { id: string; name: string; emojis: EmojiMartCustomEmoji[]; diff --git a/src/shared/routes.ts b/src/shared/routes.ts index a26c72f2..f7622a65 100644 --- a/src/shared/routes.ts +++ b/src/shared/routes.ts @@ -28,7 +28,11 @@ import { } from "./components/home/login"; import { LoginReset } from "./components/home/login-reset"; import { Setup } from "./components/home/setup"; -import { Signup } from "./components/home/signup"; +import { + Signup, + SignupFetchConfig, + getSignupQueryParams, +} from "./components/home/signup"; import { Modlog, ModlogFetchConfig, @@ -75,6 +79,11 @@ import { import { InitialFetchRequest, RouteData } from "./interfaces"; import { GetSiteResponse } from "lemmy-js-client"; import { Inferno } from "inferno"; +import { + OAuthCallback, + OAuthCallbackConfig, + getOAuthCallbackQueryParams, +} from "./components/home/oauth/oauth-callback"; export interface IRoutePropsWithFetch< DataT extends RouteData, @@ -114,8 +123,9 @@ export const routes: IRoutePropsWithFetch[] = [ }, { path: `/signup`, + getQueryParams: getSignupQueryParams, component: Signup, - }, + } as SignupFetchConfig, { path: `/create_post`, component: CreatePost, @@ -218,6 +228,11 @@ export const routes: IRoutePropsWithFetch[] = [ path: `/verify_email/:token`, component: VerifyEmail, }, + { + path: `/oauth/callback`, + getQueryParams: getOAuthCallbackQueryParams, + component: OAuthCallback, + } as OAuthCallbackConfig, { path: `/instances`, component: Instances, diff --git a/src/shared/services/I18NextService.ts b/src/shared/services/I18NextService.ts index 4de798d3..70a05d19 100644 --- a/src/shared/services/I18NextService.ts +++ b/src/shared/services/I18NextService.ts @@ -35,6 +35,7 @@ export const languages: TranslationDesc[] = [ { resource: "ja", code: "ja", name: "日本語" }, { resource: "ko", code: "ko", name: "한국어" }, { resource: "nl", code: "nl", name: "Nederlands" }, + { resource: "nn", code: "nn", name: "nynorsk" }, { resource: "oc", code: "oc", name: "Occitan" }, { resource: "pl", code: "pl", name: "Polski" }, { resource: "pt", code: "pt", name: "Português" }, diff --git a/src/shared/services/UserService.ts b/src/shared/services/UserService.ts index 856fca8a..165bf03f 100644 --- a/src/shared/services/UserService.ts +++ b/src/shared/services/UserService.ts @@ -37,7 +37,9 @@ export class UserService { showToast?: boolean; }) { if (isBrowser() && res.jwt) { - showToast && toast(I18NextService.i18n.t("logged_in")); + if (showToast) { + toast(I18NextService.i18n.t("logged_in")); + } setAuthCookie(res.jwt); this.#setAuthInfo(); } diff --git a/src/shared/utils/app/comment-to-post-sort-type.ts b/src/shared/utils/app/comment-to-post-sort-type.ts new file mode 100644 index 00000000..8e9eced7 --- /dev/null +++ b/src/shared/utils/app/comment-to-post-sort-type.ts @@ -0,0 +1,21 @@ +import { CommentSortType, PostSortType } from "lemmy-js-client"; + +function assertType(_: T) {} + +export default function commentToPostSortType( + sort: CommentSortType, +): PostSortType { + switch (sort) { + case "Hot": + case "New": + case "Old": + case "Controversial": + return sort; + case "Top": + return "TopAll"; + default: { + assertType(sort); + return "Hot"; + } + } +} diff --git a/src/shared/utils/app/convert-comment-sort-type.ts b/src/shared/utils/app/convert-comment-sort-type.ts deleted file mode 100644 index 706671f5..00000000 --- a/src/shared/utils/app/convert-comment-sort-type.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { CommentSortType, SortType } from "lemmy-js-client"; - -export default function convertCommentSortType( - sort: SortType, -): CommentSortType { - switch (sort) { - case "TopAll": - case "TopHour": - case "TopSixHour": - case "TopTwelveHour": - case "TopDay": - case "TopWeek": - case "TopMonth": - case "TopThreeMonths": - case "TopSixMonths": - case "TopNineMonths": - case "TopYear": { - return "Top"; - } - case "New": { - return "New"; - } - case "Hot": - case "Active": { - return "Hot"; - } - default: { - return "Hot"; - } - } -} diff --git a/src/shared/utils/app/enable-nsfw.ts b/src/shared/utils/app/enable-nsfw.ts index 352b40b5..ced01c8b 100644 --- a/src/shared/utils/app/enable-nsfw.ts +++ b/src/shared/utils/app/enable-nsfw.ts @@ -1,5 +1,5 @@ import { GetSiteResponse } from "lemmy-js-client"; export default function enableNsfw(siteRes: GetSiteResponse): boolean { - return siteRes.site_view.local_site.enable_nsfw; + return !!siteRes.site_view.site.content_warning; } diff --git a/src/shared/utils/app/index.ts b/src/shared/utils/app/index.ts index 79aa812c..4ffeada1 100644 --- a/src/shared/utils/app/index.ts +++ b/src/shared/utils/app/index.ts @@ -1,11 +1,11 @@ import buildCommentsTree from "./build-comments-tree"; import { colorList } from "./color-list"; +import commentToPostSortType from "./comment-to-post-sort-type"; import commentsToFlatNodes from "./comments-to-flat-nodes"; import communityRSSUrl from "./community-rss-url"; import communitySearch from "./community-search"; import communitySelectName from "./community-select-name"; import communityToChoice from "./community-to-choice"; -import convertCommentSortType from "./convert-comment-sort-type"; import editComment from "./edit-comment"; import editCommentReply from "./edit-comment-reply"; import editCommentReport from "./edit-comment-report"; @@ -59,12 +59,12 @@ import isAnonymousPath from "./is-anonymous-path"; export { buildCommentsTree, colorList, + commentToPostSortType, commentsToFlatNodes, communityRSSUrl, communitySearch, communitySelectName, communityToChoice, - convertCommentSortType, editComment, editCommentReply, editCommentReport, diff --git a/src/shared/utils/app/initialize-site.ts b/src/shared/utils/app/initialize-site.ts index d6c6511e..7d50200b 100644 --- a/src/shared/utils/app/initialize-site.ts +++ b/src/shared/utils/app/initialize-site.ts @@ -1,11 +1,8 @@ import { GetSiteResponse } from "lemmy-js-client"; -import { setupEmojiDataModel, setupMarkdown } from "../../markdown"; +import { setupMarkdown } from "../../markdown"; import { UserService } from "../../services"; export default function initializeSite(site?: GetSiteResponse) { UserService.Instance.myUserInfo = site?.my_user; - if (site) { - setupEmojiDataModel(site.custom_emojis ?? []); - } setupMarkdown(); } diff --git a/src/shared/utils/app/is-post-blocked.ts b/src/shared/utils/app/is-post-blocked.ts index 3f5323b6..7fdee1d6 100644 --- a/src/shared/utils/app/is-post-blocked.ts +++ b/src/shared/utils/app/is-post-blocked.ts @@ -6,12 +6,8 @@ export default function isPostBlocked( myUserInfo: MyUserInfo | undefined = UserService.Instance.myUserInfo, ): boolean { return ( - (myUserInfo?.community_blocks - .map(c => c.community.id) - .includes(pv.community.id) || - myUserInfo?.person_blocks - .map(p => p.target.id) - .includes(pv.creator.id)) ?? + (myUserInfo?.community_blocks.some(c => c.id === pv.community.id) || + myUserInfo?.person_blocks.some(p => p.id === pv.creator.id)) ?? false ); } diff --git a/src/shared/utils/app/post-to-comment-sort-type.ts b/src/shared/utils/app/post-to-comment-sort-type.ts index 0219eb98..53b01ca6 100644 --- a/src/shared/utils/app/post-to-comment-sort-type.ts +++ b/src/shared/utils/app/post-to-comment-sort-type.ts @@ -1,16 +1,39 @@ -import { CommentSortType, SortType } from "lemmy-js-client"; +import { CommentSortType, PostSortType } from "lemmy-js-client"; -export default function postToCommentSortType(sort: SortType): CommentSortType { +function assertType(_: T) {} + +export default function postToCommentSortType( + sort: PostSortType, +): CommentSortType { switch (sort) { - case "Active": case "Hot": - return "Hot"; case "New": - case "NewComments": - return "New"; case "Old": - return "Old"; - default: + case "Controversial": { + return sort; + } + case "TopAll": + case "TopHour": + case "TopSixHour": + case "TopTwelveHour": + case "TopDay": + case "TopWeek": + case "TopMonth": + case "TopThreeMonths": + case "TopSixMonths": + case "TopNineMonths": + case "TopYear": { return "Top"; + } + case "NewComments": + case "MostComments": + case "Scaled": + case "Active": { + return "Hot"; + } + default: { + assertType(sort); + return "Hot"; + } } } diff --git a/src/shared/utils/app/setup-date-fns.ts b/src/shared/utils/app/setup-date-fns.ts index 2a27df35..68687bdf 100644 --- a/src/shared/utils/app/setup-date-fns.ts +++ b/src/shared/utils/app/setup-date-fns.ts @@ -136,7 +136,7 @@ function langToLocale(lang: string): DateFnsDesc | undefined { async function load(locale: DateFnsDesc): Promise { return import( /* webpackChunkName: `date-fns-[request]` */ - `date-fns/locale/${locale.resource}.mjs` + `date-fns/locale/${locale.resource}.js` ).then(x => x.default); } @@ -184,7 +184,7 @@ export function findDateFnsChunkNames(languages: readonly string[]): string[] { if (locale.bundled) { return []; } - return [`date-fns-${locale.resource}-mjs`]; + return [`date-fns-${locale.resource}-js`]; } export default async function () { diff --git a/src/shared/utils/app/update-community-block.ts b/src/shared/utils/app/update-community-block.ts index dd33fbf8..48438921 100644 --- a/src/shared/utils/app/update-community-block.ts +++ b/src/shared/utils/app/update-community-block.ts @@ -8,10 +8,7 @@ export default function updateCommunityBlock( ) { if (myUserInfo) { if (data.blocked) { - myUserInfo.community_blocks.push({ - person: myUserInfo.local_user_view.person, - community: data.community_view.community, - }); + myUserInfo.community_blocks.push(data.community_view.community); toast( `${I18NextService.i18n.t("blocked")} ${ data.community_view.community.name @@ -19,7 +16,7 @@ export default function updateCommunityBlock( ); } else { myUserInfo.community_blocks = myUserInfo.community_blocks.filter( - i => i.community.id !== data.community_view.community.id, + c => c.id !== data.community_view.community.id, ); toast( `${I18NextService.i18n.t("unblocked")} ${ diff --git a/src/shared/utils/app/update-instance-block.ts b/src/shared/utils/app/update-instance-block.ts index 7e2bc6ae..9caf5d9f 100644 --- a/src/shared/utils/app/update-instance-block.ts +++ b/src/shared/utils/app/update-instance-block.ts @@ -12,14 +12,11 @@ export default function updateInstanceBlock( const instance = linkedInstances.find(i => i.id === id)!; if (data.blocked) { - myUserInfo.instance_blocks.push({ - person: myUserInfo.local_user_view.person, - instance, - }); + myUserInfo.instance_blocks.push(instance); toast(`${I18NextService.i18n.t("blocked")} ${instance.domain}`); } else { myUserInfo.instance_blocks = myUserInfo.instance_blocks.filter( - i => i.instance.id !== id, + i => i.id !== id, ); toast(`${I18NextService.i18n.t("unblocked")} ${instance.domain}`); } diff --git a/src/shared/utils/app/update-person-block.ts b/src/shared/utils/app/update-person-block.ts index 08c77d4a..f9409ade 100644 --- a/src/shared/utils/app/update-person-block.ts +++ b/src/shared/utils/app/update-person-block.ts @@ -8,16 +8,13 @@ export default function updatePersonBlock( ) { if (myUserInfo) { if (data.blocked) { - myUserInfo.person_blocks.push({ - person: myUserInfo.local_user_view.person, - target: data.person_view.person, - }); + myUserInfo.person_blocks.push(data.person_view.person); toast( `${I18NextService.i18n.t("blocked")} ${data.person_view.person.name}`, ); } else { myUserInfo.person_blocks = myUserInfo.person_blocks.filter( - i => i.target.id !== data.person_view.person.id, + p => p.id !== data.person_view.person.id, ); toast( `${I18NextService.i18n.t("unblocked")} ${data.person_view.person.name}`, diff --git a/src/shared/utils/app/vote-display-mode.ts b/src/shared/utils/app/vote-display-mode.ts index e9688175..a884edbb 100644 --- a/src/shared/utils/app/vote-display-mode.ts +++ b/src/shared/utils/app/vote-display-mode.ts @@ -5,7 +5,6 @@ export default function voteDisplayMode( ): LocalUserVoteDisplayMode { return ( siteRes?.my_user?.local_user_view.local_user_vote_display_mode ?? { - local_user_id: -1, upvotes: true, downvotes: true, score: false, diff --git a/src/shared/utils/browser/clear-auth-cookie.ts b/src/shared/utils/browser/clear-auth-cookie.ts index f5cc73f1..cb297daf 100644 --- a/src/shared/utils/browser/clear-auth-cookie.ts +++ b/src/shared/utils/browser/clear-auth-cookie.ts @@ -4,7 +4,7 @@ import { authCookieName } from "../../config"; export default function clearAuthCookie() { document.cookie = cookie.serialize(authCookieName, "", { maxAge: -1, - sameSite: true, + sameSite: "lax", path: "/", }); } diff --git a/src/shared/utils/browser/data-bs-theme.ts b/src/shared/utils/browser/data-bs-theme.ts index bf8cb7dc..f1887640 100644 --- a/src/shared/utils/browser/data-bs-theme.ts +++ b/src/shared/utils/browser/data-bs-theme.ts @@ -9,15 +9,7 @@ export default function dataBsTheme(siteResOrTheme?: GetSiteResponse | string) { siteResOrTheme?.site_view.local_site.default_theme ?? "browser"); - return (isDark() && theme === "browser") || - [ - "darkly", - "darkly-red", - "darkly-pureblack", - "darkly-compact", - "i386", - "vaporwave-dark", - ].includes(theme) + return (isDark() && theme === "browser") || theme.includes("dark") ? "dark" : "light"; } diff --git a/src/shared/utils/browser/set-auth-cookie.ts b/src/shared/utils/browser/set-auth-cookie.ts index e7d4300c..26fffa52 100644 --- a/src/shared/utils/browser/set-auth-cookie.ts +++ b/src/shared/utils/browser/set-auth-cookie.ts @@ -6,7 +6,7 @@ export default function setAuthCookie(jwt: string) { document.cookie = cookie.serialize(authCookieName, jwt, { maxAge: 365 * 24 * 60 * 60 * 1000, secure: isHttps(), - sameSite: true, + sameSite: "lax", path: "/", }); } diff --git a/src/shared/utils/helpers/format-past-date.ts b/src/shared/utils/helpers/format-past-date.ts index fc544956..5ba17b89 100644 --- a/src/shared/utils/helpers/format-past-date.ts +++ b/src/shared/utils/helpers/format-past-date.ts @@ -6,7 +6,7 @@ export default function (dateString?: string) { return formatDistanceStrict(parsed, new Date(), { addSuffix: true, }); - } catch (e) { + } catch { return "indeterminate"; } } diff --git a/src/shared/utils/helpers/get-bool-from-string.ts b/src/shared/utils/helpers/get-bool-from-string.ts new file mode 100644 index 00000000..01d79a4c --- /dev/null +++ b/src/shared/utils/helpers/get-bool-from-string.ts @@ -0,0 +1,5 @@ +export default function getBoolFromString( + boolStr?: string, +): boolean | undefined { + return boolStr ? boolStr.toLowerCase() === "true" : undefined; +} diff --git a/src/shared/utils/helpers/get-unix-time.ts b/src/shared/utils/helpers/get-unix-time.ts index ec9d0191..ae8a8aa8 100644 --- a/src/shared/utils/helpers/get-unix-time.ts +++ b/src/shared/utils/helpers/get-unix-time.ts @@ -1,3 +1,27 @@ -export default function getUnixTime(text?: string): number | undefined { +/** + * Converts timestamp string to unix timestamp in seconds, as used by Lemmy API + */ +export function getUnixTimeLemmy(text?: string): number | undefined { return text ? new Date(text).getTime() / 1000 : undefined; } +/** + * Converts timestamp string to unix timestamp in millis, as used by Javascript + */ +export function getUnixTime(text?: string): number | undefined { + return text ? new Date(text).getTime() : undefined; +} + +/** + * This converts a unix time to a local date string, + * popping to tho nearest minute, and removing the Z for + * javascript fields. + */ +export function unixTimeToLocalDateStr(unixTime?: number): string | undefined { + return unixTime + ? convertUTCDateToLocalDate(new Date(unixTime)).toISOString().slice(0, -8) + : undefined; +} + +function convertUTCDateToLocalDate(date: Date): Date { + return new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000); +} diff --git a/src/shared/utils/helpers/index.ts b/src/shared/utils/helpers/index.ts index 0fb3c6f8..6108bac3 100644 --- a/src/shared/utils/helpers/index.ts +++ b/src/shared/utils/helpers/index.ts @@ -5,12 +5,12 @@ import editListImmutable from "./edit-list-immutable"; import formatPastDate from "./format-past-date"; import futureDaysToUnixTime from "./future-days-to-unix-time"; import getIdFromString from "./get-id-from-string"; +import getBoolFromString from "./get-bool-from-string"; import getPageFromString from "./get-page-from-string"; import getQueryParams from "./get-query-params"; import getQueryString from "./get-query-string"; import getRandomCharFromAlphabet from "./get-random-char-from-alphabet"; import getRandomFromList from "./get-random-from-list"; -import getUnixTime from "./get-unix-time"; import { groupBy } from "./group-by"; import hostname from "./hostname"; import hsl from "./hsl"; @@ -36,12 +36,12 @@ export { formatPastDate, futureDaysToUnixTime, getIdFromString, + getBoolFromString, getPageFromString, getQueryParams, getQueryString, getRandomCharFromAlphabet, getRandomFromList, - getUnixTime, groupBy, hostname, hsl, diff --git a/src/shared/utils/media/is-magnet-link.ts b/src/shared/utils/media/is-magnet-link.ts new file mode 100644 index 00000000..084cd3c6 --- /dev/null +++ b/src/shared/utils/media/is-magnet-link.ts @@ -0,0 +1,9 @@ +const magnetLinkRegex = /^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/; + +export default function isMagnetLink(url: string) { + return magnetLinkRegex.test(url); +} + +export function extractMagnetLinkDownloadName(url: string) { + return new URLSearchParams(url).get("dn"); +} diff --git a/src/shared/utils/types/cross-post-params.ts b/src/shared/utils/types/cross-post-params.ts index 9eb29b70..e63e5c1a 100644 --- a/src/shared/utils/types/cross-post-params.ts +++ b/src/shared/utils/types/cross-post-params.ts @@ -1,5 +1,10 @@ +import StringBoolean from "./string-boolean"; + export default interface CrossPostParams { name: string; url?: string; body?: string; + altText?: string; + nsfw?: StringBoolean; + languageId?: number; } diff --git a/src/shared/utils/types/oauth.ts b/src/shared/utils/types/oauth.ts new file mode 100644 index 00000000..60dee912 --- /dev/null +++ b/src/shared/utils/types/oauth.ts @@ -0,0 +1,6 @@ +import { CreateOAuthProvider } from "lemmy-js-client"; + +export type ProviderToEdit = Omit< + CreateOAuthProvider, + "client_id" | "client_secret" +>;