@omnic/widget-locations 1.0.15 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,48 +1,226 @@
1
- # Super Cool Widget
1
+ # OMNIC Widget Locations
2
2
 
3
- ## Инициализация проекта
3
+ # USAGE
4
4
 
5
- ```bash
6
- $ npm install
5
+ ## Integration in `standalone` mode
6
+
7
+ When build in `standalone` mode the widget exposes `window.OMNIC_WIDGET_LOCATIONS_CONFIG` config object.
8
+ Add script tag to your page and pass the config object to the widget like this:
9
+
10
+ ```html
11
+ <script>
12
+ window.OMNIC_WIDGET_LOCATIONS_CONFIG = {
13
+ INN: "INN",
14
+ locale: "en",
15
+ map: {
16
+ provider: "google",
17
+ center: [55.75, 37.57],
18
+ },
19
+ onPointClick: (point: CallbackPoint) => {
20
+ // TODO: process point click
21
+ },
22
+ };
23
+ </script>
7
24
  ```
8
25
 
9
- ## Сборка в режиме `React` библиотеки
26
+ The `onPointClick` callback will be called when user clicks on a point on the map. The `point` object has the following structure:
10
27
 
11
- ```bash
12
- $ npm run build:lib
28
+ ```typescript
29
+ type Coordinates = [number, number];
30
+
31
+ interface Country {
32
+ uid: string;
33
+ name: string;
34
+ abbreviation: string;
35
+ }
36
+
37
+ interface Region {
38
+ uid: string;
39
+ name: string;
40
+ national_id: string;
41
+ }
42
+
43
+ interface City {
44
+ uid: string;
45
+ name: string;
46
+ region: Region;
47
+ latitude: number;
48
+ country: Country;
49
+ longitude: number;
50
+ national_id: string;
51
+ }
52
+
53
+ interface Location {
54
+ city: City;
55
+ house: string;
56
+ block: string;
57
+ street: string;
58
+ office: string;
59
+ region: Region;
60
+ floor: unknown;
61
+ latitude: number;
62
+ country: Country;
63
+ longitude: number;
64
+ postal_index: string;
65
+ full_address: string;
66
+ }
67
+
68
+ interface LocationPoint {
69
+ uid: string;
70
+ name: string;
71
+ code: string;
72
+ type: number;
73
+ brand: string;
74
+ status: number;
75
+ images: string[];
76
+ schedule: string[];
77
+ max_length: number;
78
+ max_weight: number;
79
+ is_pickup: boolean;
80
+ location: Location;
81
+ description: string;
82
+ is_favorite: boolean;
83
+ pay_by_cash: boolean;
84
+ pay_by_card: boolean;
85
+ is_delivery: boolean;
86
+ near_station?: string;
87
+ location_name?: string;
88
+ is_check_order: boolean;
89
+ round_the_clock: boolean;
90
+ is_dressing_room: boolean;
91
+ near_metro_station?: string;
92
+ }
93
+
94
+ interface CourierPoint {
95
+ coords: Coordinates;
96
+ address: null | string;
97
+ }
98
+
99
+ interface CourierDeliveryPoint extends CourierPoint {
100
+ comment: string;
101
+ pay_by_cash: boolean;
102
+ pay_by_card: boolean;
103
+ delivery_time: string;
104
+ apartment_number: string;
105
+ }
106
+
107
+ // THIS IS THE TYPE OF THE CALLBACK POINT
108
+ type CallbackPoint = LocationPoint | CourierDeliveryPoint;
13
109
  ```
14
110
 
15
- Далее можно перейти в раздел `clients/react`, установить зависимости и протестировать
111
+ Then `OMNIC_WIDGET_LOCATIONS_CONFIG` has the following structure:
16
112
 
17
- ```bash
18
- $ cd clients/react
19
- $ npm install
20
- $ npm link
21
- $ npm run dev
113
+ | Property | Type | Description |
114
+ | -------------------- | -------- | -------------------------------------------------------------------- |
115
+ | INN | string | INN of the company that uses the widget |
116
+ | font | string | Font family to use |
117
+ | radius | number | Border radius of buttons |
118
+ | locale | string | Locale of the widget. Currently supported: `en`, `ru` |
119
+ | country | string | Country code in ISO 3166-1 Alpha-2 format |
120
+ | palette | object | Palette config object |
121
+ | palette.primary | string | Primary color of the widget. Example: `#ff0000` |
122
+ | palette.primary-dark | string | Darker version of the primary color. Example: `#cc0000` |
123
+ | map | object | Map config object. See below for details |
124
+ | map.provider | string | Map provider. Currently supported: `google`, `yandex` |
125
+ | map.center | number[] | Coordinates of the map center. Example: `[55.75, 37.57]` |
126
+ | onPointClick | function | Callback that will be called when user clicks on a point on the map. |
127
+
128
+ Include `styles.css` and `widget.umd.js` in your page:
129
+
130
+ ```html
131
+ <link rel="stylesheet" href="styles.css" />
132
+ <script src="widget.umd.js"></script>
133
+ ```
134
+
135
+ After that you can create a div block with id `@omnic/widget-locations` and widget will be rendered there:
136
+
137
+ ```html
138
+ <div id="@omnic/widget-locations"></div>
22
139
  ```
23
140
 
24
- ## Сборка в режиме `standalone` приложения
141
+ ## Integration in `React` mode
142
+
143
+ When build in `React` mode the widget exposes `Widget` component. First install a package:
25
144
 
26
145
  ```bash
27
- $ npm run build:app
146
+ npm install @omnic/widget-locations
147
+ ```
148
+
149
+ Then import it and use like this:
150
+
151
+ ```tsx
152
+ import React from "react";
153
+ import { Widget } from "@omnic/widget-locations";
154
+ import type { LocationPoint, CourierPoint } from "@omnic/widget-locations";
155
+
156
+ const App = () => {
157
+ const onPointClick = (point: LocationPoint | CourierPoint) => {
158
+ // TODO: process point click
159
+ };
160
+
161
+ return (
162
+ <div id="@omnic/widget-locations">
163
+ <Widget
164
+ config={{
165
+ INN: "INN",
166
+ locale: "en",
167
+ map: {
168
+ provider: "google",
169
+ center: [40.1772, 44.50349],
170
+ },
171
+ radius: 2,
172
+ font: "Roboto",
173
+ palette: {
174
+ primary: "#0cb834",
175
+ "primary-dark": "#079b1f",
176
+ },
177
+ onPointClick: console.log,
178
+ }}
179
+ options={{
180
+ baseURL: "https://widget.omnic.sh",
181
+ }}
182
+ />
183
+ </div>
184
+ );
185
+ };
28
186
  ```
