From 3afc413c35f7a66e2443239dc17dbe6489852c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=20J=20Barata=20Ribeiro?= <122732773+Barata-Ribeiro@users.noreply.github.com> Date: Sat, 8 Aug 2026 09:03:24 -0300 Subject: [PATCH 1/4] refactor(UI): add accessibility improvements to NumberField component --- app/components/reui/number-field.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/components/reui/number-field.tsx b/app/components/reui/number-field.tsx index 9a676c9..d951261 100644 --- a/app/components/reui/number-field.tsx +++ b/app/components/reui/number-field.tsx @@ -4,6 +4,7 @@ import { cva } from 'class-variance-authority'; import type { ReactNode } from 'react'; import { createContext, useContext, useId, useMemo } from 'react'; +import { ClassValue } from 'clsx'; import { MinusIcon, PlusIcon } from 'lucide-react'; import { Label } from '~/components/ui/label'; import { cn } from '~/lib/utils'; @@ -125,7 +126,7 @@ function NumberFieldDecrement({ data-slot="number-field-decrement" {...props} > - {children ?? } + {children ?? } ); } @@ -151,7 +152,7 @@ function NumberFieldIncrement({ data-slot="number-field-increment" {...props} > - {children ?? } + {children ?? } ); } @@ -183,7 +184,7 @@ function NumberFieldScrubArea({ ...props }: NumberFieldPrimitive.ScrubArea.Props & { label: string; - labelClassName?: string; + labelClassName?: ClassValue; }) { const context = useContext(NumberFieldContext); if (!context) { @@ -200,7 +201,7 @@ function NumberFieldScrubArea({ {label} - + ); From d9d8fe72a73c2836b3616f5b143a428f8d200d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=20J=20Barata=20Ribeiro?= <122732773+Barata-Ribeiro@users.noreply.github.com> Date: Sat, 8 Aug 2026 09:04:11 -0300 Subject: [PATCH 2/4] refactor(dice-roller): simplify modifier input and remove unused InfoIcon --- .../dice-roller/generic-dice-roller.tsx | 55 ++++++------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/app/components/pages/utilities/dice-roller/generic-dice-roller.tsx b/app/components/pages/utilities/dice-roller/generic-dice-roller.tsx index f67657f..e9c4b30 100644 --- a/app/components/pages/utilities/dice-roller/generic-dice-roller.tsx +++ b/app/components/pages/utilities/dice-roller/generic-dice-roller.tsx @@ -1,4 +1,4 @@ -import { InfoIcon, PlayIcon, RefreshCwIcon } from 'lucide-react'; +import { PlayIcon, RefreshCwIcon } from 'lucide-react'; import type { MouseEvent } from 'react'; import { Fragment, useState, useTransition } from 'react'; import DiceRollCounterBadge from '~/components/pages/utilities/dice-roller/helpers/dice-roll-counter.badge'; @@ -15,8 +15,7 @@ import { Button } from '~/components/ui/button'; import { ButtonGroup } from '~/components/ui/button-group'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '~/components/ui/card'; import { Dialog, DialogContent, DialogHeader } from '~/components/ui/dialog'; -import { InputGroupAddon, InputGroupButton } from '~/components/ui/input-group'; -import { Popover, PopoverContent, PopoverTrigger } from '~/components/ui/popover'; +import { InputGroup, InputGroupAddon } from '~/components/ui/input-group'; import { Separator } from '~/components/ui/separator'; import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; import useIsMobile from '~/hooks/use-mobile'; @@ -145,46 +144,24 @@ export default function GenericDiceRoller() { id="modifier-input" name="modifier-input" aria-label="Modifier input" - className="flex-1 md:max-w-44" - value={modifier} + className="flex-1 focus-within:rounded-md focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 focus-within:ring-offset-0 focus-within:has-aria-invalid:border-destructive focus-within:has-aria-invalid:ring-destructive/20 md:max-w-44" min={-100} max={100} - step={1} + smallStep={1} + largeStep={5} + value={modifier} onValueChange={(value) => setModifier(Number(value))} > - - - - - - - - } - /> - -

Modifiers

-

- Use these modifiers to adjust your dice rolls. You can add or subtract - values as needed. Check your game rules for more details. -

-
-
- - - - -
+ + + + + + + + + + From 669ad01259334c413466582d20111be52eb75de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=20J=20Barata=20Ribeiro?= <122732773+Barata-Ribeiro@users.noreply.github.com> Date: Sun, 9 Aug 2026 07:23:36 -0300 Subject: [PATCH 3/4] chore(deps): update lucide-react, react-dropzone, react-hook-form, shadcn, @types/node, and vite versions --- package.json | 12 +-- pnpm-lock.yaml | 226 ++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 2 +- 3 files changed, 120 insertions(+), 120 deletions(-) diff --git a/package.json b/package.json index 4ab0268..fd21cce 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "isbot": "^5.2.1", "konva": "^10.3.0", "lodash": "^4.18.1", - "lucide-react": "^1.28.0", + "lucide-react": "^1.30.0", "mathjs": "^15.2.0", "optional": "^0.1.4", "qrcode": "^1.5.4", @@ -47,11 +47,11 @@ "react-colorful": "^5.8.0", "react-day-picker": "^10.0.1", "react-dom": "^19.2.8", - "react-dropzone": "^20.0.0", - "react-hook-form": "^7.84.0", + "react-dropzone": "^20.1.0", + "react-hook-form": "^7.85.0", "react-konva": "^19.2.5", "react-router": "8.3.0", - "shadcn": "^4.16.1", + "shadcn": "^4.16.2", "tailwind-merge": "^3.6.0", "tw-animate-css": "^1.4.0", "zod": "^4.4.3" @@ -63,7 +63,7 @@ "@tailwindcss/vite": "^4.3.3", "@types/convert-source-map": "^2.0.3", "@types/lodash": "^4.17.25", - "@types/node": "^26.1.2", + "@types/node": "^26.2.0", "@types/qrcode": "^1.5.6", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", @@ -75,7 +75,7 @@ "serwist": "^9.5.12", "tailwindcss": "^4.3.3", "typescript": "^6.0.3", - "vite": "^8.2.0", + "vite": "^8.2.1", "vite-plugin-devtools-json": "^1.1.0", "vitest": "^4.1.10", "vitest-browser-react": "^2.2.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 441be73..fc187a8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,7 +26,7 @@ importers: version: 5.3.0 '@hookform/resolvers': specifier: ^5.7.1 - version: 5.7.1(@standard-schema/spec@1.1.0)(ajv-formats@2.1.1(ajv@8.20.0))(ajv@8.20.0)(react-hook-form@7.84.0(react@19.2.8))(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) + version: 5.7.1(@standard-schema/spec@1.1.0)(ajv-formats@2.1.1(ajv@8.20.0))(ajv@8.20.0)(react-hook-form@7.85.0(react@19.2.8))(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) '@react-router/node': specifier: 8.3.0 version: 8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3) @@ -35,7 +35,7 @@ importers: version: 8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3) '@vercel/react-router': specifier: ^1.3.2 - version: 1.3.2(@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)))(@react-router/node@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(isbot@5.2.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 1.3.2(@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)))(@react-router/node@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(isbot@5.2.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) canvas: specifier: ^3.2.3 version: 3.2.3 @@ -61,8 +61,8 @@ importers: specifier: ^4.18.1 version: 4.18.1 lucide-react: - specifier: ^1.28.0 - version: 1.29.0(react@19.2.8) + specifier: ^1.30.0 + version: 1.30.0(react@19.2.8) mathjs: specifier: ^15.2.0 version: 15.2.0 @@ -85,11 +85,11 @@ importers: specifier: ^19.2.8 version: 19.2.8(react@19.2.8) react-dropzone: - specifier: ^20.0.0 - version: 20.0.0(@types/react@19.2.18)(react@19.2.8) + specifier: ^20.1.0 + version: 20.1.0(@types/react@19.2.18)(react@19.2.8) react-hook-form: - specifier: ^7.84.0 - version: 7.84.0(react@19.2.8) + specifier: ^7.85.0 + version: 7.85.0(react@19.2.8) react-konva: specifier: ^19.2.5 version: 19.2.5(@types/react@19.2.18)(konva@10.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) @@ -97,7 +97,7 @@ importers: specifier: 8.3.0 version: 8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) shadcn: - specifier: ^4.16.1 + specifier: ^4.16.2 version: 4.16.2(typescript@6.0.3) tailwind-merge: specifier: ^3.6.0 @@ -111,16 +111,16 @@ importers: devDependencies: '@react-router/dev': specifier: 8.3.0 - version: 8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + version: 8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@serwist/vite': specifier: ^9.5.12 - version: 9.5.12(browserslist@4.28.7)(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + version: 9.5.12(browserslist@4.28.8)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@serwist/window': specifier: ^9.5.12 - version: 9.5.12(browserslist@4.28.7)(typescript@6.0.3) + version: 9.5.12(browserslist@4.28.8)(typescript@6.0.3) '@tailwindcss/vite': specifier: ^4.3.3 - version: 4.3.3(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + version: 4.3.3(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@types/convert-source-map': specifier: ^2.0.3 version: 2.0.3 @@ -128,8 +128,8 @@ importers: specifier: ^4.17.25 version: 4.17.25 '@types/node': - specifier: ^26.1.2 - version: 26.1.2 + specifier: ^26.2.0 + version: 26.2.0 '@types/qrcode': specifier: ^1.5.6 version: 1.5.6 @@ -141,7 +141,7 @@ importers: version: 19.2.4(@types/react@19.2.18) '@vitest/browser-playwright': specifier: ^4.1.10 - version: 4.1.10(playwright@1.62.1)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))(vitest@4.1.10) + version: 4.1.10(playwright@1.62.1)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))(vitest@4.1.10) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 @@ -156,7 +156,7 @@ importers: version: 0.8.1(prettier@3.9.6) serwist: specifier: ^9.5.12 - version: 9.5.12(browserslist@4.28.7)(typescript@6.0.3) + version: 9.5.12(browserslist@4.28.8)(typescript@6.0.3) tailwindcss: specifier: ^4.3.3 version: 4.3.3 @@ -164,22 +164,22 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^8.2.0 - version: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + specifier: ^8.2.1 + version: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) vite-plugin-devtools-json: specifier: ^1.1.0 - version: 1.1.0(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + version: 1.1.0(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) vitest: specifier: ^4.1.10 - version: 4.1.10(@types/node@26.1.2)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + version: 4.1.10(@types/node@26.2.0)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) vitest-browser-react: specifier: ^2.2.0 version: 2.2.0(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(vitest@4.1.10) packages: - '@asamuzakjp/css-color@6.0.5': - resolution: {integrity: sha512-mbhpPMmnw/kwW19aRNmSUl1QzLbdGo1SCuE49BT98MNwqF6zaHb3o2owssFc/PEO/4t2UjqtCNwocuDtJornzA==} + '@asamuzakjp/css-color@6.0.7': + resolution: {integrity: sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==} engines: {node: ^22.13.0 || >=24.0.0} '@asamuzakjp/dom-selector@8.3.2': @@ -877,8 +877,8 @@ packages: '@types/lodash@4.17.25': resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==} - '@types/node@26.1.2': - resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} + '@types/node@26.2.0': + resolution: {integrity: sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==} '@types/qrcode@1.5.6': resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==} @@ -1066,8 +1066,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.7: - resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} + browserslist@4.28.8: + resolution: {integrity: sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1101,8 +1101,8 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - caniuse-lite@1.0.30001807: - resolution: {integrity: sha512-daRXJ9EB/rdRgu7kV+TTl1YUKtlsMWblPl2sLnpg9DZae16QCegol6A1SmCE31Lm9mXC1sRWGt/krouH+/dl7Q==} + caniuse-lite@1.0.30001809: + resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==} canvas@3.2.3: resolution: {integrity: sha512-PzE5nJZPz72YUAfo8oTp0u3fqqY7IzlTubneAihqDYAUcBk7ryeCmBbdJBEdaH0bptSOe2VT2Zwcb3UaFyaSWw==} @@ -1597,8 +1597,8 @@ packages: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} - hono@4.13.0: - resolution: {integrity: sha512-jhunvfHWxd7J5EFfSgH4xsYJzSe/lfqbUCxiyyeaQasUsXeEHXtzVid+7EOGByc5JnFa23SSFL3Y2RV/z1T+eQ==} + hono@4.13.1: + resolution: {integrity: sha512-kdJoFVv2xmayw6cY09H7AbMJMt8Jn5jdlEdXsP7AGBdF2DIptVlKlOLKXP41yPip4/a3yQPv9gVcJYI8YY04dw==} engines: {node: '>=16.9.0'} html-encoding-sniffer@6.0.0: @@ -1994,8 +1994,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@1.29.0: - resolution: {integrity: sha512-Xs9QFG5+9sNX04MdKVT4++umA+hJ2qsJVlRlRWHQ7qZobXgMiNHSpZ5eZm8JUoGCdNyoEdXoEwa8HVr0DNjOQg==} + lucide-react@1.30.0: + resolution: {integrity: sha512-tUIr2jXLbWpCkdtH8XP7P7YppM9ueWgTky99lpWDY6z5REs6B+O6ZQ3U5tHkUUY59ANyOv/PBcs8E4Fe3KO3eA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2093,8 +2093,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.17: - resolution: {integrity: sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==} + nanoid@3.3.18: + resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -2286,8 +2286,8 @@ packages: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} - postcss-selector-parser@7.1.4: - resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} + postcss-selector-parser@7.1.5: + resolution: {integrity: sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==} engines: {node: '>=4'} postcss@8.5.26: @@ -2432,8 +2432,8 @@ packages: peerDependencies: react: ^19.2.8 - react-dropzone@20.0.0: - resolution: {integrity: sha512-Xw8tvvVPJQzj8ir5wivUMzA+G6R+aGhdU5KQzUMvVBlJNb26AW/0137VoYVmb5UgZcbhM9OCpjE4KOqqSL9QuQ==} + react-dropzone@20.1.0: + resolution: {integrity: sha512-id1t9JDYNQeFzzIfB5/C6TrpLchy29rTSDxsBH/pcxhILyv/6bSOTJwOlvUsTWXkC2GduuHIldDV6UQXNWfIuA==} engines: {node: '>= 22'} peerDependencies: '@types/react': '*' @@ -2442,8 +2442,8 @@ packages: '@types/react': optional: true - react-hook-form@7.84.0: - resolution: {integrity: sha512-+hWvQP6GLco56mDwrbU4XnHix8t1z90ltZsDIrREl+jnQFQxYLX8oAzqe/Xn8nHpmoXTY5M6oEXrAhbP1qevNQ==} + react-hook-form@7.85.0: + resolution: {integrity: sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -2843,8 +2843,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + update-browserslist-db@1.3.0: + resolution: {integrity: sha512-x/M6q3w4Ybp91CNaS4S69UnliqR3BzRpOT6LWbksjth0S/+jhfaPJsWjt/TewpT8j9eLIojUf5jr29WextHroA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2885,8 +2885,8 @@ packages: peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - vite@8.2.0: - resolution: {integrity: sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==} + vite@8.2.1: + resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3028,8 +3028,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.21.2: - resolution: {integrity: sha512-54dMVAo4WIe6SKy3vBgN+9bJZqqQ8IMRevAkOLQALhi49qkkQDQfWdAZ8KQlXiEabw88ARXXdUrlvtbKQX+aKw==} + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3086,7 +3086,7 @@ packages: snapshots: - '@asamuzakjp/css-color@6.0.5': + '@asamuzakjp/css-color@6.0.7': dependencies: '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-color-parser': 4.1.10(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -3145,7 +3145,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.7 + browserslist: 4.28.8 lru-cache: 5.1.1 semver: 6.3.1 @@ -3392,14 +3392,14 @@ snapshots: '@fontsource-variable/source-sans-3@5.3.0': {} - '@hono/node-server@2.1.0(hono@4.13.0)': + '@hono/node-server@2.1.0(hono@4.13.1)': dependencies: - hono: 4.13.0 + hono: 4.13.1 - '@hookform/resolvers@5.7.1(@standard-schema/spec@1.1.0)(ajv-formats@2.1.1(ajv@8.20.0))(ajv@8.20.0)(react-hook-form@7.84.0(react@19.2.8))(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3)': + '@hookform/resolvers@5.7.1(@standard-schema/spec@1.1.0)(ajv-formats@2.1.1(ajv@8.20.0))(ajv@8.20.0)(react-hook-form@7.85.0(react@19.2.8))(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3)': dependencies: '@standard-schema/utils': 0.3.0 - react-hook-form: 7.84.0(react@19.2.8) + react-hook-form: 7.85.0(react@19.2.8) optionalDependencies: '@standard-schema/spec': 1.1.0 ajv: 8.20.0 @@ -3428,7 +3428,7 @@ snapshots: '@modelcontextprotocol/sdk@1.30.0(zod@3.25.76)': dependencies: - '@hono/node-server': 2.1.0(hono@4.13.0) + '@hono/node-server': 2.1.0(hono@4.13.1) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -3438,7 +3438,7 @@ snapshots: eventsource-parser: 3.1.0 express: 5.2.1 express-rate-limit: 8.6.2(express@5.2.1) - hono: 4.13.0 + hono: 4.13.1 jose: 6.2.8 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 @@ -3464,7 +3464,7 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))': + '@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))': dependencies: '@babel/core': 7.29.7 '@babel/generator': 7.29.8 @@ -3493,7 +3493,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 valibot: 1.4.2(typescript@6.0.3) - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) optionalDependencies: '@react-router/serve': 8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3) typescript: 6.0.3 @@ -3578,9 +3578,9 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@serwist/build@9.5.12(browserslist@4.28.7)(typescript@6.0.3)': + '@serwist/build@9.5.12(browserslist@4.28.8)(typescript@6.0.3)': dependencies: - '@serwist/utils': 9.5.12(browserslist@4.28.7) + '@serwist/utils': 9.5.12(browserslist@4.28.8) common-tags: 1.8.2 glob: 13.0.6 pretty-bytes: 6.1.1 @@ -3592,28 +3592,28 @@ snapshots: transitivePeerDependencies: - browserslist - '@serwist/utils@9.5.12(browserslist@4.28.7)': + '@serwist/utils@9.5.12(browserslist@4.28.8)': optionalDependencies: - browserslist: 4.28.7 + browserslist: 4.28.8 - '@serwist/vite@9.5.12(browserslist@4.28.7)(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))': + '@serwist/vite@9.5.12(browserslist@4.28.8)(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))': dependencies: - '@serwist/build': 9.5.12(browserslist@4.28.7)(typescript@6.0.3) - '@serwist/utils': 9.5.12(browserslist@4.28.7) + '@serwist/build': 9.5.12(browserslist@4.28.8)(typescript@6.0.3) + '@serwist/utils': 9.5.12(browserslist@4.28.8) glob: 13.0.6 kolorist: 1.8.0 - serwist: 9.5.12(browserslist@4.28.7)(typescript@6.0.3) - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + serwist: 9.5.12(browserslist@4.28.8)(typescript@6.0.3) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) zod: 4.4.3 optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: - browserslist - '@serwist/window@9.5.12(browserslist@4.28.7)(typescript@6.0.3)': + '@serwist/window@9.5.12(browserslist@4.28.8)(typescript@6.0.3)': dependencies: '@types/trusted-types': 2.0.7 - serwist: 9.5.12(browserslist@4.28.7)(typescript@6.0.3) + serwist: 9.5.12(browserslist@4.28.8)(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 transitivePeerDependencies: @@ -3686,12 +3686,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))': + '@tailwindcss/vite@4.3.3(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) '@ts-morph/common@0.11.1': dependencies: @@ -3721,13 +3721,13 @@ snapshots: '@types/lodash@4.17.25': {} - '@types/node@26.1.2': + '@types/node@26.2.0': dependencies: undici-types: 8.3.0 '@types/qrcode@1.5.6': dependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 '@types/react-dom@19.2.4(@types/react@19.2.18)': dependencies: @@ -3749,9 +3749,9 @@ snapshots: '@types/validate-npm-package-name@4.0.2': {} - '@vercel/react-router@1.3.2(@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)))(@react-router/node@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(isbot@5.2.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@vercel/react-router@1.3.2(@react-router/dev@8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)))(@react-router/node@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(isbot@5.2.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@react-router/dev': 8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + '@react-router/dev': 8.3.0(@react-router/serve@8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3))(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@react-router/node': 8.3.0(react-router@8.3.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(typescript@6.0.3) '@vercel/static-config': 3.4.1 isbot: 5.2.1 @@ -3765,30 +3765,30 @@ snapshots: json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 - '@vitest/browser-playwright@4.1.10(playwright@1.62.1)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))(vitest@4.1.10)': + '@vitest/browser-playwright@4.1.10(playwright@1.62.1)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))(vitest@4.1.10)': dependencies: - '@vitest/browser': 4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))(vitest@4.1.10) - '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + '@vitest/browser': 4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))(vitest@4.1.10) + '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) playwright: 1.62.1 tinyrainbow: 3.1.1 - vitest: 4.1.10(@types/node@26.1.2)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + vitest: 4.1.10(@types/node@26.2.0)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))(vitest@4.1.10)': + '@vitest/browser@4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))(vitest@4.1.10)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@vitest/utils': 4.1.10 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.1 - vitest: 4.1.10(@types/node@26.1.2)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) - ws: 8.21.2 + vitest: 4.1.10(@types/node@26.2.0)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) + ws: 8.21.3 transitivePeerDependencies: - bufferutil - msw @@ -3804,13 +3804,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))': + '@vitest/mocker@4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -3947,13 +3947,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.7: + browserslist@4.28.8: dependencies: baseline-browser-mapping: 2.11.12 - caniuse-lite: 1.0.30001807 + caniuse-lite: 1.0.30001809 electron-to-chromium: 1.5.402 node-releases: 2.0.53 - update-browserslist-db: 1.2.3(browserslist@4.28.7) + update-browserslist-db: 1.3.0(browserslist@4.28.8) buffer-from@1.1.2: {} @@ -3982,7 +3982,7 @@ snapshots: camelcase@5.3.1: {} - caniuse-lite@1.0.30001807: {} + caniuse-lite@1.0.30001809: {} canvas@3.2.3: dependencies: @@ -4446,7 +4446,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hono@4.13.0: {} + hono@4.13.1: {} html-encoding-sniffer@6.0.0: dependencies: @@ -4568,7 +4568,7 @@ snapshots: jsdom@30.0.1(canvas@3.2.3): dependencies: - '@asamuzakjp/css-color': 6.0.5 + '@asamuzakjp/css-color': 6.0.7 '@asamuzakjp/dom-selector': 8.3.2 '@bramus/specificity': 2.4.2 '@csstools/css-syntax-patches-for-csstree': 1.1.7(css-tree@3.2.1) @@ -4747,7 +4747,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@1.29.0(react@19.2.8): + lucide-react@1.30.0(react@19.2.8): dependencies: react: 19.2.8 @@ -4830,7 +4830,7 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.17: {} + nanoid@3.3.18: {} napi-build-utils@2.0.0: {} @@ -4994,14 +4994,14 @@ snapshots: pngjs@7.0.0: {} - postcss-selector-parser@7.1.4: + postcss-selector-parser@7.1.5: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss@8.5.26: dependencies: - nanoid: 3.3.17 + nanoid: 3.3.18 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -5098,7 +5098,7 @@ snapshots: react: 19.2.8 scheduler: 0.27.0 - react-dropzone@20.0.0(@types/react@19.2.18)(react@19.2.8): + react-dropzone@20.1.0(@types/react@19.2.18)(react@19.2.8): dependencies: attr-accept: 2.2.5 file-selector: 4.1.0 @@ -5106,7 +5106,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.18 - react-hook-form@7.84.0(react@19.2.8): + react-hook-form@7.85.0(react@19.2.8): dependencies: react: 19.2.8 @@ -5250,9 +5250,9 @@ snapshots: transitivePeerDependencies: - supports-color - serwist@9.5.12(browserslist@4.28.7)(typescript@6.0.3): + serwist@9.5.12(browserslist@4.28.8)(typescript@6.0.3): dependencies: - '@serwist/utils': 9.5.12(browserslist@4.28.7) + '@serwist/utils': 9.5.12(browserslist@4.28.8) idb: 8.0.3 optionalDependencies: typescript: 6.0.3 @@ -5272,7 +5272,7 @@ snapshots: '@dotenvx/dotenvx': 1.75.1 '@modelcontextprotocol/sdk': 1.30.0(zod@3.25.76) '@types/validate-npm-package-name': 4.0.2 - browserslist: 4.28.7 + browserslist: 4.28.8 commander: 14.0.3 cosmiconfig: 9.0.2(typescript@6.0.3) dedent: 1.7.2 @@ -5286,7 +5286,7 @@ snapshots: open: 11.0.0 ora: 8.2.0 postcss: 8.5.26 - postcss-selector-parser: 7.1.4 + postcss-selector-parser: 7.1.5 prompts: 2.4.2 recast: 0.23.19 stringify-object: 5.0.0 @@ -5532,9 +5532,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.7): + update-browserslist-db@1.3.0(browserslist@4.28.8): dependencies: - browserslist: 4.28.7 + browserslist: 4.28.8 escalade: 3.2.0 picocolors: 1.1.1 @@ -5558,12 +5558,12 @@ snapshots: vary@1.1.2: {} - vite-plugin-devtools-json@1.1.0(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)): + vite-plugin-devtools-json@1.1.0(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)): dependencies: uuid: 14.0.1 - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) - vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0): + vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -5571,7 +5571,7 @@ snapshots: rolldown: 1.2.3 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.2.0 fsevents: 2.3.3 jiti: 2.7.0 @@ -5579,15 +5579,15 @@ snapshots: dependencies: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - vitest: 4.1.10(@types/node@26.1.2)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + vitest: 4.1.10(@types/node@26.2.0)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) optionalDependencies: '@types/react': 19.2.18 '@types/react-dom': 19.2.4(@types/react@19.2.18) - vitest@4.1.10(@types/node@26.1.2)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)): + vitest@4.1.10(@types/node@26.2.0)(@vitest/browser-playwright@4.1.10)(jsdom@30.0.1(canvas@3.2.3))(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0)) + '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -5604,11 +5604,11 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0) + vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 26.1.2 - '@vitest/browser-playwright': 4.1.10(playwright@1.62.1)(vite@8.2.0(@types/node@26.1.2)(jiti@2.7.0))(vitest@4.1.10) + '@types/node': 26.2.0 + '@vitest/browser-playwright': 4.1.10(playwright@1.62.1)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))(vitest@4.1.10) jsdom: 30.0.1(canvas@3.2.3) transitivePeerDependencies: - msw @@ -5660,7 +5660,7 @@ snapshots: wrappy@1.0.2: {} - ws@8.21.2: {} + ws@8.21.3: {} wsl-utils@0.3.1: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5348e21..1988167 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -44,7 +44,7 @@ minimumReleaseAgeExclude: - react-router@8.1.0 || 8.3.0 - tailwindcss@4.3.2 || 4.3.3 - '@types/node@26.1.1' - - react-dropzone@17.0.0 || 19.0.1 || 19.1.1 || 19.2.0 + - react-dropzone@17.0.0 || 19.0.1 || 19.1.1 || 19.2.0 || 20.1.0 - prettier-plugin-tailwindcss@0.8.1 - react-hook-form@7.82.0 || 7.84.0 - '@fontsource-variable/fira-code@5.3.0' From 1194998d6477419f9fcb3efb8cf83650145a9bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=20J=20Barata=20Ribeiro?= <122732773+Barata-Ribeiro@users.noreply.github.com> Date: Sun, 9 Aug 2026 07:24:25 -0300 Subject: [PATCH 4/4] docs(README): update notable features section to include Dice Roller and clarify light/dark theme switching --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fc14f1c..837de29 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ Demo: https://utilities-webapp.vercel.app/ - **Converters**: bytes, length, mass, speed, temperature, time - **Calculators**: General, BMI, Dates, GCF/LCM, Percentage, Rule of Three -- **Utilities**: Character Counter, Lorem Ipsum, Meme Generator, Password Generator(random, memorable, pin), QR Code Generator, +- **Utilities**: Character Counter, Dice Roller (including Vampire: The Masquerade v5), Lorem Ipsum, Meme Generator, Password Generator(random, memorable, pin), QR Code Generator, Roman Converter, Text to Speech, URL Slug Generator - **Programming Utilities**: Image to Base64 -- Light/dark theme switching (`next-themes`) +- Light/dark theme switching (through cookies and `useTheme` hook) - Responsive layout with accessible UI primitives (Base UI + custom shadcn/ui components) - Project built with modern tooling: Vite.js, React, TypeScript, Tailwind and ESLint/Prettier -- Service Worker for offline support (experimental) and PWA features (workbox) +- Service Worker for offline support (experimental) and PWA features (Serwist) MORE TO COME... @@ -91,4 +91,4 @@ Feel free to contact me with any questions or if you are interested in collabora ## 📜 License -This project is free software available under the [GPLv3](LICENSE) license. \ No newline at end of file +This project is free software available under the [GPLv3](LICENSE) license.