@gelabs/ovr 0.4.1 → 0.4.2

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.
@@ -1,6 +1,6 @@
1
- import { ViolationsTable } from './chunk-6BH4EFP3.js';
2
- import { StatusBadge } from './chunk-OE525ZER.js';
1
+ import { ViolationsTable } from './chunk-IBZVIUNI.js';
3
2
  import { AmountSummary } from './chunk-GLIK5BHP.js';
3
+ import { StatusBadge } from './chunk-OE525ZER.js';
4
4
  import { Card, CardHeader, CardTitle, CardContent } from './chunk-SETIN6XP.js';
5
5
  import { useFormatters } from './chunk-TJSNVTVB.js';
6
6
  import { formalName, formatAddress } from './chunk-BI4EGLPG.js';
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
2
3
  import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
3
- import { Label } from '../chunk-XQTVSNHC.js';
4
- import { Input } from '../chunk-K3KIBHJF.js';
5
- import { Badge } from '../chunk-55FQP2DO.js';
6
4
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
5
+ import { Badge } from '../chunk-55FQP2DO.js';
7
6
  import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
8
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
7
+ import { Label } from '../chunk-XQTVSNHC.js';
8
+ import { Input } from '../chunk-K3KIBHJF.js';
9
9
  import { Button } from '../chunk-I4WDVYHX.js';
10
10
  import { useCopy, useOvrConfig } from '../chunk-TJSNVTVB.js';
11
11
  import '../chunk-77QBZC7J.js';
@@ -150,14 +150,15 @@ function NewAccountDialog({
150
150
  onCreated
151
151
  }) {
152
152
  const t = useCopy().admin.accountsPage;
153
- const defaultRole = roles.find((r) => r.name === "ENFORCER")?.name ?? roles[0]?.name ?? "";
153
+ const assignableRoles = roles.filter((r) => r.name !== "SUPER_ADMIN");
154
+ const defaultRole = assignableRoles.find((r) => r.name === "ENFORCER")?.name ?? assignableRoles[0]?.name ?? "";
154
155
  const [open, setOpen] = React.useState(false);
155
156
  const [username, setUsername] = React.useState("");
156
157
  const [password, setPassword] = React.useState("");
157
158
  const [role, setRole] = React.useState(defaultRole);
158
159
  const [officerId, setOfficerId] = React.useState("");
159
160
  const [submitting, setSubmitting] = React.useState(false);
160
- const selectedRole = roles.find((r) => r.name === role);
161
+ const selectedRole = assignableRoles.find((r) => r.name === role);
161
162
  const showOfficer = hasPermission(selectedRole?.permissions, "tickets:create");
162
163
  function reset() {
163
164
  setUsername("");
@@ -237,7 +238,7 @@ function NewAccountDialog({
237
238
  value: role,
238
239
  onChange: (e) => setRole(e.target.value),
239
240
  className: fieldClass,
240
- children: roles.map((r) => /* @__PURE__ */ jsx("option", { value: r.name, children: r.label }, r.name))
241
+ children: assignableRoles.map((r) => /* @__PURE__ */ jsx("option", { value: r.name, children: r.label }, r.name))
241
242
  }
242
243
  )
243
244
  ] }),
@@ -357,6 +358,8 @@ function EditAccountDialog({
357
358
  const [role, setRole] = React.useState(user.role);
358
359
  const [officerId, setOfficerId] = React.useState(user.officerId ?? "");
359
360
  const [submitting, setSubmitting] = React.useState(false);
361
+ const isSuperAdmin = user.role === "SUPER_ADMIN";
362
+ const assignableRoles = roles.filter((r) => r.name !== "SUPER_ADMIN");
360
363
  const selectedRole = roles.find((r) => r.name === role);
361
364
  const showOfficer = hasPermission(selectedRole?.permissions, "tickets:create");
362
365
  async function submit(e) {
@@ -430,7 +433,8 @@ function EditAccountDialog({
430
433
  value: role,
431
434
  onChange: (e) => setRole(e.target.value),
432
435
  className: fieldClass,
433
- children: roles.map((r) => /* @__PURE__ */ jsx("option", { value: r.name, children: r.label }, r.name))
436
+ disabled: isSuperAdmin,
437
+ children: isSuperAdmin ? /* @__PURE__ */ jsx("option", { value: user.role, children: user.roleLabel ?? user.role }) : assignableRoles.map((r) => /* @__PURE__ */ jsx("option", { value: r.name, children: r.label }, r.name))
434
438
  }
435
439
  )
436
440
  ] }),
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, SheetFooter } from '../chunk-3YKVH4Y7.js';
3
2
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator } from '../chunk-V7VQVDWS.js';
3
+ import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription, SheetFooter } from '../chunk-3YKVH4Y7.js';
4
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
4
5
  import { Label } from '../chunk-XQTVSNHC.js';
