@myrjfa/ui 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/chat/ChatMain.d.ts.map +1 -1
  2. package/dist/chat/ChatMain.js +173 -145
  3. package/dist/chat/ChatSidebar.js +7 -8
  4. package/dist/chat/ConversationList.d.ts.map +1 -1
  5. package/dist/chat/ConversationList.js +20 -18
  6. package/dist/chat/ExpensePanel.d.ts +4 -1
  7. package/dist/chat/ExpensePanel.d.ts.map +1 -1
  8. package/dist/chat/ExpensePanel.js +215 -195
  9. package/dist/chat/MessageBubble.d.ts +5 -3
  10. package/dist/chat/MessageBubble.d.ts.map +1 -1
  11. package/dist/chat/MessageBubble.js +185 -103
  12. package/dist/chat/MessageInput.d.ts +8 -1
  13. package/dist/chat/MessageInput.d.ts.map +1 -1
  14. package/dist/chat/MessageInput.js +182 -165
  15. package/dist/chat/MilestonePanel.d.ts +4 -1
  16. package/dist/chat/MilestonePanel.d.ts.map +1 -1
  17. package/dist/chat/MilestonePanel.js +150 -150
  18. package/dist/chat/components/ParticipantSelector.d.ts +11 -0
  19. package/dist/chat/components/ParticipantSelector.d.ts.map +1 -0
  20. package/dist/chat/components/ParticipantSelector.js +17 -0
  21. package/dist/chat/components/SplitInputs.d.ts +11 -0
  22. package/dist/chat/components/SplitInputs.d.ts.map +1 -0
  23. package/dist/chat/components/SplitInputs.js +83 -0
  24. package/dist/chat/components/SplitTypeSelector.d.ts +8 -0
  25. package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -0
  26. package/dist/chat/components/SplitTypeSelector.js +13 -0
  27. package/dist/chat/dialogs/AddMemberDialog.js +30 -90
  28. package/dist/chat/dialogs/CameraDialog.js +38 -86
  29. package/dist/chat/dialogs/CreatePollDialog.d.ts +8 -0
  30. package/dist/chat/dialogs/CreatePollDialog.d.ts.map +1 -0
  31. package/dist/chat/dialogs/CreatePollDialog.js +38 -0
  32. package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts +19 -0
  33. package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts.map +1 -0
  34. package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +52 -0
  35. package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
  36. package/dist/chat/dialogs/GroupInfoDialog.js +55 -92
  37. package/dist/chat/dialogs/GroupInfoViewDialog.js +5 -6
  38. package/dist/chat/dialogs/NewChatDialog.d.ts.map +1 -1
  39. package/dist/chat/dialogs/NewChatDialog.js +49 -113
  40. package/dist/chat/dialogs/NewGroupDialog.d.ts.map +1 -1
  41. package/dist/chat/dialogs/NewGroupDialog.js +49 -92
  42. package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
  43. package/dist/chat/dialogs/ParticipantsDialog.js +68 -118
  44. package/dist/chat/dialogs/UserProfileDialog.d.ts +10 -0
  45. package/dist/chat/dialogs/UserProfileDialog.d.ts.map +1 -0
  46. package/dist/chat/dialogs/UserProfileDialog.js +100 -0
  47. package/dist/dashboard/action-buttons.js +4 -5
  48. package/dist/dashboard/app-sidebar.js +46 -128
  49. package/dist/dashboard/card-header.js +1 -2
  50. package/dist/dashboard/dashboard-components.js +3 -5
  51. package/dist/dashboard/data-table.js +21 -33
  52. package/dist/dashboard/nav-main.js +4 -5
  53. package/dist/dashboard/nav-secondary.js +2 -25
  54. package/dist/dashboard/stats-card.js +1 -2
  55. package/dist/dashboard/table.js +8 -54
  56. package/dist/header/mobile-nav-item.js +1 -2
  57. package/dist/header/mobile-navbar.js +8 -9
  58. package/dist/header/nav-item.js +1 -2
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/main/footer.js +5 -9
  63. package/dist/main/navbar.js +53 -136
  64. package/dist/main/paginationBar.js +12 -14
  65. package/dist/main/portfolio/portfolioItem.js +1 -2
  66. package/dist/main/portfolio/portfolioPopup.js +16 -17
  67. package/dist/main/review-page.d.ts.map +1 -1
  68. package/dist/main/review-page.js +131 -198
  69. package/dist/misc/accordion.js +8 -34
  70. package/dist/misc/alert-dialog.js +22 -55
  71. package/dist/misc/alert.js +7 -32
  72. package/dist/misc/alertdialogclaude.js +50 -125
  73. package/dist/misc/avatar.js +6 -31
  74. package/dist/misc/badge.js +4 -27
  75. package/dist/misc/button.js +4 -27
  76. package/dist/misc/card.js +12 -40
  77. package/dist/misc/carousel.js +37 -61
  78. package/dist/misc/checkbox.js +2 -25
  79. package/dist/misc/command.js +18 -49
  80. package/dist/misc/datepicker.js +66 -76
  81. package/dist/misc/dialog.js +20 -52
  82. package/dist/misc/dropdown-menu.js +30 -67
  83. package/dist/misc/faq.js +2 -3
  84. package/dist/misc/file-preview.js +43 -97
  85. package/dist/misc/filter.d.ts.map +1 -1
  86. package/dist/misc/filter.js +18 -21
  87. package/dist/misc/filterBar.js +136 -160
  88. package/dist/misc/form.js +39 -60
  89. package/dist/misc/image-cropper.d.ts +10 -0
  90. package/dist/misc/image-cropper.d.ts.map +1 -0
  91. package/dist/misc/image-cropper.js +44 -0
  92. package/dist/misc/input.js +2 -25
  93. package/dist/misc/label.js +2 -25
  94. package/dist/misc/line-carousel.js +3 -13
  95. package/dist/misc/multiImageUploader.js +2 -3
  96. package/dist/misc/newsLetter.js +18 -78
  97. package/dist/misc/notification.d.ts +1 -2
  98. package/dist/misc/notification.d.ts.map +1 -1
  99. package/dist/misc/notification.js +89 -125
  100. package/dist/misc/pagination.js +16 -45
  101. package/dist/misc/password-eye.js +2 -3
  102. package/dist/misc/popover.d.ts.map +1 -1
  103. package/dist/misc/popover.js +8 -34
  104. package/dist/misc/progress.js +2 -25
  105. package/dist/misc/scroll-area.js +5 -29
  106. package/dist/misc/searchBar.js +27 -31
  107. package/dist/misc/searchBox.js +18 -22
  108. package/dist/misc/select.d.ts.map +1 -1
  109. package/dist/misc/select.js +22 -54
  110. package/dist/misc/separator.js +2 -25
  111. package/dist/misc/share.js +48 -104
  112. package/dist/misc/sheet.js +21 -53
  113. package/dist/misc/sidebar.js +112 -153
  114. package/dist/misc/skeleton.js +2 -25
  115. package/dist/misc/slider.js +3 -26
  116. package/dist/misc/starRating.js +5 -15
  117. package/dist/misc/stateCard.js +7 -8
  118. package/dist/misc/switch.d.ts +5 -0
  119. package/dist/misc/switch.d.ts.map +1 -0
  120. package/dist/misc/switch.js +8 -0
  121. package/dist/misc/tabs.js +8 -34
  122. package/dist/misc/textarea.js +2 -25
  123. package/dist/misc/tile.js +31 -92
  124. package/dist/misc/tooltip.js +8 -34
  125. package/dist/profile/socialLink.d.ts +1 -1
  126. package/dist/profile/socialLink.d.ts.map +1 -1
  127. package/dist/profile/socialLink.js +53 -69
  128. package/dist/utils/permissions.d.ts +7 -0
  129. package/dist/utils/permissions.d.ts.map +1 -0
  130. package/dist/utils/permissions.js +38 -0
  131. package/package.json +3 -2
