@uniformdev/csk-components 6.0.123-alpha.1 → 6.1.63-alpha.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 (256) hide show
  1. package/README.md +74 -81
  2. package/dist/ThemeSwitcher-EUDUX3QI.mjs +1 -0
  3. package/dist/accordion-item-7IKL6Z6Q.mjs +1 -0
  4. package/dist/accordion-item-MORC2F2Q.mjs +1 -0
  5. package/dist/banner-WOYK426U.mjs +1 -0
  6. package/dist/carousel-ALNEGOPM.mjs +1 -0
  7. package/dist/carousel-HKYR3ZBB.mjs +1 -0
  8. package/dist/chunk-27WJUZYR.mjs +1 -0
  9. package/dist/chunk-3JU2XCD2.mjs +1 -0
  10. package/dist/chunk-47YB4P2Q.mjs +1 -0
  11. package/dist/chunk-6CKVLOIH.mjs +1 -0
  12. package/dist/{chunk-PMMAALCQ.mjs → chunk-AOFJCDRO.mjs} +1 -1
  13. package/dist/{chunk-2BMAPB63.mjs → chunk-AWTML4I7.mjs} +1 -1
  14. package/dist/chunk-CZ4X5ZBK.mjs +1 -0
  15. package/dist/chunk-D673IM2U.mjs +1 -0
  16. package/dist/chunk-I6SUO5WR.mjs +1 -0
  17. package/dist/chunk-JT77BVIX.mjs +1 -0
  18. package/dist/chunk-LPAOEOU4.mjs +1 -0
  19. package/dist/chunk-MKOFM4XK.mjs +1 -0
  20. package/dist/chunk-NKINOJY6.mjs +1 -0
  21. package/dist/chunk-OKUDTS22.mjs +1 -0
  22. package/dist/chunk-OL6JBPZ4.mjs +1 -0
  23. package/dist/chunk-OY6ZJNCE.mjs +1 -0
  24. package/dist/chunk-PLKWUEFW.mjs +1 -0
  25. package/dist/chunk-QPQGRQKI.mjs +1 -0
  26. package/dist/chunk-VWWXSA5H.mjs +1 -0
  27. package/dist/chunk-XKCRANRQ.mjs +1 -0
  28. package/dist/chunk-XYU3TGOU.mjs +1 -0
  29. package/dist/chunk-Y337A266.mjs +7 -0
  30. package/dist/chunk-YQYDZJ65.mjs +1 -0
  31. package/dist/chunk-ZAHWFLY4.mjs +1 -0
  32. package/dist/{chunk-V4EBWEG4.mjs → chunk-ZWDCDE5W.mjs} +1 -1
  33. package/dist/components/canvas/emptyPlaceholders.d.mts +5 -4
  34. package/dist/components/canvas/emptyPlaceholders.mjs +1 -1
  35. package/dist/components/canvas/index.d.mts +4 -648
  36. package/dist/components/canvas/index.mjs +1 -1
  37. package/dist/components/canvas/serverClient.d.mts +694 -0
  38. package/dist/components/canvas/serverClient.mjs +1 -0
  39. package/dist/components/canvas/serverOnly.d.mts +41 -0
  40. package/dist/components/canvas/serverOnly.mjs +1 -0
  41. package/dist/components/ui/index.d.mts +24 -33
  42. package/dist/components/ui/index.mjs +1 -1
  43. package/dist/content/components/canvas/Accordion/accordion.tsx +8 -7
  44. package/dist/content/components/canvas/Accordion/index.tsx +2 -2
  45. package/dist/content/components/canvas/AccordionItem/accordion-item.tsx +9 -7
  46. package/dist/content/components/canvas/AccordionItem/index.tsx +4 -6
  47. package/dist/content/components/canvas/Badge/badge.tsx +12 -5
  48. package/dist/content/components/canvas/Badge/index.tsx +2 -3
  49. package/dist/content/components/canvas/Badge/style-utils.ts +6 -6
  50. package/dist/content/components/canvas/Banner/banner.tsx +24 -36
  51. package/dist/content/components/canvas/Banner/index.tsx +7 -11
  52. package/dist/content/components/canvas/Breadcrumbs/breadcrumbs.tsx +21 -22
  53. package/dist/content/components/canvas/Breadcrumbs/index.tsx +4 -7
  54. package/dist/content/components/canvas/Button/button.tsx +19 -11
  55. package/dist/content/components/canvas/Button/index.tsx +3 -5
  56. package/dist/content/components/canvas/Card/card.tsx +9 -9
  57. package/dist/content/components/canvas/Card/index.tsx +3 -3
  58. package/dist/content/components/canvas/Carousel/carousel.tsx +9 -7
  59. package/dist/content/components/canvas/Carousel/index.tsx +4 -4
  60. package/dist/content/components/canvas/Container/container.tsx +7 -6
  61. package/dist/content/components/canvas/Container/index.tsx +3 -3
  62. package/dist/content/components/canvas/CookieConsent/cookie-consent.tsx +126 -0
  63. package/dist/content/components/canvas/CookieConsent/empty-placeholder.tsx +12 -0
  64. package/dist/content/components/canvas/CookieConsent/index.tsx +26 -0
  65. package/dist/content/components/canvas/Countdown/countdown.tsx +9 -7
  66. package/dist/content/components/canvas/Countdown/index.tsx +2 -3
  67. package/dist/content/components/canvas/DemoHero/atoms.tsx +29 -32
  68. package/dist/content/components/canvas/DemoHero/columns-variant.tsx +4 -4
  69. package/dist/content/components/canvas/DemoHero/default-variant.tsx +4 -4
  70. package/dist/content/components/canvas/DemoHero/demo-hero.tsx +41 -18
  71. package/dist/content/components/canvas/DemoHero/fixed-hero.tsx +13 -6
  72. package/dist/content/components/canvas/DemoHero/flexible-hero.tsx +8 -2
  73. package/dist/content/components/canvas/DemoHero/index.tsx +3 -4
  74. package/dist/content/components/canvas/Divider/divider.tsx +5 -2
  75. package/dist/content/components/canvas/Divider/index.tsx +2 -2
  76. package/dist/content/components/canvas/Flex/flex.tsx +9 -6
  77. package/dist/content/components/canvas/Flex/index.tsx +6 -6
  78. package/dist/content/components/canvas/FlexItem/flex-item.tsx +7 -4
  79. package/dist/content/components/canvas/FlexItem/index.tsx +4 -5
  80. package/dist/content/components/canvas/Footer/footer.tsx +9 -8
  81. package/dist/content/components/canvas/Footer/index.tsx +2 -3
  82. package/dist/content/components/canvas/Grid/grid.tsx +9 -7
  83. package/dist/content/components/canvas/Grid/index.tsx +5 -5
  84. package/dist/content/components/canvas/GridItem/grid-item.tsx +10 -8
  85. package/dist/content/components/canvas/GridItem/index.tsx +5 -5
  86. package/dist/content/components/canvas/Header/header.tsx +10 -7
  87. package/dist/content/components/canvas/Header/index.tsx +2 -3
  88. package/dist/content/components/canvas/IconLabel/icon-label.tsx +16 -8
  89. package/dist/content/components/canvas/IconLabel/index.tsx +4 -5
  90. package/dist/content/components/canvas/Image/image.tsx +13 -7
  91. package/dist/content/components/canvas/Image/index.tsx +2 -3
  92. package/dist/content/components/canvas/ImageGallery/empty-placeholder.tsx +1 -1
  93. package/dist/content/components/canvas/ImageGallery/gallery-inner.tsx +6 -6
  94. package/dist/content/components/canvas/ImageGallery/image-gallery.tsx +20 -33
  95. package/dist/content/components/canvas/ImageGallery/index.tsx +11 -12
  96. package/dist/content/components/canvas/Link/index.tsx +2 -3
  97. package/dist/content/components/canvas/Link/link.tsx +7 -4
  98. package/dist/content/components/canvas/Modal/index.tsx +2 -2
  99. package/dist/content/components/canvas/Modal/modal.tsx +9 -10
  100. package/dist/content/components/canvas/NavigationFlyout/desktop.tsx +9 -13
  101. package/dist/content/components/canvas/NavigationFlyout/index.tsx +21 -3
  102. package/dist/content/components/canvas/NavigationFlyout/mobile.tsx +10 -13
  103. package/dist/content/components/canvas/NavigationFlyout/{navigation-flyout.tsx → navigation-flyout-client.tsx} +26 -20
  104. package/dist/content/components/canvas/NavigationGroup/desktop.tsx +7 -10
  105. package/dist/content/components/canvas/NavigationGroup/index.tsx +20 -3
  106. package/dist/content/components/canvas/NavigationGroup/mobile.tsx +9 -8
  107. package/dist/content/components/canvas/NavigationGroup/{navigation-group.tsx → navigation-group-client.tsx} +21 -18
  108. package/dist/content/components/canvas/NavigationLink/index.tsx +2 -4
  109. package/dist/content/components/canvas/NavigationLink/navigation-link.tsx +12 -9
  110. package/dist/content/components/canvas/Page/index.tsx +7 -7
  111. package/dist/content/components/canvas/Page/page.tsx +9 -18
  112. package/dist/content/components/canvas/Review/default-variant.tsx +2 -2
  113. package/dist/content/components/canvas/Review/empty-placeholder.tsx +6 -3
  114. package/dist/content/components/canvas/Review/index.tsx +6 -6
  115. package/dist/content/components/canvas/Review/multi-column-variant.tsx +2 -2
  116. package/dist/content/components/canvas/Review/review.tsx +11 -11
  117. package/dist/content/components/canvas/RichText/index.tsx +7 -6
  118. package/dist/content/components/canvas/RichText/rich-text.tsx +23 -6
  119. package/dist/content/components/canvas/Section/columns-variant.tsx +4 -4
  120. package/dist/content/components/canvas/Section/default-variant.tsx +6 -6
  121. package/dist/content/components/canvas/Section/empty-placeholder.tsx +5 -2
  122. package/dist/content/components/canvas/Section/index.tsx +2 -2
  123. package/dist/content/components/canvas/Section/section.tsx +11 -12
  124. package/dist/content/components/canvas/SimpleFooter/index.tsx +16 -0
  125. package/dist/content/components/canvas/SimpleFooter/simple-footer.tsx +85 -0
  126. package/dist/content/components/canvas/SimpleHeader/index.tsx +22 -0
  127. package/dist/content/components/canvas/SimpleHeader/simple-header.tsx +63 -0
  128. package/dist/content/components/canvas/Spacer/index.tsx +2 -2
  129. package/dist/content/components/canvas/Spacer/spacer.tsx +5 -2
  130. package/dist/content/components/canvas/Tab/index.tsx +2 -3
  131. package/dist/content/components/canvas/Tab/tab.tsx +6 -5
  132. package/dist/content/components/canvas/Table/index.tsx +2 -2
  133. package/dist/content/components/canvas/Table/table.tsx +8 -7
  134. package/dist/content/components/canvas/TableCustomCell/index.tsx +2 -2
  135. package/dist/content/components/canvas/TableCustomCell/table-custom-cell.tsx +7 -4
  136. package/dist/content/components/canvas/TableDataCell/index.tsx +2 -2
  137. package/dist/content/components/canvas/TableDataCell/table-data-cell.tsx +7 -4
  138. package/dist/content/components/canvas/TableHeaderCell/index.tsx +2 -2
  139. package/dist/content/components/canvas/TableHeaderCell/table-header-cell.tsx +7 -4
  140. package/dist/content/components/canvas/TableRow/index.tsx +5 -3
  141. package/dist/content/components/canvas/TableRow/table-row.tsx +6 -3
  142. package/dist/content/components/canvas/Tabs/index.tsx +7 -7
  143. package/dist/content/components/canvas/Tabs/style-utils.ts +12 -11
  144. package/dist/content/components/canvas/Tabs/tabs.tsx +44 -42
  145. package/dist/content/components/canvas/Testimonial/default-variant.tsx +7 -7
  146. package/dist/content/components/canvas/Testimonial/index.tsx +2 -2
  147. package/dist/content/components/canvas/Testimonial/testimonial.tsx +11 -13
  148. package/dist/content/components/canvas/Testimonial/with-large-avatar-variant.tsx +7 -7
  149. package/dist/content/components/canvas/Testimonial/with-overlapping-image-variant.tsx +7 -7
  150. package/dist/content/components/canvas/Text/index.tsx +2 -3
  151. package/dist/content/components/canvas/Text/text.tsx +21 -15
  152. package/dist/content/components/canvas/ThemeSwitcher/index.tsx +2 -2
  153. package/dist/content/components/canvas/ThemeSwitcher/theme-switcher.tsx +6 -3
  154. package/dist/content/components/canvas/Video/index.tsx +2 -3
  155. package/dist/content/components/canvas/Video/placeholder.tsx +1 -1
  156. package/dist/content/components/canvas/Video/video.tsx +8 -5
  157. package/dist/content/components/ui/Banner/banner.tsx +47 -0
  158. package/dist/content/components/ui/Banner/index.tsx +29 -0
  159. package/dist/content/components/{canvas → ui}/Banner/style-utils.ts +1 -2
  160. package/dist/content/components/ui/Carousel/index.ts +2 -2
  161. package/dist/content/components/ui/ComponentEmptyPlaceholder/component-empty-placeholder.tsx +13 -0
  162. package/dist/content/components/ui/ComponentEmptyPlaceholder/index.ts +6 -0
  163. package/dist/content/components/ui/Flex/flex.tsx +2 -0
  164. package/dist/content/components/ui/Flex/index.ts +2 -0
  165. package/dist/content/components/ui/FlexItem/index.ts +1 -1
  166. package/dist/content/components/ui/Footer/index.ts +4 -3
  167. package/dist/content/components/ui/Grid/grid.tsx +2 -0
  168. package/dist/content/components/ui/Grid/index.ts +3 -0
  169. package/dist/content/components/ui/GridItem/grid-item.tsx +10 -1
  170. package/dist/content/components/ui/GridItem/index.ts +3 -0
  171. package/dist/content/components/ui/IconLabel/icon-label.tsx +2 -0
  172. package/dist/content/components/ui/IconLabel/index.ts +1 -0
  173. package/dist/content/components/ui/InlineSVG/index.ts +3 -1
  174. package/dist/content/components/ui/InlineSVG/inline-svg.tsx +14 -3
  175. package/dist/content/components/ui/InlineSVG/utils.ts +66 -11
  176. package/dist/content/components/ui/Rating/index.tsx +1 -1
  177. package/dist/content/components/ui/Rating/rating.tsx +1 -1
  178. package/dist/content/types/cskTypes.ts +32 -9
  179. package/dist/content/utils/assets.ts +3 -18
  180. package/dist/content/utils/createComponentResolver.ts +7 -6
  181. package/dist/content/utils/createEmptyPlaceholderResolver.tsx +4 -8
  182. package/dist/content/utils/getSlotComponents.ts +15 -0
  183. package/dist/content/utils/routing.ts +60 -15
  184. package/dist/content/utils/useCookiesConsent.ts +17 -0
  185. package/dist/content/utils/withFlattenParameters.tsx +17 -0
  186. package/dist/content/utils/withSlotsDataValue.tsx +34 -0
  187. package/dist/cookie-consent-5QJUCW2K.mjs +1 -0
  188. package/dist/countdown-FRQZMVKW.mjs +1 -0
  189. package/dist/image-gallery-HWCMTJL3.mjs +1 -0
  190. package/dist/{index-D5cLtaIv.d.mts → index-CSSWgmI5.d.mts} +54 -28
  191. package/dist/index-CrBZatTs.d.mts +18 -0
  192. package/dist/index.mjs +3 -3
  193. package/dist/mobile-KBYNJEBM.mjs +1 -0
  194. package/dist/modal-4TVVGHWS.mjs +1 -0
  195. package/dist/modal-E5RMA4EO.mjs +1 -0
  196. package/dist/navigation-flyout-client-WUN4A34X.mjs +1 -0
  197. package/dist/navigation-group-client-Y72BOPIH.mjs +1 -0
  198. package/dist/parameters-B8w5Q6Pp.d.mts +29 -0
  199. package/dist/tabs-VMFTATOP.mjs +1 -0
  200. package/dist/theme-switcher-QTX46Z7E.mjs +1 -0
  201. package/dist/theme-switcher-RGY4D3KL.mjs +1 -0
  202. package/dist/types/cskTypes.d.mts +27 -9
  203. package/dist/utils/assets.d.mts +8 -17
  204. package/dist/utils/assets.mjs +1 -1
  205. package/dist/utils/createComponentResolver.d.mts +3 -9
  206. package/dist/utils/createComponentResolver.mjs +1 -1
  207. package/dist/utils/createEmptyPlaceholderResolver.d.mts +4 -2
  208. package/dist/utils/createEmptyPlaceholderResolver.mjs +1 -1
  209. package/dist/utils/getSlotComponents.d.mts +11 -0
  210. package/dist/utils/getSlotComponents.mjs +1 -0
  211. package/dist/utils/routing.d.mts +20 -7
  212. package/dist/utils/routing.mjs +1 -1
  213. package/dist/utils/sitemap.mjs +1 -1
  214. package/dist/utils/styling.d.mts +3 -0
  215. package/dist/utils/styling.mjs +1 -1
  216. package/dist/utils/withFlattenParameters.d.mts +10 -0
  217. package/dist/utils/withFlattenParameters.mjs +1 -0
  218. package/dist/utils/withSlotsDataValue.d.mts +12 -0
  219. package/dist/utils/withSlotsDataValue.mjs +1 -0
  220. package/dist/video-VG6ZQCKN.mjs +1 -0
  221. package/package.json +43 -14
  222. package/dist/ThemeSwitcher-6Q7LCO4Q.mjs +0 -1
  223. package/dist/accordion-item-QAVKQEB2.mjs +0 -1
  224. package/dist/accordion-item-Y4PSNOH4.mjs +0 -1
  225. package/dist/banner-EYII7V7X.mjs +0 -1
  226. package/dist/carousel-RZ2DV6QX.mjs +0 -1
  227. package/dist/carousel-YELQRJVB.mjs +0 -1
  228. package/dist/chunk-2UV7TQNF.mjs +0 -1
  229. package/dist/chunk-2YTACEBA.mjs +0 -1
  230. package/dist/chunk-56OQGKRM.mjs +0 -1
  231. package/dist/chunk-ABORGLS6.mjs +0 -2
  232. package/dist/chunk-B2O55EVA.mjs +0 -1
  233. package/dist/chunk-EOV2LPGC.mjs +0 -1
  234. package/dist/chunk-EUVKAE6M.mjs +0 -1
  235. package/dist/chunk-FIN5US3Q.mjs +0 -1
  236. package/dist/chunk-LZOK42EM.mjs +0 -1
  237. package/dist/chunk-MSXDLSXH.mjs +0 -1
  238. package/dist/chunk-RX4IAAQQ.mjs +0 -1
  239. package/dist/chunk-RYEXR67P.mjs +0 -1
  240. package/dist/chunk-TCQTXNKT.mjs +0 -1
  241. package/dist/chunk-TFA6HYP4.mjs +0 -7
  242. package/dist/chunk-VW2XC3SE.mjs +0 -1
  243. package/dist/chunk-YEKQJ4YC.mjs +0 -1
  244. package/dist/content/components/canvas/Banner/types.ts +0 -21
  245. package/dist/countdown-LYDXJLEE.mjs +0 -1
  246. package/dist/image-gallery-AMU6FS7N.mjs +0 -1
  247. package/dist/mobile-JGZBHQC2.mjs +0 -1
  248. package/dist/modal-43IHAVWB.mjs +0 -1
  249. package/dist/modal-5FNTFSTN.mjs +0 -1
  250. package/dist/navigation-flyout-EPIOXRWJ.mjs +0 -1
  251. package/dist/navigation-group-OCZ35QI2.mjs +0 -1
  252. package/dist/tabs-J23TEEQ7.mjs +0 -1
  253. package/dist/theme-switcher-76F2V343.mjs +0 -1
  254. package/dist/theme-switcher-WO5JIV2W.mjs +0 -1
  255. package/dist/video-RC2QHJS2.mjs +0 -1
  256. /package/dist/content/components/{canvas → ui}/Banner/close-button.tsx +0 -0
