@myrjfa/ui 1.1.2 → 2.0.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 (176) hide show
  1. package/dist/chat/ChatMain.d.ts +2 -4
  2. package/dist/chat/ChatMain.d.ts.map +1 -1
  3. package/dist/chat/ChatMain.js +4 -5
  4. package/dist/chat/ChatSidebar.d.ts +1 -1
  5. package/dist/chat/ChatSidebar.d.ts.map +1 -1
  6. package/dist/chat/ConversationList.d.ts +1 -1
  7. package/dist/chat/ConversationList.d.ts.map +1 -1
  8. package/dist/chat/ConversationList.js +1 -1
  9. package/dist/chat/ExpensePanel.js +1 -1
  10. package/dist/chat/MessageBubble.d.ts +1 -1
  11. package/dist/chat/MessageBubble.d.ts.map +1 -1
  12. package/dist/chat/MessageBubble.js +1 -1
  13. package/dist/chat/MessageInput.d.ts +1 -1
  14. package/dist/chat/MessageInput.d.ts.map +1 -1
  15. package/dist/chat/MessageInput.js +1 -1
  16. package/dist/chat/MilestonePanel.js +1 -1
  17. package/dist/chat/components/ParticipantSelector.d.ts +1 -1
  18. package/dist/chat/components/ParticipantSelector.d.ts.map +1 -1
  19. package/dist/chat/components/SplitInputs.d.ts +1 -1
  20. package/dist/chat/components/SplitInputs.d.ts.map +1 -1
  21. package/dist/chat/components/SplitTypeSelector.d.ts +1 -1
  22. package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -1
  23. package/dist/chat/dialogs/AddMemberDialog.d.ts +1 -1
  24. package/dist/chat/dialogs/AddMemberDialog.d.ts.map +1 -1
  25. package/dist/chat/dialogs/AddMemberDialog.js +1 -1
  26. package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +1 -1
  27. package/dist/chat/dialogs/GroupInfoDialog.d.ts +1 -1
  28. package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
  29. package/dist/chat/dialogs/GroupInfoDialog.js +1 -1
  30. package/dist/chat/dialogs/GroupInfoViewDialog.d.ts +1 -1
  31. package/dist/chat/dialogs/GroupInfoViewDialog.d.ts.map +1 -1
  32. package/dist/chat/dialogs/NewChatDialog.js +2 -2
  33. package/dist/chat/dialogs/NewGroupDialog.js +2 -2
  34. package/dist/chat/dialogs/ParticipantsDialog.d.ts +1 -1
  35. package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
  36. package/dist/chat/dialogs/ParticipantsDialog.js +1 -1
  37. package/dist/dashboard/action-buttons.d.ts.map +1 -1
  38. package/dist/dashboard/action-buttons.js +7 -1
  39. package/dist/dashboard/app-sidebar.d.ts.map +1 -1
  40. package/dist/dashboard/app-sidebar.js +9 -4
  41. package/dist/dashboard/card-header.d.ts +1 -1
  42. package/dist/dashboard/card-header.d.ts.map +1 -1
  43. package/dist/dashboard/card-header.js +1 -1
  44. package/dist/dashboard/dashboard-components.js +1 -1
  45. package/dist/dashboard/data-table.d.ts +1 -2
  46. package/dist/dashboard/data-table.d.ts.map +1 -1
  47. package/dist/dashboard/data-table.js +11 -11
  48. package/dist/dashboard/table.js +1 -1
  49. package/dist/header/mobile-nav-item.js +1 -1
  50. package/dist/header/nav-item.js +1 -1
  51. package/dist/index.d.ts +3 -7
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +4 -8
  54. package/dist/main/footer.d.ts +1 -0
  55. package/dist/main/footer.d.ts.map +1 -1
  56. package/dist/main/footer.js +35 -16
  57. package/dist/main/navbar.d.ts +2 -2
  58. package/dist/main/navbar.d.ts.map +1 -1
  59. package/dist/main/navbar.js +24 -18
  60. package/dist/main/paginationBar.d.ts +1 -1
  61. package/dist/main/paginationBar.d.ts.map +1 -1
  62. package/dist/main/paginationBar.js +1 -1
  63. package/dist/main/portfolio/portfolioItem.d.ts +1 -1
  64. package/dist/main/portfolio/portfolioItem.d.ts.map +1 -1
  65. package/dist/main/portfolio/portfolioPopup.d.ts +1 -1
  66. package/dist/main/portfolio/portfolioPopup.d.ts.map +1 -1
  67. package/dist/main/portfolio/portfolioPopup.js +1 -1
  68. package/dist/main/review-page.d.ts +2 -2
  69. package/dist/main/review-page.d.ts.map +1 -1
  70. package/dist/main/review-page.js +10 -50
  71. package/dist/misc/accordion.js +1 -1
  72. package/dist/misc/alert-dialog.js +1 -1
  73. package/dist/misc/alert.js +1 -1
  74. package/dist/misc/alertdialogclaude.js +1 -1
  75. package/dist/misc/avatar.js +1 -1
  76. package/dist/misc/badge.js +1 -1
  77. package/dist/misc/button.d.ts +9 -9
  78. package/dist/misc/button.js +1 -1
  79. package/dist/misc/card.js +1 -1
  80. package/dist/misc/carousel.js +1 -1
  81. package/dist/misc/checkbox.js +1 -1
  82. package/dist/misc/command.js +2 -2
  83. package/dist/misc/datepicker.d.ts.map +1 -1
  84. package/dist/misc/datepicker.js +22 -4
  85. package/dist/misc/dialog.js +1 -1
  86. package/dist/misc/dropdown-menu.js +1 -1
  87. package/dist/misc/faq.d.ts +2 -2
  88. package/dist/misc/faq.d.ts.map +1 -1
  89. package/dist/misc/faq.js +1 -1
  90. package/dist/misc/file-preview.d.ts +1 -1
  91. package/dist/misc/file-preview.d.ts.map +1 -1
  92. package/dist/misc/file-preview.js +1 -1
  93. package/dist/misc/filter.d.ts +1 -1
  94. package/dist/misc/filter.d.ts.map +1 -1
  95. package/dist/misc/filter.js +3 -3
  96. package/dist/misc/filterBar.d.ts +2 -2
  97. package/dist/misc/filterBar.d.ts.map +1 -1
  98. package/dist/misc/filterBar.js +3 -3
  99. package/dist/misc/form.js +1 -1
  100. package/dist/misc/input.d.ts.map +1 -1
  101. package/dist/misc/input.js +2 -2
  102. package/dist/misc/label.js +1 -1
  103. package/dist/misc/line-carousel.d.ts +1 -1
  104. package/dist/misc/line-carousel.d.ts.map +1 -1
  105. package/dist/misc/line-carousel.js +1 -1
  106. package/dist/misc/location/leafletMap.d.ts +8 -0
  107. package/dist/misc/location/leafletMap.d.ts.map +1 -0
  108. package/dist/misc/location/leafletMap.js +62 -0
  109. package/dist/misc/location/locationPicker.d.ts +5 -0
  110. package/dist/misc/location/locationPicker.d.ts.map +1 -0
  111. package/dist/misc/location/locationPicker.js +94 -0
  112. package/dist/misc/multiImageUploader.d.ts +1 -2
  113. package/dist/misc/multiImageUploader.d.ts.map +1 -1
  114. package/dist/misc/multiImageUploader.js +2 -26
  115. package/dist/misc/newsLetter.d.ts +1 -1
  116. package/dist/misc/newsLetter.d.ts.map +1 -1
  117. package/dist/misc/newsLetter.js +2 -2
  118. package/dist/misc/notification.js +2 -2
  119. package/dist/misc/pagination.js +1 -1
  120. package/dist/misc/password-eye.d.ts +2 -1
  121. package/dist/misc/password-eye.d.ts.map +1 -1
  122. package/dist/misc/password-eye.js +2 -1
  123. package/dist/misc/popover.d.ts.map +1 -1
  124. package/dist/misc/popover.js +2 -2
  125. package/dist/misc/progress.js +1 -1
  126. package/dist/misc/rental-tile.d.ts +6 -0
  127. package/dist/misc/rental-tile.d.ts.map +1 -0
  128. package/dist/misc/rental-tile.js +23 -0
  129. package/dist/misc/scroll-area.js +1 -1
  130. package/dist/misc/searchBar.d.ts +1 -1
  131. package/dist/misc/searchBar.d.ts.map +1 -1
  132. package/dist/misc/searchBar.js +1 -1
  133. package/dist/misc/select.d.ts.map +1 -1
  134. package/dist/misc/select.js +4 -4
  135. package/dist/misc/separator.js +1 -1
  136. package/dist/misc/share.d.ts +1 -1
  137. package/dist/misc/share.d.ts.map +1 -1
  138. package/dist/misc/share.js +1 -1
  139. package/dist/misc/sheet.js +1 -1
  140. package/dist/misc/sidebar.js +2 -2
  141. package/dist/misc/skeleton.d.ts +1 -36
  142. package/dist/misc/skeleton.d.ts.map +1 -1
  143. package/dist/misc/skeleton.js +3 -40
  144. package/dist/misc/slider.js +1 -1
  145. package/dist/misc/stateCard.d.ts +2 -2
  146. package/dist/misc/stateCard.d.ts.map +1 -1
  147. package/dist/misc/stateCard.js +2 -2
  148. package/dist/misc/switch.js +1 -1
  149. package/dist/misc/tabs.js +1 -1
  150. package/dist/misc/textarea.js +1 -1
  151. package/dist/misc/tile.d.ts +2 -1
  152. package/dist/misc/tile.d.ts.map +1 -1
  153. package/dist/misc/tile.js +12 -8
  154. package/dist/misc/tooltip.js +1 -1
  155. package/dist/profile/socialLink.d.ts +1 -1
  156. package/dist/profile/socialLink.d.ts.map +1 -1
  157. package/dist/profile/socialLink.js +19 -49
  158. package/package.json +11 -5
  159. package/dist/misc/document-upload-button.d.ts +0 -12
  160. package/dist/misc/document-upload-button.d.ts.map +0 -1
  161. package/dist/misc/document-upload-button.js +0 -27
  162. package/dist/misc/empty-state.d.ts +0 -10
  163. package/dist/misc/empty-state.d.ts.map +0 -1
  164. package/dist/misc/empty-state.js +0 -5
  165. package/dist/misc/image-compressor.d.ts +0 -29
  166. package/dist/misc/image-compressor.d.ts.map +0 -1
  167. package/dist/misc/image-compressor.js +0 -70
  168. package/dist/misc/image-cropper.d.ts +0 -10
  169. package/dist/misc/image-cropper.d.ts.map +0 -1
  170. package/dist/misc/image-cropper.js +0 -44
  171. package/dist/misc/pwa-install-button.d.ts +0 -9
  172. package/dist/misc/pwa-install-button.d.ts.map +0 -1
  173. package/dist/misc/pwa-install-button.js +0 -158
  174. package/dist/misc/whatsapp-help.d.ts +0 -9
  175. package/dist/misc/whatsapp-help.d.ts.map +0 -1
  176. package/dist/misc/whatsapp-help.js +0 -13