@@ -1,47 +1,35 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
2
  import { ChevronDown, ChevronUp, Inbox } from 'lucide-react';
12
3
  import { useMemo, useState } from 'react';
13
4
  import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../dashboard/table';
14
5
  import { Input } from '../misc/input';
15
- export function DataTable(_a) {
16
- var data = _a.data, columns = _a.columns, actions = _a.actions, onRowClick = _a.onRowClick;
17
- var _b = useState(''), searchQuery = _b[0], setSearchQuery = _b[1];
18
- var _c = useState(null), sortColumn = _c[0], setSortColumn = _c[1];
19
- var _d = useState('asc'), sortDirection = _d[0], setSortDirection = _d[1];
6
+ export function DataTable({ data, columns, actions, onRowClick, }) {
7
+ const [searchQuery, setSearchQuery] = useState('');
8
+ const [sortColumn, setSortColumn] = useState(null);
9
+ const [sortDirection, setSortDirection] = useState('asc');
20
10
  // Global search across all string fields
21
- var filteredData = useMemo(function () {
11
+ const filteredData = useMemo(() => {
22
12
  if (!searchQuery)
23
13
  return data;
24
- return data.filter(function (item) {
25
- var searchLower = searchQuery.toLowerCase();
26
- return Object.values(item).some(function (value) {
27
- return typeof value === 'string' && value.toLowerCase().includes(searchLower);
28
- });
14
+ return data.filter((item) => {
15
+ const searchLower = searchQuery.toLowerCase();
16
+ return Object.values(item).some((value) => typeof value === 'string' && value.toLowerCase().includes(searchLower));
29
17
  });
30
18
  }, [searchQuery, data]);
31
19
  // Sort logic
32
- var sortedData = useMemo(function () {
20
+ const sortedData = useMemo(() => {
33
21
  if (!sortColumn)
34
22
  return filteredData;
35
- return __spreadArray([], filteredData, true).sort(function (a, b) {
36
- var aValue = a[sortColumn];
37
- var bValue = b[sortColumn];
23
+ return [...filteredData].sort((a, b) => {
24
+ const aValue = a[sortColumn];
25
+ const bValue = b[sortColumn];
38
26
  if (typeof aValue === 'number' && typeof bValue === 'number') {
39
27
  return sortDirection === 'asc' ? aValue - bValue : bValue - aValue;
40
28
  }
41
29
  return String(aValue).localeCompare(String(bValue)) * (sortDirection === 'asc' ? 1 : -1);
42
30
  });
43
31
  }, [filteredData, sortColumn, sortDirection]);
44
- var toggleSort = function (accessorKey) {
32
+ const toggleSort = (accessorKey) => {
45
33
  if (sortColumn === accessorKey) {
46
34
  setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');
47
35
  }
@@ -50,17 +38,17 @@ export function DataTable(_a) {
50
38
  setSortDirection('asc');
51
39
  }
52
40
  };
53
- return (_jsxs("div", { className: "w-full", children: [_jsx("div", { className: "p-2", children: _jsx(Input, { placeholder: "Search...", className: "mb-4 max-w-sm", value: searchQuery, onChange: function (e) { return setSearchQuery(e.target.value); } }) }), _jsx("div", { className: "hidden lg:block overflow-auto", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [columns.map(function (column) { return (_jsx(TableHead, { className: "cursor-pointer select-none", onClick: function () { return column.sortable && toggleSort(column.accessorKey); }, children: _jsxs("div", { className: "flex items-center gap-1", children: [column.header, column.sortable && (sortColumn === column.accessorKey ? (sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "w-4 h-4 text-black" })) : (_jsx(ChevronDown, { className: "w-4 h-4 text-black" }))) : (_jsxs("div", { className: "flex flex-col text-gray-400 leading-none", children: [_jsx(ChevronUp, { className: "w-3 h-3 -mb-1" }), _jsx(ChevronDown, { className: "w-3 h-3" })] })))] }) }, column.accessorKey)); }), actions && _jsx(TableHead, { children: "Actions" })] }) }), _jsx(TableBody, { children: sortedData.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length + (actions ? 1 : 0), className: "h-40 text-center text-gray-500", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [_jsx(Inbox, { className: "w-8 h-8 text-gray-400" }), _jsx("span", { className: "text-base font-medium", children: "No data available" })] }) }) })) : (sortedData.map(function (item) {
54
- var key = item.slug || item._id || Math.random().toString();
55
- return (_jsxs(TableRow, { onClick: function () { return onRowClick && onRowClick(key); }, className: onRowClick ? 'hover:bg-accent cursor-pointer' : '', children: [columns.map(function (column) { return (_jsx(TableCell, { children: column.cell
41
+ return (_jsxs("div", { className: "w-full", children: [_jsx("div", { className: "p-2", children: _jsx(Input, { placeholder: "Search...", className: "mb-4 max-w-sm", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value) }) }), _jsx("div", { className: "hidden lg:block overflow-auto", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [columns.map((column) => (_jsx(TableHead, { className: "cursor-pointer select-none", onClick: () => column.sortable && toggleSort(column.accessorKey), children: _jsxs("div", { className: "flex items-center gap-1", children: [column.header, column.sortable && (sortColumn === column.accessorKey ? (sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "w-4 h-4 text-black" })) : (_jsx(ChevronDown, { className: "w-4 h-4 text-black" }))) : (_jsxs("div", { className: "flex flex-col text-gray-400 leading-none", children: [_jsx(ChevronUp, { className: "w-3 h-3 -mb-1" }), _jsx(ChevronDown, { className: "w-3 h-3" })] })))] }) }, column.accessorKey))), actions && _jsx(TableHead, { children: "Actions" })] }) }), _jsx(TableBody, { children: sortedData.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length + (actions ? 1 : 0), className: "h-40 text-center text-gray-500", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [_jsx(Inbox, { className: "w-8 h-8 text-gray-400" }), _jsx("span", { className: "text-base font-medium", children: "No data available" })] }) }) })) : (sortedData.map((item) => {
42
+ const key = item.slug || item._id || Math.random().toString();
43
+ return (_jsxs(TableRow, { onClick: () => onRowClick && onRowClick(key), className: onRowClick ? 'hover:bg-accent cursor-pointer' : '', children: [columns.map((column) => (_jsx(TableCell, { children: column.cell
56
44
  ? column.cell(item)
57
- : item[column.accessorKey] }, column.accessorKey)); }), actions && (_jsx(TableCell, { onClick: function (e) { return e.stopPropagation(); }, children: actions(item) }))] }, key));
58
- })) })] }) }), _jsx("div", { className: "lg:hidden", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsx(TableRow, { children: columns.slice(1).map(function (column) { return (_jsx(TableHead, { className: "cursor-pointer select-none", onClick: function () { return column.sortable && toggleSort(column.accessorKey); }, children: _jsxs("div", { className: "flex items-center gap-1", children: [column.header, column.sortable && (sortColumn === column.accessorKey ? (sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "w-4 h-4 text-black" })) : (_jsx(ChevronDown, { className: "w-4 h-4 text-black" }))) : (_jsxs("div", { className: "flex flex-col text-gray-400 leading-none", children: [_jsx(ChevronUp, { className: "w-3 h-3 -mb-1" }), _jsx(ChevronDown, { className: "w-3 h-3" })] })))] }) }, column.accessorKey)); }) }) }), _jsx(TableBody, { children: sortedData.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length + (actions ? 1 : 0), className: "h-40 text-center text-gray-500", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [_jsx(Inbox, { className: "w-8 h-8 text-gray-400" }), _jsx("span", { className: "text-base font-medium", children: "No data available" })] }) }) })) : (sortedData.map(function (item) {
59
- var key = item.slug || item._id || Math.random().toString();
45
+ : item[column.accessorKey] }, column.accessorKey))), actions && (_jsx(TableCell, { onClick: (e) => e.stopPropagation(), children: actions(item) }))] }, key));
46
+ })) })] }) }), _jsx("div", { className: "lg:hidden", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsx(TableRow, { children: columns.slice(1).map((column) => (_jsx(TableHead, { className: "cursor-pointer select-none", onClick: () => column.sortable && toggleSort(column.accessorKey), children: _jsxs("div", { className: "flex items-center gap-1", children: [column.header, column.sortable && (sortColumn === column.accessorKey ? (sortDirection === 'asc' ? (_jsx(ChevronUp, { className: "w-4 h-4 text-black" })) : (_jsx(ChevronDown, { className: "w-4 h-4 text-black" }))) : (_jsxs("div", { className: "flex flex-col text-gray-400 leading-none", children: [_jsx(ChevronUp, { className: "w-3 h-3 -mb-1" }), _jsx(ChevronDown, { className: "w-3 h-3" })] })))] }) }, column.accessorKey))) }) }), _jsx(TableBody, { children: sortedData.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: columns.length + (actions ? 1 : 0), className: "h-40 text-center text-gray-500", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [_jsx(Inbox, { className: "w-8 h-8 text-gray-400" }), _jsx("span", { className: "text-base font-medium", children: "No data available" })] }) }) })) : (sortedData.map((item) => {
47
+ const key = item.slug || item._id || Math.random().toString();
60
48
  return (_jsxs(_Fragment, { children: [_jsx(TableRow, { className: "bg-gray-100", children: _jsx(TableCell, { colSpan: columns.length - 1, className: "py-3", children: _jsx("div", { className: "font-semibold text-gray-900", children: columns[0].cell
61
49
  ? columns[0].cell(item)
62
- : item[columns[0].accessorKey] }) }) }), _jsx(TableRow, { onClick: function () { return onRowClick && onRowClick(key); }, className: onRowClick ? 'hover:bg-accent cursor-pointer' : '', children: columns.slice(1).map(function (column) { return (_jsx(TableCell, { children: column.cell
50
+ : item[columns[0].accessorKey] }) }) }), _jsx(TableRow, { onClick: () => onRowClick && onRowClick(key), className: onRowClick ? 'hover:bg-accent cursor-pointer' : '', children: columns.slice(1).map((column) => (_jsx(TableCell, { children: column.cell
63
51
  ? column.cell(item)
64
- : item[column.accessorKey] }, column.accessorKey)); }) }, key), actions && (_jsx(TableRow, { className: "bg-gray-30", children: _jsx(TableCell, { colSpan: columns.length - 1, className: "py-3", onClick: function (e) { return e.stopPropagation(); }, children: actions(item) }) }))] }));
52
+ : item[column.accessorKey] }, column.accessorKey))) }, key), actions && (_jsx(TableRow, { className: "bg-gray-30", children: _jsx(TableCell, { colSpan: columns.length - 1, className: "py-3", onClick: (e) => e.stopPropagation(), children: actions(item) }) }))] }));
65
53
  })) })] }) })] }));
