@hanzo/ui 4.5.2 → 4.5.4
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/dist/mcp/enhanced-server.js +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/registry/api.js +1 -2
- package/dist/registry/index.d.ts +348 -4
- package/package.json +5 -5
- package/tsconfig.json +9 -4
- package/dist/blocks/components/accordian-block.d.ts +0 -4
- package/dist/blocks/components/accordian-block.jsx +0 -25
- package/dist/blocks/components/block-component-props.d.ts +0 -7
- package/dist/blocks/components/block-component-props.js +0 -1
- package/dist/blocks/components/bullet-cards-block.d.ts +0 -4
- package/dist/blocks/components/bullet-cards-block.jsx +0 -25
- package/dist/blocks/components/card-block/index.d.ts +0 -6
- package/dist/blocks/components/card-block/index.jsx +0 -87
- package/dist/blocks/components/card-block/link-out-button.d.ts +0 -6
- package/dist/blocks/components/card-block/link-out-button.jsx +0 -4
- package/dist/blocks/components/card-block/util.d.ts +0 -4
- package/dist/blocks/components/card-block/util.js +0 -6
- package/dist/blocks/components/carte-blanche-block/index.d.ts +0 -4
- package/dist/blocks/components/carte-blanche-block/index.jsx +0 -82
- package/dist/blocks/components/carte-blanche-block/variant-content-left.d.ts +0 -10
- package/dist/blocks/components/carte-blanche-block/variant-content-left.jsx +0 -23
- package/dist/blocks/components/content.d.ts +0 -10
- package/dist/blocks/components/content.jsx +0 -47
- package/dist/blocks/components/cta-block.d.ts +0 -12
- package/dist/blocks/components/cta-block.jsx +0 -69
- package/dist/blocks/components/enh-heading-block.d.ts +0 -7
- package/dist/blocks/components/enh-heading-block.jsx +0 -142
- package/dist/blocks/components/grid-block/grid-block-mutator.d.ts +0 -5
- package/dist/blocks/components/grid-block/grid-block-mutator.js +0 -1
- package/dist/blocks/components/grid-block/index.d.ts +0 -9
- package/dist/blocks/components/grid-block/index.jsx +0 -56
- package/dist/blocks/components/grid-block/mutator-registry.d.ts +0 -3
- package/dist/blocks/components/grid-block/mutator-registry.js +0 -5
- package/dist/blocks/components/grid-block/table-borders.mutator.d.ts +0 -3
- package/dist/blocks/components/grid-block/table-borders.mutator.js +0 -36
- package/dist/blocks/components/group-block.d.ts +0 -7
- package/dist/blocks/components/group-block.jsx +0 -61
- package/dist/blocks/components/heading-block.d.ts +0 -4
- package/dist/blocks/components/heading-block.jsx +0 -99
- package/dist/blocks/components/image-block.d.ts +0 -7
- package/dist/blocks/components/image-block.jsx +0 -69
- package/dist/blocks/components/index.d.ts +0 -14
- package/dist/blocks/components/index.js +0 -13
- package/dist/blocks/components/screenful-block/content.d.ts +0 -8
- package/dist/blocks/components/screenful-block/content.jsx +0 -71
- package/dist/blocks/components/screenful-block/index.d.ts +0 -12
- package/dist/blocks/components/screenful-block/index.jsx +0 -57
- package/dist/blocks/components/screenful-block/poster-background.d.ts +0 -7
- package/dist/blocks/components/screenful-block/poster-background.jsx +0 -14
- package/dist/blocks/components/screenful-block/video-background.d.ts +0 -8
- package/dist/blocks/components/screenful-block/video-background.jsx +0 -20
- package/dist/blocks/components/space-block.d.ts +0 -4
- package/dist/blocks/components/space-block.jsx +0 -42
- package/dist/blocks/components/video-block.d.ts +0 -9
- package/dist/blocks/components/video-block.jsx +0 -83
- package/dist/blocks/def/accordian-block.d.ts +0 -10
- package/dist/blocks/def/accordian-block.js +0 -2
- package/dist/blocks/def/block.d.ts +0 -4
- package/dist/blocks/def/block.js +0 -1
- package/dist/blocks/def/bullet-cards-block.d.ts +0 -17
- package/dist/blocks/def/bullet-cards-block.js +0 -1
- package/dist/blocks/def/card-block.d.ts +0 -17
- package/dist/blocks/def/card-block.js +0 -2
- package/dist/blocks/def/carte-blanche-block.d.ts +0 -12
- package/dist/blocks/def/carte-blanche-block.js +0 -1
- package/dist/blocks/def/cta-block.d.ts +0 -8
- package/dist/blocks/def/cta-block.js +0 -1
- package/dist/blocks/def/element-block.d.ts +0 -7
- package/dist/blocks/def/element-block.js +0 -2
- package/dist/blocks/def/enh-heading-block.d.ts +0 -22
- package/dist/blocks/def/enh-heading-block.js +0 -1
- package/dist/blocks/def/grid-block.d.ts +0 -12
- package/dist/blocks/def/grid-block.js +0 -1
- package/dist/blocks/def/group-block.d.ts +0 -7
- package/dist/blocks/def/group-block.js +0 -1
- package/dist/blocks/def/heading-block.d.ts +0 -11
- package/dist/blocks/def/heading-block.js +0 -1
- package/dist/blocks/def/image-block.d.ts +0 -26
- package/dist/blocks/def/image-block.js +0 -1
- package/dist/blocks/def/index.d.ts +0 -17
- package/dist/blocks/def/index.js +0 -2
- package/dist/blocks/def/screenful-block.d.ts +0 -41
- package/dist/blocks/def/screenful-block.js +0 -1
- package/dist/blocks/def/space-block.d.ts +0 -47
- package/dist/blocks/def/space-block.js +0 -8
- package/dist/blocks/def/video-block.d.ts +0 -5
- package/dist/blocks/def/video-block.js +0 -1
- package/dist/blocks/index.d.ts +0 -2
- package/dist/blocks/index.js +0 -2
- package/dist/primitives/accordion.d.ts +0 -10
- package/dist/primitives/accordion.jsx +0 -21
- package/dist/primitives/action-button.d.ts +0 -9
- package/dist/primitives/action-button.jsx +0 -16
- package/dist/primitives/apply-typography.d.ts +0 -7
- package/dist/primitives/apply-typography.jsx +0 -38
- package/dist/primitives/aspect-ratio.d.ts +0 -3
- package/dist/primitives/aspect-ratio.jsx +0 -4
- package/dist/primitives/avatar.d.ts +0 -6
- package/dist/primitives/avatar.jsx +0 -11
- package/dist/primitives/badge.d.ts +0 -9
- package/dist/primitives/badge.jsx +0 -18
- package/dist/primitives/breadcrumb.d.ts +0 -19
- package/dist/primitives/breadcrumb.jsx +0 -27
- package/dist/primitives/breakpoint-indicator.d.ts +0 -3
- package/dist/primitives/breakpoint-indicator.jsx +0 -14
- package/dist/primitives/button.d.ts +0 -12
- package/dist/primitives/button.jsx +0 -55
- package/dist/primitives/calendar.d.ts +0 -8
- package/dist/primitives/calendar.jsx +0 -40
- package/dist/primitives/card.d.ts +0 -8
- package/dist/primitives/card.jsx +0 -18
- package/dist/primitives/carousel.d.ts +0 -18
- package/dist/primitives/carousel.jsx +0 -106
- package/dist/primitives/checkbox.d.ts +0 -4
- package/dist/primitives/checkbox.jsx +0 -15
- package/dist/primitives/combobox.d.ts +0 -41
- package/dist/primitives/combobox.jsx +0 -77
- package/dist/primitives/command.d.ts +0 -17
- package/dist/primitives/command.jsx +0 -38
- package/dist/primitives/context-menu.d.ts +0 -27
- package/dist/primitives/context-menu.jsx +0 -57
- package/dist/primitives/dialog-video-controller.d.ts +0 -3
- package/dist/primitives/dialog-video-controller.jsx +0 -24
- package/dist/primitives/dialog.d.ts +0 -28
- package/dist/primitives/dialog.jsx +0 -37
- package/dist/primitives/drawer.d.ts +0 -29
- package/dist/primitives/drawer.jsx +0 -34
- package/dist/primitives/form.d.ts +0 -12
- package/dist/primitives/form.jsx +0 -69
- package/dist/primitives/icons/github.d.ts +0 -4
- package/dist/primitives/icons/github.jsx +0 -6
- package/dist/primitives/icons/index.d.ts +0 -4
- package/dist/primitives/icons/index.js +0 -4
- package/dist/primitives/icons/youtube-logo.d.ts +0 -4
- package/dist/primitives/icons/youtube-logo.jsx +0 -39
- package/dist/primitives/index-common.d.ts +0 -47
- package/dist/primitives/index-common.js +0 -46
- package/dist/primitives/index-next.d.ts +0 -2
- package/dist/primitives/index-next.js +0 -2
- package/dist/primitives/input-otp.d.ts +0 -7
- package/dist/primitives/input-otp.jsx +0 -24
- package/dist/primitives/input.d.ts +0 -5
- package/dist/primitives/input.jsx +0 -11
- package/dist/primitives/label.d.ts +0 -5
- package/dist/primitives/label.jsx +0 -11
- package/dist/primitives/list-adaptor.d.ts +0 -9
- package/dist/primitives/list-adaptor.js +0 -1
- package/dist/primitives/list-box.d.ts +0 -10
- package/dist/primitives/list-box.jsx +0 -14
- package/dist/primitives/loading-spinner.d.ts +0 -5
- package/dist/primitives/loading-spinner.jsx +0 -8
- package/dist/primitives/navigation-menu.d.ts +0 -12
- package/dist/primitives/navigation-menu.jsx +0 -38
- package/dist/primitives/next/image.d.ts +0 -11
- package/dist/primitives/next/image.jsx +0 -42
- package/dist/primitives/next/index.d.ts +0 -7
- package/dist/primitives/next/index.js +0 -7
- package/dist/primitives/next/inline-icon.d.ts +0 -13
- package/dist/primitives/next/inline-icon.jsx +0 -15
- package/dist/primitives/next/link-element.d.ts +0 -23
- package/dist/primitives/next/link-element.jsx +0 -56
- package/dist/primitives/next/mdx-link.d.ts +0 -3
- package/dist/primitives/next/mdx-link.jsx +0 -12
- package/dist/primitives/next/media-stack.d.ts +0 -8
- package/dist/primitives/next/media-stack.jsx +0 -28
- package/dist/primitives/next/nav-items.d.ts +0 -10
- package/dist/primitives/next/nav-items.jsx +0 -24
- package/dist/primitives/next/youtube-embed.d.ts +0 -11
- package/dist/primitives/next/youtube-embed.jsx +0 -23
- package/dist/primitives/popover.d.ts +0 -9
- package/dist/primitives/popover.jsx +0 -18
- package/dist/primitives/progress.d.ts +0 -4
- package/dist/primitives/progress.jsx +0 -9
- package/dist/primitives/radio-group.d.ts +0 -7
- package/dist/primitives/radio-group.jsx +0 -18
- package/dist/primitives/scroll-area.d.ts +0 -5
- package/dist/primitives/scroll-area.jsx +0 -19
- package/dist/primitives/select.d.ts +0 -13
- package/dist/primitives/select.jsx +0 -62
- package/dist/primitives/separator.d.ts +0 -4
- package/dist/primitives/separator.jsx +0 -7
- package/dist/primitives/sheet.d.ts +0 -30
- package/dist/primitives/sheet.jsx +0 -56
- package/dist/primitives/skeleton.d.ts +0 -4
- package/dist/primitives/skeleton.jsx +0 -3
- package/dist/primitives/slider.d.ts +0 -9
- package/dist/primitives/slider.jsx +0 -30
- package/dist/primitives/sonner.d.ts +0 -5
- package/dist/primitives/sonner.jsx +0 -16
- package/dist/primitives/step-indicator.d.ts +0 -9
- package/dist/primitives/step-indicator.jsx +0 -23
- package/dist/primitives/switch.d.ts +0 -6
- package/dist/primitives/switch.jsx +0 -14
- package/dist/primitives/table.d.ts +0 -10
- package/dist/primitives/table.jsx +0 -21
- package/dist/primitives/tabs.d.ts +0 -7
- package/dist/primitives/tabs.jsx +0 -18
- package/dist/primitives/text-area.d.ts +0 -5
- package/dist/primitives/text-area.jsx +0 -9
- package/dist/primitives/toggle-group.d.ts +0 -14
- package/dist/primitives/toggle-group.jsx +0 -28
- package/dist/primitives/toggle.d.ts +0 -14
- package/dist/primitives/toggle.jsx +0 -52
- package/dist/primitives/tooltip.d.ts +0 -11
- package/dist/primitives/tooltip.jsx +0 -18
- package/dist/primitives/video-player.d.ts +0 -6
- package/dist/primitives/video-player.jsx +0 -8
- package/dist/style/theme-provider.d.ts +0 -4
- package/dist/style/theme-provider.jsx +0 -11
- package/dist/tailwind/fontFamily.tailwind.d.ts +0 -8
- package/dist/tailwind/fontFamily.tailwind.js +0 -7
- package/dist/tailwind/fontSize.tailwind.d.ts +0 -36
- package/dist/tailwind/fontSize.tailwind.js +0 -13
- package/dist/tailwind/index.d.ts +0 -3
- package/dist/tailwind/index.js +0 -2
- package/dist/tailwind/screens.tailwind.d.ts +0 -9
- package/dist/tailwind/screens.tailwind.js +0 -8
- package/dist/tailwind/tw-font-desc.d.ts +0 -6
- package/dist/tailwind/tw-font-desc.js +0 -6
- package/dist/types/animation-def.d.ts +0 -2
- package/dist/types/animation-def.js +0 -1
- package/dist/types/breakpoints.d.ts +0 -4
- package/dist/types/breakpoints.js +0 -4
- package/dist/types/bullet-item.d.ts +0 -6
- package/dist/types/bullet-item.js +0 -2
- package/dist/types/button-def.d.ts +0 -29
- package/dist/types/button-def.js +0 -2
- package/dist/types/dimensions.d.ts +0 -5
- package/dist/types/dimensions.js +0 -1
- package/dist/types/grid-def.d.ts +0 -36
- package/dist/types/grid-def.js +0 -33
- package/dist/types/image-def.d.ts +0 -27
- package/dist/types/image-def.js +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.js +0 -2
- package/dist/types/link-def.d.ts +0 -44
- package/dist/types/link-def.js +0 -1
- package/dist/types/media-stack-def.d.ts +0 -25
- package/dist/types/media-stack-def.js +0 -1
- package/dist/types/t-shirt-size.d.ts +0 -2
- package/dist/types/t-shirt-size.js +0 -1
- package/dist/types/tshirt-dimensions.d.ts +0 -12
- package/dist/types/tshirt-dimensions.js +0 -1
- package/dist/types/video-def.d.ts +0 -9
- package/dist/types/video-def.js +0 -1
- package/dist/util/format-and-abbreviate-as-currency.d.ts +0 -11
- package/dist/util/format-and-abbreviate-as-currency.js +0 -91
- package/dist/util/format-to-max-char.d.ts +0 -5
- package/dist/util/format-to-max-char.js +0 -57
- package/dist/util/index-client.d.ts +0 -2
- package/dist/util/index-client.js +0 -3
- package/dist/util/index.d.ts +0 -17
- package/dist/util/index.js +0 -41
- package/dist/util/number-abbreviate.d.ts +0 -9
- package/dist/util/number-abbreviate.js +0 -30
- package/dist/util/specifier.d.ts +0 -7
- package/dist/util/specifier.js +0 -31
- package/dist/util/spread-to-transform.d.ts +0 -7
- package/dist/util/spread-to-transform.js +0 -18
- package/dist/util/step-animation.d.ts +0 -5
- package/dist/util/step-animation.js +0 -60
- package/dist/util/two-way-map.d.ts +0 -8
- package/dist/util/two-way-map.js +0 -16
- /package/{mcp → src/mcp}/README.md +0 -0
- /package/{mcp → src/mcp}/enhanced-server.ts +0 -0
- /package/{mcp → src/mcp}/index.ts +0 -0
- /package/{mcp → src/mcp}/package.json +0 -0
- /package/{registry → src/registry}/api.ts +0 -0
- /package/{registry → src/registry}/index.ts +0 -0
- /package/{registry → src/registry}/package.json +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ApplyTypography } from '../../primitives/index-common';
|
|
3
|
-
const HeadingBlockComponent = ({ block, className = '' }) => {
|
|
4
|
-
if (block.blockType !== 'heading') {
|
|
5
|
-
return <>heading block required</>;
|
|
6
|
-
}
|
|
7
|
-
const heading = block;
|
|
8
|
-
let Tag;
|
|
9
|
-
let BylineTag = undefined;
|
|
10
|
-
switch (heading.bylineLevel) {
|
|
11
|
-
case 0:
|
|
12
|
-
{
|
|
13
|
-
BylineTag = 'p';
|
|
14
|
-
}
|
|
15
|
-
break;
|
|
16
|
-
case 1:
|
|
17
|
-
{
|
|
18
|
-
BylineTag = 'h1';
|
|
19
|
-
}
|
|
20
|
-
break;
|
|
21
|
-
case 2:
|
|
22
|
-
{
|
|
23
|
-
BylineTag = 'h2';
|
|
24
|
-
}
|
|
25
|
-
break;
|
|
26
|
-
case 3:
|
|
27
|
-
{
|
|
28
|
-
BylineTag = 'h3';
|
|
29
|
-
}
|
|
30
|
-
break;
|
|
31
|
-
case 4:
|
|
32
|
-
{
|
|
33
|
-
BylineTag = 'h4';
|
|
34
|
-
}
|
|
35
|
-
break;
|
|
36
|
-
case 5:
|
|
37
|
-
{
|
|
38
|
-
BylineTag = 'h5';
|
|
39
|
-
}
|
|
40
|
-
break;
|
|
41
|
-
case 6:
|
|
42
|
-
{
|
|
43
|
-
BylineTag = 'h6';
|
|
44
|
-
}
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
// bylineLevel default is two levels below the main heading
|
|
48
|
-
switch (heading.level) {
|
|
49
|
-
case 0:
|
|
50
|
-
{
|
|
51
|
-
Tag = 'p';
|
|
52
|
-
BylineTag = BylineTag ?? 'p';
|
|
53
|
-
}
|
|
54
|
-
break;
|
|
55
|
-
case 1:
|
|
56
|
-
{
|
|
57
|
-
Tag = 'h1';
|
|
58
|
-
BylineTag = BylineTag ?? 'h3';
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
case 2:
|
|
62
|
-
{
|
|
63
|
-
Tag = 'h2';
|
|
64
|
-
BylineTag = BylineTag ?? 'h4';
|
|
65
|
-
}
|
|
66
|
-
break;
|
|
67
|
-
// 3 is default
|
|
68
|
-
case 4:
|
|
69
|
-
{
|
|
70
|
-
Tag = 'h4';
|
|
71
|
-
BylineTag = BylineTag ?? 'h6';
|
|
72
|
-
}
|
|
73
|
-
break;
|
|
74
|
-
case 5:
|
|
75
|
-
{
|
|
76
|
-
Tag = 'h5';
|
|
77
|
-
BylineTag = BylineTag ?? 'p';
|
|
78
|
-
}
|
|
79
|
-
break;
|
|
80
|
-
case 6:
|
|
81
|
-
{
|
|
82
|
-
Tag = 'h6';
|
|
83
|
-
BylineTag = BylineTag ?? 'p';
|
|
84
|
-
}
|
|
85
|
-
break;
|
|
86
|
-
default: {
|
|
87
|
-
Tag = 'h3';
|
|
88
|
-
BylineTag = BylineTag ?? 'h5';
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// Had to do this way, since tw typo plugin does support overrding typo styling wiithout .not-typography
|
|
92
|
-
return (<ApplyTypography className={className}>
|
|
93
|
-
<Tag>{heading.heading}</Tag>
|
|
94
|
-
{heading.spaceBetween && <div className={'w-[1px] ' + `h-${heading.spaceBetween}`}/>}
|
|
95
|
-
{heading.byline && (<BylineTag>{heading.byline}</BylineTag>)}
|
|
96
|
-
{heading.spaceAfter && <div className={'w-[1px] ' + `h-${heading.spaceAfter}`}/>}
|
|
97
|
-
</ApplyTypography>);
|
|
98
|
-
};
|
|
99
|
-
export default HeadingBlockComponent;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Dimensions } from '../../types';
|
|
3
|
-
import type BlockComponentProps from './block-component-props';
|
|
4
|
-
declare const ImageBlockComponent: React.FC<BlockComponentProps & {
|
|
5
|
-
constraintTo?: Dimensions;
|
|
6
|
-
}>;
|
|
7
|
-
export default ImageBlockComponent;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Image from 'next/image';
|
|
3
|
-
import { constrain, containsToken, cn } from '../../util';
|
|
4
|
-
const ImageBlockComponent = ({ block, className = '', agent, constraintTo }) => {
|
|
5
|
-
if (block.blockType !== 'image') {
|
|
6
|
-
return <>image block required</>;
|
|
7
|
-
}
|
|
8
|
-
const { src, alt, dim, props, sizes, fullWidthOnMobile, svgFillClass, specifiers } = block;
|
|
9
|
-
const specified = (s) => (containsToken(specifiers, s));
|
|
10
|
-
const toSpread = {};
|
|
11
|
-
if (props?.fill === undefined) {
|
|
12
|
-
const resolved = constraintTo ? constrain(dim, constraintTo) : dim;
|
|
13
|
-
toSpread.width = resolved.w;
|
|
14
|
-
toSpread.height = resolved.h;
|
|
15
|
-
}
|
|
16
|
-
let _alt;
|
|
17
|
-
if (alt) {
|
|
18
|
-
_alt = alt;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
const tokens = src.split('/');
|
|
22
|
-
// Something remotely meaningful
|
|
23
|
-
_alt = (tokens.length > 0) ? tokens[tokens.length] : src;
|
|
24
|
-
}
|
|
25
|
-
const _svgFillClass = svgFillClass ?? '';
|
|
26
|
-
// TODO: use two elements with 'md:hidden' for 3/4 size
|
|
27
|
-
// https://nextjs.org/docs/app/building-your-application/optimizing/images#responsive
|
|
28
|
-
if (agent === 'phone') {
|
|
29
|
-
if (specified('mobile-full-width') || fullWidthOnMobile) {
|
|
30
|
-
const toSpread = {
|
|
31
|
-
style: {
|
|
32
|
-
width: '100%',
|
|
33
|
-
height: 'auto',
|
|
34
|
-
maxWidth: '420px'
|
|
35
|
-
},
|
|
36
|
-
sizes: '100vw',
|
|
37
|
-
};
|
|
38
|
-
// only for aspect ratio and to satisfy parser
|
|
39
|
-
toSpread.width = dim.w;
|
|
40
|
-
toSpread.height = dim.h;
|
|
41
|
-
return (<div className='flex flex-col items-center w-full'>
|
|
42
|
-
<Image src={src} alt={_alt} {...toSpread} className={cn(_svgFillClass, className)}/>
|
|
43
|
-
</div>);
|
|
44
|
-
}
|
|
45
|
-
// TODO use constraint
|
|
46
|
-
else if (!specified('mobile-no-scale')) {
|
|
47
|
-
if (props?.style?.width === 'auto' && typeof props.style.height === 'number') {
|
|
48
|
-
props.style.height = props.style.height * .75;
|
|
49
|
-
}
|
|
50
|
-
else if (props?.style?.height === 'auto' && typeof props?.style?.width === 'number') {
|
|
51
|
-
props.style.width = props.style.width * .75;
|
|
52
|
-
}
|
|
53
|
-
else if (props?.style && !props?.style.width) {
|
|
54
|
-
toSpread.width = dim.w * .75;
|
|
55
|
-
toSpread.height = dim.h * .75;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (sizes) {
|
|
60
|
-
toSpread.sizes = sizes;
|
|
61
|
-
}
|
|
62
|
-
const right = containsToken(specifiers, 'right');
|
|
63
|
-
const center = containsToken(specifiers, 'center');
|
|
64
|
-
const alignSelfClx = right ? 'self-end' : (center ? 'self-center' : 'self-start');
|
|
65
|
-
return (props?.fill) ? (<div className='relative w-full h-full'>
|
|
66
|
-
<Image src={src} alt={_alt} {...toSpread} {...props} className={cn(_svgFillClass, 'max-w-[70vw] mx-auto', className)}/>
|
|
67
|
-
</div>) : (<Image src={src} alt={_alt} {...toSpread} {...props} className={cn(alignSelfClx, _svgFillClass, 'max-w-[70vw] mx-auto', className)}/>);
|
|
68
|
-
};
|
|
69
|
-
export default ImageBlockComponent;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import AccordianBlock from './accordian-block';
|
|
2
|
-
import type BlockComponentProps from './block-component-props';
|
|
3
|
-
import Blocks from './content';
|
|
4
|
-
import CardBlock from './card-block';
|
|
5
|
-
import { default as ContentComponent, registerBlockType } from './content';
|
|
6
|
-
import CTABlock from './cta-block';
|
|
7
|
-
import EnhHeadingBlock from './enh-heading-block';
|
|
8
|
-
import GroupBlock from './group-block';
|
|
9
|
-
import HeadingBlock from './heading-block';
|
|
10
|
-
import ImageBlock from './image-block';
|
|
11
|
-
import SpaceBlock from './space-block';
|
|
12
|
-
import ScreenfulBlock from './screenful-block';
|
|
13
|
-
import VideoBlock from './video-block';
|
|
14
|
-
export { AccordianBlock as AccordianBlockComponent, type BlockComponentProps, Blocks as BlocksComponent, CardBlock as CardBlockComponent, ContentComponent, CTABlock as CTABlockComponent, EnhHeadingBlock as EnhHeadingBlockComponent, GroupBlock as GroupBlockComponent, HeadingBlock as HeadingBlockComponent, ImageBlock as ImageBlockComponent, registerBlockType, SpaceBlock as SpaceBlockComponent, ScreenfulBlock as ScreenfulBlockComponent, VideoBlock as VideoBlockComponent, };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import AccordianBlock from './accordian-block';
|
|
2
|
-
import Blocks from './content';
|
|
3
|
-
import CardBlock from './card-block';
|
|
4
|
-
import { default as ContentComponent, registerBlockType } from './content';
|
|
5
|
-
import CTABlock from './cta-block';
|
|
6
|
-
import EnhHeadingBlock from './enh-heading-block';
|
|
7
|
-
import GroupBlock from './group-block';
|
|
8
|
-
import HeadingBlock from './heading-block';
|
|
9
|
-
import ImageBlock from './image-block';
|
|
10
|
-
import SpaceBlock from './space-block';
|
|
11
|
-
import ScreenfulBlock from './screenful-block';
|
|
12
|
-
import VideoBlock from './video-block';
|
|
13
|
-
export { AccordianBlock as AccordianBlockComponent, Blocks as BlocksComponent, CardBlock as CardBlockComponent, ContentComponent, CTABlock as CTABlockComponent, EnhHeadingBlock as EnhHeadingBlockComponent, GroupBlock as GroupBlockComponent, HeadingBlock as HeadingBlockComponent, ImageBlock as ImageBlockComponent, registerBlockType, SpaceBlock as SpaceBlockComponent, ScreenfulBlock as ScreenfulBlockComponent, VideoBlock as VideoBlockComponent, };
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import React, {} from 'react';
|
|
2
|
-
import { containsToken, cn } from '../../../util';
|
|
3
|
-
import ContentComponent from '../content';
|
|
4
|
-
const ContentColumn = ({ blocks, specifiers, agent, className = '', }) => {
|
|
5
|
-
const specified = (s) => (containsToken(specifiers, s));
|
|
6
|
-
let modifiers = '';
|
|
7
|
-
if (agent !== 'phone') {
|
|
8
|
-
if (specified('right')) {
|
|
9
|
-
modifiers += 'items-end ';
|
|
10
|
-
}
|
|
11
|
-
else if (specified('center')) {
|
|
12
|
-
modifiers += 'items-center ';
|
|
13
|
-
}
|
|
14
|
-
// default to left
|
|
15
|
-
else {
|
|
16
|
-
modifiers += 'items-start ';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
// default to left
|
|
20
|
-
else {
|
|
21
|
-
modifiers += 'items-start ';
|
|
22
|
-
}
|
|
23
|
-
if (agent !== 'phone') {
|
|
24
|
-
if (specified('bottom')) {
|
|
25
|
-
modifiers += 'justify-end ';
|
|
26
|
-
}
|
|
27
|
-
else if (specified('vert-center')) {
|
|
28
|
-
modifiers += 'justify-center ';
|
|
29
|
-
}
|
|
30
|
-
// default to top
|
|
31
|
-
else {
|
|
32
|
-
modifiers += 'justify-start ';
|
|
33
|
-
}
|
|
34
|
-
// right aligned text looks shitty on mobile
|
|
35
|
-
if (specified('text-align-right')) {
|
|
36
|
-
modifiers += 'text-right ';
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
modifiers += 'text-left ';
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
if (specified('mobile-vert-center')) {
|
|
44
|
-
modifiers += 'justify-center ';
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
modifiers += 'justify-start ';
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (agent === 'phone' && specified('mobile-center-headings')) {
|
|
51
|
-
modifiers += 'typography-headings:text-center ';
|
|
52
|
-
}
|
|
53
|
-
/* ContentComponent's parent div needs h-full class in order for vertical alignment with flexbox to work.
|
|
54
|
-
* This affects specifiers: bottom, vert-center, mobile-vert-center
|
|
55
|
-
*/
|
|
56
|
-
return (<div className={cn('flex flex-col justify-center h-full', modifiers, className)}>
|
|
57
|
-
<ContentComponent blocks={blocks} agent={agent}/>
|
|
58
|
-
</div>);
|
|
59
|
-
};
|
|
60
|
-
const Content = ({ block: b, agent, className = '', }) => {
|
|
61
|
-
// We need to set h-full when we have more than 1 column too, so the grid takes full height - Firefox and Safari fix.
|
|
62
|
-
const layoutClx = 'flex flex-col gap-2 sm:gap-4 h-full ' + ((agent !== 'phone') ? ('md:grid md:gap-8 ' + `md:grid-cols-${b.contentColumns.length} `) : '');
|
|
63
|
-
const orderclx = (columnIndex) => {
|
|
64
|
-
const orderIndex = b.mobileOrder?.indexOf(columnIndex);
|
|
65
|
-
return (orderIndex && orderIndex >= 0) ? `order-${orderIndex} md:order-none` : ''; // one-based in flexbox slec
|
|
66
|
-
};
|
|
67
|
-
return b.contentColumns.length == 1 ? (<ContentColumn blocks={b.contentColumns[0]} specifiers={b.columnSpecifiers?.[0]} agent={agent} className={cn(className)}/>) : (<div className={cn(layoutClx, className)}>
|
|
68
|
-
{b.contentColumns.map((column, index) => (<ContentColumn blocks={column} specifiers={b.columnSpecifiers?.[index]} agent={agent} className={orderclx(index)} key={index}/>))}
|
|
69
|
-
</div>);
|
|
70
|
-
};
|
|
71
|
-
export default Content;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Block } from '../../def';
|
|
3
|
-
declare const ScreenfulComponent: React.FC<{
|
|
4
|
-
block: Block;
|
|
5
|
-
agent?: string;
|
|
6
|
-
initialInView?: boolean;
|
|
7
|
-
snapTile?: boolean;
|
|
8
|
-
clx?: string;
|
|
9
|
-
contentClx?: string;
|
|
10
|
-
bottom?: React.ReactNode;
|
|
11
|
-
}>;
|
|
12
|
-
export default ScreenfulComponent;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import dynamic from 'next/dynamic';
|
|
4
|
-
import { containsToken, cn } from '../../../util';
|
|
5
|
-
import { ApplyTypography } from '../../../primitives/index-common';
|
|
6
|
-
import Poster from './poster-background';
|
|
7
|
-
import Content from './content';
|
|
8
|
-
const Video = dynamic(() => (import('./video-background')), { ssr: false, loading: () => (<></>) });
|
|
9
|
-
const ScreenfulComponent = ({ block, agent, initialInView = false, snapTile = false, clx = '', contentClx = '', bottom }) => {
|
|
10
|
-
if (block.blockType !== 'screenful') {
|
|
11
|
-
return <>screenful block required</>;
|
|
12
|
-
}
|
|
13
|
-
const b = block;
|
|
14
|
-
const hasBannerVideo = () => (!!b.banner && (typeof b.banner === 'object'));
|
|
15
|
-
const tileHeight = (agent === 'desktop') ? 'h-full ' : 'h-[100svh] ';
|
|
16
|
-
const specified = (s) => (containsToken(b.specifiers, s));
|
|
17
|
-
const narrowGutters = specified('narrow-gutters'); // eg, for a table object that is large
|
|
18
|
-
const noGutters = specified('no-gutters');
|
|
19
|
-
const fullScreenWidth = specified('full-screen-width');
|
|
20
|
-
const vertCenter = specified('vert-center'); // at the main level, it seems only useful w one column
|
|
21
|
-
const oneColumn = b.contentColumns.length === 1;
|
|
22
|
-
// content wrapper clx:
|
|
23
|
-
// [
|
|
24
|
-
// positioning,
|
|
25
|
-
// p&m,
|
|
26
|
-
// p&m-modifiers
|
|
27
|
-
// ]
|
|
28
|
-
const cwclx = [
|
|
29
|
-
'xl:mx-auto overflow-y-hidden h-full',
|
|
30
|
-
fullScreenWidth ? '' : 'max-w-screen-xl',
|
|
31
|
-
// desktop header: 80px / pt-20
|
|
32
|
-
// mobile header: 44px / pt-11
|
|
33
|
-
narrowGutters ?
|
|
34
|
-
'px-6 lg:px-8 2xl:px-2 pb-4 lg:pb-6 xl:pb-8 ' + (snapTile ? 'pt-15 md:pt-26 lg:pt-28 ' : '') // otherwise assume there is a Main
|
|
35
|
-
:
|
|
36
|
-
noGutters ?
|
|
37
|
-
'px-0 pb-0 ' + (snapTile ? 'pt-11 lg:pt-20 ' : '') // otherwise assume there is a Main
|
|
38
|
-
:
|
|
39
|
-
'px-[8vw] xl:px-[1vw] pb-[8vh] pt-[calc(44px+4vh)] md:pt-[calc(80px+6vh)] ',
|
|
40
|
-
(agent && agent !== 'desktop') ? 'pt-15 sm:pt-17 pb-0 px-3 sm:px-8' : ''
|
|
41
|
-
];
|
|
42
|
-
return (<section {...((b.anchorId) ? { id: b.anchorId } : {})} className={cn(snapTile ? 'snap-start snap-always h-[100vh]' : 'min-h-screen', bottom ? 'flex flex-col' : '', clx)}>
|
|
43
|
-
<ApplyTypography className={cn('w-full flex flex-row justify-center self-stretch', snapTile ? tileHeight : '', bottom ? 'grow' : '')}>
|
|
44
|
-
<Poster banner={b.banner}>
|
|
45
|
-
{hasBannerVideo() && (<Video block={b.banner} className='absolute top-0 left-0 bottom-0 right-0' initialInView={initialInView}/>)}
|
|
46
|
-
<div className={cn(...cwclx, snapTile ? 'absolute left-0 right-0 top-0 bottom-0 ' : 'flex min-h-screen w-full', contentClx,
|
|
47
|
-
// TODO :aa py-0 breaks padding for header! Investigate why I would have done this!
|
|
48
|
-
vertCenter ? 'self-center ' + (oneColumn ? '!py-0' : '') : '')}>
|
|
49
|
-
<Content block={b} agent={agent} className='w-full'/>
|
|
50
|
-
{b.footer}
|
|
51
|
-
</div>
|
|
52
|
-
</Poster>
|
|
53
|
-
</ApplyTypography>
|
|
54
|
-
{bottom}
|
|
55
|
-
</section>);
|
|
56
|
-
};
|
|
57
|
-
export default ScreenfulComponent;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React, {} from 'react';
|
|
2
|
-
import { cn } from '../../../util';
|
|
3
|
-
const Poster = ({ children, banner, className = '' }) => (banner ? (<div className={cn('relative', className)} style={{
|
|
4
|
-
height: '100%',
|
|
5
|
-
width: '100%',
|
|
6
|
-
backgroundImage: `url(${(typeof banner === 'string') ? banner : banner.poster})`,
|
|
7
|
-
backgroundSize: 'cover',
|
|
8
|
-
backgroundRepeat: 'no-repeat',
|
|
9
|
-
}}>
|
|
10
|
-
{children}
|
|
11
|
-
</div>) : (<div className={cn('bg-transparent h-full w-full relative', className)}>
|
|
12
|
-
{children}
|
|
13
|
-
</div>));
|
|
14
|
-
export default Poster;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { useInView } from 'react-intersection-observer';
|
|
4
|
-
const VideoBG = ({ block, className = '', initialInView }) => {
|
|
5
|
-
const { ref, inView } = useInView({
|
|
6
|
-
threshold: 0.75,
|
|
7
|
-
initialInView,
|
|
8
|
-
});
|
|
9
|
-
return block ? (<div ref={ref} className={className}>
|
|
10
|
-
{inView && (<video autoPlay loop muted style={{
|
|
11
|
-
margin: 0,
|
|
12
|
-
height: '100%',
|
|
13
|
-
width: '100%',
|
|
14
|
-
objectFit: 'cover',
|
|
15
|
-
}}>
|
|
16
|
-
{block.sources?.map((src, index) => (<source key={index} src={src}/>))}
|
|
17
|
-
</video>)}
|
|
18
|
-
</div>) : null;
|
|
19
|
-
};
|
|
20
|
-
export default VideoBG;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ldMerge, cn } from '../../util';
|
|
3
|
-
import { SPACE_DEFAULTS } from '../def/space-block';
|
|
4
|
-
import { ApplyTypography } from '../../primitives/index-common';
|
|
5
|
-
const TAGS = [
|
|
6
|
-
'div',
|
|
7
|
-
'h1',
|
|
8
|
-
'h2',
|
|
9
|
-
'h3',
|
|
10
|
-
'h4',
|
|
11
|
-
'h5',
|
|
12
|
-
'h6',
|
|
13
|
-
];
|
|
14
|
-
const SpaceBlockComponent = ({ block, className = '' }) => {
|
|
15
|
-
if (block && block.blockType !== 'space') {
|
|
16
|
-
return <>space block required</>;
|
|
17
|
-
}
|
|
18
|
-
const b = block;
|
|
19
|
-
// This code path should handle a undefined or empty sizes field.
|
|
20
|
-
if (!b.level) {
|
|
21
|
-
if (typeof b.sizes == 'number') {
|
|
22
|
-
return <div className={cn(`invisible w-[1px] h-${b.sizes}`, className)}/>;
|
|
23
|
-
}
|
|
24
|
-
const _sizes = {};
|
|
25
|
-
ldMerge(_sizes, SPACE_DEFAULTS, b.sizes);
|
|
26
|
-
let clx = '';
|
|
27
|
-
for (const [key, value] of Object.entries(_sizes)) {
|
|
28
|
-
// ts brain fart!
|
|
29
|
-
clx += `${key}:h-${value} `;
|
|
30
|
-
}
|
|
31
|
-
if (b.test) {
|
|
32
|
-
console.log(clx);
|
|
33
|
-
}
|
|
34
|
-
return <div className={cn('invisible w-[1px] ' + clx, className)}/>;
|
|
35
|
-
}
|
|
36
|
-
const Tag = TAGS[b.level];
|
|
37
|
-
const heightClx = (b.level === 0) ? 'h-4' : '';
|
|
38
|
-
return (<ApplyTypography className={className}>
|
|
39
|
-
<Tag className={'invisible m-0 ' + heightClx}> </Tag>
|
|
40
|
-
</ApplyTypography>);
|
|
41
|
-
};
|
|
42
|
-
export default SpaceBlockComponent;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Dimensions, TShirtSize } from '../../types';
|
|
3
|
-
import type BlockComponentProps from './block-component-props';
|
|
4
|
-
declare const VideoBlockComponent: React.FC<BlockComponentProps & {
|
|
5
|
-
usePoster?: boolean;
|
|
6
|
-
size?: TShirtSize;
|
|
7
|
-
constrainTo?: Dimensions;
|
|
8
|
-
}>;
|
|
9
|
-
export default VideoBlockComponent;
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { useEffect, useLayoutEffect, useState } from 'react';
|
|
3
|
-
import Image from 'next/image';
|
|
4
|
-
import { constrain, asNum, cn } from '../../util';
|
|
5
|
-
import { VideoPlayer } from '../../primitives/index-common';
|
|
6
|
-
const VideoBlockComponent = ({ block, className = '', agent, usePoster = false, size = 'md', constrainTo }) => {
|
|
7
|
-
const [_dim, setDim] = useState(undefined);
|
|
8
|
-
const onResize = () => {
|
|
9
|
-
setDim({
|
|
10
|
-
w: window.innerWidth,
|
|
11
|
-
h: window.innerHeight
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
const windowDefined = typeof window !== 'undefined';
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (window && agent === 'desktop') {
|
|
17
|
-
window.addEventListener('resize', onResize);
|
|
18
|
-
return () => window.removeEventListener('resize', onResize);
|
|
19
|
-
}
|
|
20
|
-
}, [windowDefined]);
|
|
21
|
-
useLayoutEffect(() => {
|
|
22
|
-
onResize();
|
|
23
|
-
}, []);
|
|
24
|
-
if (block.blockType !== 'video') {
|
|
25
|
-
return <>video block required</>;
|
|
26
|
-
}
|
|
27
|
-
const b = block;
|
|
28
|
-
const ar = b.dim.md.w / b.dim.md.h;
|
|
29
|
-
if (agent === 'phone') {
|
|
30
|
-
if (b.sizing?.mobile?.vw) {
|
|
31
|
-
// serverside, or at least while the video is loading,
|
|
32
|
-
// generate the css for the correctly sized poster image
|
|
33
|
-
if (!_dim) {
|
|
34
|
-
const width = `${b.sizing.mobile.vw}vw`;
|
|
35
|
-
return <div className='dummy-div' style={{
|
|
36
|
-
maxWidth: '100%',
|
|
37
|
-
maxHeight: '100%',
|
|
38
|
-
width,
|
|
39
|
-
height: `calc(${width}/${ar})`,
|
|
40
|
-
backgroundImage: `url(${b.poster})`,
|
|
41
|
-
backgroundSize: 'contain',
|
|
42
|
-
backgroundRepeat: 'no-repeat',
|
|
43
|
-
}}/>;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
const width = ((b.sizing.mobile.vw / 100) * _dim.w);
|
|
47
|
-
const dim = {
|
|
48
|
-
h: width / ar,
|
|
49
|
-
w: width
|
|
50
|
-
};
|
|
51
|
-
return ((<VideoPlayer className={cn('mx-auto', className)} sources={b.sources} width={dim.w} height={dim.h} {...b.videoProps}/>));
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else if (b.sizing?.vh) {
|
|
56
|
-
// serverside, generate the css for the correctly sized poster image
|
|
57
|
-
if (!_dim) {
|
|
58
|
-
const height = `${b.sizing.vh}vh`;
|
|
59
|
-
return <div className='dummy-div' style={{
|
|
60
|
-
maxWidth: '100%',
|
|
61
|
-
maxHeight: '100%',
|
|
62
|
-
height: height,
|
|
63
|
-
width: `calc(${height}*${ar})`,
|
|
64
|
-
backgroundImage: `url(${b.poster})`,
|
|
65
|
-
backgroundSize: 'contain',
|
|
66
|
-
backgroundRepeat: 'no-repeat',
|
|
67
|
-
}}/>;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
const height = ((b.sizing.vh / 100) * _dim.h);
|
|
71
|
-
const dim = {
|
|
72
|
-
h: height,
|
|
73
|
-
w: height * ar
|
|
74
|
-
};
|
|
75
|
-
return ((<VideoPlayer className={cn('mx-auto', className)} sources={b.sources} width={dim.w} height={dim.h} {...b.videoProps}/>));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
const videoDims = b.dim;
|
|
79
|
-
const dim = ((size && size in videoDims) ? videoDims[size] : videoDims.md);
|
|
80
|
-
const conDim = (constrainTo ? constrain(dim, constrainTo) : dim);
|
|
81
|
-
return usePoster ? (<Image src={b.poster} alt='image' width={conDim.w} height={conDim.h} className={className}/>) : (<VideoPlayer className={cn('mx-auto', className)} sources={b.sources} width={conDim.w} height={conDim.h} {...b.videoProps}/>);
|
|
82
|
-
};
|
|
83
|
-
export default VideoBlockComponent;
|
package/dist/blocks/def/block.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type Block from './block';
|
|
2
|
-
import type { BulletItem, GridDef } from '../../types';
|
|
3
|
-
interface BulletCardsBlock extends Block {
|
|
4
|
-
blockType: 'bullet-cards';
|
|
5
|
-
/**
|
|
6
|
-
* no-card-border
|
|
7
|
-
* mobile-small-text
|
|
8
|
-
* borders-muted-1 / borders-muted-3
|
|
9
|
-
* default: 2
|
|
10
|
-
*/
|
|
11
|
-
specifiers?: string;
|
|
12
|
-
grid: GridDef;
|
|
13
|
-
cards: BulletItem[];
|
|
14
|
-
/** in px */
|
|
15
|
-
iconSize?: number;
|
|
16
|
-
}
|
|
17
|
-
export { type BulletCardsBlock as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type CTABlock from './cta-block';
|
|
3
|
-
import type Block from './block';
|
|
4
|
-
import type ImageBlock from './image-block';
|
|
5
|
-
import type VideoBlock from './video-block';
|
|
6
|
-
interface CardBlock extends Block {
|
|
7
|
-
blockType: 'card';
|
|
8
|
-
specifiers?: string;
|
|
9
|
-
title?: string;
|
|
10
|
-
byline?: string;
|
|
11
|
-
icon?: React.ReactNode;
|
|
12
|
-
iconAfter?: boolean;
|
|
13
|
-
media?: ImageBlock | VideoBlock;
|
|
14
|
-
content?: React.ReactNode;
|
|
15
|
-
cta?: CTABlock;
|
|
16
|
-
}
|
|
17
|
-
export { type CardBlock as default };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type Block from './block';
|
|
2
|
-
import type CTABlock from './cta-block';
|
|
3
|
-
import type EnhHeadingBlock from './enh-heading-block';
|
|
4
|
-
interface CarteBlancheBlock extends Block {
|
|
5
|
-
blockType: 'carte-blanche';
|
|
6
|
-
specifiers?: string;
|
|
7
|
-
topContent?: Block[];
|
|
8
|
-
heading?: EnhHeadingBlock;
|
|
9
|
-
content?: Block[];
|
|
10
|
-
cta?: CTABlock;
|
|
11
|
-
}
|
|
12
|
-
export { type CarteBlancheBlock as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|