nestiq-component-library 1.0.9 → 1.0.12

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,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
2
+ <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
2
+ <path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-geo-alt" viewBox="0 0 16 16">
2
+ <path d="M12.166 8.94c-.524 1.062-1.234 2.12-1.96 3.07A32 32 0 0 1 8 14.58a32 32 0 0 1-2.206-2.57c-.726-.95-1.436-2.008-1.96-3.07C3.304 7.867 3 6.862 3 6a5 5 0 0 1 10 0c0 .862-.305 1.867-.834 2.94M8 16s6-5.686 6-10A6 6 0 0 0 2 6c0 4.314 6 10 6 10"/>
3
+ <path d="M8 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4m0 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6"/>
4
+ </svg>
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import "./PropertyDetailsHeader.css";
3
+ interface PopupProps {
4
+ property: {
5
+ city: string;
6
+ price: string;
7
+ };
8
+ }
9
+ export default function PropertyDetailsHeader(props: PopupProps): React.JSX.Element;
10
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { default as Button } from "./components/Button/Button";
2
2
  export { default as Popup } from "./components/Popup/Popup";
3
3
  export { default as ImageListPopup } from "./components/ImageListPopup/ImageListPopup";
4
+ export { default as PropertyDetailsHeader } from "./components/PropertyDetailsHeader/PropertyDetailsHeader";
package/dist/index.es.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import React, { useState } from 'react';
2
- import closeIcon from 'src/assets/images/icon_close 2.png';
3
2
  import 'bootstrap/dist/css/bootstrap.min.css';
4
3
 
5
4
  var Button = function (_a) {
@@ -7,6 +6,8 @@ var Button = function (_a) {
7
6
  return React.createElement("button", null, label);
8
7
  };
9
8
 
9
+ var closeIcon = "icon_close_2.png";
10
+
10
11
  function styleInject(css, ref) {
11
12
  if ( ref === void 0 ) ref = {};
12
13
  var insertAt = ref.insertAt;
@@ -34,8 +35,8 @@ function styleInject(css, ref) {
34
35
  }
35
36
  }
36
37
 
37
- var css_248z$1 = ".popup-overlay {\r\n position: fixed; /* Fixed position to cover the whole screen */\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */\r\n display: flex; /* Flexbox to center the popup */\r\n justify-content: center; /* Center horizontally */\r\n align-items: center; /* Center vertically */\r\n z-index: 10000; /* Ensure it's above other content */\r\n}\r\n\r\n.popUpHeader {\r\n height: 48px;\r\n font-size: 32px;\r\n font-weight: 600;\r\n color: #1b1b1b;\r\n}\r\n\r\n.closeIcon {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n}\r\n";
38
- styleInject(css_248z$1);
38
+ var css_248z$2 = ".popup-overlay {\r\n position: fixed; /* Fixed position to cover the whole screen */\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */\r\n display: flex; /* Flexbox to center the popup */\r\n justify-content: center; /* Center horizontally */\r\n align-items: center; /* Center vertically */\r\n z-index: 10000; /* Ensure it's above other content */\r\n}\r\n\r\n.popUpHeader {\r\n height: 48px;\r\n font-size: 32px;\r\n font-weight: 600;\r\n color: #1b1b1b;\r\n}\r\n\r\n.closeIcon {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n}\r\n";
39
+ styleInject(css_248z$2);
39
40
 
40
41
  var Popup = function (_a) {
41
42
  var onCloseClick = _a.onCloseClick, children = _a.children;
@@ -46,8 +47,12 @@ var Popup = function (_a) {
46
47
  children)));
47
48
  };
48
49
 
49
- var css_248z = ".popup-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10000;\r\n}\r\n\r\n.popup-container {\r\n background-color: #fff;\r\n border-radius: 8px;\r\n max-width: 90%;\r\n max-height: 90%;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.popup-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 1rem;\r\n border-bottom: 1px solid #ddd;\r\n}\r\n\r\n.popup-body {\r\n flex: 1;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 1rem;\r\n}\r\n\r\n.popup-body img {\r\n max-width: 100%;\r\n max-height: 100%;\r\n}\r\n\r\n.popup-footer {\r\n padding: 1rem;\r\n text-align: center;\r\n border-top: 1px solid #ddd;\r\n}\r\n";
50
- styleInject(css_248z);
50
+ var css_248z$1 = ".popup-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.7);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10000;\r\n}\r\n\r\n.popup-container {\r\n background-color: transparent;\r\n border-radius: 8px;\r\n max-width: 90%;\r\n max-height: 90%;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.popup-header {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n padding: 1rem;\r\n position: absolute;\r\n top: 0;\r\n}\r\n\r\n.popup-title {\r\n color: white;\r\n font-size: 24px;\r\n font-weight: bold;\r\n}\r\n\r\n.btn-close {\r\n position: absolute;\r\n right: 1rem;\r\n top: 1rem;\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 24px;\r\n cursor: pointer;\r\n}\r\n\r\n.popup-body {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 1rem;\r\n position: relative;\r\n flex: 1;\r\n}\r\n\r\n.main-image {\r\n max-width: 100%;\r\n max-height: 80vh;\r\n border-radius: 8px;\r\n}\r\n\r\n.btn-prev,\r\n.btn-next {\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 48px;\r\n cursor: pointer;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n}\r\n\r\n.btn-prev {\r\n left: 10px;\r\n}\r\n\r\n.btn-next {\r\n right: 10px;\r\n}\r\n\r\n.popup-thumbnails {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 1rem;\r\n}\r\n\r\n.thumbnail {\r\n width: 60px;\r\n height: 60px;\r\n object-fit: cover;\r\n border-radius: 8px;\r\n cursor: pointer;\r\n opacity: 0.6;\r\n}\r\n\r\n.thumbnail.active {\r\n border: 2px solid white;\r\n opacity: 1;\r\n}\r\n";
51
+ styleInject(css_248z$1);
52
+
53
+ var blcIconArrowRight = "blackarrow-Right.svg";
54
+
55
+ var blcIconArrowLeft = "blckarrow-Left.svg";
51
56
 