66
54
  }
@@ -2,9 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { usePathname, useRouter } from "next/navigation";
4
4
  import { SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "../misc/sidebar";
5
- export function NavMain(_a) {
6
- var items = _a.items;
7
- var pathname = usePathname();
8
- var router = useRouter();
9
- return (_jsx(SidebarGroup, { children: _jsx(SidebarGroupContent, { className: "flex flex-col gap-2", children: _jsx(SidebarMenu, { children: items.map(function (item) { return (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { tooltip: item.title, className: "cursor-pointer", onClick: function () { return router.push(item.url); }, isActive: pathname.includes(item.url), children: [item.icon && _jsx(item.icon, {}), _jsx("span", { children: item.title })] }) }, item.title)); }) }) }) }));
5
+ export function NavMain({ items, }) {
6
+ const pathname = usePathname();
7
+ const router = useRouter();
8
+ return (_jsx(SidebarGroup, { children: _jsx(SidebarGroupContent, { className: "flex flex-col gap-2", children: _jsx(SidebarMenu, { children: items.map((item) => (_jsx(SidebarMenuItem, { children: _jsxs(SidebarMenuButton, { tooltip: item.title, className: "cursor-pointer", onClick: () => router.push(item.url), isActive: pathname.includes(item.url), children: [item.icon && _jsx(item.icon, {}), _jsx("span", { children: item.title })] }) }, item.title))) }) }) }));
10
9
  }