package/dist/misc/card.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@myrjfa/state/dist/lib/utils";
2
+ import { cn } from "@myrjfa/state";
3
3
  function Card({ className, ...props }) {
4
4
  return (_jsx("div", { className: cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", className), ...props }, "card"));
5
5
  }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from "@myrjfa/state/dist/lib/utils";
3
+ import { cn } from "@myrjfa/state";
4
4
  import useEmblaCarousel from "embla-carousel-react";
5
5
  import { ArrowLeft, ArrowRight } from "lucide-react";
6
6
  import React from "react";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
4
- import { cn } from "@myrjfa/state/dist/lib/utils";
4
+ import { cn } from "@myrjfa/state";
5
5
  import { CheckIcon } from "lucide-react";
6
6
  function Checkbox({ className, ...props }) {
7
7
  return (_jsx(CheckboxPrimitive.Root, { className: cn("peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current transition-none", children: _jsx(CheckIcon, { className: "size-3.5" }) }, "checkbox-indicator") }, "checkbox"));
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from "@myrjfa/state/dist/lib/utils";
3
+ import { cn } from "@myrjfa/state";
4
4
  import { Command as CommandPrimitive } from "cmdk";
5
5
  import { SearchIcon } from "lucide-react";
6
6
  import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "./dialog";
@@ -14,7 +14,7 @@ function CommandInput({ className, ...props }) {
14
14
  return (_jsxs("div", { "data-slot": "command-input-wrapper", className: "flex h-9 items-center gap-2 border-b px-3", children: [_jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), _jsx(CommandPrimitive.Input, { "data-slot": "command-input", className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className), ...props })] }));
15
15
  }
16
16
  function CommandList({ className, ...props }) {
17
- return (_jsx(CommandPrimitive.List, { "data-slot": "command-list", className: cn("max-h-[350px] scroll-py-1 overflow-x-hidden overflow-y-auto touch-pan-y z-[300]", className), ...props }));
17
+ return (_jsx(CommandPrimitive.List, { "data-slot": "command-list", className: cn("max-h-[250px] scroll-py-1 overflow-x-hidden overflow-y-auto", className), ...props }));
18
18
  }
19
19
  function CommandEmpty({ ...props }) {
20
20
  return (_jsx(CommandPrimitive.Empty, { "data-slot": "command-empty", className: "py-6 text-center text-sm", ...props }));
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../src/misc/datepicker.tsx"],"names":[],"mappings":"AAkBA,KAAK,eAAe,GAAG;IACnB,KAAK,EAAE;QACH,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;KAClC,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAgC,EAAE,OAAgC,EAAE,KAAuB,EAAE,EAAE,eAAe,2CAuXjJ"}
1
+ {"version":3,"file":"datepicker.d.ts","sourceRoot":"","sources":["../../src/misc/datepicker.tsx"],"names":[],"mappings":"AAcA,KAAK,eAAe,GAAG;IACnB,KAAK,EAAE;QACH,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;KAClC,CAAC;IACF,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAgC,EAAE,OAAgC,EAAE,KAAuB,EAAE,EAAE,eAAe,2CAwZjJ"}
@@ -1,11 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { cn } from "@myrjfa/state/dist/lib/utils";
3
+ import { cn } from "@myrjfa/state";
4
4
  import { format } from "date-fns";
5
5
  import { CalendarIcon, ChevronLeft, ChevronRight } from "lucide-react";
6
6
  import { useEffect, useState } from "react";
7
- import { Button } from "./button";
8
- import { FormControl, FormItem, FormLabel, } from "./form";
9
7
  import { Popover, PopoverContent, PopoverTrigger, } from "./popover";
10
8
  export function DatePicker({ field, minDate = new Date("1900-01-01"), maxDate = new Date("2100-01-01"), label = "Date of birth" }) {
11
9
  const [open, setOpen] = useState(false);
@@ -185,5 +183,25 @@ export function DatePicker({ field, minDate = new Date("1900-01-01"), maxDate =
185
183
  }) }));
