diff --git a/api/package-lock.json b/api/package-lock.json index 87b5202..b20dcf9 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -4149,9 +4149,9 @@ } }, "node_modules/nodemailer": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.4.tgz", - "integrity": "sha512-9O00Vh89/Ld2EcVCqJ/etd7u20UhME0f/NToPfArwPEe1Don1zy4mAIz6ariRr7mJ2RDxtaDzN0WJVdVXPtZaw==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.9.tgz", + "integrity": "sha512-9/Qm0qXIByEP8lEV2qOqcAW7bRpL8CR9jcTwk3NBnHJNmP9fIJ86g2fgmIXqHY+nj55ZEMwWqYAT2QTDpRUYiQ==", "engines": { "node": ">=6.0.0" } diff --git a/api/package.json b/api/package.json index 9a5d88c..5cd3dea 100644 --- a/api/package.json +++ b/api/package.json @@ -38,5 +38,8 @@ "sinon": "^17.0.0", "tsx": "^4.7.1", "typescript": "^5.8.3" - } + }, + "overrides": { + "linkifyjs": "^4.3.2" + } } diff --git a/api/src/__tests__/README.md b/api/src/__tests__/README.md deleted file mode 100644 index fe5c1f1..0000000 --- a/api/src/__tests__/README.md +++ /dev/null @@ -1,222 +0,0 @@ -# API Test Suite - -This directory contains comprehensive tests for the XTablo API, covering all endpoints and their functionality. - -## Test Files - -### 1. `test-utils.ts` - -Provides testing utilities and mock factories: - -- **Mock Clients**: Supabase, Stream Chat, S3, Email Transporter -- **Mock Data**: Users, Profiles, Tablos, Events -- **Helper Functions**: Context creation, stub management, assertions -- **Environment Setup**: Mock environment variables for tests - -### 2. `middleware.test.ts` - -Tests for API middleware: - -- **authMiddleware**: Bearer token authentication -- **supabaseMiddleware**: Supabase client initialization -- **streamChatMiddleware**: Stream Chat client initialization -- **r2Middleware**: S3/R2 client initialization - -### 3. `user.test.ts` - -Tests for User Router (`/api/v1/users`): - -- **POST /sign-up-to-stream**: User registration with Stream Chat -- **GET /me**: Retrieve user profile with Stream token -- **POST /mark-temporary**: Mark user as temporary and send welcome email - -### 4. `tablo.test.ts` - -Tests for Tablo Router (`/api/v1/tablos`): - -- **POST /create**: Create new tablo with events -- **POST /create-and-invite**: Create tablo and invite user -- **PATCH /update**: Update tablo details -- **DELETE /delete**: Soft delete tablo -- **POST /invite**: Send tablo invitation -- **POST /join**: Join tablo with invite token -- **GET /members/:tablo_id**: Get tablo members -- **POST /leave**: Leave a tablo -- **POST /webcal/generate-url**: Generate webcal subscription URL - -### 5. `tablo_data.test.ts` - -Tests for Tablo Data Router (`/api/v1/tablo-data`): - -- **GET /:tabloId/filenames**: List files in tablo -- **GET /:tabloId/:fileName**: Get file content -- **POST /:tabloId/:fileName**: Upload/update file -- **DELETE /:tabloId/:fileName**: Delete file - -### 6. `tasks.test.ts` - -Tests for Tasks Router (`/api/v1/tasks`): - -- **POST /sync-calendars**: Sync calendar subscriptions (with authentication) - -### 7. `public.test.ts` - -Tests for Public Router (`/api/public`): - -- **GET /slots/:shortUserId/:standardName**: Get available time slots for booking - -### 8. `helpers.test.ts` - -Tests for helper functions: - -- **generateICSFromEvents**: Generate ICS calendar files -- **writeCalendarFileToR2**: Write calendar to R2 storage -- **isTabloMember**: Check if user is tablo member -- **isTabloAdmin**: Check if user is tablo admin -- **getTabloFileNames**: Get list of files in tablo - -### 9. `slots.test.ts` - -Tests for slot generation logic (existing): - -- Time slot generation with various configurations -- Exception handling -- Event conflicts -- Buffer time -- Minimum advance booking -- Maximum bookings per day - -## Running Tests - -### Run all tests: - -```bash -npm test -``` - -### Run tests in watch mode: - -```bash -npm run test:watch -``` - -### Run specific test file: - -```bash -npx mocha src/__tests__/user.test.ts -``` - -## Test Coverage - -The test suite covers: - -1. **Authentication & Authorization** - - - Token validation - - User authentication - - Admin/member access control - -2. **CRUD Operations** - - - Create, read, update, delete for all entities - - Soft deletes - - Batch operations - -3. **Business Logic** - - - Tablo invitations and access control - - Calendar generation and synchronization - - File storage and retrieval - - Time slot availability calculation - -4. **Error Handling** - - - Missing required fields - - Invalid tokens - - Permission denied scenarios - - Database errors - - External service failures (S3, Stream Chat) - -5. **Integration Points** - - Supabase database operations - - Stream Chat channel management - - R2/S3 file operations - - Email sending - -## Testing Framework - -- **Test Runner**: Mocha -- **Assertions**: Chai -- **Mocking**: Sinon -- **Test Style**: BDD (Behavior Driven Development) - -## Test Structure - -Each test file follows this structure: - -```typescript -describe("Feature/Router Name", () => { - beforeEach(() => { - // Setup mocks and environment - }); - - afterEach(() => { - // Clean up stubs and restore environment - }); - - describe("Endpoint/Function Name", () => { - it("should handle success case", async () => { - // Arrange: Setup test data and mocks - // Act: Execute the function/endpoint - // Assert: Verify the results - }); - - it("should handle error case", async () => { - // Test error scenarios - }); - }); -}); -``` - -## Mock Strategy - -Tests use comprehensive mocking to isolate units under test: - -1. **Supabase Client**: Mocked query builder pattern -2. **Stream Chat**: Mocked channel operations -3. **S3 Client**: Mocked storage operations -4. **Email Transporter**: Mocked email sending - -This ensures tests run quickly and don't depend on external services. - -## Best Practices - -1. **Isolation**: Each test is independent and doesn't affect others -2. **Clarity**: Test names clearly describe what is being tested -3. **Coverage**: Both happy paths and error cases are tested -4. **Maintainability**: Shared utilities reduce code duplication -5. **Speed**: Mocking ensures tests run in milliseconds - -## Future Improvements - -- Integration tests with real database -- End-to-end API tests -- Performance benchmarks -- Load testing -- Code coverage reporting - -## Contributing - -When adding new endpoints or functionality: - -1. Create tests first (TDD approach recommended) -2. Follow existing test patterns -3. Mock external dependencies -4. Test both success and failure scenarios -5. Ensure tests pass before committing - -## Notes - -- Some lint warnings for `any` types are suppressed with `biome-ignore` comments - these are intentional for test flexibility -- Mock data is defined in `test-utils.ts` for consistency -- Environment variables are mocked in each test file's `beforeEach` hook diff --git a/api/src/__tests__/helpers.test.ts b/api/src/__tests__/helpers.test.ts deleted file mode 100644 index 85274d6..0000000 --- a/api/src/__tests__/helpers.test.ts +++ /dev/null @@ -1,426 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - generateICSFromEvents, - getTabloFileNames, - isTabloAdmin, - isTabloMember, - writeCalendarFileToR2, -} from "../helpers.js"; -import type { EventAndTablo } from "../types.js"; -import { - createMockS3Client, - createMockSupabaseClient, - mockEnvVars, - mockEvent, - mockTablo, - mockUser, -} from "./test-utils.js"; - -describe("Helper Functions", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockS3: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - mockS3 = createMockS3Client(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("generateICSFromEvents", () => { - it("should generate valid ICS content from events", () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: "tablo1", - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Test Event", - description: "Test description", - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: "11:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - ]; - - const icsContent = generateICSFromEvents(events, "Test Calendar"); - - expect(icsContent).to.include("BEGIN:VCALENDAR"); - expect(icsContent).to.include("VERSION:2.0"); - expect(icsContent).to.include("X-WR-CALNAME:Test Calendar"); - expect(icsContent).to.include("BEGIN:VEVENT"); - expect(icsContent).to.include("SUMMARY:Test Event"); - expect(icsContent).to.include("DESCRIPTION:Tablo: Test Tablo"); - expect(icsContent).to.include("END:VEVENT"); - expect(icsContent).to.include("END:VCALENDAR"); - }); - - it("should handle events without end_time", () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: "tablo1", - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Test Event", - description: null, - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: null, - created_by: mockUser.id, - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, - // biome-ignore lint/suspicious/noExplicitAny: Mock event with null end_time - } as any, - ]; - - const icsContent = generateICSFromEvents(events, "Test Calendar"); - - expect(icsContent).to.include("BEGIN:VEVENT"); - expect(icsContent).to.include("SUMMARY:Test Event"); - expect(icsContent).to.include("END:VEVENT"); - }); - - it("should escape special characters in ICS text", () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: "tablo1", - tablo_name: "Test; Tablo,", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Test; Event,", - description: "Test\\description\nwith newline", - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: "11:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - ]; - - const icsContent = generateICSFromEvents(events, "Test Calendar"); - - expect(icsContent).to.include("SUMMARY:Test\\; Event\\,"); - expect(icsContent).to.include( - "DESCRIPTION:Tablo: Test\\; Tablo\\,\\nTest\\\\description\\nwith newline" - ); - }); - - it("should skip events without required fields", () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: "tablo1", - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - // biome-ignore lint/suspicious/noExplicitAny: Testing null title case - title: null as any, - description: null, - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: "11:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - ]; - - const icsContent = generateICSFromEvents(events, "Test Calendar"); - - expect(icsContent).to.include("BEGIN:VCALENDAR"); - expect(icsContent).to.not.include("BEGIN:VEVENT"); - expect(icsContent).to.include("END:VCALENDAR"); - }); - - it("should handle multiple events", () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: "tablo1", - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Event 1", - description: "Description 1", - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: "11:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - { - event_id: "event2", - tablo_id: "tablo1", - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Event 2", - description: "Description 2", - start_date: "2024-01-17", - start_time: "14:00:00", - end_time: "15:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - ]; - - const icsContent = generateICSFromEvents(events, "Test Calendar"); - - const eventCount = (icsContent.match(/BEGIN:VEVENT/g) || []).length; - expect(eventCount).to.equal(2); - expect(icsContent).to.include("SUMMARY:Event 1"); - expect(icsContent).to.include("SUMMARY:Event 2"); - }); - }); - - describe("writeCalendarFileToR2", () => { - it("should write calendar file to R2 successfully", async () => { - const events: EventAndTablo[] = [ - { - event_id: "event1", - tablo_id: mockTablo.id, - tablo_name: "Test Tablo", - tablo_color: "bg-blue-500", - tablo_status: "todo", - title: "Test Event", - description: "Test description", - start_date: "2024-01-16", - start_time: "10:00:00", - end_time: "11:00:00", - // created_by: mockUser.id, - // created_at: "2024-01-01T00:00:00Z", - // deleted_at: null, - }, - ]; - - const eventsBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().resolves({ data: events, error: null }), - }; - - mockSupabase.from.withArgs("events_and_tablos").returns(eventsBuilder); - - mockS3.send.resolves({}); - - await writeCalendarFileToR2(mockS3, mockSupabase, { - token: "test-token", - tabloName: "Test Tablo", - tablo_id: mockTablo.id, - }); - - expect(mockS3.send.calledOnce).to.be.true; - }); - - it("should throw error if events fetch fails", async () => { - const eventsBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon - .stub() - .resolves({ data: null, error: { message: "Database error" } }), - }; - - mockSupabase.from.withArgs("events_and_tablos").returns(eventsBuilder); - - try { - await writeCalendarFileToR2(mockS3, mockSupabase, { - token: "test-token", - tabloName: "Test Tablo", - tablo_id: mockTablo.id, - }); - expect.fail("Should have thrown an error"); - // biome-ignore lint/suspicious/noExplicitAny: Catching error to check message - } catch (error: any) { - expect(error.message).to.equal("Failed to generate events"); - } - }); - }); - - describe("isTabloMember", () => { - it("should return true if user is a member", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call should resolve with data - accessBuilder.eq.onCall(2).resolves({ - data: [{ tablo_id: mockTablo.id, user_id: mockUser.id }], - error: null, - }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isMember = await isTabloMember( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isMember).to.be.true; - }); - - it("should return false if user is not a member", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call should resolve with empty data - accessBuilder.eq.onCall(2).resolves({ data: [], error: null }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isMember = await isTabloMember( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isMember).to.be.false; - }); - - it("should return false if database error occurs", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call should resolve with error - accessBuilder.eq - .onCall(2) - .resolves({ data: null, error: { message: "Database error" } }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isMember = await isTabloMember( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isMember).to.be.false; - }); - }); - - describe("isTabloAdmin", () => { - it("should return true if user is an admin", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call (4th call - onCall(3)) should resolve with data - accessBuilder.eq.onCall(3).resolves({ - data: [ - { tablo_id: mockTablo.id, user_id: mockUser.id, is_admin: true }, - ], - error: null, - }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isAdmin = await isTabloAdmin( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isAdmin).to.be.true; - }); - - it("should return false if user is not an admin", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call should resolve with empty data - accessBuilder.eq.onCall(3).resolves({ data: [], error: null }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isAdmin = await isTabloAdmin( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isAdmin).to.be.false; - }); - - it("should return false if database error occurs", async () => { - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The last eq() call should resolve with error - accessBuilder.eq - .onCall(3) - .resolves({ data: null, error: { message: "Database error" } }); - - mockSupabase.from.withArgs("tablo_access").returns(accessBuilder); - - const isAdmin = await isTabloAdmin( - mockSupabase, - mockTablo.id, - mockUser.id - ); - - expect(isAdmin).to.be.false; - }); - }); - - describe("getTabloFileNames", () => { - it("should return list of file names", async () => { - mockS3.send.resolves({ - Contents: [ - { Key: `${mockTablo.id}/file1.txt` }, - { Key: `${mockTablo.id}/file2.pdf` }, - { Key: `${mockTablo.id}/file3.jpg` }, - ], - }); - - const fileNames = await getTabloFileNames(mockS3, mockTablo.id); - - expect(fileNames).to.deep.equal(["file1.txt", "file2.pdf", "file3.jpg"]); - }); - - it("should return empty array if no files exist", async () => { - mockS3.send.resolves({ - Contents: [], - }); - - const fileNames = await getTabloFileNames(mockS3, mockTablo.id); - - expect(fileNames).to.deep.equal([]); - }); - - it("should filter out invalid file names", async () => { - mockS3.send.resolves({ - Contents: [ - { Key: `${mockTablo.id}/file1.txt` }, - { Key: `${mockTablo.id}/` }, // Empty file name - { Key: `${mockTablo.id}` }, // No file name - ], - }); - - const fileNames = await getTabloFileNames(mockS3, mockTablo.id); - - expect(fileNames).to.deep.equal(["file1.txt"]); - }); - }); -}); diff --git a/api/src/__tests__/middleware.test.ts b/api/src/__tests__/middleware.test.ts deleted file mode 100644 index ba4bb43..0000000 --- a/api/src/__tests__/middleware.test.ts +++ /dev/null @@ -1,179 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - authMiddleware, - r2Middleware, - streamChatMiddleware, - supabaseMiddleware, -} from "../middleware.js"; -import { - createMockContext, - createMockNext, - createMockSupabaseClient, - mockEnvVars, - mockUser, -} from "./test-utils.js"; - -describe("Middleware", () => { - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("authMiddleware", () => { - it("should authenticate valid Bearer token", async () => { - const mockSupabase = createMockSupabaseClient(); - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.req.header.withArgs("Authorization").returns("Bearer valid-token"); - - // Mock successful auth - mockSupabase.auth.getUser.resolves({ - data: { user: mockUser }, - error: null, - }); - - await authMiddleware(mockContext, mockNext); - - expect(mockSupabase.auth.getUser.calledWith("valid-token")).to.be.true; - expect(mockContext.set.calledWith("user", mockUser)).to.be.true; - expect(mockNext.calledOnce).to.be.true; - }); - - it("should return 401 for missing Authorization header", async () => { - const mockSupabase = createMockSupabaseClient(); - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.req.header.withArgs("Authorization").returns(undefined); - mockContext.json.returns({ - error: "Missing or invalid authorization header", - }); - - const result = await authMiddleware(mockContext, mockNext); - - expect(mockNext.called).to.be.false; - expect(result).to.deep.equal({ - error: "Missing or invalid authorization header", - }); - }); - - it("should return 401 for invalid Bearer token format", async () => { - const mockSupabase = createMockSupabaseClient(); - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.req.header.withArgs("Authorization").returns("InvalidFormat"); - mockContext.json.returns({ - error: "Missing or invalid authorization header", - }); - - const result = await authMiddleware(mockContext, mockNext); - - expect(mockNext.called).to.be.false; - expect(result).to.deep.equal({ - error: "Missing or invalid authorization header", - }); - }); - - it("should return 401 for invalid or expired token", async () => { - const mockSupabase = createMockSupabaseClient(); - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.req.header.withArgs("Authorization").returns("Bearer invalid-token"); - - // Mock auth failure - mockSupabase.auth.getUser.resolves({ - data: { user: null }, - error: { message: "Invalid token" }, - }); - - mockContext.json.returns({ error: "Invalid or expired token" }); - - const result = await authMiddleware(mockContext, mockNext); - - expect(mockNext.called).to.be.false; - expect(result).to.deep.equal({ error: "Invalid or expired token" }); - }); - - it("should return 401 when user is null", async () => { - const mockSupabase = createMockSupabaseClient(); - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.req.header.withArgs("Authorization").returns("Bearer valid-token"); - - // Mock auth with null user - mockSupabase.auth.getUser.resolves({ - data: { user: null }, - error: null, - }); - - mockContext.json.returns({ error: "Invalid or expired token" }); - - const result = await authMiddleware(mockContext, mockNext); - - expect(mockNext.called).to.be.false; - expect(result).to.deep.equal({ error: "Invalid or expired token" }); - }); - }); - - describe("supabaseMiddleware", () => { - it("should create and set Supabase client in context", async () => { - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - await supabaseMiddleware(mockContext, mockNext); - - expect(mockContext.set.calledOnce).to.be.true; - const setCall = mockContext.set.getCall(0); - expect(setCall.args[0]).to.equal("supabase"); - expect(setCall.args[1]).to.be.an("object"); - expect(mockNext.calledOnce).to.be.true; - }); - }); - - describe("streamChatMiddleware", () => { - it("should create and set Stream Chat client in context", async () => { - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - await streamChatMiddleware(mockContext, mockNext); - - expect(mockContext.set.calledOnce).to.be.true; - const setCall = mockContext.set.getCall(0); - expect(setCall.args[0]).to.equal("streamServerClient"); - expect(setCall.args[1]).to.be.an("object"); - expect(mockNext.calledOnce).to.be.true; - }); - }); - - describe("r2Middleware", () => { - it("should create and set S3 client in context", async () => { - const mockContext = createMockContext(); - const mockNext = createMockNext(); - - await r2Middleware(mockContext, mockNext); - - expect(mockContext.set.calledOnce).to.be.true; - const setCall = mockContext.set.getCall(0); - expect(setCall.args[0]).to.equal("s3_client"); - expect(setCall.args[1]).to.be.an("object"); - expect(mockNext.calledOnce).to.be.true; - }); - }); -}); diff --git a/api/src/__tests__/public.test.ts b/api/src/__tests__/public.test.ts deleted file mode 100644 index 0264e11..0000000 --- a/api/src/__tests__/public.test.ts +++ /dev/null @@ -1,509 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - createMockContext, - createMockSupabaseClient, - mockEnvVars, - mockEvent, - mockProfile, -} from "./test-utils.js"; - -describe("Public Router", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("GET /slots/:shortUserId/:standardName", () => { - it("should return available slots for valid user and event type", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("shortUserId").returns("testuser"); - mockContext.req.param.withArgs("standardName").returns("meeting-30min"); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const eventType = { - id: "event-type-id", - user_id: mockProfile.id, - standard_name: "meeting-30min", - config: { - name: "30 Minute Meeting", - description: "Standard meeting", - duration: 30, - requiresApproval: false, - }, - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, - }; - - const availability = { - id: "availability-id", - user_id: mockProfile.id, - availability_data: { - 0: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - 1: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - 2: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - 3: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - 4: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - 5: { enabled: false, timeRanges: [] }, - 6: { enabled: false, timeRanges: [] }, - }, - exceptions: [], - }; - - // Mock user lookup - const userBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockProfile, error: null }), - }; - - // Mock event type lookup - const eventTypeBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: eventType, error: null }), - }; - - // Mock availabilities lookup - const availabilityBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: availability, error: null }), - }; - - // Mock events lookup - const eventsBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - gte: sinon.stub().returnsThis(), - lte: sinon.stub().returnsThis(), - is: sinon.stub().resolves({ data: [], error: null }), - }; - - mockSupabase.from.callsFake((table: string) => { - if (table === "profiles") return userBuilder; - if (table === "event_types") return eventTypeBuilder; - if (table === "availabilities") return availabilityBuilder; - if (table === "events") return eventsBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - const shortUserId = c.req.param("shortUserId"); - const standardName = c.req.param("standardName"); - - // Get user - const { data: userData, error: userError } = await supabase - .from("profiles") - .select("*") - .eq("short_user_id", shortUserId) - .single(); - - if (userError || !userData) { - return c.json({ error: "User not found" }, 404); - } - - // Get event type - const { data: eventTypeData, error: eventTypeError } = await supabase - .from("event_types") - .select("*") - .eq("user_id", userData.id) - .eq("standard_name", standardName) - .is("deleted_at", null) - .single(); - - if (eventTypeError || !eventTypeData) { - return c.json({ error: "Event type not found" }, 404); - } - - // Get availabilities - const { error: availabilitiesError } = await supabase - .from("availabilities") - .select("*") - .eq("user_id", userData.id) - .single(); - - if (availabilitiesError) { - return c.json({ error: "Availabilities not found" }, 404); - } - - // Get existing events - const { error: eventsError } = await supabase - .from("events") - .select("*") - .eq("created_by", userData.id) - .gte("start_date", "2024-01-01") - .lte("start_date", "2024-12-31") - .is("deleted_at", null); - - if (eventsError) { - return c.json({ error: "Failed to fetch events" }, 500); - } - - return c.json({ - user: { name: userData.name }, - eventType: eventTypeData.config, - slots: {}, - availableSlots: [], - }); - }; - - const result = await handler(mockContext); - - expect(result.user.name).to.equal(mockProfile.name); - expect(result.eventType.name).to.equal("30 Minute Meeting"); - }); - - it("should return 404 if user not found", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("shortUserId").returns("nonexistent"); - mockContext.req.param.withArgs("standardName").returns("meeting-30min"); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock user lookup with no data - const userBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon - .stub() - .resolves({ data: null, error: { message: "Not found" } }), - }; - - mockSupabase.from.withArgs("profiles").returns(userBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - const shortUserId = c.req.param("shortUserId"); - - const { data: userData, error: userError } = await supabase - .from("profiles") - .select("*") - .eq("short_user_id", shortUserId) - .single(); - - if (userError || !userData) { - return c.json({ error: "User not found" }, 404); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "User not found" }); - }); - - it("should return 404 if event type not found", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("shortUserId").returns("testuser"); - mockContext.req.param.withArgs("standardName").returns("nonexistent"); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock user lookup - const userBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockProfile, error: null }), - }; - - // Mock event type lookup with no data - const eventTypeBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - single: sinon - .stub() - .resolves({ data: null, error: { message: "Not found" } }), - }; - - mockSupabase.from.callsFake((table: string) => { - if (table === "profiles") return userBuilder; - if (table === "event_types") return eventTypeBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - const shortUserId = c.req.param("shortUserId"); - const standardName = c.req.param("standardName"); - - // Get user - const { data: userData, error: userError } = await supabase - .from("profiles") - .select("*") - .eq("short_user_id", shortUserId) - .single(); - - if (userError || !userData) { - return c.json({ error: "User not found" }, 404); - } - - // Get event type - const { data: eventTypeData, error: eventTypeError } = await supabase - .from("event_types") - .select("*") - .eq("user_id", userData.id) - .eq("standard_name", standardName) - .is("deleted_at", null) - .single(); - - if (eventTypeError || !eventTypeData) { - return c.json({ error: "Event type not found" }, 404); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Event type not found" }); - }); - - it("should return 404 if availabilities not found", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("shortUserId").returns("testuser"); - mockContext.req.param.withArgs("standardName").returns("meeting-30min"); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const eventType = { - id: "event-type-id", - user_id: mockProfile.id, - standard_name: "meeting-30min", - config: { - name: "30 Minute Meeting", - description: "Standard meeting", - duration: 30, - requiresApproval: false, - }, - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, - }; - - // Mock user lookup - const userBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockProfile, error: null }), - }; - - // Mock event type lookup - const eventTypeBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: eventType, error: null }), - }; - - // Mock availabilities lookup with error - const availabilityBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon - .stub() - .resolves({ data: null, error: { message: "Not found" } }), - }; - - mockSupabase.from.callsFake((table: string) => { - if (table === "profiles") return userBuilder; - if (table === "event_types") return eventTypeBuilder; - if (table === "availabilities") return availabilityBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - const shortUserId = c.req.param("shortUserId"); - const standardName = c.req.param("standardName"); - - // Get user - const { data: userData, error: userError } = await supabase - .from("profiles") - .select("*") - .eq("short_user_id", shortUserId) - .single(); - - if (userError || !userData) { - return c.json({ error: "User not found" }, 404); - } - - // Get event type - const { data: eventTypeData, error: eventTypeError } = await supabase - .from("event_types") - .select("*") - .eq("user_id", userData.id) - .eq("standard_name", standardName) - .is("deleted_at", null) - .single(); - - if (eventTypeError || !eventTypeData) { - return c.json({ error: "Event type not found" }, 404); - } - - // Get availabilities - const { error: availabilitiesError } = await supabase - .from("availabilities") - .select("*") - .eq("user_id", userData.id) - .single(); - - if (availabilitiesError) { - return c.json({ error: "Availabilities not found" }, 404); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Availabilities not found" }); - }); - - it("should return 500 if events query fails", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("shortUserId").returns("testuser"); - mockContext.req.param.withArgs("standardName").returns("meeting-30min"); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const eventType = { - id: "event-type-id", - user_id: mockProfile.id, - standard_name: "meeting-30min", - config: { - name: "30 Minute Meeting", - description: "Standard meeting", - duration: 30, - requiresApproval: false, - }, - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, - }; - - const availability = { - id: "availability-id", - user_id: mockProfile.id, - availability_data: { - 0: { enabled: true, timeRanges: [{ start: "09:00", end: "17:00" }] }, - }, - exceptions: [], - }; - - // Mock user lookup - const userBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockProfile, error: null }), - }; - - // Mock event type lookup - const eventTypeBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: eventType, error: null }), - }; - - // Mock availabilities lookup - const availabilityBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: availability, error: null }), - }; - - // Mock events lookup with error - const eventsBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - gte: sinon.stub().returnsThis(), - lte: sinon.stub().returnsThis(), - is: sinon - .stub() - .resolves({ data: null, error: { message: "Database error" } }), - }; - - mockSupabase.from.callsFake((table: string) => { - if (table === "profiles") return userBuilder; - if (table === "event_types") return eventTypeBuilder; - if (table === "availabilities") return availabilityBuilder; - if (table === "events") return eventsBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - const shortUserId = c.req.param("shortUserId"); - const standardName = c.req.param("standardName"); - - // Get user - const { data: userData, error: userError } = await supabase - .from("profiles") - .select("*") - .eq("short_user_id", shortUserId) - .single(); - - if (userError || !userData) { - return c.json({ error: "User not found" }, 404); - } - - // Get event type - const { data: eventTypeData, error: eventTypeError } = await supabase - .from("event_types") - .select("*") - .eq("user_id", userData.id) - .eq("standard_name", standardName) - .is("deleted_at", null) - .single(); - - if (eventTypeError || !eventTypeData) { - return c.json({ error: "Event type not found" }, 404); - } - - // Get availabilities - const { error: availabilitiesError } = await supabase - .from("availabilities") - .select("*") - .eq("user_id", userData.id) - .single(); - - if (availabilitiesError) { - return c.json({ error: "Availabilities not found" }, 404); - } - - // Get existing events - const { error: eventsError } = await supabase - .from("events") - .select("*") - .eq("created_by", userData.id) - .gte("start_date", "2024-01-01") - .lte("start_date", "2024-12-31") - .is("deleted_at", null); - - if (eventsError) { - return c.json({ error: "Failed to fetch events" }, 500); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Failed to fetch events" }); - }); - }); -}); diff --git a/api/src/__tests__/tablo.test.ts b/api/src/__tests__/tablo.test.ts deleted file mode 100644 index 71e94c3..0000000 --- a/api/src/__tests__/tablo.test.ts +++ /dev/null @@ -1,1287 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - createMockContext, - createMockS3Client, - createMockStreamChatClient, - createMockSupabaseClient, - createMockTransporter, - mockEnvVars, - mockEvent, - mockProfile, - mockTablo, - mockUser, -} from "./test-utils.js"; - -describe("Tablo Router", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockStreamChat: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockChannel: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockS3: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - const streamMocks = createMockStreamChatClient(); - mockStreamChat = streamMocks.mockStreamChat; - mockChannel = streamMocks.mockChannel; - mockS3 = createMockS3Client(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("POST /create", () => { - it("should create a new tablo with events", async () => { - const mockContext = createMockContext(); - const payload = { - name: "New Tablo", - color: "bg-blue-500", - status: "todo", - events: [ - { - title: "Event 1", - description: "Test event", - start_date: "2024-01-16", - start_time: "10:00", - end_time: "11:00", - }, - ], - }; - - mockContext.req.json.resolves(payload); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock Supabase insert - mockSupabase - .from() - .insert() - .select() - .single.resolves({ data: mockTablo, error: null }); - - // Mock events insert - const eventsBuilder = { - insert: sinon.stub().resolves({ data: [], error: null }), - }; - mockSupabase.from.withArgs("events").returns(eventsBuilder); - - // Create test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const data = await c.req.json(); - - const { data: insertedTablo, error } = await supabase - .from("tablos") - .insert({ - ...data, - owner_id: user.id, - events: undefined, - }) - .select() - .single(); - - if (error || !insertedTablo) { - return c.json( - { error: error?.message || "Failed to create tablo" }, - 500 - ); - } - - const streamServerClient = c.get("streamServerClient"); - const channel = streamServerClient.channel( - "messaging", - insertedTablo.id, - { - name: insertedTablo.name, - created_by_id: user.id, - members: [user.id], - } - ); - await channel.create(); - - if (data.events) { - // biome-ignore lint/suspicious/noExplicitAny: Event type varies - const eventsToInsert = data.events.map((event: any) => ({ - ...event, - tablo_id: insertedTablo.id, - created_by: user.id, - })); - - await supabase.from("events").insert(eventsToInsert); - } - - return c.json({ message: "Tablo created successfully" }); - }; - - const result = await handler(mockContext); - - expect(mockStreamChat.channel.calledOnce).to.be.true; - expect(mockChannel.create.calledOnce).to.be.true; - expect(result).to.deep.equal({ message: "Tablo created successfully" }); - }); - - it("should return 500 if tablo creation fails", async () => { - const mockContext = createMockContext(); - const payload = { - name: "New Tablo", - color: "bg-blue-500", - status: "todo", - }; - - mockContext.req.json.resolves(payload); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock Supabase error - mockSupabase - .from() - .insert() - .select() - .single.resolves({ data: null, error: { message: "Insert failed" } }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const data = await c.req.json(); - - const { error } = await supabase - .from("tablos") - .insert({ - ...data, - owner_id: user.id, - events: undefined, - }) - .select() - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Tablo created successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Insert failed" }); - }); - }); - - describe("POST /create-and-invite", () => { - it("should create tablo and grant access to invited user", async () => { - const mockContext = createMockContext(); - const ownerProfile = { - ...mockProfile, - id: "owner-id", - short_user_id: "owner123", - }; - const invitedProfile = { ...mockProfile, id: "invited-id" }; - - const payload = { - owner_short_id: "owner123", - event: { - title: "Meeting", - description: "Test meeting", - start_date: "2024-01-16", - start_time: "10:00", - end_time: "11:00", - }, - }; - - mockContext.req.json.resolves(payload); - mockContext.get - .withArgs("user") - .returns({ ...mockUser, id: "invited-id" }); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock owner lookup - const ownerBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: ownerProfile, error: null }), - }; - - // Mock invited user lookup - const invitedBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: invitedProfile, error: null }), - }; - - // Mock existing tablo check - const existingTabloBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - limit: sinon.stub().resolves({ data: [], error: null }), - }; - - // Mock tablo creation - const createTabloBuilder = { - insert: sinon.stub().returnsThis(), - select: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockTablo, error: null }), - }; - - // Mock tablo access insert - const accessBuilder = { - insert: sinon.stub().resolves({ error: null }), - }; - - // Mock event insert - const eventBuilder = { - insert: sinon.stub().resolves({ error: null }), - }; - - let callCount = 0; - mockSupabase.from.callsFake((table: string) => { - callCount++; - if (table === "profiles" && callCount === 1) return ownerBuilder; - if (table === "profiles" && callCount === 2) return invitedBuilder; - if (table === "tablos" && callCount === 3) return existingTabloBuilder; - if (table === "tablos" && callCount === 4) return createTabloBuilder; - if (table === "tablo_access") return accessBuilder; - if (table === "events") return eventBuilder; - return createTabloBuilder; - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - const data = await c.req.json(); - - if (!data.owner_short_id) { - return c.json({ error: "owner_id is required" }, 400); - } - - if (!data.event) { - return c.json({ error: "event is required" }, 400); - } - - const { data: ownerData, error: ownerError } = await supabase - .from("profiles") - .select("id, name, email") - .eq("short_user_id", data.owner_short_id) - .single(); - - const { data: invitedUser, error: invitedUserError } = await supabase - .from("profiles") - .select("id, name, email") - .eq("id", user.id) - .single(); - - if (ownerError || !ownerData || invitedUserError || !invitedUser) { - return c.json( - { error: "owner_id or invited_user_id is incorrect" }, - 400 - ); - } - - const ownerId = ownerData.id; - - const { data: existingTablo, error: existingTabloError } = - await supabase - .from("tablos") - .select( - ` - id, - name, - owner_id, - tablo_access!inner(user_id) - ` - ) - .eq("owner_id", ownerId) - .eq("tablo_access.user_id", user.id) - .is("deleted_at", null) - .limit(1); - - if (existingTabloError) { - return c.json({ error: existingTabloError.message }, 500); - } - - let tabloData: typeof mockTablo; - - if (!existingTablo.length) { - const { data: insertedTablo, error } = await supabase - .from("tablos") - .insert({ - name: `${invitedUser.name || "Invité"} / ${ - ownerData.name || "Propriétaire" - }`, - color: "bg-blue-500", - status: "todo", - owner_id: ownerId, - }) - .select() - .single(); - - if (error || !insertedTablo) { - return c.json( - { error: error?.message || "Failed to create tablo" }, - 500 - ); - } - - tabloData = insertedTablo; - } else { - tabloData = existingTablo[0]; - } - - const { error: tabloAccessError } = await supabase - .from("tablo_access") - .insert({ - tablo_id: tabloData.id, - user_id: user.id, - is_admin: false, - is_active: true, - granted_by: ownerId, - }); - - if (tabloAccessError) { - return c.json({ error: tabloAccessError.message }, 500); - } - - const channel = streamServerClient.channel("messaging", tabloData.id, { - name: tabloData.name, - created_by_id: ownerId, - members: [ownerId, user.id], - }); - await channel.create(); - - await channel.sendMessage({ - text: `🎉 Bienvenue dans votre nouveau tablo "${tabloData.name}" !`, - user_id: ownerId, - }); - - await supabase.from("events").insert({ - ...data.event, - tablo_id: tabloData.id, - created_by: ownerId, - }); - - return c.json({ id: tabloData.id }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ id: mockTablo.id }); - expect(mockChannel.create.calledOnce).to.be.true; - expect(mockChannel.sendMessage.calledOnce).to.be.true; - }); - - it("should return 400 if owner_short_id is missing", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ event: {} }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const data = await c.req.json(); - - if (!data.owner_short_id) { - return c.json({ error: "owner_id is required" }, 400); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "owner_id is required" }); - }); - - it("should return 400 if event is missing", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ owner_short_id: "owner123" }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const data = await c.req.json(); - - if (!data.owner_short_id) { - return c.json({ error: "owner_id is required" }, 400); - } - - if (!data.event) { - return c.json({ error: "event is required" }, 400); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "event is required" }); - }); - }); - - describe("PATCH /update", () => { - it("should update tablo successfully", async () => { - const mockContext = createMockContext(); - const updateData = { - id: mockTablo.id, - name: "Updated Tablo Name", - }; - - mockContext.req.json.resolves(updateData); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - const updatedTablo = { ...mockTablo, name: "Updated Tablo Name" }; - - mockSupabase - .from() - .update() - .eq() - .select() - .single.resolves({ data: updatedTablo, error: null }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - const data = await c.req.json(); - - const { id, ...tablo } = data; - - const { data: update, error } = await supabase - .from("tablos") - .update(tablo) - .eq("id", id) - .eq("owner_id", user.id) - .select() - .single(); - - if (error || !update) { - return c.json({ error: error?.message || "Failed to update" }, 500); - } - - const isUpdatingName = - tablo.name !== undefined && tablo.name !== update.name; - - if (isUpdatingName) { - const channel = streamServerClient.channel("messaging", update.id); - try { - await channel.update({ - name: update.name, - }); - } catch (error) { - console.error("error updating channel", error); - } - } - - return c.json({ message: "Tablo updated successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Tablo updated successfully" }); - }); - - it("should return 500 if update fails", async () => { - const mockContext = createMockContext(); - const updateData = { - id: mockTablo.id, - name: "Updated Name", - }; - - mockContext.req.json.resolves(updateData); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - mockSupabase - .from() - .update() - .eq() - .select() - .single.resolves({ data: null, error: { message: "Update failed" } }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const data = await c.req.json(); - - const { id, ...tablo } = data; - - const { error } = await supabase - .from("tablos") - .update(tablo) - .eq("id", id) - .eq("owner_id", user.id) - .select() - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Tablo updated successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Update failed" }); - }); - }); - - describe("DELETE /delete", () => { - it("should soft delete tablo successfully", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ id: mockTablo.id }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - const updateBuilder = { - update: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - updateBuilder.eq.onCall(1).resolves({ error: null }); - - mockSupabase.from.withArgs("tablos").returns(updateBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - const data = await c.req.json(); - - const { id } = data; - - const { error } = await supabase - .from("tablos") - .update({ deleted_at: new Date().toISOString() }) - .eq("id", id) - .eq("owner_id", user.id); - - if (error) { - return c.json({ error: error.message }, 500); - } - - const channel = streamServerClient.channel("messaging", id); - try { - await channel.delete(); - } catch (error) { - console.error("error deleting channel", error); - } - - return c.json({ message: "Tablo deleted successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Tablo deleted successfully" }); - expect(mockChannel.delete.calledOnce).to.be.true; - }); - - it("should return 500 if delete fails", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ id: mockTablo.id }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const updateBuilder = { - update: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - updateBuilder.eq - .onCall(1) - .resolves({ error: { message: "Delete failed" } }); - - mockSupabase.from.withArgs("tablos").returns(updateBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const data = await c.req.json(); - - const { id } = data; - - const { error } = await supabase - .from("tablos") - .update({ deleted_at: new Date().toISOString() }) - .eq("id", id) - .eq("owner_id", user.id); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Tablo deleted successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Delete failed" }); - }); - }); - - describe("POST /invite", () => { - it("should send invite successfully", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ - email: "invitee@example.com", - tablo_id: mockTablo.id, - }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock tablo lookup - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: mockTablo, error: null }); - - // Mock invite insert - const inviteBuilder = { - insert: sinon.stub().resolves({ error: null }), - }; - mockSupabase.from.withArgs("tablo_invites").returns(inviteBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const sender = c.get("user"); - const supabase = c.get("supabase"); - const { tablo_id, email } = await c.req.json(); - - const { data, error: tabloError } = await supabase - .from("tablos") - .select("*") - .eq("id", tablo_id) - .single(); - - if (tabloError) { - return c.json({ error: tabloError.message }, 500); - } - - if (!data) { - return c.json({ error: "Tablo not found" }, 404); - } - - if (data.owner_id !== sender.id) { - return c.json( - { error: "You are not allowed to invite users to this tablo" }, - 400 - ); - } - - const { error } = await supabase.from("tablo_invites").insert({ - invited_email: email, - tablo_id: tablo_id, - invited_by: sender.id, - invite_token: "mock-token", - }); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ - message: "Invite sent successfully", - }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Invite sent successfully" }); - }); - - it("should return 404 if tablo not found", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ - email: "invitee@example.com", - tablo_id: "non-existent", - }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: null, error: null }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _sender = c.get("user"); - const supabase = c.get("supabase"); - const { tablo_id } = await c.req.json(); - - const { data, error: tabloError } = await supabase - .from("tablos") - .select("*") - .eq("id", tablo_id) - .single(); - - if (tabloError) { - return c.json({ error: tabloError.message }, 500); - } - - if (!data) { - return c.json({ error: "Tablo not found" }, 404); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Tablo not found" }); - }); - - it("should return 400 if user is not owner", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ - email: "invitee@example.com", - tablo_id: mockTablo.id, - }); - mockContext.get - .withArgs("user") - .returns({ ...mockUser, id: "different-user" }); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: mockTablo, error: null }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const sender = c.get("user"); - const supabase = c.get("supabase"); - const { tablo_id } = await c.req.json(); - - const { data, error: tabloError } = await supabase - .from("tablos") - .select("*") - .eq("id", tablo_id) - .single(); - - if (tabloError) { - return c.json({ error: tabloError.message }, 500); - } - - if (!data) { - return c.json({ error: "Tablo not found" }, 404); - } - - if (data.owner_id !== sender.id) { - return c.json( - { error: "You are not allowed to invite users to this tablo" }, - 400 - ); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ - error: "You are not allowed to invite users to this tablo", - }); - }); - }); - - describe("POST /join", () => { - it("should join tablo successfully with valid token", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ token: "valid-token" }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - const inviteData = { - id: "invite-id", - tablo_id: mockTablo.id, - invited_by: "inviter-id", - }; - - // Mock invite lookup - const inviteSelectBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: inviteData, error: null }), - }; - - // Mock tablo access insert - const accessBuilder = { - insert: sinon.stub().resolves({ error: null }), - }; - - // Mock invite delete - const deleteBuilder = { - delete: sinon.stub().returnsThis(), - eq: sinon.stub().resolves({ error: null }), - }; - - let callCount = 0; - mockSupabase.from.callsFake((table: string) => { - callCount++; - if (table === "tablo_invites" && callCount === 1) { - return inviteSelectBuilder; - } - if (table === "tablo_access") return accessBuilder; - if (table === "tablo_invites" && callCount > 1) return deleteBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const { token } = await c.req.json(); - - const joiner = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - - const { data: inviteData, error } = await supabase - .from("tablo_invites") - .select("id, tablo_id, invited_by") - .eq("invite_token", token) - .eq("invited_email", joiner.email) - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - if (!inviteData) { - return c.json({ error: "Invalid token or email" }, 400); - } - - const { id: invite_id, tablo_id, invited_by } = inviteData; - - const { error: tabloAccessError } = await supabase - .from("tablo_access") - .insert({ - tablo_id, - user_id: joiner.id, - is_admin: false, - is_active: true, - granted_by: invited_by, - }); - - if (tabloAccessError) { - return c.json({ error: tabloAccessError.message }, 500); - } - - await supabase.from("tablo_invites").delete().eq("id", invite_id); - - const channel = streamServerClient.channel("messaging", tablo_id); - await channel.addMembers([joiner.id]); - - return c.json({ message: "Tablo joined successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Tablo joined successfully" }); - expect(mockChannel.addMembers.calledOnce).to.be.true; - }); - - it("should return 400 for invalid token", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ token: "invalid-token" }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: null, error: null }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const { token } = await c.req.json(); - const joiner = c.get("user"); - const supabase = c.get("supabase"); - - const { data: inviteData, error } = await supabase - .from("tablo_invites") - .select("id, tablo_id, invited_by") - .eq("invite_token", token) - .eq("invited_email", joiner.email) - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - if (!inviteData) { - return c.json({ error: "Invalid token or email" }, 400); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Invalid token or email" }); - }); - }); - - describe("GET /members/:tablo_id", () => { - it("should return tablo members", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tablo_id").returns(mockTablo.id); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const members = [ - { is_admin: true, profiles: { id: "user1", name: "User 1" } }, - { is_admin: false, profiles: { id: "user2", name: "User 2" } }, - ]; - - // Mock user_tablos check - const userTablosBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The second eq() call should resolve - userTablosBuilder.eq - .onCall(1) - .resolves({ data: [mockTablo], error: null }); - - // Mock tablo_access query - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The second eq() call should resolve - accessBuilder.eq.onCall(1).resolves({ data: members, error: null }); - - mockSupabase.from.callsFake((table: string) => { - if (table === "user_tablos") return userTablosBuilder; - if (table === "tablo_access") return accessBuilder; - return mockSupabase.from(); - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const tablo_id = c.req.param("tablo_id"); - - const { data: tabloData, error: tabloError } = await supabase - .from("user_tablos") - .select("*") - .eq("id", tablo_id) - .eq("user_id", user.id); - - if (!tabloData || tabloData.length === 0) { - return c.json({ error: "You are not a member of this tablo" }, 403); - } - - if (tabloError) { - return c.json({ error: "Internal server error" }, 500); - } - - const { data, error } = await supabase - .from("tablo_access") - .select("is_admin, profiles(id, name)") - .eq("tablo_id", tablo_id) - .eq("is_active", true); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ - // biome-ignore lint/suspicious/noExplicitAny: Member type from DB - members: data.map((member: any) => ({ - ...member.profiles, - is_admin: member.is_admin, - })), - }); - }; - - const result = await handler(mockContext); - - expect(result.members).to.have.length(2); - expect(result.members[0]).to.deep.equal({ - id: "user1", - name: "User 1", - is_admin: true, - }); - }); - - it("should return 403 if user is not a member", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tablo_id").returns(mockTablo.id); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const userTablosBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: [], error: null }), - }; - - mockSupabase.from.withArgs("user_tablos").returns(userTablosBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const tablo_id = c.req.param("tablo_id"); - - const { data: tabloData } = await supabase - .from("user_tablos") - .select("*") - .eq("id", tablo_id) - .eq("user_id", user.id); - - if (!tabloData || tabloData.length === 0) { - return c.json({ error: "You are not a member of this tablo" }, 403); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ - error: "You are not a member of this tablo", - }); - }); - }); - - describe("POST /leave", () => { - it("should leave tablo successfully", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ tablo_id: mockTablo.id }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - const updateBuilder = { - update: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - }; - // The second eq() call should resolve - updateBuilder.eq.onCall(1).resolves({ error: null }); - - mockSupabase.from.withArgs("tablo_access").returns(updateBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - const { tablo_id } = await c.req.json(); - - const channel = streamServerClient.channel("messaging", tablo_id); - await channel.removeMembers([user.id]); - - const { error } = await supabase - .from("tablo_access") - .update({ is_active: false }) - .eq("tablo_id", tablo_id) - .eq("user_id", user.id); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Tablo left successfully" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Tablo left successfully" }); - expect(mockChannel.removeMembers.calledOnce).to.be.true; - }); - }); - - describe("POST /webcal/generate-url", () => { - it("should generate webcal URL for tablo", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ tablo_id: mockTablo.id }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock tablo lookup - const tabloBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: mockTablo, error: null }), - }; - - // Mock access check - const accessBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon - .stub() - .resolves({ data: { id: mockTablo.id }, error: null }), - }; - - // Mock subscription check (no existing subscription) - const subscriptionBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - single: sinon.stub().resolves({ data: null, error: null }), - }; - - // Mock subscription insert - const insertBuilder = { - insert: sinon.stub().resolves({ error: null }), - }; - - let callCount = 0; - mockSupabase.from.callsFake((table: string) => { - callCount++; - if (table === "tablos") return tabloBuilder; - if (table === "user_tablos") return accessBuilder; - if (table === "calendar_subscriptions" && callCount === 3) - return subscriptionBuilder; - if (table === "calendar_subscriptions" && callCount === 4) - return insertBuilder; - if (table === "events_and_tablos") { - return { - select: sinon.stub().returnsThis(), - eq: sinon.stub().resolves({ data: [], error: null }), - }; - } - return mockSupabase.from(); - }); - - mockS3.send.resolves({}); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - - const { tablo_id } = await c.req.json(); - - if (tablo_id === null) { - return c.json({ error: "All tablos are not supported" }, 400); - } - - const { data: tabloData, error: tabloError } = await supabase - .from("tablos") - .select("name") - .eq("id", tablo_id) - .single(); - - if (tabloError || !tabloData) { - return c.json({ error: "Tablo not found" }, 404); - } - - const { data: accessData, error: accessError } = await supabase - .from("user_tablos") - .select("id") - .eq("id", tablo_id) - .eq("user_id", user.id) - .single(); - - if (accessError || !accessData) { - return c.json({ error: "Access denied to this tablo" }, 403); - } - - const { data: subscriptionData } = await supabase - .from("calendar_subscriptions") - .select("*") - .eq("tablo_id", tablo_id) - .single(); - - if (subscriptionData) { - const token = subscriptionData.token; - const tabloName = tabloData.name.replace(/ /g, "_"); - const httpUrl = `https://calendar.xtablo.com/${token}/${tabloName}.ics`; - - return c.json({ - webcal_url: null, - http_url: httpUrl, - }); - } - - const token = "mock-token"; - - const { error } = await supabase.from("calendar_subscriptions").insert({ - tablo_id: tablo_id, - token: token, - }); - - if (error) { - return c.json({ error: "Failed to generate token" }, 500); - } - - const tabloName = tabloData.name.replace(/ /g, "_"); - const httpUrl = `https://calendar.xtablo.com/${token}/${tabloName}.ics`; - - return c.json({ - webcal_url: null, - http_url: httpUrl, - }); - }; - - const result = await handler(mockContext); - - expect(result.http_url).to.include("https://calendar.xtablo.com/"); - expect(result.http_url).to.include(".ics"); - }); - - it("should return 404 if tablo not found", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ tablo_id: "non-existent" }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: null, error: { message: "Not found" } }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _user = c.get("user"); - const supabase = c.get("supabase"); - - const { tablo_id } = await c.req.json(); - - const { data: tabloData, error: tabloError } = await supabase - .from("tablos") - .select("name") - .eq("id", tablo_id) - .single(); - - if (tabloError || !tabloData) { - return c.json({ error: "Tablo not found" }, 404); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Tablo not found" }); - }); - }); -}); diff --git a/api/src/__tests__/tablo_data.test.ts b/api/src/__tests__/tablo_data.test.ts deleted file mode 100644 index 26f3ae0..0000000 --- a/api/src/__tests__/tablo_data.test.ts +++ /dev/null @@ -1,497 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - createMockContext, - createMockS3Client, - createMockSupabaseClient, - mockEnvVars, - mockTablo, - mockUser, -} from "./test-utils.js"; - -describe("Tablo Data Router", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockS3: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - mockS3 = createMockS3Client(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("GET /:tabloId/filenames", () => { - it("should return list of filenames for tablo member", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock tablo access check - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: [{ tablo_id: mockTablo.id }], error: null }); - - // Mock S3 list objects - mockS3.send.resolves({ - Contents: [ - { Key: `${mockTablo.id}/file1.txt` }, - { Key: `${mockTablo.id}/file2.pdf` }, - { Key: `${mockTablo.id}/file3.jpg` }, - ], - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const s3_client = c.get("s3_client"); - - try { - const result = await s3_client.send({}); - const fileNames = result.Contents?.map( - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - (content: any) => content.Key?.split("/")[1] - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - ).filter((content: any) => content?.length && content.length > 0); - return c.json({ fileNames: fileNames || [] }); - } catch { - return c.json({ error: "Failed to fetch tablo files" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result.fileNames).to.deep.equal([ - "file1.txt", - "file2.pdf", - "file3.jpg", - ]); - }); - - it("should return empty array if no files exist", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 list objects with no contents - mockS3.send.resolves({ - Contents: [], - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const s3_client = c.get("s3_client"); - - try { - const result = await s3_client.send({}); - const fileNames = result.Contents?.map( - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - (content: any) => content.Key?.split("/")[1] - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - ).filter((content: any) => content?.length && content.length > 0); - return c.json({ fileNames: fileNames || [] }); - } catch { - return c.json({ error: "Failed to fetch tablo files" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result.fileNames).to.deep.equal([]); - }); - - it("should return 500 if S3 operation fails", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 error - mockS3.send.rejects(new Error("S3 error")); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const s3_client = c.get("s3_client"); - - try { - const result = await s3_client.send({}); - const fileNames = result.Contents?.map( - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - (content: any) => content.Key?.split("/")[1] - // biome-ignore lint/suspicious/noExplicitAny: S3 Contents type is complex - ).filter((content: any) => content?.length && content.length > 0); - return c.json({ fileNames: fileNames || [] }); - } catch { - return c.json({ error: "Failed to fetch tablo files" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Failed to fetch tablo files" }); - }); - }); - - describe("GET /:tabloId/:fileName", () => { - it("should return file content for tablo member", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - const fileContent = "Hello, World!"; - const mockBody = { - transformToString: sinon.stub().resolves(fileContent), - }; - - // Mock S3 get object - mockS3.send.resolves({ - Body: mockBody, - ContentType: "text/plain", - LastModified: new Date("2024-01-01"), - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - const response = await s3_client.send({}); - - if (!response.Body) { - return c.json({ error: "File not found" }, 404); - } - - const content = await response.Body.transformToString(); - - return c.json({ - fileName, - content, - contentType: response.ContentType, - lastModified: response.LastModified, - }); - } catch { - return c.json({ error: "Failed to fetch file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result.fileName).to.equal("test.txt"); - expect(result.content).to.equal(fileContent); - expect(result.contentType).to.equal("text/plain"); - }); - - it("should return 404 if file does not exist", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("nonexistent.txt"); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 get object with no body - mockS3.send.resolves({ - Body: null, - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - const response = await s3_client.send({}); - - if (!response.Body) { - return c.json({ error: "File not found" }, 404); - } - - const content = await response.Body.transformToString(); - - return c.json({ - fileName, - content, - contentType: response.ContentType, - lastModified: response.LastModified, - }); - } catch { - return c.json({ error: "Failed to fetch file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "File not found" }); - }); - - it("should return 500 if S3 operation fails", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 error - mockS3.send.rejects(new Error("S3 error")); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - const response = await s3_client.send({}); - - if (!response.Body) { - return c.json({ error: "File not found" }, 404); - } - - const content = await response.Body.transformToString(); - - return c.json({ - fileName, - content, - contentType: response.ContentType, - lastModified: response.LastModified, - }); - } catch { - return c.json({ error: "Failed to fetch file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Failed to fetch file" }); - }); - }); - - describe("POST /:tabloId/:fileName", () => { - it("should upload file successfully for tablo admin", async () => { - const mockContext = createMockContext(); - const fileContent = "Hello, World!"; - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.req.json.resolves({ - content: fileContent, - contentType: "text/plain", - }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 put object - mockS3.send.resolves({}); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - const body = await c.req.json(); - const { content } = body; - - if (!content) { - return c.json({ error: "Content is required" }, 400); - } - - await s3_client.send({}); - - return c.json({ - message: "File uploaded successfully", - fileName, - tabloId, - }); - } catch { - return c.json({ error: "Failed to upload file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ - message: "File uploaded successfully", - fileName: "test.txt", - tabloId: mockTablo.id, - }); - expect(mockS3.send.calledOnce).to.be.true; - }); - - it("should return 400 if content is missing", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.req.json.resolves({ - contentType: "text/plain", - }); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const _tabloId = c.req.param("tabloId"); - const _fileName = c.req.param("fileName"); - - try { - const body = await c.req.json(); - const { content } = body; - - if (!content) { - return c.json({ error: "Content is required" }, 400); - } - - return c.json({ message: "Success" }); - } catch { - return c.json({ error: "Failed to upload file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Content is required" }); - }); - - it("should return 500 if S3 upload fails", async () => { - const mockContext = createMockContext(); - const fileContent = "Hello, World!"; - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.req.json.resolves({ - content: fileContent, - contentType: "text/plain", - }); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 error - mockS3.send.rejects(new Error("S3 error")); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - const body = await c.req.json(); - const { content } = body; - - if (!content) { - return c.json({ error: "Content is required" }, 400); - } - - await s3_client.send({}); - - return c.json({ - message: "File uploaded successfully", - fileName, - tabloId, - }); - } catch { - return c.json({ error: "Failed to upload file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Failed to upload file" }); - }); - }); - - describe("DELETE /:tabloId/:fileName", () => { - it("should delete file successfully for tablo admin", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 delete object - mockS3.send.resolves({}); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - await s3_client.send({}); - - return c.json({ - message: "File deleted successfully", - fileName, - tabloId, - }); - } catch { - return c.json({ error: "Failed to delete file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ - message: "File deleted successfully", - fileName: "test.txt", - tabloId: mockTablo.id, - }); - expect(mockS3.send.calledOnce).to.be.true; - }); - - it("should return 500 if S3 delete fails", async () => { - const mockContext = createMockContext(); - mockContext.req.param.withArgs("tabloId").returns(mockTablo.id); - mockContext.req.param.withArgs("fileName").returns("test.txt"); - mockContext.get.withArgs("s3_client").returns(mockS3); - - // Mock S3 error - mockS3.send.rejects(new Error("S3 error")); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const tabloId = c.req.param("tabloId"); - const fileName = c.req.param("fileName"); - const s3_client = c.get("s3_client"); - - try { - await s3_client.send({}); - - return c.json({ - message: "File deleted successfully", - fileName, - tabloId, - }); - } catch { - return c.json({ error: "Failed to delete file" }, 500); - } - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Failed to delete file" }); - }); - }); -}); diff --git a/api/src/__tests__/tasks.test.ts b/api/src/__tests__/tasks.test.ts deleted file mode 100644 index 3f3fbe1..0000000 --- a/api/src/__tests__/tasks.test.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { expect } from "chai"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { - createMockContext, - createMockS3Client, - createMockSupabaseClient, - mockEnvVars, -} from "./test-utils.js"; - -describe("Tasks Router", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockS3: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - mockS3 = createMockS3Client(); - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("POST /sync-calendars", () => { - it("should sync all calendars successfully with valid auth", async () => { - const mockContext = createMockContext(); - mockContext.req.header - .withArgs("Authorization") - .returns(`Basic ${process.env.SYNC_CALS_SECRET}`); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - const subscriptions = [ - { - token: "token1", - tablo_id: "tablo1", - tablos: { name: "Tablo 1" }, - }, - { - token: "token2", - tablo_id: "tablo2", - tablos: { name: "Tablo 2" }, - }, - ]; - - // Mock calendar subscriptions query - const subscriptionBuilder = { - select: sinon.stub().resolves({ data: subscriptions, error: null }), - }; - - mockSupabase.from - .withArgs("calendar_subscriptions") - .returns(subscriptionBuilder); - - // Mock events query for each tablo - const eventsBuilder = { - select: sinon.stub().returnsThis(), - eq: sinon.stub().resolves({ data: [], error: null }), - }; - - mockSupabase.from.withArgs("events_and_tablos").returns(eventsBuilder); - - // Mock S3 send - mockS3.send.resolves({}); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - if ( - c.req.header("Authorization") !== - `Basic ${process.env.SYNC_CALS_SECRET}` - ) { - return c.json({ error: "Unauthorized" }, 401); - } - - const { error } = await supabase - .from("calendar_subscriptions") - .select("token, tablo_id, tablos(name)"); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Synced calendars" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "Synced calendars" }); - }); - - it("should return 401 if authorization header is missing", async () => { - const mockContext = createMockContext(); - mockContext.req.header.withArgs("Authorization").returns(undefined); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - if ( - c.req.header("Authorization") !== - `Basic ${process.env.SYNC_CALS_SECRET}` - ) { - return c.json({ error: "Unauthorized" }, 401); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Unauthorized" }); - }); - - it("should return 401 if authorization header is invalid", async () => { - const mockContext = createMockContext(); - mockContext.req.header - .withArgs("Authorization") - .returns("Basic invalid-secret"); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - if ( - c.req.header("Authorization") !== - `Basic ${process.env.SYNC_CALS_SECRET}` - ) { - return c.json({ error: "Unauthorized" }, 401); - } - - return c.json({ message: "Success" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Unauthorized" }); - }); - - it("should return 500 if database error occurs", async () => { - const mockContext = createMockContext(); - mockContext.req.header - .withArgs("Authorization") - .returns(`Basic ${process.env.SYNC_CALS_SECRET}`); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock calendar subscriptions query with error - const subscriptionBuilder = { - select: sinon - .stub() - .resolves({ data: null, error: { message: "Database error" } }), - }; - - mockSupabase.from - .withArgs("calendar_subscriptions") - .returns(subscriptionBuilder); - - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const supabase = c.get("supabase"); - if ( - c.req.header("Authorization") !== - `Basic ${process.env.SYNC_CALS_SECRET}` - ) { - return c.json({ error: "Unauthorized" }, 401); - } - - const { error } = await supabase - .from("calendar_subscriptions") - .select("token, tablo_id, tablos(name)"); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ message: "Synced calendars" }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Database error" }); - }); - }); -}); diff --git a/api/src/__tests__/test-utils.ts b/api/src/__tests__/test-utils.ts deleted file mode 100644 index 9b0384d..0000000 --- a/api/src/__tests__/test-utils.ts +++ /dev/null @@ -1,203 +0,0 @@ -import type { S3Client } from "@aws-sdk/client-s3"; -import type { SupabaseClient } from "@supabase/supabase-js"; -import { expect } from "chai"; -import type { SinonStub, SinonStubbedInstance } from "sinon"; -import sinon from "sinon"; -import type { StreamChat } from "stream-chat"; - -// Mock user for testing -export const mockUser = { - id: "test-user-id", - email: "test@example.com", - aud: "authenticated", - role: "authenticated", - created_at: "2024-01-01T00:00:00Z", - updated_at: "2024-01-01T00:00:00Z", - app_metadata: {}, - user_metadata: {}, -}; - -export const mockProfile = { - id: "test-user-id", - name: "Test User", - email: "test@example.com", - short_user_id: "testuser", - is_temporary: false, - created_at: "2024-01-01T00:00:00Z", -}; - -export const mockTablo = { - id: "test-tablo-id", - name: "Test Tablo", - color: "bg-blue-500", - status: "todo", - owner_id: "test-user-id", - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, -}; - -export const mockEvent = { - id: "test-event-id", - tablo_id: "test-tablo-id", - title: "Test Event", - description: "Test description", - start_date: "2024-01-16", - start_time: "10:00", - end_time: "11:00", - created_by: "test-user-id", - created_at: "2024-01-01T00:00:00Z", - deleted_at: null, -}; - -// Create a mock Supabase client -export function createMockSupabaseClient(): SupabaseClient { - const mockSupabase = { - auth: { - getUser: sinon.stub(), - signUp: sinon.stub(), - signIn: sinon.stub(), - }, - from: sinon.stub(), - }; - - // Setup default behavior for from() which returns a query builder - const createQueryBuilder = () => ({ - select: sinon.stub().returnsThis(), - insert: sinon.stub().returnsThis(), - update: sinon.stub().returnsThis(), - delete: sinon.stub().returnsThis(), - eq: sinon.stub().returnsThis(), - neq: sinon.stub().returnsThis(), - gt: sinon.stub().returnsThis(), - gte: sinon.stub().returnsThis(), - lt: sinon.stub().returnsThis(), - lte: sinon.stub().returnsThis(), - is: sinon.stub().returnsThis(), - in: sinon.stub().returnsThis(), - single: sinon.stub(), - limit: sinon.stub().returnsThis(), - order: sinon.stub().returnsThis(), - }); - - mockSupabase.from.returns(createQueryBuilder()); - - return mockSupabase as unknown as SupabaseClient; -} - -// Create a mock Stream Chat client -export function createMockStreamChatClient(): { - mockStreamChat: StreamChat; - mockChannel: ReturnType; -} { - const mockChannel = { - create: sinon.stub().resolves(), - update: sinon.stub().resolves(), - delete: sinon.stub().resolves(), - addMembers: sinon.stub().resolves(), - removeMembers: sinon.stub().resolves(), - sendMessage: sinon.stub().resolves(), - }; - - const mockStreamChat = { - upsertUser: sinon.stub().resolves(), - createToken: sinon.stub().returns("mock-stream-token"), - channel: sinon.stub().returns(mockChannel), - }; - - return { - mockStreamChat: mockStreamChat as unknown as StreamChat, - mockChannel: mockChannel as unknown as ReturnType, - }; -} - -// Create a mock S3 client -export function createMockS3Client(): S3Client { - const mockS3 = { - send: sinon.stub(), - }; - - return mockS3 as unknown as S3Client; -} - -// Create a mock transporter -export function createMockTransporter(): { sendMail: SinonStub } { - return { - sendMail: sinon.stub().resolves({ messageId: "mock-message-id" }), - }; -} - -// Helper to create a mock Hono context -export function createMockContext(overrides: Record = {}) { - const context = { - req: { - json: sinon.stub(), - header: sinon.stub(), - param: sinon.stub(), - }, - json: sinon.stub().returnsArg(0), - get: sinon.stub(), - set: sinon.stub(), - ...overrides, - }; - - // biome-ignore lint/suspicious/noExplicitAny: Mock context needs flexibility - return context as any; -} - -// Helper to create a mock next function -export function createMockNext() { - return sinon.stub().resolves(); -} - -// Helper to reset all stubs -// biome-ignore lint/suspicious/noExplicitAny: Flexible stub reset utility -export function resetAllStubs(...stubs: any[]) { - stubs.forEach((stub) => { - if (stub && typeof stub.reset === "function") { - stub.reset(); - } else if (stub && typeof stub === "object") { - // biome-ignore lint/suspicious/noExplicitAny: Need to check nested values - Object.values(stub).forEach((value: any) => { - if (value && typeof value.reset === "function") { - value.reset(); - } - }); - } - }); -} - -// Helper to verify stub was called with specific args -// biome-ignore lint/suspicious/noExplicitAny: Flexible argument checking -export function assertCalledWith(stub: SinonStub, ...args: any[]) { - expect(stub.calledWith(...args)).to.be.true; -} - -// Helper to verify stub was called once -export function assertCalledOnce(stub: SinonStub) { - expect(stub.calledOnce).to.be.true; -} - -// Helper to verify stub was not called -export function assertNotCalled(stub: SinonStub) { - expect(stub.called).to.be.false; -} - -// Mock environment variables -export function mockEnvVars() { - const originalEnv = { ...process.env }; - - process.env.SUPABASE_URL = "https://test.supabase.co"; - process.env.SUPABASE_SERVICE_ROLE_KEY = "test-service-role-key"; - process.env.STREAM_CHAT_API_KEY = "test-stream-key"; - process.env.STREAM_CHAT_API_SECRET = "test-stream-secret"; - process.env.R2_ACCOUNT_ID = "test-r2-account"; - process.env.R2_ACCESS_KEY_ID = "test-r2-access-key"; - process.env.R2_SECRET_ACCESS_KEY = "test-r2-secret"; - process.env.NODE_ENV = "test"; - process.env.FRONTEND_URL = "https://app.test.com"; - process.env.SYNC_CALS_SECRET = "test-sync-secret"; - - return () => { - process.env = originalEnv; - }; -} diff --git a/api/src/__tests__/user.test.ts b/api/src/__tests__/user.test.ts deleted file mode 100644 index ebce978..0000000 --- a/api/src/__tests__/user.test.ts +++ /dev/null @@ -1,337 +0,0 @@ -import { expect } from "chai"; -import { Hono } from "hono"; -import { afterEach, beforeEach, describe, it } from "mocha"; -import sinon from "sinon"; -import { userRouter } from "../user.js"; -import { - createMockContext, - createMockNext, - createMockStreamChatClient, - createMockSupabaseClient, - createMockTransporter, - mockEnvVars, - mockProfile, - mockUser, - resetAllStubs, -} from "./test-utils.js"; - -describe("User Router", () => { - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockSupabase: any; - // biome-ignore lint/suspicious/noExplicitAny: Mock client types - let mockStreamChat: any; - let restoreEnv: () => void; - - beforeEach(() => { - restoreEnv = mockEnvVars(); - mockSupabase = createMockSupabaseClient(); - const streamMocks = createMockStreamChatClient(); - mockStreamChat = streamMocks.mockStreamChat; - }); - - afterEach(() => { - sinon.restore(); - restoreEnv(); - }); - - describe("POST /sign-up-to-stream", () => { - it("should successfully sign up user to Stream Chat", async () => { - const mockContext = createMockContext(); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock Supabase response - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: mockProfile, error: null }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const { id } = c.get("user"); - const supabase = c.get("supabase"); - - const { data } = await supabase - .from("profiles") - .select("*") - .eq("id", id) - .single(); - - const streamServerClient = c.get("streamServerClient"); - await streamServerClient.upsertUser({ - id, - name: data.name ?? "", - language: "fr", - }); - - return c.json({ - message: "User signed up to stream", - }); - }; - - const result = await handler(mockContext); - - expect(mockStreamChat.upsertUser.calledOnce).to.be.true; - expect( - mockStreamChat.upsertUser.calledWith({ - id: mockUser.id, - name: mockProfile.name, - language: "fr", - }) - ).to.be.true; - expect(result).to.deep.equal({ message: "User signed up to stream" }); - }); - }); - - describe("GET /me", () => { - it("should return user profile with Stream token", async () => { - const mockContext = createMockContext(); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock Supabase response - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: mockProfile, error: null }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - - const { data, error } = await supabase - .from("profiles") - .select("*") - .eq("id", user.id) - .single(); - - if (!data) { - return c.json({ error: "User not found" }, 404); - } - - if (error) { - return c.json({ error: error.message }, 500); - } - - const user_id = data.id; - const token = streamServerClient.createToken(user_id); - - return c.json({ - ...data, - streamToken: token, - }); - }; - - const result = await handler(mockContext); - - expect(mockStreamChat.createToken.calledOnce).to.be.true; - expect(mockStreamChat.createToken.calledWith(mockUser.id)).to.be.true; - expect(result).to.deep.equal({ - ...mockProfile, - streamToken: "mock-stream-token", - }); - }); - - it("should return 404 if user profile not found", async () => { - const mockContext = createMockContext(); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock Supabase response with no data - mockSupabase - .from() - .select() - .eq() - .single.resolves({ data: null, error: null }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - - const { data, error } = await supabase - .from("profiles") - .select("*") - .eq("id", user.id) - .single(); - - if (!data) { - return c.json({ error: "User not found" }, 404); - } - - if (error) { - return c.json({ error: error.message }, 500); - } - - const user_id = data.id; - const token = streamServerClient.createToken(user_id); - - return c.json({ - ...data, - streamToken: token, - }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "User not found" }); - }); - - it("should return 500 if database error occurs", async () => { - const mockContext = createMockContext(); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - mockContext.get.withArgs("streamServerClient").returns(mockStreamChat); - - // Mock Supabase response with error - mockSupabase - .from() - .select() - .eq() - .single.resolves({ - data: mockProfile, - error: { message: "Database error" }, - }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - const streamServerClient = c.get("streamServerClient"); - - const { data, error } = await supabase - .from("profiles") - .select("*") - .eq("id", user.id) - .single(); - - if (!data) { - return c.json({ error: "User not found" }, 404); - } - - if (error) { - return c.json({ error: error.message }, 500); - } - - const user_id = data.id; - const token = streamServerClient.createToken(user_id); - - return c.json({ - ...data, - streamToken: token, - }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Database error" }); - }); - }); - - describe("POST /mark-temporary", () => { - it("should mark user as temporary and send email", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ temporary_password: "temp123" }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock Supabase update response - mockSupabase - .from() - .update() - .eq() - .select() - .single.resolves({ - data: { ...mockProfile, is_temporary: true }, - error: null, - }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - - await c.req.json(); - - const { error } = await supabase - .from("profiles") - .update({ - is_temporary: true, - }) - .eq("id", user.id) - .select() - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ - message: "User marked as temporary", - }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ message: "User marked as temporary" }); - }); - - it("should return 500 if database update fails", async () => { - const mockContext = createMockContext(); - mockContext.req.json.resolves({ temporary_password: "temp123" }); - mockContext.get.withArgs("user").returns(mockUser); - mockContext.get.withArgs("supabase").returns(mockSupabase); - - // Mock Supabase error response - mockSupabase - .from() - .update() - .eq() - .select() - .single.resolves({ data: null, error: { message: "Update failed" } }); - - // Create a test handler - // biome-ignore lint/suspicious/noExplicitAny: Test handler with dynamic context - const handler = async (c: any) => { - const user = c.get("user"); - const supabase = c.get("supabase"); - - await c.req.json(); - - const { error } = await supabase - .from("profiles") - .update({ - is_temporary: true, - }) - .eq("id", user.id) - .select() - .single(); - - if (error) { - return c.json({ error: error.message }, 500); - } - - return c.json({ - message: "User marked as temporary", - }); - }; - - const result = await handler(mockContext); - - expect(result).to.deep.equal({ error: "Update failed" }); - }); - }); -}); diff --git a/api/src/tablo.ts b/api/src/tablo.ts index 3377bb0..351c5dc 100644 --- a/api/src/tablo.ts +++ b/api/src/tablo.ts @@ -1,15 +1,11 @@ -import { PutObjectCommand, type S3Client } from "@aws-sdk/client-s3"; -import { - PostgrestError, - type SupabaseClient, - type User, -} from "@supabase/supabase-js"; +import { type S3Client } from "@aws-sdk/client-s3"; +import { type SupabaseClient, type User } from "@supabase/supabase-js"; import { Hono } from "hono"; import type { Transporter } from "nodemailer"; import type { StreamChat } from "stream-chat"; import { config } from "./config.js"; import type { Tables } from "./database.types.ts"; -import { generateICSFromEvents, writeCalendarFileToR2 } from "./helpers.js"; +import { writeCalendarFileToR2 } from "./helpers.js"; import { authMiddleware, r2Middleware, @@ -17,11 +13,7 @@ import { } from "./middleware.js"; import { generateToken } from "./token.js"; import { transporter } from "./transporter.js"; -import type { - EventAndTablo, - EventInsertInTablo, - TabloInsert, -} from "./types.ts"; +import type { EventInsertInTablo, TabloInsert } from "./types.ts"; export const tabloRouter = new Hono<{ Variables: { diff --git a/api/src/tablo_data.ts b/api/src/tablo_data.ts index c3b3aab..c7ec936 100644 --- a/api/src/tablo_data.ts +++ b/api/src/tablo_data.ts @@ -2,7 +2,11 @@ import type { S3Client } from "@aws-sdk/client-s3"; import type { SupabaseClient, User } from "@supabase/supabase-js"; import { type Context, Hono, type Next } from "hono"; import { getTabloFileNames, isTabloAdmin, isTabloMember } from "./helpers.js"; -import { authMiddleware, r2Middleware, streamChatMiddleware } from "./middleware.js"; +import { + authMiddleware, + r2Middleware, + streamChatMiddleware, +} from "./middleware.js"; export const tabloDataRouter = new Hono<{ Variables: { diff --git a/api/src/user.ts b/api/src/user.ts index 0f01312..5f42125 100644 --- a/api/src/user.ts +++ b/api/src/user.ts @@ -93,7 +93,7 @@ userRouter.post("/mark-temporary", async (c) => { } try { - if (profile?.email) { + if (profile?.email && transporter) { const mailOptions = { from: "Xtablo ", to: profile.email, diff --git a/biome.json b/biome.json index 10f90dc..3dc1855 100644 --- a/biome.json +++ b/biome.json @@ -61,6 +61,7 @@ "noUnusedLabels": "error", "noUnusedPrivateClassMembers": "error", "noUnusedVariables": "error", + "noUnusedImports": "error", "useIsNan": "error", "useJsxKeyInIterable": "error", "useValidForDirection": "error", diff --git a/ui/components.json b/ui/components.json new file mode 100644 index 0000000..9673917 --- /dev/null +++ b/ui/components.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/main.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@ui/components", + "utils": "@ui/lib/utils", + "ui": "@ui/components/ui", + "lib": "@ui/lib", + "hooks": "@ui/hooks" + }, + "registries": {} +} diff --git a/ui/package.json b/ui/package.json index 8d1ed7b..ec31299 100644 --- a/ui/package.json +++ b/ui/package.json @@ -57,6 +57,7 @@ "tailwind-merge": "^3.0.2", "tailwindcss": "^4.0.14", "tailwindcss-animate": "^1.0.7", + "tw-animate-css": "^1.4.0", "typescript": "^5.7.0", "typescript-eslint": "^8.26.1", "vite": "^6.2.2", @@ -67,6 +68,20 @@ "dependencies": { "@datadog/browser-rum": "^6.13.0", "@datadog/browser-rum-react": "^6.13.0", + "@hookform/resolvers": "^5.2.2", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-tooltip": "^1.2.8", "@react-stately/calendar": "^3.7.1", "@supabase/supabase-js": "^2.49.3", "@tailwindcss/vite": "^4.0.14", @@ -75,16 +90,28 @@ "@typescript/native-preview": "7.0.0-dev.20251010.1", "ag-grid-community": "^33.2.1", "ag-grid-react": "^33.2.1", - "axios": "^1.8.4", + "axios": "^1.12.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "date-fns": "^4.1.0", - "jspdf": "^3.0.1", + "jspdf": "^3.0.3", "jwt-decode": "^4.0.0", - "react-router-dom": "^7.3.0", + "react-day-picker": "^9.11.1", + "react-hook-form": "^7.65.0", + "react-router-dom": "^7.9.4", "react-stately": "^3.36.1", + "sonner": "^2.0.7", "stream-chat": "^9.6.1", "stream-chat-react": "^13.1.0", "ts-pattern": "^5.6.2", "uuid": "^11.1.0", + "zod": "^4.1.12", "zustand": "^5.0.5" + }, + "pnpm": { + "overrides": { + "form-data": "^4.0.4", + "linkifyjs": "^4.3.2" + } } } diff --git a/ui/pnpm-lock.yaml b/ui/pnpm-lock.yaml index 5c0ea9a..7284010 100644 --- a/ui/pnpm-lock.yaml +++ b/ui/pnpm-lock.yaml @@ -4,28 +4,74 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + form-data: ^4.0.4 + linkifyjs: ^4.3.2 + importers: .: dependencies: '@datadog/browser-rum': specifier: ^6.13.0 - version: 6.13.0 + version: 6.22.0 '@datadog/browser-rum-react': specifier: ^6.13.0 - version: 6.13.0(@datadog/browser-rum@6.13.0)(react-router-dom@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 6.22.0(@datadog/browser-rum@6.22.0)(react-router-dom@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + '@hookform/resolvers': + specifier: ^5.2.2 + version: 5.2.2(react-hook-form@7.65.0(react@19.0.0)) + '@radix-ui/react-avatar': + specifier: ^1.1.10 + version: 1.1.10(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-checkbox': + specifier: ^1.3.3 + version: 1.3.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collapsible': + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-label': + specifier: ^2.1.7 + version: 2.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-popover': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-select': + specifier: ^2.2.6 + version: 2.2.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-separator': + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': + specifier: ^1.2.3 + version: 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-switch': + specifier: ^1.2.6 + version: 1.2.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-tabs': + specifier: ^1.1.13 + version: 1.1.13(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-stately/calendar': specifier: ^3.7.1 - version: 3.7.1(react@19.0.0) + version: 3.9.0(react@19.0.0) '@supabase/supabase-js': specifier: ^2.49.3 - version: 2.49.3 + version: 2.75.0 '@tailwindcss/vite': specifier: ^4.0.14 - version: 4.0.14(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + version: 4.1.14(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1)) '@tanstack/react-query': specifier: ^5.69.0 - version: 5.69.0(react@19.0.0) + version: 5.90.3(react@19.0.0) '@types/react-router-dom': specifier: ^5.3.3 version: 5.3.3 @@ -34,89 +80,107 @@ importers: version: 7.0.0-dev.20251010.1 ag-grid-community: specifier: ^33.2.1 - version: 33.2.1 + version: 33.3.2 ag-grid-react: specifier: ^33.2.1 - version: 33.2.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 33.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) axios: - specifier: ^1.8.4 - version: 1.8.4 + specifier: ^1.12.2 + version: 1.12.2 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 date-fns: specifier: ^4.1.0 version: 4.1.0 jspdf: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.3 + version: 3.0.3 jwt-decode: specifier: ^4.0.0 version: 4.0.0 + react-day-picker: + specifier: ^9.11.1 + version: 9.11.1(react@19.0.0) + react-hook-form: + specifier: ^7.65.0 + version: 7.65.0(react@19.0.0) react-router-dom: - specifier: ^7.3.0 - version: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^7.9.4 + version: 7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-stately: specifier: ^3.36.1 - version: 3.36.1(react@19.0.0) + version: 3.42.0(react@19.0.0) + sonner: + specifier: ^2.0.7 + version: 2.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) stream-chat: specifier: ^9.6.1 - version: 9.6.1 + version: 9.23.0 stream-chat-react: specifier: ^13.1.0 - version: 13.1.0(@types/react@19.0.10)(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(stream-chat@9.6.1)(typescript@5.7.3) + version: 13.9.0(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(stream-chat@9.23.0)(typescript@5.9.3) ts-pattern: specifier: ^5.6.2 - version: 5.6.2 + version: 5.8.0 uuid: specifier: ^11.1.0 version: 11.1.0 + zod: + specifier: ^4.1.12 + version: 4.1.12 zustand: specifier: ^5.0.5 - version: 5.0.5(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.4.0(react@19.0.0)) + version: 5.0.8(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.6.0(react@19.0.0)) devDependencies: '@biomejs/biome': specifier: 2.2.5 version: 2.2.5 '@cloudflare/vite-plugin': specifier: ^1.9.4 - version: 1.9.4(rollup@4.34.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(workerd@1.20250709.0)(wrangler@4.24.3) + version: 1.13.13(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1))(workerd@1.20251008.0)(wrangler@4.43.0) '@esbuild-plugins/node-globals-polyfill': specifier: ^0.2.3 - version: 0.2.3(esbuild@0.25.4) + version: 0.2.3(esbuild@0.25.11) '@eslint/js': specifier: ^9.22.0 - version: 9.22.0 + version: 9.37.0 '@floating-ui/react': specifier: ^0.27.4 - version: 0.27.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 0.27.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@internationalized/date': specifier: ^3.7.0 - version: 3.7.0 + version: 3.10.0 '@react-aria/i18n': specifier: ^3.12.7 - version: 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-aria/toast': specifier: ^3.0.0 - version: 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.0.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-stately/toast': specifier: ^3.0.0 - version: 3.0.0(react@19.0.0) + version: 3.1.2(react@19.0.0) '@tailwindcss/container-queries': specifier: ^0.1.1 - version: 0.1.1(tailwindcss@4.0.14) + version: 0.1.1(tailwindcss@4.1.14) '@testing-library/jest-dom': specifier: ^6.6.3 - version: 6.6.3 + version: 6.9.1 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@testing-library/user-event': specifier: ^14.6.1 - version: 14.6.1(@testing-library/dom@10.4.0) + version: 14.6.1(@testing-library/dom@10.4.1) '@types/jest': specifier: ^29.5.14 version: 29.5.14 '@types/node': specifier: ^22.13.10 - version: 22.13.10 + version: 22.18.10 '@types/react': specifier: 19.0.10 version: 19.0.10 @@ -125,31 +189,31 @@ importers: version: 19.0.4(@types/react@19.0.10) '@typescript-eslint/eslint-plugin': specifier: ^7.0.2 - version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^7.0.2 - version: 7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + version: 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + version: 4.7.0(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1)) chromatic: specifier: ^11.5.0 - version: 11.27.0 + version: 11.29.0 eslint: specifier: ^9.22.0 - version: 9.22.0(jiti@2.4.2) + version: 9.37.0(jiti@2.6.1) eslint-plugin-react: specifier: ^7.37.4 - version: 7.37.4(eslint@9.22.0(jiti@2.4.2)) + version: 7.37.5(eslint@9.37.0(jiti@2.6.1)) globals: specifier: ^16.0.0 - version: 16.0.0 + version: 16.4.0 happy-dom: specifier: ^20.0.0 - version: 20.0.0 + version: 20.0.2 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.13.10) + version: 29.7.0(@types/node@22.18.10) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -158,111 +222,114 @@ importers: version: 0.460.0(react@19.0.0) prettier-plugin-tailwindcss: specifier: ^0.6.11 - version: 0.6.11(prettier@3.5.3) + version: 0.6.14(prettier@3.6.2) react: specifier: 19.0.0 version: 19.0.0 react-aria: specifier: ^3.38.1 - version: 3.38.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 3.44.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-aria-components: specifier: ^1.7.0 - version: 1.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.13.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-dom: specifier: 19.0.0 version: 19.0.0(react@19.0.0) rollup-plugin-visualizer: specifier: ^5.14.0 - version: 5.14.0(rollup@4.34.6) + version: 5.14.0(rollup@4.52.4) tailwind-merge: specifier: ^3.0.2 - version: 3.0.2 + version: 3.3.1 tailwindcss: specifier: ^4.0.14 - version: 4.0.14 + version: 4.1.14 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.0.14) + version: 1.0.7(tailwindcss@4.1.14) + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 typescript: specifier: ^5.7.0 - version: 5.7.3 + version: 5.9.3 typescript-eslint: specifier: ^8.26.1 - version: 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + version: 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^6.2.2 - version: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + version: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + version: 5.1.4(typescript@5.9.3)(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@20.0.0)(jiti@2.4.2)(jsdom@20.0.3)(lightningcss@1.29.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.10)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@20.0.3)(lightningcss@1.30.1) wrangler: specifier: ^4.24.3 - version: 4.24.3 + version: 4.43.0 packages: - '@adobe/css-tools@4.4.2': - resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.8': - resolution: {integrity: sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==} + '@babel/core@7.28.4': + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.8': - resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==} + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.7': - resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.8': - resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true @@ -287,8 +354,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -303,8 +370,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -351,42 +418,38 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.27.6': - resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/template@7.26.8': - resolution: {integrity: sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==} + '@babel/traverse@7.28.4': + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.8': - resolution: {integrity: sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.8': - resolution: {integrity: sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -452,47 +515,47 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.3.3': - resolution: {integrity: sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==} + '@cloudflare/unenv-preset@2.7.7': + resolution: {integrity: sha512-HtZuh166y0Olbj9bqqySckz0Rw9uHjggJeoGbDx5x+sgezBXlxO6tQSig2RZw5tgObF8mWI8zaPvQMkQZtAODw==} peerDependencies: - unenv: 2.0.0-rc.17 - workerd: ^1.20250508.0 + unenv: 2.0.0-rc.21 + workerd: ^1.20250927.0 peerDependenciesMeta: workerd: optional: true - '@cloudflare/vite-plugin@1.9.4': - resolution: {integrity: sha512-i1sMePamMZs/eR5ennHNICEFEtXWDCbt8j+mSE0EQuMFt0YrqqU9WSCZzUvISyYebnnLfnHZQpq3Y8y4uPz4RQ==} + '@cloudflare/vite-plugin@1.13.13': + resolution: {integrity: sha512-RgyoPy0fzqEETVmhzb2yhr2Jqz2N8dxwhL9+1bDiO0Bajdfb8cCURgBgppcRfmcYKlBTXYl9xvus+nnH5KRmRQ==} peerDependencies: vite: ^6.1.0 || ^7.0.0 - wrangler: 4.24.3 + wrangler: ^4.43.0 - '@cloudflare/workerd-darwin-64@1.20250709.0': - resolution: {integrity: sha512-VqwcvnbI8FNCP87ZWNHA3/sAC5U9wMbNnjBG0sHEYzM7B9RPHKYHdVKdBEWhzZXnkQYMK81IHm4CZsK16XxAuQ==} + '@cloudflare/workerd-darwin-64@1.20251008.0': + resolution: {integrity: sha512-yph0H+8mMOK5Z9oDwjb8rI96oTVt4no5lZ43aorcbzsWG9VUIaXSXlBBoB3von6p4YCRW+J3n36fBM9XZ6TLaA==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250709.0': - resolution: {integrity: sha512-A54ttSgXMM4huChPTThhkieOjpDxR+srVOO9zjTHVIyoQxA8zVsku4CcY/GQ95RczMV+yCKVVu/tAME7vwBFuA==} + '@cloudflare/workerd-darwin-arm64@1.20251008.0': + resolution: {integrity: sha512-Yc4lMGSbM4AEtYRpyDpmk77MsHb6X2BSwJgMgGsLVPmckM7ZHivZkJChfcNQjZ/MGR6nkhYc4iF6TcVS+UMEVw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250709.0': - resolution: {integrity: sha512-no4O3OK+VXINIxv99OHJDpIgML2ZssrSvImwLtULzqm+cl4t1PIfXNRUqj89ujTkmad+L9y4G6dBQMPCLnmlGg==} + '@cloudflare/workerd-linux-64@1.20251008.0': + resolution: {integrity: sha512-AjoQnylw4/5G6SmfhZRsli7EuIK7ZMhmbxtU0jkpciTlVV8H01OsFOgS1d8zaTXMfkWamEfMouy8oH/L7B9YcQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250709.0': - resolution: {integrity: sha512-7cNICk2Qd+m4QGrcmWyAuZJXTHt1ud6isA+dic7Yk42WZmwXhlcUATyvFD9FSQNFcldjuRB4n8JlWEFqZBn+lw==} + '@cloudflare/workerd-linux-arm64@1.20251008.0': + resolution: {integrity: sha512-hRy9yyvzVq1HsqHZUmFkAr0C8JGjAD/PeeVEGCKL3jln3M9sNCKIrbDXiL+efe+EwajJNNlDxpO+s30uVWVaRg==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250709.0': - resolution: {integrity: sha512-j1AyO8V/62Q23EJplWgzBlRCqo/diXgox58AbDqSqgyzCBAlvUzXQRDBab/FPNG/erRqt7I1zQhahrBhrM0uLA==} + '@cloudflare/workerd-windows-64@1.20251008.0': + resolution: {integrity: sha512-Gm0RR+ehfNMsScn2pUcn3N9PDUpy7FyvV9ecHEyclKttvztyFOcmsF14bxEaSVv7iM4TxWEBn1rclmYHxDM4ow==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -501,18 +564,19 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@datadog/browser-core@6.13.0': - resolution: {integrity: sha512-wWhQ22F8pDjh7kGtvBetJhX5luyKsIVzJQTisjM/6p+A2nchDuoOiZ0GdjajRA5LlPa9pj/PlOoe/g+B9AMELg==} + '@datadog/browser-core@6.22.0': + resolution: {integrity: sha512-f4c5y3HYR879+vZgwos3hPxTX8XvNCNmujSpSmA8zdIVA1JgP3Ern8Up2x4LEPGVxgSojUy8pVVtf3rjKXRjZg==} - '@datadog/browser-rum-core@6.13.0': - resolution: {integrity: sha512-+gp9MEDc24xB5dwvVYsOPoRueujTOy0GNW2Q3XNyWMstzuSQIwXaIuDIRVhCoi8+i4UioUCd7ZO30yEB01Ajwg==} + '@datadog/browser-rum-core@6.22.0': + resolution: {integrity: sha512-Du6poAHIHNFk5Cz3YBxNTnaCGrRJVTzCrOIpcfwPajbUYYGw1VT0KKyq5OBUIaxNFpPTv+UuIoI5689a0Tyb2g==} - '@datadog/browser-rum-react@6.13.0': - resolution: {integrity: sha512-r53c4soTqiAVK96raOQVaci163lhX6/DVXXGZteHW36q+OMTbIIEaz/jyNX+4JrXORFNrz8b1dWELt49CkDX5w==} + '@datadog/browser-rum-react@6.22.0': + resolution: {integrity: sha512-y7/JkFd3iry2YMqLXm+9lUfYKTokbfXyWLDHhRZTbOXHpUqVd7mg3ib+gFIwaHO65L7DWz83iYjvlXAX3J0B5w==} peerDependencies: '@datadog/browser-rum': '*' '@datadog/browser-rum-slim': '*' react: 18 || 19 + react-router: 6 || 7 react-router-dom: 6 || 7 peerDependenciesMeta: '@datadog/browser-rum': @@ -521,27 +585,32 @@ packages: optional: true react: optional: true + react-router: + optional: true react-router-dom: optional: true - '@datadog/browser-rum@6.13.0': - resolution: {integrity: sha512-VIVpoD+A2WLIskB0PXzO0Gh3bZs7MkOrzhnDpamWMrcbGH/UaX6BUmTlorqtT374Jrre6frzN2IEKGQs7kVamQ==} + '@datadog/browser-rum@6.22.0': + resolution: {integrity: sha512-6AQUuu3tWwCp0fgRBDE1Qscm/DTLtaK3e8L9tJa1YRw1wvg41CGRm2jgF3yRz6WXvsz/gTqmq+QBjDzSl8UbWg==} peerDependencies: - '@datadog/browser-logs': 6.13.0 + '@datadog/browser-logs': 6.22.0 peerDependenciesMeta: '@datadog/browser-logs': optional: true - '@emnapi/runtime@1.4.4': - resolution: {integrity: sha512-hHyapA4A3gPaDCNfiqyZUStTMqIkKRshqPIuDOXv1hcBnD4U3l8cP0T1HMCfGRxQ6V64TGCcoswChANyOAwbQg==} + '@date-fns/tz@1.4.1': + resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==} + + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: esbuild: '*' - '@esbuild/aix-ppc64@0.25.1': - resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + '@esbuild/aix-ppc64@0.25.11': + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -552,8 +621,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.1': - resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + '@esbuild/android-arm64@0.25.11': + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -564,8 +633,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.1': - resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + '@esbuild/android-arm@0.25.11': + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -576,8 +645,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.1': - resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + '@esbuild/android-x64@0.25.11': + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -588,8 +657,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.1': - resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + '@esbuild/darwin-arm64@0.25.11': + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -600,8 +669,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.1': - resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + '@esbuild/darwin-x64@0.25.11': + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -612,8 +681,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.1': - resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + '@esbuild/freebsd-arm64@0.25.11': + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -624,8 +693,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.1': - resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + '@esbuild/freebsd-x64@0.25.11': + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -636,8 +705,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.1': - resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + '@esbuild/linux-arm64@0.25.11': + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -648,8 +717,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.1': - resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + '@esbuild/linux-arm@0.25.11': + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -660,8 +729,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.1': - resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + '@esbuild/linux-ia32@0.25.11': + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -672,8 +741,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.1': - resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + '@esbuild/linux-loong64@0.25.11': + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -684,8 +753,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.1': - resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + '@esbuild/linux-mips64el@0.25.11': + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -696,8 +765,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.1': - resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + '@esbuild/linux-ppc64@0.25.11': + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -708,8 +777,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.1': - resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + '@esbuild/linux-riscv64@0.25.11': + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -720,8 +789,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.1': - resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + '@esbuild/linux-s390x@0.25.11': + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -732,8 +801,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.1': - resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + '@esbuild/linux-x64@0.25.11': + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -744,8 +813,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.1': - resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + '@esbuild/netbsd-arm64@0.25.11': + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -756,8 +825,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.1': - resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + '@esbuild/netbsd-x64@0.25.11': + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -768,8 +837,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.1': - resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + '@esbuild/openbsd-arm64@0.25.11': + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -780,8 +849,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.1': - resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + '@esbuild/openbsd-x64@0.25.11': + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -792,8 +861,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.1': - resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + '@esbuild/openharmony-arm64@0.25.11': + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.11': + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -804,8 +879,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.1': - resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + '@esbuild/win32-arm64@0.25.11': + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -816,8 +891,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.1': - resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + '@esbuild/win32-ia32@0.25.11': + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -828,8 +903,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.1': - resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + '@esbuild/win32-x64@0.25.11': + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -840,8 +915,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -850,92 +925,89 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.2': - resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.1.0': - resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==} + '@eslint/config-helpers@0.4.0': + resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.12.0': - resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.0': - resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} + '@eslint/js@9.37.0': + resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.7': - resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} + '@eslint/plugin-kit@0.4.0': + resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/busboy@2.1.1': - resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} - engines: {node: '>=14'} + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + '@floating-ui/react-dom@2.1.6': + resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react@0.27.5': - resolution: {integrity: sha512-BX3jKxo39Ba05pflcQmqPPwc0qdNsdNi/eweAFtoIdrJWNen2sVEWMEac3i6jU55Qfx+lOcdMNKYn2CtWmlnOQ==} + '@floating-ui/react@0.27.16': + resolution: {integrity: sha512-9O8N4SeG2z++TSM8QA/KTeKFBVCNEz/AGS7gWPJf6KFRzmRWixFRnCnkPHRDwSVZW6QPDO6uT0P2SpWNKCc9/g==} peerDependencies: react: '>=17.0.0' react-dom: '>=17.0.0' - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/ecma402-abstract@2.3.3': - resolution: {integrity: sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg==} + '@formatjs/ecma402-abstract@2.3.6': + resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} - '@formatjs/fast-memoize@2.2.6': - resolution: {integrity: sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==} + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - '@formatjs/icu-messageformat-parser@2.11.1': - resolution: {integrity: sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA==} + '@formatjs/icu-messageformat-parser@2.11.4': + resolution: {integrity: sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==} - '@formatjs/icu-skeleton-parser@1.8.13': - resolution: {integrity: sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg==} + '@formatjs/icu-skeleton-parser@1.8.16': + resolution: {integrity: sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==} - '@formatjs/intl-localematcher@0.6.0': - resolution: {integrity: sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA==} + '@formatjs/intl-localematcher@0.6.2': + resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} + + '@hookform/resolvers@5.2.2': + resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} + peerDependencies: + react-hook-form: ^7.55.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==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - - '@humanwhocodes/retry@0.4.2': - resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@img/sharp-darwin-arm64@0.33.5': @@ -1043,17 +1115,21 @@ packages: cpu: [x64] os: [win32] - '@internationalized/date@3.7.0': - resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} + '@internationalized/date@3.10.0': + resolution: {integrity: sha512-oxDR/NTEJ1k+UFVQElaNIk65E/Z83HK1z1WI3lQyhTtnNg4R5oVXaPzK3jcpKG8UHKDVuDQHzn+wsxSz8RP3aw==} - '@internationalized/message@3.1.6': - resolution: {integrity: sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==} + '@internationalized/message@3.1.8': + resolution: {integrity: sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==} - '@internationalized/number@3.6.0': - resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} + '@internationalized/number@3.6.5': + resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==} - '@internationalized/string@3.2.5': - resolution: {integrity: sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==} + '@internationalized/string@3.2.7': + resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -1129,30 +1205,25 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@mjackson/node-fetch-server@0.6.1': - resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1177,714 +1248,1156 @@ packages: '@poppinss/exception@1.2.2': resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} - '@react-aria/autocomplete@3.0.0-beta.1': - resolution: {integrity: sha512-ZeVR1tKJOZK5/RTuN8eprlP1lyeihdDfDYPBkdg2iT5h775LSZyOingPux9aLtdqt/uj6JIS5amK9ErI7+axug==} + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-avatar@1.1.10': + resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.7': + resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.0': + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@react-aria/autocomplete@3.0.0-rc.3': + resolution: {integrity: sha512-vemf7h3hvIDk3MxiiPryysfYgJDg8R72X46dRIeg0+cXKYxjPYou64/DTucSV2z5J6RC5JalINu0jIDaLhEILw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/breadcrumbs@3.5.22': - resolution: {integrity: sha512-Jhx3eJqvuSUFL5/TzJ7EteluySdgKVkYGJ72Jz6AdEkiuoQAFbRZg4ferRIXQlmFL2cj7Z3jo8m8xGitebMtgw==} + '@react-aria/breadcrumbs@3.5.29': + resolution: {integrity: sha512-rKS0dryllaZJqrr3f/EAf2liz8CBEfmL5XACj+Z1TAig6GIYe1QuA3BtkX0cV9OkMugXdX8e3cbA7nD10ORRqg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/button@3.12.1': - resolution: {integrity: sha512-IgCENCVUzjfI4nVgJ8T1z2oD81v3IO2Ku96jVljqZ/PWnFACsRikfLeo8xAob3F0LkRW4CTK4Tjy6BRDsy2l6A==} + '@react-aria/button@3.14.2': + resolution: {integrity: sha512-VbLIA+Kd6f/MDjd+TJBUg2+vNDw66pnvsj2E4RLomjI9dfBuN7d+Yo2UnsqKVyhePjCUZ6xxa2yDuD63IOSIYA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/calendar@3.7.2': - resolution: {integrity: sha512-q16jWzBCoMoohOF75rJbqh+4xlKOhagPC96jsARZmaqWOEHpFYGK/1rH9steC5+Dqe7y1nipAoLRynm18rrt3w==} + '@react-aria/calendar@3.9.2': + resolution: {integrity: sha512-uSLxLgOPRnEU4Jg59lAhUVA+uDx/55NBg4lpfsP2ynazyiJ5LCXmYceJi+VuOqMml7d9W0dB87OldOeLdIxYVA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/checkbox@3.15.3': - resolution: {integrity: sha512-/m5JYoGsi5L0NZnacgqEcMqBo6CcTmsJ9nAY/07MDCUJBcL/Xokd8cL/1K21n6K69MiCPcxORbSBdxJDm9dR0A==} + '@react-aria/checkbox@3.16.2': + resolution: {integrity: sha512-29Mj9ZqXioJ0bcMnNGooHztnTau5pikZqX3qCRj5bYR3by/ZFFavYoMroh9F7s/MbFm/tsKX+Sf02lYFEdXRjA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/collections@3.0.0-beta.1': - resolution: {integrity: sha512-udrHajGknkDioGbuqOdWjQ2P7J6fYGlkVGuIJwLxML+WgrroC+i76A4BBOD4ifJKxVAZ8TMyGSztt4RUdn+jDA==} + '@react-aria/collections@3.0.0': + resolution: {integrity: sha512-vCFztpsl1AYjQn3lH7CwzYiiRAGfnm7+EXaXIt7yS4O6YC8C3FfOBf3jdxcFjE5u8CEfiL4X+4ABkfio10nneg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/color@3.0.5': - resolution: {integrity: sha512-F+by1SOvH+qr47jhaZUYLCYMjRFxEBiG2UpNyd0iByIOweeXnU9sRHRAjLSWx/nULB6ZrUhNzE3XhI0SoZyHUw==} + '@react-aria/color@3.1.2': + resolution: {integrity: sha512-jCC+Q7rAQGLQBkHjkPAeDuGYuMbc4neifjlNRiyZ9as1z4gg63H8MteoWYYk6K4vCKKxSixgt8MfI29XWMOWPQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/combobox@3.12.1': - resolution: {integrity: sha512-Al43cVQ2XiuPTCZ8jhz5Vmoj5Vqm6GADBtrL+XHZd7lM1gkD3q27GhKYiEt0jrcoBjjdqIiYWEaFLYg5LSQPzA==} + '@react-aria/combobox@3.14.0': + resolution: {integrity: sha512-z4ro0Hma//p4nL2IJx5iUa7NwxeXbzSoZ0se5uTYjG1rUUMszg+wqQh/AQoL+eiULn7rs18JY9wwNbVIkRNKWA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/datepicker@3.14.1': - resolution: {integrity: sha512-77HaB+dFaMu7OpDQqjDiyZdaJlkwMgQHjTRvplBVc3Pau1sfQ1LdFC4+ZAXSbQTVSYt6GaN9S2tL4qoc+bO05w==} + '@react-aria/datepicker@3.15.2': + resolution: {integrity: sha512-th078hyNqPf4P2K10su/y32zPDjs3lOYVdHvsL9/+5K1dnTvLHCK5vgUyLuyn8FchhF7cmHV49D+LZVv65PEpQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/dialog@3.5.23': - resolution: {integrity: sha512-ud8b4G5vcFEZPEjzdXrjOadwRMBKBDLiok6lIl1rsPkd1qnLMFxsl3787kct1Ex0PVVKOPlcH7feFw+1T7NsLw==} + '@react-aria/dialog@3.5.31': + resolution: {integrity: sha512-inxQMyrzX0UBW9Mhraq0nZ4HjHdygQvllzloT1E/RlDd61lr3RbmJR6pLsrbKOTtSvDIBJpCso1xEdHCFNmA0Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/disclosure@3.0.3': - resolution: {integrity: sha512-YMZG6NYugRMTElq4bspstML15KFUwZ+ZVUTSQHLLLLnwxkj+R9NbsDonMkH6lpgC02ru0Kgo2+1NljIGz9a5/Q==} + '@react-aria/disclosure@3.1.0': + resolution: {integrity: sha512-5996BeBpnj+yKXYysz+UuhFQxGFPvaZZ3zNBd052wz/i+TVFVGSqqYJ6cwZyO1AfBR8zOT0ZIiK4EC3ETwSvtQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/dnd@3.9.1': - resolution: {integrity: sha512-Rg43C+MQSr7IN1wv0iAemW59RANE39TsVs1QX9ryRh0Unc14jnm+GhZ928XNuu/rJ6BMUM8Cb9uQuYcVPgeDxA==} + '@react-aria/dnd@3.11.3': + resolution: {integrity: sha512-MyTziciik1Owz3rqDghu0K3ZtTFvmj/R2ZsLDwbU9N4hKqGX/BKnrI8SytTn8RDqVv5LmA/GhApLngiupTAsXw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/focus@3.20.1': - resolution: {integrity: sha512-lgYs+sQ1TtBrAXnAdRBQrBo0/7o5H6IrfDxec1j+VRpcXL0xyk0xPq+m3lZp8typzIghqDgpnKkJ5Jf4OrzPIw==} + '@react-aria/focus@3.21.2': + resolution: {integrity: sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/form@3.0.14': - resolution: {integrity: sha512-UYoqdGetKV+4lwGnJ22sWKywobOWYBcOetiBYTlrrnCI6e5j1Jk5iLkLvesCOoI7yfWIW9Ban5Qpze5MUrXUhQ==} + '@react-aria/form@3.1.2': + resolution: {integrity: sha512-R3i7L7Ci61PqZQvOrnL9xJeWEbh28UkTVgkj72EvBBn39y4h7ReH++0stv7rRs8p5ozETSKezBbGfu4UsBewWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/grid@3.12.1': - resolution: {integrity: sha512-f0Sx/O6VVjNcg5xq0cLhA7QSCkZodV+/Y0UXJTg/NObqgPX/tqh/KNEy7zeVd22FS6SUpXV+fJU99yLPo37rjQ==} + '@react-aria/grid@3.14.5': + resolution: {integrity: sha512-XHw6rgjlTqc85e3zjsWo3U0EVwjN5MOYtrolCKc/lc2ItNdcY3OlMhpsU9+6jHwg/U3VCSWkGvwAz9hg7krd8Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/gridlist@3.11.1': - resolution: {integrity: sha512-x2lrQO0kC+kdoCH+iUY6VsgoJlZ/x/w10dKc66npXeVC2EHo2InJDINt9VEIaANnh9i7TiTthdQVeePCP22tMQ==} + '@react-aria/gridlist@3.14.1': + resolution: {integrity: sha512-keS03Am07aOn7RuNaRsMOyh0jscyhDn95asCVy4lxhl9A9TFk1Jw0o2L6q6cWRj1gFiKeacj/otG5H8ZKQQ2Wg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/i18n@3.12.7': - resolution: {integrity: sha512-eLbYO2xrpeOKIEmLv2KD5LFcB0wltFqS+pUjsOzkKZg6H3b6AFDmJPxr/a0x2KGHtpGJvuHwCSbpPi9PzSSQLg==} + '@react-aria/i18n@3.12.13': + resolution: {integrity: sha512-YTM2BPg0v1RvmP8keHenJBmlx8FXUKsdYIEX7x6QWRd1hKlcDwphfjzvt0InX9wiLiPHsT5EoBTpuUk8SXc0Mg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/interactions@3.24.1': - resolution: {integrity: sha512-OWEcIC6UQfWq4Td5Ptuh4PZQ4LHLJr/JL2jGYvuNL6EgL3bWvzPrRYIF/R64YbfVxIC7FeZpPSkS07sZ93/NoA==} + '@react-aria/interactions@3.25.6': + resolution: {integrity: sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/label@3.7.16': - resolution: {integrity: sha512-tPog3rc5pQ9s2/5bIBtmHtbj+Ebqs2yyJgJdFjZ1/HxrjF8HMrgtBPHCn/70YD5XvmuC3OSkua84kLjNX5rBbA==} + '@react-aria/label@3.7.22': + resolution: {integrity: sha512-jLquJeA5ZNqDT64UpTc9XJ7kQYltUlNcgxZ37/v4mHe0UZ7QohCKdKQhXHONb0h2jjNUpp2HOZI8J9++jOpzxA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/landmark@3.0.1': - resolution: {integrity: sha512-rsbpmDfI8wmTcsOCaLdI2WuvM4z4yBZyOhMSdIxzKxxD0XPM03BBlegPqxZ/VisSwvXT8VB38r5STzmpH3ocLg==} + '@react-aria/landmark@3.0.7': + resolution: {integrity: sha512-t8c610b8hPLS6Vwv+rbuSyljZosI1s5+Tosfa0Fk4q7d+Ex6Yj7hLfUFy59GxZAufhUYfGX396fT0gPqAbU1tg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/link@3.7.10': - resolution: {integrity: sha512-prf7s7O1PHAtA+H2przeGr8Ig4cBjk1f0kO0bQQAC3QvVOOUO7WLNU/N+xgOMNkCKEazDl21QM1o0bDRQCcXZg==} + '@react-aria/link@3.8.6': + resolution: {integrity: sha512-7F7UDJnwbU9IjfoAdl6f3Hho5/WB7rwcydUOjUux0p7YVWh/fTjIFjfAGyIir7MJhPapun1D0t97QQ3+8jXVcg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/listbox@3.14.2': - resolution: {integrity: sha512-pIwMNZs2WaH+XIax2yemI2CNs5LVV5ooVgEh7gTYoAVWj2eFa3Votmi54VlvkN937bhD5+blH32JRIu9U8XqVw==} + '@react-aria/listbox@3.15.0': + resolution: {integrity: sha512-Ub1Wu79R9sgxM7h4HeEdjOgOKDHwduvYcnDqsSddGXgpkL8ADjsy2YUQ0hHY5VnzA4BxK36bLp4mzSna8Qvj1w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/live-announcer@3.4.1': - resolution: {integrity: sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==} + '@react-aria/live-announcer@3.4.4': + resolution: {integrity: sha512-PTTBIjNRnrdJOIRTDGNifY2d//kA7GUAwRFJNOEwSNG4FW+Bq9awqLiflw0JkpyB0VNIwou6lqKPHZVLsGWOXA==} - '@react-aria/menu@3.18.1': - resolution: {integrity: sha512-czdJFNBW/B7QodyLDyQ+TvT8tZjCru7PrhUDkJS36ie/pTeQDFpIczgYjmKfJs5pP6olqLKXbwJy1iNTh01WTQ==} + '@react-aria/menu@3.19.3': + resolution: {integrity: sha512-52fh8y8b2776R2VrfZPpUBJYC9oTP7XDy+zZuZTxPEd7Ywk0JNUl5F92y6ru22yPkS13sdhrNM/Op+V/KulmAg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/meter@3.4.21': - resolution: {integrity: sha512-IjV4RdotPG3QC9Zjc8VaT+rvypB6yh9pUiEAjJEFhga+ORN/EWBLI8LHKhfep+50z8hH6AP3HLaKBUdZu+4WyQ==} + '@react-aria/meter@3.4.27': + resolution: {integrity: sha512-andOOdJkgRJF9vBi5VWRmFodK+GT+5X1lLeNUmb4qOX8/MVfX/RbK72LDeIhd7xC7rSCFHj3WvZ198rK4q0k3w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/numberfield@3.11.12': - resolution: {integrity: sha512-VQ4dfaf+k7n2tbP8iB1OLFYTLCh9ReyV7dNLrDvH24V7ByaHakobZjwP8tF6CpvafNYaXPUflxnHpIgXvN3QYA==} + '@react-aria/numberfield@3.12.2': + resolution: {integrity: sha512-M2b+z0HIXiXpGAWOQkO2kpIjaLNUXJ5Q3/GMa3Fkr+B1piFX0VuOynYrtddKVrmXCe+r5t+XcGb0KS29uqv7nQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/overlays@3.26.1': - resolution: {integrity: sha512-AtQ0mp+H0alFFkojKBADEUIc1AKFsSobH4QNoxQa3V4bZKQoXxga7cRhD5RRYanu3XCQOkIxZJ3vdVK/LVVBXA==} + '@react-aria/overlays@3.30.0': + resolution: {integrity: sha512-UpjqSjYZx5FAhceWCRVsW6fX1sEwya1fQ/TKkL53FAlLFR8QKuoKqFlmiL43YUFTcGK3UdEOy3cWTleLQwdSmQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/progress@3.4.21': - resolution: {integrity: sha512-KNjoJTY2AU3L+3rozwC81lwDWn6Yk2XQbcQaxEs5frRBbuiCD7hEdrerLIgKa/J85e61MDuEel0Onc0kV9kpyw==} + '@react-aria/progress@3.4.27': + resolution: {integrity: sha512-0OA1shs1575g1zmO8+rWozdbTnxThFFhOfuoL1m7UV5Dley6FHpueoKB1ECv7B+Qm4dQt6DoEqLg7wsbbQDhmg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/radio@3.11.1': - resolution: {integrity: sha512-plAO5MW+QD9/kMe5NNKBzKf/+b6CywdoZ5a1T/VbvkBQYYcHaYQeBuKQ4l+hF+OY2tKAWP0rrjv7tEtacPc9TA==} + '@react-aria/radio@3.12.2': + resolution: {integrity: sha512-I11f6I90neCh56rT/6ieAs3XyDKvEfbj/QmbU5cX3p+SJpRRPN0vxQi5D1hkh0uxDpeClxygSr31NmZsd4sqfg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/searchfield@3.8.2': - resolution: {integrity: sha512-xOhmzDd04CAl2d5L/g+PPqUSFCN7Ue11M9qTHnjoQ3HDJ4D82vY7Qik/crKGpJ2bV5ZoRxRuFaebqGRKCiJhSQ==} + '@react-aria/searchfield@3.8.9': + resolution: {integrity: sha512-Yt2pj8Wb5/XsUr2T0DQqFv+DlFpzzWIWnNr9cJATUcWV/xw6ok7YFEg9+7EHtBmsCQxFFJtock1QfZzBw6qLtQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/select@3.15.3': - resolution: {integrity: sha512-HNtDZTASz6Zt9cFUK+9rmS3XmTwVz/tx1+7W3NNGy5Xx4J8hua0BymcbKiC+Pp/ibPGJT4b7KYyE2N9J17/95w==} + '@react-aria/select@3.17.0': + resolution: {integrity: sha512-q5ZuyAn5jSOeI0Ys99951TaGcF4O7u1SSBVxPMwVVXOU8ZhToCNx+WG3n/JDYHEjqdo7sbsVRaPA7LkBzBGf5w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/selection@3.23.1': - resolution: {integrity: sha512-z4vVw7Fw0+nK46PPlCV8TyieCS+EOUp3eguX8833fFJ/QDlFp3Ewgw2T5qCIix5U3siXPYU0ZmAMOdrjibdGpQ==} + '@react-aria/selection@3.26.0': + resolution: {integrity: sha512-ZBH3EfWZ+RfhTj01dH8L17uT7iNbXWS8u77/fUpHgtrm0pwNVhx0TYVnLU1YpazQ/3WVpvWhmBB8sWwD1FlD/g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/separator@3.4.7': - resolution: {integrity: sha512-zALorCd1my7AAYjRCgR1RdI/w8usVH4GCD8d8MsNyKhZUSDn+TxeriDioNllfgL51rxFRFtnWFhD3/qYVK/vCg==} + '@react-aria/separator@3.4.13': + resolution: {integrity: sha512-0NlcrdBfQbcjWEXdHl3+uSY1272n2ljT1gWL2RIf6aQsQWTZ0gz0rTgRHy0MTXN+y+tICItUERJT4vmTLtIzVg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/slider@3.7.17': - resolution: {integrity: sha512-B+pdHiuM9G6zLYqvkMWAEiP2AppyC3IU032yUxBUrzh3DDoHPgU8HyFurFKS0diwigzcCBcq0yQ1YTalPzWV5A==} + '@react-aria/slider@3.8.2': + resolution: {integrity: sha512-6KyUGaVzRE4xAz1LKHbNh1q5wzxe58pdTHFSnxNe6nk1SCoHw7NfI4h2s2m6LgJ0megFxsT0Ir8aHaFyyxmbgg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/spinbutton@3.6.13': - resolution: {integrity: sha512-phF7WU4mTryPY+IORqQC6eGvCdLItJ41KJ8ZWmpubnLkhqyyxBn8BirXlxWC5UIIvir9c3oohX2Vip/bE5WJiA==} + '@react-aria/spinbutton@3.6.19': + resolution: {integrity: sha512-xOIXegDpts9t3RSHdIN0iYQpdts0FZ3LbpYJIYVvdEHo9OpDS+ElnDzCGtwZLguvZlwc5s1LAKuKopDUsAEMkw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/ssr@3.9.7': - resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} + '@react-aria/ssr@3.9.10': + resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} engines: {node: '>= 12'} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/switch@3.7.1': - resolution: {integrity: sha512-CE7G9pPeltbE5wEVIPlrbjarYoMNS8gsb3+RD4Be/ghKSpwppmQyn12WIs6oQl3YQSBD/GZhfA6OTyOBo0Ro9A==} + '@react-aria/switch@3.7.8': + resolution: {integrity: sha512-AfsUq1/YiuoprhcBUD9vDPyWaigAwctQNW1fMb8dROL+i/12B+Zekj8Ml+jbU69/kIVtfL0Jl7/0Bo9KK3X0xQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/table@3.17.1': - resolution: {integrity: sha512-yRZoeNwg+7ZNdq7kP9x+u9yMBL4spIdWvY9XTrYGq2XzNzl1aUUBNVszOV3hOwiU0DEF2zzUuuc8gc8Wys40zw==} + '@react-aria/table@3.17.8': + resolution: {integrity: sha512-bXiZoxTMbsqUJsYDhHPzKc3jw0HFJ/xMsJ49a0f7mp5r9zACxNLeIU0wJ4Uvx37dnYOHKzGliG+rj5l4sph7MA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tabs@3.10.1': - resolution: {integrity: sha512-9tcmp4L0cCTSkJAVvsw5XkjTs4MP4ajJsWPc9IUXYoutZWSDs2igqx3/7KKjRM4OrjSolNXFf8uWyr9Oqg+vCg==} + '@react-aria/tabs@3.10.8': + resolution: {integrity: sha512-sPPJyTyoAqsBh76JinBAxStOcbjZvyWFYKpJ9Uqw+XT0ObshAPPFSGeh8DiQemPs02RwJdrfARPMhyqiX8t59A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tag@3.5.1': - resolution: {integrity: sha512-dFB7bFeCoCZmyiTKwCsXPcQgqPMtqCtdF9B2gn9S/P6esXrPPr5jCvZKyKFZidbKpqiaQnj+SAln5qPBEftoSg==} + '@react-aria/tag@3.7.2': + resolution: {integrity: sha512-JV679P5r4DftbqyNBRt7Nw9mP7dxaKPfikjyQuvUoEOa06wBLbM/hU9RJUPRvqK+Un6lgBDAmXD9NNf4N2xpdw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/textfield@3.17.1': - resolution: {integrity: sha512-W/4nBdyXTOFPQXJ8eRK+74QFIpGR+x24SRjdl+y3WO6gFJNiiopWj8+slSK/T8LoD3g3QlzrtX/ooVQHCG3uQw==} + '@react-aria/textfield@3.18.2': + resolution: {integrity: sha512-G+lM8VYSor6g9Yptc6hLZ6BF+0cq0pYol1z6wdQUQgJN8tg4HPtzq75lsZtlCSIznL3amgRAxJtd0dUrsAnvaQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toast@3.0.1': - resolution: {integrity: sha512-WDzKvQsroIowe4y/5dsZDakG4g0mDju4ZhcEPY3SFVnEBbAH1k0fwSgfygDWZdwg9FS3+oA1IYcbVt4ClK3Vfg==} + '@react-aria/toast@3.0.8': + resolution: {integrity: sha512-rfJIms6AkMyQ7ZgKrMZgGfPwGcB/t1JoEwbc1PAmXcAvFI/hzF6YF7ZFDXiq38ucFsP9PnHmbXIzM9w4ccl18A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toggle@3.11.1': - resolution: {integrity: sha512-9SBvSFpGcLODN1u64tQ8aL6uLFnuuJRA2N0Kjmxp5PE1gk8IKG+BXsjZmq7auDAN5WPISBXw1RzEOmbghruBTQ==} + '@react-aria/toggle@3.12.2': + resolution: {integrity: sha512-g25XLYqJuJpt0/YoYz2Rab8ax+hBfbssllcEFh0v0jiwfk2gwTWfRU9KAZUvxIqbV8Nm8EBmrYychDpDcvW1kw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/toolbar@3.0.0-beta.14': - resolution: {integrity: sha512-F9wFYhcbVUveo6+JfAjKyz19BnBaXBYG7YyZdGurhn5E1bD+Zrwz/ZCTrrx40xJsbofciCiiwnKiXmzB20Kl5Q==} + '@react-aria/toolbar@3.0.0-beta.21': + resolution: {integrity: sha512-yRCk/GD8g+BhdDgxd3I0a0c8Ni4Wyo6ERzfSoBkPkwQ4X2E2nkopmraM9D0fXw4UcIr4bnmvADzkHXtBN0XrBg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tooltip@3.8.1': - resolution: {integrity: sha512-g5Vr5HFGfLQRxdYs8nZeXeNrni5YcRGegRjnEDUZwW+Gwvu8KTrD7IeXrBDndS+XoTzKC4MzfvtyXWWpYmT0KQ==} + '@react-aria/tooltip@3.8.8': + resolution: {integrity: sha512-CmHUqtXtFWmG4AHMEr9hIVex+oscK6xcM2V47gq9ijNInxe3M6UBu/dBdkgGP/jYv9N7tzCAjTR8nNIHQXwvWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/tree@3.0.1': - resolution: {integrity: sha512-USYRpbpbUChDFSquCc6eYQ+czTuge5m9XH1F/xfSJD0gEe9BG7dRJ9GB/dy6yBoZoNy3VWpTNrHUfPnmiKpgUw==} + '@react-aria/tree@3.1.4': + resolution: {integrity: sha512-6pbFeN0dAsCOrFGUKU39CNjft20zCAjLfMqfkRWisL+JkUHI2nq6odUJF5jJTsU1C+1951+3oFOmVxPX+K+akQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/utils@3.28.1': - resolution: {integrity: sha512-mnHFF4YOVu9BRFQ1SZSKfPhg3z+lBRYoW5mLcYTQihbKhz48+I1sqRkP7ahMITr8ANH3nb34YaMME4XWmK2Mgg==} + '@react-aria/utils@3.31.0': + resolution: {integrity: sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/virtualizer@4.1.3': - resolution: {integrity: sha512-WzxqQa0mVw96EKHWZIJYQlZfmpOJNpj7PX2Bliawm4rkSS1hpw38waQEHyR95Aexk4vTo5OQnO3w8pun0LXfqg==} + '@react-aria/virtualizer@4.1.10': + resolution: {integrity: sha512-s0xOFh602ybTWuDrV/i6fV7Pz7vYghsY7F/RpYL/5IX9qCZ5C1FWFePpVktQAZghnd3ljH8hS8DULPeDfVLCrg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/visually-hidden@3.8.21': - resolution: {integrity: sha512-iii5qO+cVHrHiOeiBYCnTRUQG2eOgEPFmiMG4dAuby8+pJJ8U4BvffX2sDTYWL6ztLLBYyrsUHPSw1Ld03JhmA==} + '@react-aria/visually-hidden@3.8.28': + resolution: {integrity: sha512-KRRjbVVob2CeBidF24dzufMxBveEUtUu7IM+hpdZKB+gxVROoh4XRLPv9SFmaH89Z7D9To3QoykVZoWD0lan6Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/autocomplete@3.0.0-beta.0': - resolution: {integrity: sha512-nWRbDzqHzdZySIqwoEBMIdineoQxR1Wzmb86r+NICBX9cNv0tZBLNnHywHsul/MN61/TthdOpay1QwZUoQSrXw==} + '@react-stately/autocomplete@3.0.0-beta.3': + resolution: {integrity: sha512-YfP/TrvkOCp6j7oqpZxJSvmSeXn+XtbKSOiBOuo+m2zCIhW2ncThmDB9uAUOkpmikDv/LkGKni40RQE8USdGdA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/calendar@3.7.1': - resolution: {integrity: sha512-DXsJv2Xm1BOqJAx5846TmTG1IZ0oKrBqYAzWZG7hiDq3rPjYGgKtC/iJg9MUev6pHhoZlP9fdRCNFiCfzm5bLQ==} + '@react-stately/calendar@3.9.0': + resolution: {integrity: sha512-U5Nf2kx9gDhJRxdDUm5gjfyUlt/uUfOvM1vDW2UA62cA6+2k2cavMLc2wNlXOb/twFtl6p0joYKHG7T4xnEFkg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/checkbox@3.6.12': - resolution: {integrity: sha512-gMxrWBl+styUD+2ntNIcviVpGt2Y+cHUGecAiNI3LM8/K6weI7938DWdLdK7i0gDmgSJwhoNRSavMPI1W6aMZQ==} + '@react-stately/checkbox@3.7.2': + resolution: {integrity: sha512-j1ycUVz5JmqhaL6mDZgDNZqBilOB8PBW096sDPFaTtuYreDx2HOd1igxiIvwlvPESZwsJP7FVM3mYnaoXtpKPA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/collections@3.12.2': - resolution: {integrity: sha512-RoehfGwrsYJ/WGtyGSLZNYysszajnq0Q3iTXg7plfW1vNEzom/A31vrLjOSOHJWAtwW339SDGGRpymDtLo4GWA==} + '@react-stately/collections@3.12.8': + resolution: {integrity: sha512-AceJYLLXt1Y2XIcOPi6LEJSs4G/ubeYW3LqOCQbhfIgMaNqKfQMIfagDnPeJX9FVmPFSlgoCBxb1pTJW2vjCAQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/color@3.8.3': - resolution: {integrity: sha512-0KaVN2pIOxdAKanFxkx/8zl+73tCoUn2+k7nvK7SpAsFpWScteEHW6hMdmQVwQ2+X+OtQRYHyhhTXULMIIY6iw==} + '@react-stately/color@3.9.2': + resolution: {integrity: sha512-F+6Do8W3yu/4n7MpzZtbXwVukcLTFYYDIUtpoR+Jl52UmAr9Hf1CQgkyTI2azv1ZMzj1mVrTBhpBL0q27kFZig==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/combobox@3.10.3': - resolution: {integrity: sha512-l4yr8lSHfwFdA+ZpY15w98HkgF1iHytjerdQkMa4C0dCl4NWUyyWMOcgmHA8G56QEdbFo5dXyW6hzF2PJnUOIg==} + '@react-stately/combobox@3.12.0': + resolution: {integrity: sha512-A6q9R/7cEa/qoQsBkdslXWvD7ztNLLQ9AhBhVN9QvzrmrH5B4ymUwcTU8lWl22ykH7RRwfonLeLXJL4C+/L2oQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/data@3.12.2': - resolution: {integrity: sha512-u0yQkISnPyR5RjpNJCSxyC28bx/UvUKtVYRH5yx/MtXbP+2Byn7ItQ+evRqpJB5XsWFlyohGebgbXvL3JSBVsg==} + '@react-stately/data@3.14.1': + resolution: {integrity: sha512-lDNc4gZ6kVZcrABeeQZPTTnP+1ykNylSvFzAC/Hq1fs8+s54xLRvoENWIyG+yK19N9TIGEoA0AOFG8PoAun43g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/datepicker@3.13.0': - resolution: {integrity: sha512-I0Y/aQraQyRLMWnh5tBZMiZ0xlmvPjFErXnQaeD7SdOYUHNtQS4BAQsMByQrMfg8uhOqUTKlIh7xEZusuqYWOA==} + '@react-stately/datepicker@3.15.2': + resolution: {integrity: sha512-S5GL+W37chvV8knv9v0JRv0L6hKo732qqabCCHXzOpYxkLIkV4f/y3cHdEzFWzpZ0O0Gkg7WgeYo160xOdBKYg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/disclosure@3.0.2': - resolution: {integrity: sha512-hiArGiJY2y9HcLaGaO1WaXgrTsowd64ZMh8ADVSmxr9drqiMSZ1GXmKuf3DDRHfqKMXX96HNkx5nbv2pczWCsg==} + '@react-stately/disclosure@3.0.8': + resolution: {integrity: sha512-/Ce/Z76y85eSBZiemfU/uEyXkBBa1RdfLRaKD13rnfUV7/nS3ae1VtNlsXgmwQjWv2pmAiSuEKYMbZfVL7q/lQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/dnd@3.5.2': - resolution: {integrity: sha512-W3Q3O3eIMPHGVKSvkswY8+WCXEli6Wr+LLXYizwAl0dt2+dKKE4r91YugSVnJxXq3cw1/Z4nccmsAPRZa31plQ==} + '@react-stately/dnd@3.7.1': + resolution: {integrity: sha512-O1JBJ4HI1rVNKuoa5NXiC5FCrCEkr9KVBoKNlTZU8/cnQselhbEsUfMglAakO2EuwIaM1tIXoNF5J/N5P+6lTA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/flags@3.1.0': - resolution: {integrity: sha512-KSHOCxTFpBtxhIRcKwsD1YDTaNxFtCYuAUb0KEihc16QwqZViq4hasgPBs2gYm7fHRbw7WYzWKf6ZSo/+YsFlg==} + '@react-stately/flags@3.1.2': + resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} - '@react-stately/form@3.1.2': - resolution: {integrity: sha512-sKgkV+rxeqM1lf0dCq2wWzdYa5Z0wz/MB3yxjodffy8D43PjFvUOMWpgw/752QHPGCd1XIxA3hE58Dw9FFValg==} + '@react-stately/form@3.2.2': + resolution: {integrity: sha512-soAheOd7oaTO6eNs6LXnfn0tTqvOoe3zN9FvtIhhrErKz9XPc5sUmh3QWwR45+zKbitOi1HOjfA/gifKhZcfWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/grid@3.11.0': - resolution: {integrity: sha512-Wp6kza+2MzNybls9pRWvIwAHwMnSV1eUZXZxLwJy+JVS5lghkr731VvT+YD79z70osJKmgxgmiQGm4/yfetXdA==} + '@react-stately/grid@3.11.6': + resolution: {integrity: sha512-vWPAkzpeTIsrurHfMubzMuqEw7vKzFhIJeEK5sEcLunyr1rlADwTzeWrHNbPMl66NAIAi70Dr1yNq+kahQyvMA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/layout@4.2.1': - resolution: {integrity: sha512-8ndL33URRyDm6Z+NUR2gS0eVOZQB2mP4pGyvSaM8W68RKF5+XXaPY4QLBuCo2+TsNlqsBNbI2qAznQW1SPQ3+g==} + '@react-stately/layout@4.5.1': + resolution: {integrity: sha512-Zk92HM6a8KFdyPzslhLCOmrrsvJ28+vFBisgiKMwVhe96cWlax1m9i4ktmO43xaUpSZkn06DRD/2k0d1x+Uwjw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/list@3.12.0': - resolution: {integrity: sha512-6niQWJ6TZwOKLAOn2wIsxtOvWenh3rKiKdOh4L4O4f7U+h1Hu000Mu4lyIQm2P9uZAkF2Y5QNh6dHN+hSd6h3A==} + '@react-stately/list@3.13.1': + resolution: {integrity: sha512-eHaoauh21twbcl0kkwULhVJ+CzYcy1jUjMikNVMHOQdhr4WIBdExf7PmSgKHKqsSPhpGg6IpTCY2dUX3RycjDg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/menu@3.9.2': - resolution: {integrity: sha512-mVCFMUQnEMs6djOqgHC2d46k/5Mv5f6UYa4TMnNDSiY8QlHG4eIdmhBmuYpOwWuOOHJ0xKmLQ4PWLzma/mBorg==} + '@react-stately/menu@3.9.8': + resolution: {integrity: sha512-bo0NOhofnTHLESiYfsSSw6gyXiPVJJ0UlN2igUXtJk5PmyhWjFzUzTzcnd7B028OB0si9w3LIWM3stqz5271Eg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/numberfield@3.9.10': - resolution: {integrity: sha512-47ta1GyfLsSaDJIdH6A0ARttPV32nu8a5zUSE2hTfRqwgAd3ksWW5ZEf6qIhDuhnE9GtaIuacsctD8C7M3EOPw==} + '@react-stately/numberfield@3.10.2': + resolution: {integrity: sha512-jlKVFYaH3RX5KvQ7a+SAMQuPccZCzxLkeYkBE64u1Zvi7YhJ8hkTMHG/fmZMbk1rHlseE2wfBdk0Rlya3MvoNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/overlays@3.6.14': - resolution: {integrity: sha512-RRalTuHdwrKO1BmXKaqBtE1GGUXU4VUAWwgh4lsP2EFSixDHmOVLxHFDWYvOPChBhpi8KXfLEgm6DEgPBvLBZQ==} + '@react-stately/overlays@3.6.20': + resolution: {integrity: sha512-YAIe+uI8GUXX8F/0Pzr53YeC5c/bjqbzDFlV8NKfdlCPa6+Jp4B/IlYVjIooBj9+94QvbQdjylegvYWK/iPwlg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/radio@3.10.11': - resolution: {integrity: sha512-dclixp3fwNBbgpbi66x36YGaNwN7hI1nbuhkcnLAE0hWkTO8/wtKBgGqRKSfNV7MSiWlhBhhcdPcQ+V7q7AQIQ==} + '@react-stately/radio@3.11.2': + resolution: {integrity: sha512-UM7L6AW+k8edhSBUEPZAqiWNRNadfOKK7BrCXyBiG79zTz0zPcXRR+N+gzkDn7EMSawDeyK1SHYUuoSltTactg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/searchfield@3.5.10': - resolution: {integrity: sha512-6K0+k/8BO/Iq+ODC5mUSIb+tymemliSiSG6B5auWWOZjnnQ0+9M0MYCUdsiJDPk5aUml5aNYI6rlMZO13uHmVw==} + '@react-stately/searchfield@3.5.16': + resolution: {integrity: sha512-MRfqT1lZ24r94GuFNcGJXsfijZoWjSMySCT60T6NXtbOzVPuAF3K+pL70Rayq/EWLJjS2NPHND11VTs0VdcE0Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/select@3.6.11': - resolution: {integrity: sha512-8pD4PNbZQNWg33D4+Fa0mrajUCYV3aA5YIwW3GY8NSRwBspaW4PKSZJtDT5ieN0WAO44YkAmX4idRaMAvqRusA==} + '@react-stately/select@3.8.0': + resolution: {integrity: sha512-A721nlt0DSCDit0wKvhcrXFTG5Vv1qkEVkeKvobmETZy6piKvwh0aaN8iQno5AFuZaj1iOZeNjZ/20TsDJR/4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/selection@3.20.0': - resolution: {integrity: sha512-woUSHMTyQiNmCf63Dyot1WXFfWnm6PFYkI9kymcq1qrrly4g/j27U+5PaRWOHawMiJwn1e1GTogk8B+K5ahshQ==} + '@react-stately/selection@3.20.6': + resolution: {integrity: sha512-a0bjuP2pJYPKEiedz2Us1W1aSz0iHRuyeQEdBOyL6Z6VUa6hIMq9H60kvseir2T85cOa4QggizuRV7mcO6bU5w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/slider@3.6.2': - resolution: {integrity: sha512-5S9omr29Viv2PRyZ056ZlazGBM8wYNNHakxsTHcSdG/G8WQLrWspWIMiCd4B37cCTkt9ik6AQ6Y3muHGXJI0IQ==} + '@react-stately/slider@3.7.2': + resolution: {integrity: sha512-EVBHUdUYwj++XqAEiQg2fGi8Reccznba0uyQ3gPejF0pAc390Q/J5aqiTEDfiCM7uJ6WHxTM6lcCqHQBISk2dQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/table@3.14.0': - resolution: {integrity: sha512-ALHIgAgSyHeyUiBDWIxmIEl9P4Gy5jlGybcT/rDBM8x7Ik/C/0Hd9f9Y5ubiZSpUGeAXlIaeEdSm0HBfYtQVRw==} + '@react-stately/table@3.15.1': + resolution: {integrity: sha512-MhMAgE/LgAzHcAn1P3p/nQErzJ6DiixSJ1AOt2JlnAKEb5YJg4ATKWCb2IjBLwywt9ZCzfm3KMUzkctZqAoxwA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tabs@3.8.0': - resolution: {integrity: sha512-I8ctOsUKPviJ82xWAcZMvWqz5/VZurkE+W9n9wrFbCgHAGK/37bx+PM1uU/Lk4yKp8WrPYSFOEPil5liD+M+ew==} + '@react-stately/tabs@3.8.6': + resolution: {integrity: sha512-9RYxmgjVIxUpIsGKPIF7uRoHWOEz8muwaYiStCVeyiYBPmarvZoIYtTXcwSMN/vEs7heVN5uGCL6/bfdY4+WiA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/toast@3.0.0': - resolution: {integrity: sha512-g7e4hNO9E6kOqyBeLRAfZBihp1EIQikmaH3Uj/OZJXKvIDKJlNlpvwstUIcmEuEzqA1Uru78ozxIVWh3pg9ubg==} + '@react-stately/toast@3.1.2': + resolution: {integrity: sha512-HiInm7bck32khFBHZThTQaAF6e6/qm57F4mYRWdTq8IVeGDzpkbUYibnLxRhk0UZ5ybc6me+nqqPkG/lVmM42Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/toggle@3.8.2': - resolution: {integrity: sha512-5KPpT6zvt8H+WC9UbubhCTZltREeYb/3hKdl4YkS7BbSOQlHTFC0pOk8SsQU70Pwk26jeVHbl5le/N8cw00x8w==} + '@react-stately/toggle@3.9.2': + resolution: {integrity: sha512-dOxs9wrVXHUmA7lc8l+N9NbTJMAaXcYsnNGsMwfXIXQ3rdq+IjWGNYJ52UmNQyRYFcg0jrzRrU16TyGbNjOdNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tooltip@3.5.2': - resolution: {integrity: sha512-z81kwZWnnf2SE5/rHMrejH5uQu3dXUjrhIa2AGT038DNOmRyS9TkFBywPCiiE7tHpUg/rxZrPxx01JFGvOkmgg==} + '@react-stately/tooltip@3.5.8': + resolution: {integrity: sha512-gkcUx2ROhCiGNAYd2BaTejakXUUNLPnnoJ5+V/mN480pN+OrO8/2V9pqb/IQmpqxLsso93zkM3A4wFHHLBBmPQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/tree@3.8.8': - resolution: {integrity: sha512-21WB9kKT9+/tr6B8Q4G53tZXl/3dftg5sZqCR6x055FGd2wGVbkxsLhQLmC+XVkTiLU9pB3BjvZ9eaSj1D8Wmg==} + '@react-stately/tree@3.9.3': + resolution: {integrity: sha512-ZngG79nLFxE/GYmpwX6E/Rma2MMkzdoJPRI3iWk3dgqnGMMzpPnUp/cvjDsU3UHF7xDVusC5BT6pjWN0uxCIFQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/utils@3.10.5': - resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} + '@react-stately/utils@3.10.8': + resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/virtualizer@4.3.1': - resolution: {integrity: sha512-yWRR9NhaD9NQezRUm1n0cQAYAOAYLOJSxVrCAKyhz/AYvG5JMMvFk3kzgrX8YZXoZKjybcdvy3YZ+jbCSprR6g==} + '@react-stately/virtualizer@4.4.4': + resolution: {integrity: sha512-ri8giqXSZOrznZDCCOE4U36wSkOhy+hrFK7yo/YVcpxTqqp3d3eisfKMqbDsgqBW+XTHycTU/xeAf0u9NqrfpQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/autocomplete@3.0.0-alpha.29': - resolution: {integrity: sha512-brP6fb7RAdfu/liaE4gFZIZQJLXksgtOzdu/I5cmcHfpqScAFmgedZHkJoeutK9wTWtNnfuKAFQ2w9KKlIBj9w==} + '@react-types/autocomplete@3.0.0-alpha.35': + resolution: {integrity: sha512-Wv5eU4WixfJ4M+fqvJUQqliWPbw7/VldRlgoJhqAlPwlNyLlHYwv5tlA64AySDXHGcSMIbzcS38LaHm44wt0AQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/breadcrumbs@3.7.11': - resolution: {integrity: sha512-pMvMLPFr7qs4SSnQ0GyX7i3DkWVs9wfm1lGPFbBO7pJLrHTSK/6Ii4cTEvP6d5o2VgjOVkvce9xCLWW5uosuEQ==} + '@react-types/breadcrumbs@3.7.17': + resolution: {integrity: sha512-IhvVTcfli5o/UDlGACXxjlor2afGlMQA8pNR3faH0bBUay1Fmm3IWktVw9Xwmk+KraV2RTAg9e+E6p8DOQZfiw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/button@3.11.0': - resolution: {integrity: sha512-gJh5i0JiBiZGZGDo+tXMp6xbixPM7IKZ0sDuxTYBG49qNzzWJq0uNYltO3emwSVXFSsBgRV/Wu8kQGhfuN7wIw==} + '@react-types/button@3.14.1': + resolution: {integrity: sha512-D8C4IEwKB7zEtiWYVJ3WE/5HDcWlze9mLWQ5hfsBfpePyWCgO3bT/+wjb/7pJvcAocrkXo90QrMm85LcpBtrpg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/calendar@3.6.1': - resolution: {integrity: sha512-EMbFJX/3gD5j+R0qZEGqK+wlhBxMSHhGP8GqP9XGbpuJPE3w9/M/PVWdh8FUdzf9srYxPOq5NgiGI1JUJvdZqw==} + '@react-types/calendar@3.8.0': + resolution: {integrity: sha512-ZDZgfZgbz1ydWOFs1mH7QFfX3ioJrmb3Y/lkoubQE0HWXLZzyYNvhhKyFJRS1QJ40IofLSBHriwbQb/tsUnGlw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/checkbox@3.9.2': - resolution: {integrity: sha512-BruOLjr9s0BS2+G1Q2ZZ0ubnSTG54hZWr59lCHXaLxMdA/+KVsR6JVMQuYKsW0P8RDDlQXE/QGz3n9yB/Ara4A==} + '@react-types/checkbox@3.10.2': + resolution: {integrity: sha512-ktPkl6ZfIdGS1tIaGSU/2S5Agf2NvXI9qAgtdMDNva0oLyAZ4RLQb6WecPvofw1J7YKXu0VA5Mu7nlX+FM2weQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/color@3.0.3': - resolution: {integrity: sha512-oIVdluqe4jYW6tHEHX80tuhhjCA93HElTzbzIGhDezgEbC/EEhWnoC3sGlkUTqIGdzhZG0T+HAkf3AZbCrXqZA==} + '@react-types/color@3.1.2': + resolution: {integrity: sha512-NP0TAY3j4tlMztOp/bBfMlPwC9AQKTjSiTFmc2oQNkx5M4sl3QpPqFPosdt7jZ8M4nItvfCWZrlZGjST4SB83A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/combobox@3.13.3': - resolution: {integrity: sha512-ASPLWuHke4XbnoOWUkNTguUa2cnpIsHPV0bcnfushC0yMSC4IEOlthstEbcdzjVUpWXSyaoI1R4POXmdIP53Nw==} + '@react-types/combobox@3.13.9': + resolution: {integrity: sha512-G6GmLbzVkLW6VScxPAr/RtliEyPhBClfYaIllK1IZv+Z42SVnOpKzhnoe79BpmiFqy1AaC3+LjZX783mrsHCwA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/datepicker@3.11.0': - resolution: {integrity: sha512-GAYgPzqKvd1lR2sLYYMlUkNg2+QoM2uVUmpeQLP1SbYpDr1y8lG5cR54em1G4X/qY4+nCWGiwhRC2veP0D0kfA==} + '@react-types/datepicker@3.13.2': + resolution: {integrity: sha512-+M6UZxJnejYY8kz0spbY/hP08QJ5rsZ3aNarRQQHc48xV2oelFLX5MhAqizfLEsvyfb0JYrhWoh4z1xZtAmYCg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/dialog@3.5.16': - resolution: {integrity: sha512-2D16XjuW9fG3LkVIXu3RzUp3zcK2IZOWlAl+r5i0aLw2Q0QHyYMfGbmgvhxVeAhxhEj/57/ziSl/8rJ9pzmFnw==} + '@react-types/dialog@3.5.22': + resolution: {integrity: sha512-smSvzOcqKE196rWk0oqJDnz+ox5JM5+OT0PmmJXiUD4q7P5g32O6W5Bg7hMIFUI9clBtngo8kLaX2iMg+GqAzg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/form@3.7.10': - resolution: {integrity: sha512-PPn1OH/QlQLPaoFqp9EMVSlNk41aiNLwPaMyRhzYvFBGLmtbuX+7JCcH2DgV1peq3KAuUKRDdI2M1iVdHYwMPw==} + '@react-types/form@3.7.16': + resolution: {integrity: sha512-Sb7KJoWEaQ/e4XIY+xRbjKvbP1luome98ZXevpD+zVSyGjEcfIroebizP6K1yMHCWP/043xH6GUkgEqWPoVGjg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/grid@3.3.0': - resolution: {integrity: sha512-9IXgD5qXXxz+S9RK+zT8umuTCEcE4Yfdl0zUGyTCB8LVcPEeZuarLGXZY/12Rkbd8+r6MUIKTxMVD3Nq9X5Ksg==} + '@react-types/grid@3.3.6': + resolution: {integrity: sha512-vIZJlYTii2n1We9nAugXwM2wpcpsC6JigJFBd6vGhStRdRWRoU4yv1Gc98Usbx0FQ/J7GLVIgeG8+1VMTKBdxw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/link@3.5.11': - resolution: {integrity: sha512-aX9sJod9msdQaOT0NUTYNaBKSkXGPazSPvUJ/Oe4/54T3sYkWeRqmgJ84RH55jdBzpbObBTg8qxKiPA26a1q9Q==} + '@react-types/link@3.6.5': + resolution: {integrity: sha512-+I2s3XWBEvLrzts0GnNeA84mUkwo+a7kLUWoaJkW0TOBDG7my95HFYxF9WnqKye7NgpOkCqz4s3oW96xPdIniQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/listbox@3.5.5': - resolution: {integrity: sha512-6cUjbYZVa0X2UMsenQ50ZaAssTUfzX3D0Q0Wd5nNf4W7ntBroDg6aBfNQoPDZikPUy8u+Y3uc/xZQfv30si7NA==} + '@react-types/listbox@3.7.4': + resolution: {integrity: sha512-p4YEpTl/VQGrqVE8GIfqTS5LkT5jtjDTbVeZgrkPnX/fiPhsfbTPiZ6g0FNap4+aOGJFGEEZUv2q4vx+rCORww==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/menu@3.9.15': - resolution: {integrity: sha512-vNEeGxKLYBJc3rwImnEhSVzeIrhUSSRYRk617oGZowX3NkWxnixFGBZNy0w8j0z8KeNz3wRM4xqInRord1mDbw==} + '@react-types/menu@3.10.5': + resolution: {integrity: sha512-HBTrKll2hm0VKJNM4ubIv1L9MNo8JuOnm2G3M+wXvb6EYIyDNxxJkhjsqsGpUXJdAOSkacHBDcNh2HsZABNX4A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/meter@3.4.7': - resolution: {integrity: sha512-2GwNJ65+jd8lvrHMel/kiU8o7oPAOt1Sd+kezaeGBTbzKxUhCOAAlp9+zMha8vHQwmMvqcmfAHAqIBGaaCfh5w==} + '@react-types/meter@3.4.13': + resolution: {integrity: sha512-EiarfbpHcvmeyXvXcr6XLaHkNHuGc4g7fBVEiDPwssFJKKfbUzqnnknDxPjyspqUVRcXC08CokS98J1jYobqDg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/numberfield@3.8.9': - resolution: {integrity: sha512-YqhawYUULiZnUba0/9Vaps8WAT2lto4V6CD/X7s048jiOrHiiIX03RDEAQuKOt1UYdzBJDHfSew9uGMyf/nC0g==} + '@react-types/numberfield@3.8.15': + resolution: {integrity: sha512-97r92D23GKCOjGIGMeW9nt+/KlfM3GeWH39Czcmd2/D5y3k6z4j0avbsfx2OttCtJszrnENjw3GraYGYI2KosQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/overlays@3.8.13': - resolution: {integrity: sha512-xgT843KIh1otvYPQ6kCGTVUICiMF5UQ7SZUQZd4Zk3VtiFIunFVUvTvL03cpt0026UmY7tbv7vFrPKcT6xjsjw==} + '@react-types/overlays@3.9.2': + resolution: {integrity: sha512-Q0cRPcBGzNGmC8dBuHyoPR7N3057KTS5g+vZfQ53k8WwmilXBtemFJPLsogJbspuewQ/QJ3o2HYsp2pne7/iNw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/progress@3.5.10': - resolution: {integrity: sha512-YDQExymdgORnSvXTtOW7SMhVOinlrD3bAlyCxO+hSAVaI1Ax38pW5dUFf6H85Jn7hLpjPQmQJvNsfsJ09rDFjQ==} + '@react-types/progress@3.5.16': + resolution: {integrity: sha512-I9tSdCFfvQ7gHJtm90VAKgwdTWXQgVNvLRStEc0z9h+bXBxdvZb+QuiRPERChwFQ9VkK4p4rDqaFo69nDqWkpw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/radio@3.8.7': - resolution: {integrity: sha512-K620hnDmSR7u9cZfwJIfoLvmZS1j9liD7nDXBm+N6aiq9E+8sw312sIEX5iR2TrQ4xovvJQZN7DWxPVr+1LfWw==} + '@react-types/radio@3.9.2': + resolution: {integrity: sha512-3UcJXu37JrTkRyP4GJPDBU7NmDTInrEdOe+bVzA1j4EegzdkJmLBkLg5cLDAbpiEHB+xIsvbJdx6dxeMuc+H3g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/searchfield@3.6.0': - resolution: {integrity: sha512-eHQSP85j0hWhWEauPDdr+4kmLB3hUEWxU4ANNubalkupXKhGeRge5/ysHrWjEsLmoodfQ+RS6QIRLQRDsQF/4g==} + '@react-types/searchfield@3.6.6': + resolution: {integrity: sha512-cl3itr/fk7wbIQc2Gz5Ie8aVeUmPjVX/mRGS5/EXlmzycAKNYTvqf2mlxwObLndtLISmt7IgNjRRhbUUDI8Ang==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/select@3.9.10': - resolution: {integrity: sha512-vvC5+cBSOu6J6lm74jhhP3Zvo1JO8m0FNX+Q95wapxrhs2aYYeMIgVuvNKeOuhVqzpBZxWmblBjCVNzCArZOaQ==} + '@react-types/select@3.11.0': + resolution: {integrity: sha512-SzIsMFVPCbXE1Z1TLfpdfiwJ1xnIkcL1/CjGilmUKkNk5uT7rYX1xCJqWCjXI0vAU1xM4Qn+T3n8de4fw6HRBg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.28.0': - resolution: {integrity: sha512-9oMEYIDc3sk0G5rysnYvdNrkSg7B04yTKl50HHSZVbokeHpnU0yRmsDaWb9B/5RprcKj8XszEk5guBO8Sa/Q+Q==} + '@react-types/shared@3.32.1': + resolution: {integrity: sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/slider@3.7.9': - resolution: {integrity: sha512-MxCIVkrBSbN3AxIYW4hOpTcwPmIuY4841HF36sDLFWR3wx06z70IY3GFwV7Cbp814vhc84d4ABnPMwtE+AZRGQ==} + '@react-types/slider@3.8.2': + resolution: {integrity: sha512-MQYZP76OEOYe7/yA2To+Dl0LNb0cKKnvh5JtvNvDnAvEprn1RuLiay8Oi/rTtXmc2KmBa4VdTcsXsmkbbkeN2Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/switch@3.5.9': - resolution: {integrity: sha512-7XIS5qycIKhdfcWfzl8n458/7tkZKCNfMfZmIREgozKOtTBirjmtRRsefom2hlFT8VIlG7COmY4btK3oEuEhnQ==} + '@react-types/switch@3.5.15': + resolution: {integrity: sha512-r/ouGWQmIeHyYSP1e5luET+oiR7N7cLrAlWsrAfYRWHxqXOSNQloQnZJ3PLHrKFT02fsrQhx2rHaK2LfKeyN3A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/table@3.11.0': - resolution: {integrity: sha512-83cGyszL+sQ0uFNZvrnvDMg2KIxpe3l5U48IH9lvq2NC41Y4lGG0d7sBU6wgcc3vnQ/qhOE5LcbceGKEi2YSyw==} + '@react-types/table@3.13.4': + resolution: {integrity: sha512-I/DYiZQl6aNbMmjk90J9SOhkzVDZvyA3Vn3wMWCiajkMNjvubFhTfda5DDf2SgFP5l0Yh6TGGH5XumRv9LqL5Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/tabs@3.3.13': - resolution: {integrity: sha512-jqaK2U+WKChAmYBMO8QxQlFaIM8zDRY9+ignA1HwIyRw7vli4Mycc4RcMxTPm8krvgo+zuVrped9QB+hsDjCsQ==} + '@react-types/tabs@3.3.19': + resolution: {integrity: sha512-fE+qI43yR5pAMpeqPxGqQq9jDHXEPqXskuxNHERMW0PYMdPyem2Cw6goc5F4qeZO3Hf6uPZgHkvJz2OAq7TbBw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/textfield@3.12.0': - resolution: {integrity: sha512-B0vzCIBUbYWrlFk+odVXrSmPYwds9G+G+HiOO/sJr4eZ4RYiIqnFbZ7qiWhWXaou7vi71iXVqKQ8mxA6bJwPEQ==} + '@react-types/textfield@3.12.6': + resolution: {integrity: sha512-hpEVKE+M3uUkTjw2WrX1NrH/B3rqDJFUa+ViNK2eVranLY4ZwFqbqaYXSzHupOF3ecSjJJv2C103JrwFvx6TPQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/tooltip@3.4.15': - resolution: {integrity: sha512-qiYwQLiEwYqrt/m8iQA8abl9k/9LrbtMNoEevL4jN4H0I5NrG55E78GYTkSzBBYmhBO4KnPVT0SfGM1tYaQx/A==} + '@react-types/tooltip@3.4.21': + resolution: {integrity: sha512-ugGHOZU6WbOdeTdbjnaEc+Ms7/WhsUCg+T3PCOIeOT9FG02Ce189yJ/+hd7oqL/tVwIhEMYJIqSCgSELFox+QA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@rgrove/parse-xml@3.0.0': - resolution: {integrity: sha512-GFGDywRwGbuGq9yeL8wTjjLOsZ5Ps4O5tQ71eDcAfaZrZeA7Oe8QJzrnmFgplWtnoaBIBaFBB3n5Ht9iU4jLLw==} - engines: {node: '>=12.0.0'} + '@remix-run/node-fetch-server@0.8.1': + resolution: {integrity: sha512-J1dev372wtJqmqn9U/qbpbZxbJSQrogNN2+Qv1lKlpATpe/WQ9aCZfl/xSb9d2Rgh1IyLSvNxZAXPZxruO6Xig==} - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.34.6': - resolution: {integrity: sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==} + '@rollup/rollup-android-arm-eabi@4.52.4': + resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.6': - resolution: {integrity: sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==} + '@rollup/rollup-android-arm64@4.52.4': + resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.6': - resolution: {integrity: sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==} + '@rollup/rollup-darwin-arm64@4.52.4': + resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.6': - resolution: {integrity: sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==} + '@rollup/rollup-darwin-x64@4.52.4': + resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.6': - resolution: {integrity: sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==} + '@rollup/rollup-freebsd-arm64@4.52.4': + resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.6': - resolution: {integrity: sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==} + '@rollup/rollup-freebsd-x64@4.52.4': + resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': - resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==} + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.6': - resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==} + '@rollup/rollup-linux-arm-musleabihf@4.52.4': + resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.6': - resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==} + '@rollup/rollup-linux-arm64-gnu@4.52.4': + resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.6': - resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==} + '@rollup/rollup-linux-arm64-musl@4.52.4': + resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': - resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==} + '@rollup/rollup-linux-loong64-gnu@4.52.4': + resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': - resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==} + '@rollup/rollup-linux-ppc64-gnu@4.52.4': + resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.6': - resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==} + '@rollup/rollup-linux-riscv64-gnu@4.52.4': + resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.6': - resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==} + '@rollup/rollup-linux-riscv64-musl@4.52.4': + resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.52.4': + resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.6': - resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==} + '@rollup/rollup-linux-x64-gnu@4.52.4': + resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.6': - resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==} + '@rollup/rollup-linux-x64-musl@4.52.4': + resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.6': - resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==} + '@rollup/rollup-openharmony-arm64@4.52.4': + resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.52.4': + resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.6': - resolution: {integrity: sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==} + '@rollup/rollup-win32-ia32-msvc@4.52.4': + resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.6': - resolution: {integrity: sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==} + '@rollup/rollup-win32-x64-gnu@4.52.4': + resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.52.4': + resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} cpu: [x64] os: [win32] '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sindresorhus/is@7.0.2': - resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==} + '@sindresorhus/is@7.1.0': + resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} engines: {node: '>=18'} '@sinonjs/commons@3.0.1': @@ -1896,6 +2409,9 @@ packages: '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@stream-io/escape-string-regexp@5.0.1': resolution: {integrity: sha512-qIaSrzJXieZqo2fZSYTdzwSbZgHHsT3tkd646vvZhh4fr+9nO4NlvqGmPF43Y+OfZiWf+zYDFgNiPGG5+iZulQ==} engines: {node: '>=12'} @@ -1904,128 +2420,140 @@ packages: resolution: {integrity: sha512-r6Qp0HylAZhHNWHxU1nGfRI2Dtkbs1iqLCnOp1bvKhv8yj0/sEUigN0dk0LGPbE4I7zDO3tppyd7PaTPBvvJkg==} engines: {node: '>=12'} - '@supabase/auth-js@2.69.1': - resolution: {integrity: sha512-FILtt5WjCNzmReeRLq5wRs3iShwmnWgBvxHfqapC/VoljJl+W8hDAyFmf1NVw3zH+ZjZ05AKxiKxVeb0HNWRMQ==} + '@supabase/auth-js@2.75.0': + resolution: {integrity: sha512-J8TkeqCOMCV4KwGKVoxmEBuDdHRwoInML2vJilthOo7awVCro2SM+tOcpljORwuBQ1vHUtV62Leit+5wlxrNtw==} - '@supabase/functions-js@2.4.4': - resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==} + '@supabase/functions-js@2.75.0': + resolution: {integrity: sha512-18yk07Moj/xtQ28zkqswxDavXC3vbOwt1hDuYM3/7xPnwwpKnsmPyZ7bQ5th4uqiJzQ135t74La9tuaxBR6e7w==} '@supabase/node-fetch@2.6.15': resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} engines: {node: 4.x || >=6.0.0} - '@supabase/postgrest-js@1.19.2': - resolution: {integrity: sha512-MXRbk4wpwhWl9IN6rIY1mR8uZCCG4MZAEji942ve6nMwIqnBgBnZhZlON6zTTs6fgveMnoCILpZv1+K91jN+ow==} + '@supabase/postgrest-js@2.75.0': + resolution: {integrity: sha512-YfBz4W/z7eYCFyuvHhfjOTTzRrQIvsMG2bVwJAKEVVUqGdzqfvyidXssLBG0Fqlql1zJFgtsPpK1n4meHrI7tg==} - '@supabase/realtime-js@2.11.2': - resolution: {integrity: sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==} + '@supabase/realtime-js@2.75.0': + resolution: {integrity: sha512-B4Xxsf2NHd5cEnM6MGswOSPSsZKljkYXpvzKKmNxoUmNQOfB7D8HOa6NwHcUBSlxcjV+vIrYKcYXtavGJqeGrw==} - '@supabase/storage-js@2.7.1': - resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==} + '@supabase/storage-js@2.75.0': + resolution: {integrity: sha512-wpJMYdfFDckDiHQaTpK+Ib14N/O2o0AAWWhguKvmmMurB6Unx17GGmYp5rrrqCTf8S1qq4IfIxTXxS4hzrUySg==} - '@supabase/supabase-js@2.49.3': - resolution: {integrity: sha512-42imTuAm9VEQGlXT0O6zrSwNnsIblU1eieqrAWj8HSmFaYkxepk/IuUVw1M5hKelk0ZYlqDKNwRErI1rF1EL4w==} + '@supabase/supabase-js@2.75.0': + resolution: {integrity: sha512-8UN/vATSgS2JFuJlMVr51L3eUDz+j1m7Ww63wlvHLKULzCDaVWYzvacCjBTLW/lX/vedI2LBI4Vg+01G9ufsJQ==} - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} '@tailwindcss/container-queries@0.1.1': resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} peerDependencies: tailwindcss: '>=3.2.0' - '@tailwindcss/node@4.0.14': - resolution: {integrity: sha512-Ux9NbFkKWYE4rfUFz6M5JFLs/GEYP6ysxT8uSyPn6aTbh2K3xDE1zz++eVK4Vwx799fzMF8CID9sdHn4j/Ab8w==} + '@tailwindcss/node@4.1.14': + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} - '@tailwindcss/oxide-android-arm64@4.0.14': - resolution: {integrity: sha512-VBFKC2rFyfJ5J8lRwjy6ub3rgpY186kAcYgiUr8ArR8BAZzMruyeKJ6mlsD22Zp5ZLcPW/FXMasJiJBx0WsdQg==} + '@tailwindcss/oxide-android-arm64@4.1.14': + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.0.14': - resolution: {integrity: sha512-U3XOwLrefGr2YQZ9DXasDSNWGPZBCh8F62+AExBEDMLDfvLLgI/HDzY8Oq8p/JtqkAY38sWPOaNnRwEGKU5Zmg==} + '@tailwindcss/oxide-darwin-arm64@4.1.14': + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.0.14': - resolution: {integrity: sha512-V5AjFuc3ndWGnOi1d379UsODb0TzAS2DYIP/lwEbfvafUaD2aNZIcbwJtYu2DQqO2+s/XBvDVA+w4yUyaewRwg==} + '@tailwindcss/oxide-darwin-x64@4.1.14': + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.0.14': - resolution: {integrity: sha512-tXvtxbaZfcPfqBwW3f53lTcyH6EDT+1eT7yabwcfcxTs+8yTPqxsDUhrqe9MrnEzpNkd+R/QAjJapfd4tjWdLg==} + '@tailwindcss/oxide-freebsd-x64@4.1.14': + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.14': - resolution: {integrity: sha512-cSeLNWWqIWeSTmBntQvyY2/2gcLX8rkPFfDDTQVF8qbRcRMVPLxBvFVJyfSAYRNch6ZyVH2GI6dtgALOBDpdNA==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.0.14': - resolution: {integrity: sha512-bwDWLBalXFMDItcSXzFk6y7QKvj6oFlaY9vM+agTlwFL1n1OhDHYLZkSjaYsh6KCeG0VB0r7H8PUJVOM1LRZyg==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.0.14': - resolution: {integrity: sha512-gVkJdnR/L6iIcGYXx64HGJRmlme2FGr/aZH0W6u4A3RgPMAb+6ELRLi+UBiH83RXBm9vwCfkIC/q8T51h8vUJQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.0.14': - resolution: {integrity: sha512-EE+EQ+c6tTpzsg+LGO1uuusjXxYx0Q00JE5ubcIGfsogSKth8n8i2BcS2wYTQe4jXGs+BQs35l78BIPzgwLddw==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.0.14': - resolution: {integrity: sha512-KCCOzo+L6XPT0oUp2Jwh233ETRQ/F6cwUnMnR0FvMUCbkDAzHbcyOgpfuAtRa5HD0WbTbH4pVD+S0pn1EhNfbw==} + '@tailwindcss/oxide-linux-x64-musl@4.1.14': + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': - resolution: {integrity: sha512-AHObFiFL9lNYcm3tZSPqa/cHGpM5wOrNmM2uOMoKppp+0Hom5uuyRh0QkOp7jftsHZdrZUpmoz0Mp6vhh2XtUg==} + '@tailwindcss/oxide-wasm32-wasi@4.1.14': + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.0.14': - resolution: {integrity: sha512-rNXXMDJfCJLw/ZaFTOLOHoGULxyXfh2iXTGiChFiYTSgKBKQHIGEpV0yn5N25WGzJJ+VBnRjHzlmDqRV+d//oQ==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.0.14': - resolution: {integrity: sha512-M8VCNyO/NBi5vJ2cRcI9u8w7Si+i76a7o1vveoGtbbjpEYJZYiyc7f2VGps/DqawO56l3tImIbq2OT/533jcrA==} + '@tailwindcss/oxide@4.1.14': + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} engines: {node: '>= 10'} - '@tailwindcss/vite@4.0.14': - resolution: {integrity: sha512-y69ztPTRFy+13EPS/7dEFVl7q2Goh1pQueVO8IfGeyqSpcx/joNJXFk0lLhMgUbF0VFJotwRSb9ZY7Xoq3r26Q==} + '@tailwindcss/vite@4.1.14': + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} peerDependencies: - vite: ^5.2.0 || ^6 + vite: ^5.2.0 || ^6 || ^7 - '@tanstack/query-core@5.69.0': - resolution: {integrity: sha512-Kn410jq6vs1P8Nm+ZsRj9H+U3C0kjuEkYLxbiCyn3MDEiYor1j2DGVULqAz62SLZtUZ/e9Xt6xMXiJ3NJ65WyQ==} + '@tanstack/query-core@5.90.3': + resolution: {integrity: sha512-HtPOnCwmx4dd35PfXU8jjkhwYrsHfuqgC8RCJIwWglmhIUIlzPP0ZcEkDAc+UtAWCiLm7T8rxeEfHZlz3hYMCA==} - '@tanstack/react-query@5.69.0': - resolution: {integrity: sha512-Ift3IUNQqTcaFa1AiIQ7WCb/PPy8aexZdq9pZWLXhfLcLxH0+PZqJ2xFImxCpdDZrFRZhLJrh76geevS5xjRhA==} + '@tanstack/react-query@5.90.3': + resolution: {integrity: sha512-i/LRL6DtuhG6bjGzavIMIVuKKPWx2AnEBIsBfuMm3YoHne0a20nWmsatOCBcVSaT0/8/5YFjNkebHAPLVUSi0Q==} peerDependencies: react: ^18 || ^19 - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.6.3': - resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} + '@testing-library/jest-dom@6.9.1': + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/react@16.3.0': @@ -2059,21 +2587,18 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2083,11 +2608,8 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - - '@types/gensync@1.0.4': - resolution: {integrity: sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -2119,23 +2641,20 @@ packages: '@types/jsonwebtoken@9.0.10': resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} - '@types/linkifyjs@2.1.7': - resolution: {integrity: sha512-+SIYXs1lajyD7t/2+V9GLfdFlc/6Nr2tr65kjA2F5oOzBlPH+NiPqySJDHzREoGcL91Au9Qef8M5JdZiRXsaJw==} - - '@types/mdast@3.0.15': - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@20.19.20': - resolution: {integrity: sha512-2Q7WS25j4pS1cS8yw3d6buNCVJukOTeQ39bAnwR6sOJbaxvyCGebzTMypDFN82CxBLnl+lSWVdCCWbRY6y9yZQ==} + '@types/node@20.19.21': + resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} - '@types/node@22.13.10': - resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} + '@types/node@22.18.10': + resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + + '@types/pako@2.0.4': + resolution: {integrity: sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==} '@types/phoenix@1.6.6': resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} @@ -2175,8 +2694,8 @@ packages: '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} - '@types/ws@8.18.0': - resolution: {integrity: sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -2195,13 +2714,13 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.26.1': - resolution: {integrity: sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==} + '@typescript-eslint/eslint-plugin@8.46.1': + resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.46.1 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/parser@7.18.0': resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} @@ -2213,21 +2732,33 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.26.1': - resolution: {integrity: sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==} + '@typescript-eslint/parser@8.46.1': + resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.46.1': + resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@7.18.0': resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.26.1': - resolution: {integrity: sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==} + '@typescript-eslint/scope-manager@8.46.1': + resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.46.1': + resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + '@typescript-eslint/type-utils@7.18.0': resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -2238,19 +2769,19 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.26.1': - resolution: {integrity: sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==} + '@typescript-eslint/type-utils@8.46.1': + resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@7.18.0': resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.26.1': - resolution: {integrity: sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==} + '@typescript-eslint/types@8.46.1': + resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': @@ -2262,11 +2793,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.26.1': - resolution: {integrity: sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==} + '@typescript-eslint/typescript-estree@8.46.1': + resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@7.18.0': resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} @@ -2274,19 +2805,19 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.26.1': - resolution: {integrity: sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==} + '@typescript-eslint/utils@8.46.1': + resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@7.18.0': resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.26.1': - resolution: {integrity: sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==} + '@typescript-eslint/visitor-keys@8.46.1': + resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/native-preview-darwin-arm64@7.0.0-dev.20251010.1': @@ -2340,11 +2871,11 @@ packages: '@virtuoso.dev/urx@0.2.13': resolution: {integrity: sha512-iirJNv92A1ZWxoOHHDYW/1KPoi83939o83iUBQHIim0i3tMeSKEh+bxhJdTHQ86Mr4uXx9xGUTq69cp52ZP8Xw==} - '@vitejs/plugin-react@4.3.4': - resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -2400,14 +2931,19 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - ag-charts-types@11.2.1: - resolution: {integrity: sha512-uzN1OUEn5nCFDZ4GTNkYHpg+6hbF+NamIwUOK/aSHBRvJxJU9/sK+K1QkqYpU912mHtpAZ9x0zEddr2sw6pT2Q==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true - ag-grid-community@33.2.1: - resolution: {integrity: sha512-eQVRv+x8C3+T2weBux7Y+SN6IMs4lYJjTmNSfm/OX3ANH3GsscvqRiOxoV/R+hQWL7GUXOCLPZHFzZpzSdk0xg==} + ag-charts-types@11.3.2: + resolution: {integrity: sha512-trPGqgGYiTeLgtf9nLuztDYOPOFOLbqHn1g2D99phf7QowcwdX0TPx0wfWG8Hm90LjB8IH+G2s3AZe2vrdAtMQ==} - ag-grid-react@33.2.1: - resolution: {integrity: sha512-06Jo2fi90Ke/ZXM1kvcWa5MX+9DM3IKVuCgGeTrQn8PzOOccYWBvVPGwLXk1TAQ2b9kQfKwDCU5q5JAJ6+tPUg==} + ag-grid-community@33.3.2: + resolution: {integrity: sha512-9bx0e/+ykOyLvUxHqmdy0cRVANH6JAtv0yZdnBZEXYYqBAwN+G5a4NY+2I1KvoOCYzbk8SnStG7y4hCdVAAWOQ==} + + ag-grid-react@33.3.2: + resolution: {integrity: sha512-5bv4JIJvGov23sduIUIyQTqpa/qhoQrRkQm5pFOQb7RMwusfx6xBPrkLwIIlCJiQ8g0OOinxWzZ2kQ2Zml6tLw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2445,6 +2981,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -2456,8 +2996,8 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} array-union@2.1.0: @@ -2495,11 +3035,6 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - attr-accept@2.2.5: resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} engines: {node: '>=4'} @@ -2508,8 +3043,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axios@1.8.4: - resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} + axios@1.12.2: + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -2525,10 +3060,10 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-preset-current-node-syntax@1.1.0: - resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0 || ^8.0.0-0 babel-preset-jest@29.6.3: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} @@ -2536,9 +3071,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2552,32 +3084,31 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.8.16: + resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} + hasBin: true + blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - btoa@1.2.1: - resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} - engines: {node: '>= 0.4.0'} - hasBin: true - buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -2612,8 +3143,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + caniuse-lite@1.0.30001751: + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} canvg@3.0.11: resolution: {integrity: sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==} @@ -2622,13 +3153,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@5.2.0: - resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} - engines: {node: '>=12'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2641,21 +3168,12 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -2663,8 +3181,12 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - chromatic@11.27.0: - resolution: {integrity: sha512-jQ2ufjS+ePpg+NtcPI9B2eOi+pAzlRd2nhd1LgNMsVCC9Bzf5t8mJtyd8v2AUuJS0LdX0QVBgkOnlNv9xviHzA==} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + chromatic@11.29.0: + resolution: {integrity: sha512-yisBlntp9hHVj19lIQdpTlcYIXuU9H/DbFuu6tyWHmj6hWT2EtukCCcxYXL78XdQt1vm2GfIrtgtKpj/Rzmo4A==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -2682,6 +3204,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2697,8 +3222,8 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -2731,8 +3256,8 @@ packages: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} - core-js@3.41.0: - resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} + core-js@3.46.0: + resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} @@ -2778,20 +3303,14 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} + date-fns-jalali@4.1.0-0: + resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} + date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -2802,14 +3321,14 @@ packages: supports-color: optional: true - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2850,14 +3369,17 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -2879,26 +3401,13 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - dompurify@3.2.5: - resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} @@ -2907,8 +3416,8 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - electron-to-chromium@1.5.97: - resolution: {integrity: sha512-HKLtaH02augM7ZOdYRuO19rWDeY+QSJ1VxnXFa/XDFLf07HvM90pALIJFgrO+UVaajI3+aJMMpojoUTLZyQ7JQ==} + electron-to-chromium@1.5.237: + resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -2920,22 +3429,22 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -2969,8 +3478,8 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild@0.25.1: - resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + esbuild@0.25.11: + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} engines: {node: '>=18'} hasBin: true @@ -3000,26 +3509,26 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-plugin-react@7.37.4: - resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 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.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.22.0: - resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==} + eslint@9.37.0: + resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3028,8 +3537,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -3052,9 +3561,6 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -3074,8 +3580,8 @@ packages: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} - expect-type@1.2.1: - resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} expect@29.7.0: @@ -3101,14 +3607,18 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} + fast-png@6.4.0: + resolution: {integrity: sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -3145,11 +3655,11 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -3161,8 +3671,8 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - form-data@4.0.2: - resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} fs.realpath@1.0.0: @@ -3183,6 +3693,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3195,6 +3709,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -3230,16 +3748,12 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.0.0: - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} globalthis@1.0.4: @@ -3263,8 +3777,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - happy-dom@20.0.0: - resolution: {integrity: sha512-GkWnwIFxVGCf2raNrxImLo397RdGhLapj5cT3R2PT7FwL62Ze1DROhzmYW7+J3p9105DYMVenEejEbnq5wA37w==} + happy-dom@20.0.2: + resolution: {integrity: sha512-pYOyu624+6HDbY+qkjILpQGnpvZOusItCk+rvF5/V+6NkcgTKnbOldpIy22tBnxoaLtlM9nXgoqAcW29/B7CIw==} engines: {node: '>=20.0.0'} has-bigints@1.1.0: @@ -3313,11 +3827,6 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-to-react@1.7.0: - resolution: {integrity: sha512-b5HTNaTGyOj5GGIMiWVr1k57egAZ/vGy0GGefnCQ1VW5hu9+eku8AXHtf2/DeD95cj/FKBKYa1J7SWBOX41yUQ==} - peerDependencies: - react: ^0.13.0 || ^0.14.0 || >=15 - html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} @@ -3325,9 +3834,6 @@ packages: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} engines: {node: '>=8.0.0'} - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} - http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -3340,21 +3846,14 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - i18next@25.2.1: - resolution: {integrity: sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==} + i18next@25.6.0: + resolution: {integrity: sha512-tTn8fLrwBYtnclpL5aPXK/tAYBLWVvoHM1zdfXoRNLcI+RvtMsoZRV98ePlaW3khHYKuNh/Q65W/+NVFUeIwVw==} peerDependencies: typescript: ^5 peerDependenciesMeta: typescript: optional: true - ical-expander@3.1.0: - resolution: {integrity: sha512-O8svRo6diKUVL7NOplE/M2p5/N69FnGmBJ4KnS+2Bu3VLjda0GR6JgH1QybjSXL8DzX3GYkk4opQ2H5Qt/vl4w==} - engines: {node: '>=4'} - - ical.js@1.5.0: - resolution: {integrity: sha512-7ZxMkogUkkaCx810yp0ZGKvq1ZpRgJeornPttpoxe6nYZ3NLesZe1wWMXDdwTkj/b5NtXT+Y16Aakph/ao98ZQ==} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -3363,6 +3862,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -3394,18 +3897,15 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - intl-messageformat@10.7.15: - resolution: {integrity: sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg==} + intl-messageformat@10.7.18: + resolution: {integrity: sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==} - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + iobuffer@5.4.0: + resolution: {integrity: sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==} is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -3416,8 +3916,8 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} @@ -3431,10 +3931,6 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -3451,9 +3947,6 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -3478,17 +3971,14 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -3496,6 +3986,10 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -3504,10 +3998,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -3590,8 +4080,8 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} iterator.prototype@1.1.5: @@ -3736,13 +4226,10 @@ packages: node-notifier: optional: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - jquery@3.7.1: - resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3792,8 +4279,8 @@ packages: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} - jspdf@3.0.1: - resolution: {integrity: sha512-qaGIxqxetdoNnFQQXxTKUD9/Z7AloLaw94fFsOiJMxbfYdBbrBuhWmbzI8TVjrw7s3jBY1PFHofBKMV/wZPapg==} + jspdf@3.0.3: + resolution: {integrity: sha512-eURjAyz5iX1H8BOYAfzvdPfIKK53V7mCpBTe7Kb16PaM8JSXEcUQNBQaiWMI8wY5RvNOPj4GccMjTlfwRBd+oQ==} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -3828,82 +4315,75 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lightningcss-darwin-arm64@1.29.2: - resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.29.2: - resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.29.2: - resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.29.2: - resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.29.2: - resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.29.2: - resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.29.2: - resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.29.2: - resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-win32-arm64-msvc@1.29.2: - resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.29.2: - resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.29.2: - resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkifyjs@2.1.9: - resolution: {integrity: sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==} - peerDependencies: - jquery: '>= 1.11.0' - react: '>= 0.14.0' - react-dom: '>= 0.14.0' - - linkifyjs@4.3.1: - resolution: {integrity: sha512-DRSlB9DKVW04c4SUdGvKK5FR6be45lTU9M76JnngqPeeGDqPwYc0zdUErtsNVMtxPXgUWV4HbXbnC4sNyBxkYg==} + linkifyjs@4.3.2: + resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==} load-script@1.0.0: resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} @@ -3916,9 +4396,6 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} @@ -3961,9 +4438,6 @@ packages: lodash.uniqby@4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3971,9 +4445,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.3: - resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} - loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} @@ -3989,8 +4460,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -4006,15 +4477,9 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-add-list-metadata@1.0.1: - resolution: {integrity: sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==} - mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@0.8.5: - resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} - mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} @@ -4054,9 +4519,6 @@ packages: mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -4151,9 +4613,6 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@2.11.4: - resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} - micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} @@ -4182,8 +4641,8 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - miniflare@4.20250709.0: - resolution: {integrity: sha512-dRGXi6Do9ArQZt7205QGWZ1tD6k6xQNY/mAZBAtiaQYvKxFuNyiHYlFnSN8Co4AFCVOozo/U52sVAaHvlcmnew==} + miniflare@4.20251008.0: + resolution: {integrity: sha512-sKCNYNzXG6l8qg0Oo7y8WcDKcpbgw0qwZsxNpdZilFTR4EavRow2TlcwuPSVN99jqAjhz0M4VXvTdSGdtJ2VfQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -4194,18 +4653,19 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - mml-react@0.4.7: - resolution: {integrity: sha512-YoEIg5kOWGR3U9QFc8YFHEgyGV/CnLQIjm+naW3K04LXRw6xtcU0+KMjCMu2EJEF/Wjz8H3Yu4ZU2mUDR+143g==} - engines: {node: '>=10'} - peerDependencies: - react: ^18.0.0 || ^17.0.0 || ^16.8.0 - react-dom: ^18.0.0 || ^17.0.0 || ^16.8.0 + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4215,8 +4675,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.25: + resolution: {integrity: sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -4226,8 +4686,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4299,13 +4759,13 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -4313,8 +4773,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4341,8 +4801,8 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} performance-now@2.1.0: @@ -4355,8 +4815,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} pirates@4.0.7: @@ -4371,19 +4831,21 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.11: - resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} + prettier-plugin-tailwindcss@0.6.14: + resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' '@trivago/prettier-plugin-sort-imports': '*' @@ -4403,6 +4865,10 @@ packages: peerDependenciesMeta: '@ianvs/prettier-plugin-sort-imports': optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true '@prettier/plugin-pug': optional: true '@shopify/prettier-plugin-liquid': @@ -4434,8 +4900,8 @@ packages: prettier-plugin-svelte: optional: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -4479,18 +4945,24 @@ packages: raf@3.4.1: resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - react-aria-components@1.7.1: - resolution: {integrity: sha512-kTAlrxcW7n+rQDwlZSz5+o+HknjPGv/pn0OQ1FF92WsjoTaqQMJtWbEAHXrhrQaiW/3T4CANTpdR1soai4uK6g==} + react-aria-components@1.13.0: + resolution: {integrity: sha512-t1mm3AVy/MjUJBZ7zrb+sFC5iya8Vvw3go3mGKtTm269bXGZho7BLA4IgT+0nOS3j+ku6ChVi8NEoQVFoYzJJA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-aria@3.38.1: - resolution: {integrity: sha512-DDdWsAlHPKVQ5E8G0kfDHNs0Lk1Xrs3G7soz6Ew8Ls5vNfp1BusbR2b1wC7ppqq2jDQiyJS816UNmDuGyQVyxA==} + react-aria@3.44.0: + resolution: {integrity: sha512-2Pq3GQxBgM4/2BlpKYXeaZ47a3tdIcYSW/AYvKgypE3XipxOdQMDG5Sr/NBn7zuJq+thzmtfRb0lB9bTbsmaRw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-day-picker@9.11.1: + resolution: {integrity: sha512-l3ub6o8NlchqIjPKrRFUCkTUEq6KwemQlfv3XZzzwpUeGwmDJ+0u0Upmt38hJyd7D/vn2dQoOoLV/qAp0o3uUw==} + engines: {node: '>=18'} + peerDependencies: + react: '>=16.8.0' + react-dom@19.0.0: resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: @@ -4505,6 +4977,12 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-hook-form@7.65.0: + resolution: {integrity: sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + react-image-gallery@1.2.12: resolution: {integrity: sha512-JIh85lh0Av/yewseGJb/ycg00Y/weQiZEC/BQueC2Z5jnYILGB6mkxnrOevNhsM2NdZJpvcDekCluhy6uzEoTA==} peerDependencies: @@ -4519,12 +4997,6 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-markdown@5.0.3: - resolution: {integrity: sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - react-markdown@9.1.0: resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} peerDependencies: @@ -4543,19 +5015,39 @@ packages: react: ^16.8.0 || ^17 || ^18 react-dom: ^16.8.0 || ^17 || ^18 - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-router-dom@7.3.0: - resolution: {integrity: sha512-z7Q5FTiHGgQfEurX/FBinkOXhWREJIAB2RiU24lvcBa82PxUpwqvs/PAXb9lJyPjTs2jrl6UkLvCZVGJPeNuuQ==} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-router-dom@7.9.4: + resolution: {integrity: sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' react-dom: '>=18' - react-router@7.3.0: - resolution: {integrity: sha512-466f2W7HIWaNXTKM5nHTqNxLrHTyXybm7R0eBlVSt0k/u55tTCDO194OIx/NrYD4TS5SXKTNekXfT37kMKUjgw==} + react-router@7.9.4: + resolution: {integrity: sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -4564,11 +5056,21 @@ packages: react-dom: optional: true - react-stately@3.36.1: - resolution: {integrity: sha512-H9kiGAylNec/iE5qk7qQLV1cvtSAIVq3mgt87zx2EA+f+/sYy2oBtchFPaDiBf/m7xMEKf0Fr9zSLU6G99xQ8g==} + react-stately@3.42.0: + resolution: {integrity: sha512-lYt2o1dd6dK8Bb4GRh08RG/2u64bSA1cqtRqtw4jEMgxC7Q17RFcIumBbChErndSdLzafEG/UBwV6shOfig6yw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react-textarea-autosize@8.5.9: resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} engines: {node: '>=10'} @@ -4597,9 +5099,6 @@ packages: regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -4610,9 +5109,6 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-parse@9.0.0: - resolution: {integrity: sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==} - remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} @@ -4651,8 +5147,8 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rgbcolor@1.0.1: @@ -4672,8 +5168,8 @@ packages: rollup: optional: true - rollup@4.34.6: - resolution: {integrity: sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==} + rollup@4.52.4: + resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4709,8 +5205,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -4763,8 +5259,8 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -4773,6 +5269,12 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + sonner@2.0.7: + resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4784,9 +5286,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -4805,15 +5307,19 @@ packages: resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==} engines: {node: '>=0.1.14'} - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} - stream-chat-react@13.1.0: - resolution: {integrity: sha512-cjsgga2jjSgN+2TchaHzh3zkC4cMTdceR3QjNZd1taTsf+IXD6LpG5ZHlM/498QAXtMr/qJ8Qewyxa6Z7suRRQ==} + stream-chat-react@13.9.0: + resolution: {integrity: sha512-tcAp4bWjXCPaJzU3KvOBbg3R9wzXAtrAhtX1R5KMauDhe7CkDlicd3/C/nY0lDX64fQtRJt3t1WNgg9NK49Oew==} peerDependencies: '@breezystack/lamejs': ^1.2.7 '@emoji-mart/data': ^1.1.0 @@ -4821,7 +5327,7 @@ packages: emoji-mart: ^5.4.0 react: ^19.0.0 || ^18.0.0 || ^17.0.0 || ^16.14.0 react-dom: ^19.0.0 || ^18.0.0 || ^17.0.0 || ^16.14.0 - stream-chat: ^9.6.0 + stream-chat: ^9.22.0 peerDependenciesMeta: '@breezystack/lamejs': optional: true @@ -4832,8 +5338,8 @@ packages: emoji-mart: optional: true - stream-chat@9.6.1: - resolution: {integrity: sha512-IJYjB1Zez2RdL9jnmrvhgVeUeKk4BOVm82UGU8fomf+CfIL+rsxzSQGEPx4ZpJ0g2KmsCKD/CbjiWAkbh97IcA==} + stream-chat@9.23.0: + resolution: {integrity: sha512-UW112HYsLnYb4RMIXBtAouNQCCe0weVzNivjezsw+JKK1b/TX0JLBi+wK25mBUEO+coOGKfXiye6IB3gao8ipw==} engines: {node: '>=18'} string-length@4.0.2: @@ -4889,14 +5395,14 @@ packages: strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} - style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + style-to-js@1.1.18: + resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==} - style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + style-to-object@1.0.11: + resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==} - supports-color@10.0.0: - resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} supports-color@7.2.0: @@ -4921,21 +5427,25 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwind-merge@3.0.2: - resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@4.0.14: - resolution: {integrity: sha512-92YT2dpt671tFiHH/e1ok9D987N9fHD5VWoly1CdPD/Cd1HMglvZwP3nx2yTj2lbXDAHt8QssZkxTLCCTNL+xw==} + tailwindcss@4.1.14: + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + engines: {node: '>=18'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -4949,8 +5459,8 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} tinypool@1.1.1: @@ -4986,9 +5496,6 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} @@ -4998,17 +5505,17 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' - ts-pattern@5.6.2: - resolution: {integrity: sha512-d4IxJUXROL5NCa3amvMg6VQW2HVtZYmUTPfvVtO7zJWGYLJ+mry9v2OmYm+z67aniQoQ8/yFNadiEwtNS9qQiw==} + ts-pattern@5.8.0: + resolution: {integrity: sha512-kIjN2qmWiHnhgr5DAkAafF9fwb0T5OhMVSWrm8XEdTFnX6+wfXwYOFjeF86UZ54vduqiR7BfqScFmXSzSaH8oA==} - tsconfck@3.1.5: - resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -5020,8 +5527,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - turbo-stream@2.4.0: - resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -5051,15 +5558,15 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.26.1: - resolution: {integrity: sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==} + typescript-eslint@8.46.1: + resolution: {integrity: sha512-VHgijW803JafdSsDO8I761r3SHrgk4T00IdyQ+/UsthtgPRsBWQLqoSxOolxTpxRKi1kGXK0bSz4CoAc9ObqJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true @@ -5070,55 +5577,34 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici@5.29.0: - resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} - engines: {node: '>=14.0'} + undici@7.14.0: + resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==} + engines: {node: '>=20.18.1'} - unenv@2.0.0-rc.17: - resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} + unenv@2.0.0-rc.21: + resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} - unist-builder@4.0.0: resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} - unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@1.1.2: - resolution: {integrity: sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==} - - unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} - unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -5126,8 +5612,8 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - update-browserslist-db@1.1.2: - resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5138,6 +5624,16 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-composed-ref@1.4.0: resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} peerDependencies: @@ -5165,8 +5661,18 @@ packages: '@types/react': optional: true - use-sync-external-store@1.4.0: - resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -5181,14 +5687,8 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -5206,8 +5706,8 @@ packages: vite: optional: true - vite@6.2.2: - resolution: {integrity: sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==} + vite@6.4.0: + resolution: {integrity: sha512-oLnWs9Hak/LOlKjeSpOwD6JMks8BeICEdYMJBf6P4Lac/pO9tKiv/XhXnAM7nNfSkZahjlCZu9sS50zL8fSnsw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -5336,17 +5836,17 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workerd@1.20250709.0: - resolution: {integrity: sha512-BqLPpmvRN+TYUSG61OkWamsGdEuMwgvabP8m0QOHIfofnrD2YVyWqE1kXJ0GH5EsVEuWamE5sR8XpTfsGBmIpg==} + workerd@1.20251008.0: + resolution: {integrity: sha512-HwaJmXO3M1r4S8x2ea2vy8Rw/y/38HRQuK/gNDRQ7w9cJXn6xSl1sIIqKCffULSUjul3wV3I3Nd/GfbmsRReEA==} engines: {node: '>=16'} hasBin: true - wrangler@4.24.3: - resolution: {integrity: sha512-stB1Wfs5NKlspsAzz8SBujBKsDqT5lpCyrL+vSUMy3uueEtI1A5qyORbKoJhIguEbwHfWS39mBsxzm6Vm1J2cg==} + wrangler@4.43.0: + resolution: {integrity: sha512-IBNqXlYHSUSCNNWj/tQN4hFiQy94l7fTxEnJWETXyW69+cjUyjQ7MfeoId3vIV9KBgY8y5M5uf2XulU95OikJg==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250709.0 + '@cloudflare/workers-types': ^4.20251008.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -5374,8 +5874,8 @@ packages: utf-8-validate: optional: true - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5393,10 +5893,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5404,6 +5900,10 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5425,8 +5925,11 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zustand@5.0.5: - resolution: {integrity: sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==} + zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} + + zustand@5.0.8: + resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=18.0.0' @@ -5448,214 +5951,206 @@ packages: snapshots: - '@adobe/css-tools@4.4.2': {} + '@adobe/css-tools@4.4.4': {} - '@ampproject/remapping@2.3.0': + '@babel/code-frame@7.27.1': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 - - '@babel/code-frame@7.26.2': - dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.28.4': {} - '@babel/core@7.26.8': + '@babel/core@7.28.4': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.8) - '@babel/helpers': 7.26.7 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 - '@types/gensync': 1.0.4 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.8': + '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.26.5': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.4 + '@babel/compat-data': 7.28.4 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.26.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.26.8 - '@babel/types': 7.26.8 + '@babel/traverse': 7.28.4 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.8)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.8 + '@babel/core': 7.28.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} - '@babel/helpers@7.26.7': + '@babel/helpers@7.28.4': dependencies: - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 - '@babel/parser@7.26.8': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.28.4 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.8)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.8)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.8)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.8)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.8)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.8)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.8)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.8)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.8)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.8)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.8)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.26.8 - '@babel/helper-plugin-utils': 7.26.5 + '@babel/core': 7.28.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/runtime@7.27.0': + '@babel/runtime@7.28.4': {} + + '@babel/template@7.27.2': dependencies: - regenerator-runtime: 0.14.1 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@babel/runtime@7.27.6': {} - - '@babel/template@7.26.8': + '@babel/traverse@7.28.4': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - - '@babel/traverse@7.26.8': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.8 - '@babel/parser': 7.26.8 - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 - debug: 4.4.0 - globals: 11.12.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.3 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.4 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.26.8': + '@babel/types@7.28.4': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@bcoe/v8-coverage@0.2.3': {} @@ -5700,255 +6195,261 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0)': + '@cloudflare/unenv-preset@2.7.7(unenv@2.0.0-rc.21)(workerd@1.20251008.0)': dependencies: - unenv: 2.0.0-rc.17 + unenv: 2.0.0-rc.21 optionalDependencies: - workerd: 1.20250709.0 + workerd: 1.20251008.0 - '@cloudflare/vite-plugin@1.9.4(rollup@4.34.6)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))(workerd@1.20250709.0)(wrangler@4.24.3)': + '@cloudflare/vite-plugin@1.13.13(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1))(workerd@1.20251008.0)(wrangler@4.43.0)': dependencies: - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0) - '@mjackson/node-fetch-server': 0.6.1 - '@rollup/plugin-replace': 6.0.2(rollup@4.34.6) + '@cloudflare/unenv-preset': 2.7.7(unenv@2.0.0-rc.21)(workerd@1.20251008.0) + '@remix-run/node-fetch-server': 0.8.1 get-port: 7.1.0 - miniflare: 4.20250709.0 + miniflare: 4.20251008.0 picocolors: 1.1.1 - tinyglobby: 0.2.14 - unenv: 2.0.0-rc.17 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) - wrangler: 4.24.3 + tinyglobby: 0.2.15 + unenv: 2.0.0-rc.21 + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) + wrangler: 4.43.0 ws: 8.18.0 transitivePeerDependencies: - bufferutil - - rollup - utf-8-validate - workerd - '@cloudflare/workerd-darwin-64@1.20250709.0': + '@cloudflare/workerd-darwin-64@1.20251008.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250709.0': + '@cloudflare/workerd-darwin-arm64@1.20251008.0': optional: true - '@cloudflare/workerd-linux-64@1.20250709.0': + '@cloudflare/workerd-linux-64@1.20251008.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250709.0': + '@cloudflare/workerd-linux-arm64@1.20251008.0': optional: true - '@cloudflare/workerd-windows-64@1.20250709.0': + '@cloudflare/workerd-windows-64@1.20251008.0': optional: true '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@datadog/browser-core@6.13.0': {} + '@datadog/browser-core@6.22.0': {} - '@datadog/browser-rum-core@6.13.0': + '@datadog/browser-rum-core@6.22.0': dependencies: - '@datadog/browser-core': 6.13.0 + '@datadog/browser-core': 6.22.0 - '@datadog/browser-rum-react@6.13.0(@datadog/browser-rum@6.13.0)(react-router-dom@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)': + '@datadog/browser-rum-react@6.22.0(@datadog/browser-rum@6.22.0)(react-router-dom@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-router@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)': dependencies: - '@datadog/browser-core': 6.13.0 - '@datadog/browser-rum-core': 6.13.0 + '@datadog/browser-core': 6.22.0 + '@datadog/browser-rum-core': 6.22.0 optionalDependencies: - '@datadog/browser-rum': 6.13.0 + '@datadog/browser-rum': 6.22.0 react: 19.0.0 - react-router-dom: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router-dom: 7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@datadog/browser-rum@6.13.0': + '@datadog/browser-rum@6.22.0': dependencies: - '@datadog/browser-core': 6.13.0 - '@datadog/browser-rum-core': 6.13.0 + '@datadog/browser-core': 6.22.0 + '@datadog/browser-rum-core': 6.22.0 - '@emnapi/runtime@1.4.4': + '@date-fns/tz@1.4.1': {} + + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 optional: true - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.25.4)': + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.25.11)': dependencies: - esbuild: 0.25.4 + esbuild: 0.25.11 - '@esbuild/aix-ppc64@0.25.1': + '@esbuild/aix-ppc64@0.25.11': optional: true '@esbuild/aix-ppc64@0.25.4': optional: true - '@esbuild/android-arm64@0.25.1': + '@esbuild/android-arm64@0.25.11': optional: true '@esbuild/android-arm64@0.25.4': optional: true - '@esbuild/android-arm@0.25.1': + '@esbuild/android-arm@0.25.11': optional: true '@esbuild/android-arm@0.25.4': optional: true - '@esbuild/android-x64@0.25.1': + '@esbuild/android-x64@0.25.11': optional: true '@esbuild/android-x64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.25.1': + '@esbuild/darwin-arm64@0.25.11': optional: true '@esbuild/darwin-arm64@0.25.4': optional: true - '@esbuild/darwin-x64@0.25.1': + '@esbuild/darwin-x64@0.25.11': optional: true '@esbuild/darwin-x64@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.25.1': + '@esbuild/freebsd-arm64@0.25.11': optional: true '@esbuild/freebsd-arm64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.25.1': + '@esbuild/freebsd-x64@0.25.11': optional: true '@esbuild/freebsd-x64@0.25.4': optional: true - '@esbuild/linux-arm64@0.25.1': + '@esbuild/linux-arm64@0.25.11': optional: true '@esbuild/linux-arm64@0.25.4': optional: true - '@esbuild/linux-arm@0.25.1': + '@esbuild/linux-arm@0.25.11': optional: true '@esbuild/linux-arm@0.25.4': optional: true - '@esbuild/linux-ia32@0.25.1': + '@esbuild/linux-ia32@0.25.11': optional: true '@esbuild/linux-ia32@0.25.4': optional: true - '@esbuild/linux-loong64@0.25.1': + '@esbuild/linux-loong64@0.25.11': optional: true '@esbuild/linux-loong64@0.25.4': optional: true - '@esbuild/linux-mips64el@0.25.1': + '@esbuild/linux-mips64el@0.25.11': optional: true '@esbuild/linux-mips64el@0.25.4': optional: true - '@esbuild/linux-ppc64@0.25.1': + '@esbuild/linux-ppc64@0.25.11': optional: true '@esbuild/linux-ppc64@0.25.4': optional: true - '@esbuild/linux-riscv64@0.25.1': + '@esbuild/linux-riscv64@0.25.11': optional: true '@esbuild/linux-riscv64@0.25.4': optional: true - '@esbuild/linux-s390x@0.25.1': + '@esbuild/linux-s390x@0.25.11': optional: true '@esbuild/linux-s390x@0.25.4': optional: true - '@esbuild/linux-x64@0.25.1': + '@esbuild/linux-x64@0.25.11': optional: true '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/netbsd-arm64@0.25.1': + '@esbuild/netbsd-arm64@0.25.11': optional: true '@esbuild/netbsd-arm64@0.25.4': optional: true - '@esbuild/netbsd-x64@0.25.1': + '@esbuild/netbsd-x64@0.25.11': optional: true '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.1': + '@esbuild/openbsd-arm64@0.25.11': optional: true '@esbuild/openbsd-arm64@0.25.4': optional: true - '@esbuild/openbsd-x64@0.25.1': + '@esbuild/openbsd-x64@0.25.11': optional: true '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/sunos-x64@0.25.1': + '@esbuild/openharmony-arm64@0.25.11': + optional: true + + '@esbuild/sunos-x64@0.25.11': optional: true '@esbuild/sunos-x64@0.25.4': optional: true - '@esbuild/win32-arm64@0.25.1': + '@esbuild/win32-arm64@0.25.11': optional: true '@esbuild/win32-arm64@0.25.4': optional: true - '@esbuild/win32-ia32@0.25.1': + '@esbuild/win32-ia32@0.25.11': optional: true '@esbuild/win32-ia32@0.25.4': optional: true - '@esbuild/win32-x64@0.25.1': + '@esbuild/win32-x64@0.25.11': optional: true '@esbuild/win32-x64@0.25.4': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.37.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.2': + '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.1.0': {} + '@eslint/config-helpers@0.4.0': + dependencies: + '@eslint/core': 0.16.0 - '@eslint/core@0.12.0': + '@eslint/core@0.16.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 + debug: 4.4.3 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 @@ -5958,80 +6459,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.22.0': {} + '@eslint/js@9.37.0': {} '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.7': + '@eslint/plugin-kit@0.4.0': dependencies: - '@eslint/core': 0.12.0 + '@eslint/core': 0.16.0 levn: 0.4.1 - '@fastify/busboy@2.1.1': {} - - '@floating-ui/core@1.6.9': + '@floating-ui/core@1.7.3': dependencies: - '@floating-ui/utils': 0.2.9 + '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.6.13': + '@floating-ui/dom@1.7.4': dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@floating-ui/react-dom@2.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@floating-ui/dom': 1.6.13 + '@floating-ui/dom': 1.7.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@floating-ui/react@0.27.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@floating-ui/react@0.27.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@floating-ui/utils': 0.2.9 + '@floating-ui/react-dom': 2.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@floating-ui/utils': 0.2.10 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tabbable: 6.2.0 - '@floating-ui/utils@0.2.9': {} + '@floating-ui/utils@0.2.10': {} - '@formatjs/ecma402-abstract@2.3.3': + '@formatjs/ecma402-abstract@2.3.6': dependencies: - '@formatjs/fast-memoize': 2.2.6 - '@formatjs/intl-localematcher': 0.6.0 - decimal.js: 10.5.0 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.2 + decimal.js: 10.6.0 tslib: 2.8.1 - '@formatjs/fast-memoize@2.2.6': + '@formatjs/fast-memoize@2.2.7': dependencies: tslib: 2.8.1 - '@formatjs/icu-messageformat-parser@2.11.1': + '@formatjs/icu-messageformat-parser@2.11.4': dependencies: - '@formatjs/ecma402-abstract': 2.3.3 - '@formatjs/icu-skeleton-parser': 1.8.13 + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/icu-skeleton-parser': 1.8.16 tslib: 2.8.1 - '@formatjs/icu-skeleton-parser@1.8.13': + '@formatjs/icu-skeleton-parser@1.8.16': dependencies: - '@formatjs/ecma402-abstract': 2.3.3 + '@formatjs/ecma402-abstract': 2.3.6 tslib: 2.8.1 - '@formatjs/intl-localematcher@0.6.0': + '@formatjs/intl-localematcher@0.6.2': dependencies: tslib: 2.8.1 + '@hookform/resolvers@5.2.2(react-hook-form@7.65.0(react@19.0.0))': + dependencies: + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.65.0(react@19.0.0) + '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.2': {} + '@humanwhocodes/retry@0.4.3': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -6099,7 +6601,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.4.4 + '@emnapi/runtime': 1.5.0 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -6108,22 +6610,26 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@internationalized/date@3.7.0': + '@internationalized/date@3.10.0': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 - '@internationalized/message@3.1.6': + '@internationalized/message@3.1.8': dependencies: - '@swc/helpers': 0.5.15 - intl-messageformat: 10.7.15 + '@swc/helpers': 0.5.17 + intl-messageformat: 10.7.18 - '@internationalized/number@3.6.0': + '@internationalized/number@3.6.5': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 - '@internationalized/string@3.2.5': + '@internationalized/string@3.2.7': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 '@istanbuljs/load-nyc-config@1.1.0': dependencies: @@ -6138,7 +6644,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -6151,14 +6657,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.13.10) + jest-config: 29.7.0(@types/node@22.18.10) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -6183,7 +6689,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -6201,7 +6707,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -6222,10 +6728,10 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.13.10 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 22.18.10 chalk: 4.1.2 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -6233,7 +6739,7 @@ snapshots: istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 + istanbul-reports: 3.2.0 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 @@ -6250,7 +6756,7 @@ snapshots: '@jest/source-map@29.6.3': dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 @@ -6259,7 +6765,7 @@ snapshots: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 '@jest/test-sequencer@29.7.0': dependencies: @@ -6270,9 +6776,9 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.28.4 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -6293,33 +6799,33 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.10 + '@types/node': 22.18.10 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} + '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/sourcemap-codec@1.5.0': {} - - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - - '@mjackson/node-fetch-server@0.6.1': {} + '@jridgewell/sourcemap-codec': 1.5.5 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6331,7 +6837,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 + fastq: 1.19.1 '@popperjs/core@2.11.8': {} @@ -6342,1131 +6848,1577 @@ snapshots: '@poppinss/dumper@0.6.4': dependencies: '@poppinss/colors': 4.1.5 - '@sindresorhus/is': 7.0.2 - supports-color: 10.0.0 + '@sindresorhus/is': 7.1.0 + supports-color: 10.2.2 '@poppinss/exception@1.2.2': {} - '@react-aria/autocomplete@3.0.0-beta.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/combobox': 3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/listbox': 3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/searchfield': 3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/autocomplete': 3.0.0-beta.0(react@19.0.0) - '@react-stately/combobox': 3.10.3(react@19.0.0) - '@react-types/autocomplete': 3.0.0-alpha.29(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-context@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-direction@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-id@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-label@2.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/rect': 1.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-select@2.2.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-slot@1.2.3(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + use-sync-external-store: 1.6.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-use-size@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + + '@radix-ui/rect@1.1.1': {} + + '@react-aria/autocomplete@3.0.0-rc.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@react-aria/combobox': 3.14.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/listbox': 3.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/searchfield': 3.8.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/autocomplete': 3.0.0-beta.3(react@19.0.0) + '@react-stately/combobox': 3.12.0(react@19.0.0) + '@react-types/autocomplete': 3.0.0-alpha.35(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/breadcrumbs@3.5.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/breadcrumbs@3.5.29(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/link': 3.7.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/breadcrumbs': 3.7.11(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/link': 3.8.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/breadcrumbs': 3.7.17(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/button@3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/button@3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/toolbar': 3.0.0-beta.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/toggle': 3.8.2(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/toggle': 3.9.2(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/calendar@3.7.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/calendar@3.9.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/calendar': 3.7.1(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/calendar': 3.6.1(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/calendar': 3.9.0(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/calendar': 3.8.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/checkbox@3.15.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/checkbox@3.16.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/form': 3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/toggle': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/checkbox': 3.6.12(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/toggle': 3.8.2(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/form': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/toggle': 3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/checkbox': 3.7.2(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/toggle': 3.9.2(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/collections@3.0.0-beta.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/collections@3.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) - '@react-aria/color@3.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/color@3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/numberfield': 3.11.12(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/slider': 3.7.17(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/spinbutton': 3.6.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/color': 3.8.3(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-types/color': 3.0.3(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/numberfield': 3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/slider': 3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/spinbutton': 3.6.19(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/visually-hidden': 3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/color': 3.9.2(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-types/color': 3.1.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/combobox@3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/combobox@3.14.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/listbox': 3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/menu': 3.18.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/overlays': 3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/combobox': 3.10.3(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/combobox': 3.13.3(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/listbox': 3.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/menu': 3.19.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/combobox': 3.12.0(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/combobox': 3.13.9(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/datepicker@3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/datepicker@3.15.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@internationalized/number': 3.6.0 - '@internationalized/string': 3.2.5 - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/form': 3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/spinbutton': 3.6.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/datepicker': 3.13.0(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/calendar': 3.6.1(react@19.0.0) - '@react-types/datepicker': 3.11.0(react@19.0.0) - '@react-types/dialog': 3.5.16(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/form': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/spinbutton': 3.6.19(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/datepicker': 3.15.2(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/calendar': 3.8.0(react@19.0.0) + '@react-types/datepicker': 3.13.2(react@19.0.0) + '@react-types/dialog': 3.5.22(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/dialog@3.5.23(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/dialog@3.5.31(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/overlays': 3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/dialog': 3.5.16(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/dialog': 3.5.22(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/disclosure@3.0.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/disclosure@3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/disclosure': 3.0.2(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/disclosure': 3.0.8(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/dnd@3.9.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/dnd@3.11.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@internationalized/string': 3.2.5 - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/overlays': 3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/dnd': 3.5.2(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/string': 3.2.7 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/dnd': 3.7.1(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/focus@3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/focus@3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/form@3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/form@3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/grid@3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/grid@3.14.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/grid': 3.11.0(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/grid': 3.11.6(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/gridlist@3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/gridlist@3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/grid': 3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-stately/tree': 3.8.8(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/grid': 3.14.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-stately/tree': 3.9.3(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/i18n@3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/i18n@3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@internationalized/message': 3.1.6 - '@internationalized/number': 3.6.0 - '@internationalized/string': 3.2.5 - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@internationalized/message': 3.1.8 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/interactions@3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/interactions@3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/flags': 3.1.0 - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/flags': 3.1.2 + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/label@3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/label@3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/landmark@3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/landmark@3.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) - '@react-aria/link@3.7.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/link@3.8.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/link': 3.5.11(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/link': 3.6.5(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/listbox@3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/listbox@3.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-types/listbox': 3.5.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-types/listbox': 3.7.4(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/live-announcer@3.4.1': + '@react-aria/live-announcer@3.4.4': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 - '@react-aria/menu@3.18.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/menu@3.19.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/overlays': 3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/menu': 3.9.2(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/tree': 3.8.8(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/menu': 3.9.15(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/menu': 3.9.8(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/tree': 3.9.3(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/menu': 3.10.5(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/meter@3.4.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/meter@3.4.27(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/progress': 3.4.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/meter': 3.4.7(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/progress': 3.4.27(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/meter': 3.4.13(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/numberfield@3.11.12(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/numberfield@3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/spinbutton': 3.6.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/numberfield': 3.9.10(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/numberfield': 3.8.9(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/spinbutton': 3.6.19(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/numberfield': 3.10.2(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/numberfield': 3.8.15(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/overlays@3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/overlays@3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/overlays': 3.8.13(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/visually-hidden': 3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/progress@3.4.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/progress@3.4.27(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/progress': 3.5.10(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/progress': 3.5.16(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/radio@3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/radio@3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/form': 3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/radio': 3.10.11(react@19.0.0) - '@react-types/radio': 3.8.7(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/form': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/radio': 3.11.2(react@19.0.0) + '@react-types/radio': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/searchfield@3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/searchfield@3.8.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/searchfield': 3.5.10(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/searchfield': 3.6.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/searchfield': 3.5.16(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/searchfield': 3.6.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/select@3.15.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/select@3.17.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/form': 3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/listbox': 3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/menu': 3.18.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/select': 3.6.11(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/select': 3.9.10(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/form': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/listbox': 3.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/menu': 3.19.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/visually-hidden': 3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/select': 3.8.0(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/select': 3.11.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/selection@3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/selection@3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/separator@3.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/separator@3.4.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/slider@3.7.17(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/slider@3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/slider': 3.6.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/slider': 3.7.9(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/slider': 3.7.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/slider': 3.8.2(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/spinbutton@3.6.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/spinbutton@3.6.19(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/ssr@3.9.7(react@19.0.0)': + '@react-aria/ssr@3.9.10(react@19.0.0)': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-aria/switch@3.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/switch@3.7.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/toggle': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/toggle': 3.8.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/switch': 3.5.9(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/toggle': 3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/toggle': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/switch': 3.5.15(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/table@3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/table@3.17.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/grid': 3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/flags': 3.1.0 - '@react-stately/table': 3.14.0(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/table': 3.11.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/grid': 3.14.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/visually-hidden': 3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/flags': 3.1.2 + '@react-stately/table': 3.15.1(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/table': 3.13.4(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/tabs@3.10.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/tabs@3.10.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/tabs': 3.8.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/tabs': 3.3.13(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/tabs': 3.8.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/tabs': 3.3.19(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/tag@3.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/tag@3.7.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/gridlist': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/gridlist': 3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/textfield@3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/textfield@3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/form': 3.0.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/textfield': 3.12.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/form': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/textfield': 3.12.6(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/toast@3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/toast@3.0.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/landmark': 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/toast': 3.0.0(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/landmark': 3.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/toast': 3.1.2(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/toggle@3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/toggle@3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/toggle': 3.8.2(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/toggle': 3.9.2(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/toolbar@3.0.0-beta.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/toolbar@3.0.0-beta.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/tooltip@3.8.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/tooltip@3.8.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/tooltip': 3.5.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/tooltip': 3.4.15(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/tooltip': 3.5.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/tooltip': 3.4.21(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/tree@3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/tree@3.1.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/gridlist': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/tree': 3.8.8(react@19.0.0) - '@react-types/button': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/gridlist': 3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/tree': 3.9.3(react@19.0.0) + '@react-types/button': 3.14.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/utils@3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/utils@3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-stately/flags': 3.1.0 - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-stately/flags': 3.1.2 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/virtualizer@4.1.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/virtualizer@4.1.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/virtualizer': 4.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/virtualizer': 4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-aria/visually-hidden@3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-aria/visually-hidden@3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-stately/autocomplete@3.0.0-beta.0(react@19.0.0)': + '@react-stately/autocomplete@3.0.0-beta.3(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/calendar@3.7.1(react@19.0.0)': + '@react-stately/calendar@3.9.0(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/calendar': 3.6.1(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/calendar': 3.8.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/checkbox@3.6.12(react@19.0.0)': + '@react-stately/checkbox@3.7.2(react@19.0.0)': dependencies: - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/collections@3.12.2(react@19.0.0)': + '@react-stately/collections@3.12.8(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/color@3.8.3(react@19.0.0)': + '@react-stately/color@3.9.2(react@19.0.0)': dependencies: - '@internationalized/number': 3.6.0 - '@internationalized/string': 3.2.5 - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/numberfield': 3.9.10(react@19.0.0) - '@react-stately/slider': 3.6.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/color': 3.0.3(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/number': 3.6.5 + '@internationalized/string': 3.2.7 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/numberfield': 3.10.2(react@19.0.0) + '@react-stately/slider': 3.7.2(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/color': 3.1.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/combobox@3.10.3(react@19.0.0)': + '@react-stately/combobox@3.12.0(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-stately/select': 3.6.11(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/combobox': 3.13.3(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/combobox': 3.13.9(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/data@3.12.2(react@19.0.0)': + '@react-stately/data@3.14.1(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/datepicker@3.13.0(react@19.0.0)': + '@react-stately/datepicker@3.15.2(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@internationalized/string': 3.2.5 - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/datepicker': 3.11.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@internationalized/string': 3.2.7 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/datepicker': 3.13.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/disclosure@3.0.2(react@19.0.0)': + '@react-stately/disclosure@3.0.8(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/dnd@3.5.2(react@19.0.0)': + '@react-stately/dnd@3.7.1(react@19.0.0)': dependencies: - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/flags@3.1.0': + '@react-stately/flags@3.1.2': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 - '@react-stately/form@3.1.2(react@19.0.0)': + '@react-stately/form@3.2.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/grid@3.11.0(react@19.0.0)': + '@react-stately/grid@3.11.6(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/layout@4.2.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-stately/layout@4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/table': 3.14.0(react@19.0.0) - '@react-stately/virtualizer': 4.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/table': 3.11.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/table': 3.15.1(react@19.0.0) + '@react-stately/virtualizer': 4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/table': 3.13.4(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-stately/list@3.12.0(react@19.0.0)': + '@react-stately/list@3.13.1(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/menu@3.9.2(react@19.0.0)': + '@react-stately/menu@3.9.8(react@19.0.0)': dependencies: - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-types/menu': 3.9.15(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-types/menu': 3.10.5(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/numberfield@3.9.10(react@19.0.0)': + '@react-stately/numberfield@3.10.2(react@19.0.0)': dependencies: - '@internationalized/number': 3.6.0 - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/numberfield': 3.8.9(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/number': 3.6.5 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/numberfield': 3.8.15(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/overlays@3.6.14(react@19.0.0)': + '@react-stately/overlays@3.6.20(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/overlays': 3.8.13(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/radio@3.10.11(react@19.0.0)': + '@react-stately/radio@3.11.2(react@19.0.0)': dependencies: - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/radio': 3.8.7(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/radio': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/searchfield@3.5.10(react@19.0.0)': + '@react-stately/searchfield@3.5.16(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/searchfield': 3.6.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/searchfield': 3.6.6(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/select@3.6.11(react@19.0.0)': + '@react-stately/select@3.8.0(react@19.0.0)': dependencies: - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-types/select': 3.9.10(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/select': 3.11.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/selection@3.20.0(react@19.0.0)': + '@react-stately/selection@3.20.6(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/slider@3.6.2(react@19.0.0)': + '@react-stately/slider@3.7.2(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/slider': 3.7.9(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/slider': 3.8.2(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/table@3.14.0(react@19.0.0)': + '@react-stately/table@3.15.1(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/flags': 3.1.0 - '@react-stately/grid': 3.11.0(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/table': 3.11.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/flags': 3.1.2 + '@react-stately/grid': 3.11.6(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/table': 3.13.4(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/tabs@3.8.0(react@19.0.0)': + '@react-stately/tabs@3.8.6(react@19.0.0)': dependencies: - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/tabs': 3.3.13(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/tabs': 3.3.19(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/toast@3.0.0(react@19.0.0)': + '@react-stately/toast@3.1.2(react@19.0.0)': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 19.0.0 - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) - '@react-stately/toggle@3.8.2(react@19.0.0)': + '@react-stately/toggle@3.9.2(react@19.0.0)': dependencies: - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/checkbox': 3.9.2(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/checkbox': 3.10.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/tooltip@3.5.2(react@19.0.0)': + '@react-stately/tooltip@3.5.8(react@19.0.0)': dependencies: - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-types/tooltip': 3.4.15(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-types/tooltip': 3.4.21(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/tree@3.8.8(react@19.0.0)': + '@react-stately/tree@3.9.3(react@19.0.0)': dependencies: - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/utils@3.10.5(react@19.0.0)': + '@react-stately/utils@3.10.8(react@19.0.0)': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 19.0.0 - '@react-stately/virtualizer@4.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-stately/virtualizer@4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.32.1(react@19.0.0) + '@swc/helpers': 0.5.17 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-types/autocomplete@3.0.0-alpha.29(react@19.0.0)': + '@react-types/autocomplete@3.0.0-alpha.35(react@19.0.0)': dependencies: - '@react-types/combobox': 3.13.3(react@19.0.0) - '@react-types/searchfield': 3.6.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/combobox': 3.13.9(react@19.0.0) + '@react-types/searchfield': 3.6.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/breadcrumbs@3.7.11(react@19.0.0)': + '@react-types/breadcrumbs@3.7.17(react@19.0.0)': dependencies: - '@react-types/link': 3.5.11(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/link': 3.6.5(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/button@3.11.0(react@19.0.0)': + '@react-types/button@3.14.1(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/calendar@3.6.1(react@19.0.0)': + '@react-types/calendar@3.8.0(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@react-types/shared': 3.28.0(react@19.0.0) + '@internationalized/date': 3.10.0 + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/checkbox@3.9.2(react@19.0.0)': + '@react-types/checkbox@3.10.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/color@3.0.3(react@19.0.0)': + '@react-types/color@3.1.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/slider': 3.7.9(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/slider': 3.8.2(react@19.0.0) react: 19.0.0 - '@react-types/combobox@3.13.3(react@19.0.0)': + '@react-types/combobox@3.13.9(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/datepicker@3.11.0(react@19.0.0)': + '@react-types/datepicker@3.13.2(react@19.0.0)': dependencies: - '@internationalized/date': 3.7.0 - '@react-types/calendar': 3.6.1(react@19.0.0) - '@react-types/overlays': 3.8.13(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@internationalized/date': 3.10.0 + '@react-types/calendar': 3.8.0(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/dialog@3.5.16(react@19.0.0)': + '@react-types/dialog@3.5.22(react@19.0.0)': dependencies: - '@react-types/overlays': 3.8.13(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/form@3.7.10(react@19.0.0)': + '@react-types/form@3.7.16(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/grid@3.3.0(react@19.0.0)': + '@react-types/grid@3.3.6(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/link@3.5.11(react@19.0.0)': + '@react-types/link@3.6.5(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/listbox@3.5.5(react@19.0.0)': + '@react-types/listbox@3.7.4(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/menu@3.9.15(react@19.0.0)': + '@react-types/menu@3.10.5(react@19.0.0)': dependencies: - '@react-types/overlays': 3.8.13(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/meter@3.4.7(react@19.0.0)': + '@react-types/meter@3.4.13(react@19.0.0)': dependencies: - '@react-types/progress': 3.5.10(react@19.0.0) + '@react-types/progress': 3.5.16(react@19.0.0) react: 19.0.0 - '@react-types/numberfield@3.8.9(react@19.0.0)': + '@react-types/numberfield@3.8.15(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/overlays@3.8.13(react@19.0.0)': + '@react-types/overlays@3.9.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/progress@3.5.10(react@19.0.0)': + '@react-types/progress@3.5.16(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/radio@3.8.7(react@19.0.0)': + '@react-types/radio@3.9.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/searchfield@3.6.0(react@19.0.0)': + '@react-types/searchfield@3.6.6(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/textfield': 3.12.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/textfield': 3.12.6(react@19.0.0) react: 19.0.0 - '@react-types/select@3.9.10(react@19.0.0)': + '@react-types/select@3.11.0(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/shared@3.28.0(react@19.0.0)': + '@react-types/shared@3.32.1(react@19.0.0)': dependencies: react: 19.0.0 - '@react-types/slider@3.7.9(react@19.0.0)': + '@react-types/slider@3.8.2(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/switch@3.5.9(react@19.0.0)': + '@react-types/switch@3.5.15(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/table@3.11.0(react@19.0.0)': + '@react-types/table@3.13.4(react@19.0.0)': dependencies: - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/tabs@3.3.13(react@19.0.0)': + '@react-types/tabs@3.3.19(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/textfield@3.12.0(react@19.0.0)': + '@react-types/textfield@3.12.6(react@19.0.0)': dependencies: - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@react-types/tooltip@3.4.15(react@19.0.0)': + '@react-types/tooltip@3.4.21(react@19.0.0)': dependencies: - '@react-types/overlays': 3.8.13(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-types/overlays': 3.9.2(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 - '@rgrove/parse-xml@3.0.0': + '@remix-run/node-fetch-server@0.8.1': {} + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/rollup-android-arm-eabi@4.52.4': optional: true - '@rollup/plugin-replace@6.0.2(rollup@4.34.6)': - dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.34.6) - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/pluginutils@5.2.0(rollup@4.34.6)': - dependencies: - '@types/estree': 1.0.6 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.34.6 - - '@rollup/rollup-android-arm-eabi@4.34.6': + '@rollup/rollup-android-arm64@4.52.4': optional: true - '@rollup/rollup-android-arm64@4.34.6': + '@rollup/rollup-darwin-arm64@4.52.4': optional: true - '@rollup/rollup-darwin-arm64@4.34.6': + '@rollup/rollup-darwin-x64@4.52.4': optional: true - '@rollup/rollup-darwin-x64@4.34.6': + '@rollup/rollup-freebsd-arm64@4.52.4': optional: true - '@rollup/rollup-freebsd-arm64@4.34.6': + '@rollup/rollup-freebsd-x64@4.52.4': optional: true - '@rollup/rollup-freebsd-x64@4.34.6': + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.6': + '@rollup/rollup-linux-arm-musleabihf@4.52.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.6': + '@rollup/rollup-linux-arm64-gnu@4.52.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.6': + '@rollup/rollup-linux-arm64-musl@4.52.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.6': + '@rollup/rollup-linux-loong64-gnu@4.52.4': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.6': + '@rollup/rollup-linux-ppc64-gnu@4.52.4': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.6': + '@rollup/rollup-linux-riscv64-gnu@4.52.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.6': + '@rollup/rollup-linux-riscv64-musl@4.52.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.6': + '@rollup/rollup-linux-s390x-gnu@4.52.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.6': + '@rollup/rollup-linux-x64-gnu@4.52.4': optional: true - '@rollup/rollup-linux-x64-musl@4.34.6': + '@rollup/rollup-linux-x64-musl@4.52.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.6': + '@rollup/rollup-openharmony-arm64@4.52.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.6': + '@rollup/rollup-win32-arm64-msvc@4.52.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.6': + '@rollup/rollup-win32-ia32-msvc@4.52.4': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.52.4': optional: true '@sinclair/typebox@0.27.8': {} - '@sindresorhus/is@7.0.2': {} + '@sindresorhus/is@7.1.0': {} '@sinonjs/commons@3.0.1': dependencies: @@ -7478,6 +8430,8 @@ snapshots: '@speed-highlight/core@1.2.7': {} + '@standard-schema/utils@0.3.0': {} + '@stream-io/escape-string-regexp@5.0.1': optional: true @@ -7487,11 +8441,11 @@ snapshots: lodash.deburr: 4.1.0 optional: true - '@supabase/auth-js@2.69.1': + '@supabase/auth-js@2.75.0': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/functions-js@2.4.4': + '@supabase/functions-js@2.75.0': dependencies: '@supabase/node-fetch': 2.6.15 @@ -7499,146 +8453,155 @@ snapshots: dependencies: whatwg-url: 5.0.0 - '@supabase/postgrest-js@1.19.2': + '@supabase/postgrest-js@2.75.0': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/realtime-js@2.11.2': + '@supabase/realtime-js@2.75.0': dependencies: '@supabase/node-fetch': 2.6.15 '@types/phoenix': 1.6.6 - '@types/ws': 8.18.0 - ws: 8.18.1 + '@types/ws': 8.18.1 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - utf-8-validate - '@supabase/storage-js@2.7.1': + '@supabase/storage-js@2.75.0': dependencies: '@supabase/node-fetch': 2.6.15 - '@supabase/supabase-js@2.49.3': + '@supabase/supabase-js@2.75.0': dependencies: - '@supabase/auth-js': 2.69.1 - '@supabase/functions-js': 2.4.4 + '@supabase/auth-js': 2.75.0 + '@supabase/functions-js': 2.75.0 '@supabase/node-fetch': 2.6.15 - '@supabase/postgrest-js': 1.19.2 - '@supabase/realtime-js': 2.11.2 - '@supabase/storage-js': 2.7.1 + '@supabase/postgrest-js': 2.75.0 + '@supabase/realtime-js': 2.75.0 + '@supabase/storage-js': 2.75.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@swc/helpers@0.5.15': + '@swc/helpers@0.5.17': dependencies: tslib: 2.8.1 - '@tailwindcss/container-queries@0.1.1(tailwindcss@4.0.14)': + '@tailwindcss/container-queries@0.1.1(tailwindcss@4.1.14)': dependencies: - tailwindcss: 4.0.14 + tailwindcss: 4.1.14 - '@tailwindcss/node@4.0.14': + '@tailwindcss/node@4.1.14': dependencies: - enhanced-resolve: 5.18.1 - jiti: 2.4.2 - tailwindcss: 4.0.14 + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.1 + magic-string: 0.30.19 + source-map-js: 1.2.1 + tailwindcss: 4.1.14 - '@tailwindcss/oxide-android-arm64@4.0.14': + '@tailwindcss/oxide-android-arm64@4.1.14': optional: true - '@tailwindcss/oxide-darwin-arm64@4.0.14': + '@tailwindcss/oxide-darwin-arm64@4.1.14': optional: true - '@tailwindcss/oxide-darwin-x64@4.0.14': + '@tailwindcss/oxide-darwin-x64@4.1.14': optional: true - '@tailwindcss/oxide-freebsd-x64@4.0.14': + '@tailwindcss/oxide-freebsd-x64@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.14': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.0.14': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.0.14': + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.0.14': + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.0.14': + '@tailwindcss/oxide-linux-x64-musl@4.1.14': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.0.14': + '@tailwindcss/oxide-wasm32-wasi@4.1.14': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.0.14': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': optional: true - '@tailwindcss/oxide@4.0.14': + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': + optional: true + + '@tailwindcss/oxide@4.1.14': + dependencies: + detect-libc: 2.1.2 + tar: 7.5.1 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.0.14 - '@tailwindcss/oxide-darwin-arm64': 4.0.14 - '@tailwindcss/oxide-darwin-x64': 4.0.14 - '@tailwindcss/oxide-freebsd-x64': 4.0.14 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.14 - '@tailwindcss/oxide-linux-arm64-gnu': 4.0.14 - '@tailwindcss/oxide-linux-arm64-musl': 4.0.14 - '@tailwindcss/oxide-linux-x64-gnu': 4.0.14 - '@tailwindcss/oxide-linux-x64-musl': 4.0.14 - '@tailwindcss/oxide-win32-arm64-msvc': 4.0.14 - '@tailwindcss/oxide-win32-x64-msvc': 4.0.14 + '@tailwindcss/oxide-android-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-x64': 4.1.14 + '@tailwindcss/oxide-freebsd-x64': 4.1.14 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-x64-musl': 4.1.14 + '@tailwindcss/oxide-wasm32-wasi': 4.1.14 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 - '@tailwindcss/vite@4.0.14(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + '@tailwindcss/vite@4.1.14(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: - '@tailwindcss/node': 4.0.14 - '@tailwindcss/oxide': 4.0.14 - lightningcss: 1.29.2 - tailwindcss: 4.0.14 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + '@tailwindcss/node': 4.1.14 + '@tailwindcss/oxide': 4.1.14 + tailwindcss: 4.1.14 + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) - '@tanstack/query-core@5.69.0': {} + '@tanstack/query-core@5.90.3': {} - '@tanstack/react-query@5.69.0(react@19.0.0)': + '@tanstack/react-query@5.90.3(react@19.0.0)': dependencies: - '@tanstack/query-core': 5.69.0 + '@tanstack/query-core': 5.90.3 react: 19.0.0 - '@testing-library/dom@10.4.0': + '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.27.6 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 - chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 + picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.6.3': + '@testing-library/jest-dom@6.9.1': dependencies: - '@adobe/css-tools': 4.4.2 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 - chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 + picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.27.0 - '@testing-library/dom': 10.4.0 + '@babel/runtime': 7.28.4 + '@testing-library/dom': 10.4.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: - '@testing-library/dom': 10.4.0 + '@testing-library/dom': 10.4.1 '@tootallnate/once@2.0.0': {} @@ -7646,31 +8609,29 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 - '@types/babel__generator': 7.6.8 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.8 - '@babel/types': 7.26.8 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.26.8 + '@babel/types': 7.28.4 '@types/chai@5.2.2': dependencies: '@types/deep-eql': 4.0.2 - '@types/cookie@0.6.0': {} - '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -7679,15 +8640,13 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 - '@types/estree@1.0.6': {} - - '@types/gensync@1.0.4': {} + '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 '@types/hast@3.0.4': dependencies: @@ -7712,26 +8671,16 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 '@types/tough-cookie': 4.0.5 - parse5: 7.2.1 + parse5: 7.3.0 '@types/json-schema@7.0.15': {} '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 22.13.10 - - '@types/linkifyjs@2.1.7': - dependencies: - '@types/react': 19.0.10 - optional: true - - '@types/mdast@3.0.15': - dependencies: - '@types/unist': 2.0.11 - optional: true + '@types/node': 22.18.10 '@types/mdast@4.0.4': dependencies: @@ -7739,13 +8688,15 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@20.19.20': + '@types/node@20.19.21': dependencies: undici-types: 6.21.0 - '@types/node@22.13.10': + '@types/node@22.18.10': dependencies: - undici-types: 6.20.0 + undici-types: 6.21.0 + + '@types/pako@2.0.4': {} '@types/phoenix@1.6.6': {} @@ -7784,9 +8735,9 @@ snapshots: '@types/whatwg-mimetype@3.0.2': {} - '@types/ws@8.18.0': + '@types/ws@8.18.1': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 '@types/yargs-parser@21.0.3': {} @@ -7794,63 +8745,72 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/type-utils': 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.37.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.7.3) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.7.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + eslint: 9.37.0(jiti@2.6.1) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) optionalDependencies: - typescript: 5.7.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.26.1 - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.7.3 + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.1 + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + debug: 4.4.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -7859,86 +8819,93 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.26.1': + '@typescript-eslint/scope-manager@8.46.1': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 - '@typescript-eslint/type-utils@7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - '@typescript-eslint/utils': 7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - ts-api-utils: 1.4.3(typescript@5.7.3) + typescript: 5.9.3 + + '@typescript-eslint/type-utils@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) + '@typescript-eslint/utils': 7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.7.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.22.0(jiti@2.4.2) - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.26.1': {} + '@typescript-eslint/types@8.46.1': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.0 + debug: 4.4.3 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 1.4.3(typescript@5.7.3) + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: - typescript: 5.7.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.26.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/visitor-keys': 8.26.1 - debug: 4.4.0 + '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3) + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/visitor-keys': 8.46.1 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + semver: 7.7.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@7.18.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) - eslint: 9.22.0(jiti@2.4.2) + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/types': 8.26.1 - '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.7.3) - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.7.3 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.46.1 + '@typescript-eslint/types': 8.46.1 + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -7947,10 +8914,10 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.26.1': + '@typescript-eslint/visitor-keys@8.46.1': dependencies: - '@typescript-eslint/types': 8.26.1 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.46.1 + eslint-visitor-keys: 4.2.1 '@typescript/native-preview-darwin-arm64@7.0.0-dev.20251010.1': optional: true @@ -7992,14 +8959,15 @@ snapshots: '@virtuoso.dev/urx@0.2.13': {} - '@vitejs/plugin-react@4.3.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + '@vitejs/plugin-react@4.7.0(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.8) + '@babel/core': 7.28.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) + '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + react-refresh: 0.17.0 + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color @@ -8008,16 +8976,16 @@ snapshots: '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 + chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2))': + '@vitest/mocker@3.2.4(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.17 + magic-string: 0.30.19 optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -8032,7 +9000,7 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.17 + magic-string: 0.30.19 pathe: 2.0.3 '@vitest/spy@3.2.4': @@ -8049,37 +9017,39 @@ snapshots: acorn-globals@7.0.1: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk: 8.3.4 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.3.2: {} acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn@8.14.0: {} - ag-charts-types@11.2.1: {} + acorn@8.15.0: {} - ag-grid-community@33.2.1: - dependencies: - ag-charts-types: 11.2.1 + ag-charts-types@11.3.2: {} - ag-grid-react@33.2.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + ag-grid-community@33.3.2: dependencies: - ag-grid-community: 33.2.1 + ag-charts-types: 11.3.2 + + ag-grid-react@33.3.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + ag-grid-community: 33.3.2 prop-types: 15.8.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8113,6 +9083,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -8124,14 +9098,16 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-includes@3.1.8: + array-includes@3.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 + math-intrinsics: 1.1.0 array-union@2.1.0: {} @@ -8139,7 +9115,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -8148,21 +9124,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 @@ -8171,7 +9147,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -8182,29 +9158,27 @@ snapshots: asynckit@0.4.0: {} - atob@2.1.2: {} - attr-accept@2.2.5: {} available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 - axios@1.8.4: + axios@1.12.2: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.2 + follow-redirects: 1.15.11 + form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - babel-jest@29.7.0(@babel/core@7.26.8): + babel-jest@29.7.0(@babel/core@7.28.4): dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.28.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.8) + babel-preset-jest: 29.6.3(@babel/core@7.28.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -8213,7 +9187,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -8223,38 +9197,35 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.26.8 - '@babel/types': 7.26.8 + '@babel/template': 7.27.2 + '@babel/types': 7.28.4 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.8): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): dependencies: - '@babel/core': 7.26.8 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.8) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.8) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.8) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.8) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.8) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.8) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.8) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.8) + '@babel/core': 7.28.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) - babel-preset-jest@29.6.3(@babel/core@7.26.8): + babel-preset-jest@29.6.3(@babel/core@7.28.4): dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.28.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) - - bail@1.0.5: - optional: true + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) bail@2.0.2: {} @@ -8265,14 +9236,16 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.8.16: {} + blake3-wasm@2.1.5: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -8280,19 +9253,18 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.4: + browserslist@4.26.3: dependencies: - caniuse-lite: 1.0.30001699 - electron-to-chromium: 1.5.97 - node-releases: 2.0.19 - update-browserslist-db: 1.1.2(browserslist@4.24.4) + baseline-browser-mapping: 2.8.16 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.237 + node-releases: 2.0.25 + update-browserslist-db: 1.1.3(browserslist@4.26.3) bser@2.1.1: dependencies: node-int64: 0.4.0 - btoa@1.2.1: {} - buffer-equal-constant-time@1.0.1: {} buffer-from@1.1.2: {} @@ -8322,13 +9294,13 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001699: {} + caniuse-lite@1.0.30001751: {} canvg@3.0.11: dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.4 '@types/raf': 3.4.3 - core-js: 3.41.0 + core-js: 3.46.0 raf: 3.4.1 regenerator-runtime: 0.13.11 rgbcolor: 1.0.1 @@ -8338,18 +9310,13 @@ snapshots: ccount@2.0.1: {} - chai@5.2.0: + chai@5.3.3: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.3 - pathval: 2.0.0 - - chalk@3.0.0: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + loupe: 3.2.1 + pathval: 2.0.1 chalk@4.1.2: dependencies: @@ -8360,29 +9327,26 @@ snapshots: character-entities-html4@2.1.0: {} - character-entities-legacy@1.1.4: - optional: true - character-entities-legacy@3.0.0: {} - character-entities@1.2.4: - optional: true - character-entities@2.0.2: {} - character-reference-invalid@1.1.4: - optional: true - character-reference-invalid@2.0.1: {} check-error@2.1.1: {} - chromatic@11.27.0: {} + chownr@3.0.0: {} + + chromatic@11.29.0: {} ci-info@3.9.0: {} cjs-module-lexer@1.4.3: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + client-only@0.0.1: {} cliui@8.0.1: @@ -8395,7 +9359,7 @@ snapshots: co@4.6.0: {} - collect-v8-coverage@1.0.2: {} + collect-v8-coverage@1.0.3: {} color-convert@2.0.1: dependencies: @@ -8406,7 +9370,7 @@ snapshots: color-string@1.9.1: dependencies: color-name: 1.1.4 - simple-swizzle: 0.2.2 + simple-swizzle: 0.2.4 color@4.2.3: dependencies: @@ -8425,16 +9389,16 @@ snapshots: cookie@1.0.2: {} - core-js@3.41.0: + core-js@3.46.0: optional: true - create-jest@29.7.0(@types/node@22.13.10): + create-jest@29.7.0(@types/node@22.18.10): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.13.10) + jest-config: 29.7.0(@types/node@22.18.10) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -8490,25 +9454,23 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + date-fns-jalali@4.1.0-0: {} + date-fns@4.1.0: {} - dayjs@1.11.13: {} - - debug@4.4.0: - dependencies: - ms: 2.1.3 + dayjs@1.11.18: {} debug@4.4.3: dependencies: ms: 2.1.3 - decimal.js@10.5.0: {} + decimal.js@10.6.0: {} decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 - dedent@1.5.3: {} + dedent@1.7.0: {} deep-eql@5.0.2: {} @@ -8536,10 +9498,12 @@ snapshots: dequal@2.0.3: {} - detect-libc@2.0.3: {} + detect-libc@2.1.2: {} detect-newline@3.1.0: {} + detect-node-es@1.1.0: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -8558,37 +9522,15 @@ snapshots: dom-accessibility-api@0.6.3: {} - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - optional: true - - domelementtype@2.3.0: - optional: true - domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - optional: true - - dompurify@3.2.5: + dompurify@3.3.0: optionalDependencies: '@types/trusted-types': 2.0.7 optional: true - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - optional: true - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8599,7 +9541,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - electron-to-chromium@1.5.97: {} + electron-to-chromium@1.5.237: {} emittery@0.13.1: {} @@ -8607,20 +9549,20 @@ snapshots: emoji-regex@9.2.2: {} - enhanced-resolve@5.18.1: + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.3.0 - entities@4.5.0: {} + entities@6.0.1: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 error-stack-parser-es@1.0.5: {} - es-abstract@1.23.9: + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -8649,7 +9591,9 @@ snapshots: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 + is-negative-zero: 2.0.3 is-regex: 1.2.1 + is-set: 2.0.3 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 @@ -8664,6 +9608,7 @@ snapshots: safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -8683,7 +9628,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -8720,33 +9665,34 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild@0.25.1: + esbuild@0.25.11: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.1 - '@esbuild/android-arm': 0.25.1 - '@esbuild/android-arm64': 0.25.1 - '@esbuild/android-x64': 0.25.1 - '@esbuild/darwin-arm64': 0.25.1 - '@esbuild/darwin-x64': 0.25.1 - '@esbuild/freebsd-arm64': 0.25.1 - '@esbuild/freebsd-x64': 0.25.1 - '@esbuild/linux-arm': 0.25.1 - '@esbuild/linux-arm64': 0.25.1 - '@esbuild/linux-ia32': 0.25.1 - '@esbuild/linux-loong64': 0.25.1 - '@esbuild/linux-mips64el': 0.25.1 - '@esbuild/linux-ppc64': 0.25.1 - '@esbuild/linux-riscv64': 0.25.1 - '@esbuild/linux-s390x': 0.25.1 - '@esbuild/linux-x64': 0.25.1 - '@esbuild/netbsd-arm64': 0.25.1 - '@esbuild/netbsd-x64': 0.25.1 - '@esbuild/openbsd-arm64': 0.25.1 - '@esbuild/openbsd-x64': 0.25.1 - '@esbuild/sunos-x64': 0.25.1 - '@esbuild/win32-arm64': 0.25.1 - '@esbuild/win32-ia32': 0.25.1 - '@esbuild/win32-x64': 0.25.1 + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 esbuild@0.25.4: optionalDependencies: @@ -8792,15 +9738,15 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-react@7.37.4(eslint@9.22.0(jiti@2.4.2)): + eslint-plugin-react@7.37.5(eslint@9.37.0(jiti@2.6.1)): dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.37.0(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -8814,38 +9760,38 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@8.3.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} - eslint@9.22.0(jiti@2.4.2): + eslint@9.37.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.2 - '@eslint/config-helpers': 0.1.0 - '@eslint/core': 0.12.0 - '@eslint/eslintrc': 3.3.0 - '@eslint/js': 9.22.0 - '@eslint/plugin-kit': 0.2.7 - '@humanfs/node': 0.16.6 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.4.0 + '@eslint/core': 0.16.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.37.0 + '@eslint/plugin-kit': 0.4.0 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -8861,15 +9807,15 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.6.1 transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -8885,11 +9831,9 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -8909,7 +9853,7 @@ snapshots: exit@0.1.2: {} - expect-type@1.2.1: {} + expect-type@1.2.2: {} expect@29.7.0: dependencies: @@ -8937,17 +9881,23 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.19.0: + fast-png@6.4.0: dependencies: - reusify: 1.0.4 + '@types/pako': 2.0.4 + iobuffer: 5.4.0 + pako: 2.1.0 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 fb-watchman@2.0.2: dependencies: bser: 2.1.1 - fdir@6.4.6(picomatch@4.0.2): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 fflate@0.8.2: {} @@ -8977,22 +9927,23 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} - follow-redirects@1.15.9: {} + follow-redirects@1.15.11: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 - form-data@4.0.2: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 fs.realpath@1.0.0: {} @@ -9013,6 +9964,8 @@ snapshots: functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9030,6 +9983,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-package-type@0.1.0: {} get-port@7.1.0: {} @@ -9066,11 +10021,9 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globals@11.12.0: {} - globals@14.0.0: {} - globals@16.0.0: {} + globals@16.4.0: {} globalthis@1.0.4: dependencies: @@ -9094,9 +10047,9 @@ snapshots: graphemer@1.4.0: {} - happy-dom@20.0.0: + happy-dom@20.0.2: dependencies: - '@types/node': 20.19.20 + '@types/node': 20.19.21 '@types/whatwg-mimetype': 3.0.2 whatwg-mimetype: 3.0.0 @@ -9135,7 +10088,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -9147,9 +10100,9 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-js: 1.1.18 unist-util-position: 5.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 transitivePeerDependencies: - supports-color @@ -9163,14 +10116,6 @@ snapshots: html-escaper@2.0.2: {} - html-to-react@1.7.0(react@19.0.0): - dependencies: - domhandler: 5.0.3 - htmlparser2: 9.1.0 - lodash.camelcase: 4.3.0 - react: 19.0.0 - optional: true - html-url-attributes@3.0.1: {} html2canvas@1.4.1: @@ -9179,44 +10124,28 @@ snapshots: text-segmentation: 1.0.3 optional: true - htmlparser2@9.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - optional: true - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color human-signals@2.1.0: {} - i18next@25.2.1(typescript@5.7.3): + i18next@25.6.0(typescript@5.9.3): dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.28.4 optionalDependencies: - typescript: 5.7.3 - - ical-expander@3.1.0: - dependencies: - ical.js: 1.5.0 - optional: true - - ical.js@1.5.0: - optional: true + typescript: 5.9.3 iconv-lite@0.6.3: dependencies: @@ -9224,6 +10153,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -9253,24 +10184,17 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - intl-messageformat@10.7.15: + intl-messageformat@10.7.18: dependencies: - '@formatjs/ecma402-abstract': 2.3.3 - '@formatjs/fast-memoize': 2.2.6 - '@formatjs/icu-messageformat-parser': 2.11.1 + '@formatjs/ecma402-abstract': 2.3.6 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/icu-messageformat-parser': 2.11.4 tslib: 2.8.1 - is-alphabetical@1.0.4: - optional: true + iobuffer@5.4.0: {} is-alphabetical@2.0.1: {} - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - optional: true - is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -9284,7 +10208,7 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.2: {} + is-arrayish@0.3.4: {} is-async-function@2.1.1: dependencies: @@ -9303,9 +10227,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-buffer@2.0.5: - optional: true - is-callable@1.2.7: {} is-core-module@2.16.1: @@ -9323,9 +10244,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-decimal@1.0.4: - optional: true - is-decimal@2.0.1: {} is-docker@2.2.1: {} @@ -9340,9 +10258,10 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -9351,13 +10270,12 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-hexadecimal@1.0.4: - optional: true - is-hexadecimal@2.0.1: {} is-map@2.0.3: {} + is-negative-zero@2.0.3: {} + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -9365,9 +10283,6 @@ snapshots: is-number@7.0.0: {} - is-plain-obj@2.1.0: - optional: true - is-plain-obj@4.1.0: {} is-potential-custom-element-name@1.0.1: {} @@ -9421,16 +10336,16 @@ snapshots: isexe@2.0.0: {} - isomorphic-ws@5.0.0(ws@8.18.1): + isomorphic-ws@5.0.0(ws@8.18.3): dependencies: - ws: 8.18.1 + ws: 8.18.3 istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.8 - '@babel/parser': 7.26.8 + '@babel/core': 7.28.4 + '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -9439,11 +10354,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.26.8 - '@babel/parser': 7.26.8 + '@babel/core': 7.28.4 + '@babel/parser': 7.28.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -9455,13 +10370,13 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.0 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -9487,10 +10402,10 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3 + dedent: 1.7.0 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -9507,16 +10422,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.13.10): + jest-cli@29.7.0(@types/node@22.18.10): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.13.10) + create-jest: 29.7.0(@types/node@22.18.10) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.13.10) + jest-config: 29.7.0(@types/node@22.18.10) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -9526,12 +10441,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.13.10): + jest-config@29.7.0(@types/node@22.18.10): dependencies: - '@babel/core': 7.26.8 + '@babel/core': 7.28.4 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.8) + babel-jest: 29.7.0(@babel/core@7.28.4) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9551,7 +10466,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -9581,7 +10496,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -9595,7 +10510,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9605,7 +10520,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.10 + '@types/node': 22.18.10 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9631,7 +10546,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -9644,7 +10559,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -9679,7 +10594,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -9707,10 +10622,10 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 chalk: 4.1.2 cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 @@ -9727,15 +10642,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.8 - '@babel/generator': 7.26.8 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8) - '@babel/types': 7.26.8 + '@babel/core': 7.28.4 + '@babel/generator': 7.28.3 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/types': 7.28.4 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.8) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -9746,14 +10661,14 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.1 + semver: 7.7.3 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9772,7 +10687,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.10 + '@types/node': 22.18.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -9781,27 +10696,24 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.13.10): + jest@29.7.0(@types/node@22.18.10): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.13.10) + jest-cli: 29.7.0(@types/node@22.18.10) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jiti@2.4.2: {} - - jquery@3.7.1: - optional: true + jiti@2.6.1: {} js-tokens@4.0.0: {} @@ -9819,21 +10731,21 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.14.0 + acorn: 8.15.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.5.0 + decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.2 + form-data: 4.0.4 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.2.1 + nwsapi: 2.2.22 + parse5: 7.3.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -9842,7 +10754,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.1 + ws: 8.18.3 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -9872,23 +10784,22 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.1 + semver: 7.7.3 - jspdf@3.0.1: + jspdf@3.0.3: dependencies: - '@babel/runtime': 7.27.0 - atob: 2.1.2 - btoa: 1.2.1 + '@babel/runtime': 7.28.4 + fast-png: 6.4.0 fflate: 0.8.2 optionalDependencies: canvg: 3.0.11 - core-js: 3.41.0 - dompurify: 3.2.5 + core-js: 3.46.0 + dompurify: 3.3.0 html2canvas: 1.4.1 jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -9921,61 +10832,54 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lightningcss-darwin-arm64@1.29.2: + lightningcss-darwin-arm64@1.30.1: optional: true - lightningcss-darwin-x64@1.29.2: + lightningcss-darwin-x64@1.30.1: optional: true - lightningcss-freebsd-x64@1.29.2: + lightningcss-freebsd-x64@1.30.1: optional: true - lightningcss-linux-arm-gnueabihf@1.29.2: + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true - lightningcss-linux-arm64-gnu@1.29.2: + lightningcss-linux-arm64-gnu@1.30.1: optional: true - lightningcss-linux-arm64-musl@1.29.2: + lightningcss-linux-arm64-musl@1.30.1: optional: true - lightningcss-linux-x64-gnu@1.29.2: + lightningcss-linux-x64-gnu@1.30.1: optional: true - lightningcss-linux-x64-musl@1.29.2: + lightningcss-linux-x64-musl@1.30.1: optional: true - lightningcss-win32-arm64-msvc@1.29.2: + lightningcss-win32-arm64-msvc@1.30.1: optional: true - lightningcss-win32-x64-msvc@1.29.2: + lightningcss-win32-x64-msvc@1.30.1: optional: true - lightningcss@1.29.2: + lightningcss@1.30.1: dependencies: - detect-libc: 2.0.3 + detect-libc: 2.1.2 optionalDependencies: - lightningcss-darwin-arm64: 1.29.2 - lightningcss-darwin-x64: 1.29.2 - lightningcss-freebsd-x64: 1.29.2 - lightningcss-linux-arm-gnueabihf: 1.29.2 - lightningcss-linux-arm64-gnu: 1.29.2 - lightningcss-linux-arm64-musl: 1.29.2 - lightningcss-linux-x64-gnu: 1.29.2 - lightningcss-linux-x64-musl: 1.29.2 - lightningcss-win32-arm64-msvc: 1.29.2 - lightningcss-win32-x64-msvc: 1.29.2 + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 lines-and-columns@1.2.4: {} - linkifyjs@2.1.9(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - jquery: 3.7.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optional: true - - linkifyjs@4.3.1: {} + linkifyjs@4.3.2: {} load-script@1.0.0: {} @@ -9987,9 +10891,6 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.camelcase@4.3.0: - optional: true - lodash.debounce@4.0.8: {} lodash.deburr@4.1.0: @@ -10019,16 +10920,12 @@ snapshots: lodash.uniqby@4.7.0: {} - lodash@4.17.21: {} - longest-streak@3.1.0: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@3.1.3: {} - loupe@3.2.1: {} lru-cache@5.1.1: @@ -10041,13 +10938,13 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.17: + magic-string@0.30.19: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 make-dir@4.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.3 makeerror@1.0.12: dependencies: @@ -10057,11 +10954,6 @@ snapshots: math-intrinsics@1.1.0: {} - mdast-add-list-metadata@1.0.1: - dependencies: - unist-util-visit-parents: 1.1.2 - optional: true - mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 @@ -10069,17 +10961,6 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@0.8.5: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-string: 2.0.0 - micromark: 2.11.4 - parse-entities: 2.0.0 - unist-util-stringify-position: 2.0.3 - transitivePeerDependencies: - - supports-color - optional: true - mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -10178,7 +11059,7 @@ snapshots: parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 + vfile-message: 4.0.3 transitivePeerDependencies: - supports-color @@ -10222,9 +11103,6 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@2.0.0: - optional: true - mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 @@ -10404,18 +11282,10 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@2.11.4: - dependencies: - debug: 4.4.0 - parse-entities: 2.0.0 - transitivePeerDependencies: - - supports-color - optional: true - micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.3 decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -10451,7 +11321,7 @@ snapshots: min-indent@1.0.1: {} - miniflare@4.20250709.0: + miniflare@4.20251008.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -10460,8 +11330,8 @@ snapshots: glob-to-regexp: 0.4.1 sharp: 0.33.5 stoppable: 1.1.0 - undici: 5.29.0 - workerd: 1.20250709.0 + undici: 7.14.0 + workerd: 1.20251008.0 ws: 8.18.0 youch: 4.1.0-beta.10 zod: 3.22.3 @@ -10471,39 +11341,27 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 - mml-react@0.4.7(@types/react@19.0.10)(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + minipass@7.1.2: {} + + minizlib@3.1.0: dependencies: - '@braintree/sanitize-url': 6.0.4 - '@rgrove/parse-xml': 3.0.0 - '@types/linkifyjs': 2.1.7 - dayjs: 1.11.13 - ical-expander: 3.1.0 - linkifyjs: 2.1.9(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-markdown: 5.0.3(@types/react@19.0.10)(react@19.0.0) - react-virtuoso: 2.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - transitivePeerDependencies: - - '@types/react' - - jquery - - supports-color - optional: true + minipass: 7.1.2 ms@2.1.3: {} - nanoid@3.3.8: {} + nanoid@3.3.11: {} natural-compare@1.4.0: {} node-int64@0.4.0: {} - node-releases@2.0.19: {} + node-releases@2.0.25: {} normalize-path@3.0.0: {} @@ -10511,7 +11369,7 @@ snapshots: dependencies: path-key: 3.1.1 - nwsapi@2.2.20: {} + nwsapi@2.2.22: {} object-assign@4.1.1: {} @@ -10539,7 +11397,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.values@1.2.1: @@ -10598,20 +11456,12 @@ snapshots: p-try@2.2.0: {} + pako@2.1.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-entities@2.0.0: - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - optional: true - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -10624,14 +11474,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.2.1: + parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 path-exists@4.0.0: {} @@ -10647,7 +11497,7 @@ snapshots: pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} performance-now@2.1.0: optional: true @@ -10656,7 +11506,7 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} + picomatch@4.0.3: {} pirates@4.0.7: {} @@ -10666,19 +11516,19 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss@8.5.3: + postcss@8.5.6: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.14(prettier@3.6.2): dependencies: - prettier: 3.5.3 + prettier: 3.6.2 - prettier@3.5.3: {} + prettier@3.6.2: {} pretty-format@27.5.1: dependencies: @@ -10724,84 +11574,94 @@ snapshots: performance-now: 2.1.0 optional: true - react-aria-components@1.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-aria-components@1.13.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@internationalized/date': 3.7.0 - '@internationalized/string': 3.2.5 - '@react-aria/autocomplete': 3.0.0-beta.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/collections': 3.0.0-beta.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/dnd': 3.9.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/live-announcer': 3.4.1 - '@react-aria/toolbar': 3.0.0-beta.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/virtualizer': 4.1.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/autocomplete': 3.0.0-beta.0(react@19.0.0) - '@react-stately/layout': 4.2.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/table': 3.14.0(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-stately/virtualizer': 4.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/form': 3.7.10(react@19.0.0) - '@react-types/grid': 3.3.0(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) - '@react-types/table': 3.11.0(react@19.0.0) - '@swc/helpers': 0.5.15 + '@internationalized/date': 3.10.0 + '@internationalized/string': 3.2.7 + '@react-aria/autocomplete': 3.0.0-rc.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/collections': 3.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/dnd': 3.11.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/live-announcer': 3.4.4 + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/toolbar': 3.0.0-beta.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/virtualizer': 4.1.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/autocomplete': 3.0.0-beta.3(react@19.0.0) + '@react-stately/layout': 4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/table': 3.15.1(react@19.0.0) + '@react-stately/utils': 3.10.8(react@19.0.0) + '@react-stately/virtualizer': 4.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/form': 3.7.16(react@19.0.0) + '@react-types/grid': 3.3.6(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) + '@react-types/table': 3.13.4(react@19.0.0) + '@swc/helpers': 0.5.17 client-only: 0.0.1 react: 19.0.0 - react-aria: 3.38.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-aria: 3.44.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-dom: 19.0.0(react@19.0.0) - react-stately: 3.36.1(react@19.0.0) - use-sync-external-store: 1.4.0(react@19.0.0) + react-stately: 3.42.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) - react-aria@3.38.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-aria@3.44.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@internationalized/string': 3.2.5 - '@react-aria/breadcrumbs': 3.5.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/button': 3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/calendar': 3.7.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/checkbox': 3.15.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/color': 3.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/combobox': 3.12.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/datepicker': 3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/dialog': 3.5.23(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/disclosure': 3.0.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/dnd': 3.9.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/gridlist': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/i18n': 3.12.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.24.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/label': 3.7.16(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/landmark': 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/link': 3.7.10(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/listbox': 3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/menu': 3.18.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/meter': 3.4.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/numberfield': 3.11.12(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/overlays': 3.26.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/progress': 3.4.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/radio': 3.11.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/searchfield': 3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/select': 3.15.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/selection': 3.23.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/separator': 3.4.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/slider': 3.7.17(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/switch': 3.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/table': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/tabs': 3.10.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/tag': 3.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/textfield': 3.17.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/toast': 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/tooltip': 3.8.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/tree': 3.0.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.28.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/visually-hidden': 3.8.21(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@internationalized/string': 3.2.7 + '@react-aria/breadcrumbs': 3.5.29(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/button': 3.14.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/calendar': 3.9.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/checkbox': 3.16.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/color': 3.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/combobox': 3.14.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/datepicker': 3.15.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/dialog': 3.5.31(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/disclosure': 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/dnd': 3.11.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/gridlist': 3.14.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/i18n': 3.12.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.25.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/label': 3.7.22(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/landmark': 3.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/link': 3.8.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/listbox': 3.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/menu': 3.19.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/meter': 3.4.27(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/numberfield': 3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/overlays': 3.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/progress': 3.4.27(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/radio': 3.12.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/searchfield': 3.8.9(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/select': 3.17.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/selection': 3.26.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/separator': 3.4.13(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/slider': 3.8.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/ssr': 3.9.10(react@19.0.0) + '@react-aria/switch': 3.7.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/table': 3.17.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/tabs': 3.10.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/tag': 3.7.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/textfield': 3.18.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/toast': 3.0.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/tooltip': 3.8.8(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/tree': 3.1.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.31.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/visually-hidden': 3.8.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + react-day-picker@9.11.1(react@19.0.0): + dependencies: + '@date-fns/tz': 1.4.1 + date-fns: 4.1.0 + date-fns-jalali: 4.1.0-0 + react: 19.0.0 + react-dom@19.0.0(react@19.0.0): dependencies: react: 19.0.0 @@ -10816,6 +11676,10 @@ snapshots: react-fast-compare@3.2.2: {} + react-hook-form@7.65.0(react@19.0.0): + dependencies: + react: 19.0.0 + react-image-gallery@1.2.12(react@19.0.0): dependencies: react: 19.0.0 @@ -10826,24 +11690,6 @@ snapshots: react-is@18.3.1: {} - react-markdown@5.0.3(@types/react@19.0.10)(react@19.0.0): - dependencies: - '@types/mdast': 3.0.15 - '@types/react': 19.0.10 - '@types/unist': 2.0.11 - html-to-react: 1.7.0(react@19.0.0) - mdast-add-list-metadata: 1.0.1 - prop-types: 15.8.1 - react: 19.0.0 - react-is: 16.13.1 - remark-parse: 9.0.0 - unified: 9.2.2 - unist-util-visit: 2.0.3 - xtend: 4.0.2 - transitivePeerDependencies: - - supports-color - optional: true - react-markdown@9.1.0(@types/react@19.0.10)(react@19.0.0): dependencies: '@types/hast': 3.0.4 @@ -10879,57 +11725,82 @@ snapshots: react-fast-compare: 3.2.2 warning: 4.0.3 - react-refresh@0.14.2: {} + react-refresh@0.17.0: {} - react-router-dom@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-remove-scroll-bar@2.3.8(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + + react-remove-scroll@2.7.1(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.10)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.10)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + + react-router-dom@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-router: 7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-router: 7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-router@7.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-router@7.9.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@types/cookie': 0.6.0 cookie: 1.0.2 react: 19.0.0 set-cookie-parser: 2.7.1 - turbo-stream: 2.4.0 optionalDependencies: react-dom: 19.0.0(react@19.0.0) - react-stately@3.36.1(react@19.0.0): + react-stately@3.42.0(react@19.0.0): dependencies: - '@react-stately/calendar': 3.7.1(react@19.0.0) - '@react-stately/checkbox': 3.6.12(react@19.0.0) - '@react-stately/collections': 3.12.2(react@19.0.0) - '@react-stately/color': 3.8.3(react@19.0.0) - '@react-stately/combobox': 3.10.3(react@19.0.0) - '@react-stately/data': 3.12.2(react@19.0.0) - '@react-stately/datepicker': 3.13.0(react@19.0.0) - '@react-stately/disclosure': 3.0.2(react@19.0.0) - '@react-stately/dnd': 3.5.2(react@19.0.0) - '@react-stately/form': 3.1.2(react@19.0.0) - '@react-stately/list': 3.12.0(react@19.0.0) - '@react-stately/menu': 3.9.2(react@19.0.0) - '@react-stately/numberfield': 3.9.10(react@19.0.0) - '@react-stately/overlays': 3.6.14(react@19.0.0) - '@react-stately/radio': 3.10.11(react@19.0.0) - '@react-stately/searchfield': 3.5.10(react@19.0.0) - '@react-stately/select': 3.6.11(react@19.0.0) - '@react-stately/selection': 3.20.0(react@19.0.0) - '@react-stately/slider': 3.6.2(react@19.0.0) - '@react-stately/table': 3.14.0(react@19.0.0) - '@react-stately/tabs': 3.8.0(react@19.0.0) - '@react-stately/toast': 3.0.0(react@19.0.0) - '@react-stately/toggle': 3.8.2(react@19.0.0) - '@react-stately/tooltip': 3.5.2(react@19.0.0) - '@react-stately/tree': 3.8.8(react@19.0.0) - '@react-types/shared': 3.28.0(react@19.0.0) + '@react-stately/calendar': 3.9.0(react@19.0.0) + '@react-stately/checkbox': 3.7.2(react@19.0.0) + '@react-stately/collections': 3.12.8(react@19.0.0) + '@react-stately/color': 3.9.2(react@19.0.0) + '@react-stately/combobox': 3.12.0(react@19.0.0) + '@react-stately/data': 3.14.1(react@19.0.0) + '@react-stately/datepicker': 3.15.2(react@19.0.0) + '@react-stately/disclosure': 3.0.8(react@19.0.0) + '@react-stately/dnd': 3.7.1(react@19.0.0) + '@react-stately/form': 3.2.2(react@19.0.0) + '@react-stately/list': 3.13.1(react@19.0.0) + '@react-stately/menu': 3.9.8(react@19.0.0) + '@react-stately/numberfield': 3.10.2(react@19.0.0) + '@react-stately/overlays': 3.6.20(react@19.0.0) + '@react-stately/radio': 3.11.2(react@19.0.0) + '@react-stately/searchfield': 3.5.16(react@19.0.0) + '@react-stately/select': 3.8.0(react@19.0.0) + '@react-stately/selection': 3.20.6(react@19.0.0) + '@react-stately/slider': 3.7.2(react@19.0.0) + '@react-stately/table': 3.15.1(react@19.0.0) + '@react-stately/tabs': 3.8.6(react@19.0.0) + '@react-stately/toast': 3.1.2(react@19.0.0) + '@react-stately/toggle': 3.9.2(react@19.0.0) + '@react-stately/tooltip': 3.5.8(react@19.0.0) + '@react-stately/tree': 3.9.3(react@19.0.0) + '@react-types/shared': 3.32.1(react@19.0.0) react: 19.0.0 + react-style-singleton@2.2.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + react-textarea-autosize@8.5.9(@types/react@19.0.10)(react@19.0.0): dependencies: - '@babel/runtime': 7.27.0 + '@babel/runtime': 7.28.4 react: 19.0.0 use-composed-ref: 1.4.0(@types/react@19.0.10)(react@19.0.0) use-latest: 1.3.0(@types/react@19.0.10)(react@19.0.0) @@ -10954,7 +11825,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -10964,8 +11835,6 @@ snapshots: regenerator-runtime@0.13.11: optional: true - regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -10995,13 +11864,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-parse@9.0.0: - dependencies: - mdast-util-from-markdown: 0.8.5 - transitivePeerDependencies: - - supports-color - optional: true - remark-rehype@11.1.2: dependencies: '@types/hast': 3.0.4 @@ -11042,43 +11904,46 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} + reusify@1.1.0: {} rgbcolor@1.0.1: optional: true - rollup-plugin-visualizer@5.14.0(rollup@4.34.6): + rollup-plugin-visualizer@5.14.0(rollup@4.52.4): dependencies: open: 8.4.2 - picomatch: 4.0.2 - source-map: 0.7.4 + picomatch: 4.0.3 + source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: - rollup: 4.34.6 + rollup: 4.52.4 - rollup@4.34.6: + rollup@4.52.4: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.6 - '@rollup/rollup-android-arm64': 4.34.6 - '@rollup/rollup-darwin-arm64': 4.34.6 - '@rollup/rollup-darwin-x64': 4.34.6 - '@rollup/rollup-freebsd-arm64': 4.34.6 - '@rollup/rollup-freebsd-x64': 4.34.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.6 - '@rollup/rollup-linux-arm-musleabihf': 4.34.6 - '@rollup/rollup-linux-arm64-gnu': 4.34.6 - '@rollup/rollup-linux-arm64-musl': 4.34.6 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.6 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.6 - '@rollup/rollup-linux-riscv64-gnu': 4.34.6 - '@rollup/rollup-linux-s390x-gnu': 4.34.6 - '@rollup/rollup-linux-x64-gnu': 4.34.6 - '@rollup/rollup-linux-x64-musl': 4.34.6 - '@rollup/rollup-win32-arm64-msvc': 4.34.6 - '@rollup/rollup-win32-ia32-msvc': 4.34.6 - '@rollup/rollup-win32-x64-msvc': 4.34.6 + '@rollup/rollup-android-arm-eabi': 4.52.4 + '@rollup/rollup-android-arm64': 4.52.4 + '@rollup/rollup-darwin-arm64': 4.52.4 + '@rollup/rollup-darwin-x64': 4.52.4 + '@rollup/rollup-freebsd-arm64': 4.52.4 + '@rollup/rollup-freebsd-x64': 4.52.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 + '@rollup/rollup-linux-arm-musleabihf': 4.52.4 + '@rollup/rollup-linux-arm64-gnu': 4.52.4 + '@rollup/rollup-linux-arm64-musl': 4.52.4 + '@rollup/rollup-linux-loong64-gnu': 4.52.4 + '@rollup/rollup-linux-ppc64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-musl': 4.52.4 + '@rollup/rollup-linux-s390x-gnu': 4.52.4 + '@rollup/rollup-linux-x64-gnu': 4.52.4 + '@rollup/rollup-linux-x64-musl': 4.52.4 + '@rollup/rollup-openharmony-arm64': 4.52.4 + '@rollup/rollup-win32-arm64-msvc': 4.52.4 + '@rollup/rollup-win32-ia32-msvc': 4.52.4 + '@rollup/rollup-win32-x64-gnu': 4.52.4 + '@rollup/rollup-win32-x64-msvc': 4.52.4 fsevents: 2.3.3 run-parallel@1.2.0: @@ -11116,7 +11981,7 @@ snapshots: semver@6.3.1: {} - semver@7.7.1: {} + semver@7.7.3: {} set-cookie-parser@2.7.1: {} @@ -11145,8 +12010,8 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.3 - semver: 7.7.1 + detect-libc: 2.1.2 + semver: 7.7.3 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -11206,14 +12071,19 @@ snapshots: signal-exit@3.0.7: {} - simple-swizzle@0.2.2: + simple-swizzle@0.2.4: dependencies: - is-arrayish: 0.3.2 + is-arrayish: 0.3.4 sisteransi@1.0.5: {} slash@3.0.0: {} + sonner@2.0.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + source-map-js@1.2.1: {} source-map-support@0.5.13: @@ -11223,7 +12093,7 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} + source-map@0.7.6: {} space-separated-tokens@2.0.2: {} @@ -11238,28 +12108,33 @@ snapshots: stackblur-canvas@2.7.0: optional: true - std-env@3.9.0: {} + std-env@3.10.0: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 stoppable@1.1.0: {} - stream-chat-react@13.1.0(@types/react@19.0.10)(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(stream-chat@9.6.1)(typescript@5.7.3): + stream-chat-react@13.9.0(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(stream-chat@9.23.0)(typescript@5.9.3): dependencies: '@braintree/sanitize-url': 6.0.4 '@popperjs/core': 2.11.8 - '@react-aria/focus': 3.20.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) clsx: 2.1.1 - dayjs: 1.11.13 + dayjs: 1.11.18 emoji-regex: 9.2.2 fix-webm-duration: 1.0.6 hast-util-find-and-replace: 5.0.1 - i18next: 25.2.1(typescript@5.7.3) - linkifyjs: 4.3.1 + i18next: 25.6.0(typescript@5.9.3) + linkifyjs: 4.3.2 lodash.debounce: 4.0.8 lodash.defaultsdeep: 4.6.1 lodash.mergewith: 4.6.2 lodash.throttle: 4.1.1 lodash.uniqby: 4.7.0 - nanoid: 3.3.8 + nanoid: 3.3.11 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-dropzone: 14.3.8(react@19.0.0) @@ -11271,31 +12146,29 @@ snapshots: react-textarea-autosize: 8.5.9(@types/react@19.0.10)(react@19.0.0) react-virtuoso: 2.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) remark-gfm: 4.0.1 - stream-chat: 9.6.1 + stream-chat: 9.23.0 tslib: 2.8.1 unist-builder: 4.0.0 unist-util-visit: 5.0.0 - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) optionalDependencies: '@stream-io/transliterate': 1.5.5 - mml-react: 0.4.7(@types/react@19.0.10)(jquery@3.7.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - - jquery - supports-color - typescript - stream-chat@9.6.1: + stream-chat@9.23.0: dependencies: '@types/jsonwebtoken': 9.0.10 - '@types/ws': 8.18.0 - axios: 1.8.4 + '@types/ws': 8.18.1 + axios: 1.12.2 base64-js: 1.5.1 - form-data: 4.0.2 - isomorphic-ws: 5.0.0(ws@8.18.1) + form-data: 4.0.4 + isomorphic-ws: 5.0.0(ws@8.18.3) jsonwebtoken: 9.0.2 - linkifyjs: 4.3.1 - ws: 8.18.1 + linkifyjs: 4.3.2 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - debug @@ -11317,7 +12190,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 @@ -11331,7 +12204,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 string.prototype.trim@1.2.10: dependencies: @@ -11339,7 +12212,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -11379,15 +12252,15 @@ snapshots: dependencies: js-tokens: 9.0.1 - style-to-js@1.1.17: + style-to-js@1.1.18: dependencies: - style-to-object: 1.0.9 + style-to-object: 1.0.11 - style-to-object@1.0.9: + style-to-object@1.0.11: dependencies: inline-style-parser: 0.2.4 - supports-color@10.0.0: {} + supports-color@10.2.2: {} supports-color@7.2.0: dependencies: @@ -11406,15 +12279,23 @@ snapshots: tabbable@6.2.0: {} - tailwind-merge@3.0.2: {} + tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.0.14): + tailwindcss-animate@1.0.7(tailwindcss@4.1.14): dependencies: - tailwindcss: 4.0.14 + tailwindcss: 4.1.14 - tailwindcss@4.0.14: {} + tailwindcss@4.1.14: {} - tapable@2.2.1: {} + tapable@2.3.0: {} + + tar@7.5.1: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 test-exclude@6.0.0: dependencies: @@ -11431,10 +12312,10 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinypool@1.1.1: {} @@ -11463,28 +12344,25 @@ snapshots: trim-lines@3.0.1: {} - trough@1.0.5: - optional: true - trough@2.2.0: {} - ts-api-utils@1.4.3(typescript@5.7.3): + ts-api-utils@1.4.3(typescript@5.9.3): dependencies: - typescript: 5.7.3 + typescript: 5.9.3 - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.7.3 + typescript: 5.9.3 - ts-pattern@5.6.2: {} + ts-pattern@5.8.0: {} - tsconfck@3.1.5(typescript@5.7.3): + tsconfck@3.1.6(typescript@5.9.3): optionalDependencies: - typescript: 5.7.3 + typescript: 5.9.3 tslib@2.8.1: {} - turbo-stream@2.4.0: {} + tw-animate-css@1.4.0: {} type-check@0.4.0: dependencies: @@ -11527,17 +12405,18 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3): + typescript-eslint@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.26.1(eslint@9.22.0(jiti@2.4.2))(typescript@5.7.3) - eslint: 9.22.0(jiti@2.4.2) - typescript: 5.7.3 + '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - typescript@5.7.3: {} + typescript@5.9.3: {} ufo@1.6.1: {} @@ -11548,15 +12427,11 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.20.0: {} - undici-types@6.21.0: {} - undici@5.29.0: - dependencies: - '@fastify/busboy': 2.1.1 + undici@7.14.0: {} - unenv@2.0.0-rc.17: + unenv@2.0.0-rc.21: dependencies: defu: 6.1.4 exsolve: 1.0.7 @@ -11574,24 +12449,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unified@9.2.2: - dependencies: - '@types/unist': 2.0.11 - bail: 1.0.5 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 2.1.0 - trough: 1.0.5 - vfile: 4.2.1 - optional: true - unist-builder@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-is@4.1.0: - optional: true - unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -11600,36 +12461,15 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.11 - optional: true - unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@1.1.2: - optional: true - - unist-util-visit-parents@3.1.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - optional: true - unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 - unist-util-visit@2.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 4.1.0 - unist-util-visit-parents: 3.1.1 - optional: true - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -11638,9 +12478,9 @@ snapshots: universalify@0.2.0: {} - update-browserslist-db@1.1.2(browserslist@4.24.4): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.24.4 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -11653,6 +12493,13 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 + use-callback-ref@1.3.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + use-composed-ref@1.4.0(@types/react@19.0.10)(react@19.0.0): dependencies: react: 19.0.0 @@ -11672,7 +12519,15 @@ snapshots: optionalDependencies: '@types/react': 19.0.10 - use-sync-external-store@1.4.0(react@19.0.0): + use-sidecar@1.1.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + + use-sync-external-store@1.6.0(react@19.0.0): dependencies: react: 19.0.0 @@ -11685,41 +12540,27 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vfile-message@2.0.4: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position: 2.0.3 - optional: true - - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile@4.2.1: - dependencies: - '@types/unist': 2.0.11 - is-buffer: 2.0.5 - unist-util-stringify-position: 2.0.3 - vfile-message: 2.0.4 - optional: true - vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2): + vite-node@3.2.4(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) transitivePeerDependencies: - '@types/node' - jiti @@ -11734,57 +12575,60 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1)): dependencies: - debug: 4.4.0 + debug: 4.4.3 globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.7.3) + tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color - typescript - vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2): + vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1): dependencies: - esbuild: 0.25.1 - postcss: 8.5.3 - rollup: 4.34.6 + esbuild: 0.25.11 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.4 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.13.10 + '@types/node': 22.18.10 fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 + jiti: 2.6.1 + lightningcss: 1.30.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.13.10)(happy-dom@20.0.0)(jiti@2.4.2)(jsdom@20.0.3)(lightningcss@1.29.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.10)(happy-dom@20.0.2)(jiti@2.6.1)(jsdom@20.0.3)(lightningcss@1.30.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)) + '@vitest/mocker': 3.2.4(vite@6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 - chai: 5.2.0 + chai: 5.3.3 debug: 4.4.3 - expect-type: 1.2.1 - magic-string: 0.30.17 + expect-type: 1.2.2 + magic-string: 0.30.19 pathe: 2.0.3 - picomatch: 4.0.2 - std-env: 3.9.0 + picomatch: 4.0.3 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.2.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) - vite-node: 3.2.4(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2) + vite: 6.4.0(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) + vite-node: 3.2.4(@types/node@22.18.10)(jiti@2.6.1)(lightningcss@1.30.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.13.10 - happy-dom: 20.0.0 + '@types/node': 22.18.10 + happy-dom: 20.0.2 jsdom: 20.0.3 transitivePeerDependencies: - jiti @@ -11848,7 +12692,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -11884,24 +12728,24 @@ snapshots: word-wrap@1.2.5: {} - workerd@1.20250709.0: + workerd@1.20251008.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250709.0 - '@cloudflare/workerd-darwin-arm64': 1.20250709.0 - '@cloudflare/workerd-linux-64': 1.20250709.0 - '@cloudflare/workerd-linux-arm64': 1.20250709.0 - '@cloudflare/workerd-windows-64': 1.20250709.0 + '@cloudflare/workerd-darwin-64': 1.20251008.0 + '@cloudflare/workerd-darwin-arm64': 1.20251008.0 + '@cloudflare/workerd-linux-64': 1.20251008.0 + '@cloudflare/workerd-linux-arm64': 1.20251008.0 + '@cloudflare/workerd-windows-64': 1.20251008.0 - wrangler@4.24.3: + wrangler@4.43.0: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 - '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250709.0) + '@cloudflare/unenv-preset': 2.7.7(unenv@2.0.0-rc.21)(workerd@1.20251008.0) blake3-wasm: 2.1.5 esbuild: 0.25.4 - miniflare: 4.20250709.0 + miniflare: 4.20251008.0 path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.17 - workerd: 1.20250709.0 + unenv: 2.0.0-rc.21 + workerd: 1.20251008.0 optionalDependencies: fsevents: 2.3.3 transitivePeerDependencies: @@ -11923,19 +12767,18 @@ snapshots: ws@8.18.0: {} - ws@8.18.1: {} + ws@8.18.3: {} xml-name-validator@4.0.0: {} xmlchars@2.2.0: {} - xtend@4.0.2: - optional: true - y18n@5.0.8: {} yallist@3.1.1: {} + yallist@5.0.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -11965,10 +12808,12 @@ snapshots: zod@3.22.3: {} - zustand@5.0.5(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.4.0(react@19.0.0)): + zod@4.1.12: {} + + zustand@5.0.8(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.6.0(react@19.0.0)): optionalDependencies: '@types/react': 19.0.10 react: 19.0.0 - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.6.0(react@19.0.0) zwitch@2.0.4: {} diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 6113afc..a193b57 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -1,3 +1,4 @@ +import { Toaster } from "@ui/components/ui/sonner"; import { SessionProvider } from "@ui/contexts/SessionContext"; import { ThemeProvider } from "@ui/contexts/ThemeContext"; import { routes } from "@ui/lib/routes"; @@ -19,6 +20,7 @@ export const App = () => { +
diff --git a/ui/src/components/AuthenticationGateway.tsx b/ui/src/components/AuthenticationGateway.tsx index f54703b..2bd73a8 100644 --- a/ui/src/components/AuthenticationGateway.tsx +++ b/ui/src/components/AuthenticationGateway.tsx @@ -1,11 +1,11 @@ import { useEffect, useState } from "react"; import { Navigate, Outlet, useSearchParams } from "react-router-dom"; import { match } from "ts-pattern"; -import { useSession } from "../contexts/SessionContext"; import { LoadingSpinner } from "./LoadingSpinner"; +import { useMaybeUser } from "@ui/providers/UserStoreProvider"; export const AuthenticationGateway = () => { - const { session } = useSession(); + const user = useMaybeUser(); const [isLoading, setIsLoading] = useState(true); const [searchParams] = useSearchParams(); @@ -20,24 +20,20 @@ export const AuthenticationGateway = () => { setIsLoading(false); }, 200); return () => clearTimeout(timer); - }, [session]); + }, [user]); let status: "loading" | "should-redirect" | "should-pass" = "loading"; if (isLoading) { status = "loading"; - } else if (session?.user) { + } else if (user) { status = "should-redirect"; } else { status = "should-pass"; } - return ( - <> - {match(status) - .with("loading", () => ) - .with("should-redirect", () => ) - .with("should-pass", () => ) - .exhaustive()} - - ); + return match(status) + .with("loading", () => ) + .with("should-redirect", () => ) + .with("should-pass", () => ) + .exhaustive(); }; diff --git a/ui/src/components/AvailabilityCard.tsx b/ui/src/components/AvailabilityCard.tsx index 72b0040..675788c 100644 --- a/ui/src/components/AvailabilityCard.tsx +++ b/ui/src/components/AvailabilityCard.tsx @@ -1,16 +1,8 @@ -import { Button } from "@ui/ui-library/button"; -import { CopyIcon, MinusIcon, PlusIcon } from "@ui/ui-library/icons"; -import { - Select, - SelectButton, - SelectListBox, - SelectListItem, - SelectPopover, -} from "@ui/ui-library/select"; -import { Switch } from "@ui/ui-library/switch"; -import { Text } from "@ui/ui-library/text"; -import { useTimePicker } from "@ui/ui-library/time-picker"; -import { useState } from "react"; +import { Button } from "@ui/components/ui/button"; +import { Card, CardAction, CardContent, CardHeader, CardTitle } from "@ui/components/ui/card"; +import { Switch } from "@ui/components/ui/switch"; +import { TimeInput } from "@ui/components/ui/time-input"; +import { Copy as CopyIcon, Minus as MinusIcon, Plus as PlusIcon } from "lucide-react"; interface TimeRange { start: string; @@ -59,8 +51,6 @@ export function AvailabilityCard({ }: AvailabilityCardProps) { const dayDisplay = DAYS_OF_WEEK_DISPLAY[day]; - const [selectedRangeIndex, setSelectedRangeIndex] = useState(0); - const handleAddRange = () => { // Find a free slot for the new range const sortedRanges = [...timeRanges].sort( @@ -100,17 +90,13 @@ export function AvailabilityCard({ const newRanges = [...timeRanges, { start: newStart, end: newEnd }]; onTimeRangesChange(newRanges); - setSelectedRangeIndex(newRanges.length - 1); }; const handleDeleteRange = (index: number) => { const newRanges = timeRanges.filter((_, i) => i !== index); onTimeRangesChange(newRanges); - setSelectedRangeIndex(Math.min(selectedRangeIndex, newRanges.length - 1)); }; - const timeOptions = useTimePicker({ intervalInMinute: 30 }); - const validateTimeRange = (ranges: TimeRange[], index: number): boolean => { const currentRange = ranges[index]; const currentStart = timeToMinutes(currentRange.start); @@ -141,136 +127,102 @@ export function AvailabilityCard({ }; return ( -
-
- {dayDisplay} + + + {dayDisplay} {onCopyToOtherDays && enabled && timeRanges.length > 0 && ( - + + + )} -
-
- - + +
+ + -
+ +
- {/* Time Ranges */} -
- {timeRanges.map((range, index) => ( -
setSelectedRangeIndex(index)} - className={`flex items-center gap-1 rounded-md px-1.5 py-1 cursor-pointer transition-all duration-200 ${ - selectedRangeIndex === index - ? "bg-primary/10 dark:bg-primary/20" - : "bg-gray-50/80 dark:bg-gray-800/60 hover:bg-gray-100 dark:hover:bg-gray-700/60" - }`} - > -
- {selectedRangeIndex === index ? ( - <> - - - - - - ) : ( - <> - {range.start} - - {range.end} - + {/* Time Ranges */} +
+ {timeRanges.map((range, index) => ( +
+ { + const newRanges = [...timeRanges]; + newRanges[index] = { + ...range, + start: value, + }; + if (validateTimeRange(newRanges, index)) { + onTimeRangesChange(newRanges); + } + }} + isDisabled={!enabled} + className="h-8 text-sm max-w-32" + id={`start-${day}-${index}`} + /> + - + { + const newRanges = [...timeRanges]; + newRanges[index] = { + ...range, + end: value, + }; + if (validateTimeRange(newRanges, index)) { + onTimeRangesChange(newRanges); + } + }} + isDisabled={!enabled} + className="h-8 text-sm max-w-32" + id={`end-${day}-${index}`} + /> + {timeRanges.length > 1 && ( + )}
- {timeRanges.length > 1 && ( - - )} -
- ))} - {timeRanges.length < 3 && ( - - )} -
-
+ ))} + {timeRanges.length < 3 && ( + + )} +
+ + ); } diff --git a/ui/src/components/AvailabilityVisualization.tsx b/ui/src/components/AvailabilityVisualization.tsx index 8e3d0d2..d9532d6 100644 --- a/ui/src/components/AvailabilityVisualization.tsx +++ b/ui/src/components/AvailabilityVisualization.tsx @@ -1,5 +1,5 @@ +import { Text } from "@ui/components/ui/typography"; import { WeeklyAvailability } from "@ui/hooks/availabilities"; -import { Text } from "@ui/ui-library/text"; // Check if a time slot is available for a given day const isTimeSlotAvailable = ( diff --git a/ui/src/components/ChannelPreview.tsx b/ui/src/components/ChannelPreview.tsx index 41acae7..2cca8ae 100644 --- a/ui/src/components/ChannelPreview.tsx +++ b/ui/src/components/ChannelPreview.tsx @@ -1,6 +1,6 @@ import { ChannelBadge } from "@ui/components/ChannelBadge"; +import { Badge } from "@ui/components/ui/badge"; import { UserTablo } from "@ui/types/tablos.types"; -import { Badge } from "@ui/ui-library/badge"; import { ReactNode } from "react"; import { Channel } from "stream-chat"; import { twMerge } from "tailwind-merge"; diff --git a/ui/src/components/CustomModal.tsx b/ui/src/components/CustomModal.tsx index 33d81e2..c52c0ea 100644 --- a/ui/src/components/CustomModal.tsx +++ b/ui/src/components/CustomModal.tsx @@ -1,4 +1,7 @@ -// Custom Modal Component +import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@ui/components/ui/dialog"; +import { cn } from "@ui/lib/utils"; + +// Custom Modal Component - now using shadcn/ui Dialog interface CustomModalProps { isOpen: boolean; onClose: () => void; @@ -8,64 +11,35 @@ interface CustomModalProps { } export function CustomModal({ isOpen, onClose, title, children, width = "md" }: CustomModalProps) { - if (!isOpen) return null; - const getWidthClasses = () => { switch (width) { case "sm": - return "w-full max-w-sm"; + return "max-w-sm"; case "md": - return "w-full max-w-md"; + return "max-w-md"; case "lg": - return "w-full max-w-lg"; + return "max-w-lg"; case "xl": - return "w-full max-w-xl"; + return "max-w-xl"; case "2xl": - return "w-full max-w-2xl"; + return "max-w-2xl"; case "full": - return "w-full max-w-full mx-4"; + return "max-w-full mx-4"; case "auto": return "w-auto min-w-80 max-w-[90vw]"; default: - return "w-full max-w-md"; + return "max-w-md"; } }; return ( -
- {/* Backdrop */} -
- - {/* Modal */} -
- {/* Header */} -
-

