@admin-layout/tailwind-design-pro 10.0.9-alpha.25 → 10.0.9-alpha.26

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.
@@ -0,0 +1,107 @@
1
+ import {jsx,jsxs}from'react/jsx-runtime';import React__default,{useState,useEffect}from'react';import {PropertyCardOnMap}from'./PropertyCardOnMap.js';import ReactDOMServer from'react-dom/server';import*as path from'@pubngo-stack/icons/lib/rifi-maps/index.js';import*as airbnbPath from'@pubngo-stack/icons/lib/airbnb/airbnbIcons-maps/index.js';import {AdvancedMarker}from'@vis.gl/react-google-maps';const getSvgMapIcon = (types, propertyTypes) => {
2
+ if (!types || types.length === 0) {
3
+ return 'data:image/svg+xml;charset=UTF-8,';
4
+ }
5
+ const icon = propertyTypes.find(item => item.id === types[0])?.icon || '';
6
+ return types.length > 1 ? `${icon}MultiType` : icon;
7
+ };
8
+ const pricesMarker = (price, isHighlighted) => {
9
+ const backgroundColor = isHighlighted ? 'rgb(0, 0, 0)' : 'rgb(255,255,255)';
10
+ const textColor = isHighlighted ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)';
11
+ const borderRadius = isHighlighted ? '20' : '15';
12
+ const svgString = `<svg width="84" height="55" viewBox="0 0 84 55" fill="none" xmlns="http://www.w3.org/2000/svg">
13
+ <g filter="url(#filter0_dd_7163_1572)">
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M25 1C13.9543 1 5 9.95431 5 21C5 32.0457 13.9543 41 25 41H39.2222L42 46L44.7778 41H59C70.0457 41 79 32.0457 79 21C79 9.95431 70.0457 1 59 1H25Z" fill="${backgroundColor}"/>
15
+ </g>
16
+
17
+
18
+ <text x="42" y="26" font-family="Arial" font-size="14" text-anchor="middle" font-weight="bold" fill="${textColor}">${price || ''}</text>
19
+ <defs>
20
+ <filter id="filter0_dd_7163_1572" x="0" y="0" width="84" height="55" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
21
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
22
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
23
+ <feMorphology radius="${borderRadius}" operator="erode" in="SourceAlpha" result="effect1_dropShadow_7163_1572"/>
24
+ <feOffset dy="2"/>
25
+ <feGaussianBlur stdDeviation="2"/>
26
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/>
27
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7163_1572"/>
28
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
29
+ <feMorphology radius="1" operator="erode" in="SourceAlpha" result="effect2_dropShadow_7163_1572"/>
30
+ <feOffset dy="4"/>
31
+ <feGaussianBlur stdDeviation="3"/>
32
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0"/>
33
+ <feBlend mode="normal" in2="effect1_dropShadow_7163_1572" result="effect2_dropShadow_7163_1572"/>
34
+ <feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_7163_1572" result="shape"/>
35
+ </filter>
36
+ </defs>
37
+ </svg>`;
38
+ return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svgString);
39
+ };
40
+ const svgToMarkerIcon = async (types, isHighlighted, propertyTypes) => {
41
+ const resultantIcon = getSvgMapIcon(types, propertyTypes);
42
+ let iconPath = resultantIcon.toLowerCase().startsWith('airbnb') ? isHighlighted ? airbnbPath[`${resultantIcon}Dark`] : airbnbPath[`${resultantIcon}Light`] : isHighlighted ? path[`${resultantIcon}Dark`] : path[`${resultantIcon}Light`];
43
+ // New logic to handle the case when iconPath is not found
44
+ if (!iconPath) {
45
+ iconPath = isHighlighted ? airbnbPath['AirbnbApartmentDark'] : airbnbPath['AirbnbApartmentLight'];
46
+ }
47
+ if (typeof iconPath !== 'function') return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(iconPath);
48
+ const svg = ReactDOMServer.renderToString(iconPath({
49
+ width: '50px',
50
+ height: '50px'
51
+ }));
52
+ return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
53
+ };
54
+ const getMapMarkerIcons = async (room, showPrices, isHighlighted, propertyTypes) => {
55
+ return showPrices ? pricesMarker(room?.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.totalBeforeDiscount, isHighlighted) : await svgToMarkerIcon(room.types, isHighlighted, propertyTypes);
56
+ };
57
+ const MarkerImage = React__default.memo(({
58
+ src,
59
+ showPrices
60
+ }) => jsx("img", {
61
+ src: src,
62
+ alt: "Property Marker",
63
+ className: showPrices ? 'w-[84px] h-[40px]' : 'w-[90px] h-[60px]'
64
+ }));
65
+ const LazyLoadingGoogleMarker = props => {
66
+ const {
67
+ property,
68
+ isHighlighted,
69
+ showPrices,
70
+ isActiveMarker,
71
+ onInfoBoxClose,
72
+ onMarkerClick,
73
+ propertyTypes
74
+ } = props;
75
+ const [mapIcon, setMapIcon] = useState('');
76
+ useEffect(() => {
77
+ (async () => {
78
+ const icon = await getMapMarkerIcons(property, showPrices, isHighlighted, propertyTypes);
79
+ setMapIcon(icon);
80
+ })();
81
+ }, [isHighlighted, showPrices]);
82
+ if (!property) {
83
+ return;
84
+ }
85
+ return jsx(AdvancedMarker, {
86
+ position: {
87
+ lat: property.address.latitude_around,
88
+ lng: property.address.longitude_around
89
+ },
90
+ title: property.name,
91
+ onClick: onMarkerClick,
92
+ zIndex: isHighlighted ? 999 : 1,
93
+ children: jsxs("div", {
94
+ className: "relative cursor-pointer transform -translate-x-1/2 -translate-y-1/2",
95
+ children: [mapIcon && jsx(MarkerImage, {
96
+ src: mapIcon,
97
+ showPrices: showPrices
98
+ }), isActiveMarker && jsx("div", {
99
+ className: "absolute bottom-0 left-1/2 transform -translate-x-1/2 bg-white p-2.5 rounded-2xl z-[1000] w-[300px] shadow-[0_12px_24px_0_rgba(0,0,0,0.1),_0_2px_8px_0_rgba(0,0,0,0.05)]",
100
+ children: jsx(PropertyCardOnMap, {
101
+ room: property,
102
+ isSaved: false
103
+ })
104
+ })]
105
+ })
106
+ });
107
+ };export{LazyLoadingGoogleMarker};//# sourceMappingURL=LazyLoadingGoogleMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingGoogleMarker.js","sources":["../../../src/components/UI/LazyLoadingGoogleMarker.tsx"],"sourcesContent":[null],"names":["React","_jsx"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import {jsxs,jsx}from'react/jsx-runtime';import {useMemo,useState,useEffect}from'react';import {useTranslation}from'react-i18next';import {Link}from'@remix-run/react';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLayoutSettings}from'@admin-layout/client';const PropertyCardOnMap = ({
2
+ room,
3
+ isSaved,
4
+ sliderOptions = {},
5
+ className = '',
6
+ ...props
7
+ }) => {
8
+ const images = useMemo(() => room?.images?.data.map(({
9
+ url
10
+ }) => ({
11
+ src: url
12
+ })), [room]);
13
+ const {
14
+ t
15
+ } = useTranslation();
16
+ const {
17
+ settings
18
+ } = useLayoutSettings();
19
+ const [star, setStar] = useState(0);
20
+ useEffect(() => {
21
+ let temp = room?.totalReview == 0 ? 0 : room?.totalStar / room?.totalReview;
22
+ setStar(temp);
23
+ }, [room?.totalReview, room?.totalStar]);
24
+ // const { color, grayColor } = useColorTheme();
25
+ return jsxs("div", {
26
+ className: `flex flex-col flex-wrap mt-4 ${className}`,
27
+ children: [jsx("div", {
28
+ className: "w-full",
29
+ children: jsxs(Splide, {
30
+ "aria-label": t('property.property_images'),
31
+ options: {
32
+ type: 'loop',
33
+ drag: 'free',
34
+ height: '230px',
35
+ perPage: 1,
36
+ perMove: 1,
37
+ wheel: true,
38
+ releaseWheel: true,
39
+ pagination: false,
40
+ speed: 500,
41
+ ...sliderOptions
42
+ },
43
+ children: [images && images.length == 0 && jsx(SplideSlide, {
44
+ children: jsx("div", {
45
+ className: "w-full h-full",
46
+ children: jsx("img", {
47
+ src: room.thumbnailUrl,
48
+ className: "w-full h-full object-cover cursor-pointer transition-all duration-500 hover:brightness-50",
49
+ loading: "lazy",
50
+ alt: room.title || 'Property'
51
+ })
52
+ })
53
+ }), images.map((image, i) => {
54
+ return jsx(SplideSlide, {
55
+ children: jsx(Link, {
56
+ to: '/property/' + room.id,
57
+ className: "w-full",
58
+ children: jsx("div", {
59
+ className: "w-full h-full",
60
+ children: jsx("img", {
61
+ src: image.src,
62
+ className: "w-full h-full object-cover cursor-pointer transition-all duration-500 hover:brightness-50",
63
+ loading: "lazy",
64
+ alt: room.title || 'Property'
65
+ })
66
+ })
67
+ })
68
+ }, 'sliderImage1_' + i);
69
+ })]
70
+ })
71
+ }), jsxs("div", {
72
+ className: "w-full flex flex-col mt-2",
73
+ children: [jsx("div", {
74
+ className: "font-semibold text-sm",
75
+ style: {
76
+ color: settings?.primaryColor
77
+ },
78
+ children: room?.title
79
+ }), jsxs("div", {
80
+ className: "flex flex-row justify-between",
81
+ children: [jsxs("div", {
82
+ className: "flex flex-col",
83
+ children: [jsx("div", {
84
+ className: "mt-1 flex text-[9px] font-semibold",
85
+ style: {
86
+ color: settings?.primaryColor
87
+ },
88
+ children: room?.address && room?.address.city && room?.address.city.state ? room?.address.city.name + ', ' + room?.address.city.state.name : ''
89
+ }), jsxs("div", {
90
+ className: "flex items-center",
91
+ children: [jsx(BsStarFill, {
92
+ className: "text-yellow-500 w-3 h-3 mr-1"
93
+ }), jsxs("span", {
94
+ className: "text-[0.832rem] font-bold",
95
+ style: {
96
+ color: settings?.secondaryColor
97
+ },
98
+ children: [room?.reviewsOverview ? room.reviewsOverview.rating : 0, " (", room.reviewsOverview ? room.reviewsOverview.ratingCount : 0, " ", t('property.reviews'), ")"]
99
+ })]
100
+ })]
101
+ }), jsx("div", {
102
+ className: "text-lg font-bold mt-auto mb-[-2px]",
103
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.pricing?.finalPrice?.total
104
+ })]
105
+ })]
106
+ })]
107
+ });
108
+ };export{PropertyCardOnMap};//# sourceMappingURL=PropertyCardOnMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCardOnMap.js","sources":["../../../src/components/UI/PropertyCardOnMap.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"0VAkBa,iBAAiB,GAAG,CAAC;AAO9B,EAAA,IAAA;AACA,EAAA,OAAA;AACA,EAAA,aAAgB,GAAA,EAAA;WAET,GAAI,EAAA;KACF;;QAEL,MAAO,GAAK,OAAE,CAAA,MAAA,IAAA,EAAA,MAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA;IAClB;SAEgD;IAEhD,GAAO,EAAA;AAMa,GAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA;AACA,EAAA,MAAA;AACA,IAAA;AACA,GAAA,GAAA,cAAA,EAAA;AACA,EAAA,MAAA;AACA,IAAA;AACA,GAAA,GAAA,iBAAA,EAAA;AACA,EAAA,MAAA,CAAA,IAAA,EAAA,OAAA,CAAA,GAAA,QAAU,EAAE,CAAK;AACjB,EAAA,SAAA,CAAA,MAAA;AACA,IAAA,IAAA,IAAA,GAAA,IAAA,EAAA,WAAgB,IAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAAA,SAAA,GAAA,IAAA,EAAA,WAAA;;6BAgBT,EAAA,SACF,CAAA,CAAA;AAaT;AAWY,EAAA,OAAAA,IAAA,CAAA,KAAA,EAAA;6CACC;AAaD,IAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA;AAOhC,MAAE,SAAA,EAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,4 @@
1
1
  export * from './CategoriesTypeList';