186
184
  }
187
185
  };
188
- return (_jsxs(FormItem, { className: "flex-1 flex flex-col", children: [_jsx(FormLabel, { children: label }), _jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(FormControl, { children: _jsxs(Button, { variant: "outline", className: cn("w-full pl-3 text-left font-normal cursor-pointer", !field.value && "text-muted-foreground"), children: [field.value ? (format(field.value, "PPP")) : (_jsx("span", { children: "Pick a date" })), _jsx(CalendarIcon, { className: "ml-auto h-4 w-4 opacity-50" })] }) }) }), _jsx(PopoverContent, { className: "w-auto p-3", align: "start", children: _jsxs("div", { className: "w-64", children: [renderHeader(), renderCalendarContent()] }) })] })] }));
186
+ const hasValue = field.value instanceof Date;
187
+ const displayDate = hasValue ? format(field.value, "d MMM") : null;
188
+ return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: cn(
189
+ // base
190
+ "group relative w-full rounded-2xl p-3 flex items-center justify-between text-left outline-none cursor-pointer",
191
+ // border
192
+ "border-2 transition-all duration-200",
193
+ // subtle hover background
194
+ "hover:bg-blue-50/40",
195
+ // scale on active press
196
+ "active:scale-[0.98]",
197
+ // open / focus state → blue ring + border
198
+ open
199
+ ? "border-blue-600 bg-blue-50/30 shadow-[0_0_0_3px_rgba(37,99,235,0.12)] scale-[1.01]"
200
+ : "border-gray-200 hover:border-gray-300 bg-white"), children: [_jsxs("div", { className: "flex flex-col overflow-hidden mr-2 min-w-0", children: [label && (_jsx("p", { className: cn("text-[10px] font-black uppercase tracking-wider leading-tight mb-0.5 transition-colors duration-200", open ? "text-blue-600" : "text-gray-400"), children: label })), _jsx("p", { className: cn("text-sm font-semibold leading-tight truncate transition-colors duration-200", hasValue
201
+ ? "text-gray-900"
202
+ : open
203
+ ? "text-blue-400"
204
+ : "text-gray-400"), children: displayDate !== null && displayDate !== void 0 ? displayDate : "Add date" })] }), _jsx(CalendarIcon, { className: cn("shrink-0 transition-all duration-200", open
205
+ ? "w-4 h-4 text-blue-600 scale-110 rotate-[-8deg]"
206
+ : "w-4 h-4 text-gray-400 group-hover:text-gray-500") })] }) }), _jsx(PopoverContent, { className: "w-auto p-3", align: "start", children: _jsxs("div", { className: "w-64", children: [renderHeader(), renderCalendarContent()] }) })] }));
189
207
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as DialogPrimitive from "@radix-ui/react-dialog";
4
- import { cn } from "@myrjfa/state/dist/lib/utils";
4
+ import { cn } from "@myrjfa/state";
5
5
  import { XIcon } from "lucide-react";
