@gelabs/ovr 0.4.2 → 0.4.4

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 (76) hide show
  1. package/dist/accounts.d.ts +52 -0
  2. package/dist/accounts.js +13 -0
  3. package/dist/audit.d.ts +13 -0
  4. package/dist/audit.js +11 -0
  5. package/dist/auth-auth.d.ts +1 -1
  6. package/dist/auth-rate-limit.d.ts +11 -2
  7. package/dist/auth-rate-limit.js +1 -1
  8. package/dist/auth.d.ts +2 -2
  9. package/dist/auth.js +1 -1
  10. package/dist/chunk-4EDMZRGS.js +98 -0
  11. package/dist/chunk-4JMHQKMK.js +268 -0
  12. package/dist/chunk-6662IONX.js +69 -0
  13. package/dist/chunk-6WMPBAUH.js +18 -0
  14. package/dist/{chunk-77ULDXQX.js → chunk-6ZJSEM4Y.js} +6 -1
  15. package/dist/chunk-7GVZZWK3.js +74 -0
  16. package/dist/chunk-ACXED4UH.js +403 -0
  17. package/dist/chunk-BBTAG3FD.js +165 -0
  18. package/dist/chunk-HX7QT2FE.js +452 -0
  19. package/dist/chunk-LC3S47FM.js +468 -0
  20. package/dist/chunk-NPTR7GFZ.js +432 -0
  21. package/dist/chunk-SLQRZBMR.js +66 -0
  22. package/dist/chunk-UBUXPJLN.js +29 -0
  23. package/dist/chunk-UN6Z4WGF.js +31 -0
  24. package/dist/chunk-YE3D2DYY.js +83 -0
  25. package/dist/citizen.d.ts +5 -0
  26. package/dist/citizen.js +12 -0
  27. package/dist/config.d.ts +2 -2
  28. package/dist/core-i18n.d.ts +1 -1
  29. package/dist/core.d.ts +2 -2
  30. package/dist/dashboard.d.ts +10 -0
  31. package/dist/dashboard.js +3 -0
  32. package/dist/data-mock-store.d.ts +1 -1
  33. package/dist/{format-C7MSwUHK.d.ts → format-VyCUfF8R.d.ts} +1 -1
  34. package/dist/index.d.ts +2 -2
  35. package/dist/notifications.d.ts +6 -0
  36. package/dist/notifications.js +11 -0
  37. package/dist/officers.d.ts +27 -0
  38. package/dist/officers.js +11 -0
  39. package/dist/offline.d.ts +1 -1
  40. package/dist/payments.d.ts +15 -0
  41. package/dist/payments.js +11 -0
  42. package/dist/roles.d.ts +37 -0
  43. package/dist/roles.js +12 -0
  44. package/dist/runtime.d.ts +1 -1
  45. package/dist/tickets.d.ts +6 -0
  46. package/dist/tickets.js +24 -0
  47. package/dist/ui-components-admin/accounts-manager.d.ts +3 -52
  48. package/dist/ui-components-admin/accounts-manager.js +11 -472
  49. package/dist/ui-components-admin/admin-nav.js +11 -83
  50. package/dist/ui-components-admin/issuance-form.js +15 -432
  51. package/dist/ui-components-admin/logs-viewer.d.ts +3 -13
  52. package/dist/ui-components-admin/logs-viewer.js +8 -98
  53. package/dist/ui-components-admin/notifications-list.js +6 -66
  54. package/dist/ui-components-admin/officers-manager.d.ts +3 -27
  55. package/dist/ui-components-admin/officers-manager.js +9 -268
  56. package/dist/ui-components-admin/roles-manager.d.ts +3 -37
  57. package/dist/ui-components-admin/roles-manager.js +10 -403
  58. package/dist/ui-components-admin/stat-card.d.ts +2 -10
  59. package/dist/ui-components-admin/stat-card.js +3 -29
  60. package/dist/ui-components-admin/ticket-preview.js +2 -2
  61. package/dist/ui-components-admin/tickets-table.js +7 -69
  62. package/dist/ui-components-admin/violations-manager.js +13 -452
  63. package/dist/ui-components-citizen/citizen-nav.js +3 -31
  64. package/dist/ui-components-citizen/payment-form.d.ts +3 -14
  65. package/dist/ui-components-citizen/payment-form.js +9 -165
  66. package/dist/ui-components-citizen/payment-qr-dialog.js +2 -2
  67. package/dist/ui-components-citizen/ticket-not-found.js +4 -18
  68. package/dist/ui-components-citizen/violation-history-table.js +6 -74
  69. package/dist/ui-config.d.ts +2 -2
  70. package/dist/ui-server.d.ts +2 -2
  71. package/dist/violations.d.ts +3 -0
  72. package/dist/violations.js +14 -0
  73. package/package.json +46 -6
  74. package/dist/{chunk-ZUMEOZ22.js → chunk-JTSTNZAB.js} +1 -1
  75. package/dist/{chunk-TLG4C2XI.js → chunk-QCAURREW.js} +1 -1
  76. package/dist/{schema-CdsFQxIg.d.ts → schema-BUhh_mKX.d.ts} +108 -108
