stone-kit 0.0.887 → 0.0.889

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 (146) hide show
  1. package/dist/App.js +10 -0
  2. package/dist/ButtonState.module-DtW3aevR.js +8 -0
  3. package/dist/FilterWithSave-Bp6rH8Pe.js +2230 -0
  4. package/dist/Menu-CgCfinVZ.js +513 -0
  5. package/dist/Option-BVIm7wOW.js +83 -0
  6. package/dist/PinTrans-D6OZq76b.js +10 -0
  7. package/dist/Router.js +103 -0
  8. package/dist/SmallFilter-C-VKnbkP.js +10 -0
  9. package/dist/components/Button/index.js +4 -0
  10. package/dist/components/Button/ui/Button.js +94 -0
  11. package/dist/components/Button/ui/Button.types.js +15 -0
  12. package/dist/components/CheckBox/CheckBox.js +84 -0
  13. package/dist/components/CheckBox/CheckBox.types.js +1 -0
  14. package/dist/components/CheckBox/index.js +4 -0
  15. package/dist/components/CheckBoxNew/CheckBox.types.js +6 -0
  16. package/dist/components/CheckBoxNew/CheckBoxNew.js +45 -0
  17. package/dist/components/CheckboxSelect/index.js +4 -0
  18. package/dist/components/CheckboxSelect/ui/CheckboxSelect.js +51 -0
  19. package/dist/components/DestinationTab/index.js +4 -0
  20. package/dist/components/DestinationTab/ui/DestinationTab.js +75 -0
  21. package/dist/components/DestinationTab/ui/DestinationTab.types.js +6 -0
  22. package/dist/components/FieldInput/index.js +4 -0
  23. package/dist/components/FieldInput/ui/FieldInput.js +22 -0
  24. package/dist/components/FieldInput/ui/FieldInput.types.js +1 -0
  25. package/dist/components/FilterWithSave/hooks/useFilterWithSave.js +28 -0
  26. package/dist/components/FilterWithSave/ui/FilterWithSave.js +9 -0
  27. package/dist/components/Flex/index.js +4 -0
  28. package/dist/components/Flex/ui/Flex.js +68 -0
  29. package/dist/components/Flex/ui/Flex.types.js +1 -0
  30. package/dist/components/FormModal/ui/ModalForm.js +30 -0
  31. package/dist/components/FormModal/utils/reg.js +6 -0
  32. package/dist/components/GroupedInput/index.js +4 -0
  33. package/dist/components/GroupedInput/ui/GroupedInputs.js +8 -0
  34. package/dist/components/GroupedInput/ui/GroupedInputs.types.js +1 -0
  35. package/dist/components/Input/index.js +4 -0
  36. package/dist/components/Input/ui/Input.js +3346 -0
  37. package/dist/components/Input/ui/Input.types.js +1 -0
  38. package/dist/components/Logo/index.js +4 -0
  39. package/dist/components/Logo/ui/Logo.js +63 -0
  40. package/dist/components/Logo/ui/Logo.types.js +13 -0
  41. package/dist/components/LotCard/hooks/useLotCard.js +31 -0
  42. package/dist/components/LotCard/index.js +4 -0
  43. package/dist/components/LotCard/ui/LotCard.js +11 -0
  44. package/dist/components/LotCard/ui/LotCard.types.d.ts +163 -70
  45. package/dist/components/LotCard/ui/LotCard.types.js +1 -0
  46. package/dist/components/LotCard/utils/checkBedroomsCount.js +20 -0
  47. package/dist/components/LotCard/utils/const.js +11 -0
  48. package/dist/components/LotCard/utils/formatPrice.js +11 -0
  49. package/dist/components/LotCard/utils/getTagsFeatures.js +13 -0
  50. package/dist/components/LotCard/utils/monthlyPayment.js +4 -0
  51. package/dist/components/LotCardSkeleton/index.js +4 -0
  52. package/dist/components/LotCardSkeleton/ui/LotCardSkeleton.js +83 -0
  53. package/dist/components/MetroLabel/ui/MetroLabel.js +44 -0
  54. package/dist/components/MetroLabel/ui/MetroLabel.types.js +1 -0
  55. package/dist/components/MetroTag/index.js +4 -0
  56. package/dist/components/MetroTag/ui/MetroTag.js +142 -0
  57. package/dist/components/MetroTag/ui/MetroTag.types.js +1 -0
  58. package/dist/components/Modal/index.js +4 -0
  59. package/dist/components/Modal/ui/Modal.js +77 -0
  60. package/dist/components/Modal/ui/Modal.types.js +1 -0
  61. package/dist/components/ModalSuccess/ModalSuccess.js +61 -0
  62. package/dist/components/ModalSuccess/ModalSuccess.types.js +1 -0
  63. package/dist/components/NewIcon/icons/PinTrans.js +6 -0
  64. package/dist/components/NewIcon/icons/SmallFilter.js +6 -0
  65. package/dist/components/NewIcon/index.js +4 -0
  66. package/dist/components/NewIcon/ui/NewIcon.js +319 -0
  67. package/dist/components/NewIcon/ui/NewIcon.types.js +1 -0
  68. package/dist/components/NewIcon/ui/iconTypes.js +60 -0
  69. package/dist/components/ProjectCardSkeleton/index.js +4 -0
  70. package/dist/components/ProjectCardSkeleton/ui/ProjectCardSkeleton.js +34 -0
  71. package/dist/components/RoundButton/index.js +4 -0
  72. package/dist/components/RoundButton/ui/RoundButton.js +73 -0
  73. package/dist/components/RoundButton/ui/RoundButton.types.js +16 -0
  74. package/dist/components/Select/index.js +4 -0
  75. package/dist/components/Select/model/selectMode.js +49 -0
  76. package/dist/components/Select/ui/Category.js +76 -0
  77. package/dist/components/Select/ui/Option.js +7 -0
  78. package/dist/components/Select/ui/Select.js +179 -0
  79. package/dist/components/Select/ui/Select.types.js +1 -0
  80. package/dist/components/SliderNavigation/index.js +4 -0
  81. package/dist/components/SliderNavigation/ui/SliderNavigation.js +65 -0
  82. package/dist/components/SliderNavigation/ui/SliderNavigation.types.js +1 -0
  83. package/dist/components/SortSelect/hooks/useSortSelect.js +6 -0
  84. package/dist/components/SortSelect/index.js +4 -0
  85. package/dist/components/SortSelect/ui/SortSelect.js +29 -0
  86. package/dist/components/SortSelect/ui/SortSelect.types.js +1 -0
  87. package/dist/components/SummarySelect/index.js +4 -0
  88. package/dist/components/SummarySelect/ui/SummarySelect.js +128 -0
  89. package/dist/components/Switcher/index.js +4 -0
  90. package/dist/components/Switcher/ui/Switcher.js +49 -0
  91. package/dist/components/Switcher/ui/Switcher.types.js +1 -0
  92. package/dist/components/TabSelect/index.js +4 -0
  93. package/dist/components/TabSelect/ui/TabSelect.js +49 -0
  94. package/dist/components/TabSelect/ui/TabSelect.types.js +1 -0
  95. package/dist/components/TabSwitcher/index.js +4 -0
  96. package/dist/components/TabSwitcher/ui/TabSwitcher.js +28 -0
  97. package/dist/components/TabSwitcher/ui/TabSwitcher.types.js +1 -0
  98. package/dist/components/Tag/index.js +4 -0
  99. package/dist/components/Tag/ui/Tag.js +79 -0
  100. package/dist/components/Tag/ui/Tag.types.js +20 -0
  101. package/dist/components/Text/index.js +4 -0
  102. package/dist/components/Text/ui/Text.js +22 -0
  103. package/dist/components/Text/ui/Text.types.js +1 -0
  104. package/dist/components/TextArea/TextArea.js +19 -0
  105. package/dist/components/TextArea/TextArea.types.js +1 -0
  106. package/dist/components/ZoomControls/index.js +4 -0
  107. package/dist/components/ZoomControls/ui/ZoomControls.js +31 -0
  108. package/dist/components/ZoomControls/ui/ZoomControls.types.js +1 -0
  109. package/dist/components/mobileButton/index.js +4 -0
  110. package/dist/components/mobileButton/ui/MobileButton.js +64 -0
  111. package/dist/components/mobileButton/ui/MobileButton.types.js +6 -0
  112. package/dist/index-DQgqDqGf.js +34046 -0
  113. package/dist/index-DmANy9jd.js +890 -0
  114. package/dist/index-rKuIKazb.js +45 -0
  115. package/dist/layout/Layout.js +11 -0
  116. package/dist/layout/components/Header/Header.js +164 -0
  117. package/dist/layout/components/Menu.js +28 -0
  118. package/dist/main.js +62 -7727
  119. package/dist/pages/ButtonsPage/ButtonState/ButtonState.js +121 -0
  120. package/dist/pages/ButtonsPage/Buttons.js +134 -0
  121. package/dist/pages/CheckboxPage/CheckboxPage.js +224 -0
  122. package/dist/pages/FormsPage/FormsPage.js +81 -0
  123. package/dist/pages/HomePage/HomePage.js +7 -0
  124. package/dist/pages/IconsPage/IconsPage.js +41 -0
  125. package/dist/pages/InputPage/InputPage.js +35 -0
  126. package/dist/pages/LogoPage/LogoPage.js +38 -0
  127. package/dist/pages/LotsPage/LotsPage.js +75 -0
  128. package/dist/pages/LotsPage/const.d.ts +4 -0
  129. package/dist/pages/LotsPage/const.js +210 -0
  130. package/dist/pages/ModalsPage/ModalPage.js +130 -0
  131. package/dist/pages/SelectPage/SelectPage.js +175 -0
  132. package/dist/pages/SelectPage/const.js +35 -0
  133. package/dist/pages/TabsPage/TabsPage.js +155 -0
  134. package/dist/pages/TagsPage/TagsPage.js +75 -0
  135. package/dist/shared/checkLargeOffice.js +12 -0
  136. package/dist/shared/deepEqual.js +16 -0
  137. package/dist/shared/useClientWidth.js +14 -0
  138. package/dist/stories/Button.js +23 -0
  139. package/dist/stories/Button.stories.js +50 -0
  140. package/dist/stories/Header.js +44 -0
  141. package/dist/stories/Header.stories.js +28 -0
  142. package/dist/stories/Page.js +58 -0
  143. package/dist/stories/Page.stories.js +22 -0
  144. package/dist/style.css +1 -1
  145. package/dist/useSortSelect-CjZXLFOG.js +80 -0
  146. package/package.json +1 -2
