@gravity-ui/page-constructor 8.13.2 → 8.14.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 (184) hide show
  1. package/build/cjs/blocks/Footer/Footer.css +53 -0
  2. package/build/cjs/blocks/Footer/Footer.d.ts +5 -0
  3. package/build/cjs/blocks/Footer/Footer.js +34 -0
  4. package/build/cjs/blocks/Footer/Footer.js.map +1 -0
  5. package/build/cjs/blocks/Footer/components/CopyrightFloor/CopyrightFloor.css +201 -0
  6. package/build/cjs/blocks/Footer/components/CopyrightFloor/CopyrightFloor.d.ts +6 -0
  7. package/build/cjs/blocks/Footer/components/CopyrightFloor/CopyrightFloor.js +142 -0
  8. package/build/cjs/blocks/Footer/components/CopyrightFloor/CopyrightFloor.js.map +1 -0
  9. package/build/cjs/blocks/Footer/components/CopyrightFloor/index.d.ts +1 -0
  10. package/build/cjs/blocks/Footer/components/CopyrightFloor/index.js +6 -0
  11. package/build/cjs/blocks/Footer/components/CopyrightFloor/index.js.map +1 -0
  12. package/build/cjs/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.css +28 -0
  13. package/build/cjs/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.d.ts +6 -0
  14. package/build/cjs/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.js +18 -0
  15. package/build/cjs/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.js.map +1 -0
  16. package/build/cjs/blocks/Footer/components/DisclaimerFloor/index.d.ts +1 -0
  17. package/build/cjs/blocks/Footer/components/DisclaimerFloor/index.js +6 -0
  18. package/build/cjs/blocks/Footer/components/DisclaimerFloor/index.js.map +1 -0
  19. package/build/cjs/blocks/Footer/components/LangSwitcher/LangSwitcher.css +14 -0
  20. package/build/cjs/blocks/Footer/components/LangSwitcher/LangSwitcher.d.ts +11 -0
  21. package/build/cjs/blocks/Footer/components/LangSwitcher/LangSwitcher.js +38 -0
  22. package/build/cjs/blocks/Footer/components/LangSwitcher/LangSwitcher.js.map +1 -0
  23. package/build/cjs/blocks/Footer/components/LangSwitcher/index.d.ts +1 -0
  24. package/build/cjs/blocks/Footer/components/LangSwitcher/index.js +6 -0
  25. package/build/cjs/blocks/Footer/components/LangSwitcher/index.js.map +1 -0
  26. package/build/cjs/blocks/Footer/components/NavigationFloor/NavigationFloor.css +93 -0
  27. package/build/cjs/blocks/Footer/components/NavigationFloor/NavigationFloor.d.ts +12 -0
  28. package/build/cjs/blocks/Footer/components/NavigationFloor/NavigationFloor.js +37 -0
  29. package/build/cjs/blocks/Footer/components/NavigationFloor/NavigationFloor.js.map +1 -0
  30. package/build/cjs/blocks/Footer/components/NavigationFloor/index.d.ts +1 -0
  31. package/build/cjs/blocks/Footer/components/NavigationFloor/index.js +6 -0
  32. package/build/cjs/blocks/Footer/components/NavigationFloor/index.js.map +1 -0
  33. package/build/cjs/blocks/Footer/components/SocialFloor/SocialFloor.css +77 -0
  34. package/build/cjs/blocks/Footer/components/SocialFloor/SocialFloor.d.ts +6 -0
  35. package/build/cjs/blocks/Footer/components/SocialFloor/SocialFloor.js +38 -0
  36. package/build/cjs/blocks/Footer/components/SocialFloor/SocialFloor.js.map +1 -0
  37. package/build/cjs/blocks/Footer/components/SocialFloor/index.d.ts +1 -0
  38. package/build/cjs/blocks/Footer/components/SocialFloor/index.js +6 -0
  39. package/build/cjs/blocks/Footer/components/SocialFloor/index.js.map +1 -0
  40. package/build/cjs/blocks/Footer/hooks/useLogoImageProps.d.ts +2 -0
  41. package/build/cjs/blocks/Footer/hooks/useLogoImageProps.js +21 -0
  42. package/build/cjs/blocks/Footer/hooks/useLogoImageProps.js.map +1 -0
  43. package/build/cjs/blocks/Footer/hooks/useOverflowListItems.d.ts +18 -0
  44. package/build/cjs/blocks/Footer/hooks/useOverflowListItems.js +108 -0
  45. package/build/cjs/blocks/Footer/hooks/useOverflowListItems.js.map +1 -0
  46. package/build/cjs/blocks/Footer/schema.d.ts +347 -0
  47. package/build/cjs/blocks/Footer/schema.js +123 -0
  48. package/build/cjs/blocks/Footer/schema.js.map +1 -0
  49. package/build/cjs/blocks/index.d.ts +1 -0
  50. package/build/cjs/blocks/index.js +3 -1
  51. package/build/cjs/blocks/index.js.map +1 -1
  52. package/build/cjs/blocks/validators.d.ts +1 -0
  53. package/build/cjs/blocks/validators.js +1 -0
  54. package/build/cjs/blocks/validators.js.map +1 -1
  55. package/build/cjs/components/BrandFooter/BrandFooter.css +2 -2
  56. package/build/cjs/constructor-items.d.ts +2 -1
  57. package/build/cjs/constructor-items.js +1 -0
  58. package/build/cjs/constructor-items.js.map +1 -1
  59. package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +0 -1
  60. package/build/cjs/containers/PageConstructor/PageConstructor.js +0 -1
  61. package/build/cjs/containers/PageConstructor/PageConstructor.js.map +1 -1
  62. package/build/cjs/models/constructor-items/blocks.d.ts +77 -2
  63. package/build/cjs/models/constructor-items/blocks.js +1 -0
  64. package/build/cjs/models/constructor-items/blocks.js.map +1 -1
  65. package/build/cjs/models/navigation.d.ts +1 -0
  66. package/build/cjs/models/navigation.js.map +1 -1
  67. package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.d.ts +1 -1
  68. package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -2
  69. package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
  70. package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +1 -1
  71. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -1
  72. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js +2 -2
  73. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
  74. package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +2 -0
  75. package/build/cjs/navigation/models.d.ts +1 -0
  76. package/build/cjs/navigation/models.js.map +1 -1
  77. package/build/cjs/navigation/utils.d.ts +1 -0
  78. package/build/cjs/schema/constants.js +2 -0
  79. package/build/cjs/schema/constants.js.map +1 -1
  80. package/build/cjs/schema/validators/blocks.d.ts +1 -0
  81. package/build/cjs/schema/validators/blocks.js +1 -0
  82. package/build/cjs/schema/validators/blocks.js.map +1 -1
  83. package/build/cjs/text-transform/config.js +13 -0
  84. package/build/cjs/text-transform/config.js.map +1 -1
  85. package/build/cjs/utils/url.js +1 -1
  86. package/build/cjs/utils/url.js.map +1 -1
  87. package/build/cjs/utils/url.test.js +2 -0
  88. package/build/cjs/utils/url.test.js.map +1 -1
  89. package/build/esm/blocks/Footer/Footer.css +53 -0
  90. package/build/esm/blocks/Footer/Footer.d.ts +6 -0
  91. package/build/esm/blocks/Footer/Footer.js +31 -0
  92. package/build/esm/blocks/Footer/Footer.js.map +1 -0
  93. package/build/esm/blocks/Footer/components/CopyrightFloor/CopyrightFloor.css +201 -0
  94. package/build/esm/blocks/Footer/components/CopyrightFloor/CopyrightFloor.d.ts +7 -0
  95. package/build/esm/blocks/Footer/components/CopyrightFloor/CopyrightFloor.js +138 -0
  96. package/build/esm/blocks/Footer/components/CopyrightFloor/CopyrightFloor.js.map +1 -0
  97. package/build/esm/blocks/Footer/components/CopyrightFloor/index.d.ts +1 -0
  98. package/build/esm/blocks/Footer/components/CopyrightFloor/index.js +2 -0
  99. package/build/esm/blocks/Footer/components/CopyrightFloor/index.js.map +1 -0
  100. package/build/esm/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.css +28 -0
  101. package/build/esm/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.d.ts +7 -0
  102. package/build/esm/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.js +15 -0
  103. package/build/esm/blocks/Footer/components/DisclaimerFloor/DisclaimerFloor.js.map +1 -0
  104. package/build/esm/blocks/Footer/components/DisclaimerFloor/index.d.ts +1 -0
  105. package/build/esm/blocks/Footer/components/DisclaimerFloor/index.js +2 -0
  106. package/build/esm/blocks/Footer/components/DisclaimerFloor/index.js.map +1 -0
  107. package/build/esm/blocks/Footer/components/LangSwitcher/LangSwitcher.css +14 -0
  108. package/build/esm/blocks/Footer/components/LangSwitcher/LangSwitcher.d.ts +12 -0
  109. package/build/esm/blocks/Footer/components/LangSwitcher/LangSwitcher.js +34 -0
  110. package/build/esm/blocks/Footer/components/LangSwitcher/LangSwitcher.js.map +1 -0
  111. package/build/esm/blocks/Footer/components/LangSwitcher/index.d.ts +1 -0
  112. package/build/esm/blocks/Footer/components/LangSwitcher/index.js +2 -0
  113. package/build/esm/blocks/Footer/components/LangSwitcher/index.js.map +1 -0
  114. package/build/esm/blocks/Footer/components/NavigationFloor/NavigationFloor.css +93 -0
  115. package/build/esm/blocks/Footer/components/NavigationFloor/NavigationFloor.d.ts +13 -0
  116. package/build/esm/blocks/Footer/components/NavigationFloor/NavigationFloor.js +33 -0
  117. package/build/esm/blocks/Footer/components/NavigationFloor/NavigationFloor.js.map +1 -0
  118. package/build/esm/blocks/Footer/components/NavigationFloor/index.d.ts +1 -0
  119. package/build/esm/blocks/Footer/components/NavigationFloor/index.js +2 -0
  120. package/build/esm/blocks/Footer/components/NavigationFloor/index.js.map +1 -0
  121. package/build/esm/blocks/Footer/components/SocialFloor/SocialFloor.css +77 -0
  122. package/build/esm/blocks/Footer/components/SocialFloor/SocialFloor.d.ts +7 -0
  123. package/build/esm/blocks/Footer/components/SocialFloor/SocialFloor.js +35 -0
  124. package/build/esm/blocks/Footer/components/SocialFloor/SocialFloor.js.map +1 -0
  125. package/build/esm/blocks/Footer/components/SocialFloor/index.d.ts +1 -0
  126. package/build/esm/blocks/Footer/components/SocialFloor/index.js +2 -0
  127. package/build/esm/blocks/Footer/components/SocialFloor/index.js.map +1 -0
  128. package/build/esm/blocks/Footer/hooks/useLogoImageProps.d.ts +2 -0
  129. package/build/esm/blocks/Footer/hooks/useLogoImageProps.js +17 -0
  130. package/build/esm/blocks/Footer/hooks/useLogoImageProps.js.map +1 -0
  131. package/build/esm/blocks/Footer/hooks/useOverflowListItems.d.ts +18 -0
  132. package/build/esm/blocks/Footer/hooks/useOverflowListItems.js +104 -0
  133. package/build/esm/blocks/Footer/hooks/useOverflowListItems.js.map +1 -0
  134. package/build/esm/blocks/Footer/schema.d.ts +347 -0
  135. package/build/esm/blocks/Footer/schema.js +120 -0
  136. package/build/esm/blocks/Footer/schema.js.map +1 -0
  137. package/build/esm/blocks/index.d.ts +1 -0
  138. package/build/esm/blocks/index.js +1 -0
  139. package/build/esm/blocks/index.js.map +1 -1
  140. package/build/esm/blocks/validators.d.ts +1 -0
  141. package/build/esm/blocks/validators.js +1 -0
  142. package/build/esm/blocks/validators.js.map +1 -1
  143. package/build/esm/components/BrandFooter/BrandFooter.css +2 -2
  144. package/build/esm/constructor-items.d.ts +2 -1
  145. package/build/esm/constructor-items.js +2 -1
  146. package/build/esm/constructor-items.js.map +1 -1
  147. package/build/esm/containers/PageConstructor/PageConstructor.d.ts +0 -1
  148. package/build/esm/containers/PageConstructor/PageConstructor.js +0 -1
  149. package/build/esm/containers/PageConstructor/PageConstructor.js.map +1 -1
  150. package/build/esm/models/constructor-items/blocks.d.ts +77 -2
  151. package/build/esm/models/constructor-items/blocks.js +1 -0
  152. package/build/esm/models/constructor-items/blocks.js.map +1 -1
  153. package/build/esm/models/navigation.d.ts +1 -0
  154. package/build/esm/models/navigation.js.map +1 -1
  155. package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.d.ts +1 -1
  156. package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -2
  157. package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
  158. package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +1 -1
  159. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -1
  160. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js +2 -2
  161. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
  162. package/build/esm/navigation/hooks/useActiveNavItem.d.ts +2 -0
  163. package/build/esm/navigation/models.d.ts +1 -0
  164. package/build/esm/navigation/models.js.map +1 -1
  165. package/build/esm/navigation/utils.d.ts +1 -0
  166. package/build/esm/schema/constants.js +3 -1
  167. package/build/esm/schema/constants.js.map +1 -1
  168. package/build/esm/schema/validators/blocks.d.ts +1 -0
  169. package/build/esm/schema/validators/blocks.js +1 -0
  170. package/build/esm/schema/validators/blocks.js.map +1 -1
  171. package/build/esm/text-transform/config.js +13 -0
  172. package/build/esm/text-transform/config.js.map +1 -1
  173. package/build/esm/utils/url.js +1 -1
  174. package/build/esm/utils/url.js.map +1 -1
  175. package/build/esm/utils/url.test.js +2 -0
  176. package/build/esm/utils/url.test.js.map +1 -1
  177. package/package.json +1 -1
  178. package/schema/index.js +1 -1
  179. package/server/models/constructor-items/blocks.d.ts +77 -2
  180. package/server/models/constructor-items/blocks.js +1 -0
  181. package/server/models/navigation.d.ts +1 -0
  182. package/server/text-transform/config.js +10 -0
  183. package/server/utils/url.js +1 -1
  184. package/widget/index.js +1 -1
