@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.
Files changed (109) hide show
  1. package/README.mdx +48 -4
  2. package/footer/contacts-column.d.ts.map +1 -1
  3. package/footer/contacts-column.js +80 -48
  4. package/footer/contacts-styled.d.ts +44 -0
  5. package/footer/contacts-styled.d.ts.map +1 -0
  6. package/footer/contacts-styled.js +120 -0
  7. package/footer/footer.d.ts.map +1 -1
  8. package/footer/footer.js +3 -3
  9. package/footer/molecules/geoposition/index.js +1 -3
  10. package/footer/styled.d.ts +0 -22
  11. package/footer/styled.d.ts.map +1 -1
  12. package/footer/styled.js +7 -42
  13. package/footer/types.d.ts +6 -6
  14. package/footer/types.d.ts.map +1 -1
  15. package/header/atoms/action-button/assets/elementary/calendar.svg +1 -0
  16. package/header/atoms/action-button/assets/elementary/catalog.svg +1 -0
  17. package/header/atoms/action-button/assets/elementary/dashboard.svg +1 -0
  18. package/header/atoms/action-button/assets/elementary/externship.svg +1 -0
  19. package/header/atoms/action-button/assets/elementary/main.svg +1 -0
  20. package/header/atoms/action-button/assets/elementary/room.svg +1 -0
  21. package/header/atoms/action-button/elementary-icons.d.ts +14 -0
  22. package/header/atoms/action-button/elementary-icons.d.ts.map +1 -0
  23. package/header/atoms/action-button/elementary-icons.js +21 -0
  24. package/header/atoms/action-button/index.d.ts +5 -3
  25. package/header/atoms/action-button/index.d.ts.map +1 -1
  26. package/header/atoms/action-button/index.js +23 -4
  27. package/header/atoms/grades-list-item/index.d.ts +10 -0
  28. package/header/atoms/grades-list-item/index.d.ts.map +1 -0
  29. package/header/atoms/grades-list-item/index.js +21 -0
  30. package/header/atoms/grades-list-item/styled.d.ts +14 -0
  31. package/header/atoms/grades-list-item/styled.d.ts.map +1 -0
  32. package/header/atoms/grades-list-item/styled.js +27 -0
  33. package/header/atoms/profile-menu-item/index.d.ts +3 -1
  34. package/header/atoms/profile-menu-item/index.d.ts.map +1 -1
  35. package/header/atoms/profile-menu-item/index.js +2 -0
  36. package/header/atoms/profile-menu-item/styled.d.ts +4 -2
  37. package/header/atoms/profile-menu-item/styled.d.ts.map +1 -1
  38. package/header/atoms/profile-menu-item/styled.js +3 -1
  39. package/header/atoms/prolongation-title/assets/arrow.svg +1 -0
  40. package/header/atoms/prolongation-title/assets/lightning.svg +1 -0
  41. package/header/atoms/prolongation-title/index.d.ts +10 -0
  42. package/header/atoms/prolongation-title/index.d.ts.map +1 -0
  43. package/header/atoms/prolongation-title/index.js +44 -0
  44. package/header/atoms/prolongation-title/styled.d.ts +14 -0
  45. package/header/atoms/prolongation-title/styled.d.ts.map +1 -0
  46. package/header/atoms/prolongation-title/styled.js +38 -0
  47. package/header/header-desktop.d.ts +2 -2
  48. package/header/header-desktop.d.ts.map +1 -1
  49. package/header/header-desktop.js +16 -41
  50. package/header/header-mobile.d.ts +2 -2
  51. package/header/header-mobile.d.ts.map +1 -1
  52. package/header/header-mobile.js +3 -18
  53. package/header/molecules/cart-button/index.js +25 -0
  54. package/header/molecules/cart-button/styled.d.ts.map +1 -1
  55. package/header/molecules/cart-button/styled.js +14 -0
  56. package/header/molecules/container/index.d.ts +5 -1
  57. package/header/molecules/container/index.d.ts.map +1 -1
  58. package/header/molecules/container/index.js +5 -3
  59. package/header/molecules/entry-panel/index.d.ts +4 -1
  60. package/header/molecules/entry-panel/index.d.ts.map +1 -1
  61. package/header/molecules/entry-panel/index.js +26 -5
  62. package/header/molecules/list/index.d.ts.map +1 -1
  63. package/header/molecules/list/index.js +5 -1
  64. package/header/molecules/menu/segment-content.d.ts.map +1 -1
  65. package/header/molecules/menu/segment-content.js +20 -3
  66. package/header/molecules/menu/types.d.ts +18 -0
  67. package/header/molecules/menu/types.d.ts.map +1 -1
  68. package/header/molecules/support-button/index.d.ts +5 -0
  69. package/header/molecules/support-button/index.d.ts.map +1 -0
  70. package/header/molecules/support-button/index.js +108 -0
  71. package/header/molecules/support-button/modal.d.ts +9 -0
  72. package/header/molecules/support-button/modal.d.ts.map +1 -0
  73. package/header/molecules/support-button/modal.js +122 -0
  74. package/header/molecules/support-button/styled.d.ts +31 -0
  75. package/header/molecules/support-button/styled.d.ts.map +1 -0
  76. package/header/molecules/support-button/styled.js +43 -0
  77. package/header/molecules/support-button/theme.d.ts +5 -0
  78. package/header/molecules/support-button/theme.d.ts.map +1 -0
  79. package/header/molecules/support-button/theme.js +40 -0
  80. package/header/molecules/support-button/types.d.ts +20 -0
  81. package/header/molecules/support-button/types.d.ts.map +1 -0
  82. package/header/molecules/user-panel/index.d.ts +10 -3
  83. package/header/molecules/user-panel/index.d.ts.map +1 -1
  84. package/header/molecules/user-panel/index.js +48 -36
  85. package/header/molecules/user-panel/styled.d.ts +15 -0
  86. package/header/molecules/user-panel/styled.d.ts.map +1 -1
  87. package/header/molecules/user-panel/styled.js +41 -5
  88. package/header/molecules/user-panel-mobile/index.d.ts +1 -1
  89. package/header/molecules/user-panel-mobile/index.d.ts.map +1 -1
  90. package/header/molecules/user-panel-mobile/index.js +11 -3
  91. package/header/navigation.d.ts.map +1 -1
  92. package/header/navigation.js +66 -4
  93. package/header/styled.d.ts +7 -0
  94. package/header/styled.d.ts.map +1 -1
  95. package/header/styled.js +24 -4
  96. package/header/types.d.ts +9 -6
  97. package/header/types.d.ts.map +1 -1
  98. package/index.d.ts +6 -0
  99. package/index.d.ts.map +1 -1
  100. package/index.js +10 -0
  101. package/package.json +14 -4
  102. package/shared/constants.d.ts +8 -0
  103. package/shared/constants.d.ts.map +1 -1
  104. package/shared/constants.js +8 -0
  105. package/shared/slots.d.ts +64 -0
  106. package/shared/slots.d.ts.map +1 -0
  107. package/shared/slots.js +53 -0
  108. package/_virtual/preload-helper.js +0 -57
  109. package/header/molecules/phone-button/index.js +0 -15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxford/navigation-ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Презентационная вёрстка шапки и подвала портала Фоксфорда",