@@ -1,168 +1,12 @@
1
1
  "use client";
2
- import { PaymentQrDialog } from '../chunk-TLG4C2XI.js';
3
- import { Alert, AlertDescription } from '../chunk-EYFZWQ4J.js';
4
- import { Separator } from '../chunk-NSCIBSCW.js';
5
- import { Money } from '../chunk-BVI5XDDA.js';
6
- import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '../chunk-SETIN6XP.js';
2
+ export { PaymentForm } from '../chunk-BBTAG3FD.js';
3
+ import '../chunk-QCAURREW.js';
4
+ import '../chunk-NSCIBSCW.js';
5
+ import '../chunk-EYFZWQ4J.js';
7
6
  import '../chunk-M35R6JLA.js';
8
- import { Button } from '../chunk-I4WDVYHX.js';
9
- import { useOvrConfig, useCopy } from '../chunk-TJSNVTVB.js';
10
- import { cn } from '../chunk-77QBZC7J.js';
7
+ import '../chunk-BVI5XDDA.js';
8
+ import '../chunk-I4WDVYHX.js';
9
+ import '../chunk-TJSNVTVB.js';
10
+ import '../chunk-SETIN6XP.js';
11
+ import '../chunk-77QBZC7J.js';
11
12
  import '../chunk-BI4EGLPG.js';
