@gelabs/ovr 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-3KIDW4LT.js +13 -0
- package/dist/chunk-4SZXBT56.js +26 -0
- package/dist/chunk-55FQP2DO.js +46 -0
- package/dist/{chunk-JV7QQ22Q.js → chunk-5YYR37CF.js} +10 -1
- package/dist/chunk-5Z2IAD5I.js +72 -0
- package/dist/chunk-BBQBKQA4.js +31 -0
- package/dist/chunk-BIQ2J75Y.js +54 -0
- package/dist/chunk-E2D7QT6N.js +92 -0
- package/dist/chunk-EGKFELO3.js +15 -0
- package/dist/chunk-EYFZWQ4J.js +74 -0
- package/dist/chunk-GDOCD7LT.js +46 -0
- package/dist/chunk-IF5UAVIE.js +25 -0
- package/dist/chunk-JEYT63LE.js +25 -0
- package/dist/chunk-K3KIBHJF.js +20 -0
- package/dist/chunk-M35R6JLA.js +142 -0
- package/dist/chunk-MDTRBOPQ.js +22 -0
- package/dist/chunk-NSCIBSCW.js +24 -0
- package/dist/chunk-OE525ZER.js +31 -0
- package/dist/chunk-OWCGEEAZ.js +107 -0
- package/dist/chunk-QCRVT2SS.js +18 -0
- package/dist/chunk-SETIN6XP.js +95 -0
- package/dist/chunk-WOPU6DI7.js +77 -0
- package/dist/chunk-XQTVSNHC.js +18 -0
- package/dist/core-i18n.d.ts +2 -2
- package/dist/core-i18n.js +1 -1
- package/dist/data-db.d.ts +1 -4
- package/dist/data-mock-store.js +53 -1
- package/dist/data-prisma-store.d.ts +3 -1
- package/dist/data-prisma-store.js +84 -1
- package/dist/data-seed-runner.d.ts +2 -1
- package/dist/data.d.ts +13 -1
- package/dist/offline.d.ts +126 -0
- package/dist/offline.js +376 -0
- package/dist/{types-DrrNO_Ak.d.ts → types-CtBC5-TW.d.ts} +8 -0
- package/dist/ui-components-admin/admin-nav.d.ts +7 -0
- package/dist/ui-components-admin/admin-nav.js +83 -0
- package/dist/ui-components-admin/issuance-form.d.ts +15 -0
- package/dist/ui-components-admin/issuance-form.js +367 -0
- package/dist/ui-components-admin/stat-card.d.ts +10 -0
- package/dist/ui-components-admin/stat-card.js +29 -0
- package/dist/ui-components-admin/ticket-preview.d.ts +9 -0
- package/dist/ui-components-admin/ticket-preview.js +13 -0
- package/dist/ui-components-admin/tickets-table.d.ts +8 -0
- package/dist/ui-components-admin/tickets-table.js +50 -0
- package/dist/ui-components-citizen/citizen-nav.d.ts +5 -0
- package/dist/ui-components-citizen/citizen-nav.js +33 -0
- package/dist/ui-components-citizen/payment-form.d.ts +14 -0
- package/dist/ui-components-citizen/payment-form.js +168 -0
- package/dist/ui-components-citizen/payment-qr-dialog.d.ts +30 -0
- package/dist/ui-components-citizen/payment-qr-dialog.js +9 -0
- package/dist/ui-components-citizen/ticket-not-found.d.ts +5 -0
- package/dist/ui-components-citizen/ticket-not-found.js +21 -0
- package/dist/ui-components-citizen/violation-history-table.d.ts +16 -0
- package/dist/ui-components-citizen/violation-history-table.js +77 -0
- package/dist/ui-components-shared/amount-summary.d.ts +8 -0
- package/dist/ui-components-shared/amount-summary.js +7 -0
- package/dist/ui-components-shared/money.d.ts +9 -0
- package/dist/ui-components-shared/money.js +5 -0
- package/dist/ui-components-shared/municipal-seal.d.ts +11 -0
- package/dist/ui-components-shared/municipal-seal.js +6 -0
- package/dist/ui-components-shared/official-header.d.ts +5 -0
- package/dist/ui-components-shared/official-header.js +7 -0
- package/dist/ui-components-shared/print-button.d.ts +8 -0
- package/dist/ui-components-shared/print-button.js +17 -0
- package/dist/ui-components-shared/seal.d.ts +12 -0
- package/dist/ui-components-shared/seal.js +2 -0
- package/dist/ui-components-shared/site-header.d.ts +13 -0
- package/dist/ui-components-shared/site-header.js +40 -0
- package/dist/ui-components-shared/sonner.d.ts +6 -0
- package/dist/ui-components-shared/sonner.js +38 -0
- package/dist/ui-components-shared/status-badge.d.ts +9 -0
- package/dist/ui-components-shared/status-badge.js +3 -0
- package/dist/ui-components-shared/theme-toggle.d.ts +7 -0
- package/dist/ui-components-shared/theme-toggle.js +6 -0
- package/dist/ui-components-shared/ticket-receipt.d.ts +12 -0
- package/dist/ui-components-shared/ticket-receipt.js +158 -0
- package/dist/ui-components-shared/violations-table.d.ts +8 -0
- package/dist/ui-components-shared/violations-table.js +7 -0
- package/dist/ui-components-ui/alert.js +2 -74
- package/dist/ui-components-ui/badge.d.ts +1 -1
- package/dist/ui-components-ui/badge.js +2 -46
- package/dist/ui-components-ui/button.d.ts +2 -2
- package/dist/ui-components-ui/card.js +2 -95
- package/dist/ui-components-ui/checkbox.js +2 -31
- package/dist/ui-components-ui/dialog.js +3 -142
- package/dist/ui-components-ui/input.js +2 -20
- package/dist/ui-components-ui/label.js +2 -18
- package/dist/ui-components-ui/separator.js +2 -24
- package/dist/ui-components-ui/skeleton.js +2 -15
- package/dist/ui-components-ui/table.js +2 -107
- package/dist/ui-components-ui/textarea.js +2 -18
- package/dist/ui-config.d.ts +19 -2
- package/dist/ui-config.js +2 -36
- package/dist/ui-server.d.ts +1 -1
- package/dist/ui-server.js +1 -1
- package/package.json +24 -4
- package/prisma/migrations/20260611112111_init/migration.sql +142 -0
- package/prisma/migrations/20260611112121_add_ticket_sequence/migration.sql +4 -0
- package/prisma/migrations/20260612000000_split_violator_address/migration.sql +26 -0
- package/prisma/migrations/20260612000100_barangay_optional/migration.sql +2 -0
- package/prisma/migrations/migration_lock.toml +3 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { OfficialHeader } from '../chunk-4SZXBT56.js';
|
|
3
|
+
import '../chunk-IF5UAVIE.js';
|
|
4
|
+
import '../chunk-WOPU6DI7.js';
|
|
5
|
+
import { ViolationsTable } from '../chunk-JEYT63LE.js';
|
|
6
|
+
import { Separator } from '../chunk-NSCIBSCW.js';
|
|
7
|
+
import { StatusBadge } from '../chunk-OE525ZER.js';
|
|
8
|
+
import '../chunk-OWCGEEAZ.js';
|
|
9
|
+
import '../chunk-55FQP2DO.js';
|
|
10
|
+
import { Money } from '../chunk-3KIDW4LT.js';
|
|
11
|
+
import { useFormatters, useOvrConfig } from '../chunk-E2D7QT6N.js';
|
|
12
|
+
import { cn } from '../chunk-77QBZC7J.js';
|
|
13
|
+
import { formalName, formatAddress } from '../chunk-B634JHKZ.js';
|
|
14
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
15
|
+
|
|
16
|
+
function Field({ label, value }) {
|
|
17
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
18
|
+
/* @__PURE__ */ jsx("dt", { className: "text-[0.7rem] uppercase tracking-wide text-muted-foreground", children: label }),
|
|
19
|
+
/* @__PURE__ */ jsx("dd", { className: "font-medium tabular-nums", children: value || "\u2014" })
|
|
20
|
+
] });
|
|
21
|
+
}
|
|
22
|
+
function TicketReceipt({ ticket }) {
|
|
23
|
+
const { formatDate, formatDateTime } = useFormatters();
|
|
24
|
+
const { municipality, offices } = useOvrConfig();
|
|
25
|
+
const paid = ticket.status === "PAID";
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", { className: "print-receipt mx-auto max-w-3xl rounded-xl border bg-card p-6 text-card-foreground shadow-sm sm:p-8 print:rounded-none print:border-0 print:p-0 print:shadow-none", children: [
|
|
27
|
+
/* @__PURE__ */ jsx(OfficialHeader, {}),
|
|
28
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-6 flex items-center justify-between gap-4 print:mt-3", children: [
|
|
29
|
+
/* @__PURE__ */ jsx("h2", { className: "font-heading text-xl font-semibold tracking-tight print:text-base", children: "OVR Order of Payment" }),
|
|
30
|
+
/* @__PURE__ */ jsx(StatusBadge, { status: ticket.status })
|
|
31
|
+
] }),
|
|
32
|
+
/* @__PURE__ */ jsx(Separator, { className: "my-4 print:my-2" }),
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-5 print:mb-2", children: [
|
|
34
|
+
/* @__PURE__ */ jsx("p", { className: "text-[0.7rem] uppercase tracking-wide text-muted-foreground", children: "Name of Violator" }),
|
|
35
|
+
/* @__PURE__ */ jsx("p", { className: "font-heading text-lg font-semibold uppercase", children: formalName(ticket.violator) }),
|
|
36
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: formatAddress(ticket.violator) })
|
|
37
|
+
] }),
|
|
38
|
+
/* @__PURE__ */ jsxs("dl", { className: "grid grid-cols-2 gap-4 text-sm sm:grid-cols-3 print:gap-2", children: [
|
|
39
|
+
/* @__PURE__ */ jsx(Field, { label: "OVR Ticket No.", value: ticket.ovrTicketNo }),
|
|
40
|
+
/* @__PURE__ */ jsx(Field, { label: "Order of Payment No.", value: ticket.orderOfPaymentNo }),
|
|
41
|
+
/* @__PURE__ */ jsx(Field, { label: "Bill No.", value: ticket.billNo }),
|
|
42
|
+
/* @__PURE__ */ jsx(
|
|
43
|
+
Field,
|
|
44
|
+
{
|
|
45
|
+
label: "Date of Apprehension",
|
|
46
|
+
value: formatDateTime(ticket.apprehendedAt)
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
Field,
|
|
51
|
+
{
|
|
52
|
+
label: "Date of Assessment",
|
|
53
|
+
value: formatDateTime(ticket.assessedAt)
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
/* @__PURE__ */ jsx(Field, { label: "Payment Due Date", value: formatDate(ticket.dueDate) }),
|
|
57
|
+
/* @__PURE__ */ jsx(Field, { label: "License No.", value: ticket.violator.licenseNumber }),
|
|
58
|
+
/* @__PURE__ */ jsx(Field, { label: "Plate No.", value: ticket.violator.plateNumber }),
|
|
59
|
+
/* @__PURE__ */ jsx(Field, { label: "Place of Violation", value: ticket.placeOfViolation }),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
Field,
|
|
62
|
+
{
|
|
63
|
+
label: "Apprehending Officer",
|
|
64
|
+
value: `${ticket.officer.name}${ticket.officer.badgeNo ? ` (${ticket.officer.badgeNo})` : ""}`
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
] }),
|
|
68
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-6 print:mt-3", children: [
|
|
69
|
+
/* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-medium print:mb-1", children: "Violations" }),
|
|
70
|
+
/* @__PURE__ */ jsx("div", { className: "rounded-lg border", children: /* @__PURE__ */ jsx(ViolationsTable, { violations: ticket.violations }) })
|
|
71
|
+
] }),
|
|
72
|
+
/* @__PURE__ */ jsx("div", { className: "mt-5 flex justify-end print:mt-3", children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-xs space-y-2 text-sm", children: [
|
|
73
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
74
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Basic fines" }),
|
|
75
|
+
/* @__PURE__ */ jsx(Money, { value: ticket.basicFinesTotal })
|
|
76
|
+
] }),
|
|
77
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
|
|
78
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Penalty / surcharge" }),
|
|
79
|
+
/* @__PURE__ */ jsx(
|
|
80
|
+
Money,
|
|
81
|
+
{
|
|
82
|
+
value: ticket.penaltyAmount,
|
|
83
|
+
className: cn(ticket.penaltyAmount === 0 && "text-muted-foreground")
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
] }),
|
|
87
|
+
/* @__PURE__ */ jsx(Separator, {}),
|
|
88
|
+
/* @__PURE__ */ jsxs(
|
|
89
|
+
"div",
|
|
90
|
+
{
|
|
91
|
+
className: cn(
|
|
92
|
+
"flex items-baseline justify-between rounded-lg px-3 py-2",
|
|
93
|
+
paid ? "bg-emerald-50 dark:bg-emerald-400/10" : "bg-primary/5"
|
|
94
|
+
),
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: paid ? "Amount paid" : "Total amount due" }),
|
|
97
|
+
/* @__PURE__ */ jsx(
|
|
98
|
+
Money,
|
|
99
|
+
{
|
|
100
|
+
value: paid ? ticket.payment?.amount ?? 0 : ticket.totalAmountDue,
|
|
101
|
+
className: "text-lg font-bold"
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
] }) }),
|
|
108
|
+
paid && ticket.payment ? /* @__PURE__ */ jsxs("p", { className: "mt-3 text-right text-xs text-muted-foreground", children: [
|
|
109
|
+
"Paid via ",
|
|
110
|
+
ticket.payment.method.replace("_", " "),
|
|
111
|
+
" \xB7 Ref",
|
|
112
|
+
" ",
|
|
113
|
+
/* @__PURE__ */ jsx("span", { className: "font-mono", children: ticket.payment.referenceNo }),
|
|
114
|
+
" \xB7",
|
|
115
|
+
" ",
|
|
116
|
+
formatDateTime(ticket.payment.paidAt)
|
|
117
|
+
] }) : null,
|
|
118
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-8 grid grid-cols-2 gap-8 text-xs print:mt-3 print:gap-x-6 print:gap-y-2", children: [
|
|
119
|
+
/* @__PURE__ */ jsx(Signature, { label: "Approved for Payment" }),
|
|
120
|
+
/* @__PURE__ */ jsx(Signature, { label: "O.R. No." }),
|
|
121
|
+
/* @__PURE__ */ jsx(Signature, { label: "Signature of Violator / Authorized Representative" }),
|
|
122
|
+
/* @__PURE__ */ jsx(Signature, { label: "Released By" })
|
|
123
|
+
] }),
|
|
124
|
+
/* @__PURE__ */ jsx(Separator, { className: "my-5 print:my-2" }),
|
|
125
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1 text-xs text-muted-foreground", children: [
|
|
126
|
+
/* @__PURE__ */ jsx("p", { className: "font-medium text-foreground", children: "Reminders" }),
|
|
127
|
+
/* @__PURE__ */ jsxs("ul", { className: "list-disc space-y-1 pl-4", children: [
|
|
128
|
+
/* @__PURE__ */ jsx("li", { children: "If you wish to contest this violation, do not pay yet \u2014 file a complaint within seven (7) days from the date of apprehension." }),
|
|
129
|
+
/* @__PURE__ */ jsxs("li", { children: [
|
|
130
|
+
"Failure to settle on or before the due date incurs a",
|
|
131
|
+
" ",
|
|
132
|
+
"5% surcharge per month from the date of apprehension."
|
|
133
|
+
] }),
|
|
134
|
+
/* @__PURE__ */ jsx("li", { children: "Present this Order of Payment and the original OVR ticket when claiming any confiscated item." })
|
|
135
|
+
] }),
|
|
136
|
+
/* @__PURE__ */ jsxs("p", { className: "pt-2", children: [
|
|
137
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: offices.treasury.redemptionCenter }),
|
|
138
|
+
" \u2014 ",
|
|
139
|
+
offices.treasury.address,
|
|
140
|
+
". ",
|
|
141
|
+
offices.treasury.hours,
|
|
142
|
+
"."
|
|
143
|
+
] }),
|
|
144
|
+
/* @__PURE__ */ jsxs("p", { className: "pt-1", children: [
|
|
145
|
+
municipality.fullName,
|
|
146
|
+
" \xB7 This is a system-generated document."
|
|
147
|
+
] })
|
|
148
|
+
] })
|
|
149
|
+
] });
|
|
150
|
+
}
|
|
151
|
+
function Signature({ label }) {
|
|
152
|
+
return /* @__PURE__ */ jsxs("div", { className: "pt-5 print:pt-2", children: [
|
|
153
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-foreground/40" }),
|
|
154
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 text-muted-foreground", children: label })
|
|
155
|
+
] });
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export { TicketReceipt };
|
|
@@ -1,74 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
var alertVariants = cva(
|
|
6
|
-
"group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",
|
|
7
|
-
{
|
|
8
|
-
variants: {
|
|
9
|
-
variant: {
|
|
10
|
-
default: "bg-card text-card-foreground",
|
|
11
|
-
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
defaultVariants: {
|
|
15
|
-
variant: "default"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
);
|
|
19
|
-
function Alert({
|
|
20
|
-
className,
|
|
21
|
-
variant,
|
|
22
|
-
...props
|
|
23
|
-
}) {
|
|
24
|
-
return /* @__PURE__ */ jsx(
|
|
25
|
-
"div",
|
|
26
|
-
{
|
|
27
|
-
"data-slot": "alert",
|
|
28
|
-
role: "alert",
|
|
29
|
-
className: cn(alertVariants({ variant }), className),
|
|
30
|
-
...props
|
|
31
|
-
}
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
function AlertTitle({ className, ...props }) {
|
|
35
|
-
return /* @__PURE__ */ jsx(
|
|
36
|
-
"div",
|
|
37
|
-
{
|
|
38
|
-
"data-slot": "alert-title",
|
|
39
|
-
className: cn(
|
|
40
|
-
"font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground",
|
|
41
|
-
className
|
|
42
|
-
),
|
|
43
|
-
...props
|
|
44
|
-
}
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
function AlertDescription({
|
|
48
|
-
className,
|
|
49
|
-
...props
|
|
50
|
-
}) {
|
|
51
|
-
return /* @__PURE__ */ jsx(
|
|
52
|
-
"div",
|
|
53
|
-
{
|
|
54
|
-
"data-slot": "alert-description",
|
|
55
|
-
className: cn(
|
|
56
|
-
"text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",
|
|
57
|
-
className
|
|
58
|
-
),
|
|
59
|
-
...props
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
function AlertAction({ className, ...props }) {
|
|
64
|
-
return /* @__PURE__ */ jsx(
|
|
65
|
-
"div",
|
|
66
|
-
{
|
|
67
|
-
"data-slot": "alert-action",
|
|
68
|
-
className: cn("absolute top-2 right-2", className),
|
|
69
|
-
...props
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export { Alert, AlertAction, AlertDescription, AlertTitle };
|
|
1
|
+
export { Alert, AlertAction, AlertDescription, AlertTitle } from '../chunk-EYFZWQ4J.js';
|
|
2
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -4,7 +4,7 @@ import { useRender } from '@base-ui/react/use-render';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
10
10
|
|
|
@@ -1,46 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { useRender } from '@base-ui/react/use-render';
|
|
4
|
-
import { cva } from 'class-variance-authority';
|
|
5
|
-
|
|
6
|
-
var badgeVariants = cva(
|
|
7
|
-
"group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",
|
|
8
|
-
{
|
|
9
|
-
variants: {
|
|
10
|
-
variant: {
|
|
11
|
-
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
|
|
12
|
-
secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
|
|
13
|
-
destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
|
|
14
|
-
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
|
|
15
|
-
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
|
|
16
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
defaultVariants: {
|
|
20
|
-
variant: "default"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
function Badge({
|
|
25
|
-
className,
|
|
26
|
-
variant = "default",
|
|
27
|
-
render,
|
|
28
|
-
...props
|
|
29
|
-
}) {
|
|
30
|
-
return useRender({
|
|
31
|
-
defaultTagName: "span",
|
|
32
|
-
props: mergeProps(
|
|
33
|
-
{
|
|
34
|
-
className: cn(badgeVariants({ variant }), className)
|
|
35
|
-
},
|
|
36
|
-
props
|
|
37
|
-
),
|
|
38
|
-
render,
|
|
39
|
-
state: {
|
|
40
|
-
slot: "badge",
|
|
41
|
-
variant
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export { Badge, badgeVariants };
|
|
1
|
+
export { Badge, badgeVariants } from '../chunk-55FQP2DO.js';
|
|
2
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -4,8 +4,8 @@ import { Button as Button$1 } from '@base-ui/react/button';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
8
|
-
size?: "default" | "
|
|
7
|
+
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined;
|
|
8
|
+
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
9
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
10
|
declare function Button({ className, variant, size, ...props }: Button$1.Props & VariantProps<typeof buttonVariants>): React.JSX.Element;
|
|
11
11
|
|
|
@@ -1,95 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
function Card({
|
|
5
|
-
className,
|
|
6
|
-
size = "default",
|
|
7
|
-
...props
|
|
8
|
-
}) {
|
|
9
|
-
return /* @__PURE__ */ jsx(
|
|
10
|
-
"div",
|
|
11
|
-
{
|
|
12
|
-
"data-slot": "card",
|
|
13
|
-
"data-size": size,
|
|
14
|
-
className: cn(
|
|
15
|
-
"group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl",
|
|
16
|
-
className
|
|
17
|
-
),
|
|
18
|
-
...props
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
function CardHeader({ className, ...props }) {
|
|
23
|
-
return /* @__PURE__ */ jsx(
|
|
24
|
-
"div",
|
|
25
|
-
{
|
|
26
|
-
"data-slot": "card-header",
|
|
27
|
-
className: cn(
|
|
28
|
-
"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",
|
|
29
|
-
className
|
|
30
|
-
),
|
|
31
|
-
...props
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
function CardTitle({ className, ...props }) {
|
|
36
|
-
return /* @__PURE__ */ jsx(
|
|
37
|
-
"div",
|
|
38
|
-
{
|
|
39
|
-
"data-slot": "card-title",
|
|
40
|
-
className: cn(
|
|
41
|
-
"font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",
|
|
42
|
-
className
|
|
43
|
-
),
|
|
44
|
-
...props
|
|
45
|
-
}
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
function CardDescription({ className, ...props }) {
|
|
49
|
-
return /* @__PURE__ */ jsx(
|
|
50
|
-
"div",
|
|
51
|
-
{
|
|
52
|
-
"data-slot": "card-description",
|
|
53
|
-
className: cn("text-sm text-muted-foreground", className),
|
|
54
|
-
...props
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
function CardAction({ className, ...props }) {
|
|
59
|
-
return /* @__PURE__ */ jsx(
|
|
60
|
-
"div",
|
|
61
|
-
{
|
|
62
|
-
"data-slot": "card-action",
|
|
63
|
-
className: cn(
|
|
64
|
-
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
65
|
-
className
|
|
66
|
-
),
|
|
67
|
-
...props
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
function CardContent({ className, ...props }) {
|
|
72
|
-
return /* @__PURE__ */ jsx(
|
|
73
|
-
"div",
|
|
74
|
-
{
|
|
75
|
-
"data-slot": "card-content",
|
|
76
|
-
className: cn("px-4 group-data-[size=sm]/card:px-3", className),
|
|
77
|
-
...props
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
function CardFooter({ className, ...props }) {
|
|
82
|
-
return /* @__PURE__ */ jsx(
|
|
83
|
-
"div",
|
|
84
|
-
{
|
|
85
|
-
"data-slot": "card-footer",
|
|
86
|
-
className: cn(
|
|
87
|
-
"flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3",
|
|
88
|
-
className
|
|
89
|
-
),
|
|
90
|
-
...props
|
|
91
|
-
}
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|
|
1
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../chunk-SETIN6XP.js';
|
|
2
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -1,32 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import { CheckIcon } from 'lucide-react';
|
|
5
|
-
import { jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
function Checkbox({ className, ...props }) {
|
|
8
|
-
return /* @__PURE__ */ jsx(
|
|
9
|
-
Checkbox$1.Root,
|
|
10
|
-
{
|
|
11
|
-
"data-slot": "checkbox",
|
|
12
|
-
className: cn(
|
|
13
|
-
"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
|
|
14
|
-
className
|
|
15
|
-
),
|
|
16
|
-
...props,
|
|
17
|
-
children: /* @__PURE__ */ jsx(
|
|
18
|
-
Checkbox$1.Indicator,
|
|
19
|
-
{
|
|
20
|
-
"data-slot": "checkbox-indicator",
|
|
21
|
-
className: "grid place-content-center text-current transition-none [&>svg]:size-3.5",
|
|
22
|
-
children: /* @__PURE__ */ jsx(
|
|
23
|
-
CheckIcon,
|
|
24
|
-
{}
|
|
25
|
-
)
|
|
26
|
-
}
|
|
27
|
-
)
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export { Checkbox };
|
|
2
|
+
export { Checkbox } from '../chunk-BBQBKQA4.js';
|
|
3
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -1,143 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { XIcon } from 'lucide-react';
|
|
6
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
function Dialog({ ...props }) {
|
|
9
|
-
return /* @__PURE__ */ jsx(Dialog$1.Root, { "data-slot": "dialog", ...props });
|
|
10
|
-
}
|
|
11
|
-
function DialogTrigger({ ...props }) {
|
|
12
|
-
return /* @__PURE__ */ jsx(Dialog$1.Trigger, { "data-slot": "dialog-trigger", ...props });
|
|
13
|
-
}
|
|
14
|
-
function DialogPortal({ ...props }) {
|
|
15
|
-
return /* @__PURE__ */ jsx(Dialog$1.Portal, { "data-slot": "dialog-portal", ...props });
|
|
16
|
-
}
|
|
17
|
-
function DialogClose({ ...props }) {
|
|
18
|
-
return /* @__PURE__ */ jsx(Dialog$1.Close, { "data-slot": "dialog-close", ...props });
|
|
19
|
-
}
|
|
20
|
-
function DialogOverlay({
|
|
21
|
-
className,
|
|
22
|
-
...props
|
|
23
|
-
}) {
|
|
24
|
-
return /* @__PURE__ */ jsx(
|
|
25
|
-
Dialog$1.Backdrop,
|
|
26
|
-
{
|
|
27
|
-
"data-slot": "dialog-overlay",
|
|
28
|
-
className: cn(
|
|
29
|
-
"fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
|
|
30
|
-
className
|
|
31
|
-
),
|
|
32
|
-
...props
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
function DialogContent({
|
|
37
|
-
className,
|
|
38
|
-
children,
|
|
39
|
-
showCloseButton = true,
|
|
40
|
-
...props
|
|
41
|
-
}) {
|
|
42
|
-
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
43
|
-
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
44
|
-
/* @__PURE__ */ jsxs(
|
|
45
|
-
Dialog$1.Popup,
|
|
46
|
-
{
|
|
47
|
-
"data-slot": "dialog-content",
|
|
48
|
-
className: cn(
|
|
49
|
-
"fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
50
|
-
className
|
|
51
|
-
),
|
|
52
|
-
...props,
|
|
53
|
-
children: [
|
|
54
|
-
children,
|
|
55
|
-
showCloseButton && /* @__PURE__ */ jsxs(
|
|
56
|
-
Dialog$1.Close,
|
|
57
|
-
{
|
|
58
|
-
"data-slot": "dialog-close",
|
|
59
|
-
render: /* @__PURE__ */ jsx(
|
|
60
|
-
Button,
|
|
61
|
-
{
|
|
62
|
-
variant: "ghost",
|
|
63
|
-
className: "absolute top-2 right-2",
|
|
64
|
-
size: "icon-sm"
|
|
65
|
-
}
|
|
66
|
-
),
|
|
67
|
-
children: [
|
|
68
|
-
/* @__PURE__ */ jsx(
|
|
69
|
-
XIcon,
|
|
70
|
-
{}
|
|
71
|
-
),
|
|
72
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
73
|
-
]
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
]
|
|
77
|
-
}
|
|
78
|
-
)
|
|
79
|
-
] });
|
|
80
|
-
}
|
|
81
|
-
function DialogHeader({ className, ...props }) {
|
|
82
|
-
return /* @__PURE__ */ jsx(
|
|
83
|
-
"div",
|
|
84
|
-
{
|
|
85
|
-
"data-slot": "dialog-header",
|
|
86
|
-
className: cn("flex flex-col gap-2", className),
|
|
87
|
-
...props
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
function DialogFooter({
|
|
92
|
-
className,
|
|
93
|
-
showCloseButton = false,
|
|
94
|
-
children,
|
|
95
|
-
...props
|
|
96
|
-
}) {
|
|
97
|
-
return /* @__PURE__ */ jsxs(
|
|
98
|
-
"div",
|
|
99
|
-
{
|
|
100
|
-
"data-slot": "dialog-footer",
|
|
101
|
-
className: cn(
|
|
102
|
-
"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",
|
|
103
|
-
className
|
|
104
|
-
),
|
|
105
|
-
...props,
|
|
106
|
-
children: [
|
|
107
|
-
children,
|
|
108
|
-
showCloseButton && /* @__PURE__ */ jsx(Dialog$1.Close, { render: /* @__PURE__ */ jsx(Button, { variant: "outline" }), children: "Close" })
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
function DialogTitle({ className, ...props }) {
|
|
114
|
-
return /* @__PURE__ */ jsx(
|
|
115
|
-
Dialog$1.Title,
|
|
116
|
-
{
|
|
117
|
-
"data-slot": "dialog-title",
|
|
118
|
-
className: cn(
|
|
119
|
-
"font-heading text-base leading-none font-medium",
|
|
120
|
-
className
|
|
121
|
-
),
|
|
122
|
-
...props
|
|
123
|
-
}
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
function DialogDescription({
|
|
127
|
-
className,
|
|
128
|
-
...props
|
|
129
|
-
}) {
|
|
130
|
-
return /* @__PURE__ */ jsx(
|
|
131
|
-
Dialog$1.Description,
|
|
132
|
-
{
|
|
133
|
-
"data-slot": "dialog-description",
|
|
134
|
-
className: cn(
|
|
135
|
-
"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",
|
|
136
|
-
className
|
|
137
|
-
),
|
|
138
|
-
...props
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
2
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from '../chunk-M35R6JLA.js';
|
|
3
|
+
import '../chunk-I4WDVYHX.js';
|
|
4
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
function Input({ className, type, ...props }) {
|
|
6
|
-
return /* @__PURE__ */ jsx(
|
|
7
|
-
Input$1,
|
|
8
|
-
{
|
|
9
|
-
type,
|
|
10
|
-
"data-slot": "input",
|
|
11
|
-
className: cn(
|
|
12
|
-
"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
13
|
-
className
|
|
14
|
-
),
|
|
15
|
-
...props
|
|
16
|
-
}
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { Input };
|
|
1
|
+
export { Input } from '../chunk-K3KIBHJF.js';
|
|
2
|
+
import '../chunk-77QBZC7J.js';
|
|
@@ -1,19 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
function Label({ className, ...props }) {
|
|
6
|
-
return /* @__PURE__ */ jsx(
|
|
7
|
-
"label",
|
|
8
|
-
{
|
|
9
|
-
"data-slot": "label",
|
|
10
|
-
className: cn(
|
|
11
|
-
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
12
|
-
className
|
|
13
|
-
),
|
|
14
|
-
...props
|
|
15
|
-
}
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { Label };
|
|
2
|
+
export { Label } from '../chunk-XQTVSNHC.js';
|
|
3
|
+
import '../chunk-77QBZC7J.js';
|