@@ -1,29 +1,6 @@
1
1
  "use client";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
3
  import { SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuButton, SidebarMenuItem, } from "../misc/sidebar";
26
- export function NavSecondary(_a) {
27
- var items = _a.items, props = __rest(_a, ["items"]);
28
- return (_jsx(SidebarGroup, __assign({}, props, { children: _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: items.map(function (item) { return (_jsx(SidebarMenuItem, { children: _jsx(SidebarMenuButton, { asChild: true, children: _jsxs("a", { href: item.url, children: [_jsx(item.icon, {}), _jsx("span", { children: item.title })] }) }) }, item.title)); }) }) }) })));
4
+ export function NavSecondary({ items, ...props }) {
5
+ return (_jsx(SidebarGroup, { ...props, children: _jsx(SidebarGroupContent, { children: _jsx(SidebarMenu, { children: items.map((item) => (_jsx(SidebarMenuItem, { children: _jsx(SidebarMenuButton, { asChild: true, children: _jsxs("a", { href: item.url, children: [_jsx(item.icon, {}), _jsx("span", { children: item.title })] }) }) }, item.title))) }) }) }));
29
6
  }
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Card, CardContent } from '../misc/card';
3
- export function StatsCard(_a) {
4
- var icon = _a.icon, title = _a.title, count = _a.count;
3
+ export function StatsCard({ icon, title, count, }) {
5
4
  return (_jsx(Card, { children: _jsx(CardContent, { className: "flex items-center p-6", children: _jsxs("div", { className: "flex items-center gap-5", children: [_jsx("div", { className: "p-2 bg-blue-100 rounded-full", children: icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: title }), _jsx("p", { className: "text-2xl font-bold", children: count })] })] }) }) }));