12
- import * as React from 'react';
13
- import { toast } from 'sonner';
14
- import { Check, TriangleAlert, Loader2, Lock, Building2, Landmark, Smartphone, Wallet } from 'lucide-react';
15
- import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
16
-
17
- var ICONS = {
18
- GCASH: /* @__PURE__ */ jsx(Wallet, { className: "size-5" }),
19
- MAYA: /* @__PURE__ */ jsx(Smartphone, { className: "size-5" }),
20
- LANDBANK: /* @__PURE__ */ jsx(Landmark, { className: "size-5" }),
21
- OVER_THE_COUNTER: /* @__PURE__ */ jsx(Building2, { className: "size-5" })
22
- };
23
- function PaymentForm({
24
- ovrTicketNo,
25
- lastName,
26
- violatorName,
27
- basicFines,
28
- penalty,
29
- amount,
30
- payAction
31
- }) {
32
- const { paymentMethods } = useOvrConfig();
33
- const copy = useCopy();
34
- const payMethods = paymentMethods.filter((m) => m.id !== "OVER_THE_COUNTER");
35
- const [method, setMethod] = React.useState(
36
- () => payMethods[0]?.id ?? "GCASH"
37
- );
38
- const [error, setError] = React.useState(null);
39
- const [isPending, startTransition] = React.useTransition();
40
- const [qrOpen, setQrOpen] = React.useState(false);
41
- function pay() {
42
- setError(null);
43
- startTransition(async () => {
44
- const res = await payAction({ ovrTicketNo, lastName, method });
45
- if (res?.error) {
46
- setError(res.error);
47
- toast.error(res.error);
48
- }
49
- });
50
- }
51
- const methodLabel = paymentMethods.find((m) => m.id === method)?.label ?? method;
52
- function handlePay() {
53
- if (method === "OVER_THE_COUNTER") {
54
- pay();
55
- } else {
56
- setError(null);
57
- setQrOpen(true);
58
- }
59
- }
60
- return /* @__PURE__ */ jsxs(Fragment, { children: [
61
- /* @__PURE__ */ jsxs(Card, { className: "overflow-visible", children: [
62
- /* @__PURE__ */ jsxs(CardHeader, { children: [
63
- /* @__PURE__ */ jsx(CardTitle, { className: "text-xl", children: copy.citizen.pay.title }),
64
- /* @__PURE__ */ jsxs(CardDescription, { children: [
65
- violatorName,
66
- " \xB7 ",
67
- /* @__PURE__ */ jsx("span", { className: "font-mono", children: ovrTicketNo })
68
- ] })
69
- ] }),
70
- /* @__PURE__ */ jsxs(CardContent, { className: "space-y-5", children: [
71
- /* @__PURE__ */ jsxs("div", { className: "space-y-2 rounded-lg border bg-muted/20 p-3 text-sm", children: [
72
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
73
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Basic fines" }),
74
- /* @__PURE__ */ jsx(Money, { value: basicFines })
75
- ] }),
76
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between", children: [
77
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Penalty / surcharge" }),
78
- /* @__PURE__ */ jsx(
79
- Money,
80
- {
81
- value: penalty,
82
- className: cn(penalty === 0 && "text-muted-foreground")
83
- }
84
- )
85
- ] }),
86
- /* @__PURE__ */ jsx(Separator, {}),
87
- /* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between", children: [
88
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Total to pay" }),
89
- /* @__PURE__ */ jsx(Money, { value: amount, className: "text-xl font-bold" })
90
- ] })
91
- ] }),
92
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
93
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: copy.citizen.pay.choose }),
94
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: payMethods.map((m) => {
95
- const active = method === m.id;
96
- return /* @__PURE__ */ jsxs(
97
- "button",
98
- {
99
- type: "button",
100
- onClick: () => setMethod(m.id),
101
- "aria-pressed": active,
102
- className: cn(
103
- "flex items-center gap-2.5 rounded-lg border p-3 text-left transition-colors outline-none focus-visible:ring-3 focus-visible:ring-ring/50",
104
- active ? "border-primary bg-primary/5 ring-1 ring-primary/30" : "hover:bg-muted/40"
105
- ),
106
- children: [
107
- /* @__PURE__ */ jsx(
108
- "span",
109
- {
110
- className: cn(
111
- "flex size-9 shrink-0 items-center justify-center rounded-lg",
112
- active ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground"
113
- ),
114
- children: ICONS[m.id]
115
- }
116
- ),
117
- /* @__PURE__ */ jsx("span", { className: "min-w-0", children: /* @__PURE__ */ jsx("span", { className: "block truncate text-sm font-medium", children: m.label }) }),
118
- active ? /* @__PURE__ */ jsx(Check, { className: "ml-auto size-4 shrink-0 text-primary" }) : null
119
- ]
120
- },
121
- m.id
122
- );
123
- }) })
124
- ] }),
125
- error ? /* @__PURE__ */ jsxs(Alert, { variant: "destructive", children: [
126
- /* @__PURE__ */ jsx(TriangleAlert, {}),
127
- /* @__PURE__ */ jsx(AlertDescription, { children: error })
128
- ] }) : null,
129
- /* @__PURE__ */ jsx(
130
- Button,
131
- {
132
- onClick: handlePay,
133
- disabled: isPending,
134
- className: "h-11 w-full gap-2 text-base",
135
- children: isPending ? /* @__PURE__ */ jsxs(Fragment, { children: [
136
- /* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }),
137
- copy.citizen.pay.processing
138
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
139
- /* @__PURE__ */ jsx(Lock, { className: "size-4" }),
140
- copy.citizen.pay.payNow,
141
- " ",
142
- /* @__PURE__ */ jsx(Money, { value: amount, className: "font-semibold" })
143
- ] })
144
- }
145
- ),
146
- /* @__PURE__ */ jsxs("p", { className: "flex items-center justify-center gap-1.5 text-center text-xs text-muted-foreground", children: [
147
- /* @__PURE__ */ jsx(Lock, { className: "size-3" }),
148
- copy.citizen.pay.secure
149
- ] })
150
- ] })
151
- ] }),
152
- /* @__PURE__ */ jsx(
153
- PaymentQrDialog,
154
- {
155
- open: qrOpen,
156
- onOpenChange: setQrOpen,
157
- method,
158
- methodLabel,
159
- amount,
160
- ovrTicketNo,
161
- lastName,
162
- payAction
163
- }
164
- )
165
- ] });
166
- }
167
-
168
- export { PaymentForm };
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- export { PaymentQrDialog } from '../chunk-TLG4C2XI.js';
2
+ export { PaymentQrDialog } from '../chunk-QCAURREW.js';
3
3
  import '../chunk-EYFZWQ4J.js';
