pagepilot-visual-editor 1.0.25 → 1.0.27

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 (58) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/blocks-internal/block-list/src/index.d.ts +1 -1
  3. package/dist/blocks-internal/block-stepper/src/index.d.ts +1 -1
  4. package/dist/editor-sample/App/InspectorDrawer/ConfigurationPanel/input-panels/FormsPickerSidebarPanel.d.ts +1 -0
  5. package/dist/editor-sample/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.d.ts +4 -1
  6. package/dist/editor-sample/App/InspectorDrawer/LayersPanelStyles.d.ts +1 -1
  7. package/dist/editor-sample/App/InspectorDrawer/LayoutPanel/templateApplyHelpers.d.ts +22 -4
  8. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/GroupBlockPreview.d.ts +7 -0
  9. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/ItemsArrayRepeatSection.d.ts +14 -0
  10. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/ScalarDataReferencePanel.d.ts +24 -0
  11. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/ScalarFieldRow.d.ts +12 -0
  12. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/VariableGroupList.d.ts +8 -0
  13. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/VariablesPanelContext.d.ts +10 -0
  14. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/dataReferenceUtils.d.ts +24 -6
  15. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/index.d.ts +8 -1
  16. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/repeatRowActions.d.ts +27 -0
  17. package/dist/editor-sample/App/InspectorDrawer/VariablesPanel/styles.d.ts +20 -0
  18. package/dist/editor-sample/App/InspectorDrawer/components/DateFieldControls.d.ts +12 -0
  19. package/dist/editor-sample/App/InspectorDrawer/components/DateTimeFieldControls.d.ts +14 -0
  20. package/dist/editor-sample/App/InspectorDrawer/components/TimeFieldControls.d.ts +12 -0
  21. package/dist/editor-sample/App/shared/editor.styles.d.ts +2 -2
  22. package/dist/editor-sample/documents/blocks/FormsPicker/FormsPropsSchema.d.ts +2 -0
  23. package/dist/editor-sample/documents/blocks/Table/TableImportDialog.styles.d.ts +4 -4
  24. package/dist/editor-sample/documents/blocks/TabsBlock/TabsBlockPropsSchema.d.ts +14 -0
  25. package/dist/editor-sample/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/blockMenuStyles.d.ts +2 -0
  26. package/dist/editor-sample/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.d.ts +3 -4
  27. package/dist/editor-sample/documents/blocks/helpers/InlineTextToolbar/hooks/useToolbarCommands.d.ts +17 -1
  28. package/dist/editor-sample/documents/blocks/helpers/InlineTextToolbar/popovers/ResponsiveFontSizePopover.d.ts +43 -0
  29. package/dist/editor-sample/documents/blocks/helpers/InlineTextToolbar/types.d.ts +7 -0
  30. package/dist/editor-sample/documents/blocks/helpers/documentUtils.d.ts +93 -2
  31. package/dist/editor-sample/documents/blocks/helpers/responsiveFontSizeCss.d.ts +72 -0
  32. package/dist/editor-sample/documents/blocks/helpers/variableBinding.d.ts +5 -0
  33. package/dist/editor-sample/documents/editor/core.d.ts +17 -2
  34. package/dist/editor-sample/documents/editor/templateVariables.d.ts +3 -3
  35. package/dist/email-builder-core/blocks/FormsPicker/FormsPropsSchema.d.ts +1 -0
  36. package/dist/email-builder-core/blocks/TabsBlock/TabsBlockPropsSchema.d.ts +14 -0
  37. package/dist/email-builder-core/renderers/pageScripts.d.ts +1 -0
  38. package/dist/email-builder-core/utils/substituteTemplateVars.d.ts +32 -0
  39. package/dist/host-stubs/view/shared/common/InfoTooltip.d.ts +19 -0
  40. package/dist/host-stubs/view/shared/timeZones.d.ts +4 -0
  41. package/dist/{index-RcTlEXS2.cjs → index-BNqa-SV3.cjs} +317 -288
  42. package/dist/{index-uAL1Hpt1.js → index-C4zNSWXe.js} +1 -1
  43. package/dist/{index-Cx_nuxVE.cjs → index-Cu-dtp0Q.cjs} +1 -1
  44. package/dist/{index-txCEAgzG.js → index-Dk7bp7l0.js} +29768 -26808
  45. package/dist/index.cjs +1 -1
  46. package/dist/index.d.ts +2 -2
  47. package/dist/index.js +15 -12
  48. package/dist/render-core/apiDataSource.d.ts +50 -0
  49. package/dist/render-core/dateFormats.d.ts +67 -0
  50. package/dist/render-core/repeatRowManagement.d.ts +96 -0
  51. package/dist/render-core/templateBaking.d.ts +105 -2
  52. package/dist/render.cjs +186 -163
  53. package/dist/render.d.ts +4 -2
  54. package/dist/render.js +8297 -7057
  55. package/dist/renderToStaticHtml.d.ts +58 -3
  56. package/dist/{xlsx-CMNIZUaT.cjs → xlsx-C6JQXDb3.cjs} +1 -1
  57. package/dist/{xlsx-DSQPVb8u.js → xlsx-Cd1etxFW.js} +1 -1
  58. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,28 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.0.27] — 2026-09-21
