@lanaco/lnc-react-ui 4.0.156 → 4.0.160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/BlogCardsSponsoredSection.cjs +8 -8
  2. package/dist/BlogCardsSponsoredSection.js +105 -89
  3. package/dist/BlogExploreSection.cjs +5 -5
  4. package/dist/BlogExploreSection.js +88 -84
  5. package/dist/BlogListSection.cjs +5 -5
  6. package/dist/BlogListSection.js +139 -126
  7. package/dist/BlogProductCardsSection.cjs +1 -1
  8. package/dist/BlogProductCardsSection.js +37 -35
  9. package/dist/BlogShopCardsSection.cjs +1 -1
  10. package/dist/BlogShopCardsSection.js +43 -41
  11. package/dist/BlogSingleSection.cjs +1 -1
  12. package/dist/BlogSingleSection.js +9 -4
  13. package/dist/BlogsSectionDetailed.cjs +11 -11
  14. package/dist/BlogsSectionDetailed.js +122 -108
  15. package/dist/BlogsSectionLarge.cjs +4 -4
  16. package/dist/BlogsSectionLarge.js +43 -40
  17. package/dist/BlogsSectionSimple.cjs +8 -8
  18. package/dist/BlogsSectionSimple.js +100 -86
  19. package/dist/BlogsSectionSimpleCentered.cjs +9 -9
  20. package/dist/BlogsSectionSimpleCentered.js +81 -66
  21. package/dist/BlogsSectionWithFilters.cjs +11 -11
  22. package/dist/BlogsSectionWithFilters.js +108 -93
  23. package/dist/{CustomStyles-Ajyqx0cb.cjs → CustomStyles-BwHfr4iM.cjs} +1 -1
  24. package/dist/{CustomStyles-DVcu00ul.js → CustomStyles-iconSXFL.js} +0 -1
  25. package/dist/DetailedProductsInfinitiveSection.cjs +8 -3
  26. package/dist/DetailedProductsInfinitiveSection.js +63 -51
  27. package/dist/DetailedProductsSection.cjs +3 -3
  28. package/dist/DetailedProductsSection.js +76 -65
  29. package/dist/Dropdown.cjs +1 -1
  30. package/dist/Dropdown.js +2 -2
  31. package/dist/DropdownLookup.cjs +1 -1
  32. package/dist/DropdownLookup.js +1 -1
  33. package/dist/FieldOfInterestsWithAvatarsCardsSection.cjs +1 -1
  34. package/dist/FieldOfInterestsWithAvatarsCardsSection.js +1 -1
  35. package/dist/GiftCardsSection.cjs +1 -1
  36. package/dist/GiftCardsSection.js +1 -1
  37. package/dist/MultiSelectDropdown.cjs +1 -1
  38. package/dist/MultiSelectDropdown.js +1 -1
  39. package/dist/MultiSelectDropdownLookup.cjs +1 -1
  40. package/dist/MultiSelectDropdownLookup.js +1 -1
  41. package/dist/ProductsWithBannerSection.cjs +10 -10
  42. package/dist/ProductsWithBannerSection.js +81 -59
  43. package/dist/SalesCampaignsSection.cjs +27 -27
  44. package/dist/SalesCampaignsSection.js +281 -272
  45. package/dist/ShopCardsSection.cjs +3 -3
  46. package/dist/ShopCardsSection.js +27 -25
  47. package/dist/SimpleCategoriesSection.cjs +1 -1
  48. package/dist/SimpleCategoriesSection.js +1 -1
  49. package/dist/SimpleProductsSection.cjs +3 -3
  50. package/dist/SimpleProductsSection.js +62 -51
  51. package/dist/UrgentSaleProductsSection.cjs +6 -6
  52. package/dist/UrgentSaleProductsSection.js +67 -56
  53. package/dist/index-1Dm1i6WK.js +52 -0
  54. package/dist/index-BGTtoLxz.cjs +1 -0
  55. package/dist/{index-CLoINIGC.cjs → index-DicTpiG0.cjs} +5 -5
  56. package/dist/{index-BGY3PSA-.js → index-y6sKgrZC.js} +45 -34
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.js +1 -1
  59. package/dist/{skeleton-BWFqIToC.js → skeleton-5mO22c5S.js} +94 -84
  60. package/dist/{skeleton-CanJ6Gr6.cjs → skeleton-Ccd6EDeB.cjs} +8 -8
  61. package/dist/{style-DFPWLJBr.js → style-BLuyU97E.js} +4 -0
  62. package/dist/{style-CyHewQxg.cjs → style-lSjkOR95.cjs} +6 -2
  63. package/dist/{suspense-product-card-detailed-YJVsf2-a.js → suspense-product-card-detailed-BZtObEfA.js} +191 -162
  64. package/dist/suspense-product-card-detailed-D-pjVe22.cjs +300 -0
  65. package/dist/{suspense-product-card-simple-CrqjSxHI.cjs → suspense-product-card-simple-DJ8UYolb.cjs} +1 -1
  66. package/dist/{suspense-product-card-simple-CLJjab5B.js → suspense-product-card-simple-ziy0XcLp.js} +1 -1
  67. package/package.json +1 -1
  68. package/dist/index-Cm0f72Po.cjs +0 -1
  69. package/dist/index-DGp7FHms.js +0 -42
  70. package/dist/suspense-product-card-detailed-mCJwteOy.cjs +0 -265