5
6
  import { Input } from '../chunk-K3KIBHJF.js';
6
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
7
7
  import { Button } from '../chunk-I4WDVYHX.js';
8
8
  import { useCopy } from '../chunk-TJSNVTVB.js';
9
9
  import { cn } from '../chunk-77QBZC7J.js';
@@ -1,20 +1,20 @@
1
1
  "use client";
2
2
  import { Skeleton } from '../chunk-EGKFELO3.js';
3
3
  import { Textarea } from '../chunk-QCRVT2SS.js';
4
+ import { Alert, AlertDescription } from '../chunk-EYFZWQ4J.js';
4
5
  import { Checkbox } from '../chunk-BBQBKQA4.js';
5
- import { TicketPreview } from '../chunk-VH4J2SIV.js';
6
- import '../chunk-6BH4EFP3.js';
7
- import { Label } from '../chunk-XQTVSNHC.js';
8
- import { Input } from '../chunk-K3KIBHJF.js';
9
- import '../chunk-OE525ZER.js';
10
- import '../chunk-55FQP2DO.js';
11
- import '../chunk-OWCGEEAZ.js';
6
+ import { TicketPreview } from '../chunk-ZUMEOZ22.js';
7
+ import '../chunk-IBZVIUNI.js';
12
8
  import '../chunk-GLIK5BHP.js';
13
- import { Alert, AlertDescription } from '../chunk-EYFZWQ4J.js';
14
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
15
- import { Card, CardHeader, CardTitle, CardContent, CardDescription } from '../chunk-SETIN6XP.js';
16
9
  import '../chunk-NSCIBSCW.js';
10
+ import '../chunk-OE525ZER.js';
17
11
  import '../chunk-BVI5XDDA.js';
12
+ import { Card, CardHeader, CardTitle, CardContent, CardDescription } from '../chunk-SETIN6XP.js';
13
+ import '../chunk-OWCGEEAZ.js';
14
+ import '../chunk-55FQP2DO.js';
15
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
16
+ import { Label } from '../chunk-XQTVSNHC.js';
17
+ import { Input } from '../chunk-K3KIBHJF.js';
18
18
  import { Button } from '../chunk-I4WDVYHX.js';
19
19
  import { useFormatters, useOvrConfig } from '../chunk-TJSNVTVB.js';
20
20
  import { cn } from '../chunk-77QBZC7J.js';
@@ -1,9 +1,9 @@
1
1
  "use client";
2
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
2
3
  import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
3
- import { Input } from '../chunk-K3KIBHJF.js';
4
- import { Badge } from '../chunk-55FQP2DO.js';
5
4
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
6
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
5
+ import { Badge } from '../chunk-55FQP2DO.js';
6
+ import { Input } from '../chunk-K3KIBHJF.js';
7
7
  import '../chunk-I4WDVYHX.js';
8
8
  import { useCopy, useOvrConfig } from '../chunk-TJSNVTVB.js';
9
9
  import '../chunk-77QBZC7J.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
2
3
  import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
3
4
  import { Badge } from '../chunk-55FQP2DO.js';
4
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
5
5
  import '../chunk-I4WDVYHX.js';
6
6
  import { useCopy, useOvrConfig } from '../chunk-TJSNVTVB.js';
7
7
  import '../chunk-77QBZC7J.js';
@@ -1,10 +1,10 @@
1
1
  "use client";
2
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
2
3
  import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
3
- import { Label } from '../chunk-XQTVSNHC.js';
4
- import { Input } from '../chunk-K3KIBHJF.js';
5
4
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
6
5
  import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
7
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
6
+ import { Label } from '../chunk-XQTVSNHC.js';
7
+ import { Input } from '../chunk-K3KIBHJF.js';
8
8
  import { Button } from '../chunk-I4WDVYHX.js';
9
9
  import { useCopy } from '../chunk-TJSNVTVB.js';