6
5
  }
@@ -1,67 +1,21 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
1
  import { jsx as _jsx } from "react/jsx-runtime";
24
2
  // components/ui/table.tsx
25
3
  import { cn } from "@myrjfa/state/dist/lib/utils";
26
4
  import * as React from "react";
27
- var Table = React.forwardRef(function (_a, ref) {
28
- var className = _a.className, props = __rest(_a, ["className"]);
29
- return (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", __assign({ ref: ref, className: cn("w-full caption-bottom text-sm", className) }, props)) }));
30
- });
5
+ const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "relative w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })));
31
6
  Table.displayName = "Table";
32
- var TableHeader = React.forwardRef(function (_a, ref) {
33
- var className = _a.className, props = __rest(_a, ["className"]);
34
- return (_jsx("thead", __assign({ ref: ref, className: cn("[&_tr]:border-b", className) }, props)));
35
- });
7
+ const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn("[&_tr]:border-b", className), ...props })));
36
8
  TableHeader.displayName = "TableHeader";
37
- var TableBody = React.forwardRef(function (_a, ref) {
38
- var className = _a.className, props = __rest(_a, ["className"]);
39
- return (_jsx("tbody", __assign({ ref: ref, className: cn("[&_tr:last-child]:border-0", className) }, props)));
40
- });
9
+ const TableBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("tbody", { ref: ref, className: cn("[&_tr:last-child]:border-0", className), ...props })));
41
10
  TableBody.displayName = "TableBody";
