@cryptlex/web-components 1.3.5 → 1.4.0

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/README.md +6 -3
  2. package/dist/components/data-table/data-table.es.js +102 -88
  3. package/dist/components/data-table/data-table.es.js.map +1 -1
  4. package/dist/components/data-table/table-actions.es.js.map +1 -1
  5. package/dist/components/data-table/table-content.es.js +19 -18
  6. package/dist/components/data-table/table-content.es.js.map +1 -1
  7. package/dist/components/data-table/table-filter.es.js +264 -0
  8. package/dist/components/data-table/table-filter.es.js.map +1 -0
  9. package/dist/components/data-table/table-utils/constants.es.js +20 -6
  10. package/dist/components/data-table/table-utils/constants.es.js.map +1 -1
  11. package/dist/components/data-table/table-utils/link-display.es.js +4 -4
  12. package/dist/components/data-table/table-utils/link-display.es.js.map +1 -1
  13. package/dist/components/key-value-card/key-value-card.es.js +4 -2
  14. package/dist/components/key-value-card/key-value-card.es.js.map +1 -1
  15. package/dist/components/sidebar/app-layout.es.js +43 -39
  16. package/dist/components/sidebar/app-layout.es.js.map +1 -1
  17. package/dist/components/sidebar/breadcrumb.es.js +58 -0
  18. package/dist/components/sidebar/breadcrumb.es.js.map +1 -0
  19. package/dist/components/sidebar/nav-main.es.js +51 -39
  20. package/dist/components/sidebar/nav-main.es.js.map +1 -1
  21. package/dist/components/static-data-table/data-table.es.js +5 -5
  22. package/dist/components/static-data-table/data-table.es.js.map +1 -1
  23. package/dist/components/ui/avatar.es.js +1 -1
  24. package/dist/components/ui/avatar.es.js.map +1 -1
  25. package/dist/components/ui/badge.es.js +1 -1
  26. package/dist/components/ui/badge.es.js.map +1 -1
  27. package/dist/components/ui/button.es.js +8 -8
  28. package/dist/components/ui/button.es.js.map +1 -1
  29. package/dist/components/ui/calendar.es.js +3 -3
  30. package/dist/components/ui/chart.es.js +24 -24
  31. package/dist/components/ui/chart.es.js.map +1 -1
  32. package/dist/components/ui/checkbox.es.js +1 -1
  33. package/dist/components/ui/checkbox.es.js.map +1 -1
  34. package/dist/components/ui/command.es.js +28 -28
  35. package/dist/components/ui/command.es.js.map +1 -1
  36. package/dist/components/ui/copy-button.es.js +38 -34
  37. package/dist/components/ui/copy-button.es.js.map +1 -1
  38. package/dist/components/ui/dialog.es.js +8 -8
  39. package/dist/components/ui/dialog.es.js.map +1 -1
  40. package/dist/components/ui/dropdown-menu.es.js +38 -38
  41. package/dist/components/ui/dropdown-menu.es.js.map +1 -1
  42. package/dist/components/ui/form.es.js +4 -4
  43. package/dist/components/ui/input-otp.es.js +2 -2
  44. package/dist/components/ui/input-otp.es.js.map +1 -1
  45. package/dist/components/ui/input.es.js +7 -7
  46. package/dist/components/ui/input.es.js.map +1 -1
  47. package/dist/components/ui/mutli-select.es.js +13 -13
  48. package/dist/components/ui/mutli-select.es.js.map +1 -1
  49. package/dist/components/ui/navigation-menu.es.js +3 -3
  50. package/dist/components/ui/navigation-menu.es.js.map +1 -1
  51. package/dist/components/ui/pagination.es.js +20 -20
  52. package/dist/components/ui/password-input.es.js +10 -10
  53. package/dist/components/ui/password-input.es.js.map +1 -1
  54. package/dist/components/ui/popover.es.js +1 -1
  55. package/dist/components/ui/popover.es.js.map +1 -1
  56. package/dist/components/ui/radio-group.es.js +7 -7
  57. package/dist/components/ui/radio-group.es.js.map +1 -1
  58. package/dist/components/ui/select.es.js +17 -17
  59. package/dist/components/ui/select.es.js.map +1 -1
  60. package/dist/components/ui/sheet.es.js +8 -8
  61. package/dist/components/ui/sheet.es.js.map +1 -1
  62. package/dist/components/ui/sidebar.es.js +76 -76
  63. package/dist/components/ui/sidebar.es.js.map +1 -1
  64. package/dist/components/ui/table-page-layout.es.js +8 -8
  65. package/dist/components/ui/table-page-layout.es.js.map +1 -1
  66. package/dist/components/ui/table.es.js +1 -1
  67. package/dist/components/ui/table.es.js.map +1 -1
  68. package/dist/components/ui/tabs.es.js +11 -11
  69. package/dist/components/ui/tabs.es.js.map +1 -1
  70. package/dist/index.es.d.ts +12 -7
  71. package/dist/index.es.js +59 -58
  72. package/lib/index.css +15 -87
  73. package/lib/tailwind.preset.css +220 -0
  74. package/lib/tokens.css +54 -54
  75. package/package.json +7 -7
  76. package/tailwind.preset.ts +0 -191
@@ -1,28 +1,29 @@
1
- import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
- import { SideBar as p } from "./sidebar.es.js";
3
- import { SidebarProvider as c, SidebarTrigger as a } from "../ui/sidebar.es.js";
1
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
2
+ import { BreadCrumbs as p } from "./breadcrumb.es.js";
3
+ import { SideBar as l } from "./sidebar.es.js";
4
+ import { SidebarProvider as a, SidebarTrigger as c } from "../ui/sidebar.es.js";
4
5
  import "../ui/accordion.es.js";
5
- import { Avatar as l, AvatarImage as n, AvatarFallback as d } from "../ui/avatar.es.js";
6
+ import { Avatar as n, AvatarImage as d, AvatarFallback as f } from "../ui/avatar.es.js";
6
7
  import "../ui/badge.es.js";
7
8
  import "../ui/breadcrumb.es.js";
8
- import { Button as h } from "../ui/button.es.js";
9
+ import "../ui/button.es.js";
9
10
  import "../ui/calendar.es.js";
10
11
  import "../ui/card.es.js";
11
12
  import "../ui/chart.es.js";
12
13
  import "../ui/checkbox.es.js";
13
14
  import "@radix-ui/react-collapsible";
14
15
  import "../ui/command.es.js";
15
- import { LogOut as f } from "lucide-react";
16
+ import { LogOut as h } from "lucide-react";
16
17
  import "react";
17
18
  import "../ui/dialog.es.js";
18
19
  import "../ui/drawer.es.js";
19
- import { DropdownMenu as s, DropdownMenuTrigger as v, DropdownMenuContent as g, DropdownMenuItem as N } from "../ui/dropdown-menu.es.js";
20
+ import { DropdownMenu as s, DropdownMenuTrigger as v, DropdownMenuContent as x, DropdownMenuItem as g } from "../ui/dropdown-menu.es.js";
20
21
  import "../ui/form.es.js";
21
22
  import "../ui/input.es.js";
22
23
  import "../ui/input-otp.es.js";
23
24
  import "../ui/label.es.js";
24
- import { logout as x } from "../../utils/index.es.js";
25
- import { Outlet as w } from "@tanstack/react-router";
25
+ import { logout as N } from "../../utils/index.es.js";
26
+ import { Outlet as b } from "@tanstack/react-router";
26
27
  import "../ui/mutli-select.es.js";
27
28
  import "../ui/navigation-menu.es.js";
28
29
  import "../ui/pagination.es.js";
@@ -36,38 +37,41 @@ import "sonner";
36
37
  import "../ui/table.es.js";
37
38
  import "../ui/tabs.es.js";
38
39
  import "../ui/tooltip.es.js";