52
57
  var ImageListPopup = function (_a) {
53
58
  var images = _a.images, onClose = _a.onClose;
@@ -60,17 +65,45 @@ var ImageListPopup = function (_a) {
60
65
  return prevIndex < images.length - 1 ? prevIndex + 1 : prevIndex;
61
66
  });
62
67
  };
68
+ var handleThumbnailClick = function (index) {
69
+ setCurrentIndex(index);
70
+ };
63
71
  return (React.createElement("div", { className: "popup-overlay" },
64
72
  React.createElement("div", { className: "popup-container" },
65
73
  React.createElement("div", { className: "popup-header" },
66
- React.createElement("span", null, images[currentIndex].title),
74
+ React.createElement("span", { className: "popup-title" }, images[currentIndex].title),
67
75
  React.createElement("button", { className: "btn-close", onClick: onClose })),
68
76
  React.createElement("div", { className: "popup-body" },
69
- React.createElement("img", { src: images[currentIndex].src, alt: images[currentIndex].title, className: "img-fluid" })),
70
- React.createElement("div", { className: "popup-footer" }, images.length > 1 && (React.createElement(React.Fragment, null,
71
- React.createElement("button", { className: "btn btn-secondary me-2", onClick: handlePrevious }, "Previous"),
72
- React.createElement("button", { className: "btn btn-secondary", onClick: handleNext }, "Next")))))));
77
+ React.createElement("div", { className: "rounded-circle border btn-prev", role: "button", onClick: handlePrevious },
78
+ React.createElement("img", { src: blcIconArrowLeft, className: "blackArrow", alt: "Left Arrow" })),
79
+ React.createElement("img", { src: images[currentIndex].src, alt: images[currentIndex].title, className: "main-image" }),
80
+ React.createElement("div", { className: "rounded-circle border btn-next", role: "button", onClick: handleNext },
81
+ React.createElement("img", { src: blcIconArrowRight, className: "blackArrow", alt: "Right Arrow" }))),
82
+ React.createElement("div", { className: "popup-thumbnails" }, images.map(function (image, index) { return (React.createElement("img", { key: index, src: image.src, alt: image.title, className: "thumbnail ".concat(index === currentIndex ? "active" : ""), onClick: function () { return handleThumbnailClick(index); } })); })))));
73
83
  };
74
84
 
75
- export { Button, ImageListPopup, Popup };
85
+ var ShareIcon = "icon_share_1.svg";
86
+
87
+ var locationIcon = "locationIconBlack.svg";
88
+
89
+ var css_248z = ".compact {\r\n height: 194px;\r\n border-radius: 32px;\r\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\r\n background-color: #f2f2f2;\r\n}\r\n\r\n.header_Text {\r\n margin-top: 140px;\r\n font-size: 32px;\r\n line-height: normal;\r\n color: #1b1b1b;\r\n}\r\n\r\n.vector svg {\r\n width: 16px;\r\n height: 21.5px;\r\n flex-grow: 0;\r\n margin: 4.2px 10px 4.2px 0;\r\n fill: #344041;\r\n cursor: pointer;\r\n}\r\n\r\n.propText {\r\n height: 30px;\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: #344041;\r\n}\r\n\r\n.v_share {\r\n cursor: pointer;\r\n}\r\n\r\n.fetch_section {\r\n margin-top: 90px;\r\n height: 60px;\r\n}\r\n@media (min-width: 800px) {\r\n .Pheader {\r\n max-width: 1750px;\r\n margin: 0 auto;\r\n \r\n }\r\n}\r\n";
90
+ styleInject(css_248z);
91
+
92
+ function PropertyDetailsHeader(props) {
93
+ var _a = useState(false), showPopUp = _a[0], setShowPopUp = _a[1];
94
+ var handlePopUp = function () {
95
+ setShowPopUp(!showPopUp);
96
+ };
97
+ return (React.createElement("div", { className: "Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 " },
98
+ React.createElement("div", { className: "header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 " },
99
+ React.createElement("strong", null, "Einziehen ohne einen Pinselstrich - Kernsaniertes Einfamilienhaus in top Lage")),
100
+ React.createElement("div", { className: "header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4" },
101
+ React.createElement("img", { src: locationIcon, alt: "Location Icon", className: "vector me-2" }),
102
+ React.createElement("div", { className: "propText text-truncate col-lg-6 col-md-6 d-flex align-items-center" }, props.property.city)),
103
+ React.createElement("div", { className: "d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4" },
104
+ React.createElement("img", { src: ShareIcon, alt: "Location Icon", className: "v_share me-3", onClick: handlePopUp })),
105
+ React.createElement("div", { className: "fetch_section d-flex align-items-center flex-row col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0" })));
106
+ }
107
+
108
+ export { Button, ImageListPopup, Popup, PropertyDetailsHeader };
76
109
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es.js","sources":["../src/assets/images/icon_close_2.png","../node_modules/style-inject/dist/style-inject.es.js","../src/assets/images/blackarrow-Right.svg","../src/assets/Images/blckarrow-Left.svg","../src/assets/images/icon_share_1.svg","../src/assets/images/locationIconBlack.svg"],"sourcesContent":["export default \"icon_close_2.png\"","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export default \"blackarrow-Right.svg\"","export default \"blckarrow-Left.svg\"","export default \"icon_share_1.svg\"","export default \"locationIconBlack.svg\""],"names":[],"mappings":";;;;;;;;AAAA,gBAAe;;ACAf,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;;;;;ACzBA,wBAAe;;ACAf,uBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAf,gBAAe;;ACAf,mBAAe;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var closeIcon = require('src/assets/images/icon_close 2.png');
5
4
  require('bootstrap/dist/css/bootstrap.min.css');
6
5
 