4
- import '../chunk-BVI5XDDA.js';
5
4
  import '../chunk-M35R6JLA.js';
5
+ import '../chunk-BVI5XDDA.js';
6
6
  import '../chunk-I4WDVYHX.js';
7
7
  import '../chunk-TJSNVTVB.js';
8
8
  import '../chunk-77QBZC7J.js';
@@ -1,21 +1,7 @@
1
1
  "use client";
2
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
3
- import { buttonVariants } from '../chunk-I4WDVYHX.js';
4
- import { useCopy } from '../chunk-TJSNVTVB.js';
2
+ export { TicketNotFound } from '../chunk-6WMPBAUH.js';
3
+ import '../chunk-I4WDVYHX.js';
4
+ import '../chunk-TJSNVTVB.js';
5
+ import '../chunk-SETIN6XP.js';
5
6
  import '../chunk-77QBZC7J.js';
6
7
  import '../chunk-BI4EGLPG.js';
7
- import Link from 'next/link';
8
- import { FileQuestion } from 'lucide-react';
9
- import { jsx, jsxs } from 'react/jsx-runtime';
10
-
11
- function TicketNotFound() {
12
- const copy = useCopy();
13
- return /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-lg px-4 py-16 text-center", children: /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardContent, { className: "flex flex-col items-center gap-3 py-8", children: [
14
- /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground", children: /* @__PURE__ */ jsx(FileQuestion, { className: "size-6" }) }),
15
- /* @__PURE__ */ jsx("h1", { className: "font-heading text-lg font-semibold", children: copy.citizen.notFoundTitle }),
16
- /* @__PURE__ */ jsx("p", { className: "max-w-sm text-sm text-muted-foreground", children: copy.citizen.notFoundBody }),
17
- /* @__PURE__ */ jsx(Link, { href: "/citizen/search", className: buttonVariants({}), children: copy.citizen.ticket.backToSearch })
18
- ] }) }) });
19
- }
20
-
21
- export { TicketNotFound };
@@ -1,77 +1,9 @@
1
1
  "use client";
2
- import { StatusBadge } from '../chunk-OE525ZER.js';
3
- import { Money } from '../chunk-BVI5XDDA.js';
4
- import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
2
+ export { ViolationHistoryTable } from '../chunk-7GVZZWK3.js';
3
+ import '../chunk-OE525ZER.js';
4
+ import '../chunk-BVI5XDDA.js';
5
+ import '../chunk-OWCGEEAZ.js';
5
6
  import '../chunk-55FQP2DO.js';
6
- import { useFormatters, useCopy } from '../chunk-TJSNVTVB.js';
7
- import { cn } from '../chunk-77QBZC7J.js';
7
+ import '../chunk-TJSNVTVB.js';
8
+ import '../chunk-77QBZC7J.js';
8
9
  import '../chunk-BI4EGLPG.js';