6
6
  function Dialog({ ...props }) {
7
7
  return _jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4
- import { cn } from "@myrjfa/state/dist/lib/utils";
4
+ import { cn } from "@myrjfa/state";
5
5
  import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
6
6
  function DropdownMenu({ ...props }) {
7
7
  return _jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
@@ -1,5 +1,5 @@
1
- import { Question } from '@myrjfa/state/dist/lib/models/props';
2
- export default function Faq({ faqs }: {
1
+ import { Question } from '@myrjfa/state';
2
+ export declare function Faq({ faqs }: {
3
3
  faqs: Question[];
4
4
  }): import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=faq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"faq.d.ts","sourceRoot":"","sources":["../../src/misc/faq.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAG9D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,2CAkBzD"}
1
+ {"version":3,"file":"faq.d.ts","sourceRoot":"","sources":["../../src/misc/faq.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,wBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,2CAkBjD"}
package/dist/misc/faq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './accordion';
3
- export default function Faq({ faqs }) {
3
+ export function Faq({ faqs }) {
4
4
  return (_jsxs("div", { children: [_jsx("h2", { className: "text-2xl font-bold text-center mb-6", children: "Frequently Asked Questions" }), _jsx(Accordion, { type: "multiple", className: "space-y-2", children: faqs.map((faq, index) => (_jsxs(AccordionItem, { value: `item-${index}`, className: "border border-gray-200 rounded-lg last:border-b", children: [_jsx(AccordionTrigger, { className: "text-left px-4 py-3 font-medium", children: faq.question }), _jsx(AccordionContent, { className: "px-4 pb-4 text-sm text-gray-600", children: faq.answer })] }, index))) })] }));
5
5
  }
@@ -5,5 +5,5 @@ declare const DocumentPreviewButton: ({ filepath, label, icon, size, labelInMobi
5
5
  size?: "icon" | "lg" | "sm" | "default";
6
6
  labelInMobile?: boolean;
7
7
  }) => import("react/jsx-runtime").JSX.Element;
8
- export default DocumentPreviewButton;
8
+ export { DocumentPreviewButton };
9
9
  //# sourceMappingURL=file-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-preview.d.ts","sourceRoot":"","sources":["../../src/misc/file-preview.tsx"],"names":[],"mappings":"AAuBA,QAAA,MAAM,qBAAqB,GAAI,iDAM5B;IACC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,4CAsEA,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"file-preview.d.ts","sourceRoot":"","sources":["../../src/misc/file-preview.tsx"],"names":[],"mappings":"AAuBA,QAAA,MAAM,qBAAqB,GAAI,iDAM5B;IACC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,4CAsEA,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -73,4 +73,4 @@ const DocumentPreviewButton = ({ filepath, label, icon, size = 'default', labelI
73
73
  };
74
74
  return (_jsx("div", { className: "flex flex-col items-center", children: _jsxs(Button, { variant: "outline", size: size, className: "w-full cursor-pointer flex md:flex", onClick: handleOpenFile, disabled: loading, children: [IconInternal, _jsx("span", { className: `${labelInMobile ? "inline" : "hidden"} md:inline`, children: labelInternal })] }) }));
75
75
  };
76
- export default DocumentPreviewButton;
76
+ export { DocumentPreviewButton };
@@ -8,5 +8,5 @@ type FilterProps = {
8
8
  };
9
9
  export declare const uniqDecoded: (arr: string[]) => string[];
10
10
  declare const Filter: React.FC<FilterProps>;
11
- export default Filter;
11
+ export { Filter };
12
12
  //# sourceMappingURL=filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/misc/filter.tsx"],"names":[],"mappings":"AAsBA,KAAK,WAAW,GAAG;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,aACwC,CAAC;AAElF,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqHjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/misc/filter.tsx"],"names":[],"mappings":"AAsBA,KAAK,WAAW,GAAG;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AACF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,aACwC,CAAC;AAElF,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAgHjC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from "@myrjfa/state/dist/lib/utils";
3
+ import { cn } from "@myrjfa/state";
4
4
  import { Check, ChevronDown } from "lucide-react";
5
5
  import { useEffect, useRef, useState } from "react";
6
6
  import { Button } from "./button";
@@ -30,7 +30,7 @@ const Filter = ({ values, label, formType, selectedValue, onChange, others }) =>
30
30
  }, [open]);
31
31
  return (_jsx("div", { className: cn("filter-container", label), children: formType === "select" ? (_jsxs(Select, { value: selectedValue !== null && selectedValue !== void 0 ? selectedValue : "", onValueChange: (val) => onChange(val === "clear" ? null : val), children: [_jsx(SelectTrigger, { className: "w-full bg-transparent hover:bg-muted border-none shadow-none", children: !selectedValue || selectedValue === "clear" || selectedValue[0] == '0'
32
32
  ? `Choose ${label.toLowerCase()}...`
33
- : selectedValue }), _jsxs(SelectContent, { className: "w-full z-[301]", children: [_jsx(SelectItem, { value: "clear", children: _jsx("em", { children: "Clear" }) }), data.map((option) => (_jsx(SelectItem, { value: option, children: option }, option)))] })] })) : (_jsxs(Popover, { open: open, onOpenChange: setOpen, modal: false, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { ref: triggerRef, variant: "ghost", role: "combobox", className: "filter-box justify-between w-full", children: [selectedValue || `Select ${label.toLowerCase()}...`, _jsx(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })] }) }), _jsxs(PopoverContent, { className: "p-0 z-[310] pointer-events-auto overflow-hidden", style: { width: popoverWidth > 0 ? `${popoverWidth}px` : 'auto', minWidth: 'min(300px, 90vw)' }, align: "start", onWheel: (e) => e.stopPropagation(), children: [_jsxs(Command, { children: [_jsx(CommandInput, { placeholder: `Search ${label.toLowerCase()}...` }), _jsx(CommandEmpty, { children: "No results found." }), _jsx(CommandList, { children: data.map((option) => (_jsxs(CommandItem, { value: option, onSelect: () => {
33
+ : selectedValue }), _jsxs(SelectContent, { className: "w-full z-201", children: [_jsx(SelectItem, { value: "clear", children: _jsx("em", { children: "Clear" }) }), data.map((option) => (_jsx(SelectItem, { value: option, children: option }, option)))] })] })) : (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, className: "w-full overflow-y-auto", children: _jsxs(Button, { ref: triggerRef, variant: "ghost", role: "combobox", className: "filter-box justify-between w-full", children: [selectedValue || `Select ${label.toLowerCase()}...`, _jsx(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })] }) }), _jsxs(PopoverContent, { className: "p-0 w-full z-201", style: { width: `${popoverWidth}px` }, align: "start", children: [_jsxs(Command, { children: [_jsx(CommandInput, { placeholder: `Search ${label.toLowerCase()}...` }), _jsx(CommandEmpty, { children: "No results found." }), _jsx(CommandList, { children: data.map((option) => (_jsxs(CommandItem, { value: option, onSelect: () => {
34
34
  onChange(option);
35
35
  setOpen(false);
36
36
  }, children: [_jsx(Check, { className: cn("mr-2 h-4 w-4", selectedValue === option ? "opacity-100" : "opacity-0") }), option] }, option))) })] }), others &&
@@ -41,4 +41,4 @@ const Filter = ({ values, label, formType, selectedValue, onChange, others }) =>
41
41
  }
42
42
  }, autoFocus: true }) })) : (_jsx("div", { className: "border-t px-10 py-2 cursor-pointer text-sm hover:bg-muted", onClick: () => setIsCustom(true), children: "Other" })) }))] })] })) }));
43
43
  };
