Compare commits

...

1 Commits

Author SHA1 Message Date
Alex Yang ce979d4e9c chore: add tailwindcss prettier 2025-03-09 01:00:50 -08:00
24 changed files with 127 additions and 60 deletions
+5 -5
View File
@@ -24,16 +24,16 @@ import { Suspense } from "react";
export default function HomePage() {
return (
<main className="container mx-auto px-4 py-12">
<h1 className="text-4xl md:text-6xl font-bold text-center mb-4">
<h1 className="mb-4 text-center text-4xl font-bold md:text-6xl">
Build context-augmented web apps using
<br /> <span className="text-blue-500">LlamaIndex.TS</span>
</h1>
<p className="text-xl text-center text-fd-muted-foreground mb-12 ">
<p className="text-fd-muted-foreground mb-12 text-center text-xl">
LlamaIndex.TS is the JS/TS version of{" "}
<a href="https://llamaindex.ai">LlamaIndex</a>, the framework for
building agentic generative AI applications connected to your data.
</p>
<div className="text-center text-lg text-fd-muted-foreground mb-12">
<div className="text-fd-muted-foreground mb-12 text-center text-lg">
<span>Designed for building web applications in </span>
<Supports />
</div>
@@ -149,13 +149,13 @@ await agent.chat('...');`}
>
<div className="mt-8 flex flex-col gap-8">
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
<h3 className="text-fd-muted-foreground mb-2 text-lg font-semibold">
LLMs
</h3>
<InfiniteLLMProviders />
</div>
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
<h3 className="text-fd-muted-foreground mb-2 text-lg font-semibold">
Vector Stores
</h3>
<InfiniteVectorStoreProviders />
+1 -1
View File
@@ -22,7 +22,7 @@ export default function Layout({ children }: { children: ReactNode }) {
variant: "secondary",
size: "xs",
className:
"md:flex-1 px-2 ms-2 gap-1.5 text-fd-muted-foreground rounded-full",
"text-fd-muted-foreground ms-2 gap-1.5 rounded-full px-2 md:flex-1",
}),
)}
>
+1 -1
View File
@@ -32,7 +32,7 @@ export default function Layout({ children }: { children: ReactNode }) {
href="/favicon-16x16.png"
/>
</head>
<body className="flex flex-col min-h-screen">
<body className="flex min-h-screen flex-col">
<TooltipProvider>
<AIProvider>
<RootProvider>{children}</RootProvider>
+5 -5
View File
@@ -45,13 +45,13 @@ export const AITrigger = (props: AITriggerProps) => {
<Dialog>
<DialogTrigger {...props} />
<DialogPortal>
<DialogOverlay className="fixed inset-0 z-50 bg-fd-background/50 backdrop-blur-sm data-[state=closed]:animate-fd-fade-out data-[state=open]:animate-fd-fade-in" />
<DialogOverlay className="bg-fd-background/50 data-[state=closed]:animate-fd-fade-out data-[state=open]:animate-fd-fade-in fixed inset-0 z-50 backdrop-blur-sm" />
<DialogContent
onOpenAutoFocus={(e) => {
document.getElementById("nd-ai-input")?.focus();
e.preventDefault();
}}
className="fixed left-1/2 z-50 my-[5vh] flex max-h-[90dvh] w-[98vw] max-w-[860px] origin-left -translate-x-1/2 flex-col rounded-lg border bg-fd-popover text-fd-popover-foreground shadow-lg focus-visible:outline-none data-[state=closed]:animate-fd-dialog-out data-[state=open]:animate-fd-dialog-in"
className="bg-fd-popover text-fd-popover-foreground data-[state=closed]:animate-fd-dialog-out data-[state=open]:animate-fd-dialog-in fixed left-1/2 z-50 my-[5vh] flex max-h-[90dvh] w-[98vw] max-w-[860px] origin-left -translate-x-1/2 flex-col rounded-lg border shadow-lg focus-visible:outline-none"
>
<DialogHeader>
<DialogTitle className="sr-only">Search AI</DialogTitle>
@@ -67,11 +67,11 @@ export const AITrigger = (props: AITriggerProps) => {
</AlertDescription>
</Alert>
</DialogHeader>
<div className="overflow-scroll flex-grow mt-4">
<div className="mt-4 flex-grow overflow-scroll">
<ChatList messages={messages} />
</div>
<form
className="px-4 py-2 space-y-4"
className="space-y-4 px-4 py-2"
action={async () => {
const value = inputValue.trim();
setInputValue("");
@@ -102,7 +102,7 @@ export const AITrigger = (props: AITriggerProps) => {
}
}}
>
<div className="flex flex-row w-full items-center gap-2">
<div className="flex w-full flex-row items-center gap-2">
<Textarea
tabIndex={0}
placeholder="Ask AI about documentation."
+1 -1
View File
@@ -10,7 +10,7 @@ export function Contributing(): ReactElement {
<h2 className="mb-4 text-xl font-semibold sm:text-2xl">
Made possible by you <Heart className="inline align-middle" />
</h2>
<p className="mb-4 text-fd-muted-foreground">
<p className="text-fd-muted-foreground mb-4">
LlamaIndex.TS is powered by the open source community.
</p>
<div className="mb-8 flex flex-row items-center gap-2">
@@ -33,7 +33,7 @@ export default async function ContributorCounter({
href={`https://github.com/${contributor.login}`}
rel="noreferrer noopener"
target="_blank"
className="size-10 overflow-hidden rounded-full border-4 border-fd-background bg-fd-background md:-mr-4 md:size-12"
className="border-fd-background bg-fd-background size-10 overflow-hidden rounded-full border-4 md:-mr-4 md:size-12"
style={{
zIndex: topContributors.length - i,
}}
@@ -48,7 +48,7 @@ export default async function ContributorCounter({
</a>
))}
{displayCount < contributors.length ? (
<div className="size-12 content-center rounded-full bg-fd-secondary text-center">
<div className="bg-fd-secondary size-12 content-center rounded-full text-center">
+{contributors.length - displayCount}
</div>
) : null}
@@ -83,7 +83,7 @@ export function CreateAppAnimation(): React.ReactElement {
}}
>
{tick > timeWindowOpen && (
<LaunchAppWindow className="absolute bottom-5 right-4 z-10 animate-in fade-in slide-in-from-top-10" />
<LaunchAppWindow className="animate-in fade-in slide-in-from-top-10 absolute bottom-5 right-4 z-10" />
)}
<pre className="overflow-hidden rounded-xl border text-xs">
<div className="flex flex-row items-center gap-2 border-b px-4 py-2">
@@ -92,7 +92,7 @@ export function CreateAppAnimation(): React.ReactElement {
<div className="grow" />
<div className="size-2 rounded-full bg-red-400" />
</div>
<div className="min-h-[200px] bg-gradient-to-b from-fd-secondary [mask-image:linear-gradient(to_bottom,white,transparent)]">
<div className="from-fd-secondary min-h-[200px] bg-gradient-to-b [mask-image:linear-gradient(to_bottom,white,transparent)]">
<code className="grid p-4">{lines}</code>
</div>
</pre>
@@ -103,7 +103,7 @@ export function CreateAppAnimation(): React.ReactElement {
function UserMessage({ children }: { children: ReactNode }) {
return (
<div className="group relative flex items-start">
<div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm bg-background">
<div className="bg-background flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm">
<IconUser />
</div>
<div className="ml-4 flex-1 space-y-2 overflow-hidden px-1">
@@ -122,7 +122,7 @@ function BotMessage({
}) {
return (
<div className={cn("group relative flex items-start", className)}>
<div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm bg-primary text-primary-foreground">
<div className="bg-primary text-primary-foreground flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm">
<IconAI />
</div>
<div className="ml-4 flex-1 space-y-2 overflow-hidden px-1">
@@ -164,7 +164,7 @@ export function ChatExample() {
return (
<div className="max-w-64">
<div className="flex flex-col px-4 gap-2">
<div className="flex flex-col gap-2 px-4">
{userMessageLength === userMessageFull.length && (
<UserMessage>
<span>{userMessageFull}</span>
@@ -204,11 +204,11 @@ function LaunchAppWindow(
<div
{...props}
className={cn(
"overflow-hidden rounded-md border bg-fd-background shadow-xl",
"bg-fd-background overflow-hidden rounded-md border shadow-xl",
props.className,
)}
>
<div className="relative flex h-6 flex-row items-center border-b bg-fd-muted px-4 text-xs text-fd-muted-foreground">
<div className="bg-fd-muted text-fd-muted-foreground relative flex h-6 flex-row items-center border-b px-4 text-xs">
<p className="absolute inset-x-0 text-center">localhost:8080</p>
</div>
<div className="p-4 text-sm">
@@ -57,7 +57,7 @@ export const IDE = () => {
const maxChars = useSlider();
const useSetMaxChars = useSetSlider();
return (
<div className="flex flex-col p-4 border-r max-h-96 overflow-scroll">
<div className="flex max-h-96 flex-col overflow-scroll border-r p-4">
<div>
<Label>Max Chars {maxChars}</Label>
<Slider
@@ -113,7 +113,7 @@ const Preview = ({ text }: { text: string }) => {
},
},
});
return <CodeBlock className="py-0 m-2">{rendered}</CodeBlock>;
return <CodeBlock className="m-2 py-0">{rendered}</CodeBlock>;
};
function ScrollToBottom() {
@@ -122,7 +122,7 @@ function ScrollToBottom() {
return (
!isAtBottom && (
<button
className="absolute i-ph-arrow-circle-down-fill text-4xl rounded-lg left-[50%] translate-x-[-50%] bottom-0"
className="i-ph-arrow-circle-down-fill absolute bottom-0 left-[50%] translate-x-[-50%] rounded-lg text-4xl"
onClick={() => scrollToBottom()}
/>
)
@@ -136,7 +136,7 @@ export const NodePreview = () => {
const textChunks = useMemo(() => parser.splitText(code), [code, maxChars]);
return (
<StickToBottom
className="block relative max-h-96 overflow-scroll"
className="relative block max-h-96 overflow-scroll"
resize="smooth"
initial="smooth"
>
@@ -154,7 +154,7 @@ export const CodeNodeParserDemo = () => {
const isClient = useIsClient();
if (!isClient) {
return (
<div className="my-2 grid grid-cols-1 md:grid-cols-2 gap-2 border rounded-xl w-full max-h-96">
<div className="my-2 grid max-h-96 w-full grid-cols-1 gap-2 rounded-xl border md:grid-cols-2">
<Skeleton className="h-96" />
<Skeleton className="h-96" />
</div>
@@ -165,13 +165,13 @@ export const CodeNodeParserDemo = () => {
<CodeProvider>
<Suspense
fallback={
<div className="my-2 grid grid-cols-1 md:grid-cols-2 gap-2 border rounded-xl w-full max-h-96">
<div className="my-2 grid max-h-96 w-full grid-cols-1 gap-2 rounded-xl border md:grid-cols-2">
<Skeleton className="h-96" />
<Skeleton className="h-96" />
</div>
}
>
<div className="my-2 grid grid-cols-1 md:grid-cols-2 gap-2 border rounded-xl w-full max-h-96">
<div className="my-2 grid max-h-96 w-full grid-cols-1 gap-2 rounded-xl border md:grid-cols-2">
<IDE />
<NodePreview />
</div>
@@ -75,7 +75,7 @@ function ScrollToBottom() {
return (
!isAtBottom && (
<button
className="absolute i-ph-arrow-circle-down-fill text-4xl rounded-lg left-[50%] translate-x-[-50%] bottom-0"
className="i-ph-arrow-circle-down-fill absolute bottom-0 left-[50%] translate-x-[-50%] rounded-lg text-4xl"
onClick={() => scrollToBottom()}
/>
)
@@ -91,9 +91,9 @@ export function WorkflowStreamingDemo() {
const [total, setTotal] = useState<number>(10);
return (
<div className="flex flex-col items-start w-full gap-2">
<div className="flex flex-row justify-center items-center">
<div className="text-lg mr-2">Compute total</div>{" "}
<div className="flex w-full flex-col items-start gap-2">
<div className="flex flex-row items-center justify-center">
<div className="mr-2 text-lg">Compute total</div>{" "}
<FlowInput value={total} onChange={(value) => setTotal(value)} />
</div>
<Button
@@ -141,7 +141,7 @@ export function WorkflowStreamingDemo() {
>
Start Workflow
</Button>
<StickToBottom className="w-full flex flex-col gap-2 p-2 border border-gray-200 rounded-lg max-h-96 overflow-y-auto">
<StickToBottom className="flex max-h-96 w-full flex-col gap-2 overflow-y-auto rounded-lg border border-gray-200 p-2">
<StickToBottom.Content className="flex flex-col gap-2">
{ui}
</StickToBottom.Content>
+1 -1
View File
@@ -20,7 +20,7 @@ export function Feature({
className={cn("border-l border-t px-6 py-12 md:py-16", className)}
{...props}
>
<div className="mb-4 inline-flex items-center gap-2 text-sm font-medium text-fd-muted-foreground">
<div className="text-fd-muted-foreground mb-4 inline-flex items-center gap-2 text-sm font-medium">
<Icon className="size-4" />
<p>{subheading}</p>
</div>
+1 -1
View File
@@ -60,7 +60,7 @@ export default function FlowInput({
className={clsx(
showCaret ? "caret-primary" : "caret-transparent",
"spin-hide w-[1.5em] bg-transparent py-2 text-center font-[inherit] text-transparent outline-none",
"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
"[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
)}
// Make sure to disable kerning, to match NumberFlow:
style={{ fontKerning: "none" }}
+2 -2
View File
@@ -8,7 +8,7 @@ import { IconAI, IconUser } from "./ui/icons";
export function UserMessage({ children }: { children: ReactNode }) {
return (
<div className="group relative flex items-start">
<div className="flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm bg-background">
<div className="bg-background flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm">
<IconUser />
</div>
<div className="ml-4 flex-1 space-y-2 overflow-hidden px-1">
@@ -54,7 +54,7 @@ export function BotCard({
<div className="group relative flex items-start md:-ml-12">
<div
className={cn(
"flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm bg-primary text-primary-foreground",
"bg-primary text-primary-foreground flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow-sm",
!showAvatar && "invisible",
)}
>
+1 -1
View File
@@ -25,7 +25,7 @@ export const NpmInstall = () => {
className="flex flex-row items-center justify-center"
>
<code className="mr-2">$ npm i llamaindex</code>
<div className="relative cursor-pointer bg-transparent w-4 h-4">
<div className="relative h-4 w-4 cursor-pointer bg-transparent">
<div
className={`absolute inset-0 transform transition-all duration-300 ${
hasCheckIcon ? "scale-0 opacity-0" : "scale-100 opacity-100"
@@ -200,7 +200,7 @@ export const RotatingText = forwardRef<RotatingTextRef, RotatingTextProps>(
return (
<motion.span
className={cn(
"flex flex-wrap whitespace-pre-wrap relative",
"relative flex flex-wrap whitespace-pre-wrap",
mainClassName,
)}
{...rest}
@@ -216,8 +216,8 @@ export const RotatingText = forwardRef<RotatingTextRef, RotatingTextProps>(
key={currentTextIndex}
className={cn(
splitBy === "lines"
? "flex flex-col w-full"
: "flex flex-wrap whitespace-pre-wrap relative",
? "flex w-full flex-col"
: "relative flex flex-wrap whitespace-pre-wrap",
)}
layout
aria-hidden="true"
+4 -4
View File
@@ -21,7 +21,7 @@ const DialogOverlay = React.forwardRef<
<DialogPrimitive.Overlay
ref={ref}
className={cn(
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
className,
)}
{...props}
@@ -38,13 +38,13 @@ const DialogContent = React.forwardRef<
<DialogPrimitive.Content
ref={ref}
className={cn(
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
"bg-background 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",
className,
)}
{...props}
>
{children}
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
<DialogPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none">
<Cross2Icon className="h-4 w-4" />
<span className="sr-only">Close</span>
</DialogPrimitive.Close>
@@ -102,7 +102,7 @@ const DialogDescription = React.forwardRef<
>(({ className, ...props }, ref) => (
<DialogPrimitive.Description
ref={ref}
className={cn("text-sm text-muted-foreground", className)}
className={cn("text-muted-foreground text-sm", className)}
{...props}
/>
));
+1 -1
View File
@@ -10,7 +10,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
<input
type={type}
className={cn(
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
"border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-9 w-full rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
className,
)}
ref={ref}
+1 -1
View File
@@ -6,7 +6,7 @@ function Skeleton({
}: React.HTMLAttributes<HTMLDivElement>) {
return (
<div
className={cn("animate-pulse rounded-md bg-primary/10", className)}
className={cn("bg-primary/10 animate-pulse rounded-md", className)}
{...props}
/>
);
+3 -3
View File
@@ -17,10 +17,10 @@ const Slider = React.forwardRef<
)}
{...props}
>
<SliderPrimitive.Track className="relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20">
<SliderPrimitive.Range className="absolute h-full bg-primary" />
<SliderPrimitive.Track className="bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full">
<SliderPrimitive.Range className="bg-primary absolute h-full" />
</SliderPrimitive.Track>
<SliderPrimitive.Thumb className="block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" />
<SliderPrimitive.Thumb className="border-primary/50 bg-background focus-visible:ring-ring block h-4 w-4 rounded-full border shadow transition-colors focus-visible:outline-none focus-visible:ring-1 disabled:pointer-events-none disabled:opacity-50" />
</SliderPrimitive.Root>
));
Slider.displayName = SliderPrimitive.Root.displayName;
+1 -1
View File
@@ -9,7 +9,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
return (
<textarea
className={cn(
"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
"border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
className,
)}
ref={ref}
+1 -1
View File
@@ -20,7 +20,7 @@ const TooltipContent = React.forwardRef<
ref={ref}
sideOffset={sideOffset}
className={cn(
"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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",
"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 z-50 overflow-hidden rounded-md px-3 py-1.5 text-xs",
className,
)}
{...props}
@@ -10,10 +10,10 @@ export const Chat = (props: ChatProps) => {
const [response, setResponse] = useState<string | null>(null);
return (
<section className="border-blue-400 -mx-4 mt-4 rounded border border-dashed p-4">
<section className="-mx-4 mt-4 rounded border border-dashed border-blue-400 p-4">
<h2 className="text-lg font-bold">Chat with AI</h2>
{response ? (
<p className="text-sm text-gray-600 max-w-sm">{response}</p>
<p className="max-w-sm text-sm text-gray-600">{response}</p>
) : null}
<form
action={async (formData) => {
@@ -26,7 +26,7 @@ export const Chat = (props: ChatProps) => {
<input
type="text"
name="question"
className="border border-gray-400 rounded-sm px-2 py-0.5 text-sm"
className="rounded-sm border border-gray-400 px-2 py-0.5 text-sm"
/>
<button className="rounded-sm bg-black px-2 py-0.5 text-sm text-white">
Ask
+6 -3
View File
@@ -32,6 +32,7 @@
"madge": "^8.0.0",
"prettier": "^3.4.2",
"prettier-plugin-organize-imports": "^4.1.0",
"prettier-plugin-tailwindcss": "^0.6.11",
"turbo": "^2.4.4",
"typescript": "^5.7.3",
"typescript-eslint": "^8.18.0"
@@ -39,10 +40,12 @@
"packageManager": "pnpm@9.12.3",
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"prettier --check",
"eslint"
"eslint --fix",
"prettier --write"
],
"*.{json,md}": "prettier --check"
"*.{json,md,yml}": [
"prettier --write"
]
},
"pnpm": {
"patchedDependencies": {
+64
View File
@@ -49,6 +49,9 @@ importers:
prettier-plugin-organize-imports:
specifier: ^4.1.0
version: 4.1.0(prettier@3.5.0)(typescript@5.7.3)
prettier-plugin-tailwindcss:
specifier: ^0.6.11
version: 0.6.11(prettier-plugin-organize-imports@4.1.0(prettier@3.5.0)(typescript@5.7.3))(prettier@3.5.0)
turbo:
specifier: ^2.4.4
version: 2.4.4
@@ -9881,6 +9884,61 @@ packages:
vue-tsc:
optional: true
prettier-plugin-tailwindcss@0.6.11:
resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
engines: {node: '>=14.21.3'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
'@prettier/plugin-pug': '*'
'@shopify/prettier-plugin-liquid': '*'
'@trivago/prettier-plugin-sort-imports': '*'
'@zackad/prettier-plugin-twig': '*'
prettier: ^3.0
prettier-plugin-astro: '*'
prettier-plugin-css-order: '*'
prettier-plugin-import-sort: '*'
prettier-plugin-jsdoc: '*'
prettier-plugin-marko: '*'
prettier-plugin-multiline-arrays: '*'
prettier-plugin-organize-attributes: '*'
prettier-plugin-organize-imports: '*'
prettier-plugin-sort-imports: '*'
prettier-plugin-style-order: '*'
prettier-plugin-svelte: '*'
peerDependenciesMeta:
'@ianvs/prettier-plugin-sort-imports':
optional: true
'@prettier/plugin-pug':
optional: true
'@shopify/prettier-plugin-liquid':
optional: true
'@trivago/prettier-plugin-sort-imports':
optional: true
'@zackad/prettier-plugin-twig':
optional: true
prettier-plugin-astro:
optional: true
prettier-plugin-css-order:
optional: true
prettier-plugin-import-sort:
optional: true
prettier-plugin-jsdoc:
optional: true
prettier-plugin-marko:
optional: true
prettier-plugin-multiline-arrays:
optional: true
prettier-plugin-organize-attributes:
optional: true
prettier-plugin-organize-imports:
optional: true
prettier-plugin-sort-imports:
optional: true
prettier-plugin-style-order:
optional: true
prettier-plugin-svelte:
optional: true
prettier@2.8.8:
resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
engines: {node: '>=10.13.0'}
@@ -22192,6 +22250,12 @@ snapshots:
prettier: 3.5.0
typescript: 5.7.3
prettier-plugin-tailwindcss@0.6.11(prettier-plugin-organize-imports@4.1.0(prettier@3.5.0)(typescript@5.7.3))(prettier@3.5.0):
dependencies:
prettier: 3.5.0
optionalDependencies:
prettier-plugin-organize-imports: 4.1.0(prettier@3.5.0)(typescript@5.7.3)
prettier@2.8.8: {}
prettier@3.5.0: {}
+1 -1
View File
@@ -1,3 +1,3 @@
export default {
plugins: ["prettier-plugin-organize-imports"],
plugins: ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss"],
};