42
- var TableFooter = React.forwardRef(function (_a, ref) {
43
- var className = _a.className, props = __rest(_a, ["className"]);
44
- return (_jsx("tfoot", __assign({ ref: ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className) }, props)));
45
- });
11
+ const TableFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("tfoot", { ref: ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })));
46
12
  TableFooter.displayName = "TableFooter";
47
- var TableRow = React.forwardRef(function (_a, ref) {
48
- var className = _a.className, props = __rest(_a, ["className"]);
49
- return (_jsx("tr", __assign({ ref: ref, className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className) }, props)));
50
- });
13
+ const TableRow = React.forwardRef(({ className, ...props }, ref) => (_jsx("tr", { ref: ref, className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className), ...props })));
51
14
  TableRow.displayName = "TableRow";
52
- var TableHead = React.forwardRef(function (_a, ref) {
53
- var className = _a.className, props = __rest(_a, ["className"]);
54
- return (_jsx("th", __assign({ ref: ref, className: cn("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", className) }, props)));
55
- });
15
+ const TableHead = React.forwardRef(({ className, ...props }, ref) => (_jsx("th", { ref: ref, className: cn("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", className), ...props })));
56
16
  TableHead.displayName = "TableHead";
57
- var TableCell = React.forwardRef(function (_a, ref) {
58
- var className = _a.className, props = __rest(_a, ["className"]);
59
- return (_jsx("td", __assign({ ref: ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className) }, props)));
60
- });
17
+ const TableCell = React.forwardRef(({ className, ...props }, ref) => (_jsx("td", { ref: ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })));
61
18
  TableCell.displayName = "TableCell";
62
- var TableCaption = React.forwardRef(function (_a, ref) {
63
- var className = _a.className, props = __rest(_a, ["className"]);
64
- return (_jsx("caption", __assign({ ref: ref, className: cn("mt-4 text-sm text-muted-foreground", className) }, props)));
65
- });
19
+ const TableCaption = React.forwardRef(({ className, ...props }, ref) => (_jsx("caption", { ref: ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })));
66
20
  TableCaption.displayName = "TableCaption";
67
21
  export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "@myrjfa/state/dist/lib/utils";
3
3
  import Link from "next/link";
4
- export function MobileNavItem(_a) {
5
- var label = _a.label, href = _a.href, className = _a.className, icon = _a.icon;
4
+ export function MobileNavItem({ label, href, className, icon }) {
6
5
  return (_jsxs(Link, { href: href, className: cn("flex w-full cursor-pointer items-center rounded-md p-2 gap-1 font-medium text-muted-foreground hover:text-foreground", className), children: [icon && _jsx("span", { children: icon }), label] }));
7
6
  }
@@ -2,21 +2,20 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Menu, X } from "lucide-react";
4
4
  import { useEffect, useState } from "react";