9
- import Link from 'next/link';
10
- import { ChevronRight } from 'lucide-react';
11
- import { jsx, jsxs } from 'react/jsx-runtime';
12
-
13
- function ViolationHistoryTable({
14
- tickets,
15
- currentTicketNo,
16
- lastName
17
- }) {
18
- const { formatDate } = useFormatters();
19
- const copy = useCopy();
20
- const t = copy.citizen.ticket.history;
21
- if (tickets.length === 0) {
22
- return /* @__PURE__ */ jsx("div", { className: "px-4 py-10 text-center text-sm text-muted-foreground", children: t.empty });
23
- }
24
- return /* @__PURE__ */ jsxs(Table, { children: [
25
- /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
26
- /* @__PURE__ */ jsx(TableHead, { children: t.colTicketNo }),
27
- /* @__PURE__ */ jsx(TableHead, { className: "hidden sm:table-cell", children: t.colDate }),
28
- /* @__PURE__ */ jsx(TableHead, { children: t.colViolations }),
29
- /* @__PURE__ */ jsx(TableHead, { children: t.colStatus }),
30
- /* @__PURE__ */ jsx(TableHead, { className: "text-right", children: t.colAmount }),
31
- /* @__PURE__ */ jsx(TableHead, { className: "w-8" })
32
- ] }) }),
33
- /* @__PURE__ */ jsx(TableBody, { children: tickets.map((ticket) => {
34
- const isCurrent = ticket.ovrTicketNo === currentTicketNo;
35
- const href = `/citizen/ticket/${encodeURIComponent(
36
- ticket.ovrTicketNo
37
- )}?ln=${encodeURIComponent(lastName)}`;
38
- const amount = ticket.status === "PAID" ? ticket.payment?.amount ?? 0 : ticket.totalAmountDue;
39
- const first = ticket.violations[0];
40
- const extra = ticket.violations.length - 1;
41
- return /* @__PURE__ */ jsxs(
42
- TableRow,
43
- {
44
- className: cn(isCurrent && "bg-muted/40"),
45
- children: [
46
- /* @__PURE__ */ jsx(TableCell, { className: "font-mono text-xs", children: /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
47
- /* @__PURE__ */ jsx(Link, { href, className: "hover:underline", children: ticket.ovrTicketNo }),
48
- isCurrent ? /* @__PURE__ */ jsx("span", { className: "rounded bg-brand/12 px-1.5 py-0.5 text-[0.65rem] font-medium uppercase tracking-wide text-brand", children: t.current }) : null
49
- ] }) }),
50
- /* @__PURE__ */ jsx(TableCell, { className: "hidden text-muted-foreground sm:table-cell", children: formatDate(ticket.apprehendedAt) }),
51
- /* @__PURE__ */ jsxs(TableCell, { className: "max-w-[16rem] truncate text-muted-foreground", children: [
52
- first?.title ?? "\u2014",
53
- extra > 0 ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
54
- " +",
55
- extra
56
- ] }) : null
57
- ] }),
58
- /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(StatusBadge, { status: ticket.status }) }),
59
- /* @__PURE__ */ jsx(TableCell, { className: "text-right", children: /* @__PURE__ */ jsx(Money, { value: amount }) }),
60
- /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(
61
- Link,
62
- {
63
- href,
64
- className: "text-muted-foreground hover:text-foreground",
65
- "aria-label": `Open ${ticket.ovrTicketNo}`,
66
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
67
- }
68
- ) })
69
- ]
70
- },
71
- ticket.ovrTicketNo
72
- );
73
- }) })
74
- ] });
75
- }
76
-
77
- export { ViolationHistoryTable };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { b as OvrConfig } from './schema-CdsFQxIg.js';
3
- import { a as Formatters } from './format-C7MSwUHK.js';
2
+ import { b as OvrConfig } from './schema-BUhh_mKX.js';
3
+ import { a as Formatters } from './format-VyCUfF8R.js';
4
4
  import { D as Dictionary } from './types-DNEO6wrO.js';
5
5
  import 'zod';
6
6
  import './types.js';
@@ -1,5 +1,5 @@
1
- import { b as OvrConfig } from './schema-CdsFQxIg.js';
2
- import { a as Formatters } from './format-C7MSwUHK.js';
1
+ import { b as OvrConfig } from './schema-BUhh_mKX.js';
2
+ import { a as Formatters } from './format-VyCUfF8R.js';
3
3
  import { D as Dictionary, C as CopyOverrides } from './types-DNEO6wrO.js';
4
4
  import 'zod';
5
5
  import './types.js';
@@ -0,0 +1,3 @@
1
+ export { CreateViolationAction, DeleteViolationAction, UpdateViolationAction, ViolationsManager, ViolationsManagerProps } from './ui-components-admin/violations-manager.js';
2
+ import 'react';
3
+ import './types.js';
@@ -0,0 +1,14 @@
1
+ export { ViolationsManager } from './chunk-HX7QT2FE.js';
2
+ import './chunk-QCRVT2SS.js';
3
+ import './chunk-XQTVSNHC.js';
4
+ import './chunk-M35R6JLA.js';
5
+ import './chunk-6YFZLXFP.js';
6
+ import './chunk-K3KIBHJF.js';
7
+ import './chunk-BVI5XDDA.js';
8
+ import './chunk-OWCGEEAZ.js';
9
+ import './chunk-55FQP2DO.js';
10
+ import './chunk-I4WDVYHX.js';
11
+ import './chunk-TJSNVTVB.js';
12
+ import './chunk-SETIN6XP.js';
13
+ import './chunk-77QBZC7J.js';
14
+ import './chunk-BI4EGLPG.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gelabs/ovr",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "The @gelabs/ovr SDK — one self-contained package over the OVR (Online Ordinance Violation Receipt) platform. A standalone per-LGU app installs ONLY this package and imports from @gelabs/ovr/{config,core,data,runtime,auth,ui,...}; the seven @gelabs/ovr-* implementation packages are bundled in at build time.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -114,6 +114,46 @@
114
114
  "types": "./dist/offline.d.ts",