7
6
  var Button = function (_a) {
@@ -9,6 +8,8 @@ var Button = function (_a) {
9
8
  return React.createElement("button", null, label);
10
9
  };
11
10
 
11
+ var closeIcon = "icon_close_2.png";
12
+
12
13
  function styleInject(css, ref) {
13
14
  if ( ref === void 0 ) ref = {};
14
15
  var insertAt = ref.insertAt;
@@ -36,8 +37,8 @@ function styleInject(css, ref) {
36
37
  }
37
38
  }
38
39
 
39
- var css_248z$1 = ".popup-overlay {\r\n position: fixed; /* Fixed position to cover the whole screen */\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */\r\n display: flex; /* Flexbox to center the popup */\r\n justify-content: center; /* Center horizontally */\r\n align-items: center; /* Center vertically */\r\n z-index: 10000; /* Ensure it's above other content */\r\n}\r\n\r\n.popUpHeader {\r\n height: 48px;\r\n font-size: 32px;\r\n font-weight: 600;\r\n color: #1b1b1b;\r\n}\r\n\r\n.closeIcon {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n}\r\n";
40
- styleInject(css_248z$1);
40
+ var css_248z$2 = ".popup-overlay {\r\n position: fixed; /* Fixed position to cover the whole screen */\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */\r\n display: flex; /* Flexbox to center the popup */\r\n justify-content: center; /* Center horizontally */\r\n align-items: center; /* Center vertically */\r\n z-index: 10000; /* Ensure it's above other content */\r\n}\r\n\r\n.popUpHeader {\r\n height: 48px;\r\n font-size: 32px;\r\n font-weight: 600;\r\n color: #1b1b1b;\r\n}\r\n\r\n.closeIcon {\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n}\r\n";
41
+ styleInject(css_248z$2);
41
42
 
42
43
  var Popup = function (_a) {
43
44
  var onCloseClick = _a.onCloseClick, children = _a.children;
@@ -48,8 +49,12 @@ var Popup = function (_a) {
48
49
  children)));
49
50
  };
50
51
 
51
- var css_248z = ".popup-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10000;\r\n}\r\n\r\n.popup-container {\r\n background-color: #fff;\r\n border-radius: 8px;\r\n max-width: 90%;\r\n max-height: 90%;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.popup-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 1rem;\r\n border-bottom: 1px solid #ddd;\r\n}\r\n\r\n.popup-body {\r\n flex: 1;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 1rem;\r\n}\r\n\r\n.popup-body img {\r\n max-width: 100%;\r\n max-height: 100%;\r\n}\r\n\r\n.popup-footer {\r\n padding: 1rem;\r\n text-align: center;\r\n border-top: 1px solid #ddd;\r\n}\r\n";
52
- styleInject(css_248z);
52
+ var css_248z$1 = ".popup-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.7);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 10000;\r\n}\r\n\r\n.popup-container {\r\n background-color: transparent;\r\n border-radius: 8px;\r\n max-width: 90%;\r\n max-height: 90%;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n position: relative;\r\n}\r\n\r\n.popup-header {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n padding: 1rem;\r\n position: absolute;\r\n top: 0;\r\n}\r\n\r\n.popup-title {\r\n color: white;\r\n font-size: 24px;\r\n font-weight: bold;\r\n}\r\n\r\n.btn-close {\r\n position: absolute;\r\n right: 1rem;\r\n top: 1rem;\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 24px;\r\n cursor: pointer;\r\n}\r\n\r\n.popup-body {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 1rem;\r\n position: relative;\r\n flex: 1;\r\n}\r\n\r\n.main-image {\r\n max-width: 100%;\r\n max-height: 80vh;\r\n border-radius: 8px;\r\n}\r\n\r\n.btn-prev,\r\n.btn-next {\r\n background: none;\r\n border: none;\r\n color: white;\r\n font-size: 48px;\r\n cursor: pointer;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n}\r\n\r\n.btn-prev {\r\n left: 10px;\r\n}\r\n\r\n.btn-next {\r\n right: 10px;\r\n}\r\n\r\n.popup-thumbnails {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 10px;\r\n padding: 1rem;\r\n}\r\n\r\n.thumbnail {\r\n width: 60px;\r\n height: 60px;\r\n object-fit: cover;\r\n border-radius: 8px;\r\n cursor: pointer;\r\n opacity: 0.6;\r\n}\r\n\r\n.thumbnail.active {\r\n border: 2px solid white;\r\n opacity: 1;\r\n}\r\n";
53
+ styleInject(css_248z$1);
54
+
55
+ var blcIconArrowRight = "blackarrow-Right.svg";
56
+
57
+ var blcIconArrowLeft = "blckarrow-Left.svg";
53
58
 
54
59
  var ImageListPopup = function (_a) {
55
60
  var images = _a.images, onClose = _a.onClose;
@@ -62,19 +67,48 @@ var ImageListPopup = function (_a) {
62
67
  return prevIndex < images.length - 1 ? prevIndex + 1 : prevIndex;
63
68
  });
64
69
  };
70
+ var handleThumbnailClick = function (index) {
71
+ setCurrentIndex(index);
72
+ };
65
73
  return (React.createElement("div", { className: "popup-overlay" },
66
74
  React.createElement("div", { className: "popup-container" },
67
75
  React.createElement("div", { className: "popup-header" },
68
- React.createElement("span", null, images[currentIndex].title),
76
+ React.createElement("span", { className: "popup-title" }, images[currentIndex].title),
69
77
  React.createElement("button", { className: "btn-close", onClick: onClose })),
70
78
  React.createElement("div", { className: "popup-body" },
71
- React.createElement("img", { src: images[currentIndex].src, alt: images[currentIndex].title, className: "img-fluid" })),
72
- React.createElement("div", { className: "popup-footer" }, images.length > 1 && (React.createElement(React.Fragment, null,
73
- React.createElement("button", { className: "btn btn-secondary me-2", onClick: handlePrevious }, "Previous"),
74
- React.createElement("button", { className: "btn btn-secondary", onClick: handleNext }, "Next")))))));
79
+ React.createElement("div", { className: "rounded-circle border btn-prev", role: "button", onClick: handlePrevious },
80
+ React.createElement("img", { src: blcIconArrowLeft, className: "blackArrow", alt: "Left Arrow" })),
81
+ React.createElement("img", { src: images[currentIndex].src, alt: images[currentIndex].title, className: "main-image" }),
82
+ React.createElement("div", { className: "rounded-circle border btn-next", role: "button", onClick: handleNext },
83
+ React.createElement("img", { src: blcIconArrowRight, className: "blackArrow", alt: "Right Arrow" }))),
84
+ React.createElement("div", { className: "popup-thumbnails" }, images.map(function (image, index) { return (React.createElement("img", { key: index, src: image.src, alt: image.title, className: "thumbnail ".concat(index === currentIndex ? "active" : ""), onClick: function () { return handleThumbnailClick(index); } })); })))));
75
85
  };