@@ -0,0 +1,120 @@
1
+ import { ImageProps } from "../../components/Image/schema.js";
2
+ import { BlockBaseProps, LinkProps, containerSizesObject, withTheme, } from "../../schema/validators/common.js";
3
+ import { filteredArray } from "../../schema/validators/utils.js";
4
+ const FooterLogoProps = {
5
+ type: 'object',
6
+ additionalProperties: false,
7
+ required: ['image'],
8
+ properties: {
9
+ image: withTheme(ImageProps),
10
+ url: { type: 'string' },
11
+ alt: { type: 'string', contentType: 'text' },
12
+ },
13
+ };
14
+ const FooterLinkColumn = {
15
+ type: 'object',
16
+ additionalProperties: false,
17
+ required: ['title', 'links'],
18
+ properties: {
19
+ title: { type: 'string', contentType: 'text' },
20
+ links: filteredArray(LinkProps),
21
+ },
22
+ };
23
+ const FooterlContactItem = {
24
+ type: 'object',
25
+ additionalProperties: false,
26
+ required: ['icon', 'url'],
27
+ properties: {
28
+ icon: withTheme(ImageProps),
29
+ url: { type: 'string' },
30
+ urlTitle: { type: 'string', contentType: 'text' },
31
+ },
32
+ };
33
+ const FooterContactsBlock = {
34
+ type: 'object',
35
+ additionalProperties: false,
36
+ required: [],
37
+ properties: {
38
+ title: { type: 'string', contentType: 'text' },
39
+ iconsSize: { type: 'string', enum: ['m', 'l'] },
40
+ links: filteredArray(FooterlContactItem),
41
+ linksPosition: { type: 'string', enum: ['left', 'center'] },
42
+ titlePosition: { type: 'string', enum: ['top', 'near'] },
43
+ },
44
+ };
45
+ const FooterDisclaimerContent = {
46
+ type: 'object',
47
+ additionalProperties: false,
48
+ required: ['text', 'align'],
49
+ properties: {
50
+ text: { type: 'string', contentType: 'text' },
51
+ align: { type: 'string', enum: ['left', 'center'] },
52
+ },
53
+ };
54
+ const FooterLanguageSwitcherItem = {
55
+ type: 'object',
56
+ additionalProperties: false,
57
+ required: ['text', 'href'],
58
+ properties: {
59
+ text: { type: 'string', contentType: 'text' },
60
+ href: { type: 'string' },
61
+ },
62
+ };
63
+ const FooterLanguageSwitcher = {
64
+ type: 'object',
65
+ additionalProperties: false,
66
+ required: ['items'],
67
+ properties: {
68
+ items: filteredArray(FooterLanguageSwitcherItem),
69
+ buttonText: { type: 'string', contentType: 'text' },
70
+ image: withTheme(ImageProps),
71
+ },
72
+ };
73
+ const FooterCopyrightBlock = {
74
+ type: 'object',
75
+ additionalProperties: false,
76
+ required: [],
77
+ properties: {
78
+ links: filteredArray(LinkProps),
79
+ linksOverflowStrategy: { type: 'string', enum: ['dropdown', 'line-wrap'] },
80
+ languageSwitcher: FooterLanguageSwitcher,
81
+ copyrightText: { type: 'string', contentType: 'text' },
82
+ logo: FooterLogoProps,
83
+ },
84
+ };
85
+ const FooterNavigationBlock = {
86
+ type: 'object',
87
+ additionalProperties: false,
88
+ required: ['columns'],
89
+ properties: {
90
+ logo: {
91
+ ...FooterLogoProps,
92
+ properties: {
93
+ ...FooterLogoProps.properties,
94
+ placement: { type: 'string', enum: ['left', 'top'] },
95
+ },
96
+ },
97
+ columns: filteredArray(FooterLinkColumn),
98
+ colSizes: containerSizesObject,
99
+ columnsPerRow: { type: 'number', minimum: 1, maximum: 12 },
100
+ },
101
+ };
102
+ const FooterAttributionBlock = {
103
+ type: 'boolean',
104
+ };
105
+ export const FooterBlock = {
106
+ 'footer-block': {
107
+ additionalProperties: false,
108
+ properties: {
109
+ ...BlockBaseProps,
110
+ backgroundColor: withTheme({ type: 'string' }),
111
+ indentTop: { type: 'string', enum: ['0', 'xs', 's', 'm', 'l', 'xl'] },
112
+ navigation: FooterNavigationBlock,
113
+ contacts: FooterContactsBlock,
114
+ disclaimer: FooterDisclaimerContent,
115
+ copyright: FooterCopyrightBlock,
116
+ attribution: FooterAttributionBlock,
117
+ },
118
+ },
119
+ };
120
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../src","sources":["blocks/Footer/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import {ImageProps} from '../../components/Image/schema';\nimport {\n BlockBaseProps,\n LinkProps,\n containerSizesObject,\n withTheme,\n} from '../../schema/validators/common';\nimport {filteredArray} from '../../schema/validators/utils';\n\nconst FooterLogoProps = {\n type: 'object',\n additionalProperties: false,\n required: ['image'],\n properties: {\n image: withTheme(ImageProps),\n url: {type: 'string'},\n alt: {type: 'string', contentType: 'text'},\n },\n};\n\nconst FooterLinkColumn = {\n type: 'object',\n additionalProperties: false,\n required: ['title', 'links'],\n properties: {\n title: {type: 'string', contentType: 'text'},\n links: filteredArray(LinkProps),\n },\n};\n\nconst FooterlContactItem = {\n type: 'object',\n additionalProperties: false,\n required: ['icon', 'url'],\n properties: {\n icon: withTheme(ImageProps),\n url: {type: 'string'},\n urlTitle: {type: 'string', contentType: 'text'},\n },\n};\n\nconst FooterContactsBlock = {\n type: 'object',\n additionalProperties: false,\n required: [],\n properties: {\n title: {type: 'string', contentType: 'text'},\n iconsSize: {type: 'string', enum: ['m', 'l']},\n links: filteredArray(FooterlContactItem),\n linksPosition: {type: 'string', enum: ['left', 'center']},\n titlePosition: {type: 'string', enum: ['top', 'near']},\n },\n};\n\nconst FooterDisclaimerContent = {\n type: 'object',\n additionalProperties: false,\n required: ['text', 'align'],\n properties: {\n text: {type: 'string', contentType: 'text'},\n align: {type: 'string', enum: ['left', 'center']},\n },\n};\n\nconst FooterLanguageSwitcherItem = {\n type: 'object',\n additionalProperties: false,\n required: ['text', 'href'],\n properties: {\n text: {type: 'string', contentType: 'text'},\n href: {type: 'string'},\n },\n};\n\nconst FooterLanguageSwitcher = {\n type: 'object',\n additionalProperties: false,\n required: ['items'],\n properties: {\n items: filteredArray(FooterLanguageSwitcherItem),\n buttonText: {type: 'string', contentType: 'text'},\n image: withTheme(ImageProps),\n },\n};\n\nconst FooterCopyrightBlock = {\n type: 'object',\n additionalProperties: false,\n required: [],\n properties: {\n links: filteredArray(LinkProps),\n linksOverflowStrategy: {type: 'string', enum: ['dropdown', 'line-wrap']},\n languageSwitcher: FooterLanguageSwitcher,\n copyrightText: {type: 'string', contentType: 'text'},\n logo: FooterLogoProps,\n },\n};\n\nconst FooterNavigationBlock = {\n type: 'object',\n additionalProperties: false,\n required: ['columns'],\n properties: {\n logo: {\n ...FooterLogoProps,\n properties: {\n ...FooterLogoProps.properties,\n placement: {type: 'string', enum: ['left', 'top']},\n },\n },\n columns: filteredArray(FooterLinkColumn),\n colSizes: containerSizesObject,\n columnsPerRow: {type: 'number', minimum: 1, maximum: 12},\n },\n};\n\nconst FooterAttributionBlock = {\n type: 'boolean',\n};\n\nexport const FooterBlock = {\n 'footer-block': {\n additionalProperties: false,\n properties: {\n ...BlockBaseProps,\n backgroundColor: withTheme({type: 'string'}),\n indentTop: {type: 'string', enum: ['0', 'xs', 's', 'm', 'l', 'xl']},\n navigation: FooterNavigationBlock,\n contacts: FooterContactsBlock,\n disclaimer: FooterDisclaimerContent,\n copyright: FooterCopyrightBlock,\n attribution: FooterAttributionBlock,\n },\n },\n};\n"]}
@@ -14,6 +14,7 @@ export { default as TableBlock } from "./Table/Table.js";
14
14
  export { default as TabsBlock } from "./Tabs/Tabs.js";
15
15
  export { default as HeaderBlock } from "./Header/Header.js";
16
16
  export { default as HeroBlock } from "./Hero/Hero.js";
17
+ export { default as FooterBlock } from "./Footer/Footer.js";
17
18
  export { default as IconsBlock } from "./Icons/Icons.js";
18
19
  export { default as HeaderSliderBlock } from "./HeaderSlider/HeaderSlider.js";
19
20
  export { default as CardLayoutBlock } from "./CardLayout/CardLayout.js";
@@ -13,6 +13,7 @@ export { default as TableBlock } from "./Table/Table.js";
13
13
  export { default as TabsBlock } from "./Tabs/Tabs.js";
14
14
  export { default as HeaderBlock } from "./Header/Header.js";
15
15
  export { default as HeroBlock } from "./Hero/Hero.js";
16
+ export { default as FooterBlock } from "./Footer/Footer.js";
16
17
  export { default as IconsBlock } from "./Icons/Icons.js";
17
18
  export { default as HeaderSliderBlock } from "./HeaderSlider/HeaderSlider.js";