44
- export default Filter;
44
+ export { Filter };
@@ -1,4 +1,4 @@
1
- import { TileProps } from "@myrjfa/state/dist/lib/models/tile";
1
+ import { TileProps } from "@myrjfa/state";
2
2
  export interface FilterOptionConfig {
3
3
  label: string;
4
4
  type: 'autoComplete' | 'select' | 'range';
@@ -27,5 +27,5 @@ export interface FilterBarProps {
27
27
  tiles: TileProps[];
28
28
  filterConfig?: FilterOptionConfig[];
29
29
  }
30
- export default function FilterBar({ tiles, filterConfig }: FilterBarProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function FilterBar({ tiles, filterConfig }: FilterBarProps): import("react/jsx-runtime").JSX.Element;
31
31
  //# sourceMappingURL=filterBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterBar.d.ts","sourceRoot":"","sources":["../../src/misc/filterBar.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAK/D,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAErC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAEzE,eAAe,CAAC,EAAE,MAAM,SAAS,CAAC;IAElC,UAAU,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAEhC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AA+eD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,2CAMxE"}
1
+ {"version":3,"file":"filterBar.d.ts","sourceRoot":"","sources":["../../src/misc/filterBar.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAK1C,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAErC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAEzE,eAAe,CAAC,EAAE,MAAM,SAAS,CAAC;IAElC,UAAU,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAEhC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACvC;AA+eD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,2CAMhE"}
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { retrieveCity, retrieveState } from "@myrjfa/state/dist/lib/utils";
3
+ import { retrieveCity, retrieveState } from "@myrjfa/state";
4
4
  import { Search, SearchIcon, SlidersHorizontal, X } from "lucide-react";
5
5
  import { usePathname, useRouter, useSearchParams } from "next/navigation";
6
6
  import { Suspense, useEffect, useState } from "react";
7
7
  import { Button } from "./button";
8
- import Filter from "./filter";
8
+ import { Filter } from "./filter";
9
9
  import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "./sheet";
10
10
  import { Slider } from "./slider";
11
11
  // Default filter options (backward compatible)
@@ -324,6 +324,6 @@ function FilterBarComponent({ tiles, filterConfig = defaultFilterOptions }) {
324
324
  changeMultiParams(newState);
325
325
  }, className: "ml-1 hover:bg-blue-200 rounded-full p-1 transition-colors", children: _jsx(X, { size: 12 }) })] }, `${filter.label}-${filter.value}-${index}`))), _jsxs("button", { onClick: clearAllFilters, className: "inline-flex items-center gap-1 bg-gray-100 text-gray-600 px-3 py-1 rounded-full text-sm border border-gray-200 hover:bg-gray-200 transition-colors", children: ["Clear All", _jsx(X, { size: 12 })] })] }) }))] }));
326
326
  }