5
5
  "keywords": [
6
6
  "foxford",
@@ -9,6 +9,13 @@
9
9
  "footer",
10
10
  "ui"
11
11
  ],
12
+ "homepage": "https://github.com/foxford/frontend-platform",
13
+ "bugs": "https://github.com/foxford/frontend-platform/issues",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/foxford/frontend-platform.git",
17
+ "directory": "packages/navigation-ui"
18
+ },
12
19
  "license": "MIT",
13
20
  "author": "Foxford Co",
14
21
  "maintainers": [
@@ -27,9 +34,13 @@
27
34
  "@foxford/ui": "^2",
28
35
  "preact": ">=10",
29
36
  "react": ">=17",
30
- "react-dom": ">=17",
31
37
  "styled-components": ">=6"
32
38
  },
39
+ "peerDependenciesMeta": {
40
+ "react": {
41
+ "optional": true
42
+ }
43
+ },
33
44
  "main": "./index.js",
34
45
  "module": "./index.js",
35
46
  "exports": {
@@ -41,7 +52,6 @@
41
52
  },
42
53
  "files": [
43
54
  "README.mdx",
44
- "_virtual",
45
55
  "footer",
46
56
  "header",
47
57
  "index.d.ts",
@@ -50,6 +60,6 @@
50
60
  "package.json",
51
61
  "shared"
52
62
  ],
