Komponen / Form & input
AmountInput
Isian nominal uang: mata uang di kiri, angka rata kanan dengan pemisah ribuan (id-ID), tanpa desimal untuk Rupiah. Saat fokus tampil angka mentah, saat blur diformat.
Rupiah + terbilang
Untuk nilai besar tampilkan terbilang di teks bantuan — `terbilang()` tersedia di paket.
seratus lima puluh juta rupiah
Nilai tersimpan: 150000000
import { useState } from 'react';
import { AmountInput, FormField, terbilang } from '@divistant/circca-react';
export default function Example() {
const [nilai, setNilai] = useState<number | null>(150_000_000);
return (
<div className="grid max-w-sm gap-4">
<FormField label="Nilai kontrak" required helperText={nilai ? `${terbilang(nilai)} rupiah` : 'Tanpa desimal.'}>
<AmountInput value={nilai} onValueChange={setNilai} />
</FormField>
<p className="type-caption-default text-muted">
Nilai tersimpan: <code>{JSON.stringify(nilai)}</code>
</p>
</div>
);
}Mata uang, ukuran & state
Small — untuk sel tabel & baris item.
Nilai PPN melebihi 11% dari DPP.
import { AmountInput, FormField } from '@divistant/circca-react';
export default function Example() {
return (
<div className="grid gap-4 sm:grid-cols-2">
<FormField label="Harga beli (USD)">
<AmountInput currency="USD" defaultValue={1250.5} />
</FormField>
<FormField label="Diskon" helperText="Small — untuk sel tabel & baris item.">
<AmountInput size="sm" defaultValue={2_500_000} />
</FormField>
<FormField label="Total invoice" readOnly>
<AmountInput defaultValue={165_000_000} />
</FormField>
<FormField label="PPN" error="Nilai PPN melebihi 11% dari DPP.">
<AmountInput defaultValue={20_000_000} />
</FormField>
</div>
);
}