{title}

- -
- - {/* Content */} -
{children}
-
-
+ + + + {title} + +
{children}
+
+
); } diff --git a/ui/src/components/EventDetailsModal.tsx b/ui/src/components/EventDetailsModal.tsx index 16f8ee9..87d0845 100644 --- a/ui/src/components/EventDetailsModal.tsx +++ b/ui/src/components/EventDetailsModal.tsx @@ -1,7 +1,6 @@ +import { Button } from "@ui/components/ui/button"; +import { Strong, Text } from "@ui/components/ui/typography"; import { EventAndTablo } from "@ui/types/events.types"; -import { Button } from "@ui/ui-library/button"; -import { DialogBody } from "@ui/ui-library/dialog"; -import { Strong, Text } from "@ui/ui-library/text"; import { CalendarIcon, User } from "lucide-react"; import { twMerge } from "tailwind-merge"; import { CustomModal } from "./CustomModal"; @@ -83,7 +82,7 @@ export const EventDetailsModal = ({ return ( - +
{getEventStatusBadge(event)}
{/* Date and Time */}
@@ -117,14 +116,14 @@ export const EventDetailsModal = ({
)} -
- {/* Footer */} -
- - {canEdit && onEdit && } + {/* Footer */} +
+ + {canEdit && onEdit && } +
); diff --git a/ui/src/components/EventModal.tsx b/ui/src/components/EventModal.tsx index 5195cdb..40ab50b 100644 --- a/ui/src/components/EventModal.tsx +++ b/ui/src/components/EventModal.tsx @@ -1,19 +1,30 @@ import { getLocalTimeZone, parseDate, today } from "@internationalized/date"; +import { Button } from "@ui/components/ui/button"; +import { DatePicker } from "@ui/components/ui/date-picker"; +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "@ui/components/ui/dialog"; +import { Input } from "@ui/components/ui/input"; +import { Label } from "@ui/components/ui/label"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@ui/components/ui/select"; +import { Textarea } from "@ui/components/ui/textarea"; +import { TimeInput } from "@ui/components/ui/time-input"; import { useCreateEvents, useEvent, useUpdateEvent } from "@ui/hooks/events"; import { useTablosList } from "@ui/hooks/tablos"; import { useUser } from "@ui/providers/UserStoreProvider"; import { Event, EventInsert } from "@ui/types/events.types"; -import { DatePicker, DatePickerButton } from "@ui/ui-library/date-picker"; -import { - Select, - SelectButton, - SelectListBox, - SelectListItem, - SelectPopover, -} from "@ui/ui-library/select"; -import { useTimePicker } from "@ui/ui-library/time-picker"; import { useEffect, useState } from "react"; -import { Group } from "react-aria-components"; import { useNavigate, useParams, useSearchParams } from "react-router-dom"; export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { @@ -29,7 +40,6 @@ export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { const { data: tablos, isLoading: tablosLoading } = useTablosList(); const createEvents = useCreateEvents(); const updateEvent = useUpdateEvent(); - const timeOptions = useTimePicker({ intervalInMinute: 15 }); const navigate = useNavigate(); const onClose = () => { @@ -44,31 +54,20 @@ export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { return `${year}-${month}-${day}`; }; - // Find the nearest time option to the selected date - const getNearestTimeOption = (date: Date, type: "start" | "end") => { - const dateMinutes = date.getHours() * 60 + date.getMinutes(); - - let nearestOption = timeOptions[0]; - let smallestDiff = Infinity; - - for (const option of timeOptions) { - const optionMinutes = option.hour * 60 + option.minute; - const diff = - type === "start" ? Math.abs(dateMinutes - optionMinutes) : dateMinutes + 30 - optionMinutes; - - if (0 <= diff && diff < smallestDiff) { - smallestDiff = diff; - nearestOption = option; - } - } - - return nearestOption?.id || ""; + // Format time from Date to HH:MM string + const formatTimeFromDate = (date: Date, addMinutes: number = 0): string => { + const hours = date.getHours(); + const minutes = date.getMinutes() + addMinutes; + const totalMinutes = hours * 60 + minutes; + const finalHours = Math.floor(totalMinutes / 60) % 24; + const finalMinutes = totalMinutes % 60; + return `${finalHours.toString().padStart(2, "0")}:${finalMinutes.toString().padStart(2, "0")}`; }; const [formEvent, setFormEvent] = useState({ start_date: date ? getLocalDateString(date) : "", - start_time: date ? getNearestTimeOption(date, "start") : "", - end_time: date ? getNearestTimeOption(date, "end") : "", + start_time: date ? formatTimeFromDate(date) : "", + end_time: date ? formatTimeFromDate(date, 30) : "", tablo_id: tablo_id || "", title: "", created_by: user.id, @@ -90,30 +89,11 @@ export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { }, [mode, event]); return ( -
-
- {/* Header with colored accent */} -
-
-

- {mode === "edit" ? "Modifier l'événement" : "Nouvel événement"} -

- -
-
+ + + + {mode === "edit" ? "Modifier l'événement" : "Nouvel événement"} + {mode === "edit" && event ? new Date(event.start_date).toLocaleDateString("fr-FR", { weekday: "long", @@ -127,14 +107,15 @@ export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { month: "long", day: "numeric", })} -
-
+ + - {/* Form Content */} -
+
{/* Title Input */}
- Titre * + @@ -143,127 +124,96 @@ export const EventModal = ({ mode }: { mode: "create" | "edit" }) => { title: e.target.value, } as Event) } - className="w-full text-lg font-medium border-none outline-none bg-transparent text-gray-900 dark:text-white placeholder-gray-400 focus:ring-0 px-0" placeholder="Ajouter un titre" - aria-label="Titre de l'événement" autoFocus /> -
{/* Tablo Selection */}
- +
- -
- +
+
+ { - if (value === null) { - return; + onChange={(date) => { + if (date) { + // Convert Date to YYYY-MM-DD format + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + setFormEvent({ + ...formEvent, + start_date: `${year}-${month}-${day}`, + }); } + }} + buttonClassName="h-10 w-full" + /> +
+ +
+ + { setFormEvent({ ...formEvent, - start_date: value.toString(), + start_time: value, }); }} - > - - + className="w-full" + id="event-start-time" + />
-
- - + className="w-full" + id="event-end-time" + />
- -
- - -
- +
{/* Description */}
- -