5
- export function MobileNavbar(_a) {
6
- var children = _a.children;
7
- var _b = useState(false), isOpen = _b[0], setIsOpen = _b[1];
8
- useEffect(function () {
9
- var overflow = isOpen ? "hidden" : "auto";
5
+ export function MobileNavbar({ children }) {
6
+ const [isOpen, setIsOpen] = useState(false);
7
+ useEffect(() => {
8
+ const overflow = isOpen ? "hidden" : "auto";
10
9
  document.documentElement.style.overflow = overflow;
11
10
  }, [isOpen]);
12
- useEffect(function () {
13
- var closeHamburgerNavigation = function () { return setIsOpen(false); };
11
+ useEffect(() => {
12
+ const closeHamburgerNavigation = () => setIsOpen(false);
14
13
  window.addEventListener("orientationchange", closeHamburgerNavigation);
15
14
  window.addEventListener("resize", closeHamburgerNavigation);
16
- return function () {
15
+ return () => {
17
16
  window.removeEventListener("orientationchange", closeHamburgerNavigation);
18
17
  window.removeEventListener("resize", closeHamburgerNavigation);
19
18
  };
20
19
  }, []);
21
- return (_jsxs("div", { className: "md:hidden", children: [_jsx("button", { className: "md:hidden", onClick: function () { return setIsOpen(!isOpen); }, children: isOpen ? _jsx(X, {}) : _jsx(Menu, {}) }), isOpen && (_jsx("div", { className: "fixed inset-0 top-[50px] z-40 size-full bg-black/40 animate-in slide-in-from-bottom-24 md:hidden", onClick: function () { return setIsOpen(false); }, children: children }))] }));
20
+ return (_jsxs("div", { className: "md:hidden", children: [_jsx("button", { className: "md:hidden", onClick: () => setIsOpen(!isOpen), children: isOpen ? _jsx(X, {}) : _jsx(Menu, {}) }), isOpen && (_jsx("div", { className: "fixed inset-0 top-[50px] z-40 size-full bg-black/40 animate-in slide-in-from-bottom-24 md:hidden", onClick: () => setIsOpen(false), children: children }))] }));
22
21
  }
@@ -1,7 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "@myrjfa/state/dist/lib/utils";
3
3
  import Link from "next/link";
4
- export function NavItem(_a) {
5
- var label = _a.label, href = _a.href, className = _a.className, icon = _a.icon, external = _a.external;
4
+ export function NavItem({ label, href, className, icon, external }) {
6
5
  return (_jsxs(Link, { href: href, target: external ? "_blank" : undefined, rel: external ? "noopener noreferrer" : undefined, className: cn("text-muted-foreground hover:text-foreground flex cursor-pointer items-center text-sm font-medium transition-colors gap-1", className), children: [icon && _jsx("span", { children: icon }), label] }));
7
6
  }
package/dist/index.d.ts CHANGED
@@ -54,4 +54,5 @@ export * from './main/footer';
54
54
  export * from './main/navbar';
55
55
  export * from './main/paginationBar';
56
56
  export * from './main/review-page';
57
+ export * from './misc/image-cropper';
57
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- // Export all your shared UI components
2
1
  export * from './misc/button';
3
2
  export * from './misc/accordion';
4
3
  export * from './misc/alert';
@@ -55,3 +54,4 @@ export * from './main/footer';
55
54
  export * from './main/navbar';
56
55
  export * from './main/paginationBar';
57
56
  export * from './main/review-page';
57
+ export * from './misc/image-cropper';
@@ -5,7 +5,7 @@ import Link from "next/link";
5
5
  import { Card } from "../misc/card";
6
6
  import NewsletterSubscribe from "../misc/newsLetter";
7
7
  import { Separator } from "../misc/separator";
8
- var footerItems = [
8
+ const footerItems = [
9
9
  {
10
10
  "title": "Company",
11
11
  "fields": {
@@ -31,17 +31,13 @@ var footerItems = [
31
31
  }
32
32
  }
33
33
  ];
34
- var Footer = function (_a) {
35
- var _b = _a.dark, dark = _b === void 0 ? false : _b;
36
- var theme = dark
34
+ const Footer = ({ dark = false }) => {
35
+ const theme = dark
37
36
  ? "bg-foreground text-muted border-border"
38
37
  : "bg-background text-muted-foreground border-border";
39
- var iconColor = dark
38
+ const iconColor = dark
40
39
  ? "text-muted hover:text-white"
41
40
  : "text-muted-foreground hover:text-foreground";
42
- return (_jsxs("footer", { className: "h-full md:-mt-20", children: [_jsx("div", { className: "w-full px-6 my-5 md:translate-y-5/8 md:px-12 md:mb-5", children: _jsx(Card, { className: "relative bg-muted p-6 rounded-lg shadow-md mx-auto w-4/5 flex flex-col md:flex-row items-center justify-between gap-6 md:p-10", children: _jsxs("div", { className: "flex-1 text-center md:text-left", children: [_jsx("h3", { className: "text-2xl font-bold text-foreground", children: "Subscribe Newsletter" }), _jsx("p", { className: "text-sm text-muted-foreground mt-1", children: "Get inspired! Receive travel discounts, tips, and behind-the-scenes stories." }), _jsx(NewsletterSubscribe, {})] }) }) }), _jsxs("div", { className: "w-full border-t ".concat(theme, " pb-10 pt-10 sm:pt-30 md:pt-30"), children: [_jsxs("div", { className: "container mx-auto px-6 md:px-12 grid grid-cols-2 gap-10 md:grid-cols-5", children: [_jsxs("div", { className: "col-span-2", children: [_jsx("div", { className: "text-2xl font-semibold mb-4", children: "TrippEaze" }), _jsx("p", { className: "text-sm mb-4", children: "Your trusted travel partner for seamless adventures." }), _jsxs("div", { className: "flex gap-4", children: [_jsx("a", { href: "https://www.instagram.com/trippeaze/", target: "_blank", rel: "noopener noreferrer", className: "transition-colors ".concat(iconColor), children: _jsx(Icon, { icon: "mdi:instagram", className: "w-5 h-5" }) }), _jsx("a", { href: "https://wa.me/918482944029", target: "_blank", rel: "noopener noreferrer", className: "transition-colors ".concat(iconColor), children: _jsx(Icon, { icon: "mdi:whatsapp", className: "w-5 h-5" }) }), _jsx("a", { href: "https://www.youtube.com/@TrippEaze", target: "_blank", rel: "noopener noreferrer", className: "transition-colors ".concat(iconColor), children: _jsx(Icon, { icon: "mdi:youtube", className: "w-5 h-5" }) }), _jsx("a", { href: "https://www.facebook.com/profile.php?id=61576541488437", target: "_blank", rel: "noopener noreferrer", className: "transition-colors ".concat(iconColor), children: _jsx(Icon, { icon: "mdi:facebook", className: "w-5 h-5" }) }), _jsx("a", { href: "mailto:contact@trippeaze.com", className: "transition-colors ".concat(iconColor), children: _jsx(Mail, { className: "w-5 h-5" }) })] })] }), footerItems.map(function (section) { return (_jsxs("div", { children: [_jsx("h4", { className: "text-lg font-medium ".concat(iconColor, " mb-3"), children: section.title }), _jsx("nav", { className: "flex flex-col gap-2 text-sm", children: Object.entries(section.fields).map(function (_a) {
43
- var label = _a[0], href = _a[1];
44
- return (_jsx(Link, { href: href, className: "hover:text-foreground transition-colors", children: label }, label));
45
- }) })] }, section.title)); })] }), _jsxs("div", { className: "w-full mt-10", children: [_jsx(Separator, {}), _jsxs("p", { className: "text-xs text-muted-foreground text-center mt-4", children: ["\u00A9 ", new Date().getFullYear(), " TrippEaze. All rights reserved."] })] })] })] }));
41
+ return (_jsxs("footer", { className: "h-full md:-mt-20", children: [_jsx("div", { className: "w-full px-6 my-5 md:translate-y-5/8 md:px-12 md:mb-5", children: _jsx(Card, { className: "relative bg-muted p-6 rounded-lg shadow-md mx-auto w-4/5 flex flex-col md:flex-row items-center justify-between gap-6 md:p-10", children: _jsxs("div", { className: "flex-1 text-center md:text-left", children: [_jsx("h3", { className: "text-2xl font-bold text-foreground", children: "Subscribe Newsletter" }), _jsx("p", { className: "text-sm text-muted-foreground mt-1", children: "Get inspired! Receive travel discounts, tips, and behind-the-scenes stories." }), _jsx(NewsletterSubscribe, {})] }) }) }), _jsxs("div", { className: `w-full border-t ${theme} pb-10 pt-10 sm:pt-30 md:pt-30`, children: [_jsxs("div", { className: "container mx-auto px-6 md:px-12 grid grid-cols-2 gap-10 md:grid-cols-5", children: [_jsxs("div", { className: "col-span-2", children: [_jsx("div", { className: `text-2xl font-semibold mb-4`, children: "TrippEaze" }), _jsx("p", { className: "text-sm mb-4", children: "Your trusted travel partner for seamless adventures." }), _jsxs("div", { className: "flex gap-4", children: [_jsx("a", { href: "https://www.instagram.com/trippeaze/", target: "_blank", rel: "noopener noreferrer", className: `transition-colors ${iconColor}`, children: _jsx(Icon, { icon: "mdi:instagram", className: "w-5 h-5" }) }), _jsx("a", { href: "https://wa.me/918482944029", target: "_blank", rel: "noopener noreferrer", className: `transition-colors ${iconColor}`, children: _jsx(Icon, { icon: "mdi:whatsapp", className: "w-5 h-5" }) }), _jsx("a", { href: "https://www.youtube.com/@TrippEaze", target: "_blank", rel: "noopener noreferrer", className: `transition-colors ${iconColor}`, children: _jsx(Icon, { icon: "mdi:youtube", className: "w-5 h-5" }) }), _jsx("a", { href: "https://www.facebook.com/profile.php?id=61576541488437", target: "_blank", rel: "noopener noreferrer", className: `transition-colors ${iconColor}`, children: _jsx(Icon, { icon: "mdi:facebook", className: "w-5 h-5" }) }), _jsx("a", { href: "mailto:contact@trippeaze.com", className: `transition-colors ${iconColor}`, children: _jsx(Mail, { className: "w-5 h-5" }) })] })] }), footerItems.map((section) => (_jsxs("div", { children: [_jsx("h4", { className: `text-lg font-medium ${iconColor} mb-3`, children: section.title }), _jsx("nav", { className: "flex flex-col gap-2 text-sm", children: Object.entries(section.fields).map(([label, href]) => (_jsx(Link, { href: href, className: "hover:text-foreground transition-colors", children: label }, label))) })] }, section.title)))] }), _jsxs("div", { className: "w-full mt-10", children: [_jsx(Separator, {}), _jsxs("p", { className: "text-xs text-muted-foreground text-center mt-4", children: ["\u00A9 ", new Date().getFullYear(), " TrippEaze. All rights reserved."] })] })] })] }));
46
42
  };
47
43
  export default Footer;