@@ -0,0 +1,85 @@
1
+ import { FC } from 'react';
2
+ import Image from 'next/image';
3
+ import Link from 'next/link';
4
+ import { UniformRichText, ComponentParameter, UniformText } from '@uniformdev/next-app-router/component';
5
+ import BaseFooter from '@/components/ui/Footer';
6
+ import { ReplaceFieldsWithAssets } from '@/types/cskTypes';
7
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
8
+ import { SimpleFooterParameters, SimpleFooterProps } from '.';
9
+
10
+ const GitHubIcon = () => (
11
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" height="30" viewBox="0 0 35 34" width="30">
12
+ <path
13
+ clipRule="evenodd"
14
+ d="M17.5145 0C7.82942 0 0 7.79163 0 17.4309C0 25.1362 5.01658 31.6585 11.9759 33.9669C12.846 34.1405 13.1647 33.5919 13.1647 33.1304C13.1647 32.7263 13.136 31.3411 13.136 29.8979C8.26393 30.937 7.24936 27.82 7.24936 27.82C6.46638 25.7999 5.30626 25.2807 5.30626 25.2807C3.71162 24.2129 5.42241 24.2129 5.42241 24.2129C7.19128 24.3283 8.11946 26.0021 8.11946 26.0021C9.68505 28.6569 12.2079 27.9068 13.2228 27.445C13.3676 26.3194 13.8319 25.5403 14.3248 25.1075C10.439 24.7034 6.35059 23.2028 6.35059 16.5073C6.35059 14.6026 7.04609 13.0443 8.14814 11.8323C7.97426 11.3995 7.36516 9.60992 8.32237 7.2147C8.32237 7.2147 9.80121 6.75287 13.1357 9.00394C14.5633 8.62239 16.0356 8.42829 17.5145 8.42665C18.9933 8.42665 20.5008 8.62888 21.8929 9.00394C25.2277 6.75287 26.7066 7.2147 26.7066 7.2147C27.6638 9.60992 27.0543 11.3995 26.8805 11.8323C28.0116 13.0443 28.6784 14.6026 28.6784 16.5073C28.6784 23.2028 24.59 24.6743 20.6751 25.1075C21.3132 25.6557 21.8639 26.6945 21.8639 28.3396C21.8639 30.6771 21.8352 32.5531 21.8352 33.13C21.8352 33.5919 22.1543 34.1405 23.024 33.9673C29.9833 31.6581 34.9999 25.1362 34.9999 17.4309C35.0286 7.79163 27.1705 0 17.5145 0Z"
15
+ fill="#1E1E1E"
16
+ fillRule="evenodd"
17
+ />
18
+ </svg>
19
+ );
20
+
21
+ const StorybookIcon = () => (
22
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" height="30" viewBox="0 0 29 29" width="30">
23
+ <path d="M29 0H0V29H29V0Z" fill="url(#pattern0_9543_564)" />
24
+ <defs>
25
+ <pattern height="1" id="pattern0_9543_564" patternContentUnits="objectBoundingBox" width="1">
26
+ <use href="#image0_9543_564" transform="scale(0.005)" />
27
+ </pattern>
28
+ <image
29
+ height="200"
30
+ href="data:image/png;base64,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"
31
+ id="image0_9543_564"
32
+ width="200"
33
+ />
34
+ </defs>
35
+ </svg>
36
+ );
37
+
38
+ export const Footer: FC<SimpleFooterProps & ReplaceFieldsWithAssets<SimpleFooterParameters, 'logo'>> = ({
39
+ logo,
40
+ links,
41
+ parameters,
42
+ component,
43
+ }) => (
44
+ <BaseFooter
45
+ logo={logo?.[0]?.url && <Image src={logo?.[0]?.url} alt="Logo" width={180} height={47} />}
46
+ copyright={<UniformRichText parameter={parameters.copyright as ComponentParameter<string>} component={component} />}
47
+ content={
48
+ <div className="flex lg:gap-32 md:gap-16 gap-16">
49
+ <div className="flex flex-col gap-2">
50
+ <UniformText
51
+ className="text-text-tertiary lg:text-base font-bold uppercase"
52
+ parameter={parameters.footerLinkSectionTitle as ComponentParameter<string>}
53
+ component={component}
54
+ />
55
+ {links?.map(link => (
56
+ <Link
57
+ className="text-text-primary font-bold transition-all duration-150 whitespace-nowrap"
58
+ href={link.link?.path || ''}
59
+ key={link.title}
60
+ >
61
+ {link.title}
62
+ </Link>
63
+ ))}
64
+ </div>
65
+ <div className="flex gap-4">
66
+ <Link href="https://unfrm.to/csk-sb">
67
+ <StorybookIcon />
68
+ </Link>
69
+ <Link href="https://unfrm.to/csk-repo">
70
+ <GitHubIcon />
71
+ </Link>
72
+ </div>
73
+ </div>
74
+ }
75
+ backgroundColor="general-color-1"
76
+ spacing={{
77
+ paddingTop: 'container-small',
78
+ paddingBottom: 'container-small',
79
+ }}
80
+ border="border-footer"
81
+ fluidContent={false}
82
+ />
83
+ );
84
+
85
+ export default withFlattenParameters(Footer);
@@ -0,0 +1,22 @@
1
+ import { AssetParamValue, LinkParamValue } from '@uniformdev/canvas';
2
+ import { ComponentProps } from '@/types/cskTypes';
3
+
4
+ export type SimpleHeaderParameters = {
5
+ logo?: AssetParamValue;
6
+ color?: string;
7
+ links?: {
8
+ title: string;
9
+ link: LinkParamValue;
10
+ }[];
11
+ backgroundColor?: string;
12
+ textColor?: string;
13
+ hoverTextColor?: string;
14
+ };
15
+
16
+ export enum SimpleHeaderVariants {
17
+ Sticky = 'sticky',
18
+ }
19
+
20
+ export type SimpleHeaderProps = ComponentProps<SimpleHeaderParameters>;
21
+
22
+ export { default } from './simple-header';
@@ -0,0 +1,63 @@
1
+ import { FC } from 'react';
2
+ import Image from 'next/image';
3
+ import Link from 'next/link';
4
+ import BaseHeader from '@/components/ui/Header';
5
+ import BaseIconLabel from '@/components/ui/IconLabel';
6
+ import { ReplaceFieldsWithAssets } from '@/types/cskTypes';
7
+ import { cn, resolveViewPort } from '@/utils/styling';
8
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
9
+ import { SimpleHeaderParameters, SimpleHeaderProps, SimpleHeaderVariants } from '.';
10
+
11
+ const SimpleHeader: FC<SimpleHeaderProps & ReplaceFieldsWithAssets<SimpleHeaderParameters, 'logo'>> = ({
12
+ variant,
13
+ logo,
14
+ links,
15
+ backgroundColor,
16
+ textColor,
17
+ hoverTextColor,
18
+ }) => {
19
+ return (
20
+ <BaseHeader
21
+ sticky={variant === SimpleHeaderVariants.Sticky}
22
+ leftSection={
23
+ logo?.[0]?.url && (
24
+ <Link href="/">
25
+ <Image src={logo?.[0]?.url} alt="Logo" width={50} height={40} />
26
+ </Link>
27
+ )
28
+ }
29
+ backgroundColor={backgroundColor}
30
+ color="general-color-1"
31
+ spacing={{
32
+ paddingTop: 'container-small',
33
+ paddingBottom: 'container-small',
34
+ }}
35
+ border="none"
36
+ >
37
+ {links?.map(link => (
38
+ <Link href={link.link?.path || ''} key={link.title}>
39
+ <BaseIconLabel
40
+ className="group"
41
+ size="base"
42
+ tag="span"
43
+ color={textColor}
44
+ weight="normal"
45
+ font="sans"
46
+ letterSpacing="normal"
47
+ alignment="left"
48
+ >
49
+ <span
50
+ className={cn({
51
+ [resolveViewPort(hoverTextColor, 'group-hover:text-{value}')]: !!hoverTextColor,
52
+ })}
53
+ >
54
+ {link.title}
55
+ </span>
56
+ </BaseIconLabel>
57
+ </Link>
58
+ ))}
59
+ </BaseHeader>
60
+ );
61
+ };
62
+
63
+ export default withFlattenParameters(SimpleHeader);
@@ -1,4 +1,4 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
1
+ import { ComponentProps } from '@/types/cskTypes';
2
2
 
