@conscia-labs/design-system 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -0
- package/dist/{card-DqFHjLjm.d.ts → card-BFUHJgV-.d.ts} +3 -1
- package/dist/{chunk-YHPZ5CQU.js → chunk-HLND6FZS.js} +89 -69
- package/dist/chunk-HLND6FZS.js.map +1 -0
- package/dist/{chunk-5MGPU2JE.js → chunk-TXCHAKNG.js} +144 -26
- package/dist/chunk-TXCHAKNG.js.map +1 -0
- package/dist/{chunk-CU3OXBFI.js → chunk-VVTTFVCC.js} +37 -56
- package/dist/chunk-VVTTFVCC.js.map +1 -0
- package/dist/foundation.css +89 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +6 -4
- package/dist/patterns/index.d.ts +24 -4
- package/dist/patterns/index.js +4 -2
- package/dist/primitives/index.d.ts +2 -4
- package/dist/primitives/index.js +3 -3
- package/dist/standalone.css +1 -1
- package/dist/styles.css +89 -1
- package/package.json +2 -1
- package/dist/chunk-5MGPU2JE.js.map +0 -1
- package/dist/chunk-CU3OXBFI.js.map +0 -1
- package/dist/chunk-YHPZ5CQU.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives/button.tsx","../src/primitives/checkbox.tsx","../src/primitives/table.tsx","../src/primitives/select.tsx","../src/primitives/input.tsx","../src/primitives/separator.tsx","../src/primitives/sheet.tsx","../src/primitives/tooltip.tsx","../src/primitives/dialog.tsx","../src/primitives/tabs.tsx","../src/primitives/card.tsx","../src/primitives/skeleton.tsx","../src/primitives/collapsible.tsx","../src/primitives/dropdown-menu.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"./utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-accent-hover active:bg-accent-active\",\n destructive:\n \"bg-danger text-white shadow-xs hover:bg-danger/90 focus-visible:ring-danger/20 dark:focus-visible:ring-danger/40\",\n outline:\n \"border border-border-default bg-background shadow-xs hover:bg-surface-muted hover:text-foreground\",\n secondary: \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-surface-muted hover:text-foreground\",\n link: \"text-text-link underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-[var(--ds-control-height)] px-3 py-2 has-[>svg]:px-3\",\n sm: \"h-[var(--ds-control-height-sm)] rounded-md gap-1.5 px-2.5 has-[>svg]:px-2\",\n lg: \"h-[var(--ds-control-height-lg)] rounded-md px-4 has-[>svg]:px-3.5\",\n icon: \"size-[var(--ds-control-height)]\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n type,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n type={asChild ? undefined : (type ?? \"button\")}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger aria-invalid:ring-danger/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-danger/40 dark:data-[state=checked]:bg-primary\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"grid place-content-center text-current transition-none\">\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table data-slot=\"table\" className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b [&_tr]:border-border-subtle\", className)} {...props} />;\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return <tbody data-slot=\"table-body\" className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />;\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\"h-[var(--ds-row-height)] border-b border-border-subtle transition-colors hover:bg-surface-muted/70 data-[state=selected]:bg-accent-background\", className)}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\"h-[var(--ds-table-header-height)] whitespace-nowrap px-3 text-left align-middle text-[var(--ds-metadata)] font-semibold uppercase text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return <td data-slot=\"table-cell\" className={cn(\"whitespace-nowrap px-3 py-2 align-middle text-sm\", className)} {...props} />;\n}\n\nexport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-danger/20 aria-invalid:border-danger flex w-fit items-center justify-between gap-2 rounded-[var(--ds-field-control-radius)] border bg-card px-[var(--ds-field-control-padding-x)] py-2 text-sm whitespace-nowrap shadow-none transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[var(--ds-field-control-height)] data-[size=sm]:h-[var(--ds-control-height-sm)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 dark:aria-invalid:ring-danger/40\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-surface-muted focus:text-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-[length:var(--ds-menu-item-size)] outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-[length:var(--ds-menu-label-size)]\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton data-slot=\"select-scroll-up-button\" className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton data-slot=\"select-scroll-down-button\" className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue\n};\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"border-input bg-card flex h-[var(--ds-field-control-height)] w-full min-w-0 rounded-[var(--ds-field-control-radius)] border px-[var(--ds-field-control-padding-x)] py-2 text-base shadow-none transition-colors outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:ring-danger/40\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"./utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border-subtle data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className)}\n {...props}\n />\n );\n}\n\nconst sheetSideClasses = {\n top: \"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n right: \"right-0 top-0 h-full max-w-md border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-lg\",\n bottom: \"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"left-0 top-0 h-full max-w-md border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-lg\",\n};\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n closeLabel = \"Close\",\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n side?: keyof typeof sheetSideClasses;\n closeLabel?: string;\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <DialogPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"fixed z-50 flex w-full flex-col gap-6 bg-background p-6 text-foreground shadow-lg outline-none data-[state=open]:animate-in data-[state=closed]:animate-out\",\n sheetSideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n data-slot=\"sheet-close\"\n className=\"absolute right-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\"\n >\n <XIcon />\n <span className=\"sr-only\">{closeLabel}</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"sheet-header\" className={cn(\"grid gap-2 pr-8\", className)} {...props} />;\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-lg font-semibold leading-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-body\"\n className={cn(\"flex min-h-0 flex-1 flex-col gap-[var(--ds-space-group)] overflow-y-auto pr-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-wrap items-center justify-between gap-2 border-t border-border-subtle pt-4\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from \"./utils\";\n\nfunction TooltipProvider({ delayDuration = 150, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 6,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\"z-50 w-fit rounded-md bg-foreground px-3 py-1.5 text-balance text-xs text-background shadow-[var(--ds-shadow-floating)]\", className)}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return <DialogPrimitive.Overlay data-slot=\"dialog-overlay\" className={cn(\"fixed inset-0 z-50 bg-black/50\", className)} {...props} />;\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n size = \"default\",\n closeLabel = \"Close\",\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n size?: \"small\" | \"default\" | \"large\";\n closeLabel?: string;\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n data-size={size}\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 grid max-h-[min(42rem,calc(100vh-2rem))] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 grid-rows-[auto_minmax(0,1fr)_auto] gap-5 overflow-hidden rounded-lg border bg-background p-5 text-foreground shadow-lg sm:p-6\",\n \"data-[size=small]:sm:max-w-sm data-[size=default]:sm:max-w-lg data-[size=large]:sm:max-w-3xl\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"absolute right-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\"\n >\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">{closeLabel}</span>\n </DialogPrimitive.Close>\n ) : null}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2 text-left\", className)} {...props} />;\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return <DialogPrimitive.Title data-slot=\"dialog-title\" className={cn(\"text-base font-semibold leading-none\", className)} {...props} />;\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return <DialogPrimitive.Description data-slot=\"dialog-description\" className={cn(\"text-sm text-muted-foreground\", className)} {...props} />;\n}\n\nfunction DialogBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"dialog-body\" className={cn(\"min-h-0 overflow-y-auto text-sm\", className)} {...props} />;\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"dialog-footer\" className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)} {...props} />;\n}\n\nexport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nimport { cn } from \"./utils\";\n\ntype TabsVariant = \"underline\" | \"segmented\";\ntype TabsSize = \"default\" | \"compact\";\ntype ScrollPosition = \"none\" | \"start\" | \"middle\" | \"end\";\n\ntype TabsVisualContextValue = {\n variant: TabsVariant;\n size: TabsSize;\n};\n\nconst defaultTabsVisualContext: TabsVisualContextValue = {\n variant: \"underline\",\n size: \"default\",\n};\n\nconst TabsRootVisualContext = React.createContext(defaultTabsVisualContext);\nconst TabsListVisualContext = React.createContext(defaultTabsVisualContext);\n\nconst tabRailClasses =\n \"flex min-w-0 items-stretch overflow-x-auto overscroll-x-contain border-b border-border-subtle scroll-px-2 snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\";\n\nconst navigationTabClasses =\n \"relative inline-flex h-full shrink-0 snap-start items-center justify-center gap-2 whitespace-nowrap rounded-t-[var(--ds-radius-control)] px-[var(--ds-tab-padding-x)] text-sm font-medium outline-none transition-[background-color,color,box-shadow] duration-150 after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:bg-transparent after:transition-colors hover:bg-surface-muted focus-visible:z-10 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring/60 data-[active=false]:text-muted-foreground data-[active=false]:hover:text-foreground data-[active=true]:bg-selection-background data-[active=true]:font-semibold data-[active=true]:text-selection-foreground data-[active=true]:after:bg-selection-indicator\";\n\nfunction assignRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n}\n\nfunction useHorizontalScrollRail<T extends HTMLElement>(externalRef?: React.Ref<T>) {\n const internalRef = React.useRef<T | null>(null);\n const [scrollPosition, setScrollPosition] = React.useState<ScrollPosition>(\"none\");\n\n const updateScrollPosition = React.useCallback(() => {\n const element = internalRef.current;\n if (!element) return;\n\n const maximumScroll = element.scrollWidth - element.clientWidth;\n const nextPosition: ScrollPosition =\n maximumScroll <= 1\n ? \"none\"\n : element.scrollLeft <= 1\n ? \"start\"\n : element.scrollLeft >= maximumScroll - 1\n ? \"end\"\n : \"middle\";\n\n setScrollPosition((current) =>\n current === nextPosition ? current : nextPosition,\n );\n }, []);\n\n const ref = React.useCallback(\n (node: T | null) => {\n internalRef.current = node;\n assignRef(externalRef, node);\n },\n [externalRef],\n );\n\n React.useEffect(() => {\n updateScrollPosition();\n const element = internalRef.current;\n if (!element || typeof ResizeObserver === \"undefined\") return;\n\n const observer = new ResizeObserver(updateScrollPosition);\n observer.observe(element);\n return () => observer.disconnect();\n }, [updateScrollPosition]);\n\n return [scrollPosition, ref, updateScrollPosition] as const;\n}\n\nfunction Tabs({\n className,\n variant = \"underline\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root> & {\n variant?: TabsVariant;\n size?: TabsSize;\n}) {\n return (\n <TabsRootVisualContext.Provider value={{ variant, size }}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-variant={variant}\n data-size={size}\n className={cn(\"flex min-w-0 flex-col gap-2\", className)}\n {...props}\n />\n </TabsRootVisualContext.Provider>\n );\n}\n\nfunction TabsList({\n className,\n variant,\n size,\n children,\n ref: externalRef,\n onScroll,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> & {\n variant?: TabsVariant;\n size?: TabsSize;\n}) {\n const rootVisuals = React.useContext(TabsRootVisualContext);\n const resolvedVariant = variant ?? rootVisuals.variant;\n const resolvedSize = size ?? rootVisuals.size;\n const [scrollPosition, scrollRailRef, updateScrollPosition] =\n useHorizontalScrollRail<HTMLDivElement>(externalRef);\n\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n data-scroll-position={\n resolvedVariant === \"underline\" ? scrollPosition : undefined\n }\n ref={scrollRailRef}\n onScroll={(event) => {\n updateScrollPosition();\n onScroll?.(event);\n }}\n className={cn(\n \"text-muted-foreground\",\n resolvedVariant === \"underline\" && tabRailClasses,\n resolvedVariant === \"underline\" &&\n (resolvedSize === \"compact\"\n ? \"h-[var(--ds-tab-rail-height-compact)]\"\n : \"h-[var(--ds-tab-rail-height)]\"),\n resolvedVariant === \"segmented\" &&\n \"inline-flex h-[var(--ds-control-height)] items-center gap-1 self-start rounded-md bg-surface-muted p-1\",\n className,\n )}\n {...props}\n >\n <TabsListVisualContext.Provider\n value={{ variant: resolvedVariant, size: resolvedSize }}\n >\n {children}\n </TabsListVisualContext.Provider>\n </TabsPrimitive.List>\n );\n}\n\nfunction TabsTrigger({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger> & {\n variant?: TabsVariant;\n size?: TabsSize;\n}) {\n const listVisuals = React.useContext(TabsListVisualContext);\n const resolvedVariant = variant ?? listVisuals.variant;\n const resolvedSize = size ?? listVisuals.size;\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n data-variant={resolvedVariant}\n data-size={resolvedSize}\n className={cn(\n \"disabled:pointer-events-none disabled:opacity-50\",\n resolvedVariant === \"underline\" &&\n cn(\n navigationTabClasses,\n \"data-[state=active]:bg-selection-background data-[state=active]:font-semibold data-[state=active]:text-selection-foreground data-[state=active]:after:bg-selection-indicator\",\n ),\n resolvedVariant === \"segmented\" &&\n \"inline-flex h-full items-center justify-center gap-2 whitespace-nowrap rounded-[calc(var(--ds-radius-control)-2px)] px-3 text-sm font-medium text-muted-foreground outline-none transition-[background-color,color,box-shadow] hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring/60 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationTabs({\n className,\n ...props\n}: React.ComponentProps<\"nav\">) {\n return (\n <nav\n data-slot=\"navigation-tabs\"\n className={cn(\"min-w-0\", className)}\n {...props}\n />\n );\n}\n\nfunction NavigationTabsList({\n className,\n ref: externalRef,\n onScroll,\n ...props\n}: React.ComponentProps<\"div\">) {\n const [scrollPosition, scrollRailRef, updateScrollPosition] =\n useHorizontalScrollRail<HTMLDivElement>(externalRef);\n\n return (\n <div\n data-slot=\"navigation-tabs-list\"\n data-scroll-position={scrollPosition}\n ref={scrollRailRef}\n onScroll={(event) => {\n updateScrollPosition();\n onScroll?.(event);\n }}\n className={cn(\n tabRailClasses,\n \"h-[var(--ds-tab-rail-height)]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationTab({\n className,\n active = false,\n asChild = false,\n ref: externalRef,\n ...props\n}: React.ComponentProps<\"a\"> & {\n active?: boolean;\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n const internalRef = React.useRef<HTMLAnchorElement | null>(null);\n const ref = React.useCallback(\n (node: HTMLAnchorElement | null) => {\n internalRef.current = node;\n assignRef(externalRef, node);\n },\n [externalRef],\n );\n\n React.useEffect(() => {\n if (!active) return;\n internalRef.current?.scrollIntoView({\n behavior: \"auto\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n }, [active]);\n\n return (\n <Comp\n {...props}\n data-slot=\"navigation-tab\"\n data-active={active ? \"true\" : \"false\"}\n aria-current={active ? \"page\" : undefined}\n ref={ref}\n className={cn(\n navigationTabClasses,\n className,\n )}\n />\n );\n}\n\nexport {\n NavigationTab,\n NavigationTabs,\n NavigationTabsList,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n};\nexport type { TabsSize, TabsVariant };\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\"flex flex-col gap-5 rounded-lg border border-border-default bg-card py-[var(--ds-surface-padding)] text-card-foreground shadow-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"card-header\" className={cn(\"grid auto-rows-min gap-1.5 px-[var(--ds-surface-padding)]\", className)} {...props} />;\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"card-title\" className={cn(\"font-semibold leading-none\", className)} {...props} />;\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"card-description\" className={cn(\"text-sm text-muted-foreground\", className)} {...props} />;\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"card-content\" className={cn(\"px-[var(--ds-surface-padding)]\", className)} {...props} />;\n}\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle\n};\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-surface-muted\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Trigger>) {\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Content>) {\n return (\n <CollapsiblePrimitive.Content\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronRight } from \"lucide-react\";\n\nimport { cn } from \"./utils\";\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger>) {\n return <DropdownMenuPrimitive.SubTrigger data-slot=\"dropdown-menu-sub-trigger\" className={cn(\"focus:bg-surface-muted flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-[length:var(--ds-menu-item-size)] outline-hidden\", className)} {...props}>{children}<ChevronRight className=\"ml-auto size-4 text-muted-foreground\" /></DropdownMenuPrimitive.SubTrigger>;\n}\n\nfunction DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return <DropdownMenuPrimitive.Portal><DropdownMenuPrimitive.SubContent data-slot=\"dropdown-menu-sub-content\" className={cn(\"z-50 min-w-56 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-[var(--ds-shadow-floating)]\", className)} {...props} /></DropdownMenuPrimitive.Portal>;\n}\n\nfunction DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\"z-50 min-w-40 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-[var(--ds-shadow-floating)]\", className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\"focus:bg-surface-muted focus:text-foreground data-[variant=destructive]:text-danger-foreground data-[variant=destructive]:focus:bg-danger-background relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-[length:var(--ds-menu-item-size)] outline-hidden transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset=true]:pl-8\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return <DropdownMenuPrimitive.Label data-slot=\"dropdown-menu-label\" data-inset={inset} className={cn(\"px-2 py-1.5 text-[length:var(--ds-menu-label-size)] font-medium data-[inset=true]:pl-8\", className)} {...props} />;\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return <DropdownMenuPrimitive.Separator data-slot=\"dropdown-menu-separator\" className={cn(\"-mx-1 my-1 h-px bg-border\", className)} {...props} />;\n}\n\nexport { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };\n"],"mappings":"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","names":["jsx","jsx","CheckIcon","jsx","CheckIcon","jsx","jsx","Separator","jsx","jsxs","jsx","jsxs","DialogPrimitive","XIcon","jsx","jsxs","XIcon","Slot","jsx","Slot","jsx","jsx","jsx","jsx","jsxs"]}
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
DropdownMenuItem,
|
|
26
26
|
DropdownMenuLabel,
|
|
27
27
|
DropdownMenuTrigger,
|
|
28
|
+
Input,
|
|
28
29
|
Select,
|
|
29
30
|
SelectContent,
|
|
30
31
|
SelectItem,
|
|
@@ -51,7 +52,7 @@ import {
|
|
|
51
52
|
TooltipContent,
|
|
52
53
|
TooltipProvider,
|
|
53
54
|
TooltipTrigger
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-HLND6FZS.js";
|
|
55
56
|
import {
|
|
56
57
|
cn
|
|
57
58
|
} from "./chunk-JU5DQXFC.js";
|
|
@@ -366,7 +367,7 @@ function DetailBackLink({ label, className, ...props }) {
|
|
|
366
367
|
// src/patterns/app-shell.tsx
|
|
367
368
|
import * as React2 from "react";
|
|
368
369
|
import { Slot } from "@radix-ui/react-slot";
|
|
369
|
-
import { PanelLeftIcon } from "lucide-react";
|
|
370
|
+
import { PanelLeftIcon, Search, X } from "lucide-react";
|
|
370
371
|
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
371
372
|
var SIDEBAR_COOKIE_NAME = "conscia_sidebar_state";
|
|
372
373
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
|
|
@@ -504,7 +505,7 @@ function AppShell({
|
|
|
504
505
|
suppressHydrationWarning: true,
|
|
505
506
|
className: cn(
|
|
506
507
|
"group/shell min-h-svh bg-canvas text-foreground",
|
|
507
|
-
"[--ds-app-sidebar-width:
|
|
508
|
+
"[--ds-app-sidebar-width:var(--ds-sidebar-width)] [--ds-app-sidebar-width-mobile:var(--ds-sidebar-width-mobile)] data-[sidebar-state=collapsed]:[--ds-app-sidebar-width:3.5rem]",
|
|
508
509
|
className
|
|
509
510
|
),
|
|
510
511
|
style,
|
|
@@ -515,6 +516,7 @@ function AppShell({
|
|
|
515
516
|
}
|
|
516
517
|
function AppSidebar({
|
|
517
518
|
side = "left",
|
|
519
|
+
variant = "dark",
|
|
518
520
|
className,
|
|
519
521
|
children,
|
|
520
522
|
title = "Application navigation",
|
|
@@ -530,7 +532,8 @@ function AppSidebar({
|
|
|
530
532
|
SheetContent,
|
|
531
533
|
{
|
|
532
534
|
side,
|
|
533
|
-
|
|
535
|
+
"data-sidebar-variant": variant,
|
|
536
|
+
className: "w-[var(--ds-sidebar-width-mobile)] border-sidebar-border bg-sidebar-canvas p-0 text-sidebar-primary-text [&>[data-slot=sheet-close]]:right-3 [&>[data-slot=sheet-close]]:top-3 [&>[data-slot=sheet-close]]:text-sidebar-secondary-text [&>[data-slot=sheet-close]]:hover:text-sidebar-primary-text",
|
|
534
537
|
children: [
|
|
535
538
|
/* @__PURE__ */ jsxs4(SheetHeader, { className: "sr-only", children: [
|
|
536
539
|
/* @__PURE__ */ jsx5(SheetTitle, { children: title }),
|
|
@@ -545,8 +548,9 @@ function AppSidebar({
|
|
|
545
548
|
{
|
|
546
549
|
"data-slot": "app-sidebar",
|
|
547
550
|
"data-side": side,
|
|
551
|
+
"data-sidebar-variant": variant,
|
|
548
552
|
className: cn(
|
|
549
|
-
"fixed inset-y-0 z-20 hidden w-[var(--ds-app-sidebar-width)] shrink-0 flex-col border-sidebar-border bg-sidebar text-sidebar-
|
|
553
|
+
"fixed inset-y-0 z-20 hidden w-[var(--ds-app-sidebar-width)] shrink-0 flex-col border-sidebar-border bg-sidebar-canvas text-sidebar-primary-text transition-[width] duration-200 ease-linear lg:flex",
|
|
550
554
|
side === "left" ? "left-0 border-r" : "right-0 border-l",
|
|
551
555
|
"group-data-[sidebar-state=collapsed]/shell:w-[var(--ds-app-sidebar-width)]",
|
|
552
556
|
className
|
|
@@ -566,7 +570,7 @@ function AppSidebarHeader({
|
|
|
566
570
|
{
|
|
567
571
|
"data-slot": "app-sidebar-header",
|
|
568
572
|
className: cn(
|
|
569
|
-
"flex min-h-
|
|
573
|
+
"flex min-h-[var(--ds-topbar-height)] min-w-0 shrink-0 items-center overflow-hidden border-b border-sidebar-border bg-sidebar-header px-3",
|
|
570
574
|
className
|
|
571
575
|
),
|
|
572
576
|
...props
|
|
@@ -582,7 +586,7 @@ function AppSidebarContent({
|
|
|
582
586
|
{
|
|
583
587
|
"data-slot": "app-sidebar-content",
|
|
584
588
|
className: cn(
|
|
585
|
-
"flex min-h-0 flex-1 flex-col gap-[var(--ds-
|
|
589
|
+
"flex min-h-0 min-w-0 flex-1 flex-col gap-[var(--ds-sidebar-group-gap)] overflow-x-hidden overflow-y-auto bg-sidebar-content px-[var(--ds-sidebar-content-padding-x)] py-[var(--ds-sidebar-content-padding-y)]",
|
|
586
590
|
className
|
|
587
591
|
),
|
|
588
592
|
...props
|
|
@@ -598,7 +602,7 @@ function AppSidebarFooter({
|
|
|
598
602
|
{
|
|
599
603
|
"data-slot": "app-sidebar-footer",
|
|
600
604
|
className: cn(
|
|
601
|
-
"mt-auto flex shrink-0 flex-col gap-2 border-t border-sidebar-border p-
|
|
605
|
+
"mt-auto flex min-w-0 shrink-0 flex-col gap-2 overflow-hidden border-t border-sidebar-border bg-sidebar-footer p-[var(--ds-sidebar-footer-padding)]",
|
|
602
606
|
className
|
|
603
607
|
),
|
|
604
608
|
...props
|
|
@@ -617,10 +621,10 @@ function ProductIdentity({
|
|
|
617
621
|
"data-slot": "product-identity",
|
|
618
622
|
className: cn("flex min-w-0 items-center gap-2", className),
|
|
619
623
|
children: [
|
|
620
|
-
icon ? /* @__PURE__ */ jsx5("div", { className: "flex size-7 shrink-0 items-center justify-center rounded-[var(--ds-radius-control)] bg-sidebar-
|
|
624
|
+
icon ? /* @__PURE__ */ jsx5("div", { className: "flex size-7 shrink-0 items-center justify-center rounded-[var(--ds-radius-control)] bg-sidebar-hover text-sidebar-icon", children: icon }) : null,
|
|
621
625
|
/* @__PURE__ */ jsxs4("div", { className: "min-w-0 group-data-[sidebar-state=collapsed]/shell:hidden", children: [
|
|
622
|
-
/* @__PURE__ */ jsx5("div", { className: "truncate text-sm font-semibold leading-5 text-sidebar-
|
|
623
|
-
description ? /* @__PURE__ */ jsx5("div", { className: "truncate text-[var(--ds-metadata)] leading-4 text-sidebar-
|
|
626
|
+
/* @__PURE__ */ jsx5("div", { className: "truncate text-sm font-semibold leading-5 text-sidebar-primary-text", children: label }),
|
|
627
|
+
description ? /* @__PURE__ */ jsx5("div", { className: "truncate text-[var(--ds-metadata)] leading-4 text-sidebar-metadata-text", children: description }) : null
|
|
624
628
|
] })
|
|
625
629
|
]
|
|
626
630
|
}
|
|
@@ -641,6 +645,7 @@ function SidebarSeparator({
|
|
|
641
645
|
}
|
|
642
646
|
function NavigationGroup({
|
|
643
647
|
label,
|
|
648
|
+
count,
|
|
644
649
|
children,
|
|
645
650
|
className
|
|
646
651
|
}) {
|
|
@@ -650,7 +655,17 @@ function NavigationGroup({
|
|
|
650
655
|
"data-slot": "navigation-group",
|
|
651
656
|
className: cn("flex min-w-0 flex-col gap-1", className),
|
|
652
657
|
children: [
|
|
653
|
-
label ? /* @__PURE__ */
|
|
658
|
+
label ? /* @__PURE__ */ jsxs4(
|
|
659
|
+
"div",
|
|
660
|
+
{
|
|
661
|
+
"data-slot": "navigation-group-label",
|
|
662
|
+
className: "flex min-h-6 items-center gap-2 px-2 pb-1 pt-2 text-[length:var(--ds-sidebar-group-label-size)] font-semibold uppercase leading-5 tracking-[0.08em] text-sidebar-group-label group-data-[sidebar-state=collapsed]/shell:hidden",
|
|
663
|
+
children: [
|
|
664
|
+
label,
|
|
665
|
+
count !== void 0 ? /* @__PURE__ */ jsx5("span", { className: "ml-auto shrink-0 text-[length:var(--ds-metadata)] font-medium normal-case tracking-normal text-sidebar-group-count", children: count }) : null
|
|
666
|
+
]
|
|
667
|
+
}
|
|
668
|
+
) : null,
|
|
654
669
|
/* @__PURE__ */ jsx5("div", { className: "flex min-w-0 flex-col gap-1", children })
|
|
655
670
|
]
|
|
656
671
|
}
|
|
@@ -658,13 +673,13 @@ function NavigationGroup({
|
|
|
658
673
|
}
|
|
659
674
|
function navigationItemClasses(active) {
|
|
660
675
|
return cn(
|
|
661
|
-
"flex h-
|
|
662
|
-
"hover:bg-sidebar-
|
|
663
|
-
"focus-visible:ring-[3px] focus-visible:ring-ring
|
|
664
|
-
"disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50",
|
|
676
|
+
"flex min-h-[var(--ds-sidebar-item-height-touch)] min-w-0 cursor-pointer items-center gap-2 rounded-[var(--ds-radius-control)] px-2 text-sm font-medium text-sidebar-secondary-text outline-none transition-colors duration-150 lg:h-[var(--ds-sidebar-item-height)] lg:min-h-0",
|
|
677
|
+
"hover:bg-sidebar-hover hover:text-sidebar-primary-text",
|
|
678
|
+
"focus-visible:ring-[3px] focus-visible:ring-sidebar-focus-ring",
|
|
679
|
+
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50",
|
|
665
680
|
"group-data-[sidebar-state=collapsed]/shell:justify-center group-data-[sidebar-state=collapsed]/shell:px-0",
|
|
666
|
-
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75]",
|
|
667
|
-
active && "bg-sidebar-active text-sidebar-active-foreground shadow-[
|
|
681
|
+
"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75] [&>svg]:text-sidebar-icon",
|
|
682
|
+
active && "bg-sidebar-active text-sidebar-active-foreground shadow-[inset_3px_0_0_var(--sidebar-active-indicator)] hover:bg-sidebar-active hover:text-sidebar-active-foreground [&>svg]:text-sidebar-active-foreground"
|
|
668
683
|
);
|
|
669
684
|
}
|
|
670
685
|
function NavigationItem({
|
|
@@ -718,10 +733,10 @@ function NavigationSubItem({
|
|
|
718
733
|
"data-slot": "navigation-sub-item",
|
|
719
734
|
"data-active": active ? "true" : void 0,
|
|
720
735
|
className: cn(
|
|
721
|
-
"flex h-
|
|
722
|
-
"hover:bg-sidebar-
|
|
723
|
-
"group-data-[sidebar-state=collapsed]/shell:hidden [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75]",
|
|
724
|
-
active && "bg-sidebar-active text-sidebar-active-foreground shadow-[
|
|
736
|
+
"flex min-h-[var(--ds-sidebar-item-height-touch)] min-w-0 cursor-pointer items-center gap-2 rounded-[var(--ds-radius-control)] px-2 text-sm text-sidebar-secondary-text outline-none transition-colors duration-150 lg:h-[calc(var(--ds-sidebar-item-height)-0.25rem)] lg:min-h-0",
|
|
737
|
+
"hover:bg-sidebar-hover hover:text-sidebar-primary-text focus-visible:ring-[3px] focus-visible:ring-sidebar-focus-ring",
|
|
738
|
+
"group-data-[sidebar-state=collapsed]/shell:hidden [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:stroke-[1.75] [&>svg]:text-sidebar-icon",
|
|
739
|
+
active && "bg-sidebar-active text-sidebar-active-foreground shadow-[inset_3px_0_0_var(--sidebar-active-indicator)] hover:bg-sidebar-active hover:text-sidebar-active-foreground [&>svg]:text-sidebar-active-foreground",
|
|
725
740
|
className
|
|
726
741
|
),
|
|
727
742
|
...props
|
|
@@ -749,7 +764,7 @@ function SidebarTrigger({
|
|
|
749
764
|
onClick,
|
|
750
765
|
...props
|
|
751
766
|
}) {
|
|
752
|
-
const { toggleSidebar } = useAppShell();
|
|
767
|
+
const { isMobile, mobileOpen, sidebarOpen, toggleSidebar } = useAppShell();
|
|
753
768
|
return /* @__PURE__ */ jsxs4(
|
|
754
769
|
Button,
|
|
755
770
|
{
|
|
@@ -757,7 +772,11 @@ function SidebarTrigger({
|
|
|
757
772
|
type: "button",
|
|
758
773
|
variant: "ghost",
|
|
759
774
|
size: "icon",
|
|
760
|
-
className: cn(
|
|
775
|
+
className: cn(
|
|
776
|
+
"shrink-0 cursor-pointer text-muted-foreground hover:bg-surface-muted hover:text-foreground focus-visible:ring-ring",
|
|
777
|
+
className
|
|
778
|
+
),
|
|
779
|
+
"aria-expanded": isMobile ? mobileOpen : sidebarOpen,
|
|
761
780
|
onClick: (event) => {
|
|
762
781
|
onClick?.(event);
|
|
763
782
|
toggleSidebar();
|
|
@@ -770,6 +789,104 @@ function SidebarTrigger({
|
|
|
770
789
|
}
|
|
771
790
|
);
|
|
772
791
|
}
|
|
792
|
+
function SidebarSearch({
|
|
793
|
+
expanded: expandedProp,
|
|
794
|
+
defaultExpanded = false,
|
|
795
|
+
onExpandedChange,
|
|
796
|
+
triggerLabel = "Search navigation",
|
|
797
|
+
shortcut,
|
|
798
|
+
className,
|
|
799
|
+
onKeyDown,
|
|
800
|
+
...props
|
|
801
|
+
}) {
|
|
802
|
+
const [expandedState, setExpandedState] = React2.useState(defaultExpanded);
|
|
803
|
+
const expanded = expandedProp ?? expandedState;
|
|
804
|
+
const inputRef = React2.useRef(null);
|
|
805
|
+
const triggerRef = React2.useRef(null);
|
|
806
|
+
const mountedRef = React2.useRef(false);
|
|
807
|
+
const setExpanded = React2.useCallback(
|
|
808
|
+
(nextExpanded) => {
|
|
809
|
+
if (expandedProp === void 0) {
|
|
810
|
+
setExpandedState(nextExpanded);
|
|
811
|
+
}
|
|
812
|
+
onExpandedChange?.(nextExpanded);
|
|
813
|
+
},
|
|
814
|
+
[expandedProp, onExpandedChange]
|
|
815
|
+
);
|
|
816
|
+
React2.useEffect(() => {
|
|
817
|
+
if (expanded) {
|
|
818
|
+
queueMicrotask(() => inputRef.current?.focus());
|
|
819
|
+
} else if (mountedRef.current) {
|
|
820
|
+
queueMicrotask(() => triggerRef.current?.focus());
|
|
821
|
+
}
|
|
822
|
+
mountedRef.current = true;
|
|
823
|
+
}, [expanded]);
|
|
824
|
+
if (!expanded) {
|
|
825
|
+
return /* @__PURE__ */ jsxs4(
|
|
826
|
+
"button",
|
|
827
|
+
{
|
|
828
|
+
ref: triggerRef,
|
|
829
|
+
type: "button",
|
|
830
|
+
"data-slot": "sidebar-search-trigger",
|
|
831
|
+
className: cn(
|
|
832
|
+
"flex min-h-[var(--ds-sidebar-item-height-touch)] w-full cursor-pointer items-center gap-2 rounded-[var(--ds-radius-control)] px-2 text-left text-sm font-medium text-sidebar-secondary-text outline-none transition-colors hover:bg-sidebar-hover hover:text-sidebar-primary-text focus-visible:ring-[3px] focus-visible:ring-sidebar-focus-ring lg:min-h-[var(--ds-sidebar-item-height)]",
|
|
833
|
+
"group-data-[sidebar-state=collapsed]/shell:justify-center group-data-[sidebar-state=collapsed]/shell:px-0",
|
|
834
|
+
className
|
|
835
|
+
),
|
|
836
|
+
onClick: () => setExpanded(true),
|
|
837
|
+
"aria-label": triggerLabel,
|
|
838
|
+
children: [
|
|
839
|
+
/* @__PURE__ */ jsx5(Search, { className: "size-4 shrink-0 text-sidebar-icon" }),
|
|
840
|
+
/* @__PURE__ */ jsx5("span", { className: "truncate group-data-[sidebar-state=collapsed]/shell:hidden", children: triggerLabel }),
|
|
841
|
+
shortcut ? /* @__PURE__ */ jsx5("kbd", { className: "ml-auto rounded border border-sidebar-border px-1.5 py-0.5 text-[length:var(--ds-metadata)] font-medium text-sidebar-metadata-text group-data-[sidebar-state=collapsed]/shell:hidden", children: shortcut }) : null
|
|
842
|
+
]
|
|
843
|
+
}
|
|
844
|
+
);
|
|
845
|
+
}
|
|
846
|
+
return /* @__PURE__ */ jsxs4(
|
|
847
|
+
"div",
|
|
848
|
+
{
|
|
849
|
+
"data-slot": "sidebar-search",
|
|
850
|
+
"data-expanded": "true",
|
|
851
|
+
className: cn(
|
|
852
|
+
"flex min-h-[var(--ds-sidebar-item-height-touch)] items-center gap-2 rounded-[var(--ds-radius-control)] border border-sidebar-border bg-sidebar-search px-2 text-sidebar-primary-text shadow-[var(--ds-shadow-raised)] lg:min-h-[var(--ds-sidebar-item-height)]",
|
|
853
|
+
className
|
|
854
|
+
),
|
|
855
|
+
children: [
|
|
856
|
+
/* @__PURE__ */ jsx5(Search, { className: "size-4 shrink-0 text-sidebar-icon" }),
|
|
857
|
+
/* @__PURE__ */ jsx5(
|
|
858
|
+
Input,
|
|
859
|
+
{
|
|
860
|
+
ref: inputRef,
|
|
861
|
+
type: "search",
|
|
862
|
+
className: "h-auto min-w-0 flex-1 border-0 bg-transparent px-0 py-1 text-sm shadow-none focus-visible:border-0 focus-visible:ring-0",
|
|
863
|
+
onKeyDown: (event) => {
|
|
864
|
+
if (event.key === "Escape") {
|
|
865
|
+
event.preventDefault();
|
|
866
|
+
setExpanded(false);
|
|
867
|
+
}
|
|
868
|
+
onKeyDown?.(event);
|
|
869
|
+
},
|
|
870
|
+
...props
|
|
871
|
+
}
|
|
872
|
+
),
|
|
873
|
+
/* @__PURE__ */ jsx5(
|
|
874
|
+
"button",
|
|
875
|
+
{
|
|
876
|
+
type: "button",
|
|
877
|
+
"data-slot": "sidebar-search-close",
|
|
878
|
+
className: "grid size-7 shrink-0 cursor-pointer place-items-center rounded-[var(--ds-radius-control)] text-sidebar-secondary-text outline-none transition-colors hover:bg-sidebar-hover hover:text-sidebar-primary-text focus-visible:ring-2 focus-visible:ring-sidebar-focus-ring",
|
|
879
|
+
onClick: () => {
|
|
880
|
+
setExpanded(false);
|
|
881
|
+
},
|
|
882
|
+
"aria-label": "Close search",
|
|
883
|
+
children: /* @__PURE__ */ jsx5(X, { className: "size-4" })
|
|
884
|
+
}
|
|
885
|
+
)
|
|
886
|
+
]
|
|
887
|
+
}
|
|
888
|
+
);
|
|
889
|
+
}
|
|
773
890
|
function MainRegion({
|
|
774
891
|
className,
|
|
775
892
|
...props
|
|
@@ -796,7 +913,7 @@ function TopBar({
|
|
|
796
913
|
{
|
|
797
914
|
"data-slot": "top-bar",
|
|
798
915
|
className: cn(
|
|
799
|
-
"sticky top-0 z-10 flex min-h-
|
|
916
|
+
"sticky top-0 z-10 flex min-h-[var(--ds-topbar-height)] shrink-0 items-center justify-between gap-3 border-b border-border-subtle bg-background/96 px-3 backdrop-blur md:px-4",
|
|
800
917
|
"supports-[backdrop-filter]:bg-background/88",
|
|
801
918
|
className
|
|
802
919
|
),
|
|
@@ -1727,6 +1844,7 @@ export {
|
|
|
1727
1844
|
NavigationSubItem,
|
|
1728
1845
|
NavigationSubList,
|
|
1729
1846
|
SidebarTrigger,
|
|
1847
|
+
SidebarSearch,
|
|
1730
1848
|
MainRegion,
|
|
1731
1849
|
TopBar,
|
|
1732
1850
|
PageFrame,
|
|
@@ -1761,4 +1879,4 @@ export {
|
|
|
1761
1879
|
ErrorState,
|
|
1762
1880
|
ValueMeter
|
|
1763
1881
|
};
|
|
1764
|
-
//# sourceMappingURL=chunk-
|
|
1882
|
+
//# sourceMappingURL=chunk-TXCHAKNG.js.map
|