39
- function mr({ data: e, user: o }) {
40
- var i, m;
41
- return /* @__PURE__ */ t("div", { className: "h-screen", children: [
42
- /* @__PURE__ */ t(c, { children: [
43
- /* @__PURE__ */ r(p, { data: e }),
44
- /* @__PURE__ */ t("div", { className: "flex flex-col h-screen w-full overflow-auto", children: [
45
- /* @__PURE__ */ t("header", { className: "h-[7vh] sticky top-0 bg-card flex items-center justify-between p-4 pl-0 border-b z-10", children: [
46
- /* @__PURE__ */ r("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ r(a, {}) }),
47
- /* @__PURE__ */ t(s, { children: [
48
- /* @__PURE__ */ r(v, { asChild: !0, children: /* @__PURE__ */ r("div", { className: "cursor-pointer", children: /* @__PURE__ */ t(l, { className: "justify-center items-center", children: [
49
- /* @__PURE__ */ r(
50
- n,
51
- {
52
- src: (o == null ? void 0 : o.logoUrl) ?? "https://app.dev.cryptlex.com/favicon.ico",
53
- alt: "icon"
54
- }
55
- ),
56
- /* @__PURE__ */ t(d, { className: "uppercase", children: [
57
- (i = o == null ? void 0 : o.firstName) == null ? void 0 : i.charAt(0),
58
- (m = o == null ? void 0 : o.lastName) == null ? void 0 : m.charAt(0)
59
- ] })
60
- ] }) }) }),
61
- /* @__PURE__ */ r(g, { children: /* @__PURE__ */ r(N, { children: /* @__PURE__ */ r(h, { icon: f, onClick: () => x(), children: "Log Out" }) }) })
62
- ] })
63
- ] }),
64
- /* @__PURE__ */ r("div", { className: "flex-1 overflow-auto p-4", children: /* @__PURE__ */ r(w, {}) })
40
+ function er({ data: e, user: o }) {
41
+ var t, m;
42
+ return /* @__PURE__ */ r("div", { className: "h-dvh flex", children: /* @__PURE__ */ i(a, { children: [
43
+ /* @__PURE__ */ r(l, { data: e }),
44
+ /* @__PURE__ */ i("div", { className: "flex flex-col h-screen w-full overflow-auto", children: [
45
+ /* @__PURE__ */ i("header", { className: "h-[7vh] sticky top-0 bg-card flex items-center justify-between p-4 pl-0 border-b z-10", children: [
46
+ /* @__PURE__ */ r("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ r(c, {}) }),
47
+ /* @__PURE__ */ i(s, { children: [
48
+ /* @__PURE__ */ r(v, { asChild: !0, children: /* @__PURE__ */ r("div", { className: "cursor-pointer", children: /* @__PURE__ */ i(n, { className: "justify-center items-center", children: [
49
+ /* @__PURE__ */ r(
50
+ d,
51
+ {
52
+ src: (o == null ? void 0 : o.logoUrl) ?? "https://app.dev.cryptlex.com/favicon.ico",
53
+ alt: "icon"
54
+ }
55
+ ),
56
+ /* @__PURE__ */ i(f, { children: [
57
+ (t = o == null ? void 0 : o.firstName) == null ? void 0 : t.charAt(0),
58
+ (m = o == null ? void 0 : o.lastName) == null ? void 0 : m.charAt(0)
59
+ ] })
60
+ ] }) }) }),
61
+ /* @__PURE__ */ r(x, { children: /* @__PURE__ */ i(g, { onClick: () => N(), children: [
62
+ /* @__PURE__ */ r(h, {}),
63
+ " Logout"
64
+ ] }) })
65
+ ] })
66
+ ] }),
67
+ /* @__PURE__ */ i("div", { className: "flex-1 flex flex-col overflow-auto", children: [
68
+ /* @__PURE__ */ r("div", { className: "p-4 pb-0", children: /* @__PURE__ */ r(p, {}) }),
69
+ /* @__PURE__ */ r("div", { className: "flex-1 p-4 pt-2", children: /* @__PURE__ */ r(b, {}) })
65
70
  ] })
66
- ] }),
67
- " "
68
- ] });
71
+ ] })
72
+ ] }) });
69
73
  }
70
74
  export {
71
- mr as AppLayout
75
+ er as AppLayout
72
76
  };
73
77
  //# sourceMappingURL=app-layout.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-layout.es.js","sources":["../../../lib/components/sidebar/app-layout.tsx"],"sourcesContent":["import type { NavItem } from '@/components/sidebar/nav-main';\nimport { SideBar } from '@/components/sidebar/sidebar';\nimport { SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar';\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n logout,\n} from '@/index';\nimport { Outlet } from '@tanstack/react-router';\nimport { LogOut } from 'lucide-react';\n\nexport interface AppLayoutProps {\n data: NavItem[]; // Navigation items\n user?: {\n firstName?: string;\n lastName?: string;\n logoUrl?: string;\n }; // Optional user information\n}\n\nexport function AppLayout({ data, user }: AppLayoutProps) {\n return (\n <div className=\"h-screen\">\n <SidebarProvider>\n {/* Sidebar */}\n <SideBar data={data} />\n\n {/* Main Content */}\n <div className=\"flex flex-col h-screen w-full overflow-auto\">\n {/* Header */}\n <header className=\"h-[7vh] sticky top-0 bg-card flex items-center justify-between p-4 pl-0 border-b z-10\">\n {/* Sidebar Trigger */}\n <div className=\"flex gap-1 items-center\">\n <SidebarTrigger />\n {/* //TODO: Improve position for this and Will be replaced with dynamic url */}\n {/* <img\n src=\"https://assets.cryptlex.com/images/logos/cryptlex-logo.svg\"\n alt=\"logo\"\n className=\"m-0\"\n /> */}\n </div>\n\n {/* User Dropdown */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <div className=\"cursor-pointer\">\n {/* //TODO: Image url to be replaced by the dynamic url from /account/config */}\n <Avatar className=\"justify-center items-center\">\n <AvatarImage\n src={user?.logoUrl ?? 'https://app.dev.cryptlex.com/favicon.ico'}\n alt=\"icon\"\n />\n <AvatarFallback className=\"uppercase\">\n {user?.firstName?.charAt(0)}\n {user?.lastName?.charAt(0)}\n </AvatarFallback>\n </Avatar>\n </div>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent>\n <DropdownMenuItem>\n <Button icon={LogOut} onClick={() => logout()}>\n Log Out\n </Button>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </header>\n\n {/* Scrollable Content */}\n <div className=\"flex-1 overflow-auto p-4\">\n <Outlet />\n </div>\n </div>\n </SidebarProvider>{' '}\n </div>\n );\n}\n"],"names":["AppLayout","data","user","jsxs","SidebarProvider","jsx","SideBar","SidebarTrigger","DropdownMenu","DropdownMenuTrigger","Avatar","AvatarImage","AvatarFallback","_a","_b","DropdownMenuContent","DropdownMenuItem","Button","LogOut","logout","Outlet"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAASA,GAAU,EAAE,MAAAC,GAAM,MAAAC,KAAwB;;AAEtD,SAAA,gBAAAC,EAAC,OAAI,EAAA,WAAU,YACb,UAAA;AAAA,IAAA,gBAAAA,EAACC,GAEC,EAAA,UAAA;AAAA,MAAA,gBAAAC,EAACC,KAAQ,MAAAL,GAAY;AAAA,MAGrB,gBAAAE,EAAC,OAAI,EAAA,WAAU,+CAEb,UAAA;AAAA,QAAC,gBAAAA,EAAA,UAAA,EAAO,WAAU,0FAEhB,UAAA;AAAA,UAAA,gBAAAE,EAAC,OAAI,EAAA,WAAU,2BACb,UAAA,gBAAAA,EAACE,IAAe,CAAA,GAOlB;AAAA,4BAGCC,GACC,EAAA,UAAA;AAAA,YAAC,gBAAAH,EAAAI,GAAA,EAAoB,SAAO,IAC1B,UAAC,gBAAAJ,EAAA,OAAA,EAAI,WAAU,kBAEb,UAAA,gBAAAF,EAACO,GAAO,EAAA,WAAU,gCAChB,UAAA;AAAA,cAAA,gBAAAL;AAAA,gBAACM;AAAA,gBAAA;AAAA,kBACC,MAAKT,KAAA,gBAAAA,EAAM,YAAW;AAAA,kBACtB,KAAI;AAAA,gBAAA;AAAA,cACN;AAAA,cACA,gBAAAC,EAACS,GAAe,EAAA,WAAU,aACvB,UAAA;AAAA,iBAAMC,IAAAX,KAAA,gBAAAA,EAAA,cAAA,gBAAAW,EAAW,OAAO;AAAA,iBACxBC,IAAAZ,KAAA,gBAAAA,EAAM,aAAN,gBAAAY,EAAgB,OAAO;AAAA,cAAC,EAC3B,CAAA;AAAA,YAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,YAEC,gBAAAT,EAAAU,GAAA,EACC,UAAC,gBAAAV,EAAAW,GAAA,EACC,4BAACC,GAAO,EAAA,MAAMC,GAAQ,SAAS,MAAMC,EAAA,GAAU,UAAA,UAAA,CAE/C,GACF,EACF,CAAA;AAAA,UAAA,EACF,CAAA;AAAA,QAAA,GACF;AAAA,0BAGC,OAAI,EAAA,WAAU,4BACb,UAAA,gBAAAd,EAACe,KAAO,EACV,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA,GACF;AAAA,IAAmB;AAAA,EAAA,GACrB;AAEJ;"}
1
+ {"version":3,"file":"app-layout.es.js","sources":["../../../lib/components/sidebar/app-layout.tsx"],"sourcesContent":["import { BreadCrumbs } from '@/components/sidebar/breadcrumb';\nimport type { NavItem } from '@/components/sidebar/nav-main';\nimport { SideBar } from '@/components/sidebar/sidebar';\nimport { SidebarProvider, SidebarTrigger } from '@/components/ui/sidebar';\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n logout,\n} from '@/index';\nimport { Outlet } from '@tanstack/react-router';\nimport { LogOut } from 'lucide-react';\n\nexport interface AppLayoutProps {\n data: NavItem[]; // Navigation items\n user?: {\n firstName?: string;\n lastName?: string;\n logoUrl?: string;\n }; // Optional user information\n}\n\nexport function AppLayout({ data, user }: AppLayoutProps) {\n return (\n <div className=\"h-dvh flex\">\n <SidebarProvider>\n {/* Sidebar */}\n <SideBar data={data} />\n\n {/* Main Content */}\n <div className=\"flex flex-col h-screen w-full overflow-auto\">\n {/* Header */}\n <header className=\"h-[7vh] sticky top-0 bg-card flex items-center justify-between p-4 pl-0 border-b z-10\">\n {/* Sidebar Trigger */}\n <div className=\"flex gap-1 items-center\">\n <SidebarTrigger />\n </div>\n\n {/* User Dropdown */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <div className=\"cursor-pointer\">\n <Avatar className=\"justify-center items-center\">\n <AvatarImage\n src={user?.logoUrl ?? 'https://app.dev.cryptlex.com/favicon.ico'}\n alt=\"icon\"\n />\n <AvatarFallback>\n {user?.firstName?.charAt(0)}\n {user?.lastName?.charAt(0)}\n </AvatarFallback>\n </Avatar>\n </div>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent>\n <DropdownMenuItem onClick={() => logout()}>\n <LogOut /> Logout\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </header>\n\n {/* Scrollable Content */}\n <div className=\"flex-1 flex flex-col overflow-auto\">\n <div className=\"p-4 pb-0\">\n <BreadCrumbs />\n </div>\n <div className=\"flex-1 p-4 pt-2\">\n <Outlet />\n </div>\n </div>\n </div>\n </SidebarProvider>\n </div>\n );\n}\n"],"names":["AppLayout","data","user","jsx","SidebarProvider","SideBar","jsxs","SidebarTrigger","DropdownMenu","DropdownMenuTrigger","Avatar","AvatarImage","AvatarFallback","_a","_b","DropdownMenuContent","DropdownMenuItem","logout","LogOut","BreadCrumbs","Outlet"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAASA,GAAU,EAAE,MAAAC,GAAM,MAAAC,KAAwB;;AACxD,SACG,gBAAAC,EAAA,OAAA,EAAI,WAAU,cACb,4BAACC,GAEC,EAAA,UAAA;AAAA,IAAA,gBAAAD,EAACE,KAAQ,MAAAJ,GAAY;AAAA,IAGrB,gBAAAK,EAAC,OAAI,EAAA,WAAU,+CAEb,UAAA;AAAA,MAAC,gBAAAA,EAAA,UAAA,EAAO,WAAU,yFAEhB,UAAA;AAAA,QAAA,gBAAAH,EAAC,OAAI,EAAA,WAAU,2BACb,UAAA,gBAAAA,EAACI,IAAe,CAAA,GAClB;AAAA,0BAGCC,GACC,EAAA,UAAA;AAAA,UAAC,gBAAAL,EAAAM,GAAA,EAAoB,SAAO,IAC1B,UAAC,gBAAAN,EAAA,OAAA,EAAI,WAAU,kBACb,UAAA,gBAAAG,EAACI,GAAO,EAAA,WAAU,+BAChB,UAAA;AAAA,YAAA,gBAAAP;AAAA,cAACQ;AAAA,cAAA;AAAA,gBACC,MAAKT,KAAA,gBAAAA,EAAM,YAAW;AAAA,gBACtB,KAAI;AAAA,cAAA;AAAA,YACN;AAAA,8BACCU,GACE,EAAA,UAAA;AAAA,eAAMC,IAAAX,KAAA,gBAAAA,EAAA,cAAA,gBAAAW,EAAW,OAAO;AAAA,eACxBC,IAAAZ,KAAA,gBAAAA,EAAM,aAAN,gBAAAY,EAAgB,OAAO;AAAA,YAAC,EAC3B,CAAA;AAAA,UAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,4BAECC,GACC,EAAA,UAAA,gBAAAT,EAACU,KAAiB,SAAS,MAAMC,EAC/B,GAAA,UAAA;AAAA,YAAA,gBAAAd,EAACe,GAAO,EAAA;AAAA,YAAE;AAAA,UAAA,EAAA,CACZ,EACF,CAAA;AAAA,QAAA,EACF,CAAA;AAAA,MAAA,GACF;AAAA,MAGA,gBAAAZ,EAAC,OAAI,EAAA,WAAU,sCACb,UAAA;AAAA,QAAA,gBAAAH,EAAC,OAAI,EAAA,WAAU,YACb,UAAA,gBAAAA,EAACgB,IAAY,CAAA,GACf;AAAA,0BACC,OAAI,EAAA,WAAU,mBACb,UAAA,gBAAAhB,EAACiB,KAAO,EACV,CAAA;AAAA,MAAA,EACF,CAAA;AAAA,IAAA,EACF,CAAA;AAAA,EAAA,EAAA,CACF,EACF,CAAA;AAEJ;"}
@@ -0,0 +1,58 @@
1
+ import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
+ import "../ui/accordion.es.js";
3
+ import "../ui/avatar.es.js";
4
+ import "../ui/badge.es.js";
5
+ import { Breadcrumb as s, BreadcrumbList as u, BreadcrumbItem as d, BreadcrumbLink as c, BreadcrumbSeparator as h } from "../ui/breadcrumb.es.js";
6
+ import "../ui/button.es.js";
7
+ import "../ui/calendar.es.js";
8
+ import "../ui/card.es.js";
9
+ import "../ui/chart.es.js";
10
+ import "../ui/checkbox.es.js";
11
+ import "@radix-ui/react-collapsible";
12
+ import "../ui/command.es.js";
13
+ import "lucide-react";
14
+ import l from "react";
15
+ import "../ui/dialog.es.js";
16
+ import "../ui/drawer.es.js";
17
+ import "../ui/dropdown-menu.es.js";
18
+ import "../ui/form.es.js";
19
+ import "../ui/input.es.js";
20
+ import "../ui/input-otp.es.js";
21
+ import "../ui/label.es.js";
22
+ import { Link as b, useLocation as f } from "@tanstack/react-router";
23
+ import "../ui/mutli-select.es.js";
24
+ import "../ui/navigation-menu.es.js";
25
+ import "../ui/pagination.es.js";
26
+ import "../ui/password-input.es.js";
27
+ import "../ui/popover.es.js";
28
+ import "../ui/radio-group.es.js";
29
+ import "../ui/select.es.js";
30
+ import "../ui/separator.es.js";
31
+ import "../ui/sheet.es.js";
32
+ import "../ui/sidebar.es.js";
33
+ import "sonner";
34
+ import "../ui/table.es.js";
35
+ import "../ui/tabs.es.js";
36
+ import "../ui/tooltip.es.js";
37
+ function B() {
38
+ return { breadcrumb_routes: f().pathname.split("/").filter((r) => r && r.length > 0).reduce((r, p) => {
39
+ var e;
40
+ const n = ((e = r[r.length - 1]) == null ? void 0 : e.path) ?? "";
41
+ return r.push({ name: p, path: `${n}/${p}` }), r;
42
+ }, []) };
43
+ }
44
+ function rr({}) {
45
+ const { breadcrumb_routes: i } = B();
46
+ return /* @__PURE__ */ t(s, { children: /* @__PURE__ */ t(u, { children: i.map((o, m) => {
47
+ const r = m === i.length - 1;
48
+ return /* @__PURE__ */ a(l.Fragment, { children: [
49
+ /* @__PURE__ */ t(d, { children: r ? o.name.split("-").join(" ") : /* @__PURE__ */ t(c, { asChild: !0, children: /* @__PURE__ */ t(b, { to: o.path, children: o.name.split("-").join(" ") }) }) }),
50
+ !r && /* @__PURE__ */ t(h, {})
51
+ ] }, o.path);
52
+ }) }) });
53
+ }
54
+ export {
55
+ rr as BreadCrumbs,
56
+ B as useBreadCrumbs
57
+ };
58
+ //# sourceMappingURL=breadcrumb.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.es.js","sources":["../../../lib/components/sidebar/breadcrumb.tsx"],"sourcesContent":["import {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbSeparator,\n} from '@/index';\nimport { Link, useLocation } from '@tanstack/react-router';\nimport React from 'react';\nexport function useBreadCrumbs() {\n const current = useLocation();\n\n const routeHistory = current.pathname.split('/').filter((x) => x && x.length > 0);\n\n const breadcrumb_routes = routeHistory.reduce((acc: { name: string; path: string }[], route) => {\n const prev_path = acc[acc.length - 1]?.path ?? '';\n acc.push({ name: route, path: `${prev_path}/${route}` });\n return acc;\n }, []);\n return { breadcrumb_routes };\n}\n\ninterface BreadCrumbsProps {}\n\nexport function BreadCrumbs({}: BreadCrumbsProps) {\n const { breadcrumb_routes } = useBreadCrumbs();\n\n return (\n <Breadcrumb>\n <BreadcrumbList>\n {breadcrumb_routes.map((crumb, index) => {\n const isLast = index === breadcrumb_routes.length - 1;\n return (\n <React.Fragment key={crumb.path}>\n <BreadcrumbItem>\n {isLast ? (\n crumb.name.split('-').join(' ')\n ) : (\n <BreadcrumbLink asChild>\n <Link to={crumb.path}>{crumb.name.split('-').join(' ')}</Link>\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {!isLast && <BreadcrumbSeparator />}\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n );\n}\n"],"names":["useBreadCrumbs","useLocation","x","acc","route","prev_path","_a","BreadCrumbs","breadcrumb_routes","jsx","Breadcrumb","BreadcrumbList","crumb","index","isLast","jsxs","React","BreadcrumbItem","BreadcrumbLink","Link","BreadcrumbSeparator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAASA,IAAiB;AAU/B,SAAO,EAAE,mBATOC,EAAY,EAEC,SAAS,MAAM,GAAG,EAAE,OAAO,CAACC,MAAMA,KAAKA,EAAE,SAAS,CAAC,EAEzC,OAAO,CAACC,GAAuCC,MAAU;;AAC9F,UAAMC,MAAYC,IAAAH,EAAIA,EAAI,SAAS,CAAC,MAAlB,gBAAAG,EAAqB,SAAQ;AAC3C,WAAAH,EAAA,KAAK,EAAE,MAAMC,GAAO,MAAM,GAAGC,CAAS,IAAID,CAAK,GAAA,CAAI,GAChDD;AAAA,EACT,GAAG,EAAE,EACsB;AAC7B;AAIgB,SAAAI,GAAY,CAAA,GAAsB;AAC1C,QAAA,EAAE,mBAAAC,EAAkB,IAAIR,EAAe;AAG3C,SAAA,gBAAAS,EAACC,KACC,UAAC,gBAAAD,EAAAE,GAAA,EACE,YAAkB,IAAI,CAACC,GAAOC,MAAU;AACjC,UAAAC,IAASD,MAAUL,EAAkB,SAAS;AAElD,WAAA,gBAAAO,EAACC,EAAM,UAAN,EACC,UAAA;AAAA,MAAA,gBAAAP,EAACQ,GACE,EAAA,UAAAH,IACCF,EAAM,KAAK,MAAM,GAAG,EAAE,KAAK,GAAG,IAE7B,gBAAAH,EAAAS,GAAA,EAAe,SAAO,IACrB,UAAC,gBAAAT,EAAAU,GAAA,EAAK,IAAIP,EAAM,MAAO,UAAAA,EAAM,KAAK,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,CAAA,EACzD,CAAA,GAEJ;AAAA,MACC,CAACE,KAAU,gBAAAL,EAACW,GAAoB,CAAA,CAAA;AAAA,IAAA,EAAA,GAVdR,EAAM,IAW3B;AAAA,EAAA,CAEH,GACH,EACF,CAAA;AAEJ;"}
@@ -1,71 +1,83 @@
1
1
  import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
- import { Collapsible as p, CollapsibleTrigger as u, CollapsibleContent as b } from "../ui/collapsible.es.js";
3
- import { useSidebar as g, SidebarGroup as f, SidebarMenu as S, SidebarMenuItem as o, SidebarMenuButton as i, SidebarMenuSub as C, SidebarMenuSubItem as N, SidebarMenuSubButton as v } from "../ui/sidebar.es.js";
4
- import { Link as c } from "@tanstack/react-router";
5
- import { ChevronRight as x } from "lucide-react";
6
- import { useState as M } from "react";
7
- function P({ items: d }) {
8
- const { setOpen: s } = g(), [a, t] = M(null), h = (l) => {
9
- t((n) => n === l ? null : l);
10
- };
11
- return /* @__PURE__ */ e(f, { children: /* @__PURE__ */ e(S, { className: "flex gap-2 ", children: d.map(
2
+ import { Collapsible as S, CollapsibleTrigger as x, CollapsibleContent as C } from "../ui/collapsible.es.js";
3
+ import { useSidebar as v, SidebarGroup as m, SidebarMenu as M, SidebarMenuItem as p, SidebarMenuButton as u, SidebarMenuSub as w, SidebarMenuSubItem as y, SidebarMenuSubButton as P } from "../ui/sidebar.es.js";
4
+ import { useMatches as k, Link as b } from "@tanstack/react-router";
5
+ import { ChevronRight as $ } from "lucide-react";
6
+ import { useState as j, useEffect as A } from "react";
7
+ function G({ items: i }) {
8
+ const { setOpen: f } = v(), [h, d] = j(null), s = k(), o = s.length > 0 ? s[s.length - 1].pathname : "", n = (l) => l.children ? l.children.some((a) => o.startsWith(a.path)) : !1, g = (l) => o.startsWith(l.path) || n(l);
9
+ A(() => {
10
+ i.forEach((l) => {
11
+ n(l) && d(l.label);
12
+ });
13
+ }, [o]);
14
+ const N = (l) => {
15
+ d((a) => a === l ? null : l);
16
+ }, c = `
17
+ w-full rounded-md px-2 py-1.5
18
+ transition-colors duration-200
19
+ hover:bg-neutral-4 focus-visible:bg-neutral-4
20
+ text-neutral-10 hover:text-neutral-10
21
+ no-underline
22
+ flex items-center gap-2
23
+ `, t = "bg-neutral-4 font-bold";
24
+ return /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(M, { className: "flex flex-col gap-1", children: i.map(
12
25
  (l) => l.children && l.display && l.children.length > 0 ? /* @__PURE__ */ e(
13
- p,
26
+ S,
14
27
  {
15
28
  asChild: !0,
16
- open: a === l.label,
17
- className: "group/collapsible",
18
- children: /* @__PURE__ */ r(o, { children: [
19
- /* @__PURE__ */ e(u, { asChild: !0, children: /* @__PURE__ */ r(
20
- i,
29
+ open: h === l.label || n(l),
30
+ className: "group/collapsible w-full",
31
+ children: /* @__PURE__ */ r(p, { children: [
32
+ /* @__PURE__ */ e(x, { asChild: !0, children: /* @__PURE__ */ r(
33
+ u,
21
34
  {
22
35
  tooltip: l.label,
23
36
  onClick: () => {
24
- s(!0), h(l.label);
37
+ f(!0), N(l.label);
25
38
  },
26
- className: "hover:bg-neutral-5",
39
+ className: `${c} ${g(l) ? t : ""}`,
27
40
  children: [
28
- l.icon && /* @__PURE__ */ e(l.icon, {}),
29
- /* @__PURE__ */ e("span", { children: l.label }),
41
+ l.icon && /* @__PURE__ */ e(l.icon, { className: "h-4 w-4" }),
42
+ /* @__PURE__ */ e("span", { className: "flex-1", children: l.label }),
30
43
  /* @__PURE__ */ e(
31
- x,
44
+ $,
32
45
  {
33
- className: `ml-auto transition-transform duration-200 ${a === l.label ? "rotate-90" : ""}`
46
+ className: `h-4 w-4 transition-transform duration-200 ${h === l.label || n(l) ? "rotate-90" : ""}`
34
47
  }
35
48
  )
36
49
  ]
37
50
  }
38
51
  ) }),
39
- /* @__PURE__ */ e(b, { children: /* @__PURE__ */ e(C, { children: l.children.map(
40
- (n) => n.display && /* @__PURE__ */ e(N, { children: /* @__PURE__ */ e(v, { asChild: !0, children: /* @__PURE__ */ r(
41
- c,
52
+ /* @__PURE__ */ e(C, { children: /* @__PURE__ */ e(w, { className: "w-full flex flex-col gap-1", children: l.children.map(
53
+ (a) => a.display && /* @__PURE__ */ e(y, { children: /* @__PURE__ */ e(P, { asChild: !0, children: /* @__PURE__ */ r(
54
+ b,
42
55
  {
56
+ to: a.path,
57
+ className: c,
43
58
  activeProps: {
44
- className: "bg-neutral-4 font-bold"
59
+ className: t
45
60
  },
46
- className: "text-neutral-10 no-underline hover:bg-neutral-5",
47
- to: n.path,
48
61
  children: [
49
- n.icon && /* @__PURE__ */ e(n.icon, {}),
50
- /* @__PURE__ */ e("span", { children: n.label })
62
+ a.icon && /* @__PURE__ */ e(a.icon, { className: "h-4 w-4" }),
63
+ /* @__PURE__ */ e("span", { children: a.label })
51
64
  ]
52
65
  }
53
- ) }) }, n.label)
66
+ ) }) }, a.label)
54
67
  ) }) })
55
68
  ] })
56
69
  },
57
70
  l.label
58
- ) : l.display && /* @__PURE__ */ e(o, { children: /* @__PURE__ */ e(i, { asChild: !0, tooltip: l.label, children: /* @__PURE__ */ r(
59
- c,
71
+ ) : l.display && /* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(u, { asChild: !0, tooltip: l.label, children: /* @__PURE__ */ r(
72
+ b,
60
73
  {
74
+ to: l.path,
75
+ className: c,
61
76
  activeProps: {
62
- className: "bg-neutral-4 font-bold"
63
- // Add active styling here
77
+ className: t
64
78
  },
65
- className: "no-underline text-neutral-10 flex items-center hover:bg-neutral-5",
66
- to: l.path,
67
79
  children: [
68
- l.icon && /* @__PURE__ */ e(l.icon, {}),
80
+ l.icon && /* @__PURE__ */ e(l.icon, { className: "h-4 w-4" }),
69
81
  /* @__PURE__ */ e("span", { children: l.label })
70
82
  ]
71
83
  }
@@ -73,6 +85,6 @@ function P({ items: d }) {
73
85
  ) }) });
74
86
  }
75
87
  export {
76
- P as NavMain
88
+ G as NavMain
77
89
  };
78
90
  //# sourceMappingURL=nav-main.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav-main.es.js","sources":["../../../lib/components/sidebar/nav-main.tsx"],"sourcesContent":["import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n useSidebar,\n} from '@/components/ui/sidebar';\nimport { Link } from '@tanstack/react-router';\nimport { ChevronRight, type LucideIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nexport type NavItem = {\n path: string;\n label: string;\n display: boolean;\n icon: LucideIcon;\n children?: { path: string; label: string; icon: LucideIcon; display: boolean }[];\n};\n\nexport function NavMain({ items }: { items: NavItem[] }) {\n const { setOpen } = useSidebar();\n const [openItem, setOpenItem] = useState<string | null>(null); // Tracks the currently open item\n\n const handleToggle = (title: string) => {\n setOpenItem((prev) => (prev === title ? null : title)); // Toggle the open state\n };\n\n return (\n <SidebarGroup>\n <SidebarMenu className=\"flex gap-2 \">\n {items.map((item) =>\n item.children && item.display && item.children.length > 0 ? (\n <Collapsible\n key={item.label}\n asChild\n open={openItem === item.label}\n className=\"group/collapsible\"\n >\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton\n tooltip={item.label}\n onClick={() => {\n setOpen(true);\n handleToggle(item.label);\n }}\n className=\"hover:bg-neutral-5\"\n >\n {item.icon && <item.icon />}\n <span>{item.label}</span>\n <ChevronRight\n className={`ml-auto transition-transform duration-200 ${\n openItem === item.label ? 'rotate-90' : ''\n }`}\n />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.children.map(\n (subItem) =>\n subItem.display && (\n <SidebarMenuSubItem key={subItem.label}>\n <SidebarMenuSubButton asChild>\n <Link\n activeProps={{\n className: 'bg-neutral-4 font-bold',\n }}\n className=\"text-neutral-10 no-underline hover:bg-neutral-5\"\n to={subItem.path}\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.label}</span>\n </Link>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n ),\n )}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n ) : (\n item.display && (\n <SidebarMenuItem key={item.label}>\n <SidebarMenuButton asChild tooltip={item.label}>\n <Link\n activeProps={{\n className: 'bg-neutral-4 font-bold', // Add active styling here\n }}\n className=\"no-underline text-neutral-10 flex items-center hover:bg-neutral-5\"\n to={item.path}\n >\n {item.icon && <item.icon />}\n <span>{item.label}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n}\n"],"names":["NavMain","items","setOpen","useSidebar","openItem","setOpenItem","useState","handleToggle","title","prev","SidebarGroup","jsx","SidebarMenu","item","Collapsible","SidebarMenuItem","CollapsibleTrigger","jsxs","SidebarMenuButton","ChevronRight","CollapsibleContent","SidebarMenuSub","subItem","SidebarMenuSubItem","SidebarMenuSubButton","Link"],"mappings":";;;;;;AAuBgB,SAAAA,EAAQ,EAAE,OAAAC,KAA+B;AACjD,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAW,GACzB,CAACC,GAAUC,CAAW,IAAIC,EAAwB,IAAI,GAEtDC,IAAe,CAACC,MAAkB;AACtC,IAAAH,EAAY,CAACI,MAAUA,MAASD,IAAQ,OAAOA,CAAM;AAAA,EACvD;AAEA,2BACGE,GACC,EAAA,UAAA,gBAAAC,EAACC,GAAY,EAAA,WAAU,eACpB,UAAMX,EAAA;AAAA,IAAI,CAACY,MACVA,EAAK,YAAYA,EAAK,WAAWA,EAAK,SAAS,SAAS,IACtD,gBAAAF;AAAA,MAACG;AAAA,MAAA;AAAA,QAEC,SAAO;AAAA,QACP,MAAMV,MAAaS,EAAK;AAAA,QACxB,WAAU;AAAA,QAEV,4BAACE,GACC,EAAA,UAAA;AAAA,UAAC,gBAAAJ,EAAAK,GAAA,EAAmB,SAAO,IACzB,UAAA,gBAAAC;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,SAASL,EAAK;AAAA,cACd,SAAS,MAAM;AACb,gBAAAX,EAAQ,EAAI,GACZK,EAAaM,EAAK,KAAK;AAAA,cACzB;AAAA,cACA,WAAU;AAAA,cAET,UAAA;AAAA,gBAAAA,EAAK,QAAQ,gBAAAF,EAACE,EAAK,MAAL,CAAA,CAAU;AAAA,gBACzB,gBAAAF,EAAC,QAAM,EAAA,UAAAE,EAAK,MAAM,CAAA;AAAA,gBAClB,gBAAAF;AAAA,kBAACQ;AAAA,kBAAA;AAAA,oBACC,WAAW,6CACTf,MAAaS,EAAK,QAAQ,cAAc,EAC1C;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,UACC,gBAAAF,EAAAS,GAAA,EACC,UAAC,gBAAAT,EAAAU,GAAA,EACE,YAAK,SAAS;AAAA,YACb,CAACC,MACCA,EAAQ,6BACLC,GACC,EAAA,UAAA,gBAAAZ,EAACa,GAAqB,EAAA,SAAO,IAC3B,UAAA,gBAAAP;AAAA,cAACQ;AAAA,cAAA;AAAA,gBACC,aAAa;AAAA,kBACX,WAAW;AAAA,gBACb;AAAA,gBACA,WAAU;AAAA,gBACV,IAAIH,EAAQ;AAAA,gBAEX,UAAA;AAAA,kBAAAA,EAAQ,QAAQ,gBAAAX,EAACW,EAAQ,MAAR,CAAA,CAAa;AAAA,kBAC/B,gBAAAX,EAAC,QAAM,EAAA,UAAAW,EAAQ,MAAM,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA,GAEzB,EAZuB,GAAAA,EAAQ,KAajC;AAAA,aAGR,EACF,CAAA;AAAA,QAAA,EACF,CAAA;AAAA,MAAA;AAAA,MA/CKT,EAAK;AAAA,IAAA,IAkDZA,EAAK,WACF,gBAAAF,EAAAI,GAAA,EACC,UAAC,gBAAAJ,EAAAO,GAAA,EAAkB,SAAO,IAAC,SAASL,EAAK,OACvC,UAAA,gBAAAI;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,aAAa;AAAA,UACX,WAAW;AAAA;AAAA,QACb;AAAA,QACA,WAAU;AAAA,QACV,IAAIZ,EAAK;AAAA,QAER,UAAA;AAAA,UAAAA,EAAK,QAAQ,gBAAAF,EAACE,EAAK,MAAL,CAAA,CAAU;AAAA,UACzB,gBAAAF,EAAC,QAAM,EAAA,UAAAE,EAAK,MAAM,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEtB,EAZoB,GAAAA,EAAK,KAa3B;AAAA,KAIR,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"nav-main.es.js","sources":["../../../lib/components/sidebar/nav-main.tsx"],"sourcesContent":["import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n useSidebar,\n} from '@/components/ui/sidebar';\nimport { Link, useMatches } from '@tanstack/react-router';\nimport { ChevronRight, type LucideIcon } from 'lucide-react';\nimport { useEffect, useState } from 'react';\n\nexport type NavItem = {\n path: string;\n label: string;\n display: boolean;\n icon: LucideIcon;\n children?: { path: string; label: string; icon: LucideIcon; display: boolean }[];\n};\n\nexport function NavMain({ items }: { items: NavItem[] }) {\n const { setOpen } = useSidebar();\n const [openItem, setOpenItem] = useState<string | null>(null);\n const matches = useMatches();\n const currentPath = matches.length > 0 ? matches[matches.length - 1].pathname : '';\n\n const isChildActive = (item: NavItem) => {\n if (!item.children) return false;\n return item.children.some((child) => currentPath.startsWith(child.path));\n };\n\n const isParentActive = (item: NavItem) => {\n return currentPath.startsWith(item.path) || isChildActive(item);\n };\n\n // Set initial open state based on active paths\n useEffect(() => {\n items.forEach((item) => {\n if (isChildActive(item)) {\n setOpenItem(item.label);\n }\n });\n }, [currentPath]); // Re-run when path changes\n\n const handleToggle = (title: string) => {\n setOpenItem((prev) => (prev === title ? null : title));\n };\n\n const commonLinkStyles = `\n w-full rounded-md px-2 py-1.5\n transition-colors duration-200\n hover:bg-neutral-4 focus-visible:bg-neutral-4\n text-neutral-10 hover:text-neutral-10\n no-underline\n flex items-center gap-2\n `;\n\n const activeStyles = `bg-neutral-4 font-bold`;\n\n return (\n <SidebarGroup>\n <SidebarMenu className=\"flex flex-col gap-1\">\n {items.map((item) =>\n item.children && item.display && item.children.length > 0 ? (\n <Collapsible\n key={item.label}\n asChild\n open={openItem === item.label || isChildActive(item)}\n className=\"group/collapsible w-full\"\n >\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton\n tooltip={item.label}\n onClick={() => {\n setOpen(true);\n handleToggle(item.label);\n }}\n className={`${commonLinkStyles} ${isParentActive(item) ? activeStyles : ''}`}\n >\n {item.icon && <item.icon className=\"h-4 w-4\" />}\n <span className=\"flex-1\">{item.label}</span>\n <ChevronRight\n className={`h-4 w-4 transition-transform duration-200 ${\n openItem === item.label || isChildActive(item) ? 'rotate-90' : ''\n }`}\n />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub className=\"w-full flex flex-col gap-1\">\n {item.children.map(\n (subItem) =>\n subItem.display && (\n <SidebarMenuSubItem key={subItem.label}>\n <SidebarMenuSubButton asChild>\n <Link\n to={subItem.path}\n className={commonLinkStyles}\n activeProps={{\n className: activeStyles,\n }}\n >\n {subItem.icon && <subItem.icon className=\"h-4 w-4\" />}\n <span>{subItem.label}</span>\n </Link>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n ),\n )}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n ) : (\n item.display && (\n <SidebarMenuItem key={item.label}>\n <SidebarMenuButton asChild tooltip={item.label}>\n <Link\n to={item.path}\n className={commonLinkStyles}\n activeProps={{\n className: activeStyles,\n }}\n >\n {item.icon && <item.icon className=\"h-4 w-4\" />}\n <span>{item.label}</span>\n </Link>\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n}\n"],"names":["NavMain","items","setOpen","useSidebar","openItem","setOpenItem","useState","matches","useMatches","currentPath","isChildActive","item","child","isParentActive","useEffect","handleToggle","title","prev","commonLinkStyles","activeStyles","SidebarGroup","jsx","SidebarMenu","Collapsible","SidebarMenuItem","CollapsibleTrigger","jsxs","SidebarMenuButton","ChevronRight","CollapsibleContent","SidebarMenuSub","subItem","SidebarMenuSubItem","SidebarMenuSubButton","Link"],"mappings":";;;;;;AAuBgB,SAAAA,EAAQ,EAAE,OAAAC,KAA+B;AACjD,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAW,GACzB,CAACC,GAAUC,CAAW,IAAIC,EAAwB,IAAI,GACtDC,IAAUC,EAAW,GACrBC,IAAcF,EAAQ,SAAS,IAAIA,EAAQA,EAAQ,SAAS,CAAC,EAAE,WAAW,IAE1EG,IAAgB,CAACC,MAChBA,EAAK,WACHA,EAAK,SAAS,KAAK,CAACC,MAAUH,EAAY,WAAWG,EAAM,IAAI,CAAC,IAD5C,IAIvBC,IAAiB,CAACF,MACfF,EAAY,WAAWE,EAAK,IAAI,KAAKD,EAAcC,CAAI;AAIhE,EAAAG,EAAU,MAAM;AACR,IAAAb,EAAA,QAAQ,CAACU,MAAS;AAClB,MAAAD,EAAcC,CAAI,KACpBN,EAAYM,EAAK,KAAK;AAAA,IACxB,CACD;AAAA,EAAA,GACA,CAACF,CAAW,CAAC;AAEV,QAAAM,IAAe,CAACC,MAAkB;AACtC,IAAAX,EAAY,CAACY,MAAUA,MAASD,IAAQ,OAAOA,CAAM;AAAA,EACvD,GAEME,IAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KASnBC,IAAe;AAErB,2BACGC,GACC,EAAA,UAAA,gBAAAC,EAACC,GAAY,EAAA,WAAU,uBACpB,UAAMrB,EAAA;AAAA,IAAI,CAACU,MACVA,EAAK,YAAYA,EAAK,WAAWA,EAAK,SAAS,SAAS,IACtD,gBAAAU;AAAA,MAACE;AAAA,MAAA;AAAA,QAEC,SAAO;AAAA,QACP,MAAMnB,MAAaO,EAAK,SAASD,EAAcC,CAAI;AAAA,QACnD,WAAU;AAAA,QAEV,4BAACa,GACC,EAAA,UAAA;AAAA,UAAC,gBAAAH,EAAAI,GAAA,EAAmB,SAAO,IACzB,UAAA,gBAAAC;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,SAAShB,EAAK;AAAA,cACd,SAAS,MAAM;AACb,gBAAAT,EAAQ,EAAI,GACZa,EAAaJ,EAAK,KAAK;AAAA,cACzB;AAAA,cACA,WAAW,GAAGO,CAAgB,IAAIL,EAAeF,CAAI,IAAIQ,IAAe,EAAE;AAAA,cAEzE,UAAA;AAAA,gBAAAR,EAAK,QAAS,gBAAAU,EAAAV,EAAK,MAAL,EAAU,WAAU,WAAU;AAAA,gBAC5C,gBAAAU,EAAA,QAAA,EAAK,WAAU,UAAU,YAAK,OAAM;AAAA,gBACrC,gBAAAA;AAAA,kBAACO;AAAA,kBAAA;AAAA,oBACC,WAAW,6CACTxB,MAAaO,EAAK,SAASD,EAAcC,CAAI,IAAI,cAAc,EACjE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UAAA,GAEJ;AAAA,4BACCkB,GACC,EAAA,UAAA,gBAAAR,EAACS,KAAe,WAAU,8BACvB,YAAK,SAAS;AAAA,YACb,CAACC,MACCA,EAAQ,6BACLC,GACC,EAAA,UAAA,gBAAAX,EAACY,GAAqB,EAAA,SAAO,IAC3B,UAAA,gBAAAP;AAAA,cAACQ;AAAA,cAAA;AAAA,gBACC,IAAIH,EAAQ;AAAA,gBACZ,WAAWb;AAAA,gBACX,aAAa;AAAA,kBACX,WAAWC;AAAA,gBACb;AAAA,gBAEC,UAAA;AAAA,kBAAAY,EAAQ,QAAS,gBAAAV,EAAAU,EAAQ,MAAR,EAAa,WAAU,WAAU;AAAA,kBACnD,gBAAAV,EAAC,QAAM,EAAA,UAAAU,EAAQ,MAAM,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA,GAEzB,EAZuB,GAAAA,EAAQ,KAajC;AAAA,aAGR,EACF,CAAA;AAAA,QAAA,EACF,CAAA;AAAA,MAAA;AAAA,MA/CKpB,EAAK;AAAA,IAAA,IAkDZA,EAAK,WACF,gBAAAU,EAAAG,GAAA,EACC,UAAC,gBAAAH,EAAAM,GAAA,EAAkB,SAAO,IAAC,SAAShB,EAAK,OACvC,UAAA,gBAAAe;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,IAAIvB,EAAK;AAAA,QACT,WAAWO;AAAA,QACX,aAAa;AAAA,UACX,WAAWC;AAAA,QACb;AAAA,QAEC,UAAA;AAAA,UAAAR,EAAK,QAAS,gBAAAU,EAAAV,EAAK,MAAL,EAAU,WAAU,WAAU;AAAA,UAC7C,gBAAAU,EAAC,QAAM,EAAA,UAAAV,EAAK,MAAM,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAEtB,EAZoB,GAAAA,EAAK,KAa3B;AAAA,KAIR,EACF,CAAA;AAEJ;"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
2
  import { Badge as s } from "../ui/badge.es.js";
3
- import { Table as x, TableHeader as f, TableRow as p, TableCell as a, TableBody as g } from "../ui/table.es.js";
3
+ import { Table as x, TableHeader as f, TableRow as m, TableCell as a, TableBody as g } from "../ui/table.es.js";
4
4
  import { getResourceDisplayName as u, getValueFromData as v } from "../data-table/table-utils/constants.es.js";
5
- function b({ accessors: d, data: m, affectedData: t }) {
5
+ function b({ accessors: d, data: o, affectedData: t }) {
6
6
  return /* @__PURE__ */ e("div", { className: "relative overflow-hidden border max-h-[50vh]", children: /* @__PURE__ */ e("div", { className: "overflow-y-auto max-h-[50vh]", children: /* @__PURE__ */ n(x, { children: [
7
- /* @__PURE__ */ e(f, { className: "text-left align-middle uppercase sticky top-0 z-10 bg-card", children: /* @__PURE__ */ n(p, { children: [
7
+ /* @__PURE__ */ e(f, { className: "text-left align-middle sticky top-0 z-10 bg-card", children: /* @__PURE__ */ n(m, { children: [
8
8
  d.map((r) => /* @__PURE__ */ e(
9
9
  a,
10
10
  {
@@ -15,13 +15,13 @@ function b({ accessors: d, data: m, affectedData: t }) {
15
15
  )),
16
16
  t && /* @__PURE__ */ e(a, { className: "px-4 py-2 text-left text-sm font-medium cursor-pointer whitespace-nowrap bg-card", children: "Affected" })
17
17
  ] }) }),
18
- /* @__PURE__ */ e(g, { children: m.map((r, o) => /* @__PURE__ */ n(p, { children: [
18
+ /* @__PURE__ */ e(g, { children: o.map((r, p) => /* @__PURE__ */ n(m, { children: [
19
19
  d.map((l) => {
20
20
  const c = r[l];
21
21
  return Array.isArray(c) ? /* @__PURE__ */ e(a, { className: "flex gap-4", children: c.map((i, h) => /* @__PURE__ */ e(s, { children: (i == null ? void 0 : i.name) || i }, h)) }, String(l)) : /* @__PURE__ */ e(a, { children: v(r, l) }, String(l));
22
22
  }),
23
23
  t && /* @__PURE__ */ e(a, { children: t.includes(r) ? /* @__PURE__ */ e("span", { className: "text-success-10", children: "✔" }) : /* @__PURE__ */ e("span", { className: "text-destructive", children: "✖" }) })
24
- ] }, o)) })
24
+ ] }, p)) })
25
25
  ] }) }) });
26
26
  }
27
27
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.es.js","sources":["../../../lib/components/static-data-table/data-table.tsx"],"sourcesContent":["import { getResourceDisplayName, getValueFromData } from '@/components/data-table';\nimport { Badge } from '@/components/ui/badge';\nimport { Table, TableBody, TableCell, TableHeader, TableRow } from '@/components/ui/table';\n\n\nexport interface StaticDataTableProps<T> {\n accessors: (keyof T)[];\n data: T[];\n affectedData?: T[];\n}\n\nexport function StaticDataTable<T>({ accessors, data, affectedData }: StaticDataTableProps<T>) {\n return (\n <div className=\"relative overflow-hidden border max-h-[50vh]\">\n <div className=\"overflow-y-auto max-h-[50vh]\">\n <Table>\n <TableHeader className=\"text-left align-middle uppercase sticky top-0 z-10 bg-card\">\n <TableRow>\n {accessors.map((accessor) => (\n <TableCell\n key={String(accessor)}\n className=\"px-4 py-2 text-left text-sm font-medium cursor-pointer whitespace-nowrap bg-card\"\n >\n {getResourceDisplayName(String(accessor), 'admin-portal')}\n </TableCell>\n ))}\n {affectedData && (\n <TableCell className=\"px-4 py-2 text-left text-sm font-medium cursor-pointer whitespace-nowrap bg-card\">\n Affected\n </TableCell>\n )}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.map((item, index) => (\n <TableRow key={index}>\n {accessors.map((accessor) => {\n const value = item[accessor];\n // Handle arrays (e.g., userGroups) with badges\n if (Array.isArray(value)) {\n return (\n <TableCell key={String(accessor)} className=\"flex gap-4\">\n {value.map((subItem, subIndex) => (\n <Badge key={subIndex}>{subItem?.name || subItem}</Badge>\n ))}\n </TableCell>\n );\n }\n // Handle other data types\n return (\n <TableCell key={String(accessor)}>{getValueFromData(item, accessor)}</TableCell>\n );\n })}\n {affectedData && (\n <TableCell>\n {affectedData.includes(item) ? (\n <span className=\"text-success-10\">✔</span>\n ) : (\n <span className=\"text-destructive\">✖</span>\n )}\n </TableCell>\n )}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n}\n"],"names":["StaticDataTable","accessors","data","affectedData","jsx","jsxs","Table","TableHeader","TableRow","accessor","TableCell","getResourceDisplayName","TableBody","item","index","value","subItem","subIndex","Badge","getValueFromData"],"mappings":";;;;AAWO,SAASA,EAAmB,EAAE,WAAAC,GAAW,MAAAC,GAAM,cAAAC,KAAyC;AAE3F,SAAA,gBAAAC,EAAC,SAAI,WAAU,gDACb,4BAAC,OAAI,EAAA,WAAU,gCACb,UAAA,gBAAAC,EAACC,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAF,EAACG,GAAY,EAAA,WAAU,8DACrB,UAAA,gBAAAF,EAACG,GACE,EAAA,UAAA;AAAA,MAAUP,EAAA,IAAI,CAACQ,MACd,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAET,UAAuBC,EAAA,OAAOF,CAAQ,GAAG,cAAc;AAAA,QAAA;AAAA,QAHnD,OAAOA,CAAQ;AAAA,MAAA,CAKvB;AAAA,MACAN,KACC,gBAAAC,EAACM,GAAU,EAAA,WAAU,oFAAmF,UAExG,WAAA,CAAA;AAAA,IAAA,EAAA,CAEJ,EACF,CAAA;AAAA,IACA,gBAAAN,EAACQ,KACE,UAAKV,EAAA,IAAI,CAACW,GAAMC,wBACdN,GACE,EAAA,UAAA;AAAA,MAAUP,EAAA,IAAI,CAACQ,MAAa;AACrB,cAAAM,IAAQF,EAAKJ,CAAQ;AAEvB,eAAA,MAAM,QAAQM,CAAK,sBAElBL,GAAiC,EAAA,WAAU,cACzC,UAAMK,EAAA,IAAI,CAACC,GAASC,wBAClBC,GAAsB,EAAA,WAAAF,KAAA,gBAAAA,EAAS,SAAQA,EAA5B,GAAAC,CAAoC,CACjD,EAHa,GAAA,OAAOR,CAAQ,CAI/B,IAKF,gBAAAL,EAACM,KAAkC,UAAiBS,EAAAN,GAAMJ,CAAQ,EAAlD,GAAA,OAAOA,CAAQ,CAAqC;AAAA,MAAA,CAEvE;AAAA,MACAN,KACE,gBAAAC,EAAAM,GAAA,EACE,YAAa,SAASG,CAAI,IACxB,gBAAAT,EAAA,QAAA,EAAK,WAAU,mBAAkB,eAAC,IAEnC,gBAAAA,EAAC,UAAK,WAAU,oBAAmB,cAAC,CAAA,EAExC,CAAA;AAAA,IAAA,EAzBW,GAAAU,CA2Bf,CACD,EACH,CAAA;AAAA,EAAA,EACF,CAAA,EACF,CAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"data-table.es.js","sources":["../../../lib/components/static-data-table/data-table.tsx"],"sourcesContent":["import { getResourceDisplayName, getValueFromData } from '@/components/data-table';\nimport { Badge } from '@/components/ui/badge';\nimport { Table, TableBody, TableCell, TableHeader, TableRow } from '@/components/ui/table';\n\n\nexport interface StaticDataTableProps<T> {\n accessors: (keyof T)[];\n data: T[];\n affectedData?: T[];\n}\n\nexport function StaticDataTable<T>({ accessors, data, affectedData }: StaticDataTableProps<T>) {\n return (\n <div className=\"relative overflow-hidden border max-h-[50vh]\">\n <div className=\"overflow-y-auto max-h-[50vh]\">\n <Table>\n <TableHeader className=\"text-left align-middle sticky top-0 z-10 bg-card\">\n <TableRow>\n {accessors.map((accessor) => (\n <TableCell\n key={String(accessor)}\n className=\"px-4 py-2 text-left text-sm font-medium cursor-pointer whitespace-nowrap bg-card\"\n >\n {getResourceDisplayName(String(accessor), 'admin-portal')}\n </TableCell>\n ))}\n {affectedData && (\n <TableCell className=\"px-4 py-2 text-left text-sm font-medium cursor-pointer whitespace-nowrap bg-card\">\n Affected\n </TableCell>\n )}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.map((item, index) => (\n <TableRow key={index}>\n {accessors.map((accessor) => {\n const value = item[accessor];\n // Handle arrays (e.g., userGroups) with badges\n if (Array.isArray(value)) {\n return (\n <TableCell key={String(accessor)} className=\"flex gap-4\">\n {value.map((subItem, subIndex) => (\n <Badge key={subIndex}>{subItem?.name || subItem}</Badge>\n ))}\n </TableCell>\n );\n }\n // Handle other data types\n return (\n <TableCell key={String(accessor)}>{getValueFromData(item, accessor)}</TableCell>\n );\n })}\n {affectedData && (\n <TableCell>\n {affectedData.includes(item) ? (\n <span className=\"text-success-10\">✔</span>\n ) : (\n <span className=\"text-destructive\">✖</span>\n )}\n </TableCell>\n )}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n}\n"],"names":["StaticDataTable","accessors","data","affectedData","jsx","jsxs","Table","TableHeader","TableRow","accessor","TableCell","getResourceDisplayName","TableBody","item","index","value","subItem","subIndex","Badge","getValueFromData"],"mappings":";;;;AAWO,SAASA,EAAmB,EAAE,WAAAC,GAAW,MAAAC,GAAM,cAAAC,KAAyC;AAE3F,SAAA,gBAAAC,EAAC,SAAI,WAAU,gDACb,4BAAC,OAAI,EAAA,WAAU,gCACb,UAAA,gBAAAC,EAACC,GACC,EAAA,UAAA;AAAA,IAAA,gBAAAF,EAACG,GAAY,EAAA,WAAU,oDACrB,UAAA,gBAAAF,EAACG,GACE,EAAA,UAAA;AAAA,MAAUP,EAAA,IAAI,CAACQ,MACd,gBAAAL;AAAA,QAACM;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAET,UAAuBC,EAAA,OAAOF,CAAQ,GAAG,cAAc;AAAA,QAAA;AAAA,QAHnD,OAAOA,CAAQ;AAAA,MAAA,CAKvB;AAAA,MACAN,KACC,gBAAAC,EAACM,GAAU,EAAA,WAAU,oFAAmF,UAExG,WAAA,CAAA;AAAA,IAAA,EAAA,CAEJ,EACF,CAAA;AAAA,IACA,gBAAAN,EAACQ,KACE,UAAKV,EAAA,IAAI,CAACW,GAAMC,wBACdN,GACE,EAAA,UAAA;AAAA,MAAUP,EAAA,IAAI,CAACQ,MAAa;AACrB,cAAAM,IAAQF,EAAKJ,CAAQ;AAEvB,eAAA,MAAM,QAAQM,CAAK,sBAElBL,GAAiC,EAAA,WAAU,cACzC,UAAMK,EAAA,IAAI,CAACC,GAASC,wBAClBC,GAAsB,EAAA,WAAAF,KAAA,gBAAAA,EAAS,SAAQA,EAA5B,GAAAC,CAAoC,CACjD,EAHa,GAAA,OAAOR,CAAQ,CAI/B,IAKF,gBAAAL,EAACM,KAAkC,UAAiBS,EAAAN,GAAMJ,CAAQ,EAAlD,GAAA,OAAOA,CAAQ,CAAqC;AAAA,MAAA,CAEvE;AAAA,MACAN,KACE,gBAAAC,EAAAM,GAAA,EACE,YAAa,SAASG,CAAI,IACxB,gBAAAT,EAAA,QAAA,EAAK,WAAU,mBAAkB,eAAC,IAEnC,gBAAAA,EAAC,UAAK,WAAU,oBAAmB,cAAC,CAAA,EAExC,CAAA;AAAA,IAAA,EAzBW,GAAAU,CA2Bf,CACD,EACH,CAAA;AAAA,EAAA,EACF,CAAA,EACF,CAAA,GACF;AAEJ;"}
@@ -26,7 +26,7 @@ const i = t.forwardRef(({ className: e, ...l }, r) => /* @__PURE__ */ s(
26
26
  {
27
27
  ref: r,
28
28
  className: m(
29
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
29
+ "flex h-full w-full items-center justify-center uppercase rounded-full bg-muted",
30
30
  e
31
31
  ),
32
32
  ...l
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.es.js","sources":["../../../lib/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '@/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn('aspect-square h-full w-full', className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted',\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"names":["Avatar","React","className","props","ref","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback"],"mappings":";;;;;AAMM,MAAAA,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,iEAAiEL,CAAS;AAAA,IACvF,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAO,cAAcM,EAAgB,KAAK;AAEpC,MAAAE,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,+BAA+BL,CAAS;AAAA,IACrD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcF,EAAgB,MAAM;AAE1C,MAAAG,IAAiBR,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAe,cAAcH,EAAgB,SAAS;"}
1
+ {"version":3,"file":"avatar.es.js","sources":["../../../lib/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '@/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn('aspect-square h-full w-full', className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center uppercase rounded-full bg-muted',\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"names":["Avatar","React","className","props","ref","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback"],"mappings":";;;;;AAMM,MAAAA,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,iEAAiEL,CAAS;AAAA,IACvF,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAO,cAAcM,EAAgB,KAAK;AAEpC,MAAAE,IAAcP,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,+BAA+BL,CAAS;AAAA,IACrD,GAAGC;AAAA,EAAA;AACN,CACD;AACDK,EAAY,cAAcF,EAAgB,MAAM;AAE1C,MAAAG,IAAiBR,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDM,EAAe,cAAcH,EAAgB,SAAS;"}
@@ -2,7 +2,7 @@ import { jsx as n } from "react/jsx-runtime";
2
2
  import { cva as o } from "class-variance-authority";
3
3
  import { cn as s } from "../../utils/index.es.js";
4
4
  const a = o(
5
- "inline-flex items-center select-none rounded-md border px-2.5 py-0.5 text-caption font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
5
+ "inline-flex items-center select-none rounded-md border px-2.5 py-0.5 text-caption font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
6
6
  {
7
7
  variants: {
8
8
  variant: {
@@ -1 +1 @@
1
- {"version":3,"file":"badge.es.js","sources":["../../../lib/components/ui/badge.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center select-none rounded-md border px-2.5 py-0.5 text-caption font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground\",\n success:\n \"border-transparent bg-success text-success-foreground\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAMA,SAASC,EAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAqB;AAC3D,SACG,gBAAAC,EAAA,OAAA,EAAI,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAS,CAAA,GAAGD,CAAS,GAAI,GAAGE,EAAO,CAAA;AAE1E;"}
1
+ {"version":3,"file":"badge.es.js","sources":["../../../lib/components/ui/badge.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center select-none rounded-md border px-2.5 py-0.5 text-caption font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground\",\n success:\n \"border-transparent bg-success text-success-foreground\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,SAAS;AAAA,MAAA;AAAA,IAEb;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAMA,SAASC,EAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAqB;AAC3D,SACG,gBAAAC,EAAA,OAAA,EAAI,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAS,CAAA,GAAGD,CAAS,GAAI,GAAGE,EAAO,CAAA;AAE1E;"}
@@ -1,11 +1,11 @@
1
1
  import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
- import { Slottable as v, Slot as g } from "@radix-ui/react-slot";
3
- import { cva as b } from "class-variance-authority";
4
- import * as p from "react";
2
+ import { Slot as v, Slottable as g } from "@radix-ui/react-slot";
3
+ import { cva as p } from "class-variance-authority";
4
+ import * as b from "react";
5
5
  import { cn as h } from "../../utils/index.es.js";
6
6
  import { Loader as x } from "./loader.es.js";
7
- const y = b(
8
- "inline-flex items-center justify-center no-underline whitespace-nowrap rounded-lg text-body font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
7
+ const y = p(
8
+ "inline-flex items-center cursor-pointer justify-center no-underline whitespace-nowrap rounded-lg text-body font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
9
9
  {
10
10
  variants: {
11
11
  variant: {
@@ -28,9 +28,9 @@ const y = b(
28
28
  size: "default"
29
29
  }
30
30
  }
31
- ), w = p.forwardRef(
31
+ ), w = b.forwardRef(
32
32
  ({ className: n, variant: i, size: s, loading: r, disabled: a, asChild: d = !1, icon: c, children: o, ...u }, f) => {
33
- const l = d ? g : "button", t = c;
33
+ const l = d ? v : "button", t = c;
34
34
  return /* @__PURE__ */ m(
35
35
  l,
36
36
  {
@@ -41,7 +41,7 @@ const y = b(
41
41
  children: [
42
42
  r ? /* @__PURE__ */ e(x, { className: "h-4 w-4" }) : t ? /* @__PURE__ */ e(t, { className: "h-4 w-4" }) : null,
43
43
  " ",
44
- /* @__PURE__ */ e(v, { children: o && /* @__PURE__ */ e("div", { className: r || t ? "ml-2" : "", children: o }) })
44
+ /* @__PURE__ */ e(g, { children: o && /* @__PURE__ */ e("div", { className: r || t ? "ml-2" : "", children: o }) })
45
45
  ]
46
46
  }
47
47
  );
@@ -1 +1 @@
1
- {"version":3,"file":"button.es.js","sources":["../../../lib/components/ui/button.tsx"],"sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/utils';\nimport { LucideIcon } from 'lucide-react';\nimport { Loader } from './loader';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center no-underline whitespace-nowrap rounded-lg text-body font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground hover:bg-primary/80 hover:text-primary-foreground',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 hover:text-destructive-foreground',\n outline:\n 'border border-input text-accent bg-background hover:bg-accent hover:text-accent-foreground',\n secondary:\n 'bg-secondary text-secondary-foreground hover:text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-6 rounded-md px-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n icon?: LucideIcon;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, variant, size, loading, disabled, asChild = false, icon, children, ...props },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const Icon = icon;\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || disabled}\n {...props}\n >\n {/* Show loader when loading, otherwise show icon if present */}\n {loading ? <Loader className=\"h-4 w-4\" /> : Icon ? <Icon className=\"h-4 w-4\" /> : null}\n {/* Show children with appropriate spacing */}{' '}\n {/* https://www.radix-ui.com/primitives/docs/utilities/slot */}\n <Slottable>\n {children && <div className={loading || Icon ? 'ml-2' : ''}>{children}</div>}\n </Slottable>\n </Comp>\n );\n },\n);\n\nButton.displayName = 'Button'; // Set display name for better debugging\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","loading","disabled","asChild","icon","children","props","ref","Comp","Slot","Icon","jsxs","cn","jsx","Loader","Slottable"],"mappings":";;;;;;AAQA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IAEV;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAUMC,IAASC,EAAM;AAAA,EACnB,CACE,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,SAAAC,IAAU,IAAO,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GACnFC,MACG;AACG,UAAAC,IAAOL,IAAUM,IAAO,UACxBC,IAAON;AAGX,WAAA,gBAAAO;AAAA,MAACH;AAAA,MAAA;AAAA,QACC,WAAWI,EAAGlB,EAAe,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,QAC1D,KAAAS;AAAA,QACA,UAAUN,KAAWC;AAAA,QACpB,GAAGI;AAAA,QAGH,UAAA;AAAA,UAAUL,IAAA,gBAAAY,EAACC,GAAO,EAAA,WAAU,UAAU,CAAA,IAAKJ,IAAQ,gBAAAG,EAAAH,GAAA,EAAK,WAAU,UAAA,CAAU,IAAK;AAAA,UACnC;AAAA,UAE/C,gBAAAG,EAACE,GACE,EAAA,UAAAV,KAAa,gBAAAQ,EAAA,OAAA,EAAI,WAAWZ,KAAWS,IAAO,SAAS,IAAK,UAAAL,EAAS,CAAA,EACxE,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEAT,EAAO,cAAc;"}
1
+ {"version":3,"file":"button.es.js","sources":["../../../lib/components/ui/button.tsx"],"sourcesContent":["import { Slot, Slottable } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/utils';\nimport { LucideIcon } from 'lucide-react';\nimport { Loader } from './loader';\n\nconst buttonVariants = cva(\n 'inline-flex items-center cursor-pointer justify-center no-underline whitespace-nowrap rounded-lg text-body font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground hover:bg-primary/80 hover:text-primary-foreground',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90 hover:text-destructive-foreground',\n outline:\n 'border border-input text-accent bg-background hover:bg-accent hover:text-accent-foreground',\n secondary:\n 'bg-secondary text-secondary-foreground hover:text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-6 rounded-md px-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n icon?: LucideIcon;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, variant, size, loading, disabled, asChild = false, icon, children, ...props },\n ref,\n ) => {\n const Comp = asChild ? Slot : 'button';\n const Icon = icon;\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n disabled={loading || disabled}\n {...props}\n >\n {/* Show loader when loading, otherwise show icon if present */}\n {loading ? <Loader className=\"h-4 w-4\" /> : Icon ? <Icon className=\"h-4 w-4\" /> : null}\n {/* Show children with appropriate spacing */}{' '}\n {/* https://www.radix-ui.com/primitives/docs/utilities/slot */}\n <Slottable>\n {children && <div className={loading || Icon ? 'ml-2' : ''}>{children}</div>}\n </Slottable>\n </Comp>\n );\n },\n);\n\nButton.displayName = 'Button'; // Set display name for better debugging\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","React","className","variant","size","loading","disabled","asChild","icon","children","props","ref","Comp","Slot","Icon","jsxs","cn","jsx","Loader","Slottable"],"mappings":";;;;;;AAQA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IAEV;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAUMC,IAASC,EAAM;AAAA,EACnB,CACE,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,SAAAC,IAAU,IAAO,MAAAC,GAAM,UAAAC,GAAU,GAAGC,EAAA,GACnFC,MACG;AACG,UAAAC,IAAOL,IAAUM,IAAO,UACxBC,IAAON;AAGX,WAAA,gBAAAO;AAAA,MAACH;AAAA,MAAA;AAAA,QACC,WAAWI,EAAGlB,EAAe,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,QAC1D,KAAAS;AAAA,QACA,UAAUN,KAAWC;AAAA,QACpB,GAAGI;AAAA,QAGH,UAAA;AAAA,UAAUL,IAAA,gBAAAY,EAACC,GAAO,EAAA,WAAU,UAAU,CAAA,IAAKJ,IAAQ,gBAAAG,EAAAH,GAAA,EAAK,WAAU,UAAA,CAAU,IAAK;AAAA,UACnC;AAAA,UAE/C,gBAAAG,EAACE,GACE,EAAA,UAAAV,KAAa,gBAAAQ,EAAA,OAAA,EAAI,WAAWZ,KAAWS,IAAO,SAAS,IAAK,UAAAL,EAAS,CAAA,EACxE,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEAT,EAAO,cAAc;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { ChevronLeftIcon as s, ChevronRightIcon as c } from "@radix-ui/react-icons";
2
+ import { ChevronRightIcon as s, ChevronLeftIcon as c } from "@radix-ui/react-icons";
3
3
  import { DayPicker as i } from "react-day-picker";
4
4
  import { cn as e } from "../../utils/index.es.js";
5
5
  import { buttonVariants as r } from "./button.es.js";
@@ -48,8 +48,8 @@ const l = ({
48
48
  ...d
49
49
  },
50
50
  components: {
51
- IconLeft: () => /* @__PURE__ */ a(s, { className: "h-4 w-4" }),
52
- IconRight: () => /* @__PURE__ */ a(c, { className: "h-4 w-4" })
51
+ IconLeft: () => /* @__PURE__ */ a(c, { className: "h-4 w-4" }),
52
+ IconRight: () => /* @__PURE__ */ a(s, { className: "h-4 w-4" })
53
53
  },
54
54
  ...t
55
55
  }