@@ -1,50 +1,5 @@
1
1
  /// <reference types="react" />
2
- interface IMetro {
3
- name: string | null;
4
- color: string | null;
5
- station: string | null;
6
- timeTo: string | null;
7
- }
8
- interface IFeatures {
9
- category: string | null;
10
- icoImg: {
11
- attributes: {
12
- url: string;
13
- };
14
- } | null;
15
- slug: string | null;
16
- val: string | null;
17
- }
18
- interface IGeo {
19
- lat: string | null;
20
- lon: string | null;
21
- }
22
- interface IProject {
23
- address: string | null;
24
- buildingYear: number | null;
25
- createdAt: string | null;
26
- direction: number | null;
27
- features: IFeatures[] | null;
28
- geo: IGeo | null;
29
- id: number;
30
- logoImg: string | null;
31
- metro: IMetro[];
32
- name: string;
33
- project: string;
34
- shortDesc: string;
35
- sitPlanImg: string;
36
- sort: number;
37
- sortOffice: number | null;
38
- sortRetail: number | null;
39
- updatedAt: string;
40
- buildingQuarter: number;
41
- projectUuid: string;
42
- portalUuid: string;
43
- location: string;
44
- showPriceFlg: boolean | null;
45
- lotsCount: number | null;
46
- }
47
- interface ILotPromo {
2
+ interface LotPromo {
48
3
  /** Промо текст */
49
4
  val: string;
50
5
  /** Идентификатор */
@@ -52,19 +7,21 @@ interface ILotPromo {
52
7
  /** Категория */
53
8
  category: string;
54
9
  /** Ссылка на иконку */
55
- icoImg: string;
10
+ icoImg: string | null;
56
11
  /** hex цвет */
57
12
  color: string;
58
13
  }
59
14
  export interface ILot {
60
15
  /** id Лота */
61
- id: number | string;
16
+ id: number;
62
17
  /** Название проекта */
63
18
  name?: string | null;
64
19
  /** Квартал сдачи */
65
20
  buildingQuarter?: number | null;
21
+ cornerKitchenLiving?: boolean | null;
66
22
  /** uuid Лота из 1с */
67
23
  lotUuid: string;
24
+ /** TODO: убрать */
68
25
  projectUuid: string | null;
69
26
  /** Скидка */
70
27
  discount: string | null;
@@ -75,13 +32,15 @@ export interface ILot {
75
32
  /**id проекта */
76
33
  projectId: number | null;
77
34
  /** Показывать цену или "цена по запросу" */
78
- showPriceFlg: boolean | null;
35
+ showPriceFlg?: boolean | null;
79
36
  /** Цена за квм */
80
- sellingPricePerMeter: string | null;
37
+ sellingPricePerMeter?: string | null;
81
38
  /** цена за метра квадратный за год за аренду */
82
39
  rentPricePerMeterPerYear: string | null;
83
40
  /** аренда за месяц */
84
41
  rentPricePerMonth: string | null;
42
+ /** стороны света */
43
+ cardinalDirections?: string[] | null;
85
44
  /** Размер скидки */
86
45
  discountVolume: number | null;
87
46
  /** Цена со скидкой */
@@ -91,17 +50,19 @@ export interface ILot {
91
50
  /** дата, до которой должны быть выданы ключи */
92
51
  handoverKeys: string | null;
93
52
  /** состояние лота: свободен, зарезервирован, продан, сдан в аренду, заблокирован, деактивирован */
94
- status: number | null;
53
+ status?: number | null;
95
54
  /** Статус аренды лота */
96
55
  rentStatus: number | null;
97
56
  /** название лота в 1С */
98
- number: string | null;
57
+ number: string | null | undefined;
99
58
  /** полный адрес лота (с корпусом) */
100
59
  address: string | null;
60
+ /** коммерческие программы рассрочки */
61
+ termsOfPurchase: string[] | null;
101
62
  /** Тип помещения => Квартиры/Пентхаусы/Келлеры/Паркинг Офисы/Ритейл/Офисные Блоки/Паркинг */
102
63
  type: number | null;
103
64
  /** Название помещения => Квартиры/Пентхаусы/Келлеры/Паркинг Офисы/Ритейл/Офисные Блоки/Паркинг */
104
- typeName: number | null;
65
+ typeName: string | null;
105
66
  /** направления, по которым продвигается этот лот */
106
67
  direction: number | null;
107
68
  /** Размерность спален S/M/L */
@@ -122,7 +83,6 @@ export interface ILot {
122
83
  floor: number | null;
123
84
  /** Высота потолков */
124
85
  ceiling: string | null;
125
- /** Последний этаж лота */
126
86
  /** Этаж, с которого начинаются продаваемые лоты */
127
87
  saleFloorMin: number | null;
128
88
  /** Этаж, на котором заканчиваются продаваемые лоты */
@@ -146,10 +106,10 @@ export interface ILot {
146
106
  /** угловое? */
147
107
  isCorner: boolean | null;
148
108
  /** Квартира с террасой */
149
- terrace: boolean | null;
109
+ terrace?: boolean | null;
150
110
  /** общепит? */
151
111
  isCatering: boolean | null;
152
- pdfPresentation: string | null;
112
+ pdfPresentation: string | null | undefined;
153
113
  /** является ли лот отдельно стоящим зданием */
154
114
  isDetachedBuilding: boolean | null;
155
115
  /** Наличие телефона */
@@ -159,11 +119,11 @@ export interface ILot {
159
119
  /** мусоропровод */
160
120
  isGarbageTube: boolean | null;
161
121
  /** Является ли лот пентхаусом */
162
- isPenthouse: boolean | null;
122
+ isPenthouse?: boolean | null;
163
123
  /** Является ли лот апартаментом */
164
124
  isApart: boolean | null;
165
125
  /** Является ли лот двухуровневым */
166
- isDoubleLevel: boolean | null;
126
+ isDoubleLevel?: boolean | null;
167
127
  /** Есть ли пандус */
168
128
  isRamp: boolean | null;
169
129
  /** Близко ли вход к лифтовой группе */
@@ -175,28 +135,35 @@ export interface ILot {
175
135
  /** Есть ли отделка */
176
136
  isFacing: boolean | null;
177
137
  /** Особенности квартиры */
178
- features: IFeatures[] | null;
138
+ features: LotFeature[] | null;
179
139
  /** Количество пассажирских лифтов */
180
140
  liftPassenger: number | null;
181
141
  /** Количество грузовых лифтов */
182
142
  liftService?: number | null;
183
143
  /** Количество балконов */
184
144
  balcony: number | null;
145
+ bathroomWithWindow: boolean | null;
146
+ dressingRoom: boolean | null;
147
+ masterBedroom: boolean | null;
148
+ workroom: boolean | null;
149
+ objectId: string;
150
+ reservations: unknown[];
151
+ businessType: string | null;
185
152
  /** Количество лоджий */
186
- loggia: number | null;
153
+ loggia?: number | null;
187
154
  /** Состояние помещения */
188
155
  condition: string | null;
189
156
  /** Тип входа в помещений */
190
157
  inputType?: string | null;
191
158
  /** Отделка */
192
- decoration: string | null;
159
+ decoration?: string | null;
193
160
  /** Тип планировки */
194
161
  layout: string | null;
195
162
  /** Тип ремонта */
196
163
  repairType: string | null;
197
164
  slug: string;
198
165
  /** количество стояков с водой */
199
- waterPipesCount: number[] | null;
166
+ waterPipesCount?: number[] | null;
200
167
  /** количество рабочих мест */
201
168
  workPlacesCount: number | null;
202
169
  /** Количество совместных санузлов */
@@ -207,12 +174,12 @@ export interface ILot {
207
174
  showcaseWindows: string | null;
208
175
  /** Вид из окна */
209
176
  windowView: string | null;
210
- /** Виды/выходы для типа ритейл */
177
+ /** Вид из окна для ритейла*/
211
178
  windowViews: string[];
212
179
  /** Promo метки */
213
- promo: ILotPromo[] | null;
180
+ promo: LotPromo[] | null;
214
181
  /** Promo текст */
215
- promoText: string | null;
182
+ promoText?: string | null;
216
183
  /** Ссылка на картинку */
217
184
  interiorPlanImg?: string | null;
218
185
  /** Ссылка на картинку */
@@ -224,7 +191,7 @@ export interface ILot {
224
191
  /** Дата обновления */
225
192
  updatedAt?: string;
226
193
  /** Первоначальный взнос */
227
- firstPaymentSum?: string;
194
+ firstPaymentSum?: string | null;
228
195
  /** Массив с лотами в фоисных блоках */
229
196
  childLots?: {
230
197
  id: number;
@@ -232,15 +199,120 @@ export interface ILot {
232
199
  floorPlanImg: string;
233
200
  interiorPlanImg: string;
234
201
  }[];
235
- cornerKitchenLiving?: boolean | null;
236
202
  recommended?: ILot[] | null;
237
203
  parking?: ILot[] | null;
238
- project?: IProject | null;
204
+ project?: LotProject | null;
239
205
  isWaterPipes?: boolean | null;
240
206
  azimuthAngle?: number | null;
241
207
  isDecoration?: boolean | null;
242
- subTypeName: string;
243
- subType?: number;
208
+ subTypeName?: string | null;
209
+ subType: number | null;
210
+ }
211
+ export interface LotFeature {
212
+ /** Текст */
213
+ val: string;
214
+ /** Категория */
215
+ category: string;
216
+ /** Ссылка на иконку */
217
+ icoImg: string | null;
218
+ /** Идентификатор */
219
+ slug: string;
220
+ isSearchable?: boolean | null;
221
+ }
222
+ export interface LotCardFeature {
223
+ /** Текст */
224
+ val: string;
225
+ /** Категория */
226
+ category: string;
227
+ /** Ссылка на иконку */
228
+ icoImg: {
229
+ attributes: IDefaultImg;
230
+ id: number;
231
+ } | null;
232
+ /** Идентификатор */
233
+ slug: string;
234
+ }
235
+ export interface LotProject {
236
+ direction: number;
237
+ discount: string;
238
+ /** id */
239
+ id: number;
240
+ /** Название проекта */
241
+ name: string;
242
+ /** адрес */
243
+ address: string;
244
+ /** особенности, набор строк */
245
+ features: LotFeature[] | null;
246
+ frontFeatures: unknown;
247
+ geo: {
248
+ lat: string;
249
+ long: string;
250
+ };
251
+ logoImg: unknown;
252
+ minimalLotPrice: {
253
+ [key: number]: string;
254
+ };
255
+ retailLotsCount: {
256
+ [key: number]: number;
257
+ };
258
+ salesOffice: unknown;
259
+ shortDesc: string;
260
+ showCatalog: boolean;
261
+ showDetailPage: boolean;
262
+ showPdfBtn: boolean;
263
+ /** условия для больших лотов */
264
+ bigLotFeatures: LotCardFeature;
265
+ /** условия для каталога */
266
+ catalogFeatures: LotCardFeature[];
267
+ /** квартал сдачи */
268
+ buildingQuarter?: number | null;
269
+ /** Локация */
270
+ location?: string | null;
271
+ /** год сдачи */
272
+ buildingYear?: number;
273
+ /** широта */
274
+ lat?: string;
275
+ /** долгота */
276
+ long?: string;
277
+ /** сортровка */
278
+ sort: number | null;
279
+ /** Дата создания */
280
+ createdAt: string;
281
+ /** Дата обновления */
282
+ updatedAt: string;
283
+ /** Расстояние до метро */
284
+ metro: Metro[];
285
+ /** Показывать цену лотов */
286
+ showPriceFlg?: boolean;
287
+ /** uuid */
288
+ uuid?: string;
289
+ /** Статус проекта */
290
+ status: string;
291
+ /** Количество лотов проекта в продаже */
292
+ lotsCount?: number | null;
293
+ /** SitPlan проекта */
294
+ sitPlanImg: string;
295
+ strapiSlug?: string;
296
+ sortOffice?: number;
297
+ sortRetail?: number;
298
+ }
299
+ export interface Metro {
300
+ /** Цвет ветки */
301
+ color: string;
302
+ /** Широта */
303
+ lat?: number;
304
+ /** Долгота */
305
+ long?: number;
306
+ /** Название станции */
307
+ name: string;
308
+ station?: string | null;
309
+ /** Время до станции в минутах */
310
+ timeTo: number;
311
+ mode: null | string;
312
+ /** Иконка */
313
+ icon?: {
314
+ data?: IDefaultImg;
315
+ } | null;
244
316
  }
245
317
  export interface ILotCard {
246
318
  lot: ILot;
@@ -253,4 +325,25 @@ export interface ILotCard {
253
325
  imgNode?: React.ReactNode;
254
326
  rowConditions?: boolean;
255
327
  }
328
+ export interface IDefaultImg extends IDefaultAttributes {
329
+ alternativeText: string | null;
330
+ caption: string | null;
331
+ ext: string;
332
+ formats: unknown;
333
+ hash: string;
334
+ height: number;
335
+ mime: string;
336
+ name: string;
337
+ previewUrl: unknown;
338
+ provider: string;
339
+ provider_metadata?: unknown;
340
+ size: number;
341
+ url: string;
342
+ width?: number;
343
+ }
344
+ export interface IDefaultAttributes {
345
+ createdAt: string;
346
+ updatedAt: string;
347
+ publishedAt: string;
348
+ }
256
349
  export {};
@@ -0,0 +1,20 @@
1
+ const t = (e) => {
2
+ if (!e || typeof e != "number" || e < 1)
3
+ return "Студия";
4
+ const s = e % 10, r = e % 100;
5
+ if (r >= 11 && r <= 19)
6
+ return `${e} спален`;
7
+ switch (s) {
8
+ case 1:
9
+ return `${e} спальня`;
10
+ case 2:
11
+ case 3:
12
+ case 4:
13
+ return `${e} спальни`;
14
+ default:
15
+ return `${e} спален`;
16
+ }
17
+ };
18
+ export {
19
+ t as checkBedroomsCount
20
+ };
@@ -0,0 +1,11 @@
1
+ const o = {
2
+ 1: "Офис",
3
+ 2: "Крупные лоты",
4
+ 3: "Ритейл",
5
+ 4: "Паркинг",
6
+ 8: "Офис",
7
+ 11: "Здание"
8
+ };
9
+ export {
10
+ o as OFFICE_TYPES
11
+ };
@@ -0,0 +1,11 @@
1
+ const s = (r, t, o) => {
2
+ if (!r && o === 2)
3
+ return " ";
4
+ if (!r)
5
+ return "Цена по запросу";
6
+ const e = t ? " ₽/м²" : " ₽";
7
+ return Number(r).toLocaleString() + e;
8
+ };
9
+ export {
10
+ s as formatPrice
11
+ };
@@ -0,0 +1,13 @@
1
+ const x = ({
2
+ loggia: e,
3
+ cornerKitchenLiving: s,
4
+ terrace: u,
5
+ isPenthouse: p,
6
+ isDoubleLevel: r
7
+ }) => {
8
+ const t = [];
9
+ return e && t.push({ text: "Балкон" }), s && t.push({ text: "Угловая" }), u && t.push({ text: "Терраса" }), p && t.push({ text: "Пентхаус" }), r && t.push({ text: "Двухуровневая" }), t;
10
+ };
11
+ export {
12
+ x as getTagsFeatures
13
+ };
@@ -0,0 +1,4 @@
1
+ const r = (e) => `Ежемесячный платеж от ${Number(e.replace(/\s/g, "")).toLocaleString()} ₽`;
2
+ export {
3
+ r as formatPayment
4
+ };
@@ -0,0 +1,4 @@
1
+ import { LotCardSkeleton as r } from "./ui/LotCardSkeleton.js";
2
+ export {
3
+ r as LotCardSkeleton
4
+ };
@@ -0,0 +1,83 @@
1
+ import { jsxs as p, jsx as e } from "react/jsx-runtime";
2
+ import { c } from "../../../index-rKuIKazb.js";
3
+ const l = "_root_7lz45_12", s = "_projectRoot_7lz45_22", i = "_lotImageWrapper_7lz45_26", a = "_pulsing_7lz45_1", n = "_projectLotImageWrapper_7lz45_37", _ = "_lotInfoWrapper_7lz45_41", m = "_projectLotInfoWrapper_7lz45_48", P = "_infoHeader_7lz45_52", L = "_projectInfoHeader_7lz45_60", d = "_decor_7lz45_64", W = "_lotPropertyListMobile_7lz45_71", j = "_lotPropertyItem_7lz45_79", I = "_projectLotPropertyItem_7lz45_104", y = "_lotPropertyListDesktop_7lz45_109", z = "_lotPriceWrapper_7lz45_113", v = "_projectLotPriceWrapper_7lz45_117", D = "_discountWrapper_7lz45_121", f = "_lotPricePerMetr_7lz45_134", N = "_btnWrapper_7lz45_139", u = "_projectBtnWrapper_7lz45_155", M = "_projectDecor_7lz45_201", k = "_projectLotPropertyListMobile_7lz45_210", b = "_projectLotPropertyListDesktop_7lz45_218", g = "_lotPropertyItemDesktop_7lz45_221", h = "_projectDiscountWrapper_7lz45_232", H = "_discountPrice_7lz45_235", x = "_projectLotPricePerMetr_7lz45_255", t = {
4
+ root: l,
5
+ projectRoot: s,
6
+ lotImageWrapper: i,
7
+ pulsing: a,
8
+ projectLotImageWrapper: n,
9
+ lotInfoWrapper: _,
10
+ projectLotInfoWrapper: m,
11
+ infoHeader: P,
12
+ projectInfoHeader: L,
13
+ decor: d,
14
+ lotPropertyListMobile: W,
15
+ lotPropertyItem: j,
16
+ projectLotPropertyItem: I,
17
+ lotPropertyListDesktop: y,
18
+ lotPriceWrapper: z,
19
+ projectLotPriceWrapper: v,
20
+ discountWrapper: D,
21
+ lotPricePerMetr: f,
22
+ btnWrapper: N,
23
+ projectBtnWrapper: u,
24
+ projectDecor: M,
25
+ projectLotPropertyListMobile: k,
26
+ projectLotPropertyListDesktop: b,
27
+ lotPropertyItemDesktop: g,
28
+ projectDiscountWrapper: h,
29
+ discountPrice: H,
30
+ projectLotPricePerMetr: x
31
+ }, r = c.bind(t), S = ({ isProjectCard: o }) => /* @__PURE__ */ p("div", { className: r(t.root, { [t.projectRoot]: o }), children: [
32
+ /* @__PURE__ */ e("div", { className: r(t.lotImageWrapper, { [t.projectLotImageWrapper]: o }) }),
33
+ /* @__PURE__ */ p("div", { className: r(t.lotInfoWrapper, { [t.projectLotInfoWrapper]: o }), children: [
34
+ /* @__PURE__ */ e("div", { className: r(t.infoHeader, { [t.projectInfoHeader]: o }) }),
35
+ /* @__PURE__ */ e("div", { className: r(t.decor, { [t.projectDecor]: o }) }),
36
+ /* @__PURE__ */ p(
37
+ "div",
38
+ {
39
+ className: r(t.lotPropertyListDesktop, {
40
+ [t.projectLotPropertyListDesktop]: o
41
+ }),
42
+ children: [
43
+ /* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop }),
44
+ /* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop }),
45
+ /* @__PURE__ */ e("div", { className: t.lotPropertyItemDesktop })
46
+ ]
47
+ }
48
+ ),
49
+ /* @__PURE__ */ p(
50
+ "ul",
51
+ {
52
+ className: r(t.lotPropertyListMobile, {
53
+ [t.projectLotPropertyListMobile]: o
54
+ }),
55
+ children: [
56
+ /* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
57
+ /* @__PURE__ */ e("div", {}),
58
+ /* @__PURE__ */ e("div", {})
59
+ ] }),
60
+ /* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
61
+ /* @__PURE__ */ e("div", {}),
62
+ /* @__PURE__ */ e("div", {})
63
+ ] }),
64
+ /* @__PURE__ */ p("li", { className: r(t.lotPropertyItem, { [t.projectLotPropertyItem]: o }), children: [
65
+ /* @__PURE__ */ e("div", {}),
66
+ /* @__PURE__ */ e("div", {})
67
+ ] })
68
+ ]
69
+ }
70
+ )
71
+ ] }),
72
+ /* @__PURE__ */ p("div", { className: r(t.lotPriceWrapper, { [t.projectLotPriceWrapper]: o }), children: [
73
+ /* @__PURE__ */ e("div", { className: r(t.discountWrapper, { [t.projectDiscountWrapper]: o }), children: /* @__PURE__ */ e("div", {}) }),
74
+ /* @__PURE__ */ e("div", { className: r(t.lotPricePerMetr, { [t.projectLotPricePerMetr]: o }) }),
75
+ /* @__PURE__ */ p("div", { className: r(t.btnWrapper, { [t.projectBtnWrapper]: o }), children: [
76
+ /* @__PURE__ */ e("div", {}),
77
+ /* @__PURE__ */ e("div", {})
78
+ ] })
79
+ ] })
80
+ ] });
81
+ export {
82
+ S as LotCardSkeleton
83
+ };
@@ -0,0 +1,44 @@
1
+ import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
+ import { c as _ } from "../../../index-rKuIKazb.js";
3
+ import { NewIcon as m } from "../../NewIcon/ui/NewIcon.js";
4
+ const f = "_root_1ml5t_1", d = "_metroColor_1ml5t_15", N = "_route_1ml5t_25", p = "_auto_1ml5t_35", x = "_full_1ml5t_39", t = {
5
+ root: f,
6
+ metroColor: d,
7
+ route: N,
8
+ auto: p,
9
+ full: x
10
+ }, C = _.bind(t), v = ({ addClassName: c, metro: o, width: n = "full", justifyContent: a = "flex-start", colorIcon: e = "#777E90", ...u }) => /* @__PURE__ */ s(
11
+ "div",
12
+ {
13
+ style: { justifyContent: `${a}` },
14
+ className: C(t.root, c, t[n]),
15
+ ...u,
16
+ children: [
17
+ /* @__PURE__ */ s("div", { className: t.metroColor, children: [
18
+ (o == null ? void 0 : o.color) && /* @__PURE__ */ r("span", { style: { background: (o == null ? void 0 : o.color) ?? "" } }),
19
+ o.name
20
+ ] }),
21
+ o.routes && o.routes.map((l, i) => /* @__PURE__ */ s(
22
+ "div",
23
+ {
24
+ className: t.route,
25
+ children: [
26
+ l.iconName && /* @__PURE__ */ r(
27
+ m,
28
+ {
29
+ size: "20",
30
+ name: l.iconName,
31
+ color: e
32
+ }
33
+ ),
34
+ l.timeTo + " мин"
35
+ ]
36
+ },
37
+ i
38
+ ))
39
+ ]
40
+ }
41
+ );
42
+ export {
43
+ v as MetroLabel
44
+ };
@@ -0,0 +1,4 @@
1
+ import { MetroTag as e } from "./ui/MetroTag.js";
2
+ export {
3
+ e as MetroTag
4
+ };