18
19
  export { default as CardLayoutBlock } from "./CardLayout/CardLayout.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AACvD,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,qBAAkB;AAC9C,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AAEvD,OAAO,EAAC,OAAO,IAAI,qBAAqB,EAAC,+CAA4C;AACrF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,mDAAgD;AACtF,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AACzE,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AACvD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AACzE,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,mCAAgC;AACnE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,yCAAsC;AAC5E,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,qCAAkC;AACjE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB","sourcesContent":["export {default as BannerBlock} from './Banner/Banner';\nexport {default as CompaniesBlock} from './Companies/Companies';\nexport {default as InfoBlock} from './Info/Info';\nexport {default as MediaBlock} from './Media/Media';\nexport {default as MapBlock} from './Map/Map';\nexport {default as SliderOldBlock} from './SliderOld/SliderOld';\nexport {default as SliderBlock} from './Slider/Slider';\nexport type {Swiper, SwiperOptions} from './Slider/Slider';\nexport {default as ExtendedFeaturesBlock} from './ExtendedFeatures/ExtendedFeatures';\nexport {default as PromoFeaturesBlock} from './PromoFeaturesBlock/PromoFeaturesBlock';\nexport {default as QuestionsBlock} from './Questions/Questions';\nexport {default as FoldableListBlock} from './FoldableList/FoldableList';\nexport {default as TableBlock} from './Table/Table';\nexport {default as TabsBlock} from './Tabs/Tabs';\nexport {default as HeaderBlock} from './Header/Header';\nexport {default as HeroBlock} from './Hero/Hero';\nexport {default as IconsBlock} from './Icons/Icons';\nexport {default as HeaderSliderBlock} from './HeaderSlider/HeaderSlider';\nexport {default as CardLayoutBlock} from './CardLayout/CardLayout';\nexport {default as ContentLayoutBlock} from './ContentLayout/ContentLayout';\nexport {default as ShareBlock} from './Share/Share';\nexport {default as FilterBlock} from './FilterBlock/FilterBlock';\nexport {default as FormBlock} from './Form/Form';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../src","sources":["blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AACvD,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,qBAAkB;AAC9C,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AAEvD,OAAO,EAAC,OAAO,IAAI,qBAAqB,EAAC,+CAA4C;AACrF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,mDAAgD;AACtF,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,iCAA8B;AAChE,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AACzE,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AACvD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB;AACjD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,2BAAwB;AACvD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AACzE,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,mCAAgC;AACnE,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,yCAAsC;AAC5E,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,yBAAsB;AACpD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,qCAAkC;AACjE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,uBAAoB","sourcesContent":["export {default as BannerBlock} from './Banner/Banner';\nexport {default as CompaniesBlock} from './Companies/Companies';\nexport {default as InfoBlock} from './Info/Info';\nexport {default as MediaBlock} from './Media/Media';\nexport {default as MapBlock} from './Map/Map';\nexport {default as SliderOldBlock} from './SliderOld/SliderOld';\nexport {default as SliderBlock} from './Slider/Slider';\nexport type {Swiper, SwiperOptions} from './Slider/Slider';\nexport {default as ExtendedFeaturesBlock} from './ExtendedFeatures/ExtendedFeatures';\nexport {default as PromoFeaturesBlock} from './PromoFeaturesBlock/PromoFeaturesBlock';\nexport {default as QuestionsBlock} from './Questions/Questions';\nexport {default as FoldableListBlock} from './FoldableList/FoldableList';\nexport {default as TableBlock} from './Table/Table';\nexport {default as TabsBlock} from './Tabs/Tabs';\nexport {default as HeaderBlock} from './Header/Header';\nexport {default as HeroBlock} from './Hero/Hero';\nexport {default as FooterBlock} from './Footer/Footer';\nexport {default as IconsBlock} from './Icons/Icons';\nexport {default as HeaderSliderBlock} from './HeaderSlider/HeaderSlider';\nexport {default as CardLayoutBlock} from './CardLayout/CardLayout';\nexport {default as ContentLayoutBlock} from './ContentLayout/ContentLayout';\nexport {default as ShareBlock} from './Share/Share';\nexport {default as FilterBlock} from './FilterBlock/FilterBlock';\nexport {default as FormBlock} from './Form/Form';\n"]}
@@ -4,6 +4,7 @@ export * from "./Companies/schema.js";
4
4
  export * from "./ContentLayout/schema.js";
5
5
  export * from "./ExtendedFeatures/schema.js";
6
6
  export * from "./Header/schema.js";
7
+ export * from "./Footer/schema.js";
7
8
  export * from "./HeaderSlider/schema.js";
8
9
  export * from "./Hero/schema.js";
9
10
  export * from "./Icons/schema.js";
@@ -4,6 +4,7 @@ export * from "./Companies/schema.js";
4
4
  export * from "./ContentLayout/schema.js";
5
5
  export * from "./ExtendedFeatures/schema.js";
6
6
  export * from "./Header/schema.js";
7
+ export * from "./Footer/schema.js";
7
8
  export * from "./HeaderSlider/schema.js";
8
9
  export * from "./Hero/schema.js";
9
10
  export * from "./Icons/schema.js";
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"../../../src","sources":["blocks/validators.ts"],"names":[],"mappings":"AAAA,mCAAgC;AAChC,uCAAoC;AACpC,sCAAmC;AACnC,0CAAuC;AACvC,6CAA0C;AAC1C,mCAAgC;AAChC,yCAAsC;AACtC,iCAA8B;AAC9B,kCAA+B;AAC/B,iCAA8B;AAC9B,kCAA+B;AAC/B,+CAA4C;AAC5C,sCAAmC;AACnC,sCAAmC;AACnC,mCAAgC;AAChC,kCAA+B;AAC/B,kCAA+B","sourcesContent":["export * from './Banner/schema';\nexport * from './CardLayout/schema';\nexport * from './Companies/schema';\nexport * from './ContentLayout/schema';\nexport * from './ExtendedFeatures/schema';\nexport * from './Header/schema';\nexport * from './HeaderSlider/schema';\nexport * from './Hero/schema';\nexport * from './Icons/schema';\nexport * from './Info/schema';\nexport * from './Media/schema';\nexport * from './PromoFeaturesBlock/schema';\nexport * from './Questions/schema';\nexport * from './SliderOld/schema';\nexport * from './Slider/schema';\nexport * from './Table/schema';\nexport * from './Share/schema';\n"]}
1
+ {"version":3,"file":"validators.js","sourceRoot":"../../../src","sources":["blocks/validators.ts"],"names":[],"mappings":"AAAA,mCAAgC;AAChC,uCAAoC;AACpC,sCAAmC;AACnC,0CAAuC;AACvC,6CAA0C;AAC1C,mCAAgC;AAChC,mCAAgC;AAChC,yCAAsC;AACtC,iCAA8B;AAC9B,kCAA+B;AAC/B,iCAA8B;AAC9B,kCAA+B;AAC/B,+CAA4C;AAC5C,sCAAmC;AACnC,sCAAmC;AACnC,mCAAgC;AAChC,kCAA+B;AAC/B,kCAA+B","sourcesContent":["export * from './Banner/schema';\nexport * from './CardLayout/schema';\nexport * from './Companies/schema';\nexport * from './ContentLayout/schema';\nexport * from './ExtendedFeatures/schema';\nexport * from './Header/schema';\nexport * from './Footer/schema';\nexport * from './HeaderSlider/schema';\nexport * from './Hero/schema';\nexport * from './Icons/schema';\nexport * from './Info/schema';\nexport * from './Media/schema';\nexport * from './PromoFeaturesBlock/schema';\nexport * from './Questions/schema';\nexport * from './SliderOld/schema';\nexport * from './Slider/schema';\nexport * from './Table/schema';\nexport * from './Share/schema';\n"]}
@@ -30,7 +30,7 @@ unpredictable css rules order in build */
30
30
  }
31
31
  .pc-brand-footer_theme_light {
32
32
  color: var(--g-color-text-secondary);
33
- border-top-color: var(--g-color-private-black-200);
33
+ border-top-color: var(--pc-brand-footer-border-color-light, var(--g-color-private-black-200));
34
34
  }
35
35
  .pc-brand-footer_theme_light:hover {
36
36
  color: var(--g-color-text-primary);
@@ -41,7 +41,7 @@ unpredictable css rules order in build */
41
41
  }
42
42
  .pc-brand-footer_theme_dark {
43
43
  color: var(--g-color-private-white-700);
44
- border-top-color: var(--g-color-private-white-100);
44
+ border-top-color: var(--pc-brand-footer-border-color-dark, var(--g-color-private-white-100));
45
45
  }
