@nascentdigital/funnel-ui 4.6.1 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/client/fields/EmbeddedVideo/EmbeddedVideo.d.ts +2 -2
  2. package/dist/client/fields/EmbeddedVideo/EmbeddedVideo.js +3 -3
  3. package/dist/client/fields/EmbeddedVideo/vimeo/VimeoVideo.d.ts +3 -3
  4. package/dist/client/fields/EmbeddedVideo/vimeo/VimeoVideo.js +4 -3
  5. package/dist/client/fields/EmbeddedVideo/youtube/YoutubeVideo.d.ts +3 -3
  6. package/dist/client/fields/EmbeddedVideo/youtube/YoutubeVideo.js +4 -3
  7. package/dist/client/fields/LazyVideo.d.ts +6 -1
  8. package/dist/client/fields/LazyVideo.js +6 -4
  9. package/dist/client/hooks/useTouch.js +1 -0
  10. package/dist/client/interaction/paginator/Paginator.js +0 -1
  11. package/dist/server/blocks/Block.d.ts +82 -14
  12. package/dist/server/blocks/Block.js +782 -61
  13. package/dist/server/blocks/MediaLayout.d.ts +23 -4
  14. package/dist/server/blocks/MediaLayout.js +2 -12
  15. package/dist/server/blocks/RelatedPages.d.ts +2 -0
  16. package/dist/server/blocks/RelatedPages.js +4 -4
  17. package/dist/server/fields/Media.d.ts +79 -0
  18. package/dist/server/fields/Media.js +174 -0
  19. package/dist/server/fields/Visual.d.ts +7 -2
  20. package/dist/server/fields/Visual.js +9 -5
  21. package/dist/server/fields/index.d.ts +1 -0
  22. package/dist/server/fields/index.js +1 -0
  23. package/dist/server/index.d.ts +1 -0
  24. package/dist/server/index.js +1 -0
  25. package/dist/server/layouts/accordion/Accordion.d.ts +21 -0
  26. package/dist/server/layouts/accordion/Accordion.js +66 -0
  27. package/dist/server/layouts/accordion/AccordionContainer.d.ts +5 -0
  28. package/dist/server/layouts/accordion/AccordionContainer.js +18 -0
  29. package/dist/server/layouts/accordion/AccordionContext.d.ts +7 -0
  30. package/dist/server/layouts/accordion/AccordionContext.js +7 -0
  31. package/dist/server/layouts/accordion/AccordionExpander.d.ts +9 -0
  32. package/dist/server/layouts/accordion/AccordionExpander.js +72 -0
  33. package/dist/server/layouts/accordion/AccordionItem.d.ts +8 -0
  34. package/dist/server/layouts/accordion/AccordionItem.js +22 -0
  35. package/dist/server/layouts/accordion/AccordionLayout.d.ts +7 -0
  36. package/dist/server/layouts/accordion/AccordionLayout.js +26 -0
  37. package/dist/server/layouts/accordion/AccordionOptions.d.ts +3 -0
  38. package/dist/server/layouts/accordion/AccordionOptions.js +2 -0
  39. package/dist/server/layouts/accordion/index.d.ts +3 -0
  40. package/dist/server/layouts/accordion/index.js +19 -0
  41. package/dist/server/layouts/accordion/useAccordion.d.ts +1 -0
  42. package/dist/server/layouts/accordion/useAccordion.js +34 -0
  43. package/dist/server/layouts/index.d.ts +2 -1
  44. package/dist/server/layouts/index.js +2 -1
  45. package/dist/server/panels/BlockPanel.d.ts +14 -77
  46. package/dist/server/panels/BlockPanel.js +46 -702
  47. package/dist/server/panels/ListPanel.js +6 -3
  48. package/dist/server/panels/MessagePanel.js +33 -33
  49. package/dist/server/panels/VisualPanel.d.ts +58 -10
  50. package/dist/server/panels/VisualPanel.js +155 -79
  51. package/dist/server/schema/ListPanelLayout.d.ts +1 -0
  52. package/dist/server/schema/ListPanelLayout.js +1 -0
  53. package/dist/server/schema/RowRatio.d.ts +7 -0
  54. package/dist/server/schema/RowRatio.js +26 -0
  55. package/dist/server/schema/index.d.ts +1 -0
  56. package/dist/server/schema/index.js +1 -0
  57. package/dist/styles/blocks/Block-layout.css +88 -47
  58. package/dist/styles/blocks/Editorial.css +2 -2
  59. package/dist/styles/blocks/Form.css +2 -2
  60. package/dist/styles/blocks/MediaLayout.css +1 -1
  61. package/dist/styles/components/container.css +3 -24
  62. package/dist/styles/components/embed/YoutubePlayer.css +1 -1
  63. package/dist/styles/fields/Media.css +37 -0
  64. package/dist/styles/fields/_index.css +1 -0
  65. package/dist/styles/layouts/Accordion.css +29 -0
  66. package/dist/styles/layouts/_index.css +2 -1
  67. package/dist/styles/panels/VisualPanel.css +2 -1
  68. package/package.json +2 -2
