date-picker-natural-language.tsx — ui Source File
Architecture documentation for date-picker-natural-language.tsx, a tsx file in the ui codebase. 7 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 7b53f954_4b00_fb0d_3e01_5f3373dd4bee["date-picker-natural-language.tsx"] 1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2 4bae96d1_8974_035f_9042_62ec299030b9["calendar"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> 4bae96d1_8974_035f_9042_62ec299030b9 b5f68436_cf6b_fba3_fb29_abf27fd13442["field"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> b5f68436_cf6b_fba3_fb29_abf27fd13442 d4ae1ebd_39ec_2b17_5c84_fbca1aec26c7["input-group"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> d4ae1ebd_39ec_2b17_5c84_fbca1aec26c7 97b1d83c_62f2_f7a6_4edb_030a627d9a9d["popover"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> 97b1d83c_62f2_f7a6_4edb_030a627d9a9d bac616a4_a8b3_e9e6_4624_ced1fc9bc31d["chrono-node"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> bac616a4_a8b3_e9e6_4624_ced1fc9bc31d d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"] 7b53f954_4b00_fb0d_3e01_5f3373dd4bee --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3 style 7b53f954_4b00_fb0d_3e01_5f3373dd4bee fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"use client"
import * as React from "react"
import { Calendar } from "@/examples/radix/ui/calendar"
import { Field, FieldLabel } from "@/examples/radix/ui/field"
import {
InputGroup,
InputGroupAddon,
InputGroupButton,
InputGroupInput,
} from "@/examples/radix/ui/input-group"
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/examples/radix/ui/popover"
import { parseDate } from "chrono-node"
import { CalendarIcon } from "lucide-react"
function formatDate(date: Date | undefined) {
if (!date) {
return ""
}
return date.toLocaleDateString("en-US", {
day: "2-digit",
month: "long",
year: "numeric",
})
}
export function DatePickerNaturalLanguage() {
const [open, setOpen] = React.useState(false)
const [value, setValue] = React.useState("In 2 days")
const [date, setDate] = React.useState<Date | undefined>(
parseDate(value) || undefined
)
return (
<Field className="mx-auto max-w-xs">
<FieldLabel htmlFor="date-optional">Schedule Date</FieldLabel>
<InputGroup>
<InputGroupInput
id="date-optional"
value={value}
placeholder="Tomorrow or next week"
onChange={(e) => {
setValue(e.target.value)
const date = parseDate(e.target.value)
if (date) {
setDate(date)
}
}}
onKeyDown={(e) => {
if (e.key === "ArrowDown") {
e.preventDefault()
setOpen(true)
}
}}
/>
<InputGroupAddon align="inline-end">
<Popover open={open} onOpenChange={setOpen}>
<PopoverTrigger asChild>
<InputGroupButton
id="date-picker"
variant="ghost"
size="icon-xs"
aria-label="Select date"
>
<CalendarIcon />
<span className="sr-only">Select date</span>
</InputGroupButton>
</PopoverTrigger>
<PopoverContent
className="w-auto overflow-hidden p-0"
align="end"
sideOffset={8}
>
<Calendar
mode="single"
selected={date}
captionLayout="dropdown"
defaultMonth={date}
onSelect={(date) => {
setDate(date)
setValue(formatDate(date))
setOpen(false)
}}
/>
</PopoverContent>
</Popover>
</InputGroupAddon>
</InputGroup>
<div className="text-muted-foreground px-1 text-sm">
Your post will be published on{" "}
<span className="font-medium">{formatDate(date)}</span>.
</div>
</Field>
)
}
Domain
Subdomains
Functions
Dependencies
- calendar
- chrono-node
- field
- input-group
- lucide-react
- popover
- react
Source
Frequently Asked Questions
What does date-picker-natural-language.tsx do?
date-picker-natural-language.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, SearchAPI subdomain.
What functions are defined in date-picker-natural-language.tsx?
date-picker-natural-language.tsx defines 2 function(s): DatePickerNaturalLanguage, formatDate.
What does date-picker-natural-language.tsx depend on?
date-picker-natural-language.tsx imports 7 module(s): calendar, chrono-node, field, input-group, lucide-react, popover, react.
Where is date-picker-natural-language.tsx in the architecture?
date-picker-natural-language.tsx is located at apps/v4/examples/radix/date-picker-natural-language.tsx (domain: DocumentationAtlas, subdomain: SearchAPI, directory: apps/v4/examples/radix).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free