29
187
 
30
- Далее можно перейти в раздел `clients/vanilla`, установить зависимости и протестировать
188
+ `Widget` component has the following props:
189
+
190
+ | Property | Type | Description |
191
+ | --------------- | ------ | -------------------------------------------------------------- |
192
+ | config | object | Config object. See above for details |
193
+ | options | object | Options object |
194
+ | options.baseURL | string | Base URL of the widget API. Example: `https://widget.omnic.sh` |
195
+
196
+ DO NOT FORGET to wrap the widget in a div with id `@omnic/widget-locations`, so that all css styles will be applied correctly.
197
+
198
+ # DEVELOPMENT
199
+
200
+ ## Project setup
201
+
202
+ Install all dependencies:
31
203
 
32
204
  ```bash
33
- $ cd clients/vanilla
34
205
  $ npm install
35
- $ npm run dev
36
206
  ```
37
207
 
38
- ## Локальная разработка
208
+ Then build it in `lib` mode:
209
+
210
+ ```bash
211
+ $ npm run build:lib
212
+ ```
213
+
214
+ or `standalone` mode:
39
215
 
40
216
  ```bash
41
- $ npm run dev
217
+ $ npm run build:app
42
218
  ```
43
219
 
44
- ## Инкапсуляция библиотеки
220
+ Use `npm run dev` to start local development server.
221
+
222
+ # API
45
223
 
46
- Всё API что должно быть доступно клиенту должно быть экспортировано в `src/index.ts` фале.
224
+ All API and components are exposed in `src/index.ts` file.
47
225
 