10
+
11
+ ### Added
12
+ - `render-core/repeatRowManagement.ts`, exported from the `./render` subpath:
13
+ `reconcileRepeatFieldRowCount(documentTree, field, targetRowCount, growDirection?)`
14
+ — grows or shrinks a container-repeat field's materialized row-block count
15
+ (cloning via `addRepeatRow`/growing the container via `growContainerToFit`,
16
+ or removing trailing row subtrees via `removeSubtree` +
17
+ `shrinkContainerToFit`) to match a target row count, e.g. so
18
+ server-side-regenerated HTML can show exactly as many cards as a live API
19
+ response returned, not just whatever was authored at Save time. Pure port
20
+ of the editor's `documentUtils.ts` block-tree mutators (`cloneSubtree`,
21
+ `addRepeatRow`, `removeSubtree`, `growContainerToFit`,
22
+ `shrinkContainerToFit`, `findRepeatableContainerOf`,
23
+ `getRepeatableContainerInfo`), rewritten to thread a plain document value
24
+ instead of the editor's Zustand-backed store — no new dependencies, no
25
+ editor/MUI imports, safe for the render-only bundle (same precedent as the
26
+ already-ported `collectSubtreeIds`). Grid's two-axis growth direction has
27
+ no default encoded in the pure logic (the editor asks the author via
28
+ `GrowDirectionDialog`); callers must pass `growDirection` explicitly for
29
+ serve-time use.
30
+
9
31
  ## [1.0.0] — 2026-07-06
10
32
 
11
33
  Initial public release.
@@ -38,8 +38,8 @@ export declare const ListPropsSchema: z.ZodObject<{
38
38
  marker: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
39
39
  none: "none";
40
40
  check: "check";
41
- square: "square";
42
41
  circle: "circle";
42
+ square: "square";
43
43
  decimal: "decimal";
44
44
  disc: "disc";
45
45
  dash: "dash";
@@ -22,8 +22,8 @@ export declare const StepperPropsSchema: z.ZodObject<{
22
22
  }, z.core.$strip>>>;
23
23
  props: z.ZodNullable<z.ZodOptional<z.ZodObject<{
24
24
  stepperType: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
25
- both: "both";
26
25
  numeric: "numeric";
26
+ both: "both";
27
27
  dots: "dots";
28
28
  }>>>;
29
29
  totalDots: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
@@ -9,6 +9,7 @@ type Props = {
9
9
  height: string;
10
10
  heightTablet?: string | null;
11
11
  heightMobile?: string | null;
12
+ autoHeight?: boolean;
12
13
  alignment?: 'left' | 'center' | 'right';
13
14
  };
14
15
  };
@@ -31,6 +31,9 @@ type Props = {
31
31
  solidOnly?: boolean;
32
32
  /** Heading rendered in the reserved top strip, aligned with the close button. */
33
33
  title?: string;
34
+ /** When true, hides the "Transparent" / none button (e.g. callers where a
35
+ * transparent value doesn't make sense, like a required background). */
36
+ hideTransparent?: boolean;
34
37
  };
