@myrjfa/ui 1.1.1 → 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.
- package/dist/chat/ChatMain.d.ts +1 -1
- package/dist/chat/ChatMain.d.ts.map +1 -1
- package/dist/chat/ChatMain.js +3 -3
- package/dist/chat/ChatSidebar.d.ts +1 -1
- package/dist/chat/ChatSidebar.d.ts.map +1 -1
- package/dist/chat/ConversationList.d.ts +1 -1
- package/dist/chat/ConversationList.d.ts.map +1 -1
- package/dist/chat/ConversationList.js +1 -1
- package/dist/chat/ExpensePanel.js +1 -1
- package/dist/chat/MessageBubble.d.ts +1 -1
- package/dist/chat/MessageBubble.d.ts.map +1 -1
- package/dist/chat/MessageInput.js +1 -1
- package/dist/chat/MilestonePanel.js +1 -1
- package/dist/chat/components/SplitInputs.d.ts +1 -1
- package/dist/chat/components/SplitInputs.d.ts.map +1 -1
- package/dist/chat/components/SplitTypeSelector.d.ts +1 -1
- package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -1
- package/dist/chat/dialogs/AddMemberDialog.d.ts +1 -1
- package/dist/chat/dialogs/AddMemberDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/AddMemberDialog.js +1 -1
- package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.d.ts +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.js +1 -1
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts +1 -1
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/NewChatDialog.js +2 -2
- package/dist/chat/dialogs/NewGroupDialog.js +2 -2
- package/dist/chat/dialogs/ParticipantsDialog.d.ts +1 -1
- package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/ParticipantsDialog.js +1 -1
- package/dist/dashboard/action-buttons.d.ts.map +1 -1
- package/dist/dashboard/action-buttons.js +7 -1
- package/dist/dashboard/app-sidebar.d.ts.map +1 -1
- package/dist/dashboard/app-sidebar.js +9 -4
- package/dist/dashboard/card-header.d.ts +1 -1
- package/dist/dashboard/card-header.d.ts.map +1 -1
- package/dist/dashboard/card-header.js +1 -1
- package/dist/dashboard/dashboard-components.js +1 -1
- package/dist/dashboard/data-table.d.ts.map +1 -1
- package/dist/dashboard/data-table.js +8 -8
- package/dist/dashboard/table.js +1 -1
- package/dist/header/mobile-nav-item.js +1 -1
- package/dist/header/nav-item.js +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/main/footer.d.ts +1 -0
- package/dist/main/footer.d.ts.map +1 -1
- package/dist/main/footer.js +35 -16
- package/dist/main/navbar.d.ts +2 -2
- package/dist/main/navbar.d.ts.map +1 -1
- package/dist/main/navbar.js +24 -18
- package/dist/main/paginationBar.d.ts +1 -1
- package/dist/main/paginationBar.d.ts.map +1 -1
- package/dist/main/paginationBar.js +1 -1
- package/dist/main/portfolio/portfolioItem.d.ts +1 -1
- package/dist/main/portfolio/portfolioItem.d.ts.map +1 -1
- package/dist/main/portfolio/portfolioPopup.d.ts +1 -1
- package/dist/main/portfolio/portfolioPopup.d.ts.map +1 -1
- package/dist/main/portfolio/portfolioPopup.js +1 -1
- package/dist/main/review-page.d.ts +2 -2
- package/dist/main/review-page.d.ts.map +1 -1
- package/dist/main/review-page.js +10 -50
- package/dist/misc/accordion.js +1 -1
- package/dist/misc/alert-dialog.js +1 -1
- package/dist/misc/alert.js +1 -1
- package/dist/misc/alertdialogclaude.js +1 -1
- package/dist/misc/avatar.js +1 -1
- package/dist/misc/badge.js +1 -1
- package/dist/misc/button.d.ts +9 -9
- package/dist/misc/button.js +1 -1
- package/dist/misc/card.js +1 -1
- package/dist/misc/carousel.js +1 -1
- package/dist/misc/checkbox.js +1 -1
- package/dist/misc/command.js +2 -2
- package/dist/misc/datepicker.d.ts.map +1 -1
- package/dist/misc/datepicker.js +22 -4
- package/dist/misc/dialog.js +1 -1
- package/dist/misc/dropdown-menu.js +1 -1
- package/dist/misc/faq.d.ts +2 -2
- package/dist/misc/faq.d.ts.map +1 -1
- package/dist/misc/faq.js +1 -1
- package/dist/misc/file-preview.d.ts +1 -1
- package/dist/misc/file-preview.d.ts.map +1 -1
- package/dist/misc/file-preview.js +1 -1
- package/dist/misc/filter.d.ts +1 -1
- package/dist/misc/filter.d.ts.map +1 -1
- package/dist/misc/filter.js +3 -3
- package/dist/misc/filterBar.d.ts +2 -2
- package/dist/misc/filterBar.d.ts.map +1 -1
- package/dist/misc/filterBar.js +3 -3
- package/dist/misc/form.js +1 -1
- package/dist/misc/input.js +1 -1
- package/dist/misc/label.js +1 -1
- package/dist/misc/line-carousel.d.ts +1 -1
- package/dist/misc/line-carousel.d.ts.map +1 -1
- package/dist/misc/line-carousel.js +1 -1
- package/dist/misc/location/leafletMap.d.ts +8 -0
- package/dist/misc/location/leafletMap.d.ts.map +1 -0
- package/dist/misc/location/leafletMap.js +62 -0
- package/dist/misc/location/locationPicker.d.ts +5 -0
- package/dist/misc/location/locationPicker.d.ts.map +1 -0
- package/dist/misc/location/locationPicker.js +94 -0
- package/dist/misc/newsLetter.d.ts +1 -1
- package/dist/misc/newsLetter.d.ts.map +1 -1
- package/dist/misc/newsLetter.js +2 -2
- package/dist/misc/notification.js +2 -2
- package/dist/misc/pagination.js +1 -1
- package/dist/misc/password-eye.d.ts +2 -1
- package/dist/misc/password-eye.d.ts.map +1 -1
- package/dist/misc/password-eye.js +2 -1
- package/dist/misc/popover.d.ts.map +1 -1
- package/dist/misc/popover.js +2 -2
- package/dist/misc/progress.js +1 -1
- package/dist/misc/rental-tile.d.ts +6 -0
- package/dist/misc/rental-tile.d.ts.map +1 -0
- package/dist/misc/rental-tile.js +23 -0
- package/dist/misc/scroll-area.js +1 -1
- package/dist/misc/searchBar.d.ts +1 -1
- package/dist/misc/searchBar.d.ts.map +1 -1
- package/dist/misc/searchBar.js +1 -1
- package/dist/misc/select.d.ts.map +1 -1
- package/dist/misc/select.js +4 -4
- package/dist/misc/separator.js +1 -1
- package/dist/misc/share.d.ts +1 -1
- package/dist/misc/share.d.ts.map +1 -1
- package/dist/misc/share.js +1 -1
- package/dist/misc/sheet.js +1 -1
- package/dist/misc/sidebar.js +2 -2
- package/dist/misc/skeleton.js +1 -1
- package/dist/misc/slider.js +1 -1
- package/dist/misc/stateCard.d.ts +2 -2
- package/dist/misc/stateCard.d.ts.map +1 -1
- package/dist/misc/stateCard.js +2 -2
- package/dist/misc/switch.js +1 -1
- package/dist/misc/tabs.js +1 -1
- package/dist/misc/textarea.js +1 -1
- package/dist/misc/tile.d.ts +2 -1
- package/dist/misc/tile.d.ts.map +1 -1
- package/dist/misc/tile.js +12 -8
- package/dist/misc/tooltip.js +1 -1
- package/dist/profile/socialLink.d.ts +1 -1
- package/dist/profile/socialLink.d.ts.map +1 -1
- package/dist/profile/socialLink.js +19 -49
- package/package.json +10 -3
- package/dist/chat/dialogs/UserProfileDialog.d.ts +0 -10
- package/dist/chat/dialogs/UserProfileDialog.d.ts.map +0 -1
- package/dist/chat/dialogs/UserProfileDialog.js +0 -100
- package/dist/main/portfolio/temp-page.d.ts +0 -2
- package/dist/main/portfolio/temp-page.d.ts.map +0 -1
- package/dist/main/portfolio/temp-page.js +0 -102
- package/dist/misc/image-cropper.d.ts +0 -10
- package/dist/misc/image-cropper.d.ts.map +0 -1
- package/dist/misc/image-cropper.js +0 -44
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { CheckCircle2, Settings, Users, Fuel, Star, MapPin, Gauge, ChevronDown } from "lucide-react";
|
|
4
|
+
import Image from "next/image";
|
|
5
|
+
import { cn } from "@myrjfa/state";
|
|
6
|
+
import { Card } from "./card";
|
|
7
|
+
import { Button } from "./button";
|
|
8
|
+
export function RentalTile(props) {
|
|
9
|
+
var _a;
|
|
10
|
+
const [selectedPickupIndex, setSelectedPickupIndex] = useState(0);
|
|
11
|
+
const formatPrice = (p) => new Intl.NumberFormat('en-IN', { style: 'currency', currency: props.currency || 'INR', maximumFractionDigits: 0 }).format(p);
|
|
12
|
+
const titleStr = props.brand ? `${props.brand} ${props.model}` : props.title;
|
|
13
|
+
const currentPickup = (_a = props.pickupPoints) === null || _a === void 0 ? void 0 : _a[selectedPickupIndex];
|
|
14
|
+
const totalPrice = props.price || 0;
|
|
15
|
+
return (_jsxs(Card, { className: cn("h-full relative overflow-hidden flex flex-col bg-white border-0 shadow-sm ring-1 ring-slate-200/60 rounded-[24px] transition-all duration-500 hover:shadow-2xl hover:shadow-primary/10 hover:ring-primary/30 hover:-translate-y-1.5 group cursor-pointer", props.clicked && "opacity-60 pointer-events-none"), onClick: props.onClick, children: [_jsxs("div", { className: "absolute top-4 left-4 right-4 flex justify-between items-start z-20 pointer-events-none", children: [_jsx("div", { className: "flex flex-col gap-2", children: props.payAtPickup && (_jsxs("span", { className: "bg-emerald-500/90 text-white text-[10px] font-black uppercase tracking-wider px-3 py-1.5 rounded-full flex items-center gap-1.5 shadow-lg shadow-emerald-500/20 backdrop-blur-md", children: [_jsx(CheckCircle2, { className: "w-3 h-3" }), "Pay at Pickup"] })) }), _jsxs("div", { className: "flex flex-col items-end gap-2 pointer-events-auto", children: [(props.rating && props.rating > 0) ? (_jsxs("span", { className: "bg-white/95 text-slate-900 text-[11px] font-bold px-3 py-1.5 rounded-full shadow-lg flex items-center gap-1.5 border border-slate-100", children: [_jsx(Star, { className: "w-3.5 h-3.5 fill-amber-400 text-amber-400" }), _jsxs("span", { children: [props.rating, " ", _jsxs("span", { className: "font-semibold text-slate-400", children: ["(", props.reviewCount || 0, ")"] })] })] })) : null, (props.completedTrips && props.completedTrips > 0) ? (_jsxs("span", { className: "bg-slate-900/90 text-white text-[10px] font-bold px-3 py-1.5 rounded-full shadow-lg backdrop-blur-md", children: [props.completedTrips, " Trips"] })) : null] })] }), _jsxs("div", { className: "relative w-full aspect-[4/3] overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-slate-900/10 z-10 group-hover:bg-transparent transition-colors duration-500" }), _jsx(Image, { src: props.image || "/placeholder.jpg", alt: props.title, fill: true, sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 25vw", className: "object-cover group-hover:scale-110 transition-transform duration-700 ease-out" }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-1/2 bg-gradient-to-t from-white via-white/50 to-transparent z-10" })] }), _jsxs("div", { className: "flex-1 flex flex-col px-6 pb-6 -mt-10 relative z-20", children: [_jsxs("div", { className: "mb-5", children: [_jsx("h3", { className: "text-xl font-extrabold text-slate-900 tracking-tight leading-tight line-clamp-1 mb-1", title: titleStr, children: titleStr }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] font-black uppercase tracking-widest text-primary bg-primary/10 px-2 py-0.5 rounded", children: props.vehicleType || "Vehicle" }), _jsxs("span", { className: "text-xs font-bold text-slate-400", children: ["Model ", props.date ? new Date(props.date).getFullYear() : '2024'] })] })] }), _jsx("div", { className: "grid grid-cols-3 gap-3 mb-6", children: [
|
|
16
|
+
{ icon: _jsx(Settings, { className: "w-4 h-4" }), label: props.transmission || 'Auto' },
|
|
17
|
+
{ icon: _jsx(Users, { className: "w-4 h-4" }), label: `${props.seatingCapacity || 2} Seats` },
|
|
18
|
+
{ icon: _jsx(Fuel, { className: "w-4 h-4" }), label: props.fuelType || 'Petrol' }
|
|
19
|
+
].map((spec, i) => (_jsxs("div", { className: "flex flex-col items-center justify-center bg-slate-50 rounded-2xl p-3 border border-slate-100/50 group-hover:bg-white group-hover:border-primary/20 transition-all duration-300", children: [_jsx("div", { className: "text-slate-400 group-hover:text-primary transition-colors mb-1.5", children: spec.icon }), _jsx("span", { className: "text-[10px] font-bold text-slate-600 uppercase tracking-tight text-center", children: spec.label })] }, i))) }), _jsxs("div", { className: "relative mb-6", children: [_jsx("div", { className: "absolute -top-2 left-3 bg-white px-1.5 text-[10px] font-black uppercase tracking-widest text-slate-400 z-10 transition-colors group-hover:text-primary", children: "Available At" }), _jsxs("div", { className: "relative bg-slate-50/50 rounded-2xl border border-slate-100 group-hover:border-primary/20 transition-all", children: [_jsx(MapPin, { className: "absolute left-4 top-1/2 -translate-y-1/2 w-4 h-4 text-primary" }), _jsx("select", { className: "w-full bg-transparent pl-11 pr-4 py-3.5 text-sm font-bold text-slate-700 appearance-none focus:outline-none cursor-pointer", value: selectedPickupIndex, onChange: (e) => {
|
|
20
|
+
e.stopPropagation();
|
|
21
|
+
setSelectedPickupIndex(Number(e.target.value));
|
|
22
|
+
}, onClick: (e) => e.stopPropagation(), children: props.pickupPoints && props.pickupPoints.length > 0 ? (props.pickupPoints.map((point, idx) => (_jsx("option", { value: idx, children: point.name }, idx)))) : (_jsx("option", { children: props.location || "Location Not Set" })) }), _jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400", children: _jsx(ChevronDown, { className: "w-4 h-4" }) })] })] }), _jsxs("div", { className: "mt-auto flex items-center justify-between gap-4 pt-1 border-t border-slate-100 pt-5", children: [_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-baseline gap-1.5", children: [_jsx("span", { className: "text-3xl font-black text-slate-900 tracking-tighter", children: formatPrice(totalPrice) }), _jsx("span", { className: "text-xs font-bold text-slate-400 uppercase", children: "/day" })] }), _jsxs("div", { className: "flex items-center gap-1.5 mt-1", children: [_jsx(Gauge, { className: "w-3.5 h-3.5 text-primary" }), _jsx("span", { className: "text-[11px] font-bold text-slate-500", children: props.distanceLimit || 'No distance limit' })] })] }), _jsx(Button, { className: "rounded-2xl px-8 h-14 font-black uppercase tracking-widest text-xs shadow-xl shadow-primary/20 hover:shadow-primary/30 transition-all", onClick: props.onClick, children: "Book Now" })] })] })] }));
|
|
23
|
+
}
|
package/dist/misc/scroll-area.js
CHANGED
|
@@ -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 ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
function ScrollArea({ className, children, ...props }) {
|
|
6
6
|
return (_jsxs(ScrollAreaPrimitive.Root, { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { "data-slot": "scroll-area-viewport", className: "ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
|
|
7
7
|
}
|
package/dist/misc/searchBar.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface SearchBarProps {
|
|
2
2
|
titles: string[];
|
|
3
3
|
}
|
|
4
|
-
export
|
|
4
|
+
export declare function SearchBar({ titles }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export {};
|
|
6
6
|
//# sourceMappingURL=searchBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchBar.d.ts","sourceRoot":"","sources":["../../src/misc/searchBar.tsx"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAqID,
|
|
1
|
+
{"version":3,"file":"searchBar.d.ts","sourceRoot":"","sources":["../../src/misc/searchBar.tsx"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAqID,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,2CAMnD"}
|
package/dist/misc/searchBar.js
CHANGED
|
@@ -84,6 +84,6 @@ function SearchBarComponent({ titles }) {
|
|
|
84
84
|
setTimeout(() => setShowSuggestions(false), 150);
|
|
85
85
|
}, className: "w-full bg-transparent border-none outline-none py-2 px-3 text-gray-700" }), showSuggestions && suggestions.length > 0 && (_jsx("div", { className: "absolute top-full left-0 w-full mt-1 bg-white rounded-md shadow-lg z-15 max-h-60 overflow-y-auto", children: suggestions.map((suggestion, index) => (_jsx("div", { className: `px-4 py-2 text-sm cursor-pointer ${index === highlightedIndex ? 'bg-muted' : 'text-gray-700 hover:bg-muted'}`, onMouseDown: (e) => e.preventDefault(), onClick: () => handleSuggestionClick(suggestion), children: suggestion }, index))) }))] }), _jsx(Button, { variant: "default", onClick: executeSearch, className: "ml-4 w-10 h-10 rounded-full flex items-center justify-center cursor-pointer", children: _jsx(Search, { size: 18 }) })] }) }));
|
|
86
86
|
}
|
|
87
|
-
export
|
|
87
|
+
export function SearchBar({ titles }) {
|
|
88
88
|
return (_jsx(Suspense, { fallback: _jsx("div", { className: "w-full h-screen flex items-center justify-center", children: "Loading..." }), children: _jsx(SearchBarComponent, { titles: titles }) }));
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/misc/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAgBtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/misc/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAgBtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,QAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CA4BtD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,2CAQxD;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,cAAc,CAAC,2CAa7D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,gBAAgB,CAAC,2CAa/D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAA"}
|
package/dist/misc/select.js
CHANGED
|
@@ -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 SelectPrimitive from "@radix-ui/react-select";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
6
6
|
function Select({ ...props }) {
|
|
7
7
|
return _jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
@@ -16,9 +16,9 @@ function SelectTrigger({ className, children, ...props }) {
|
|
|
16
16
|
return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", className: cn("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex h-9 w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { asChild: true, children: _jsx(ChevronDownIcon, { className: "size-4 opacity-50" }) })] }));
|
|
17
17
|
}
|
|
18
18
|
function SelectContent({ className, children, position = "popper", ...props }) {
|
|
19
|
-
return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { "data-slot": "select-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-
|
|
20
|
-
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position,
|
|
21
|
-
"h-
|
|
19
|
+
return (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { "data-slot": "select-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md", position === "popper" &&
|
|
20
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className), position: position, ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: cn("p-1", position === "popper" &&
|
|
21
|
+
"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"), children: children }), _jsx(SelectScrollDownButton, {})] }) }));
|
|
22
22
|
}
|
|
23
23
|
function SelectLabel({ className, ...props }) {
|
|
24
24
|
return (_jsx(SelectPrimitive.Label, { "data-slot": "select-label", className: cn("px-2 py-1.5 text-sm font-medium", className), ...props }));
|
package/dist/misc/separator.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
|
|
6
6
|
return (_jsx(SeparatorPrimitive.Root, { "data-slot": "separator-root", decorative: decorative, orientation: orientation, className: cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className), ...props }));
|
|
7
7
|
}
|
package/dist/misc/share.d.ts
CHANGED
package/dist/misc/share.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/misc/share.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,WAAW,GAAI,WAAqB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,4CAoO3D,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/misc/share.tsx"],"names":[],"mappings":"AAoBA,QAAA,MAAM,WAAW,GAAI,WAAqB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,4CAoO3D,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/misc/share.js
CHANGED
|
@@ -154,4 +154,4 @@ const ShareButton = ({ label = "Share" }) => {
|
|
|
154
154
|
return (_jsx(ShareComponent, { ...platform.props, className: "flex flex-col items-center justify-center", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-3 rounded-lg hover:bg-gray-50 transition-colors w-full", children: [platform.icon, _jsx("span", { className: "text-xs font-medium text-gray-700", children: platform.name })] }) }, index));
|
|
155
155
|
}), pageMetadata.image && (_jsx(PinterestShareButton, { url: pageMetadata.url, media: pageMetadata.image, description: pageMetadata.description, className: "flex flex-col items-center justify-center", children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-3 rounded-lg hover:bg-gray-50 transition-colors w-full", children: [_jsx(FaPinterest, { className: "w-6 h-6 text-red-600" }), _jsx("span", { className: "text-xs font-medium text-gray-700", children: "Pinterest" })] }) }))] })] }) }) })] }));
|
|
156
156
|
};
|
|
157
|
-
export
|
|
157
|
+
export { ShareButton };
|
package/dist/misc/sheet.js
CHANGED
|
@@ -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 SheetPrimitive from "@radix-ui/react-dialog";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
import { XIcon } from "lucide-react";
|
|
6
6
|
function Sheet({ ...props }) {
|
|
7
7
|
return _jsx(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
package/dist/misc/sidebar.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
-
import { useIsMobile } from "@myrjfa/state
|
|
5
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { useIsMobile } from "@myrjfa/state";
|
|
5
|
+
import { cn } from "@myrjfa/state";
|
|
6
6
|
import { cva } from "class-variance-authority";
|
|
7
7
|
import { PanelLeftIcon } from "lucide-react";
|
|
8
8
|
import * as React from "react";
|
package/dist/misc/skeleton.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "@myrjfa/state
|
|
2
|
+
import { cn } from "@myrjfa/state";
|
|
3
3
|
function Skeleton({ className, ...props }) {
|
|
4
4
|
return (_jsx("div", { "data-slot": "skeleton", className: cn("bg-primary/10 animate-pulse rounded-md", className), ...props }));
|
|
5
5
|
}
|
package/dist/misc/slider.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
5
|
-
import { cn } from "@myrjfa/state
|
|
5
|
+
import { cn } from "@myrjfa/state";
|
|
6
6
|
const Slider = React.forwardRef(({ className, ...props }, ref) => {
|
|
7
7
|
var _a;
|
|
8
8
|
return (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), (_a = (props.value || props.defaultValue || [0])) === null || _a === void 0 ? void 0 : _a.map((_, index) => (_jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" }, index)))] }));
|
package/dist/misc/stateCard.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CardType } from '@myrjfa/state
|
|
2
|
-
export
|
|
1
|
+
import { CardType } from '@myrjfa/state';
|
|
2
|
+
export declare function StateCard({ state, index, className }: {
|
|
3
3
|
state: CardType;
|
|
4
4
|
index: number;
|
|
5
5
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateCard.d.ts","sourceRoot":"","sources":["../../src/misc/stateCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stateCard.d.ts","sourceRoot":"","sources":["../../src/misc/stateCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAQxC,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsC5G"}
|
package/dist/misc/stateCard.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from '@myrjfa/state
|
|
3
|
+
import { cn } from '@myrjfa/state';
|
|
4
4
|
import { Loader2 } from 'lucide-react';
|
|
5
5
|
import Image from 'next/image';
|
|
6
6
|
import { useRouter } from 'next/navigation';
|
|
7
7
|
import { useState } from 'react';
|
|
8
8
|
import { Card, CardContent } from './card';
|
|
9
|
-
export
|
|
9
|
+
export function StateCard({ state, index, className }) {
|
|
10
10
|
var _a;
|
|
11
11
|
const [clicked, setClicked] = useState(false);
|
|
12
12
|
const router = useRouter();
|
package/dist/misc/switch.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
5
|
-
import { cn } from "@myrjfa/state
|
|
5
|
+
import { cn } from "@myrjfa/state";
|
|
6
6
|
const Switch = React.forwardRef(({ className, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") }) })));
|
|
7
7
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
8
8
|
export { Switch };
|
package/dist/misc/tabs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
function Tabs({ className, ...props }) {
|
|
6
6
|
return (_jsx(TabsPrimitive.Root, { "data-slot": "tabs", className: cn("flex flex-col gap-2", className), ...props }));
|
|
7
7
|
}
|
package/dist/misc/textarea.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { cn } from "@myrjfa/state
|
|
2
|
+
import { cn } from "@myrjfa/state";
|
|
3
3
|
function Textarea({ className, ...props }) {
|
|
4
4
|
return (_jsx("textarea", { "data-slot": "textarea", className: cn("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ...props }));
|
|
5
5
|
}
|
package/dist/misc/tile.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { TileProps } from "@myrjfa/state
|
|
1
|
+
import { TileProps } from "@myrjfa/state";
|
|
2
|
+
export type { TileProps };
|
|
2
3
|
export declare function Tile({ slug, image, title, description, location, rating, skills, tileType, className, date, host, duration, price, currency, includeHost, }: TileProps): import("react/jsx-runtime").JSX.Element;
|
|
3
4
|
//# sourceMappingURL=tile.d.ts.map
|
package/dist/misc/tile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../../src/misc/tile.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../../src/misc/tile.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,YAAY,EAAE,SAAS,EAAE,CAAC;AAgB1B,wBAAgB,IAAI,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAW,EACX,QAA0B,EAC1B,SAAS,EACT,IAAI,EACJ,IAAgB,EAChB,QAAY,EACZ,KAAW,EACX,QAAgB,EAChB,WAAkB,GACrB,EAAE,SAAS,2CAkLX"}
|
package/dist/misc/tile.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { toggleUserWishlist } from "@myrjfa/state
|
|
4
|
-
import { userAtom, userLoadingAtom } from "@myrjfa/state
|
|
5
|
-
import { cn, formatDate, truncateText } from "@myrjfa/state
|
|
3
|
+
import { toggleUserWishlist } from "@myrjfa/state";
|
|
4
|
+
import { userAtom, userLoadingAtom } from "@myrjfa/state";
|
|
5
|
+
import { cn, formatDate, truncateText } from "@myrjfa/state";
|
|
6
6
|
import { useAtom, useAtomValue } from "jotai";
|
|
7
7
|
import { Clock, Heart, Loader2, MapPin, Star } from "lucide-react";
|
|
8
8
|
import Image from "next/image";
|
|
@@ -12,6 +12,7 @@ import { showAlert } from "./alertdialogclaude";
|
|
|
12
12
|
import { Badge } from "./badge";
|
|
13
13
|
import { Button } from "./button";
|
|
14
14
|
import { Card, CardContent } from "./card";
|
|
15
|
+
import { RentalTile } from "./rental-tile";
|
|
15
16
|
function WishlistButton({ wishlisted, handleWishlisted }) {
|
|
16
17
|
return _jsx(Button, { variant: "ghost", className: "absolute top-3 right-3 z-10 bg-white/70 hover:bg-white rounded-full transition", onClick: handleWishlisted, children: _jsx(Heart, { className: wishlisted ? "text-red-500 fill-red-500 drop-shadow" : "text-gray-400 fill-gray-400", size: 20 }) });
|
|
17
18
|
}
|
|
@@ -30,7 +31,7 @@ export function Tile({ slug, image, title, description, location, rating, skills
|
|
|
30
31
|
if (tileType == "opportunities") {
|
|
31
32
|
setWishlisted((_b = (_a = user.wishlist) === null || _a === void 0 ? void 0 : _a.includes(slug)) !== null && _b !== void 0 ? _b : false);
|
|
32
33
|
}
|
|
33
|
-
else if (tileType == "packages") {
|
|
34
|
+
else if (tileType == "packages" || tileType == "rentals" || tileType == "adventures" || tileType == "guides") {
|
|
34
35
|
setWishlisted((_d = (_c = user.favPackages) === null || _c === void 0 ? void 0 : _c.includes(slug)) !== null && _d !== void 0 ? _d : false);
|
|
35
36
|
}
|
|
36
37
|
}, [slug, loading, user]);
|
|
@@ -44,7 +45,7 @@ export function Tile({ slug, image, title, description, location, rating, skills
|
|
|
44
45
|
if (tileType == "opportunities") {
|
|
45
46
|
setUser((prev) => prev ? { ...prev, wishlist: response.wishlist } : prev);
|
|
46
47
|
}
|
|
47
|
-
else if (tileType == "packages") {
|
|
48
|
+
else if (tileType == "packages" || tileType == "rentals" || tileType == "adventures" || tileType == "guides") {
|
|
48
49
|
setUser((prev) => prev ? { ...prev, favPackages: response.wishlist } : prev);
|
|
49
50
|
}
|
|
50
51
|
};
|
|
@@ -61,16 +62,19 @@ export function Tile({ slug, image, title, description, location, rating, skills
|
|
|
61
62
|
maximumFractionDigits: 0
|
|
62
63
|
}).format(price);
|
|
63
64
|
};
|
|
65
|
+
if (tileType === "rentals") {
|
|
66
|
+
return _jsx(RentalTile, { ...arguments[0], onClick: handleTileClick, clicked: clicked });
|
|
67
|
+
}
|
|
64
68
|
return (_jsxs(Card, { className: cn("h-full shadow-lg py-0 gap-0 group transition-shadow hover:shadow-2xl border border-gray-100 rounded-2xl overflow-hidden cursor-pointer relative bg-white", className, clicked && "opacity-60 pointer-events-none" // visual cue + blocking
|
|
65
69
|
), onClick: handleTileClick, children: [clicked && (_jsx("div", { className: "absolute inset-0 z-20 flex items-center justify-center bg-white/70 rounded-lg", children: _jsx(Loader2, { className: "animate-spin text-gray-600", size: 24 }) })), _jsxs("div", { className: "relative h-55 w-full p-0 overflow-hidden", children: [_jsx(Image, { src: image, alt: title, fill: true, priority: true, sizes: "(max-width: 768px) 100vw, 400px", className: "object-cover transition-transform duration-300 group-hover:scale-105", style: {
|
|
66
70
|
WebkitMaskImage: "linear-gradient(to bottom, rgba(0,0,0,1) 90%, rgba(255, 255, 255, 0) 100%)",
|
|
67
71
|
WebkitMaskRepeat: "no-repeat",
|
|
68
72
|
WebkitMaskSize: "100% 100%",
|
|
69
|
-
}, onError: (e) => console.error(e.target) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-5 pointer-events-none bg-gradient-to-b from-transparent to-white" }), user && user.role == "user" && tileType !== "blogs" && (_jsx(WishlistButton, { wishlisted: wishlisted, handleWishlisted: handleWishlisted })), tileType == "packages" && (_jsx("div", { className: "absolute top-4 left-4 bg-white/80 backdrop-blur px-3 py-1 rounded-full shadow text-gray-900 font-semibold text-base", children: formatPrice(price, currency) }))] }), _jsxs(CardContent, { className: "p-4 pt-0 flex flex-col gap-3 z-10", children: [tileType !== "blogs" && (_jsxs("div", { className: "flex justify-between text-sm text-muted-foreground", children: [location && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(MapPin, { size: 15 }), " ", truncateText(location, 30)] })), (rating && rating > 0) ? _jsxs("div", { className: "flex items-center gap-1 bg-green-50 px-2 py-1 rounded-full", children: [_jsx(Star, { className: "w-4 h-4 text-amber-400 fill-current" }), _jsx("span", { className: " font-semibold", children: rating })] })
|
|
70
|
-
: null] })), _jsx("h4", { className: "text-lg font-semibold truncate-text", children: truncateText(title, 30) }), tileType !== "packages" &&
|
|
73
|
+
}, onError: (e) => console.error(e.target) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-5 pointer-events-none bg-gradient-to-b from-transparent to-white" }), user && user.role == "user" && tileType !== "blogs" && (_jsx(WishlistButton, { wishlisted: wishlisted, handleWishlisted: handleWishlisted })), (tileType == "packages" || tileType == "adventures" || tileType == "guides") && (_jsx("div", { className: "absolute top-4 left-4 bg-white/80 backdrop-blur px-3 py-1 rounded-full shadow text-gray-900 font-semibold text-base", children: formatPrice(price, currency) }))] }), _jsxs(CardContent, { className: "p-4 pt-0 flex flex-col gap-3 z-10", children: [tileType !== "blogs" && (_jsxs("div", { className: "flex justify-between text-sm text-muted-foreground", children: [location && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(MapPin, { size: 15 }), " ", truncateText(location, 30)] })), (rating && rating > 0) ? _jsxs("div", { className: "flex items-center gap-1 bg-green-50 px-2 py-1 rounded-full", children: [_jsx(Star, { className: "w-4 h-4 text-amber-400 fill-current" }), _jsx("span", { className: " font-semibold", children: rating })] })
|
|
74
|
+
: null] })), _jsx("h4", { className: "text-lg font-semibold truncate-text", children: truncateText(title, 30) }), (tileType !== "packages" && tileType !== "adventures" && tileType !== "guides") &&
|
|
71
75
|
_jsx("p", { className: "text-sm text-muted-foreground truncate-text-3", children: description }), tileType == "opportunities" && skills.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mt-2 truncate-text", children: skills.slice(0, 3).map((skill, index) => (_jsx(Badge, { variant: "secondary", children: truncateText(skill, 10) }, index))) })), tileType == "blogs" && (includeHost ?
|
|
72
76
|
_jsxs("div", { className: "flex items-center gap-3 pt-3 border-t min-h-12 max-h-15", children: [_jsx(Image, { src: (_a = host === null || host === void 0 ? void 0 : host.image) !== null && _a !== void 0 ? _a : "/images/profile_placeholder.webp", alt: "Host Image", width: 40, height: 40, className: "rounded-full object-cover" }), _jsxs("div", { className: "flex-1", children: [_jsxs("p", { className: "font-medium", children: ["By ", truncateText((_b = host === null || host === void 0 ? void 0 : host.name) !== null && _b !== void 0 ? _b : "Host", 18)] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["on ", formatDate(date)] })] })] }) :
|
|
73
|
-
_jsxs("div", { className: "flex justify-between items-center text-xs text-gray-500", children: [_jsx("span", { children: formatDate(date) }), _jsxs("span", { children: [rating, " likes"] })] })), tileType == "packages" && (_jsxs("div", { className: "flex items-center justify-between pt-3 border-t border-gray-100", children: [_jsxs("div", { className: "flex items-center gap-1 text-gray-600 whitespace-nowrap", children: [_jsx(Clock, { className: "w-4 h-4 mr-1" }), _jsxs("span", { className: "text-sm", children: [duration, " Days"] })] }), includeHost ?
|
|
77
|
+
_jsxs("div", { className: "flex justify-between items-center text-xs text-gray-500", children: [_jsx("span", { children: formatDate(date) }), _jsxs("span", { children: [rating, " likes"] })] })), (tileType == "packages" || tileType == "adventures" || tileType == "guides") && (_jsxs("div", { className: "flex items-center justify-between pt-3 border-t border-gray-100", children: [(tileType !== "guides") && (_jsxs("div", { className: "flex items-center gap-1 text-gray-600 whitespace-nowrap", children: [_jsx(Clock, { className: "w-4 h-4 mr-1" }), _jsxs("span", { className: "text-sm", children: [duration, " ", tileType == "adventures" ? "hrs" : "Days"] })] })), includeHost ?
|
|
74
78
|
_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Image, { src: (_c = host === null || host === void 0 ? void 0 : host.image) !== null && _c !== void 0 ? _c : "/images/profile_placeholder.webp", alt: (_d = host === null || host === void 0 ? void 0 : host.name) !== null && _d !== void 0 ? _d : "DP", width: 25, height: 25, className: "rounded-full" }), _jsx("span", { className: "text-sm text-gray-500 max-w-40", children: host === null || host === void 0 ? void 0 : host.name })] }) :
|
|
75
79
|
_jsx("div", { className: "flex justify-between items-center text-xs text-gray-500", children: _jsx("span", { children: formatDate(date) }) })] }))] })] }));
|
|
76
80
|
}
|
package/dist/misc/tooltip.js
CHANGED
|
@@ -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 TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4
|
-
import { cn } from "@myrjfa/state
|
|
4
|
+
import { cn } from "@myrjfa/state";
|
|
5
5
|
function TooltipProvider({ delayDuration = 0, ...props }) {
|
|
6
6
|
return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socialLink.d.ts","sourceRoot":"","sources":["../../src/profile/socialLink.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socialLink.d.ts","sourceRoot":"","sources":["../../src/profile/socialLink.tsx"],"names":[],"mappings":"AAQA,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAEzF,UAAU,oBAAoB;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvF;AAYD,wBAAgB,eAAe,CAAC,EAC5B,QAAQ,EACR,GAAG,EACH,aAAa,EACb,oBAAoB,GACvB,EAAE,oBAAoB,kDA8CtB"}
|
|
@@ -3,60 +3,30 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Input } from "../misc/input";
|
|
5
5
|
import { Button } from "../misc/button";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { FacebookIcon, LinkedinIcon, TwitterIcon } from "react-share";
|
|
6
|
+
import { InstagramIcon, YoutubeIcon, LinkedinIcon, StoreIcon } from "lucide-react";
|
|
7
|
+
import { useRouter } from "next/navigation";
|
|
9
8
|
const platformConfig = {
|
|
10
|
-
instagram: { label: "Instagram", icon: InstagramIcon, color: "hover:text-pink-600"
|
|
11
|
-
youtube: { label: "YouTube", icon: YoutubeIcon, color: "hover:text-red-600"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
github: { label: "GitHub", icon: GithubIcon, color: "hover:text-blue-600", hint: "Enter @handle or profile URL" },
|
|
15
|
-
linkedin: { label: "LinkedIn", icon: LinkedinIcon, color: "hover:text-blue-600", hint: "Enter username or profile URL" },
|
|
16
|
-
googleBusiness: { label: "Google Business", icon: StoreIcon, color: "hover:text-green-600", hint: "Enter full Google Business URL" },
|
|
9
|
+
instagram: { label: "Instagram", icon: InstagramIcon, color: "hover:text-pink-600" },
|
|
10
|
+
youtube: { label: "YouTube", icon: YoutubeIcon, color: "hover:text-red-600" },
|
|
11
|
+
linkedin: { label: "LinkedIn", icon: LinkedinIcon, color: "hover:text-blue-600" },
|
|
12
|
+
googleBusiness: { label: "Google Business", icon: StoreIcon, color: "hover:text-green-600" },
|
|
17
13
|
};
|
|
18
14
|
export function SocialLinkField({ platform, url, isCurrentUser, updateUserSocialLink, }) {
|
|
19
|
-
const [input, setInput] = useState(url
|
|
20
|
-
const [urlError, setUrlError] = useState(null);
|
|
15
|
+
const [input, setInput] = useState(url);
|
|
21
16
|
const [loading, setLoading] = useState(false);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const handleBlur = () => {
|
|
25
|
-
if (!input.trim() || platform === "googleBusiness")
|
|
26
|
-
return;
|
|
27
|
-
const { url: normalized, error } = normalizeSocialUrl(platform, input);
|
|
28
|
-
setUrlError(error);
|
|
29
|
-
if (!error)
|
|
30
|
-
setInput(normalized); // auto-correct the field to canonical URL
|
|
31
|
-
};
|
|
32
|
-
const handleSave = async () => {
|
|
33
|
-
if (!input.trim() || !updateUserSocialLink)
|
|
34
|
-
return;
|
|
35
|
-
// Final normalization before saving
|
|
36
|
-
let finalUrl = input;
|
|
37
|
-
if (platform !== "googleBusiness") {
|
|
38
|
-
const { url: normalized, error } = normalizeSocialUrl(platform, input);
|
|
39
|
-
if (error) {
|
|
40
|
-
setUrlError(error);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
finalUrl = normalized;
|
|
44
|
-
setInput(normalized);
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
setLoading(true);
|
|
48
|
-
await updateUserSocialLink(platform, finalUrl);
|
|
49
|
-
setUrlError(null);
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
setLoading(false);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
17
|
+
const router = useRouter();
|
|
18
|
+
const { label, icon: Icon, color } = platformConfig[platform];
|
|
55
19
|
if (isCurrentUser) {
|
|
56
|
-
return (_jsxs("div", { className: "flex
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
20
|
+
return (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Input, { type: "url", placeholder: `${label} profile url`, value: input, onChange: (e) => setInput(e.target.value) }), updateUserSocialLink &&
|
|
21
|
+
_jsx(Button, { disabled: loading || !input, onClick: async () => {
|
|
22
|
+
try {
|
|
23
|
+
setLoading(true);
|
|
24
|
+
await updateUserSocialLink(platform, input);
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
setLoading(false);
|
|
28
|
+
}
|
|
29
|
+
}, children: "Add" })] }));
|
|
60
30
|
}
|
|
61
31
|
else if (url) {
|
|
62
32
|
return (_jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: `text-gray-500 ${color} flex flex-row gap-1`, children: _jsx(Icon, { className: "h-5 w-5" }) }));
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myrjfa/ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./dist/index.js",
|
|
7
|
+
"./*": "./*.js"
|
|
8
|
+
},
|
|
4
9
|
"description": "Shared UI components for my apps",
|
|
5
10
|
"main": "dist/index.js",
|
|
6
11
|
"types": "dist/index.d.ts",
|
|
@@ -36,10 +41,11 @@
|
|
|
36
41
|
"cmdk": "1.1.1",
|
|
37
42
|
"embla-carousel-react": "^8.5.2",
|
|
38
43
|
"emoji-picker-react": "^4.18.0",
|
|
44
|
+
"leaflet": "1.9.4",
|
|
39
45
|
"pnpm": "^10.14.0",
|
|
40
|
-
"react-easy-crop": "^5.5.6",
|
|
41
46
|
"react-hook-form": "^7.54.2",
|
|
42
47
|
"react-icons": "^5.5.0",
|
|
48
|
+
"react-leaflet": "^5.0.0",
|
|
43
49
|
"react-share": "^5.2.2"
|
|
44
50
|
},
|
|
45
51
|
"peerDependencies": {
|
|
@@ -53,7 +59,8 @@
|
|
|
53
59
|
"zod": "*"
|
|
54
60
|
},
|
|
55
61
|
"devDependencies": {
|
|
56
|
-
"@myrjfa/state": "
|
|
62
|
+
"@myrjfa/state": "2.0.0",
|
|
63
|
+
"@types/leaflet": "1.9.21",
|
|
57
64
|
"@types/react": "19.0.10",
|
|
58
65
|
"@types/react-dom": "^19.0.4",
|
|
59
66
|
"date-fns": "^3.0.0",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface UserProfileDialogProps {
|
|
2
|
-
userId: string;
|
|
3
|
-
userName: string;
|
|
4
|
-
userImage?: string;
|
|
5
|
-
open: boolean;
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
}
|
|
8
|
-
export declare function UserProfileDialog({ userId, userName, userImage, open, onClose }: UserProfileDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=UserProfileDialog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserProfileDialog.d.ts","sourceRoot":"","sources":["../../../src/chat/dialogs/UserProfileDialog.tsx"],"names":[],"mappings":"AASA,UAAU,sBAAsB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,sBAAsB,2CAkFvG"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
39
|
-
import { useState, useEffect } from "react";
|
|
40
|
-
import { Dialog, DialogContent, DialogHeader, DialogTitle } from "../../misc/dialog";
|
|
41
|
-
import { Button } from "../../misc/button";
|
|
42
|
-
import { Avatar, AvatarFallback, AvatarImage } from "../../misc/avatar";
|
|
43
|
-
import { Ban, Shield } from "lucide-react";
|
|
44
|
-
import { userApi } from "@myrjfa/state/dist/lib/actions/user";
|
|
45
|
-
export function UserProfileDialog(_a) {
|
|
46
|
-
var _this = this;
|
|
47
|
-
var userId = _a.userId, userName = _a.userName, userImage = _a.userImage, open = _a.open, onClose = _a.onClose;
|
|
48
|
-
var _b = useState(false), isBlocked = _b[0], setIsBlocked = _b[1];
|
|
49
|
-
var _c = useState(false), loading = _c[0], setLoading = _c[1];
|
|
50
|
-
useEffect(function () {
|
|
51
|
-
if (open && userId) {
|
|
52
|
-
checkBlockStatus();
|
|
53
|
-
}
|
|
54
|
-
}, [open, userId]);
|
|
55
|
-
var checkBlockStatus = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
56
|
-
var blocked;
|
|
57
|
-
return __generator(this, function (_a) {
|
|
58
|
-
switch (_a.label) {
|
|
59
|
-
case 0: return [4 /*yield*/, userApi.checkIfBlocked(userId)];
|
|
60
|
-
case 1:
|
|
61
|
-
blocked = _a.sent();
|
|
62
|
-
setIsBlocked(blocked);
|
|
63
|
-
return [2 /*return*/];
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}); };
|
|
67
|
-
var handleBlockToggle = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
68
|
-
var error_1;
|
|
69
|
-
return __generator(this, function (_a) {
|
|
70
|
-
switch (_a.label) {
|
|
71
|
-
case 0:
|
|
72
|
-
setLoading(true);
|
|
73
|
-
_a.label = 1;
|
|
74
|
-
case 1:
|
|
75
|
-
_a.trys.push([1, 6, 7, 8]);
|
|
76
|
-
if (!isBlocked) return [3 /*break*/, 3];
|
|
77
|
-
return [4 /*yield*/, userApi.unblockUser(userId)];
|
|
78
|
-
case 2:
|
|
79
|
-
_a.sent();
|
|
80
|
-
setIsBlocked(false);
|
|
81
|
-
return [3 /*break*/, 5];
|
|
82
|
-
case 3: return [4 /*yield*/, userApi.blockUser(userId)];
|
|
83
|
-
case 4:
|
|
84
|
-
_a.sent();
|
|
85
|
-
setIsBlocked(true);
|
|
86
|
-
_a.label = 5;
|
|
87
|
-
case 5: return [3 /*break*/, 8];
|
|
88
|
-
case 6:
|
|
89
|
-
error_1 = _a.sent();
|
|
90
|
-
console.error("Failed to toggle block:", error_1);
|
|
91
|
-
return [3 /*break*/, 8];
|
|
92
|
-
case 7:
|
|
93
|
-
setLoading(false);
|
|
94
|
-
return [7 /*endfinally*/];
|
|
95
|
-
case 8: return [2 /*return*/];
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}); };
|
|
99
|
-
return (_jsx(Dialog, { open: open, onOpenChange: onClose, children: _jsxs(DialogContent, { className: "sm:max-w-md", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "User Profile" }) }), _jsxs("div", { className: "flex flex-col items-center space-y-4 py-4", children: [_jsxs(Avatar, { className: "h-24 w-24", children: [_jsx(AvatarImage, { src: userImage }), _jsx(AvatarFallback, { className: "text-2xl", children: userName.charAt(0).toUpperCase() })] }), _jsxs("div", { className: "text-center", children: [_jsx("h3", { className: "text-lg font-semibold", children: userName }), _jsxs("p", { className: "text-sm text-gray-500", children: ["@", userId] })] }), _jsx(Button, { onClick: handleBlockToggle, disabled: loading, variant: isBlocked ? "outline" : "destructive", className: "w-full", children: loading ? ("Processing...") : isBlocked ? (_jsxs(_Fragment, { children: [_jsx(Shield, { className: "w-4 h-4 mr-2" }), "Unblock User"] })) : (_jsxs(_Fragment, { children: [_jsx(Ban, { className: "w-4 h-4 mr-2" }), "Block User"] })) }), isBlocked && (_jsx("p", { className: "text-xs text-gray-500 text-center", children: "You have blocked this user. They cannot start chats with you." }))] })] }) }));
|
|
100
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"temp-page.d.ts","sourceRoot":"","sources":["../../../src/main/portfolio/temp-page.tsx"],"names":[],"mappings":"AAYA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAmKpC"}
|