53
- "sha": "7733b66d",
63
+ "sha": "8ba3d93",
54
64
  "scripts": {}
55
65
  }
@@ -59,14 +59,18 @@ export declare const SELECTOR_IDS: {
59
59
  readonly PROFILE_MENU_ATTESTATION: "foxNavProfileMenuAttestation";
60
60
  readonly PROFILE_MENU_BONUSES: "foxNavProfileMenuBonuses";
61
61
  readonly PROFILE_MENU_CART: "foxNavProfileMenuCart";
62
+ readonly PROFILE_MENU_DISCOUNT: "foxNavProfileMenuDiscount";
63
+ readonly PROFILE_MENU_DOCUMENTS: "foxNavProfileMenuDocuments";
62
64
  readonly PROFILE_MENU_EXTERNAL_REVIEWS: "foxNavExternalReviews";
63
65
  readonly PROFILE_MENU_EXTERNSHIP: "foxNavProfileMenuExternship";
64
66
  readonly PROFILE_MENU_EXTERNSHIP_ELEMENTARY: "foxNavProfileMenuExternshipElementary";
65
67
  readonly PROFILE_MENU_FAMILY: "foxNavProfileMenuFamily";
66
68
  readonly PROFILE_MENU_LOGOUT: "foxNavProfileMenuLogout";
67
69
  readonly PROFILE_MENU_MY_TRIAL_EXAMS: "foxNavProfileMenuMyTrialExams";
70
+ readonly PROFILE_MENU_OBJECTIVES: "foxNavProfileMenuObjectives";
68
71
  readonly PROFILE_MENU_ONBOARDING: "foxNavProfileMenuOnboarding";
69
72
  readonly PROFILE_MENU_PAYMENTS: "foxNavProfileMenuPayments";
73
+ readonly PROFILE_MENU_PLAN: "foxNavProfileMenuPlan";
70
74
  readonly PROFILE_MENU_PROGRESS: "foxNavProfileMenuProgress";
71
75
  readonly PROFILE_MENU_SETTINGS: "foxNavProfileMenuSettings";
72
76
  readonly PROFILE_MENU_SOCIALIZATION: "foxNavProfileMenuSocialization";
@@ -76,10 +80,14 @@ export declare const SELECTOR_IDS: {
76
80
  readonly SOCIALIZATION_LANDING: "foxNavProfileMenuSocializationLanding";
77
81
  readonly TOP_MENU_CALENDAR: "foxNavUserPanelCalendar";
78
82
  readonly TOP_MENU_CART: "foxNavUserPanelCart";
83
+ readonly TOP_MENU_CATALOG: "foxNavUserPanelCatalog";
79
84
  readonly TOP_MENU_DASHBOARD: "foxNavUserPanelDashboard";
85
+ readonly TOP_MENU_ELEMENTARY_COURSES: "foxNavUserPanelCourses";
86
+ readonly TOP_MENU_EXTERNSHIP: "foxNavUserPanelExternship";
80
87
  readonly TOP_MENU_PLAN: "foxNavUserPanelPlan";
81
88
  readonly TOP_MENU_PROFILE: "foxNavUserPanelProfile";
82
89
  readonly TOP_MENU_REFERRALS: "foxNavUserPanelReferrals";
90
+ readonly TOP_MENU_ROOM: "foxNavUserPanelRoom";
83
91
  readonly USER_PANEL: "foxNavUserPanel";
84
92
  readonly USER_PANEL_WRAPPER_MOBILE: "foxNavUserPanelWrapperMobile";
85
93
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAE/E,eAAO,MAAM,eAAe;;;;;CAKlB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAExF,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,QAAQ,kDAAkD,CAAA;AAEvE,eAAO,MAAM,oCAAoC,KAAK,CAAA;AAEtD,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C,eAAO,MAAM,wCAAwC,KAAK,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB;IAC5B,wBAAwB;;IAExB,YAAY;;IAEZ,gEAAgE;;IAEhE,iBAAiB;;CAET,CAAA;AAEV,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C,eAAO,MAAM,oCAAoC,UAAc,CAAA;AAE/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCf,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAE/E,eAAO,MAAM,eAAe;;;;;CAKlB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAExF,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,QAAQ,kDAAkD,CAAA;AAEvE,eAAO,MAAM,oCAAoC,KAAK,CAAA;AAEtD,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAE1C,eAAO,MAAM,wCAAwC,KAAK,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB;IAC5B,wBAAwB;;IAExB,YAAY;;IAEZ,gEAAgE;;IAEhE,iBAAiB;;CAET,CAAA;AAEV,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C,eAAO,MAAM,oCAAoC,UAAc,CAAA;AAE/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Cf,CAAA"}
@@ -33,14 +33,18 @@ const SELECTOR_IDS = {
33
33
  PROFILE_MENU_ATTESTATION: "foxNavProfileMenuAttestation",
34
34
  PROFILE_MENU_BONUSES: "foxNavProfileMenuBonuses",
35
35
  PROFILE_MENU_CART: "foxNavProfileMenuCart",
36
+ PROFILE_MENU_DISCOUNT: "foxNavProfileMenuDiscount",
37
+ PROFILE_MENU_DOCUMENTS: "foxNavProfileMenuDocuments",
36
38
  PROFILE_MENU_EXTERNAL_REVIEWS: "foxNavExternalReviews",
37
39
  PROFILE_MENU_EXTERNSHIP: "foxNavProfileMenuExternship",
38
40
  PROFILE_MENU_EXTERNSHIP_ELEMENTARY: "foxNavProfileMenuExternshipElementary",
39
41
  PROFILE_MENU_FAMILY: "foxNavProfileMenuFamily",
40
42
  PROFILE_MENU_LOGOUT: "foxNavProfileMenuLogout",
41
43
  PROFILE_MENU_MY_TRIAL_EXAMS: "foxNavProfileMenuMyTrialExams",
44
+ PROFILE_MENU_OBJECTIVES: "foxNavProfileMenuObjectives",
42
45
  PROFILE_MENU_ONBOARDING: "foxNavProfileMenuOnboarding",
43
46
  PROFILE_MENU_PAYMENTS: "foxNavProfileMenuPayments",
47
+ PROFILE_MENU_PLAN: "foxNavProfileMenuPlan",
44
48
  PROFILE_MENU_PROGRESS: "foxNavProfileMenuProgress",
45
49
  PROFILE_MENU_SETTINGS: "foxNavProfileMenuSettings",
46
50
  PROFILE_MENU_SOCIALIZATION: "foxNavProfileMenuSocialization",
@@ -50,10 +54,14 @@ const SELECTOR_IDS = {
50
54
  SOCIALIZATION_LANDING: "foxNavProfileMenuSocializationLanding",
51
55
  TOP_MENU_CALENDAR: "foxNavUserPanelCalendar",
52
56
  TOP_MENU_CART: "foxNavUserPanelCart",
57
+ TOP_MENU_CATALOG: "foxNavUserPanelCatalog",
53
58
  TOP_MENU_DASHBOARD: "foxNavUserPanelDashboard",
59
+ TOP_MENU_ELEMENTARY_COURSES: "foxNavUserPanelCourses",
60
+ TOP_MENU_EXTERNSHIP: "foxNavUserPanelExternship",
54
61
  TOP_MENU_PLAN: "foxNavUserPanelPlan",
55
62
  TOP_MENU_PROFILE: "foxNavUserPanelProfile",
56
63
  TOP_MENU_REFERRALS: "foxNavUserPanelReferrals",
64
+ TOP_MENU_ROOM: "foxNavUserPanelRoom",
57
65
  USER_PANEL: "foxNavUserPanel",
58
66
  USER_PANEL_WRAPPER_MOBILE: "foxNavUserPanelWrapperMobile"
59
67
  };
@@ -0,0 +1,64 @@
1
+ import type { ReactNode } from 'react';
2
+ /** Точка расширения: чем она является для инструментов потребителя. */
3
+ export interface SlotPoint {
4
+ /**
5
+ * Где точка находится — словами. Из имени это не выводится: `belowMenu` может оказаться и
6
+ * под меню, и внутри него. Знать надо ДО того, как в точку встанут, а посмотреть на живой
7
+ * странице можно только то, что сейчас на экране.
8
+ */
9
+ readonly note: string;
10
+ }
11
+ /** Перечень точек: имя → описание. */
12
+ export type SlotInventory = Readonly<Record<string, SlotPoint>>;
13
+ /** Пропсы-слоты, выведенные из перечня: ключи те же, значения — узлы. */
14
+ export type SlotNodes<T extends SlotInventory> = Partial<Record<keyof T, ReactNode>>;
15
+ export declare const NAVIGATION_SLOT_POINTS: {
16
+ readonly aboveMenu: {
17
+ readonly note: "первым ВНУТРИ контейнера навигации, над шапкой и меню — в потоке";
18
+ };
19
+ /**
20
+ * Вместе с `top` и `searchPanel` это три точки ОДНОЙ фичи, а не три имени одной точки: в
21
+ * легаси потребитель заполняет их разом и разным — сюда кнопку, раскрывающую панель,
22
+ * в `searchPanel` саму панель, в `top` строку поиска для широкого экрана.
23
+ */
24
+ readonly actionsButton: {
25
+ readonly note: "рядом с кнопкой меню, ТОЛЬКО на узком экране";
26
+ };
27
+ /**
28
+ * Стоит рядом с `aboveMenu` в потоке, но снаружи контейнера — и разница в этом: сюда кладут
29
+ * наложения, которым нельзя попасть под обрезку и отступы контейнера. В легаси это подсказки
30
+ * профиль-меню; собственного вида у места нет, содержимое позиционирует себя само.
31
+ */
32
+ readonly background: {
33
+ readonly note: "первым в навигации, СНАРУЖИ контейнера — для наложений";
34
+ };
35
+ readonly belowMenu: {
36
+ readonly note: "последним ВНУТРИ контейнера навигации, под меню — в потоке";
37
+ };
38
+ /**
39
+ * В легаси сюда встаёт панель поиска, и показывалась она по глобальному классу с анимацией —
40
+ * эта механика принадлежит самой панели, а не навигации. Пакет резервирует место и рисует
41
+ * то, что дали; показ и скрытие — забота потребителя.
42
+ */
43
+ readonly searchPanel: {
44
+ readonly note: "над шапкой, ниже L — там же, где кнопка раскрытия";
45
+ };
46
+ readonly top: {
47
+ readonly note: "строка шапки рядом с кнопкой меню, ТОЛЬКО от L и шире";
48
+ };
49
+ };
50
+ export declare const FOOTER_SLOT_POINTS: {
51
+ readonly aboveLinks: {
52
+ readonly note: "первым в подвале, над логотипом и колонками ссылок";
53
+ };
54
+ readonly banners: {
55
+ readonly note: "в колонке баннеров, рядом с онбордингом и карточкой приложения";
56
+ };
57
+ readonly belowLinks: {
58
+ readonly note: "под колонками ссылок, над нижней полосой";
59
+ };
60
+ readonly belowSubFooter: {
61
+ readonly note: "последним в подвале, под нижней полосой";
62
+ };
63
+ };
64
+ //# sourceMappingURL=slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../src/shared/slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAatC,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,sCAAsC;AACtC,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAE/D,yEAAyE;AACzE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;AAEpF,eAAO,MAAM,sBAAsB;;;;IAEjC;;;;OAIG;;;;IAEH;;;;OAIG;;;;;;;IAGH;;;;OAIG;;;;;;;CAG6B,CAAA;AAElC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAKG,CAAA"}
@@ -0,0 +1,53 @@
1
+ const NAVIGATION_SLOT_POINTS = {
2
+ aboveMenu: {
3
+ note: "первым ВНУТРИ контейнера навигации, над шапкой и меню — в потоке"
4
+ },
5
+ /**
6
+ * Вместе с `top` и `searchPanel` это три точки ОДНОЙ фичи, а не три имени одной точки: в
7
+ * легаси потребитель заполняет их разом и разным — сюда кнопку, раскрывающую панель,
8
+ * в `searchPanel` саму панель, в `top` строку поиска для широкого экрана.
9
+ */
10
+ actionsButton: {
11
+ note: "рядом с кнопкой меню, ТОЛЬКО на узком экране"
12
+ },
13
+ /**
14
+ * Стоит рядом с `aboveMenu` в потоке, но снаружи контейнера — и разница в этом: сюда кладут
15
+ * наложения, которым нельзя попасть под обрезку и отступы контейнера. В легаси это подсказки
16
+ * профиль-меню; собственного вида у места нет, содержимое позиционирует себя само.
17
+ */
18
+ background: {
19
+ note: "первым в навигации, СНАРУЖИ контейнера — для наложений"
20
+ },
21
+ belowMenu: {
22
+ note: "последним ВНУТРИ контейнера навигации, под меню — в потоке"
23
+ },
24
+ /**
25
+ * В легаси сюда встаёт панель поиска, и показывалась она по глобальному классу с анимацией —
26
+ * эта механика принадлежит самой панели, а не навигации. Пакет резервирует место и рисует
27
+ * то, что дали; показ и скрытие — забота потребителя.
28
+ */
29
+ searchPanel: {
30
+ note: "над шапкой, ниже L — там же, где кнопка раскрытия"
31
+ },
32
+ top: {
33
+ note: "строка шапки рядом с кнопкой меню, ТОЛЬКО от L и шире"
34
+ }
35
+ };
36
+ const FOOTER_SLOT_POINTS = {
37
+ aboveLinks: {
38
+ note: "первым в подвале, над логотипом и колонками ссылок"
39
+ },
40
+ banners: {
41
+ note: "в колонке баннеров, рядом с онбордингом и карточкой приложения"
42
+ },
43
+ belowLinks: {
44
+ note: "под колонками ссылок, над нижней полосой"
45
+ },
46
+ belowSubFooter: {
47
+ note: "последним в подвале, под нижней полосой"
48
+ }
49
+ };
50
+ export {
51
+ FOOTER_SLOT_POINTS,
52
+ NAVIGATION_SLOT_POINTS
53
+ };
@@ -1,57 +0,0 @@
1
- const scriptRel = "modulepreload";
2
- const assetsURL = function(dep) {
3
- return "/" + dep;
4
- };
5
- const seen = {};
6
- const __vitePreload = function preload(baseModule, deps, importerUrl) {
7
- let promise = Promise.resolve();
8
- if (deps && deps.length > 0) {
9
- let allSettled = function(promises$2) {
10
- return Promise.all(promises$2.map((p) => Promise.resolve(p).then((value$1) => ({
11
- status: "fulfilled",
12
- value: value$1
13
- }), (reason) => ({
14
- status: "rejected",
15
- reason
16
- }))));
17
- };
18
- document.getElementsByTagName("link");
19
- const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
20
- const cspNonce = (cspNonceMeta == null ? void 0 : cspNonceMeta.nonce) || (cspNonceMeta == null ? void 0 : cspNonceMeta.getAttribute("nonce"));
21
- promise = allSettled(deps.map((dep) => {
22
- dep = assetsURL(dep);
23
- if (dep in seen) return;
24
- seen[dep] = true;
25
- const isCss = dep.endsWith(".css");
26
- const cssSelector = isCss ? '[rel="stylesheet"]' : "";
27
- if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) return;
28
- const link = document.createElement("link");
29
- link.rel = isCss ? "stylesheet" : scriptRel;
30
- if (!isCss) link.as = "script";
31
- link.crossOrigin = "";
32
- link.href = dep;
33
- if (cspNonce) link.setAttribute("nonce", cspNonce);
34
- document.head.appendChild(link);
35
- if (isCss) return new Promise((res, rej) => {
36
- link.addEventListener("load", res);
37
- link.addEventListener("error", () => rej(/* @__PURE__ */ new Error(`Unable to preload CSS for ${dep}`)));
38
- });
39
- }));
40
- }
41
- function handlePreloadError(err$2) {
42
- const e$1 = new Event("vite:preloadError", { cancelable: true });
43
- e$1.payload = err$2;
44
- window.dispatchEvent(e$1);
45
- if (!e$1.defaultPrevented) throw err$2;
46
- }
47
- return promise.then((res) => {
48
- for (const item of res || []) {
49
- if (item.status !== "rejected") continue;
50
- handlePreloadError(item.reason);
51
- }
52
- return baseModule().catch(handlePreloadError);
53
- });
54
- };
55
- export {
56
- __vitePreload
57
- };
@@ -1,15 +0,0 @@
1
- import { SELECTOR_IDS } from "../../../shared/constants.js";
2
- import { ActionButton } from "../../atoms/action-button/index.js";
3
- import { jsx } from "preact/jsx-runtime";
4
- function PhoneButton({
5
- number
6
- }) {
7
- return jsx(ActionButton, {
8
- icon: "phoneCall",
9
- id: SELECTOR_IDS.PHONE_BUTTON_MOBILE,
10
- url: `tel:${number}`
11
- });
12
- }
13
- export {
14
- PhoneButton
15
- };