35
- export default function Picker({ value, onChange, onApply, onTransparent, onClose, noneLabel, hideBrandColors, defaultValue, stickyActions, bodyMaxHeight, solidOnly, title }: Props): import("react/jsx-runtime").JSX.Element;
38
+ export default function Picker({ value, onChange, onApply, onTransparent, onClose, noneLabel, hideBrandColors, defaultValue, stickyActions, bodyMaxHeight, solidOnly, title, hideTransparent }: Props): import("react/jsx-runtime").JSX.Element;
36
39
  export {};
@@ -4,7 +4,7 @@ export declare const PanelRoot: import('@emotion/styled').StyledComponent<import
4
4
  export declare const PanelHeader: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<Theme>> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
5
5
  export declare const PanelContent: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<Theme>> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
6
6
  export declare const HeaderBox: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<Theme>> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
7
- export declare const HeaderTitle: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
7
+ export declare const HeaderTitle: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
8
8
  export declare const ClipboardBar: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<Theme>> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
9
9
  export declare const ActionSpan: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
10
10
  export declare const ActionButton: import('@emotion/styled').StyledComponent<import('@mui/material').ButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style" | "children" | "className" | "color" | "size" | "disabled" | "action" | "href" | "tabIndex" | "fullWidth" | "variant" | "loading" | "classes" | "sx" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "loadingIndicator" | "disableElevation" | "endIcon" | "loadingPosition" | "startIcon"> & import('@mui/system').MUIStyledCommonProps<Theme>, {}, {}>;
