From 245b3df43e7c6452935d8445545738fbe9a2a7be Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Thu, 1 May 2025 16:20:17 -0400 Subject: [PATCH 1/2] moved with eng docs examples --- .../create-key/components/credits-setup.tsx | 8 +- .../[keyId]/settings/update-key-remaining.tsx | 8 +- .../app/(app)/apis/[apiId]/select.tsx | 8 +- .../_components/identifier-dialog.tsx | 8 +- .../permissions/add-permission-for-api.tsx | 8 +- .../app/(app)/settings/team/client.tsx | 4 +- .../app/(app)/settings/team/invite.tsx | 8 +- .../app/(app)/settings/team/role-switcher.tsx | 8 +- .../app/(app)/settings/vercel/client.tsx | 8 +- .../integrations/vercel/callback/client.tsx | 8 +- .../dashboard/feedback-component.tsx | 8 +- .../design/components/select.example.tsx | 134 ++++++ .../content/design/components/select.mdx | 78 ++++ internal/ui/package.json | 1 + .../ui/src/components}/select.tsx | 2 +- internal/ui/src/index.ts | 11 +- pnpm-lock.yaml | 429 ++++++++++++++---- 17 files changed, 591 insertions(+), 148 deletions(-) create mode 100644 apps/engineering/content/design/components/select.example.tsx create mode 100644 apps/engineering/content/design/components/select.mdx rename {apps/dashboard/components/ui => internal/ui/src/components}/select.tsx (99%) diff --git a/apps/dashboard/app/(app)/apis/[apiId]/_components/create-key/components/credits-setup.tsx b/apps/dashboard/app/(app)/apis/[apiId]/_components/create-key/components/credits-setup.tsx index 057c8b35e7..0df4b762c6 100644 --- a/apps/dashboard/app/(app)/apis/[apiId]/_components/create-key/components/credits-setup.tsx +++ b/apps/dashboard/app/(app)/apis/[apiId]/_components/create-key/components/credits-setup.tsx @@ -1,12 +1,6 @@ "use client"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { ChartPie, CircleInfo } from "@unkey/icons"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { FormInput } from "@unkey/ui"; import { Controller, useFormContext, useWatch } from "react-hook-form"; import type { CreditsFormValues } from "../create-key.schema"; diff --git a/apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-remaining.tsx b/apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-remaining.tsx index d3756e12f2..0aaed00971 100644 --- a/apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-remaining.tsx +++ b/apps/dashboard/app/(app)/apis/[apiId]/keys/[keyAuthId]/[keyId]/settings/update-key-remaining.tsx @@ -20,18 +20,12 @@ import { } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { Switch } from "@/components/ui/switch"; import { toast } from "@/components/ui/toaster"; import { trpc } from "@/lib/trpc/client"; import { cn } from "@/lib/utils"; import { zodResolver } from "@hookform/resolvers/zod"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { Button } from "@unkey/ui"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; diff --git a/apps/dashboard/app/(app)/apis/[apiId]/select.tsx b/apps/dashboard/app/(app)/apis/[apiId]/select.tsx index 5965e02d86..eba7709477 100644 --- a/apps/dashboard/app/(app)/apis/[apiId]/select.tsx +++ b/apps/dashboard/app/(app)/apis/[apiId]/select.tsx @@ -1,12 +1,6 @@ "use client"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { useRouter } from "next/navigation"; import { useSearchParams } from "next/navigation"; import { usePathname } from "next/navigation"; diff --git a/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx b/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx index a54810f7a2..508f65b656 100644 --- a/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx +++ b/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx @@ -2,17 +2,11 @@ import { DialogContainer } from "@/components/dialog-container"; import { Badge } from "@/components/ui/badge"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { toast } from "@/components/ui/toaster"; import { trpc } from "@/lib/trpc/client"; import { zodResolver } from "@hookform/resolvers/zod"; import { CircleInfo } from "@unkey/icons"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { Button, FormInput } from "@unkey/ui"; import type { PropsWithChildren } from "react"; import { Controller, useForm } from "react-hook-form"; diff --git a/apps/dashboard/app/(app)/settings/root-keys/[keyId]/permissions/add-permission-for-api.tsx b/apps/dashboard/app/(app)/settings/root-keys/[keyId]/permissions/add-permission-for-api.tsx index 33b02ee147..46a5e86f76 100644 --- a/apps/dashboard/app/(app)/settings/root-keys/[keyId]/permissions/add-permission-for-api.tsx +++ b/apps/dashboard/app/(app)/settings/root-keys/[keyId]/permissions/add-permission-for-api.tsx @@ -1,14 +1,8 @@ "use client"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import type { Permission } from "@unkey/db"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { type PropsWithChildren, useState } from "react"; import { PermissionToggle } from "./permission_toggle"; import { apiPermissions } from "./permissions"; diff --git a/apps/dashboard/app/(app)/settings/team/client.tsx b/apps/dashboard/app/(app)/settings/team/client.tsx index d3cee551dd..5f573f16ba 100644 --- a/apps/dashboard/app/(app)/settings/team/client.tsx +++ b/apps/dashboard/app/(app)/settings/team/client.tsx @@ -2,6 +2,7 @@ import { Loading } from "@/components/dashboard/loading"; import { PageHeader } from "@/components/dashboard/page-header"; +import { trpc } from "@/lib/trpc/client"; import { Select, SelectContent, @@ -9,8 +10,7 @@ import { SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select"; -import { trpc } from "@/lib/trpc/client"; +} from "@unkey/ui"; import { Empty } from "@unkey/ui"; import { Button } from "@unkey/ui"; import Link from "next/link"; diff --git a/apps/dashboard/app/(app)/settings/team/invite.tsx b/apps/dashboard/app/(app)/settings/team/invite.tsx index 6d1aea2523..8691191bdc 100644 --- a/apps/dashboard/app/(app)/settings/team/invite.tsx +++ b/apps/dashboard/app/(app)/settings/team/invite.tsx @@ -10,17 +10,11 @@ import { FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { toast } from "@/components/ui/toaster"; import type { AuthenticatedUser, Organization } from "@/lib/auth/types"; import { trpc } from "@/lib/trpc/client"; import { zodResolver } from "@hookform/resolvers/zod"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { Button } from "@unkey/ui"; import { Plus } from "lucide-react"; import type React from "react"; diff --git a/apps/dashboard/app/(app)/settings/team/role-switcher.tsx b/apps/dashboard/app/(app)/settings/team/role-switcher.tsx index b452cd5733..ca82e81ff2 100644 --- a/apps/dashboard/app/(app)/settings/team/role-switcher.tsx +++ b/apps/dashboard/app/(app)/settings/team/role-switcher.tsx @@ -1,6 +1,9 @@ "use client"; import { Loading } from "@/components/dashboard/loading"; +import { toast } from "@/components/ui/toaster"; +import type { AuthenticatedUser, Membership, Organization } from "@/lib/auth/types"; +import { trpc } from "@/lib/trpc/client"; import { Select, SelectContent, @@ -8,10 +11,7 @@ import { SelectItem, SelectTrigger, SelectValue, -} from "@/components/ui/select"; -import { toast } from "@/components/ui/toaster"; -import type { AuthenticatedUser, Membership, Organization } from "@/lib/auth/types"; -import { trpc } from "@/lib/trpc/client"; +} from "@unkey/ui"; import { memo, useState } from "react"; type RoleSwitcherProps = { diff --git a/apps/dashboard/app/(app)/settings/vercel/client.tsx b/apps/dashboard/app/(app)/settings/vercel/client.tsx index 29e0873caf..9b1cd32b58 100644 --- a/apps/dashboard/app/(app)/settings/vercel/client.tsx +++ b/apps/dashboard/app/(app)/settings/vercel/client.tsx @@ -17,18 +17,12 @@ import { } from "@/components/ui/dropdown-menu"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { toast } from "@/components/ui/toaster"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { trpc } from "@/lib/trpc/client"; import { cn } from "@/lib/utils"; import type { Api, Key, VercelBinding } from "@unkey/db"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { Empty } from "@unkey/ui"; import { Button } from "@unkey/ui"; import { ExternalLink, Link2, MoreHorizontal, Plus, RefreshCw, Trash, Unlink2 } from "lucide-react"; diff --git a/apps/dashboard/app/integrations/vercel/callback/client.tsx b/apps/dashboard/app/integrations/vercel/callback/client.tsx index ef1e5b65a2..7490ed2c62 100644 --- a/apps/dashboard/app/integrations/vercel/callback/client.tsx +++ b/apps/dashboard/app/integrations/vercel/callback/client.tsx @@ -8,16 +8,10 @@ import { Loading } from "@/components/dashboard/loading"; import { PageHeader } from "@/components/dashboard/page-header"; import { Label } from "@/components/ui/label"; import { ScrollArea } from "@/components/ui/scroll-area"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { toast } from "@/components/ui/toaster"; import { trpc } from "@/lib/trpc/client"; import type { Api, VercelBinding } from "@unkey/db"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@unkey/ui"; import { Button } from "@unkey/ui"; import { X } from "lucide-react"; import { useRouter } from "next/navigation"; diff --git a/apps/dashboard/components/dashboard/feedback-component.tsx b/apps/dashboard/components/dashboard/feedback-component.tsx index bced6edf78..040e544b4b 100644 --- a/apps/dashboard/components/dashboard/feedback-component.tsx +++ b/apps/dashboard/components/dashboard/feedback-component.tsx @@ -13,11 +13,17 @@ import { toast } from "@/components/ui/toaster"; import { trpc } from "@/lib/trpc/client"; import { zodResolver } from "@hookform/resolvers/zod"; import { Button } from "@unkey/ui"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@unkey/ui/src/components/select"; import { parseAsBoolean, useQueryState } from "nuqs"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "../ui/form"; -import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; export const useFeedback = () => { return useQueryState("feedback", { diff --git a/apps/engineering/content/design/components/select.example.tsx b/apps/engineering/content/design/components/select.example.tsx new file mode 100644 index 0000000000..b701a7b9dd --- /dev/null +++ b/apps/engineering/content/design/components/select.example.tsx @@ -0,0 +1,134 @@ +"use client"; + +import { RenderComponentWithSnippet } from "@/app/components/render"; +import { Row } from "@/app/components/row"; +import { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectTrigger, + SelectValue, +} from "@unkey/ui"; +import { AlertCircle, AlertTriangle, CheckCircle2, Mail } from "lucide-react"; +import { useState } from "react"; + +export function SelectExample() { + const [value, setValue] = useState(""); + + return ( + + + {/* Basic Select */} +
+

Basic Select

+ +
+ + {/* Select with Left Icon */} +
+

Select with Left Icon

+ +
+ + {/* Select with Groups */} +
+

Select with Groups

+ +
+ + {/* Disabled Select */} +
+

Disabled Select

+ +
+
+
+ ); +} + +export function SelectExampleVariants() { + return ( + + + {/* Select with Variants */} + +
+ + + + + +
+
+
+ ); +} diff --git a/apps/engineering/content/design/components/select.mdx b/apps/engineering/content/design/components/select.mdx new file mode 100644 index 0000000000..cf6119ecc9 --- /dev/null +++ b/apps/engineering/content/design/components/select.mdx @@ -0,0 +1,78 @@ +--- +title: Select +description: A customizable select component built with Radix UI +--- + +import { SelectExample, SelectExampleVariants } from "./select.example"; + +The Select component is a customizable dropdown menu built on top of Radix UI's Select primitive. It provides a flexible and accessible way to create select inputs with various styling options. + +## Features + +- Multiple variants (default, success, warning, error) +- Left icon support +- Fully accessible +- Customizable styling +- Animated transitions +- Keyboard navigation + +## Variants + +The Select component supports four variants: + +- `default`: Standard select with gray styling +- `success`: Green styling for successful states +- `warning`: Yellow styling for warning states +- `error`: Red styling for error states + +## Usage + + + +### Variant Styles + + + +## Props + +### SelectTrigger + +| Prop | Type | Description | +|------|------|-------------| +| variant | "default" \| "success" \| "warning" \| "error" | The visual variant of the select | +| leftIcon | React.ReactNode | Optional icon to display on the left side | +| wrapperClassName | string | Additional classes for the wrapper element | +| className | string | Additional classes for the trigger element | + +### SelectContent + +| Prop | Type | Description | +|------|------|-------------| +| position | "popper" \| "item-aligned" | The positioning strategy for the dropdown | +| className | string | Additional classes for the content element | + +### SelectItem + +| Prop | Type | Description | +|------|------|-------------| +| value | string | The value of the select item | +| disabled | boolean | Whether the item is disabled | +| className | string | Additional classes for the item element | + +## Accessibility + +The Select component is built with accessibility in mind: + +- Keyboard navigation support +- ARIA attributes +- Focus management +- Screen reader support +- Proper role attributes + +## Best Practices + +1. Always provide a placeholder or default value +2. Use appropriate variants for different states +3. Group related options using SelectGroup +4. Add icons when they provide additional context +5. Use disabled state for unavailable options \ No newline at end of file diff --git a/internal/ui/package.json b/internal/ui/package.json index 0866692198..b4a28ad273 100644 --- a/internal/ui/package.json +++ b/internal/ui/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@radix-ui/colors": "^3.0.0", + "@radix-ui/react-select": "^2.0.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-tooltip": "^1.0.7", "@unkey/icons": "workspace:^", diff --git a/apps/dashboard/components/ui/select.tsx b/internal/ui/src/components/select.tsx similarity index 99% rename from apps/dashboard/components/ui/select.tsx rename to internal/ui/src/components/select.tsx index e0525cd25d..fc322402c8 100644 --- a/apps/dashboard/components/ui/select.tsx +++ b/internal/ui/src/components/select.tsx @@ -1,10 +1,10 @@ "use client"; -import { cn } from "@/lib/utils"; import * as SelectPrimitive from "@radix-ui/react-select"; import { type VariantProps, cva } from "class-variance-authority"; import { Check, ChevronDown } from "lucide-react"; import * as React from "react"; +import { cn } from "../lib/utils"; const selectTriggerVariants = cva( "flex min-h-9 w-full rounded-lg text-[13px] leading-5 transition-colors duration-300 disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-gray-7 text-gray-12 items-center justify-between", diff --git a/internal/ui/src/index.ts b/internal/ui/src/index.ts index bf5f3ef173..06bb240e71 100644 --- a/internal/ui/src/index.ts +++ b/internal/ui/src/index.ts @@ -1,11 +1,12 @@ export * from "./components/button"; -export * from "./components/id"; -export * from "./components/tooltip"; export * from "./components/date-time/date-time"; -export * from "./components/inline-link"; -export * from "./components/input"; export * from "./components/empty"; export * from "./components/form"; +export * from "./components/id"; +export * from "./components/inline-link"; +export * from "./components/input"; +export * from "./components/select"; +export * from "./components/settings-card"; export * from "./components/textarea"; export * from "./components/timestamp-info"; -export * from "./components/settings-card"; +export * from "./components/tooltip"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8255ff604..90aba1261c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -626,7 +626,7 @@ importers: devDependencies: checkly: specifier: latest - version: 5.3.1(@types/node@20.14.9)(typescript@5.5.3) + version: 5.2.0(@types/node@20.14.9)(typescript@5.5.3) ts-node: specifier: 10.9.1 version: 10.9.1(@types/node@20.14.9)(typescript@5.5.3) @@ -916,6 +916,9 @@ importers: '@radix-ui/colors': specifier: ^3.0.0 version: 3.0.0 + '@radix-ui/react-select': + specifier: ^2.0.0 + version: 2.2.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.1.0 version: 1.1.0(@types/react@18.3.11)(react@18.3.1) @@ -5111,7 +5114,7 @@ packages: '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 '@babel/types': 7.27.0 - '@radix-ui/react-dialog': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-dialog': 1.1.11(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-tooltip': 1.2.4(react-dom@18.3.1)(react@18.3.1) '@rollup/pluginutils': 5.1.4 cmdk: 0.2.1(react-dom@18.3.1)(react@18.3.1) @@ -5702,6 +5705,30 @@ packages: fastq: 1.19.1 dev: true + /@oclif/core@4.2.8: + resolution: {integrity: sha512-OWv4Va6bERxIhrYcnUGzyhGRqktc64lJO6cZ3UwkzJDpfR8ZrbCxRfKRBBah1i8kzUlOAeAXnpbMBMah3skKwA==} + engines: {node: '>=18.0.0'} + dependencies: + ansi-escapes: 4.3.2 + ansis: 3.17.0 + clean-stack: 3.0.1 + cli-spinners: 2.9.2 + debug: 4.4.0(supports-color@8.1.1) + ejs: 3.1.10 + get-package-type: 0.1.0 + globby: 11.1.0 + indent-string: 4.0.0 + is-wsl: 2.2.0 + lilconfig: 3.1.3 + minimatch: 9.0.5 + semver: 7.7.1 + string-width: 4.2.3 + supports-color: 8.1.1 + widest-line: 3.1.0 + wordwrap: 1.0.0 + wrap-ansi: 7.0.0 + dev: true + /@oclif/core@4.3.0: resolution: {integrity: sha512-lIzHY+JMP6evrS5E/sGijNnwrCoNtGy8703jWXcMuPOYKiFhWoAqnIm1BGgoRgmxczkbSfRsHUL/lwsSgh74Lw==} engines: {node: '>=18.0.0'} @@ -5726,15 +5753,15 @@ packages: wrap-ansi: 7.0.0 dev: true - /@oclif/plugin-help@6.2.27: - resolution: {integrity: sha512-RWSWtCFVObRmCwgxVOye3lsYbPHTnB7G4He5LEAg2tf600Sil5yXEOL/ULx1TqL/XOQxKqRvmLn/rLQOMT85YA==} + /@oclif/plugin-help@6.2.26: + resolution: {integrity: sha512-5KdldxEizbV3RsHOddN4oMxrX/HL6z79S94tbxEHVZ/dJKDWzfyCpgC9axNYqwmBF2pFZkozl/l7t3hCGOdalw==} engines: {node: '>=18.0.0'} dependencies: '@oclif/core': 4.3.0 dev: true - /@oclif/plugin-not-found@3.2.50(@types/node@20.14.9): - resolution: {integrity: sha512-ZjGns73P00bYWkan6BWtTyjWWWHPq0d+ehMlgPJU25DDpK6FIv0OvHloYjfK/Zmo973puKxru7UQLdjCcNUdTA==} + /@oclif/plugin-not-found@3.2.44(@types/node@20.14.9): + resolution: {integrity: sha512-UF6GD/aDbElP6LJMZSSq72NvK0aQwtQ+fkjn0VLU9o1vNAA3M2K0tGL7lduZGQNw8LejOhr25eR4aXeRCgKb2A==} engines: {node: '>=18.0.0'} dependencies: '@inquirer/prompts': 7.5.0(@types/node@20.14.9) @@ -5745,8 +5772,8 @@ packages: - '@types/node' dev: true - /@oclif/plugin-plugins@5.4.36: - resolution: {integrity: sha512-f80mEaXAAeZo4uGuNZplnlf9/8v6GAocWEQkyRlC2VU2KO6h5FUlPDwIuSN6ZlE7qgwINcMoDjEZF2VA9PuASQ==} + /@oclif/plugin-plugins@5.4.34: + resolution: {integrity: sha512-19sX+tHyR6M24GHbnedqqtk6w9QBgFZoa1y4zPmHf6VYaBeBmMBaq2dsLsdG0zv8LnWxaqguocICoxZTrV9f6A==} engines: {node: '>=18.0.0'} dependencies: '@oclif/core': 4.3.0 @@ -5764,8 +5791,8 @@ packages: - supports-color dev: true - /@oclif/plugin-warn-if-update-available@3.1.38: - resolution: {integrity: sha512-lwYtVXdQaBJV94DglPu140Bc6NmmysHhX5PZtdxeNcUG2BgSX/Sre7oCzMEgmuhe4Lu2jDviMxTX81a8wv6v1w==} + /@oclif/plugin-warn-if-update-available@3.1.35: + resolution: {integrity: sha512-gQfFW0UfT3msq/3O3idgBq4CA3cyXzFtrkoG7MK4FXVK0wxIdG0EVgJn4/o3jqjWO7t+93siCXyq56CGTGUZWQ==} engines: {node: '>=18.0.0'} dependencies: '@oclif/core': 4.3.0 @@ -6683,6 +6710,25 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-arrow@1.1.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==} + 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 + dependencies: + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-avatar@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==} @@ -7102,6 +7148,38 @@ packages: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.6.3(@types/react@18.3.11)(react@18.3.1) + dev: false + + /@radix-ui/react-dialog@1.1.11(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==} + 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 + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.7(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.4(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-portal': 1.1.6(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-slot': 1.2.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.11)(react@18.3.1) + dev: true /@radix-ui/react-dialog@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==} @@ -7312,6 +7390,29 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-dismissable-layer@1.1.7(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==} + 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 + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-dropdown-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-y8E+x9fBq9qvteD2Zwa4397pUVhYsh9iq44b5RD5qu1GMJWBCBuVg1hMyItbc6+zH00TxGRqd9Iot4wzf3OoBQ==} @@ -7501,6 +7602,27 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-focus-scope@1.1.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==} + 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 + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-id@1.0.0(react@18.3.1): resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} @@ -7830,6 +7952,34 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-popper@1.2.4(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==} + 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 + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-arrow': 1.1.4(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/rect': 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-portal@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} @@ -7946,6 +8096,26 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-portal@1.1.6(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==} + 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 + dependencies: + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-presence@1.0.0(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} @@ -8155,6 +8325,25 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-primitive@2.1.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==} + 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 + dependencies: + '@radix-ui/react-slot': 1.2.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/react-progress@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==} @@ -8713,15 +8902,15 @@ packages: '@radix-ui/primitive': 1.1.2 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.11)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.7(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-popper': 1.2.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-popper': 1.2.4(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-portal': 1.1.6(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-slot': 1.2.0(@types/react@18.3.11)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.2.0(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: true @@ -9090,6 +9279,25 @@ packages: '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + dev: false + + /@radix-ui/react-visually-hidden@1.2.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==} + 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 + dependencies: + '@radix-ui/react-primitive': 2.1.0(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} @@ -10219,7 +10427,7 @@ packages: /@types/accepts@1.3.7: resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} dependencies: - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/aria-query@5.0.4: @@ -10230,13 +10438,13 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/content-disposition@0.5.8: @@ -10246,7 +10454,7 @@ packages: /@types/conventional-commits-parser@5.0.1: resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} dependencies: - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: true optional: true @@ -10268,7 +10476,7 @@ packages: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/cors@2.8.17: @@ -10376,7 +10584,7 @@ packages: /@types/express-serve-static-core@4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 22.14.0 + '@types/node': 20.14.9 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -10441,7 +10649,7 @@ packages: '@types/http-errors': 2.0.4 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/mdast@4.0.4: @@ -10554,14 +10762,14 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 22.14.0 + '@types/node': 20.14.9 dev: false /@types/serve-static@1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.14.0 + '@types/node': 20.14.9 '@types/send': 0.17.4 dev: false @@ -10633,19 +10841,19 @@ packages: dev: true optional: true - /@typescript-eslint/types@8.31.1: - resolution: {integrity: sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==} + /@typescript-eslint/types@8.24.1: + resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@typescript-eslint/typescript-estree@8.31.1(typescript@5.5.3): - resolution: {integrity: sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==} + /@typescript-eslint/typescript-estree@8.24.1(typescript@5.5.3): + resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <5.8.0' dependencies: - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/visitor-keys': 8.31.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 @@ -10657,11 +10865,11 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys@8.31.1: - resolution: {integrity: sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==} + /@typescript-eslint/visitor-keys@8.24.1: + resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.31.1 + '@typescript-eslint/types': 8.24.1 eslint-visitor-keys: 4.2.0 dev: true @@ -11403,6 +11611,16 @@ packages: tslib: 2.8.1 dev: false + /assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + dependencies: + call-bind: 1.0.8 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true @@ -11513,6 +11731,16 @@ packages: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} engines: {node: '>= 6.0.0'} + /axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + /axios@1.9.0: resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==} dependencies: @@ -11936,45 +12164,40 @@ packages: get-func-name: 2.0.2 dev: true - /checkly@5.3.1(@types/node@20.14.9)(typescript@5.5.3): - resolution: {integrity: sha512-tKd9W92QIhmtV9JiaMTte/efty6NsAPqjKzTSMQ5+V2KsYms0EMG4k/FJ8fU6Hl3xUgycYE3lyv+Qj65qG2KhQ==} + /checkly@5.2.0(@types/node@20.14.9)(typescript@5.5.3): + resolution: {integrity: sha512-y5VEdxuVfI66hEOMQlGKzcQsncCdewtG9ocKyA963MeOTW79v7a9dqHUJQLmBwLtUybaHVFXj7ha1RR57no9SA==} engines: {node: '>=18.0.0'} hasBin: true - peerDependencies: - jiti: '>=2' - peerDependenciesMeta: - jiti: - optional: true dependencies: - '@oclif/core': 4.3.0 - '@oclif/plugin-help': 6.2.27 - '@oclif/plugin-not-found': 3.2.50(@types/node@20.14.9) - '@oclif/plugin-plugins': 5.4.36 - '@oclif/plugin-warn-if-update-available': 3.1.38 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.5.3) - acorn: 8.14.1 + '@oclif/core': 4.2.8 + '@oclif/plugin-help': 6.2.26 + '@oclif/plugin-not-found': 3.2.44(@types/node@20.14.9) + '@oclif/plugin-plugins': 5.4.34 + '@oclif/plugin-warn-if-update-available': 3.1.35 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.5.3) + acorn: 8.14.0 acorn-walk: 8.3.4 - axios: 1.9.0 + axios: 1.7.4 chalk: 4.1.2 - ci-info: 4.2.0 + ci-info: 3.8.0 conf: 10.2.0 - dotenv: 16.5.0 + dotenv: 16.3.1 git-repo-info: 2.1.1 - glob: 10.4.5 + glob: 10.3.1 indent-string: 4.0.0 json-stream-stringify: 3.1.6 json5: 2.2.3 jwt-decode: 3.1.2 log-symbols: 4.1.0 - luxon: 3.6.1 - mqtt: 5.12.0 - open: 8.4.2 + luxon: 3.3.0 + mqtt: 5.10.1 + open: 8.4.0 p-queue: 6.6.2 prompts: 2.4.2 proxy-from-env: 1.1.0 - recast: 0.23.11 + recast: 0.23.4 tunnel: 0.0.6 - uuid: 11.1.0 + uuid: 9.0.0 transitivePeerDependencies: - '@types/node' - bufferutil @@ -12050,13 +12273,13 @@ packages: zod: 3.23.8 dev: true - /ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} dev: true - /ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} dev: true @@ -12827,7 +13050,7 @@ packages: dependencies: is-arguments: 1.2.0 is-date-object: 1.1.0 - is-regex: 1.1.4 + is-regex: 1.2.1 object-is: 1.1.6 object-keys: 1.1.1 regexp.prototype.flags: 1.5.4 @@ -13110,6 +13333,11 @@ packages: engines: {node: '>=12'} dev: false + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + dev: true + /dotenv@16.5.0: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} @@ -14822,7 +15050,7 @@ packages: '@radix-ui/react-navigation-menu': 1.2.10(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-popover': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-scroll-area': 1.2.6(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-slot': 1.2.0(@types/react@18.3.11)(react@18.3.1) '@radix-ui/react-tabs': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1) class-variance-authority: 0.7.1 fumadocs-core: 14.5.4(@types/react@18.3.11)(next@14.2.15)(react-dom@18.3.1)(react@18.3.1) @@ -15024,6 +15252,18 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + /glob@10.3.1: + resolution: {integrity: sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.3.1 + jackspeak: 2.3.6 + minimatch: 9.0.5 + minipass: 5.0.0 + path-scurry: 1.11.1 + dev: true + /glob@10.3.4: resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} engines: {node: '>=16 || 14 >=14.17'} @@ -15832,7 +16072,6 @@ packages: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 - dev: false /is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} @@ -15990,6 +16229,14 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + dev: true + /is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} dev: true @@ -16206,7 +16453,6 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: false /jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -16818,8 +17064,8 @@ packages: react: 18.3.1 dev: false - /luxon@3.6.1: - resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==} + /luxon@3.3.0: + resolution: {integrity: sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==} engines: {node: '>=12'} dev: true @@ -17658,11 +17904,13 @@ packages: - supports-color dev: true - /mqtt@5.12.0: - resolution: {integrity: sha512-IKx8q4/0P0VfM/skx03CPMBMBgT9BZoVIMTev9rpauJUm36dW2/Mo3xFBZNt3kaS/4wX/Fsn6x/tbofDRpXiLw==} + /mqtt@5.10.1: + resolution: {integrity: sha512-hXCOki8sANoQ7w+2OzJzg6qMBxTtrH9RlnVNV8panLZgnl+Gh0J/t4k6r8Az8+C7y3KAcyXtn0mmLixyUom8Sw==} engines: {node: '>=16.0.0'} hasBin: true dependencies: + '@types/readable-stream': 4.0.18 + '@types/ws': 8.18.1 commist: 3.2.0 concat-stream: 2.0.0 debug: 4.4.0(supports-color@8.1.1) @@ -17672,8 +17920,8 @@ packages: mqtt-packet: 9.0.2 number-allocator: 1.0.14 readable-stream: 4.7.0 + reinterval: 1.1.0 rfdc: 1.4.1 - socks: 2.8.4 split2: 4.2.0 worker-timers: 7.1.8 ws: 8.18.1 @@ -18214,7 +18462,6 @@ packages: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - dev: false /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -18280,6 +18527,15 @@ packages: regex-recursion: 5.1.1 dev: false + /open@8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -19622,14 +19878,14 @@ packages: engines: {node: '>= 14.18.0'} dev: false - /recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + /recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} engines: {node: '>= 4'} dependencies: + assert: 2.1.0 ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 - tiny-invariant: 1.3.3 tslib: 2.8.1 dev: true @@ -19799,6 +20055,10 @@ packages: transitivePeerDependencies: - supports-color + /reinterval@1.1.0: + resolution: {integrity: sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ==} + dev: true + /remark-frontmatter@5.0.0: resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} dependencies: @@ -21419,6 +21679,7 @@ packages: /tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: false /tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -22247,6 +22508,16 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.19 + dev: true + /utility-types@3.11.0: resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} engines: {node: '>= 4'} @@ -22257,16 +22528,16 @@ packages: engines: {node: '>= 0.4.0'} dev: true - /uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - dev: true - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: false + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + hasBin: true + dev: true + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} From 65ce3b06fef371b78a5b55e3f0501a0207bb3178 Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Fri, 2 May 2025 12:10:04 -0400 Subject: [PATCH 2/2] style changes --- internal/ui/src/components/select.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/ui/src/components/select.tsx b/internal/ui/src/components/select.tsx index fc322402c8..6933786849 100644 --- a/internal/ui/src/components/select.tsx +++ b/internal/ui/src/components/select.tsx @@ -7,24 +7,24 @@ import * as React from "react"; import { cn } from "../lib/utils"; const selectTriggerVariants = cva( - "flex min-h-9 w-full rounded-lg text-[13px] leading-5 transition-colors duration-300 disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-gray-7 text-gray-12 items-center justify-between", + "flex min-h-9 w-full rounded-lg text-[13px] leading-5 transition-colors duration-300 disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-grayA-8 text-grayA-12 items-center justify-between", { variants: { variant: { default: [ - "border border-gray-5 hover:border-gray-8 bg-gray-2", + "border border-gray-5 hover:border-gray-8 bg-gray-2 dark:bg-black", "focus:border focus:border-accent-12 focus:ring-2 focus:ring-gray-5 focus-visible:outline-none focus:ring-offset-0", ], success: [ - "border border-success-9 hover:border-success-10 bg-gray-2", + "border border-success-9 hover:border-success-10 bg-gray-2 dark:bg-black", "focus:border-success-8 focus:ring-2 focus:ring-success-2 focus-visible:outline-none", ], warning: [ - "border border-warning-9 hover:border-warning-10 bg-gray-2", + "border border-warning-9 hover:border-warning-10 bg-gray-2 dark:bg-black", "focus:border-warning-8 focus:ring-2 focus:ring-warning-2 focus-visible:outline-none", ], error: [ - "border border-error-9 hover:border-error-10 bg-gray-2", + "border border-error-9 hover:border-error-10 bg-gray-2 dark:bg-black", "focus:border-error-8 focus:ring-2 focus:ring-error-2 focus-visible:outline-none", ], }, @@ -38,7 +38,7 @@ const selectTriggerVariants = cva( const selectWrapperVariants = cva("relative flex items-center w-full", { variants: { variant: { - default: "text-gray-11", + default: "text-grayA-12", success: "text-success-11", warning: "text-warning-11", error: "text-error-11",