@@ -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,3 @@
1
+ export type AccordionOptions = {
2
+ multiExpand: boolean;
3
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export * from './AccordionItem';
2
+ export * from './AccordionLayout';
3
+ export * from './AccordionOptions';
@@ -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
+ }
@@ -1,6 +1,7 @@
1
+ export * from './accordion';
2
+ export * from './grid';
1
3
  export * from './BentoLayout';
2
4
  export * from './CardLayout';
3
5
  export * from './BrickLayout';
4
6
  export * from './FlexWrapLayout';
5
7
  export * from './StackLayout';
6
- export * from './grid';
@@ -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, Schema } from '@nascentdigital/funnel-core';
2
- import { BlockConfig, ItemAlignment, PanelLayout, SlotVariation } from '../schema';
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,66 +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
- namespace GetConfigSchema {
48
- type Key<T extends string> = T | Key.WithLabel<T>;
49
- namespace Key {
50
- type WithLabel<T extends string> = {
51
- key: T;
52
- name: string;
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
- }) : TListKey extends Schema.Fields.ListFields.Keys<TFields> ? ({
71
- contentAlign: ItemAlignment.Vertical.Schema;
72
- }) : {} : TVisualKey extends Schema.Fields.AssetFields.Keys<TFields> ? TListKey extends Schema.Fields.ListFields.Keys<TFields> ? ({
73
- contentAlign: ItemAlignment.Vertical.Schema;
74
- }) : {} : {})) & TConfigExtended;
75
- }
76
- 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>;
77
- 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> = {
78
- args: Schema.Block.GetConfig.Args<TConfig, TFields>;
79
- messageFieldKeys?: TMessageFieldKeys;
80
- messageKey?: TMessageKey;
81
- visualKey?: TVisualKey;
82
- listKey?: TListKey;
33
+ type Props = {
34
+ alignX?: BlockLayout.Alignment;
35
+ alignY?: BlockLayout.Alignment;
36
+ size?: BlockLayout.Size;
37
+ fullbleed?: boolean;
38
+ mobileOrder?: BlockLayout.MobileOrder;
83
39
  };
84
- function getConfig<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>({ args, messageFieldKeys, messageKey, visualKey, listKey }: GetConfigArgs<TConfig, TFields, TMessageFieldKeys, TMessageKey, TVisualKey, TListKey>): Schema.Block.GetConfig.Result<TConfig>;
85
- type GetLayoutArgs<TConfig extends Schema.Block.Config, TFields extends Schema.Fields, TMessageFieldKeys extends Partial<MessagePanel.Fields.Keys> | undefined, TMessageKey extends string, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields>, TListKey extends Schema.Fields.ListFields.Keys<TFields>> = {
86
- args: Schema.Block.GetLayout.Args<TConfig, TFields>;
87
- messageFieldKeys?: TMessageFieldKeys;
88
- messageKey?: TMessageKey;
89
- visualKey?: TVisualKey;
90
- listKey?: TListKey;
40
+ type GetClassNamesArgs = Props & {
41
+ panel: BlockLayout.Panel;
91
42
  };
92
- function getLayout<TConfig extends Schema.Block.Config, TFields extends Schema.Fields, TMessageFieldKeys extends Partial<MessagePanel.Fields.Keys> | undefined, TMessageKey extends string, TVisualKey extends Schema.Fields.AssetFields.Keys<TFields>, TListKey extends Schema.Fields.ListFields.Keys<TFields>>({ args, messageFieldKeys, messageKey, visualKey, listKey }: GetLayoutArgs<TConfig, TFields, TMessageFieldKeys, TMessageKey, TVisualKey, TListKey>): BlockLayout;
93
- namespace GetActivePanels {
94
- type Args<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>> = {
95
- fields: Partial<Schema.Block.Data.ForFields<TFields>> | Partial<Schema.Block.LinkedData.ForFields<TFields>>;
96
- messageFieldKeys?: TMessageFieldKeys;
97
- messageKey?: TMessageKey;
98
- visualKey?: TVisualKey;
99
- listKey?: TListKey;
100
- };
101
- type Result = {
102
- message: PanelStatus;
103
- visual: PanelStatus;
104
- list: PanelStatus;
105
- };
106
- type PanelStatus = 'valid' | 'invalid' | false;
107
- }
108
- 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;
109
46
  }