@@ -0,0 +1,300 @@
1
+ "use strict";const e=require("react/jsx-runtime"),a=require("react"),t=require("./utils-Dl9xPH4c.cjs"),N=require("./emotion-styled.browser.esm-BtEseadx.cjs"),de=require("./index-BueKsXT8.cjs"),C=require("./Badge.cjs"),me=require("./Popover.cjs"),pe=require("./PopoverTrigger.cjs"),ue=require("./PopoverContent.cjs"),ge=require("./useDetectMobile-zkbzoOGV.cjs"),A=require("./consts-goSZX3xP.cjs"),X=N.styled.div`
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+ cursor: pointer;
6
+ overflow: hidden;
7
+ width: 100%;
8
+
9
+ & .wrapper-card-1 {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 0.38rem;
13
+ }
14
+
15
+ & .wrapper-card-2 {
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: 0;
19
+ }
20
+
21
+ & .wrapper-card-3 {
22
+ display: flex;
23
+ flex-wrap: wrap;
24
+ gap: 0.25rem;
25
+
26
+ & > div {
27
+ & > div {
28
+ width: 100% !important;
29
+ }
30
+ }
31
+ }
32
+
33
+ & .tag {
34
+ height: 1.5rem;
35
+ gap: 0.25rem;
36
+ padding: 0.25rem 0.375rem;
37
+ border-radius: 0.375rem;
38
+ background: #f9fafb;
39
+ border: 1px solid var(--gray-95012, #14161a1f);
40
+ font-weight: 400;
41
+ font-size: 0.75rem;
42
+ line-height: 1rem;
43
+ letter-spacing: 0.025rem;
44
+ color: var(--gray-950, #14161a);
45
+ white-space: nowrap;
46
+ flex: 0 0 auto;
47
+
48
+ & i {
49
+ color: var(--yellow-500, #f59e0b);
50
+ }
51
+ }
52
+
53
+ & .card-title {
54
+ font-size: 0.875rem;
55
+ font-weight: 600;
56
+ ${t.truncateTextInRows(2)}
57
+ }
58
+
59
+ & .price-text {
60
+ font-size: 1rem;
61
+ font-weight: 600;
62
+ ${t.truncateText()}
63
+ display: flex;
64
+ align-items: end;
65
+ gap: 0.5rem;
66
+ color: var(--gray-950, #14161a);
67
+
68
+ &.new-price {
69
+ color: var(--danger-600, #e11d48);
70
+ }
71
+
72
+ & .full-price {
73
+ text-decoration: line-through;
74
+ font-size: 0.75rem;
75
+ font-weight: 400;
76
+ padding-bottom: 0.125rem;
77
+ color: var(--gray-600, #676e79);
78
+ }
79
+ }
80
+
81
+ & .location-text {
82
+ font-size: 0.75rem;
83
+ font-weight: 400;
84
+ color: var(--gray-600, #676e79);
85
+ ${t.truncateText()}
86
+ }
87
+
88
+ & .tags-wrapper {
89
+ display: flex;
90
+ gap: 0.5rem;
91
+ }
92
+
93
+ & .skeleton-img {
94
+ background-color: ${t.linearGradientAnimation("-90deg")};
95
+ border-radius: 0.75rem;
96
+ border: 1px solid white;
97
+ width: 100%;
98
+ height: 11rem;
99
+ }
100
+
101
+ & .skeleton-title {
102
+ background-color: ${t.linearGradientAnimation("-90deg")};
103
+ width: 100%;
104
+ height: 2.5rem;
105
+ }
106
+
107
+ & .skeleton-tags {
108
+ background-color: ${t.linearGradientAnimation("-90deg")};
109
+ width: 80%;
110
+ height: 1.5rem;
111
+ }
112
+
113
+ & .skeleton-price {
114
+ background-color: ${t.linearGradientAnimation("-90deg")};
115
+ width: 50%;
116
+ height: 2.5rem;
117
+ }
118
+
119
+ & .skeleton-sponsored {
120
+ background-color: ${t.linearGradientAnimation("-90deg")};
121
+ width: 50%;
122
+ height: 1rem;
123
+ }
124
+
125
+ & .tags-popover__trigger {
126
+ display: flex;
127
+ gap: 0.25rem;
128
+ }
129
+
130
+ @media (max-width: ${A.MOBILE_SIZE_PX+"px"}) {
131
+ overflow: visible;
132
+
133
+ & .wrapper-card-3 {
134
+ flex-wrap: nowrap;
135
+ justify-content: flex-start;
136
+ overflow-x: scroll;
137
+ width: 8.875rem !important;
138
+
139
+ -webkit-overflow-scrolling: touch;
140
+ ::-webkit-scrollbar {
141
+ -webkit-appearance: none;
142
+ }
143
+ -ms-overflow-style: none;
144
+ /* Internet Explorer 10+ */
145
+ scrollbar-width: none;
146
+ /* Firefox */
147
+
148
+ &::-webkit-scrollbar {
149
+ display: none;
150
+ /* Safari and Chrome */
151
+ }
152
+
153
+ & > div {
154
+ & > div {
155
+ width: 8.875rem !important;
156
+ }
157
+ }
158
+ }
159
+
160
+ & .tags-popover__trigger {
161
+ overflow-x: scroll;
162
+ justify-content: flex-start;
163
+ width: 100%;
164
+
165
+ -webkit-overflow-scrolling: touch;
166
+ ::-webkit-scrollbar {
167
+ -webkit-appearance: none;
168
+ }
169
+ -ms-overflow-style: none;
170
+ /* Internet Explorer 10+ */
171
+ scrollbar-width: none;
172
+ /* Firefox */
173
+
174
+ &::-webkit-scrollbar {
175
+ display: none;
176
+ /* Safari and Chrome */
177
+ }
178
+ }
179
+
180
+ & .price-text {
181
+ font-size: 0.875rem;
182
+ font-weight: 600;
183
+
184
+ & .full-price {
185
+ display: none;
186
+ }
187
+ }
188
+ }
189
+
190
+ &:hover .product-image-wrapper img {
191
+ transform: scale(1.1);
192
+ }
193
+ `,he=N.styled.div`
194
+ position: relative;
195
+ overflow: hidden;
196
+ border-radius: 0.75rem;
197
+ width: 100%;
198
+ aspect-ratio: 1 / 1;
199
+ border: 1px solid #0c15201f;
200
+
201
+ & .bookmarking-btn {
202
+ position: absolute;
203
+ right: 0.5rem;
204
+ top: 0.5rem;
205
+ z-index: 1;
206
+
207
+ display: none;
208
+ }
209
+
210
+ &:hover {
211
+ & .bookmarking-btn {
212
+ display: flex;
213
+ }
214
+ }
215
+
216
+ & img {
217
+ display: block;
218
+ width: 100%;
219
+ height: 100%;
220
+ object-fit: cover;
221
+ border-radius: 0.75rem;
222
+ transition: var(--transition, all 0.3s ease);
223
+ }
224
+
225
+ @media (max-width: ${A.MOBILE_SIZE_PX+"px"}) {
226
+ & img {
227
+ width: 8.875rem;
228
+ height: 8.875rem;
229
+ min-width: 8.875rem;
230
+ min-height: 8.875rem;
231
+ object-fit: cover;
232
+ }
233
+
234
+ & .bookmarking-btn {
235
+ display: flex;
236
+ }
237
+ }
238
+ `,fe=N.styled.div`
239
+ background: var(--white, #fff);
240
+ z-index: 1;
241
+
242
+ border: 1px solid var(--gray-200, #dddfe4);
243
+ border-radius: 0.5rem;
244
+ line-height: 1rem;
245
+ position: absolute;
246
+ padding: 0.5rem 0.75rem;
247
+ top: 0.5rem;
248
+ left: 25%;
249
+ transform: translateX(-50%);
250
+ min-width: 13rem;
251
+
252
+ &::before,
253
+ &::after {
254
+ content: "";
255
+ position: absolute;
256
+ left: 50%;
257
+ transform: translateX(-50%);
258
+ border-style: solid;
259
+ border-width: 0.625rem;
260
+ }
261
+
262
+ &::after {
263
+ top: -1.1875rem;
264
+ border-color: transparent transparent var(--white, #fff) transparent;
265
+ }
266
+
267
+ &::before {
268
+ top: -1.25rem;
269
+ border-color: transparent transparent var(--gray-200, #dddfe4) transparent;
270
+ }
271
+
272
+ & .tags-popover__content {
273
+ display: flex;
274
+ flex-wrap: wrap;
275
+ flex-direction: column;
276
+ gap: 0.375rem;
277
+ font-size: 0.75rem;
278
+ font-weight: 400;
279
+
280
+ & .tags-popover__name {
281
+ color: var(--gray-600, #676e79);
282
+ }
283
+
284
+ & .tags-popover__value {
285
+ color: var(--gray-950, #14161a);
286
+ }
287
+ }
288
+ `,ve=N.styled.div`
289
+ display: flex;
290
+ align-items: center;
291
+ gap: 0.25rem;
292
+ color: var(--gray-500);
293
+ font-size: 0.75rem;
294
+ font-weight: 500;
295
+
296
+ & i {
297
+ font-size: 1rem;
298
+ color: var(--warning-500, #F59E0B);
299
+ }
300
+ `,we=a.forwardRef(({sponsoredText:l="Sponsored"},v)=>e.jsxs(ve,{ref:v,className:"sponsored-line",children:[e.jsx("i",{className:"mng-lnc-paw2"}),e.jsx("span",{children:l})]})),be="Vehicles_Cars",ye="Vehicles_Motorcycles",ke="Vehicles_Trucks",je="Vehicles_AgriculturalMachines_Tractors",xe="Vehicles_ConstructionMachines",_e="Vehicles_Bus",Ce="Vehicles_Campers",Ne="RealEstates_",s={Mileage:{icon:"mng-lnc-road",measure:"km"},YearOfProduction:{icon:"mng-lnc-calendar",measure:""},Fuel:{icon:"mng-lnc-gas-station",measure:""},EnginePowerKW:{icon:"mng-lnc-engine",measure:"kW"},Transmission:{icon:"mng-lnc-transmission",measure:""},Model:{icon:"mng-lnc-application",measure:""},Brand:{icon:"mng-lnc-car--front",measure:""},SurfaceArea:{icon:"mng-lnc-right-angle",measure:""},Floor:{icon:"mng-lnc-elevator",measure:""},FurnishedCondition:{icon:"mng-lnc-sofa-01",measure:""},AdType:{icon:"mng-lnc-notes",measure:""},NumberOfRooms:{icon:"mng-lnc-meeting-room",measure:""},HeatingType:{icon:"mng-lnc-heat",measure:""},AirConditioning:{icon:"mng-lnc-air-conditioner",measure:""},Type:{icon:"mng-lnc-house-building",measure:""},Parking:{icon:"mng-lnc-parking-area-circle",measure:""},Internet:{icon:"mng-lnc-wifi-02",measure:""},State:{icon:"mng-lnc-settings-1",measure:""},NumberOfPremises:{icon:"mng-lnc-meeting-room",measure:""},Pool:{icon:"mng-lnc-pool",measure:""},Approach:{icon:"mng-lnc-driveway",measure:""},NumberOfBeds:{icon:"mng-lnc-bed",measure:""},Kitchen:{icon:"mng-lnc-fridge",measure:""},BathroomToilet:{icon:"mng-lnc-bath",measure:""},default:{icon:" mng-lnc-clock--filled",measure:""}},Pe=a.forwardRef((l,v)=>{const{uuid:d,name:j,price:g=0,sellingPrice:x,currency:_,isNegotiable:P,isFree:$,imageUrl:L,location:U,sponsored:Y,imageComponent:T,onSelectCard:K=()=>{},freeText:Z="Free",negotiableText:H="Negotiable",tags:n=[],categoryCode:E,condition:O,quantity:V,trade:B,sponsoredText:J,onBookmark:F=()=>{},bookmarkComponent:y,bookmarked:M,bookmarkLists:Q,metadata:w}=l,S=ge.useDetectMobile(),ee=()=>{var m;if(!t.isDefined(y))return e.jsx(e.Fragment,{});const r=y,o=(m=y==null?void 0:y.props)==null?void 0:m.children,c=a.cloneElement(o,{key:`bookmark_pr__${M}`,bookmarked:M,productUuid:d,onAddToBookmark:()=>F(!0,d),onRemoveFromBookmark:()=>F(!1,d),bookmarkedUuidList:Q});return a.cloneElement(r,void 0,c)},q=[be,ye,ke,je,xe,_e,Ce,Ne].some(r=>E==null?void 0:E.includes(r)),[re,z]=a.useState(!1),oe=()=>{z(!0)},ne=()=>{z(!1)},i=a.useRef(null),h=a.useRef([]),[te,I]=a.useState(n==null?void 0:n.length),se=()=>{var m,b,k;if(!(i!=null&&i.current)||((m=h==null?void 0:h.current)==null?void 0:m.length)===0)return;if(S){I(n==null?void 0:n.length);return}const r=(b=i==null?void 0:i.current)==null?void 0:b.offsetWidth;let o=0,c=0;for(let p=0;p<(n==null?void 0:n.length);p++){const f=((k=h==null?void 0:h.current[p])==null?void 0:k.offsetWidth)||0,u=o+f+4;if(u<=r)o+=u,c++;else break}I(c)};a.useEffect(()=>{const r=i==null?void 0:i.current;if(!r)return;const o=new ResizeObserver(()=>{se()});return o.observe(r),()=>{o.disconnect()}},[n,S]);const ie=()=>{var r;return e.jsx("div",{className:"tags-popover__trigger",children:(r=n==null?void 0:n.slice(0,te))==null?void 0:r.map((o,c)=>{var f,u,D,R,G;const m=((f=s==null?void 0:s[o==null?void 0:o.code])==null?void 0:f.icon)??((u=s==null?void 0:s.default)==null?void 0:u.icon)??"",b=((D=o==null?void 0:o.measurementUnit)==null?void 0:D.symbol)??((R=s==null?void 0:s[o==null?void 0:o.code])==null?void 0:R.measure)??"",p=[(o==null?void 0:o.value)??((G=o==null?void 0:o.multiOptions)==null?void 0:G[0])??"",b].filter(Boolean).join(" ");return e.jsxs(C,{ref:le=>h.current[c]=le,className:"tag",children:[e.jsx("i",{className:m}),p]},`detailed-products-section-tag__${c+1}`)})})},ae=()=>e.jsx("div",{className:"tags-popover__content",children:n==null?void 0:n.map((r,o)=>{var p,f,u;const c=((p=r==null?void 0:r.measurementUnit)==null?void 0:p.symbol)??((f=s==null?void 0:s[r==null?void 0:r.code])==null?void 0:f.measure)??"",b=[(r==null?void 0:r.value)??((u=r==null?void 0:r.multiOptions)==null?void 0:u[0])??"",c].filter(Boolean).join(" "),k=r==null?void 0:r.name;return e.jsxs("div",{children:[e.jsx("span",{className:"tags-popover__name",children:`${k}: `}),e.jsx("span",{className:"tags-popover__value",children:b})]},`detailed-products-section-tag-dropdown__${o+1}`)})}),ce=()=>e.jsxs(e.Fragment,{children:[O&&e.jsx(C,{className:"tag",children:O},"detailed-products-section-tag__condition"),V&&e.jsx(C,{className:"tag",children:V},"detailed-products-section-tag__quantity"),B&&e.jsx(C,{className:"tag",children:B},"detailed-products-section-tag__trade")]}),W=g>0&&_&&P!==!0&&$!==!0&&g!==x;return e.jsxs(X,{ref:i,className:"product-card","data-accessor":w==null?void 0:w.accessor,name:w==null?void 0:w.name,onClick:r=>K(r,i),children:[e.jsxs(he,{className:"product-image-wrapper",children:[e.jsx(ee,{}),t.isDefined(T)?T:e.jsx(de.ProductImageWrapper,{src:L})]}),e.jsx("div",{className:"wrapper-card-1",children:e.jsx("div",{className:"card-title",children:j})}),e.jsxs("div",{className:"wrapper-card-3",children:[q&&e.jsx("div",{...S?{}:{onMouseEnter:oe,onMouseLeave:ne},children:e.jsxs(me,{placement:"bottom",open:re,children:[e.jsx(pe,{children:ie()}),e.jsx(ue,{style:{all:"unset"},children:e.jsx(fe,{children:ae()})})]})}),!q&&ce()]}),e.jsxs("div",{className:"wrapper-card-2",children:[e.jsxs("div",{className:`price-text ${W?"new-price":""}`,children:[x>0&&_&&P!==!0&&$!==!0&&e.jsx("div",{children:`${t.formatPrice(x)} ${t.GetCurrencySymbol(_)}`}),W&&e.jsx("div",{className:`${x>0?"full-price":""}`,children:`${t.formatPrice(g)} ${t.GetCurrencySymbol(_)}`}),P&&H,$&&Z]}),e.jsx("div",{className:"location-text",children:U})]}),Y===!0&&e.jsx(we,{sponsoredText:J})]})}),$e=a.forwardRef(({},l)=>e.jsxs(X,{className:"product-card",children:[e.jsx("img",{className:"skeleton-img"}),e.jsxs("div",{className:"wrapper-card-1",children:[e.jsx("div",{className:"skeleton-title"}),e.jsx("div",{className:"skeleton-tags"})]}),e.jsxs("div",{className:"wrapper-card-1",children:[e.jsx("div",{className:"skeleton-price"}),e.jsx("div",{className:"skeleton-sponsored"})]})]})),Ee=({limit:l=5,isLoading:v=!1,keyPrefix:d})=>e.jsx(e.Fragment,{children:Array.from({length:l},(j,g)=>e.jsx($e,{isLoading:v},`${d}-skeleton-product-card-${g}`))}),Se=({children:l,fallbackComponent:v=e.jsx(e.Fragment,{}),isLoading:d=!1,limit:j,keyPrefix:g})=>e.jsx(a.Suspense,{fallbackComponent:v,children:d===!0?e.jsx(Ee,{isLoading:d,limit:j,keyPrefix:g}):l});exports.DetailedProductCard=Pe;exports.SuspenseDetailedProductCard=Se;
@@ -1 +1 @@
1
- "use strict";const e=require("react/jsx-runtime"),u=require("react"),c=require("./index-CLoINIGC.cjs"),d=u.forwardRef((r,t)=>e.jsx(c.SkeletonWrapper,{})),l=({limit:r=6,isLoading:t=!1,keyPrefix:s})=>e.jsx(e.Fragment,{children:Array.from({length:r},(o,n)=>e.jsx(d,{isLoading:t},`${s}-skeleton-product-card-${n}`))}),a=({children:r,fallbackComponent:t=e.jsx(e.Fragment,{}),isLoading:s=!1,limit:o,keyPrefix:n})=>e.jsx(u.Suspense,{fallbackComponent:t,children:s===!0?e.jsx(l,{isLoading:s,limit:o,keyPrefix:n}):r});exports.SuspenseSimpleProductCard=a;
1
+ "use strict";const e=require("react/jsx-runtime"),u=require("react"),c=require("./index-DicTpiG0.cjs"),d=u.forwardRef((r,t)=>e.jsx(c.SkeletonWrapper,{})),l=({limit:r=6,isLoading:t=!1,keyPrefix:s})=>e.jsx(e.Fragment,{children:Array.from({length:r},(o,n)=>e.jsx(d,{isLoading:t},`${s}-skeleton-product-card-${n}`))}),a=({children:r,fallbackComponent:t=e.jsx(e.Fragment,{}),isLoading:s=!1,limit:o,keyPrefix:n})=>e.jsx(u.Suspense,{fallbackComponent:t,children:s===!0?e.jsx(l,{isLoading:s,limit:o,keyPrefix:n}):r});exports.SuspenseSimpleProductCard=a;
@@ -1,6 +1,6 @@
1
1
  import { jsx as r, Fragment as p } from "react/jsx-runtime";
