diff --git a/apps/v4/components/code-collapsible-wrapper.tsx b/apps/v4/components/code-collapsible-wrapper.tsx
index d9be9e0cb1..a6fd46259b 100644
--- a/apps/v4/components/code-collapsible-wrapper.tsx
+++ b/apps/v4/components/code-collapsible-wrapper.tsx
@@ -39,7 +39,7 @@ export function CodeCollapsibleWrapper({
{children}
diff --git a/apps/v4/components/copy-button.tsx b/apps/v4/components/copy-button.tsx
index f5b7943062..0bf6a0c16d 100644
--- a/apps/v4/components/copy-button.tsx
+++ b/apps/v4/components/copy-button.tsx
@@ -29,10 +29,11 @@ export function CopyButton({
const [hasCopied, setHasCopied] = React.useState(false)
React.useEffect(() => {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }, [])
+ if (hasCopied) {
+ const timer = setTimeout(() => setHasCopied(false), 2000)
+ return () => clearTimeout(timer)
+ }
+ }, [hasCopied])
return (
)
@@ -232,14 +224,7 @@ function CarouselNext({
onClick={scrollNext}
{...props}
>
-
+
Next slide
)
diff --git a/apps/v4/examples/base/ui-rtl/checkbox.tsx b/apps/v4/examples/base/ui-rtl/checkbox.tsx
index 4b86a4c7b8..06464fd654 100644
--- a/apps/v4/examples/base/ui-rtl/checkbox.tsx
+++ b/apps/v4/examples/base/ui-rtl/checkbox.tsx
@@ -2,8 +2,7 @@
import { cn } from "@/examples/base/lib/utils"
import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon } from "lucide-react"
function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
return (
@@ -19,13 +18,7 @@ function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
data-slot="checkbox-indicator"
className="grid place-content-center text-current transition-none [&>svg]:size-3.5"
>
-
+
)
diff --git a/apps/v4/examples/base/ui-rtl/combobox.tsx b/apps/v4/examples/base/ui-rtl/combobox.tsx
index d7066f2581..c84369fea0 100644
--- a/apps/v4/examples/base/ui-rtl/combobox.tsx
+++ b/apps/v4/examples/base/ui-rtl/combobox.tsx
@@ -10,8 +10,7 @@ import {
InputGroupInput,
} from "@/examples/base/ui-rtl/input-group"
import { Combobox as ComboboxPrimitive } from "@base-ui/react"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react"
const Combobox = ComboboxPrimitive.Root
@@ -31,14 +30,7 @@ function ComboboxTrigger({
{...props}
>
{children}
-
+
)
}
@@ -51,14 +43,7 @@ function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {
className={cn(className)}
{...props}
>
-
+
)
}
@@ -168,14 +153,7 @@ function ComboboxItem({
}
>
-
+
)
@@ -277,14 +255,7 @@ function ComboboxChip({
className="-ms-1 opacity-50 hover:opacity-100"
data-slot="combobox-chip-remove"
>
-
+
)}
diff --git a/apps/v4/examples/base/ui-rtl/command.tsx b/apps/v4/examples/base/ui-rtl/command.tsx
index cbf14425da..6f841444e6 100644
--- a/apps/v4/examples/base/ui-rtl/command.tsx
+++ b/apps/v4/examples/base/ui-rtl/command.tsx
@@ -11,8 +11,7 @@ import {
} from "@/examples/base/ui-rtl/dialog"
import { InputGroup, InputGroupAddon } from "@/examples/base/ui-rtl/input-group"
import { Command as CommandPrimitive } from "cmdk"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, SearchIcon } from "lucide-react"
function Command({
className,
@@ -79,14 +78,7 @@ function CommandInput({
{...props}
/>
-
+
@@ -166,14 +158,7 @@ function CommandItem({
{...props}
>
{children}
-
+
)
}
diff --git a/apps/v4/examples/base/ui-rtl/context-menu.tsx b/apps/v4/examples/base/ui-rtl/context-menu.tsx
index b7025e9282..cb5e590224 100644
--- a/apps/v4/examples/base/ui-rtl/context-menu.tsx
+++ b/apps/v4/examples/base/ui-rtl/context-menu.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronRightIcon } from "lucide-react"
function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
return
@@ -137,14 +136,7 @@ function ContextMenuSubTrigger({
{...props}
>
{children}
-
+
)
}
@@ -184,13 +176,7 @@ function ContextMenuCheckboxItem({
>
-
+
{children}
@@ -229,13 +215,7 @@ function ContextMenuRadioItem({
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui-rtl/dialog.tsx b/apps/v4/examples/base/ui-rtl/dialog.tsx
index 2c3cfe0ed0..89e0371312 100644
--- a/apps/v4/examples/base/ui-rtl/dialog.tsx
+++ b/apps/v4/examples/base/ui-rtl/dialog.tsx
@@ -4,8 +4,7 @@ import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui-rtl/button"
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { XIcon } from "lucide-react"
function Dialog({ ...props }: DialogPrimitive.Root.Props) {
return
@@ -70,13 +69,7 @@ function DialogContent({
/>
}
>
-
+
Close
)}
diff --git a/apps/v4/examples/base/ui-rtl/dropdown-menu.tsx b/apps/v4/examples/base/ui-rtl/dropdown-menu.tsx
index 9b454d9f10..0e3952c816 100644
--- a/apps/v4/examples/base/ui-rtl/dropdown-menu.tsx
+++ b/apps/v4/examples/base/ui-rtl/dropdown-menu.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronRightIcon } from "lucide-react"
function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
return
@@ -122,14 +121,7 @@ function DropdownMenuSubTrigger({
{...props}
>
{children}
-
+
)
}
@@ -183,13 +175,7 @@ function DropdownMenuCheckboxItem({
data-slot="dropdown-menu-checkbox-item-indicator"
>
-
+
{children}
@@ -229,13 +215,7 @@ function DropdownMenuRadioItem({
data-slot="dropdown-menu-radio-item-indicator"
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui-rtl/input-otp.tsx b/apps/v4/examples/base/ui-rtl/input-otp.tsx
index 7db3d2d001..b3d526ee3b 100644
--- a/apps/v4/examples/base/ui-rtl/input-otp.tsx
+++ b/apps/v4/examples/base/ui-rtl/input-otp.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { OTPInput, OTPInputContext } from "input-otp"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { MinusIcon } from "lucide-react"
function InputOTP({
className,
@@ -78,13 +77,7 @@ function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {
role="separator"
{...props}
>
-
+
)
}
diff --git a/apps/v4/examples/base/ui-rtl/menubar.tsx b/apps/v4/examples/base/ui-rtl/menubar.tsx
index af060467ae..e2f9711c71 100644
--- a/apps/v4/examples/base/ui-rtl/menubar.tsx
+++ b/apps/v4/examples/base/ui-rtl/menubar.tsx
@@ -19,8 +19,7 @@ import {
} from "@/examples/base/ui-rtl/dropdown-menu"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon } from "lucide-react"
function Menubar({ className, ...props }: MenubarPrimitive.Props) {
return (
@@ -131,13 +130,7 @@ function MenubarCheckboxItem({
>
-
+
{children}
@@ -171,13 +164,7 @@ function MenubarRadioItem({
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui-rtl/native-select.tsx b/apps/v4/examples/base/ui-rtl/native-select.tsx
index 08f3346006..1439feccf8 100644
--- a/apps/v4/examples/base/ui-rtl/native-select.tsx
+++ b/apps/v4/examples/base/ui-rtl/native-select.tsx
@@ -1,7 +1,6 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { ChevronDownIcon } from "lucide-react"
type NativeSelectProps = Omit, "size"> & {
size?: "sm" | "default"
@@ -27,12 +26,7 @@ function NativeSelect({
className="border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-8 w-full min-w-0 appearance-none rounded-lg border bg-transparent py-1 ps-2.5 pe-8 text-sm transition-colors outline-none select-none focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:ring-3 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[size=sm]:py-0.5"
{...props}
/>
-
{children}{" "}
-
diff --git a/apps/v4/examples/base/ui-rtl/pagination.tsx b/apps/v4/examples/base/ui-rtl/pagination.tsx
index 21c388b9d7..17098cc250 100644
--- a/apps/v4/examples/base/ui-rtl/pagination.tsx
+++ b/apps/v4/examples/base/ui-rtl/pagination.tsx
@@ -1,8 +1,11 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui-rtl/button"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import {
+ ChevronLeftIcon,
+ ChevronRightIcon,
+ MoreHorizontalIcon,
+} from "lucide-react"
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
return (
@@ -74,15 +77,7 @@ function PaginationPrevious({
className={cn("ps-1.5!", className)}
{...props}
>
-
+
{text}
)
@@ -101,15 +96,7 @@ function PaginationNext({
{...props}
>
{text}
-
+
)
}
@@ -128,13 +115,7 @@ function PaginationEllipsis({
)}
{...props}
>
-
+
More pages
)
diff --git a/apps/v4/examples/base/ui-rtl/radio-group.tsx b/apps/v4/examples/base/ui-rtl/radio-group.tsx
index 384a08d8e4..eaf4f321ff 100644
--- a/apps/v4/examples/base/ui-rtl/radio-group.tsx
+++ b/apps/v4/examples/base/ui-rtl/radio-group.tsx
@@ -3,8 +3,7 @@
import { cn } from "@/examples/base/lib/utils"
import { Radio as RadioPrimitive } from "@base-ui/react/radio"
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CircleIcon } from "lucide-react"
function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
return (
@@ -30,14 +29,7 @@ function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {
data-slot="radio-group-indicator"
className="group-aria-invalid/radio-group-item:text-destructive text-primary flex size-4 items-center justify-center"
>
-
+
)
diff --git a/apps/v4/examples/base/ui-rtl/select.tsx b/apps/v4/examples/base/ui-rtl/select.tsx
index acd6807fca..4a8b4ea8b4 100644
--- a/apps/v4/examples/base/ui-rtl/select.tsx
+++ b/apps/v4/examples/base/ui-rtl/select.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Select as SelectPrimitive } from "@base-ui/react/select"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
const Select = SelectPrimitive.Root
@@ -49,14 +48,7 @@ function SelectTrigger({
{children}
+
}
/>
@@ -140,14 +132,7 @@ function SelectItem({
}
>
-
+
)
@@ -179,13 +164,7 @@ function SelectScrollUpButton({
)}
{...props}
>
-
+
)
}
@@ -203,13 +182,7 @@ function SelectScrollDownButton({
)}
{...props}
>
-
+
)
}
diff --git a/apps/v4/examples/base/ui-rtl/sheet.tsx b/apps/v4/examples/base/ui-rtl/sheet.tsx
index 6fd3b2a30b..74c6ce5dc5 100644
--- a/apps/v4/examples/base/ui-rtl/sheet.tsx
+++ b/apps/v4/examples/base/ui-rtl/sheet.tsx
@@ -4,8 +4,7 @@ import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui-rtl/button"
import { Dialog as SheetPrimitive } from "@base-ui/react/dialog"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { XIcon } from "lucide-react"
function Sheet({ ...props }: SheetPrimitive.Root.Props) {
return
@@ -70,13 +69,7 @@ function SheetContent({
/>
}
>
-
+
Close
)}
diff --git a/apps/v4/examples/base/ui-rtl/sidebar.tsx b/apps/v4/examples/base/ui-rtl/sidebar.tsx
index 6d7f7b6f4a..a4215ce8a7 100644
--- a/apps/v4/examples/base/ui-rtl/sidebar.tsx
+++ b/apps/v4/examples/base/ui-rtl/sidebar.tsx
@@ -22,8 +22,7 @@ import {
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cva, type VariantProps } from "class-variance-authority"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { PanelLeftIcon } from "lucide-react"
const SIDEBAR_COOKIE_NAME = "sidebar_state"
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
@@ -271,14 +270,7 @@ function SidebarTrigger({
}}
{...props}
>
-
+
Toggle Sidebar
)
diff --git a/apps/v4/examples/base/ui-rtl/sonner.tsx b/apps/v4/examples/base/ui-rtl/sonner.tsx
index 0c2e93ea32..c7965f834e 100644
--- a/apps/v4/examples/base/ui-rtl/sonner.tsx
+++ b/apps/v4/examples/base/ui-rtl/sonner.tsx
@@ -1,10 +1,15 @@
"use client"
+import {
+ CircleCheckIcon,
+ InfoIcon,
+ Loader2Icon,
+ OctagonXIcon,
+ TriangleAlertIcon,
+} from "lucide-react"
import { useTheme } from "next-themes"
import { Toaster as Sonner, type ToasterProps } from "sonner"
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
-
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme()
@@ -13,56 +18,11 @@ const Toaster = ({ ...props }: ToasterProps) => {
theme={theme as ToasterProps["theme"]}
className="toaster group"
icons={{
- success: (
-
- ),
- info: (
-
- ),
- warning: (
-
- ),
- error: (
-
- ),
- loading: (
-
- ),
+ success: ,
+ info: ,
+ warning: ,
+ error: ,
+ loading: ,
}}
style={
{
diff --git a/apps/v4/examples/base/ui-rtl/spinner.tsx b/apps/v4/examples/base/ui-rtl/spinner.tsx
index b00045d748..12e51ef338 100644
--- a/apps/v4/examples/base/ui-rtl/spinner.tsx
+++ b/apps/v4/examples/base/ui-rtl/spinner.tsx
@@ -1,15 +1,9 @@
import { cn } from "@/examples/base/lib/utils"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { Loader2Icon } from "lucide-react"
function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
return (
-
{children}
-
-
diff --git a/apps/v4/examples/base/ui/breadcrumb.tsx b/apps/v4/examples/base/ui/breadcrumb.tsx
index ad87c85769..660ed5b1b4 100644
--- a/apps/v4/examples/base/ui/breadcrumb.tsx
+++ b/apps/v4/examples/base/ui/breadcrumb.tsx
@@ -2,8 +2,7 @@ import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
return (
@@ -85,16 +84,7 @@ function BreadcrumbSeparator({
className={cn("[&>svg]:size-3.5", className)}
{...props}
>
- {children ?? (
-
- )}
+ {children ?? }
)
}
@@ -114,13 +104,7 @@ function BreadcrumbEllipsis({
)}
{...props}
>
-
+
More
)
diff --git a/apps/v4/examples/base/ui/calendar.tsx b/apps/v4/examples/base/ui/calendar.tsx
index 356364d00c..71cb58f824 100644
--- a/apps/v4/examples/base/ui/calendar.tsx
+++ b/apps/v4/examples/base/ui/calendar.tsx
@@ -3,6 +3,11 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button, buttonVariants } from "@/examples/base/ui/button"
+import {
+ ChevronDownIcon,
+ ChevronLeftIcon,
+ ChevronRightIcon,
+} from "lucide-react"
import {
DayPicker,
getDefaultClassNames,
@@ -10,8 +15,6 @@ import {
type Locale,
} from "react-day-picker"
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
-
function Calendar({
className,
classNames,
@@ -147,12 +150,7 @@ function Calendar({
Chevron: ({ className, orientation, ...props }) => {
if (orientation === "left") {
return (
-
@@ -161,12 +159,7 @@ function Calendar({
if (orientation === "right") {
return (
-
@@ -174,15 +167,7 @@ function Calendar({
}
return (
-
+
)
},
DayButton: ({ ...props }) => (
diff --git a/apps/v4/examples/base/ui/carousel.tsx b/apps/v4/examples/base/ui/carousel.tsx
index 5255e158c5..93939d3daf 100644
--- a/apps/v4/examples/base/ui/carousel.tsx
+++ b/apps/v4/examples/base/ui/carousel.tsx
@@ -6,8 +6,7 @@ import { Button } from "@/examples/base/ui/button"
import useEmblaCarousel, {
type UseEmblaCarouselType,
} from "embla-carousel-react"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"
type CarouselApi = UseEmblaCarouselType[1]
type UseCarouselParameters = Parameters
@@ -195,14 +194,7 @@ function CarouselPrevious({
onClick={scrollPrev}
{...props}
>
-
+
Previous slide
)
@@ -232,14 +224,7 @@ function CarouselNext({
onClick={scrollNext}
{...props}
>
-
+
Next slide
)
diff --git a/apps/v4/examples/base/ui/checkbox.tsx b/apps/v4/examples/base/ui/checkbox.tsx
index 4b86a4c7b8..06464fd654 100644
--- a/apps/v4/examples/base/ui/checkbox.tsx
+++ b/apps/v4/examples/base/ui/checkbox.tsx
@@ -2,8 +2,7 @@
import { cn } from "@/examples/base/lib/utils"
import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon } from "lucide-react"
function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
return (
@@ -19,13 +18,7 @@ function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {
data-slot="checkbox-indicator"
className="grid place-content-center text-current transition-none [&>svg]:size-3.5"
>
-
+
)
diff --git a/apps/v4/examples/base/ui/combobox.tsx b/apps/v4/examples/base/ui/combobox.tsx
index 8b37c8928c..e0b0c95c44 100644
--- a/apps/v4/examples/base/ui/combobox.tsx
+++ b/apps/v4/examples/base/ui/combobox.tsx
@@ -10,8 +10,7 @@ import {
InputGroupInput,
} from "@/examples/base/ui/input-group"
import { Combobox as ComboboxPrimitive } from "@base-ui/react"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronDownIcon, XIcon } from "lucide-react"
const Combobox = ComboboxPrimitive.Root
@@ -31,14 +30,7 @@ function ComboboxTrigger({
{...props}
>
{children}
-
+
)
}
@@ -51,14 +43,7 @@ function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {
className={cn(className)}
{...props}
>
-
+
)
}
@@ -168,14 +153,7 @@ function ComboboxItem({
}
>
-
+
)
@@ -277,14 +255,7 @@ function ComboboxChip({
className="-ml-1 opacity-50 hover:opacity-100"
data-slot="combobox-chip-remove"
>
-
+
)}
diff --git a/apps/v4/examples/base/ui/command.tsx b/apps/v4/examples/base/ui/command.tsx
index 2d1771d0da..bc501d95ee 100644
--- a/apps/v4/examples/base/ui/command.tsx
+++ b/apps/v4/examples/base/ui/command.tsx
@@ -11,8 +11,7 @@ import {
} from "@/examples/base/ui/dialog"
import { InputGroup, InputGroupAddon } from "@/examples/base/ui/input-group"
import { Command as CommandPrimitive } from "cmdk"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, SearchIcon } from "lucide-react"
function Command({
className,
@@ -79,14 +78,7 @@ function CommandInput({
{...props}
/>
-
+
@@ -166,14 +158,7 @@ function CommandItem({
{...props}
>
{children}
-
+
)
}
diff --git a/apps/v4/examples/base/ui/context-menu.tsx b/apps/v4/examples/base/ui/context-menu.tsx
index a96e621989..2b164b92d7 100644
--- a/apps/v4/examples/base/ui/context-menu.tsx
+++ b/apps/v4/examples/base/ui/context-menu.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronRightIcon } from "lucide-react"
function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {
return
@@ -137,14 +136,7 @@ function ContextMenuSubTrigger({
{...props}
>
{children}
-
+
)
}
@@ -184,13 +176,7 @@ function ContextMenuCheckboxItem({
>
-
+
{children}
@@ -229,13 +215,7 @@ function ContextMenuRadioItem({
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui/dialog.tsx b/apps/v4/examples/base/ui/dialog.tsx
index feefced44e..bb9cb99a99 100644
--- a/apps/v4/examples/base/ui/dialog.tsx
+++ b/apps/v4/examples/base/ui/dialog.tsx
@@ -4,8 +4,7 @@ import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui/button"
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { XIcon } from "lucide-react"
function Dialog({ ...props }: DialogPrimitive.Root.Props) {
return
@@ -70,13 +69,7 @@ function DialogContent({
/>
}
>
-
+
Close
)}
diff --git a/apps/v4/examples/base/ui/dropdown-menu.tsx b/apps/v4/examples/base/ui/dropdown-menu.tsx
index a089a66199..23344a5a32 100644
--- a/apps/v4/examples/base/ui/dropdown-menu.tsx
+++ b/apps/v4/examples/base/ui/dropdown-menu.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronRightIcon } from "lucide-react"
function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
return
@@ -122,14 +121,7 @@ function DropdownMenuSubTrigger({
{...props}
>
{children}
-
+
)
}
@@ -183,13 +175,7 @@ function DropdownMenuCheckboxItem({
data-slot="dropdown-menu-checkbox-item-indicator"
>
-
+
{children}
@@ -229,13 +215,7 @@ function DropdownMenuRadioItem({
data-slot="dropdown-menu-radio-item-indicator"
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui/input-otp.tsx b/apps/v4/examples/base/ui/input-otp.tsx
index 831b4ecaf9..e9e2d7a685 100644
--- a/apps/v4/examples/base/ui/input-otp.tsx
+++ b/apps/v4/examples/base/ui/input-otp.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { OTPInput, OTPInputContext } from "input-otp"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { MinusIcon } from "lucide-react"
function InputOTP({
className,
@@ -78,13 +77,7 @@ function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) {
role="separator"
{...props}
>
-
+
)
}
diff --git a/apps/v4/examples/base/ui/menubar.tsx b/apps/v4/examples/base/ui/menubar.tsx
index a36c87b975..2846a973b4 100644
--- a/apps/v4/examples/base/ui/menubar.tsx
+++ b/apps/v4/examples/base/ui/menubar.tsx
@@ -19,8 +19,7 @@ import {
} from "@/examples/base/ui/dropdown-menu"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"
import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon } from "lucide-react"
function Menubar({ className, ...props }: MenubarPrimitive.Props) {
return (
@@ -131,13 +130,7 @@ function MenubarCheckboxItem({
>
-
+
{children}
@@ -171,13 +164,7 @@ function MenubarRadioItem({
>
-
+
{children}
diff --git a/apps/v4/examples/base/ui/native-select.tsx b/apps/v4/examples/base/ui/native-select.tsx
index 978fded5ae..a5e1e1460c 100644
--- a/apps/v4/examples/base/ui/native-select.tsx
+++ b/apps/v4/examples/base/ui/native-select.tsx
@@ -1,7 +1,6 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { ChevronDownIcon } from "lucide-react"
type NativeSelectProps = Omit, "size"> & {
size?: "sm" | "default"
@@ -27,12 +26,7 @@ function NativeSelect({
className="border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-8 w-full min-w-0 appearance-none rounded-lg border bg-transparent py-1 pr-8 pl-2.5 text-sm transition-colors outline-none select-none focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:ring-3 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[size=sm]:py-0.5"
{...props}
/>
-
{children}{" "}
-
diff --git a/apps/v4/examples/base/ui/pagination.tsx b/apps/v4/examples/base/ui/pagination.tsx
index 8441e8839a..dc81b9b16f 100644
--- a/apps/v4/examples/base/ui/pagination.tsx
+++ b/apps/v4/examples/base/ui/pagination.tsx
@@ -1,8 +1,11 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui/button"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import {
+ ChevronLeftIcon,
+ ChevronRightIcon,
+ MoreHorizontalIcon,
+} from "lucide-react"
function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
return (
@@ -74,15 +77,7 @@ function PaginationPrevious({
className={cn("pl-1.5!", className)}
{...props}
>
-
+
{text}
)
@@ -101,15 +96,7 @@ function PaginationNext({
{...props}
>
{text}
-
+
)
}
@@ -128,13 +115,7 @@ function PaginationEllipsis({
)}
{...props}
>
-
+
More pages
)
diff --git a/apps/v4/examples/base/ui/radio-group.tsx b/apps/v4/examples/base/ui/radio-group.tsx
index bb7daa3b1e..d8d752b262 100644
--- a/apps/v4/examples/base/ui/radio-group.tsx
+++ b/apps/v4/examples/base/ui/radio-group.tsx
@@ -3,8 +3,7 @@
import { cn } from "@/examples/base/lib/utils"
import { Radio as RadioPrimitive } from "@base-ui/react/radio"
import { RadioGroup as RadioGroupPrimitive } from "@base-ui/react/radio-group"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CircleIcon } from "lucide-react"
function RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {
return (
@@ -30,14 +29,7 @@ function RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {
data-slot="radio-group-indicator"
className="group-aria-invalid/radio-group-item:text-destructive text-primary flex size-4 items-center justify-center"
>
-
+
)
diff --git a/apps/v4/examples/base/ui/select.tsx b/apps/v4/examples/base/ui/select.tsx
index ee1780a58b..077f99caba 100644
--- a/apps/v4/examples/base/ui/select.tsx
+++ b/apps/v4/examples/base/ui/select.tsx
@@ -3,8 +3,7 @@
import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Select as SelectPrimitive } from "@base-ui/react/select"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
const Select = SelectPrimitive.Root
@@ -49,14 +48,7 @@ function SelectTrigger({
{children}
+
}
/>
@@ -140,14 +132,7 @@ function SelectItem({
}
>
-
+
)
@@ -179,13 +164,7 @@ function SelectScrollUpButton({
)}
{...props}
>
-
+
)
}
@@ -203,13 +182,7 @@ function SelectScrollDownButton({
)}
{...props}
>
-
+
)
}
diff --git a/apps/v4/examples/base/ui/sheet.tsx b/apps/v4/examples/base/ui/sheet.tsx
index 04dd00f227..ae64b04067 100644
--- a/apps/v4/examples/base/ui/sheet.tsx
+++ b/apps/v4/examples/base/ui/sheet.tsx
@@ -4,8 +4,7 @@ import * as React from "react"
import { cn } from "@/examples/base/lib/utils"
import { Button } from "@/examples/base/ui/button"
import { Dialog as SheetPrimitive } from "@base-ui/react/dialog"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { XIcon } from "lucide-react"
function Sheet({ ...props }: SheetPrimitive.Root.Props) {
return
@@ -70,13 +69,7 @@ function SheetContent({
/>
}
>
-
+
Close
)}
diff --git a/apps/v4/examples/base/ui/sidebar.tsx b/apps/v4/examples/base/ui/sidebar.tsx
index 6eec9b1e82..732523e69f 100644
--- a/apps/v4/examples/base/ui/sidebar.tsx
+++ b/apps/v4/examples/base/ui/sidebar.tsx
@@ -22,8 +22,7 @@ import {
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cva, type VariantProps } from "class-variance-authority"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { PanelLeftIcon } from "lucide-react"
const SIDEBAR_COOKIE_NAME = "sidebar_state"
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7
@@ -271,14 +270,7 @@ function SidebarTrigger({
}}
{...props}
>
-
+
Toggle Sidebar
)
diff --git a/apps/v4/examples/base/ui/sonner.tsx b/apps/v4/examples/base/ui/sonner.tsx
index 0c2e93ea32..c7965f834e 100644
--- a/apps/v4/examples/base/ui/sonner.tsx
+++ b/apps/v4/examples/base/ui/sonner.tsx
@@ -1,10 +1,15 @@
"use client"
+import {
+ CircleCheckIcon,
+ InfoIcon,
+ Loader2Icon,
+ OctagonXIcon,
+ TriangleAlertIcon,
+} from "lucide-react"
import { useTheme } from "next-themes"
import { Toaster as Sonner, type ToasterProps } from "sonner"
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
-
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme()
@@ -13,56 +18,11 @@ const Toaster = ({ ...props }: ToasterProps) => {
theme={theme as ToasterProps["theme"]}
className="toaster group"
icons={{
- success: (
-
- ),
- info: (
-
- ),
- warning: (
-
- ),
- error: (
-
- ),
- loading: (
-
- ),
+ success: ,
+ info: ,
+ warning: ,
+ error: ,
+ loading: ,
}}
style={
{
diff --git a/apps/v4/examples/base/ui/spinner.tsx b/apps/v4/examples/base/ui/spinner.tsx
index b00045d748..12e51ef338 100644
--- a/apps/v4/examples/base/ui/spinner.tsx
+++ b/apps/v4/examples/base/ui/spinner.tsx
@@ -1,15 +1,9 @@
import { cn } from "@/examples/base/lib/utils"
-
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
+import { Loader2Icon } from "lucide-react"
function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
return (
-
{children}
-
-
diff --git a/apps/v4/examples/radix/ui-rtl/breadcrumb.tsx b/apps/v4/examples/radix/ui-rtl/breadcrumb.tsx
index f58258c6bf..257aaa2ecf 100644
--- a/apps/v4/examples/radix/ui-rtl/breadcrumb.tsx
+++ b/apps/v4/examples/radix/ui-rtl/breadcrumb.tsx
@@ -1,9 +1,8 @@
import * as React from "react"
import { cn } from "@/examples/radix/lib/utils"
+import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react"
import { Slot } from "radix-ui"
-import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
-
function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
return (