46
46
  .pc-brand-footer_theme_dark:hover {
47
47
  color: var(--g-color-private-white-1000-solid);
@@ -12,6 +12,7 @@ export declare const blockMap: {
12
12
  "tabs-block": ({ items, title, description, animated, tabsColSizes, centered, direction, contentSize, }: import("./models/index.js").TabsBlockProps) => import("react/jsx-runtime").JSX.Element;
13
13
  "header-block": (props: React.PropsWithChildren<import("./blocks/Header/Header.js").HeaderBlockFullProps>) => import("react/jsx-runtime").JSX.Element;
14
14
  "hero-block": (props: import("./models/index.js").HeroBlockProps) => import("react/jsx-runtime").JSX.Element;
15
+ "footer-block": (props: React.PropsWithChildren<import("./blocks/Footer/Footer.js").FooterBlockFullProps>) => import("react/jsx-runtime").JSX.Element;
15
16
  "icons-block": ({ title, description, size, colSizes, items }: import("./models/index.js").IconsBlockProps) => import("react/jsx-runtime").JSX.Element;
16
17
  "header-slider-block": ({ items, arrows, ...props }: import("./models/index.js").HeaderSliderBlockProps) => import("react/jsx-runtime").JSX.Element;
17
18
  "card-layout-block": ({ title, description, animated, colSizes, children, className, titleClassName, background, centered, }: import("./blocks/CardLayout/CardLayout.js").CardLayoutBlockProps) => import("react/jsx-runtime").JSX.Element;
@@ -38,7 +39,7 @@ export declare const subBlockMap: {
38
39
  export declare const navItemMap: {
39
40
  button: (props: Pick<import("./navigation/index.js").NavigationItemProps, "className"> & import("./models/index.js").ButtonProps) => import("react/jsx-runtime").JSX.Element;
40
41
  social: ({ icon, url, className, urlTitle }: import("./navigation/index.js").NavigationSocialItemOwnProps) => import("react/jsx-runtime").JSX.Element;
41
- dropdown: ({ text, icon, className, iconSize, hidePopup, items, isActive, ...props }: import("./navigation/index.js").NavigationItemProps & import("./models/index.js").NavigationDropdownItem) => import("react/jsx-runtime").JSX.Element;
42
+ dropdown: ({ text, icon, className, iconSize, hidePopup, items, isActive, data: _data, ...props }: import("./navigation/index.js").NavigationItemProps & import("./models/index.js").NavigationDropdownItem) => import("react/jsx-runtime").JSX.Element;
42
43
  link: (props: import("./navigation/index.js").NavigationItemProps & import("./models/index.js").NavigationLinkItem) => import("react/jsx-runtime").JSX.Element;
43
44
  "github-button": ({ text, url, className, label, size, icon, urlTitle, }: import("./navigation/index.js").NavigationItemProps & import("./models/index.js").NavigationGithubButton) => import("react/jsx-runtime").JSX.Element;
44
45
  };
@@ -1,4 +1,4 @@
1
- import { BannerBlock, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FoldableListBlock, FormBlock, HeaderBlock, HeaderSliderBlock, HeroBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, SliderOldBlock, TableBlock, TabsBlock, } from "./blocks/index.js";
1
+ import { BannerBlock, CardLayoutBlock, CompaniesBlock, ContentLayoutBlock, ExtendedFeaturesBlock, FilterBlock, FoldableListBlock, FooterBlock, FormBlock, HeaderBlock, HeaderSliderBlock, HeroBlock, IconsBlock, InfoBlock, MapBlock, MediaBlock, PromoFeaturesBlock, QuestionsBlock, ShareBlock, SliderBlock, SliderOldBlock, TableBlock, TabsBlock, } from "./blocks/index.js";
2
2
  import { BlockType, NavigationItemType, SubBlockType } from "./models/index.js";
3
3
  import { GithubButton, NavigationButton, NavigationDropdown, NavigationLink, } from "./navigation/components/NavigationItem/index.js";
4
4
  import SocialIcon from "./navigation/components/SocialIcon/SocialIcon.js";
@@ -17,6 +17,7 @@ export const blockMap = {
17
17
  [BlockType.TabsBlock]: TabsBlock,
18
18
  [BlockType.HeaderBlock]: HeaderBlock,
19
19
  [BlockType.HeroBlock]: HeroBlock,
20
+ [BlockType.FooterBlock]: FooterBlock,
20
21
  [BlockType.IconsBlock]: IconsBlock,
21
22
  [BlockType.HeaderSliderBlock]: HeaderSliderBlock,
22
23
  [BlockType.CardLayoutBlock]: CardLayoutBlock,
@@ -1 +1 @@
1
- {"version":3,"file":"constructor-items.js","sourceRoot":"../../src","sources":["constructor-items.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BannerBlock,\n CardLayoutBlock,\n CompaniesBlock,\n ContentLayoutBlock,\n ExtendedFeaturesBlock,\n FilterBlock,\n FoldableListBlock,\n FormBlock,\n HeaderBlock,\n HeaderSliderBlock,\n HeroBlock,\n IconsBlock,\n InfoBlock,\n MapBlock,\n MediaBlock,\n PromoFeaturesBlock,\n QuestionsBlock,\n ShareBlock,\n SliderBlock,\n SliderOldBlock,\n TableBlock,\n TabsBlock,\n} from './blocks';\nimport {BlockType, NavigationItemType, SubBlockType} from './models';\nimport {\n GithubButton,\n NavigationButton,\n NavigationDropdown,\n NavigationLink,\n} from './navigation/components/NavigationItem';\nimport SocialIcon from './navigation/components/SocialIcon/SocialIcon';\nimport {\n BackgroundCard,\n BannerCard,\n BasicCard,\n Content,\n Divider,\n ImageCard,\n LayoutItem,\n MediaCard,\n PriceCard,\n PriceDetailed,\n Quote,\n} from './sub-blocks';\n\nexport const blockMap = {\n [BlockType.SliderOldBlock]: SliderOldBlock,\n [BlockType.ExtendedFeaturesBlock]: ExtendedFeaturesBlock,\n [BlockType.PromoFeaturesBlock]: PromoFeaturesBlock,\n [BlockType.QuestionsBlock]: QuestionsBlock,\n [BlockType.FoldableListBlock]: FoldableListBlock,\n [BlockType.BannerBlock]: BannerBlock,\n [BlockType.CompaniesBlock]: CompaniesBlock,\n [BlockType.MediaBlock]: MediaBlock,\n [BlockType.InfoBlock]: InfoBlock,\n [BlockType.TableBlock]: TableBlock,\n [BlockType.TabsBlock]: TabsBlock,\n [BlockType.HeaderBlock]: HeaderBlock,\n [BlockType.HeroBlock]: HeroBlock,\n [BlockType.IconsBlock]: IconsBlock,\n [BlockType.HeaderSliderBlock]: HeaderSliderBlock,\n [BlockType.CardLayoutBlock]: CardLayoutBlock,\n [BlockType.ContentLayoutBlock]: ContentLayoutBlock,\n [BlockType.ShareBlock]: ShareBlock,\n [BlockType.MapBlock]: MapBlock,\n [BlockType.FilterBlock]: FilterBlock,\n [BlockType.FormBlock]: FormBlock,\n [BlockType.SliderBlock]: SliderBlock,\n};\n\nexport const subBlockMap = {\n [SubBlockType.Divider]: Divider,\n [SubBlockType.PriceDetailed]: PriceDetailed,\n [SubBlockType.MediaCard]: MediaCard,\n [SubBlockType.BannerCard]: BannerCard,\n [SubBlockType.LayoutItem]: LayoutItem,\n [SubBlockType.BackgroundCard]: BackgroundCard,\n [SubBlockType.BasicCard]: BasicCard,\n [SubBlockType.Content]: Content,\n [SubBlockType.Quote]: Quote,\n [SubBlockType.PriceCard]: PriceCard,\n [SubBlockType.ImageCard]: ImageCard,\n};\n\nexport const navItemMap = {\n [NavigationItemType.Button]: NavigationButton,\n [NavigationItemType.Social]: SocialIcon,\n [NavigationItemType.Dropdown]: NavigationDropdown,\n [NavigationItemType.Link]: NavigationLink,\n [NavigationItemType.GithubButton]: GithubButton,\n};\n"]}
1
+ {"version":3,"file":"constructor-items.js","sourceRoot":"../../src","sources":["constructor-items.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BannerBlock,\n CardLayoutBlock,\n CompaniesBlock,\n ContentLayoutBlock,\n ExtendedFeaturesBlock,\n FilterBlock,\n FoldableListBlock,\n FooterBlock,\n FormBlock,\n HeaderBlock,\n HeaderSliderBlock,\n HeroBlock,\n IconsBlock,\n InfoBlock,\n MapBlock,\n MediaBlock,\n PromoFeaturesBlock,\n QuestionsBlock,\n ShareBlock,\n SliderBlock,\n SliderOldBlock,\n TableBlock,\n TabsBlock,\n} from './blocks';\nimport {BlockType, NavigationItemType, SubBlockType} from './models';\nimport {\n GithubButton,\n NavigationButton,\n NavigationDropdown,\n NavigationLink,\n} from './navigation/components/NavigationItem';\nimport SocialIcon from './navigation/components/SocialIcon/SocialIcon';\nimport {\n BackgroundCard,\n BannerCard,\n BasicCard,\n Content,\n Divider,\n ImageCard,\n LayoutItem,\n MediaCard,\n PriceCard,\n PriceDetailed,\n Quote,\n} from './sub-blocks';\n\nexport const blockMap = {\n [BlockType.SliderOldBlock]: SliderOldBlock,\n [BlockType.ExtendedFeaturesBlock]: ExtendedFeaturesBlock,\n [BlockType.PromoFeaturesBlock]: PromoFeaturesBlock,\n [BlockType.QuestionsBlock]: QuestionsBlock,\n [BlockType.FoldableListBlock]: FoldableListBlock,\n [BlockType.BannerBlock]: BannerBlock,\n [BlockType.CompaniesBlock]: CompaniesBlock,\n [BlockType.MediaBlock]: MediaBlock,\n [BlockType.InfoBlock]: InfoBlock,\n [BlockType.TableBlock]: TableBlock,\n [BlockType.TabsBlock]: TabsBlock,\n [BlockType.HeaderBlock]: HeaderBlock,\n [BlockType.HeroBlock]: HeroBlock,\n [BlockType.FooterBlock]: FooterBlock,\n [BlockType.IconsBlock]: IconsBlock,\n [BlockType.HeaderSliderBlock]: HeaderSliderBlock,\n [BlockType.CardLayoutBlock]: CardLayoutBlock,\n [BlockType.ContentLayoutBlock]: ContentLayoutBlock,\n [BlockType.ShareBlock]: ShareBlock,\n [BlockType.MapBlock]: MapBlock,\n [BlockType.FilterBlock]: FilterBlock,\n [BlockType.FormBlock]: FormBlock,\n [BlockType.SliderBlock]: SliderBlock,\n};\n\nexport const subBlockMap = {\n [SubBlockType.Divider]: Divider,\n [SubBlockType.PriceDetailed]: PriceDetailed,\n [SubBlockType.MediaCard]: MediaCard,\n [SubBlockType.BannerCard]: BannerCard,\n [SubBlockType.LayoutItem]: LayoutItem,\n [SubBlockType.BackgroundCard]: BackgroundCard,\n [SubBlockType.BasicCard]: BasicCard,\n [SubBlockType.Content]: Content,\n [SubBlockType.Quote]: Quote,\n [SubBlockType.PriceCard]: PriceCard,\n [SubBlockType.ImageCard]: ImageCard,\n};\n\nexport const navItemMap = {\n [NavigationItemType.Button]: NavigationButton,\n [NavigationItemType.Social]: SocialIcon,\n [NavigationItemType.Dropdown]: NavigationDropdown,\n [NavigationItemType.Link]: NavigationLink,\n [NavigationItemType.GithubButton]: GithubButton,\n};\n"]}
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import '@diplodoc/transform/dist/js/yfm.js';
3
2
  import { blockMap, navItemMap, subBlockMap } from "../../constructor-items.js";
4
3
  import { CustomConfig, CustomItems, NavigationData, PageContent, ShouldRenderBlock } from "../../models/index.js";
5
4
  import './PageConstructor.css';
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
- import '@diplodoc/transform/dist/js/yfm.js';
4
3
  import BackgroundMedia from "../../components/BackgroundMedia/BackgroundMedia.js";
5
4
  import BrandFooter from "../../components/BrandFooter/BrandFooter.js";
6
5
  import RootCn from "../../components/RootCn/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"PageConstructor.js","sourceRoot":"../../../../src","sources":["containers/PageConstructor/PageConstructor.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport '@diplodoc/transform/dist/js/yfm.js';\n\nimport BackgroundMedia from '../../components/BackgroundMedia/BackgroundMedia';\nimport BrandFooter from '../../components/BrandFooter/BrandFooter';\nimport RootCn from '../../components/RootCn';\nimport {blockMap, navItemMap, subBlockMap} from '../../constructor-items';\nimport {AnimateContext} from '../../context/animateContext';\nimport {InnerContext} from '../../context/innerContext';\nimport {ProjectSettingsContext} from '../../context/projectSettingsContext';\nimport {useTheme} from '../../context/theme';\nimport {Grid} from '../../grid';\nimport {\n BlockType,\n BlockTypes,\n CustomConfig,\n CustomItems,\n HeaderBlockTypes,\n NavigationData,\n NavigationItemTypes,\n PageContent,\n ShouldRenderBlock,\n SubBlockTypes,\n} from '../../models';\nimport Layout from '../../navigation/containers/Layout/Layout';\nimport {\n block as cnBlock,\n getCustomItems,\n getCustomTypes,\n getHeaderBlock,\n getOrderedBlocks,\n getThemedValue,\n} from '../../utils';\n\nimport {ConstructorBlocks} from './components/ConstructorBlocks';\nimport {ConstructorHeader} from './components/ConstructorItem';\nimport {ConstructorRow} from './components/ConstructorRow';\n\nimport './PageConstructor.scss';\n\nconst b = cnBlock('page-constructor');\n\nexport type ItemMap = typeof blockMap & typeof subBlockMap & CustomItems;\n\nexport type NavItemMap = typeof navItemMap & CustomItems;\n\nexport interface PageConstructorProps {\n content?: PageContent;\n shouldRenderBlock?: ShouldRenderBlock;\n custom?: CustomConfig;\n renderMenu?: () => React.ReactNode;\n navigation?: NavigationData;\n isBranded?: boolean;\n microdata?: {\n contentUpdatedDate?: string;\n };\n}\n\nexport const Constructor = (props: PageConstructorProps) => {\n const {\n content: {blocks = [], background} = {},\n renderMenu,\n shouldRenderBlock,\n navigation,\n custom,\n isBranded,\n microdata,\n } = props;\n\n const {context} = React.useMemo(\n () => ({\n context: {\n blockTypes: [...BlockTypes, ...getCustomTypes(['blocks', 'headers'], custom)],\n subBlockTypes: [...SubBlockTypes, ...getCustomTypes(['subBlocks'], custom)],\n headerBlockTypes: [...HeaderBlockTypes, ...getCustomTypes(['headers'], custom)],\n navigationBlockTypes: [\n ...NavigationItemTypes,\n ...getCustomTypes(['navigation'], custom),\n ],\n itemMap: {\n ...blockMap,\n ...subBlockMap,\n ...getCustomItems(['blocks', 'headers', 'subBlocks'], custom),\n },\n navItemMap: {\n ...navItemMap,\n ...getCustomItems(['navigation'], custom),\n },\n loadables: custom?.loadable,\n shouldRenderBlock,\n customization: {\n decorators: custom?.decorators,\n },\n microdata,\n },\n }),\n [custom, shouldRenderBlock, microdata],\n );\n\n const theme = useTheme();\n\n const header = getHeaderBlock(blocks, context.headerBlockTypes);\n const restBlocks = getOrderedBlocks(blocks, context.headerBlockTypes);\n const themedBackground = getThemedValue(background, theme);\n\n return (\n <InnerContext.Provider value={context}>\n <RootCn className={b()}>\n <div className={b('wrapper')}>\n {themedBackground && (\n <BackgroundMedia {...themedBackground} className={b('background')} />\n )}\n <Layout navigation={navigation}>\n {renderMenu && renderMenu()}\n {header && (\n <ConstructorHeader data={header} blockKey={BlockType.HeaderBlock} />\n )}\n <Grid>\n {restBlocks && (\n <ConstructorRow>\n <ConstructorBlocks items={restBlocks} />\n </ConstructorRow>\n )}\n </Grid>\n </Layout>\n {isBranded && <BrandFooter />}\n </div>\n </RootCn>\n </InnerContext.Provider>\n );\n};\n\nexport const PageConstructor = (props: PageConstructorProps) => {\n const {isAnimationEnabled = true} = React.useContext(ProjectSettingsContext);\n const {content: {animated = isAnimationEnabled} = {}, ...rest} = props;\n\n return (\n <AnimateContext.Provider value={{animated}}>\n <Constructor content={props.content} {...rest} />\n </AnimateContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"PageConstructor.js","sourceRoot":"../../../../src","sources":["containers/PageConstructor/PageConstructor.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport BackgroundMedia from '../../components/BackgroundMedia/BackgroundMedia';\nimport BrandFooter from '../../components/BrandFooter/BrandFooter';\nimport RootCn from '../../components/RootCn';\nimport {blockMap, navItemMap, subBlockMap} from '../../constructor-items';\nimport {AnimateContext} from '../../context/animateContext';\nimport {InnerContext} from '../../context/innerContext';\nimport {ProjectSettingsContext} from '../../context/projectSettingsContext';\nimport {useTheme} from '../../context/theme';\nimport {Grid} from '../../grid';\nimport {\n BlockType,\n BlockTypes,\n CustomConfig,\n CustomItems,\n HeaderBlockTypes,\n NavigationData,\n NavigationItemTypes,\n PageContent,\n ShouldRenderBlock,\n SubBlockTypes,\n} from '../../models';\nimport Layout from '../../navigation/containers/Layout/Layout';\nimport {\n block as cnBlock,\n getCustomItems,\n getCustomTypes,\n getHeaderBlock,\n getOrderedBlocks,\n getThemedValue,\n} from '../../utils';\n\nimport {ConstructorBlocks} from './components/ConstructorBlocks';\nimport {ConstructorHeader} from './components/ConstructorItem';\nimport {ConstructorRow} from './components/ConstructorRow';\n\nimport './PageConstructor.scss';\n\nconst b = cnBlock('page-constructor');\n\nexport type ItemMap = typeof blockMap & typeof subBlockMap & CustomItems;\n\nexport type NavItemMap = typeof navItemMap & CustomItems;\n\nexport interface PageConstructorProps {\n content?: PageContent;\n shouldRenderBlock?: ShouldRenderBlock;\n custom?: CustomConfig;\n renderMenu?: () => React.ReactNode;\n navigation?: NavigationData;\n isBranded?: boolean;\n microdata?: {\n contentUpdatedDate?: string;\n };\n}\n\nexport const Constructor = (props: PageConstructorProps) => {\n const {\n content: {blocks = [], background} = {},\n renderMenu,\n shouldRenderBlock,\n navigation,\n custom,\n isBranded,\n microdata,\n } = props;\n\n const {context} = React.useMemo(\n () => ({\n context: {\n blockTypes: [...BlockTypes, ...getCustomTypes(['blocks', 'headers'], custom)],\n subBlockTypes: [...SubBlockTypes, ...getCustomTypes(['subBlocks'], custom)],\n headerBlockTypes: [...HeaderBlockTypes, ...getCustomTypes(['headers'], custom)],\n navigationBlockTypes: [\n ...NavigationItemTypes,\n ...getCustomTypes(['navigation'], custom),\n ],\n itemMap: {\n ...blockMap,\n ...subBlockMap,\n ...getCustomItems(['blocks', 'headers', 'subBlocks'], custom),\n },\n navItemMap: {\n ...navItemMap,\n ...getCustomItems(['navigation'], custom),\n },\n loadables: custom?.loadable,\n shouldRenderBlock,\n customization: {\n decorators: custom?.decorators,\n },\n microdata,\n },\n }),\n [custom, shouldRenderBlock, microdata],\n );\n\n const theme = useTheme();\n\n const header = getHeaderBlock(blocks, context.headerBlockTypes);\n const restBlocks = getOrderedBlocks(blocks, context.headerBlockTypes);\n const themedBackground = getThemedValue(background, theme);\n\n return (\n <InnerContext.Provider value={context}>\n <RootCn className={b()}>\n <div className={b('wrapper')}>\n {themedBackground && (\n <BackgroundMedia {...themedBackground} className={b('background')} />\n )}\n <Layout navigation={navigation}>\n {renderMenu && renderMenu()}\n {header && (\n <ConstructorHeader data={header} blockKey={BlockType.HeaderBlock} />\n )}\n <Grid>\n {restBlocks && (\n <ConstructorRow>\n <ConstructorBlocks items={restBlocks} />\n </ConstructorRow>\n )}\n </Grid>\n </Layout>\n {isBranded && <BrandFooter />}\n </div>\n </RootCn>\n </InnerContext.Provider>\n );\n};\n\nexport const PageConstructor = (props: PageConstructorProps) => {\n const {isAnimationEnabled = true} = React.useContext(ProjectSettingsContext);\n const {content: {animated = isAnimationEnabled} = {}, ...rest} = props;\n\n return (\n <AnimateContext.Provider value={{animated}}>\n <Constructor content={props.content} {...rest} />\n </AnimateContext.Provider>\n );\n};\n"]}
@@ -29,7 +29,8 @@ export declare enum BlockType {
29
29
  ShareBlock = "share-block",
30
30
  MapBlock = "map-block",
31
31
  FilterBlock = "filter-block",
32
- FormBlock = "form-block"
32
+ FormBlock = "form-block",
33
+ FooterBlock = "footer-block"
33
34
  }
34
35
  export declare const BlockTypes: BlockType[];
35
36
  export declare const HeaderBlockTypes: BlockType[];
@@ -403,6 +404,77 @@ export interface FormBlockProps {
403
404
  customFormNode?: React.ReactNode;
404
405
  additionalContentNode?: React.ReactNode;
405
406
  }
407
+ export interface FooterLinkColumn {
408
+ title: string;
409
+ links: LinkProps[];
410
+ }
411
+ export interface FooterLogoProps {
412
+ image: ThemeSupporting<ImageProps>;
413
+ url?: string;
414
+ alt?: string;
415
+ }
416
+ export interface FooterSection {
417
+ columns: FooterLinkColumn[];
418
+ }
419
+ export interface FooterContactItem {
420
+ icon: ThemeSupporting<ImageProps>;
421
+ url: string;
422
+ urlTitle?: string;
423
+ }
424
+ export interface FooterContacts {
425
+ title?: string;
426
+ iconsSize?: 'm' | 'l';
427
+ links?: FooterContactItem[];
428
+ linksPosition?: 'left' | 'center';
429
+ titlePosition?: 'top' | 'near';
430
+ }
431
+ export interface FooterDisclaimerFloor {
432
+ text: string;
433
+ align: 'left' | 'center';
434
+ }
435
+ export interface FooterCopyright {
436
+ links?: Required<Pick<LinkProps, 'text' | 'url'>>[];
437
+ linksOverflowStrategy?: 'dropdown' | 'line-wrap';
438
+ languageSwitcher?: {
439
+ items: {
440
+ text: string;
441
+ href: string;
442
+ }[];
443
+ buttonText?: string;
444
+ image?: ThemeSupporting<ImageProps>;
445
+ };
446
+ logo?: FooterLogoProps;
447
+ copyrightText?: string;
448
+ }
449
+ export interface FooterAttributionFloor {
450
+ text: string;
451
+ }
452
+ export interface FooterSecondFloor {
453
+ copyright?: string;
454
+ links?: LinkProps[];
455
+ contacts?: FooterContactItem[];
456
+ }
457
+ export interface FooterBlockProps {
458
+ /** Floor 1: first row — logo (if present) + these columns */
459
+ navigation?: {
460
+ logo?: FooterLogoProps & {
461
+ placement?: 'left' | 'top';
462
+ };
463
+ colSizes?: GridColumnSizesType;
464
+ columnsPerRow?: number;
465
+ columns: FooterLinkColumn[];
466
+ };
467
+ /** Floor 2: social row (title + social icons) */
468
+ contacts?: FooterContacts;
469
+ /** Floor 3: legal disclaimer (YFM) */
470
+ disclaimer?: FooterDisclaimerFloor;
471
+ /** Floor 4: privacy/terms links, language, copyright */
472
+ copyright?: FooterCopyright;
473
+ /** Floor 5: attribution ("Created with ...") */
474
+ attribution?: boolean;
475
+ backgroundColor?: ThemeSupporting<string>;
476
+ indentTop?: IndentValue;
477
+ }
406
478
  export type HeaderBlockModel = {
407
479
  type: BlockType.HeaderBlock;
408
480
  } & HeaderBlockProps;
@@ -466,9 +538,12 @@ export type ShareBLockModel = {
466
538
  export type FormBlockModel = {
467
539
  type: BlockType.FormBlock;
468
540
  } & FormBlockProps;
541
+ export type FooterBlockModel = {
542
+ type: BlockType.FooterBlock;
543
+ } & FooterBlockProps;
469
544
  export type SliderBlockModel = {
470
545
  type: BlockType.SliderBlock;
471
546
  } & SliderProps;
472
- type BlockModels = SliderOldBlockModel | SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | FoldableListBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | TabsBlockModel | HeaderBlockModel | HeroBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel;
547
+ type BlockModels = SliderOldBlockModel | SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | FoldableListBlockModel | BannerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | TabsBlockModel | HeaderBlockModel | HeroBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FormBlockModel | FooterBlockModel;
473
548
  export type Block = BlockModels & BlockBaseProps;
474
549
  export {};
@@ -23,6 +23,7 @@ export var BlockType;
23
23
  BlockType["MapBlock"] = "map-block";
24
24
  BlockType["FilterBlock"] = "filter-block";
25
25
  BlockType["FormBlock"] = "form-block";
26
+ BlockType["FooterBlock"] = "footer-block";
26
27
  })(BlockType || (BlockType = {}));
27
28
  export const BlockTypes = Object.values(BlockType);
28
29
  export const HeaderBlockTypes = [
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAN,IAAY,SAwBX;AAxBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;AAC5B,CAAC,EAxBW,SAAS,KAAT,SAAS,QAwBpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,iBAAiB;IAC3B,SAAS,CAAC,SAAS;CACtB,CAAC;AAgCF,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAwWD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {DeviceSupporting} from '../../utils/breakpoint';\nimport {AnalyticsEventsBase, AnalyticsEventsProp} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n GravityIconProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaComponentImageProps,\n MediaComponentVideoProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n HeroBlock = 'hero-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [\n BlockType.HeaderBlock,\n BlockType.HeaderSliderBlock,\n BlockType.HeroBlock,\n];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize | Partial<Record<GridColumnSize, boolean>>;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockVideoIframe {\n src: string;\n autoplay?: boolean;\n previewImg?: string;\n height?: number;\n}\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n videoIframe?: HeaderBlockVideoIframe;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface HeroBlockBackground\n extends Partial<MediaComponentImageProps>,\n Partial<MediaComponentVideoProps> {\n color?: string;\n}\n\nexport interface HeroBlockMedia extends Partial<MediaProps> {\n roundCorners?: boolean;\n}\n\nexport interface HeroBlockProps\n extends Pick<\n ContentBlockProps,\n 'title' | 'text' | 'list' | 'additionalInfo' | 'links' | 'theme'\n > {\n breadcrumbs?: HeaderBreadCrumbsProps;\n // TODO: add overtitle to ContentProps\n overtitle?: string | JSX.Element;\n buttons?: ThemeSupporting<\n Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'extraProps'> | React.ReactNode\n >[];\n media?: ThemeSupporting<HeroBlockMedia>;\n fullWidth?: boolean;\n verticalOffset?: 's' | 'm' | 'l' | 'xl';\n background?: ThemeSupporting<HeroBlockBackground>;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n onClick?: (index: number, newOpenState: boolean) => void;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'theme' | 'centered'> {\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: Omit<MapProps, 'forceAspectRatio' | 'areaMargin' | 'copyrightPosition'>;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n centered?: boolean;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n analyticsEvent?: AnalyticsEventsProp;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable {\n tags: FilterTag[];\n items: FilterItem[];\n title?: TitleItemProps | string;\n description?: string;\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string | FilterTag;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = (props: React.SVGProps<SVGSVGElement>) => React.ReactNode;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon?: ThemeSupporting<ImageProps | SVGIcon>;\n gravityIcon?: ThemeSupporting<GravityIconProps>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: (ButtonProps | React.ReactNode)[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockBackgroundProps extends Omit<BackgroundImageProps, 'style'> {\n style?: DeviceSupporting<React.CSSProperties>;\n}\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<FormBlockBackgroundProps>;\n customFormNode?: React.ReactNode;\n additionalContentNode?: React.ReactNode;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type HeroBlockModel = {\n type: BlockType.HeroBlock;\n} & HeroBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | HeroBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"../../../../src","sources":["models/constructor-items/blocks.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAN,IAAY,SAyBX;AAzBD,WAAY,SAAS;IACjB,wDAA2C,CAAA;IAC3C,8DAAiD,CAAA;IACjD,kBAAkB;IAClB,gDAAmC,CAAA;IACnC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,+CAAkC,CAAA;IAClC,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,qCAAwB,CAAA;IACxB,sDAAyC,CAAA;IACzC,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;IACxB,uCAA0B,CAAA;IAC1B,kDAAqC,CAAA;IACrC,wDAA2C,CAAA;IAC3C,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;IACxB,yCAA4B,CAAA;AAChC,CAAC,EAzBW,SAAS,KAAT,SAAS,QAyBpB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,iBAAiB;IAC3B,SAAS,CAAC,SAAS;CACtB,CAAC;AAgCF,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC7B,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;IACT,kCAAS,CAAA;AACb,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,gDAAkC,CAAA;AACtC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAwWD,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC5B,iCAAS,CAAA;IACT,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,6CAAqB,CAAA;AACzB,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B;AAOD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC1B,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAED,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,kDAA4B,CAAA;IAC5B,kDAA4B,CAAA;IAC5B,uCAAiB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {GridColumnSize, GridColumnSizesType, IndentValue} from '../../grid/types';\nimport {ThemeSupporting} from '../../utils';\nimport {DeviceSupporting} from '../../utils/breakpoint';\nimport {AnalyticsEventsBase, AnalyticsEventsProp} from '../common';\n\nimport {\n AnchorProps,\n Animatable,\n BackgroundImageProps,\n ButtonProps,\n CardBorder,\n ContentSize,\n ContentTextSize,\n ContentTheme,\n FileLinkProps,\n GravityIconProps,\n HeaderBreadCrumbsProps,\n HeaderImageSize,\n HeaderOffset,\n HeaderWidth,\n ImageDeviceProps,\n ImageProps,\n Justify,\n LegendTableMarkerType,\n LinkProps,\n MapProps,\n MediaComponentImageProps,\n MediaComponentVideoProps,\n MediaDirection,\n MediaProps,\n MediaView,\n TextSize,\n TextTheme,\n ThemedImage,\n ThemedMediaProps,\n ThemedMediaVideoProps,\n TitleItemBaseProps,\n TitleItemProps,\n WithBorder,\n YandexFormProps,\n} from './common';\nimport {BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels} from './sub-blocks';\n\nexport enum BlockType {\n PromoFeaturesBlock = 'promo-features-block',\n ExtendedFeaturesBlock = 'extended-features-block',\n /** @deprecated */\n SliderOldBlock = 'slider-old-block',\n SliderBlock = 'slider-block',\n QuestionsBlock = 'questions-block',\n FoldableListBlock = 'foldable-list-block',\n BannerBlock = 'banner-block',\n CompaniesBlock = 'companies-block',\n MediaBlock = 'media-block',\n InfoBlock = 'info-block',\n TableBlock = 'table-block',\n TabsBlock = 'tabs-block',\n HeaderSliderBlock = 'header-slider-block',\n HeaderBlock = 'header-block',\n HeroBlock = 'hero-block',\n IconsBlock = 'icons-block',\n CardLayoutBlock = 'card-layout-block',\n ContentLayoutBlock = 'content-layout-block',\n ShareBlock = 'share-block',\n MapBlock = 'map-block',\n FilterBlock = 'filter-block',\n FormBlock = 'form-block',\n FooterBlock = 'footer-block',\n}\n\nexport const BlockTypes = Object.values(BlockType);\nexport const HeaderBlockTypes = [\n BlockType.HeaderBlock,\n BlockType.HeaderSliderBlock,\n BlockType.HeroBlock,\n];\n\nexport interface Childable {\n children?: SubBlock[];\n}\n\n//block props\nexport interface BlockBaseProps {\n anchor?: AnchorProps;\n visible?: GridColumnSize | Partial<Record<GridColumnSize, boolean>>;\n /** @deprecated */\n resetPaddings?: boolean;\n indent?: {\n top?: IndentValue;\n bottom?: IndentValue;\n };\n qa?: string;\n}\n\nexport interface LoadableProps {\n source: string;\n /**\n * @deprecated Will be moved to params\n */\n serviceId?: number;\n params?: Record<string, string | number | boolean | object>;\n}\n\nexport interface LoadableChildren {\n loadable?: LoadableProps;\n}\n\nexport enum SliderBreakpointNames {\n Sm = 'sm',\n Md = 'md',\n Lg = 'lg',\n Xl = 'xl',\n}\n\nexport enum SliderType {\n MediaCard = 'media-card',\n HeaderCard = 'header-card',\n FullscreenCard = 'fullscreen-card',\n}\n\nexport type SliderBreakpointParams = Record<SliderBreakpointNames, number>;\nexport type SlidesToShow = Partial<SliderBreakpointParams> | number;\n\nexport interface SliderOldProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface SliderProps extends Childable, Animatable, LoadableChildren {\n dots?: boolean;\n arrows?: boolean;\n slidesToShow?: SlidesToShow;\n disclaimer?: {\n text: string;\n size?: TextSize;\n };\n title?: TitleItemBaseProps | string;\n description?: string;\n autoplay?: number;\n //for server transforms\n randomOrder?: boolean;\n adaptive?: boolean;\n}\n\nexport interface HeaderSliderBlockProps extends Omit<SliderOldProps, 'title' | 'description'> {\n items: HeaderBlockProps[];\n}\n\ninterface HeaderBackgroundProps {\n /** @deprecated replaced by Media Props image */\n url?: string;\n /** @deprecated replaced by Media Props image */\n disableCompress?: boolean;\n}\n\nexport interface HeaderBlockBackground extends Partial<HeaderBackgroundProps>, Partial<MediaProps> {\n fullWidth?: boolean;\n fullWidthMedia?: boolean;\n}\n\nexport type ThemedHeaderBlockBackground = ThemeSupporting<HeaderBlockBackground>;\n\nexport interface HeaderBlockVideoIframe {\n src: string;\n autoplay?: boolean;\n previewImg?: string;\n height?: number;\n}\n\nexport interface HeaderBlockProps {\n title: string;\n overtitle?: string | JSX.Element;\n description?: string;\n additionalInfo?: string;\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'size' | 'extraProps'>[];\n width?: HeaderWidth;\n /** @deprecated imageSize now depends on width */\n imageSize?: HeaderImageSize;\n /**\n * @deprecated used only on the main page\n * TODO: delete after the possibility to remove padding-bottom in the block\n */\n offset?: HeaderOffset;\n image?: ThemedImage;\n video?: ThemedMediaVideoProps;\n videoIframe?: HeaderBlockVideoIframe;\n mediaView?: MediaView;\n centered?: boolean;\n background?: ThemedHeaderBlockBackground;\n theme?: 'light' | 'dark';\n verticalOffset?: '0' | 's' | 'm' | 'l' | 'xl';\n breadcrumbs?: HeaderBreadCrumbsProps;\n status?: JSX.Element;\n renderTitle?: (title: string) => React.ReactNode;\n}\n\nexport interface HeroBlockBackground\n extends Partial<MediaComponentImageProps>,\n Partial<MediaComponentVideoProps> {\n color?: string;\n}\n\nexport interface HeroBlockMedia extends Partial<MediaProps> {\n roundCorners?: boolean;\n}\n\nexport interface HeroBlockProps\n extends Pick<\n ContentBlockProps,\n 'title' | 'text' | 'list' | 'additionalInfo' | 'links' | 'theme'\n > {\n breadcrumbs?: HeaderBreadCrumbsProps;\n // TODO: add overtitle to ContentProps\n overtitle?: string | JSX.Element;\n buttons?: ThemeSupporting<\n Pick<ButtonProps, 'url' | 'text' | 'theme' | 'primary' | 'extraProps'> | React.ReactNode\n >[];\n media?: ThemeSupporting<HeroBlockMedia>;\n fullWidth?: boolean;\n verticalOffset?: 's' | 'm' | 'l' | 'xl';\n background?: ThemeSupporting<HeroBlockBackground>;\n}\n\nexport interface ExtendedFeaturesItem\n extends Omit<ContentBlockProps, 'theme' | 'centered' | 'colSizes' | 'size' | 'title'> {\n title: string;\n label?: string;\n icon?: ThemedImage;\n /** @deprecated **/\n link?: LinkProps;\n}\n\nexport interface ExtendedFeaturesProps extends Animatable {\n items: ExtendedFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n colSizes?: GridColumnSizesType;\n}\n\nexport interface PromoFeaturesItem {\n title: string;\n text: string;\n theme?: 'accent' | 'accent-light' | 'primary';\n media?: ThemeSupporting<MediaProps>;\n}\n\nexport interface PromoFeaturesProps extends Animatable {\n items: PromoFeaturesItem[];\n title?: TitleItemProps | string;\n description?: string;\n theme?: 'grey' | 'default';\n}\n\nexport interface QuestionItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n onClick?: (index: number, newOpenState: boolean) => void;\n}\n\nexport interface QuestionsProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: QuestionItem[];\n}\n\nexport interface QuestionBlockItemProps extends QuestionItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface FoldableListItem {\n title: string;\n text: string;\n listStyle?: 'dash' | 'disk';\n link?: LinkProps;\n}\n\nexport interface FoldableListProps\n extends Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {\n items: FoldableListItem[];\n}\n\nexport interface FoldableListBlockItemProps extends FoldableListItem {\n isOpened: boolean;\n onClick: () => void;\n}\n\nexport interface BannerBlockProps extends BannerCardProps, Animatable {}\n\nexport interface CompaniesBlockProps extends Animatable {\n title: string;\n description?: string;\n images: ThemeSupporting<ImageDeviceProps>;\n}\n\nexport interface MediaBaseBlockProps extends Animatable, MediaContentProps {\n direction?: MediaDirection;\n mobileDirection?: MediaDirection;\n largeMedia?: boolean;\n mediaOnly?: boolean;\n mediaOnlyColSizes?: GridColumnSizesType;\n}\n\nexport interface MediaContentProps\n extends Omit<ContentBlockProps, 'colSizes' | 'text' | 'theme' | 'centered'> {\n description?: string;\n /** @deprecated Use array of buttons from ContentBlockProps instead**/\n button?: ButtonProps;\n}\n\nexport interface MediaBlockProps extends MediaBaseBlockProps, WithBorder {\n media: ThemeSupporting<MediaProps>;\n}\n\nexport interface MapBlockProps extends MediaBaseBlockProps, WithBorder {\n map: Omit<MapProps, 'forceAspectRatio' | 'areaMargin' | 'copyrightPosition'>;\n}\n\nexport interface InfoBlockProps {\n theme?: TextTheme;\n backgroundColor?: ThemeSupporting<string>;\n /** @deprecated **/\n title?: string;\n /** @deprecated **/\n buttons?: Pick<ButtonProps, 'url' | 'text' | 'theme'>[];\n /** @deprecated **/\n sectionsTitle?: string;\n /** @deprecated **/\n links?: Pick<LinkProps, 'text' | 'url'>[];\n leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;\n}\n\nexport interface TableProps {\n content: string[][];\n legend?: string[];\n hideLegend?: boolean;\n justify?: Justify[];\n marker?: LegendTableMarkerType;\n /**\n * Only as accessible name, not displayed explicitly\n */\n caption?: string;\n}\n\nexport interface TableBlockProps {\n title: string;\n table: TableProps;\n}\n\nexport interface TabsBlockItem\n extends Omit<ContentBlockProps, 'size' | 'colSizes' | 'centered' | 'theme'>,\n WithBorder {\n tabName: string;\n /**\n * @deprecated Use array links from ContentBlockProps instead\n */\n link?: LinkProps;\n image?: ThemedImage;\n caption?: string;\n media?: ThemedMediaProps;\n}\n\nexport interface TabsBlockProps extends Animatable {\n title?: TitleItemProps | string;\n description?: string;\n tabsColSizes?: GridColumnSizesType;\n centered?: boolean;\n direction?: MediaDirection;\n items: TabsBlockItem[];\n contentSize?: ContentSize;\n}\n\nexport interface CardLayoutBlockProps extends Childable, Animatable, LoadableChildren {\n title?: TitleItemProps | string;\n titleClassName?: string;\n centered?: boolean;\n description?: string;\n colSizes?: GridColumnSizesType;\n background?: ThemeSupporting<\n BackgroundImageProps & {\n border?: CardBorder;\n }\n >;\n}\n\nexport type FilterTag = {\n id: string;\n label: string;\n analyticsEvent?: AnalyticsEventsProp;\n};\n\nexport type FilterItem = {\n tags: string[];\n card: SubBlockModels;\n};\n\nexport interface FilterBlockProps extends Animatable {\n tags: FilterTag[];\n items: FilterItem[];\n title?: TitleItemProps | string;\n description?: string;\n tagButtonSize?: ButtonSize;\n allTag?: boolean | string | FilterTag;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n}\n\nexport interface IconsBlockItemProps extends AnalyticsEventsBase {\n url: string;\n text: string;\n src: ThemeSupporting<string>;\n}\n\nexport interface IconsBlockProps {\n title?: string;\n description?: string;\n size?: 's' | 'm' | 'l';\n items: IconsBlockItemProps[];\n colSizes?: GridColumnSizesType;\n}\n\ninterface ContentLayoutBlockParams {\n size?: ContentSize;\n background?: ThemeSupporting<BackgroundImageProps>;\n centered?: boolean;\n theme?: ContentTheme;\n textWidth?: ContentTextSize;\n}\n\nexport interface ContentLayoutBlockProps extends ContentLayoutBlockParams {\n textContent: ContentBlockProps;\n fileContent?: FileLinkProps[];\n}\n\nexport type SVGIcon = (props: React.SVGProps<SVGSVGElement>) => React.ReactNode;\n\nexport interface ContentItemProps {\n title?: string;\n text?: string;\n icon?: ThemeSupporting<ImageProps | SVGIcon>;\n gravityIcon?: ThemeSupporting<GravityIconProps>;\n}\n\nexport interface ContentListProps {\n list: ContentItemProps[];\n size: ContentSize;\n theme?: ContentTheme;\n}\n\nexport interface ContentBlockProps {\n title?: TitleItemBaseProps | string;\n titleId?: string;\n text?: string;\n textId?: string;\n additionalInfo?: string;\n links?: LinkProps[];\n buttons?: (ButtonProps | React.ReactNode)[];\n size?: ContentSize;\n colSizes?: GridColumnSizesType;\n centered?: boolean;\n theme?: ContentTheme;\n list?: ContentItemProps[];\n controlPosition?: 'default' | 'bottom';\n}\n\nexport enum PCShareSocialNetwork {\n Vk = 'vk',\n Telegram = 'telegram',\n Twitter = 'twitter',\n Facebook = 'facebook',\n LinkedIn = 'linkedin',\n}\n\nexport interface ShareBlockProps {\n items: PCShareSocialNetwork[];\n title?: string;\n}\n\nexport enum FormBlockDataTypes {\n YANDEX = 'yandex',\n HUBSPOT = 'hubspot',\n}\n\nexport enum FormBlockDirection {\n FormContent = 'form-content',\n ContentForm = 'content-form',\n Center = 'center',\n}\n\nexport interface FormBlockYandexData {\n yandex: ThemeSupporting<YandexFormProps>;\n}\n\nexport interface FormBlockHubspotData {\n hubspot: ThemeSupporting<HubspotFormProps>;\n}\n\nexport type FormBlockData = FormBlockYandexData | FormBlockHubspotData;\n\nexport interface FormBlockBackgroundProps extends Omit<BackgroundImageProps, 'style'> {\n style?: DeviceSupporting<React.CSSProperties>;\n}\n\nexport interface FormBlockProps {\n formData: FormBlockData;\n title?: string;\n textContent?: Omit<ContentBlockProps, 'centered' | 'colSizes' | 'size'>;\n direction?: FormBlockDirection;\n background?: ThemeSupporting<FormBlockBackgroundProps>;\n customFormNode?: React.ReactNode;\n additionalContentNode?: React.ReactNode;\n}\n\nexport interface FooterLinkColumn {\n title: string;\n links: LinkProps[];\n}\n\nexport interface FooterLogoProps {\n image: ThemeSupporting<ImageProps>;\n url?: string;\n alt?: string;\n}\n\nexport interface FooterSection {\n columns: FooterLinkColumn[];\n}\n\nexport interface FooterContactItem {\n icon: ThemeSupporting<ImageProps>;\n url: string;\n urlTitle?: string;\n}\n\nexport interface FooterContacts {\n title?: string;\n iconsSize?: 'm' | 'l';\n links?: FooterContactItem[];\n linksPosition?: 'left' | 'center';\n titlePosition?: 'top' | 'near';\n}\n\nexport interface FooterDisclaimerFloor {\n text: string;\n align: 'left' | 'center';\n}\n\nexport interface FooterCopyright {\n links?: Required<Pick<LinkProps, 'text' | 'url'>>[];\n linksOverflowStrategy?: 'dropdown' | 'line-wrap';\n languageSwitcher?: {\n items: {\n text: string;\n href: string;\n }[];\n buttonText?: string;\n image?: ThemeSupporting<ImageProps>;\n };\n logo?: FooterLogoProps;\n copyrightText?: string;\n}\n\nexport interface FooterAttributionFloor {\n text: string;\n}\n\nexport interface FooterSecondFloor {\n copyright?: string;\n links?: LinkProps[];\n contacts?: FooterContactItem[];\n}\n\nexport interface FooterBlockProps {\n /** Floor 1: first row — logo (if present) + these columns */\n navigation?: {\n logo?: FooterLogoProps & {\n placement?: 'left' | 'top';\n };\n colSizes?: GridColumnSizesType;\n columnsPerRow?: number;\n columns: FooterLinkColumn[];\n };\n /** Floor 2: social row (title + social icons) */\n contacts?: FooterContacts;\n /** Floor 3: legal disclaimer (YFM) */\n disclaimer?: FooterDisclaimerFloor;\n /** Floor 4: privacy/terms links, language, copyright */\n copyright?: FooterCopyright;\n /** Floor 5: attribution (\"Created with ...\") */\n attribution?: boolean;\n backgroundColor?: ThemeSupporting<string>;\n indentTop?: IndentValue;\n}\n\n//block models\nexport type HeaderBlockModel = {\n type: BlockType.HeaderBlock;\n} & HeaderBlockProps;\n\nexport type HeroBlockModel = {\n type: BlockType.HeroBlock;\n} & HeroBlockProps;\n\nexport type SliderOldBlockModel = {\n type: BlockType.SliderOldBlock;\n} & SliderOldProps;\n\nexport type ExtendedFeaturesBlockModel = {\n type: BlockType.ExtendedFeaturesBlock;\n} & ExtendedFeaturesProps;\n\nexport type PromoFeaturesBlockModel = {\n type: BlockType.PromoFeaturesBlock;\n} & PromoFeaturesProps;\n\nexport type QuestionsBlockModel = {\n type: BlockType.QuestionsBlock;\n} & QuestionsProps;\n\nexport type FoldableListBlockModel = {\n type: BlockType.FoldableListBlock;\n} & FoldableListProps;\n\nexport type BannerBlockModel = {\n type: BlockType.BannerBlock;\n} & BannerBlockProps;\n\nexport type CompaniesBlockModel = {\n type: BlockType.CompaniesBlock;\n} & CompaniesBlockProps;\n\nexport type MediaBlockModel = {\n type: BlockType.MediaBlock;\n} & MediaBlockProps;\n\nexport type MapBlockModel = {\n type: BlockType.MapBlock;\n} & MapBlockProps;\n\nexport type InfoBlockModel = {\n type: BlockType.InfoBlock;\n} & InfoBlockProps;\n\nexport type TableBlockModel = {\n type: BlockType.TableBlock;\n} & TableBlockProps;\n\nexport type TabsBlockModel = {\n type: BlockType.TabsBlock;\n} & TabsBlockProps;\n\nexport type CardLayoutBlockModel = {\n type: BlockType.CardLayoutBlock;\n} & CardLayoutBlockProps;\n\nexport type FilterBlockModel = {\n type: BlockType.FilterBlock;\n} & FilterBlockProps;\n\nexport type IconsBlockModel = {\n type: BlockType.IconsBlock;\n} & IconsBlockProps;\n\nexport type HeaderSliderBlockModel = {\n type: BlockType.HeaderSliderBlock;\n} & HeaderSliderBlockProps;\n\nexport type ContentLayoutBlockModel = {\n type: BlockType.ContentLayoutBlock;\n} & ContentLayoutBlockProps;\n\nexport type ShareBLockModel = {\n type: BlockType.ShareBlock;\n} & ShareBlockProps;\n\nexport type FormBlockModel = {\n type: BlockType.FormBlock;\n} & FormBlockProps;\n\nexport type FooterBlockModel = {\n type: BlockType.FooterBlock;\n} & FooterBlockProps;\n\nexport type SliderBlockModel = {\n type: BlockType.SliderBlock;\n} & SliderProps;\n\ntype BlockModels =\n | SliderOldBlockModel\n | SliderBlockModel\n | ExtendedFeaturesBlockModel\n | PromoFeaturesBlockModel\n | QuestionsBlockModel\n | FoldableListBlockModel\n | BannerBlockModel\n | CompaniesBlockModel\n | MediaBlockModel\n | MapBlockModel\n | InfoBlockModel\n | TableBlockModel\n | TabsBlockModel\n | HeaderBlockModel\n | HeroBlockModel\n | IconsBlockModel\n | HeaderSliderBlockModel\n | CardLayoutBlockModel\n | ContentLayoutBlockModel\n | ShareBLockModel\n | FilterBlockModel\n | FormBlockModel\n | FooterBlockModel;\n\nexport type Block = BlockModels & BlockBaseProps;\n"]}
@@ -50,6 +50,7 @@ export interface NavigationDropdownItem extends NavigationItemBase {
50
50
  items: NavigationLinkItem[];
51
51
  hidePopup: () => void;
52
52
  isActive: boolean;
53
+ placement?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';
53
54
  }
54
55
  export interface NavigationSocialItem extends Omit<NavigationItemBase, 'text'> {
55
56
  type: NavigationItemType.Social;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"../../../src","sources":["models/navigation.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,oDAA8B,CAAA;AAClC,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AASrE,MAAM,CAAN,IAAY,0BAWX;AAXD,WAAY,0BAA0B;IAClC,qDAAuB,CAAA;IACvB,iDAAmB,CAAA;IACnB,mDAAqB,CAAA;IACrB,0DAA4B,CAAA;IAC5B,4DAA8B,CAAA;IAC9B,oEAAsC,CAAA;IACtC,2DAA6B,CAAA;IAC7B,yDAA2B,CAAA;IAC3B,gEAAkC,CAAA;IAClC,mDAAqB,CAAA;AACzB,CAAC,EAXW,0BAA0B,KAA1B,0BAA0B,QAWrC","sourcesContent":["import {ThemeSupporting} from '../utils';\n\nimport {AnalyticsEventsBase} from './common';\nimport {ButtonProps, ImageProps} from './constructor-items';\n\nexport enum NavigationItemType {\n Link = 'link',\n Dropdown = 'dropdown',\n Button = 'button',\n Social = 'social',\n GithubButton = 'github-button',\n}\n\nexport const NavigationItemTypes = Object.values(NavigationItemType);\n\nexport interface NavigationItemBase {\n text: string;\n icon?: ImageProps;\n url?: string;\n iconSize?: number;\n}\n\nexport enum NavigationGithubButtonIcon {\n heart = 'octicon-heart',\n eye = 'octicon-eye',\n star = 'octicon-star',\n fork = 'octicon-repo-forked',\n issue = 'octicon-issue-opened',\n comment = 'octicon-comment-discussion',\n download = 'octicon-download',\n package = 'octicon-package',\n template = 'octicon-repo-template',\n play = 'octicon-play',\n}\n\nexport interface NavigationGithubButton extends Omit<NavigationItemBase, 'icon'> {\n type: NavigationItemType.GithubButton;\n url: string;\n urlTitle?: string;\n label?: string;\n icon?: keyof typeof NavigationGithubButtonIcon;\n size?: string;\n}\n\nexport interface NavigationLinkItem extends Omit<NavigationItemBase, 'url'>, AnalyticsEventsBase {\n type: NavigationItemType.Link;\n url: string;\n urlTitle?: string;\n arrow?: boolean;\n target?: string;\n}\n\nexport interface NavigationButtonItem extends ButtonProps {\n type: NavigationItemType.Button;\n}\n\nexport interface NavigationDropdownItem extends NavigationItemBase {\n type: NavigationItemType.Dropdown;\n items: NavigationLinkItem[];\n hidePopup: () => void;\n isActive: boolean;\n}\n\nexport interface NavigationSocialItem extends Omit<NavigationItemBase, 'text'> {\n type: NavigationItemType.Social;\n icon: ImageProps;\n url: string;\n urlTitle?: string;\n}\n\nexport type NavigationItemModel =\n | NavigationLinkItem\n | NavigationButtonItem\n | NavigationDropdownItem;\n\nexport type NavigationItemData =\n | NavigationLinkItem\n | NavigationButtonItem\n | NavigationSocialItem\n | NavigationDropdownItem;\n\nexport interface NavigationLogoData {\n icon: ImageProps;\n text?: string;\n url?: string;\n urlTitle?: string;\n alt?: string;\n}\n\nexport type ThemedNavigationLogoData = NavigationLogoData & ThemeSupporting<NavigationLogoData>;\n\nexport interface HeaderData {\n leftItems: NavigationItemModel[];\n rightItems?: NavigationItemModel[];\n\n /**\n * Items for the navigation header on mobile devices.\n * They are located to the right of the Logo and to the left of the MobileMenuButton.\n * @type {NavigationItemModel[]}\n */\n customMobileHeaderItems?: NavigationItemModel[];\n iconSize?: number;\n withBorder?: boolean;\n withBorderOnScroll?: boolean;\n}\n\nexport interface FooterColumn {\n title: string;\n links: NavigationItemModel[];\n}\n\nexport interface FooterUnderline {\n links?: NavigationItemModel[];\n copyright?: string;\n}\n\nexport interface FooterData {\n columns: FooterColumn[];\n social?: NavigationSocialItem[];\n underline?: FooterUnderline;\n}\n\nexport interface NavigationData {\n logo: ThemedNavigationLogoData;\n header: HeaderData;\n footer?: FooterData;\n renderNavigation?: () => React.ReactNode;\n}\n"]}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"../../../src","sources":["models/navigation.ts"],"names":[],"mappings":"AAKA,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,mCAAa,CAAA;IACb,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,oDAA8B,CAAA;AAClC,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AASrE,MAAM,CAAN,IAAY,0BAWX;AAXD,WAAY,0BAA0B;IAClC,qDAAuB,CAAA;IACvB,iDAAmB,CAAA;IACnB,mDAAqB,CAAA;IACrB,0DAA4B,CAAA;IAC5B,4DAA8B,CAAA;IAC9B,oEAAsC,CAAA;IACtC,2DAA6B,CAAA;IAC7B,yDAA2B,CAAA;IAC3B,gEAAkC,CAAA;IAClC,mDAAqB,CAAA;AACzB,CAAC,EAXW,0BAA0B,KAA1B,0BAA0B,QAWrC","sourcesContent":["import {ThemeSupporting} from '../utils';\n\nimport {AnalyticsEventsBase} from './common';\nimport {ButtonProps, ImageProps} from './constructor-items';\n\nexport enum NavigationItemType {\n Link = 'link',\n Dropdown = 'dropdown',\n Button = 'button',\n Social = 'social',\n GithubButton = 'github-button',\n}\n\nexport const NavigationItemTypes = Object.values(NavigationItemType);\n\nexport interface NavigationItemBase {\n text: string;\n icon?: ImageProps;\n url?: string;\n iconSize?: number;\n}\n\nexport enum NavigationGithubButtonIcon {\n heart = 'octicon-heart',\n eye = 'octicon-eye',\n star = 'octicon-star',\n fork = 'octicon-repo-forked',\n issue = 'octicon-issue-opened',\n comment = 'octicon-comment-discussion',\n download = 'octicon-download',\n package = 'octicon-package',\n template = 'octicon-repo-template',\n play = 'octicon-play',\n}\n\nexport interface NavigationGithubButton extends Omit<NavigationItemBase, 'icon'> {\n type: NavigationItemType.GithubButton;\n url: string;\n urlTitle?: string;\n label?: string;\n icon?: keyof typeof NavigationGithubButtonIcon;\n size?: string;\n}\n\nexport interface NavigationLinkItem extends Omit<NavigationItemBase, 'url'>, AnalyticsEventsBase {\n type: NavigationItemType.Link;\n url: string;\n urlTitle?: string;\n arrow?: boolean;\n target?: string;\n}\n\nexport interface NavigationButtonItem extends ButtonProps {\n type: NavigationItemType.Button;\n}\n\nexport interface NavigationDropdownItem extends NavigationItemBase {\n type: NavigationItemType.Dropdown;\n items: NavigationLinkItem[];\n hidePopup: () => void;\n isActive: boolean;\n placement?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n}\n\nexport interface NavigationSocialItem extends Omit<NavigationItemBase, 'text'> {\n type: NavigationItemType.Social;\n icon: ImageProps;\n url: string;\n urlTitle?: string;\n}\n\nexport type NavigationItemModel =\n | NavigationLinkItem\n | NavigationButtonItem\n | NavigationDropdownItem;\n\nexport type NavigationItemData =\n | NavigationLinkItem\n | NavigationButtonItem\n | NavigationSocialItem\n | NavigationDropdownItem;\n\nexport interface NavigationLogoData {\n icon: ImageProps;\n text?: string;\n url?: string;\n urlTitle?: string;\n alt?: string;\n}\n\nexport type ThemedNavigationLogoData = NavigationLogoData & ThemeSupporting<NavigationLogoData>;\n\nexport interface HeaderData {\n leftItems: NavigationItemModel[];\n rightItems?: NavigationItemModel[];\n\n /**\n * Items for the navigation header on mobile devices.\n * They are located to the right of the Logo and to the left of the MobileMenuButton.\n * @type {NavigationItemModel[]}\n */\n customMobileHeaderItems?: NavigationItemModel[];\n iconSize?: number;\n withBorder?: boolean;\n withBorderOnScroll?: boolean;\n}\n\nexport interface FooterColumn {\n title: string;\n links: NavigationItemModel[];\n}\n\nexport interface FooterUnderline {\n links?: NavigationItemModel[];\n copyright?: string;\n}\n\nexport interface FooterData {\n columns: FooterColumn[];\n social?: NavigationSocialItem[];\n underline?: FooterUnderline;\n}\n\nexport interface NavigationData {\n logo: ThemedNavigationLogoData;\n header: HeaderData;\n footer?: FooterData;\n renderNavigation?: () => React.ReactNode;\n}\n"]}
@@ -2,5 +2,5 @@ import { NavigationDropdownItem } from "../../../../../models/index.js";
2
2
  import { NavigationItemProps } from "../../../../models.js";
3
3
  import './NavigationDropdown.css';
4
4
  type NavigationDropdownProps = NavigationItemProps & NavigationDropdownItem;
5
- export declare const NavigationDropdown: ({ text, icon, className, iconSize, hidePopup, items, isActive, ...props }: NavigationDropdownProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const NavigationDropdown: ({ text, icon, className, iconSize, hidePopup, items, isActive, data: _data, ...props }: NavigationDropdownProps) => import("react/jsx-runtime").JSX.Element;
6
6
  export {};
@@ -8,9 +8,9 @@ import { ContentWrapper } from "../ContentWrapper/ContentWrapper.js";
8
8
  import './NavigationDropdown.css';
9
9
  const b = block('navigation-dropdown');
10
10
  const TOGGLE_ARROW_SIZE = 12;
11
- export const NavigationDropdown = ({ text, icon, className, iconSize, hidePopup, items, isActive, ...props }) => {
11
+ export const NavigationDropdown = ({ text, icon, className, iconSize, hidePopup, items, isActive, data: _data, ...props }) => {
12
12
  const iconData = icon && getMediaImage(icon);
13
13
  const anchorRef = React.useRef(null);
14
- return (_jsxs(React.Fragment, { children: [_jsxs("button", { ref: anchorRef, ...props, type: "button", className: b(null, className), "aria-expanded": isActive, children: [_jsx(ContentWrapper, { text: text, icon: iconData, iconSize: iconSize, "aria-expanded": isActive }), _jsx(ToggleArrow, { className: b('arrow'), size: TOGGLE_ARROW_SIZE, type: 'vertical', iconType: "navigation", open: isActive })] }), _jsx(NavigationPopup, { open: isActive, onClose: hidePopup, items: items, anchorRef: anchorRef })] }));
14
+ return (_jsxs(React.Fragment, { children: [_jsxs("button", { ref: anchorRef, ...props, type: "button", className: b(null, className), "aria-expanded": isActive, children: [_jsx(ContentWrapper, { text: text, icon: iconData, iconSize: iconSize, "aria-expanded": isActive }), _jsx(ToggleArrow, { className: b('arrow'), size: TOGGLE_ARROW_SIZE, type: 'vertical', iconType: "navigation", open: isActive })] }), _jsx(NavigationPopup, { open: isActive, onClose: hidePopup, items: items, anchorRef: anchorRef, placement: props.placement })] }));
15
15
  };
16
16
  //# sourceMappingURL=NavigationDropdown.js.map