2
2
  import { forwardRef as a, Suspense as l } from "react";
3
- import { a as c } from "./index-BGY3PSA-.js";
3
+ import { a as c } from "./index-y6sKgrZC.js";
4
4
  const m = a((e, t) => /* @__PURE__ */ r(c, {})), u = ({ limit: e = 6, isLoading: t = !1, keyPrefix: o }) => /* @__PURE__ */ r(p, { children: Array.from({ length: e }, (s, n) => /* @__PURE__ */ r(
5
5
  m,
6
6
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lanaco/lnc-react-ui",
3
- "version": "4.0.156",
3
+ "version": "4.0.160",
4
4
  "description": "React component library",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),d=require("react"),i=require("./skeleton-BdbB-LdT.cjs"),x=require("./useDetectMobile-zkbzoOGV.cjs"),c=require("./Button.cjs"),m=require("./index-BueKsXT8.cjs"),p=d.forwardRef((o,n)=>{const{title:l,imageUrl:a,text:u,onCardClick:t,buttonText:r}=o,s=x.useDetectMobile();return e.jsxs(i.Wrapper,{ref:n,className:"blog-card",onClick:t,children:[e.jsx(m.ProductImageWrapper,{src:a}),e.jsxs(i.TextWrapper,{children:[e.jsx("div",{className:"text-wr-title",children:l}),e.jsx("div",{className:"text-wr",children:u}),s!==!0&&e.jsx(c,{type:"button",btnType:"outline",size:"medium",color:"gray",onClick:t,children:r})]}),s===!0&&e.jsx(c,{className:"action",type:"button",btnType:"outline",size:"medium",color:"gray",onClick:t,children:r})]})});exports.BlogCardLarge=p;
@@ -1,42 +0,0 @@
1
- import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as p } from "react";
3
- import { W as d, T as u } from "./skeleton-CQPwIEP0.js";
4
- import { u as b } from "./useDetectMobile-Bkvj0VMa.js";
5
- import a from "./Button.js";
6
- import { P as f } from "./index-CF3HhgvN.js";
7
- const k = p((l, c) => {
8
- const { title: s, imageUrl: n, text: m, onCardClick: e, buttonText: t } = l, o = b();
9
- return /* @__PURE__ */ i(d, { ref: c, className: "blog-card", onClick: e, children: [
10
- /* @__PURE__ */ r(f, { src: n }),
11
- /* @__PURE__ */ i(u, { children: [
12
- /* @__PURE__ */ r("div", { className: "text-wr-title", children: s }),
13
- /* @__PURE__ */ r("div", { className: "text-wr", children: m }),
14
- o !== !0 && /* @__PURE__ */ r(
15
- a,
16
- {
17
- type: "button",
18
- btnType: "outline",
19
- size: "medium",
20
- color: "gray",
21
- onClick: e,
22
- children: t
23
- }
24
- )
25
- ] }),
26
- o === !0 && /* @__PURE__ */ r(
27
- a,
28
- {
29
- className: "action",
30
- type: "button",
31
- btnType: "outline",
32
- size: "medium",
33
- color: "gray",
34
- onClick: e,
35
- children: t
36
- }
37
- )
38
- ] });
39
- });
40
- export {
41
- k as B
42
- };
@@ -1,265 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),a=require("react"),t=require("./utils-Dl9xPH4c.cjs"),N=require("./emotion-styled.browser.esm-BtEseadx.cjs"),le=require("./index-BueKsXT8.cjs"),x=require("./Badge.cjs"),de=require("./Popover.cjs"),me=require("./PopoverTrigger.cjs"),pe=require("./PopoverContent.cjs"),ue=require("./useDetectMobile-zkbzoOGV.cjs"),R=require("./consts-goSZX3xP.cjs"),G=N.styled.div`
2
- display: flex;
3
- flex-direction: column;
4
- gap: 0.5rem;
5
- cursor: pointer;
6
- overflow: hidden;
7
- width: 100%;
8
-
9
- & .wrapper-card-1 {
10
- display: flex;
11
- flex-direction: column;
12
- gap: 0.38rem;
13
- }
14
-
15
- & .wrapper-card-2 {
16
- display: flex;
17
- flex-direction: column;
18
- gap: 0;
19
- }
20
-
21
- & .wrapper-card-3 {
22
- display: flex;
23
- flex-wrap: wrap;
24
- gap: 0.25rem;
25
-
26
- & > div {
27
- & > div {
28
- width: 100% !important;
29
- }
30
- }
31
- }
32
-
33
- & .tag {
34
- height: 1.5rem;
35
- gap: 0.25rem;
36
- padding: 0.25rem 0.375rem;
37
- border-radius: 0.375rem;
38
- background: #f9fafb;
39
- border: 1px solid var(--gray-95012, #14161a1f);
40
- font-weight: 400;
41
- font-size: 0.75rem;
42
- line-height: 1rem;
43
- letter-spacing: 0.025rem;
44
- color: var(--gray-950, #14161a);
45
- white-space: nowrap;
46
- flex: 0 0 auto;
47
-
48
- & i {
49
- color: var(--yellow-500, #f59e0b);
50
- }
51
- }
52
-
53
- & .tag-mobile {
54
- font-weight: 400;
55
- font-size: 0.75rem;
56
- line-height: 1rem;
57
- letter-spacing: 0.025rem;
58
- color: var(--gray-600, #676e79);
59
- }
60
-
61
- & .card-title {
62
- font-size: 0.875rem;
63
- font-weight: 600;
64
- ${t.truncateTextInRows(2)}
65
- }
66
-
67
- & .price-text {
68
- font-size: 1rem;
69
- font-weight: 600;
70
- ${t.truncateText()}
71
- display: flex;
72
- align-items: end;
73
- gap: 0.5rem;
74
- color: var(--gray-950, #14161a);
75
-
76
- &.new-price {
77
- color: var(--danger-600, #e11d48);
78
- }
79
-
80
- & .full-price {
81
- text-decoration: line-through;
82
- font-size: 0.75rem;
83
- font-weight: 400;
84
- padding-bottom: 0.125rem;
85
- color: var(--gray-600, #676e79);
86
- }
87
- }
88
-
89
- & .location-text {
90
- font-size: 0.75rem;
91
- font-weight: 400;
92
- color: var(--gray-600, #676e79);
93
- ${t.truncateText()}
94
- }
95
-
96
- & .tags-wrapper {
97
- display: flex;
98
- gap: 0.5rem;
99
- }
100
-
101
- & .skeleton-img {
102
- background-color: ${t.linearGradientAnimation("-90deg")};
103
- border-radius: 0.75rem;
104
- border: 1px solid white;
105
- width: 100%;
106
- height: 11rem;
107
- }
108
-
109
- & .skeleton-title {
110
- background-color: ${t.linearGradientAnimation("-90deg")};
111
- width: 100%;
112
- height: 2.5rem;
113
- }
114
-
115
- & .skeleton-tags {
116
- background-color: ${t.linearGradientAnimation("-90deg")};
117
- width: 80%;
118
- height: 1.5rem;
119
- }
120
-
121
- & .skeleton-price {
122
- background-color: ${t.linearGradientAnimation("-90deg")};
123
- width: 50%;
124
- height: 2.5rem;
125
- }
126
-
127
- & .skeleton-sponsored {
128
- background-color: ${t.linearGradientAnimation("-90deg")};
129
- width: 50%;
130
- height: 1rem;
131
- }
132
-
133
- & .tags-popover__trigger {
134
- display: flex;
135
- gap: 0.25rem;
136
- }
137
-
138
- @media (max-width: ${R.MOBILE_SIZE_PX+"px"}) {
139
- overflow: visible;
140
-
141
- & .tags-popover__trigger {
142
- flex-wrap: wrap;
143
- }
144
-
145
- & .price-text {
146
- font-size: 0.875rem;
147
- font-weight: 600;
148
-
149
- & .full-price {
150
- display: none;
151
- }
152
- }
153
- }
154
-
155
- &:hover .product-image-wrapper img {
156
- transform: scale(1.1);
157
- }
158
- `,ge=N.styled.div`
159
- position: relative;
160
- overflow: hidden;
161
- border-radius: 0.75rem;
162
- width: 100%;
163
- aspect-ratio: 1 / 1;
164
- border: 1px solid #0c15201f;
165
-
166
- & .bookmarking-btn {
167
- position: absolute;
168
- right: 0.5rem;
169
- top: 0.5rem;
170
- z-index: 1;
171
-
172
- display: none;
173
- }
174
-
175
- &:hover {
176
- & .bookmarking-btn {
177
- display: flex;
178
- }
179
- }
180
-
181
- & img {
182
- display: block;
183
- width: 100%;
184
- height: 100%;
185
- object-fit: cover;
186
- border-radius: 0.75rem;
187
- transition: var(--transition, all 0.3s ease);
188
- }
189
-
190
- @media (max-width: ${R.MOBILE_SIZE_PX+"px"}) {
191
- & img {
192
- width: 8.875rem;
193
- height: 8.875rem;
194
- min-width: 8.875rem;
195
- min-height: 8.875rem;
196
- object-fit: cover;
197
- }
198
-
199
- & .bookmarking-btn {
200
- display: flex;
201
- }
202
- }
203
- `,he=N.styled.div`
204
- background: var(--white, #fff);
205
- z-index: 1;
206
-
207
- border: 1px solid var(--gray-200, #dddfe4);
208
- border-radius: 0.5rem;
209
- line-height: 1rem;
210
- position: absolute;
211
- padding: 0.5rem 0.75rem;
212
- top: 0.5rem;
213
- left: 25%;
214
- transform: translateX(-50%);
215
- min-width: 13rem;
216
-
217
- &::before,
218
- &::after {
219
- content: "";
220
- position: absolute;
221
- left: 50%;
222
- transform: translateX(-50%);
223
- border-style: solid;
224
- border-width: 0.625rem;
225
- }
226
-
227
- &::after {
228
- top: -1.1875rem;
229
- border-color: transparent transparent var(--white, #fff) transparent;
230
- }
231
-
232
- &::before {
233
- top: -1.25rem;
234
- border-color: transparent transparent var(--gray-200, #dddfe4) transparent;
235
- }
236
-
237
- & .tags-popover__content {
238
- display: flex;
239
- flex-wrap: wrap;
240
- flex-direction: column;
241
- gap: 0.375rem;
242
- font-size: 0.75rem;
243
- font-weight: 400;
244
-
245
- & .tags-popover__name {
246
- color: var(--gray-600, #676e79);
247
- }
248
-
249
- & .tags-popover__value {
250
- color: var(--gray-950, #14161a);
251
- }
252
- }
253
- `,fe=N.styled.div`
254
- display: flex;
255
- align-items: center;
256
- gap: 0.25rem;
257
- color: var(--gray-500);
258
- font-size: 0.75rem;
259
- font-weight: 500;
260
-
261
- & i {
262
- font-size: 1rem;
263
- color: var(--warning-500, #F59E0B);
264
- }
265
- `,ve=a.forwardRef(({sponsoredText:p="Sponsored"},w)=>e.jsxs(fe,{ref:w,className:"sponsored-line",children:[e.jsx("i",{className:"mng-lnc-paw2"}),e.jsx("span",{children:p})]})),we="Vehicles_Cars",be="Vehicles_Motorcycles",ye="Vehicles_Trucks",je="Vehicles_AgriculturalMachines_Tractors",ke="Vehicles_ConstructionMachines",_e="Vehicles_Bus",xe="Vehicles_Campers",Ne="RealEstates_",i={Mileage:{icon:"mng-lnc-road",measure:"km"},YearOfProduction:{icon:"mng-lnc-calendar",measure:""},Fuel:{icon:"mng-lnc-gas-station",measure:""},EnginePowerKW:{icon:"mng-lnc-engine",measure:"kW"},Transmission:{icon:"mng-lnc-transmission",measure:""},Model:{icon:"mng-lnc-application",measure:""},Brand:{icon:"mng-lnc-car--front",measure:""},SurfaceArea:{icon:"mng-lnc-right-angle",measure:""},Floor:{icon:"mng-lnc-elevator",measure:""},FurnishedCondition:{icon:"mng-lnc-sofa-01",measure:""},AdType:{icon:"mng-lnc-notes",measure:""},NumberOfRooms:{icon:"mng-lnc-meeting-room",measure:""},HeatingType:{icon:"mng-lnc-heat",measure:""},AirConditioning:{icon:"mng-lnc-air-conditioner",measure:""},Type:{icon:"mng-lnc-house-building",measure:""},Parking:{icon:"mng-lnc-parking-area-circle",measure:""},Internet:{icon:"mng-lnc-wifi-02",measure:""},State:{icon:"mng-lnc-settings-1",measure:""},NumberOfPremises:{icon:"mng-lnc-meeting-room",measure:""},Pool:{icon:"mng-lnc-pool",measure:""},Approach:{icon:"mng-lnc-driveway",measure:""},NumberOfBeds:{icon:"mng-lnc-bed",measure:""},Kitchen:{icon:"mng-lnc-fridge",measure:""},BathroomToilet:{icon:"mng-lnc-bath",measure:""},default:{icon:" mng-lnc-clock--filled",measure:""}},Ce=a.forwardRef((p,w)=>{const{uuid:u,name:j,price:h=0,sellingPrice:k,currency:_,isNegotiable:C,isFree:P,imageUrl:A,location:X,sponsored:L,imageComponent:V,onSelectCard:U=()=>{},freeText:Y="Free",negotiableText:K="Negotiable",tags:o=[],categoryCode:$,condition:E,quantity:S,trade:T,sponsoredText:Z,onBookmark:B=()=>{},bookmarkComponent:b,bookmarked:z,bookmarkLists:H}=p,O=ue.useDetectMobile(),J=()=>{var l;if(!t.isDefined(b))return e.jsx(e.Fragment,{});const r=b,n=(l=b==null?void 0:b.props)==null?void 0:l.children,s=a.cloneElement(n,{key:`bookmark_pr__${z}`,bookmarked:z,productUuid:u,onAddToBookmark:()=>B(!0,u),onRemoveFromBookmark:()=>B(!1,u),bookmarkedUuidList:H});return a.cloneElement(r,void 0,s)},M=[we,be,ye,je,ke,_e,xe,Ne].some(r=>$==null?void 0:$.includes(r)),[Q,q]=a.useState(!1),ee=()=>{q(!0)},re=()=>{q(!1)},c=a.useRef(null),f=a.useRef([]),[ne,oe]=a.useState(o==null?void 0:o.length),te=()=>{var l,d,y;if(!(c!=null&&c.current)||((l=f==null?void 0:f.current)==null?void 0:l.length)===0)return;const r=(d=c==null?void 0:c.current)==null?void 0:d.offsetWidth;let n=0,s=0;for(let m=0;m<(o==null?void 0:o.length);m++){const v=((y=f==null?void 0:f.current[m])==null?void 0:y.offsetWidth)||0,g=n+v+4;if(g<=r)n+=g,s++;else break}oe(s)};a.useEffect(()=>{const r=c==null?void 0:c.current;if(!r)return;const n=new ResizeObserver(()=>{te()});return n.observe(r),()=>{n.disconnect()}},[o]);const se=()=>{var r;return e.jsx("div",{className:"tags-popover__trigger",children:(r=o==null?void 0:o.slice(0,ne))==null?void 0:r.map((n,s)=>{var v,g,W,D,I;const l=((v=i==null?void 0:i[n==null?void 0:n.code])==null?void 0:v.icon)??((g=i==null?void 0:i.default)==null?void 0:g.icon)??"",d=((W=n==null?void 0:n.measurementUnit)==null?void 0:W.symbol)??((D=i==null?void 0:i[n==null?void 0:n.code])==null?void 0:D.measure)??"",m=[(n==null?void 0:n.value)??((I=n==null?void 0:n.multiOptions)==null?void 0:I[0])??"",d].filter(Boolean).join(" ");return O?e.jsxs("div",{className:"tag-mobile",children:[m,s<(o==null?void 0:o.length)-1?" · ":""]}):e.jsxs(x,{ref:ce=>f.current[s]=ce,className:"tag",children:[e.jsx("i",{className:l}),m]},`detailed-products-section-tag__${s+1}`)})})},ie=()=>e.jsx("div",{className:"tags-popover__content",children:o==null?void 0:o.map((r,n)=>{var m,v,g;const s=((m=r==null?void 0:r.measurementUnit)==null?void 0:m.symbol)??((v=i==null?void 0:i[r==null?void 0:r.code])==null?void 0:v.measure)??"",d=[(r==null?void 0:r.value)??((g=r==null?void 0:r.multiOptions)==null?void 0:g[0])??"",s].filter(Boolean).join(" "),y=r==null?void 0:r.name;return e.jsxs("div",{children:[e.jsx("span",{className:"tags-popover__name",children:`${y}: `}),e.jsx("span",{className:"tags-popover__value",children:d})]},`detailed-products-section-tag-dropdown__${n+1}`)})}),ae=()=>{var r;if(O){const n=[E,S,T];return(r=n==null?void 0:n.filter(s=>t.isDefinedNotEmptyString(s)))==null?void 0:r.map((s,l,d)=>e.jsxs("div",{className:"tag-mobile",children:[s,l<(d==null?void 0:d.length)-1?" · ":""]}))}return e.jsxs(e.Fragment,{children:[E&&e.jsx(x,{className:"tag",children:E},"detailed-products-section-tag__condition"),S&&e.jsx(x,{className:"tag",children:S},"detailed-products-section-tag__quantity"),T&&e.jsx(x,{className:"tag",children:T},"detailed-products-section-tag__trade")]})},F=h>0&&_&&C!==!0&&P!==!0&&h!==k;return e.jsxs(G,{ref:c,className:"product-card",onClick:U,children:[e.jsxs(ge,{className:"product-image-wrapper",children:[e.jsx(J,{}),t.isDefined(V)?V:e.jsx(le.ProductImageWrapper,{src:A})]}),e.jsx("div",{className:"wrapper-card-1",children:e.jsx("div",{className:"card-title",children:j})}),e.jsxs("div",{className:"wrapper-card-3",children:[M&&e.jsx("div",{...O?{}:{onMouseEnter:ee,onMouseLeave:re},children:e.jsxs(de,{placement:"bottom",open:Q,children:[e.jsx(me,{children:se()}),e.jsx(pe,{style:{all:"unset"},children:e.jsx(he,{children:ie()})})]})}),!M&&ae()]}),e.jsxs("div",{className:"wrapper-card-2",children:[e.jsxs("div",{className:`price-text ${F?"new-price":""}`,children:[k>0&&_&&C!==!0&&P!==!0&&e.jsx("div",{children:`${t.formatPrice(k)} ${t.GetCurrencySymbol(_)}`}),F&&e.jsx("div",{className:`${k>0?"full-price":""}`,children:`${t.formatPrice(h)} ${t.GetCurrencySymbol(_)}`}),C&&K,P&&Y]}),e.jsx("div",{className:"location-text",children:X})]}),L===!0&&e.jsx(ve,{sponsoredText:Z})]})}),Pe=a.forwardRef(({},p)=>e.jsxs(G,{className:"product-card",children:[e.jsx("img",{className:"skeleton-img"}),e.jsxs("div",{className:"wrapper-card-1",children:[e.jsx("div",{className:"skeleton-title"}),e.jsx("div",{className:"skeleton-tags"})]}),e.jsxs("div",{className:"wrapper-card-1",children:[e.jsx("div",{className:"skeleton-price"}),e.jsx("div",{className:"skeleton-sponsored"})]})]})),$e=({limit:p=5,isLoading:w=!1,keyPrefix:u})=>e.jsx(e.Fragment,{children:Array.from({length:p},(j,h)=>e.jsx(Pe,{isLoading:w},`${u}-skeleton-product-card-${h}`))}),Ee=({children:p,fallbackComponent:w=e.jsx(e.Fragment,{}),isLoading:u=!1,limit:j,keyPrefix:h})=>e.jsx(a.Suspense,{fallbackComponent:w,children:u===!0?e.jsx($e,{isLoading:u,limit:j,keyPrefix:h}):p});exports.DetailedProductCard=Ce;exports.SuspenseDetailedProductCard=Ee;