@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.
Files changed (101) hide show
  1. package/dist/chunk-3KIDW4LT.js +13 -0
  2. package/dist/chunk-4SZXBT56.js +26 -0
  3. package/dist/chunk-55FQP2DO.js +46 -0
  4. package/dist/{chunk-JV7QQ22Q.js → chunk-5YYR37CF.js} +10 -1
  5. package/dist/chunk-5Z2IAD5I.js +72 -0
  6. package/dist/chunk-BBQBKQA4.js +31 -0
  7. package/dist/chunk-BIQ2J75Y.js +54 -0
  8. package/dist/chunk-E2D7QT6N.js +92 -0
  9. package/dist/chunk-EGKFELO3.js +15 -0
  10. package/dist/chunk-EYFZWQ4J.js +74 -0
  11. package/dist/chunk-GDOCD7LT.js +46 -0
  12. package/dist/chunk-IF5UAVIE.js +25 -0
  13. package/dist/chunk-JEYT63LE.js +25 -0
  14. package/dist/chunk-K3KIBHJF.js +20 -0
  15. package/dist/chunk-M35R6JLA.js +142 -0
  16. package/dist/chunk-MDTRBOPQ.js +22 -0
  17. package/dist/chunk-NSCIBSCW.js +24 -0
  18. package/dist/chunk-OE525ZER.js +31 -0
  19. package/dist/chunk-OWCGEEAZ.js +107 -0
  20. package/dist/chunk-QCRVT2SS.js +18 -0
  21. package/dist/chunk-SETIN6XP.js +95 -0
  22. package/dist/chunk-WOPU6DI7.js +77 -0
  23. package/dist/chunk-XQTVSNHC.js +18 -0
  24. package/dist/core-i18n.d.ts +2 -2
  25. package/dist/core-i18n.js +1 -1
  26. package/dist/data-db.d.ts +1 -4
  27. package/dist/data-mock-store.js +53 -1
  28. package/dist/data-prisma-store.d.ts +3 -1
  29. package/dist/data-prisma-store.js +84 -1
  30. package/dist/data-seed-runner.d.ts +2 -1
  31. package/dist/data.d.ts +13 -1
  32. package/dist/offline.d.ts +126 -0
  33. package/dist/offline.js +376 -0
  34. package/dist/{types-DrrNO_Ak.d.ts → types-CtBC5-TW.d.ts} +8 -0
  35. package/dist/ui-components-admin/admin-nav.d.ts +7 -0
  36. package/dist/ui-components-admin/admin-nav.js +83 -0
  37. package/dist/ui-components-admin/issuance-form.d.ts +15 -0
  38. package/dist/ui-components-admin/issuance-form.js +367 -0
  39. package/dist/ui-components-admin/stat-card.d.ts +10 -0
  40. package/dist/ui-components-admin/stat-card.js +29 -0
  41. package/dist/ui-components-admin/ticket-preview.d.ts +9 -0
  42. package/dist/ui-components-admin/ticket-preview.js +13 -0
  43. package/dist/ui-components-admin/tickets-table.d.ts +8 -0
  44. package/dist/ui-components-admin/tickets-table.js +50 -0
  45. package/dist/ui-components-citizen/citizen-nav.d.ts +5 -0
  46. package/dist/ui-components-citizen/citizen-nav.js +33 -0
  47. package/dist/ui-components-citizen/payment-form.d.ts +14 -0
  48. package/dist/ui-components-citizen/payment-form.js +168 -0
  49. package/dist/ui-components-citizen/payment-qr-dialog.d.ts +30 -0
  50. package/dist/ui-components-citizen/payment-qr-dialog.js +9 -0
  51. package/dist/ui-components-citizen/ticket-not-found.d.ts +5 -0
  52. package/dist/ui-components-citizen/ticket-not-found.js +21 -0
  53. package/dist/ui-components-citizen/violation-history-table.d.ts +16 -0
  54. package/dist/ui-components-citizen/violation-history-table.js +77 -0
  55. package/dist/ui-components-shared/amount-summary.d.ts +8 -0
  56. package/dist/ui-components-shared/amount-summary.js +7 -0
  57. package/dist/ui-components-shared/money.d.ts +9 -0
  58. package/dist/ui-components-shared/money.js +5 -0
  59. package/dist/ui-components-shared/municipal-seal.d.ts +11 -0
  60. package/dist/ui-components-shared/municipal-seal.js +6 -0
  61. package/dist/ui-components-shared/official-header.d.ts +5 -0
  62. package/dist/ui-components-shared/official-header.js +7 -0
  63. package/dist/ui-components-shared/print-button.d.ts +8 -0
  64. package/dist/ui-components-shared/print-button.js +17 -0
  65. package/dist/ui-components-shared/seal.d.ts +12 -0
  66. package/dist/ui-components-shared/seal.js +2 -0
  67. package/dist/ui-components-shared/site-header.d.ts +13 -0
  68. package/dist/ui-components-shared/site-header.js +40 -0
  69. package/dist/ui-components-shared/sonner.d.ts +6 -0
  70. package/dist/ui-components-shared/sonner.js +38 -0
  71. package/dist/ui-components-shared/status-badge.d.ts +9 -0
  72. package/dist/ui-components-shared/status-badge.js +3 -0
  73. package/dist/ui-components-shared/theme-toggle.d.ts +7 -0
  74. package/dist/ui-components-shared/theme-toggle.js +6 -0
  75. package/dist/ui-components-shared/ticket-receipt.d.ts +12 -0
  76. package/dist/ui-components-shared/ticket-receipt.js +158 -0
  77. package/dist/ui-components-shared/violations-table.d.ts +8 -0
  78. package/dist/ui-components-shared/violations-table.js +7 -0
  79. package/dist/ui-components-ui/alert.js +2 -74
  80. package/dist/ui-components-ui/badge.d.ts +1 -1
  81. package/dist/ui-components-ui/badge.js +2 -46
  82. package/dist/ui-components-ui/button.d.ts +2 -2
  83. package/dist/ui-components-ui/card.js +2 -95
  84. package/dist/ui-components-ui/checkbox.js +2 -31
  85. package/dist/ui-components-ui/dialog.js +3 -142
  86. package/dist/ui-components-ui/input.js +2 -20
  87. package/dist/ui-components-ui/label.js +2 -18
  88. package/dist/ui-components-ui/separator.js +2 -24
  89. package/dist/ui-components-ui/skeleton.js +2 -15
  90. package/dist/ui-components-ui/table.js +2 -107
  91. package/dist/ui-components-ui/textarea.js +2 -18
  92. package/dist/ui-config.d.ts +19 -2
  93. package/dist/ui-config.js +2 -36
  94. package/dist/ui-server.d.ts +1 -1
  95. package/dist/ui-server.js +1 -1
  96. package/package.json +24 -4
  97. package/prisma/migrations/20260611112111_init/migration.sql +142 -0
  98. package/prisma/migrations/20260611112121_add_ticket_sequence/migration.sql +4 -0
  99. package/prisma/migrations/20260612000000_split_violator_address/migration.sql +26 -0
  100. package/prisma/migrations/20260612000100_barangay_optional/migration.sql +2 -0
  101. 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 };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { IssuedViolation } from '../types.js';