2
+ export * from './PropertyCardOnMap';
3
+ export * from './LazyLoadingGoogleMarker';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UI/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UI/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- export{CategoriesTypeList}from'./UI/CategoriesTypeList.js';export{MainHeader,defaultRenderLogo,defaultRenderLogoAndTitle}from'./Layout/GlobalHeader/MainHeader.js';export{Logo}from'./Layout/GlobalHeader/Logo.js';export{RightMenu}from'./Layout/GlobalHeader/RightMenu.js';export{ThemeContext,ThemeProvider,useTheme}from'./ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./ThemeProvider/ThemeToggle.js';export{applyTheme,generateColorPalette,hslToHex}from'./ThemeProvider/themeUtils.js';export{themeRegistry}from'./ThemeProvider/themeRegistry.js';//# sourceMappingURL=index.js.map
1
+ export{CategoriesTypeList}from'./UI/CategoriesTypeList.js';export{PropertyCardOnMap}from'./UI/PropertyCardOnMap.js';export{LazyLoadingGoogleMarker}from'./UI/LazyLoadingGoogleMarker.js';export{MainHeader,defaultRenderLogo,defaultRenderLogoAndTitle}from'./Layout/GlobalHeader/MainHeader.js';export{Logo}from'./Layout/GlobalHeader/Logo.js';export{RightMenu}from'./Layout/GlobalHeader/RightMenu.js';export{ThemeContext,ThemeProvider,useTheme}from'./ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./ThemeProvider/ThemeToggle.js';export{applyTheme,generateColorPalette,hslToHex}from'./ThemeProvider/themeUtils.js';export{themeRegistry}from'./ThemeProvider/themeRegistry.js';//# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/tailwind-design-pro",
3
- "version": "10.0.9-alpha.25",
3
+ "version": "10.0.9-alpha.26",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -58,7 +58,7 @@
58
58
  }
59
59
  }
60
60
  },
61
- "gitHead": "a1a2257fd1abb615fa04e46ebb3b266c517c2107",
61
+ "gitHead": "e7dc256d48c03cb457c180d0313038e135134fd9",
62
62
  "typescript": {
63
63
  "definition": "lib/index.d.ts"
64
64
  }