115
115
  "default": "./dist/offline.js"
116
116
  },
117
+ "./tickets": {
118
+ "types": "./dist/tickets.d.ts",
119
+ "default": "./dist/tickets.js"
120
+ },
121
+ "./violations": {
122
+ "types": "./dist/violations.d.ts",
123
+ "default": "./dist/violations.js"
124
+ },
125
+ "./payments": {
126
+ "types": "./dist/payments.d.ts",
127
+ "default": "./dist/payments.js"
128
+ },
129
+ "./accounts": {
130
+ "types": "./dist/accounts.d.ts",
131
+ "default": "./dist/accounts.js"
132
+ },
133
+ "./roles": {
134
+ "types": "./dist/roles.d.ts",
135
+ "default": "./dist/roles.js"
136
+ },
137
+ "./officers": {
138
+ "types": "./dist/officers.d.ts",
139
+ "default": "./dist/officers.js"
140
+ },
141
+ "./audit": {
142
+ "types": "./dist/audit.d.ts",
143
+ "default": "./dist/audit.js"
144
+ },
145
+ "./notifications": {
146
+ "types": "./dist/notifications.d.ts",
147
+ "default": "./dist/notifications.js"
148
+ },
149
+ "./citizen": {
150
+ "types": "./dist/citizen.d.ts",
151
+ "default": "./dist/citizen.js"
152
+ },
153
+ "./dashboard": {
154
+ "types": "./dist/dashboard.d.ts",
155
+ "default": "./dist/dashboard.js"
156
+ },
117
157
  "./generated/client": "./dist/generated/client/index.js",
118
158
  "./prisma/schema.prisma": "./prisma/schema.prisma",
119
159
  "./styles.css": "./dist/styles.css",
@@ -158,14 +198,14 @@
158
198
  "react-dom": "19.2.4",
159
199
  "tsup": "^8.4.0",
160
200
  "typescript": "^5",
161
- "@gelabs/ovr-auth": "0.0.0",
162
- "@gelabs/ovr-data": "0.0.0",
163
201
  "@gelabs/ovr-types": "0.0.0",
164
- "@gelabs/ovr-offline": "0.0.0",
202
+ "@gelabs/ovr-data": "0.0.0",
165
203
  "@gelabs/ovr-core": "0.0.0",
166
- "@gelabs/ovr-ui": "0.0.0",
204
+ "@gelabs/ovr-runtime": "0.0.0",
167
205
  "@gelabs/ovr-config": "0.0.0",
168
- "@gelabs/ovr-runtime": "0.0.0"
206
+ "@gelabs/ovr-auth": "0.0.0",
207
+ "@gelabs/ovr-ui": "0.0.0",
208
+ "@gelabs/ovr-offline": "0.0.0"
169
209
  },
170
210
  "scripts": {
171
211
  "build": "tsup && node scripts/copy-assets.mjs",
@@ -1,8 +1,8 @@
1
1
  import { ViolationsTable } from './chunk-IBZVIUNI.js';
2
2
  import { AmountSummary } from './chunk-GLIK5BHP.js';
3
3
  import { StatusBadge } from './chunk-OE525ZER.js';
4
- import { Card, CardHeader, CardTitle, CardContent } from './chunk-SETIN6XP.js';
5
4
  import { useFormatters } from './chunk-TJSNVTVB.js';
5
+ import { Card, CardHeader, CardTitle, CardContent } from './chunk-SETIN6XP.js';
6
6
  import { formalName, formatAddress } from './chunk-BI4EGLPG.js';
7
7
  import { jsxs, jsx } from 'react/jsx-runtime';
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Alert, AlertDescription } from './chunk-EYFZWQ4J.js';
2
- import { Money } from './chunk-BVI5XDDA.js';
3
2
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from './chunk-M35R6JLA.js';
3
+ import { Money } from './chunk-BVI5XDDA.js';
4
4
  import { Button } from './chunk-I4WDVYHX.js';
5
5
  import { useCopy } from './chunk-TJSNVTVB.js';
6
6
  import * as React from 'react';