Introduction
Installation
Next.jsViteLaravelReact RouterRemixAstroTanStack StartTanStack RouterManual InstallationMCP
All componentsTheme
FieldFormInputText FieldTextareaSearch FieldInput OTPNumber FieldNumber FormatSliderCheckboxSwitchRadioSelectCombo BoxList BoxChoice BoxMulti SelectToken FieldNewTag FieldTag GroupCalendarDate FieldDate PickerDate Range PickerRange CalendarTime FieldColor PickerColor FieldColor AreaColor SliderColor SwatchColor Swatch PickerColor ThumbColor WheelDrop ZoneFile Trigger
ButtonButton GroupToggleToggle GroupPreskok Auth Button
EditorHeadingLinkTextKeyboard
CardContainerGrid ListResizableTableTreeSeparatorDescription ListScroll AreaShow MoreToolbar
BreadcrumbsNavbarPaginationTabsSidebar
DialogModalDrawerPopoverPreview TriggerNewSheetTooltipContext MenuDropdownCommandCommand MenuDisclosureMenu
ToastProgress BarProgress CircleMeterLoaderSkeletonNoteBadge
Chart (helpers)Area ChartBar ChartLine ChartPie ChartExperimental ChartsNewExperimental Radial ChartNewExperimental Radar ChartNewBar ListTracker
Async ImageAvatarCarouselPreskok Icon
Forms

File Trigger

Select files, folders, or capture from camera with consistent button semantics.

View as MarkdownAsk ChatGPT

Installation

npx shadcn@latest add @preskok/file-trigger

Usage

import { FileTrigger } from "@/components/ui/preskok-ui/file-trigger"

export function Example() {
  return <FileTrigger onSelect={() => {}}>Upload</FileTrigger>
}

Props

  • acceptDirectory: boolean — Allow selecting a folder.
  • allowsMultiple: boolean — Select multiple files.
  • defaultCamera: boolean — Open camera when supported.
  • isPending: boolean — Shows a spinner and disables interactions.
  • Inherits all react-aria-components FileTrigger props.

Drop Zone

Drag-and-drop upload target with visual feedback.

Button

Customizable buttons with multiple variants, sizes, and interactive states.

On this page

Installation
Usage
Props

No files selected