diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/components/FrameworkProgress.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/components/FrameworkProgress.tsx
index 08681e58cb..41878d243d 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/components/FrameworkProgress.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/components/FrameworkProgress.tsx
@@ -6,11 +6,11 @@ import type {
OrganizationControl,
OrganizationFramework,
} from "@bubba/db";
+import { Button } from "@bubba/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@bubba/ui/card";
import { Progress } from "@bubba/ui/progress";
import { FileStack } from "lucide-react";
import Link from "next/link";
-import { Button } from "@bubba/ui/button";
interface Props {
frameworks: (OrganizationFramework & {
@@ -48,7 +48,7 @@ export function FrameworkProgress({ frameworks }: Props) {
{frameworks.map((framework) => {
const total = framework.organizationControl.length;
const completed = framework.organizationControl.filter(
- (control) => control.status === "compliant"
+ (control) => control.status === "compliant",
).length;
const progress = total ? (completed / total) * 100 : 0;
@@ -56,7 +56,7 @@ export function FrameworkProgress({ frameworks }: Props) {
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/layout.tsx
index 1c4bb2f821..328828257b 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/(home)/layout.tsx
@@ -9,7 +9,7 @@ export default async function Layout({
const t = await getI18n();
return (
-
+
{children}
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/frameworks/[frameworkId]/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/frameworks/[frameworkId]/layout.tsx
index 328e3d5b53..b473accef2 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/frameworks/[frameworkId]/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/frameworks/[frameworkId]/layout.tsx
@@ -9,7 +9,7 @@ export default async function Layout({ children }: LayoutProps) {
const t = await getI18n();
return (
-
+
{children}
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/integrations/page.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/integrations/page.tsx
index 56f2d97267..f56f8d70c5 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/integrations/page.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/integrations/page.tsx
@@ -31,10 +31,10 @@ export default async function IntegrationsPage({
}
return (
-
+
- }>
+ }>
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/people/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/people/layout.tsx
index f506c16517..c8721ffd8b 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/people/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/people/layout.tsx
@@ -9,7 +9,7 @@ export default async function Layout({
const t = await getI18n();
return (
-
+
{children}
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/(overview)/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/(overview)/layout.tsx
index f289e93654..1dfa87a8c0 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/(overview)/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/(overview)/layout.tsx
@@ -10,7 +10,7 @@ export default async function Layout({
const t = await getI18n();
return (
-
+
- );
+ return
;
}
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/[id]/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/[id]/layout.tsx
index 1025ddb32a..27c2baae86 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/[id]/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/[id]/layout.tsx
@@ -20,7 +20,7 @@ export default async function Layout({
}
return (
-
+
{children}
);
diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/all/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/all/layout.tsx
index bf1190604c..7e72e8824f 100644
--- a/apps/app/src/app/[locale]/(app)/(dashboard)/policies/all/layout.tsx
+++ b/apps/app/src/app/[locale]/(app)/(dashboard)/policies/all/layout.tsx
@@ -10,7 +10,7 @@ export default async function Layout({
const t = await getI18n();
return (
-
+
Loading...
}>
+
+
+
+
Loading...
}>
{
-
+
-
-
-
+
+
+
))}
diff --git a/apps/app/src/components/tables/people/data-table.tsx b/apps/app/src/components/tables/people/data-table.tsx
index 0b01b88fdb..548d96606c 100644
--- a/apps/app/src/components/tables/people/data-table.tsx
+++ b/apps/app/src/components/tables/people/data-table.tsx
@@ -7,6 +7,8 @@ import {
useReactTable,
} from "@tanstack/react-table";
+import { useI18n } from "@/locales/client";
+import { Button } from "@bubba/ui/button";
import { cn } from "@bubba/ui/cn";
import {
Table,
@@ -15,12 +17,10 @@ import {
TableHead,
TableRow,
} from "@bubba/ui/table";
-import { Button } from "@bubba/ui/button";
+import { useRouter } from "next/navigation";
import type { PersonType } from "./columns";
import { DataTableHeader } from "./data-table-header";
import { DataTablePagination } from "./data-table-pagination";
-import { useRouter } from "next/navigation";
-import { useI18n } from "@/locales/client";
interface DataTableProps {
columnHeaders: {
diff --git a/apps/app/src/components/tables/people/filter-toolbar.tsx b/apps/app/src/components/tables/people/filter-toolbar.tsx
index d8526cea92..30d84b81f9 100644
--- a/apps/app/src/components/tables/people/filter-toolbar.tsx
+++ b/apps/app/src/components/tables/people/filter-toolbar.tsx
@@ -4,7 +4,7 @@ import { InviteUserSheet } from "@/components/sheets/invite-user-sheet";
import { useI18n } from "@/locales/client";
import { Button } from "@bubba/ui/button";
import { Input } from "@bubba/ui/input";
-import { Plus, X } from "lucide-react";
+import { Plus, Search, X } from "lucide-react";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import { useQueryState } from "nuqs";
import { useCallback, useEffect, useState, useTransition } from "react";
@@ -56,37 +56,48 @@ export function FilterToolbar({ isEmpty }: FilterToolbarProps) {
}, [debouncedValue, createQueryString, pathname, router]);
return (
-
-
-
-
- setInputValue(e.target.value)}
- />
- {inputValue && (
-
- )}
-
+
+
+
+
+ setInputValue(e.target.value)}
+ />
+
+
+
+
+ {inputValue && (
+
+ )}
+
+
+
+
);
diff --git a/packages/ui/src/components/icons.tsx b/packages/ui/src/components/icons.tsx
index 616a740903..144ee9ae32 100644
--- a/packages/ui/src/components/icons.tsx
+++ b/packages/ui/src/components/icons.tsx
@@ -141,9 +141,16 @@ import { PiDiscordLogo } from "react-icons/pi";
export const Icons = {
Logo: (props: React.SVGProps
) => (
-