diff --git a/ee/apps/den-web/app/(den)/_components/ui/input.tsx b/ee/apps/den-web/app/(den)/_components/ui/input.tsx index c744b0fbd..4fceed252 100644 --- a/ee/apps/den-web/app/(den)/_components/ui/input.tsx +++ b/ee/apps/den-web/app/(den)/_components/ui/input.tsx @@ -27,7 +27,7 @@ export type DenInputProps = Omit, "disable * Consistent text input for all dashboard pages, based on the * Shared Workspaces compact search field. * - * Defaults: rounded-lg · py-2.5 · px-4 · text-[14px] + * Defaults: rounded-lg · h-[42px] · px-4 · text-[14px]/leading-5 * Icon: auto-positions and adjusts left padding. * No className needed at the call site — override only when necessary. */ @@ -56,7 +56,7 @@ export function DenInput({ className={[ // base visual style "w-full rounded-lg border border-gray-200 bg-white", - "py-2.5 px-4 text-[14px] text-gray-900", + "h-[42px] px-4 text-[14px] leading-5 text-gray-900", "outline-none transition-all placeholder:text-gray-400", "focus:border-gray-300 focus:ring-2 focus:ring-gray-900/5", // disabled state diff --git a/ee/apps/den-web/app/(den)/_components/ui/select.tsx b/ee/apps/den-web/app/(den)/_components/ui/select.tsx new file mode 100644 index 000000000..3322c5fd4 --- /dev/null +++ b/ee/apps/den-web/app/(den)/_components/ui/select.tsx @@ -0,0 +1,57 @@ +"use client"; + +import { ChevronDown } from "lucide-react"; +import type { SelectHTMLAttributes } from "react"; + +export type DenSelectProps = Omit, "disabled"> & { + /** + * Disables the select and dims it to 60 % opacity. + * Forwarded as the native `disabled` attribute. + */ + disabled?: boolean; +}; + +/** + * DenSelect + * + * Consistent native select for all dashboard pages, matched to the + * Shared Workspaces compact field sizing used by DenInput. + * + * Defaults: rounded-lg · h-[42px] · px-4/pr-10 · text-[14px]/leading-5 + * Chevron: custom Lucide chevron replaces browser-native control chrome. + * No className needed at the call site - override only when necessary. + */ +export function DenSelect({ + disabled = false, + className, + children, + ...rest +}: DenSelectProps) { + return ( +
+ +
+
+
+ ); +} diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/manage-members-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/manage-members-screen.tsx index 2ca815542..eee679abd 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/manage-members-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/manage-members-screen.tsx @@ -25,6 +25,7 @@ import { UnderlineTabs } from "../../../../_components/ui/tabs"; import { DashboardPageTemplate } from "../../../../_components/ui/dashboard-page-template"; import { DenButton } from "../../../../_components/ui/button"; import { DenInput } from "../../../../_components/ui/input"; +import { DenSelect } from "../../../../_components/ui/select"; type MembersTab = "members" | "teams" | "roles" | "invitations"; @@ -283,17 +284,13 @@ export function ManageMembersScreen() {
Cancel @@ -327,17 +324,13 @@ export function ManageMembersScreen() { >
Cancel diff --git a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/skill-editor-screen.tsx b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/skill-editor-screen.tsx index 39b93201c..7096d0b55 100644 --- a/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/skill-editor-screen.tsx +++ b/ee/apps/den-web/app/(den)/o/[orgSlug]/dashboard/_components/skill-editor-screen.tsx @@ -6,6 +6,7 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { ArrowLeft, Upload } from "lucide-react"; import { DenButton } from "../../../../_components/ui/button"; import { DenInput } from "../../../../_components/ui/input"; +import { DenSelect } from "../../../../_components/ui/select"; import { DenTextarea } from "../../../../_components/ui/textarea"; import { getErrorMessage, requestJson } from "../../../../_lib/den-flow"; import { @@ -238,15 +239,14 @@ export function SkillEditorScreen({ skillId }: { skillId?: string }) {