3
3
  export type SpacerParameters = {
4
4
  size?: string;
@@ -9,4 +9,4 @@ export enum SpacerVariants {
9
9
 
10
10
  export type SpacerProps = ComponentProps<SpacerParameters>;
11
11
 
12
- export { Spacer as default } from './spacer';
12
+ export { default } from './spacer';
@@ -1,8 +1,9 @@
1
1
  import { FC } from 'react';
2
2
  import { cn } from '@/utils/styling';
3
- import { SpacerProps, SpacerVariants } from '.';
3
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
4
+ import { SpacerParameters, SpacerProps, SpacerVariants } from '.';
4
5
 
5
- export const Spacer: FC<SpacerProps> = ({ size, component: { variant } }) => {
6
+ export const Spacer: FC<SpacerProps & SpacerParameters> = ({ size, variant }) => {
6
7
  const isHorizontal = variant === SpacerVariants.Horizontal;
7
8
 
8
9
  return (
@@ -14,3 +15,5 @@ export const Spacer: FC<SpacerProps> = ({ size, component: { variant } }) => {
14
15
  />
15
16
  );
16
17
  };
18
+
19
+ export default withFlattenParameters(Spacer);
@@ -1,5 +1,4 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
2
- import { Tab } from './tab';
1
+ import { ComponentProps } from '@/types/cskTypes';
3
2
 
4
3
  export type TabParameters = { title?: string };
5
4
 
@@ -9,4 +8,4 @@ export enum TabSlots {
9
8
 
10
9
  export type TabProps = ComponentProps<TabParameters, TabSlots>;
11
10
 
12
- export default Tab;
11
+ export { default } from './tab';
@@ -1,7 +1,8 @@
1
1
  import { FC } from 'react';
2
- import { UniformSlot } from '@uniformdev/canvas-next-rsc/component';
3
- import { TabProps } from '.';
2
+ import { UniformSlot } from '@uniformdev/next-app-router/component';
3
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
4
+ import { TabParameters, TabProps } from '.';
4
5
 
5
- export const Tab: FC<TabProps> = ({ slots, component, context }) => (
6
- <UniformSlot data={component} context={context} slot={slots.tabContent} />
7
- );
6
+ const Tab: FC<TabProps & TabParameters> = ({ slots }) => <UniformSlot slot={slots.tabContent} />;
7
+
8
+ export default withFlattenParameters(Tab);
@@ -1,5 +1,5 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
2
1
  import { ContainerParameters } from '@/components/canvas/Container/parameters';
2
+ import { ComponentProps } from '@/types/cskTypes';
3
3
 
4
4
  export type TableParameters = ContainerParameters & {
5
5
  size?: string;
@@ -13,5 +13,5 @@ export enum TableSlots {
13
13
 
14
14
  export type TableProps = ComponentProps<TableParameters, TableSlots>;
15
15
 
16
- export { Table as default } from './table';
16
+ export { default } from './table';
17
17
  export { TableEmptyPlaceholder } from './empty-placeholder';
@@ -1,15 +1,14 @@
1
1
  import { FC } from 'react';
2
- import { UniformSlot } from '@uniformdev/canvas-next-rsc/component';
2
+ import { UniformSlot } from '@uniformdev/next-app-router/component';
3
3
  import Container from '@/components/ui/Container';
4
- import { TableProps } from '.';
4
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
5
+ import { TableParameters, TableProps } from '.';
5
6
  import { getTableClasses } from './style-utils';
6
7
 
7
- export const Table: FC<TableProps> = ({
8
+ const Table: FC<TableProps & TableParameters> = ({
8
9
  size,
9
10
  textColor,
10
11
  slots,
11
- component,
12
- context,
13
12
  backgroundColor,
14
13
  spacing,
15
14
  border,
@@ -20,12 +19,14 @@ export const Table: FC<TableProps> = ({
20
19
  <div className="overflow-x-auto">
21
20
  <table className={getTableClasses({ size, textColor })}>
22
21
  <thead>
23
- <UniformSlot slot={slots.tableHead} context={context} data={component} />
22
+ <UniformSlot slot={slots.tableHead} />
24
23
  </thead>
25
24
  <tbody>
26
- <UniformSlot slot={slots.tableBody} context={context} data={component} />
25
+ <UniformSlot slot={slots.tableBody} />
27
26
  </tbody>
28
27
  </table>
29
28
  </div>
30
29
  </Container>
31
30
  );
31
+
32
+ export default withFlattenParameters(Table);
@@ -1,4 +1,4 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
1
+ import { ComponentProps } from '@/types/cskTypes';
2
2
 
3
3
  export const AlignmentMap = {
4
4
  left: 'ml-0',
@@ -16,4 +16,4 @@ export enum TableCustomCellSlots {
16
16
 
17
17
  export type TableCustomCellProps = ComponentProps<TableCustomCellParameters, TableCustomCellSlots>;
18
18
 
19
- export { TableCustomCell as default } from './table-custom-cell';
19
+ export { default } from './table-custom-cell';
@@ -1,12 +1,15 @@
1
1
  import { FC } from 'react';
2
- import { UniformSlot } from '@uniformdev/canvas-next-rsc/component';
2
+ import { UniformSlot } from '@uniformdev/next-app-router/component';
3
3
  import { cn } from '@/utils/styling';
4
- import { AlignmentMap, TableCustomCellProps } from '.';
4
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
5
+ import { AlignmentMap, TableCustomCellParameters, TableCustomCellProps } from '.';
5
6
 
6
- export const TableCustomCell: FC<TableCustomCellProps> = ({ component, context, slots, alignment }) => (
7
+ const TableCustomCell: FC<TableCustomCellProps & TableCustomCellParameters> = ({ slots, alignment }) => (
7
8
  <td>
8
9
  <div className={cn('w-fit', AlignmentMap[alignment || 'left'])}>
9
- <UniformSlot slot={slots.tableCustomCellContent} context={context} data={component} />
10
+ <UniformSlot slot={slots.tableCustomCellContent} />
10
11
  </div>
11
12
  </td>
12
13
  );
14
+
15
+ export default withFlattenParameters(TableCustomCell);
@@ -1,7 +1,7 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
1
+ import { ComponentProps } from '@/types/cskTypes';
2
2
 
3
3
  export type TableDataCellParameters = { value?: string };
4
4
 
5
5
  export type TableDataCellProps = ComponentProps<TableDataCellParameters>;
6
6
 
7
- export { TableDataCell as default } from './table-data-cell';
7
+ export { default } from './table-data-cell';
@@ -1,9 +1,12 @@
1
1
  import { FC } from 'react';
2
- import { UniformText } from '@uniformdev/canvas-next-rsc/component';
3
- import { TableDataCellProps } from '.';
2
+ import { ComponentParameter, UniformText } from '@uniformdev/next-app-router/component';
3
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
4
+ import { TableDataCellParameters, TableDataCellProps } from '.';
4
5
 
5
- export const TableDataCell: FC<TableDataCellProps> = ({ component, context }) => (
6
+ const TableDataCell: FC<TableDataCellProps & TableDataCellParameters> = ({ parameters, component }) => (
6
7
  <td>
7
- <UniformText component={component} context={context} parameterId="value" placeholder="Value" />
8
+ <UniformText component={component} parameter={parameters.value as ComponentParameter<string>} placeholder="Value" />
8
9
  </td>
9
10
  );
11
+
12
+ export default withFlattenParameters(TableDataCell);
@@ -1,7 +1,7 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
1
+ import { ComponentProps } from '@/types/cskTypes';
2
2
 
3
3
  export type TableHeaderCellParameters = { value?: string };
4
4
 
5
5
  export type TableHeaderCellProps = ComponentProps<TableHeaderCellParameters>;
6
6
 
7
- export { TableHeaderCell as default } from './table-header-cell';
7
+ export { default } from './table-header-cell';
@@ -1,9 +1,12 @@
1
1
  import { FC } from 'react';
2
- import { UniformText } from '@uniformdev/canvas-next-rsc/component';
3
- import { TableHeaderCellProps } from '.';
2
+ import { ComponentParameter, UniformText } from '@uniformdev/next-app-router/component';
3
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
4
+ import { TableHeaderCellParameters, TableHeaderCellProps } from '.';
4
5
 
5
- export const TableHeaderCell: FC<TableHeaderCellProps> = ({ component, context }) => (
6
+ const TableHeaderCell: FC<TableHeaderCellProps & TableHeaderCellParameters> = ({ parameters, component }) => (
6
7
  <th>
7
- <UniformText component={component} context={context} parameterId="value" placeholder="Value" />
8
+ <UniformText component={component} parameter={parameters.value as ComponentParameter<string>} placeholder="Value" />
8
9
  </th>
9
10
  );
11
+
12
+ export default withFlattenParameters(TableHeaderCell);
@@ -1,5 +1,7 @@
1
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
1
+ import { ComponentProps } from '@/types/cskTypes';
2
2
 
3
- export type TableRowProps = ComponentProps;
3
+ export type TableRowParameters = unknown;
4
4
 
5
- export { TableRow as default } from './table-row';
5
+ export type TableRowProps = ComponentProps<TableRowParameters>;
6
+
7
+ export { default } from './table-row';
@@ -1,9 +1,12 @@
1
1
  import { FC } from 'react';
2
- import { UniformSlot } from '@uniformdev/canvas-next-rsc/component';
2
+ import { UniformSlot } from '@uniformdev/next-app-router/component';
3
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
3
4
  import { TableRowProps } from '.';
4
5
 
5
- export const TableRow: FC<TableRowProps> = ({ slots, component, context }) => (
6
+ const TableRow: FC<TableRowProps> = ({ slots }) => (
6
7
  <tr>
7
- <UniformSlot data={component} context={context} slot={slots.tableRowCells} />
8
+ <UniformSlot slot={slots.tableRowCells} />
8
9
  </tr>
9
10
  );
11
+
12
+ export default withFlattenParameters(TableRow);
@@ -1,21 +1,21 @@
1
1
  import dynamic from 'next/dynamic';
2
- import { ComponentProps } from '@uniformdev/canvas-next-rsc/component';
3
2
  import { ContainerParameters } from '@/components/canvas/Container/parameters';
3
+ import { ComponentProps } from '@/types/cskTypes';
4
+ import { withFlattenParameters } from '@/utils/withFlattenParameters';
5
+ import { withSlotsDataValue } from '@/utils/withSlotsDataValue';
4
6
 
5
7
  export type TabsParameters = ContainerParameters & {
6
8
  color?: string;
7
9
  };
8
10
 
9
- export enum TabsVariants {
10
- Default = 'default',
11
- Bordered = 'bordered',
12
- }
13
-
14
11
  export enum TabsSlots {
15
12
  TabItems = 'tabItems',
16
13
  }
17
14
 
18
15
  export type TabsProps = ComponentProps<TabsParameters, TabsSlots>;
19
16
 
20
- export default dynamic(() => import('./tabs').then(mod => mod.Tabs));
17
+ export { TabsVariants } from './style-utils';
18
+ export default dynamic(() =>
19
+ import('./tabs').then(mod => withSlotsDataValue(withFlattenParameters(mod.Tabs), [TabsSlots.TabItems]))
20
+ );
21
21
  export { TabsEmptyPlaceholder } from './empty-placeholder';
@@ -1,9 +1,13 @@
1
1
  import { cn } from '@/utils/styling';
2
- import { TabsParameters, TabsVariants } from '.';
2
+ import { TabsParameters } from '.';
3
+
4
+ export enum TabsVariants {
5
+ Bordered = 'bordered',
6
+ }
3
7
 
4
8
  type ButtonContainerClassesProps = {
5
9
  color: TabsParameters['color'];
6
- variant: TabsVariants;
10
+ variant?: string;
7
11
  };
8
12
  export const getButtonContainerClasses = ({ color, variant }: ButtonContainerClassesProps) =>
9
13
  cn('flex flex-row overflow-x-auto ', {
@@ -12,17 +16,14 @@ export const getButtonContainerClasses = ({ color, variant }: ButtonContainerCla
12
16
 
13
17
  type ButtonClassesProps = {
14
18
  color: TabsParameters['color'];
15
- variant: TabsVariants;
16
- tabItem: {
17
- id: string;
18
- };
19
- activeTabId: string;
19
+ variant?: string;
20
+ isActiveTab?: boolean;
20
21
  };
21
- export const getButtonClasses = ({ color, variant, tabItem, activeTabId }: ButtonClassesProps) =>
22
+ export const getButtonClasses = ({ color, variant, isActiveTab = false }: ButtonClassesProps) =>
22
23
  cn('text-lg shrink-0 font-medium px-5 py-3', {
23
24
  [`text-${color}`]: color,
24
- [`border-${color}`]: tabItem.id === activeTabId && variant === TabsVariants.Bordered,
25
+ [`border-${color}`]: isActiveTab && variant === TabsVariants.Bordered,
25
26
  'border-b-2': variant === TabsVariants.Bordered,
26
- 'opacity-60 hover:opacity-100': tabItem.id !== activeTabId,
27
- 'border-transparent': tabItem.id !== activeTabId && variant === TabsVariants.Bordered,
27
+ 'opacity-60 hover:opacity-100': !isActiveTab,
28
+ 'border-transparent': !isActiveTab && variant === TabsVariants.Bordered,
28
29
  });
@@ -1,43 +1,43 @@
1
1
  'use client';
2
2
 
3
- import { FC, Fragment, useCallback, useEffect, useMemo, useState } from 'react';
4
- import { flattenValues } from '@uniformdev/canvas';
5
- import { UniformSlot, UniformText } from '@uniformdev/canvas-next-rsc/component';
3
+ import { FC, Fragment, useCallback, useState, MouseEvent, FocusEvent } from 'react';
4
+ import { ComponentInstance, flattenValues } from '@uniformdev/canvas';
5
+ import { UniformSlot, UniformText, ComponentParameter } from '@uniformdev/next-app-router/component';
6
6
  import Container from '@/components/ui/Container';
7
- import { TabsProps, TabsVariants } from '.';
7
+ import { TabsParameters, TabsProps } from '.';
8
8
  import { getButtonClasses, getButtonContainerClasses } from './style-utils';
9
9
 
10
- export const Tabs: FC<TabsProps> = ({
10
+ const TAB_ITEM_TEXT_PARAMETER_ID = 'text';
11
+ const TAB_ITEM_TEXT_PARAMETER_TYPE = 'text';
12
+
13
+ export const Tabs: FC<TabsProps & TabsParameters & { slotData?: Record<string, ComponentInstance[]> }> = ({
11
14
  slots,
12
15
  color,
13
- component,
14
- context,
15
16
  backgroundColor,
16
17
  spacing,
17
18
  border,
18
19
  fluidContent,
19
20
  height,
21
+ variant,
22
+ slotData,
23
+ context,
20
24
  }) => {
21
- const variant = (component.variant || TabsVariants.Default) as TabsVariants;
22
- const [activeTabId, setActiveTabId] = useState(component?.slots?.tabItems?.[0]?._id as string);
25
+ const tabItems = slotData?.tabItems?.map(tabComponent => ({
26
+ ...(flattenValues(tabComponent) as { text?: string }),
27
+ id: (tabComponent?._id as string) || '',
28
+ }));
23
29
 
24
- const tabItems = useMemo(() => {
25
- if (!component?.slots?.tabItems) return [];
26
- return component.slots.tabItems.map(tabComponent => ({
27
- ...(flattenValues(tabComponent) as { title?: string }),
28
- id: tabComponent._id as string,
29
- }));
30
- }, [component?.slots?.tabItems]);
30
+ const [activeTabId, setActiveTabId] = useState(tabItems?.[0]?.id || '');
31
31
 
32
- useEffect(() => {
33
- if (!tabItems.length) return;
34
- if (!activeTabId) setActiveTabId(tabItems[0]?.id || '');
35
- }, [tabItems, activeTabId]);
32
+ const handleTabClick = useCallback((event: MouseEvent<HTMLButtonElement>) => {
33
+ const tabId = (event.target as HTMLButtonElement).id;
34
+ setActiveTabId(tabId);
35
+ }, []);
36
36
 
37
37
  const handleContextualEditingTabClick = useCallback(
38
- (tabId: string) => {
38
+ (event: FocusEvent<HTMLButtonElement>) => {
39
+ const tabId = event.target.id;
39
40
  if (!context.isContextualEditing) return;
40
-
41
41
  setActiveTabId(tabId);
42
42
  },
43
43
  [context.isContextualEditing]
@@ -46,31 +46,33 @@ export const Tabs: FC<TabsProps> = ({
46
46
  return (
47
47
  <Container className="flex flex-col gap-5" {...{ backgroundColor, spacing, border, fluidContent, height }}>
48
48
  <div className={getButtonContainerClasses({ color, variant })}>
49
- {tabItems.map((tabItem, index) => (
49
+ {tabItems?.map(({ id: currentTabId, [TAB_ITEM_TEXT_PARAMETER_ID]: currentTabText }) => (
50
50
  <button
51
- key={tabItem.id}
52
- onClick={() => setActiveTabId(tabItem.id)}
53
- className={getButtonClasses({ color, variant, tabItem, activeTabId })}
51
+ id={currentTabId}
52
+ key={currentTabId}
53
+ onClick={handleTabClick}
54
+ className={getButtonClasses({ color, variant, isActiveTab: currentTabId === activeTabId })}
54
55
  >
55
- {component?.slots?.tabItems?.[index] && (
56
- <UniformText
57
- onFocus={() => handleContextualEditingTabClick(tabItem.id)}
58
- context={context}
59
- parameterId="text"
60
- component={component?.slots?.tabItems[index]}
61
- placeholder="Tab title"
62
- />
63
- )}
56
+ <UniformText
57
+ id={currentTabId}
58
+ placeholder="Text goes here"
59
+ onFocus={handleContextualEditingTabClick}
60
+ parameter={
61
+ {
62
+ parameterId: TAB_ITEM_TEXT_PARAMETER_ID,
63
+ type: TAB_ITEM_TEXT_PARAMETER_TYPE,
64
+ value: currentTabText,
65
+ _contextualEditing: { isEditable: true },
66
+ } as ComponentParameter<string>
67
+ }
68
+ component={{ _id: currentTabId }}
69
+ />
64
70
  </button>
65
71
  ))}
66
72
  </div>
67
- <UniformSlot data={component} context={context} slot={slots.tabItems}>
68
- {({ child, component: { _id: currentComponentId } }) =>
69
- currentComponentId === activeTabId ? (
70
- <Fragment key={currentComponentId}>{child}</Fragment>
71
- ) : (
72
- <Fragment key={currentComponentId} />
73
- )
73
+ <UniformSlot slot={slots.tabItems}>
74
+ {({ child, _id: currentComponentId, key }) =>
75
+ currentComponentId === activeTabId ? <Fragment key={key}>{child}</Fragment> : <Fragment key={key} />
74
76
  }
75
77
  </UniformSlot>
76
78
  </Container>
@@ -1,15 +1,15 @@
1
- import { FC } from 'react';
1
+ import { FC, ReactNode } from 'react';
2
2
  import Container from '@/components/ui/Container';
3
- import { TestimonialProps } from '.';
3
+ import { TestimonialParameters } from '.';
4
4
 
5
5
  type WithLargeAvatarVariantProps = Pick<
6
- TestimonialProps,
6
+ TestimonialParameters,
7
7
  'backgroundColor' | 'spacing' | 'border' | 'fluidContent' | 'height'
8
8
  > & {
9
- testimonialPrimaryImage: React.ReactNode;
10
- testimonialContent: React.ReactNode;
11
- testimonialAuthor: React.ReactNode;
12
- testimonialSecondaryImage: React.ReactNode;
9
+ testimonialPrimaryImage: ReactNode;
10
+ testimonialContent: ReactNode;
11
+ testimonialAuthor: ReactNode;
12
+ testimonialSecondaryImage: ReactNode;
13
13
  };
14
14
 
15
15
  export const DefaultVariant: FC<WithLargeAvatarVariantProps> = ({