3
+
4
+ declare function ViolationsTable({ violations, }: {
5
+ violations: IssuedViolation[];
6
+ }): React.JSX.Element;
7
+
8
+ export { ViolationsTable };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ export { ViolationsTable } from '../chunk-JEYT63LE.js';
3
+ import '../chunk-OWCGEEAZ.js';
4
+ import '../chunk-3KIDW4LT.js';
5
+ import '../chunk-E2D7QT6N.js';
6
+ import '../chunk-77QBZC7J.js';
7
+ import '../chunk-B634JHKZ.js';
@@ -1,74 +1,2 @@
1
- import { cn } from '../chunk-77QBZC7J.js';
2
- import { cva } from 'class-variance-authority';
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?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
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
- import { cn } from '../chunk-77QBZC7J.js';
2
- import { mergeProps } from '@base-ui/react/merge-props';
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?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
8
- size?: "default" | "sm" | "lg" | "xs" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
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
- import { cn } from '../chunk-77QBZC7J.js';
2
- import { jsx } from 'react/jsx-runtime';
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
- import { cn } from '../chunk-77QBZC7J.js';
3
- import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
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
- import { Button } from '../chunk-I4WDVYHX.js';
3
- import { cn } from '../chunk-77QBZC7J.js';
4
- import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
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
- import { cn } from '../chunk-77QBZC7J.js';
2
- import { Input as Input$1 } from '@base-ui/react/input';
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
- import { cn } from '../chunk-77QBZC7J.js';
3
- import { jsx } from 'react/jsx-runtime';
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';