@@ -68,13 +68,31 @@ export declare function applyFullDocumentTemplate(configuration: any, document:
68
68
  export declare function applyIndividualBlockTemplate(configuration: any, document: any, resetDocument: (doc: any) => void): {
69
69
  idMapping: Record<string, string>;
70
70
  } | null;
71
+ /**
72
+ * "Use this Styles" — applies the template's styling — the root canvas AND
73
+ * every individual block (header, buttons, images, …) — while leaving the
74
+ * user's content and structure exactly as they were: text, links, image URLs,
75
+ * layout, block count and order are all untouched. Only visual props move
76
+ * (colours, typography, borders, spacing, alignment).
77
+ *
78
+ * Root: overlays the stricter `STYLE_ONLY_ROOT_KEYS` (typography / colours /
79
+ * border), then re-pins every user-owned root key via `preserveUserRootKeys`
80
+ * so the canvas geometry, background, CTA-existence and block list stay the
81
+ * user's — the page never resizes and no root CTA button appears/moves.
82
+ *
83
+ * Per-block: `overlayBlockStylesFromTemplate` — same donor-matching + prop
84
+ * overlay "Change template" uses; nothing is added, removed or re-keyed.
85
+ */
71
86
  export declare function applyTemplateStylesOnly(configuration: any, document: any, resetDocument: (doc: any) => void): void;
72
87
  /**
73
88
  * "Change template": apply the incoming template's styling — both the root
74
- * canvas AND every individual block — while leaving user content and
75
- * structure exactly as they were. Root overlay mirrors
76
- * `applyTemplateStylesOnly`; per-block overlay pairs each user block with a
77
- * same-typed donor from the new template in document order.
89
+ * canvas AND every individual block (menu, header, buttons, images, etc.) —
90
+ * while leaving user content and structure exactly as they were.
91
+ *
92
+ * Root overlay: identical to `applyTemplateStylesOnly` (root-level style keys
93
+ * copied via `PURE_STYLE_KEYS` — the wide list, since "Change template" is the
94
+ * confirm-gated aggressive restyle).
95
+ * Per-block overlay: `overlayBlockStylesFromTemplate`.
78
96
  */
79
97
  export declare function applyChangeTemplate(configuration: any, document: any, resetDocument: (doc: any) => void): void;
80
98
  /**
@@ -0,0 +1,7 @@
1
+ type Props = {
2
+ blockId: string;
3
+ width: number;
4
+ height: number;
5
+ };
6
+ export default function GroupBlockPreview({ blockId, width, height }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The Variables-tab counterpart to ContainerRepeatSection, but for blocks
3
+ * whose repeatable content is a flat `props.items` array with no child block
4
+ * subtree. No template picker is needed — toggling on just registers a
5
+ * `TemplateFormField` bound to this block's own items via `itemsBlockId`,
6
+ * seeded from whatever items already exist.
7
+ *
8
+ * No block type currently opts in (see `ITEMS_ARRAY_BLOCK_TYPES` in
9
+ * documentUtils), so this renders for nothing today — kept alongside the
10
+ * block-agnostic helpers for the next items-array block.
11
+ */
12
+ export default function ItemsArrayRepeatSection({ blockId }: {
13
+ blockId: string;
14
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { TemplateFormField } from '../../../documents/editor/templateVariables';
2
+ type ScalarField = {
3
+ field: TemplateFormField;
4
+ index: number;
5
+ };
6
+ type Props = {
7
+ /** The active group's scalar (non-array) fields, with their index in `forms`. */
8
+ scalarFields: ScalarField[];
9
+ /** Apply many field patches in one write — see index.tsx. Looping a
10
+ * single-field updater clobbers earlier patches (each call maps the same
11
+ * stale `forms` snapshot, so the last write wins). */
12
+ updateFields: (patches: {
13
+ index: number;
14
+ patch: Partial<TemplateFormField>;
15
+ }[]) => void;
16
+ };
17
+ /**
18
+ * "Data Reference" for the scalar (non-repeatable) variables of a group: fetch a
19
+ * SINGLE JSON object from a GET endpoint and seed each `{{name}}` field from the
20
+ * matching key. Editor-time only — the value is written into the field and baked
21
+ * into the page on publish, exactly like a hand-typed value.
22
+ */
23
+ export default function ScalarDataReferencePanel({ scalarFields, updateFields }: Props): import("react/jsx-runtime").JSX.Element;
24
+ export {};
@@ -0,0 +1,12 @@
1
+ import { TemplateFormField } from '../../../documents/editor/templateVariables';
2
+ type Props = {
3
+ field: TemplateFormField;
4
+ onPatch: (patch: Partial<TemplateFormField>) => void;
5
+ };
6
+ /**
7
+ * One scalar variable row: name, a type selector (Text / Number / Date / Time /
8
+ * Image), the value input, and — for `date` / `time` — the format + timezone
9
+ * controls.
10
+ */
11
+ export default function ScalarFieldRow({ field, onPatch }: Props): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,8 @@
1
+ import { VariableGroup } from '../../../documents/blocks/helpers/documentUtils';
2
+ type Props = {
3
+ groups: VariableGroup[];
4
+ onOpen: (group: VariableGroup) => void;
5
+ hideCandidates?: boolean;
6
+ };
7
+ export default function VariableGroupList({ groups, onOpen, hideCandidates }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,10 @@
1
+ export type VariablesPanelMode = {
2
+ /**
3
+ * Hide actions that only make sense inside the editor. The create-page flow
4
+ * embeds this panel to fill in a new page's variables — saving a block as a
5
+ * reusable template there would act on a page that doesn't exist yet.
6
+ */
7
+ hideEditorActions: boolean;
8
+ };
9
+ export declare const VariablesPanelProvider: import('react').Provider<VariablesPanelMode>;
10
+ export declare const useVariablesPanelMode: () => VariablesPanelMode;
@@ -3,25 +3,43 @@ import { TemplateFormField } from '../../../documents/editor/templateVariables';
3
3
  export declare function reportSeedResult(count: number, total: number): void;
4
4
  /** Resolve a dot-path (e.g. "data.items") into a nested value. */
5
5
  export declare function resolvePath(obj: any, path: string): any;
6
+ /**
7
+ * Apply a per-row dot-path to every element of `rows`, for APIs that wrap the
8
+ * useful fields inside each array item (e.g. `[{ event: { … } }]` with
9
+ * `itemPath: "event"`). Elements that don't resolve to an object are dropped.
10
+ * A blank/undefined path returns `rows` unchanged.
11
+ */
12
+ export declare function unwrapRows(rows: Record<string, any>[], itemPath?: string): Record<string, any>[];
6
13
  /**
7
14
  * Build a two-row example JSON array keyed by a field's sub-field ids — the
8
15
  * shape any data source (JSON / API / Menu) must provide to map correctly.
9
16
  */
10
17
  export declare function buildReferenceJson(itemFields: TemplateFormField['itemFields']): string;
11
18
  /**
12
- * Pull the array of objects out of an arbitrary API response. Accepts either a
13
- * top-level array, or an object wrapping the array under a common key
14
- * (data / rows / results / items / records). Returns null when no array is
15
- * found so the caller can surface a clear error.
19
+ * Pull the array of objects out of an arbitrary API response. When `path` is
20
+ * given (e.g. "data.ALL.games"), resolve it directly via `resolvePath` — this
21
+ * lets the author point at any nested array, not just the common wrapper
22
+ * keys. Otherwise fall back to auto-detection: a top-level array, or an
23
+ * object wrapping the array under a common key (data / rows / results /
24
+ * items / records). Returns null when no array is found so the caller can
25
+ * surface a clear error.
16
26
  */
17
- export declare function extractArrayFromResponse(body: any): Record<string, any>[] | null;
27
+ export declare function extractArrayFromResponse(body: any, path?: string): Record<string, any>[] | null;
18
28
  /**
19
29
  * GET a URL and return the array of objects from its JSON response. Throws with
20
30
  * a user-facing message on a bad URL, network error, non-OK status, non-JSON
21
31
  * body, or a response that carries no array. Only GET is supported today
22
32
  * (POST is planned — the panel disables it).
23
33
  */
24
- export declare function fetchApiRows(url: string): Promise<Record<string, any>[]>;
34
+ export declare function fetchApiRows(url: string, responsePath?: string): Promise<Record<string, any>[]>;
35
+ /**
36
+ * GET a URL and return a SINGLE object from its JSON response, for scalar
37
+ * (non-repeatable) variables. When `responsePath` is given, resolve it via
38
+ * `resolvePath`; otherwise use the body directly. If the resolved value is an
39
+ * array, take its first element. Throws a user-facing message on a bad URL,
40
+ * network error, non-OK status, non-JSON body, or a result that isn't an object.
41
+ */
42
+ export declare function fetchApiObject(url: string, responsePath?: string): Promise<Record<string, any>>;
25
43
  /**
26
44
  * GET a URL and return its raw response as pretty-printed text, for the
27
45
  * "Preview response" dialog. Unlike fetchApiRows this does NOT require an array
@@ -1 +1,8 @@
1
- export default function VariablesPanel(): import("react/jsx-runtime").JSX.Element;
1
+ type VariablesPanelProps = {
2
+ /** See `VariableGroupList`'s prop of the same name. */
3
+ hideCandidates?: boolean;
4
+ /** See `VariablesPanelContext`. */
5
+ hideEditorActions?: boolean;
6
+ };
7
+ export default function VariablesPanel({ hideCandidates, hideEditorActions, }?: VariablesPanelProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -1,3 +1,4 @@
1
+ import { TemplateArrayRow } from '../../../documents/editor/templateVariables';
1
2
  /** Append one repeat row: clone the source subtree into the next empty slot. */
2
3
  export declare function addContainerRepeatRow(fieldId: string): void;
3
4
  /**
@@ -36,5 +37,31 @@ export declare function trimFieldRowsTo(fieldId: string, keepRows: number): void
36
37
  * Returns the number of rows seeded (clamped to slot capacity), or -1 on error.
37
38
  */
38
39
  export declare function seedFieldFromData(fieldId: string, data: Record<string, any>[]): number;
40
+ /** Append one empty row to both the field's value and the live `props.items`. */
41
+ export declare function addItemsArrayRow(fieldId: string): void;
42
+ /** Remove one row (by index) from both the field's value and `props.items`. */
43
+ export declare function removeItemsArrayRow(fieldId: string, rowIndex: number): void;
44
+ /**
45
+ * Push a field's row values straight onto its block's `props.items` — the
46
+ * write-through half of the items-array model. Unlike Grid (where a row is a
47
+ * separate cloned block that renders itself), Breadcrumb's canvas renders
48
+ * directly from `props.items`, so every row edit (typed in a RowCard, or
49
+ * seeded via seedItemsArrayFromData) has to be mirrored onto the block itself
50
+ * or the canvas never reflects it. Rows map 1:1 to items by index; existing
51
+ * item keys not present in `itemFields` (e.g. `id`) are preserved.
52
+ */
53
+ export declare function syncItemsArrayRows(fieldId: string, rows: TemplateArrayRow[]): void;
54
+ /**
55
+ * Seed an items-array field from an array of data objects (the Data Reference
56
+ * flow). One object → one item: `props.items` is replaced with exactly
57
+ * `data.length` entries, each built by matching the object's keys to the
58
+ * field's sub-field ids (exact match first, then a case/whitespace-insensitive
59
+ * fallback — same normalizer as `seedFieldFromData`). Unlike the container-repeat
60
+ * version there's no capacity ceiling or block cloning — the array is simply
61
+ * resized and rewritten in one commit.
62
+ *
63
+ * Returns the number of rows seeded, or -1 on error.
64
+ */
65
+ export declare function seedItemsArrayFromData(fieldId: string, data: Record<string, any>[]): number;
39
66
  /** Remove one repeat row (rowIndex ≥ 1): delete its clone subtree + its row. */
40
67
  export declare function removeContainerRepeatRow(fieldId: string, rowIndex: number): void;
@@ -6,6 +6,26 @@ export declare const panelDescription: SxProps<Theme>;
6
6
  export declare const panelContent: SxProps<Theme>;
7
7
  export declare const panelLearnMore: SxProps<Theme>;
8
8
  export declare const emptyState: SxProps<Theme>;
9
+ export declare const groupListWrap: SxProps<Theme>;
10
+ export declare const groupListCaption: SxProps<Theme>;
11
+ export declare const groupCard: SxProps<Theme>;
12
+ export declare const groupCardHead: SxProps<Theme>;
13
+ export declare const groupIconBox: SxProps<Theme>;
14
+ export declare const previewViewport: (height: number) => SxProps<Theme>;
15
+ export declare const previewStage: (renderWidth: number, scale: number) => SxProps<Theme>;
16
+ export declare const previewSkeleton: SxProps<Theme>;
17
+ export declare const groupSectionHint: SxProps<Theme>;
18
+ export declare const groupChipRow: SxProps<Theme>;
19
+ export declare const groupChip: SxProps<Theme>;
20
+ export declare const groupChipMore: SxProps<Theme>;
21
+ export declare const groupIcon: SxProps<Theme>;
22
+ export declare const groupRowText: SxProps<Theme>;
23
+ export declare const groupRowTitle: SxProps<Theme>;
24
+ export declare const groupRowSubtitle: SxProps<Theme>;
25
+ export declare const groupRowChevron: SxProps<Theme>;
26
+ export declare const backRow: SxProps<Theme>;
27
+ export declare const backIcon: SxProps<Theme>;
28
+ export declare const backLabel: SxProps<Theme>;
9
29
  export declare const paywallOverlay: SxProps<Theme>;
10
30
  export declare const paywallGhostContent: SxProps<Theme>;
11
31
  export declare const paywallGhostHeader: SxProps<Theme>;
@@ -0,0 +1,12 @@
1
+ import { TemplateFormField } from '../../../documents/editor/templateVariables';
2
+ type Props = {
3
+ field: TemplateFormField;
4
+ onPatch: (patch: Partial<TemplateFormField>) => void;
5
+ };
6
+ /**
7
+ * Format + timezone controls for a `date` scalar variable, shown under the
8
+ * datetime input. `relative` recomputes in the reader's browser at view time;
9
+ * every other preset is a fixed string baked in `dateTz` on publish.
10
+ */
11
+ export default function DateFieldControls({ field, onPatch }: Props): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import { TemplateFormField } from '../../../documents/editor/templateVariables';
2
+ type Props = {
3
+ field: TemplateFormField;
4
+ onPatch: (patch: Partial<TemplateFormField>) => void;
5
+ };
6
+ /**
7
+ * Controls for a `datetime` scalar variable: one ISO value, exposed as two
8
+ * tokens — `{{id.date}}` (formatted with `dateFormat`) and `{{id.time}}`
9
+ * (formatted with `timeFormat`). Both share the `dateTz` timezone. The date part
10
+ * may be `relative` (recomputed in the reader's browser); the time part is
11
+ * always a fixed string.
12
+ */
13
+ export default function DateTimeFieldControls({ field, onPatch }: Props): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,12 @@
1
+ import { TemplateFormField } from '../../../documents/editor/templateVariables';
2
+ type Props = {
3
+ field: TemplateFormField;
4
+ onPatch: (patch: Partial<TemplateFormField>) => void;
5
+ };
6
+ /**
7
+ * Format + timezone controls for a `time` scalar variable, shown under the
8
+ * datetime input. `time` always bakes to a fixed string (24h or AM/PM) rendered
9
+ * in the chosen timezone — there's no view-time / relative mode.
10
+ */
11
+ export default function TimeFieldControls({ field, onPatch }: Props): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -1,5 +1,5 @@
1
- export declare const TruncatedEditorTitle: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
2
- export declare const SettingLabelTypography: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
1
+ export declare const TruncatedEditorTitle: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
2
+ export declare const SettingLabelTypography: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
3
3
  export declare const widthUnitSelectSx: {
4
4
  '& .MuiOutlinedInput-notchedOutline': {
5
5
  border: string;
@@ -9,6 +9,7 @@ declare const FormsPropsSchema: z.ZodObject<{
9
9
  height: z.ZodDefault<z.ZodString>;
10
10
  heightTablet: z.ZodOptional<z.ZodString>;
11
11
  heightMobile: z.ZodOptional<z.ZodString>;
12
+ autoHeight: z.ZodDefault<z.ZodBoolean>;
12
13
  alignment: z.ZodDefault<z.ZodEnum<{
13
14
  right: "right";
14
15
  left: "left";
@@ -28,6 +29,7 @@ export type FormsPickerProps = {
28
29
  height: string;
29
30
  heightTablet?: string;
30
31
  heightMobile?: string;
32
+ autoHeight?: boolean;
31
33
  alignment?: 'left' | 'center' | 'right';
32
34
  };
33
35
  };
@@ -1,11 +1,11 @@
1
1
  export declare const StyledDialog: import('@emotion/styled').StyledComponent<import('@mui/material').DialogProps & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
2
- export declare const StyledDialogTitle: import('@emotion/styled').StyledComponent<import('@mui/material').DialogTitleOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
2
+ export declare const StyledDialogTitle: import('@emotion/styled').StyledComponent<import('@mui/material').DialogTitleOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
3
3
  export declare const CloseButton: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').SVGProps<SVGSVGElement>, "style" | "children" | "className" | "color" | "fontSize" | "classes" | "htmlColor" | "inheritViewBox" | "shapeRendering" | "sx" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
4
4
  export declare const TabsBar: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<import('@mui/material').Theme>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
5
5
  export declare const StyledTabs: import('@emotion/styled').StyledComponent<import('@mui/material').TabsOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "value" | "style" | "children" | "className" | "textColor" | "action" | "orientation" | "variant" | "slots" | "classes" | "sx" | "aria-label" | "aria-labelledby" | "onChange" | "slotProps" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "visibleScrollbar"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
6
6
  export declare const StyledDialogContent: import('@emotion/styled').StyledComponent<import('@mui/material').DialogContentProps & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
7
- export declare const HelperText: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
8
- export declare const FileSummaryText: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
7
+ export declare const HelperText: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
8
+ export declare const FileSummaryText: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
9
9
  export declare const ErrorAlert: import('@emotion/styled').StyledComponent<import('@mui/material').AlertProps & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
10
10
  export declare const PasteTextFieldSx: {
11
11
  readonly '& textarea': {
@@ -15,5 +15,5 @@ export declare const PasteTextFieldSx: {
15
15
  };
16
16
  export declare const UploadDropzone: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<import('@mui/material').Theme>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
17
17
  export declare const UploadIcon: import('@emotion/styled').StyledComponent<import('@mui/material').SvgIconOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').SVGProps<SVGSVGElement>, "style" | "children" | "className" | "color" | "fontSize" | "classes" | "htmlColor" | "inheritViewBox" | "shapeRendering" | "sx" | "titleAccess" | "viewBox"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
18
- export declare const ChooseFileLabel: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "p" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
18
+ export declare const ChooseFileLabel: import('@emotion/styled').StyledComponent<import('@mui/material').TypographyOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "top" | "bottom" | "right" | "left" | "padding" | "margin" | "style" | "lineHeight" | "children" | "className" | "p" | "color" | "fontFamily" | "fontSize" | "fontWeight" | "fontStyle" | "textAlign" | "flex" | "display" | "position" | "border" | "paddingBottom" | "align" | "bgcolor" | "borderTop" | "width" | "px" | "height" | "borderRadius" | "borderColor" | "boxShadow" | "overflow" | "marginBottom" | "variant" | "gap" | "paddingX" | "paddingY" | "marginX" | "marginY" | "maxWidth" | "maxHeight" | "classes" | "sx" | "letterSpacing" | "order" | "visibility" | "zIndex" | "alignContent" | "alignItems" | "alignSelf" | "boxSizing" | "columnGap" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "marginBlockEnd" | "marginBlockStart" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "minHeight" | "minWidth" | "paddingBlockEnd" | "paddingBlockStart" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "rowGap" | "textOverflow" | "textTransform" | "whiteSpace" | "borderBottom" | "borderLeft" | "borderRight" | "gridArea" | "gridColumn" | "gridRow" | "marginBlock" | "marginInline" | "paddingBlock" | "paddingInline" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "py" | "typography" | "displayPrint" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
19
19
  export declare const StyledDialogActions: import('@emotion/styled').StyledComponent<import('@mui/material').DialogActionsProps & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
@@ -31,8 +31,14 @@ declare const TabsBlockPropsSchema: z.ZodObject<{
31
31
  left: z.ZodNumber;
32
32
  }, z.core.$strip>>>;
33
33
  tabActiveColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
34
+ tabActiveBgColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
35
+ tabInactiveTextColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
36
+ tabInactiveBgColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
37
+ tabInactiveBorderColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
38
+ tabInactiveBorderWidth: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
34
39
  tabTextColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
35
40
  tabBgColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
41
+ tabBorderRadius: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
36
42
  tabGap: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
37
43
  contentGap: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
38
44
  navBorderColor: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -61,6 +67,14 @@ declare const TabsBlockPropsSchema: z.ZodObject<{
61
67
  showSelectedSection: "showSelectedSection";
62
68
  scrollToSelectedSection: "scrollToSelectedSection";
63
69
  }>>>;
70
+ tabsAlign: z.ZodNullable<z.ZodOptional<z.ZodEnum<{
71
+ right: "right";
72
+ left: "left";
73
+ center: "center";
74
+ }>>>;
75
+ dropdown: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
76
+ dropdownTablet: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
77
+ dropdownMobile: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
64
78
  activeTabIndex: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
65
79
  stickyNav: z.ZodNullable<z.ZodOptional<z.ZodBoolean>>;
66
80
  items: z.ZodNullable<z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -4,6 +4,8 @@ export declare const menuRootSx: (theme: Theme) => SxProps<Theme>;
4
4
  export declare const searchHeaderSx: (theme: Theme) => SxProps<Theme>;
5
5
  export declare const scrollAreaSx: (theme: Theme) => SxProps<Theme>;
6
6
  export declare const gridSx: SxProps<Theme>;
7
+ export declare const categoryTabsSx: (theme: Theme) => SxProps<Theme>;
8
+ export declare const categoryTabSx: (theme: Theme, active: boolean) => SxProps<Theme>;
7
9
  export declare const emptyStateSx: SxProps<Theme>;
8
10
  export declare const emptyIconBadgeSx: (theme: Theme) => SxProps<Theme>;
9
11
  export declare const blockButtonSx: (theme: Theme, highlighted: boolean) => SxProps<Theme>;
@@ -4,10 +4,9 @@ type TButtonProps = {
4
4
  label: string;
5
5
  /**
6
6
  * Palette section this tile belongs to. Used by BlocksPanel to group
7
- * tiles under section headers ("Text/Content", "Media",
8
- * "Layout/Structure", "Actions/Controls", "Embeds/Integrations",
9
- * "Support/Utility"). Order and header labels come from
10
- * `BlockCategories.ts`.
7
+ * tiles under section headers ("Layout", "Content", "Media",
8
+ * "Interaction", "Integration") and by BlocksMenu's category tabs. Order
9
+ * and header labels come from `BlockCategories.ts`.
11
10
  */
12
11
  category: string;
13
12
  icon: React.JSX.Element;