48
- `src/main.tsx` файл отвечает за рендеринг приложения в режиме `standalone` или в режиме разработки.
226
+ `src/main.tsx` file is responsible for rendering the widget in `standalone` mode or in development mode.
@@ -11,6 +11,9 @@ export type DevtoolAction = {
11
11
  } | {
12
12
  type: "SET_LOCALE";
13
13
  payload: Locale;
14
+ } | {
15
+ type: "SET_COUNTRY";
16
+ payload: string;
14
17
  } | {
15
18
  type: "SET_PALETTE_PRIMARY";
16
19
  payload: HexColor;
@@ -0,0 +1,6 @@
1
+ interface InputProps extends React.HTMLAttributes<HTMLInputElement> {
2
+ label?: string;
3
+ className?: string;
4
+ }
5
+ export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
6
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./Input";
@@ -1,5 +1,7 @@
1
1
  /// <reference types="google.maps" />
2
+ import { LoadScriptProps } from "@react-google-maps/api";
2
3
  export declare const zoom = 10;
4
+ export declare const mapLibraries: LoadScriptProps["libraries"];
3
5
  export declare const mapOptions: google.maps.MapOptions;
4
6
  export declare const markerOptions: google.maps.MarkerOptions;
5
7
  export declare const mountTimeout = 1000;
@@ -7,7 +7,7 @@ interface PointProps {
7
7
  clusterer: MarkerProps["clusterer"];
8
8
  setOpenDetails: (open: boolean) => void;
9
9
  onPointClick: (point: LocationPoint) => void;
10
- setSelectedPoint: (point: null | LocationPoint) => void;
10
+ onPointSelected: (point: null | LocationPoint) => void;
11
11
  }
12
12
  export declare const Point: FC<PointProps>;
13
13
  export {};
@@ -1,12 +1,12 @@
1
- import { City } from '../types/cities';
1
+ /// <reference types="google.maps" />
2
2
  export interface LocationAside {
3
3
  open: boolean;
4
4
  toggle(value?: boolean): void;
5
5
  }
6
6
  interface LocationContextType {
7
- city: City | null;
8
7
  aside: LocationAside;
9
- setCity(city: City | null): void;
8
+ city: null | google.maps.places.PlaceResult;
9
+ setCity(city: null | google.maps.places.PlaceResult): void;
10
10
  }
11
11
  export declare const LocationContext: import("react").Context<LocationContextType>;
12
12
  export declare const useLocationContext: () => LocationContextType;
@@ -1,8 +1,5 @@
1
- import { City } from '../types/cities';
2
- import { Country } from '../types/countries';
1
+ /// <reference types="google.maps" />
3
2
  export declare const useLocation: () => {
4
- city: City | null;
5
- country: Country | null;
6
- setCity: import("react").Dispatch<import("react").SetStateAction<City | null>>;
7
- setCountry: import("react").Dispatch<import("react").SetStateAction<Country | null>>;
3
+ city: google.maps.places.PlaceResult | null;
4
+ setCity: import("react").Dispatch<import("react").SetStateAction<google.maps.places.PlaceResult | null>>;
8
5
  };
@@ -1,2 +1,2 @@
1
1
  import { MapProvider } from '../types/config';
2
- export declare const useMapFactory: (provider: MapProvider) => import("react").FC<import("../types/map").MapProps> | import("react").NamedExoticComponent<import("../types/map").MapProps>;
2
+ export declare const useMapFactory: (provider: MapProvider) => import("react").FC<import("..").MapProps> | import("react").NamedExoticComponent<import("..").MapProps>;
@@ -1,12 +1,10 @@
1
- import { City } from '../types/cities';
2
1
  import { Filter } from '../types/filters';
3
2
  import { CourierPoint, LocationPoint } from '../types/points';
4
3
  interface UsePointsParams {
5
- city?: City;
6
4
  filter: Filter;
7
5
  center?: Coordinates;
8
6
  }
9
- export declare const usePoints: ({ city, filter, center }: UsePointsParams) => {
7
+ export declare const usePoints: ({ filter, center }: UsePointsParams) => {
10
8
  error: boolean;
11
9
  points: LocationPoint[];
12
10
  loaded: boolean;
@@ -1 +1,7 @@
1
1
  export * from "./views/Widget";
2
+ export * from "./types/map";
3
+ export * from "./types/cities";
4
+ export * from "./types/config";
5
+ export * from "./types/countries";
6
+ export * from "./types/points";
7
+ export * from "./types/regions";
@@ -1,9 +1,7 @@
1
- import { City } from '../types/cities';
2
1
  import { PointsList } from '../types/points';
3
2
  import { Filter } from '../types/filters';
4
3
  interface FetchPointsRequestParams {
5
4
  q?: string;
6
- city?: City;
7
5
  bounds?: Bounds;
8
6
  filter?: Filter;
9
7
  }
@@ -12,5 +10,5 @@ interface FetchPointsRequestOptions {
12
10
  onCancel?: () => void;
13
11
  controller?: AbortController;
14
12
  }
15
- export declare function fetchPointsRequest({ q, city, filter, bounds }?: FetchPointsRequestParams, { loading, onCancel, controller }?: FetchPointsRequestOptions): AsyncGenerator<import("axios").AxiosResponse<HttpResponse<PointsList>, any>, import("axios").AxiosResponse<HttpResponse<PointsList>, any>, unknown>;
13
+ export declare function fetchPointsRequest({ q, filter, bounds }?: FetchPointsRequestParams, { loading, onCancel, controller }?: FetchPointsRequestOptions): AsyncGenerator<import("axios").AxiosResponse<HttpResponse<PointsList>, any>, import("axios").AxiosResponse<HttpResponse<PointsList>, any>, unknown>;
16
14
  export {};
@@ -12,9 +12,10 @@ interface MapConfig {
12
12
  }
13
13
  export interface WidgetConfig {
14
14
  font?: string;
15
- map?: MapConfig;
16
- radius?: number;
17
15
  locale?: Locale;
16
+ radius?: number;
17
+ map?: MapConfig;
18
+ country?: string;
18
19
  palette?: Palette;
19
20
  INN: number | string;
20
21
  onPointClick: (point: LocationPoint | CourierDeliveryPoint) => void;
@@ -1 +1 @@
1
- [id="@omnic/widget-locations"]{isolation:isolate;position:relative;font-family:var(--font);width:100%;height:100%}._root_c4o01_17{border:none;font-size:16px;font-weight:600;line-height:20px;cursor:pointer;transition:color .2s ease,background-color .2s ease}._root_c4o01_17:disabled{cursor:default;pointer-events:none;color:var(--color-text-disabled)}button._root_c4o01_17{padding-block:12px;min-width:240px;border-radius:var(--button-radius)}button._primary_c4o01_37{color:var(--color-text-light);background-color:var(--color-primary)}@media (any-hover: hover){button._primary_c4o01_37:hover{background-color:var(--color-primary-dark)}}button._primary_c4o01_37:disabled{background-color:var(--color-border)}button._secondary_c4o01_50{color:var(--color-primary);background-color:var(--color-secondary)}button._secondary_c4o01_50:disabled{background-color:var(--color-border)}a._root_c4o01_17{text-decoration:none}a._primary_c4o01_37{color:var(--color-primary)}@media (any-hover: hover){a._primary_c4o01_37:hover{color:var(--color-primary-dark)}}a._secondary_c4o01_50{color:var(--color-text-disabled)}@media (any-hover: hover){a._secondary_c4o01_50:hover{color:var(--color-text-dark)}}._root_1k7kn_17{display:flex;flex-direction:column;gap:8px}._root_1k7kn_17 ._control_1k7kn_22{min-height:56px;border-color:var(--color-border);border-radius:var(--radius)}._root_1k7kn_17 ._singleValue_1k7kn_27{color:var(--color-primary);font-weight:600;font-size:16px;line-height:20px}._root_1k7kn_17 ._indicatorSeparator_1k7kn_33{display:none}._root_1k7kn_17 ._option_1k7kn_36{padding:16px;font-size:16px;font-weight:600;line-height:20px}._root_1k7kn_17 ._option_1k7kn_36:not(:last-child){border-bottom:1px solid var(--color-border)}._root_1k7kn_17 ._menu_1k7kn_45{border-radius:var(--radius);border-color:var(--color-border)}._root_1k7kn_17 ._clearIndicator_1k7kn_49{cursor:pointer;transition:color .2s ease;color:var(--color-text-disabled)}@media (any-hover: hover){._root_1k7kn_17 ._clearIndicator_1k7kn_49:hover{color:var(--color-primary)}}._root_1k7kn_17 ._dropdownIndicator_1k7kn_59{cursor:pointer;color:var(--color-text-disabled);transition:color .2s ease}@media (any-hover: hover){._root_1k7kn_17 ._dropdownIndicator_1k7kn_59:hover{color:var(--color-primary)}}._root_1k7kn_17 ._dropdownIndicatorFocused_1k7kn_69{color:var(--color-primary)}._root_1k7kn_17 ._indicatorsContainer_1k7kn_72{padding-inline:20px;gap:10px}._root_1k7kn_17 ._valueContainer_1k7kn_76{padding-left:20px}._label_1k7kn_80{font-size:16px;font-weight:600;line-height:22px}._option_1mi6h_17{display:grid;gap:12px;grid-template-columns:auto 1fr auto;align-items:center}._address_1mi6h_24{font-size:14px;font-weight:400;line-height:1.4}._root_1rkap_17{display:flex;align-items:center;gap:10px}@media (min-width: 1280px){._root_1rkap_17{justify-content:space-between}}@media (max-width: 1279px){._root_1rkap_17{flex-direction:column;align-items:flex-start}}._nav_1rkap_34{display:flex;align-items:center;gap:40px}@media (max-width: 1279px){._nav_1rkap_34{width:100%;gap:20px;justify-content:space-between}}._navItem_1rkap_47{text-align:center}@media (max-width: 1279px){._navItem_1rkap_47{font-size:14px}}._locationSelector_1rkap_56{flex:0 1 480px}._root_77he5_17{margin-block:24px;border:none;height:1px;background-color:var(--color-secondary);border-radius:1px}._root_xl1mf_17{appearance:none;background-color:var(--color-text-light);border-radius:100vw;margin:0}._root_xl1mf_17:before{content:"";display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-border);background-color:var(--color-secondary);vertical-align:middle;transition:background-color .2s ease,border-color .2s ease}._root_xl1mf_17:checked:before{background-color:var(--color-primary);border-color:var(--color-primary-dark)}._root_xl1mf_17:disabled{border-color:var(--color-text-disabled);background-color:var(--color-text-disabled)}._root_xl1mf_17:not(:disabled){cursor:pointer}._label_xl1mf_48{display:flex;align-items:center;gap:8px;padding-block:8px;transition:color .2s ease;font-size:14px;font-weight:600;line-height:16px}._label_xl1mf_48:has(._root_xl1mf_17:checked){color:var(--color-primary)}._label_xl1mf_48:has(._root_xl1mf_17:not(:disabled)){cursor:pointer}._root_206i4_17{display:flex;flex-direction:column;gap:10px}._root_x06qj_17{display:flex;flex-direction:column;gap:8px}._body_x06qj_23{display:flex;flex-direction:column}._legend_x06qj_28{font-size:16px;font-weight:600;line-height:22px}._root_1ulgi_17{display:flex;gap:10px;align-items:center;cursor:pointer}._text_1ulgi_24{font-size:16px;line-height:19px}._logo_atmqw_17{margin-bottom:30px}._typeFilter_atmqw_21{margin-bottom:44px}._separator_atmqw_25{margin-top:48px}@media (max-width: 1279px){._currentLocation_atmqw_30{width:100%;justify-content:flex-end}}._root_1fw02_17{position:fixed;top:20px;left:40px;z-index:9999;background-color:var(--color-primary-dark);color:var(--color-text-light);padding:10px;border-radius:var(--radius);display:grid;grid-template-rows:auto 0;overflow:hidden;box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);min-width:280px;transition:opacity .2s ease}._root_1fw02_17._open_1fw02_33{grid-template-rows:auto min-content}._content_1fw02_37{margin-top:10px;display:grid;gap:10px;opacity:0;overflow:hidden}._open_1fw02_33 ._content_1fw02_37{opacity:1}._content_1fw02_37 label{display:grid;gap:5px;font-size:12px}._content_1fw02_37 label span{text-transform:uppercase;font-weight:600;user-select:none}._content_1fw02_37 label input::placeholder{text-transform:uppercase}._header_1fw02_61{display:flex;align-items:center;justify-content:space-between;overflow:hidden;font-size:16px;font-weight:600}._close_1fw02_70{cursor:pointer;transition:transform .2s ease;transform:rotate(45deg)}._open_1fw02_33 ._close_1fw02_70{transform:rotate(0)}._root_19d2n_17{position:fixed;inset:0;opacity:0;transition:opacity .2s ease;isolation:isolate;pointer-events:none;backdrop-filter:blur(5px)}._root_19d2n_17._open_19d2n_26{opacity:1;pointer-events:all}._overlay_19d2n_31{position:absolute;inset:0;width:200%;background-color:#1d366566;z-index:0}._container_19d2n_39{position:absolute;top:0;right:0;bottom:0;z-index:1;width:580px;background-color:var(--color-text-light);transition:transform .2s ease;transform:translate(100%)}._root_19d2n_17._open_19d2n_26 ._container_19d2n_39{transform:translate(0)}._header_19d2n_54{display:grid;padding:20px;grid-template-areas:". close";grid-template-columns:1fr auto;margin-bottom:20px}._close_19d2n_62{grid-area:close;cursor:pointer}._body_19d2n_67{padding:0 30px 30px}._submit_19no7_17{margin-top:20px;width:100%}._option_19no7_22{display:flex;align-items:center;justify-content:space-between}._selector_19no7_28+._selector_19no7_28{margin-top:40px}._root_1nkqp_17{display:flex;flex-direction:column;gap:16px}._root_1nkqp_17 ._submit_1nkqp_22{min-width:unset;padding-inline:32px}._root_1nkqp_17 ._details_1nkqp_26{display:flex;align-items:center;gap:4px}._header_1nkqp_32{display:flex;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}._title_1nkqp_40{font-size:16px;line-height:22px;font-weight:600}._description_1nkqp_46{font-size:14px;font-weight:400;line-height:20px}._actions_1nkqp_52{display:flex;gap:16px;align-items:center}._root_18umt_17{width:100%;height:100%;border:1px solid var(--color-border);border-radius:var(--radius);position:relative;isolation:isolate}._root_18umt_17 div[role=dialog]>button{opacity:1!important;top:12px!important;right:12px!important;width:26px!important;height:26px!important}._root_18umt_17 div[role=dialog]>button>span{margin:0!important;width:100%!important;height:100%!important;background-color:var(--color-primary);transition:background-color .2s ease}._root_18umt_17 div[role=dialog]>button>span:hover{background-color:var(--color-primary-dark)}._balloon_18umt_43{max-width:400px}._details_18umt_47{--offset: 20px;z-index:20;top:var(--offset);right:var(--offset);bottom:var(--offset);width:calc(50% - var(--offset))}@media (max-width: 1279px){._details_18umt_47{left:var(--offset);width:calc(100% - var(--offset) * 2)}}._cluster_18umt_62:has(img)>img{display:none}._cluster_18umt_62:has(img)>div{font-size:13px!important;font-weight:400!important;border:8px solid var(--color-primary);border-radius:100vw;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--color-text-light);box-shadow:0 0 0 2px var(--color-text-light-transparent)}._overlay_18umt_78{position:absolute;background-color:var(--color-text-light-transparent);backdrop-filter:blur(5px)}._root_3yn0y_17{top:0;left:0;width:100%;height:100%;z-index:var(--z-index-overlay);background-color:var(--color-text-light);display:flex;justify-content:center;align-items:center;overflow:hidden}._loader_lfbq9_17,._loader_lfbq9_17:after{border-radius:50%;width:10em;height:10em}._loader_lfbq9_17{margin:60px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:1.1em solid var(--color-text-disabled);border-right:1.1em solid var(--color-text-disabled);border-bottom:1.1em solid var(--color-text-disabled);border-left:1.1em solid var(--color-primary);transform:translateZ(0);animation:_loader_lfbq9_17 1.1s infinite linear}@-webkit-keyframes _loader_lfbq9_17{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _loader_lfbq9_17{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._root_1k9f4_17{display:flex;flex-direction:column;gap:16px}._root_1k9f4_17 ._details_1k9f4_22{width:100%;min-width:280px;display:flex;align-items:center;justify-content:center}._header_1k9f4_30{display:flex;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}._title_1k9f4_38{font-size:16px;line-height:22px;font-weight:600}._description_1k9f4_44{font-size:14px;font-weight:400;line-height:20px}._actions_1k9f4_50{display:flex;gap:16px;align-items:center}._errorVariant_1k9f4_56 svg{color:var(--color-error)}._errorVariant_1k9f4_56 ._title_1k9f4_38{color:var(--color-error)}._root_5e2zu_17{background-color:var(--color-secondary);border-radius:100vw;padding:8px 16px;cursor:pointer;transition:background-color .2s ease,color .2s ease}@media (any-hover: hover){._root_5e2zu_17:hover{background-color:var(--color-border)}}._root_5e2zu_17._active_5e2zu_29{background-color:var(--color-primary);color:var(--color-text-light)}._root_wbbow_17{border-radius:var(--radius);border:1px solid var(--color-border);font-family:var(--font);padding:18px 20px}._root_1x2s4_17{position:absolute;background-color:var(--color-text-light);box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 2);overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}._root_1x2s4_17 ._submit_1x2s4_28{width:100%}._close_1x2s4_32{position:absolute;top:16px;right:16px;color:var(--color-primary);cursor:pointer}@media (any-hover: hover){._close_1x2s4_32:hover{color:var(--color-primary-dark)}}._title_1x2s4_45{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;line-height:20px}._title_1x2s4_45 svg{width:50px;height:50px}._header_1x2s4_58{padding:24px 16px 16px;border-bottom:1px solid var(--color-border)}._content_1x2s4_63{display:flex;flex-direction:column;gap:24px;padding:16px;font-size:14px;line-height:20px;overflow-y:auto}._content_1x2s4_63::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._content_1x2s4_63::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._content_1x2s4_63::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._content_1x2s4_63::-webkit-scrollbar-thumb:hover,._content_1x2s4_63::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._content_1x2s4_63::-webkit-scrollbar-thumb:hover{cursor:pointer}}._section_1x2s4_97{display:flex;flex-direction:column;gap:4px}._section_1x2s4_97 label{font-weight:600}._chips_1x2s4_106{display:flex;gap:8px}._actions_1x2s4_111{padding:16px 16px 24px}._commentSection_1x2s4_115{flex:1}._comment_1x2s4_115{height:100%}._root_bdso3_17{position:absolute;background-color:var(--color-text-light);box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 2);overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}._root_bdso3_17 ._submit_bdso3_28{width:100%}._close_bdso3_32{position:absolute;top:16px;right:16px;color:var(--color-primary);cursor:pointer}@media (any-hover: hover){._close_bdso3_32:hover{color:var(--color-primary-dark)}}._title_bdso3_45{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;line-height:20px}._title_bdso3_45 svg{width:50px;height:50px}._header_bdso3_58{padding:24px 16px 16px;border-bottom:1px solid var(--color-border)}._content_bdso3_63{display:flex;flex-direction:column;gap:24px;padding:16px;font-size:14px;line-height:20px;overflow-y:auto}._content_bdso3_63::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._content_bdso3_63::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._content_bdso3_63::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._content_bdso3_63::-webkit-scrollbar-thumb:hover,._content_bdso3_63::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._content_bdso3_63::-webkit-scrollbar-thumb:hover{cursor:pointer}}._section_bdso3_97{display:flex;flex-direction:column;gap:4px}._section_bdso3_97 label{font-weight:600}._chips_bdso3_106{display:flex;gap:8px}._services_bdso3_111{display:flex;flex-direction:column;gap:4px}._images_bdso3_117{display:flex;gap:20px;max-width:100%;overflow-x:auto;scroll-snap-type:x mandatory;min-height:165px}._images_bdso3_117::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._images_bdso3_117::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._images_bdso3_117::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._images_bdso3_117::-webkit-scrollbar-thumb:hover,._images_bdso3_117::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._images_bdso3_117::-webkit-scrollbar-thumb:hover{cursor:pointer}}._image_bdso3_117{flex-shrink:0;width:220px;aspect-ratio:220/140;scroll-snap-align:start;border-radius:var(--radius);object-fit:cover}._actions_bdso3_159{padding:16px 16px 24px}._scheduleItem_bdso3_163{padding:0}._root_1bmjr_17{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);position:relative;isolation:isolate}._root_1bmjr_17 .ymaps-2-1-79-balloon__close{width:26px;height:26px;position:absolute;top:12px;right:12px}._root_1bmjr_17 .ymaps-2-1-79-balloon__close>.ymaps-2-1-79-balloon__close-button{width:100%;height:100%;background-image:none;background-color:var(--color-primary);opacity:1;-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z%22/%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22/%3E%3C/svg%3E);transition:background-color .2s ease}@media (any-hover: hover){._root_1bmjr_17 .ymaps-2-1-79-balloon__close>.ymaps-2-1-79-balloon__close-button:hover{background-color:var(--color-primary-dark)}}._root_1bmjr_17 .ymaps-2-1-79-balloon__close+.ymaps-2-1-79-balloon__content{margin-right:0;padding:16px;border-radius:var(--radius)}._root_1bmjr_17 .ymaps-2-1-79-balloon{box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border-radius:var(--radius)}._overlay_1bmjr_55{position:absolute;background-color:var(--color-text-light-transparent);backdrop-filter:blur(5px)}._details_1bmjr_61{--offset: 20px;z-index:20;top:var(--offset);right:var(--offset);bottom:var(--offset);width:calc(50% - var(--offset))}@media (max-width: 1279px){._details_1bmjr_61{left:var(--offset);width:calc(100% - var(--offset) * 2)}}._root_1l4d5_17{min-height:100%;display:grid;grid-template-areas:"sidebar header header" "sidebar map map" "sidebar map map";grid-template-columns:320px 1fr 1fr;grid-template-rows:80px 1fr 1fr;padding-inline:40px;padding-bottom:40px}@media (max-width: 1279px){._root_1l4d5_17{grid-template-areas:"header" "sidebar" "map" "map";grid-template-columns:1fr;grid-template-rows:80px 1fr 1fr;padding-inline:20px;padding-block:20px;gap:20px}}[id="@omnic/widget-locations"]{--color-primary: #1760ee;--color-primary-dark: #194fb8;--color-secondary: #dfe1e5;--color-error: #cc0000;--color-text-dark: #000000;--color-text-light: #ffffff;--color-text-light-transparent: #ffffff75;--color-text-disabled: #929db2;--color-text-disabled-transparent: #929db233;--color-border: #d3d7de;--radius: 8px;--button-radius: 8px;--font: "Roboto", sans-serif}._map_1y1l5_17{grid-area:map}._sidebar_1y1l5_21{grid-area:sidebar;margin-top:24px;margin-right:40px}@media (max-width: 1279px){._sidebar_1y1l5_21{margin-top:0;margin-right:0}}._header_1y1l5_33{grid-area:header}
1
+ [id="@omnic/widget-locations"]{isolation:isolate;position:relative;font-family:var(--font);width:100%;height:100%}._root_c4o01_17{border:none;font-size:16px;font-weight:600;line-height:20px;cursor:pointer;transition:color .2s ease,background-color .2s ease}._root_c4o01_17:disabled{cursor:default;pointer-events:none;color:var(--color-text-disabled)}button._root_c4o01_17{padding-block:12px;min-width:240px;border-radius:var(--button-radius)}button._primary_c4o01_37{color:var(--color-text-light);background-color:var(--color-primary)}@media (any-hover: hover){button._primary_c4o01_37:hover{background-color:var(--color-primary-dark)}}button._primary_c4o01_37:disabled{background-color:var(--color-border)}button._secondary_c4o01_50{color:var(--color-primary);background-color:var(--color-secondary)}button._secondary_c4o01_50:disabled{background-color:var(--color-border)}a._root_c4o01_17{text-decoration:none}a._primary_c4o01_37{color:var(--color-primary)}@media (any-hover: hover){a._primary_c4o01_37:hover{color:var(--color-primary-dark)}}a._secondary_c4o01_50{color:var(--color-text-disabled)}@media (any-hover: hover){a._secondary_c4o01_50:hover{color:var(--color-text-dark)}}._root_1k7kn_17{display:flex;flex-direction:column;gap:8px}._root_1k7kn_17 ._control_1k7kn_22{min-height:56px;border-color:var(--color-border);border-radius:var(--radius)}._root_1k7kn_17 ._singleValue_1k7kn_27{color:var(--color-primary);font-weight:600;font-size:16px;line-height:20px}._root_1k7kn_17 ._indicatorSeparator_1k7kn_33{display:none}._root_1k7kn_17 ._option_1k7kn_36{padding:16px;font-size:16px;font-weight:600;line-height:20px}._root_1k7kn_17 ._option_1k7kn_36:not(:last-child){border-bottom:1px solid var(--color-border)}._root_1k7kn_17 ._menu_1k7kn_45{border-radius:var(--radius);border-color:var(--color-border)}._root_1k7kn_17 ._clearIndicator_1k7kn_49{cursor:pointer;transition:color .2s ease;color:var(--color-text-disabled)}@media (any-hover: hover){._root_1k7kn_17 ._clearIndicator_1k7kn_49:hover{color:var(--color-primary)}}._root_1k7kn_17 ._dropdownIndicator_1k7kn_59{cursor:pointer;color:var(--color-text-disabled);transition:color .2s ease}@media (any-hover: hover){._root_1k7kn_17 ._dropdownIndicator_1k7kn_59:hover{color:var(--color-primary)}}._root_1k7kn_17 ._dropdownIndicatorFocused_1k7kn_69{color:var(--color-primary)}._root_1k7kn_17 ._indicatorsContainer_1k7kn_72{padding-inline:20px;gap:10px}._root_1k7kn_17 ._valueContainer_1k7kn_76{padding-left:20px}._label_1k7kn_80{font-size:16px;font-weight:600;line-height:22px}._option_1mi6h_17{display:grid;gap:12px;grid-template-columns:auto 1fr auto;align-items:center}._address_1mi6h_24{font-size:14px;font-weight:400;line-height:1.4}._root_1rkap_17{display:flex;align-items:center;gap:10px}@media (min-width: 1280px){._root_1rkap_17{justify-content:space-between}}@media (max-width: 1279px){._root_1rkap_17{flex-direction:column;align-items:flex-start}}._nav_1rkap_34{display:flex;align-items:center;gap:40px}@media (max-width: 1279px){._nav_1rkap_34{width:100%;gap:20px;justify-content:space-between}}._navItem_1rkap_47{text-align:center}@media (max-width: 1279px){._navItem_1rkap_47{font-size:14px}}._locationSelector_1rkap_56{flex:0 1 480px}._root_1fw02_17{position:fixed;top:20px;left:40px;z-index:9999;background-color:var(--color-primary-dark);color:var(--color-text-light);padding:10px;border-radius:var(--radius);display:grid;grid-template-rows:auto 0;overflow:hidden;box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);min-width:280px;transition:opacity .2s ease}._root_1fw02_17._open_1fw02_33{grid-template-rows:auto min-content}._content_1fw02_37{margin-top:10px;display:grid;gap:10px;opacity:0;overflow:hidden}._open_1fw02_33 ._content_1fw02_37{opacity:1}._content_1fw02_37 label{display:grid;gap:5px;font-size:12px}._content_1fw02_37 label span{text-transform:uppercase;font-weight:600;user-select:none}._content_1fw02_37 label input::placeholder{text-transform:uppercase}._header_1fw02_61{display:flex;align-items:center;justify-content:space-between;overflow:hidden;font-size:16px;font-weight:600}._close_1fw02_70{cursor:pointer;transition:transform .2s ease;transform:rotate(45deg)}._open_1fw02_33 ._close_1fw02_70{transform:rotate(0)}._root_77he5_17{margin-block:24px;border:none;height:1px;background-color:var(--color-secondary);border-radius:1px}._root_xl1mf_17{appearance:none;background-color:var(--color-text-light);border-radius:100vw;margin:0}._root_xl1mf_17:before{content:"";display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-border);background-color:var(--color-secondary);vertical-align:middle;transition:background-color .2s ease,border-color .2s ease}._root_xl1mf_17:checked:before{background-color:var(--color-primary);border-color:var(--color-primary-dark)}._root_xl1mf_17:disabled{border-color:var(--color-text-disabled);background-color:var(--color-text-disabled)}._root_xl1mf_17:not(:disabled){cursor:pointer}._label_xl1mf_48{display:flex;align-items:center;gap:8px;padding-block:8px;transition:color .2s ease;font-size:14px;font-weight:600;line-height:16px}._label_xl1mf_48:has(._root_xl1mf_17:checked){color:var(--color-primary)}._label_xl1mf_48:has(._root_xl1mf_17:not(:disabled)){cursor:pointer}._root_206i4_17{display:flex;flex-direction:column;gap:10px}._root_x06qj_17{display:flex;flex-direction:column;gap:8px}._body_x06qj_23{display:flex;flex-direction:column}._legend_x06qj_28{font-size:16px;font-weight:600;line-height:22px}._root_1ulgi_17{display:flex;gap:10px;align-items:center;cursor:pointer}._text_1ulgi_24{font-size:16px;line-height:19px}._logo_atmqw_17{margin-bottom:30px}._typeFilter_atmqw_21{margin-bottom:44px}._separator_atmqw_25{margin-top:48px}@media (max-width: 1279px){._currentLocation_atmqw_30{width:100%;justify-content:flex-end}}._root_12hu3_17{display:flex;flex-direction:column;gap:8px}._input_12hu3_23{width:-webkit-fill-available;padding:18px 20px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-text-light);font-size:16px;line-height:20px;outline:var(--color-primary)}._input_12hu3_23::placeholder{color:var(--color-text-disabled)}._label_12hu3_37{font-size:16px;font-weight:600;line-height:22px}._root_19d2n_17{position:fixed;inset:0;opacity:0;transition:opacity .2s ease;isolation:isolate;pointer-events:none;backdrop-filter:blur(5px)}._root_19d2n_17._open_19d2n_26{opacity:1;pointer-events:all}._overlay_19d2n_31{position:absolute;inset:0;width:200%;background-color:#1d366566;z-index:0}._container_19d2n_39{position:absolute;top:0;right:0;bottom:0;z-index:1;width:580px;background-color:var(--color-text-light);transition:transform .2s ease;transform:translate(100%)}._root_19d2n_17._open_19d2n_26 ._container_19d2n_39{transform:translate(0)}._header_19d2n_54{display:grid;padding:20px;grid-template-areas:". close";grid-template-columns:1fr auto;margin-bottom:20px}._close_19d2n_62{grid-area:close;cursor:pointer}._body_19d2n_67{padding:0 30px 30px}._submit_19no7_17{margin-top:20px;width:100%}._option_19no7_22{display:flex;align-items:center;justify-content:space-between}._selector_19no7_28+._selector_19no7_28{margin-top:40px}._root_1nkqp_17{display:flex;flex-direction:column;gap:16px}._root_1nkqp_17 ._submit_1nkqp_22{min-width:unset;padding-inline:32px}._root_1nkqp_17 ._details_1nkqp_26{display:flex;align-items:center;gap:4px}._header_1nkqp_32{display:flex;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}._title_1nkqp_40{font-size:16px;line-height:22px;font-weight:600}._description_1nkqp_46{font-size:14px;font-weight:400;line-height:20px}._actions_1nkqp_52{display:flex;gap:16px;align-items:center}._root_18umt_17{width:100%;height:100%;border:1px solid var(--color-border);border-radius:var(--radius);position:relative;isolation:isolate}._root_18umt_17 div[role=dialog]>button{opacity:1!important;top:12px!important;right:12px!important;width:26px!important;height:26px!important}._root_18umt_17 div[role=dialog]>button>span{margin:0!important;width:100%!important;height:100%!important;background-color:var(--color-primary);transition:background-color .2s ease}._root_18umt_17 div[role=dialog]>button>span:hover{background-color:var(--color-primary-dark)}._balloon_18umt_43{max-width:400px}._details_18umt_47{--offset: 20px;z-index:20;top:var(--offset);right:var(--offset);bottom:var(--offset);width:calc(50% - var(--offset))}@media (max-width: 1279px){._details_18umt_47{left:var(--offset);width:calc(100% - var(--offset) * 2)}}._cluster_18umt_62:has(img)>img{display:none}._cluster_18umt_62:has(img)>div{font-size:13px!important;font-weight:400!important;border:8px solid var(--color-primary);border-radius:100vw;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--color-text-light);box-shadow:0 0 0 2px var(--color-text-light-transparent)}._overlay_18umt_78{position:absolute;background-color:var(--color-text-light-transparent);backdrop-filter:blur(5px)}._root_3yn0y_17{top:0;left:0;width:100%;height:100%;z-index:var(--z-index-overlay);background-color:var(--color-text-light);display:flex;justify-content:center;align-items:center;overflow:hidden}._loader_lfbq9_17,._loader_lfbq9_17:after{border-radius:50%;width:10em;height:10em}._loader_lfbq9_17{margin:60px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:1.1em solid var(--color-text-disabled);border-right:1.1em solid var(--color-text-disabled);border-bottom:1.1em solid var(--color-text-disabled);border-left:1.1em solid var(--color-primary);transform:translateZ(0);animation:_loader_lfbq9_17 1.1s infinite linear}@-webkit-keyframes _loader_lfbq9_17{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _loader_lfbq9_17{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._root_1k9f4_17{display:flex;flex-direction:column;gap:16px}._root_1k9f4_17 ._details_1k9f4_22{width:100%;min-width:280px;display:flex;align-items:center;justify-content:center}._header_1k9f4_30{display:flex;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}._title_1k9f4_38{font-size:16px;line-height:22px;font-weight:600}._description_1k9f4_44{font-size:14px;font-weight:400;line-height:20px}._actions_1k9f4_50{display:flex;gap:16px;align-items:center}._errorVariant_1k9f4_56 svg{color:var(--color-error)}._errorVariant_1k9f4_56 ._title_1k9f4_38{color:var(--color-error)}._root_5e2zu_17{background-color:var(--color-secondary);border-radius:100vw;padding:8px 16px;cursor:pointer;transition:background-color .2s ease,color .2s ease}@media (any-hover: hover){._root_5e2zu_17:hover{background-color:var(--color-border)}}._root_5e2zu_17._active_5e2zu_29{background-color:var(--color-primary);color:var(--color-text-light)}._root_wbbow_17{border-radius:var(--radius);border:1px solid var(--color-border);font-family:var(--font);padding:18px 20px}._root_1x2s4_17{position:absolute;background-color:var(--color-text-light);box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 2);overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}._root_1x2s4_17 ._submit_1x2s4_28{width:100%}._close_1x2s4_32{position:absolute;top:16px;right:16px;color:var(--color-primary);cursor:pointer}@media (any-hover: hover){._close_1x2s4_32:hover{color:var(--color-primary-dark)}}._title_1x2s4_45{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;line-height:20px}._title_1x2s4_45 svg{width:50px;height:50px}._header_1x2s4_58{padding:24px 16px 16px;border-bottom:1px solid var(--color-border)}._content_1x2s4_63{display:flex;flex-direction:column;gap:24px;padding:16px;font-size:14px;line-height:20px;overflow-y:auto}._content_1x2s4_63::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._content_1x2s4_63::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._content_1x2s4_63::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._content_1x2s4_63::-webkit-scrollbar-thumb:hover,._content_1x2s4_63::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._content_1x2s4_63::-webkit-scrollbar-thumb:hover{cursor:pointer}}._section_1x2s4_97{display:flex;flex-direction:column;gap:4px}._section_1x2s4_97 label{font-weight:600}._chips_1x2s4_106{display:flex;gap:8px}._actions_1x2s4_111{padding:16px 16px 24px}._commentSection_1x2s4_115{flex:1}._comment_1x2s4_115{height:100%}._root_bdso3_17{position:absolute;background-color:var(--color-text-light);box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 2);overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto}._root_bdso3_17 ._submit_bdso3_28{width:100%}._close_bdso3_32{position:absolute;top:16px;right:16px;color:var(--color-primary);cursor:pointer}@media (any-hover: hover){._close_bdso3_32:hover{color:var(--color-primary-dark)}}._title_bdso3_45{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;line-height:20px}._title_bdso3_45 svg{width:50px;height:50px}._header_bdso3_58{padding:24px 16px 16px;border-bottom:1px solid var(--color-border)}._content_bdso3_63{display:flex;flex-direction:column;gap:24px;padding:16px;font-size:14px;line-height:20px;overflow-y:auto}._content_bdso3_63::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._content_bdso3_63::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._content_bdso3_63::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._content_bdso3_63::-webkit-scrollbar-thumb:hover,._content_bdso3_63::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._content_bdso3_63::-webkit-scrollbar-thumb:hover{cursor:pointer}}._section_bdso3_97{display:flex;flex-direction:column;gap:4px}._section_bdso3_97 label{font-weight:600}._chips_bdso3_106{display:flex;gap:8px}._services_bdso3_111{display:flex;flex-direction:column;gap:4px}._images_bdso3_117{display:flex;gap:20px;max-width:100%;overflow-x:auto;scroll-snap-type:x mandatory;min-height:165px}._images_bdso3_117::-webkit-scrollbar{width:4px;height:4px;cursor:pointer}._images_bdso3_117::-webkit-scrollbar-track{box-shadow:none;background-color:var(--color-text-light)}._images_bdso3_117::-webkit-scrollbar-thumb{border-radius:100vw;background-color:var(--color-border);cursor:pointer}@media (any-hover: hover){._images_bdso3_117::-webkit-scrollbar-thumb:hover,._images_bdso3_117::-webkit-scrollbar-thumb:active{background-color:var(--color-text-disabled)}}@media (any-hover: hover){._images_bdso3_117::-webkit-scrollbar-thumb:hover{cursor:pointer}}._image_bdso3_117{flex-shrink:0;width:220px;aspect-ratio:220/140;scroll-snap-align:start;border-radius:var(--radius);object-fit:cover}._actions_bdso3_159{padding:16px 16px 24px}._scheduleItem_bdso3_163{padding:0}._root_1bmjr_17{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);position:relative;isolation:isolate}._root_1bmjr_17 .ymaps-2-1-79-balloon__close{width:26px;height:26px;position:absolute;top:12px;right:12px}._root_1bmjr_17 .ymaps-2-1-79-balloon__close>.ymaps-2-1-79-balloon__close-button{width:100%;height:100%;background-image:none;background-color:var(--color-primary);opacity:1;-webkit-mask-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M19%206.41L17.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z%22/%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22/%3E%3C/svg%3E);transition:background-color .2s ease}@media (any-hover: hover){._root_1bmjr_17 .ymaps-2-1-79-balloon__close>.ymaps-2-1-79-balloon__close-button:hover{background-color:var(--color-primary-dark)}}._root_1bmjr_17 .ymaps-2-1-79-balloon__close+.ymaps-2-1-79-balloon__content{margin-right:0;padding:16px;border-radius:var(--radius)}._root_1bmjr_17 .ymaps-2-1-79-balloon{box-shadow:0 4px 16px 0 var(--color-text-disabled-transparent);border-radius:var(--radius)}._overlay_1bmjr_55{position:absolute;background-color:var(--color-text-light-transparent);backdrop-filter:blur(5px)}._details_1bmjr_61{--offset: 20px;z-index:20;top:var(--offset);right:var(--offset);bottom:var(--offset);width:calc(50% - var(--offset))}@media (max-width: 1279px){._details_1bmjr_61{left:var(--offset);width:calc(100% - var(--offset) * 2)}}._root_1l4d5_17{min-height:100%;display:grid;grid-template-areas:"sidebar header header" "sidebar map map" "sidebar map map";grid-template-columns:320px 1fr 1fr;grid-template-rows:80px 1fr 1fr;padding-inline:40px;padding-bottom:40px}@media (max-width: 1279px){._root_1l4d5_17{grid-template-areas:"header" "sidebar" "map" "map";grid-template-columns:1fr;grid-template-rows:80px 1fr 1fr;padding-inline:20px;padding-block:20px;gap:20px}}[id="@omnic/widget-locations"]{--color-primary: #1760ee;--color-primary-dark: #194fb8;--color-secondary: #dfe1e5;--color-error: #cc0000;--color-text-dark: #000000;--color-text-light: #ffffff;--color-text-light-transparent: #ffffff75;--color-text-disabled: #929db2;--color-text-disabled-transparent: #929db233;--color-border: #d3d7de;--radius: 8px;--button-radius: 8px;--font: "Roboto", sans-serif}._map_1y1l5_17{grid-area:map}._sidebar_1y1l5_21{grid-area:sidebar;margin-top:24px;margin-right:40px}@media (max-width: 1279px){._sidebar_1y1l5_21{margin-top:0;margin-right:0}}._header_1y1l5_33{grid-area:header}