@foxford/navigation-ui 1.0.0 → 1.0.1
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.mdx +48 -4
- package/footer/contacts-column.d.ts.map +1 -1
- package/footer/contacts-column.js +80 -48
- package/footer/contacts-styled.d.ts +44 -0
- package/footer/contacts-styled.d.ts.map +1 -0
- package/footer/contacts-styled.js +120 -0
- package/footer/footer.d.ts.map +1 -1
- package/footer/footer.js +3 -3
- package/footer/molecules/geoposition/index.js +1 -3
- package/footer/styled.d.ts +0 -22
- package/footer/styled.d.ts.map +1 -1
- package/footer/styled.js +7 -42
- package/footer/types.d.ts +6 -6
- package/footer/types.d.ts.map +1 -1
- package/header/atoms/action-button/assets/elementary/calendar.svg +1 -0
- package/header/atoms/action-button/assets/elementary/catalog.svg +1 -0
- package/header/atoms/action-button/assets/elementary/dashboard.svg +1 -0
- package/header/atoms/action-button/assets/elementary/externship.svg +1 -0
- package/header/atoms/action-button/assets/elementary/main.svg +1 -0
- package/header/atoms/action-button/assets/elementary/room.svg +1 -0
- package/header/atoms/action-button/elementary-icons.d.ts +14 -0
- package/header/atoms/action-button/elementary-icons.d.ts.map +1 -0
- package/header/atoms/action-button/elementary-icons.js +21 -0
- package/header/atoms/action-button/index.d.ts +5 -3
- package/header/atoms/action-button/index.d.ts.map +1 -1
- package/header/atoms/action-button/index.js +23 -4
- package/header/atoms/grades-list-item/index.d.ts +10 -0
- package/header/atoms/grades-list-item/index.d.ts.map +1 -0
- package/header/atoms/grades-list-item/index.js +21 -0
- package/header/atoms/grades-list-item/styled.d.ts +14 -0
- package/header/atoms/grades-list-item/styled.d.ts.map +1 -0
- package/header/atoms/grades-list-item/styled.js +27 -0
- package/header/atoms/profile-menu-item/index.d.ts +3 -1
- package/header/atoms/profile-menu-item/index.d.ts.map +1 -1
- package/header/atoms/profile-menu-item/index.js +2 -0
- package/header/atoms/profile-menu-item/styled.d.ts +4 -2
- package/header/atoms/profile-menu-item/styled.d.ts.map +1 -1
- package/header/atoms/profile-menu-item/styled.js +3 -1
- package/header/atoms/prolongation-title/assets/arrow.svg +1 -0
- package/header/atoms/prolongation-title/assets/lightning.svg +1 -0
- package/header/atoms/prolongation-title/index.d.ts +10 -0
- package/header/atoms/prolongation-title/index.d.ts.map +1 -0
- package/header/atoms/prolongation-title/index.js +44 -0
- package/header/atoms/prolongation-title/styled.d.ts +14 -0
- package/header/atoms/prolongation-title/styled.d.ts.map +1 -0
- package/header/atoms/prolongation-title/styled.js +38 -0
- package/header/header-desktop.d.ts +2 -2
- package/header/header-desktop.d.ts.map +1 -1
- package/header/header-desktop.js +16 -41
- package/header/header-mobile.d.ts +2 -2
- package/header/header-mobile.d.ts.map +1 -1
- package/header/header-mobile.js +3 -18
- package/header/molecules/cart-button/index.js +25 -0
- package/header/molecules/cart-button/styled.d.ts.map +1 -1
- package/header/molecules/cart-button/styled.js +14 -0
- package/header/molecules/container/index.d.ts +5 -1
- package/header/molecules/container/index.d.ts.map +1 -1
- package/header/molecules/container/index.js +5 -3
- package/header/molecules/entry-panel/index.d.ts +4 -1
- package/header/molecules/entry-panel/index.d.ts.map +1 -1
- package/header/molecules/entry-panel/index.js +26 -5
- package/header/molecules/list/index.d.ts.map +1 -1
- package/header/molecules/list/index.js +5 -1
- package/header/molecules/menu/segment-content.d.ts.map +1 -1
- package/header/molecules/menu/segment-content.js +20 -3
- package/header/molecules/menu/types.d.ts +18 -0
- package/header/molecules/menu/types.d.ts.map +1 -1
- package/header/molecules/support-button/index.d.ts +5 -0
- package/header/molecules/support-button/index.d.ts.map +1 -0
- package/header/molecules/support-button/index.js +108 -0
- package/header/molecules/support-button/modal.d.ts +9 -0
- package/header/molecules/support-button/modal.d.ts.map +1 -0
- package/header/molecules/support-button/modal.js +122 -0
- package/header/molecules/support-button/styled.d.ts +31 -0
- package/header/molecules/support-button/styled.d.ts.map +1 -0
- package/header/molecules/support-button/styled.js +43 -0
- package/header/molecules/support-button/theme.d.ts +5 -0
- package/header/molecules/support-button/theme.d.ts.map +1 -0
- package/header/molecules/support-button/theme.js +40 -0
- package/header/molecules/support-button/types.d.ts +20 -0
- package/header/molecules/support-button/types.d.ts.map +1 -0
- package/header/molecules/user-panel/index.d.ts +10 -3
- package/header/molecules/user-panel/index.d.ts.map +1 -1
- package/header/molecules/user-panel/index.js +48 -36
- package/header/molecules/user-panel/styled.d.ts +15 -0
- package/header/molecules/user-panel/styled.d.ts.map +1 -1
- package/header/molecules/user-panel/styled.js +41 -5
- package/header/molecules/user-panel-mobile/index.d.ts +1 -1
- package/header/molecules/user-panel-mobile/index.d.ts.map +1 -1
- package/header/molecules/user-panel-mobile/index.js +11 -3
- package/header/navigation.d.ts.map +1 -1
- package/header/navigation.js +66 -4
- package/header/styled.d.ts +7 -0
- package/header/styled.d.ts.map +1 -1
- package/header/styled.js +24 -4
- package/header/types.d.ts +9 -6
- package/header/types.d.ts.map +1 -1
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -1
- package/index.js +10 -0
- package/package.json +14 -4
- package/shared/constants.d.ts +8 -0
- package/shared/constants.d.ts.map +1 -1
- package/shared/constants.js +8 -0
- package/shared/slots.d.ts +64 -0
- package/shared/slots.d.ts.map +1 -0
- package/shared/slots.js +53 -0
- package/_virtual/preload-helper.js +0 -57
- package/header/molecules/phone-button/index.js +0 -15
package/README.mdx
CHANGED
|
@@ -41,12 +41,47 @@
|
|
|
41
41
|
|
|
42
42
|
Контракт компонента при этом один и тот же в обоих случаях.
|
|
43
43
|
|
|
44
|
+
| `NavigationSlots` | Куда встаёт |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `background` | подложка под всей навигацией, рисуется первой |
|
|
47
|
+
| `searchPanel` | над шапкой на узком экране |
|
|
48
|
+
| `top` | строка шапки на десктопе, между кнопкой меню и панелью пользователя |
|
|
49
|
+
| `actionsButton` | рядом с кнопкой меню, на обоих разрешениях |
|
|
50
|
+
| `aboveMenu` / `belowMenu` | над и под большим меню, внутри контейнера навигации |
|
|
51
|
+
|
|
52
|
+
| `FooterSlots` | Куда встаёт |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| `aboveLinks` | первым в подвале |
|
|
55
|
+
| `banners` | в колонке баннеров, рядом с онбордингом и карточкой приложения |
|
|
56
|
+
| `belowLinks` | под колонками ссылок |
|
|
57
|
+
| `belowSubFooter` | последним, под нижней полосой |
|
|
58
|
+
|
|
59
|
+
**Показ содержимого слота — забота потребителя.** В легаси панель поиска пряталась глобальным
|
|
60
|
+
классом с анимацией: эта механика принадлежит самой панели, а не навигации, и сюда не
|
|
61
|
+
переносится. Пакет резервирует место и рисует то, что дали.
|
|
62
|
+
|
|
44
63
|
Кроме слотов пакет отдаёт наружу части профиль-меню (`ProfileInfo`, `ProfileMenuItem`,
|
|
45
64
|
`Bonuses`, `PupilSelectButton`): их наполнение зависит от данных пользователя, поэтому
|
|
46
65
|
собирает их адаптер и передаёт готовыми узлами. Сам набор пунктов меню — тоже данные
|
|
47
66
|
адаптера (`@foxford/navigation-runtime`, `src/menu-items.ts`): пакет вёрстки не знает ни
|
|
48
67
|
адресов Фоксфорда, ни того, кому какой пункт положен.
|
|
49
68
|
|
|
69
|
+
## Раскладки
|
|
70
|
+
|
|
71
|
+
`UserPanel` рисует ряд кнопок в двух раскладках, и выбирает её `variant`:
|
|
72
|
+
|
|
73
|
+
- `base` — пиктограммы дизайн-системы, на узком экране из ряда убираются «бонусы за друга»;
|
|
74
|
+
- `elementary` — начальная школа: крупные иллюстрации вместо пиктограмм, свои отступы, на
|
|
75
|
+
узком экране убирается каталог.
|
|
76
|
+
|
|
77
|
+
Иллюстрации началки — собственный набор пакета (`header/atoms/action-button/assets/elementary`),
|
|
78
|
+
подключаются по именам (`elementaryMain`, `elementaryRoom` и далее) наравне с пиктограммами
|
|
79
|
+
кита. Дизайн-система их не держит: это не пиктограммы, а картинки, и подкрашивать их темой
|
|
80
|
+
не нужно — поэтому они и рисуются `<img>`, как логотипы.
|
|
81
|
+
|
|
82
|
+
**Кому какая раскладка положена, вёрстка не решает.** Про ученика началки она не знает вовсе —
|
|
83
|
+
`variant` приходит пропсом от адаптера.
|
|
84
|
+
|
|
50
85
|
## Требования к среде
|
|
51
86
|
|
|
52
87
|
- **`<Media>` из `@foxford/ui` матчит только после эффектов.** Там, где от размера экрана
|
|
@@ -73,9 +108,9 @@
|
|
|
73
108
|
|
|
74
109
|
Отличия от легаси — каждое помечено комментарием в коде:
|
|
75
110
|
|
|
76
|
-
- варианты `NewNavigation`/`
|
|
77
|
-
`
|
|
78
|
-
но пока никем не рисуются;
|
|
111
|
+
- варианты `NewNavigation`/`InspectorNavigation` — их включают флаги приложения
|
|
112
|
+
(`new_navigation`, `inspector_interface`); молекулы, которые нужны лишь этим раскладкам
|
|
113
|
+
(`CartButton`), перенесены, но пока никем не рисуются;
|
|
79
114
|
- аналитика (`sendAnalytics`) и i18n-инфраструктура (`FormattedMessage`) — вызовы сняты,
|
|
80
115
|
строки русские прямо в коде;
|
|
81
116
|
- обучающий тур выбора ученика (`PupilSelectExplainer`, Joyride) и Enrichment-портал
|
|
@@ -92,11 +127,20 @@
|
|
|
92
127
|
Раскладка исходников сохраняется, поэтому `.d.ts` встают рядом со своими модулями.
|
|
93
128
|
|
|
94
129
|
**Снаружи остаётся всё, что обязано быть в одном экземпляре**: `styled-components`, `preact`,
|
|
95
|
-
`react
|
|
130
|
+
`react` и `@foxford/ui` объявлены `peerDependencies`. Причина — лист стилей:
|
|
96
131
|
`ServerStyleSheet` собирает стили только своей копии `styled-components`, и вторая копия
|
|
97
132
|
означает обрамление страницы без стилей. Сторож — `tests/artifacts.check.tsx`: он рендерит
|
|
98
133
|
СОБРАННЫЕ `Navigation` и `Footer` через лист и требует непустой `getStyleTags()`.
|
|
99
134
|
|
|
135
|
+
**Про имена React.** Выход импортирует `preact/jsx-runtime` (JSX собран им) и `react` (хуки и
|
|
136
|
+
типы) — и это не противоречие: в мире preact имя `react` занимает пакет-алиас
|
|
137
|
+
(`@preact/compat`), и настоящего React в дереве нет. Поэтому `preact` объявлен обязательным
|
|
138
|
+
peer'ом, а `react` — необязательным: тому, кто пришёл с алиасом, ставить его не надо.
|
|
139
|
+
Переписывать импорты на `preact/hooks` смысла нет — `@foxford/ui` сама говорит именами React
|
|
140
|
+
в четырёх сотнях мест своей сборки, так что алиас потребителю нужен в любом случае, а публичные
|
|
141
|
+
типы пакета (`ReactNode`, `ComponentType`) при этом сменили бы имена. `react-dom` в peer'ах нет
|
|
142
|
+
вовсе: пакет его не импортирует, отрисовщик — забота хоста.
|
|
143
|
+
|
|
100
144
|
Собирает vite, а не tsup: стабильные `componentId` проставляет
|
|
101
145
|
`babel-plugin-styled-components`, а он babel-плагин. Опции те же, что у хоста и у раннера
|
|
102
146
|
тестов, — трансформация обязана быть одна на всех.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts-column.d.ts","sourceRoot":"","sources":["../../src/footer/contacts-column.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contacts-column.d.ts","sourceRoot":"","sources":["../../src/footer/contacts-column.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,SAAS,CAAA;AAE5D,KAAK,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,kBAAkB,GAAG,YAAY,GAAG,aAAa,CAAC,CAAA;AA0B5G,wBAAgB,cAAc,CAAC,EAC7B,QAAa,EACb,gBAAwB,EACxB,UAAe,EACf,WAAgB,GACjB,EAAE,mBAAmB,gCAoErB"}
|
|
@@ -17,31 +17,35 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
import { Spacer } from "@foxford/ui";
|
|
20
|
+
import { Separator, Spacer } from "@foxford/ui";
|
|
21
21
|
import { SocialLink } from "./atoms/social-link/index.js";
|
|
22
|
-
import { ContactsColumn as ContactsColumn$1,
|
|
22
|
+
import { ContactsColumn as ContactsColumn$1, SeparatorTop, SalesGroup, ContactsTitle, SupportGroup, EmailGroup, Contacts, Email, SeparatorBottom, SocialsGroup, Phone, SocialLinks } from "./contacts-styled.js";
|
|
23
23
|
import { formatPhone } from "../shared/phone.js";
|
|
24
24
|
import { jsxs, jsx } from "preact/jsx-runtime";
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
links
|
|
28
|
-
title
|
|
25
|
+
const SEPARATOR_COLOR = "border-oncolor-soft-small";
|
|
26
|
+
function Links({
|
|
27
|
+
links
|
|
29
28
|
}) {
|
|
30
29
|
if (links.length === 0) {
|
|
31
30
|
return null;
|
|
32
31
|
}
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
return jsx(SocialLinks, {
|
|
33
|
+
children: links.map((link) => jsx(SocialLink, {
|
|
34
|
+
href: link.href,
|
|
35
|
+
iconName: link.iconName
|
|
36
|
+
}, link.id))
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function ContactPhone({
|
|
40
|
+
number
|
|
41
|
+
}) {
|
|
42
|
+
return jsx(Spacer, {
|
|
43
|
+
bottom: 12,
|
|
44
|
+
top: 4,
|
|
45
|
+
children: jsx(Phone, {
|
|
46
|
+
href: `tel:${number}`,
|
|
47
|
+
children: formatPhone(number)
|
|
48
|
+
})
|
|
45
49
|
});
|
|
46
50
|
}
|
|
47
51
|
function ContactsColumn({
|
|
@@ -65,38 +69,66 @@ function ContactsColumn({
|
|
|
65
69
|
}].flatMap((link) => link.href ? [__spreadProps(__spreadValues({}, link), {
|
|
66
70
|
href: link.href
|
|
67
71
|
})] : []);
|
|
68
|
-
const
|
|
72
|
+
const phone = hideDataOnMirror ? void 0 : contacts.phone;
|
|
73
|
+
const salesPhone = hideDataOnMirror ? void 0 : contacts.salesPhone;
|
|
69
74
|
return jsxs(ContactsColumn$1, {
|
|
70
|
-
children: [jsx(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
children:
|
|
91
|
-
}),
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
75
|
+
children: [jsx(SeparatorTop, {
|
|
76
|
+
children: jsx(Separator, {
|
|
77
|
+
color: SEPARATOR_COLOR,
|
|
78
|
+
weight: 1
|
|
79
|
+
})
|
|
80
|
+
}), jsx(SalesGroup, {
|
|
81
|
+
children: jsxs(Spacer, {
|
|
82
|
+
bottomXL: 24,
|
|
83
|
+
children: [jsxs(ContactsTitle, {
|
|
84
|
+
children: ["Подбор ", jsx("br", {}), "и покупка занятий"]
|
|
85
|
+
}), salesPhone !== void 0 && jsx(ContactPhone, {
|
|
86
|
+
number: salesPhone
|
|
87
|
+
}), jsx(Links, {
|
|
88
|
+
links: salesLinks
|
|
89
|
+
})]
|
|
90
|
+
})
|
|
91
|
+
}), supportChatLinks.length > 0 && jsx(SupportGroup, {
|
|
92
|
+
children: jsxs(Spacer, {
|
|
93
|
+
bottomXL: 24,
|
|
94
|
+
children: [jsxs(ContactsTitle, {
|
|
95
|
+
children: ["Поддержка учеников ", jsx("br", {}), "и родителей Фоксфорда"]
|
|
96
|
+
}), phone !== void 0 && jsx(ContactPhone, {
|
|
97
|
+
number: phone
|
|
98
|
+
}), jsx(Links, {
|
|
99
|
+
links: supportChatLinks
|
|
100
|
+
})]
|
|
101
|
+
})
|
|
102
|
+
}), contacts.email !== void 0 && contacts.email !== "" && jsx(EmailGroup, {
|
|
103
|
+
children: jsx(Spacer, {
|
|
104
|
+
bottom: 24,
|
|
105
|
+
bottomL: 12,
|
|
106
|
+
bottomS: 0,
|
|
107
|
+
children: jsxs(Contacts, {
|
|
108
|
+
children: [jsx(ContactsTitle, {
|
|
109
|
+
children: "Почта"
|
|
110
|
+
}), jsx(Email, {
|
|
111
|
+
href: `mailto:${contacts.email}`,
|
|
112
|
+
rel: "noreferrer",
|
|
113
|
+
target: "_blank",
|
|
114
|
+
children: contacts.email
|
|
115
|
+
})]
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
}), jsx(SeparatorBottom, {
|
|
119
|
+
children: jsx(Separator, {
|
|
120
|
+
color: SEPARATOR_COLOR,
|
|
121
|
+
weight: 1
|
|
122
|
+
})
|
|
123
|
+
}), jsx(SocialsGroup, {
|
|
124
|
+
children: jsxs(Spacer, {
|
|
125
|
+
topXL: 24,
|
|
126
|
+
children: [jsx(ContactsTitle, {
|
|
127
|
+
children: "Социальные сети"
|
|
128
|
+
}), jsx(Links, {
|
|
129
|
+
links: socialLinks
|
|
98
130
|
})]
|
|
99
|
-
})
|
|
131
|
+
})
|
|
100
132
|
})]
|
|
101
133
|
});
|
|
102
134
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const ContactsColumn: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("styled-components").FastOmit<Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
2
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
3
|
+
}, "as" | "forwardedAs"> & {
|
|
4
|
+
as?: import("styled-components").WebTarget | undefined;
|
|
5
|
+
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
6
|
+
}, "style"> & {
|
|
7
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | (import("styled-components").CSSProperties & {
|
|
8
|
+
[key: `--${string}`]: string | number | undefined;
|
|
9
|
+
}) | undefined;
|
|
10
|
+
}> & string;
|
|
11
|
+
export declare const SeparatorTop: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
12
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
13
|
+
}> & string;
|
|
14
|
+
export declare const SeparatorBottom: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
15
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
16
|
+
}> & string;
|
|
17
|
+
export declare const SalesGroup: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
18
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
19
|
+
}> & string;
|
|
20
|
+
export declare const SupportGroup: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
21
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
22
|
+
}> & string;
|
|
23
|
+
export declare const EmailGroup: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
24
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
25
|
+
}> & string;
|
|
26
|
+
export declare const SocialsGroup: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
27
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
28
|
+
}> & string;
|
|
29
|
+
export declare const ContactsTitle: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
30
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
31
|
+
}> & string;
|
|
32
|
+
export declare const SocialLinks: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
33
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
34
|
+
}> & string;
|
|
35
|
+
export declare const Contacts: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
36
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
37
|
+
}> & string;
|
|
38
|
+
export declare const Phone: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.AnchorHTMLAttributes<HTMLAnchorElement>, "style"> & {
|
|
39
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
40
|
+
}> & string;
|
|
41
|
+
export declare const Email: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.AnchorHTMLAttributes<HTMLAnchorElement>, "style"> & {
|
|
42
|
+
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
43
|
+
}> & string;
|
|
44
|
+
//# sourceMappingURL=contacts-styled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts-styled.d.ts","sourceRoot":"","sources":["../../src/footer/contacts-styled.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc;;;;;;;;;WAsB1B,CAAA;AAMD,eAAO,MAAM,YAAY;;WAgBxB,CAAA;AAED,eAAO,MAAM,eAAe;;WAU3B,CAAA;AAED,eAAO,MAAM,UAAU;;WAItB,CAAA;AAED,eAAO,MAAM,YAAY;;WAIxB,CAAA;AAED,eAAO,MAAM,UAAU;;WAItB,CAAA;AAED,eAAO,MAAM,YAAY;;WAIxB,CAAA;AAED,eAAO,MAAM,aAAa;;WAezB,CAAA;AAED,eAAO,MAAM,WAAW;;WAIvB,CAAA;AAED,eAAO,MAAM,QAAQ;;WAGpB,CAAA;AAcD,eAAO,MAAM,KAAK;;WAEjB,CAAA;AAED,eAAO,MAAM,KAAK;;WAEjB,CAAA"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { styled, css } from "styled-components";
|
|
2
|
+
import { screenMaxL, screenMaxM, screenMaxS } from "@foxford/ui";
|
|
3
|
+
import { Column } from "./styled.js";
|
|
4
|
+
const ContactsColumn = styled(Column).withConfig({
|
|
5
|
+
displayName: "contacts-styled__ContactsColumn",
|
|
6
|
+
componentId: "sc-kiidu0-0"
|
|
7
|
+
})(["grid-area:contacts;display:grid;", " ", " ", ""], screenMaxL()`
|
|
8
|
+
grid-template-columns: max-content max-content max-content 1fr max-content;
|
|
9
|
+
grid-template-areas: 'sep-top sep-top sep-top sep-top sep-top' 'sales support email . socials';
|
|
10
|
+
column-gap: 48px;
|
|
11
|
+
row-gap: 32px;
|
|
12
|
+
`, screenMaxM()`
|
|
13
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
14
|
+
grid-template-areas: 'sep-top sep-top sep-top' 'sales support email' 'socials socials socials';
|
|
15
|
+
`, screenMaxS()`
|
|
16
|
+
margin-top: 44px;
|
|
17
|
+
grid-template-columns: 1fr;
|
|
18
|
+
grid-template-areas: none;
|
|
19
|
+
row-gap: 24px;
|
|
20
|
+
`);
|
|
21
|
+
const SeparatorTop = styled.div.withConfig({
|
|
22
|
+
displayName: "contacts-styled__SeparatorTop",
|
|
23
|
+
componentId: "sc-kiidu0-1"
|
|
24
|
+
})(["display:none;", " ", " ", ""], screenMaxL()`
|
|
25
|
+
display: block;
|
|
26
|
+
grid-area: sep-top;
|
|
27
|
+
margin: 0 0 32px;
|
|
28
|
+
`, screenMaxM()`
|
|
29
|
+
margin: 8px 0;
|
|
30
|
+
`, screenMaxS()`
|
|
31
|
+
display: none;
|
|
32
|
+
`);
|
|
33
|
+
const SeparatorBottom = styled.div.withConfig({
|
|
34
|
+
displayName: "contacts-styled__SeparatorBottom",
|
|
35
|
+
componentId: "sc-kiidu0-2"
|
|
36
|
+
})(["display:block;", " ", ""], screenMaxL()`
|
|
37
|
+
display: none;
|
|
38
|
+
`, screenMaxS()`
|
|
39
|
+
display: block;
|
|
40
|
+
`);
|
|
41
|
+
const SalesGroup = styled.div.withConfig({
|
|
42
|
+
displayName: "contacts-styled__SalesGroup",
|
|
43
|
+
componentId: "sc-kiidu0-3"
|
|
44
|
+
})(["", ""], screenMaxL()`
|
|
45
|
+
grid-area: sales;
|
|
46
|
+
`);
|
|
47
|
+
const SupportGroup = styled.div.withConfig({
|
|
48
|
+
displayName: "contacts-styled__SupportGroup",
|
|
49
|
+
componentId: "sc-kiidu0-4"
|
|
50
|
+
})(["", ""], screenMaxL()`
|
|
51
|
+
grid-area: support;
|
|
52
|
+
`);
|
|
53
|
+
const EmailGroup = styled.div.withConfig({
|
|
54
|
+
displayName: "contacts-styled__EmailGroup",
|
|
55
|
+
componentId: "sc-kiidu0-5"
|
|
56
|
+
})(["", ""], screenMaxL()`
|
|
57
|
+
grid-area: email;
|
|
58
|
+
`);
|
|
59
|
+
const SocialsGroup = styled.div.withConfig({
|
|
60
|
+
displayName: "contacts-styled__SocialsGroup",
|
|
61
|
+
componentId: "sc-kiidu0-6"
|
|
62
|
+
})(["", ""], screenMaxL()`
|
|
63
|
+
grid-area: socials;
|
|
64
|
+
`);
|
|
65
|
+
const ContactsTitle = styled.div.withConfig({
|
|
66
|
+
displayName: "contacts-styled__ContactsTitle",
|
|
67
|
+
componentId: "sc-kiidu0-7"
|
|
68
|
+
})(["font-size:20px;line-height:1.2;font-weight:700;color:", ";margin-bottom:8px;white-space:nowrap;", ""], ({
|
|
69
|
+
theme
|
|
70
|
+
}) => theme.colors["content-oncolor-primary"], screenMaxS()`
|
|
71
|
+
white-space: normal;
|
|
72
|
+
|
|
73
|
+
> br {
|
|
74
|
+
display: none;
|
|
75
|
+
}
|
|
76
|
+
`);
|
|
77
|
+
const SocialLinks = styled.div.withConfig({
|
|
78
|
+
displayName: "contacts-styled__SocialLinks",
|
|
79
|
+
componentId: "sc-kiidu0-8"
|
|
80
|
+
})(["display:flex;flex-direction:row;flex-wrap:nowrap;"]);
|
|
81
|
+
const Contacts = styled.div.withConfig({
|
|
82
|
+
displayName: "contacts-styled__Contacts",
|
|
83
|
+
componentId: "sc-kiidu0-9"
|
|
84
|
+
})(["font-size:16px;line-height:20px;"]);
|
|
85
|
+
const contactLink = css`
|
|
86
|
+
font-weight: 700;
|
|
87
|
+
color: ${({
|
|
88
|
+
theme
|
|
89
|
+
}) => theme.colors["content-oncolor-secondary"]};
|
|
90
|
+
text-decoration: none;
|
|
91
|
+
|
|
92
|
+
&:hover {
|
|
93
|
+
cursor: pointer;
|
|
94
|
+
color: ${({
|
|
95
|
+
theme
|
|
96
|
+
}) => theme.colors["content-oncolor-primary"]};
|
|
97
|
+
}
|
|
98
|
+
`;
|
|
99
|
+
const Phone = styled.a.withConfig({
|
|
100
|
+
displayName: "contacts-styled__Phone",
|
|
101
|
+
componentId: "sc-kiidu0-10"
|
|
102
|
+
})(["", ""], contactLink);
|
|
103
|
+
const Email = styled.a.withConfig({
|
|
104
|
+
displayName: "contacts-styled__Email",
|
|
105
|
+
componentId: "sc-kiidu0-11"
|
|
106
|
+
})(["", ""], contactLink);
|
|
107
|
+
export {
|
|
108
|
+
Contacts,
|
|
109
|
+
ContactsColumn,
|
|
110
|
+
ContactsTitle,
|
|
111
|
+
Email,
|
|
112
|
+
EmailGroup,
|
|
113
|
+
Phone,
|
|
114
|
+
SalesGroup,
|
|
115
|
+
SeparatorBottom,
|
|
116
|
+
SeparatorTop,
|
|
117
|
+
SocialLinks,
|
|
118
|
+
SocialsGroup,
|
|
119
|
+
SupportGroup
|
|
120
|
+
};
|
package/footer/footer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/footer/footer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/footer/footer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,gCA6CxC"}
|
package/footer/footer.js
CHANGED
|
@@ -37,7 +37,7 @@ function Footer(props) {
|
|
|
37
37
|
children: jsx(Root, {
|
|
38
38
|
id: SELECTOR_IDS.FOOTER,
|
|
39
39
|
children: jsxs(Container, {
|
|
40
|
-
children: [jsx(Logo, {
|
|
40
|
+
children: [slots == null ? void 0 : slots.aboveLinks, jsx(Logo, {
|
|
41
41
|
cobranding
|
|
42
42
|
}), jsxs(MainInner, {
|
|
43
43
|
children: [jsx(Column, {
|
|
@@ -65,9 +65,9 @@ function Footer(props) {
|
|
|
65
65
|
children: [jsx(OnboardingBanner, {}), appLinks && jsx(AppInfo, {
|
|
66
66
|
desktopUrl: appLinks.desktop,
|
|
67
67
|
mobileUrl: appLinks.mobile
|
|
68
|
-
})]
|
|
68
|
+
}), slots == null ? void 0 : slots.banners]
|
|
69
69
|
}), jsx(ContactsColumn, __spreadValues({}, props))]
|
|
70
|
-
}), slots == null ? void 0 : slots.belowLinks, jsx(SubFooter, __spreadValues({}, props))]
|
|
70
|
+
}), slots == null ? void 0 : slots.belowLinks, jsx(SubFooter, __spreadValues({}, props)), slots == null ? void 0 : slots.belowSubFooter]
|
|
71
71
|
})
|
|
72
72
|
})
|
|
73
73
|
});
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["footer/molecules/geoposition/city-dialog.js","footer/molecules/geoposition/city-dialog-styled.js","footer/molecules/geoposition/styled.js","shared/z-index.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import { __vitePreload } from "../../../_virtual/preload-helper.js";
|
|
3
1
|
import { useState } from "react";
|
|
4
2
|
import { Icon } from "@foxford/ui";
|
|
5
3
|
import { Root, CityButton } from "./styled.js";
|
|
@@ -16,7 +14,7 @@ function Geoposition({
|
|
|
16
14
|
const handleOpen = () => {
|
|
17
15
|
setOpen(true);
|
|
18
16
|
if (Dialog === null) {
|
|
19
|
-
void
|
|
17
|
+
void import("./city-dialog.js").then((module) => setDialog(() => module.CityDialog));
|
|
20
18
|
}
|
|
21
19
|
};
|
|
22
20
|
return jsxs(Root, {
|
package/footer/styled.d.ts
CHANGED
|
@@ -21,27 +21,5 @@ export declare const Banners: import("styled-components/dist/types").IStyledComp
|
|
|
21
21
|
[key: `--${string}`]: string | number | undefined;
|
|
22
22
|
}) | undefined;
|
|
23
23
|
}> & string;
|
|
24
|
-
export declare const ContactsColumn: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("styled-components").FastOmit<Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
25
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
26
|
-
}, "as" | "forwardedAs"> & {
|
|
27
|
-
as?: import("styled-components").WebTarget | undefined;
|
|
28
|
-
forwardedAs?: import("styled-components").WebTarget | undefined;
|
|
29
|
-
}, "style"> & {
|
|
30
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | (import("styled-components").CSSProperties & {
|
|
31
|
-
[key: `--${string}`]: string | number | undefined;
|
|
32
|
-
}) | undefined;
|
|
33
|
-
}> & string;
|
|
34
|
-
export declare const ContactsTitle: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
35
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
36
|
-
}> & string;
|
|
37
|
-
export declare const SocialLinks: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
38
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
39
|
-
}> & string;
|
|
40
|
-
export declare const Contacts: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
41
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
42
|
-
}> & string;
|
|
43
24
|
export declare const Logo: import("styled-components/dist/types").IStyledComponentBase<"web", import("./molecules/footer-logo").FooterLogoProps> & string & Omit<typeof FooterLogo, keyof import("preact").Component<any, {}>>;
|
|
44
|
-
export declare const ContactsWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", Omit<import("preact").JSX.HTMLAttributes<HTMLDivElement>, "style"> & {
|
|
45
|
-
style?: string | import("styled-components/dist/types").CSSPropertiesWithVars | import("preact").JSX.CSSProperties | import("preact").JSX.SignalLike<string | import("preact").JSX.CSSProperties | undefined> | undefined;
|
|
46
|
-
}> & string;
|
|
47
25
|
//# sourceMappingURL=styled.d.ts.map
|
package/footer/styled.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../src/footer/styled.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,eAAO,MAAM,IAAI;;WAahB,CAAA;AAED,eAAO,MAAM,SAAS;;WAqBrB,CAAA;AAED,eAAO,MAAM,SAAS;;WAqCrB,CAAA;AAED,eAAO,MAAM,MAAM;;WAYlB,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;WA2BnB,CAAA;AAED,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"styled.d.ts","sourceRoot":"","sources":["../../src/footer/styled.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD,eAAO,MAAM,IAAI;;WAahB,CAAA;AAED,eAAO,MAAM,SAAS;;WAqBrB,CAAA;AAED,eAAO,MAAM,SAAS;;WAqCrB,CAAA;AAED,eAAO,MAAM,MAAM;;WAYlB,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;WA2BnB,CAAA;AAED,eAAO,MAAM,IAAI,qMAMhB,CAAA"}
|
package/footer/styled.js
CHANGED
|
@@ -25,16 +25,16 @@ const Container = styled.div.withConfig({
|
|
|
25
25
|
const MainInner = styled.div.withConfig({
|
|
26
26
|
displayName: "styled__MainInner",
|
|
27
27
|
componentId: "sc-ee97kh-2"
|
|
28
|
-
})(["display:grid;width:100%;grid-gap:24px;margin-bottom:32px;grid-template:'about study free contacts banners' 190px 'about study free contacts banners' auto / 180px 180px 180px
|
|
28
|
+
})(["display:grid;width:100%;grid-gap:24px;margin-bottom:32px;grid-template:'about study free contacts banners' 190px 'about study free contacts banners' auto / 180px 180px 180px 219px 353px;", " ", " ", ""], screenMaxL()`
|
|
29
29
|
column-gap: 20px;
|
|
30
|
-
row-gap:
|
|
30
|
+
row-gap: 32px;
|
|
31
31
|
grid-template:
|
|
32
32
|
'about study free banners' auto
|
|
33
|
-
'
|
|
33
|
+
'contacts contacts contacts contacts' auto / 144px 226px 226px 308px;
|
|
34
34
|
`, screenMaxM()`
|
|
35
35
|
grid-template:
|
|
36
36
|
'about study free' auto
|
|
37
|
-
'
|
|
37
|
+
'contacts contacts contacts' auto
|
|
38
38
|
'banners banners banners' auto / minmax(208px, 1fr) minmax(204px, 1fr) minmax(248px, 1fr);
|
|
39
39
|
column-gap: 20px;
|
|
40
40
|
row-gap: 32px;
|
|
@@ -55,7 +55,7 @@ const Column = styled.div.withConfig({
|
|
|
55
55
|
const Banners = styled(Column).withConfig({
|
|
56
56
|
displayName: "styled__Banners",
|
|
57
57
|
componentId: "sc-ee97kh-4"
|
|
58
|
-
})(["grid-area:banners;display:grid;grid-template:'a' 190px 'b'
|
|
58
|
+
})(["grid-area:banners;display:grid;grid-template:'a' 190px 'b' 210px / 1fr;gap:16px;", " ", " ", ""], screenMaxL()`
|
|
59
59
|
grid-template:
|
|
60
60
|
'a' 200px
|
|
61
61
|
'b' 224px / 1fr;
|
|
@@ -70,52 +70,17 @@ const Banners = styled(Column).withConfig({
|
|
|
70
70
|
'b' 184px / 1fr;
|
|
71
71
|
gap: 24px;
|
|
72
72
|
`);
|
|
73
|
-
const ContactsColumn = styled(Column).withConfig({
|
|
74
|
-
displayName: "styled__ContactsColumn",
|
|
75
|
-
componentId: "sc-ee97kh-5"
|
|
76
|
-
})(["grid-area:contacts;display:grid;", ""], screenMaxS()`
|
|
77
|
-
margin-top: 48px;
|
|
78
|
-
`);
|
|
79
|
-
const ContactsTitle = styled.div.withConfig({
|
|
80
|
-
displayName: "styled__ContactsTitle",
|
|
81
|
-
componentId: "sc-ee97kh-6"
|
|
82
|
-
})(["font-size:20px;line-height:1.2;font-weight:700;color:", ";margin-bottom:8px;white-space:nowrap;"], ({
|
|
83
|
-
theme
|
|
84
|
-
}) => theme.colors["content-oncolor-primary"]);
|
|
85
|
-
const SocialLinks = styled.div.withConfig({
|
|
86
|
-
displayName: "styled__SocialLinks",
|
|
87
|
-
componentId: "sc-ee97kh-7"
|
|
88
|
-
})(["display:flex;flex-direction:row;flex-wrap:nowrap;"]);
|
|
89
|
-
const Contacts = styled.div.withConfig({
|
|
90
|
-
displayName: "styled__Contacts",
|
|
91
|
-
componentId: "sc-ee97kh-8"
|
|
92
|
-
})(["font-size:16px;font-weight:700;line-height:20px;margin-bottom:24px;", " a{text-decoration:none;color:", ";&:hover{cursor:pointer;color:", ";}}"], screenMaxS()`
|
|
93
|
-
margin-bottom: 0;
|
|
94
|
-
`, ({
|
|
95
|
-
theme
|
|
96
|
-
}) => theme.colors["content-oncolor-secondary"], ({
|
|
97
|
-
theme
|
|
98
|
-
}) => theme.colors["content-oncolor-primary"]);
|
|
99
73
|
const Logo = styled(FooterLogo).withConfig({
|
|
100
74
|
displayName: "styled__Logo",
|
|
101
|
-
componentId: "sc-ee97kh-
|
|
75
|
+
componentId: "sc-ee97kh-5"
|
|
102
76
|
})(["margin:32px 0;", ""], screenMaxS()`
|
|
103
77
|
margin: 22px 0 0;
|
|
104
78
|
`);
|
|
105
|
-
const ContactsWrapper = styled.div.withConfig({
|
|
106
|
-
displayName: "styled__ContactsWrapper",
|
|
107
|
-
componentId: "sc-ee97kh-10"
|
|
108
|
-
})(["display:flex;flex-direction:column;"]);
|
|
109
79
|
export {
|
|
110
80
|
Banners,
|
|
111
81
|
Column,
|
|
112
|
-
Contacts,
|
|
113
|
-
ContactsColumn,
|
|
114
|
-
ContactsTitle,
|
|
115
|
-
ContactsWrapper,
|
|
116
82
|
Container,
|
|
117
83
|
Logo,
|
|
118
84
|
MainInner,
|
|
119
|
-
Root
|
|
120
|
-
SocialLinks
|
|
85
|
+
Root
|
|
121
86
|
};
|
package/footer/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FooterMenuItem } from './molecules/footer-menu';
|
|
2
2
|
import type { City } from './molecules/geoposition';
|
|
3
|
+
import type { FOOTER_SLOT_POINTS, SlotNodes } from '../shared/slots';
|
|
3
4
|
import type { IconName } from '@foxford/ui';
|
|
4
|
-
import type { ReactNode } from 'react';
|
|
5
5
|
export interface FooterSocialLink {
|
|
6
6
|
href: string;
|
|
7
7
|
iconName: IconName;
|
|
@@ -10,17 +10,17 @@ export interface FooterSocialLink {
|
|
|
10
10
|
export interface FooterContacts {
|
|
11
11
|
email?: string;
|
|
12
12
|
max?: string;
|
|
13
|
+
/** Телефон поддержки — в блоке поддержки, рядом с чатами. */
|
|
13
14
|
phone?: string;
|
|
15
|
+
/** Телефон продаж — в блоке подбора занятий; отдельная линия, не та же, что поддержка. */
|
|
16
|
+
salesPhone?: string;
|
|
14
17
|
telegram?: string;
|
|
15
18
|
vkontakte?: string;
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
|
-
* Слоты `Footer` — свои, не общие с `Navigation
|
|
21
|
+
* Слоты `Footer` — свои, не общие с `Navigation`. Тип выведен из перечня (`shared/slots.ts`).
|
|
19
22
|
*/
|
|
20
|
-
export
|
|
21
|
-
/** Место под колонками ссылок — например баннер акции. */
|
|
22
|
-
belowLinks?: ReactNode;
|
|
23
|
-
}
|
|
23
|
+
export type FooterSlots = SlotNodes<typeof FOOTER_SLOT_POINTS>;
|
|
24
24
|
export interface FooterProps {
|
|
25
25
|
aboutItems: FooterMenuItem[];
|
|
26
26
|
/** Адреса установки мобильного приложения; не переданы — карточка приложения не рисуется. */
|
package/footer/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/footer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/footer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE9D,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,MAAM,CAAC,EAAE,IAAI,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8FAA8F;IAC9F,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,UAAU,EAAE,cAAc,EAAE,CAAA;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M31 7H1v22h30V7z" fill="#BBDAE8"/><path d="M1 7V1h30v6H1z" fill="#FF9700"/><path d="M5.612 0v4.872M26.296 0v4.872" stroke="#000" stroke-miterlimit="10"/><path d="M8 11c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2zM16 11c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2z" fill="#fff"/><path d="M24 11c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2z" fill="#FFF57D"/><path d="M8 19c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2zM16 19c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2z" fill="#fff"/><path d="M24 19c-1.106 0-2 .895-2 2s.894 2 2 2c1.106 0 2-.895 2-2s-.894-2-2-2z" fill="#FFF57D"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.27 29V0H2v29h11.27z" fill="#FF9700"/><path d="M11.131 2.164H4.14v6.023l3.5-1.61 3.5 1.61-.008-6.023z" fill="#FFF87D"/><path d="M11.14 25.696h-7" stroke="#000" stroke-miterlimit="10"/><path d="M30 26.368 24.26 2.23 13.293 4.863 19.033 29 30 26.368z" fill="#8450E1"/><path d="M22.62 4.59 15.82 6.221l1.44 6.046 3.017-2.437 3.788.797-1.447-6.039z" fill="#FFF87D"/><path d="m27.247 24.032-6.806 1.633" stroke="#000" stroke-miterlimit="10"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M26.507 0H4v29h22.507V0z" fill="#8850E5"/><path d="M23.38 3.093H7.127v20.3H23.38v-20.3z" fill="#fff"/><path d="M14.566 27.518c.684 0 1.245-.58 1.245-1.289s-.56-1.29-1.245-1.29-1.246.581-1.246 1.29c0 .71.56 1.29 1.245 1.29z" fill="#AB88FF"/><path d="M9.905 16.49h10.697M9.905 9.997h10.697" stroke="#000" stroke-miterlimit="10"/><path d="m32 10.03-2.925-2.917-9.764 10.464.008.008h-.008l-.872 3.964 3.797-1.048v-.008L32 10.03z" fill="#F90"/></svg>
|