76
86
 
87
+ var ShareIcon = "icon_share_1.svg";
88
+
89
+ var locationIcon = "locationIconBlack.svg";
90
+
91
+ var css_248z = ".compact {\r\n height: 194px;\r\n border-radius: 32px;\r\n box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);\r\n background-color: #f2f2f2;\r\n}\r\n\r\n.header_Text {\r\n margin-top: 140px;\r\n font-size: 32px;\r\n line-height: normal;\r\n color: #1b1b1b;\r\n}\r\n\r\n.vector svg {\r\n width: 16px;\r\n height: 21.5px;\r\n flex-grow: 0;\r\n margin: 4.2px 10px 4.2px 0;\r\n fill: #344041;\r\n cursor: pointer;\r\n}\r\n\r\n.propText {\r\n height: 30px;\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: #344041;\r\n}\r\n\r\n.v_share {\r\n cursor: pointer;\r\n}\r\n\r\n.fetch_section {\r\n margin-top: 90px;\r\n height: 60px;\r\n}\r\n@media (min-width: 800px) {\r\n .Pheader {\r\n max-width: 1750px;\r\n margin: 0 auto;\r\n \r\n }\r\n}\r\n";
92
+ styleInject(css_248z);
93
+
94
+ function PropertyDetailsHeader(props) {
95
+ var _a = React.useState(false), showPopUp = _a[0], setShowPopUp = _a[1];
96
+ var handlePopUp = function () {
97
+ setShowPopUp(!showPopUp);
98
+ };
99
+ return (React.createElement("div", { className: "Pheader compact d-flex col-12 col-lg-12 position-relative mt-5 " },
100
+ React.createElement("div", { className: "header_Text d-flex col-lg-7 col-md-9 mt-4 ms-4 " },
101
+ React.createElement("strong", null, "Einziehen ohne einen Pinselstrich - Kernsaniertes Einfamilienhaus in top Lage")),
102
+ React.createElement("div", { className: "header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4" },
103
+ React.createElement("img", { src: locationIcon, alt: "Location Icon", className: "vector me-2" }),
104
+ React.createElement("div", { className: "propText text-truncate col-lg-6 col-md-6 d-flex align-items-center" }, props.property.city)),
105
+ React.createElement("div", { className: "d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4" },
106
+ React.createElement("img", { src: ShareIcon, alt: "Location Icon", className: "v_share me-3", onClick: handlePopUp })),
107
+ React.createElement("div", { className: "fetch_section d-flex align-items-center flex-row col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0" })));
108
+ }
109
+
77
110
  exports.Button = Button;
78
111
  exports.ImageListPopup = ImageListPopup;
79
112
  exports.Popup = Popup;
113
+ exports.PropertyDetailsHeader = PropertyDetailsHeader;
80
114
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../src/assets/images/icon_close_2.png","../node_modules/style-inject/dist/style-inject.es.js","../src/assets/images/blackarrow-Right.svg","../src/assets/Images/blckarrow-Left.svg","../src/assets/images/icon_share_1.svg","../src/assets/images/locationIconBlack.svg"],"sourcesContent":["export default \"icon_close_2.png\"","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export default \"blackarrow-Right.svg\"","export default \"blckarrow-Left.svg\"","export default \"icon_share_1.svg\"","export default \"locationIconBlack.svg\""],"names":[],"mappings":";;;;;;;;;;AAAA,gBAAe;;ACAf,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;;;;;;;;;;;;;;ACzBA,wBAAe;;ACAf,uBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAf,gBAAe;;ACAf,mBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestiq-component-library",
3
- "version": "1.0.9",
3
+ "version": "1.0.12",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "dist/index.js",
@@ -24,6 +24,7 @@
24
24
  "@types/react": "^18.3.3",
25
25
  "@types/react-dom": "^18.3.0",
26
26
  "rollup": "^4.18.0",
27
+ "rollup-plugin-copy": "^3.5.0",
27
28
  "rollup-plugin-postcss": "^4.0.2",
28
29
  "rollup-plugin-typescript2": "^0.36.0",
29
30
  "typescript": "^5.4.5"
package/rollup.config.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import typescript from "rollup-plugin-typescript2";
2
2
  import url from "@rollup/plugin-url";
3
3
  import postcss from "rollup-plugin-postcss";
4
+ import copy from 'rollup-plugin-copy';
4
5
  import pkg from "./package.json" assert { type: "json" };
5
6
 
6
7
  export default {
@@ -24,8 +25,16 @@ export default {
24
25
  extensions: [".css"],
25
26
  }),
26
27
  url({
27
- include: ["**/*.svg", "**/*.png", "**/*.jpg", "**/*.jpeg", "**/*.gif"],
28
+ include: ['**/*.svg', '**/*.png', '**/*.jpg', '**/*.jpeg', '**/*.gif'],
28
29
  limit: 0,
30
+ emitFiles: true,
31
+ fileName: '[name][extname]',
32
+ destDir: 'dist/assets/images',
29
33
  }),
34
+ copy({
35
+ targets: [
36
+ { src: 'src/assets/images/*', dest: 'dist/assets/images' }
37
+ ]
38
+ })
30
39
  ],