327
- export default function FilterBar({ tiles, filterConfig }) {
327
+ export function FilterBar({ tiles, filterConfig }) {
328
328
  return (_jsx(Suspense, { fallback: _jsx("div", { className: "w-full h-screen flex items-center justify-center", children: "Loading..." }), children: _jsx(FilterBarComponent, { tiles: tiles, filterConfig: filterConfig }) }));
329
329
  }
package/dist/misc/form.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { Slot } from "@radix-ui/react-slot";
4
- import { cn } from "@myrjfa/state/dist/lib/utils";
4
+ import { cn } from "@myrjfa/state";
5
5
  import * as React from "react";
6
6
  import { Controller, FormProvider, useFormContext, useFormState, } from "react-hook-form";
7
7
  import { Label } from "./label";
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/misc/input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAgB1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/misc/input.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAc1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@myrjfa/state/dist/lib/utils";
2
+ import { cn } from "@myrjfa/state";
3
3
  function Input({ className, type, ...props }) {
4
- return (_jsx("input", { type: type, "data-slot": "input", onWheel: (e) => e.currentTarget.blur(), className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", "[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none", className), ...props }));
4
+ return (_jsx("input", { type: type, "data-slot": "input", className: cn("border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className), ...props }));
5
5
  }
6
6
  export { Input };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as LabelPrimitive from "@radix-ui/react-label";
4
- import { cn } from "@myrjfa/state/dist/lib/utils";
4
+ import { cn } from "@myrjfa/state";
5
5
  function Label({ className, ...props }) {
6
6
  return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { LucideProps } from "lucide-react";
2
2
  import { ForwardRefExoticComponent, RefAttributes } from "react";
3
- export default function LineCarousel({ skillsData }: {
3
+ export declare function LineCarousel({ skillsData }: {
4
4
  skillsData: {
5
5
  icon: ForwardRefExoticComponent<Omit<LucideProps, "ref"> & RefAttributes<SVGSVGElement>>;
6
6
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"line-carousel.d.ts","sourceRoot":"","sources":["../../src/misc/line-carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE;IACjD,UAAU,EAAE;QACR,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACzF,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE,CAAA;CACN,2CA6BA"}
1
+ {"version":3,"file":"line-carousel.d.ts","sourceRoot":"","sources":["../../src/misc/line-carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,EAAE;IACzC,UAAU,EAAE;QACR,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACzF,KAAK,EAAE,MAAM,CAAC;KACjB,EAAE,CAAA;CACN,2CA6BA"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- export default function LineCarousel({ skillsData }) {
2
+ export function LineCarousel({ skillsData }) {
3
3
  const loopedSkills = [...skillsData, ...skillsData, ...skillsData];
4
4
  return (_jsxs("section", { className: "relative w-full pt-10 pb-5 bg-background text-white", children: [_jsx("h2", { className: "text-2xl font-bold text-left mx-10 md:mx-15 lg:mx-25 tracking-tight text-foreground", children: "Popular Skills Offered" }), _jsx("p", { className: "text-muted-foreground mx-10 md:mx-15 lg:mx-25 mb-10", children: "Discover In-Demand Creative Skills for the Modern World." }), _jsxs("div", { className: "relative w-full overflow-hidden", children: [_jsx("div", { className: "absolute inset-y-0 left-0 w-1/4 bg-gradient-to-r from-background to-transparent z-10" }), _jsx("div", { className: "absolute inset-y-0 right-0 w-1/4 bg-gradient-to-l from-background to-transparent z-10" }), _jsx("div", { className: "flex animate-scroll items-center space-x-10", children: loopedSkills.map((item, i) => (_jsxs("div", { className: "flex items-center space-x-3 px-5 text-lg", children: [_jsx(item.icon, { className: "w-6 h-6 text-foreground" }), _jsx("span", { className: "text-muted-foreground font-semibold", children: item.title })] }, i))) })] })] }));
5
5
  }
@@ -0,0 +1,8 @@
1
+ import 'leaflet/dist/leaflet.css';
2
+ interface LeafletMapProps {
3
+ position: [number, number];
4
+ onMarkerDrag: (lat: number, lng: number) => void;
5
+ }
6
+ export default function LeafletMap({ position, onMarkerDrag }: LeafletMapProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=leafletMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leafletMap.d.ts","sourceRoot":"","sources":["../../../src/misc/location/leafletMap.tsx"],"names":[],"mappings":"AAIA,OAAO,0BAA0B,CAAC;AAoDlC,UAAU,eAAe;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,eAAe,2CAmC7E"}
@@ -0,0 +1,62 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ // Dynamically imported (no SSR) from propertyForm.tsx.
4
+ // Must import leaflet CSS here — this is the only safe place when using next/dynamic.
5
+ import 'leaflet/dist/leaflet.css';
6
+ import { useEffect, useRef } from 'react';
7
+ import { MapContainer, TileLayer, Marker, useMap, useMapEvents } from 'react-leaflet';
8
+ import L from 'leaflet';
9
+ // Fix broken Leaflet default icons in webpack / Next.js
10
+ const defaultIcon = L.icon({
11
+ iconUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png',
12
+ iconRetinaUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png',
13
+ shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
14
+ iconSize: [25, 41],
15
+ iconAnchor: [12, 41],
16
+ popupAnchor: [1, -34],
17
+ shadowSize: [41, 41],
18
+ });
19
+ L.Marker.prototype.options.icon = defaultIcon;
20
+ // Sync map view when position prop changes (e.g. after address search)
21
+ function MapSyncer({ position }) {
22
+ const map = useMap();
23
+ const prev = useRef(position);
24
+ useEffect(() => {
25
+ if (prev.current[0] !== position[0] || prev.current[1] !== position[1]) {
26
+ map.flyTo(position, Math.max(map.getZoom(), 13), { animate: true, duration: 0.8 });
27
+ prev.current = position;
28
+ }
29
+ }, [position, map]);
30
+ return null;
31
+ }
32
+ // Fixes the "half-visible" map bug by forcing a resize after mount
33
+ function ResizeMap() {
34
+ const map = useMap();
35
+ useEffect(() => {
36
+ setTimeout(() => {
37
+ map.invalidateSize();
38
+ }, 300);
39
+ }, [map]);
40
+ return null;
41
+ }
42
+ // Allows clicking anywhere on map to move the marker
43
+ function ClickHandler({ onDrag }) {
44
+ useMapEvents({
45
+ click(e) {
46
+ onDrag(e.latlng.lat, e.latlng.lng);
47
+ },
48
+ });
49
+ return null;
50
+ }
51
+ export default function LeafletMap({ position, onMarkerDrag }) {
52
+ const markerRef = useRef(null);
53
+ return (_jsxs(MapContainer, { center: position, zoom: 13, style: { width: '100%', height: '100%', minHeight: '300px' }, scrollWheelZoom: true, children: [_jsx(TileLayer, { attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>', url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" }), _jsx(ResizeMap, {}), _jsx(MapSyncer, { position: position }), _jsx(ClickHandler, { onDrag: onMarkerDrag }), _jsx(Marker, { position: position, draggable: true, ref: markerRef, icon: defaultIcon, eventHandlers: {
54
+ dragend() {
55
+ const m = markerRef.current;
56
+ if (m) {
57
+ const p = m.getLatLng();
58
+ onMarkerDrag(p.lat, p.lng);
59
+ }
60
+ },
61
+ } })] }));
62
+ }
@@ -0,0 +1,5 @@
1
+ import { useForm } from 'react-hook-form';
2
+ export default function LocationPicker({ form }: {
3
+ form: ReturnType<typeof useForm<any>>;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=locationPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationPicker.d.ts","sourceRoot":"","sources":["../../../src/misc/location/locationPicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAsF1C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE,2CA2IzF"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // ─── Nominatim address search ─────────────────────────────────────────────────
3
+ import { Loader2, MapPin } from 'lucide-react';
4
+ import { useRef, useState } from 'react';
5
+ import { Input } from '../input';
6
+ import dynamic from 'next/dynamic';
7
+ import { FormControl, FormField, FormItem, FormLabel, FormMessage } from '../form';
8
+ import { Filter } from '../filter';
9
+ import { getCountryNames, getStates } from '@myrjfa/state';
10
+ function NominatimSearch({ onSelect }) {
11
+ const [query, setQuery] = useState('');
12
+ const [results, setResults] = useState([]);
13
+ const [loading, setLoading] = useState(false);
14
+ const timer = useRef(null);
15
+ const search = (q) => {
16
+ setQuery(q);
17
+ if (timer.current)
18
+ clearTimeout(timer.current);
19
+ if (!q.trim()) {
20
+ setResults([]);
21
+ return;
22
+ }
23
+ timer.current = setTimeout(async () => {
24
+ setLoading(true);
25
+ try {
26
+ const res = await fetch(`https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(q)}&format=json&addressdetails=1&limit=6`, { headers: { 'Accept-Language': 'en' } });
27
+ const data = (await res.json());
28
+ setResults(data);
29
+ }
30
+ catch (_a) {
31
+ setResults([]);
32
+ }
33
+ setLoading(false);
34
+ }, 400);
35
+ };
36
+ const pick = (r) => {
37
+ setQuery(r.display_name);
38
+ setResults([]);
39
+ onSelect(r);
40
+ };
41
+ return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: "relative", children: [_jsx(MapPin, { className: "absolute left-3 top-2.5 h-4 w-4 text-muted-foreground pointer-events-none" }), loading && _jsx(Loader2, { className: "absolute right-3 top-2.5 h-4 w-4 text-muted-foreground animate-spin" }), _jsx(Input, { id: "address-search", value: query, onChange: (e) => search(e.target.value), placeholder: "Search for a place or address\u2026", className: "pl-9 pr-9", autoComplete: "off" })] }), results.length > 0 && (_jsx("ul", { className: "absolute z-[9999] w-full mt-1 border border-input bg-background rounded-md shadow-lg max-h-60 overflow-auto text-sm", children: results.map((r) => (_jsxs("li", { className: "px-3 py-2 cursor-pointer hover:bg-muted truncate flex items-center gap-2", onClick: () => pick(r), children: [_jsx(MapPin, { className: "h-3.5 w-3.5 text-muted-foreground shrink-0" }), _jsx("span", { children: r.display_name })] }, r.place_id))) }))] }));
42
+ }
43
+ // Dynamic Leaflet map (SSR disabled — window not available on server)
44
+ const LeafletMap = dynamic(() => import('./leafletMap'), {
45
+ ssr: false,
46
+ loading: () => (_jsx("div", { className: "w-full h-64 flex items-center justify-center bg-muted rounded-xl border text-sm text-muted-foreground", children: "Loading map\u2026" })),
47
+ });
48
+ // ─── Location picker ─────────────────────────────────────────────────────────
49
+ export default function LocationPicker({ form }) {
50
+ var _a, _b, _c, _d;
51
+ const [mapPos, setMapPos] = useState([
52
+ (_a = form.getValues('lat')) !== null && _a !== void 0 ? _a : 20.5937,
53
+ (_b = form.getValues('lng')) !== null && _b !== void 0 ? _b : 78.9629,
54
+ ]);
55
+ const fillFromNominatim = (result, lat, lng) => {
56
+ const a = result.address;
57
+ const city = a.city || a.town || a.village || a.county || '';
58
+ const state = a.state || '';
59
+ const country = a.country || '';
60
+ const pin = a.postcode || '';
61
+ form.setValue('lat', lat, { shouldDirty: true });
62
+ form.setValue('lng', lng, { shouldDirty: true });
63
+ if (city)
64
+ form.setValue('city', city, { shouldDirty: true });
65
+ if (state)
66
+ form.setValue('state', state, { shouldDirty: true });
67
+ if (country)
68
+ form.setValue('country', country, { shouldDirty: true });
69
+ if (pin)
70
+ form.setValue('pinCode', pin, { shouldDirty: true });
71
+ form.setValue('address', result.display_name, { shouldDirty: true });
72
+ };
73
+ const handleSearchSelect = (result) => {
74
+ const lat = parseFloat(result.lat);
75
+ const lng = parseFloat(result.lon);
76
+ setMapPos([lat, lng]);
77
+ fillFromNominatim(result, lat, lng);
78
+ };
79
+ const handleMapPin = async (lat, lng) => {
80
+ setMapPos([lat, lng]);
81
+ form.setValue('lat', lat, { shouldDirty: true });
82
+ form.setValue('lng', lng, { shouldDirty: true });
83
+ try {
84
+ const res = await fetch(`https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json&addressdetails=1`, { headers: { 'Accept-Language': 'en' } });
85
+ const data = (await res.json());
86
+ fillFromNominatim(data, lat, lng);
87
+ }
88
+ catch ( /* silent */_a) { /* silent */ }
89
+ };
90
+ return (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(FormLabel, { children: "Search Address" }), _jsx("p", { className: "text-xs text-muted-foreground mb-1", children: "Powered by OpenStreetMap \u2014 free, no API key required" }), _jsx(NominatimSearch, { onSelect: handleSearchSelect })] }), _jsx("div", { style: { height: '300px', width: '100%', borderRadius: '0.75rem', overflow: 'hidden', border: '1px solid var(--border)' }, children: _jsx(LeafletMap, { position: mapPos, onMarkerDrag: handleMapPin }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Click anywhere on the map or drag the pin to set the exact location. Fields below auto-fill." }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsx(FormField, { control: form.control, name: "country", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Country *" }), _jsx(FormControl, { children: _jsx("div", { className: "border border-input rounded-md text-sm shadow-sm focus-within:ring-2 focus-within:ring-muted", children: _jsx(Filter, { label: "Country", formType: "autoComplete", selectedValue: field.value, values: getCountryNames(), onChange: (value) => { field.onChange(value); form.setValue('state', ''); } }) }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "state", render: ({ field }) => {
91
+ const stateOptions = form.watch('country') ? getStates(form.watch('country')) : [];
92
+ return (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "State *" }), _jsx(FormControl, { children: _jsx("div", { className: "border border-input rounded-md text-sm shadow-sm focus-within:ring-2 focus-within:ring-muted", children: _jsx(Filter, { label: "State", formType: "autoComplete", selectedValue: field.value, values: stateOptions, onChange: field.onChange }) }) }), _jsx(FormMessage, {})] }));
93
+ } }), _jsx(FormField, { control: form.control, name: "city", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "City *" }), _jsx(FormControl, { children: _jsx(Input, { id: "city", placeholder: "e.g. Rishikesh", ...field }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "pinCode", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Pin / Postal Code" }), _jsx(FormControl, { children: _jsx(Input, { id: "pinCode", placeholder: "e.g. 249201", ...field }) }), _jsx(FormMessage, {})] })) })] }), _jsx(FormField, { control: form.control, name: "address", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Full Address" }), _jsx(FormControl, { children: _jsx(Input, { id: "address", placeholder: "Street / Landmark\u2026", ...field }) }), _jsx(FormMessage, {})] })) }), (form.watch('lat') || form.watch('lng')) && (_jsxs("p", { className: "text-xs text-muted-foreground", children: ["\uD83D\uDCCD ", (_c = form.watch('lat')) === null || _c === void 0 ? void 0 : _c.toFixed(5), ", ", (_d = form.watch('lng')) === null || _d === void 0 ? void 0 : _d.toFixed(5)] }))] }));
94
+ }
@@ -3,8 +3,7 @@ type multiImageUploaderType = {
3
3
  handleImageUpload: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
4
4
  handleRemoveImage: (index: number) => void;
5
5
  message: string;
6
- enableCompression?: boolean;
7
6
  };
