density 2

This commit is contained in:
2026-03-14 22:08:29 -05:00
parent a6b24a6609
commit 2cf6bf858d
7 changed files with 29 additions and 29 deletions

View File

@@ -19,7 +19,7 @@ export function CrmContactEntryForm({ form, isSaving, status, onChange, onSubmit
<select
value={form.type}
onChange={(event) => onChange("type", event.target.value as CrmContactEntryInput["type"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{crmContactTypeOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -34,7 +34,7 @@ export function CrmContactEntryForm({ form, isSaving, status, onChange, onSubmit
type="datetime-local"
value={form.contactAt.slice(0, 16)}
onChange={(event) => onChange("contactAt", new Date(event.target.value).toISOString())}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
</div>
@@ -43,7 +43,7 @@ export function CrmContactEntryForm({ form, isSaving, status, onChange, onSubmit
<input
value={form.summary}
onChange={(event) => onChange("summary", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
placeholder="Short headline for the interaction"
/>
</label>
@@ -53,7 +53,7 @@ export function CrmContactEntryForm({ form, isSaving, status, onChange, onSubmit
value={form.body}
onChange={(event) => onChange("body", event.target.value)}
rows={5}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
placeholder="Capture what happened, follow-ups, and commitments."
/>
</label>

View File

@@ -93,7 +93,7 @@ export function CrmContactsPanel({ entity, ownerId, contacts, onContactsChange }
<input
value={form.fullName}
onChange={(event) => updateField("fullName", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
<label className="block">
@@ -101,7 +101,7 @@ export function CrmContactsPanel({ entity, ownerId, contacts, onContactsChange }
<select
value={form.role}
onChange={(event) => updateField("role", event.target.value as CrmContactInput["role"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{crmContactRoleOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -116,7 +116,7 @@ export function CrmContactsPanel({ entity, ownerId, contacts, onContactsChange }
type="email"
value={form.email}
onChange={(event) => updateField("email", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
<label className="block">
@@ -124,7 +124,7 @@ export function CrmContactsPanel({ entity, ownerId, contacts, onContactsChange }
<input
value={form.phone}
onChange={(event) => updateField("phone", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
</div>

View File

@@ -34,7 +34,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<select
value={form.status}
onChange={(event) => onChange("status", event.target.value as CrmRecordInput["status"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{crmStatusOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -48,7 +48,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<select
value={form.lifecycleStage ?? "ACTIVE"}
onChange={(event) => onChange("lifecycleStage", event.target.value as CrmRecordInput["lifecycleStage"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{crmLifecycleOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -64,7 +64,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<select
value={form.isReseller ? "yes" : "no"}
onChange={(event) => onChange("isReseller", event.target.value === "yes")}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
<option value="no">Standard customer</option>
<option value="yes">Reseller</option>
@@ -82,7 +82,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
onChange={(event) =>
onChange("resellerDiscountPercent", event.target.value === "" ? 0 : Number(event.target.value))
}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand disabled:cursor-not-allowed disabled:opacity-60"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand disabled:cursor-not-allowed disabled:opacity-60"
/>
</label>
<label className="block">
@@ -90,7 +90,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<select
value={form.parentCustomerId ?? ""}
onChange={(event) => onChange("parentCustomerId", event.target.value || null)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
<option value="">No parent reseller</option>
{hierarchyOptions.map((option) => (
@@ -108,7 +108,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<input
value={form.paymentTerms ?? ""}
onChange={(event) => onChange("paymentTerms", event.target.value || null)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
placeholder="Net 30"
/>
</label>
@@ -117,7 +117,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
<input
value={form.currencyCode ?? "USD"}
onChange={(event) => onChange("currencyCode", event.target.value.toUpperCase() || null)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
maxLength={8}
/>
</label>
@@ -180,7 +180,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
type={field.type ?? "text"}
value={form[field.key]}
onChange={(event) => onChange(field.key, event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
))}
@@ -191,7 +191,7 @@ export function CrmRecordForm({ entity, form, hierarchyOptions = [], onChange }:
value={form.notes}
onChange={(event) => onChange("notes", event.target.value)}
rows={5}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
</>

View File

@@ -177,7 +177,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
<input
value={form.sku}
onChange={(event) => updateField("sku", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
<label className="block 2xl:col-span-2">
@@ -185,7 +185,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
<input
value={form.name}
onChange={(event) => updateField("name", event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
<label className="block">
@@ -196,7 +196,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
step={0.01}
value={form.defaultCost ?? ""}
onChange={(event) => updateField("defaultCost", event.target.value === "" ? null : Number(event.target.value))}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
</div>
@@ -206,7 +206,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
<select
value={form.type}
onChange={(event) => updateField("type", event.target.value as InventoryItemInput["type"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{inventoryTypeOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -220,7 +220,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
<select
value={form.status}
onChange={(event) => updateField("status", event.target.value as InventoryItemInput["status"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{inventoryStatusOptions.map((option) => (
<option key={option.value} value={option.value}>
@@ -234,7 +234,7 @@ export function InventoryFormPage({ mode }: InventoryFormPageProps) {
<select
value={form.unitOfMeasure}
onChange={(event) => updateField("unitOfMeasure", event.target.value as InventoryItemInput["unitOfMeasure"])}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
>
{inventoryUnitOptions.map((option) => (
<option key={option.value} value={option.value}>

View File

@@ -107,11 +107,11 @@ export function WarehouseFormPage({ mode }: { mode: "create" | "edit" }) {
<div className="grid gap-4 xl:grid-cols-2">
<label className="block">
<span className="mb-2 block text-sm font-semibold text-text">Warehouse code</span>
<input value={form.code} onChange={(event) => updateField("code", event.target.value)} className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand" />
<input value={form.code} onChange={(event) => updateField("code", event.target.value)} className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand" />
</label>
<label className="block">
<span className="mb-2 block text-sm font-semibold text-text">Warehouse name</span>
<input value={form.name} onChange={(event) => updateField("name", event.target.value)} className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand" />
<input value={form.name} onChange={(event) => updateField("name", event.target.value)} className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand" />
</label>
</div>
<label className="block">

View File

@@ -47,7 +47,7 @@ export function LoginPage() {
<input
value={email}
onChange={(event) => setEmail(event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
<label className="block">
@@ -56,7 +56,7 @@ export function LoginPage() {
type="password"
value={password}
onChange={(event) => setPassword(event.target.value)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
{error ? <div className="rounded-2xl border border-red-500/30 bg-red-500/10 px-4 py-3 text-sm text-red-200 dark:text-red-200">{error}</div> : null}

View File

@@ -180,7 +180,7 @@ export function CompanySettingsPage() {
<input
value={String(form[key as keyof CompanyProfileInput])}
onChange={(event) => updateField(key as keyof CompanyProfileInput, event.target.value as never)}
className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand"
className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand"
/>
</label>
))}
@@ -203,7 +203,7 @@ export function CompanySettingsPage() {
</label>
<label className="block">
<span className="mb-2 block text-sm font-semibold text-text">Font family</span>
<input value={form.theme.fontFamily} onChange={(event) => updateField("theme", { ...form.theme, fontFamily: event.target.value })} className="w-full rounded-2xl border border-line/70 bg-page px-4 py-3 text-text outline-none transition focus:border-brand" />
<input value={form.theme.fontFamily} onChange={(event) => updateField("theme", { ...form.theme, fontFamily: event.target.value })} className="w-full rounded-2xl border border-line/70 bg-page px-2 py-2 text-text outline-none transition focus:border-brand" />
</label>
</div>
<div className="mt-5 flex flex-col gap-3 rounded-2xl border border-line/70 bg-page/70 px-4 py-4 lg:flex-row lg:items-center lg:justify-between">