Input/input-types-

PreviousNext

A input/input-types- example

Docs
shadcnblocksblock

Preview

Loading preview…
code/example/input/input-types-3.tsx
"use client";

import { Minus, Plus } from "lucide-react";
import { useState } from "react";

import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";

export const title = "Number Input with Controls";

const Example = () => {
  const [value, setValue] = useState(1);

  return (
    <div className="w-full max-w-sm space-y-2">
      <Label htmlFor="quantity">Quantity</Label>
      <div className="flex gap-2">
        <Button
          onClick={() => setValue(Math.max(1, value - 1))}
          size="icon"
          type="button"
          variant="outline"
        >
          <Minus className="h-4 w-4" />
        </Button>
        <Input
          className="bg-background text-center"
          id="quantity"
          min="1"
          onChange={(e) => setValue(Number(e.target.value))}
          type="number"
          value={value}
        />
        <Button
          onClick={() => setValue(value + 1)}
          size="icon"
          type="button"
          variant="outline"
        >
          <Plus className="h-4 w-4" />
        </Button>
      </div>
    </div>
  );
};

export default Example;

Installation

npx shadcn@latest add @shadcnblocks/input-input-types-3

Usage

import { InputInputTypes3 } from "@/components/input-input-types-3"
<InputInputTypes3 />