8
- export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message, enableCompression }: multiImageUploaderType): import("react/jsx-runtime").JSX.Element;
7
+ export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message }: multiImageUploaderType): import("react/jsx-runtime").JSX.Element;
9
8
  export {};
10
9
  //# sourceMappingURL=multiImageUploader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiImageUploader.d.ts","sourceRoot":"","sources":["../../src/misc/multiImageUploader.tsx"],"names":[],"mappings":"AASA,KAAK,sBAAsB,GAAG;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAwB,EAAE,EAAE,sBAAsB,2CAgF5J"}
1
+ {"version":3,"file":"multiImageUploader.d.ts","sourceRoot":"","sources":["../../src/misc/multiImageUploader.tsx"],"names":[],"mappings":"AAOA,KAAK,sBAAsB,GAAG;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,sBAAsB,2CAuDlI"}
@@ -5,30 +5,6 @@ import { Input } from "./input";
5
5
  import { Card, CardHeader, CardTitle, CardContent } from "./card";
6
6
  import { Trash2, Upload } from "lucide-react";
7
7
  import Image from "next/image";
8
- import { showAlert } from "./alertdialogclaude";
9
- import { compressImage } from "./image-compressor";
10
- export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message, enableCompression = true }) {
11
- return (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { children: ["Images", _jsx(FormDescription, { children: message })] }) }), _jsxs(CardContent, { children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4", children: [previewImages.map((image, index) => (_jsxs("div", { className: "relative rounded-lg overflow-hidden h-40", children: [_jsx(Image, { id: "image-" + index, src: image, alt: `Opportunity image ${index + 1}`, fill: true, className: "object-cover" }), _jsx(Button, { type: "button", onClick: () => handleRemoveImage(index), className: "absolute top-2 right-2 bg-white/80 rounded-full hover:bg-white", children: _jsx(Trash2, { className: "text-red-500" }) })] }, index))), _jsxs("div", { className: "flex flex-col items-center justify-center w-full space-y-4", children: [_jsx("label", { htmlFor: "image", className: "cursor-pointer w-full", children: _jsxs("div", { className: "border-2 border-dashed border-slate-300 rounded-lg p-6 flex flex-col items-center justify-center text-slate-500 hover:border-primary hover:text-primary transition-colors", children: [_jsx(Upload, { className: "h-12 w-12 text-gray-500 mb-4" }), _jsx("span", { className: "text-lg font-semibold mb-2", children: "Upload Image" }), _jsx("span", { className: "text-sm", children: "Click or drag to upload" })] }) }), _jsx(Input, { id: "image", type: "file", accept: "image/*", multiple: true, onChange: async (e) => {
12
- const files = Array.from(e.target.files || []);
13
- const allowedType = 'image/';
14
- const invalid = files.filter(f => !f.type.includes(allowedType));
15
- if (invalid.length > 0) {
16
- showAlert(`Invalid file type(s): ${invalid.map(f => f.name).join(', ')}. Only Images are allowed.`);
17
- e.target.value = '';
18
- return;
19
- }
20
- if (enableCompression && files.length > 0) {
21
- try {
22
- const compressed = await Promise.all(files.map(f => compressImage(f)));
23
- // Rebuild FileList via DataTransfer
24
- const dt = new DataTransfer();
25
- compressed.forEach(f => dt.items.add(f));
26
- e.target.files = dt.files;
27
- }
28
- catch (_a) {
29
- // compression failed — proceed with originals
30
- }
31
- }
32
- handleImageUpload(e);
33
- }, placeholder: "Upload Image", className: "hidden" })] })] }), _jsx(FormDescription, { children: "Images should be in Valid format. Maximum file size: 5MB." })] })] }));
8
+ export default function MultiImageUploader({ previewImages, handleImageUpload, handleRemoveImage, message }) {
9
+ return (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs(CardTitle, { children: ["Images", _jsx(FormDescription, { children: message })] }) }), _jsxs(CardContent, { children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-4", children: [previewImages.map((image, index) => (_jsxs("div", { className: "relative rounded-lg overflow-hidden h-40", children: [_jsx(Image, { id: "image-" + index, src: image, alt: `Opportunity image ${index + 1}`, fill: true, className: "object-cover" }), _jsx(Button, { type: "button", onClick: () => handleRemoveImage(index), className: "absolute top-2 right-2 bg-white/80 rounded-full hover:bg-white", children: _jsx(Trash2, { className: "text-red-500" }) })] }, index))), _jsxs("div", { className: "flex flex-col items-center justify-center w-full space-y-4", children: [_jsx("label", { htmlFor: "image", className: "cursor-pointer w-full", children: _jsxs("div", { className: "border-2 border-dashed border-slate-300 rounded-lg p-6 flex flex-col items-center justify-center text-slate-500 hover:border-primary hover:text-primary transition-colors", children: [_jsx(Upload, { className: "h-12 w-12 text-gray-500 mb-4" }), _jsx("span", { className: "text-lg font-semibold mb-2", children: "Upload Image" }), _jsx("span", { className: "text-sm", children: "Click or drag to upload" })] }) }), _jsx(Input, { id: "image", type: "file", accept: "image/*", multiple: true, onChange: handleImageUpload, placeholder: "Upload Image", className: "hidden" })] })] }), _jsx(FormDescription, { children: "Images should be in Valid format. Maximum file size: 5MB." })] })] }));
34
10
  }
@@ -1,3 +1,3 @@
1
1
  declare const NewsletterSubscribe: () => import("react/jsx-runtime").JSX.Element;
2
- export default NewsletterSubscribe;
2
+ export { NewsletterSubscribe };
3
3
  //# sourceMappingURL=newsLetter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"newsLetter.d.ts","sourceRoot":"","sources":["../../src/misc/newsLetter.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,mBAAmB,+CAgDxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"newsLetter.d.ts","sourceRoot":"","sources":["../../src/misc/newsLetter.tsx"],"names":[],"mappings":"AAiBA,QAAA,MAAM,mBAAmB,+CAgDxB,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { zodResolver } from "@hookform/resolvers/zod";
4
- import { subscribeToNewsLetter } from "@myrjfa/state/dist/lib/actions/actions";
4
+ import { subscribeToNewsLetter } from "@myrjfa/state";
5
5
  import { usePathname } from "next/navigation";
6
6
  import { useEffect } from "react";
7
7
  import { useForm } from "react-hook-form";
@@ -38,4 +38,4 @@ const NewsletterSubscribe = () => {
38
38
  };
39
39
  return (_jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), noValidate: true, className: "mt-4 flex flex-col sm:flex-row gap-3", children: [_jsx(FormField, { control: form.control, name: "email", render: ({ field }) => (_jsxs(FormItem, { className: "flex-1", children: [_jsx(FormControl, { children: _jsx(Input, { placeholder: "Your email address", type: "email", disabled: isSubmitting, ...field }) }), _jsx(FormMessage, {})] })) }), _jsx(Button, { type: "submit", disabled: isSubmitting, className: "w-full sm:w-auto", children: isSubmitting ? "Subscribing..." : "Subscribe" })] }) }));
40
40
  };
41
- export default NewsletterSubscribe;
41
+ export { NewsletterSubscribe };
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Popover, PopoverContent, PopoverTrigger } from "@radix-ui/react-popover";
4
- import { getNotifications, toggleAllNotification, toggleNotification } from "@myrjfa/state/dist/lib/actions/actions";
5
- import { formatTimestamp } from "@myrjfa/state/dist/lib/utils";
4
+ import { getNotifications, toggleAllNotification, toggleNotification } from "@myrjfa/state";
5
+ import { formatTimestamp } from "@myrjfa/state";
6
6
  import { Bell, MessageCircle, CheckCircle2, Receipt, Users, AlertCircle, Megaphone, Briefcase, ShieldCheck, ShieldX, Package, ClipboardList } from "lucide-react";
7
7
  import { useRouter } from "next/navigation";
8
8
  import { useEffect, useState } from "react";