@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.
- package/README.md +74 -81
- package/dist/ThemeSwitcher-EUDUX3QI.mjs +1 -0
- package/dist/accordion-item-7IKL6Z6Q.mjs +1 -0
- package/dist/accordion-item-MORC2F2Q.mjs +1 -0
- package/dist/banner-WOYK426U.mjs +1 -0
- package/dist/carousel-ALNEGOPM.mjs +1 -0
- package/dist/carousel-HKYR3ZBB.mjs +1 -0
- package/dist/chunk-27WJUZYR.mjs +1 -0
- package/dist/chunk-3JU2XCD2.mjs +1 -0
- package/dist/chunk-47YB4P2Q.mjs +1 -0
- package/dist/chunk-6CKVLOIH.mjs +1 -0
- package/dist/{chunk-PMMAALCQ.mjs → chunk-AOFJCDRO.mjs} +1 -1
- package/dist/{chunk-2BMAPB63.mjs → chunk-AWTML4I7.mjs} +1 -1
- package/dist/chunk-CZ4X5ZBK.mjs +1 -0
- package/dist/chunk-D673IM2U.mjs +1 -0
- package/dist/chunk-I6SUO5WR.mjs +1 -0
- package/dist/chunk-JT77BVIX.mjs +1 -0
- package/dist/chunk-LPAOEOU4.mjs +1 -0
- package/dist/chunk-MKOFM4XK.mjs +1 -0
- package/dist/chunk-NKINOJY6.mjs +1 -0
- package/dist/chunk-OKUDTS22.mjs +1 -0
- package/dist/chunk-OL6JBPZ4.mjs +1 -0
- package/dist/chunk-OY6ZJNCE.mjs +1 -0
- package/dist/chunk-PLKWUEFW.mjs +1 -0
- package/dist/chunk-QPQGRQKI.mjs +1 -0
- package/dist/chunk-VWWXSA5H.mjs +1 -0
- package/dist/chunk-XKCRANRQ.mjs +1 -0
- package/dist/chunk-XYU3TGOU.mjs +1 -0
- package/dist/chunk-Y337A266.mjs +7 -0
- package/dist/chunk-YQYDZJ65.mjs +1 -0
- package/dist/chunk-ZAHWFLY4.mjs +1 -0
- package/dist/{chunk-V4EBWEG4.mjs → chunk-ZWDCDE5W.mjs} +1 -1
- package/dist/components/canvas/emptyPlaceholders.d.mts +5 -4
- package/dist/components/canvas/emptyPlaceholders.mjs +1 -1
- package/dist/components/canvas/index.d.mts +4 -648
- package/dist/components/canvas/index.mjs +1 -1
- package/dist/components/canvas/serverClient.d.mts +694 -0
- package/dist/components/canvas/serverClient.mjs +1 -0
- package/dist/components/canvas/serverOnly.d.mts +41 -0
- package/dist/components/canvas/serverOnly.mjs +1 -0
- package/dist/components/ui/index.d.mts +24 -33
- package/dist/components/ui/index.mjs +1 -1
- package/dist/content/components/canvas/Accordion/accordion.tsx +8 -7
- package/dist/content/components/canvas/Accordion/index.tsx +2 -2
- package/dist/content/components/canvas/AccordionItem/accordion-item.tsx +9 -7
- package/dist/content/components/canvas/AccordionItem/index.tsx +4 -6
- package/dist/content/components/canvas/Badge/badge.tsx +12 -5
- package/dist/content/components/canvas/Badge/index.tsx +2 -3
- package/dist/content/components/canvas/Badge/style-utils.ts +6 -6
- package/dist/content/components/canvas/Banner/banner.tsx +24 -36
- package/dist/content/components/canvas/Banner/index.tsx +7 -11
- package/dist/content/components/canvas/Breadcrumbs/breadcrumbs.tsx +21 -22
- package/dist/content/components/canvas/Breadcrumbs/index.tsx +4 -7
- package/dist/content/components/canvas/Button/button.tsx +19 -11
- package/dist/content/components/canvas/Button/index.tsx +3 -5
- package/dist/content/components/canvas/Card/card.tsx +9 -9
- package/dist/content/components/canvas/Card/index.tsx +3 -3
- package/dist/content/components/canvas/Carousel/carousel.tsx +9 -7
- package/dist/content/components/canvas/Carousel/index.tsx +4 -4
- package/dist/content/components/canvas/Container/container.tsx +7 -6
- package/dist/content/components/canvas/Container/index.tsx +3 -3
- package/dist/content/components/canvas/CookieConsent/cookie-consent.tsx +126 -0
- package/dist/content/components/canvas/CookieConsent/empty-placeholder.tsx +12 -0
- package/dist/content/components/canvas/CookieConsent/index.tsx +26 -0
- package/dist/content/components/canvas/Countdown/countdown.tsx +9 -7
- package/dist/content/components/canvas/Countdown/index.tsx +2 -3
- package/dist/content/components/canvas/DemoHero/atoms.tsx +29 -32
- package/dist/content/components/canvas/DemoHero/columns-variant.tsx +4 -4
- package/dist/content/components/canvas/DemoHero/default-variant.tsx +4 -4
- package/dist/content/components/canvas/DemoHero/demo-hero.tsx +41 -18
- package/dist/content/components/canvas/DemoHero/fixed-hero.tsx +13 -6
- package/dist/content/components/canvas/DemoHero/flexible-hero.tsx +8 -2
- package/dist/content/components/canvas/DemoHero/index.tsx +3 -4
- package/dist/content/components/canvas/Divider/divider.tsx +5 -2
- package/dist/content/components/canvas/Divider/index.tsx +2 -2
- package/dist/content/components/canvas/Flex/flex.tsx +9 -6
- package/dist/content/components/canvas/Flex/index.tsx +6 -6
- package/dist/content/components/canvas/FlexItem/flex-item.tsx +7 -4
- package/dist/content/components/canvas/FlexItem/index.tsx +4 -5
- package/dist/content/components/canvas/Footer/footer.tsx +9 -8
- package/dist/content/components/canvas/Footer/index.tsx +2 -3
- package/dist/content/components/canvas/Grid/grid.tsx +9 -7
- package/dist/content/components/canvas/Grid/index.tsx +5 -5
- package/dist/content/components/canvas/GridItem/grid-item.tsx +10 -8
- package/dist/content/components/canvas/GridItem/index.tsx +5 -5
- package/dist/content/components/canvas/Header/header.tsx +10 -7
- package/dist/content/components/canvas/Header/index.tsx +2 -3
- package/dist/content/components/canvas/IconLabel/icon-label.tsx +16 -8
- package/dist/content/components/canvas/IconLabel/index.tsx +4 -5
- package/dist/content/components/canvas/Image/image.tsx +13 -7
- package/dist/content/components/canvas/Image/index.tsx +2 -3
- package/dist/content/components/canvas/ImageGallery/empty-placeholder.tsx +1 -1
- package/dist/content/components/canvas/ImageGallery/gallery-inner.tsx +6 -6
- package/dist/content/components/canvas/ImageGallery/image-gallery.tsx +20 -33
- package/dist/content/components/canvas/ImageGallery/index.tsx +11 -12
- package/dist/content/components/canvas/Link/index.tsx +2 -3
- package/dist/content/components/canvas/Link/link.tsx +7 -4
- package/dist/content/components/canvas/Modal/index.tsx +2 -2
- package/dist/content/components/canvas/Modal/modal.tsx +9 -10
- package/dist/content/components/canvas/NavigationFlyout/desktop.tsx +9 -13
- package/dist/content/components/canvas/NavigationFlyout/index.tsx +21 -3
- package/dist/content/components/canvas/NavigationFlyout/mobile.tsx +10 -13
- package/dist/content/components/canvas/NavigationFlyout/{navigation-flyout.tsx → navigation-flyout-client.tsx} +26 -20
- package/dist/content/components/canvas/NavigationGroup/desktop.tsx +7 -10
- package/dist/content/components/canvas/NavigationGroup/index.tsx +20 -3
- package/dist/content/components/canvas/NavigationGroup/mobile.tsx +9 -8
- package/dist/content/components/canvas/NavigationGroup/{navigation-group.tsx → navigation-group-client.tsx} +21 -18
- package/dist/content/components/canvas/NavigationLink/index.tsx +2 -4
- package/dist/content/components/canvas/NavigationLink/navigation-link.tsx +12 -9
- package/dist/content/components/canvas/Page/index.tsx +7 -7
- package/dist/content/components/canvas/Page/page.tsx +9 -18
- package/dist/content/components/canvas/Review/default-variant.tsx +2 -2
- package/dist/content/components/canvas/Review/empty-placeholder.tsx +6 -3
- package/dist/content/components/canvas/Review/index.tsx +6 -6
- package/dist/content/components/canvas/Review/multi-column-variant.tsx +2 -2
- package/dist/content/components/canvas/Review/review.tsx +11 -11
- package/dist/content/components/canvas/RichText/index.tsx +7 -6
- package/dist/content/components/canvas/RichText/rich-text.tsx +23 -6
- package/dist/content/components/canvas/Section/columns-variant.tsx +4 -4
- package/dist/content/components/canvas/Section/default-variant.tsx +6 -6
- package/dist/content/components/canvas/Section/empty-placeholder.tsx +5 -2
- package/dist/content/components/canvas/Section/index.tsx +2 -2
- package/dist/content/components/canvas/Section/section.tsx +11 -12
- package/dist/content/components/canvas/SimpleFooter/index.tsx +16 -0
- package/dist/content/components/canvas/SimpleFooter/simple-footer.tsx +85 -0
- package/dist/content/components/canvas/SimpleHeader/index.tsx +22 -0
- package/dist/content/components/canvas/SimpleHeader/simple-header.tsx +63 -0
- package/dist/content/components/canvas/Spacer/index.tsx +2 -2
- package/dist/content/components/canvas/Spacer/spacer.tsx +5 -2
- package/dist/content/components/canvas/Tab/index.tsx +2 -3
- package/dist/content/components/canvas/Tab/tab.tsx +6 -5
- package/dist/content/components/canvas/Table/index.tsx +2 -2
- package/dist/content/components/canvas/Table/table.tsx +8 -7
- package/dist/content/components/canvas/TableCustomCell/index.tsx +2 -2
- package/dist/content/components/canvas/TableCustomCell/table-custom-cell.tsx +7 -4
- package/dist/content/components/canvas/TableDataCell/index.tsx +2 -2
- package/dist/content/components/canvas/TableDataCell/table-data-cell.tsx +7 -4
- package/dist/content/components/canvas/TableHeaderCell/index.tsx +2 -2
- package/dist/content/components/canvas/TableHeaderCell/table-header-cell.tsx +7 -4
- package/dist/content/components/canvas/TableRow/index.tsx +5 -3
- package/dist/content/components/canvas/TableRow/table-row.tsx +6 -3
- package/dist/content/components/canvas/Tabs/index.tsx +7 -7
- package/dist/content/components/canvas/Tabs/style-utils.ts +12 -11
- package/dist/content/components/canvas/Tabs/tabs.tsx +44 -42
- package/dist/content/components/canvas/Testimonial/default-variant.tsx +7 -7
- package/dist/content/components/canvas/Testimonial/index.tsx +2 -2
- package/dist/content/components/canvas/Testimonial/testimonial.tsx +11 -13
- package/dist/content/components/canvas/Testimonial/with-large-avatar-variant.tsx +7 -7
- package/dist/content/components/canvas/Testimonial/with-overlapping-image-variant.tsx +7 -7
- package/dist/content/components/canvas/Text/index.tsx +2 -3
- package/dist/content/components/canvas/Text/text.tsx +21 -15
- package/dist/content/components/canvas/ThemeSwitcher/index.tsx +2 -2
- package/dist/content/components/canvas/ThemeSwitcher/theme-switcher.tsx +6 -3
- package/dist/content/components/canvas/Video/index.tsx +2 -3
- package/dist/content/components/canvas/Video/placeholder.tsx +1 -1
- package/dist/content/components/canvas/Video/video.tsx +8 -5
- package/dist/content/components/ui/Banner/banner.tsx +47 -0
- package/dist/content/components/ui/Banner/index.tsx +29 -0
- package/dist/content/components/{canvas → ui}/Banner/style-utils.ts +1 -2
- package/dist/content/components/ui/Carousel/index.ts +2 -2
- package/dist/content/components/ui/ComponentEmptyPlaceholder/component-empty-placeholder.tsx +13 -0
- package/dist/content/components/ui/ComponentEmptyPlaceholder/index.ts +6 -0
- package/dist/content/components/ui/Flex/flex.tsx +2 -0
- package/dist/content/components/ui/Flex/index.ts +2 -0
- package/dist/content/components/ui/FlexItem/index.ts +1 -1
- package/dist/content/components/ui/Footer/index.ts +4 -3
- package/dist/content/components/ui/Grid/grid.tsx +2 -0
- package/dist/content/components/ui/Grid/index.ts +3 -0
- package/dist/content/components/ui/GridItem/grid-item.tsx +10 -1
- package/dist/content/components/ui/GridItem/index.ts +3 -0
- package/dist/content/components/ui/IconLabel/icon-label.tsx +2 -0
- package/dist/content/components/ui/IconLabel/index.ts +1 -0
- package/dist/content/components/ui/InlineSVG/index.ts +3 -1
- package/dist/content/components/ui/InlineSVG/inline-svg.tsx +14 -3
- package/dist/content/components/ui/InlineSVG/utils.ts +66 -11
- package/dist/content/components/ui/Rating/index.tsx +1 -1
- package/dist/content/components/ui/Rating/rating.tsx +1 -1
- package/dist/content/types/cskTypes.ts +32 -9
- package/dist/content/utils/assets.ts +3 -18
- package/dist/content/utils/createComponentResolver.ts +7 -6
- package/dist/content/utils/createEmptyPlaceholderResolver.tsx +4 -8
- package/dist/content/utils/getSlotComponents.ts +15 -0
- package/dist/content/utils/routing.ts +60 -15
- package/dist/content/utils/useCookiesConsent.ts +17 -0
- package/dist/content/utils/withFlattenParameters.tsx +17 -0
- package/dist/content/utils/withSlotsDataValue.tsx +34 -0
- package/dist/cookie-consent-5QJUCW2K.mjs +1 -0
- package/dist/countdown-FRQZMVKW.mjs +1 -0
- package/dist/image-gallery-HWCMTJL3.mjs +1 -0
- package/dist/{index-D5cLtaIv.d.mts → index-CSSWgmI5.d.mts} +54 -28
- package/dist/index-CrBZatTs.d.mts +18 -0
- package/dist/index.mjs +3 -3
- package/dist/mobile-KBYNJEBM.mjs +1 -0
- package/dist/modal-4TVVGHWS.mjs +1 -0
- package/dist/modal-E5RMA4EO.mjs +1 -0
- package/dist/navigation-flyout-client-WUN4A34X.mjs +1 -0
- package/dist/navigation-group-client-Y72BOPIH.mjs +1 -0
- package/dist/parameters-B8w5Q6Pp.d.mts +29 -0
- package/dist/tabs-VMFTATOP.mjs +1 -0
- package/dist/theme-switcher-QTX46Z7E.mjs +1 -0
- package/dist/theme-switcher-RGY4D3KL.mjs +1 -0
- package/dist/types/cskTypes.d.mts +27 -9
- package/dist/utils/assets.d.mts +8 -17
- package/dist/utils/assets.mjs +1 -1
- package/dist/utils/createComponentResolver.d.mts +3 -9
- package/dist/utils/createComponentResolver.mjs +1 -1
- package/dist/utils/createEmptyPlaceholderResolver.d.mts +4 -2
- package/dist/utils/createEmptyPlaceholderResolver.mjs +1 -1
- package/dist/utils/getSlotComponents.d.mts +11 -0
- package/dist/utils/getSlotComponents.mjs +1 -0
- package/dist/utils/routing.d.mts +20 -7
- package/dist/utils/routing.mjs +1 -1
- package/dist/utils/sitemap.mjs +1 -1
- package/dist/utils/styling.d.mts +3 -0
- package/dist/utils/styling.mjs +1 -1
- package/dist/utils/withFlattenParameters.d.mts +10 -0
- package/dist/utils/withFlattenParameters.mjs +1 -0
- package/dist/utils/withSlotsDataValue.d.mts +12 -0
- package/dist/utils/withSlotsDataValue.mjs +1 -0
- package/dist/video-VG6ZQCKN.mjs +1 -0
- package/package.json +43 -14
- package/dist/ThemeSwitcher-6Q7LCO4Q.mjs +0 -1
- package/dist/accordion-item-QAVKQEB2.mjs +0 -1
- package/dist/accordion-item-Y4PSNOH4.mjs +0 -1
- package/dist/banner-EYII7V7X.mjs +0 -1
- package/dist/carousel-RZ2DV6QX.mjs +0 -1
- package/dist/carousel-YELQRJVB.mjs +0 -1
- package/dist/chunk-2UV7TQNF.mjs +0 -1
- package/dist/chunk-2YTACEBA.mjs +0 -1
- package/dist/chunk-56OQGKRM.mjs +0 -1
- package/dist/chunk-ABORGLS6.mjs +0 -2
- package/dist/chunk-B2O55EVA.mjs +0 -1
- package/dist/chunk-EOV2LPGC.mjs +0 -1
- package/dist/chunk-EUVKAE6M.mjs +0 -1
- package/dist/chunk-FIN5US3Q.mjs +0 -1
- package/dist/chunk-LZOK42EM.mjs +0 -1
- package/dist/chunk-MSXDLSXH.mjs +0 -1
- package/dist/chunk-RX4IAAQQ.mjs +0 -1
- package/dist/chunk-RYEXR67P.mjs +0 -1
- package/dist/chunk-TCQTXNKT.mjs +0 -1
- package/dist/chunk-TFA6HYP4.mjs +0 -7
- package/dist/chunk-VW2XC3SE.mjs +0 -1
- package/dist/chunk-YEKQJ4YC.mjs +0 -1
- package/dist/content/components/canvas/Banner/types.ts +0 -21
- package/dist/countdown-LYDXJLEE.mjs +0 -1
- package/dist/image-gallery-AMU6FS7N.mjs +0 -1
- package/dist/mobile-JGZBHQC2.mjs +0 -1
- package/dist/modal-43IHAVWB.mjs +0 -1
- package/dist/modal-5FNTFSTN.mjs +0 -1
- package/dist/navigation-flyout-EPIOXRWJ.mjs +0 -1
- package/dist/navigation-group-OCZ35QI2.mjs +0 -1
- package/dist/tabs-J23TEEQ7.mjs +0 -1
- package/dist/theme-switcher-76F2V343.mjs +0 -1
- package/dist/theme-switcher-WO5JIV2W.mjs +0 -1
- package/dist/video-RC2QHJS2.mjs +0 -1
- /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 '
|
|
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 {
|
|
12
|
+
export { default } from './spacer';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { cn } from '@/utils/styling';
|
|
3
|
-
import {
|
|
3
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
4
|
+
import { SpacerParameters, SpacerProps, SpacerVariants } from '.';
|
|
4
5
|
|
|
5
|
-
export const Spacer: FC<SpacerProps> = ({ size,
|
|
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 '
|
|
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
|
|
11
|
+
export { default } from './tab';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { UniformSlot } from '@uniformdev/
|
|
3
|
-
import {
|
|
2
|
+
import { UniformSlot } from '@uniformdev/next-app-router/component';
|
|
3
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
4
|
+
import { TabParameters, TabProps } from '.';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
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 {
|
|
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/
|
|
2
|
+
import { UniformSlot } from '@uniformdev/next-app-router/component';
|
|
3
3
|
import Container from '@/components/ui/Container';
|
|
4
|
-
import {
|
|
4
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
5
|
+
import { TableParameters, TableProps } from '.';
|
|
5
6
|
import { getTableClasses } from './style-utils';
|
|
6
7
|
|
|
7
|
-
|
|
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}
|
|
22
|
+
<UniformSlot slot={slots.tableHead} />
|
|
24
23
|
</thead>
|
|
25
24
|
<tbody>
|
|
26
|
-
<UniformSlot slot={slots.tableBody}
|
|
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 '
|
|
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 {
|
|
19
|
+
export { default } from './table-custom-cell';
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { UniformSlot } from '@uniformdev/
|
|
2
|
+
import { UniformSlot } from '@uniformdev/next-app-router/component';
|
|
3
3
|
import { cn } from '@/utils/styling';
|
|
4
|
-
import {
|
|
4
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
5
|
+
import { AlignmentMap, TableCustomCellParameters, TableCustomCellProps } from '.';
|
|
5
6
|
|
|
6
|
-
|
|
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}
|
|
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 '
|
|
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 {
|
|
7
|
+
export { default } from './table-data-cell';
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { UniformText } from '@uniformdev/
|
|
3
|
-
import {
|
|
2
|
+
import { ComponentParameter, UniformText } from '@uniformdev/next-app-router/component';
|
|
3
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
4
|
+
import { TableDataCellParameters, TableDataCellProps } from '.';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
const TableDataCell: FC<TableDataCellProps & TableDataCellParameters> = ({ parameters, component }) => (
|
|
6
7
|
<td>
|
|
7
|
-
<UniformText component={component}
|
|
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 '
|
|
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 {
|
|
7
|
+
export { default } from './table-header-cell';
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { UniformText } from '@uniformdev/
|
|
3
|
-
import {
|
|
2
|
+
import { ComponentParameter, UniformText } from '@uniformdev/next-app-router/component';
|
|
3
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
4
|
+
import { TableHeaderCellParameters, TableHeaderCellProps } from '.';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
const TableHeaderCell: FC<TableHeaderCellProps & TableHeaderCellParameters> = ({ parameters, component }) => (
|
|
6
7
|
<th>
|
|
7
|
-
<UniformText component={component}
|
|
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 '
|
|
1
|
+
import { ComponentProps } from '@/types/cskTypes';
|
|
2
2
|
|
|
3
|
-
export type
|
|
3
|
+
export type TableRowParameters = unknown;
|
|
4
4
|
|
|
5
|
-
export
|
|
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/
|
|
2
|
+
import { UniformSlot } from '@uniformdev/next-app-router/component';
|
|
3
|
+
import { withFlattenParameters } from '@/utils/withFlattenParameters';
|
|
3
4
|
import { TableRowProps } from '.';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
const TableRow: FC<TableRowProps> = ({ slots }) => (
|
|
6
7
|
<tr>
|
|
7
|
-
<UniformSlot
|
|
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
|
|
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
|
|
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
|
|
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
|
|
16
|
-
|
|
17
|
-
id: string;
|
|
18
|
-
};
|
|
19
|
-
activeTabId: string;
|
|
19
|
+
variant?: string;
|
|
20
|
+
isActiveTab?: boolean;
|
|
20
21
|
};
|
|
21
|
-
export const getButtonClasses = ({ color, variant,
|
|
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}`]:
|
|
25
|
+
[`border-${color}`]: isActiveTab && variant === TabsVariants.Bordered,
|
|
25
26
|
'border-b-2': variant === TabsVariants.Bordered,
|
|
26
|
-
'opacity-60 hover:opacity-100':
|
|
27
|
-
'border-transparent':
|
|
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,
|
|
4
|
-
import { flattenValues } from '@uniformdev/canvas';
|
|
5
|
-
import { UniformSlot, UniformText } from '@uniformdev/
|
|
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 {
|
|
7
|
+
import { TabsParameters, TabsProps } from '.';
|
|
8
8
|
import { getButtonClasses, getButtonContainerClasses } from './style-utils';
|
|
9
9
|
|
|
10
|
-
|
|
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
|
|
22
|
-
|
|
25
|
+
const tabItems = slotData?.tabItems?.map(tabComponent => ({
|
|
26
|
+
...(flattenValues(tabComponent) as { text?: string }),
|
|
27
|
+
id: (tabComponent?._id as string) || '',
|
|
28
|
+
}));
|
|
23
29
|
|
|
24
|
-
const
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}, [
|
|
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
|
-
(
|
|
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
|
|
49
|
+
{tabItems?.map(({ id: currentTabId, [TAB_ITEM_TEXT_PARAMETER_ID]: currentTabText }) => (
|
|
50
50
|
<button
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
id={currentTabId}
|
|
52
|
+
key={currentTabId}
|
|
53
|
+
onClick={handleTabClick}
|
|
54
|
+
className={getButtonClasses({ color, variant, isActiveTab: currentTabId === activeTabId })}
|
|
54
55
|
>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
68
|
-
{({ child,
|
|
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 {
|
|
3
|
+
import { TestimonialParameters } from '.';
|
|
4
4
|
|
|
5
5
|
type WithLargeAvatarVariantProps = Pick<
|
|
6
|
-
|
|
6
|
+
TestimonialParameters,
|
|
7
7
|
'backgroundColor' | 'spacing' | 'border' | 'fluidContent' | 'height'
|
|
8
8
|
> & {
|
|
9
|
-
testimonialPrimaryImage:
|
|
10
|
-
testimonialContent:
|
|
11
|
-
testimonialAuthor:
|
|
12
|
-
testimonialSecondaryImage:
|
|
9
|
+
testimonialPrimaryImage: ReactNode;
|
|
10
|
+
testimonialContent: ReactNode;
|
|
11
|
+
testimonialAuthor: ReactNode;
|
|
12
|
+
testimonialSecondaryImage: ReactNode;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export const DefaultVariant: FC<WithLargeAvatarVariantProps> = ({
|