10
10
  import '../chunk-77QBZC7J.js';
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import { Checkbox } from '../chunk-BBQBKQA4.js';
3
- import { Label } from '../chunk-XQTVSNHC.js';
4
- import { Input } from '../chunk-K3KIBHJF.js';
3
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
5
4
  import { Badge } from '../chunk-55FQP2DO.js';
6
5
  import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
7
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
6
+ import { Label } from '../chunk-XQTVSNHC.js';
7
+ import { Input } from '../chunk-K3KIBHJF.js';
8
8
  import { Button } from '../chunk-I4WDVYHX.js';
9
9
  import { useCopy } from '../chunk-TJSNVTVB.js';
10
10
  import '../chunk-77QBZC7J.js';
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- export { TicketPreview } from '../chunk-VH4J2SIV.js';
3
- import '../chunk-6BH4EFP3.js';
4
- import '../chunk-OE525ZER.js';
5
- import '../chunk-55FQP2DO.js';
6
- import '../chunk-OWCGEEAZ.js';
2
+ export { TicketPreview } from '../chunk-ZUMEOZ22.js';
3
+ import '../chunk-IBZVIUNI.js';
7
4
  import '../chunk-GLIK5BHP.js';
8
- import '../chunk-SETIN6XP.js';
9
5
  import '../chunk-NSCIBSCW.js';
6
+ import '../chunk-OE525ZER.js';
10
7
  import '../chunk-BVI5XDDA.js';
8
+ import '../chunk-SETIN6XP.js';
9
+ import '../chunk-OWCGEEAZ.js';
10
+ import '../chunk-55FQP2DO.js';
11
11
  import '../chunk-TJSNVTVB.js';
12
12
  import '../chunk-77QBZC7J.js';
13
13
  import '../chunk-BI4EGLPG.js';
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
3
2
  import { StatusBadge } from '../chunk-OE525ZER.js';
4
- import '../chunk-55FQP2DO.js';
5
- import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
6
3
  import { Money } from '../chunk-BVI5XDDA.js';
4
+ import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
5
+ import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
6
+ import '../chunk-55FQP2DO.js';
7
7
  import '../chunk-I4WDVYHX.js';
8
8
  import { useFormatters } from '../chunk-TJSNVTVB.js';
9
9
  import '../chunk-77QBZC7J.js';
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import { Textarea } from '../chunk-QCRVT2SS.js';
3
+ import { Money } from '../chunk-BVI5XDDA.js';
4
+ import { Card, CardContent } from '../chunk-SETIN6XP.js';
3
5
  import { usePagination, Pagination } from '../chunk-6YFZLXFP.js';