31
40
  };
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
2
+ <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
2
+ <path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M22.046 9.9h-2.56a.937.937 0 1 0 0 1.875h2.56c.517 0 .938.42.938.937v12.26c0 .517-.42.938-.938.938H7.953a.939.939 0 0 1-.937-.938v-12.26c0-.517.42-.937.937-.937h2.56a.937.937 0 1 0 0-1.875h-2.56a2.816 2.816 0 0 0-2.812 2.812v12.26a2.816 2.816 0 0 0 2.812 2.813h14.093a2.816 2.816 0 0 0 2.813-2.813v-12.26A2.816 2.816 0 0 0 22.046 9.9zM11.504 8.007l2.59-2.59V17.76a.937.937 0 1 0 1.874 0V5.418l2.59 2.59a.934.934 0 0 0 1.326 0 .937.937 0 0 0 0-1.327l-4.19-4.19a.938.938 0 0 0-1.326 0l-4.19 4.19a.937.937 0 1 0 1.326 1.326z" fill="#000"/>
3
+ </svg>
@@ -1,49 +1,107 @@
1
1
  .popup-overlay {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- right: 0;
6
- bottom: 0;
7
- background-color: rgba(0, 0, 0, 0.5);
8
- display: flex;
9
- justify-content: center;
10
- align-items: center;
11
- z-index: 10000;
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ bottom: 0;
7
+ background-color: rgba(0, 0, 0, 0.7);
8
+ display: flex;
9
+ justify-content: center;
10
+ align-items: center;
11
+ z-index: 10000;
12
12
  }
13
13
 
14
14
  .popup-container {
15
- background-color: #fff;
16
- border-radius: 8px;
17
- max-width: 90%;
18
- max-height: 90%;
19
- overflow: hidden;
20
- display: flex;
21
- flex-direction: column;
15
+ background-color: transparent;
16
+ border-radius: 8px;
17
+ max-width: 90%;
18
+ max-height: 90%;
19
+ display: flex;
20
+ flex-direction: column;
21
+ align-items: center;
22
+ position: relative;
22
23
  }
23
24
 
24
25
  .popup-header {
25
- display: flex;
26
- justify-content: space-between;
27
- align-items: center;
28
- padding: 1rem;
29
- border-bottom: 1px solid #ddd;
26
+ display: flex;
27
+ justify-content: center;
28
+ align-items: center;
29
+ width: 100%;
30
+ padding: 1rem;
31
+ position: absolute;
32
+ top: 0;
33
+ }
34
+
35
+ .popup-title {
36
+ color: white;
37
+ font-size: 24px;
38
+ font-weight: bold;
39
+ }
40
+
41
+ .btn-close {
42
+ position: absolute;
43
+ right: 1rem;
44
+ top: 1rem;
45
+ background: none;
46
+ border: none;
47
+ color: white;
48
+ font-size: 24px;
49
+ cursor: pointer;
30
50
  }
31
51
 
32
52
  .popup-body {
33
- flex: 1;
34
- display: flex;
35
- justify-content: center;
36
- align-items: center;
37
- padding: 1rem;
53
+ display: flex;
54
+ justify-content: center;
55
+ align-items: center;
56
+ padding: 1rem;
57
+ position: relative;
58
+ flex: 1;
59
+ }
60
+
61
+ .main-image {
62
+ max-width: 100%;
63
+ max-height: 80vh;
64
+ border-radius: 8px;
65
+ }
66
+
67
+ .btn-prev,
68
+ .btn-next {
69
+ background: none;
70
+ border: none;
71
+ color: white;
72
+ font-size: 48px;
73
+ cursor: pointer;
74
+ position: absolute;
75
+ top: 50%;
76
+ transform: translateY(-50%);
77
+ }
78
+
79
+ .btn-prev {
80
+ left: 10px;
81
+ }
82
+
83
+ .btn-next {
84
+ right: 10px;
85
+ }
86
+
87
+ .popup-thumbnails {
88
+ display: flex;
89
+ justify-content: center;
90
+ align-items: center;
91
+ gap: 10px;
92
+ padding: 1rem;
38
93
  }
39
94
 
