@nascentdigital/funnel-ui 4.6.7 → 5.0.2
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/client/fields/EmbeddedVideo/EmbeddedVideo.d.ts +2 -2
- package/dist/client/fields/EmbeddedVideo/EmbeddedVideo.js +3 -3
- package/dist/client/fields/EmbeddedVideo/vimeo/VimeoVideo.d.ts +3 -3
- package/dist/client/fields/EmbeddedVideo/vimeo/VimeoVideo.js +4 -3
- package/dist/client/fields/EmbeddedVideo/youtube/YoutubeVideo.d.ts +3 -3
- package/dist/client/fields/EmbeddedVideo/youtube/YoutubeVideo.js +4 -3
- package/dist/client/fields/LazyVideo.d.ts +5 -1
- package/dist/client/fields/LazyVideo.js +6 -4
- package/dist/client/hooks/useTouch.js +1 -0
- package/dist/client/interaction/paginator/Paginator.js +0 -1
- package/dist/server/blocks/Block.d.ts +87 -15
- package/dist/server/blocks/Block.js +785 -60
- package/dist/server/blocks/MediaLayout.d.ts +26 -10
- package/dist/server/blocks/MediaLayout.js +14 -23
- package/dist/server/blocks/Message.js +2 -2
- package/dist/server/blocks/RelatedPages.js +4 -4
- package/dist/server/blocks/index.d.ts +0 -1
- package/dist/server/blocks/index.js +0 -1
- package/dist/server/fields/Media.d.ts +50 -22
- package/dist/server/fields/Media.js +75 -48
- package/dist/server/fields/Visual.d.ts +6 -2
- package/dist/server/fields/Visual.js +9 -5
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +1 -0
- package/dist/server/layouts/accordion/Accordion.d.ts +21 -0
- package/dist/server/layouts/accordion/Accordion.js +66 -0
- package/dist/server/layouts/accordion/AccordionContainer.d.ts +5 -0
- package/dist/server/layouts/accordion/AccordionContainer.js +18 -0
- package/dist/server/layouts/accordion/AccordionContext.d.ts +7 -0
- package/dist/server/layouts/accordion/AccordionContext.js +7 -0
- package/dist/server/layouts/accordion/AccordionExpander.d.ts +9 -0
- package/dist/server/layouts/accordion/AccordionExpander.js +72 -0
- package/dist/server/layouts/accordion/AccordionItem.d.ts +8 -0
- package/dist/server/layouts/accordion/AccordionItem.js +22 -0
- package/dist/server/layouts/accordion/AccordionLayout.d.ts +7 -0
- package/dist/server/layouts/accordion/AccordionLayout.js +26 -0
- package/dist/server/layouts/accordion/AccordionOptions.d.ts +3 -0
- package/dist/server/layouts/accordion/AccordionOptions.js +2 -0
- package/dist/server/layouts/accordion/index.d.ts +3 -0
- package/dist/server/layouts/accordion/index.js +19 -0
- package/dist/server/layouts/accordion/useAccordion.d.ts +1 -0
- package/dist/server/layouts/accordion/useAccordion.js +34 -0
- package/dist/server/layouts/index.d.ts +2 -1
- package/dist/server/layouts/index.js +2 -1
- package/dist/server/panels/BlockPanel.d.ts +14 -80
- package/dist/server/panels/BlockPanel.js +46 -707
- package/dist/server/panels/ListPanel.js +6 -3
- package/dist/server/panels/MessagePanel.js +33 -33
- package/dist/server/panels/VisualPanel.d.ts +58 -10
- package/dist/server/panels/VisualPanel.js +155 -79
- package/dist/server/schema/ListPanelLayout.d.ts +1 -0
- package/dist/server/schema/ListPanelLayout.js +1 -0
- package/dist/styles/blocks/Block-layout.css +81 -80
- package/dist/styles/blocks/Editorial.css +2 -2
- package/dist/styles/blocks/Form.css +2 -2
- package/dist/styles/blocks/MediaLayout.css +1 -1
- package/dist/styles/components/container.css +3 -24
- package/dist/styles/layouts/Accordion.css +29 -0
- package/dist/styles/layouts/_index.css +2 -1
- package/dist/styles/panels/VisualPanel.css +2 -1
- package/package.json +2 -2
- package/dist/server/blocks/Editorial.d.ts +0 -33
- package/dist/server/blocks/Editorial.js +0 -80
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AccordionContainer = AccordionContainer;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("motion/react");
|
|
7
|
+
const react_2 = require("react");
|
|
8
|
+
const Accordion_1 = require("./Accordion");
|
|
9
|
+
const AccordionContext_1 = require("./AccordionContext");
|
|
10
|
+
// component
|
|
11
|
+
function AccordionContainer({ children }) {
|
|
12
|
+
// bind context
|
|
13
|
+
const context = (0, react_2.useMemo)(() => ({
|
|
14
|
+
accordion: new Accordion_1.Accordion()
|
|
15
|
+
}), []);
|
|
16
|
+
// render
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(AccordionContext_1.AccordionContext.Provider, { value: context, children: (0, jsx_runtime_1.jsx)(react_1.MotionConfig, { transition: { duration: 0.3 }, children: children }) }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare function AccordionExpander({ className, header, content, ...props }: AccordionExpander.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace AccordionExpander {
|
|
4
|
+
type Props = {
|
|
5
|
+
className?: string;
|
|
6
|
+
header: ReactNode;
|
|
7
|
+
content: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
4
|
+
var t = {};
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
8
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
9
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
10
|
+
t[p[i]] = s[p[i]];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AccordionExpander = AccordionExpander;
|
|
19
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
20
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
21
|
+
const react_1 = require("motion/react");
|
|
22
|
+
const react_2 = require("react");
|
|
23
|
+
const useAccordion_1 = require("./useAccordion");
|
|
24
|
+
// block
|
|
25
|
+
function AccordionExpander(_a) {
|
|
26
|
+
var { className, header, content } = _a, props = __rest(_a, ["className", "header", "content"]);
|
|
27
|
+
// bind hooks
|
|
28
|
+
const headerId = (0, react_2.useId)();
|
|
29
|
+
const expanderId = (0, react_2.useId)();
|
|
30
|
+
const accordion = (0, useAccordion_1.useAccordion)();
|
|
31
|
+
const isFocused = accordion.focused === expanderId;
|
|
32
|
+
const isExpanded = accordion.isExpanded(expanderId);
|
|
33
|
+
// helpers
|
|
34
|
+
const onToggle = () => {
|
|
35
|
+
if (isExpanded) {
|
|
36
|
+
accordion.onCollapse(expanderId);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
accordion.onExpand(expanderId);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
// render
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.motion.li, { className: (0, classnames_1.default)('nd-AccordionItem', {
|
|
44
|
+
'nd-AccordionItem-expanded': isExpanded
|
|
45
|
+
}), initial: false, animate: isExpanded ? 'open' : 'closed', children: [(0, jsx_runtime_1.jsxs)(react_1.motion.button, { id: headerId, className: "nd-AccordionItem-headerWrap", onClick: onToggle, onFocus: onlyKeyboardFocus(() => accordion.onFocus(expanderId)), onBlur: () => accordion.onBlur(expanderId), "aria-controls": expanderId, "aria-expanded": isExpanded, children: [(0, jsx_runtime_1.jsx)("div", { className: "nd-AccordionItem-header", children: header }), isFocused && ((0, jsx_runtime_1.jsx)(react_1.motion.div, { layoutId: "focus-ring", className: "nd-AccordionItem-headerFocus" }))] }), (0, jsx_runtime_1.jsx)(react_1.motion.div, { id: expanderId, className: "nd-AccordionItem-panelWrap", variants: {
|
|
46
|
+
open: {
|
|
47
|
+
height: "auto",
|
|
48
|
+
maskImage: "linear-gradient(to bottom, black 100%, transparent 100%)",
|
|
49
|
+
},
|
|
50
|
+
closed: {
|
|
51
|
+
height: 0,
|
|
52
|
+
maskImage: "linear-gradient(to bottom, black 50%, transparent 100%)",
|
|
53
|
+
},
|
|
54
|
+
}, "aria-labelledby": headerId, "aria-hidden": !isExpanded, children: (0, jsx_runtime_1.jsx)(react_1.motion.div, { className: "nd-AccordionItem-panel", variants: {
|
|
55
|
+
open: {
|
|
56
|
+
filter: "blur(0px)",
|
|
57
|
+
opacity: 1,
|
|
58
|
+
},
|
|
59
|
+
closed: {
|
|
60
|
+
filter: "blur(2px)",
|
|
61
|
+
opacity: 0,
|
|
62
|
+
},
|
|
63
|
+
}, children: content }) })] }));
|
|
64
|
+
}
|
|
65
|
+
// helpers
|
|
66
|
+
function onlyKeyboardFocus(callback) {
|
|
67
|
+
return (e) => {
|
|
68
|
+
if (e.type === "focus" && e.target.matches(":focus-visible")) {
|
|
69
|
+
callback();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
export declare function AccordionItem({ className, header, children: content, ...props }: AccordionItem.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace AccordionItem {
|
|
4
|
+
type Props = PropsWithChildren & {
|
|
5
|
+
className?: string;
|
|
6
|
+
header: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.AccordionItem = AccordionItem;
|
|
15
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
const AccordionExpander_1 = require("./AccordionExpander");
|
|
17
|
+
// component
|
|
18
|
+
function AccordionItem(_a) {
|
|
19
|
+
var { className, header, children: content } = _a, props = __rest(_a, ["className", "header", "children"]);
|
|
20
|
+
// render
|
|
21
|
+
return ((0, jsx_runtime_1.jsx)(AccordionExpander_1.AccordionExpander, Object.assign({}, props, { className: className, header: header, content: content })));
|
|
22
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactElement } from 'react';
|
|
2
|
+
export declare function AccordionLayout({ className, children, ...props }: AccordionLayout.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare namespace AccordionLayout {
|
|
4
|
+
type Props = Omit<HTMLAttributes<HTMLUListElement>, 'children'> & {
|
|
5
|
+
children: ReadonlyArray<ReactElement>;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.AccordionLayout = AccordionLayout;
|
|
18
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
20
|
+
const AccordionContainer_1 = require("./AccordionContainer");
|
|
21
|
+
// component
|
|
22
|
+
function AccordionLayout(_a) {
|
|
23
|
+
var { className, children } = _a, props = __rest(_a, ["className", "children"]);
|
|
24
|
+
// render
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(AccordionContainer_1.AccordionContainer, { children: (0, jsx_runtime_1.jsx)("ul", Object.assign({}, props, { className: (0, classnames_1.default)(className, 'nd-AccordionLayout'), children: children })) }));
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AccordionItem"), exports);
|
|
18
|
+
__exportStar(require("./AccordionLayout"), exports);
|
|
19
|
+
__exportStar(require("./AccordionOptions"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useAccordion(): import("./Accordion").Accordion;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useAccordion = useAccordion;
|
|
5
|
+
const funnel_core_1 = require("@nascentdigital/funnel-core");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const useTouch_1 = require("../../../client/hooks/useTouch");
|
|
8
|
+
const AccordionContext_1 = require("./AccordionContext");
|
|
9
|
+
// hook
|
|
10
|
+
function useAccordion() {
|
|
11
|
+
// bind context (or fail)
|
|
12
|
+
const { accordion } = (0, react_1.useContext)(AccordionContext_1.AccordionContext);
|
|
13
|
+
const touch = (0, useTouch_1.useTouch)();
|
|
14
|
+
// sync/touch on change
|
|
15
|
+
(0, react_1.useEffect)(() => {
|
|
16
|
+
// skip if not bound
|
|
17
|
+
if (!accordion) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// bind to changes
|
|
21
|
+
const subscriptions = [
|
|
22
|
+
accordion.expanded$.subscribe(touch),
|
|
23
|
+
accordion.focused$.subscribe(touch)
|
|
24
|
+
];
|
|
25
|
+
// unbind on unmount
|
|
26
|
+
return () => subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
27
|
+
}, [accordion, touch]);
|
|
28
|
+
// fail if context isn't bound
|
|
29
|
+
if (!accordion) {
|
|
30
|
+
throw new funnel_core_1.InvalidOperationError('Cannot access Accordion outside of AccordionContainer');
|
|
31
|
+
}
|
|
32
|
+
// return accordion
|
|
33
|
+
return accordion;
|
|
34
|
+
}
|
|
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./accordion"), exports);
|
|
18
|
+
__exportStar(require("./grid"), exports);
|
|
17
19
|
__exportStar(require("./BentoLayout"), exports);
|
|
18
20
|
__exportStar(require("./CardLayout"), exports);
|
|
19
21
|
__exportStar(require("./BrickLayout"), exports);
|
|
20
22
|
__exportStar(require("./FlexWrapLayout"), exports);
|
|
21
23
|
__exportStar(require("./StackLayout"), exports);
|
|
22
|
-
__exportStar(require("./grid"), exports);
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
import { BlockLayout
|
|
2
|
-
import {
|
|
3
|
-
import { ListPanel } from './ListPanel';
|
|
4
|
-
import { MessagePanel } from './MessagePanel';
|
|
5
|
-
import { VisualPanel } from './VisualPanel';
|
|
1
|
+
import { BlockLayout } from '@nascentdigital/funnel-core';
|
|
2
|
+
import { PanelLayout, SlotVariation } from '../schema';
|
|
6
3
|
export declare namespace BlockPanel {
|
|
7
|
-
type Props = {
|
|
8
|
-
alignX?: BlockLayout.Alignment;
|
|
9
|
-
alignY?: BlockLayout.Alignment;
|
|
10
|
-
size?: BlockLayout.Size;
|
|
11
|
-
fullbleed?: boolean;
|
|
12
|
-
mobileOrder?: BlockLayout.MobileOrder;
|
|
13
|
-
};
|
|
14
|
-
type GetClassNamesArgs = Props & {
|
|
15
|
-
panel: BlockLayout.Panel;
|
|
16
|
-
};
|
|
17
|
-
function getClassNames({ panel, alignX, alignY, size, fullbleed, mobileOrder }: GetClassNamesArgs): string;
|
|
18
4
|
namespace Slots {
|
|
19
5
|
type Items = 'M' | 'V' | 'L';
|
|
20
6
|
namespace Items {
|
|
@@ -32,8 +18,8 @@ export declare namespace BlockPanel {
|
|
|
32
18
|
};
|
|
33
19
|
function compute({ panels: { message, visual, list }, layout, variation }: ComputeArgs): Items[];
|
|
34
20
|
}
|
|
35
|
-
function forLayout(layout: PanelLayout): 1 | 2 | 3;
|
|
36
21
|
type FlexDirection = 'xy' | 'x' | 'y' | 'none';
|
|
22
|
+
function forLayout(layout: PanelLayout): 1 | 2 | 3;
|
|
37
23
|
namespace GetFlexDirection {
|
|
38
24
|
type Args = {
|
|
39
25
|
layout: PanelLayout;
|
|
@@ -44,69 +30,17 @@ export declare namespace BlockPanel {
|
|
|
44
30
|
function getFlexDirections({ layout, items: [item1, item2, item3] }: GetFlexDirection.Args): GetFlexDirection.Result;
|
|
45
31
|
function contentAlignmentExists(layout: PanelLayout): boolean;
|
|
46
32
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
type Optional<T extends string | undefined> = T extends string ? Key<T> : undefined;
|
|
55
|
-
function normalize<T extends string>(key: Key<T>): WithLabel<T>;
|
|
56
|
-
}
|
|
57
|
-
type Args<TFields extends Schema.Fields, TMessageKey extends string | undefined, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> | undefined, TListKey extends Schema.Fields.ListFields.Keys<TFields> | undefined, TConfigExtended extends Schema.Block.Config> = {
|
|
58
|
-
fields: TFields;
|
|
59
|
-
extend?: TConfigExtended;
|
|
60
|
-
messageKey?: Key.Optional<TMessageKey>;
|
|
61
|
-
visualKey?: Key.Optional<TVisualKey>;
|
|
62
|
-
listKey?: TListKey;
|
|
63
|
-
};
|
|
64
|
-
type Result<TFields extends Schema.Fields, TMessageKey extends string | undefined, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> | undefined, TListKey extends Schema.Fields.ListFields.Keys<TFields> | undefined, TConfigExtended extends Schema.Block.Config> = (BlockConfig.Presets.ThemeOnly.Schema & {
|
|
65
|
-
layout: PanelLayout.Schema;
|
|
66
|
-
} & {
|
|
67
|
-
slotVariation: SlotVariation.Schema;
|
|
68
|
-
} & (TMessageKey extends string ? MessagePanel.Config.Entries<TMessageKey> : {}) & (TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> ? VisualPanel.Config.Entries<TVisualKey> : {}) & (TListKey extends Schema.Fields.ListFields.Keys<TFields> ? ListPanel.Config.Entries<TListKey> : {}) & (TMessageKey extends string ? TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> ? ({
|
|
69
|
-
contentAlign: ItemAlignment.Vertical.Schema;
|
|
70
|
-
contentSplit: RowRatio.Schema;
|
|
71
|
-
}) : TListKey extends Schema.Fields.ListFields.Keys<TFields> ? ({
|
|
72
|
-
contentAlign: ItemAlignment.Vertical.Schema;
|
|
73
|
-
contentSplit: RowRatio.Schema;
|
|
74
|
-
}) : {} : TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> ? TListKey extends Schema.Fields.ListFields.Keys<TFields> ? ({
|
|
75
|
-
contentAlign: ItemAlignment.Vertical.Schema;
|
|
76
|
-
contentSplit: RowRatio.Schema;
|
|
77
|
-
}) : {} : {})) & TConfigExtended;
|
|
78
|
-
}
|
|
79
|
-
function getConfigSchema<TFields extends Schema.Fields, TMessageKey extends string | undefined = undefined, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> | undefined = undefined, TListKey extends Schema.Fields.ListFields.Keys<TFields> | undefined = undefined, TConfigExtended extends Schema.Block.Config = Schema.Block.Config>({ extend, messageKey: messageKeyRaw, visualKey: visualKeyRaw, listKey: listKeyRaw }: GetConfigSchema.Args<TFields, TMessageKey, TVisualKey, TListKey, TConfigExtended>): GetConfigSchema.Result<TFields, TMessageKey, TVisualKey, TListKey, TConfigExtended>;
|
|
80
|
-
type GetConfigArgs<TConfig extends Schema.Block.Config, TFields extends Schema.Fields, TMessageFieldKeys extends Partial<MessagePanel.Fields.Keys> | undefined, TMessageKey extends string | undefined, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> | undefined, TListKey extends Schema.Fields.ListFields.Keys<TFields> | undefined> = {
|
|
81
|
-
args: Schema.Block.GetConfig.Args<TConfig, TFields>;
|
|
82
|
-
messageFieldKeys?: TMessageFieldKeys;
|
|
83
|
-
messageKey?: TMessageKey;
|
|
84
|
-
visualKey?: TVisualKey;
|
|
85
|
-
listKey?: TListKey;
|
|
33
|
+
type Props = {
|
|
34
|
+
alignX?: BlockLayout.Alignment;
|
|
35
|
+
alignY?: BlockLayout.Alignment;
|
|
36
|
+
size?: BlockLayout.Size;
|
|
37
|
+
fullbleed?: boolean;
|
|
38
|
+
mobileOrder?: BlockLayout.MobileOrder;
|
|
86
39
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
args: Schema.Block.GetLayout.Args<TConfig, TFields>;
|
|
90
|
-
messageFieldKeys?: TMessageFieldKeys;
|
|
91
|
-
messageKey?: TMessageKey;
|
|
92
|
-
visualKey?: TVisualKey;
|
|
93
|
-
listKey?: TListKey;
|
|
40
|
+
type GetClassNamesArgs = Props & {
|
|
41
|
+
panel: BlockLayout.Panel;
|
|
94
42
|
};
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
fields: Partial<Schema.Block.Data.ForFields<TFields>> | Partial<Schema.Block.LinkedData.ForFields<TFields>>;
|
|
99
|
-
messageFieldKeys?: TMessageFieldKeys;
|
|
100
|
-
messageKey?: TMessageKey;
|
|
101
|
-
visualKey?: TVisualKey;
|
|
102
|
-
listKey?: TListKey;
|
|
103
|
-
};
|
|
104
|
-
type Result = {
|
|
105
|
-
message: PanelStatus;
|
|
106
|
-
visual: PanelStatus;
|
|
107
|
-
list: PanelStatus;
|
|
108
|
-
};
|
|
109
|
-
type PanelStatus = 'valid' | 'invalid' | false;
|
|
110
|
-
}
|
|
111
|
-
function getActivePanels<TFields extends Schema.Fields, TMessageFieldKeys extends Partial<MessagePanel.Fields.Keys> | undefined, TMessageKey extends string | undefined, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields>, TListKey extends Schema.Fields.ListFields.Keys<TFields>>({ fields: fieldsRaw, messageFieldKeys, messageKey, visualKey, listKey }: GetActivePanels.Args<TFields, TMessageFieldKeys, TMessageKey, TVisualKey, TListKey>): GetActivePanels.Result;
|
|
43
|
+
function getWrapClassName(): string;
|
|
44
|
+
function getClassNames({ panel, alignX, alignY, size, mobileOrder }: GetClassNamesArgs): string;
|
|
45
|
+
function getFullBleedClassNames({ panel, fullbleed, }: GetClassNamesArgs): string;
|
|
112
46
|
}
|