4
- import { Label } from '../chunk-XQTVSNHC.js';
5
- import { Input } from '../chunk-K3KIBHJF.js';
6
- import { Badge } from '../chunk-55FQP2DO.js';
7
6
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
7
+ import { Badge } from '../chunk-55FQP2DO.js';
8
8
  import { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from '../chunk-M35R6JLA.js';
9
- import { Card, CardContent } from '../chunk-SETIN6XP.js';
10
- import { Money } from '../chunk-BVI5XDDA.js';
9
+ import { Label } from '../chunk-XQTVSNHC.js';
10
+ import { Input } from '../chunk-K3KIBHJF.js';
11
11
  import { Button } from '../chunk-I4WDVYHX.js';
12
12
  import { useCopy } from '../chunk-TJSNVTVB.js';
13
13
  import { cn } from '../chunk-77QBZC7J.js';
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { PaymentQrDialog } from '../chunk-QCAURREW.js';
2
+ import { PaymentQrDialog } from '../chunk-TLG4C2XI.js';
3
3
  import { Alert, AlertDescription } from '../chunk-EYFZWQ4J.js';
4
- import '../chunk-M35R6JLA.js';
5
- import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '../chunk-SETIN6XP.js';
6
4
  import { Separator } from '../chunk-NSCIBSCW.js';
7
5
  import { Money } from '../chunk-BVI5XDDA.js';
6
+ import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '../chunk-SETIN6XP.js';
7
+ import '../chunk-M35R6JLA.js';
8
8
  import { Button } from '../chunk-I4WDVYHX.js';
9
9
  import { useOvrConfig, useCopy } from '../chunk-TJSNVTVB.js';
10
10
  import { cn } from '../chunk-77QBZC7J.js';
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- export { PaymentQrDialog } from '../chunk-QCAURREW.js';
2
+ export { PaymentQrDialog } from '../chunk-TLG4C2XI.js';
3
3
  import '../chunk-EYFZWQ4J.js';
4
- import '../chunk-M35R6JLA.js';
5
4
  import '../chunk-BVI5XDDA.js';
5
+ import '../chunk-M35R6JLA.js';
6
6
  import '../chunk-I4WDVYHX.js';
7
7
  import '../chunk-TJSNVTVB.js';
8
8
  import '../chunk-77QBZC7J.js';
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { StatusBadge } from '../chunk-OE525ZER.js';
3
- import '../chunk-55FQP2DO.js';
4
- import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
5
3
  import { Money } from '../chunk-BVI5XDDA.js';
4
+ import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from '../chunk-OWCGEEAZ.js';
5
+ import '../chunk-55FQP2DO.js';
6
6
  import { useFormatters, useCopy } from '../chunk-TJSNVTVB.js';
7
7
  import { cn } from '../chunk-77QBZC7J.js';
8
8
  import '../chunk-BI4EGLPG.js';
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import { ViolationsTable } from '../chunk-6BH4EFP3.js';
3
- import { StatusBadge } from '../chunk-OE525ZER.js';
4
- import '../chunk-55FQP2DO.js';
5
- import '../chunk-OWCGEEAZ.js';
6
2
  import { OfficialHeader } from '../chunk-NT72CQAI.js';
7
3
  import '../chunk-YC7G2IOZ.js';
8
4
  import '../chunk-WOPU6DI7.js';
5
+ import { ViolationsTable } from '../chunk-IBZVIUNI.js';
9
6
  import { Separator } from '../chunk-NSCIBSCW.js';
7
+ import { StatusBadge } from '../chunk-OE525ZER.js';
10
8
  import { Money } from '../chunk-BVI5XDDA.js';
9
+ import '../chunk-OWCGEEAZ.js';
10
+ import '../chunk-55FQP2DO.js';
11
11
  import { useFormatters, useOvrConfig } from '../chunk-TJSNVTVB.js';
12
12
  import { cn } from '../chunk-77QBZC7J.js';
13
13
  import { formalName, formatAddress } from '../chunk-BI4EGLPG.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- export { ViolationsTable } from '../chunk-6BH4EFP3.js';
3
- import '../chunk-OWCGEEAZ.js';
2
+ export { ViolationsTable } from '../chunk-IBZVIUNI.js';
4
3
  import '../chunk-BVI5XDDA.js';
4
+ import '../chunk-OWCGEEAZ.js';
5
5
  import '../chunk-TJSNVTVB.js';
6
6
  import '../chunk-77QBZC7J.js';
7
7
  import '../chunk-BI4EGLPG.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gelabs/ovr",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
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",
@@ -158,14 +158,14 @@
158
158
  "react-dom": "19.2.4",
159
159
  "tsup": "^8.4.0",
160
160
  "typescript": "^5",
161
- "@gelabs/ovr-config": "0.0.0",
162
- "@gelabs/ovr-runtime": "0.0.0",
161
+ "@gelabs/ovr-auth": "0.0.0",
163
162
  "@gelabs/ovr-data": "0.0.0",
164
163
  "@gelabs/ovr-types": "0.0.0",
165
- "@gelabs/ovr-ui": "0.0.0",
166
164
  "@gelabs/ovr-offline": "0.0.0",
167
- "@gelabs/ovr-auth": "0.0.0",
168
- "@gelabs/ovr-core": "0.0.0"
165
+ "@gelabs/ovr-core": "0.0.0",
166
+ "@gelabs/ovr-ui": "0.0.0",
167
+ "@gelabs/ovr-config": "0.0.0",
168
+ "@gelabs/ovr-runtime": "0.0.0"
169
169
  },
170
170
  "scripts": {
171
171
  "build": "tsup && node scripts/copy-assets.mjs",
@@ -1,5 +1,5 @@
1
- import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-OWCGEEAZ.js';
2
1
  import { Money } from './chunk-BVI5XDDA.js';
2
+ import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-OWCGEEAZ.js';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
5
  function ViolationsTable({
@@ -1,6 +1,6 @@
1
1
  import { Alert, AlertDescription } from './chunk-EYFZWQ4J.js';
2
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from './chunk-M35R6JLA.js';
3
2
  import { Money } from './chunk-BVI5XDDA.js';
3
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from './chunk-M35R6JLA.js';
4
4
  import { Button } from './chunk-I4WDVYHX.js';
5
5
  import { useCopy } from './chunk-TJSNVTVB.js';
6
6
  import * as React from 'react';