40
- .popup-body img {
41
- max-width: 100%;
42
- max-height: 100%;
95
+ .thumbnail {
96
+ width: 60px;
97
+ height: 60px;
98
+ object-fit: cover;
99
+ border-radius: 8px;
100
+ cursor: pointer;
101
+ opacity: 0.6;
43
102
  }
44
103
 
45
- .popup-footer {
46
- padding: 1rem;
47
- text-align: center;
48
- border-top: 1px solid #ddd;
104
+ .thumbnail.active {
105
+ border: 2px solid white;
106
+ opacity: 1;
49
107
  }
@@ -1,6 +1,8 @@
1
1
  import React, { useState } from "react";
2
2
  import "bootstrap/dist/css/bootstrap.min.css";
3
3
  import "./ImageListPopup.css";
4
+ import blcIconArrowRight from "../../assets/images/blackarrow-Right.svg";
5
+ import blcIconArrowLeft from "../../assets/Images/blckarrow-Left.svg";
4
6
 
5
7
  interface Image {
6
8
  src: string;
@@ -25,34 +27,70 @@ const ImageListPopup: React.FC<ImageListPopupProps> = ({ images, onClose }) => {
25
27
  );
26
28
  };
27
29
 
30
+ const handleThumbnailClick = (index: number) => {
31
+ setCurrentIndex(index);
32
+ };
33
+
28
34
  return (
29
35
  <div className="popup-overlay">
30
36
  <div className="popup-container">
31
37
  <div className="popup-header">
32
- <span>{images[currentIndex].title}</span>
38
+ <span className="popup-title">{images[currentIndex].title}</span>
33
39
  <button className="btn-close" onClick={onClose}></button>
34
40
  </div>
35
41
  <div className="popup-body">
42
+ <div
43
+ className="rounded-circle border btn-prev"
44
+ role="button"
45
+ onClick={handlePrevious}
46
+ >
47
+ <img
48
+ src={blcIconArrowLeft}
49
+ className="blackArrow"
50
+ alt="Left Arrow"
51
+ ></img>
52
+ </div>
53
+ {/*<button*/}
54
+ {/* className="btn-prev"*/}
55
+ {/* onClick={handlePrevious}*/}
56
+ {/* disabled={currentIndex === 0}*/}
57
+ {/*>*/}
58
+ {/* &lt;*/}
59
+ {/*</button>*/}
36
60
  <img
37
61
  src={images[currentIndex].src}
38
62
  alt={images[currentIndex].title}
39
- className="img-fluid"
63
+ className="main-image"
40
64
  />
65
+ <div
66
+ className="rounded-circle border btn-next"
67
+ role="button"
68
+ onClick={handleNext}
69
+ >
70
+ <img
71
+ src={blcIconArrowRight}
72
+ className="blackArrow"
73
+ alt="Right Arrow"
74
+ ></img>
75
+ </div>
76
+ {/*<button*/}
77
+ {/* className="btn-next"*/}
78
+ {/* onClick={handleNext}*/}
79
+ {/* disabled={currentIndex === images.length - 1}*/}
80
+ {/*>*/}
81
+ {/* &gt;*/}
82
+ {/*</button>*/}
41
83
  </div>
42
- <div className="popup-footer">
43
- {images.length > 1 && (
44
- <>
45
- <button
46
- className="btn btn-secondary me-2"
47
- onClick={handlePrevious}
48
- >
49
- Previous
50
- </button>
51
- <button className="btn btn-secondary" onClick={handleNext}>
52
- Next
53
- </button>
54
- </>
55
- )}
84
+ <div className="popup-thumbnails">
85
+ {images.map((image, index) => (
86
+ <img
87
+ key={index}
88
+ src={image.src}
89
+ alt={image.title}
90
+ className={`thumbnail ${index === currentIndex ? "active" : ""}`}
91
+ onClick={() => handleThumbnailClick(index)}
92
+ />
93
+ ))}
56
94
  </div>
57
95
  </div>
58
96
  </div>
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import closeIcon from "src/assets/images/icon_close 2.png";
2
+ import closeIcon from "../../assets/images/icon_close_2.png";
3
3
  import "./Popup.css";
4
4
 
5
5
  interface PopupProps {
@@ -1,12 +1,18 @@
1
1
  import React, { useState } from "react";
2
2
  // import { FormattedMessage } from "react-intl";
3
- import ShareIcon from "../../../../../assets/Images/icon_share 1.svg";
4
- import locationIcon from "../../../../../assets/Images/locationIconBlack.svg";
5
- import PopUp from "../SharePopup/PopUp";
3
+ import ShareIcon from "../../assets/images/icon_share_1.svg";
4
+ import locationIcon from "../../assets/images/locationIconBlack.svg";
5
+ // import PopUp from "../SharePopup/PopUp";
6
6
  import "./PropertyDetailsHeader.css";
7
7
 
8
- export default function PropertyDetailsHeader() {
8
+ interface PopupProps {
9
+ property: {
10
+ city: string;
11
+ price: string;
12
+ };
13
+ }
9
14
 
15
+ export default function PropertyDetailsHeader(props: PopupProps) {
10
16
  const [showPopUp, setShowPopUp] = useState(false);
11
17
 
12
18
  const handlePopUp = () => {
@@ -23,11 +29,10 @@ export default function PropertyDetailsHeader() {
23
29
  </div>
24
30
  <div className="header_Text text-truncate col-lg-6 col-md-7 d-flex flex-row position-absolute ms-4">
25
31
  <img src={locationIcon} alt="Location Icon" className="vector me-2" />
26
- {/* {property && (
27
- <div className="propText text-truncate col-lg-6 col-md-6 d-flex align-items-center">
28
- {property.city}
29
- </div>
30
- )} */}
32
+
33
+ <div className="propText text-truncate col-lg-6 col-md-6 d-flex align-items-center">
34
+ {props.property.city}
35
+ </div>
31
36
  </div>
32
37
  <div className="d-flex col-lg-5 col-md-6 col-sm-5 justify-content-end position-absolute end-0 mt-4">
33
38
  {/* <img src={Hearticon} alt="Location Icon" className="v_share me-3" /> */}
@@ -42,10 +47,11 @@ export default function PropertyDetailsHeader() {
42
47
  {/* {property && (
43
48
  <div className=" propText col-lg-3 col-md-3 h-100 d-flex align-items-center justify-content-center ">
44
49
  {property?.evaluation?.askingPrice} € <br />
50
+ {property.city}
45
51
  Kaufpreis
46
52
  </div>
47
53
  )}
48
- {property && (
54
+ {PopupProps && (
49
55
  <div className="propText col-lg-3 col-md-3 d-flex h-100 align-items-center justify-content-center">
50
56
  {property.constructedArea} m² <br />
51
57
  <FormattedMessage id="LIVING_SPACE" />
@@ -65,7 +71,7 @@ export default function PropertyDetailsHeader() {
65
71
  </div>
66
72
  )} */}
67
73
  </div>
68
- {showPopUp && <PopUp onClick={handlePopUp} />}
74
+ {/*{showPopUp && <PopUp onClick={handlePopUp} />}*/}
69
75
  </div>
70
76
  );
71
77
  }
@@ -1,359 +0,0 @@
1
- .popup-overlay {
2
- position: fixed; /* Fixed position to cover the whole screen */
3
- top: 0;
4
- left: 0;
5
- right: 0;
6
- bottom: 0;
7
- background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
8
- display: flex; /* Flexbox to center the popup */
9
- justify-content: center; /* Center horizontally */
10
- align-items: center; /* Center vertically */
11
- z-index: 2000; /* Ensure it's above other content */
12
-
13
- }
14
-
15
- .shareSection {
16
- height: 340px;
17
- padding: 40px;
18
- border-radius: 16px;
19
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
20
- border: solid 1px #d7d9e3;
21
- background-color: #fff;
22
-
23
- }
24
- .popUpHeader {
25
- height: 48px;
26
- font-size: 32px;
27
- font-weight: 600;
28
- color: #1b1b1b;
29
- }
30
-
31
- .closeIcon {
32
- width: 16px;
33
- height: 16px;
34
- cursor: pointer;
35
- }
36
-
37
- .socialMediaIconsSection {
38
- gap: 60px !important;
39
- }
40
-
41
- .socialMediaIcons {
42
- width: 28px !important;
43
- height: 28px !important;
44
- cursor: pointer;
45
- }
46
-
47
- .socialMediaIconText {
48
- height: 36px;
49
- font-size: 13px;
50
- font-weight: 500;
51
- line-height: 3;
52
- color: #344041;
53
- cursor: pointer;
54
- }
55
-
56
- .popup_search-input {
57
- height: 60px;
58
- padding-inline-end: 190px;
59
- font-size: 20px;
60
- box-shadow: inset 0 4px 4px 0 rgba(0, 0, 0, 0.25);
61
- background-color: rgba(0, 0, 0, 0.05);
62
- }
63
-
64
- .popup_search-input::placeholder {
65
- font-size: 20px;
66
- color: rgba(140, 140, 140, 0.5);
67
- }
68
-
69
- .popup_search-input:focus {
70
- outline: none;
71
- }
72
-
73
- .popupcustom-button {
74
- height: 35px;
75
- color: #000;
76
- cursor: pointer;
77
- border-color: #ffb525;
78
- right: 0;
79
- z-index: 1;
80
- background-color: #ffb525;
81
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
82
- }
83
- .button-text {
84
- width: 115px;
85
- height: 19px;
86
- flex-grow: 0;
87
- font-family: Inter;
88
- font-size: 16px;
89
- font-weight: 500;
90
- font-stretch: normal;
91
- font-style: normal;
92
- line-height: normal;
93
- letter-spacing: normal;
94
- text-align: center;
95
- }
96
- .button_success-right {
97
- width: 184px;
98
- height: 43px;
99
- flex-grow: 0;
100
- display: flex;
101
- flex-direction: row;
102
- justify-content: center;
103
- align-items: center;
104
- gap: 8px;
105
- padding: 12px 24px;
106
- border-radius: 16px;
107
- border-color: #000;
108
- background-color: transparent;
109
- }
110
- .button_success-left {
111
- width: 200px;
112
- height: 43px;
113
- flex-grow: 0;
114
- display: flex;
115
- flex-direction: row;
116
- justify-content: center;
117
- align-items: center;
118
- gap: 8px;
119
- padding: 12px 24px;
120
- border-radius: 16px;
121
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
122
- background-color: #ffb525;
123
- }
124
- .shareSection-Success {
125
- height: 510px;
126
- padding: 40px;
127
- border-radius: 16px;
128
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
129
- border: solid 1px #d7d9e3;
130
- background-color: #fff;
131
- }
132
- .shareSection-Error {
133
- height: 400px;
134
- padding:10px;
135
- border-radius: 16px;
136
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
137
- border: solid 1px #d7d9e3;
138
- background-color: #fff;
139
- }
140
- .MessageShareSection {
141
- height: 513px;
142
- padding: 14px 14px;
143
- border-radius: 16px;
144
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
145
- border: solid 1px #d7d9e3;
146
- background-color: #fff;
147
- }
148
-
149
- .popup-tags {
150
- font-size: large;
151
- font-weight: bold;
152
- }
153
- .button_icon-left {
154
- width: 184px;
155
- height: 43px;
156
- flex-grow: 0;
157
- display: flex;
158
- flex-direction: row;
159
- justify-content: center;
160
- align-items: center;
161
- gap: 8px;
162
- padding: 12px 24px;
163
- border-radius: 16px;
164
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
165
- background-color: #ffb525;
166
- }
167
- .button-text {
168
- width: 85px;
169
- height: 19px;
170
- flex-grow: 0;
171
- font-family: Inter;
172
- font-size: 16px;
173
- font-weight: 500;
174
- font-stretch: normal;
175
- font-style: normal;
176
- line-height: normal;
177
- letter-spacing: normal;
178
- text-align: center;
179
- }
180
- .button_icon-right {
181
- width: 184px;
182
- height: 43px;
183
- flex-grow: 0;
184
- display: flex;
185
- flex-direction: row;
186
- justify-content: center;
187
- align-items: center;
188
- gap: 8px;
189
- padding: 12px 24px;
190
- border-radius: 16px;
191
- border-color: #000;
192
- background-color: transparent;
193
- }
194
- .circle {
195
- height: 55px;
196
- width: 55px;
197
- background-color: transparent;
198
- border-radius: 50%;
199
- border-style: solid;
200
- border-color: #000;
201
- border-width: 2px;
202
- }
203
- .Line-9, .Line-10 {
204
- height: 1px;
205
- flex-grow: 1;
206
- background-color: rgba(140, 140, 140, 0.5);
207
- max-width:23rem;
208
- align-self: center;
209
- align-content: center;
210
-
211
- }
212
-
213
- .middle-container {
214
- display: flex;
215
- align-items: center;
216
- justify-content: center;
217
- }
218
-
219
- .middle-text {
220
- margin: 25px 25px;
221
- }
222
- .google-button{
223
- width: 260px;
224
- height: 45px;
225
- flex-grow: 0;
226
- display: flex;
227
- flex-direction: row;
228
- justify-content: center;
229
- align-items: center;
230
- gap: 8px;
231
- padding: 12px 24px;
232
- border-radius: 4px;
233
- background-color: #000000;
234
- background: linear-gradient(to top, #000 , #666 );
235
-
236
-
237
- }
238
- .Account-popup{
239
-
240
- height: 713px;
241
- padding: 10px;
242
- border-radius: 16px;
243
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
244
- border: solid 1px #d7d9e3;
245
- background-color: #fff;
246
- max-width: 1000px;
247
-
248
- }
249
- .lightertxt{
250
- color: #797979;
251
- }
252
-
253
- .filter {
254
- height: 343px;
255
- align-self: stretch;
256
- flex-grow: 0;
257
- display: flex;
258
- flex-direction: column;
259
- gap: 2px;
260
- padding: 32px;
261
- border-radius: 32px;
262
- box-shadow: inset 0 4px 10px 0 rgba(0, 0, 0, 0.15);
263
- background-color: #f2f2f2;
264
- }
265
- .loginFilter {
266
- height: 280px;
267
- align-self: stretch;
268
- flex-grow: 0;
269
- display: flex;
270
- flex-direction: column;
271
- gap: 2px;
272
- padding: 32px;
273
- border-radius: 32px;
274
- box-shadow: inset 0 4px 10px 0 rgba(0, 0, 0, 0.15);
275
- background-color: #f2f2f2;
276
- }
277
- .radioLabel {
278
- width: 176px;
279
- height: 19px;
280
- flex-grow: 0;
281
- font-family: Inter;
282
- font-size: 16px;
283
- font-weight: normal;
284
- font-stretch: normal;
285
- font-style: normal;
286
- line-height: normal;
287
- letter-spacing: normal;
288
- text-align: left;
289
- color: #1b1b1b;
290
- }
291
- .goButton-text {
292
- width: 78px;
293
- height: 19px;
294
- flex-grow: 0;
295
- font-family: Inter;
296
- font-size: 16px;
297
- font-weight: 500;
298
- font-stretch: normal;
299
- font-style: normal;
300
- line-height: normal;
301
- letter-spacing: normal;
302
- text-align: center;
303
- color: #1b1b1b;
304
- }
305
- .placeholders {
306
- width: 232px;
307
- height: 45px;
308
- flex-grow: 0;
309
- display: flex;
310
- flex-direction: row;
311
- justify-content: flex-start;
312
- align-items: center;
313
- gap: 8px;
314
- padding: 12px 24px;
315
- border-radius: 4px;
316
- background-image: linear-gradient(to top, #000 100%, #666 0%);
317
- }
318
- .TagW.active {
319
- height: 40px;
320
- flex-grow: 1;
321
- display: flex;
322
- flex-direction: row;
323
- justify-content: center;
324
- align-items: center;
325
- gap: 6px;
326
- padding: 0 24px;
327
- border-radius: 16px;
328
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
329
- background-image: linear-gradient(to top, #000 , #666);
330
- color: white;
331
- }
332
- .Tag {
333
- height: 40px;
334
- flex-grow: 1;
335
- display: flex;
336
- flex-direction: row;
337
- justify-content: center;
338
- align-items: center;
339
- gap: 6px;
340
- padding: 0 24px;
341
- border-radius: 16px;
342
- box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
343
- background-image: linear-gradient(to top, rgba(255, 0, 0, 0), rgba(255,0,0,1));}
344
- .TagW {
345
- height: 40px;
346
- flex-grow: 1;
347
- display: flex;
348
- flex-direction: row;
349
- justify-content: center;
350
- align-items: center;
351
- gap: 6px;
352
- padding: 0 24px;
353
- border-radius: 16px;
354
- border: solid 1px #000;
355
- background-color: #fff;
356
- color: #000;
357
-
358
- }
359
- /* */
@@ -1,99 +0,0 @@
1
- import React, { useRef } from "react";
2
- import { toast } from "react-toastify";
3
- import email from "../../../assets/Images/envelope-fill.svg";
4
- import facebook from "../../../assets/Images/facebook.svg";
5
- import x from "../../../assets/Images/icon_close 2.png";
6
- import linkedln from "../../../assets/Images/linkedin.svg";
7
- import Xtwitter from "../../../assets/Images/twitter-x.svg";
8
- import whatsapp from "../../../assets/Images/whatsapp.svg";
9
- import "./PopUp.css";
10
-
11
- export default function PopUp({ onClick }) {
12
- const handleClose = () => {
13
- onClick();
14
- };
15
-
16
- const urlInputRef = useRef(null);
17
-
18
- const copyToClipboard = () => {
19
- urlInputRef.current.select();
20
- document.execCommand("copy");
21
- toast.success("URL copied to clipboard!");
22
- };
23
-
24
- return (
25
- <div className="popup-overlay">
26
- <div className="shareSection col-12 d-flex position-relative flex-column mx-auto justify-content-center col-5 col-lg-6 d-flex gap-4">
27
- <div className="end-0 top-0 position-absolute ">
28
- <img
29
- src={x}
30
- alt="close"
31
- className="closeIcon me-2"
32
- onClick={handleClose}
33
- />
34
- </div>
35
- <div className="popUpHeader col-lg-12 d-flex justify-content-center mb-2">
36
- Jetzt teilen und weitersagen!
37
- </div>
38
- <div className="h-25 col-lg-12 socialMediaIconsSection d-flex flex-row align-items-center justify-content-center mx-auto">
39
-
40
- <a href="https://twitter.com/intent/tweet?url=https://www.nestiq.de&text=Nestiq" className="text-decoration-none" target="blank">
41
- <div className=" flex-column d-flex align-items-center">
42
- <img src={Xtwitter} alt="twitter" className="socialMediaIcons" />
43
- <span className="socialMediaIconText" >Xtwitter</span>
44
- </div>
45
- </a>
46
-
47
- <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.nestiq.de" className="text-decoration-none" target="blank" >
48
- <div className=" flex-column d-flex align-items-center">
49
- <img src={facebook} alt="facebook" className="socialMediaIcons " />
50
- <span className="socialMediaIconText">Facebook</span>
51
- </div>
52
- </a>
53
-
54
- <a href="https://api.whatsapp.com/send?text=https://www.nestiq.de" target="blank" className="text-decoration-none">
55
- <div className=" flex-column d-flex align-items-center">
56
- <img src={whatsapp} alt="whatsapp" className=" socialMediaIcons" />
57
- <span className="socialMediaIconText">WhatsApp</span>
58
- </div>
59
- </a>
60
-
61
- <a href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.nestiq.de" target="blank" className="text-decoration-none">
62
- <div className=" flex-column d-flex align-items-center">
63
- <img src={linkedln} alt="linkedin" className=" socialMediaIcons" />
64
- <span className="socialMediaIconText">LinkedIn</span>
65
- </div>
66
- </a>
67
-
68
- <a href="https://www.nestiq.de" target="blank" className="text-decoration-none">
69
- <div className=" flex-column d-flex align-items-center">
70
- <img src={email} alt="email" className=" socialMediaIcons" />
71
- <span className="socialMediaIconText">E-mail</span>
72
- </div>
73
- </a>
74
-
75
- </div>
76
- <div className="col-10 mx-auto">
77
- <div className=" row align-items-center position-relative">
78
- <input
79
- ref={urlInputRef}
80
- type="text"
81
- className="popup_search-input rounded-4 border border-0 "
82
- placeholder="Enter link here"
83
- value={window.location.href}
84
- readOnly
85
- />
86
- <button
87
- onClick={copyToClipboard}
88
- className="popupcustom-button border border-0 position-absolute me-2 col-lg-3 col-md-3 col-sm-3 rounded-4 fs-6"
89
- type="button"
90
- id="button"
91
- >
92
- <strong>Kopieren</strong>
93
- </button>
94
- </div>
95
- </div>
96
- </div>
97
- </div>
98
- );
99
- }