From 7ee8b1ea96f8becaed2120dd6ecb265bdc0c5c72 Mon Sep 17 00:00:00 2001 From: Pato Perpetua Date: Fri, 11 Sep 2026 21:30:56 +1000 Subject: [PATCH 01/12] feat(post-kit-editor): port EmailBuilder MUI sample as default canvas Replace the skinny hand-rolled canvas with a controlled adaptation of the official vite-emailbuilder-mui surface (inspector + samples) so editing matches the EmailBuilder.js playground UX. Closes #139 Co-authored-by: Cursor --- packages/post-kit-editor/package.json | 10 +- .../src/canvas/EmailBuilderCanvas.tsx | 41 +- .../ConfigurationPanel/index.tsx | 140 ++ .../input-panels/AvatarSidebarPanel.tsx | 82 + .../input-panels/ButtonSidebarPanel.tsx | 101 + .../ColumnsContainerSidebarPanel.tsx | 92 + .../input-panels/ContainerSidebarPanel.tsx | 36 + .../input-panels/DividerSidebarPanel.tsx | 55 + .../input-panels/EmailLayoutSidebarPanel.tsx | 72 + .../input-panels/HeadingSidebarPanel.tsx | 57 + .../input-panels/HtmlSidebarPanel.tsx | 42 + .../input-panels/ImageSidebarPanel.tsx | 97 + .../input-panels/SpacerSidebarPanel.tsx | 41 + .../input-panels/TextSidebarPanel.tsx | 57 + .../input-panels/helpers/BaseSidebarPanel.tsx | 20 + .../helpers/inputs/BooleanInput.tsx | 27 + .../inputs/ColorInput/BaseColorInput.tsx | 92 + .../helpers/inputs/ColorInput/Picker.tsx | 94 + .../helpers/inputs/ColorInput/Swatch.tsx | 44 + .../helpers/inputs/ColorInput/index.tsx | 21 + .../helpers/inputs/ColumnWidthsInput.tsx | 68 + .../helpers/inputs/FontFamily.tsx | 36 + .../helpers/inputs/FontSizeInput.tsx | 33 + .../helpers/inputs/FontWeightInput.tsx | 27 + .../helpers/inputs/PaddingInput.tsx | 95 + .../helpers/inputs/RadioGroupInput.tsx | 33 + .../helpers/inputs/SliderInput.tsx | 36 + .../helpers/inputs/TextAlignInput.tsx | 40 + .../helpers/inputs/TextDimensionInput.tsx | 37 + .../input-panels/helpers/inputs/TextInput.tsx | 43 + .../helpers/inputs/raw/RawSliderInput.tsx | 52 + .../style-inputs/MultiStylePropertyPanel.tsx | 24 + .../style-inputs/SingleStylePropertyPanel.tsx | 92 + .../App/InspectorDrawer/StylesPanel.tsx | 25 + .../ToggleInspectorPanelButton.tsx | 29 + .../App/InspectorDrawer/index.tsx | 53 + .../App/SamplesDrawer/SidebarButton.tsx | 24 + .../ToggleSamplesPanelButton.tsx | 22 + .../App/SamplesDrawer/index.tsx | 55 + .../App/TemplatePanel/DownloadJson/index.tsx | 20 + .../App/TemplatePanel/HtmlPanel.tsx | 13 + .../ImportJson/ImportJsonDialog.tsx | 89 + .../App/TemplatePanel/ImportJson/index.tsx | 26 + .../ImportJson/validateJsonStringValue.ts | 24 + .../App/TemplatePanel/JsonPanel.tsx | 11 + .../App/TemplatePanel/MainTabsGroup.tsx | 64 + .../helper/HighlightedCodePanel.tsx | 40 + .../App/TemplatePanel/helper/highlighters.tsx | 28 + .../App/TemplatePanel/index.tsx | 132 + .../src/email-builder-ui/App/index.tsx | 42 + .../EmailBuilderMuiSurface.tsx | 89 + .../src/email-builder-ui/NOTICE.md | 14 + .../ColumnsContainerEditor.tsx | 61 + .../ColumnsContainerPropsSchema.ts | 23 + .../blocks/Container/ContainerEditor.tsx | 37 + .../blocks/Container/ContainerPropsSchema.tsx | 17 + .../blocks/EmailLayout/EmailLayoutEditor.tsx | 103 + .../EmailLayout/EmailLayoutPropsSchema.tsx | 36 + .../AddBlockMenu/BlockButton.tsx | 36 + .../AddBlockMenu/BlocksMenu.tsx | 44 + .../AddBlockMenu/DividerButton.tsx | 64 + .../AddBlockMenu/PlaceholderButton.tsx | 36 + .../AddBlockMenu/buttons.tsx | 160 ++ .../EditorChildrenIds/AddBlockMenu/index.tsx | 37 + .../helpers/EditorChildrenIds/index.tsx | 58 + .../documents/blocks/helpers/TStyle.ts | 13 + .../block-wrappers/EditorBlockWrapper.tsx | 58 + .../block-wrappers/ReaderBlockWrapper.tsx | 26 + .../helpers/block-wrappers/TuneMenu.tsx | 262 ++ .../blocks/helpers/cloneDocumentBlock.ts | 66 + .../documents/blocks/helpers/fontFamily.ts | 62 + .../documents/blocks/helpers/zod.ts | 28 + .../documents/editor/EditorBlock.tsx | 29 + .../documents/editor/EditorContext.tsx | 137 + .../documents/editor/core.tsx | 127 + .../getConfiguration/index.tsx | 48 + .../sample/empty-email-message.ts | 16 + .../sample/one-time-passcode.ts | 130 + .../sample/order-ecommerce.ts | 1445 +++++++++++ .../sample/post-metrics-report.ts | 394 +++ .../sample/reservation-reminder.ts | 2209 +++++++++++++++++ .../getConfiguration/sample/reset-password.ts | 156 ++ .../sample/respond-to-message.ts | 175 ++ .../sample/subscription-receipt.ts | 1349 ++++++++++ .../getConfiguration/sample/welcome.ts | 170 ++ .../src/email-builder-ui/theme.ts | 520 ++++ packages/post-kit-editor/src/index.spec.tsx | 11 + pnpm-lock.yaml | 681 ++++- 88 files changed, 11392 insertions(+), 69 deletions(-) create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontSizeInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontWeightInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/PaddingInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/RadioGroupInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextAlignInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextDimensionInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/raw/RawSliderInput.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/MultiStylePropertyPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/SingleStylePropertyPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/StylesPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ToggleInspectorPanelButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/SidebarButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/ToggleSamplesPanelButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/DownloadJson/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/HtmlPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/ImportJsonDialog.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/validateJsonStringValue.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/JsonPanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/MainTabsGroup.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/HighlightedCodePanel.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/highlighters.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/EmailBuilderMuiSurface.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/NOTICE.md create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerEditor.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerEditor.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerPropsSchema.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutEditor.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutPropsSchema.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/TStyle.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/TuneMenu.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/cloneDocumentBlock.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/fontFamily.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/zod.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorBlock.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorContext.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/editor/core.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/index.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/empty-email-message.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/one-time-passcode.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/order-ecommerce.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/post-metrics-report.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/reservation-reminder.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/reset-password.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/respond-to-message.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/subscription-receipt.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/getConfiguration/sample/welcome.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/theme.ts diff --git a/packages/post-kit-editor/package.json b/packages/post-kit-editor/package.json index 778219e..eb8c8e3 100644 --- a/packages/post-kit-editor/package.json +++ b/packages/post-kit-editor/package.json @@ -43,6 +43,10 @@ "prepublishOnly": "pnpm run build" }, "dependencies": { + "@emotion/react": "11.11.3", + "@emotion/styled": "11.11.0", + "@mui/icons-material": "5.15.10", + "@mui/material": "5.15.10", "@singleton-sd/post-kit-compiler": "workspace:*", "@singleton-sd/post-kit-types": "workspace:*", "@usewaypoint/block-avatar": "^0.0.3", @@ -57,7 +61,11 @@ "@usewaypoint/block-text": "^0.0.7", "@usewaypoint/document-core": "^0.0.6", "@usewaypoint/email-builder": "0.0.9", - "zod": "^3.25.76" + "highlight.js": "11.9.0", + "prettier": "3.2.5", + "react-colorful": "5.6.1", + "zod": "^3.25.76", + "zustand": "4.5.1" }, "peerDependencies": { "react": "^18.3.1", diff --git a/packages/post-kit-editor/src/canvas/EmailBuilderCanvas.tsx b/packages/post-kit-editor/src/canvas/EmailBuilderCanvas.tsx index e1ea835..3aff088 100644 --- a/packages/post-kit-editor/src/canvas/EmailBuilderCanvas.tsx +++ b/packages/post-kit-editor/src/canvas/EmailBuilderCanvas.tsx @@ -2,9 +2,7 @@ import React from 'react'; import type { EmailBuilderDocument } from '../types'; import { EDITOR_CLASS_PREFIX } from '../email-template-editor'; -import { CanvasEditorProvider } from './editor-context'; -import { EditorBlock } from './EditorBlock'; -import { Reader } from '@usewaypoint/email-builder'; +import { EmailBuilderMuiSurface } from '../email-builder-ui/EmailBuilderMuiSurface'; export interface EmailBuilderCanvasProps { document: EmailBuilderDocument; @@ -17,33 +15,16 @@ export function EmailBuilderCanvas({ onChange, readOnly = false, }: EmailBuilderCanvasProps): JSX.Element { - if (readOnly) { - return ( -
- -
- ); - } - return ( - -
- -
-
+
+ +
); } diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/index.tsx new file mode 100644 index 0000000..e1be1df --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/index.tsx @@ -0,0 +1,140 @@ +import React from 'react'; + +import { Box, Typography } from '@mui/material'; + +import { TEditorBlock } from '../../../documents/editor/core'; +import { + setDocument, + useDocument, + useSelectedBlockId, +} from '../../../documents/editor/EditorContext'; + +import AvatarSidebarPanel from './input-panels/AvatarSidebarPanel'; +import ButtonSidebarPanel from './input-panels/ButtonSidebarPanel'; +import ColumnsContainerSidebarPanel from './input-panels/ColumnsContainerSidebarPanel'; +import ContainerSidebarPanel from './input-panels/ContainerSidebarPanel'; +import DividerSidebarPanel from './input-panels/DividerSidebarPanel'; +import EmailLayoutSidebarPanel from './input-panels/EmailLayoutSidebarPanel'; +import HeadingSidebarPanel from './input-panels/HeadingSidebarPanel'; +import HtmlSidebarPanel from './input-panels/HtmlSidebarPanel'; +import ImageSidebarPanel from './input-panels/ImageSidebarPanel'; +import SpacerSidebarPanel from './input-panels/SpacerSidebarPanel'; +import TextSidebarPanel from './input-panels/TextSidebarPanel'; + +function renderMessage(val: string) { + return ( + + {val} + + ); +} + +export default function ConfigurationPanel() { + const document = useDocument(); + const selectedBlockId = useSelectedBlockId(); + + if (!selectedBlockId) { + return renderMessage('Click on a block to inspect.'); + } + const block = document[selectedBlockId]; + if (!block) { + return renderMessage( + `Block with id ${selectedBlockId} was not found. Click on a block to reset.`, + ); + } + + const setBlock = (conf: TEditorBlock) => setDocument({ [selectedBlockId]: conf }); + const { data, type } = block; + switch (type) { + case 'Avatar': + return ( + setBlock({ type, data })} + /> + ); + case 'Button': + return ( + setBlock({ type, data })} + /> + ); + case 'ColumnsContainer': + return ( + setBlock({ type, data })} + /> + ); + case 'Container': + return ( + setBlock({ type, data })} + /> + ); + case 'Divider': + return ( + setBlock({ type, data })} + /> + ); + case 'Heading': + return ( + setBlock({ type, data })} + /> + ); + case 'Html': + return ( + setBlock({ type, data })} + /> + ); + case 'Image': + return ( + setBlock({ type, data })} + /> + ); + case 'EmailLayout': + return ( + setBlock({ type, data })} + /> + ); + case 'Spacer': + return ( + setBlock({ type, data })} + /> + ); + case 'Text': + return ( + setBlock({ type, data })} + /> + ); + default: + return
{JSON.stringify(block, null, '  ')}
; + } +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx new file mode 100644 index 0000000..47d5a77 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx @@ -0,0 +1,82 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { AspectRatioOutlined } from '@mui/icons-material'; +import { ToggleButton } from '@mui/material'; +import { AvatarProps, AvatarPropsDefaults, AvatarPropsSchema } from '@usewaypoint/block-avatar'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import RadioGroupInput from './helpers/inputs/RadioGroupInput'; +import SliderInput from './helpers/inputs/SliderInput'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type AvatarSidebarPanelProps = { + data: AvatarProps; + setData: (v: AvatarProps) => void; +}; +export default function AvatarSidebarPanel({ data, setData }: AvatarSidebarPanelProps) { + const [, setErrors] = useState(null); + const updateData = (d: unknown) => { + const res = AvatarPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + const size = data.props?.size ?? AvatarPropsDefaults.size; + const imageUrl = data.props?.imageUrl ?? AvatarPropsDefaults.imageUrl; + const alt = data.props?.alt ?? AvatarPropsDefaults.alt; + const shape = data.props?.shape ?? AvatarPropsDefaults.shape; + + return ( + + } + units="px" + step={3} + min={32} + max={256} + defaultValue={size} + onChange={(size) => { + updateData({ ...data, props: { ...data.props, size } }); + }} + /> + { + updateData({ ...data, props: { ...data.props, shape } }); + }} + > + Circle + Square + Rounded + + { + updateData({ ...data, props: { ...data.props, imageUrl } }); + }} + /> + { + updateData({ ...data, props: { ...data.props, alt } }); + }} + /> + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx new file mode 100644 index 0000000..57836af --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx @@ -0,0 +1,101 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { ToggleButton } from '@mui/material'; +import { ButtonProps, ButtonPropsDefaults, ButtonPropsSchema } from '@usewaypoint/block-button'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import ColorInput from './helpers/inputs/ColorInput'; +import RadioGroupInput from './helpers/inputs/RadioGroupInput'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type ButtonSidebarPanelProps = { + data: ButtonProps; + setData: (v: ButtonProps) => void; +}; +export default function ButtonSidebarPanel({ data, setData }: ButtonSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = ButtonPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + const text = data.props?.text ?? ButtonPropsDefaults.text; + const url = data.props?.url ?? ButtonPropsDefaults.url; + const fullWidth = data.props?.fullWidth ?? ButtonPropsDefaults.fullWidth; + const size = data.props?.size ?? ButtonPropsDefaults.size; + const buttonStyle = data.props?.buttonStyle ?? ButtonPropsDefaults.buttonStyle; + const buttonTextColor = data.props?.buttonTextColor ?? ButtonPropsDefaults.buttonTextColor; + const buttonBackgroundColor = + data.props?.buttonBackgroundColor ?? ButtonPropsDefaults.buttonBackgroundColor; + + return ( + + updateData({ ...data, props: { ...data.props, text } })} + /> + updateData({ ...data, props: { ...data.props, url } })} + /> + + updateData({ ...data, props: { ...data.props, fullWidth: v === 'FULL_WIDTH' } }) + } + > + Full + Auto + + updateData({ ...data, props: { ...data.props, size } })} + > + Xs + Sm + Md + Lg + + updateData({ ...data, props: { ...data.props, buttonStyle } })} + > + Rectangle + Rounded + Pill + + + updateData({ ...data, props: { ...data.props, buttonTextColor } }) + } + /> + + updateData({ ...data, props: { ...data.props, buttonBackgroundColor } }) + } + /> + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx new file mode 100644 index 0000000..206099f --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx @@ -0,0 +1,92 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { + SpaceBarOutlined, + VerticalAlignBottomOutlined, + VerticalAlignCenterOutlined, + VerticalAlignTopOutlined, +} from '@mui/icons-material'; +import { ToggleButton } from '@mui/material'; + +import ColumnsContainerPropsSchema, { + ColumnsContainerProps, +} from '../../../../documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import ColumnWidthsInput from './helpers/inputs/ColumnWidthsInput'; +import RadioGroupInput from './helpers/inputs/RadioGroupInput'; +import SliderInput from './helpers/inputs/SliderInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type ColumnsContainerPanelProps = { + data: ColumnsContainerProps; + setData: (v: ColumnsContainerProps) => void; +}; +export default function ColumnsContainerPanel({ data, setData }: ColumnsContainerPanelProps) { + const [, setErrors] = useState(null); + const updateData = (d: unknown) => { + const res = ColumnsContainerPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + { + updateData({ ...data, props: { ...data.props, columnsCount: v === '2' ? 2 : 3 } }); + }} + > + 2 + 3 + + { + updateData({ ...data, props: { ...data.props, fixedWidths } }); + }} + /> + } + units="px" + step={4} + marks + min={0} + max={80} + defaultValue={data.props?.columnsGap ?? 0} + onChange={(columnsGap) => updateData({ ...data, props: { ...data.props, columnsGap } })} + /> + { + updateData({ ...data, props: { ...data.props, contentAlignment } }); + }} + > + + + + + + + + + + + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx new file mode 100644 index 0000000..eb4750e --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx @@ -0,0 +1,36 @@ +import React, { useState } from 'react'; +import type { ZodError } from 'zod'; + +import ContainerPropsSchema, { + ContainerProps, +} from '../../../../documents/blocks/Container/ContainerPropsSchema'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type ContainerSidebarPanelProps = { + data: ContainerProps; + setData: (v: ContainerProps) => void; +}; + +export default function ContainerSidebarPanel({ data, setData }: ContainerSidebarPanelProps) { + const [, setErrors] = useState(null); + const updateData = (d: unknown) => { + const res = ContainerPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + return ( + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx new file mode 100644 index 0000000..8e4216a --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx @@ -0,0 +1,55 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { HeightOutlined } from '@mui/icons-material'; +import { DividerProps, DividerPropsDefaults, DividerPropsSchema } from '@usewaypoint/block-divider'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import ColorInput from './helpers/inputs/ColorInput'; +import SliderInput from './helpers/inputs/SliderInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type DividerSidebarPanelProps = { + data: DividerProps; + setData: (v: DividerProps) => void; +}; +export default function DividerSidebarPanel({ data, setData }: DividerSidebarPanelProps) { + const [, setErrors] = useState(null); + const updateData = (d: unknown) => { + const res = DividerPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + const lineColor = data.props?.lineColor ?? DividerPropsDefaults.lineColor; + const lineHeight = data.props?.lineHeight ?? DividerPropsDefaults.lineHeight; + + return ( + + updateData({ ...data, props: { ...data.props, lineColor } })} + /> + } + units="px" + step={1} + min={1} + max={24} + defaultValue={lineHeight} + onChange={(lineHeight) => updateData({ ...data, props: { ...data.props, lineHeight } })} + /> + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx new file mode 100644 index 0000000..f7e5fbb --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx @@ -0,0 +1,72 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { RoundedCornerOutlined } from '@mui/icons-material'; + +import EmailLayoutPropsSchema, { + EmailLayoutProps, +} from '../../../../documents/blocks/EmailLayout/EmailLayoutPropsSchema'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import ColorInput, { NullableColorInput } from './helpers/inputs/ColorInput'; +import { NullableFontFamily } from './helpers/inputs/FontFamily'; +import SliderInput from './helpers/inputs/SliderInput'; + +type EmailLayoutSidebarFieldsProps = { + data: EmailLayoutProps; + setData: (v: EmailLayoutProps) => void; +}; +export default function EmailLayoutSidebarFields({ data, setData }: EmailLayoutSidebarFieldsProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = EmailLayoutPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + updateData({ ...data, backdropColor })} + /> + updateData({ ...data, canvasColor })} + /> + updateData({ ...data, borderColor })} + /> + } + units="px" + step={4} + marks + min={0} + max={48} + label="Canvas border radius" + defaultValue={data.borderRadius ?? 0} + onChange={(borderRadius) => updateData({ ...data, borderRadius })} + /> + updateData({ ...data, fontFamily })} + /> + updateData({ ...data, textColor })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx new file mode 100644 index 0000000..2232d93 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx @@ -0,0 +1,57 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { ToggleButton } from '@mui/material'; +import { HeadingProps, HeadingPropsDefaults, HeadingPropsSchema } from '@usewaypoint/block-heading'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import RadioGroupInput from './helpers/inputs/RadioGroupInput'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type HeadingSidebarPanelProps = { + data: HeadingProps; + setData: (v: HeadingProps) => void; +}; +export default function HeadingSidebarPanel({ data, setData }: HeadingSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = HeadingPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + { + updateData({ ...data, props: { ...data.props, text } }); + }} + /> + { + updateData({ ...data, props: { ...data.props, level } }); + }} + > + H1 + H2 + H3 + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx new file mode 100644 index 0000000..4e74969 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx @@ -0,0 +1,42 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { HtmlProps, HtmlPropsSchema } from '@usewaypoint/block-html'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type HtmlSidebarPanelProps = { + data: HtmlProps; + setData: (v: HtmlProps) => void; +}; +export default function HtmlSidebarPanel({ data, setData }: HtmlSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = HtmlPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + updateData({ ...data, props: { ...data.props, contents } })} + /> + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx new file mode 100644 index 0000000..6768951 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx @@ -0,0 +1,97 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { + VerticalAlignBottomOutlined, + VerticalAlignCenterOutlined, + VerticalAlignTopOutlined, +} from '@mui/icons-material'; +import { Stack, ToggleButton } from '@mui/material'; +import { ImageProps, ImagePropsSchema } from '@usewaypoint/block-image'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import RadioGroupInput from './helpers/inputs/RadioGroupInput'; +import TextDimensionInput from './helpers/inputs/TextDimensionInput'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type ImageSidebarPanelProps = { + data: ImageProps; + setData: (v: ImageProps) => void; +}; +export default function ImageSidebarPanel({ data, setData }: ImageSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = ImagePropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + { + const url = v.trim().length === 0 ? null : v.trim(); + updateData({ ...data, props: { ...data.props, url } }); + }} + /> + + updateData({ ...data, props: { ...data.props, alt } })} + /> + { + const linkHref = v.trim().length === 0 ? null : v.trim(); + updateData({ ...data, props: { ...data.props, linkHref } }); + }} + /> + + updateData({ ...data, props: { ...data.props, width } })} + /> + updateData({ ...data, props: { ...data.props, height } })} + /> + + + + updateData({ ...data, props: { ...data.props, contentAlignment } }) + } + > + + + + + + + + + + + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx new file mode 100644 index 0000000..197a8e3 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx @@ -0,0 +1,41 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { HeightOutlined } from '@mui/icons-material'; +import { SpacerProps, SpacerPropsDefaults, SpacerPropsSchema } from '@usewaypoint/block-spacer'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import SliderInput from './helpers/inputs/SliderInput'; + +type SpacerSidebarPanelProps = { + data: SpacerProps; + setData: (v: SpacerProps) => void; +}; +export default function SpacerSidebarPanel({ data, setData }: SpacerSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = SpacerPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + } + units="px" + step={4} + min={4} + max={128} + defaultValue={data.props?.height ?? SpacerPropsDefaults.height} + onChange={(height) => updateData({ ...data, props: { ...data.props, height } })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx new file mode 100644 index 0000000..aa482a1 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx @@ -0,0 +1,57 @@ +import React, { useState } from 'react'; +import { ZodError } from 'zod'; + +import { TextProps, TextPropsSchema } from '@usewaypoint/block-text'; + +import BaseSidebarPanel from './helpers/BaseSidebarPanel'; +import BooleanInput from './helpers/inputs/BooleanInput'; +import TextInput from './helpers/inputs/TextInput'; +import MultiStylePropertyPanel from './helpers/style-inputs/MultiStylePropertyPanel'; + +type TextSidebarPanelProps = { + data: TextProps; + setData: (v: TextProps) => void; +}; +export default function TextSidebarPanel({ data, setData }: TextSidebarPanelProps) { + const [, setErrors] = useState(null); + + const updateData = (d: unknown) => { + const res = TextPropsSchema.safeParse(d); + if (res.success) { + setData(res.data); + setErrors(null); + } else { + setErrors(res.error); + } + }; + + return ( + + updateData({ ...data, props: { ...data.props, text } })} + /> + updateData({ ...data, props: { ...data.props, markdown } })} + /> + + updateData({ ...data, style })} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx new file mode 100644 index 0000000..284b829 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx @@ -0,0 +1,20 @@ +import React from 'react'; + +import { Box, Stack, Typography } from '@mui/material'; + +type SidebarPanelProps = { + title: string; + children: React.ReactNode; +}; +export default function BaseSidebarPanel({ title, children }: SidebarPanelProps) { + return ( + + + {title} + + + {children} + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx new file mode 100644 index 0000000..cc710a6 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx @@ -0,0 +1,27 @@ +import React, { useState } from 'react'; + +import { FormControlLabel, Switch } from '@mui/material'; + +type Props = { + label: string; + defaultValue: boolean; + onChange: (value: boolean) => void; +}; + +export default function BooleanInput({ label, defaultValue, onChange }: Props) { + const [value, setValue] = useState(defaultValue); + return ( + { + setValue(checked); + onChange(checked); + }} + /> + } + /> + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx new file mode 100644 index 0000000..9872b6a --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx @@ -0,0 +1,92 @@ +import React, { useState } from 'react'; + +import { AddOutlined, CloseOutlined } from '@mui/icons-material'; +import { ButtonBase, InputLabel, Menu, Stack } from '@mui/material'; + +import Picker from './Picker'; + +const BUTTON_SX = { + border: '1px solid', + borderColor: 'cadet.400', + width: 32, + height: 32, + borderRadius: '4px', + bgcolor: '#FFFFFF', +}; + +type Props = + | { + nullable: true; + label: string; + onChange: (value: string | null) => void; + defaultValue: string | null; + } + | { + nullable: false; + label: string; + onChange: (value: string) => void; + defaultValue: string; + }; +export default function ColorInput({ label, defaultValue, onChange, nullable }: Props) { + const [anchorEl, setAnchorEl] = useState(null); + const [value, setValue] = useState(defaultValue); + const handleClickOpen = (event: React.MouseEvent) => { + setAnchorEl(event.currentTarget); + }; + + const renderResetButton = () => { + if (!nullable) { + return null; + } + if (typeof value !== 'string' || value.trim().length === 0) { + return null; + } + return ( + { + setValue(null); + onChange(null); + }} + > + + + ); + }; + + const renderOpenButton = () => { + if (value) { + return ; + } + return ( + + + + ); + }; + + return ( + + {label} + + {renderOpenButton()} + {renderResetButton()} + + setAnchorEl(null)} + MenuListProps={{ + sx: { height: 'auto', padding: 0 }, + }} + > + { + setValue(v); + onChange(v); + }} + /> + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx new file mode 100644 index 0000000..eeeddda --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx @@ -0,0 +1,94 @@ +import React, { useState } from 'react'; +import { HexColorInput, HexColorPicker } from 'react-colorful'; + +import { Box, Stack, SxProps } from '@mui/material'; + +import Swatch from './Swatch'; + +const DEFAULT_PRESET_COLORS = [ + '#E11D48', + '#DB2777', + '#C026D3', + '#9333EA', + '#7C3AED', + '#4F46E5', + '#2563EB', + '#0284C7', + '#0891B2', + '#0D9488', + '#059669', + '#16A34A', + '#65A30D', + '#CA8A04', + '#D97706', + '#EA580C', + '#DC2626', + '#FFFFFF', + '#FAFAFA', + '#F5F5F5', + '#E5E5E5', + '#D4D4D4', + '#A3A3A3', + '#737373', + '#525252', + '#404040', + '#262626', + '#171717', + '#0A0A0A', + '#000000', +]; + +const SX: SxProps = { + p: 1, + '.react-colorful__pointer ': { + width: 16, + height: 16, + }, + '.react-colorful__saturation': { + mb: 1, + borderRadius: '4px', + }, + '.react-colorful__last-control': { + borderRadius: '4px', + }, + '.react-colorful__hue-pointer': { + width: '4px', + borderRadius: '4px', + height: 24, + cursor: 'col-resize', + }, + '.react-colorful__saturation-pointer': { + cursor: 'all-scroll', + }, + input: { + padding: 1, + border: '1px solid', + borderColor: 'grey.300', + borderRadius: '4px', + width: '100%', + }, +}; + +type Props = { + value: string; + onChange: (v: string) => void; +}; +export default function Picker({ value, onChange }: Props) { + const [internalValue, setInternalValue] = useState(value); + const handleChange = (v: string) => { + setInternalValue(v); + if (/^#[0-9a-fA-F]{6}$/.test(v)) { + onChange(v); + } + }; + + return ( + + + + + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx new file mode 100644 index 0000000..c87d82b --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx @@ -0,0 +1,44 @@ +import React from 'react'; + +import { Box, Button, SxProps } from '@mui/material'; + +type Props = { + paletteColors: string[]; + value: string; + onChange: (value: string) => void; +}; + +const TILE_BUTTON: SxProps = { + width: 24, + height: 24, +}; +export default function Swatch({ paletteColors, value, onChange }: Props) { + const renderButton = (colorValue: string) => { + return ( + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/ToggleSamplesPanelButton.tsx b/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/ToggleSamplesPanelButton.tsx new file mode 100644 index 0000000..f88c568 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/ToggleSamplesPanelButton.tsx @@ -0,0 +1,22 @@ +import React from 'react'; + +import { FirstPageOutlined, MenuOutlined } from '@mui/icons-material'; +import { IconButton } from '@mui/material'; + +import { + toggleSamplesDrawerOpen, + useSamplesDrawerOpen, +} from '../../documents/editor/EditorContext'; + +function useIcon() { + const samplesDrawerOpen = useSamplesDrawerOpen(); + if (samplesDrawerOpen) { + return ; + } + return ; +} + +export default function ToggleSamplesPanelButton() { + const icon = useIcon(); + return {icon}; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/index.tsx new file mode 100644 index 0000000..0639c4a --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/SamplesDrawer/index.tsx @@ -0,0 +1,55 @@ +import React from 'react'; + +import { Drawer, Stack, Typography } from '@mui/material'; + +import { useSamplesDrawerOpen } from '../../documents/editor/EditorContext'; + +import SidebarButton from './SidebarButton'; + +export const SAMPLES_DRAWER_WIDTH = 240; + +export default function SamplesDrawer() { + const samplesDrawerOpen = useSamplesDrawerOpen(); + + return ( + + + + + Samples + + + + Empty + Welcome email + + One-time passcode (OTP) + + Reset password + E-commerce receipt + + Subscription receipt + + + Reservation reminder + + Post metrics + + Respond to inquiry + + + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/DownloadJson/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/DownloadJson/index.tsx new file mode 100644 index 0000000..f891f79 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/DownloadJson/index.tsx @@ -0,0 +1,20 @@ +import React, { useMemo } from 'react'; + +import { FileDownloadOutlined } from '@mui/icons-material'; +import { IconButton, Tooltip } from '@mui/material'; + +import { useDocument } from '../../../documents/editor/EditorContext'; + +export default function DownloadJson() { + const doc = useDocument(); + const href = useMemo(() => { + return `data:text/plain,${encodeURIComponent(JSON.stringify(doc, null, ' '))}`; + }, [doc]); + return ( + + + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/HtmlPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/HtmlPanel.tsx new file mode 100644 index 0000000..a0ab352 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/HtmlPanel.tsx @@ -0,0 +1,13 @@ +import React, { useMemo } from 'react'; + +import { renderToStaticMarkup } from '@usewaypoint/email-builder'; + +import { useDocument } from '../../documents/editor/EditorContext'; + +import HighlightedCodePanel from './helper/HighlightedCodePanel'; + +export default function HtmlPanel() { + const document = useDocument(); + const code = useMemo(() => renderToStaticMarkup(document, { rootBlockId: 'root' }), [document]); + return ; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/ImportJsonDialog.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/ImportJsonDialog.tsx new file mode 100644 index 0000000..2756a71 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/ImportJsonDialog.tsx @@ -0,0 +1,89 @@ +import React, { useState } from 'react'; + +import { + Alert, + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Link, + TextField, + Typography, +} from '@mui/material'; + +import { resetDocument } from '../../../documents/editor/EditorContext'; + +import validateJsonStringValue from './validateJsonStringValue'; + +type ImportJsonDialogProps = { + onClose: () => void; +}; +export default function ImportJsonDialog({ onClose }: ImportJsonDialogProps) { + const [value, setValue] = useState(''); + const [error, setError] = useState(null); + + const handleChange: React.ChangeEventHandler = (ev) => { + const v = ev.currentTarget.value; + setValue(v); + const { error } = validateJsonStringValue(v); + setError(error ?? null); + }; + + let errorAlert = null; + if (error) { + errorAlert = {error}; + } + + return ( + + Import JSON +
{ + ev.preventDefault(); + const { error, data } = validateJsonStringValue(value); + setError(error ?? null); + if (!data) { + return; + } + resetDocument(data); + onClose(); + }} + > + + + Copy and paste an EmailBuilder.js JSON ( + + example + + ). + + {errorAlert} + + + + + + +
+
+ ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/index.tsx new file mode 100644 index 0000000..afc5f1e --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/index.tsx @@ -0,0 +1,26 @@ +import React, { useState } from 'react'; + +import { FileUploadOutlined } from '@mui/icons-material'; +import { IconButton, Tooltip } from '@mui/material'; + +import ImportJsonDialog from './ImportJsonDialog'; + +export default function ImportJson() { + const [open, setOpen] = useState(false); + + let dialog = null; + if (open) { + dialog = setOpen(false)} />; + } + + return ( + <> + + setOpen(true)}> + + + + {dialog} + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/validateJsonStringValue.ts b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/validateJsonStringValue.ts new file mode 100644 index 0000000..ffa4b32 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/ImportJson/validateJsonStringValue.ts @@ -0,0 +1,24 @@ +import { EditorConfigurationSchema, TEditorConfiguration } from '../../../documents/editor/core'; + +type TResult = + { error: string; data?: undefined } | { data: TEditorConfiguration; error?: undefined }; + +export default function validateTextAreaValue(value: string): TResult { + let jsonObject = undefined; + try { + jsonObject = JSON.parse(value); + } catch { + return { error: 'Invalid json' }; + } + + const parseResult = EditorConfigurationSchema.safeParse(jsonObject); + if (!parseResult.success) { + return { error: 'Invalid JSON schema' }; + } + + if (!parseResult.data.root) { + return { error: 'Missing "root" node' }; + } + + return { data: parseResult.data }; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/JsonPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/JsonPanel.tsx new file mode 100644 index 0000000..ce628ec --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/JsonPanel.tsx @@ -0,0 +1,11 @@ +import React, { useMemo } from 'react'; + +import { useDocument } from '../../documents/editor/EditorContext'; + +import HighlightedCodePanel from './helper/HighlightedCodePanel'; + +export default function JsonPanel() { + const document = useDocument(); + const code = useMemo(() => JSON.stringify(document, null, ' '), [document]); + return ; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/MainTabsGroup.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/MainTabsGroup.tsx new file mode 100644 index 0000000..07deb16 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/MainTabsGroup.tsx @@ -0,0 +1,64 @@ +import React from 'react'; + +import { + CodeOutlined, + DataObjectOutlined, + EditOutlined, + PreviewOutlined, +} from '@mui/icons-material'; +import { Tab, Tabs, Tooltip } from '@mui/material'; + +import { setSelectedMainTab, useSelectedMainTab } from '../../documents/editor/EditorContext'; + +export default function MainTabsGroup() { + const selectedMainTab = useSelectedMainTab(); + const handleChange = (_: unknown, v: unknown) => { + switch (v) { + case 'json': + case 'preview': + case 'editor': + case 'html': + setSelectedMainTab(v); + return; + default: + setSelectedMainTab('editor'); + } + }; + + return ( + + + + + } + /> + + + + } + /> + + + + } + /> + + + + } + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/HighlightedCodePanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/HighlightedCodePanel.tsx new file mode 100644 index 0000000..e27abe8 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/HighlightedCodePanel.tsx @@ -0,0 +1,40 @@ +import React, { useEffect, useState } from 'react'; + +import { html, json } from './highlighters'; + +type TextEditorPanelProps = { + type: 'json' | 'html' | 'javascript'; + value: string; +}; +export default function HighlightedCodePanel({ type, value }: TextEditorPanelProps) { + const [code, setCode] = useState(null); + + useEffect(() => { + switch (type) { + case 'html': + html(value).then(setCode); + return; + case 'json': + json(value).then(setCode); + return; + } + }, [setCode, value, type]); + + if (code === null) { + return null; + } + + return ( +
 {
+        const s = window.getSelection();
+        if (s === null) {
+          return;
+        }
+        s.selectAllChildren(ev.currentTarget);
+      }}
+    />
+  );
+}
diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/highlighters.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/highlighters.tsx
new file mode 100644
index 0000000..c53dae8
--- /dev/null
+++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/helper/highlighters.tsx
@@ -0,0 +1,28 @@
+import hljs from 'highlight.js';
+import jsonHighlighter from 'highlight.js/lib/languages/json';
+import xmlHighlighter from 'highlight.js/lib/languages/xml';
+import prettierPluginBabel from 'prettier/plugins/babel';
+import prettierPluginEstree from 'prettier/plugins/estree';
+import prettierPluginHtml from 'prettier/plugins/html';
+import { format } from 'prettier/standalone';
+
+hljs.registerLanguage('json', jsonHighlighter);
+hljs.registerLanguage('html', xmlHighlighter);
+
+export async function html(value: string): Promise {
+  const prettyValue = await format(value, {
+    parser: 'html',
+    plugins: [prettierPluginHtml],
+  });
+  return hljs.highlight(prettyValue, { language: 'html' }).value;
+}
+
+export async function json(value: string): Promise {
+  const prettyValue = await format(value, {
+    parser: 'json',
+    printWidth: 0,
+    trailingComma: 'all',
+    plugins: [prettierPluginBabel, prettierPluginEstree],
+  });
+  return hljs.highlight(prettyValue, { language: 'javascript' }).value;
+}
diff --git a/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/index.tsx
new file mode 100644
index 0000000..426995a
--- /dev/null
+++ b/packages/post-kit-editor/src/email-builder-ui/App/TemplatePanel/index.tsx
@@ -0,0 +1,132 @@
+import React from 'react';
+
+import { MonitorOutlined, PhoneIphoneOutlined } from '@mui/icons-material';
+import { Box, Stack, SxProps, ToggleButton, ToggleButtonGroup, Tooltip } from '@mui/material';
+import { Reader } from '@usewaypoint/email-builder';
+
+import EditorBlock from '../../documents/editor/EditorBlock';
+import {
+  setSelectedScreenSize,
+  useDocument,
+  useSelectedMainTab,
+  useSelectedScreenSize,
+} from '../../documents/editor/EditorContext';
+import ToggleInspectorPanelButton from '../InspectorDrawer/ToggleInspectorPanelButton';
+import ToggleSamplesPanelButton from '../SamplesDrawer/ToggleSamplesPanelButton';
+
+import DownloadJson from './DownloadJson';
+import HtmlPanel from './HtmlPanel';
+import ImportJson from './ImportJson';
+import JsonPanel from './JsonPanel';
+import MainTabsGroup from './MainTabsGroup';
+
+export default function TemplatePanel() {
+  const document = useDocument();
+  const selectedMainTab = useSelectedMainTab();
+  const selectedScreenSize = useSelectedScreenSize();
+
+  let mainBoxSx: SxProps = {
+    height: '100%',
+  };
+  if (selectedScreenSize === 'mobile') {
+    mainBoxSx = {
+      ...mainBoxSx,
+      margin: '32px auto',
+      width: 370,
+      height: 800,
+      boxShadow:
+        'rgba(33, 36, 67, 0.04) 0px 10px 20px, rgba(33, 36, 67, 0.04) 0px 2px 6px, rgba(33, 36, 67, 0.04) 0px 0px 1px',
+    };
+  }
+
+  const handleScreenSizeChange = (_: unknown, value: unknown) => {
+    switch (value) {
+      case 'mobile':
+      case 'desktop':
+        setSelectedScreenSize(value);
+        return;
+      default:
+        setSelectedScreenSize('desktop');
+    }
+  };
+
+  const renderMainPanel = () => {
+    switch (selectedMainTab) {
+      case 'editor':
+        return (
+          
+            
+          
+        );
+      case 'preview':
+        return (
+          
+            
+          
+        );
+      case 'html':
+        return ;
+      case 'json':
+        return ;
+    }
+  };
+
+  return (
+    <>
+      
+        
+        
+          
+            
+          
+          
+            
+            
+            
+              
+                
+                  
+                
+              
+              
+                
+                  
+                
+              
+            
+          
+        
+        
+      
+      
+        {renderMainPanel()}
+      
+    
+  );
+}
diff --git a/packages/post-kit-editor/src/email-builder-ui/App/index.tsx b/packages/post-kit-editor/src/email-builder-ui/App/index.tsx
new file mode 100644
index 0000000..1e84150
--- /dev/null
+++ b/packages/post-kit-editor/src/email-builder-ui/App/index.tsx
@@ -0,0 +1,42 @@
+import React from 'react';
+
+import { Stack, useTheme } from '@mui/material';
+
+import { useInspectorDrawerOpen, useSamplesDrawerOpen } from '../documents/editor/EditorContext';
+
+import InspectorDrawer, { INSPECTOR_DRAWER_WIDTH } from './InspectorDrawer';
+import SamplesDrawer, { SAMPLES_DRAWER_WIDTH } from './SamplesDrawer';
+import TemplatePanel from './TemplatePanel';
+
+function useDrawerTransition(cssProperty: 'margin-left' | 'margin-right', open: boolean) {
+  const { transitions } = useTheme();
+  return transitions.create(cssProperty, {
+    easing: !open ? transitions.easing.sharp : transitions.easing.easeOut,
+    duration: !open ? transitions.duration.leavingScreen : transitions.duration.enteringScreen,
+  });
+}
+
+export default function App() {
+  const inspectorDrawerOpen = useInspectorDrawerOpen();
+  const samplesDrawerOpen = useSamplesDrawerOpen();
+
+  const marginLeftTransition = useDrawerTransition('margin-left', samplesDrawerOpen);
+  const marginRightTransition = useDrawerTransition('margin-right', inspectorDrawerOpen);
+
+  return (
+    <>
+      
+      
+
+      
+        
+      
+    
+  );
+}
diff --git a/packages/post-kit-editor/src/email-builder-ui/EmailBuilderMuiSurface.tsx b/packages/post-kit-editor/src/email-builder-ui/EmailBuilderMuiSurface.tsx
new file mode 100644
index 0000000..50957f6
--- /dev/null
+++ b/packages/post-kit-editor/src/email-builder-ui/EmailBuilderMuiSurface.tsx
@@ -0,0 +1,89 @@
+import React, { useEffect, useRef } from 'react';
+
+import { CssBaseline, ThemeProvider } from '@mui/material';
+import { Reader } from '@usewaypoint/email-builder';
+
+import type { EmailBuilderDocument } from '../types';
+import App from './App';
+import { resetDocument, subscribeDocument } from './documents/editor/EditorContext';
+import type { TEditorConfiguration } from './documents/editor/core';
+import theme from './theme';
+
+export interface EmailBuilderMuiSurfaceProps {
+  document: EmailBuilderDocument;
+  onChange: (document: EmailBuilderDocument) => void;
+  readOnly?: boolean;
+}
+
+function asEditorDocument(document: EmailBuilderDocument): TEditorConfiguration {
+  return document as TEditorConfiguration;
+}
+
+/**
+ * Controlled MUI EmailBuilder.js canvas surface for PostKit.
+ * Syncs the Zustand editor store with parent `document` / `onChange`.
+ *
+ * The first controlled document is applied synchronously during render so SSR /
+ * `renderToStaticMarkup` paints the correct tree; later prop updates sync in
+ * an effect to avoid updating subscribers while React is rendering.
+ */
+export function EmailBuilderMuiSurface({
+  document,
+  onChange,
+  readOnly = false,
+}: EmailBuilderMuiSurfaceProps): JSX.Element {
+  const lastEmittedJsonRef = useRef(null);
+  const hasAppliedInitialRef = useRef(false);
+  const incomingJson = JSON.stringify(document);
+
+  if (!readOnly && !hasAppliedInitialRef.current) {
+    hasAppliedInitialRef.current = true;
+    lastEmittedJsonRef.current = incomingJson;
+    resetDocument(asEditorDocument(document));
+  }
+
+  useEffect(() => {
+    if (readOnly) {
+      return;
+    }
+    if (incomingJson === lastEmittedJsonRef.current) {
+      return;
+    }
+    lastEmittedJsonRef.current = incomingJson;
+    resetDocument(asEditorDocument(document));
+  }, [document, incomingJson, readOnly]);
+
+  useEffect(() => {
+    if (readOnly) {
+      return;
+    }
+    return subscribeDocument((next) => {
+      const json = JSON.stringify(next);
+      if (json === lastEmittedJsonRef.current) {
+        return;
+      }
+      lastEmittedJsonRef.current = json;
+      onChange(next as EmailBuilderDocument);
+    });
+  }, [onChange, readOnly]);
+
+  if (readOnly) {
+    return (
+      
+ + + + +
+ ); + } + + return ( +
+ + + + +
+ ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/NOTICE.md b/packages/post-kit-editor/src/email-builder-ui/NOTICE.md new file mode 100644 index 0000000..556f475 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/NOTICE.md @@ -0,0 +1,14 @@ +# Notice — EmailBuilder.js MUI sample + +Parts of `email-builder-ui/` are adapted from the +[usewaypoint/email-builder-js](https://github.com/usewaypoint/email-builder-js) +Vite + MUI example (`examples/vite-emailbuilder-mui`), licensed under the MIT +License. + +Copyright (c) Waypoint / usewaypoint contributors. + +Modifications for PostKit: + +- Controlled document sync via `EmailBuilderMuiSurface` (no `window.location.hash`) +- Samples drawer without Waypoint marketing / UTM links +- Share-via-hash removed; Import/Download JSON retained diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerEditor.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerEditor.tsx new file mode 100644 index 0000000..2814ea0 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerEditor.tsx @@ -0,0 +1,61 @@ +import React from 'react'; + +import { ColumnsContainer as BaseColumnsContainer } from '@usewaypoint/block-columns-container'; + +import { useCurrentBlockId } from '../../editor/EditorBlock'; +import { setDocument, setSelectedBlockId } from '../../editor/EditorContext'; +import EditorChildrenIds, { EditorChildrenChange } from '../helpers/EditorChildrenIds'; + +import ColumnsContainerPropsSchema, { ColumnsContainerProps } from './ColumnsContainerPropsSchema'; + +const EMPTY_COLUMNS = [{ childrenIds: [] }, { childrenIds: [] }, { childrenIds: [] }]; + +export default function ColumnsContainerEditor({ style, props }: ColumnsContainerProps) { + const currentBlockId = useCurrentBlockId(); + + const { columns, ...restProps } = props ?? {}; + const columnsValue = columns ?? EMPTY_COLUMNS; + + const updateColumn = ( + columnIndex: 0 | 1 | 2, + { block, blockId, childrenIds }: EditorChildrenChange, + ) => { + const nColumns = [...columnsValue]; + nColumns[columnIndex] = { childrenIds }; + setDocument({ + [blockId]: block, + [currentBlockId]: { + type: 'ColumnsContainer', + data: ColumnsContainerPropsSchema.parse({ + style, + props: { + ...restProps, + columns: nColumns, + }, + }), + }, + }); + setSelectedBlockId(blockId); + }; + + return ( + updateColumn(0, change)} + />, + updateColumn(1, change)} + />, + updateColumn(2, change)} + />, + ]} + /> + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.ts b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.ts new file mode 100644 index 0000000..7e5d5cd --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.ts @@ -0,0 +1,23 @@ +import { z } from 'zod'; + +import { ColumnsContainerPropsSchema as BaseColumnsContainerPropsSchema } from '@usewaypoint/block-columns-container'; + +const BasePropsShape = BaseColumnsContainerPropsSchema.shape.props.unwrap().unwrap().shape; + +const ColumnsContainerPropsSchema = z.object({ + style: BaseColumnsContainerPropsSchema.shape.style, + props: z + .object({ + ...BasePropsShape, + columns: z.tuple([ + z.object({ childrenIds: z.array(z.string()) }), + z.object({ childrenIds: z.array(z.string()) }), + z.object({ childrenIds: z.array(z.string()) }), + ]), + }) + .optional() + .nullable(), +}); + +export type ColumnsContainerProps = z.infer; +export default ColumnsContainerPropsSchema; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerEditor.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerEditor.tsx new file mode 100644 index 0000000..6e027a9 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerEditor.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +import { Container as BaseContainer } from '@usewaypoint/block-container'; + +import { useCurrentBlockId } from '../../editor/EditorBlock'; +import { setDocument, setSelectedBlockId, useDocument } from '../../editor/EditorContext'; +import EditorChildrenIds from '../helpers/EditorChildrenIds'; + +import { ContainerProps } from './ContainerPropsSchema'; + +export default function ContainerEditor({ style, props }: ContainerProps) { + const childrenIds = props?.childrenIds ?? []; + + const document = useDocument(); + const currentBlockId = useCurrentBlockId(); + + return ( + + { + setDocument({ + [blockId]: block, + [currentBlockId]: { + type: 'Container', + data: { + ...document[currentBlockId].data, + props: { childrenIds: childrenIds }, + }, + }, + }); + setSelectedBlockId(blockId); + }} + /> + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerPropsSchema.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerPropsSchema.tsx new file mode 100644 index 0000000..a0188f6 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/Container/ContainerPropsSchema.tsx @@ -0,0 +1,17 @@ +import { z } from 'zod'; + +import { ContainerPropsSchema as BaseContainerPropsSchema } from '@usewaypoint/block-container'; + +const ContainerPropsSchema = z.object({ + style: BaseContainerPropsSchema.shape.style, + props: z + .object({ + childrenIds: z.array(z.string()).optional().nullable(), + }) + .optional() + .nullable(), +}); + +export default ContainerPropsSchema; + +export type ContainerProps = z.infer; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutEditor.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutEditor.tsx new file mode 100644 index 0000000..0b5002d --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutEditor.tsx @@ -0,0 +1,103 @@ +import React from 'react'; + +import { useCurrentBlockId } from '../../editor/EditorBlock'; +import { setDocument, setSelectedBlockId, useDocument } from '../../editor/EditorContext'; +import EditorChildrenIds from '../helpers/EditorChildrenIds'; + +import { EmailLayoutProps } from './EmailLayoutPropsSchema'; + +function getFontFamily(fontFamily: EmailLayoutProps['fontFamily']) { + const f = fontFamily ?? 'MODERN_SANS'; + switch (f) { + case 'MODERN_SANS': + return '"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif'; + case 'BOOK_SANS': + return 'Optima, Candara, "Noto Sans", source-sans-pro, sans-serif'; + case 'ORGANIC_SANS': + return 'Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", source-sans-pro, sans-serif'; + case 'GEOMETRIC_SANS': + return 'Avenir, "Avenir Next LT Pro", Montserrat, Corbel, "URW Gothic", source-sans-pro, sans-serif'; + case 'HEAVY_SANS': + return 'Bahnschrift, "DIN Alternate", "Franklin Gothic Medium", "Nimbus Sans Narrow", sans-serif-condensed, sans-serif'; + case 'ROUNDED_SANS': + return 'ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa, Manjari, "Arial Rounded MT Bold", Calibri, source-sans-pro, sans-serif'; + case 'MODERN_SERIF': + return 'Charter, "Bitstream Charter", "Sitka Text", Cambria, serif'; + case 'BOOK_SERIF': + return '"Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, serif'; + case 'MONOSPACE': + return '"Nimbus Mono PS", "Courier New", "Cutive Mono", monospace'; + } +} + +export default function EmailLayoutEditor(props: EmailLayoutProps) { + const childrenIds = props.childrenIds ?? []; + const document = useDocument(); + const currentBlockId = useCurrentBlockId(); + + return ( +
{ + setSelectedBlockId(null); + }} + style={{ + backgroundColor: props.backdropColor ?? '#F5F5F5', + color: props.textColor ?? '#262626', + fontFamily: getFontFamily(props.fontFamily), + fontSize: '16px', + fontWeight: '400', + letterSpacing: '0.15008px', + lineHeight: '1.5', + margin: '0', + padding: '32px 0', + width: '100%', + minHeight: '100%', + }} + > + { + const v = props.borderColor; + if (!v) { + return undefined; + } + return `1px solid ${v}`; + })(), + }} + role="presentation" + cellSpacing="0" + cellPadding="0" + border={0} + > + + + + + +
+ { + setDocument({ + [blockId]: block, + [currentBlockId]: { + type: 'EmailLayout', + data: { + ...document[currentBlockId].data, + childrenIds: childrenIds, + }, + }, + }); + setSelectedBlockId(blockId); + }} + /> +
+
+ ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutPropsSchema.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutPropsSchema.tsx new file mode 100644 index 0000000..880f3ae --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/EmailLayout/EmailLayoutPropsSchema.tsx @@ -0,0 +1,36 @@ +import { z } from 'zod'; + +const COLOR_SCHEMA = z + .string() + .regex(/^#[0-9a-fA-F]{6}$/) + .nullable() + .optional(); + +const FONT_FAMILY_SCHEMA = z + .enum([ + 'MODERN_SANS', + 'BOOK_SANS', + 'ORGANIC_SANS', + 'GEOMETRIC_SANS', + 'HEAVY_SANS', + 'ROUNDED_SANS', + 'MODERN_SERIF', + 'BOOK_SERIF', + 'MONOSPACE', + ]) + .nullable() + .optional(); + +const EmailLayoutPropsSchema = z.object({ + backdropColor: COLOR_SCHEMA, + borderColor: COLOR_SCHEMA, + borderRadius: z.number().optional().nullable(), + canvasColor: COLOR_SCHEMA, + textColor: COLOR_SCHEMA, + fontFamily: FONT_FAMILY_SCHEMA, + childrenIds: z.array(z.string()).optional().nullable(), +}); + +export default EmailLayoutPropsSchema; + +export type EmailLayoutProps = z.infer; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.tsx new file mode 100644 index 0000000..c045dc4 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.tsx @@ -0,0 +1,36 @@ +import React from 'react'; + +import { Box, Button, SxProps, Typography } from '@mui/material'; + +type BlockMenuButtonProps = { + label: string; + icon: React.ReactNode; + onClick: () => void; +}; + +const BUTTON_SX: SxProps = { p: 1.5, display: 'flex', flexDirection: 'column' }; +const ICON_SX: SxProps = { + mb: 0.75, + width: '100%', + bgcolor: 'cadet.200', + display: 'flex', + justifyContent: 'center', + p: 1, + border: '1px solid', + borderColor: 'cadet.300', +}; + +export default function BlockTypeButton({ label, icon, onClick }: BlockMenuButtonProps) { + return ( + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.tsx new file mode 100644 index 0000000..5b64588 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.tsx @@ -0,0 +1,44 @@ +import React from 'react'; + +import { Box, Menu } from '@mui/material'; + +import { TEditorBlock } from '../../../../editor/core'; + +import BlockButton from './BlockButton'; +import { BUTTONS } from './buttons'; + +type BlocksMenuProps = { + anchorEl: HTMLElement | null; + setAnchorEl: (v: HTMLElement | null) => void; + onSelect: (block: TEditorBlock) => void; +}; +export default function BlocksMenu({ anchorEl, setAnchorEl, onSelect }: BlocksMenuProps) { + const onClose = () => { + setAnchorEl(null); + }; + + const onClick = (block: TEditorBlock) => { + onSelect(block); + setAnchorEl(null); + }; + + if (anchorEl === null) { + return null; + } + + return ( + + + {BUTTONS.map((k, i) => ( + onClick(k.block())} /> + ))} + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.tsx new file mode 100644 index 0000000..fc8249c --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.tsx @@ -0,0 +1,64 @@ +import React, { useEffect, useState } from 'react'; + +import { AddOutlined } from '@mui/icons-material'; +import { Fade, IconButton } from '@mui/material'; + +type Props = { + buttonElement: HTMLElement | null; + onClick: () => void; +}; +export default function DividerButton({ buttonElement, onClick }: Props) { + const [visible, setVisible] = useState(false); + + useEffect(() => { + function listener({ clientX, clientY }: MouseEvent) { + if (!buttonElement) { + return; + } + const rect = buttonElement.getBoundingClientRect(); + const rectY = rect.y; + const bottomX = rect.x; + const topX = bottomX + rect.width; + + if (Math.abs(clientY - rectY) < 20) { + if (bottomX < clientX && clientX < topX) { + setVisible(true); + return; + } + } + setVisible(false); + } + window.addEventListener('mousemove', listener); + return () => { + window.removeEventListener('mousemove', listener); + }; + }, [buttonElement, setVisible]); + + return ( + + { + ev.stopPropagation(); + onClick(); + }} + > + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.tsx new file mode 100644 index 0000000..e14519a --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.tsx @@ -0,0 +1,36 @@ +import React from 'react'; + +import { AddOutlined } from '@mui/icons-material'; +import { ButtonBase } from '@mui/material'; + +type Props = { + onClick: () => void; +}; +export default function PlaceholderButton({ onClick }: Props) { + return ( + { + ev.stopPropagation(); + onClick(); + }} + sx={{ + display: 'flex', + alignContent: 'center', + justifyContent: 'center', + height: 48, + width: '100%', + bgcolor: 'rgba(0,0,0, 0.05)', + }} + > + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.tsx new file mode 100644 index 0000000..1242761 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.tsx @@ -0,0 +1,160 @@ +import React from 'react'; + +import { + AccountCircleOutlined, + Crop32Outlined, + HMobiledataOutlined, + HorizontalRuleOutlined, + HtmlOutlined, + ImageOutlined, + LibraryAddOutlined, + NotesOutlined, + SmartButtonOutlined, + ViewColumnOutlined, +} from '@mui/icons-material'; + +import { TEditorBlock } from '../../../../editor/core'; + +type TButtonProps = { + label: string; + icon: JSX.Element; + block: () => TEditorBlock; +}; +export const BUTTONS: TButtonProps[] = [ + { + label: 'Heading', + icon: , + block: () => ({ + type: 'Heading', + data: { + props: { text: 'Hello friend' }, + style: { + padding: { top: 16, bottom: 16, left: 24, right: 24 }, + }, + }, + }), + }, + { + label: 'Text', + icon: , + block: () => ({ + type: 'Text', + data: { + props: { text: 'My new text block' }, + style: { + padding: { top: 16, bottom: 16, left: 24, right: 24 }, + fontWeight: 'normal', + }, + }, + }), + }, + + { + label: 'Button', + icon: , + block: () => ({ + type: 'Button', + data: { + props: { + text: 'Button', + url: 'https://www.usewaypoint.com', + }, + style: { padding: { top: 16, bottom: 16, left: 24, right: 24 } }, + }, + }), + }, + { + label: 'Image', + icon: , + block: () => ({ + type: 'Image', + data: { + props: { + url: 'https://assets.usewaypoint.com/sample-image.jpg', + alt: 'Sample product', + contentAlignment: 'middle', + linkHref: null, + }, + style: { padding: { top: 16, bottom: 16, left: 24, right: 24 } }, + }, + }), + }, + { + label: 'Avatar', + icon: , + block: () => ({ + type: 'Avatar', + data: { + props: { + imageUrl: 'https://ui-avatars.com/api/?size=128', + shape: 'circle', + }, + style: { padding: { top: 16, bottom: 16, left: 24, right: 24 } }, + }, + }), + }, + { + label: 'Divider', + icon: , + block: () => ({ + type: 'Divider', + data: { + style: { padding: { top: 16, right: 0, bottom: 16, left: 0 } }, + props: { + lineColor: '#CCCCCC', + }, + }, + }), + }, + { + label: 'Spacer', + icon: , + block: () => ({ + type: 'Spacer', + data: {}, + }), + }, + { + label: 'Html', + icon: , + block: () => ({ + type: 'Html', + data: { + props: { contents: 'Hello world' }, + style: { + fontSize: 16, + textAlign: null, + padding: { top: 16, bottom: 16, left: 24, right: 24 }, + }, + }, + }), + }, + { + label: 'Columns', + icon: , + block: () => ({ + type: 'ColumnsContainer', + data: { + props: { + columnsGap: 16, + columnsCount: 3, + columns: [{ childrenIds: [] }, { childrenIds: [] }, { childrenIds: [] }], + }, + style: { padding: { top: 16, bottom: 16, left: 24, right: 24 } }, + }, + }), + }, + { + label: 'Container', + icon: , + block: () => ({ + type: 'Container', + data: { + style: { padding: { top: 16, bottom: 16, left: 24, right: 24 } }, + }, + }), + }, + + // { label: 'ProgressBar', icon: , block: () => ({}) }, + // { label: 'LoopContainer', icon: , block: () => ({}) }, +]; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.tsx new file mode 100644 index 0000000..69cd8ad --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.tsx @@ -0,0 +1,37 @@ +import React, { useState } from 'react'; + +import { TEditorBlock } from '../../../../editor/core'; + +import BlocksMenu from './BlocksMenu'; +import DividerButton from './DividerButton'; +import PlaceholderButton from './PlaceholderButton'; + +type Props = { + placeholder?: boolean; + onSelect: (block: TEditorBlock) => void; +}; +export default function AddBlockButton({ onSelect, placeholder }: Props) { + const [menuAnchorEl, setMenuAnchorEl] = useState(null); + const [buttonElement, setButtonElement] = useState(null); + + const handleButtonClick = () => { + setMenuAnchorEl(buttonElement); + }; + + const renderButton = () => { + if (placeholder) { + return ; + } else { + return ; + } + }; + + return ( + <> +
+ {renderButton()} +
+ + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/index.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/index.tsx new file mode 100644 index 0000000..eee5313 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/EditorChildrenIds/index.tsx @@ -0,0 +1,58 @@ +import React, { Fragment } from 'react'; + +import { TEditorBlock } from '../../../editor/core'; +import EditorBlock from '../../../editor/EditorBlock'; + +import AddBlockButton from './AddBlockMenu'; + +export type EditorChildrenChange = { + blockId: string; + block: TEditorBlock; + childrenIds: string[]; +}; + +function generateId() { + return `block-${Date.now()}`; +} + +export type EditorChildrenIdsProps = { + childrenIds: string[] | null | undefined; + onChange: (val: EditorChildrenChange) => void; +}; +export default function EditorChildrenIds({ childrenIds, onChange }: EditorChildrenIdsProps) { + const appendBlock = (block: TEditorBlock) => { + const blockId = generateId(); + return onChange({ + blockId, + block, + childrenIds: [...(childrenIds || []), blockId], + }); + }; + + const insertBlock = (block: TEditorBlock, index: number) => { + const blockId = generateId(); + const newChildrenIds = [...(childrenIds || [])]; + newChildrenIds.splice(index, 0, blockId); + return onChange({ + blockId, + block, + childrenIds: newChildrenIds, + }); + }; + + if (!childrenIds || childrenIds.length === 0) { + return ; + } + + return ( + <> + {childrenIds.map((childId, i) => ( + + insertBlock(block, i)} /> + + + ))} + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/TStyle.ts b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/TStyle.ts new file mode 100644 index 0000000..5903d1d --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/TStyle.ts @@ -0,0 +1,13 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +export type TStyle = { + backgroundColor?: any; + borderColor?: any; + borderRadius?: any; + color?: any; + fontFamily?: any; + fontSize?: any; + fontWeight?: any; + padding?: any; + textAlign?: any; +}; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.tsx new file mode 100644 index 0000000..7e42ca7 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.tsx @@ -0,0 +1,58 @@ +import React, { CSSProperties, useState } from 'react'; + +import { Box } from '@mui/material'; + +import { useCurrentBlockId } from '../../../editor/EditorBlock'; +import { setSelectedBlockId, useSelectedBlockId } from '../../../editor/EditorContext'; + +import TuneMenu from './TuneMenu'; + +type TEditorBlockWrapperProps = { + children: JSX.Element; +}; + +export default function EditorBlockWrapper({ children }: TEditorBlockWrapperProps) { + const selectedBlockId = useSelectedBlockId(); + const [mouseInside, setMouseInside] = useState(false); + const blockId = useCurrentBlockId(); + + let outline: CSSProperties['outline']; + if (selectedBlockId === blockId) { + outline = '2px solid rgba(0,121,204, 1)'; + } else if (mouseInside) { + outline = '2px solid rgba(0,121,204, 0.3)'; + } + + const renderMenu = () => { + if (selectedBlockId !== blockId) { + return null; + } + return ; + }; + + return ( + { + setMouseInside(true); + ev.stopPropagation(); + }} + onMouseLeave={() => { + setMouseInside(false); + }} + onClick={(ev) => { + setSelectedBlockId(blockId); + ev.stopPropagation(); + ev.preventDefault(); + }} + > + {renderMenu()} + {children} + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.tsx new file mode 100644 index 0000000..91a4c72 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.tsx @@ -0,0 +1,26 @@ +import React, { CSSProperties } from 'react'; + +import { TStyle } from '../TStyle'; + +type TReaderBlockWrapperProps = { + style: TStyle; + children: JSX.Element; +}; + +export default function ReaderBlockWrapper({ style, children }: TReaderBlockWrapperProps) { + const { padding, borderColor, ...restStyle } = style; + const cssStyle: CSSProperties = { + ...restStyle, + }; + + if (padding) { + const { top, bottom, left, right } = padding; + cssStyle.padding = `${top}px ${right}px ${bottom}px ${left}px`; + } + + if (borderColor) { + cssStyle.border = `1px solid ${borderColor}`; + } + + return
{children}
; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/TuneMenu.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/TuneMenu.tsx new file mode 100644 index 0000000..164cd14 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/block-wrappers/TuneMenu.tsx @@ -0,0 +1,262 @@ +import React from 'react'; + +import { + ArrowDownwardOutlined, + ArrowUpwardOutlined, + ContentCopyOutlined, + DeleteOutlined, +} from '@mui/icons-material'; +import { IconButton, Paper, Stack, SxProps, Tooltip } from '@mui/material'; + +import { TEditorBlock, TEditorConfiguration } from '../../../editor/core'; +import { resetDocument, setSelectedBlockId, useDocument } from '../../../editor/EditorContext'; +import { ColumnsContainerProps } from '../../ColumnsContainer/ColumnsContainerPropsSchema'; +import cloneDocumentBlock from '../cloneDocumentBlock'; + +const sx: SxProps = { + position: 'absolute', + top: 0, + left: -56, + borderRadius: 64, + paddingX: 0.5, + paddingY: 1, + zIndex: 'fab', +}; + +function findParentBlockId(blockId: string, document: TEditorConfiguration) { + for (const [id, b] of Object.entries(document)) { + if (id === blockId) { + continue; + } + const block = b as TEditorBlock; + switch (block.type) { + case 'EmailLayout': + if (block.data.childrenIds?.includes(blockId)) { + return id; + } + break; + case 'Container': + if (block.data.props?.childrenIds?.includes(blockId)) { + return id; + } + break; + case 'ColumnsContainer': + if (block.data.props?.columns?.some((col) => col.childrenIds?.includes(blockId))) { + return id; + } + break; + } + } + return null; +} + +type Props = { + blockId: string; +}; +export default function TuneMenu({ blockId }: Props) { + const document = useDocument(); + + const handleDuplicateClick = () => { + const parentBlockId = findParentBlockId(blockId, document); + + const { document: newDocument, blockId: newBlockId } = cloneDocumentBlock(document, blockId); + + if (parentBlockId) { + const parentBlock = newDocument[parentBlockId]; + switch (parentBlock.type) { + case 'EmailLayout': { + if (!parentBlock.data.childrenIds) { + parentBlock.data.childrenIds = []; + } + const index = parentBlock.data.childrenIds.indexOf(blockId); + parentBlock.data.childrenIds.splice(index + 1, 0, newBlockId); + break; + } + case 'Container': { + if (!parentBlock.data.props) { + parentBlock.data.props = {}; + } + if (!parentBlock.data.props.childrenIds) { + parentBlock.data.props.childrenIds = []; + } + const index = parentBlock.data.props.childrenIds.indexOf(blockId); + parentBlock.data.props.childrenIds.splice(index + 1, 0, newBlockId); + break; + } + case 'ColumnsContainer': + if (!parentBlock.data.props) { + parentBlock.data.props = { + columns: [{ childrenIds: [] }, { childrenIds: [] }, { childrenIds: [] }], + }; + } + + for (const column of parentBlock.data.props.columns) { + if (column.childrenIds.includes(blockId)) { + const index = column.childrenIds.indexOf(blockId); + column.childrenIds.splice(index + 1, 0, newBlockId); + } + } + break; + } + + resetDocument(newDocument); + setSelectedBlockId(newBlockId); + } + }; + + const handleDeleteClick = () => { + const filterChildrenIds = (childrenIds: string[] | null | undefined) => { + if (!childrenIds) { + return childrenIds; + } + return childrenIds.filter((f) => f !== blockId); + }; + const nDocument: typeof document = { ...document }; + for (const [id, b] of Object.entries(nDocument)) { + const block = b as TEditorBlock; + if (id === blockId) { + continue; + } + + switch (block.type) { + case 'EmailLayout': + nDocument[id] = { + ...block, + data: { + ...block.data, + childrenIds: filterChildrenIds(block.data.childrenIds), + }, + }; + break; + case 'Container': + nDocument[id] = { + ...block, + data: { + ...block.data, + props: { + ...block.data.props, + childrenIds: filterChildrenIds(block.data.props?.childrenIds), + }, + }, + }; + break; + case 'ColumnsContainer': + nDocument[id] = { + type: 'ColumnsContainer', + data: { + style: block.data.style, + props: { + ...block.data.props, + columns: block.data.props?.columns?.map((c) => ({ + childrenIds: filterChildrenIds(c.childrenIds), + })), + }, + } as ColumnsContainerProps, + }; + break; + default: + nDocument[id] = block; + } + } + delete nDocument[blockId]; + resetDocument(nDocument); + }; + + const handleMoveClick = (direction: 'up' | 'down') => { + const moveChildrenIds = (ids: string[] | null | undefined) => { + if (!ids) { + return ids; + } + const index = ids.indexOf(blockId); + if (index < 0) { + return ids; + } + + const childrenIds = [...ids]; + if (direction === 'up' && index > 0) { + [childrenIds[index], childrenIds[index - 1]] = [childrenIds[index - 1], childrenIds[index]]; + } else if (direction === 'down' && index < childrenIds.length - 1) { + [childrenIds[index], childrenIds[index + 1]] = [childrenIds[index + 1], childrenIds[index]]; + } + return childrenIds; + }; + + const nDocument: typeof document = { ...document }; + for (const [id, b] of Object.entries(nDocument)) { + const block = b as TEditorBlock; + if (id === blockId) { + continue; + } + + switch (block.type) { + case 'EmailLayout': + nDocument[id] = { + ...block, + data: { + ...block.data, + childrenIds: moveChildrenIds(block.data.childrenIds), + }, + }; + break; + case 'Container': + nDocument[id] = { + ...block, + data: { + ...block.data, + props: { + ...block.data.props, + childrenIds: moveChildrenIds(block.data.props?.childrenIds), + }, + }, + }; + break; + case 'ColumnsContainer': + nDocument[id] = { + type: 'ColumnsContainer', + data: { + style: block.data.style, + props: { + ...block.data.props, + columns: block.data.props?.columns?.map((c) => ({ + childrenIds: moveChildrenIds(c.childrenIds), + })), + }, + } as ColumnsContainerProps, + }; + break; + default: + nDocument[id] = block; + } + } + + resetDocument(nDocument); + setSelectedBlockId(blockId); + }; + + return ( + ev.stopPropagation()}> + + + handleMoveClick('up')} sx={{ color: 'text.primary' }}> + + + + + handleMoveClick('down')} sx={{ color: 'text.primary' }}> + + + + + + + + + + + + + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/cloneDocumentBlock.ts b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/cloneDocumentBlock.ts new file mode 100644 index 0000000..2b543fb --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/cloneDocumentBlock.ts @@ -0,0 +1,66 @@ +import { TEditorBlock, TEditorConfiguration } from '../../editor/core'; + +type TResult = { + document: TEditorConfiguration; + blockId: string; +}; + +function cloneChildrenIds(document: TEditorConfiguration, blockIds: string[]): string[] { + return blockIds.map((blockId) => { + const newBlock = cloneBlock(document, blockId); + const newBlockId = `block-${Date.now()}-${Math.floor(Math.random() * 1000)}`; + document[newBlockId] = newBlock; + return newBlockId; + }); +} + +function cloneBlock(document: TEditorConfiguration, blockId: string): TEditorBlock { + const clone = structuredClone(document[blockId]); + switch (clone.type) { + case 'EmailLayout': + throw new Error('Cloning EmailLayout blocks is not supported.'); + case 'Avatar': + case 'Button': + case 'Divider': + case 'Heading': + case 'Html': + case 'Image': + case 'Spacer': + case 'Text': + return clone; + case 'Container': + if (clone.data?.props?.childrenIds) { + clone.data.props.childrenIds = cloneChildrenIds(document, clone.data.props.childrenIds); + } + return clone; + case 'ColumnsContainer': + if (clone.data?.props?.columns) { + clone.data.props.columns[0].childrenIds = cloneChildrenIds( + document, + clone.data.props.columns[0].childrenIds, + ); + clone.data.props.columns[1].childrenIds = cloneChildrenIds( + document, + clone.data.props.columns[1].childrenIds, + ); + clone.data.props.columns[2].childrenIds = cloneChildrenIds( + document, + clone.data.props.columns[2].childrenIds, + ); + } + return clone; + } +} + +export default function cloneDocumentBlock( + originalDocument: TEditorConfiguration, + originalBlockId: string, +): TResult { + const document = { ...originalDocument }; + const blockId = `block-${Date.now()}-${Math.floor(Math.random() * 1000)}`; + document[blockId] = cloneBlock(document, originalBlockId); + return { + document, + blockId, + }; +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/fontFamily.ts b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/fontFamily.ts new file mode 100644 index 0000000..8cebb5c --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/fontFamily.ts @@ -0,0 +1,62 @@ +export const FONT_FAMILIES = [ + { + key: 'MODERN_SANS', + label: 'Modern sans', + value: '"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif', + }, + { + key: 'BOOK_SANS', + label: 'Book sans', + value: 'Optima, Candara, "Noto Sans", source-sans-pro, sans-serif', + }, + { + key: 'ORGANIC_SANS', + label: 'Organic sans', + value: 'Seravek, "Gill Sans Nova", Ubuntu, Calibri, "DejaVu Sans", source-sans-pro, sans-serif', + }, + { + key: 'GEOMETRIC_SANS', + label: 'Geometric sans', + value: + 'Avenir, "Avenir Next LT Pro", Montserrat, Corbel, "URW Gothic", source-sans-pro, sans-serif', + }, + { + key: 'HEAVY_SANS', + label: 'Heavy sans', + value: + 'Bahnschrift, "DIN Alternate", "Franklin Gothic Medium", "Nimbus Sans Narrow", sans-serif-condensed, sans-serif', + }, + { + key: 'ROUNDED_SANS', + label: 'Rounded sans', + value: + 'ui-rounded, "Hiragino Maru Gothic ProN", Quicksand, Comfortaa, Manjari, "Arial Rounded MT Bold", Calibri, source-sans-pro, sans-serif', + }, + { + key: 'MODERN_SERIF', + label: 'Modern serif', + value: 'Charter, "Bitstream Charter", "Sitka Text", Cambria, serif', + }, + { + key: 'BOOK_SERIF', + label: 'Book serif', + value: '"Iowan Old Style", "Palatino Linotype", "URW Palladio L", P052, serif', + }, + { + key: 'MONOSPACE', + label: 'Monospace', + value: '"Nimbus Mono PS", "Courier New", "Cutive Mono", monospace', + }, +]; + +export const FONT_FAMILY_NAMES = [ + 'MODERN_SANS', + 'BOOK_SANS', + 'ORGANIC_SANS', + 'GEOMETRIC_SANS', + 'HEAVY_SANS', + 'ROUNDED_SANS', + 'MODERN_SERIF', + 'BOOK_SERIF', + 'MONOSPACE', +] as const; diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/zod.ts b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/zod.ts new file mode 100644 index 0000000..7c975e2 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/zod.ts @@ -0,0 +1,28 @@ +import { z } from 'zod'; + +import { FONT_FAMILY_NAMES } from './fontFamily'; + +export function zColor() { + return z.string().regex(/^#[0-9a-fA-F]{6}$/); +} + +export function zFontFamily() { + return z.enum(FONT_FAMILY_NAMES); +} + +export function zFontWeight() { + return z.enum(['bold', 'normal']); +} + +export function zTextAlign() { + return z.enum(['left', 'center', 'right']); +} + +export function zPadding() { + return z.object({ + top: z.number(), + bottom: z.number(), + right: z.number(), + left: z.number(), + }); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorBlock.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorBlock.tsx new file mode 100644 index 0000000..a600b37 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorBlock.tsx @@ -0,0 +1,29 @@ +import React, { createContext, useContext } from 'react'; + +import { EditorBlock as CoreEditorBlock } from './core'; +import { useDocument } from './EditorContext'; + +const EditorBlockContext = createContext(null); +export const useCurrentBlockId = () => useContext(EditorBlockContext)!; + +type EditorBlockProps = { + id: string; +}; + +/** + * + * @param id - Block id + * @returns EditorBlock component that loads data from the EditorDocumentContext + */ +export default function EditorBlock({ id }: EditorBlockProps) { + const document = useDocument(); + const block = document[id]; + if (!block) { + throw new Error('Could not find block'); + } + return ( + + + + ); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorContext.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorContext.tsx new file mode 100644 index 0000000..f3db181 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/editor/EditorContext.tsx @@ -0,0 +1,137 @@ +import { useStore } from 'zustand'; +import { createStore } from 'zustand/vanilla'; + +import { EMPTY_EMAIL } from '../../getConfiguration'; + +import { TEditorConfiguration } from './core'; + +type TValue = { + document: TEditorConfiguration; + + selectedBlockId: string | null; + selectedSidebarTab: 'block-configuration' | 'styles'; + selectedMainTab: 'editor' | 'preview' | 'json' | 'html'; + selectedScreenSize: 'desktop' | 'mobile'; + + inspectorDrawerOpen: boolean; + samplesDrawerOpen: boolean; +}; + +const editorStateStore = createStore(() => ({ + document: EMPTY_EMAIL, + selectedBlockId: null, + selectedSidebarTab: 'styles', + selectedMainTab: 'editor', + selectedScreenSize: 'desktop', + + inspectorDrawerOpen: true, + samplesDrawerOpen: true, +})); + +/** + * Zustand's SSR path uses `getInitialState` unless `getServerState` is set on + * the vanilla store API. Without this, `resetDocument` updates `getState()` but + * hooks still see EMPTY under `renderToStaticMarkup` / SSR. + */ +( + editorStateStore as typeof editorStateStore & { + getServerState: () => TValue; + } +).getServerState = () => editorStateStore.getState(); + +export function useDocument() { + return useStore(editorStateStore, (s) => s.document); +} + +export function useSelectedBlockId() { + return useStore(editorStateStore, (s) => s.selectedBlockId); +} + +export function useSelectedScreenSize() { + return useStore(editorStateStore, (s) => s.selectedScreenSize); +} + +export function useSelectedMainTab() { + return useStore(editorStateStore, (s) => s.selectedMainTab); +} + +export function setSelectedMainTab(selectedMainTab: TValue['selectedMainTab']) { + return editorStateStore.setState({ selectedMainTab }); +} + +export function useSelectedSidebarTab() { + return useStore(editorStateStore, (s) => s.selectedSidebarTab); +} + +export function useInspectorDrawerOpen() { + return useStore(editorStateStore, (s) => s.inspectorDrawerOpen); +} + +export function useSamplesDrawerOpen() { + return useStore(editorStateStore, (s) => s.samplesDrawerOpen); +} + +export function setSelectedBlockId(selectedBlockId: TValue['selectedBlockId']) { + const selectedSidebarTab = selectedBlockId === null ? 'styles' : 'block-configuration'; + const options: Partial = {}; + if (selectedBlockId !== null) { + options.inspectorDrawerOpen = true; + } + return editorStateStore.setState({ + selectedBlockId, + selectedSidebarTab, + ...options, + }); +} + +export function setSidebarTab(selectedSidebarTab: TValue['selectedSidebarTab']) { + return editorStateStore.setState({ selectedSidebarTab }); +} + +export function getDocument(): TEditorConfiguration { + return editorStateStore.getState().document; +} + +export function resetDocument(document: TValue['document']) { + return editorStateStore.setState({ + document, + selectedSidebarTab: 'styles', + selectedBlockId: null, + }); +} + +export function setDocument(document: TValue['document']) { + const originalDocument = editorStateStore.getState().document; + return editorStateStore.setState({ + document: { + ...originalDocument, + ...document, + }, + }); +} + +export function toggleInspectorDrawerOpen() { + const inspectorDrawerOpen = !editorStateStore.getState().inspectorDrawerOpen; + return editorStateStore.setState({ inspectorDrawerOpen }); +} + +export function toggleSamplesDrawerOpen() { + const samplesDrawerOpen = !editorStateStore.getState().samplesDrawerOpen; + return editorStateStore.setState({ samplesDrawerOpen }); +} + +export function setSelectedScreenSize(selectedScreenSize: TValue['selectedScreenSize']) { + return editorStateStore.setState({ selectedScreenSize }); +} + +/** + * Subscribe to document changes in the editor store. + * Returns an unsubscribe function. + */ +export function subscribeDocument(listener: (document: TEditorConfiguration) => void): () => void { + return editorStateStore.subscribe((state, prevState) => { + if (state.document !== prevState.document) { + listener(state.document); + } + }); +} diff --git a/packages/post-kit-editor/src/email-builder-ui/documents/editor/core.tsx b/packages/post-kit-editor/src/email-builder-ui/documents/editor/core.tsx new file mode 100644 index 0000000..4db26f1 --- /dev/null +++ b/packages/post-kit-editor/src/email-builder-ui/documents/editor/core.tsx @@ -0,0 +1,127 @@ +import React from 'react'; +import { z } from 'zod'; + +import { Avatar, AvatarPropsSchema } from '@usewaypoint/block-avatar'; +import { Button, ButtonPropsSchema } from '@usewaypoint/block-button'; +import { Divider, DividerPropsSchema } from '@usewaypoint/block-divider'; +import { Heading, HeadingPropsSchema } from '@usewaypoint/block-heading'; +import { Html, HtmlPropsSchema } from '@usewaypoint/block-html'; +import { Image, ImagePropsSchema } from '@usewaypoint/block-image'; +import { Spacer, SpacerPropsSchema } from '@usewaypoint/block-spacer'; +import { Text, TextPropsSchema } from '@usewaypoint/block-text'; +import { + buildBlockComponent, + buildBlockConfigurationDictionary, + buildBlockConfigurationSchema, +} from '@usewaypoint/document-core'; + +import ColumnsContainerEditor from '../blocks/ColumnsContainer/ColumnsContainerEditor'; +import ColumnsContainerPropsSchema from '../blocks/ColumnsContainer/ColumnsContainerPropsSchema'; +import ContainerEditor from '../blocks/Container/ContainerEditor'; +import ContainerPropsSchema from '../blocks/Container/ContainerPropsSchema'; +import EmailLayoutEditor from '../blocks/EmailLayout/EmailLayoutEditor'; +import EmailLayoutPropsSchema from '../blocks/EmailLayout/EmailLayoutPropsSchema'; +import EditorBlockWrapper from '../blocks/helpers/block-wrappers/EditorBlockWrapper'; + +const EDITOR_DICTIONARY = buildBlockConfigurationDictionary({ + Avatar: { + schema: AvatarPropsSchema, + Component: (props) => ( + + + + ), + }, + Button: { + schema: ButtonPropsSchema, + Component: (props) => ( + + + +

+ + ${storyBlocks} + + + +`; +} diff --git a/packages/post-kit-editor/tests/visual.mjs b/packages/post-kit-editor/tests/visual.mjs new file mode 100644 index 0000000..77b1409 --- /dev/null +++ b/packages/post-kit-editor/tests/visual.mjs @@ -0,0 +1,345 @@ +/** + * Storybook visual screenshots for PR review, with committed baseline comparison. + * + * Requires `storybook-static/` from `pnpm build-storybook` in this package. + * Serves that directory, screenshots a small set of iframe stories, then + * pixel-diffs against `visual-baselines/`. + * + * Output under `test-results/visual/`: + * - `pr/-.png` — this PR + * - `base/-.png` — committed baseline (when present) + * - `diff/-.png` — red pixel diff (when both exist and differ) + * - `index.html` — side-by-side review page + * - `manifest.json` — includes `summary` for CI gating + * + * Capture always exits 0 on successful screenshots. Use `pnpm test:visual:gate` + * (or CI job `visual-review`) to fail when stories are `changed` or `new`. + * + * Env: + * - VISUAL_PORT — fixed local port (default: ephemeral) + * - VISUAL_SKIP_BASE — set to `1` to only capture PR shots (all status=new) + */ +import assert from 'node:assert/strict'; +import http from 'node:http'; +import { + copyFileSync, + createReadStream, + existsSync, + mkdirSync, + readFileSync, + writeFileSync, +} from 'node:fs'; +import { readFile, rm, writeFile } from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { PNG } from 'pngjs'; +import pixelmatch from 'pixelmatch'; +import { chromium } from 'playwright'; +import { buildReportHtml } from './visual-report-html.mjs'; + +const rootDir = fileURLToPath(new URL('..', import.meta.url)); +const storybookDir = path.join(rootDir, 'storybook-static'); +const baselinesDir = path.join(rootDir, 'visual-baselines'); +const outDir = path.join(rootDir, 'test-results', 'visual'); +const port = Number(process.env.VISUAL_PORT ?? 0); +const skipBase = process.env.VISUAL_SKIP_BASE === '1'; +const baseLabel = `committed:${path.relative(rootDir, baselinesDir) || 'visual-baselines'}`; + +/** @type {{ id: string; waitFor: string[] }[]} */ +const STORIES = [ + { + id: 'admin-emailtemplateadmin--full-admin', + waitFor: ['pk-admin-root', 'pk-editor-eb-mui-surface'], + }, + { + id: 'editor-emailbuildercanvas--editable', + waitFor: ['pk-editor-eb-mui-surface'], + }, + { + id: 'editor-emailtemplateeditor--full-editor', + waitFor: ['pk-editor-eb-mui-surface'], + }, +]; + +const VIEWPORTS = [{ name: 'desktop', width: 1440, height: 900 }]; + +if (!existsSync(storybookDir)) { + throw new Error( + `Missing storybook-static at ${storybookDir}. Run: pnpm --filter @singleton-sd/post-kit-editor build-storybook`, + ); +} + +function contentTypeForPath(pathname) { + if (pathname.endsWith('.html')) return 'text/html; charset=utf-8'; + if (pathname.endsWith('.css')) return 'text/css; charset=utf-8'; + if (pathname.endsWith('.js') || pathname.endsWith('.mjs')) { + return 'text/javascript; charset=utf-8'; + } + if (pathname.endsWith('.json')) return 'application/json; charset=utf-8'; + if (pathname.endsWith('.svg')) return 'image/svg+xml'; + if (pathname.endsWith('.ico')) return 'image/x-icon'; + if (pathname.endsWith('.woff2')) return 'font/woff2'; + if (pathname.endsWith('.woff')) return 'font/woff'; + if (pathname.endsWith('.ttf')) return 'font/ttf'; + if (pathname.endsWith('.png')) return 'image/png'; + if (pathname.endsWith('.jpg') || pathname.endsWith('.jpeg')) { + return 'image/jpeg'; + } + if (pathname.endsWith('.webp')) return 'image/webp'; + if (pathname.endsWith('.map')) return 'application/json'; + return 'application/octet-stream'; +} + +function normalizePathname(urlPath) { + const cleaned = urlPath.replace(/\?.*$/, '').replace(/\/+$/, '') || '/'; + if (cleaned === '/') return '/index.html'; + if (path.extname(cleaned)) return cleaned; + const asDir = `${cleaned}/index.html`; + if (existsSync(path.join(storybookDir, asDir))) return asDir; + return cleaned; +} + +function createStaticServer(root) { + return http.createServer(async (req, res) => { + try { + if (!req.url) { + res.statusCode = 400; + res.end('Bad request'); + return; + } + + const pathname = normalizePathname(req.url); + const fsPath = path.join(root, pathname); + + if (!fsPath.startsWith(root) || !existsSync(fsPath)) { + res.statusCode = 404; + res.end('Not found'); + return; + } + + res.setHeader('Content-Type', contentTypeForPath(pathname)); + if ( + pathname.endsWith('.html') || + pathname.endsWith('.css') || + pathname.endsWith('.js') || + pathname.endsWith('.mjs') || + pathname.endsWith('.json') || + pathname.endsWith('.svg') || + pathname.endsWith('.map') + ) { + res.end(await readFile(fsPath)); + return; + } + + createReadStream(fsPath).pipe(res); + } catch (err) { + res.statusCode = 500; + res.end(String(err)); + } + }); +} + +async function listen(server, preferredPort = 0) { + await new Promise((resolve) => server.listen(preferredPort, '127.0.0.1', resolve)); + const actual = server.address()?.port; + assert.ok(typeof actual === 'number' && actual > 0, 'Failed to pick a port'); + return actual; +} + +function storySlug(storyId) { + return storyId.replaceAll('--', '-'); +} + +function padPng(img, width, height) { + if (img.width === width && img.height === height) return img; + const out = new PNG({ width, height }); + out.data.fill(0); + for (let y = 0; y < img.height; y++) { + for (let x = 0; x < img.width; x++) { + const src = (img.width * y + x) << 2; + const dst = (width * y + x) << 2; + out.data[dst] = img.data[src]; + out.data[dst + 1] = img.data[src + 1]; + out.data[dst + 2] = img.data[src + 2]; + out.data[dst + 3] = img.data[src + 3]; + } + } + return out; +} + +function diffPngs(baseFilePath, prFilePath, diffFilePath) { + const baseImg = PNG.sync.read(readFileSync(baseFilePath)); + const prImg = PNG.sync.read(readFileSync(prFilePath)); + const width = Math.max(baseImg.width, prImg.width); + const height = Math.max(baseImg.height, prImg.height); + const baseNorm = padPng(baseImg, width, height); + const prNorm = padPng(prImg, width, height); + const diff = new PNG({ width, height }); + const mismatched = pixelmatch(baseNorm.data, prNorm.data, diff.data, width, height, { + threshold: 0.1, + }); + mkdirSync(path.dirname(diffFilePath), { recursive: true }); + writeFileSync(diffFilePath, PNG.sync.write(diff)); + return mismatched; +} + +/** + * @param {import('playwright').Browser} browser + * @param {string} url + * @param {{ width: number; height: number }} viewport + * @param {string} filePath + * @param {string[]} waitForTestIds + */ +async function screenshotStory(browser, url, viewport, filePath, waitForTestIds) { + const context = await browser.newContext({ + viewport: { width: viewport.width, height: viewport.height }, + deviceScaleFactor: 1, + reducedMotion: 'reduce', + }); + const page = await context.newPage(); + try { + const response = await page.goto(url, { + waitUntil: 'networkidle', + timeout: 90_000, + }); + const status = response?.status() ?? 0; + if (!response || status >= 400) { + return { ok: false, status }; + } + + await page.addStyleTag({ + content: ` + *, *::before, *::after { + animation-duration: 0s !important; + animation-delay: 0s !important; + transition-duration: 0s !important; + transition-delay: 0s !important; + caret-color: transparent !important; + } + `, + }); + + for (const testId of waitForTestIds) { + await page.waitForSelector(`[data-testid="${testId}"]`, { + timeout: 60_000, + state: 'visible', + }); + } + + await page.evaluate(async () => { + /* eslint-disable no-undef -- browser page context */ + if (document.fonts?.ready) { + await document.fonts.ready; + } + /* eslint-enable no-undef */ + }); + await page.waitForTimeout(250); + + await page.screenshot({ + path: filePath, + fullPage: true, + animations: 'disabled', + }); + return { ok: true, status }; + } finally { + await context.close(); + } +} + +const server = createStaticServer(storybookDir); +const actualPort = await listen(server, port); +const origin = `http://127.0.0.1:${actualPort}`; + +await rm(outDir, { recursive: true, force: true }); +for (const dir of ['pr', 'base', 'diff']) { + mkdirSync(path.join(outDir, dir), { recursive: true }); +} + +const browser = await chromium.launch(); +const manifest = []; + +try { + for (const story of STORIES) { + for (const viewport of VIEWPORTS) { + const slug = `${storySlug(story.id)}-${viewport.name}`; + const prRel = `pr/${slug}.png`; + const baseRel = `base/${slug}.png`; + const diffRel = `diff/${slug}.png`; + const prFile = path.join(outDir, prRel); + const baseOutFile = path.join(outDir, baseRel); + const diffFile = path.join(outDir, diffRel); + const baselineFile = path.join(baselinesDir, `${slug}.png`); + + const storyUrl = `${origin}/iframe.html?id=${encodeURIComponent(story.id)}&viewMode=story`; + const prShot = await screenshotStory(browser, storyUrl, viewport, prFile, story.waitFor); + assert.ok( + prShot.ok && prShot.status < 400, + `Failed to load story ${story.id}: HTTP ${prShot.status}`, + ); + + let baseOk = false; + let mismatched = 0; + if (!skipBase && existsSync(baselineFile)) { + copyFileSync(baselineFile, baseOutFile); + baseOk = true; + mismatched = diffPngs(baseOutFile, prFile, diffFile); + if (mismatched === 0) { + await rm(diffFile, { force: true }); + } + } + + const status = !baseOk ? 'new' : mismatched > 0 ? 'changed' : 'unchanged'; + + manifest.push({ + story: story.id, + viewport: viewport.name, + prFile: prRel, + baseFile: baseOk ? baseRel : null, + diffFile: mismatched > 0 ? diffRel : null, + mismatched: mismatched > 0 ? mismatched : 0, + storyUrl: `/iframe.html?id=${story.id}&viewMode=story`, + status, + }); + } + } +} finally { + await browser.close(); + server.close(); +} + +const changedStories = [ + ...new Set(manifest.filter((m) => m.status === 'changed').map((m) => m.story)), +].sort(); +const newStories = [ + ...new Set(manifest.filter((m) => m.status === 'new').map((m) => m.story)), +].sort(); +const unchanged = manifest.filter((m) => m.status === 'unchanged').length; +const summary = { + total: manifest.length, + unchanged, + changed: changedStories.length, + new: newStories.length, + changedStories, + newStories, + hasDiffs: changedStories.length > 0 || newStories.length > 0, +}; + +await writeFile( + path.join(outDir, 'manifest.json'), + `${JSON.stringify( + { + baseLabel: skipBase ? null : baseLabel, + baselinesDir: skipBase ? null : baselinesDir, + summary, + stories: manifest, + }, + null, + 2, + )}\n`, + 'utf8', +); +await writeFile(path.join(outDir, 'index.html'), buildReportHtml(manifest, { baseLabel })); + +console.log( + `Visual screenshots: ${summary.total} comparisons → ${outDir} (${summary.changed} changed, ${summary.new} new). Open index.html`, +); diff --git a/packages/post-kit-editor/visual-baselines/admin-emailtemplateadmin-full-admin-desktop.png b/packages/post-kit-editor/visual-baselines/admin-emailtemplateadmin-full-admin-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..ee50946116977a12f7b13f37da2bdf48922eff4f GIT binary patch literal 57885 zcmb@uby$>Z7dJY{Mz=^PVo;*ejdX)Zr?j+4cXui(qSD<;cXxw9cQ=yKFm#_a`o8D8 zu5-Rq*ZKBeZkQRK=YH0`*01jIe=aAEjY)`!Kp?OsB}5bv2#hZX#6Q#jUV)z!Cg8^+ z5H}H$B2SfF;@79HYss#Vw(NwZy)BlZpj9llctT48FpuE$j_^61C~ zqm}v!I{J;f^wb#W=;#>m$0bPiOMm|iAbN*+M-lNmLk4w;2!u}}*{qOQO8Ss>0!;eDm!$r|p?(T1ey?*@~ zwIr!HtXw`=J_N)^FShTYJ`209Ptz6j7;ogClh5m>W zd+7U%qo~!T@+m$1U>adfhIalF3&%i)W?|?1F8qk}EB^Ft8@^h=QFg{S$Jo##@1P$zOwROXG{qpyO~zDa?H?hg zf}}n7SMxEqy(F(%zkC^NXIN|rw-T(7W~5N=%o8!cR?vWRlsk)>YLvCJP`z09(35kodW8cT`GE6r7!%SDsHfob0W@(snRb*)KEd)_W{> zC){Jw@le%2+?S7B1c-;Y6hpMv{Xjf^wq26yB8;G1@J`K%nwA{Lem!g z?B~8q;y&Q(b)JJ<6x^6PH9w9CC-ryTt+yV`lzfMoBzX#pkrm*5 zdG4&KS>t(nP+>h&WTBoR6_Nd!gjdc>x7OmNc+dmOv0}%u;=u0ih|~QwQUZdkDTi5~ zCk~cUw;wRZo)lMHYWSU#x(qMxC4E z)Krab!-I#qPl+uKeX_4G>Vd+D-7a3Pd^Vo{7!$!k#)B`7zU@IXy%PWC)i}5(bT+D8J(R6D0(G03z+KUU+_Ykmu*ibElrUR&3~>=|DI{kZ3!gd zuo$hhTcn*jD6TO`Y6&8Z(7guL5js!FOMColrT42+zE%~bd?LMef}rBBDrwLosAD0)*J6en)fdX~^)%-51 z%wnRvYbZx;$dPej!EkNZl0l=A!mPw<>O?V3%5%4i)5+-_G+{2M_2`Z$rjFx43(V_P zWKDh%5fSm%*v$qDh2LSe*9>MUWxV?F(G%H51r?2jjUDjeLvVYI^VVJJ=Z(X|s&jY5 z#ap0bm`sf1Yu89c&~n=?m`qj{y~Vd{r;LCiu5sEJ|MJxL<2@!uy#NbZ#njfX&-@Gq zA{jKbw6s#~{W(&5I4s9o>oK?SOzr*Kk9KC-1Q*N9N7|xNuOgW$O$R7f_sA)JeT?|W zO#R~NNRC>8>n;;&e%zr=Rh8nRx|Kq>zSt2}ARU!2Cl_eH+#TtM$3I!^XbyiH&&&)L zE=zOYuhz|RIbJ%Q)k) zVnf(Xv)}x18;+7)lR41PMsP@YEX>U_G--@q*b!1ty&@A2y8cV8^wQFj z+0!fk9(!G0ob$ONl?!w{`%@+DBGr;b{F~q1;N|5tA89BlIkoO&X%@UVdWPB5)FhuI zVA+@a&Z=j1<*P-uYF_M>RJrla*VRY7??of_luJ<_{(V@;SV ztfo}iDzv1OlgPxIt^J^v=e_v##QWk+S6qd}_M;f-j!3KW^722hrB+{6Rkf%{{%uiF zQAmhF@(lwmt?V|_?sVC>gRPkctEutSntKcy21D6H$ftJ2(iSGhy*;t)#>?GPx}N(H z$mub2>R1Y4D!KTh?O)IK`$K(v5Nadd)@81+oQ@PNuq!3ek3UquD0=08QdC}ku)AyC z`{ik}8@J^`u>*NTB${7jR+j&n2nnAHHS_lSe~6*KtoNst94xPHSjTx>UU)kzfBgJ8 z+8}5HtNfefDksW5T>t9w!sM8fM++nED+Aszo(|!8)Ht1IKb)T%E`(?MT;RK# zCES(oHC$W!)8ov@RN1CC7;A%By8ujJ)3I4iz9*}OVdlCc_;Z?-k<**?MTF$(R>yFf3*`vkeWwXXFLm1gu8Lc>qy}hh2s+{OuOo<2Wqq9on`wr)nsq@Gs{+EsYa3!Khmu z(RCglyAx6zHS+qgC?2Iisp){*Qm49=l~tP)YN%LFl*7V{3qzBYXuHzc)dl;4tLg?e zw)s?bo(QdCzG51(HH0kuP);tl{_?`TjV9Fs#-Bm!&5dgT@a8G_z|RD%nE2EWS3W!W z2P>qAS&kO!L0?+El7{>Tz*GkLWOs7BMW}YU#n@wcsYKHfqpt9`G{^fv5BRg|1tux) zYM9=(DYY1DZ)@xO@k3NwYJRjxpNP}SY#=>=N4t4w$Z>ax0l-*9v_8x{XqhV0-O%ON z*VoB^!p0&L^h!PxlW=qNKf{aRvK1c5pR$^&X1JC9JsBF;>ETv^T0vqd3}HnBgVaXww+zVmn1o3)94k`6X_WjfwZW zajUGShd2xv6Z+HcF86Hx`t=pTBo*hQzdidDdPoerxzo#+&1PTl7#&vn)oF+F07NA4 zIBNJ_4ImFV-5ZeS=Zh>e9Z+?>G2h}{VbV9pYTW%oLxaP#-=#CUuZ_drHmlrnA`(iW zD}k4ZjjhzAFWGT*F!Hx@-x-^mn^lyXBtJP_2twtMk)c%xOM(aPG?-pCKjgs-wSf19 zR=2ajWo>=62!@X`OK(A%y4U6Tq1Du6+3gA+5%O0hrJdGab}nhSFENO#C9h=xXK8GC zc9<)!IeeAa*4B21@X@0R)I{`n4y6ZZT?X)0!|5iky*(=hx~;wa>A{5cP#L$6^REPY zmOp*U1sz&)BohT0a&J%B$Jt+n3a$tU)bv0J0dbkxP_-Ao5UQpTh~6eFoIn5ga`-RT zpMUsFlg)S(mg~-b4GC`zY#2>Zg2_ z7&m2;4zYJPD)Y}p{(rqT9m0Qzr>d(a#>ZE@fSk#=nk!|<5eay_{ex-{+qCN8rL&vU zo_oI){!;EnzhDkDaW+RhqYd@SB=l+rEUbRirc|@mD_&o z_1izKXX^Rc*gC)IzbhXDAi3NbQ|7p~RPWia+51)h#fujSJY_^27SHRd*8l=8EYK z)br!R>gp1JUjiK%*qko6B)W0q2F+ludWl3x@--Y63Vso|#R`kD?8pkMeT(r@f0zmX zS={`QS!Pbo%R^?EN5EK4dq=r6MMP4|)f4$#9h{y(QLid9a@v|M zvz$=HXmrOXCB5W2i1F|~;FGII)xycM!>Lc@xit4B9x*ch+6Zv*ySI(*a@hYP$mZqC zFXii7q|af))7-y*|9ANl78VEl(^nH5J##-k@p5s6Giqy~ZP)X;p3pDt3}|r&lo++q z>&CF!`8L+ZDFebQJD4BKwS>LPJgR(Ooy8&@=nt2*!cmc-e zC;QMXtK1LsV`5?~EQhiqs%cnQiUD?;al`Y3N3}X$2JKwE>{P%NnX2Cs2ow3fpjT}< z66P@K7sUqtS3JJ=i#8Uy?nV|HcJT13X%!oonwXeORXe7#pqOuuuFJu?dL;cNPO)s< zFwl<3b|4Y7i0P;d`J^8$G{eV8YFHGB=9U&?_(VJ&<$Nt}_k(rh&c;^5B>-v9DgRaf zv!nSSc>U%`fo@;2D3fkIpZCRCbab>_0*@(?i;IiIw(aI5cN;y2_4H)Dr~3w_zbIS| zWr$R}A3{KQ%K$qtPqU(Kc$44FWB(iOCxP?QIa2RHwtN(%Ue@5YN--WR+u?B zRLwr#p;N7O*?|#`0vc%BIeZ~oU*_< z;}Isj_wf3MsHl-j+xZ109ew?Izz+e$+{h?huj{zD@`L?-eMLrHv6pANK~{@RzSq`9 z3aqWInJ_SX0@n&I6K3(ey;z2@Y|MYae zjh?2G(rt{!ntPoFW&eASxxtff@gS#{zdQ4pJJM1q>HgJG3P+9 zfd}?l9`CIvWrgRB6LLomdcaR9DJfyKVX7!0&XNQeQtUzM0Z0z>z5XGcXRHk*@GyiV(_QB1m+HPJCKq9P*X*|pAFi3jOnAC0haRzRg; zAIesV<8v)8*SUhTpNIu_6&M(Ze2%v5O?oj1T*WCheXN7=E!y^`L}LiMv=PXQ)KbdI zg9*G}?PyQWj_nuGL!RK%o1}O=1oX+m#>U3Z&JM+}?F|e7AXnIzuYkX@CV#ZGneML+ z0sI*r9yaR|yga*2NEo{(7ZUoava%AI2J9dfwR|loj!+{yw!y1v1v-w-&QX`_n22*g z1dZ-6HF`+&&=AkroHwyBF(X+!C#&p@yU&{XFTZ^G0*ru$R07zvj7%qVO~K=Z+blQ? zlAQI&OL4FtF2+iXRkD?zaB@a1%t8IotSc72Y=T`XAJ0_;?eyT_U{zZ=mebnG$S5*1 zt(Jh->#P!(OLzQrI>4BxThKu7vl@M_-Ur1EAkoQukRYu}b}HiGER+yJhlY(!COKez ztb~rVNG675u{GpdW24aAgDW`Nu)wVB?4Z7FEOo_!Fk@nAIRz4$yx_U=#LN2k8u>bP zCylSsfdrK4eS81z#yzQ*45dV4z_Hu9O_<8(&|?EkyD?haR_5L)k~a`1N36 zYsDm5H*mScuQqDFx{3l0+nBJSjbqRwJfz5NeXbx@a2wM9fQJ7mG8+D~P%OouI84^M zvaU1}K(D=Q-MWGP(D%{b-_h&p&g`#^G+3C!M95Yv$VUjh7Xlp8*fN)qq&l3bP-pY2 zxt(`@dD$5%JKS0r)YRu76+w%q6T0fSq0wmFaDK5qwyRd&8A<^g(h>7sxyp3RZ7R9c z!hLAH0CQNdP!LT36T14r-ekQ=NK8gXMnFIr5+|O|)o#4hG|RLKM9}NEDZ?2wRog0o ziMY=;zHV)mps4`40C2J55$Ls`U_E>XI_(e$Aboubeb-=OMs7i`RP9fK{?~e#Ec%Id z<>&s|YX*%{DbG`o`?e;lN`zjYwb$&xmDIZKmYYR%2G`cso}HiHL9|k%P-W{8XgY@* z6HM<43%7weLSZs^Uz7^QRePPgtrDFc9~;j4%=ZXh# z)5bMOSGvBj0RrWK8b{!VN~W3lIUUa@9pbOPy~j3e50^Z#FM`hpUego(&B(Qm2h-kf?Jt%3#2jgD%K!G5Xx~+92*R5HxFj z{V?GY=qvS}r}YB_XrWf11|NWw%k8%J8-`L=o}ky+5o}h2fw$LhPn-U{b^A8ij1t#O zHL6>czCZZ4redvG40*SioAHEYK3qeIjSvy}U9+QzRwy5I0@DIJM-54RTd=pK= znuUf`8PrKm%kf+TE?`xJd@dg}%FD`bU}3>7CFs`mKBriD@9!^}B;eU^T>V7g zs6jSs!wj4ikx3rNwu6nt65}4l>3~%8PwmospMHWapfkpmCsF;xZO?>THk4SLbLytu zFnL6=B%uWBVuI_@wjLqJGerO-AzPc9n@DtOK~KeCKTsD{zx2QWrf86(V2RYtLry$% z9;i7DKzm5$I^m-aq76useFEVPban#X3#|(KdKT+pcob3(_*^88TS1Yif)&R^Je&{Z zoI$F|%jMT!oS56&+e1-0==UZ6fH|ODVx$7f1t83F>lqzDm`I)0YwPIOaKef8Dt=bX zc+uhdzIhYwEF;Sa{c*h3)&7`I&=fr@T(*Cf#E=+?s}FJyh@0+13|&lTYFIy2ar`%$)bCxK_b1=ck_fsU3m1|%M@3s+AJMDWwB zmG>T_)GK0uFQBAO_6S0)0214SJ`L5@;Ii{-Z8#6~_2gQ2yJlDLWp0s)Nn{tB4P}D{ z#$i6Zo{{8*(t)>seWN&XaaQUoTM+}+TJ5lcEH)}$nKC2}2?;?%gTmX}nh{)#1ZRRl zA^B}XLxa=x{=FrbG$1_i0s=T`kikT5cgCoh)V>FUEc5k9Ka~q4SF5cX#R%)>VSGt6rX~ z)Zlea_V{tAlOwDhxEox&YEX>!_U2#Z#>4kgL1u>H%2Ue7_iM2$ORL2V=4d!WntyvA zfC7kvSp%t;KubIi)PKaXn@iV~_We6%d_K zrWDjacpjUhMM~hbK-=uk_x1um2!^6s?u#tD#cURz-rnbBI)`}R7EZHDa^7XSD1yd# z=Toaq*QpxBcSc;uC;9!fdH8_4NlzjO8(04p|IO8l(Erd&Nz+Kc#4t zWrO3UjQ7fG286VcETxv7t>P2)x8x)dbZU{!0ALGr_LDfRH(#Tll80~frKlxya`yH0 z0Wb_}FEdvI_h);`c|H|+aefLtHG+A10$5RzeiXfWb{E%o7&oBJ*V!$8{N`6jaWf>y z9~$r)(9?xh>!B3g8mBzzC{W6*#Dm;|2=_NY=Snk7Zp!GTq^9N~UkJ=t9)|S_c))Me z8mtF}c)r0|0M3P6G_!&wSyKOCrh<0jV6mYzd07mbY4H`r(Z8+ByMSjx8?FeRZTrT5 zqg(Okn2KgKE>9&wx}KiOaN>7if#=hHd~z~f?brbuc5skQK9LVPj^y*_!5;VN;-;t6 zJwZqVLQ9@hZ!uOZTIX(3Y%mZ=!kZeyCbyd=X1~~OXlzW?v)4lEEmM_tHovpG8}@U> z9_^lJSf51vSM72oDB*}E?Cr>fsO&R`R;Cxn>>ZZx5w($Q|8gym#e#H69n1Bs9e7j7 z^KTQUA5yXE>zBa|!okIz0kv;1E36~JzCDU*=EJRTi#^BSQRGduLF!VLxcb6O;9bv#6E_G>^*6ghgeQWyq_G~!p&_+y5OuO14(r9DC zn`R4-QI`}g#QeWnKz%Mb{lCTO>LuyOe7R{g@C;-*+9nc2eC59e>~R~kzGP)(U1{(* zwgY?*6gfSW73msYYpR4Et5If#8Zp!DCPv8z(1n6w`MEL){QlWPitz#dmn3x<2!K^< zxO8~d2S$dPnB4ot+i#$1y8&H*qot#x1FlL%1?-agbKZoeuU%Z^%`d7QO#81Y9&h$z zi|*p;gOv*a9%hYf)gri7@$vDgwr;%dY5+L__ZTd$72$W=3%;~P;>cpYfB)XBjxE@z z-93Z1JnHzl{NMM*esdrMS<8ttQ6qMB0c{1f0DoDPu@Ij~5r1t90E> zcgpdgPQAMj_RrMNl-)w>gIl*~-ud|WK&_7y%zT*wQ{`xGRLM+VPcJ`#Fp6Qq+pjfo zii_jG|7<*hd~xoFv~(nWmCdgLfMQviC?ADD0YoA+*IkB;HE6h+KtFxZ&;^c`x5pjy zmpWreX{UM#VfMqeB0o9Y-VXKyr`md=-17WnOaC=3Hx2bzl1EX&O0SLVO3!#aw`X6UnaPG**~Gm-WQANs^Q)?g z5xIlJSqc)ocmZHPG}w@&b&l5Iab4Rl`0>IH|i;)D4Cj3xB;4JuGedxoh zX~i1AWlooqyaB-N%MD7IFvtgpWtASDu8yBSfD}HM`?BY#zXf0hqKSwlsLS=r4FT#Znvfo-Sv-L zC;+s&Igk+)y6x9;vfHy3M9A(2wqSZXW#}u2Z*0sd$~xD-H+oe1?!ki&_q`*jzVCon z50DjlKR>HCTvRJf=L6-n0HbX>C(TP4#J}IeU3Fm34&~I)UJnxyh7^IMgL~~@sbmw3 zc<3K$sUPaX4P8*!B^I30;{8CvcE7vC@iyWmuo0YB2irytwO~xA%O_>m>aJ$s;~ln6 z_=vLsW-AATr2J!huNc74if zrk>>X?UYn$m>aU?iS7t=iGb4UT(l~oKKf}MQYixA74(WF&RaUy1qNfm(>vS#_877k z$hEQ;MajoVb*aX$6TbfbZSS$y(q&>a>d!Ke3i8Lu#gSa~{Whv3AmIuEuL-!3n$jH} zpk}~+$_X_KEdhNnf!kj7@&a8(#_lfti%fW+*1eP%5FjArafmi}!g9f4SSfWAvE7up zTj7UAkWDT#ZoPjofURe4PB#PFCn@$Pazv@EvOR*1(`vF3U|yzrkkgx>c$X+z6)6S} z@K#ss{a*te?>K}oNgC)cKhsgpnR`@XOJpv7x*Q6_xAAZf6a*f%`CKDsW<|Z zF7qv0t18rKZsD4;)HAd%J6CUs#RAYyT(|{*ED{MO8HjTprw5iB!=Q7~KsxB=A1R(7 zG9aJ}2&1pBZ(*G2mLGz!%0q^pnEog*Vr}iSH-6e}A&-Ht1Z(e>5Tgj~_9Cx(Eb=7y_5*1<46` zrkMT8emErQatUVo`n$zfQHbN+J5lf{!w=U$0`WfEX#r&fUx@TSf7>YgD?-u(QW_u| zDYiln2Le?M`V~+*5QJJNXyK0|wpFj<5Lbf83Zq1H}m-;OI*;*5`kp_ z2L?0s*8TfjpqtLl&O-Y{C2uUZK?68BI=W9lASxyXb4QIsG7)(=)b4w(^%J1hV$3hy?Y0b*YZpYHF3 z(s4l_!pFl?gnwucvj7Z(nPmp+0FOT;Q@EyPoo?kPU}f?t5ShooyhwZaj0rz&mr zp+lw;N#Oo<)MoP_(@+7hOxI)Q2WWI4ai*$PS64?uv4JX}Xyf1z{!*A0)Z8`5i_Fc1 zLdXJi6e+$(5m&EX6%Y_W)e|`ekn+e_?~7w94vunYCZK5cm({lb>=N$Uy1F3_SQ(e|ydurRgg1Nn`9N=8OTrS!M{#}Ki^xN#SXq{?2LA+trwLG2!a zFHeF99TWmyc&pB;8A-oN@~E&=pWIlmLYs>K=)D*c#{HDDsDvUg(97dx(l+`}_(fY| zCCkf6BWnH4@KbWDcmdDYlR~M8_P#z`d~)OdR1_=h7w{On3|Gw?kB6ww%BE(y1&`-R zClHG?3j>1}*~%*%mKq&VeCty+Bf*cJf%nid$%=53J)CDkG>VIMw?!Pz?X3*-B=U!e zJZlHE7#01Dcq?#KI zcMQnBv=%xHaO*(~5yv|;ir)tZ_dv|ZfjYLaDJ&=`SfE)=f98k7&CPuW00t-&fTCpf zIHn-`^0z;evq$^MbNG9G5lb6$cSQ#~@ zwv(#}rJAYUiGlL8TJ`{bLn7ee0u@cs5lsEmQXSMG&=-S1b%XW_`{V)mXUNMl3g|MB zlzG5m5&iud9_MGU`Qbf@iEsl;xzE1}_xnm&JOPXW)dL++Ch#$@S-}%Pz)h%rN=Qg+ zy#)czC=>BEUEr&w25q6hBna-`M>#rpHjv+a)*lRA6Jn;EK-JuP?nUegzWV+lhShi) zDlr+Gn=#4rF$s&yDSe502~&H7{mEvH?RYE%tAdCQ6Dkh%j{OtZOpy?YVlnP^xb*rC z?Qt=qPV@$6*%(X&qnU3pmQ9^3H4RgKAi81J`{lKOfcIpBcfrdh zVd&G(nG{Zsmvz047e|ybE(!}<5097kLD8gg%^qaZTq^RuMDv%RNU)r$-UmmEl;4e9 zoZEKpdz!QtQd(9g0Hzmh>_2M!ZVnC(fK$Pj{UT5Riz#(e6S8=a^^+jX4m1F%=F?pU z7{$;7_kjk1R?e}HcjtJD)3ALIh@wG{6}_!5mWun6#9@dd8|EB@MuuNzWU@=52aJ$O5j8TyD08TrD2du8aN zb{vmmc1lXhTYSvz5Z8&C%(w5}fhwF2lcqWX#5m7A>ZJuq(*0kc$bgL1;kY(TuU##2 z<%T46s$z39qjq&wRTT;UD!m9;3Vp%Mfv~0+In4@8SXv0zyJc zvqIyZX>gnhw5o&;9PP~?75xTt6{5dE#K(Ex?`H9RT!k@;_ho&$t^<%Rym-}`Uy>rV z0$6$RJ5f$^2J(1g&+e9kM zc)6Jm%S)k#feiVMmAY_V2NT^YyEK^101QekC&cPb9e~RKEN1+b|N1GVYdSQjWXoCk=i0T7 z>s2SuojtX$-y+8d78Vj}gzmaFV%=+HXD7v#R-lwI4JJy&TVChN4t39V@ruHuL*nVt z(HGjS;t^!x2OmDP;s=HfQY9^%U)FQW$jS;o+rp=L)c|t`(gJPV4Q{xpJp!jP^&rJO z;I{joE~^PPqGIlgKA6IT*%VKG;@H6XT?Ije0vXL^`=+jL3Jfd|x+!^{Lx=?Qt5V!F zPDk!nS!&kCd9+%isto`9qgCTJB-m$p1@=>!vzMaedpuyIkxILQi-v>jT%p6#KFvIB zaMMC3oOTNm7)R7~AUqenNl8K3R=GsPX8;VwN{G~QkJK@F!LS7Q`7HE}$i9xwsUvCq zqVRPlUMWS0V5l)w+_-)nXheBoE0zB<*byMAu<11)UBN&?3eIY|Tia|NY=-uz)CY=V zHHRbM1k)6?LQ*^Y?Tr^_;B3Qo%?u#o#D|FX%%w&$dK(?(Q{RJM@T0-|j}<&&MpiT0 z)_WYoXj)#WVp!bag*+ykxcdjr)1=TVk_p7b#Q6XF^Aiz;M7&t{?qaS02(6DFzZyvI z0{)8{S;@RqRQ*NzsAguO_C5H;uXXjA)UJg+oodg6^%$g>qAUKRdDLMMV)N0$Ur?UV z@&p(e<@zS0hkyRmxcWsKpNyG#yPrZ(l$G@dxZ}OO%mC8?hbe5aYiB-hIy+_~O}b z-CSx>;cbmOr}NZ~#y_-Q(jUQ?~=y+@r6dI&Huxmb3f zF8ZC(w$sz%d6rIS`$*%j~ZgEh{?G-;gB!x)T z4~WQzmmUnM@dK0_NS8IIn40G(%KC2kYR7htqX@CxcajPG*rT-n<<)Eb{%~BTJqn2f zpyUtyK|Cap_GSN@Bt!_%8`)5&r>Bn;Ttj7gVE0)64dOM%ee(C5BPDj4@2>kT9u!gf zGL&Dl$-{LcuPYz`>kcAI>~BoZTB1K7WjQ~3x%*h%|4lk~F^%b?)nD^*zi#zgvbQ7~ z5DTpq{qgJ(wT~`mnI$=iG1b#msvo7&t@J*wXd9Y+jvDNELj5w5 z?svB*{L0qxQ`#s6|^njfS<81vUL zG2xIO>c8oz(pr%;q1RXRe|`pIDXU2B>LtD%moClpzd}q2aop?G0KNoocRu zxw#sMWYBn&*GBR*XDV$6fZA3-05)$AP}|`qzaOqUi17;bpp+)NS3))rD7rh?%OEv^ zdUpW32a??BRvMKydO50=3zb$@;O8G3mm%Q<52O;zMhioTD_m^-KvbgSjn2%ZrUAjA zV;JsD0?-MAVqj1ZlhRKGPqT{)G;kysw5u(^tbr76&Up?mTZ9I<*pSd_%~@V`5`f3pQzQ z`9NSVW0?bD0>EvE2nZzSEhqRu0TBTDFWyods^zdcXt*^!h05}NAcyXEvS-@%fbrpM zY+T$#EPD<`t&Q{66F_j_JxQGpWc1XZTE*{q&-#p1%ml(;a{*TXeBNJhZUmg%jg1Y6 z!Q98kr)LPm5xc4mc}Zxc!1?b%-rvTC+7{de!2AjP?i`@@gCJ7nedz_m8S>YF64yc4 z<#O4+Daz_6O41J*k|?IbV1YFHUx5ylP%kk30tr~<{t97RV&nf1gElGCCWB-a>kH1srO-y zhF@*N`8hUr495uZY~uM=SWS8#I^GI~#|&n<`oUC#xA(z1_s>8QvQvOHtq4e$WMXqc zbjh53D%eBZNzk#qWpYxhKMYh6cn0c#ce%_`alpO%(b7VPV5u(E^3`7(?t+6`lQquP z;1Pr}*FAoDeuBMvl7eKn9N(LreJgnze1SH|#XuUpBixpl&14%eOezw&*l-Q&eyZi! z=~lxvj46*r+uemWGJjtU4pvqe!3y5?3|f`X>)6DqLvt4ZA}g*eEvaUO!i$uE16;si zD*%T&9MQlKUEE1sfkVxB>q4V`pJpf^*wBIJ3Oa`R@u3&>JMyXLLFUHB&bv$A&&mo5 zpWpcURSzZRTV>*cGoSn4s%03NJ%X(HJ;wMgD42qV3tC(T1_pQlkDB}r%;E6LN29Dj zD2t1OiPv!GNxRm?6psBVn(FJ9yn5$nH4k|++E{|SG{jHX_T-e6OEn_-L<6ZeDD=ik zO*?`g`QnnCXrGu4W_}%SY;Cn!9i#!-%@g_sG+@XbxsAOPIL)1d3>gZAq)83I*&T^| zTL}E34j#S19ixr;5kPdAmrMxKv!P*xgT>vuODr54o_fA-tp0ZI*(r$*pJ#mw_&{o7 z1ihOek^(WjLeJAc@VSO$A3b_x+;bxJt2HDA<}sw^Xrb0XdxYR+I{Bn|`5H)+aEvUS zBQp1C-5qIwC~w}pDa-Mr)MJKoMk~iqhJX*u`3v)gH2Y?EtL3_9ISx(0rvL>8HLt{RVqSz%{gxQS5(2M@>nIh~j>~ z;NTd(LmOV8Q)dKczrbtBVXW&b)I(=2kxvbSk73d|gM*grWktkwh8?Q?@{l5tPdKrk zth8k!`kbu(o{XLzloKgMh!`lk9BH$!-$X@XP^Ty@#uTd^)K?0jU_!gePZhxwX$Csv zdExpE6aWxX{sy6ErmO(^8xUjAb9aBc2#F(6 z(O-4t;n07iQtUgOQHMq@Z;?2Ym_em_RnD`He>L+)qT&h;+)pkx+}m=5-Sffuso#1( z{C+%q7t=?%Bl*u3oBmJ~q6erz&G(tScKxk$YD*TJu=OzuBWsmx!#e2B4Mll=X%Vf&2%-ApI&tv?K?@tP={{WfY3 zr@2ZP!;*D7{Ne_e!?OT3EUx#sq;fz1d@||(L%e@Q!NMXpFK-I+fqz+5FsA8E8;7+e zM&tQv)R|JH?Ykhk@R{^BLM$|+cL@$CA{DP;VEiSj9((;ujI^7ZQy`J2Jq!TdCr!7Z z{%_u2BH_^4UkWm70OQPtb1h-&=f!q_jGW3sOY4Th?6e-LS&9*02mJj0Ju?9OKUB;C z4mG|ZxkK?^EdXH2V1e!>1osv@)LQG4yfkdbOIP5)MyzK_Y7XczknR*yWJ-YCn9J{8 zy(CXn1r4dXgI;ji-~=J6gH4p0x`Q=QW(T4q442h`dut$LWV)^fun?$d%ib4N#cuoUFuE-#mSA3ZM>T@Y=?qK|ST~o)sHUPX#F{}; z8=0y*Z4H@`+WWH7Vh@A_C473FnZVTHaa?^&@V2@jYQ!2Ko<@V$#@p*Na9Fq=G)%CZ zcMk*{He$V@o2NEGR1HE^U>G>*k%i+I~{g%N=llyztM2Mw&%H9qw`EaSUV)?DJQr>e0r%#&z(?;4OftS-m508wDM7b45 zvyeal1`%Ngf-Yd7O7F|pkaTj4y30_HN_fA%f&q#;5;7RzNso<=O31=Jf~bgmy9e06cp*Zz4hl&Fw6kJMP3CM`x~}?A=^=dsp9|x!W z%t#cjE!6WB@N`=Sov5+#iz0<_meya0WXO~izW%Iw3i3k51&t8Xw=^)wB!5e(v$JCx z`o7gfI?~}j^UFq<9cf-b(D95V9w@+3e%BWeFCgZ&tIf52jCZxIG4(%CX>+AY`)?QF znI0k}hA{|SO`!uOQ$*!c%pV``3|K-YoKis;&MXf3iGCcVyB=jRSzcHe{00O#jUp802zTy30zA3pRtC3D;bS8-fhB#?Lv;%aF&$H*Bt@E^*wLFw-9UiM|;0t$1y z@EP61hqK#yTl;IACg$<+#1RW7ez$JgY^45)y`3yCp^FFnbnjHYz6i8< ztAOuxF)ZgqqHx5c%{)gZ_3sHUWjGf|ZfI)idhX_P@YSsZmpdsc%)>J6-MgyzOzC29 zUC>-J8Mzg{2zgP+!lQ!JXf@Ds8qTmMN2j{d$}~O6#yt-phxA;L0sLNoFS~n_k*PUn z05;$()PUF>8n(cIfFaNOgl<%{wBv(=B7FvoEVSs@e@Y5rQk%if1)UIZI;Zod*8U(r zIk`wTD%hw6&EUr;@9^k(*jV6gXK7XhI?;+~tPJO&0L6mM>Nof)1_lO&<-uaq2JE(7 zNODN2|FlP@2I2Gk!6!Hy)kG}oCB~jg0{@W>!l@|K-}8O;_lFEkCjP<-s1iTE=~s=f zL-q|9P`vs)ITk#BMsY#FrSaUm8l^T$Y*9H2a5fYUM*SggjpADgxlKimYvrkya7r;T zEzPjbElJuJmIW1*rS(3u?E~FY@VxZZP&OlILvZ>?P0}1%+}SGKA#nQ$diCn3zVAVA z@IWq@_8URI$$U5$l7;1LbXuccuyTs(e=k;7!)b4Mck+An8N2u>% zfX@9<=lcI^!~mxq_AdU~>fn(C{vGOn&f|rk$i%JWKX-66TPgCln*Q(4D~gIi^gidu ziS_Schjmi+JmUR?sOQNLe+nQ`PcBAUJ4Be)HFMqt@Buqv5eE$8a*5n-b&XG z`fYIIqhx|<1HF}ALS+ke(i2%;i`rx1AoGe~VN`EKLmlVaejUwI$rWAu{Py}9(cQRI zZDpUJnXr2~$>$gU{wv+j%rSa6*>%sXlQ@1u0?z6*iob@FmOi-OTPK^2e@Nb!CvTSs z)fAc9+qogHtkL!p)Ul3P-zR1Ej?C^~mzKEU6K@AHxA7&C zPwh(z%~6xD$l%h6Uo%Hy!>dDHhCm8UfLM}i9jmU{@d}prjJ;kFg=|@sh_cX}DZwSC zeDu1)h?YBsRDa9^$~LCPTZ`U}_P$Z_Lfc(&XiZJO`sDGSvC^5-@$$O!j)-j#R*g5D zi!!i8CL~S-9!-bqPbvp}y&oGL6Q?=G&BZlh+LxKHgly}$bjJD@Cz!;VvX(ivNqtOx zg1f5J#(X_|{c||=jAWih9%gTr?S15KWFp0#6{|%lc_z{spKYr5Mow~$)q86zOJ_4h zDU5CAzp8dW1kH5)rlM4ZFm+(Q)yDV`Lk!aV=Hgae$F5J1u23_zFZ`9al&Zr{EK=8& z#jLCf#z`Rgahvqv>}bPfBN$V)wK&wK87eubFMTl?NZ;q3TC9`o(MLz5QjnQnqjF!w zZMZaJV`Uv5i@Q99C)*=mW0m>!8QI9Fw$5c@>$TGpj251#v&%NO(3l6;Z`edPxKw6J zPyECoE~0zbN1ga~1}nJ0Uc8o1t;=DZ&w9sXM1(h8$71_+4Ep;5o+$EgS3D9gRt zvbDI@gKe47LoziwP2IMWY<+V6NLPo5lP$K!$!$JLgt_S&; zrS@_49>V&RJx~FOX-yQgFwg*TKwRAj^2-2Aj(_=yw!2f=3S}u$D4A@-7a71e%zXJW zJGg~JOEa9x{a7@Rk3+jI@F3> zK-g!wQT1EJaf4kj0`X8b?P+5lv`h%TWGPX>iPl^=m38Y@NW1$;y6hSpA8A5ArzgY)(WdLn# z^-NqP*3;AT@`{3F8fr)aMTYz#@c)q2^d?_F$g!$T6w4)4pB`R1tGB00hG}bMt7UFO zDn<$Pc1m_Iykj9b2B~UDbbP$$3?aUhaU^gXU9Yiv83OSvQdXnfK@m|=N!O+~?;!h- zty7o&`73M$APTB%BMtv2O>n6D|A?z&JA?+c-vXNLiuF{0gP?Gv1Bi+W-B3P!4Gyh% zmO@G-K7`d0_wJa$SBL->-5Sg)!S_0M1Q|4Fk-&7RgbRp~;N!=_mUoGWAUMND5c;`R zgFOm>fy815p?OQXz`*hDz1G6Th!q%bE-uYPIRHID3v(P}!ObG&+~mbTd}-)R(Av=9 z=($jc<@OJ!resV%qmG7>19&8G4(f-jw`}zwehgWm6$@YGuvk4_e^)6;s zszoiybr}U(e4v!Xe9G`n?EU?2qKc23(>r~6P4?-(0?g*f{5XGFS>g$~7Zs zo*r9~q66?tsBQ8(LHa}6Pfq~pS6?^cnMsnHA}n9&FQ)?mwOfk z`KXkr);mf40}AjY6axqY{t4Q8+$}&;CV;RgR;j(54VaycgV@K(PK#(LStfTYgcm$K zE}}WD^BXQBlrlWpBN^x-fJ0diq-z6o{vST8B~`KMv0V^Qso1y%8yYL2#xlqxf&Aq* zlCKNjl94=q{D0sEQwLP?CwrSy%NNP@I<^TU z0Ox_@Oy_VAlMTLQ0aCwe1t%RPTsAM0uyVzN0EzGP8_hO0p}qv{iGD0!4LEob_sJue z%;P_#J_1bTak#0?!NCE1GLi!hG0TQL7Og*N*G}w)?-&9)cW!8~Icsn(EZf|P)m7za z5uMas{nhDz-YMO*FAbPKdNe20_QvD?7i2TYlhUl1EQh>GQ26A zEWQi}qI}y8%3514I{bO%XRJn2fo4$Jjeaht&aZi`{UXwmZ?Fw2UhbHlW^^(7)*ZN1 zZ*l%ZrG`5L_qANsr8^xTtW)VntEIi9sz<|z-~2d#x9sKF9XX!Xi{syenIiYFkd;wd z8#E3VD!n5fI9TVQB@!8$SCN&cs>tHspsFi z75MOwz#wa6#H-7;_r|N&pY9tO&((q82Qy2%u>ZApqjR%9zd9Fnl(|`#K#+3yf7fxeY z5u=|PK5>B1tYgv-{1@=&?O&7RH-4r?i>;p?jvRdU7Z&j8wEmzkmAC`5c1^@;Qd(Y8 zc>E2J?|cnGDH7e=3e5uRP9>?i%XRPmH)yWFTc4i0KdYe4|REOTo9^I zU0GE)?@mtif?Uc^-L+TelF9yo!4!u-pA1B##VM!Cv^L4EX{6CYEy_Jfb!$CeR>Ek4 zdWU9M=gt1_1O9q1WoQip^W1f4R(i<7TF)O%e?M5Ts+r7TLCG0oV!q3mLN(BGXsx_r?$7sg+KkneovA$+Xwmtenf|D?$!hyrez1GO1Ih2q6i*(g*W|6U zS{fwsaf(v4NQcJ?mN*t_UAHU!+*r+7n|U_FI&u1Yzi7{tkoS2IW((N$&Bz0Q<-mdL z0x<+MZ8@gYd~^8_`Zgx3(mv8S1<8cen$r%N_$8dYSO`$X5V*#_M%w6m!R+7a;E)d_ zqbg%XljO==E8uV=stcfcC z9P~NBGSD(-`;IQfNFz-AEJw7O-io-Bx-SLZeDw$|Zcs?bL)T95v@|ynX&(s59M=%j ze5;bIWtQxhJ4SV@I&7_QFv+eYiYj8Ajb{I7s9D;z`Wr%BFSGn#p|5?R^o&36e8Wq zw6i&A>#J~&!0bTV6FdvW^U9!pe~J_;o)SI93In3=BMzdJU9TGQb3iKao9PSi^2>uF zQ(N@OfGg)z!>LnK`iXlEKmmLMJCsq{(b__l#=mXo}GgW3At_hb;3bv!SMqHf?Qm@wFhDJLgCP0PV;Gb10$1b%fsU(Jq%i_7ZX6s+g9_L4`sSC% zcfh(Mpr84k@?#|PMOw}4+2;} zf&L;9Dga{|hbXb{{MMh|^U3z>^)QqYSzcV&wlI`TX)qq6Aup`9Zj*M6p5|o_wfp$K zq)ei6^~X=7Rcv@U9lhR&#<{W=5J{XRqm7>5&-X!8pvNTr!bcn6i(tM%Hm8eG)Kr8P zG4QUdLb`p{;L>X?44Cj|v^Q+Z!8| zY^LsqwMl-zTJTmFjMI+xqN{0UJNN7v1tWpCrHx;i)TMq|bX!x7aE$#=f=tVmMg6uIwcK_IrtVe70XpV(9RW9ktGy ze1)4euiq>EEHS?~{fUoVRLia>s+V&__of92y;5C0mwm=v-&gqIwykc=?#i;#V>F@+ z?hN+)?t5i)I>n7Fug&<0l-6HYm~y7O{w|6sFD=9UHZ3<}rpl;}$+$t;%pRHte$yVH zqFBP^1r$C5Y5G0PpUShQZjOQt#Cqx!z!l|uYvTk+HML?jWugg^<@#!j;#xa933OJB zjx<2S;+<@lyp6e0#oPqgJrLUTpeL9b(np2ly8DQ)o;Vb^*namA6GQpY42e42ndsux zK+Rmhun|K&m?EfQ@+FdQYi~c+S*R}awr{!t()3RgsanN?FtWl>@rsZa1*g1F>Grx@ zXmq8dq?{LS-pmN?i@ycWsa7`vmbME#vH*5w$Ju~w32aGUQ_g@$=DhkS z_pSSviP%Ara1V@<;HQ<}&?MfV$tM$F!Voor(&~qxzb>oK6E3A%-x=M8SEl_eoL*!C zRJyu@LTfz1ucRS6fDZsXS2?y;lLl($ag$B94J~%v-^U=smN#-)Pi>r7h1<=+Zp<%1zhAhq+?j-2d~wd6A!;pSxxbUmG6p20EGARv-e!`9XPu_;Z8M{0C5Ie<3L zrI9nom3i@&?S9IE5kI|zy@q@v^W;=PA?I6ylj}5GOF!kw)zn%kWM9~M&y$shhd{~& z^<64YV(LCPC?pi;exMrxDt=NmBgUR}1rR%Eo7VvOKomhh88LX7I&X*_gZ`5@iT%N9 z|9ui{noXs6$k0O3=ej!T{2UC_d!*Zs$zq+nIoVECVBa`LPn@ZQoHb?;d@*Pp#C)rhixiQVs~KdXO;6p& z-baZzRI8cMw6wkc;JUbOv*mySU-J`p(@pstlO0N>j>-(V0Y+uyO@BBwf2JDdDYSjy zzlBABJ$7dEWewifH$&OyuWsTfdj0zJPKt)mV+`MihY4>R&TaAcwY8IYo#jX9M zZ~lin-fQm~chrY0RQ3)IBV*aQoUht_aV#KZc>Yjd+Jj_Y;4UiJ-kFX#2r_EXujPs$v)`N36Vs`HJu)cEs& zq$~=a^-t3DvwizCh8gTPa|cE{+Ynj~aVsnGj$|SJw z&}&Ku8|utaUkdYw8m(M$4&z?#ru1#8;q}V}=iPmrI@r84Z7U*I&Lj!vNbr$8I+`xG zCdj8EL-933v|qXMF$HJFh}l9W>iY z8gd7{MK!nB44wM0-^rx$olesBkZUcfhN-XIy@>aIU3DoLrhF%MvF@QPGzgf2g6Xdr zC5`hOKDMQ>AYwiK3E-IgSUkqT@O9>ej%c#CTth=c;Rmd6tf6Ow0Bmk*Dg?I`$1XT@ ziK9?u@{_v!my4LqC$Ac60h|Zai#pTn7&rZ_uzmuI+9&)vRe28oy zJ6l0BGQpx)Kl)^mL2do|Su|W~HS@eq!gsVgY#V02?3K`({Smres@9NM60m zVvGLIcM|!VHL30d@w`=bTwQhv%9m-M%B=sK?#CVBP^jQk@2jD_a*NYqVM56z=54e@ z*_Zlwk`%+$KL1xpBEPT)RmEH0dos62u#34+;z z+WzS<3}b%T{0M!1sxtnDKI@T4|Ff$T;mf&Fo?0!Z2=Yg*V-U;z1=N!@s%2}eRf(w7 zYpao%ww9m0Yj`%NzgWsfdUD`c`g_3$7Ve+?-&e)ndFT$g>L|}y%REhGvl?lz%9geK zaBY20N66DvVMdCLQ9xk(6MC-CHiMOW@}JsLPdfB8B`QCak=gsjO6^?Yh`*!g%a*&b z@hacbgTE69UTe03MYDbdRr7_>gk<8N*cyQD*)naE` zOa9u0j$KAl!=F2H-li`~y4v07-(Ex8Dd^1p#o^4k^b8v_GfS(K5&81mnDfoAh=$z8 zRG+~d4yJN~ieWuuj?^}ztqFul&cfGQw;~t1cJIow zU?1+eP0t!M@JYvyJ*_YxHyti|G>wo(L$$mLZDHVjSlaseDd0FsR7^;YAwd=9@%V8N zLD6(|`yr~;3lh3?9ZYbgB8+)1bcyHP{kfu4RgjzL&+N+*pYD6;1oa2;>nA#tS=AqU zZV@lc$`vWYh<$cs6IgTUIXR#QNP-sa%chi~23gVw%aBwk7yKsJHr(dFa<6fh;^!Ni z24MRDu|&8^)_ie?8yGFDtn6~kS6{pfIuq@(q#p}nB?L4H=P?q*=+kC_4y#a4@(58wUauP=oG3=|YN1KO*>|HTHxRPDT^ zzc}Aj)2taqdhnoteqBtL^RfVDh;=>SC!XVySqNyz(x1jqeg<_ad>ucQm&05m#n10{ zlx`wl;)%;oq=F_os?x?$Moc?3&H5C@MGi#9yyhzNE1Uhm3Z^iH<-A0~UnU^7+=`;^zOUFxq?Fykc8a$ao( z)j3D6XAau5q*=Hfqp>up{l1G?OjNXTXcf*Ta4tXb@&Vm0dDVECQPhEoX=8aN9TbZk z=NxaEs{p#B6Z!Uw1p;~=L37k9ZTC; za!`p#MKSYMx4vs>*`BHUtko_>jkCX9li-Ru1!c3GoSgjg?U9bRl+im%hpK_^`x%HM zSaf*qHYgSScbw{}!b=Yk9>~Hyu=Ij4-CfX-K}8sDLaqHO+8hqI)A^@{B{C`(RyO3UhVT~x-1CcUCAe8XcYAqLN+`j8 z0~ElwZ+Yl%a$I`1G)vjgEnI}FK6dozso8%*Fx{EttXZ@&4+>zG7i{6@U%Uu47z7)q zb&JHgt8bDCs*n@?fMK7XyO;vkBzc%tU}3T@bD6ZCJ9&~9(DkEDZmzBpU*OkwarUOq ziMgrOrj)i}VK4(5?)&ImjwEQ?MlaeZCLD2usFpyYbkZ{lV?A*qxV_I$b}F$s<`2l{ z9zXtr8T{UZY(`1OvaKEwpZCW*ljhgg1ofh`L(p`^lmBNVe-d zxSH+7Ft0*YhI@fkaK^mvu}C$nrC)(A*r;-%UAUsCOz;oYQ;NB>BY0h!N~jV3#mg_kI7V6toV*?a#IBXcMSc zLLt<)=}>I=R-z$9p;W&UAZ3>>@%66o{lZK4=)>>0Us?-k=b zVHyYNAawdLgk=tCIXab?I15f^q>H9Y!>d|?%lK7}Xz-2coiaA=vbL@MQM1RGKf#{K z6m1hUuX7XEkVetdr`TCmW;N0Ma`*%}V8+C2>AtAy8bX7EbMx~h?_jwXFI76dyLS<6 z9TTwMP*kE<4KZ4Wy2SKr_cRzBZ*!eqrW_TpZve%%HD~-=k_xr)@Nx9J_SiPCn^*LZ zYGh6IKJ$R6bY&?1V3M*`MMQ@!R#Ro@mDTPp&w?xHSbTWmB>Z&7#sspsefEP^>+||! zb;{+Tx;q#YW!p_3`c3kB_UBw2<%RA0emhb8vO8|pOo(x)sHfRym3N z*XW|s;Whp?z2Vk-wfXghe%TlhbqoCKX4Bf|Bnwt=|6*d6KSDWFZ8R^M^6}Uozo;bC z`{BHN!I?7d)TH|_r3CdJ{E2u@0m*{T22u50`2&2Hg6%z*1CnDI}M@>+?tt`ZhPiUTuokg zeI8qx)3t9!dA})PeqX5Gly*H)Z_%XfzMsil*ZBmSDvEx|fW$L20&GLcMXzE{Hk%6F zaJQ+OEL-}L%wCf$T0d9HyV z1B1?F1JdIoMyWA;qD@{5ry}@TtH%aX7c=?&Vnjsuj>fS^@MS%fxCayE{I}^C5gqws z!)TgH?)|2lu6tLPto3i2`db8z%KzTdk%lPaP z9i(hr%pqpgqB+4kG@T}|z)9~~*{4rGVna(K=!|5t1dMdYD`SVBwY<40tUAb2x9eQn3{-Qqt| z6&K^SkZQ>IJ|X|`wc&K^wqQ>wPycUv41})nPsfH$$n)rAV@m~MGo%_+6SEhu$75@= z(9_0a583wCM$q!^{`UNd2g`ku-Q!<%10q$!U)B%Ej0_rl&&iT?lK@!j`HgW?MCKc2 zlX@3$GzW*QB5e0kzwKL35HV7`H!fZFKBa3Ww_Y^cf-67wuE=~k-vcWf!5r;(6XCMg z9Xu&Iz8rTP?Cad}aqnTCs3-1SW|;w<;pYuOq_)=_yhqP@H_TSE3;dtH|^CZbz^fcNQC$LsD3ie+-@ z%9gd)AJx81_0Y&so({BqV==1A@u-U9R&>+%~c-Iqp1J6C$mO`_HZM}0k%laEsUTyr^1 z%d+Dv{ZE~5>+xn=8Lzw4DHgtp(Hp8MU)xXRbe87&;E`{+4OR;|3bbb(ScHWgnxCvw z=P3p;%iX-W^R9@2);?N`9gHK_y7oxgENx|+z7(uhp|E>iHCH>{^z`u^_i}EU-Z^H@ zK9zPaRG;UWaGvj8;W5!x_4v}Vus>&5SjmsT5aS&TM^sYOoN#2KJwaXznrvH4YT#VC zo8sIHl;d>+5JCdLSw!6nfh*i2=BIdH!#WLr#s=-Y)AHVgBSLF@9fFMiRYQ23F#I@i z^(~NWL&2FS8+2N8*l!N%{b|7H+qP~M5fOnzB0nKv2qr(zj!r6*rZPVbM=vvDHrmPw zMHT>g%t082^ss@~1to<0WoFj9xL-_mPfK_?chS_sU>%xfZ#Ey z-L!^e!u0&7cv~d)q!;;xyiq&&f{Edvo0N?tM>%b!gYD{AM2~qlFPSK(jLx5Ow8FIY zAJWT<$>^dSRrdbiVrkDcj&>gXnVkIDE6VY?rv^o8rl70OOZQxN8LcNiKJH&m`8*st z6cS9IHhDjYcQ)*6S$tdFeky)3p1q598d3Tz1F248*|VdW1~-zFT-oa9Qp9r%<2H+r zdwT6odd^A^G_I61q7sLoF@!eM>$2vMGOr3zj2cDPEQ zdtu>|Z_@Urv7+MchsQozE*%a?!Xmvu5V=ygz$2)5-TCyRT@uz%^4$Ht0L(gBJ*No8 z44j+2S1x7j9I7n6T?YA2Of?z>VPRn?&DCFASVQ3fYhc6rxIGnfjz7LaAKVNIz{wC! zo~&6IRqZ7vh7*_?Mq#BTCAV&oPBq6wZzJk1pWYRS$#pWp}jPxvT8 zLJy0&xrwa?>ULVODWRa3%mpa3rVeW1dUFLpiw?h1} z>9`iVN}V)%7N=n;OX*d&C+VAZ@Yfv4l?pvQ*>&JJ*TR4=cQ}{NFgab5OY_Q}!2|ic z;rVYlttB{;*n5bN)ew=niH^4Ba+>#($rG6h-+Ej(r#ux)wD1CsC=(Oc*tFz71)m)R zaR{NUCOAEYU`F76K5NgDMif++N`V_?@JmiO-$Ct`Cg#G_{SWB z0|cEGT_24Ss9}9c2t)x-;r)AVg)wRH>T~+?Lri|yKd9YI-ir;7XJ!>XaW7=65(a zAdBOP*AwT8sZh}YyCAsCeNShpWANnTKr5_-NNN6bmm;9#aM=(U2$HMsm+x% z%{^=OW`q28UcU%m-o!x_%&|0o-?P-(H3PiI^7!U>`aK z1wUZv5aEI1cL($500Bu7@a96H|43Fn>*eVQ0Gh7hbwns#)`)QZi)Y+{iuHI40DEnZ=%D_ z0;1eaYs@Amk@&Yc^i?Q>0Q+VdwfLg9y|M}lJGwO!Lqott(SVkeUtPT@@wOzk4TgO& z8DJe&Qes&Bl#Utv(qCzpNpPciHJdQLxI8`xqsXSD`P{g>BcLD_7~xZDYl{vv#mR1V zTq*IDKJO`&lI$5p%EdCIW;Ag=@$g^OyhhJ9o$Yq_{kf_TjWdS&bjwIwR1l}yOjSYN z(CBu$^fi_?7s17_s34xK@FG3S?~>-0W3FwtI}2X63vFAt_9J3euPWqHi9-n#xEkF z01$k4ABqT7_rR7^*u;k2Jyks?)i(}tK;L2|$$v=! z3J9@rJ!75l^SOr||65xd<`MKvOyU)0u*F`&8VWcEA9-JQ+E8j#&>$-OXT*r(OnQAKD{0D?gL zkeCEr|4$qkaRrja&QA1kK7;ajvA{Gs8FE4Fdl1Y4)YR3HNnrisYqO?L7Q!S+t6%lw ziYpE`9AWYexTda--*@qsdaXjDijxP}FcNzzuvCz=#k}+Esm)C=Fy2o6m)c%Z2&g#R zA_h<)1Ty#X=zYC0dfgplUp+p5?@IzXB)fL`?GsTq)m2%5MT5a2kV*obla-Q!LR3WL z)#xtrwY0*qB6cz))xgdrUj>ODchbDQz5VBX_YWUkDmrjUxD=>3;_(`nfXlI@N#v(_ z`+tBDTpO1xvnk@{0wf?#!54Krd@uUzWrZ}}niV~(p)OtvF|%@o3=6YZx`nUKqua}Z3Ar{V@hveYeD9qPOt6HaN<6a-g zZeuW^Rq^gZ-PTb#y6{}*)x6!BcG7?}0r(9^QHBV2eKi4fx($PvY!WE+6zXpR>qFSk z33do<2N4jOyCF#;(mdhS-2FN|eW*3NYGrX3xbB_5EOlN<>OaP(h9)i6tnX7TiWE4C z5=?a917|*!#znCEL&T+ss3?r%Z{wrS`WO9T!UYrvR|c{zuEH3{KQQW*M*bU-gTKMa zVJkKXNblHBpT4^M8p{NTv%;XSQTtnFb*^X}u*_)*X!=k96VgH}F#=G{w=T3+fI1Vm zEQ#&G$v3Zf&$U)d^W@bt@!t4qki`YBPTfC%#8&=pf zmxqUnJgFBYDI5o#*~ofTxI8?crhf?(!>amfk*6!rn(>d;ZNJC2%pUh=hN0z#Ni2lA zWJ3s$!xyvUvZSIngY(K=2{3eFBGd(P->-8ihN5lzTFdG?GOKDmOMF%(Dw9~<_t{yEd7Btr1Z$}(uYVyBBOT^GkBY)-a` z)BaNTPbkZPFb=vLEoEH>agQKP( z2+WvQul;4rLvT6-nh)DOP3&UXalWnx2m=U^Ev^^X)|Qk+VIRY5p?ogTTf7k78rs@@ zpdS*#Hyj+6@w&^R+XLPKv(&ne|DLypF&`#f$Zr;pI$rkSgD16+CIz~KVy$9u$VV&^FVVO^01cq{t!yndiNB8JxA;=Uh{;+vH;;t=FaZIBbP(C5C8Veu8 z2?XM(M5HNVZ+?j#8SB2nhqfGO$-!==YuXzVkxuUqo6HBaFr|qJ#WHC?gOBBn-)#;i zGl)mZBT!2>gM5GFtPZA~m)=~Fh9eE^0#03YZ6%1WeXkcJyMa?DPE3 zIv4Z^v4wtqgp3zdAtxjVd^o!67@FzT#kluTU}_^zsReT%*j-}Jd@gkp{5K9#ecCRZ zkcnJ8u(|_zh5kL{sR?up7K4c`pFjSE1$!edt zQ}Kwad}!Sc9HpXy0EInUv(60`jp8pc0RlHkiN&zt)m=EnUnVmU|AEB3*}z$E08H+R z-@kvyvW-cKDbLQx@O6CO(2#|xN8JDjJmv=~Xfc{)4!~v^AP8^K#*a8ZeZwx*O6_*{ z@*2ft5ZN>U72xgDxE+&2Kb|-c^}%=Y-FwFf&ExRt_V#w)W3X8%lpp`Qb#JOqNv#rT z+;2DCx_1ab)BLk|eNDY%ri@%myQ1XI4sq7C4f?@5N)Ci~k-@tp5+daDwQ;yMJ9~SK zqoKX&zlpuMaS8MHq;2P|T%wLIKBl9WS?8;g!RX=Df9ijV9Yb8b>7Ov5Bozr~3{q|X^%>&E5BO)%x9lDp1)QzInRM9| zQ`c=Bx#X~`@jWDEp`BR~*xXs!{_WG%P2L8-k3v_v4j${Z#5a(e{x_4B;*5v=0#8b+l!Qp0bkb#kd(XDo{4Y#z{=*R9PB(~3cOT(U+%&Nf z^nnYqrG_0sJkxgKdo~XU(?ERv)1+O)U(;5;Gqw}ns1-&_AxfMoL^xS1oa94sxSu4d z+x*KI2oLl2Z$m#aobh!|*TBfXeCAu0e)Q&Us*PzZe#<`#_ARH_xPl2m*eSxoiixNb z(_X?Q*;13HoF}F+{_XYmPrvy;Oa-2B#RK^>EKD&A}o*TcVe=nC)dTuOaYV|;V=U*X4xDUX1x_Cbi}=fa~TITC6X z{rBg@xF|ge{_QWZAQi@&;>*76-Hx(fp#cB<2LH`7;cvD}ze=lrCGU8m6$j!5g^#Gt z?-cR9=Ho*j(eG{4BNyy1z1vi6rb5|0GN)No>hess^$gOlf;Vy!ecOp^#Vy^cWK zO?%GNapM?)ecct@6Sy9@4{L|x3=Xgr6=e!U>L+Vb59O9on-f_>sZ z!}t@@_4SfnzA26xXtY!a-%B(^v}p%N2z-1F>uFcU$Xs1w@BX@nvyQHNNWFeSv@(wN5Cs+#S%g$j6k_|#3jV|a$MjB}rkik4_qb=^ zje-vKAGI|r7`g(1$hDn}Lf{4JRD6#wp09{mENI_=&sw5!j-i1BBuNsuJSoW01gViIRY{ z2)XQ64k@6QNbr9^2%>Ov1JBL|oIp5@V*=!i&umnUUh+*TSUCh#rj-zQ$$Re18MN_B zsEN^WQ5-nnj~Ng=Q1mIQ$Yv%d5%1{Bc#S|-qL;Ks@kQoCal{zrTR>7yRX;r@kcWIb zxVGc)zm^X+sRiWc2>YCdbyR1uOEI2>hL#A$0)NXpMP4CFWas(O zKpJ6VGemn;Z2l#0L6QU8Ki2cbABgKZk@X^f4-9+gSvJxw`1$!k;69Q25oJTeN62Xp z^V?3K?VuM9MlPZG|9T~=oU z`LnS}OZ=dfy?Dz92-u#(r@OH<5P9Oeoz#PnnE|U&fG{r$?g4qca#DP^CF<~tHH!uls4J(8blp5)#om34CG%d$a_S5-XfgNN)M?k9YvF6H3v=_?q0Q9EO zQnPF15q#S>D*Ir-t{~tdh$j-7Enjx=P>jPRWM1kqxPJKfkq~+n^&G7&(y}g%8l$=) zEmuUjGkSFnub@xH?$YXN*4#k4o}C6el&=dDPc@+Ju|ZXh#RAue0(f~3KlBG*SMON> z$N4DFs}Ya+@4DYUK(mt&`mPWsb>^#g*S(M@wuBbmmK&HBy)U8wa_##crT!}OK@^+C zB|jNZ)JkcV5%7N7yGJ9eOyly{RyW#BI9HcbB&17HG3MuOb^D^uItNg5t; zp;K#kMiiTI*TSh^ClYS_(rR_dirxzO46HSV&=mM4 z64V%|YyGbz>_j#XrFao-%ay1?x=B0uRI527o$O5!)Ou4LkeMSa9Q&PKS5e{SAHV7H zw!)Y=JkK;CA$bPG0e~AOq$^O2VTh=BZsZv+FR$9QYq-7ZFmp@$Sy@(g`NTb}6@60% zUn3Hq5oCN3-!Z05vBqYR~exg&mPfJV7*fmNC zAKm>RGFk|N+Jo6UUM&1e0KD=wPH0`?v3BR*&-zoj{xwz1lhk6a?ste zy(0u%z+WaTJUo^=8v=d0H$e#B4O^7V1W3(Lcy0i|Dn^Wv#VAN6E}%J&-@Zv6y~2A; z>tb?XhPTU*VJ}H>*}^6WR(}s4K4c2% zmjv4}j)LmUQ}@W>JjU z(m-@Td?~enSDNNGI*YhxORKCe%zoQ;3&40NrpmZL3gCPHGBy>3`i1tH2K}DX>OqYE#(RN1wHMB#ih3uOf1;wL_?S_@LB-JAq3h+ zHDkRKFoyBNzn*jf5Qiub2o1`cI43~~7!ya%O zBxlgRcvk`<1n(F|yVA9vmkIk7LUN`;eiv=Vg-sMk69$)g{W#d%1eEVt($dhpLtp-l zrzaH|Bim7L5fCwM)I*weUH}~fndB}_?M+C}%K8bdqCa@W9EMG&R8(MO#MsYy7rBl2 z5|3wdD-zY|A*Z0Fc4EvQLaj7ah{ET}aDmD4eCDob`{w9M6iBcT@jpj;7V`8i(TMtTva$*`Z*!* z3Vr-dhWVP$2WSL>Pv0y7Q3FR3Az26yO1ENa{4yPgVJJp501pwKl;eU~0=TDd)6z^q zwu@b9RMA>oT%oHsSMsU6nYt)5WBuuKE|s8t`{j+9MqRd%>h3s*PYbli0(48*9|;y6pr8$)XZ57| zoN1MELph<_u*+!k!aa-};|eH~-~YM$5hstlJ15V?-CNMQE$9u+qU)D;*Owx^zyIfZ zR|0l(W0g*;eV+!<~5P8l`N=jOns==4N@%}C^vt0NXaCu`v7bKtn zV8D1~*$f>X#3l({PQZl;fwoW)*GXd^#@N>iZVCR}0cUk(xVgEvE%5xdg;qZT&nSXT zLY6fa2Pm&hrWZFq#XN=imq8+KbX`z<{2=yRY5{vibYm#j4^vPO+GEUYFjgRhkza>} zY#zW;JP+c=<^keD)D^p@jUcOo{qlCm!Es+Vgfls9vw-7`k?QhS3 zmPhiINYM3Bqds^LAN>n(52>Kj7fHP^FD8&I(91&NSf|O| zarNAOcORcxBs#I2F?&6oyFJBF{b8yHpY&HQs5?wiVkC+cf0VO=> zV@7Q(ZEb|HXo6byuxasXoS^@Gk<&4hpAP>%ZZ`4@b3Y;?uCE9D)0pdUC51djg8u2z z^Q6?&?6c_B3|cZ`51_$;f7G;^q?*he7&)%y=oRs!~bF$zWZgKk0?I+`XH_oi-iF|V_-6swTTi0;WwTRX;I zT1qNIdvX4N6fq=dR}x2CGR5TG(Rd^4SFu)VyBx{!i|(y75VW*r;I3ew*J@Hi@*164 zE*>skE^73`kV2ij;7aiO#FsuZ8r9Y#hw#q|_#HQh5BnJ1MzWvEY&<%B3lLwR?aN9} zuK=eI=Y@X`M5^KVxsvbXAYzsZ4r+e3`@Tyh;YWEtN7(#Yn`tqojpBAd5irtVKKBK_ z^Wx&-l~gdGK83ac-GaYmFZzr$&RJSj)Z+Yc$G2_!#PoZE)hF;upbte}ofA@FGBYjE z4a)0X2S$NMWDQBA`&d*|($$yi={D?U%8ido=9~9bH^~^umT^5W-rT$M@Gc$RyF>1h z6|suq+X{$6E(tuTk%*PAxO(aXG2Pjet0P33@6KJ|yMAhd^l|*ArE@PhyQjGx2v*y^ zK5~{jz(n4*`E$gP?T20W%Po*}jR*JYj#_mH8|gOHtgDU0Jae9jUZ131zYEE4r0sY2 zNulVRINXs0MFR}UOefD|nTb?Xb&PIrb%h!4+Cwryf0g)~$sMU5!b~{imic;sG21k@ycu=*?!S+U z$|Se{If?Vc14zoBy-3+81mD%(ffqMkB)HPrZZ&?qF&21w!luKjSwU7{wv65ROu&`P zUtRwo0K{TGlEWfj2YyY6{)pIk_*-SW3D505;|5Oso(y6cqI=yt34i^<#8v``Ok=y5 z0Auds|C4}j{xKj&xxvqDiPf=LWhgX=5@l2y6O&oaua$ZsuB zApFRCIWbtCRe@>WikuwA`tczV$7257ol*21pLjQZi7m?%F)=Y_;zh{0ZyzZ?=CC3# zZYK+jVrpv2+yWjlXB_6{Wdy7~i3zoitW1}~S*GZ2uh8m{EE$92@k&2Cd%?sm02X6)v2CAxbU|8YjaURrqSLIDyEnSL?J1?r zd+N0bw~w>x-$qGX7E0x!KLRbJ?Q9GzcC_0nMnt%K-6`noW}+@jn%4`hFV^%1PJRG6 zz}%u}xg&VK-J&L^Xf_4Ie#bsqYDf}Fo;*pJT;cAtrA?(wE10T$aWx1`3t$3vpTU3h1GIW)x$N1(}uDiJBOWeHKgN5(1SalFUVqW)s zc10BxZj;8JCXtTjqbrN^QsMTaAH8D1KUiKU7drNS{|hJRqTZ=nG^y%-3A(FbXLs3c z@3_-!@QUZ_1g%vrqD zSh*4s831<_p=!DDIv(-|t_tz;b_!s#1K*<91!whz9>pBVQwa>aT0+Sys`PWen7fyf4Kjt)(4lgP$=g7%09IM#{Z3~nub2-Il z&HI8Q*JiqLz(e$z1>ed2SxkYa=ZufKC7OtAFll(`fVa+0los3KRsV8+Fw7~iXhb7_ zeZ;(-C*-qBb3{^O@#m_l<&{A(!TIZ#>(kEGtT>wJ-`=6$klJyK(Z)-q{G3&dfQ^>Z ztdhIPt;z3hu6wDJA&1WC2o=qW-ABv~>K7R!Y;T3JI&E^9n@;j^a7q-Lo`FvI=+5<~Gyy zo2sg+{EV7239_qcSm2JUBh4SD2?@xQCJQ>^ew)ryKns}pWQM`a_;uk^UA&zoujlqT#)DjM0#s;sQG zeLfpo)^(4?aqMrlZGJLKW?NIvCcFReHYeHGY@3^l1^cmo)?_zpE)NQ+xXeVypSosd zYO+-f2iD-1)f)YJ6P{jAAJc-#k1EAW0qgVY5jDoT zkCh*Ho_`D>I5Uk zW(LBE2Ml@1qDFwb(?wrj-(Daf7LDZ&o{Ug; znC@=1$_%c%Y@x!qT{hy3!&J9O1(kwsYI17F<=M)F+i7YCybAOyTK5<_bH%=0Y4V6? zJ6Xe3>?b;@9L*M@pvq&nc3aleQE%>HiHLF+5s{w5_g9lR5AGs*5xFGOI5MeoJVD%( z4d&=CS{`%gc|?wK!0cywd4%0SFcbiHEfIsFRZt@9vQ!`EU^^5W_`TZW$&&#P96|NP z9(^Wa@dKIc2Sb?%{_}eep-^6)eCE<_>G$?!yIJWT#xS!>1xbj^!>c2xY*Kp`r&V^E z6YEpv{aIFRNpSH=59ohKIz8TPVE#S?FT7JQmV zNki?;y8691+y$pL|H<1QuUk(`2hM(eZkqhL;c4f!tE77(Ic|UNwq+bD=~0n6;&)0T z%fVJG(;!DJoH@dA+TW*aNSi~0-*IK3M}K|*cftbw4<`bg{bU7m(OC?J+jQbTkJL!T z*OP17_P~1#L-0dlPYMbO4$Zwr?~V??ybUGHcy&$9GX-(}>1LD_s=DE`I7wy}dY?s} z)0Z!31ER`lLdqB*#bAMZ#o$*#m}HQXm-AJy^3FCWbj=sdUp6~nMzXgxD@*p70xfPQxi6c!tk2V zui(FhW?qtH7x)Eg+9zN{=uo|acig^YCu3h+ujSN7N>dcUEMAi9Q-Q?mNUK*RHBh{%97__>*VC_>6Bt#E{4x2?@Ko>YsGM zPjeF4SS_^VaCs&l9`Cooenx0yY?p9`I}8NtM&&VxM+UV5)nmoDtqh88%01-_UW~mH-jYv_fx&tY$qG_nm9t4~-2Miq`3rsO?NCWXT z;Hn;^Re>M|XtBlvJZ`<$|Xq6=Q#w{Y_md2+YbukZYGow4i-DjwAPhM7s%f6{K{MRyUlGS3oT_Cu>* z*YK_<%c3-S%*_g9V6`f2iFJJ#eKAKKrONq5!;qExplP_f=CC|fP;dA7oUgdpA-=x5 znqS`^M#lo_i-gL-Ao{`kbkKc)tq2|4d~Y(KORk40XL7~Ac+7L5MBSK{?br4ffKTC- z-AXUYVvTM;2(kTql zuKHNRZ@-eZQeC72^n|FtU~B4nO!eU>SFP9>yL@HTp<&~peUoNjJ%NJ(1DKm)qJHDM zwl8Od#!I}&WntxtdNctUzd%zUEN?WO&RZd-Q{f*7rfN`!Cz}bQ2qVTpHxT_p+rU?b zKfc1PLg&^45TD~N3qJ-NqZMGXa|@NVlCEn8uwJvaXT6Kd7Oseg&(l{NUePc zZ$3prXMRjK>PUU&LBQqr=PYJz15y>XG>XvPm`Gmow(NiNr}~=>f_6WCopgt^J9#nT z@WXH5g{lF5mm&dNzf=1O@b+IMhrYmuFxk_4$+;JXK;JziXdQqWrv~ET+zBPTTYEPv6nmS{3wbM)Ut0IMF{-TK{e^>px?V7sef(|B40teHiUO};)a zSdvG{`zP11k&&KCPF^uL1N`og@Ks4a-aS!OZ+UUmC zyR+9W16_?^%?I8qJIMi-(^%H~+Y_lbab^a`=~R`=*wD@~8IfOq&Ax6W zFDui!z-(Yxb&I2H!zr73Jy#OFQi(;!j9X#5F(=EJnfCTt+e`HOGNM)!B=It96Z~T5 zQRIg@>k7Mw(LdS;G^|wW=5)imIl0Dkq%^92mK;YzO{~|g9c>UEcJj0$+1h}A_8DIm zCH!cikQu%ejcHGk%L*jw)pZ`1qO?At#0WJd7|LRol5MXdzXxo5(UDW*Z@U++c6FM& z+C#a2%m$S``kJOxMHfz+!ecIh-m*q8T;&djC1y zsVtB8+Oz1DQM&v?ifU*+S<50_)&WfMo~`$c5$-tN0aWs7T8iF#cmwa(-Bag_@#=oP zHs}IT(geI@QB}pl_;VS;Mwu#MM!cOzN4W%3q=h{$z^ruQ;E1l}4_c~j@wLd#vK1og z@NtGOA;~~kK=$QAhNWwM^mqm_NZl6iaT$5fsXPmp`WA@F1Qxo%whye#b9Lg%6%*`~ z>t5`Xq>+QxrrX$8OWPiQqNi1!6kC&z7iA$|ZlmOSoNCD>wJo(6r;b0FN|_azI?d`1 zXD;l5%z>P2DB*jtdT^|6KAEm%Jx=N%uOGFxR|NT!jiDwtWDSbXI4kLcEduhihQz;2 z*WGzS6>iwO|2Bpcx>$9Sejr+IK^ zwZ)`o@y8z!bsI4)Es7COKl~JHp`O#7ng+5bB$rOwI8ZoOrO{K#T3;6voo?TjHg7De zPz2*)>0`=T03DrzycPRs-yn+qpfLqi`kURVz~{G2QYF@K0ms7)*P z#f2|)uJCsYmhR8R6n8Ed<=Q>S>9MNHRtmgryD>2Yo;d?b={^KS%8J3~zq$=?meyH~ z;L?_A(~d9P((VIf@iZKGqIv$KwjQ14{D}qf+%Z_dV&R6;GoO~gj?bXLH2r)(&a13r z)+9~5Z?3khk%9tBv(ize=R9 zj_&v*3ob!V0#RUu&+SWe;gd^Kh1=u|-XnM9Hz#3P&KJn>2-XW76m0xOD)M@@2{r^B z)g*)JmGl0)m{3yB(lb8&(w&OpHI!F^>o37)8}MfVG(6Bc$9rO*1{^sY_w?uU-*^=N z@ubJo>zx&-@Nnw=bC!1j3-E{G^ixSoz=G((UKoLMVu6oTzajkxc@n?~;Kicr2I9X9^V;)$orgL zogGZ1!?1*S_6eNRLMNNzB4bTL&vGu|utD^5@RMjKAF}o{dBv;N0(7O2g=kR)kpXN( zhB&OZ^@)#RaJ+tnL)dUhxz%W@!t1{BkfuAX=^{kH#=e6bIQaNw%sgXhwJ1prQWpvy zf^SX-Jt3w2Een)BDx7FUuZWk=G)qPWZI1`b_(&kZK|Q+}3MF>0 z%8cGN>^}oY*8aC-kw9+!+Oy*iN`uy36H{KeS}VwwcDt07*Ad&=W}__>k@8}iF5O?F z7rxU^T?Qb^G|4$`(H=KaTE#4RaeEt`YnLrmD^xFBUCMAue*WwS2FUPjJin0cu=6nTy1A_t8W+^N$P6BR z(+V>P(jvgfEpX12i*mAc4sQ>B-eW&*7ID(>2_9>33*G*f7<9S+4X^$x)N~RW z*|9SrA#INiw{&+W=hLA^_~5Y>9jv!gIF-8^*tdKr5in=J$ejOhI}4}}2+}1jIYUWy z&1IO0lE*!p3A)lbCN7wgQ>6l60MSm3k&biMUm1}x-)!DpVsu+jV`Q+Q zbKq#=m4Q!^1c;J1i}S*&TO?Z!OlFHlH~O{fUI_+dSf31Rqbb*a3Jo#aiVN#1i%1kt z^{Enk%SMQzq_dP@fG(@pp#yrmk2-IWFWYKH{p!D!k5m#)v$V2K@6L&0EV+ICW9GTP z*Y%&m$giD<6{Wy;RxY(V9Y^ zH$iNFQ(W>YoeZZJau>ec=4`0q_;E+O-xK7vRPr<{`>Sf-wsd^rGZjb&HdG8euHV-<32MBkaNzSTJ~;@<{%*Rt@0w*5WfY0}|;15Fkz{rsHH5CQlwrDE6CMOE`QNMb>V}NG!{m0Ee zaPvQwD*tcf;{%HEpDD=|NjJOJwFF;)a`@>i8h*FGDkfIzmd1u$rdpuOK?pH((XVeL z63AiqmJe2eeVz_5-}m40Xu0saBXBl~2r%96AJ6;~b2KdnhMBt40Rkusv$2yp1#Z?K z+r=|;cF*->t0^65y5DIa20BP$(}vwguJHSe@9X@{QnfV2={dwQ2J4B|(nASvm8!$t>Q# zIphFl;Nb^f#KC>_%EnRJE9=jG;Cp&*h>K~K8BonLKK(DZHc)Hkajs4mwKjC{;;5TcZT-xmRi)L7$Hbga0EeB&t-~azQ1`|mlM!Z3AGh?Qt}g>A21-}K zLRGF;$mfpzB1uUNK7d#ip%+)AkY$1=rxdurn=G`Zjn$@!j|LgPW%@LX0ut#Ej!5Vl zXBb5E#`54)Q?C?BZ`jVbCpJfOdjR!<7KsI8F-@-{%(5O&TtEuMyN|xk%Vz@_Z?zTH zPOj4GOYU7ePq@x8Rs@k4B^@In1?+5pPztDa@PMI;9qWznL(iV_QylZj-C(|??wz~&aN<7UYVG`SDU_NwC2>3~$27O@ zkq05TiQ3@Qg9%n}if?6Y9L+d4lCb{Ss>(Kmx2_NJk)3F6kY@iv%Abw8LlV~rx48|w zL`{Ww~fL{p)<2GqJcue!n9H%a(CT#=cOO(TeejrsdGOlBHffOYKJ^1PPz9*tL z`39tJ*|p09QD2&W4IgN>yxH%lf5JocL1Pf>bs%%x9z^k7`WPrRg!`~$Ir?fBan*9o zV*ecypRJ@0#x@76Ip^X-EQ>;FCq8YfX@49P`3ed-`fl}fMM;`<($zDiiMt8aib$Bx9Sl%z zU@R;PX$VFfC9gY!;IMIyF_Kc}Fy6xK-|^h%{66T*-ESUGPm@cQKnLbz^9Y&o2cSuo`hZUmE$ED!@ z<7F935FZD;=KjMG=x?>irc5%YZw0E2Bs*@bSPI#dNmqdzmfw^H!ZqIndtbK0`4hdN z)t=#hEGK4`RVrITEA3iChr9P&hGFQndEAmjBGMGjDATnZDyKrJsLJIK+7&=7>XI+<$!-orREsyQ!=Pph*Q1jjtbfDmCV}mbF zF7?HGdu+>8p0e`f>kD(yvoKX&Sfe-rR23WM~}t|&oM~T@6QPmbyPUo zS!GHG4!iRwU7eYT9zA(qYPMEswKi5sgr=XsE6-7lTv$pf)nfcs^o31AKx{0V>Vz2O z9oaU1oN0#eiQWoy)TXfT2rgc?e;z8E{f_YGs}uq!&xzxpQRWa#{%nXCNlz$~%J3~a zuPrNd)GZfJ#j* zMG!i7?F>E2b@RR!x{SFT*;7_)#M>ttk!zLF5#GAQsDfh+UmuMx^^~iqyppHe|2bu5 z^&mOIEahJCOO;Xi&I-HQqJZ}1XkAQ6iCuk^qo#~qjZfg#A3>imwc|nqT=qh>9VCft zACYt~U;`7gChXtkKJyv5E+u-;AXO}gUbwZYXsgLyH#@G74XGg=BRaYCv}6g(E67!s zm6ehAe$6$qv<+^w6wbJk9J}re?S|BrRa~Aj3wEjgG$GSfUib0AA#mZqqyQqlGh9Z6 zpKrP(Wpp-2m1R#eMu{ErMJ#mq-wIS5i>mg{XCoNmxnFRNYSXb#01UIj7M&HyywM-g zo~PyF>RBdQ?Oy7zg)=PAoB$hJT3(ZW6`>#Aw-|N7TCO~nW?5k?D4f_u*RkNV#`Z!@-1mC!(ctnWRuXyss~5t@Ie|D_pm zX-i0GqU&B~xkiOdIljHX(VrKcF8^C;X_@1$FPV+7KuaJwZ{vRZkLzn1I;t59nV z-OSspz1nbCLwZD(YE$FblgU1G+JA2m{$z?-k0Ib;0cT>l)TsIy1C0RN#pV=#p%8l; zvx%$HplWJ!X^YC)D-kROdFH#Kk8N=)mRTb{no;I+Cso-(;-hUmzCBI3J42yUOGtYwC?2t{9G@|Ka^FCB+o(8& zd;Cnfipw05yl$^$@Z+Y8*P1#)S9*9y%PPa#rPhplG0`hHtY->zz9+T1-0dg#2cbRL zyD0$~8%|aV5rGAAwZmCmB2`?&&8%=j&Q=qxqyh!k6_^;S+&zMV{)TwEwQ-E^DXzZN zUzcB1Z5(HHMC`kssP>SC1*do5x%l*si_4X3by$X6)YaoLn=&Q2@{kZhXXhx(=F(nq zvR>dq<^CX3jfj$r+4^j3UG=cJOc8`AsmauYO3+;#M)M^Jm zLL1ddWZ~@(d*`kMtiFjfUKz9uDU4vfr`s&*2F{xhOiD z-kqs2=PP9gZ6ElgV`JaC%HB;FjE#x)+8qdMXc8ww=T8x1?zq15Ucb!=0n+J=tQ)`$ge9@OajI`N_z6-1C$VT*|XK zW3K0$Pv)Pmsl7#}A@+8544m zr}g?&kJ~?d5OF8r%QRAwK)Ybw)PGazoN!^mzfTQBr`57MH~0?@Xa)U4Ya%=@2QYTw|;Hkit#a{R|LjXij3%h!LxQ>))m=OH-fk<<}+Vg*v=N&EWDb7JR! zWno$mr~ioDYF~?x(Ri!9#R?v~Pb2or+ zUi-0AQ%8n>vJJpib{-1*I^El|teV8s3HO^TR3mrB4GgFP@8j?#`MQ|eo3*Tj+IdF0 zd;;Tc)Xa4LMTryGVyk_jEhRwb535gCr>;&Dfyzxe_?3x0zWT_IP^J(N^LvNL?E zE-WB^bB1lViVt%N-(DUPr(Xu!XHQ&9l3%v&b3(x4?Kbj;oo03>&QWz7C%?{)uil*6 z`fS)FkAw%~T^fx~wnj~HM-hvVzDo}2M%!YV3j-7BvMnyZZM-lYVzd*m~9 zcx6eSE_mYOooKT&1=aXKa!yLz!!UfRWcvs1$w<3>pg~UGU0f+dkvf$knfKv#xYF*ycGE z-~-iPrComhD;981RW15sVcPblx9~R{#AN#41RGbHcykTkt9FWw&Wr(oM&8Mr(EyhH zH%oN>hv1Iyqvq%5acdpDfHIyUyB4ZP!wLdgmgKvNF-oH3)!5PoXwFU2vc(4;*=KpmWO(EABTG zzKxw&-Jvnk6k4+*S8uNRP_^+~?9`ULH_+KYb#p4zk(M}04drfufCrWn#5b56D877a zV!?Tz`CY{Hdw^AzMp*;eUKWf}$IhGT19Sc2A<$274+<0w$txsLThpwIZYf3|c1zoV z$P=!t1G%%OlF9xHz=i(+R1e(!--hN6(E67ljk74jg4Vr>3wyGkSNi~}Df6&AM~CMh zf^Z7jacY`WT*}V%smx*qec)U*XN&hjfmJ0Y4=~;Mo&N=#nw=`8z2bIAT9OYm;N2P3 zr%f)5kE5_Tl-wBrc=oeF>mGG$sG{}acv-Myv&QfZa|CB`j|$_UF=P!D&9Cvsv@KQ5 z(U>dYk-@u4kc5MjMYf>W`>b?>EzPYKPkgAyiawZLK2UYD+aga|mb1M9A5iU-wA=dfu_k0*q0{5qhz*|pe6r;N z$)|*L2^n{iL0=FjGR8d)#V-zI1j-J}mhzwbY>zH$D)Mi=0s4v5F zq8=VczF8oyI%sVrxiSQDsfDCcSCmR#1YxpEIBKo3oZ0m$)d``kwM2N+QXl;Bc*91m zg0}|%GnCn>3|-K|26v^ikr%=v%U&Fydir9&9}XR?wagOV?;WxO-CBq@!G%LjZq+?0 zCc(J9Jn0*-qKYqgpPvS9)X{}yMA*8cbqf{YK~n;F(AkxKh%$p@Jq4aepK=ulT@gHd38Ah4SSUAqR=W$ zwX_hU|yysIy?`MbQ36Kx#QN0qOWm8hTr)1YZry9Bf1H1(I7Y@SpW^_r_1oq#`+>MGSfa1sqok*&b+yf2 zyio8*BlT_O6gsfhca%fOovI05Q4lZvJe zc^SscIHsu>?7ea^F|%P5aba($6sG>E@^Ti;oiQjn;v4o@e~7_2+P%KFLF-QmQ}1p!U2^+T!bZhxmDQ1glSA?`o~X(Ty{UJ_kuk{hxsvyVX2hnmImB&co%y>#r%80%6BF}sayP! zQ`3CC67a`I#I&nj4_;CA^!D_@Tl_=y`TvDv@Lw>q3`qC?JI4n)_FreE{7=-9GY&iD ze0+zb4Rvo@{N2e|k$lRPk(G_q+VcP?Fn&&Ff%sLr;(((iwzjSa-=?|%|2}>9KcEt$ qg(tzs$K#=ln}9u-@7RIV4)fJYw5A-DG+-ZSv!R}eZq=`kqW>4iXWz&G literal 0 HcmV?d00001 diff --git a/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png b/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..86a43154f12e8315be174f28ceab582ff530f96b GIT binary patch literal 45071 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 literal 0 HcmV?d00001 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78a6abb..f3fee19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -304,6 +304,15 @@ importers: '@types/react-dom': specifier: ^18.3.7 version: 18.3.7(@types/react@18.3.31) + pixelmatch: + specifier: ^7.1.0 + version: 7.2.0 + playwright: + specifier: ^1.55.0 + version: 1.63.0 + pngjs: + specifier: ^7.0.0 + version: 7.0.0 react: specifier: ^18.3.1 version: 18.3.1 @@ -3165,10 +3174,28 @@ packages: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + pixelmatch@7.2.0: + resolution: {integrity: sha512-xhcb4yHu9sM/G7foGzoLtXYcC0zHEaOXXjRKhGup0fw78Nf2Tkiapv4EQyMzrbcmQPsllAI7DbFY2UT7PlI9Pg==} + hasBin: true + pkce-challenge@5.0.1: resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} engines: {node: '>=16.20.0'} + playwright-core@1.63.0: + resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==} + engines: {node: '>=20'} + hasBin: true + + playwright@1.63.0: + resolution: {integrity: sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==} + engines: {node: '>=20'} + hasBin: true + + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -6695,8 +6722,20 @@ snapshots: picomatch@4.0.5: {} + pixelmatch@7.2.0: + dependencies: + pngjs: 7.0.0 + pkce-challenge@5.0.1: {} + playwright-core@1.63.0: {} + + playwright@1.63.0: + dependencies: + playwright-core: 1.63.0 + + pngjs@7.0.0: {} + possible-typed-array-names@1.1.0: {} postcss@8.5.28: From 50e674244019bb735cd1229aa0775f8b8e833fb1 Mon Sep 17 00:00:00 2001 From: Pato Perpetua Date: Fri, 11 Sep 2026 21:51:07 +1000 Subject: [PATCH 07/12] chore(post-kit-editor): seed visual baselines from CI Linux runner Co-authored-by: Cursor --- ...-emailtemplateadmin-full-admin-desktop.png | Bin 57885 -> 53077 bytes ...or-emailbuildercanvas-editable-desktop.png | Bin 45071 -> 44409 bytes ...mailtemplateeditor-full-editor-desktop.png | Bin 54065 -> 52525 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/post-kit-editor/visual-baselines/admin-emailtemplateadmin-full-admin-desktop.png b/packages/post-kit-editor/visual-baselines/admin-emailtemplateadmin-full-admin-desktop.png index ee50946116977a12f7b13f37da2bdf48922eff4f..0e745fd15a1511985da95c0d8b2635ca07cc1d98 100644 GIT binary patch literal 53077 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

QxW> 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 Te42%#OMhEkTdnAO%cuVaReC6z literal 57885 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 diff --git a/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png b/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png index 86a43154f12e8315be174f28ceab582ff530f96b..18574ce972d9b4793d2c6bc0ed6fa12de24fdb31 100644 GIT binary patch literal 44409 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

+ ); +} + +export const UnsavedChanges: Story = { + parameters: { + docs: { + description: { + story: 'Edit any field; the host `onDirtyChange` flag above flips to yes until Save.', + }, + }, + }, + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Templates.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Templates.stories.tsx new file mode 100644 index 0000000..9e9cfc1 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Templates.stories.tsx @@ -0,0 +1,85 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailTemplateAdmin, EmailTemplateEditor } from '../../../src'; +import { + mockSave, + mockSendTest, + otpTemplate, + passwordResetTemplate, + receiptTemplate, + reportTemplate, + sampleAvailableVariables, + transactionalTemplate, + welcomeTemplate, +} from '../../fixtures'; + +const meta = { + title: 'Admin/Email Builder/Templates', + component: EmailTemplateAdmin, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +const adminArgs = { + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, +}; + +export const Welcome: Story = { + args: { + ...adminArgs, + templates: [welcomeTemplate], + }, +}; + +export const Otp: Story = { + name: 'OTP', + args: { + ...adminArgs, + templates: [otpTemplate], + }, +}; + +export const PasswordReset: Story = { + args: { + ...adminArgs, + templates: [passwordResetTemplate], + }, +}; + +export const Transactional: Story = { + args: { + ...adminArgs, + templates: [transactionalTemplate], + }, +}; + +export const Receipt: Story = { + args: { + ...adminArgs, + templates: [receiptTemplate], + }, +}; + +export const Report: Story = { + args: { + ...adminArgs, + templates: [reportTemplate], + }, +}; + +/** Editor-only mount of Welcome (advanced / chrome without catalog). */ +export const WelcomeEditor: Story = { + name: 'Welcome (Editor)', + render: () => ( + + ), +}; diff --git a/packages/post-kit-editor/stories/EmailBuilderCanvas.stories.tsx b/packages/post-kit-editor/stories/EmailBuilderCanvas.stories.tsx deleted file mode 100644 index 1f8ba43..0000000 --- a/packages/post-kit-editor/stories/EmailBuilderCanvas.stories.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import React, { useState } from 'react'; - -import { EmailBuilderCanvas, type EmailBuilderDocument } from '../src'; -import { nestedBlocksTemplate } from './fixtures'; - -const meta = { - title: 'Editor/EmailBuilderCanvas', - component: EmailBuilderCanvas, - parameters: { - layout: 'fullscreen', - docs: { - description: { - story: - 'Public `EmailBuilderCanvas` only — editable and read-only. No metadata, preview, or save chrome. Uses the MUI EmailBuilder surface (inspector + samples).', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -function EditableCanvas(): JSX.Element { - const [document, setDocument] = useState(nestedBlocksTemplate.templateJson); - return ; -} - -export const Editable: Story = { - render: () => , -}; - -export const ReadOnly: Story = { - args: { - document: nestedBlocksTemplate.templateJson, - onChange: () => { - /* read-only */ - }, - readOnly: true, - }, -}; diff --git a/packages/post-kit-editor/stories/EmailTemplateAdmin.stories.tsx b/packages/post-kit-editor/stories/EmailTemplateAdmin.stories.tsx deleted file mode 100644 index 2ef01c0..0000000 --- a/packages/post-kit-editor/stories/EmailTemplateAdmin.stories.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { - EmailTemplateAdmin, - type SerializedTemplateSource, - type TemplateSourceFiles, -} from '../src'; -import { nestedBlocksTemplate, sampleAvailableVariables } from './fixtures'; - -import minimalTemplate from '../src/__fixtures__/minimal/template.json'; -import minimalMetadata from '../src/__fixtures__/minimal/metadata.json'; -import minimalPreview from '../src/__fixtures__/minimal/preview.json'; -import { loadTemplateSource } from '../src'; - -const minimalTemplateFiles = loadTemplateSource({ - templateJson: minimalTemplate, - metadata: minimalMetadata, - previewData: minimalPreview, -}); - -const meta = { - title: 'Admin/EmailTemplateAdmin', - component: EmailTemplateAdmin, - parameters: { - layout: 'fullscreen', - docs: { - description: { - story: - 'Primary consumer mount: full admin page with template list, MUI EmailBuilder canvas, and PostKit chrome. Save/send-test are mocked — no network.', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -function mockSave( - _serialized: SerializedTemplateSource, - _files: TemplateSourceFiles, -): { ok: true; message: string } { - void _serialized; - void _files; - return { ok: true, message: 'Mock save (no persistence).' }; -} - -function mockSendTest( - _serialized: SerializedTemplateSource, - _files: TemplateSourceFiles, - recipient: string, -): { ok: true; message: string } { - void _serialized; - void _files; - return { ok: true, message: `Mock send-test to ${recipient} (no network).` }; -} - -export const FullAdmin: Story = { - args: { - templates: [nestedBlocksTemplate, minimalTemplateFiles], - availableVariables: sampleAvailableVariables, - onSave: mockSave, - onSendTest: mockSendTest, - }, -}; - -export const WithoutSendTest: Story = { - args: { - templates: [nestedBlocksTemplate], - onSave: mockSave, - }, -}; diff --git a/packages/post-kit-editor/stories/EmailTemplateEditor.stories.tsx b/packages/post-kit-editor/stories/EmailTemplateEditor.stories.tsx deleted file mode 100644 index ab8d088..0000000 --- a/packages/post-kit-editor/stories/EmailTemplateEditor.stories.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; - -import { - EmailTemplateEditor, - type SerializedTemplateSource, - type TemplateSourceFiles, -} from '../src'; -import { nestedBlocksTemplate, sampleAvailableVariables } from './fixtures'; - -const meta = { - title: 'Editor/EmailTemplateEditor', - component: EmailTemplateEditor, - parameters: { - layout: 'fullscreen', - docs: { - description: { - story: - 'Single-template surface (advanced). Prefer Admin/EmailTemplateAdmin for the full page. Layout CSS is Storybook-only so the PostKit sidebar sits beside the canvas.', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -function mockSave( - _serialized: SerializedTemplateSource, - _files: TemplateSourceFiles, -): { ok: true; message: string } { - void _serialized; - void _files; - return { ok: true, message: 'Mock save (no persistence).' }; -} - -function mockSendTest( - _serialized: SerializedTemplateSource, - _files: TemplateSourceFiles, - recipient: string, -): { ok: true; message: string } { - void _serialized; - void _files; - return { ok: true, message: `Mock send-test to ${recipient} (no network).` }; -} - -/** Canvas + PostKit chrome with room for the MUI EmailBuilder surface. */ -export const FullEditor: Story = { - args: { - template: nestedBlocksTemplate, - availableVariables: sampleAvailableVariables, - onSave: mockSave, - onSendTest: mockSendTest, - }, -}; - -export const Loading: Story = { - parameters: { layout: 'padded' }, - args: { - template: nestedBlocksTemplate, - onSave: mockSave, - loading: true, - }, -}; - -export const LoadError: Story = { - parameters: { layout: 'padded' }, - args: { - template: nestedBlocksTemplate, - onSave: mockSave, - loadError: 'Synthetic load failure for Storybook (host could not fetch template files).', - }, -}; diff --git a/packages/post-kit-editor/stories/MetadataAndVariables.stories.tsx b/packages/post-kit-editor/stories/MetadataAndVariables.stories.tsx deleted file mode 100644 index f51e3c3..0000000 --- a/packages/post-kit-editor/stories/MetadataAndVariables.stories.tsx +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Private/dev-only: `MetadataPanel`, `VariableCatalogue`, and - * `InsertionTargetProvider` are not public package exports. Stories import - * them from `src/` for isolated visual exploration only. - */ -import type { Meta, StoryObj } from '@storybook/react'; -import React, { useState } from 'react'; -import type { TemplatePreviewData, TemplateSourceMetadata } from '@singleton-sd/post-kit-types'; - -import { InsertionTargetProvider } from '../src/insertion-target'; -import { MetadataPanel } from '../src/metadata/MetadataPanel'; -import { VariableCatalogue } from '../src/variables/VariableCatalogue'; -import { nestedBlocksTemplate, sampleAvailableVariables } from './fixtures'; - -function MetadataAndVariablesDemo(): JSX.Element { - const [metadata, setMetadata] = useState(nestedBlocksTemplate.metadata); - const [previewData] = useState(nestedBlocksTemplate.previewData); - - return ( - -
- - - setMetadata((current) => ({ ...current, variables })) - } - /> -
-
- ); -} - -const meta = { - title: 'Editor/MetadataAndVariables', - parameters: { - docs: { - description: { - component: - 'Metadata panel + variable catalogue (private modules; not part of the published public API). Focus the subject field to enable catalogue insert.', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - render: () => , -}; diff --git a/packages/post-kit-editor/stories/Preview.stories.tsx b/packages/post-kit-editor/stories/Preview.stories.tsx deleted file mode 100644 index cf3c38f..0000000 --- a/packages/post-kit-editor/stories/Preview.stories.tsx +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Private/dev-only: `PreviewDataEditor` and `PreviewPane` are not public - * package exports. Stories import them from `src/` for isolated exploration. - */ -import type { Meta, StoryObj } from '@storybook/react'; -import React, { useState } from 'react'; -import type { TemplatePreviewData } from '@singleton-sd/post-kit-types'; - -import { PreviewDataEditor } from '../src/preview/PreviewDataEditor'; -import { PreviewPane } from '../src/preview/PreviewPane'; -import type { TemplateSourceFiles } from '../src'; -import { nestedBlocksTemplate } from './fixtures'; - -function PreviewDemo(): JSX.Element { - const [files, setFiles] = useState(nestedBlocksTemplate); - - const handlePreviewDataChange = (previewData: TemplatePreviewData) => { - setFiles((current) => ({ ...current, previewData })); - }; - - return ( -
- - -
- ); -} - -const meta = { - title: 'Editor/Preview', - parameters: { - layout: 'fullscreen', - docs: { - description: { - component: - 'Preview-data editor + sandboxed rendered preview pane (private modules). Uses `@singleton-sd/post-kit-compiler/preview` with synthetic fixtures only.', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const DataAndPane: Story = { - render: () => , -}; diff --git a/packages/post-kit-editor/stories/SaveSendBar.stories.tsx b/packages/post-kit-editor/stories/SaveSendBar.stories.tsx deleted file mode 100644 index 69838da..0000000 --- a/packages/post-kit-editor/stories/SaveSendBar.stories.tsx +++ /dev/null @@ -1,97 +0,0 @@ -/** - * Private/dev-only: `SaveSendBar` is not a public package export. Stories - * import it from `src/` with mocked callbacks — no network I/O. - */ -import type { Meta, StoryObj } from '@storybook/react'; -import React, { useState } from 'react'; - -import { SaveSendBar } from '../src/save-send/SaveSendBar'; -import type { ActionFeedback } from '../src/save-send/types'; - -function SaveSendDemo({ - initialSave = { status: 'idle' } as ActionFeedback, - initialSend = { status: 'idle' } as ActionFeedback, - validationBlocked = false, - showSendTest = true, -}: { - initialSave?: ActionFeedback; - initialSend?: ActionFeedback; - validationBlocked?: boolean; - showSendTest?: boolean; -}): JSX.Element { - const [saveFeedback, setSaveFeedback] = useState(initialSave); - const [sendFeedback, setSendFeedback] = useState(initialSend); - const [busy, setBusy] = useState(false); - - const onSave = () => { - setBusy(true); - setSaveFeedback({ status: 'pending' }); - window.setTimeout(() => { - setSaveFeedback({ status: 'success', message: 'Mock save (no persistence).' }); - setBusy(false); - }, 400); - }; - - const onSendTest = (recipient: string) => { - setBusy(true); - setSendFeedback({ status: 'pending' }); - window.setTimeout(() => { - setSendFeedback({ - status: 'success', - message: `Mock send-test to ${recipient} (no network).`, - }); - setBusy(false); - }, 400); - }; - - return ( -
- -
- ); -} - -const meta = { - title: 'Editor/SaveSendBar', - parameters: { - docs: { - description: { - component: - 'Save / send-test controls with mocked in-memory callbacks (private module). Never calls PostKit or the network.', - }, - }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const IdleWithSendTest: Story = { - render: () => , -}; - -export const SaveOnly: Story = { - render: () => , -}; - -export const ValidationBlocked: Story = { - render: () => , -}; - -export const FailureFeedback: Story = { - render: () => ( - - ), -}; diff --git a/packages/post-kit-editor/stories/fixtures.ts b/packages/post-kit-editor/stories/fixtures.ts deleted file mode 100644 index cecef52..0000000 --- a/packages/post-kit-editor/stories/fixtures.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Synthetic Storybook fixtures only — mirrors `src/__fixtures__/nested-blocks/` - * and `examples/minimal/sample/`. No secrets or customer-identifying values. - */ -import { loadTemplateSource, type TemplateSourceFiles, type TemplateVariable } from '../src'; - -import templateJson from '../src/__fixtures__/nested-blocks/template.json'; -import metadata from '../src/__fixtures__/nested-blocks/metadata.json'; -import previewData from '../src/__fixtures__/nested-blocks/preview.json'; - -export const nestedBlocksTemplate: TemplateSourceFiles = loadTemplateSource({ - templateJson, - metadata, - previewData, -}); - -export const sampleAvailableVariables: TemplateVariable[] = [ - { name: 'name', label: 'Recipient name', description: 'Synthetic display name' }, -]; diff --git a/packages/post-kit-editor/stories/fixtures/documents.ts b/packages/post-kit-editor/stories/fixtures/documents.ts new file mode 100644 index 0000000..9dcfd44 --- /dev/null +++ b/packages/post-kit-editor/stories/fixtures/documents.ts @@ -0,0 +1,416 @@ +/** + * Synthetic EmailBuilder documents for Storybook — no network image URLs. + */ +import type { EmailBuilderDocument } from '../../src'; + +import emptySample from '../../src/email-builder-ui/getConfiguration/sample/empty-email-message'; +import welcomeSample from '../../src/email-builder-ui/getConfiguration/sample/welcome'; +import otpSample from '../../src/email-builder-ui/getConfiguration/sample/one-time-passcode'; +import resetPasswordSample from '../../src/email-builder-ui/getConfiguration/sample/reset-password'; +import respondSample from '../../src/email-builder-ui/getConfiguration/sample/respond-to-message'; +import receiptSample from '../../src/email-builder-ui/getConfiguration/sample/order-ecommerce'; +import reportSample from '../../src/email-builder-ui/getConfiguration/sample/post-metrics-report'; + +/** Deterministic 1×1 SVG used wherever samples previously pointed at CDN images. */ +export const FIXTURE_IMAGE_DATA_URI = + 'data:image/svg+xml,' + + encodeURIComponent( + ` + + PostKit + `, + ); + +/** Smaller avatar-shaped SVG. */ +export const FIXTURE_AVATAR_DATA_URI = + 'data:image/svg+xml,' + + encodeURIComponent( + ` + + + + `, + ); + +const IMAGE_URL_KEYS = new Set(['url', 'imageUrl']); + +function isHttpUrl(value: unknown): value is string { + return typeof value === 'string' && /^https?:\/\//i.test(value); +} + +function looksLikeImageUrl(key: string, value: string): boolean { + if (!IMAGE_URL_KEYS.has(key)) return false; + // Button `url` props are hrefs — only replace when the value looks like an image asset + // or is under a known CDN / avatar host used by samples. + if (key === 'imageUrl') return true; + if (/\.(png|jpe?g|gif|webp|svg)(\?|$)/i.test(value)) return true; + if (/cloudfront\.net|ui-avatars\.com|assets\.usewaypoint\.com/i.test(value)) return true; + return false; +} + +function replaceExternalImageUrls(value: unknown): unknown { + if (Array.isArray(value)) { + return value.map(replaceExternalImageUrls); + } + if (value && typeof value === 'object') { + const out: Record = {}; + for (const [key, entry] of Object.entries(value as Record)) { + if (isHttpUrl(entry) && looksLikeImageUrl(key, entry)) { + out[key] = key === 'imageUrl' ? FIXTURE_AVATAR_DATA_URI : FIXTURE_IMAGE_DATA_URI; + } else { + out[key] = replaceExternalImageUrls(entry); + } + } + return out; + } + return value; +} + +/** Deep-clone a sample document and swap external image URLs for data URIs. */ +export function sanitizeDocumentImages(document: EmailBuilderDocument): EmailBuilderDocument { + return replaceExternalImageUrls(JSON.parse(JSON.stringify(document))) as EmailBuilderDocument; +} + +type BlockData = Record; + +function layoutRoot( + childrenIds: string[], + overrides: Partial<{ + backdropColor: string; + canvasColor: string; + textColor: string; + fontFamily: string; + }> = {}, +): EmailBuilderDocument['root'] { + return { + type: 'EmailLayout', + data: { + backdropColor: overrides.backdropColor ?? '#F5F5F5', + canvasColor: overrides.canvasColor ?? '#FFFFFF', + textColor: overrides.textColor ?? '#262626', + fontFamily: overrides.fontFamily ?? 'MODERN_SANS', + childrenIds, + }, + }; +} + +export function createEmptyEmailDocument(): EmailBuilderDocument { + return sanitizeDocumentImages(emptySample as EmailBuilderDocument); +} + +export function createSingleBlockDocument( + blockId: string, + block: { type: string; data: BlockData }, + layoutOverrides?: Parameters[1], +): EmailBuilderDocument { + return { + root: layoutRoot([blockId], layoutOverrides), + [blockId]: block, + } as EmailBuilderDocument; +} + +const pad = { top: 16, bottom: 16, left: 24, right: 24 }; + +export function createTextBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-text', { + type: 'Text', + data: { + props: { text: 'Hello from a Text block. Use {{name}} in templates.' }, + style: { padding: pad, fontWeight: 'normal', fontSize: 16 }, + }, + }); +} + +export function createHeadingBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-heading', { + type: 'Heading', + data: { + props: { text: 'Heading block', level: 'h2' }, + style: { padding: pad }, + }, + }); +} + +export function createButtonBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-button', { + type: 'Button', + data: { + props: { + text: 'Continue', + url: 'https://example.com/continue', + buttonBackgroundColor: '#1f4b99', + buttonTextColor: '#FFFFFF', + }, + style: { padding: pad, textAlign: 'center' }, + }, + }); +} + +export function createImageBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-image', { + type: 'Image', + data: { + props: { + url: FIXTURE_IMAGE_DATA_URI, + alt: 'Fixture image', + contentAlignment: 'middle', + linkHref: null, + }, + style: { padding: pad }, + }, + }); +} + +export function createAvatarBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-avatar', { + type: 'Avatar', + data: { + props: { + imageUrl: FIXTURE_AVATAR_DATA_URI, + shape: 'circle', + size: 64, + }, + style: { padding: pad, textAlign: 'center' }, + }, + }); +} + +export function createDividerBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-divider', { + type: 'Divider', + data: { + props: { lineColor: '#CCCCCC' }, + style: { padding: { top: 16, bottom: 16, left: 0, right: 0 } }, + }, + }); +} + +export function createSpacerBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-spacer', { + type: 'Spacer', + data: { + props: { height: 48 }, + }, + }); +} + +export function createHtmlBlockDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-html', { + type: 'Html', + data: { + props: { contents: 'Custom HTML — fixture only' }, + style: { padding: pad, fontSize: 16 }, + }, + }); +} + +export function createContainerBlockDocument(): EmailBuilderDocument { + return { + root: layoutRoot(['block-container']), + 'block-container': { + type: 'Container', + data: { + style: { padding: pad, backgroundColor: '#F0F4F8' }, + props: { childrenIds: ['block-inner-text'] }, + }, + }, + 'block-inner-text': { + type: 'Text', + data: { + props: { text: 'Inside a Container' }, + style: { padding: { top: 8, bottom: 8, left: 8, right: 8 }, fontWeight: 'normal' }, + }, + }, + } as EmailBuilderDocument; +} + +export function createColumnsBlockDocument(): EmailBuilderDocument { + return { + root: layoutRoot(['block-columns']), + 'block-columns': { + type: 'ColumnsContainer', + data: { + props: { + columnsGap: 16, + columnsCount: 2, + columns: [{ childrenIds: ['col-a'] }, { childrenIds: ['col-b'] }, { childrenIds: [] }], + }, + style: { padding: pad }, + }, + }, + 'col-a': { + type: 'Text', + data: { + props: { text: 'Column A' }, + style: { padding: { top: 8, bottom: 8, left: 8, right: 8 }, fontWeight: 'normal' }, + }, + }, + 'col-b': { + type: 'Text', + data: { + props: { text: 'Column B' }, + style: { padding: { top: 8, bottom: 8, left: 8, right: 8 }, fontWeight: 'normal' }, + }, + }, + } as EmailBuilderDocument; +} + +/** Configured variants with richer styling. */ +export function createConfiguredTextDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-text-configured', { + type: 'Text', + data: { + props: { text: 'Configured text with color and weight.' }, + style: { + padding: pad, + fontWeight: 'bold', + fontSize: 18, + color: '#1f4b99', + textAlign: 'center', + }, + }, + }); +} + +export function createConfiguredButtonDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-button-configured', { + type: 'Button', + data: { + props: { + text: 'Primary action', + url: 'https://example.com', + buttonBackgroundColor: '#0f766e', + buttonTextColor: '#ecfdf5', + size: 'large', + }, + style: { padding: pad, textAlign: 'center' }, + }, + }); +} + +export function createConfiguredHeadingDocument(): EmailBuilderDocument { + return createSingleBlockDocument('block-heading-configured', { + type: 'Heading', + data: { + props: { text: 'Large configured heading', level: 'h1' }, + style: { + padding: pad, + color: '#102a43', + textAlign: 'center', + fontWeight: 'bold', + }, + }, + }); +} + +export function createTypographyLayoutDocument(): EmailBuilderDocument { + const fonts = [ + 'MODERN_SANS', + 'BOOK_SANS', + 'GEOMETRIC_SANS', + 'MODERN_SERIF', + 'BOOK_SERIF', + 'MONOSPACE', + ] as const; + const childrenIds = fonts.map((_, i) => `font-${i}`); + const doc: EmailBuilderDocument = { + root: layoutRoot([...childrenIds]), + } as EmailBuilderDocument; + fonts.forEach((fontFamily, i) => { + const id = `font-${i}`; + doc[id] = { + type: 'Text', + data: { + props: { text: `${fontFamily} — The quick brown fox` }, + style: { + padding: { top: 8, bottom: 8, left: 24, right: 24 }, + fontFamily, + fontWeight: 'normal', + fontSize: 16, + }, + }, + }; + }); + return doc; +} + +export function createColoursLayoutDocument(): EmailBuilderDocument { + return createSingleBlockDocument( + 'block-colour-text', + { + type: 'Text', + data: { + props: { text: 'Coloured layout: dark backdrop, light canvas, brand text.' }, + style: { padding: pad, fontWeight: 'normal', color: '#F0F4F8' }, + }, + }, + { + backdropColor: '#102a43', + canvasColor: '#243b53', + textColor: '#F0F4F8', + fontFamily: 'MODERN_SANS', + }, + ); +} + +export function createNestedContainersDocument(): EmailBuilderDocument { + return { + root: layoutRoot(['outer']), + outer: { + type: 'Container', + data: { + style: { padding: pad, backgroundColor: '#E3E8EE' }, + props: { childrenIds: ['inner'] }, + }, + }, + inner: { + type: 'Container', + data: { + style: { + padding: { top: 12, bottom: 12, left: 12, right: 12 }, + backgroundColor: '#F0F4F8', + }, + props: { childrenIds: ['nested-text'] }, + }, + }, + 'nested-text': { + type: 'Text', + data: { + props: { text: 'Nested containers' }, + style: { padding: { top: 8, bottom: 8, left: 8, right: 8 }, fontWeight: 'normal' }, + }, + }, + } as EmailBuilderDocument; +} + +export function createLongContentDocument(): EmailBuilderDocument { + const paragraphs = Array.from({ length: 12 }, (_, i) => `block-long-${i}`); + const doc: EmailBuilderDocument = { + root: layoutRoot(paragraphs), + } as EmailBuilderDocument; + paragraphs.forEach((id, i) => { + doc[id] = { + type: 'Text', + data: { + props: { + text: `Paragraph ${i + 1}. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.`, + }, + style: { + padding: { top: 8, bottom: 8, left: 24, right: 24 }, + fontWeight: 'normal', + fontSize: 15, + }, + }, + }; + }); + return doc; +} + +export const welcomeDocument = sanitizeDocumentImages(welcomeSample as EmailBuilderDocument); +export const otpDocument = sanitizeDocumentImages(otpSample as EmailBuilderDocument); +export const passwordResetDocument = sanitizeDocumentImages( + resetPasswordSample as EmailBuilderDocument, +); +export const transactionalDocument = sanitizeDocumentImages(respondSample as EmailBuilderDocument); +export const receiptDocument = sanitizeDocumentImages(receiptSample as EmailBuilderDocument); +export const reportDocument = sanitizeDocumentImages(reportSample as EmailBuilderDocument); diff --git a/packages/post-kit-editor/stories/fixtures/index.ts b/packages/post-kit-editor/stories/fixtures/index.ts new file mode 100644 index 0000000..19bbdd7 --- /dev/null +++ b/packages/post-kit-editor/stories/fixtures/index.ts @@ -0,0 +1,15 @@ +export * from './documents'; +export * from './template-sources'; +export * from './mocks'; + +/** Re-export nested-blocks fixture for any leftover consumers / visual parity. */ +import { loadTemplateSource, type TemplateSourceFiles } from '../../src'; +import templateJson from '../../src/__fixtures__/nested-blocks/template.json'; +import metadata from '../../src/__fixtures__/nested-blocks/metadata.json'; +import previewData from '../../src/__fixtures__/nested-blocks/preview.json'; + +export const nestedBlocksTemplate: TemplateSourceFiles = loadTemplateSource({ + templateJson, + metadata, + previewData, +}); diff --git a/packages/post-kit-editor/stories/fixtures/mocks.ts b/packages/post-kit-editor/stories/fixtures/mocks.ts new file mode 100644 index 0000000..dd5080b --- /dev/null +++ b/packages/post-kit-editor/stories/fixtures/mocks.ts @@ -0,0 +1,61 @@ +/** + * Mock persistence / send-test helpers for Storybook (no network). + */ +import type { + SaveResult, + SendTestResult, + SerializedTemplateSource, + TemplateSourceFiles, +} from '../../src'; + +export function mockSave( + _serialized: SerializedTemplateSource, + _files: TemplateSourceFiles, +): SaveResult { + void _serialized; + void _files; + return { ok: true, message: 'Mock save (no persistence).' }; +} + +export function mockSaveFailure( + _serialized: SerializedTemplateSource, + _files: TemplateSourceFiles, +): SaveResult { + void _serialized; + void _files; + return { ok: false, message: 'Synthetic save failure.' }; +} + +export function mockSendTest( + _serialized: SerializedTemplateSource, + _files: TemplateSourceFiles, + recipient: string, +): SendTestResult { + void _serialized; + void _files; + return { ok: true, message: `Mock send-test to ${recipient} (no network).` }; +} + +/** Delayed success — useful for Saving state / interaction plays. */ +export function delaySave(ms = 800): typeof mockSave { + return async (_serialized, _files) => { + void _serialized; + void _files; + await new Promise((resolve) => { + window.setTimeout(resolve, ms); + }); + return { ok: true, message: 'Mock save (delayed).' }; + }; +} + +/** Delayed failure. */ +export function delaySaveFailure(ms = 800): typeof mockSaveFailure { + return async (_serialized, _files) => { + void _serialized; + void _files; + await new Promise((resolve) => { + window.setTimeout(resolve, ms); + }); + return { ok: false, message: 'Synthetic save failure (delayed).' }; + }; +} diff --git a/packages/post-kit-editor/stories/fixtures/template-sources.ts b/packages/post-kit-editor/stories/fixtures/template-sources.ts new file mode 100644 index 0000000..19b83ac --- /dev/null +++ b/packages/post-kit-editor/stories/fixtures/template-sources.ts @@ -0,0 +1,115 @@ +/** + * Wrap documents as `TemplateSourceFiles` for Admin / Editor stories. + */ +import { loadTemplateSource, type TemplateSourceFiles, type TemplateVariable } from '../../src'; +import type { EmailBuilderDocument } from '../../src'; + +import { + createEmptyEmailDocument, + otpDocument, + passwordResetDocument, + receiptDocument, + reportDocument, + transactionalDocument, + welcomeDocument, +} from './documents'; + +export function createTemplateSource(options: { + key: string; + name: string; + subject: string; + document: EmailBuilderDocument; + variables?: string[]; + description?: string; + previewData?: Record; +}): TemplateSourceFiles { + const variables = options.variables ?? []; + const previewData = options.previewData ?? Object.fromEntries(variables.map((v) => [v, v])); + return loadTemplateSource({ + templateJson: options.document, + metadata: { + key: options.key, + name: options.name, + subject: options.subject, + description: options.description, + variables, + schemaVersion: '1', + }, + previewData, + }); +} + +export const emptyTemplate = createTemplateSource({ + key: 'demo.empty', + name: 'Empty', + subject: 'Empty draft', + document: createEmptyEmailDocument(), + description: 'Blank EmailLayout for Storybook', +}); + +export const welcomeTemplate = createTemplateSource({ + key: 'demo.welcome', + name: 'Welcome', + subject: 'Welcome, {{name}}', + document: welcomeDocument, + variables: ['name'], + previewData: { name: 'Alex' }, + description: 'Welcome email sample (images as data URIs)', +}); + +export const otpTemplate = createTemplateSource({ + key: 'demo.otp', + name: 'One-time passcode', + subject: 'Your code is {{code}}', + document: otpDocument, + variables: ['code'], + previewData: { code: '482910' }, +}); + +export const passwordResetTemplate = createTemplateSource({ + key: 'demo.password-reset', + name: 'Password reset', + subject: 'Reset your password', + document: passwordResetDocument, + variables: [], +}); + +export const transactionalTemplate = createTemplateSource({ + key: 'demo.transactional', + name: 'Respond to inquiry', + subject: 'Re: your message', + document: transactionalDocument, + variables: [], +}); + +export const receiptTemplate = createTemplateSource({ + key: 'demo.receipt', + name: 'Order receipt', + subject: 'Your order receipt', + document: receiptDocument, + variables: [], +}); + +export const reportTemplate = createTemplateSource({ + key: 'demo.report', + name: 'Post metrics report', + subject: 'Your weekly report', + document: reportDocument, + variables: [], +}); + +/** Catalog used by Overview / ExistingWelcome. */ +export const demoCatalog: TemplateSourceFiles[] = [ + welcomeTemplate, + otpTemplate, + passwordResetTemplate, + transactionalTemplate, + receiptTemplate, + reportTemplate, + emptyTemplate, +]; + +export const sampleAvailableVariables: TemplateVariable[] = [ + { name: 'name', label: 'Recipient name', description: 'Synthetic display name' }, + { name: 'code', label: 'OTP code', description: 'One-time passcode' }, +]; diff --git a/packages/post-kit-editor/tests/visual.mjs b/packages/post-kit-editor/tests/visual.mjs index 77b1409..807fb6b 100644 --- a/packages/post-kit-editor/tests/visual.mjs +++ b/packages/post-kit-editor/tests/visual.mjs @@ -48,15 +48,15 @@ const baseLabel = `committed:${path.relative(rootDir, baselinesDir) || 'visual-b /** @type {{ id: string; waitFor: string[] }[]} */ const STORIES = [ { - id: 'admin-emailtemplateadmin--full-admin', + id: 'admin-email-builder-overview--full-admin', waitFor: ['pk-admin-root', 'pk-editor-eb-mui-surface'], }, { - id: 'editor-emailbuildercanvas--editable', + id: 'admin-email-builder-blocks-text--default', waitFor: ['pk-editor-eb-mui-surface'], }, { - id: 'editor-emailtemplateeditor--full-editor', + id: 'admin-email-builder-templates--welcome-editor', waitFor: ['pk-editor-eb-mui-surface'], }, ]; diff --git a/packages/post-kit-editor/visual-baselines/admin-email-builder-blocks-text-default-desktop.png b/packages/post-kit-editor/visual-baselines/admin-email-builder-blocks-text-default-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1add786ab105915148ae78cd84542041eabc06 GIT binary patch literal 45265 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
pQ`1iBC^y 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 L;Y`BmD|i1NbULv) literal 0 HcmV?d00001 diff --git a/packages/post-kit-editor/visual-baselines/admin-email-builder-overview-full-admin-desktop.png b/packages/post-kit-editor/visual-baselines/admin-email-builder-overview-full-admin-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..b7912056ab195ccfb133edc0e202e51ad710c70e GIT binary patch literal 99953 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%0Dt| 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

    QxW> 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 Te42%#OMhEkTdnAO%cuVaReC6z diff --git a/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png b/packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png deleted file mode 100644 index 18574ce972d9b4793d2c6bc0ed6fa12de24fdb31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44409 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

    >G*1vTD-^7Uz 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 W8G+8$KB2_>ZEDu;z!ifnauiKG^1**tSfYs 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 J(T_Iw{s=zwy6pe} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3fee19..567be9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -286,15 +286,24 @@ importers: specifier: 4.5.1 version: 4.5.1(@types/react@18.3.31)(react@18.3.1) devDependencies: + '@storybook/addon-essentials': + specifier: 8.6.14 + version: 8.6.14(@types/react@18.3.31)(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-interactions': + specifier: 8.6.14 + version: 8.6.14(storybook@8.6.14(prettier@3.2.5)) '@storybook/blocks': specifier: 8.6.14 version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5)) '@storybook/react': specifier: 8.6.14 - version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3) '@storybook/react-vite': specifier: 8.6.14 - version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.63.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0)) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.63.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0)) + '@storybook/test': + specifier: 8.6.14 + version: 8.6.14(storybook@8.6.14(prettier@3.2.5)) '@types/node': specifier: ^20.17.9 version: 20.19.43 @@ -387,6 +396,9 @@ importers: packages: + '@adobe/css-tools@4.5.0': + resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} + '@azure-rest/core-client@2.8.0': resolution: {integrity: sha512-F1ybHeN+++QhyFCF/ehLUEvrOB6fehPdFBFtGdj0C3B2lpQ9zkPiO5JDgsqc6IfjuUe6b3dAbXK0a7+VgSGfhw==} engines: {node: '>=22.0.0'} @@ -1187,6 +1199,12 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@mdx-js/react@3.1.1': + resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + '@modelcontextprotocol/sdk@1.30.0': resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} engines: {node: '>=18'} @@ -1566,6 +1584,61 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} + '@storybook/addon-actions@8.6.14': + resolution: {integrity: sha512-mDQxylxGGCQSK7tJPkD144J8jWh9IU9ziJMHfB84PKpI/V5ZgqMDnpr2bssTrUaGDqU5e1/z8KcRF+Melhs9pQ==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-backgrounds@8.6.14': + resolution: {integrity: sha512-l9xS8qWe5n4tvMwth09QxH2PmJbCctEvBAc1tjjRasAfrd69f7/uFK4WhwJAstzBTNgTc8VXI4w8ZR97i1sFbg==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-controls@8.6.14': + resolution: {integrity: sha512-IiQpkNJdiRyA4Mq9mzjZlvQugL/aE7hNgVxBBGPiIZG6wb6Ht9hNnBYpap5ZXXFKV9p2qVI0FZK445ONmAa+Cw==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-docs@8.6.14': + resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-essentials@8.6.14': + resolution: {integrity: sha512-5ZZSHNaW9mXMOFkoPyc3QkoNGdJHETZydI62/OASR0lmPlJ1065TNigEo5dJddmZNn0/3bkE8eKMAzLnO5eIdA==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-highlight@8.6.14': + resolution: {integrity: sha512-4H19OJlapkofiE9tM6K/vsepf4ir9jMm9T+zw5L85blJZxhKZIbJ6FO0TCG9PDc4iPt3L6+aq5B0X29s9zicNQ==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-interactions@8.6.14': + resolution: {integrity: sha512-8VmElhm2XOjh22l/dO4UmXxNOolGhNiSpBcls2pqWSraVh4a670EyYBZsHpkXqfNHo2YgKyZN3C91+9zfH79qQ==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-measure@8.6.14': + resolution: {integrity: sha512-1Tlyb72NX8aAqm6I6OICsUuGOP6hgnXcuFlXucyhKomPa6j3Eu2vKu561t/f0oGtAK2nO93Z70kVaEh5X+vaGw==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-outline@8.6.14': + resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-toolbars@8.6.14': + resolution: {integrity: sha512-W/wEXT8h3VyZTVfWK/84BAcjAxTdtRiAkT2KAN0nbSHxxB5KEM1MjKpKu2upyzzMa3EywITqbfy4dP6lpkVTwQ==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/addon-viewport@8.6.14': + resolution: {integrity: sha512-gNzVQbMqRC+/4uQTPI2ZrWuRHGquTMZpdgB9DrD88VTEjNudP+J6r8myLfr2VvGksBbUMHkGHMXHuIhrBEnXYA==} + peerDependencies: + storybook: ^8.6.14 + '@storybook/blocks@8.6.14': resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} peerDependencies: @@ -1612,6 +1685,11 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + '@storybook/instrumenter@8.6.14': + resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} + peerDependencies: + storybook: ^8.6.14 + '@storybook/manager-api@8.6.14': resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} peerDependencies: @@ -1657,14 +1735,36 @@ packages: typescript: optional: true + '@storybook/test@8.6.14': + resolution: {integrity: sha512-GkPNBbbZmz+XRdrhMtkxPotCLOQ1BaGNp/gFZYdGDk2KmUWBKmvc5JxxOhtoXM2703IzNFlQHSSNnhrDZYuLlw==} + peerDependencies: + storybook: ^8.6.14 + '@storybook/theming@8.6.14': resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} + + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + + '@testing-library/user-event@14.5.2': + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1686,6 +1786,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/mdx@2.0.14': + resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} + '@types/node@20.19.43': resolution: {integrity: sha512-6oYBAi5ikg4Pl+kGsoYtawUMBT2zZMCvPNF7pVLnHZfd1zf38DRiWn/gT01RYCdUqkv7Fhr+C9ot4/tb+2sVvA==} @@ -1724,6 +1827,9 @@ packages: '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@typespec/ts-http-runtime@0.3.8': resolution: {integrity: sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA==} engines: {node: '>=22.0.0'} @@ -1801,6 +1907,24 @@ packages: react-dom: ^16 || ^17 || ^18 zod: ^1 || ^2 || ^3 + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} @@ -1852,6 +1976,10 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + ansi-styles@6.2.3: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} @@ -1862,9 +1990,20 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + assignment@2.0.0: resolution: {integrity: sha512-naMULXjtgCs9SVUEtyvJNt68aF18em7/W+dhbR59kbz9cXWPEvUkCun2tqlgqRPSqZaKPpqLc5ZnwL8jVmJRvw==} @@ -1972,6 +2111,14 @@ packages: caniuse-lite@1.0.30001810: resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1983,6 +2130,10 @@ packages: chardet@2.2.0: resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} @@ -2114,6 +2265,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -2130,6 +2284,10 @@ packages: supports-color: optional: true + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -2165,10 +2323,20 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + + dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -2310,6 +2478,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -2611,6 +2782,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -2899,6 +3074,9 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -2909,6 +3087,10 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + macos-release@3.5.1: resolution: {integrity: sha512-Lci/1in+elqZ589PXnfP/iwZXpwQifTM94WJRQwG2tZSdfY7NfB/aUaTARHrohWCgHlXoabeaeXRDOnF5X9JQw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2920,6 +3102,9 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + map-or-similar@1.5.0: + resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + marked@12.0.2: resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} engines: {node: '>= 18'} @@ -2933,6 +3118,9 @@ packages: resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} engines: {node: '>= 0.8'} + memoizerific@1.11.3: + resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} @@ -2976,6 +3164,10 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -3163,6 +3355,10 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -3196,6 +3392,10 @@ packages: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} + polished@4.3.1: + resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} + engines: {node: '>=10'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -3218,6 +3418,10 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + pretty-ms@9.3.0: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} @@ -3296,6 +3500,9 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -3324,6 +3531,10 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + registry-auth-token@5.1.1: resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} engines: {node: '>=14'} @@ -3556,6 +3767,10 @@ packages: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + strip-indent@4.1.1: resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} @@ -3599,6 +3814,14 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3717,6 +3940,11 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -3893,6 +4121,8 @@ packages: snapshots: + '@adobe/css-tools@4.5.0': {} + '@azure-rest/core-client@2.8.0': dependencies: '@azure/abort-controller': 2.2.0 @@ -4708,6 +4938,12 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.6.0 + '@mdx-js/react@3.1.1(@types/react@18.3.31)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.14 + '@types/react': 18.3.31 + react: 18.3.1 + '@modelcontextprotocol/sdk@1.30.0(zod@3.25.76)': dependencies: '@hono/node-server': 2.1.1(hono@4.13.7) @@ -5047,6 +5283,93 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} + '@storybook/addon-actions@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.8 + dequal: 2.0.3 + polished: 4.3.1 + storybook: 8.6.14(prettier@3.2.5) + uuid: 9.0.1 + + '@storybook/addon-backgrounds@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + + '@storybook/addon-controls@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + dequal: 2.0.3 + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + + '@storybook/addon-docs@8.6.14(@types/react@18.3.31)(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@mdx-js/react': 3.1.1(@types/react@18.3.31)(react@18.3.1) + '@storybook/blocks': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5)) + '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/react-dom-shim': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5)) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-essentials@8.6.14(@types/react@18.3.31)(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/addon-actions': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-controls': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-docs': 8.6.14(@types/react@18.3.31)(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-measure': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-outline': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-toolbars': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/addon-viewport': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + transitivePeerDependencies: + - '@types/react' + + '@storybook/addon-highlight@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.6.14(prettier@3.2.5) + + '@storybook/addon-interactions@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + polished: 4.3.1 + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + + '@storybook/addon-measure@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.6.14(prettier@3.2.5) + tiny-invariant: 1.3.3 + + '@storybook/addon-outline@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + storybook: 8.6.14(prettier@3.2.5) + ts-dedent: 2.3.0 + + '@storybook/addon-toolbars@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + storybook: 8.6.14(prettier@3.2.5) + + '@storybook/addon-viewport@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + memoizerific: 1.11.3 + storybook: 8.6.14(prettier@3.2.5) + '@storybook/blocks@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))': dependencies: '@storybook/icons': 1.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -5101,6 +5424,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@storybook/instrumenter@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 8.6.14(prettier@3.2.5) + '@storybook/manager-api@8.6.14(storybook@8.6.14(prettier@3.2.5))': dependencies: storybook: 8.6.14(prettier@3.2.5) @@ -5115,12 +5444,12 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 8.6.14(prettier@3.2.5) - '@storybook/react-vite@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.63.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0))': + '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.63.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0))': dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.9.3)(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0)) '@rollup/pluginutils': 5.4.0(rollup@4.63.1) '@storybook/builder-vite': 8.6.14(storybook@8.6.14(prettier@3.2.5))(vite@6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0)) - '@storybook/react': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3) + '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3) find-up: 5.0.0 magic-string: 0.30.21 react: 18.3.1 @@ -5130,12 +5459,14 @@ snapshots: storybook: 8.6.14(prettier@3.2.5) tsconfig-paths: 4.2.0 vite: 6.3.5(@types/node@20.19.43)(tsx@4.23.12)(yaml@2.9.0) + optionalDependencies: + '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.2.5)) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)': + '@storybook/react@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(prettier@3.2.5))(typescript@5.9.3)': dependencies: '@storybook/components': 8.6.14(storybook@8.6.14(prettier@3.2.5)) '@storybook/global': 5.0.0 @@ -5147,14 +5478,53 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 8.6.14(prettier@3.2.5) optionalDependencies: + '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.2.5)) typescript: 5.9.3 + '@storybook/test@8.6.14(storybook@8.6.14(prettier@3.2.5))': + dependencies: + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.6.14(storybook@8.6.14(prettier@3.2.5)) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.6.14(prettier@3.2.5) + '@storybook/theming@8.6.14(storybook@8.6.14(prettier@3.2.5))': dependencies: storybook: 8.6.14(prettier@3.2.5) + '@testing-library/dom@10.4.0': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/runtime': 7.29.7 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + + '@testing-library/jest-dom@6.5.0': + dependencies: + '@adobe/css-tools': 4.5.0 + aria-query: 5.3.2 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 + '@tootallnate/quickjs-emscripten@0.23.0': {} + '@types/aria-query@5.0.4': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.29.8 @@ -5182,6 +5552,8 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/mdx@2.0.14': {} + '@types/node@20.19.43': dependencies: undici-types: 6.21.0 @@ -5219,6 +5591,8 @@ snapshots: '@types/resolve@1.20.6': {} + '@types/uuid@9.0.8': {} + '@typespec/ts-http-runtime@0.3.8': dependencies: http-proxy-agent: 7.0.2 @@ -5301,6 +5675,38 @@ snapshots: react-dom: 18.3.1(react@18.3.1) zod: 3.25.76 + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.3.3 + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.9': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.2 + + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.2.1 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.9': + dependencies: + '@vitest/pretty-format': 2.1.9 + loupe: 3.2.1 + tinyrainbow: 1.2.0 + accepts@2.0.0: dependencies: mime-types: 3.0.2 @@ -5348,14 +5754,24 @@ snapshots: dependencies: color-convert: 2.0.1 + ansi-styles@5.2.0: {} + ansi-styles@6.2.3: {} anynum@1.0.1: {} argparse@2.0.1: {} + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + + aria-query@5.3.2: {} + array-ify@1.0.0: {} + assertion-error@2.0.1: {} + assignment@2.0.0: {} ast-types@0.13.4: @@ -5478,6 +5894,19 @@ snapshots: caniuse-lite@1.0.30001810: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -5487,6 +5916,8 @@ snapshots: chardet@2.2.0: {} + check-error@2.1.3: {} + ci-info@4.4.0: {} cli-boxes@3.0.0: {} @@ -5622,6 +6053,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css.escape@1.5.1: {} + csstype@3.2.3: {} data-uri-to-buffer@6.0.2: {} @@ -5630,6 +6063,8 @@ snapshots: dependencies: ms: 2.1.3 + deep-eql@5.0.2: {} + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -5659,10 +6094,16 @@ snapshots: depd@2.0.0: {} + dequal@2.0.3: {} + doctrine@3.0.0: dependencies: esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} + + dom-accessibility-api@0.6.3: {} + dom-helpers@5.2.1: dependencies: '@babel/runtime': 7.29.7 @@ -5863,6 +6304,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.9 + esutils@2.0.3: {} etag@1.8.1: {} @@ -6221,6 +6666,8 @@ snapshots: imurmurhash@0.1.4: {} + indent-string@4.0.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -6473,6 +6920,8 @@ snapshots: dependencies: js-tokens: 4.0.0 + loupe@3.2.1: {} + lru-cache@10.4.3: {} lru-cache@5.1.1: @@ -6481,6 +6930,8 @@ snapshots: lru-cache@7.18.3: {} + lz-string@1.5.0: {} + macos-release@3.5.1: {} magic-string@0.27.0: @@ -6491,12 +6942,18 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + map-or-similar@1.5.0: {} + marked@12.0.2: {} math-intrinsics@1.1.0: {} media-typer@1.1.1: {} + memoizerific@1.11.3: + dependencies: + map-or-similar: 1.5.0 + meow@13.2.0: {} merge-descriptors@2.0.0: {} @@ -6526,6 +6983,8 @@ snapshots: mimic-function@5.0.1: {} + min-indent@1.0.1: {} + minimatch@3.1.5: dependencies: brace-expansion: 1.1.18 @@ -6716,6 +7175,8 @@ snapshots: path-type@5.0.0: {} + pathval@2.0.1: {} + picocolors@1.1.1: {} picomatch@2.3.2: {} @@ -6736,6 +7197,10 @@ snapshots: pngjs@7.0.0: {} + polished@4.3.1: + dependencies: + '@babel/runtime': 7.29.7 + possible-typed-array-names@1.1.0: {} postcss@8.5.28: @@ -6750,6 +7215,12 @@ snapshots: prettier@3.9.6: {} + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -6847,6 +7318,8 @@ snapshots: react-is@16.13.1: {} + react-is@17.0.2: {} + react-is@18.3.1: {} react-is@19.3.0: {} @@ -6882,6 +7355,11 @@ snapshots: dependencies: resolve: 1.22.12 + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + registry-auth-token@5.1.1: dependencies: '@pnpm/npm-conf': 3.0.3 @@ -7183,6 +7661,10 @@ snapshots: strip-final-newline@4.0.0: {} + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + strip-indent@4.1.1: {} strip-json-comments@2.0.1: {} @@ -7216,6 +7698,10 @@ snapshots: fdir: 6.5.0(picomatch@4.0.5) picomatch: 4.0.5 + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -7321,6 +7807,8 @@ snapshots: is-typed-array: 1.1.15 which-typed-array: 1.1.22 + uuid@9.0.1: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 From fcf4b270d438d5bd1cd85d8da8f05ee90ec1c25c Mon Sep 17 00:00:00 2001 From: Pato Perpetua Date: Fri, 11 Sep 2026 23:54:07 +1000 Subject: [PATCH 10/12] fix(post-kit-editor): address CodeRabbit review on Email Builder UI Fix inspector sync/a11y, font inherit/null, column widths, subtree delete, network-neutral placeholders, collision-safe IDs, scoped CssBaseline, visual path boundary, and example catalog refresh after save. Co-authored-by: Cursor --- examples/admin-editor/App.tsx | 24 +++- .../src/memory-persistence.spec.ts | 56 +++++++++- .../admin-editor/src/memory-persistence.ts | 31 ++++++ packages/post-kit-editor/package.json | 2 +- .../src/admin/EmailTemplateAdmin.tsx | 12 +- .../src/canvas/helpers/block-templates.ts | 2 +- .../ColumnsContainerSidebarPanel.tsx | 7 +- .../input-panels/EmailLayoutSidebarPanel.tsx | 2 +- .../helpers/inputs/BooleanInput.tsx | 5 +- .../inputs/ColorInput/BaseColorInput.tsx | 16 ++- .../helpers/inputs/ColorInput/Picker.tsx | 5 +- .../helpers/inputs/ColorInput/Swatch.tsx | 5 +- .../helpers/inputs/ColumnWidthsInput.spec.tsx | 26 +++++ .../helpers/inputs/ColumnWidthsInput.tsx | 10 +- .../helpers/inputs/FontFamily.spec.ts | 15 +++ .../helpers/inputs/FontFamily.tsx | 19 +++- .../helpers/inputs/FontSizeInput.tsx | 6 +- .../helpers/inputs/RadioGroupInput.tsx | 9 +- .../helpers/inputs/SliderInput.spec.ts | 22 ++++ .../helpers/inputs/SliderInput.tsx | 12 +- .../helpers/inputs/TextAlignInput.tsx | 6 +- .../input-panels/helpers/inputs/TextInput.tsx | 5 +- .../helpers/inputs/raw/RawSliderInput.tsx | 4 + .../style-inputs/SingleStylePropertyPanel.tsx | 8 +- .../ToggleInspectorPanelButton.tsx | 4 +- .../ToggleSamplesPanelButton.tsx | 23 ++-- .../App/TemplatePanel/MainTabsGroup.tsx | 4 + .../helper/HighlightedCodePanel.tsx | 16 ++- .../AddBlockMenu/DividerButton.tsx | 53 +++++---- .../AddBlockMenu/buttons.tsx | 6 +- .../block-wrappers/EditorBlockWrapper.tsx | 16 ++- .../helpers/block-wrappers/TuneMenu.tsx | 73 +++---------- .../blocks/helpers/cloneDocumentBlock.spec.ts | 48 ++++++++ .../blocks/helpers/cloneDocumentBlock.ts | 50 ++++++--- .../blocks/helpers/deleteBlockSubtree.spec.ts | 61 +++++++++++ .../blocks/helpers/deleteBlockSubtree.ts | 103 ++++++++++++++++++ .../documents/editor/core.tsx | 2 +- .../src/email-builder-ui/theme.spec.ts | 14 +++ .../src/email-builder-ui/theme.ts | 2 +- .../tests/is-path-inside-root.mjs | 9 ++ .../tests/is-path-inside-root.spec.mjs | 22 ++++ packages/post-kit-editor/tests/visual.mjs | 7 +- 42 files changed, 657 insertions(+), 165 deletions(-) create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.spec.tsx create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.spec.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.spec.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/cloneDocumentBlock.spec.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/deleteBlockSubtree.spec.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/documents/blocks/helpers/deleteBlockSubtree.ts create mode 100644 packages/post-kit-editor/src/email-builder-ui/theme.spec.ts create mode 100644 packages/post-kit-editor/tests/is-path-inside-root.mjs create mode 100644 packages/post-kit-editor/tests/is-path-inside-root.spec.mjs diff --git a/examples/admin-editor/App.tsx b/examples/admin-editor/App.tsx index 76dec88..112a07f 100644 --- a/examples/admin-editor/App.tsx +++ b/examples/admin-editor/App.tsx @@ -7,17 +7,19 @@ * * Never pass API keys into this module or the admin props. */ -import { useRef } from 'react'; +import { useCallback, useRef, useState } from 'react'; import { EmailTemplateAdmin, type SerializedTemplateSource, type TemplateSourceFiles, type SendTestResult, + type SaveResult, } from '@singleton-sd/post-kit-editor'; import { createMemoryPersistence, - toOnSave, + buildWorkingCatalog, + toOnSaveWithRefresh, type MemoryPersistence, } from './src/memory-persistence'; @@ -83,15 +85,25 @@ export function AdminEditorExample({ templates, sendTest }: AdminEditorExamplePr } const persistence = persistenceRef.current; - // Prefer in-memory copies (includes successful saves) while keeping prop order. - const workingCatalog = templates.map((t) => - persistence.has(t.metadata.key) ? persistence.load(t.metadata.key) : t, + // Bump after successful save so workingCatalog is recomputed from persistence. + const [catalogEpoch, setCatalogEpoch] = useState(0); + const onSave = useCallback( + ( + serialized: SerializedTemplateSource, + files: TemplateSourceFiles, + ): Promise | SaveResult | void => + toOnSaveWithRefresh(persistence, () => setCatalogEpoch((n) => n + 1))(serialized, files), + [persistence], ); + // Prefer in-memory copies (includes successful saves) while keeping prop order. + void catalogEpoch; + const workingCatalog = buildWorkingCatalog(templates, persistence); + return ( ); diff --git a/examples/admin-editor/src/memory-persistence.spec.ts b/examples/admin-editor/src/memory-persistence.spec.ts index 91c1c86..128f9c2 100644 --- a/examples/admin-editor/src/memory-persistence.spec.ts +++ b/examples/admin-editor/src/memory-persistence.spec.ts @@ -7,7 +7,13 @@ import { type TemplateSourceFiles, } from '@singleton-sd/post-kit-editor'; -import { createMemoryPersistence, reconcileSelectedKey, toOnSave } from './memory-persistence'; +import { + createMemoryPersistence, + reconcileSelectedKey, + toOnSave, + buildWorkingCatalog, + toOnSaveWithRefresh, +} from './memory-persistence'; import templateJson from '../sample/template.json'; import metadata from '../sample/metadata.json'; @@ -118,3 +124,51 @@ describe('reconcileSelectedKey', () => { ); }); }); + +describe('workingCatalog refresh after save', () => { + it('buildWorkingCatalog reflects persistence after a successful save', async () => { + const persistence = createMemoryPersistence({ + [seed.metadata.key]: seed, + [other.metadata.key]: other, + }); + const catalog = [seed, other]; + + const before = buildWorkingCatalog(catalog, persistence); + assert.equal(before[0]!.metadata.name, 'Welcome'); + + let refreshCount = 0; + const onSave = toOnSaveWithRefresh(persistence, () => { + refreshCount += 1; + }); + + const edited: TemplateSourceFiles = { + ...seed, + metadata: { ...seed.metadata, name: 'Welcome (saved)' }, + }; + const result = await onSave(serializeTemplateSource(edited), edited); + assert.deepEqual(result, { ok: true }); + assert.equal(refreshCount, 1); + + const after = buildWorkingCatalog(catalog, persistence); + assert.equal(after[0]!.metadata.name, 'Welcome (saved)'); + assert.equal(after[1]!.metadata.key, other.metadata.key); + }); + + it('does not refresh on failed save', async () => { + const persistence = createMemoryPersistence( + { [seed.metadata.key]: seed }, + { failNextSave: true }, + ); + let refreshCount = 0; + const onSave = toOnSaveWithRefresh(persistence, () => { + refreshCount += 1; + }); + const edited: TemplateSourceFiles = { + ...seed, + metadata: { ...seed.metadata, name: 'Nope' }, + }; + const result = await onSave(serializeTemplateSource(edited), edited); + assert.equal(result && 'ok' in result && result.ok, false); + assert.equal(refreshCount, 0); + }); +}); diff --git a/examples/admin-editor/src/memory-persistence.ts b/examples/admin-editor/src/memory-persistence.ts index 256d1bc..429bbae 100644 --- a/examples/admin-editor/src/memory-persistence.ts +++ b/examples/admin-editor/src/memory-persistence.ts @@ -128,3 +128,34 @@ export function toOnSave( ) => Promise | SaveResult | void { return (serialized, files) => persistence.save(serialized, files); } + +/** Map prop catalog to in-memory copies (including prior successful saves). */ +export function buildWorkingCatalog( + templates: TemplateSourceFiles[], + persistence: MemoryPersistence, +): TemplateSourceFiles[] { + return templates.map((t) => + persistence.has(t.metadata.key) ? persistence.load(t.metadata.key) : t, + ); +} + +/** + * Like {@link toOnSave}, but invokes `onRefresh` after a successful write so + * React hosts can recompute {@link buildWorkingCatalog}. + */ +export function toOnSaveWithRefresh( + persistence: MemoryPersistence, + onRefresh: () => void, +): ( + serialized: SerializedTemplateSource, + files: TemplateSourceFiles, +) => Promise | SaveResult | void { + return async (serialized, files) => { + const result = await Promise.resolve(persistence.save(serialized, files)); + const failed = result && typeof result === 'object' && 'ok' in result && result.ok === false; + if (!failed) { + onRefresh(); + } + return result; + }; +} diff --git a/packages/post-kit-editor/package.json b/packages/post-kit-editor/package.json index 6d2d085..c7a3f6b 100644 --- a/packages/post-kit-editor/package.json +++ b/packages/post-kit-editor/package.json @@ -37,7 +37,7 @@ "scripts": { "build": "pnpm --filter @singleton-sd/post-kit-types run build && pnpm --filter @singleton-sd/post-kit-compiler run build && tsc -p tsconfig.json", "lint": "echo \"lint:editor — covered by root eslint on staged files\"", - "test": "pnpm --filter @singleton-sd/post-kit-types run build && pnpm --filter @singleton-sd/post-kit-compiler run build && tsc -p tsconfig.spec.json && node --import tsx --test \"src/**/*.spec.ts\" \"src/**/*.spec.tsx\"", + "test": "pnpm --filter @singleton-sd/post-kit-types run build && pnpm --filter @singleton-sd/post-kit-compiler run build && tsc -p tsconfig.spec.json && node --import tsx --test \"src/**/*.spec.ts\" \"src/**/*.spec.tsx\" \"tests/*.spec.mjs\"", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "playwright:install": "playwright install chromium", diff --git a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx index 963fad4..cdc481a 100644 --- a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx +++ b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx @@ -2,11 +2,11 @@ import React, { useEffect, useMemo, useState } from 'react'; import { Box, - CssBaseline, FormControl, InputLabel, ListSubheader, MenuItem, + ScopedCssBaseline, Select, Stack, ThemeProvider, @@ -115,8 +115,7 @@ function EmailTemplateAdminShell({ return ( - - - + ); } @@ -202,8 +201,7 @@ function EmailTemplateAdminCatalog(props: EmailTemplateAdminProps): JSX.Element return ( - - - + ); } diff --git a/packages/post-kit-editor/src/canvas/helpers/block-templates.ts b/packages/post-kit-editor/src/canvas/helpers/block-templates.ts index 21dc688..b27ad55 100644 --- a/packages/post-kit-editor/src/canvas/helpers/block-templates.ts +++ b/packages/post-kit-editor/src/canvas/helpers/block-templates.ts @@ -50,7 +50,7 @@ export const BLOCK_TEMPLATES: BlockTemplate[] = [ type: 'Image', data: { props: { - url: 'https://placehold.co/600x400', + url: '', alt: 'Sample image', contentAlignment: 'middle', linkHref: null, diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx index 206099f..f86f2ce 100644 --- a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx @@ -49,6 +49,7 @@ export default function ColumnsContainerPanel({ data, setData }: ColumnsContaine { updateData({ ...data, props: { ...data.props, fixedWidths } }); }} @@ -71,13 +72,13 @@ export default function ColumnsContainerPanel({ data, setData }: ColumnsContaine updateData({ ...data, props: { ...data.props, contentAlignment } }); }} > - + - + - + diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx index f7e5fbb..76da155 100644 --- a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx @@ -59,7 +59,7 @@ export default function EmailLayoutSidebarFields({ data, setData }: EmailLayoutS /> updateData({ ...data, fontFamily })} /> { + setValue(defaultValue); + }, [defaultValue]); return ( (null); const [value, setValue] = useState(defaultValue); + useEffect(() => { + setValue(defaultValue); + }, [defaultValue]); const handleClickOpen = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; @@ -43,6 +46,7 @@ export default function ColorInput({ label, defaultValue, onChange, nullable }: } return ( { setValue(null); onChange(null); @@ -55,10 +59,16 @@ export default function ColorInput({ label, defaultValue, onChange, nullable }: const renderOpenButton = () => { if (value) { - return ; + return ( + + ); } return ( - + ); diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx index eeeddda..41ec818 100644 --- a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { HexColorInput, HexColorPicker } from 'react-colorful'; import { Box, Stack, SxProps } from '@mui/material'; @@ -75,6 +75,9 @@ type Props = { }; export default function Picker({ value, onChange }: Props) { const [internalValue, setInternalValue] = useState(value); + useEffect(() => { + setInternalValue(value); + }, [value]); const handleChange = (v: string) => { setInternalValue(v); if (/^#[0-9a-fA-F]{6}$/.test(v)) { diff --git a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx index c87d82b..52b8c96 100644 --- a/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx +++ b/packages/post-kit-editor/src/email-builder-ui/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx @@ -14,15 +14,18 @@ const TILE_BUTTON: SxProps = { }; export default function Swatch({ paletteColors, value, onChange }: Props) { const renderButton = (colorValue: string) => { + const selected = value === colorValue; return (

>G*1vTD-^7Uz zt~Yhe@8>+&HewC+bMA?5R>!1`qPCc$KfdrCKaTO!%cxR;hC*FY)v|uPH`uYX7w5J{ z=8X_&%K=(}Qjr2p?l|++6%}bwQ4zDrgVod)k8>8$*98~f#AimDICzOGo?T4v{X{`O zl$4q}SQ}f9xh)uF2*_1~7!@E0Fb@D1pfyGODU4@L0zZ${fdz4a2Pr-JASuAA*aUVS zy5;rqujdpJVKlm?)I$pTZC8t^Nl2Q$JyZP?3;2HM&kgTaBF&kE_dZ;@RT{jm!?{z% zy4BA&PsMvmtTDd}>KbQpdAZy%-_Bht9II%~hQ@AYf8OeW=7yf~iL=~Qbi$s0^g$rgO`YVVBTET)Y--P3+Igzp8k44@-MRTZ5?-(Tpn6y}fCN#7h@-1& zrN0Ef{i|un|GuXAU!o%au(ST(|I>f)X1?Kn=;mfHr2&=Th1p?1^aA#C=ENads+_PI4nozi6BXcmy@n(6n`;N0SC}2^tzf?^5biZL1wTd*80%zhu_5u*8Q)m( z5;hVVn7E1}5Ao?D#3_P#(}SR$K>%B08c!D`wl&aSM1B|=I!t=CN8N;%8>U2XZ)7M? zdAPWIc+khnTlwSxN9F>Gho*#ht=781T7#d;!wv}(gZ@D{+>V1(8(f0Gn6T|seO1D^ zmT%w8VDUf~Y{0n%sTjvEqIeJALqWlP^ugLNji0W8XhN+5Eo;y!eZZmT(zO|(HHblg zSq2+nGTIIRkw^enfTKl>ovZKO_vVa5VOliFY;qBwaL}NK#Rgp;tHdG3I^156Xt__I zB7mC}P&m3K>Z6)>-|vDr%)_sw_{z0wRv5@MGh@x9rzi?{CyMIAzmyQo zfSw|d-LCNWq^Ov(tVcDG*MZAp47n%2i&<8<(2du!8GvruMYLIfRxws^6CYeju;$fD zO-xQA%!qzbqQMlKn|6*P#@<2`eG+{F~h^<5Y2P%r~ zEH$P?t_?Hzb!VA@o&(Dd@P~K<&HBZ*Hk7rH_U0M4o-i>Pu^K=nzXS#oMI#Gj7$`|` zJAMKaH9n}mOZM0F=5AQOz7+)tuyAWViA{UqKwXG&faxlfJ%|`?1<8A)cGY=KLfQ&C z8kR7^OGVPR_vh)DjH;Ai;50C31(_UedGoQl(mt$8#=r>xE7IssuGxc*7~^$$u`=X~JQGRfVQ6hGTiUpxvN0 znfK^X8I87Vi&%`qLZ~5vAKygD>|d^E%iDNOp>5M1A(P)XJ-oP1`L$;Ct=NoG`IjQ2 z$rfw&`mT-tY)Qc{XSvO{ThT%y>6ouR#~sqN%OaQg4Jeed4k>12rhU?HW@g(NbSISc zuIxIqlI@S2{t#`m|EN-RIMkiNc+sWe8t3P6!QP-=`{g6=Z1Zn^F4^ih^9p=##H=gr zt(j-nmVhx)VbQB+Pq?J2TwUI|UmbgN4sKLmq+=5p%o;w~KbYCsr2=2r4rgJ~;MTn- z!lI(0lFeFK6BnkRI4-<7R&iK4*SbXONqO6doSNezIfUGE-Ej1BcBi*5FHO6gG_4R2 z5-rj$el$;OJJ=4Rr1^L`FQui_<_Kd>=(R4T(B}8Y#1^{;dbF8?N|lRj6V$7EKT(2b z&JPFzg(I``)|hW(=sWyMyUn6?RLx45q)#4oL?EG_E`UFcxhj8$rSWT<`NL*$NuBko z$5;$9>$D&>0vyJgSVjCbBuKcl5$Dot5e#K`&XWSS}5~zM@HF6A6QdNaXA)El>!M*S3h6yh? zn(M>r3pr$$`+Lc^Wa?dU9(iU*JF5j7+gSN|eEj_>56GDwVr7+Zj){rE#-?UkFZ@?W)}ORT@@CXkk!+K?;CcP`fncZlPs7mR}mV2mQwYt zUTvBq+L?>itVZTMcY+`HZ$8*9$*8%$-wdW1OG}iz{JP^A2xOf~*%A4pmt&2!*P=#z z^Y$Yz-$?FFtDzV*LNp;QcwGCV2M+pzGKMVGgd>MoSZ>YhH?|2Cj@8gDD}R}}i9wYV z>ANU1$^wj_Zzz~=4P{Np)Wqq}EDPRNh)q!Qy-;|?ROQ*Nit=&U%S%)v`DgU>N+$ZO z*i~l+kM{;0gYwvoJsWVvL)^+CwpSDb=ME4Z+n!t>7TJ5sxXj4lr6<_iC4B9E#KSnJ^+0q^+uZ(myqz8n*9~u!jE?vHr>9(i;(oFMbVCksj0O>Q+fhX zW2I&B8Eu?6QX*g6I+0gqkf?wZys7s)q%Y7}gZm!I{|FHYx(W?NMavQ<%H{9pk4Xzm z`nYU%^n82z`eiPFIV-p6RP1hOM!cn$%u$3~dtswnJq!9$UOw*G@o`sfZf+E?{6F0(Aw#N4rsLYY>uKSdjS3YpL+Xw?OT zaRM5gEjQVvL+*II+l5k{Z>m8H#zdbwsJd*@r)|P3z@*-S@*BIdZKR09R7x;8orA*H zicBbY6GB7xv3b3HOVuD;7jqJE-Xt$6f^HO!_AM-@1TW?+_TUIx>Tq7RY&MdMkX}}Y zxaHu5-LQX#>k;@HGu5NrqZQcDpKYmrXzXNkI^wl^ps<0kqMG8ppnX5n%jhOOIm2%hJ{5nD|-{n7QPnT z>WD#T8&w&Z0w)JF;C*X(NKrP>-=CPRKZDQu^zCVb$y6B+gSSOeKW?X?Modm-&)P6= zeEkz|+qVY31`{%pQ_Xb~agnAiM;hjzzlO=>#~%0oel~aM#or27S-d}9tQ=o=53Y3n zUpEoyou{mc1y1sBeM{Yxz+l|qhd;8ejgC_F##`GajSl?K^^oaXYd7RNuGT{T(O>(| zUCjTbKUGBdU)aVb6CLegK$E=o@Zm$0)6+^@ zs@0-Cd_hKCeaTg5;VU#8Xe}lPELvP#wsWSCGQZNg1N#I1Ne8%EEyX|7WRNK73T^A) zL7`bOwD?0b3w)Qef{>KXJDf>rQu2MFO3VjtyrIBt-B>T4l|A zbE}R3?$ic}7B&|6Y*1)Q+eTP$@=g3sEbDk+wM>ygW~HVd_WBnGFE8|hQ1saVfP@$o zonW;FIlaO4q$6t>YxrTj79)S8lm!FCg0&PT>$E~qjr!fI-2 zou3sH6ncYhN>Mw0+Yt;QHQ_WT4aAA~w5%I{c?I!%Sqo*J1-4D}PDVk|@$qcT%v9JG z*)m!<(cM`c|8al+W9!IgTkXG}?JK}m#os{~s2xy1R10Ev_|$QciFiL#1LUa?@xY66 zVzCE(AaPsJz}R=vwDWb`CXRWWKbt#={bZ`iKu;HChRZYFHtScYW$-~v+K&UUVrFG6 z>!|D@&=M!bYACRv1&TQ7Sxl(WUOf>E*nnd65F1hAypj;tkde zo?zMy35gT>u(qQ;ap(*8$0xa{9D+VN+LUWJ=wWf9!(=R%lt~88OmC?Z%+6;6S^04F zmnHkRV0(OrJ+Ki)0rcsQFrPF#d+w_%9hBIYn=o_qX`pd7v#*=9eZQPli|KgN(Cpd<{+9gAE+DZ2{ai-P9(J7#yLajC{pl=FCg`@k0#ur>N5&GsFyLn(U9c; z)t)A^Svx`JbWL2gj*glc`Be9iUFR{s071hNXMYlsEqf&^Zc%?Acg}0yG%zqQP977R z!L`UAck1v;`$1B;gSd33AH-`#LVuEY14(|D?!f>4d%pFM$S%0tAFr0?rf#j*>1UKR z6@JO!<4D`&*Zur2EPC`@ef_jgrL63_Y(D+PgX=4n=L%k^KNi?N6)=_^{F{UB2E~ zXH@2YxU_8}tKX7k*_0YprC|bb;nzb#r}kbR`0TS7rc?dx*MI%@e4KyoCj6&=>ZMD+ z)yT=14@Vp4>DdBzRXFLcJe12(29aBW2dg=3>4F@3u4U7HVOSRs&qwT$BA$FKTl3q|2c5|U?$E|r#lze}v#&`qt4 zxol+l0%w}(Z&cQC%}z6q&>;_}P2^pDkzIu8sX+SGHnTe>#$b%xvUb>EAihcJy!jzx zB~{rLNYH8orw)8d?Q=SxUwtz5p%u$_ccp8CwzIt@=b)OKU%Q}@(9vMRZ9_}aaWSQR zR-&`)-syxJQu4C0UM8Ve4LY|;J?>a8(GZ}Di;YcemGiGLv>kZ;PF!4~X?fQ0$oj`| zUnx1G6BDJMy~-DCPKh*bPrUvv(X^-Dck5l%bdA=A>E*@zY|ne>9V9upTO2Fa<^4wT zvfQ@*jVA^5`4bGKQ_uJ4%#U~+KYphmB;ufR-`#}FOtll^tZdBeK_t7RMwci_NS2pp kUPxcSi?@O3VAheWKcd(*EEDQTyozEXQo;#muH5sR;mekm=AjYWioKp?P@VnT8V#N}@Y1cv9ei}01O z`EULR#7zWJ=!Js)*Of6$b*V+thRu+aj{!OcpCT;)%(59pd``fs9WY_4AZ&i zR~~n-6((aKpLkBxK+16bBVRCt$^78ouR_f2$=xd8OE+bHQ;OgaU2tiTR|sTpLOmM0 zno;M3i9iJ6QBYE@k7IlL`@5pIQntJs`DR-5lAI|PyHi+LSy|cG*x1>XMGTDX`Hoy?3T9?znK+(uyLHX> zublD@^|x>-pSiQTyJN&(zhZ$vxZftg!=vjGnQM&->rkn%UM$dVqPVJox1T)h?m>nj zmKo`RVSw*eia`7ny>tJ5EUo;*%U>wE>fz!9C%+OX1KDqyleLK-czxm5fPtN@bVfhb z;PTIzzIX3lU0oeb2Atw%g6*FJuy?#Oc=iu-#j^FLH&Ff+?MHsDos(x1@tXHv#Lz^>{>(R*{p9nLPD00EW zXf`8)$12Z}%#WnM+Shg`i3X(lxlfzSAc7+?{@z6)Uq=uT##NlHol!2g>hiR-G(W%M z;EU36Je)esp~*$+HLfQIo6`~zjM>Q=^X;)CHEw4fS89{psU^fGJNVDkOHE^M z7wEJom6~c?y?XUBqPxP6n4@_=oI#B)qXXr3#(=thmoY1uh{N;}t5HA2;_7^dR^Gb? z|4N5#8rtd2=>}b0U4~aw1rnN?ny#*{;?b$1wH(di4EzS&A02m>Xc2fJ#upm?_}q0n zwrG!c({w!8c$5G3Pjje6mRyQ>-}jv62E{V-t^`3Z=WQvD%ke)tEN+TEfBtj4>L~dp z5mA4la7(sY=}c3|v8Vut>8P0FJ1s2~D~b8>W&%n&F71l@wQhrzU z;q+fu5y@}fzki>xUGd>~=vB3I`R!`-T+GGGSTq^6#YS#T`ww_4A{f-xvi&-~au(We zPSGnn%QH^g^z`(!wY9}uM)8zUVk0*viGzY8NSQ@ecq&heDbmd#RchC)W- zJ#00iuZx2BF+)9+tUCdsc5mU#9YM zcZ!vQLg>Y0%=wOZtwLR?@W-k%cvTr08Nr9Xr2KD&3gVS>H4ER=RuIsKmm2m}sIrtE z?k>~QK5z4c|LeVbx9zEGNt-JZ&qwRXCe!W5{I33ZcR(vR-}Pj7VAv5;g-NrL#%E?r z;EOH^l%b$?vu8@-_r$9CoeyA}J6i{vK2|LdI>pPty$}>BsM)-$Sx%Jp+>FbsG(Bk@&z$zYs>^&=%3d1Gf7e^9poOBhw6)z^ zQ7s>(9;nc5jZD?FL)u0#Y6LGMVXol%!tmC48E(veSO_sz9VL-yDCJ4cQbN=;Ev^sAL~&1UuFT&Z+BPV--Qh|D&- zkgsZ0+9$A|p6sKp-_C>GpfysmDiL9urPAfl8kuiM7f-{vYA{}@v)GLzEgg2ax0*Ko zD0jF9CBa3j*!=5HieZf_MzY>z1HTsqbsJlxD&5%Vv(X=R>%CE?k}>QW-F}v{&12Or zBW>9Z&{j%KcfWF4c?LhlbN#+`>*TuydTX|nU79i2)R%}&9LIvHp-YP6Bgv*%%H!ZG z-I7S=fCs$d^|}c6nPS5}Iy7S%a!XYG^n=6;&1S;Ti!M;^*g2^}TBI%QABvJy_>8Zo z3l=JUc|>U$98W3g&wqL#=%ks%X0sH^Wn*Z!+`n6o?S`gPFMHV%&d{HW`eu^nu&v9P z84zLm@zbYbgKe7(Icg4Ll^UDnJ807J4Eeh@Gb{Tjw|EY-IQUDk{BEYb>9}YCM<+m7--cQk$@1HHO{faJz%QrE3_T*xA{+_Yf2R zA&={^ePbZ`g9i`7=oEvCXL#wN(e2t@ceR}Jp`YZxYY?yB+?s8wQB3U`K6^1HKQI^u)o;dyn-;O{pE4h z?P!%_jL5+OdJr{1;DK7s&K;VU&#Us7ls#s3U}M}~;DlA+D~QuEL&iXOR++k^ki>ud z1j*PF&ZITDoIB$8fOl@{k58`AP=yUWr)RnO17a4El%nw*StpX)ZQoDgFko7p%I z6%`c)g#g|9*pCPfGfnhji2a{mzY<;*8xHTW8TDJ++J=Ar{-)LwPp*+RCXtZQ<>b(Y zvyARlQTj)=g7lXO0$a<%cT9$hn*RI|=8Di4JcNP~mX(Rf4dN+H_a)x1I#$-Ka`baX z8j_uP5ObI&yYOh+U>83=OIYsB=qXxMzHs5f@aB8Gc4S@p6(=Y}(C7-2l01GKNjlJ` znOMp?Hu&GiGc@EFNR=|$^{O;f9Oz0C#UXiCCK~Wyt1$bAL`NKN%#$~AyGwoHj2emk zWfc`lxti|=a>lTU*`GOdtGV7fUU#FsJ+a$sEqKblv((qp+A4{3NtKQ*dHqWOjSf!F zk%-7SFNRbWje)h$w8U;maPe~A8sSM@yaD_ z=G*U6Qc|)BJ#*YiS8omuxyiXE$H%rB8Z}&AI>RdYBASfQOWpZ!F)e=PrId8u?%N!C z&fFlYkWA%VN2ho$>xGv|B2rMwSj;EfKQhebZMQHjn+{E>0;ol~@oy}2CFNEd66N~U zob5u}C7^kosYa`(Vo5~(=q;s)FOTC+r1m8Odajh6p3$NR1hsqM`u;kqBZyKIYW?hj zMElkk0{VwTi6J2&dsisbM$YzB_cnSn)1>)|1FxS#yIRIvqX3nw1e+zrQ^PYEPW}K>=eq8eQLrpUN5_`sZHpHPxTw-q+_yLZzZ9F1Q&xAhLn-Xh`y zpo2Akn$mJRVN(&rvYdIS9Cw>+Hbo+WXZ|UvA4!zhot|Q&h%kC(u?q4A>0EC7pv-4A zrxm&dM|&m` z5)$(A^2lYYxmH^Kw{EBCw8!G*{K5bYgN-iYq0NSikS<$ViP}M|fx1n6&VpUXb3x0v zThdUy59Y$R;u{7Al!?;XG1Ud3r|~>oZB2hb_U*{%$x zIAa0gW_VR}@2PfUXM*7DXIXCQsG6FZlD1-_f!-*RS!FNQz{0|hCn{=cEeQ(09XU;o zuSN8Hvy-FR1$rvGj>NoHMvJmr8SE-q9Y6tx2ze;=H8vJjW~OuG(f%2CUnt6Gi+|+z z@28r?Xyi-Q{dNGeN(sK(KmSV$*q3mv@4doi*gIHavJ4P)=IchCH$KXBMD#`Uo@>p8 zK3_^YI`PxbKo96LJWMOPs$Cia;!SCyJLLHY(MD8mMNkEw0LV7zNp)~=fNCds8dnU6 zUifTAp9KfG56k^)-g|}S#M|N=x7*x&0lp!>JMAoVag>It_jPs25^X1|APky-CBgpB z4WAt_hHg9?;WqjEQ_45ZEV-$N)~GX2)hm4M)m80j!yHuCp-o}1aPl~%O$qS7Ys!+WaZ;4nuT{&D4j>*A=oBLi1{E zSBL2=WQv#F7Q1y+WfR}S{fmm!^Zv2yP9|-S=g-xTo3;hs0h$FZX>3~Be1?45TUKp7 zNlD2fkC!uLn?Nq{^cs z-69|8quP-z3C&Z28y+S;jwY*+%Hzk#^aQn}Q@f%2!-af$Jdb6+?r_+T(2*mqzpur zSXNX+9|pd*vyM6o(efHdC59q)rm*PQ|M?cB?fSUO#>5L;TwDiLC_+%w2C~(Zkq(wT zyl;Mg1U9iUTug7&pH+b?r&{G$tk7&>E6)Fr-P=l?nc$9l(L9hJ%Wkz`xZqPoVY_&s#X;?D?27w~C&6TZG`14814*cAqqJpEcvKQj}O2M;(lRPEfi z=OuGYo5`cTR7yMc6~o>X6KqGP+!j_wj<%WQ3OPh?M5^dh%lz!Bbhs`m zdiCzzyEb%wpbung)g*uxvXt>HGjqA#FD9DR;4yOpTo-6Z$e=Kp*pGh5c}xDmKKqW&b!qEt0p-|w6h=L$tMJG3PTUY$~GKJ&Xl__VCtB}L6)Z-sQYz|U_N>Neiq-gLm) zm#LiO8%X*RlabVLiBOsZ2Ks0>qScl;BJVx27rxr0n9H+y**+q_g|+nSGFw9)1vtLP z?hNC((D3aAMgR%t(|7f)?(Stn&u5v`)1>dG$Z2rdu0%G4r1fSFJnt?8I^bmg*r4xw z@z#ZUza!VvgwNNH5m*S5w5Kj3JM6!SejCyVMVl(cp+I)fd9q8NP?|R;2oS`*108rVO zM}4e>?K;37;>HAW)E&0X2$YkV>BC1n&7u*}`%)3MJ36T96HU9?B=z?(zyY^pFI~NA z#LtSBa0HR-kxU#-hTL+$cf5FI1B*LbxriajK2RYEP852prDEwe0V0?NR0)77jRVW! z;^G`e{gPwR#2lwFuj+fOeAXzC6gClb7KK*(flOo3AR5^_nkwOK@1vA$w3-PQquDa? z*h6SoHHokmF0*A3@;o!8ivs%Sd~6NP6VbfSX*EZclD~J$#Xt_aY`y>eA8u!^Y|C9Z z8$lkrNZG#M5n8TIE5wNII1u>gEUYR}u7bqG#4&)jXh<~-$4iB(-f*RXtOx%Bm_ikO z2INmUM?GUgelYLNbh>O3pj-woLM(T?Af5|X-2-ZynliL%s=v$)wGJP#^PlobMzbzL zm4Y!-^-W582Wnd=YqqaQr8tsxhEfhew%QEp-*mlSm;x=^x>{m|-Fl9*p{2S7NEgLl zH*~RCSXeHT$^zz|l|cIN@bVInQQtC0945=9eA!BIHl$_+*?HsF6t?0i6>tRnn>WAl zSy>O{XuwT^*5hxR!IegdNOpC+W8RxCOF54H7{pWr-$y^cHn{l@A3osWpc+FS;TGy( zbl&xy`1?&e=&iX@R&I6FB&ObVxE|L8G27EM;0g?xi8H=?e zS}MXH9~(hRTw@2{aMymVt)0wgKmfW=6ELrf2-3TMFA{j;F#`hy1;qni#~sdq>A-!) z_~)Q}l^74*MjVvcOP=3h;EkEk@t;2@*2V$>*@37mhZX{L9OL4}P#G$X3TwDSm|9lQ z!x0nH6cg|ph+wY_&x?qI+hxL+&;N;7;Jt|R_mgk?e}#Rxqw#k*f4^iea~W%p?rzH#3(mC1Haw@);IeU-%L?sF85XGAdK5u)%DAPBjQ|z1LXUU2AoZr5 zYN7^>;^Hr`oBB0kGUak2?b>tmKMR^dv=#0hy5%h_4OGo-O`&1>nqU5pbl>Yk_*Q1 zxjc2)>UDP~W@KapVAvYR`-9bJw9Ehmu^f$Ur^6isNy*lIQ~<3;MN!0n8At$779Bvj zN@*L+PawMK;;TYqJ%Hb8NJ|s!t)rG#Rz^X? zgL>vi%5MrSl$<=_!Go5fHk=1MAf5ZR#c=E`Zkxd05EK+N>ie!*<68AyQ3FInYAxX} zw`rAgM#CB643DN80z`#`SoJ%f|NApyIqtQ!?=sd%NPs#Sy8QVf4Q-f>g$1Chp1!_{ z&z-iGP>Z6%LK~~2rQe^nhx>qJ=@=N$ep>3wyi2EGf99I|F-Cv95)Bl&Z)>hC4g`Jx zP6~eq4-rg1aXy-U#HYhdyCQgR-n>b;16Vu|T$fdechi!$Zs8VX&Nl`Ls+HtD!NtTx zmU&;nCi>{<2>^}#=~KgjoY>&7e+vsiMEmTjX!qqym-Jg)T~DF=hkXDU-jtY@uTzSsu6qaK}~7=z{0(FItMo=W6oWblIU?=I7>=K-(PK zgUtd$H?QSPW0li>Yg?O+0f_Rw!nhB37GRQIh0`|>&?~KsmRkWHD_-Vv+RJh|+WYf` z07Q%9WTGM z{>pdQ4!3&+&u8X(XaHUufpjcam0=&&u5|cADIzZ~FPKRoE?a?nw z>GuQ|0|SG6mm{W4B@PyrkwQJ?N^x%P5nvUO(b0cb!bZmB%a@T)WMQc%=USc~qn*)P zLxY3*Ml*6b<>lyjw^LOB7GvQZ@%$0us^7DNOptA*C|9GmZws9EO*uF?F8{2N`@=wo zv_3i91*8biDSf^d+!e^EsOlOU8#_1RAMxPad-7abE%^z620gubA?2Vzipc|<@@irt zqVFz4*=iicuXS|Tv>R`loPfrvtEU(7NalgJfa@t*kDs64Ap_AV7N@4b_kmHP!e*h< zqBlK=T0HdS`EZgE1iq%=;yPUHNn4Vzv)eZrDVc2!TgJ|ejERA*S(kYO7k7ZqTCS`0 z7x_untK#qCVRTSky89)5Ch&#)0u%DruNRthh|}FgQS;-&<&tDpr!l`L=a=5dP*GI{ zcMkc%6SfhR1%aq&15}JFmoKZTsb#Xco$M;ZlKlNhSp3W6)KmfJeb9`wTf$cXy>%N$ zc@9s2`UPsOM1-_ijv5B7c)Y3Xg}^KK2nlHs2z92|t&(=sXFpQSoG3+qc0 z8ailvnG*5*ZsXw40g6`4Qjxvz{9m^qO@!x8O-%(gY#fvjsC`-4*~F~+FRPs$OguP= z49gAszGGauu`pCP4~q(99=r8%-X=C8&;_zoS;qK^t<2%kOkmByNJk)M8-pkT@pPA* z_wF6riJuqPCd!=lbJjvg?l7uHLQA`R@b#V;O*+Cr`1$ka{v^6rh|X~Oe8LJU6x2Q| z*EiH%!$JI<_q|0D|7A@zpd^d7?mm7!%!c7;4JlZzu9w|ir*zLfas=Xk>ClwFg6o<8 zOADCz`(1=%fIG(D&;EBUo$~+F53S>0B>_WjJnv0X@SJ2k-@DFlzYNQtUl?(BNBn~g z$&t9&&y=!MKo($FZGqL$j6Ocs03$$A0Rhl;;^&K5mgyDs4B+eku+aexAL~TA`p{5E z2mg~NVlEEH2Th5>K5@@11Y8^rcQQb5c*d#tl8*&0b_%HXfB7vMh4h!e=>tglAI`#r z15?Ak*C|76PQve+DDa8tsb2drI9|vQ*YsD#j*H#?P)dD1e-<0;154*;W4 zHI7nUFjRuYkupHc)C;s1fs_HcP*f8U5fP8kavRgEarM}mrI(E35k3T+cHyp;0u-6l zUZW!(mqY92eiQLf8pT}AlhqMBs>3^YCWU4w*P*HAFnSG*%s#Nuw&xhYlQKY63xZz+ zqI#M2V({=vYZME}jhQbK-lm9$>0AYV+v_-{_OFvY7nktleD+--!}<6CN&A(1J_M)$ z+!p#!Gw6nZA=P5KLPqdyz~gqS(WsT7wWIy@;=H_t@v5|B@`_j?VPPK&M2X9=cj1?Zm+fLVx)fCj z{U6MfOT}%V6Mt9Cq%$*Y3Kk9?mi+n*`40taVJrEm4vE!lGn@0l6Y$DmcP`l$*sWKC-`Ww)R%kx?d#k{D zv0Jr3d#Kb*3xoq`n)mp0L-nSu`yjf&A&U#WF%Kg zN($_Z#5$>K1>cb&^{}pC&x%4z)b0XwF|~S3JS-LukMNX(BjOaiG5JKHO@JX1Ts=^a zNl8iBzGcWJi9l5^)M22h0aOP7!B@na&gs-pgD^2i;Bb|*5VN~ z@~LO+L7asa);opi=`=_=Xb_cPs`=bKt8_i7s9*(MIr!GUt?Mk*bkkf#B~n7cVq@YL z)W^1Xei`qUr(dCj#xQC)>dlJ>s{+P<1dN4`PY)bc%>nPCAYZbF4@F{V^&Lyf99Ui+ zJtZUi+1xCSEC39%ztH7U_j!_Za1PrO=RN?S-D;Pk;lV*MCAnNpm;d}#>n3xbFNuT& zkSpPbz0LzF&laR;f&mi2>Qn~oGn)d!LWEZTeNIaSZSBy?(A(2L-+Mqm=v+-O9phT; z(d(4Xw*Y++>=iH@=$}57i#=eWpm+&9tRDY+%mpSRdmwkUhtWs;#XktX%O3VJEEjfO{dZp&U%Qm-+mEtoZ+@ zjqs&F>ArmBN_E078U7Qf2M=eH&eJ%_$dKF5Wwif-4#fKMkM-*7SXjXVkc@&hFaWC) zq#=3)AD75q-uv?^;gi=t&($I6SRz6~PP;Yr%Rke8{=03lE9~s-Kn!f`?3A@mAshqN zc{LQxloTC+CWif48U3Vu&i0^-10)Cf1K?O4kXbRWdby>}aFGGjRR-umkh}rt3M3sY zgb?5W#lQAeN2;o-K-Y)J*GrH+RjC}BK_my;W31dt&w)v9I=y+&id3h?tYPvfBP-vSGOoY6>^j8R=@)#UcL0-UuI8rs#c#B$3Z14){-u!|x z1s#nt3}R^KT^`5*yXojNqyERk%YBSoqAVwQg3b7z_`LXL#CDS-bp66EWT<+T9LMf^z?7Z%C@&cfV? zGg5}Z-wJNkf%yWxW;FkuS42d_8ePG5w;SLXZMFXX{(_JKucbub5)h<#Z;g?0;h(7C zd=p?LR7}_1KIN-8BnzDh9n3l-m{kXz1hrE?=Y-tT z8eMQ+D2;3)bhm=(=r)6Yhyvad&p)#S8f61Ek2vFj5HY57OB~oY{1qB6iMj*`quLIRDw_3sK zW|-}jo{bH2gCy*`Q1~g?3{~IWGI_zJ?9{VIcJys5P<(F#qzPbE*%fcVgz-7+!&u9J8?uJrVp}xfU2{D=VYwH?<-*1dFz?8aJ<$oX^T>p-z5pi}s4cio#cdQ%Cegbe=AWf zx9o%OR#om9af4823=vkh6Ppo`^Z~@NTh63QM)`sXAqS!#Y%wSpnE+t0++`jOn`uPU zzmw)Y%B}xCy`&||83ll3Lf @B`%k;Fo)yc)9G>cp#Jm&J|F=2pU-d6IGB^q2Txv zvdlq+94gc!1+^iO5T6_c(1zWhI~nd#+?mXx7Bo+ok?F<7C?H^E`)k3TfQ$Np z$Ge^!4(nB?C!YbegE-vD+Sm^~lSbPpJB*CL_qM$~PDb4`nScdr&RnxfbU~1M*Wl`Q zutARYj(uj)4eJ{=oZXqLko^HK+Q6*8Rm$XH)KqI!A*1FoixyuDj5&v4?-R`qP0boW zg{QFRmcDZFpH=QOkj{(M!x;Ml74J^DKi`TzM-m`+bxSrQ+}7j&=j2B^Ay_-ZOu!UZxMx6+H8FCQxj&(gVlJEKu|o)61i`d zbFWALsqt3w-gz)qHg>3%yHn;UUyytgr0#F)iAhNW&RG99^2eODU-5)Q`nSDwY}>QPuj16poXx^3UVRYtx}@c$j0mnWab zXliN-6ZC*{%MHR<{MHNRmF@qdMe1mvpR%(04!qu9;{{x%UhN!}wLI4^`L+x8A+R=^ zy3c1w^1OEn17sU+hhyx*fLr+eb$`24J zc^#IB%ht>$v`Xuh!J&rv%3e}#TjSpJF5nQ{)(g)eg3H5O`knhB+P^5MZYM&k1nx{_ zPrktOgsC9c_?U!*IVx{5nL8?l3dkTkFdjP_%AJ>?>h}j{uFcF%MWLZ(``A7$ja%F8pSmztYkVa`af^oyGMnxnl0$f zhF()uTx|3D^|wPgODw(lGEN&R?!b_Z?Rh4e=t&GnoIu|Z_9x+_y4X3&m5+1~<#nqP>eu%er-q2Yh|{5kN0ag~sF**rT$MU^f_!&YwU z$G&lcPRTmB8TPVxP8VQ)gZ>1;BjE2~`Ux+U8gGW4gjThMGmMm?_QG2g$C#Ozat8H-Of&78_ATN;ga&58%W(}vYMg-gf>L}0PR4;u5DYTFCMR>G6K4BF_~B7 z&YpBG&TspNvLYWwDYn8(%~Xz?)%eCsDW>~`y$&6(R>{57U)GkXK5taXdAL<(&Gir0 z>cD=vxhm*!yUmyjnvA7DPIYgrma@Pl}58Y9GG=#gNN%bVA)YJgo z!C47%F;`Fk-9M%`o)`Afa*p-LZtQVt>O*pJyXyo6BLLn~rPOA=YPnqLhQuT}%EaV4 zunOl|Pbt80jDNiY52M~dvY%4XFnMT@i}4&JBcF`7x9>r*2f2UBgoc&1=Vf&!P1S2&s)2D0mk~-#Nt9;hXu6nLQLA-SY@#+Q zMF`1(-U!2r&G-1!m8SHV&`|^#z%&&V5m9|L7hIPh6YmO2cevv5@u^Z;;!B&wZim(3 zJ}}RZw_2E-b`SSJ1q6dBZ$O!%OSK5ZlhGwVYZQ0x7 zFLM1`uZ6WvtNvDuM@!t^5|{cN^gsz`uYZOZ*2lTF6J-YZ!!ZB{(7lTc`^2|@`n%vi zlq6w(YhU^3QA1C)%MU2=oZQ^X*+ly^l->kuqnM2H^~{jTf$H<|a3Td7;19BP0i+?UwS744z<>H|dPQ2`F?z)oPEKXVK`ixva-rbPip0ZF6U==Qi>U3Gch?8@6Qcr(xe=+Z!sKLZPSZ=XIN55)}mt@t0*20jWFfEs#IogF1h*Q9A>rtZA`S2m^Xmx>{*_%mAHgL9$oF6v!Jp%L7{N zKeuOFP*CJPwgK|1d{bL5@ac;fdPz}h_CB=*eWF?^BcNb_LJ+S#-;8#PJq;$p`N-HaZBOS); zyM0ya%wzo~OWm8;ggl_UZ=l6I8|s$0cbW4aNt5)%<_nNQg>wVl0_0Ws;1Ld#buRde zVAF*u1T@s8x@N2~=Mx2adG)O>p_dBZo;ej56`{fz{k+bO%#}v`w~vIRh$hf7Q=83& zZz*vDOh?(q@!x8>%o!(lBx-8teii>6T2+!g&lLOes1Gd@vJ*KdR%25;?6-;KWVQb# zLGaj}l97F3*r}>!%hq!*TaW3!;!#)-38tudsXAvMk}~(`$qjnn z(V{H*&4aTy6im6q{kyB{GLamS1&)R++)r^38JGdyCklL-4RsgevvFfRFfv4Axr*f} z#%@Z4KkoOj#;`X_Eg_iVrSI38SIrMP6+I;me>1zVw2;27JyfRm=ad^;)H=}a_oKR3 zClP#Ne9T$O6pNk-xHjs>-Q z;>6%KGA>-jH}-OB{PntRt_;T%yQN{*RPAP*9_6~3+`7=X)~KldgEPt-Bb=4{JGBYt z4g%lxb972`$3LeeH}1ia)6ub&F3Dmpi&?t2$z?V9>rQEBuTWbjb|T#io!fk_xz=yr zt|xAP9Q<~lCAG%U&{Q+w=$KdUwAy-V;#Xlr`|;E2_hD<@dh_#=`#Vl)^e!)s^dyHJ z=rvQk1(!D^+=i@Q&9c##UuP>3x^sLb5Di8UOxfhghx4 z7L+UkF{)}}#*>-w*x8v?pMqqIlBA7ReUpPQ9~8e`)y}Q*p*-AbC(z9GRnD`F;c{wp z!#9b%W5!}*V68umJRAG4wbEN*Q*ByNT2>ik{1)AA??Ie3I+y!EOO2c0Q|vnvv|;}{ zg-#vR!r9sr?;Xuj9?i-(BaXkiG0)awW917oBp7a}Ra&0;t&CZcmSReq4RVKIQ7SVn zBunoPb@tJHw^%XhL*)Bd|hc%K3I-ZJ90#Qu`Par zwac63AU4WQ4rSzg{l$;mt2b*haO)ohYo8FTDCH4DDcQ5 z?Z>2SKs;U3FDk24=knH-ECye{8w3cX2$-A}cyTUAe|X9MbP4QZ=Fj<`@oe`|n0DiI zxV0xHIZwqA7!l1ZZySnjG~>TbGDD9$+I+6d-d%0ZRvv%YxUZBf$Ag^4O*BK-5x;o5 zrqIGnn<;XLt~oSU`_tY<{;Tk{-(!+k&HHnSm(WL|^nbJlveB6VjciZ5C7CmS_$cAz z^sLE;V-E^~M-cIO-W+H>y@0M^D9}4eRN?D+ z92Giq6TPsQop)`qj=heHpqg?l<}(UGN)()yU1-cpmM)7o$4^y45|!P&f1kiC8cPs=S?Gb? zJMFh`@XXpe(>W>`hMX%W2~u;b*;z|jkcTYN6qHHhM(lpjK7x1(0kO&*e-NM^%j<~e zF7L)B*FbuO4@u=*{zQWa_Jt+J>YH`{zGl?4yf?t$-Tl5Oj^1`z?i9}=+vD6~H}zWi z>RcSA&RF+p458GVt60@7!c>&07W3-v)NASh1Xua!| zPFfcNwMP>#BEG{DO7^3=k+i0<`@O2=h;yYjkg99qX@$0w*2<1ft8O+4|brcxK-k3e&%p zsZ)=8CM5|Z#r+xK#qSBYC7Vvn;x{5SCNor*@IEF9J)%^YXH|Tt&y9&VSP|lNjrM)V zVT~+pV#~O?5k)qEaCg&BE!*ji73#6`ns>t&h|^nYxHl&-dOGQSw*vjH`(Gyfwav-`jbZjp>yUn_X-vw2wo)n)JpR zxP*N}%=g;i{=;eEtEqGTB@gMX(5qpiDy6kdi#^i!RJnUg+;;B- z)8rCb?O&xX30inrLuN9NT9QMcS;ad)lrh^7^i@I^d}dF24&C6 zkE>d14rnRTmou{`%OwYu1FiSZOD_jBm<=X*`m_Pm#_QF4X5!eCMrrmTwhMU$cD`rF z-BZ{V1CA;CG`W+jjtpEROus+lR5{zXBz9FrD_fc}zitmw6Yp+%$kpe+f5p^c&vevw z=Z=|FGL zc!Dnd=3j~08qYG?CsbeFFwa%qqg^^aoLue44H)R{e6b%UYf(yW!ZVV+(U;*g_rujb z7DBOF%-@>6TzIHd(jU!jm`LeyY;z_R=>mvq z!s-_oMF#<&sxnOyJ207xZ1Opz28S2fvR7kQ@Ck=sYtOU0epmY~OWN`K*hP^v)HFRt zpWW5gXk=fdr#E9gG>BlFeQ~iylFs*Q_jD2t>LsBn2MK3!lFM%y-lcy2_yo5^Z+v+C zZa&zJ2LVCFE>pPo^R1+2pikWK_bx55b#6v?o&b`) zJr|o%p9Jr)*s3azOe2$sSJHp@cdNmzoOs9lKW~T-#bLqlvtI1IAf7L$6k&LMv-u#> z*Y_Ff62iIqf2RUMl+zw0%`m(CU(43=5#8d=gSImQnXj~T;;!Cd~PY>>7FDJVQRU=s0Haa>xE7@zJV{k6~*Jwoc9LKYXAM!0g1RO@?4#cmpZru1!SdcG#rc#*NY`hZuGdO@&9?;=XJO?fW2vW4Ni3(MYyC6Fz zC~5wf8^}euV-e8Zp?M8{6B=GYkg*HemC0b9#pV>XTCrialB2^(iP69s_>OS+U9%eE zggSA@K#T{{Wvz}6Fd-NMfsr}TX`wg;(JaNBly&5X4V7Sy|T-FhB?m+=6olx7%(DrHFH;o3(Xx)X1l`g9MnPm|5c0 zAXn^W^9Srl5Q7p7`<4>Ag;i8K;;K@jDsw{~Rs9=}z^B1z=6ulH!`4Ap4qN{h?P!4m zuXi3tGX44m$4MX&k*Q=8cI_vm(jY!wT-*nwv{#hQcxb8|QWkI$m+M(*_)Mapmo%IZ zf_Ou!5Y??)w;(Ejw6;1u9T*!Og>)kAq%ar_dTo}ZT-Kj^;q4GpN9zsZXGi-^C+luW zU%>InQptx=c5sT1<{cSpZ(jpN=KcE@-A^am8>K-epIhjn)N>GFLeYj>U$mxyo_immAn0`;?@-29ME;Z*N#|Gh4!z(X9+Mb`EKdXq%P#;2XOi}{p1`VQ5Kujz>Bf}d`O&=COKIxpD!7D@vn>eqE!a?}? zwwUQv7ejDSwx0ge0wX2_|4M<^eBiwujH(3(pz$(kRLpdzw19;jE)M4pbXs_nmpK4)(jG|eF+&6iMjkjhe~Gj};i*py$61Up+uy(o-DI`u zt5=QH2JzR4@7c@$_l#iR2#3g9L;9=zYdMovwK1xCtUr4M5>r`>SU5O*cI~2AAl`v3 zfCMcCf>Xf|Ljr4u)}kYNmB(r>3nYR}KWd|wqB1H3Mxnm+o% zeOSsZaOj2$D+zXNP*Bj)*9_RnAc}*5qVtVXvqED28Oqz} zkGs`iT7z`%X#aQ*3~uYk%TrTa`kjG+fj5P>^$B(}sO8K|O~)ZBm9f&9a02^c8RhmG z3MNFo!6@6&>zJDRqu-ru0cRHy1cZ}atgWppO@;xtvs z9A`=h3>%|LUgw{bFT*M&P(-gUrkPJB!f`leIDQG+DKW~El9d(S#qvciM z%1!Y0M)TgBfa@Y2{+QuDyVGNz8sF%C+gv|>oIgw)YrSsoxIHE##%-q4r=}z9|u5h+b zW$%7RMns4tJ=IK2*`_qs^d z^zWR;1n-cl+D8$dN<4E8!UhX5-;C3^JlOz?~CB1(F^jl+)-c0 zuRMfa$T>;&a!aw&?(+Y+(h2g0Y;*go>f4C;+kmeBe*B*}UXd)))zt-ONFZq|_;05m z18-aqjbI#`F;?GShL(iI_xx~Y5z-`qunsti9Cj9hoO_{1{2QG3s{iHO1XTzeLfcs# z5&h4Vwl_^>;T=$rScme%2Dl+x?$0c|=Rl5-kdV!KA#V)cKG!wy zB6($lJ+uN73XCv!K3)p)vQ9nx?)J_iU!5Wdp{Dw4nhT;llgy2Er*Kh5NhZA=Vq?bn zm;iDfWl&w}Fx_y!6YZf~i_vp^keeNB#&fJn!M)bcvm$9HvH2pP`u^DU_d(DlB9G*A z>F_When=88Gh0vg(d^urWI6r?VqKq}vn9*PgQ<6F>oUzt!SiKXj3$Eahq8OR(7Om^ zLbk?}?(&f3#7K|}|?-NH0%3tHc!FG5NKF{s62h8mFvVR>)el=)>?8XmUj50i zGD`W|h7GV-NR$-h&a^#2v52Z96L%IlEj5_j!e<4t>{pX|?r)|5vqno!9voj0TdP=7 zQi7vWuV$zphFI{`+Un}`To5x0*e_+Jbi>6{U%!V13RXNTAzGTWzzbx*kA$jAf%ZBdPCTBI6N{fTm+_ z6~}cnB%Vc9+uKKa_C?a_IE$OsPpO%lY+VwWmrP(8j=kERl2@HQmrk6O!z^K4Et|G) zkH1o`#KxhNc%^Lv6A?F(dJ)xw@MaVWa%#JoZ$*4+Of>vjQ6WpZd-rY~+i=M*hYlU; zdql=K#L#>ai6r&TbyxOMQRyn~zyo)EWI^}fXW^5R^n`E_+|!?jUQRb}JDa`zGRpY` zmCQ@Z?L9p~4CgbcuxJug#=V|hFxQrsm%lqgqg;Ov2~ifw%b%!V)aa`g&GKY#6qI?E zo}O-#(sz-Uq#{-{u=B)jS_R4p8o?jsP2~rd+RE~b566w981?hz_+*E8J@D+?tHiT6 z_x(cFbcx85?r(3*4f|vodb~eR>4meundZ;ZFL~TsNyEabtA0C_Se3MgU=h2Iy2`fw zVeVAe+#9k}fxccgdSPK<5Bwt~65YXLT1H(u<-udHpHT^36(~`nAwqMc{#rS;_ znJPRZw8mXQWW%fzW!>~(Wt7s*h^2Cm)O!an`fn(@smo}3Jn_g--J3Ko(=v~|S2?K% zz1tGPkDjk~jjwif4Hr<&&RYB!ylchQXY!<2DuDl6) z_ih}zK*lZ$yx)84pTM9MMnmdB93-fXSZn>~#!&P@1G@R8?V{;RY>Q=xMP+>!Pa&a& z6bEQMj##s%ZMB2O-8M~G>A36XTRyC_l=IZcFM@`P8iHcdu_^e^TUy`B>zS=eh_mAj z*KWYO_lkq9#Hu>Bw%9M7$*=x$;_cG?zuy&FGh%puF1Eip>uT-CVBzGhkko6J+Ol_* zg9I{j&a4f++rUqy5B zj+gT-99*t<%PTrOWf0Tom6Bm_02;3PL`FZ3u_;xa42i}>#zF;MzB}pWS|&-&OCpQy z87wj>hRYVIUJR}4j&X85J9%i%)Zj<{CsAkDxgcvOK7hl8=2KHck|y?}>nrVT;*h!& zz!7#9BBuUh`pW>s)@fT{eBcD!Y%z5vd$HlP*76&(Y{ePB8p`9JZN=3TDVjfL*I$%; zt9>FkaMrryM{wH3#mSjbweV`Iu2Xm32iwaz_lVjDDnHIvZjKs~JD*~BJU7|SqUIRi zJrhNN+{ooOG^N)v-Kf8R5xDa;RCV#|1ntrGH)4YV^k2=59ybYwFHhtxKioUK_y@5O znerTJsb$mAOG>@uE-uo|y~nU=)24inJjv__-OZVQ+)Pd#?`f*Z;}-}l>~~_cVJ^2T zs<%7UYZF{Fkhz?wEovB&#&n@R<@t`T6qCx|6em@mlr1h&O;1N957cbF6mIDClzXUi zFgWKC)s}LLjPgh|-{iO4k0)L<#Sij&9eC+uDm(n~QC3!@#FJCv%@=jsE=r8{38<)6 z1%EymGn&gTIrN*t(J@UQ6r7&Aq#J@19lj z+d9efZRri;`C}qZRIHEo+VKW7H3)K4jmlFXud=#8Xq* z{3++`OK$yb*U~Q%9U3jcU$0@ znp2M|vR?UKIt4g9?1bD^hnY1@un3}(kah1W= zVCzMftu9ZK=#K|Gx(-a+hG#)2Sw+UcTXj3vAn880oD)MeD{ub%qd?gk&*rPRPaj5J zDhcgl;^P!XrqxGY;;UoVFaHr?O2uU~w&QgL~C-CF~- znj&5&%Y-hM?CW1BrjqQP=mH*}mF8Vuk{_9`#rT%)Q~t-ok7az!V=5c2iyFy(;H@xD zk4Tj}{8g)&#`ufmY4WhF+wVO($QX{Z9qSSyL5Q&>T1oW?AUqUtXR|Fcz^&F$Wnjat9^d;yrzD+ zNd|iTWPD+Yw>Mg*Qb|e%%w@Q_z2Zz&Oy5U-=ec6fNu8`gf9IS+YpZ55f>jkgaQe`0 zZBjSqi;J?&>Nn-Wg4pz^++-du_|3Fm=92PIiQnj^Xj|k8CB3QTWO*Wqd&=nZA5sqp zsldAZ6kAB5+&ms6_nxpfXf6{bb99l6i+y^qeK$+gRg*HyVY<&%eO&FA4=&nv&^)hy z;ckfrk8a=Z_-cLXtyS4>FMF5Pe3#hGUalb_z3{m@o_{Xme8O-a;Ha>rdAS?kb_}Lw zS+;&;%%yHuALLGxyLX{jcpmAWX?N3ipID&bo79u`$IC+ogM+fXd-&Za;(cG)n1>JY za^`bz)_p8tAJsldFSK~?+^+sMv#8+>Zavb1xzhAo`1(IhpXTjJR7;9VPEKZ8rXjJ> zOcUvpYu&x8#rVwoKR6#a&`%O=x=qQZlLDx5T8!VbG2`bz`}H&R;a?3PnBKgWFfBqH zs4S)c$hhv!4R!H^vGUL^f(F6k*d_kZf&S!4i;jF5NJuzT>RzjVy(GBEsW#i=$77%X z#~Kf(#YB(HA8S+4J&UPzQivDkq^EP$XIVa3bsOzubR7EtN%&1|?NhMZq3~DBn(0Qb zBrTAE{)l;D+03cmFacN^HIEEw zed@3UjHX%i#TL82!l5Q2EF4)3#sU@M!Au5g)v(7!&>e@3nYtv;hv!tHlP}aSI$VjS z^Ua&1QGw720(bXe9d)03tDd_`QOsmPROhOzH zyV?CYPTli!ywjLbTt8n052u}-eW1V~EMwYHS$A8{#VF{(|7kQc@}a+G5f3(KPs#-bEs`lgPUtjdcIDA_nb z9ZgBvUdW)BpYg9T)6mgLw3;kL!7N^avbIUMxdir2KxA{kC=lLq5&^5aH47ao1I@XL zX0hn)Aw;dveD81;RK#;`y~kOZ01U+TGI%HGQoDs7KnIP`lmNK45K7|7jYd=D^|=SI zro7AwFl^8H^D}{|PO6j*5f=3+i)}FA!mSUaMYQlL1pLJTeACdd9=m(pUaB-srxWiE zZko{RIy%vp&b`$vu0sIct*pOnGCl)reC5R(7yKO`iB~>OF!%rRI|5kYj4s$xL6*pYP`CVbDy%U2Pm)2FlO^%ns2Sm!bO`1qh8(owoJ>FDUFuC5Nw z1i=wUwJSP+I>DEM+^$jB+`&DW8AXp|Tq2M2l|OfoJo%2ke!N+Hma3MP7U-K~4#<3U z+P1c~j4k=km@0u~CQHyC+^jBUMxTg@l}55b=>k*CRFe9ZX@T;@pk>p%sU3LY3cPVSb;0*T+h>WL#h-$as-XkZNFg$8 z;SPx3IfjJC!&3SP)MSG3<}aP4tBVW2Wd+}6J`E%_94%N2T#jG2`cCpVl54dVm9dP4qc4ZJ)P9B`Bx5W@cK$ z&>397bjvtF*Z+;Ovo+QP9g}lb0(i&BJRZO~yAVx8eD|49Y+`OCcSEU;8$r}{HtcTO zr_Jl%UzmPPe{$=#Z3YnL+Ri-%uAy1@4DsHc*qlj{`z|O!sl{??9e}d&Z0j5FJ7qZT z>1gl?=sW!j3s5C@0{Mvi#lEg7Z!0GWgf}2{{riXQ;2Hh@qzpBFXfIRY4v4GwQl7_= z-mGisiMV`f2Cq3=-!CMo-M1NeA}P~=`jQ8c)mFT!93?N?$)a!v{;|G=@ZqnGw$)OC z#egsmF`f4~_y7*?!8TcuKIE!TL807NH7hGXQJXhAZf_;jZh;#D4xeeb{t7Gbock0? z0{DiXaOC_*(sm>+v6c|8@h33zngW`GtxxBo$Tp^YjjQQbta~dMkqrlqsw!4Vjv0H3 zebR_>5)eRo#w>Ea5e=dO$0&?qu#_ood}XZ->V>g zX~(cJVCj+&1Y0ScaARGR|A&{|5oLS;ZUedX{CsQd7%x70`jl0rZuFD0`mk-yx9;;} zA=Ib7RlW3F3V6(@VD0ER6d-Pprn{L*oW_4W!Xdd|VaUU8QGLq+5^A&gfVaeyxxMqOq4mPCYMr|9a90sI9jf`*5Nn#2eg> z$18wn!-Ip_@C)K!g2Gee+xYd5bsGtLEa4@4dK`|{&1dJPhdI_b*(~F6gISLvv1$`C zfC2&lMyZ09R^)HnHdk(I{VOLa5%VwK&*&qydymOS|>$c{zf5D@beaU*j1>ra@GcHdalTP{BnL zMZzQciQ3aa^nLle+fudLxYl`Y6H_D&67)3olv&w(u~)8K5oI6}*aqA8BqIiAxVM*S z_9O18oyF7-bZn;vYQLX*xOLwvZBc=P&R?D%Q?IglE$mF*=eUV{@HJKnY~Z+b!C+!3 zC{{N{-lB!CHiHXcNO*FIY?B(mutU$Mo)s3p-$AE?B-X4k)%~X*S)aK-;AqBnh9fk2 z2Q~Kor4!Q;n>H&MG>mjF5zbFKQ%}wVsG)Kfr<6a6UtCQC{T>51(vE{h76U zqU4L<1oaL*PxXOh?!l@$qlI6Lx(r@jGBP)ODM5=7SOa|FBSc+hoA{?(@7pXHlrNDCYWoC%;D5l#<1 z{SXQo4UYzPh~&+A$WY(}yo;b{;uAPX4T?>i$W?y*hj|`7E&pXtM{OTafDnzcu8Kx| zRw+5VQ;<;C)@tWEdyw7yhz_L1nBV80UHo70&|U!nu9B z2HEQfyI{N=4c{2@9xltiK>Y^4fh=(*1Q{&oKM>E5sVHIosk}@#)*RnLdYObl$*3vV z6J0z_n)s+(81WD zvbiWPapup@&-*f8Ho`HXLo_c8>|%ieLfDO=hp~1snBpc*iz>G5RNUusq~PYny$|jW z(cIGbVKMSir*Gw7M??olLNiQmi$J_!rIC1th~T+)H{+z#NN9SH?KX;lC*xP;Y?KB-~ol_p`hcwFi@^P2lM915|KHYgUXA}*;kG&H#G=Vv|k0of2_ zG`y^np8AM%va-@oH_U6UG=6srm?>yO+&+xYPueYL;kZKj_)f|>sjEz`!pQ7A@Ra5=6oL$jC}mQNdv zy9mC?W)y}Lrv33QK`^q2lw7J4N&JjNF|-9a2!KImnCL`+&a`-i3(vp;>U)2G=6qKe zt`J$G4(`nJEE+Q|28OCUb)}E`M6c!N2O7}`YXH$bwG`8qO_-4)Al7?9pkO;q9mlma z(R#aqABN<6i(d`0zkIVA#&iF8-$7^VpKX;W53%WXlF#;NA9rmmV{ANB6T1KX?SqzU z2~85%@IpmIfihAaL5!SyVS$a;As1YVs2Bf3mGm+cp^kK%oCAmzmSvX?Iz!wRZ(w;u z(<-{x0|c!SV)k#K0M_Z|(vkNywoYzIU0ruc@|9+$duJec??`=FFjfc1fWR_|%N-4#Er z^d(P(exns0y+K8&7|Kh8Yzy4{G-6SV+{4UU1vfXJT|z7x!S z&_a|ATtPp^VB6j7CcGrfVmg~$*YKHt13ja30!gEFfyX6#EGm; zCE!tqUJQ=HM)-6>2D0r3zYR84=F@MQ8+e!^zq7e3B zy-w5x7oP5|h42DPUssN-JXEY5C=hIW`CV;|Nr`t`7w~5>jN`SDhVQo*F1Jg~6q^() z%$FAPBa*BpnVr>v#NdK79~8QEKXaaSvu;DfuLL4g_QY5(w1W$KwP-Wegks>uno~y4 z_i2SnM0Ag1HF;KE<9F!oIl=VL*V}@@!*7PbQ=Sa(*e{8lrl>Z;elK$tiI#$H zAAey13R`x6;{a&#G5a#H%v#jGoPX#ov1e=xDZkz5)sBz|aigQfo&{ejBs08A;4t#> zU*q&6SvS>&Lne5pz^e%x0||aM_#dqQFz~s!%gjtn_6pd1f?U(cJdkP4r_uJqp`!># zot_`wn1h}hp^Dkzr79GMo>CpZH3D22C!S3FwNnKg3@_c|PoMUIXj8iGDGeVx1H-MU zJJYz@um?kdPEv8lN+fjykVaBFH&mjJHMeiqTXb0Ch&g@{7he)NDP?74ho#!aYVKQa zA-+%s!^0!mw;9zCnu57r#0@;g_yDpbRJ%XW8=XZjtzBukG-mpNaHrPbt8-e*rP>Hv86twHy zIc78S20CUn#PCC!xY=5_KE5O6FruDSyQ2eE`ZJdIKmgv{JD$Aqp6whW5($SqU5KQu-*X(8H}r>aNJ)=VfoWs`q-9)IydSEp~a%RSJcK0r}f*r`q zO5(seB#=2K`Dl5W98?)&^#-|QRNTY`U)(^wp>Sh<0G|{}UR#?Izvs^xt~?KYg)}af zW>iWNzlSI<`~CbHQ4(WMTSOzVBcNQ9`Ko}_lX<*tB-rB2e1{kI`O_!paR5(#1F1k- zL5HgvCt2Zq;@h`G*dwZ+$4{Sn`c^ChJ-|>dkBL`dPQZiGGBcsrEGmLhq;|Y!aP=#Q z>d7*<+%=2mH13*MTHLssL)8f38UQ?*k%(M{nlJ-uQ50I-T4g~Jz9rBe$h8gK?FAA} z8Fi;T*n3R1q474x6qaEqS%GI5upZ>=9!eJI(<-~ps6@kS^5gU8%PZd* z0;GLwU6D_K;3k$o`!AxqyQ=RX>~c8i@z1QM0%rRq8#w$|@2dAsV*d+AMuk7{5Wu4< zj7qzXNC)ZGu&?&WGe-+7pNK>03)$S{!mKemJDpAJ5wosQY7gb~fX?FFHmm6+c1})tJ!5DgEw=ziMf~sE36A2Ad3j-~3jPo& z)?daUqp|F*XdojaxTg1F1`WT}oz6l6DyfV=4!tT|^Q)>&x?=^WH-1I@NvHMOn9yVlKccXWn8gQ;p65g69b2x%Dv3#}BInsK`4nx6k?#!VM0@p-|TPn&U=_W*o z=&I2Rn`34NnhSoLnUUh*s;^(Wy90dzFXmNLocp*VnK(+U5rYHL!G7jO8+5gbO&&ID zabvnmUH^FB5b$|@VrSs9ZX_iEZ^6bS2A|>=x!376PVl-Qr3L*Cy6><*`8S|ZJqTI| zHf`DERo_yy>Cb&jW%T8u(1B%i2$+}EKX8o+&>N67YZxy;oLY=Ce!fWp zM+{hj2(7g=&g#H__4V{FL%ViBsLAqt1tnLs1ZRkka+218`5@Ob9M|g~TV460 zlK-IJxzYMp{m$pcxnm|hEnD|h;L1yuXL7j0>NTp=I7OF%uK;s0XGpbE=l-u zFd8SX&IKC=@w)y?hI4bhm$ogj?At5q7u5JT^aOeo_W-PzurLvX^YHdQ)U4!5euBX+ z6F46Riyl4NDAxN1ej!xIo^H^6Z&9=TF28ziC3t)@zKfjTzq4ahMR5w>y*rX_EFgQ* zsG|pn3U-NNsHg{8>w<#Zx)!2E=~|pXpa#B&UTs^{s|vtPHb|E8G#8y+rFllWqK+V% zl1b+C&lbcgP~sfiMWmZHmF3_s>WsdOxtk0isq>!|L?WG~kPjg{*AcIR?#F!$=M?5i z#i+;wvI9^YRT(56M6r9f&$I1tWH8ZI0iA_&A|W7(5ME$1^0RMioDfF+HQTxsj|(;! zWQE*BI{SsMiR|q0&`rw>^PaMuOPbrXD+(#(L_|x*O<)R8uo~YzLO+|22rwdD#$pFb z84%ToSs>gQs0@MH2jdIp-srDrMWeWz^~#S(886_nm=3^Ft_hW<5@zoW2tC;y_bg5O zLaw)P2(C#`_c&Zr0LUZL=EyLpy>tjOK~*Nmeoj`+=187|<%?M+SQu$>jM11}lbU?7 zqLBsqS*_}CgT$mKm7j0vHgThduEkjbNOcsZIoXQGsNOho?($ksxsmO&X+@|_+bggM zCypMKcK_{fIv**iY4r|zR8ccFJ+CIUiu}$s9J_(E*4QtL^R0*%!&r%kt)#LsxKiS- zyoH>7yZ_@AF~x{xf&CLw&(ElnkS)co7=H(K8G)`N!sC2Y=k8r}N~_o{c^jeh_?cDu zSLxd=E5G|+xw9QOZ{lxvPp?l#9)j(i8QyCAgD!~@&F&<4cj zN8)5z`3^SMR{XgnBTJwIF>gnZ7;c3j#AxP$e(@W&{kCS~$mr^fk@wbC(9fdy%m8JI z*~rP^!4G#5*a1*`pkoCU6^UpefEUVhrn-w}zkc0{!VJc@(Z8k0c#a-*=T@bZ3zrm2 za>5inBD@`!B}VAQ%Z3qgGwp*F*gVAC;B6q)DiO)7tgIY`Ajube=JEGAa2|kt21Fvu zM1^78+qY~%RoH|)AY`%&;0z54qEqriP^+F391CFgypo7n7A9IZZyF)>6637o(G46u zTK4VR9YhCZ@ZFsmX~lI>1h_J>;FV~#S5LJm5k&}AWBc~)fJL+*VeMEHC&pnyJ2DD% z6{>a(Aoipq+~0m0Y{c3~PK~2DwE8FlYXa`)RxEyOsT@E8_`4z}(K8w}q>Td2L`!l= zA}k#BJCX5DC!|M=aTH@$t;s{(z_8w3UIU;Ou4Sn-m0q|n+A5mL%MG!HaR+!YXkcam zIXm1={}IdT0>0`bDlH%xqT!GLFw|0L(>KF85{(&?V;!i87(XawS-fR91jD?j^2KeMHpY%L}zXZSzK%^gW6FpE(|gYNlFL7b4O(C5kgW$H3)94 z6k3WH7u~AJ1E(GY@7qiME8x`&trHm7sBQ47u^39?sKgRIL{pfsbLeDT`K=k)SKmA9K9&OSN zvE5U5>DJ^f%DN?D?o{T$jo@;}`y4AgUt(O1o=WCskZFnQ@O?cmRr!*89696pYoB_0 z%>qPPnyNPd$>*G^g(zD*!Fl{M<8PMzA<9r;1VU5|7#|V$4d1^{ZsXs1MEZK$CuaZx zlVf8>=H>~Qo{EHB(@fGWTPl4RpSqtG3DBZPwTk*rM*|UqZG#S+Ufeh*`cBhfh@;M> z1H04GugGbgA*FKm$IIR^KvA$tLxy(q7^pC#2gQ$^!1*bj zbif5Msl#9CFwSXB#bXBt2dDBoC$g22^W>2uqVva(^!V5qV4z*fmoHzS%Izg} z==hHklRw2Q{Q6)klGuMd|LfPIzvahR2`=~9-+EGSc@?pa=%;zET`TlakF^+Z=&!e0 zP*QmCLVEzTnl|o6EX)|jCdpc~X8_4!k8~6ecJ&sgcllfMf33y z8Epyz_)>2jL#m>Ocx~j{w}w})V2Z``dAI$G_=1oQ|F(X8K?T7Q@}0ih@*X8n=tX2& zgb6{Rg_ac-t8j3o_zZXo$ZxIU_TlLn9MrpYi^1Rx;3s0L?!?41o`YP8sUY2O>t}QF zA+s1<1Lng)9xgPPfm#s-<(;~uUR;cbNXOI^j;LpiUQ*gna$(dU;2ob5s00}^dF&Qu zAPYOGr-%;+FZ<$u}|55(KE1yKJLa*6`F zsyQTe!?_3fk_=CyG%@&KtQw`;f!A(X>zzfAW{On!WfZv7nDIa<$~uPTCJ_+A@PE4hEAM?vPUr>PQvoEkZDA)~1wj|FsFNK^ zh9&5E&wmz~8W-bY72^E-vswJ4h0Zyl{?Cbb0{bKuN=`wce*HR~3S&dOxA$cb>EK(i zhL7mM8_lZhaXJ`{r>qi&PxOvMP^i-ml27!~Ypo3rg)dw%@2vnJ9*W=rq}Av+V&RBW z%YjftefwKHorn~D(Khh5eF1wieyZ47S5<6LIad>CtPr&F@NbG@ zbnctQep9Ux0^0zZ6oWR|KR7)DfkkbQi2_Gq3;Az=^nb@A(zJPVVr3Zm^` zrwWueZQ0`G+ZT5X`5O5cg;Mwa$B&cF>c_CK4;^!#FvIYh-U!4tk8Q?kT}8_+q)=01 zM=hXD1#U-SP!9eEr^+<`S$xx2^@UWd1wrsmU`n7fNyF@3Dl4GN?=cV?ePLf`XXnrm z^bilQ>H5sV&TnQe*ux+oeYozCv$L2ld%)EfunJi4(G`bYymKd(mrN8jXBHPzekNKO z58g$mYCwn2LJ`#;mX&~L9PwxjCTc?cDa0Ihh>q@z9^I_#Etb)0&rjXhwK}s1wy&E5 zYMyT{D42^L9_qC?ph=`bj=$7&VUW(1WZ>Zvu`=kU(OP3uTLD*nthpqEaAas%F~=zo zC1RWk#Ehc9-9>XVm?um=*otLrG!}^7S&SDG4}&y!X8?g=3K0EJU$1P1nHR$No>+*C z4`evK9?s0nXr0&@hpjIf8`PBXH)ZrYp@ZaHuSGM^YewulZM7L!_wC&q8GkUlpk8buh0dnyS8fF{!~&HJ@L?q!s{W-Ceq|uU zMT|KLkkABhKwV#-oheUw9tMC6leUfyhU_RVj0S%D8E>cao0{Jwq)n}H$FN9=h@_?I z+-0$~$IS+=aBXt`_)~+I{ZoU7XB>MAO+7A^(TRy~DB{suRar6Rzx0Ef9)LhB`qOLf zOWq79oV*9(Zn0F{hQ{T4y>h76aLzmu_ctdRq@<+O)!#5_{)mZwr*NX?=Zj8ya6azp zJqmpiqFNLjmYWxl3v;44j`DvmYr}+UL3tUaWNqlKzXs%fW`W^)5v~8nIs_&rPEM20kG%o0GIXL~NXy7zux<3> zpreqJddiAhQFoFQ&r6&8)NBQZD14fKr#W}G?Y z9OMt3J`IYb)w2hX(J(+Wanhd!Hkm1${c}H_b(o%RDW9PKAg0Y!y!X=|RhpP>gfkDq zSoDR&+(Svpr=FgxKZwrzswF$?A#Jw@?wVV&gm%(>-?Vk>#Q1oBU2+UW&ZuI-y0C8^ zADX;tZcYovE9k5v8dNHbviF8i7m?}d7zh@;Z@N51PZ`tAI%$4_5>8fuziI3I!U7^r zo%Af}R@tC&ZL@7ONz}vK++1&OZ=eammidkW0gVJ=B!UCi-9#N1Dd1nPEFm3Olp3?G z&6xzPr|tlofcF59VIf~(5K(lH$cC{T7@;U;(iXa1J9iwbdw0&@+u?_;d^8SC!2;X z6P~sZKf{4+GT!(u!&}?%r>7To&54t{VCCwn3E0e(eflKK26bOFaSe!XG6GRI8OCrN z6&R*Vpj;@-R9_w06e{a#d3<=0@3^x|QAhDjO--MkV5BNA4Y#S(+xuVs5%WxU*)Aqa z33bLW)E-c9K|NGdw8CXP`)%X$3DY6Kstmu$TrfUuHK7IR9hB;IS(e7c;2=QmS@b`_ z2q&u=Jmep$Yqv8NG({bAufQGXgIQ1<92_DivU`yIp0wsGZWB}k`*!R&hFmUdYiq8S zD;P(G7XUqlB0OYFEW@s=g|Tc@d}r~t%EP_v-mwpRGi-0flSCEFjJ5;QEJyK*A`{u( zCxjl_>mQ85@JpPYfQjdDpWMiMC{_#-&ep~Th2-H*gPhqfH8s;9A`1DAKXSQPC*(w8 z`}^;|yVE0QekEq(;eH%2!_U5L$sPAtV@D}A6N&mGs!uTS-WcoC-+VXZ< zaLnI`Pp8PfEW+%R(ZyR{B*5QoHZw4ax#;*M`u(`Z(dT1fmn++9eFL{;Qjbj-TBOI@Q5-#HU4lApWO{X< z{$l`O74rQr`%eFv#Qgu`9~V^)mG?Zh7Vvn8#XGYx`vFp&^KACx#XNR)cBJlRzf!J# z&Y-Kv@dx|h;&QP1Qeowmq6`d(aoag6}kPmuiVhOK+0 zA&6#7Z_KsN1>#@0(cK{ggeB>SC6aFO%i&g6Z*Mx(S~y7*F?j)33yupwsC!RnK8=Zq z!O6(52VgB^!*fu9yXvs2WXK;R-z=WQ4=)PJ{0XS(p_RrwZ0K$=M3VqM0|Hd=4`>>g ziBWX^5TIeZi`&A*0P31c{mWKVT}0WYi1rYtw(ONu{eYBu0Gr6bJnIL?oucZ)2M>_l zp^K`K;Ce~;zfu!Ht|adMFr3j9h#>9<9tE}?d1yz!6Ri}A=B1H5GVs^F!tEIDf!!Df zA_;X~Shjw~YpsLiNHD=9Xz`2#9N=l#Z+u19EaA<}W!xoMAW)?VBvQXJycqF*8F>Nh?5(oAe<>L=VVFAKe+4D>HU0wWNkx37_kBM@z@y3U0H&} zM2Jl&If#5`7Z>k2^iy1jYa_CJaL8LkL_!9K?-p(PS8A;aWp{{_kq_8P<+6upGjdJ)YH;D>{qXdTc3 zAe;x3&^<@T=7v_R6b${inq^@q#sg#G;w2$L^2-q5sZ+{IJ0xK)8u6F7`-2Dr`Cks{ zDHbl@sZ)~>uWoa}I$q3OUNk^=H~K0#m<19gs8trgJRqVGbCEhS$8JD(tb60ej$OMZ z|8RS~UUt_y(-bN?z17H*Z)e(@-gILrcV&)lI?3=cDA?jRVWu-u8->|D4xJ+H99SFt5O!>x>G%ye zvP0d=qphA(gJh6(o|`Oyl_9L4JfyVP!G8B20QXzuFkg7lk*vgeelT^M!#KTRpmrKz zwA|~KoLBz1R7lI4yzR)=YsYdQOXx1Oj|Fjv(K;MQj^vj<^Y&hxh!8}&saki*1^fB> z+ozWo#xHLK*f!^HoKqhrQM0s|Yqq>-9G#E}5$kvfRV79TbJ(ZPf8OI(kBZoC=?hf^ zB!UZyxf#jWFizA)SNwX*S|3>trB4sMD;4YaH>oHWn7m7^eVbf8y)F?Ri)ug!e zn(6n;IP|0DNT9YHXv|ckw3*Hfv7aqc!|*&K7wcP?Ksqy&IlLb~;3A95Uc>WtIo4qd zGg;$H{i9z4Ejm1!U8ya*^nHkv0#Ck=lF7rQ&qRLC>%&*eq>2mrl+sM|RX-QuL2Xd! zXg!9qr<)ki0=?`({T3c*Wb3T%&M#`Gmzt)NI^kno#jSzMN@N0(|4MUOL?@ex|p7hK{#{Mv?JIc zVFfJlX-3eU%0;M-w>>G1NbSM95HKFltOZ$pdZNq`-@Xx*1fGm_AyY&=CjL0Ojko&9 zIGNI~92tGWaQ*;9#sc@jJVk{-KumgtyOApp=Vv+FsaTh45V+y<=g$UNqvyYW-_4>B z+mKQ z_oo@(uBBa0vyt*a%*3R5j&XIUnD63Ls#|F8$6@>2laBn-*;-Y4jrl9@JOiP=3wu;8 z;=f!bL-4L7TT7j80uF_4BF1rXk|%4fFGl;2-dvyJa=W`wotja>Cr+60{17P65Oh{% zDRM#XsNIO;79TciF5jZXUMYK^I(0s52Dg*F71Bn(^rA1(RIsf17Jb=X8&wOXd7nvD zrIg@1Txs}uPpPI;o4+Sgk>Qo{PdB_YI0m_m32#bTn#u-i%`;p|0b^T<cC`iQTwG}MszX6>eFWr|tkhq*PR>%bXk}YP( zYir`lrOm8bnx`EZ4^-p1@sUxx0kthl{LJW%3)CJT_Q#ATc_@w`0O71OBQ!#OTpW=T zXHOaSm)Rhf3+)z5sJ5TK~o>RsjCzBKtJ}XaLQ#!p~ zuN>9{{sc+>t3Tqu_rd=E_@~Z@qOyhSFyBG^!9F~PrgMtPHV0;l~3=M zHBlj<-Muw(3-OB1upthGM-Yw)!lGu^;c-FpeeNUTtx4a;A_Q+Wg?0qs3xOWt{3z)( z!Y*qSI~-s#R&Y2XPMa8;3A`B>-9@ENE;@uoq)k>U$8aQ~9OoSG7F<5%f?lH@g&=1d z=77Sbk9r{mC9Tc!d@~0#bF^JPTBHQ%yl^o?D~m#)S+;Q%7V^D>4r`h8eGLS{dtdCto|F0--&hE_btRt0N%GA%a-F zUHka)<7gpSSzt^>mfZn0*rjXMZJ@Ruc&qKP5DqMb8>t44wn&pAKEM}TNJWK(!1WZl zDlr^=Aqb32YJ-skI_zydv!7~0LG zFCBYwMjil@>-q{H9yVAzKPEP|;!-%*ZJ^ytzZS2WJO-@LgC@&N*>h3eECE})(OxM;CH_6?|$ zMhm{!5X{2Fq+K0rc{XgJ(^5%6W^!vpADMC8qGJFF$&Z)vg8fmHirbs!FFm(9D-s3* zXy=|ix6eq%x8RNcEZiMNh-;68?le)B|8-6OPyZ9?3H){)-FXBu?a9s1%;Q@>&z0YI z?sF!evh9uK_DoYiwnx@YJzsfR5>fgM(<2m8YzvK^djf4^CR}3KlkPNz7b&`0+v+Xf zP#cajeE({tD$wbD;p-EYG5TZOyLTC0=ftkQIjA^lQ0%vTppkyv)YIF<-B4BGcX622 zag=D*xt_`$k)vvK;hzpRbGvZ(+KsqC~{jXr~ad7&?9%jmwloZt5N_;t5* zLXZ?RCHt^v`8&t$_ql#6FNEaZHz~2s|GTBj|GCxn?@#zI*OUK#DgR>O{qG0$?+1mm z@Bh*(;6qbfFpL`O0HQ}N1Yhx3W4+}M$84|oH6-u%kA2@Uwf$Fr`61`r^Nl2Q$ za3onyWjU!6d#H3B$$+kof3AFXEcMQgQfJii%+XN|S55DG(a#*7{ow@?;#zI|*sUVI zdMYkv9qFXz`P+_6cW-$Mx{I;@xw8r(`ZgoYiyKYp zx51mGxG08xU}{>%{lC0?;rMYPPIv>+SFa-xw)hg8!M(N{|As_Nz>;;}*FCQ}e|6#eN>&W(7QrnvG&C#;@s|o{Xc*tn(5`*EfezpK zSmr>FhV~Dd#LE{-4)N=gH#KBdNZWT5eCNisu*h67km9eEFo8IFMC~ktP}Sp&XTNp zkNB6kxD*r=?mw=%ar-vCT4~n({r&y>yy`FY@~Vs(G2lv!2M1DqFR$6z+1)~$Oe=)% zz-yTk9b1pX0AwhxGBs^^YD`M`a`lyxddZTftXig92TguGtV@xn9h25drt~ z!+QI}-459soWY2lpa<}t#IHDC1=)pvd|Y4bT=6;|fKT(VNjz`q@DUXpx%>XHGua%x z>qp79>fMe=D;mMWl#8>p%*;&qCK`V89qh-1Z!xb=Jv{eAU8Yx%m*AlY{4QVj3ivYk zg^SI#;_Gmg>T(yttpb|xy)7<&GW5|$rtcr~gt-^I@h30oh;wAx`N+%f5dCur-ta9o zvAWi%i`)fydzlq=gS|LxUwE}-`jOY|w(a}}212n`D> z)T+xx`=xq~sKdKd@eXdli2db-XSiPLFn1E%cW{8w60!6vjN&WsD+OBcV`ypFCdG?> z8s@-9>RG$^U$Y_H`x(N=M;%0+*vsiyxH(lLSA7Kyt@z`T3)TGIlVHAo-al3+bL}Pa z^*uuDK7ztP8zm)ud?i8b$44_iii-n2Y1!vL8@r)2pOO-&mzyDxN2d4Dm_m&+ z880r*Mhd6@AtEBe$2T@qDb?!?-54vg{_sJ0>e!k~MkIToNz1MKx&;NY) z4L(4`Hz+8`zcw*C`gnU*c!4v8P%?I7BSa7cLH z)SaFs@YpBv*iZHM7n`ZJ_wt|Ri3Y3|uS`@~j}(Y-^Nh$BQ;?F93J5fa_&uPt)O_>i zjg5`XLRSRdV_jzInHx85ERU6`59Pcbudq}pHybq_DcBe-5i_w{|E*P^p^D+)m*_Me zZWA$~M(H^p@F(y)8rql2%F6BS8`jo)wT^oPk7`Ty1$cQUdU|9X#o)1QP1QNiwFR7? z?5%0Eg@lNVPAw}1c7|o1Uz}}Sy^fuym}w_2-Vw_tV6!!)d$g(Pb^GB|y{pePLsj+} z2cLQ38uv^7E7zGBtXQ<)$kKco*{E@|8ULxs|5yScFOuk+I_$&_@r4xu| z=jH~Ig?-4yE+#5J)K&Y%OS>MbMv;qQn{rD?OULrNo)$K2Mqb{|Q7L49*K{o8bxQ)7 z^E!9Ie;rnp)b04)K!yxIa!}Lp>gHt4NRe)P2)UTWbUhM2#lXOTgoK2hogMXXU^%lD zGxd~q&F%LV5%fw~@3&_fhjLXajQW~JMpOt!3N&lvlK8o-7sK7`HYcid+p#6O%*@Se zY*zlv&!^cjCJ^yCDP3GOov19T#Vf8^r;j__oIGpB5ug#o)a$V?+11W0Dk?fu`Qz>F zeRg!_e&NV*kexK0s8#2rlCM^0fEa@nk6c&H*RDBiCtx!cs6)$PHyr_Be{7l>Jq;(QGu)9Fd$up9`Wj(A&eVtLW`X?e^ezcgB z)nrhw*&8d?iRG+$p5?xt6VYNokr zxDeiRCMF`9-=AL}Em>8(deyThfoF8=0SUK_co>z8)6wR^Qj%CddLVhMHRVm_`O=Pw z35|iypE1*2F@2vf_F#1^jEzrPAJ*xeFZCuxh3n0C%(|a{ct7*wN{L}Fl-58O;p3Z8 zp%3Kz3D_h9Lz%SeU*{@I1jJ_`_j&~q6BDJP81uF2s$V|q?Ci9%cy#aHJpux5>&2fE zVN`I7qB8W@#N4GH=Gx$iO2zkmd*NwWe?rC0t+uLCpg|juDVxA;_WK#^B19aA{n~K8 zWCR_l`}y+~OjMx;IvuPM3%KcQ&lFN-g}E?J4#TIp9t;VdV8!#E#LYJQXg0XHZqGbf z%^>2kny7WOM#Qr1s-HIFOeb-ENHHC;@WCNftvU2bmx@}SZqU}0p%xos_L+9AczIzh zcUFg7t=XzSTggPMV3%4gv}mggqFmzI}lsGStP1O!A}xlgAgjybcsT5Y$Xb`Z7D=y_eU+NLv( z!?H7!Qd2{NV(e9ae{c~0X_m=Q4(rLr5AnVA_yD5vde_#(~0+DPG>=e8FL z4XH7Z6tYa{4Kj?T^ z{qf_A3d`xxTEP-psIhvfi~RxFu?=BiCU_)5WS$S6sSme-H@kUy|c|?^8&+rOT9Sw%r<{oeEIp~q{3;QsKWre z+;S)P^z^ixuFv1Z#ly>wF;Dk>l-}0WCAnw%SgtpLr;zKb-sf1Woj_vRGuo!0ijL=_nhuh53!u=uV@y-NWE)UuDF|x z?GOA)Zgz34;N<*GZ|Ud4g50Q>_V)216>ysvA6IXq#SaK&_ngb#sIgre&UsD05gQ%- z2&3ap3~!$-vsVm@VTa{lwXFaFK0b6_VY-pLlNWAMF#C?y3L7+PAEEYS=D5_^CsA_p zWam$0!vBlihaFFI3cXFFhZg2bVe~HtuJrX<-uH^b{kKv6~P^*prE)MMugZCN@Zkp!zh>6XOjcGAVP1pP$GMOAkwDn74S{fN;sk*$>nqz7>PeEg1 zx(8!5{nqW<0~fYs>?~DR<*iH6yjJZsecr zW%fku?#9xMemxB0_Q`>QyGJd{>2|(ctS^N?>>aMmg+xbZ&A2u-5uu^YAj8AMZJ;QE zsbQapIWpBDgS?>XdF?kflK5Q@*GI{znGJgrHH-CDUZ=5C$XE za;$XaaDxXfZgBIZoLr$|rYvfdyPbcoy+)e!6#7x{rM3IT$x=^(K$yR<1m93K5di_6 zs^{*5e2pqAn4_U3;#@Q|;u76D;iX>pqnNZAnVxcTzCrhc5h$(?;N&Vg`urVvD=Z0a zQU6D%{lb(FyMmD2EZBeUXABE`oI;`Da}JIm=w$m8>WpWfIG)^Nln=RFgod>fr46gq zkYtBUmzrHIj68p6tgHA+acgcawKgrk18ho_S#Ai!FpJY^Wb zhOpaS`ff)Exv#H8PmgWd`r;zp2V);>VoDj8?uL`U`{Ti*N5^wP0{o_?B?gGq;r!eg ztT06+rBr>Gna;&I#!|0O2S*v;w}V5i%|Cw_)W=JWS!|YnogNU9@Spo6C%+3I7?P3M z>$qea+$7oM0&Zl~Fy<<;$ZswHWc@HoGBF)@=t{oTIp_wi~26cnSQdUxbg zpgyGhF5m4oxP7VXYBMA}p<8TCoHPhra4LNh{0K8Kl2&nXdzM_KQ0uAupM}Ua*z$Y^ z1{uUWcIU{W>C5xI<@wHOBTGaWboOOeJO$FaWv5tkqezmz1HEwLO@92%KTc*k~#ES)t`bz6L&r?QO58*7MJde*Y?S*wN`C+-oOw=QUjWc=h@X&hQH6%v7Vk6hMcr zs~Lb0Hb>_&9i0I6M@PTe7^gLxtQL9t2p>O?giq3~|KMAJPgX6ydB6CJriTa0g*lkU z;iWv+kJd)EI*G%=!U)qPRHj*FswH)G=L+jj=`_>hxw=kL(e>UeGBB^s_KCUaE(jdm zB^QOcDsdtBdvp|$z*7T_q1bkN<^}H9!Nz#+)KtBGcMy;LW_)n)_Q}%Z($5&Af*3xR z)#r+%E=s9LNwVLWa$C@dGEBEyAMz0scb{)Jj}RQP9xc zj%R%&4{c$@OxD=9x3)@*PEH~{arlFqwB3=E)9Q4_dj$)^?q0X>?rVPkFemDGJ|89* zp0@PfkuwvP~&#EBdVh z@(x}+C;PJtr4q|(d@kB-^th%AMxI2%)Uc9UVztD@&CA2_m@&2z16O(h6IGtLa9*JR z3MFXW!&BWqf3Cx`6d!Sfk>44#Xv~b&&-))OAc1vd?9rn~04){V?!%mydiU;KjU6&4 zZL&4b^-K`V?PSzadsgZ2FWgI5R4e`o&yx=H1$=kpK~x%H zMn;C~*&!l!rEPzOg<>*GqiQ#TUS+J*I0_c}sk%$QCP%DqqDH#hREoK=Y!W}RsVzpN zKcFvFtlKzro^x!)JGg`@J6xt;ur76$(CX}PL)y%nI$yO!lmwtMZG*?|I5mdjDKtU) zU;2xSi@QroWV$BBS}>@U z9;XIP4Ckq87HCvuWo128FIUQ2POHV+#W;hfKp}Rl9Sg*^YhZi({Q{QaKmee{3X>tp z`d;_qk4jxs#@pV^*e5u;Fe~5zG1VTn^z}V|_G}w~l&n2jlF_w%x($Y3)vQ zit1GWOhr1agG`5jPZ;H(FXaigcP1%za?Z=;o_|CXHxQr|Gob2ND>l}mBPt-&0^|xB z)u5;m8wrlpkwO8};R>kwfs-`kuVmqH4mnv)z@!{5$L}RxD;H`_ril1OK2?WX zDt_sU3&aoCrM4=2G1ewk*asWvjI%P!=>8&eAZQrBe!Y_5NUWWH#|=fIAH%FKBqYQt z6>PvpEgS#4%ya~r`ru`E+GDvOQh@@!D^SOvBq)^D|BlL>uqAU2_7}b=4gG-TfN>3A zj~)jssn)q>swgQUNuWY1$^uF<(nj~xhG`)`_+AgFFGE@KsQ`SQKYtGN5a3TIK;?P= z*3M4j#!ncQ?{ZG!v>I8-flwTrV?x#S{OP{6zcP^dezplpyCzcfmdMxpE0Z-9=(Ucg zr}3F+4#wxRfVa{+kM>{&glw%oWYnNp+LlyKk>D^uoGSNYozx@EGYBQe?gW0tqsPR= z)T**d7yO70BE<>py(9s52Zu@*eEPVl3Dvryq8*ND7sZs9zA|y_+4eZDbffcYYxIb; z4;f5sCcrr?Etv}UfrvW0Nu2~y1D+xtTxq~Q9PzcUsx?|xnLgB8oP$7Kr zqbo_(g5}yw`akc{(6;FY{mGv^dBOihOhklM)zhweXVg%0+O0Y{4KWjJFDmQpgGE?w zzcmF?h;$PFWN&Zpz`#IbV=`brOB+lds=44Bx-0$Za_qrf98nfD#+UDY#g*z+^^r?_O@&MO3iZi!ogG-KBj1%Db6tn$?ZwI#+-hfhJZc+mkxK z19NkWck*}X3bh0W|3&4=d}mmV?U_b@06_bl-Pnv;a$M3YJdyG;_~b;1}Y9efgr z)Ik&oXULFE7%M0!aC38m`s)xs%aDo7IKw%p)3>nD%2CS3=}#MP`R_&IGrOMdXAY}~ zr`DR@y?b}}4bXPbmabu9+AjZU>^9BWwafNHmz*HiZq69DIoZ{hIf0(l6{r2;6>}gc z51F|PTD8Y%5@F#Sg)qge+;|+e-yW=df7c9%kJ8KYI!;gYbKwE$i%W%K61M!X=K>8e z@qTocn#v?`?1-P)SFYAO4Yx`H=SM+-F7*!^V{C{xs^oEy0-ingoYV> z_wT;GzIwj#MA(}yJM3`00cj(ApI%v-WC;-$719PBLGti5bTrV7P&J2eV!h`w-%T}=#53#H3v;UaUerHgba&-_0?2$9&dT3Q;z}zYSK?t8z5pO@-n8D)vkD$ z`FLDK^H~1|dXly)o8T?Sy+!2to< W8G+8$KB2_>ZEDu;z!ifnauiKG^1**tSfYs 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 J(T_Iw{s=zwy6pe} literal 54065 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 From 9ca3737a5efc17a639e14b685ff967ac4ae51cd8 Mon Sep 17 00:00:00 2001 From: Pato Perpetua Date: Fri, 11 Sep 2026 21:51:55 +1000 Subject: [PATCH 08/12] docs(post-kit-editor): prefer CI Linux screenshots for visual baselines Co-authored-by: Cursor --- packages/post-kit-editor/README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/post-kit-editor/README.md b/packages/post-kit-editor/README.md index e0df371..91fefb4 100644 --- a/packages/post-kit-editor/README.md +++ b/packages/post-kit-editor/README.md @@ -248,7 +248,16 @@ diffs. ### Updating baselines -After intentional UI changes: +After intentional UI changes, prefer **CI Linux** screenshots (download the +`editor-visual` artifact `pr/*.png`) so local/WSL font rendering does not +drift the gate: + +```bash +cp /path/to/editor-visual/pr/*.png \ + packages/post-kit-editor/visual-baselines/ +``` + +Or from a local Linux capture after `build-storybook` + `test:visual`: ```bash cp packages/post-kit-editor/test-results/visual/pr/*.png \ From a9e728c72777de03328b1ec660eac0abdc6a3bcf Mon Sep 17 00:00:00 2001 From: Pato Perpetua Date: Fri, 11 Sep 2026 23:42:01 +1000 Subject: [PATCH 09/12] feat(post-kit-editor): comprehensive Admin Email Builder Storybook suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make Storybook the canonical environment for PostKit’s EmailBuilder.js integration: typed fixtures, block/layout/template/state stories, play tests for add/save flows, and refreshed visual baselines (#144). Co-authored-by: Cursor --- packages/post-kit-editor/.storybook/main.ts | 2 +- .../post-kit-editor/.storybook/preview.ts | 20 + packages/post-kit-editor/README.md | 40 +- packages/post-kit-editor/package.json | 3 + .../src/admin/EmailTemplateAdmin.spec.tsx | 50 +- .../src/admin/EmailTemplateAdmin.tsx | 117 +++- .../EmailBuilder/Blocks/Avatar.stories.tsx | 18 + .../EmailBuilder/Blocks/Button.stories.tsx | 22 + .../EmailBuilder/Blocks/Columns.stories.tsx | 18 + .../EmailBuilder/Blocks/Container.stories.tsx | 18 + .../EmailBuilder/Blocks/Divider.stories.tsx | 18 + .../EmailBuilder/Blocks/Heading.stories.tsx | 22 + .../EmailBuilder/Blocks/Html.stories.tsx | 18 + .../EmailBuilder/Blocks/Image.stories.tsx | 18 + .../EmailBuilder/Blocks/Spacer.stories.tsx | 18 + .../EmailBuilder/Blocks/Text.stories.tsx | 22 + .../EmailBuilder/Blocks/_CanvasStory.tsx | 9 + .../EmailBuilder/Interactions.stories.tsx | 86 +++ .../Admin/EmailBuilder/Layout.stories.tsx | 41 ++ .../Admin/EmailBuilder/Overview.stories.tsx | 53 ++ .../Admin/EmailBuilder/Responsive.stories.tsx | 43 ++ .../Admin/EmailBuilder/States.stories.tsx | 141 +++++ .../Admin/EmailBuilder/Templates.stories.tsx | 85 +++ .../stories/EmailBuilderCanvas.stories.tsx | 41 -- .../stories/EmailTemplateAdmin.stories.tsx | 71 --- .../stories/EmailTemplateEditor.stories.tsx | 72 --- .../stories/MetadataAndVariables.stories.tsx | 52 -- .../stories/Preview.stories.tsx | 59 --- .../stories/SaveSendBar.stories.tsx | 97 ---- packages/post-kit-editor/stories/fixtures.ts | 19 - .../stories/fixtures/documents.ts | 416 +++++++++++++++ .../post-kit-editor/stories/fixtures/index.ts | 15 + .../post-kit-editor/stories/fixtures/mocks.ts | 61 +++ .../stories/fixtures/template-sources.ts | 115 ++++ packages/post-kit-editor/tests/visual.mjs | 6 +- ...il-builder-blocks-text-default-desktop.png | Bin 0 -> 45265 bytes ...il-builder-overview-full-admin-desktop.png | Bin 0 -> 99953 bytes ...ilder-templates-welcome-editor-desktop.png | Bin 0 -> 96293 bytes ...-emailtemplateadmin-full-admin-desktop.png | Bin 53077 -> 0 bytes ...or-emailbuildercanvas-editable-desktop.png | Bin 44409 -> 0 bytes ...mailtemplateeditor-full-editor-desktop.png | Bin 52525 -> 0 bytes pnpm-lock.yaml | 498 +++++++++++++++++- 42 files changed, 1965 insertions(+), 439 deletions(-) create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Avatar.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Button.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Columns.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Container.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Divider.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Heading.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Html.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Image.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Spacer.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Text.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/_CanvasStory.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Interactions.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Layout.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Overview.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Responsive.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/States.stories.tsx create mode 100644 packages/post-kit-editor/stories/Admin/EmailBuilder/Templates.stories.tsx delete mode 100644 packages/post-kit-editor/stories/EmailBuilderCanvas.stories.tsx delete mode 100644 packages/post-kit-editor/stories/EmailTemplateAdmin.stories.tsx delete mode 100644 packages/post-kit-editor/stories/EmailTemplateEditor.stories.tsx delete mode 100644 packages/post-kit-editor/stories/MetadataAndVariables.stories.tsx delete mode 100644 packages/post-kit-editor/stories/Preview.stories.tsx delete mode 100644 packages/post-kit-editor/stories/SaveSendBar.stories.tsx delete mode 100644 packages/post-kit-editor/stories/fixtures.ts create mode 100644 packages/post-kit-editor/stories/fixtures/documents.ts create mode 100644 packages/post-kit-editor/stories/fixtures/index.ts create mode 100644 packages/post-kit-editor/stories/fixtures/mocks.ts create mode 100644 packages/post-kit-editor/stories/fixtures/template-sources.ts create mode 100644 packages/post-kit-editor/visual-baselines/admin-email-builder-blocks-text-default-desktop.png create mode 100644 packages/post-kit-editor/visual-baselines/admin-email-builder-overview-full-admin-desktop.png create mode 100644 packages/post-kit-editor/visual-baselines/admin-email-builder-templates-welcome-editor-desktop.png delete mode 100644 packages/post-kit-editor/visual-baselines/admin-emailtemplateadmin-full-admin-desktop.png delete mode 100644 packages/post-kit-editor/visual-baselines/editor-emailbuildercanvas-editable-desktop.png delete mode 100644 packages/post-kit-editor/visual-baselines/editor-emailtemplateeditor-full-editor-desktop.png diff --git a/packages/post-kit-editor/.storybook/main.ts b/packages/post-kit-editor/.storybook/main.ts index b8a14a7..4db325e 100644 --- a/packages/post-kit-editor/.storybook/main.ts +++ b/packages/post-kit-editor/.storybook/main.ts @@ -11,7 +11,7 @@ const packagesRoot = join(packageRoot, '..'); */ const config: StorybookConfig = { stories: ['../stories/**/*.stories.@(ts|tsx)'], - addons: [], + addons: ['@storybook/addon-essentials', '@storybook/addon-interactions'], framework: { name: '@storybook/react-vite', options: {}, diff --git a/packages/post-kit-editor/.storybook/preview.ts b/packages/post-kit-editor/.storybook/preview.ts index 79fbc49..77df82c 100644 --- a/packages/post-kit-editor/.storybook/preview.ts +++ b/packages/post-kit-editor/.storybook/preview.ts @@ -18,6 +18,26 @@ const preview: Preview = { { name: 'white', value: '#ffffff' }, ], }, + viewport: { + viewports: { + desktop: { + name: 'Desktop', + styles: { width: '1440px', height: '900px' }, + type: 'desktop', + }, + narrow: { + name: 'Narrow', + styles: { width: '900px', height: '800px' }, + type: 'desktop', + }, + mobile: { + name: 'Mobile', + styles: { width: '390px', height: '844px' }, + type: 'mobile', + }, + }, + defaultViewport: 'desktop', + }, }, }; diff --git a/packages/post-kit-editor/README.md b/packages/post-kit-editor/README.md index 91fefb4..7e129d9 100644 --- a/packages/post-kit-editor/README.md +++ b/packages/post-kit-editor/README.md @@ -199,11 +199,10 @@ markup. ## Storybook (local visual exploration) -Package-local Storybook (Vite + React) for clicking through the canvas, -metadata, variable catalogue, preview pane, and save/send-test chrome with -**synthetic fixtures only**. It is not a substitute for -[`examples/minimal/`](./examples/minimal/) (canonical consumer sample) or for -the SSR unit tests above. +Package-local Storybook 8.6 (Vite + React + interactions) for the Admin Email +Builder with **synthetic fixtures only** (no network image URLs — fixtures use +`data:image/svg+xml` URIs). It is not a substitute for +[`examples/minimal/`](./examples/minimal/) or for the SSR unit tests above. ```bash # from the monorepo root @@ -211,15 +210,24 @@ pnpm --filter @singleton-sd/post-kit-editor storybook ``` Opens on http://localhost:6006. Stories live under `stories/` with config in -`.storybook/`. Both are outside the published `files` / `dist` surface (along -with `examples/`). Prefer **Admin / EmailTemplateAdmin** for full-page review; -`EmailTemplateEditor` stories use Storybook-only layout CSS so the PostKit -sidebar sits beside the canvas (the published package still ships class names -without a required stylesheet). +`.storybook/`. Both are outside the published `files` / `dist` surface. -Most stories use the public API (`EmailTemplateEditor`, `EmailBuilderCanvas`). -Isolated panel stories import private modules from `src/` and document that -they are **dev-only** — do not treat those paths as a supported public API. +Hierarchy (titles): + +| Group | Focus | +| --- | --- | +| **Admin/Email Builder/Overview** | Empty catalog entry, full welcome catalog | +| **Admin/Email Builder/Blocks/\*** | Per-block `EmailBuilderCanvas` (Text, Heading, Button, Image, Avatar, Divider, Spacer, Container, Columns, Html) | +| **Admin/Email Builder/Layout** | Typography, colours, nested containers, columns, long content | +| **Admin/Email Builder/Templates** | Welcome, OTP, password reset, transactional, receipt, report | +| **Admin/Email Builder/States** | Loading, load error, saving/saved/save error, invalid document, unsaved | +| **Admin/Email Builder/Interactions** | Play functions (`@storybook/test`) for samples + Save success/failure | +| **Admin/Email Builder/Responsive** | Desktop / mobile viewport parameters | + +Reusable fixtures: `stories/fixtures/` (`documents`, `template-sources`, `mocks`). +Shell layout CSS: `stories/storybook-shell.css` (sidebar/canvas grid). Prefer +**Overview / Templates** for full-page Admin review; block stories mount +`EmailBuilderCanvas` fullscreen. ## Visual review (Playwright + Storybook) @@ -230,9 +238,9 @@ unless `VISUAL_ACCEPTED=1` (or the PR has label `visual-accepted`). Stories (desktop 1440×900): -- `admin-emailtemplateadmin--full-admin` -- `editor-emailbuildercanvas--editable` -- `editor-emailtemplateeditor--full-editor` +- `admin-email-builder-overview--full-admin` +- `admin-email-builder-blocks-text--default` +- `admin-email-builder-templates--welcome-editor` ```bash # from the monorepo root diff --git a/packages/post-kit-editor/package.json b/packages/post-kit-editor/package.json index 93d1dd7..6d2d085 100644 --- a/packages/post-kit-editor/package.json +++ b/packages/post-kit-editor/package.json @@ -75,9 +75,12 @@ "react-dom": "^18.3.1" }, "devDependencies": { + "@storybook/addon-essentials": "8.6.14", + "@storybook/addon-interactions": "8.6.14", "@storybook/blocks": "8.6.14", "@storybook/react": "8.6.14", "@storybook/react-vite": "8.6.14", + "@storybook/test": "8.6.14", "@types/node": "^20.17.9", "@types/react": "^18.3.31", "@types/react-dom": "^18.3.7", diff --git a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.spec.tsx b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.spec.tsx index 6cf57dc..93c33e8 100644 --- a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.spec.tsx +++ b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.spec.tsx @@ -53,10 +53,58 @@ describe('EmailTemplateAdmin', () => { assert.match(withSend, /Send.test/i); }); - it('throws when templates is empty', () => { + it('throws when templates is empty and not loading/loadError', () => { assert.throws( () => renderToStaticMarkup( undefined} />), /at least one template/, ); }); + + it('allows empty catalog while loading and renders loading shell', () => { + const html = renderToStaticMarkup( + undefined} />, + ); + assert.match(html, new RegExp(`data-testid="${ADMIN_CLASS_PREFIX}root"`)); + assert.match(html, /pk-editor-loading/); + assert.doesNotMatch(html, new RegExp(`data-testid="${ADMIN_CLASS_PREFIX}template-select"`)); + }); + + it('allows empty catalog with loadError and renders error shell', () => { + const html = renderToStaticMarkup( + undefined} + />, + ); + assert.match(html, new RegExp(`data-testid="${ADMIN_CLASS_PREFIX}root"`)); + assert.match(html, /Synthetic catalog fetch failure/); + }); + + it('throws on duplicate metadata.key when not loading', () => { + const dup = loadTemplateSource({ + templateJson: minimalTemplate, + metadata: { ...minimalMetadata, key: nested.metadata.key }, + previewData: minimalPreview, + }); + assert.throws( + () => + renderToStaticMarkup( + undefined} />, + ), + /duplicate metadata\.key/, + ); + }); + + it('skips duplicate-key check while loading', () => { + const dup = loadTemplateSource({ + templateJson: minimalTemplate, + metadata: { ...minimalMetadata, key: nested.metadata.key }, + previewData: minimalPreview, + }); + const html = renderToStaticMarkup( + undefined} />, + ); + assert.match(html, /pk-editor-loading/); + }); }); diff --git a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx index b653c6e..963fad4 100644 --- a/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx +++ b/packages/post-kit-editor/src/admin/EmailTemplateAdmin.tsx @@ -19,18 +19,43 @@ import { type EmailTemplateEditorProps, } from '../email-template-editor'; import theme from '../email-builder-ui/theme'; +import { loadTemplateSource } from '../serialization'; import type { TemplateSourceFiles, TemplateVariable } from '../types'; import { reconcileSelectedKey } from './reconcile-selected-key'; export const ADMIN_CLASS_PREFIX = 'pk-admin-'; +/** Synthetic placeholder used only while catalog is empty under loading/loadError. */ +const EMPTY_CATALOG_PLACEHOLDER: TemplateSourceFiles = loadTemplateSource({ + templateJson: { + root: { + type: 'EmailLayout', + data: { + backdropColor: '#F5F5F5', + canvasColor: '#FFFFFF', + textColor: '#262626', + fontFamily: 'MODERN_SANS', + childrenIds: [], + }, + }, + }, + metadata: { + key: 'admin.placeholder', + name: 'Loading', + subject: 'Loading', + variables: [], + schemaVersion: '1', + }, + previewData: {}, +}); + export interface EmailTemplateAdminProps extends Omit< EmailTemplateEditorProps, 'template' | 'availableVariables' | 'className' > { /** * Catalog of templates the admin may open (from Git / consumer list API). - * Must contain at least one entry. + * Must contain at least one entry unless `loading` or `loadError` is set. */ templates: TemplateSourceFiles[]; /** @@ -41,6 +66,17 @@ export interface EmailTemplateAdminProps extends Omit< className?: string; } +function assertUniqueCatalogKeys(templates: TemplateSourceFiles[]): void { + const seen = new Set(); + for (const t of templates) { + const key = t.metadata.key; + if (seen.has(key)) { + throw new Error(`EmailTemplateAdmin: duplicate metadata.key "${key}".`); + } + seen.add(key); + } +} + /** * Full-page embeddable admin for PostKit email templates. * @@ -49,12 +85,89 @@ export interface EmailTemplateAdminProps extends Omit< * Consumers supply the catalog and persistence callbacks only. */ export function EmailTemplateAdmin(props: EmailTemplateAdminProps): JSX.Element { - const { templates, availableVariables, className, ...editorProps } = props; + const { templates, loading, loadError } = props; + + if (!loading) { + assertUniqueCatalogKeys(templates); + } if (templates.length === 0) { + if (loading || loadError) { + return ; + } throw new Error('EmailTemplateAdmin requires at least one template.'); } + return ; +} + +/** Loading / error shell when the catalog has not arrived yet. */ +function EmailTemplateAdminShell({ + templates: _templates, + availableVariables, + className, + loading, + loadError, + ...editorProps +}: EmailTemplateAdminProps): JSX.Element { + void _templates; + const rootClass = [`${ADMIN_CLASS_PREFIX}root`, className].filter(Boolean).join(' '); + + return ( + + + + + + Email templates + + + + + + + + + ); +} + +function EmailTemplateAdminCatalog(props: EmailTemplateAdminProps): JSX.Element { + const { templates, availableVariables, className, ...editorProps } = props; + const catalogKeys = templates.map((t) => t.metadata.key); const catalogKeysSignature = catalogKeys.join('\0'); const templatesByKey = useMemo(() => { diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Avatar.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Avatar.stories.tsx new file mode 100644 index 0000000..65465bc --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Avatar.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createAvatarBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Avatar', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Button.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Button.stories.tsx new file mode 100644 index 0000000..7548262 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Button.stories.tsx @@ -0,0 +1,22 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createButtonBlockDocument, createConfiguredButtonDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Button', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; + +export const Configured: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Columns.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Columns.stories.tsx new file mode 100644 index 0000000..07973ee --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Columns.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createColumnsBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Columns', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Container.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Container.stories.tsx new file mode 100644 index 0000000..d188746 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Container.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createContainerBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Container', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Divider.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Divider.stories.tsx new file mode 100644 index 0000000..c641a7b --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Divider.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createDividerBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Divider', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Heading.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Heading.stories.tsx new file mode 100644 index 0000000..6cdb5d9 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Heading.stories.tsx @@ -0,0 +1,22 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createConfiguredHeadingDocument, createHeadingBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Heading', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; + +export const Configured: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Html.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Html.stories.tsx new file mode 100644 index 0000000..37f3a3d --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Html.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createHtmlBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Html', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Image.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Image.stories.tsx new file mode 100644 index 0000000..0d57f22 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Image.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createImageBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Image', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Spacer.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Spacer.stories.tsx new file mode 100644 index 0000000..3903ac0 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Spacer.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createSpacerBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Spacer', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Text.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Text.stories.tsx new file mode 100644 index 0000000..207112e --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/Text.stories.tsx @@ -0,0 +1,22 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../../src'; +import { createConfiguredTextDocument, createTextBlockDocument } from '../../../fixtures'; +import { CanvasStory } from './_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Blocks/Text', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + render: () => , +}; + +export const Configured: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/_CanvasStory.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/_CanvasStory.tsx new file mode 100644 index 0000000..a3d753c --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Blocks/_CanvasStory.tsx @@ -0,0 +1,9 @@ +import React, { useState } from 'react'; + +import { EmailBuilderCanvas, type EmailBuilderDocument } from '../../../../src'; + +/** Stateful canvas wrapper for block-focused stories. */ +export function CanvasStory({ initial }: { initial: EmailBuilderDocument }): JSX.Element { + const [document, setDocument] = useState(initial); + return ; +} diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Interactions.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Interactions.stories.tsx new file mode 100644 index 0000000..2772487 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Interactions.stories.tsx @@ -0,0 +1,86 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, userEvent, within } from '@storybook/test'; + +import { EmailTemplateEditor } from '../../../src'; +import { + createEmptyEmailDocument, + delaySave, + delaySaveFailure, + emptyTemplate, + sampleAvailableVariables, +} from '../../fixtures'; +import { CanvasStory } from './Blocks/_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Interactions', + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** + * Samples drawer opens by default. Play loads “Welcome email” from the Samples + * list (deterministic). Hover-gated add-block menus are intentionally skipped. + */ +export const AddBlock: Story = { + parameters: { + docs: { + description: { + story: + 'Empty canvas → Samples drawer “Welcome email”. Direct add-block controls are hover-only and not exercised here.', + }, + }, + }, + render: () => , + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const welcome = await canvas.findByRole('button', { name: /welcome email/i }); + await step('Load Welcome email sample', async () => { + await userEvent.click(welcome); + }); + await expect(welcome).toBeInTheDocument(); + }, +}; + +export const SaveSuccess: Story = { + render: () => ( + + ), + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const save = await canvas.findByTestId('pk-editor-save'); + await step('Click Save', async () => { + await userEvent.click(save); + }); + await step('Assert success feedback', async () => { + const status = await canvas.findByTestId('pk-editor-save-status'); + await expect(status).toHaveTextContent(/mock save/i); + }); + }, +}; + +export const SaveFailure: Story = { + render: () => ( + + ), + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const save = await canvas.findByTestId('pk-editor-save'); + await step('Click Save', async () => { + await userEvent.click(save); + }); + await step('Assert failure feedback', async () => { + const status = await canvas.findByTestId('pk-editor-save-status'); + await expect(status).toHaveTextContent(/synthetic save failure/i); + }); + }, +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Layout.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Layout.stories.tsx new file mode 100644 index 0000000..10dca5d --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Layout.stories.tsx @@ -0,0 +1,41 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailBuilderCanvas } from '../../../src'; +import { + createColoursLayoutDocument, + createColumnsBlockDocument, + createLongContentDocument, + createNestedContainersDocument, + createTypographyLayoutDocument, +} from '../../fixtures'; +import { CanvasStory } from './Blocks/_CanvasStory'; + +const meta = { + title: 'Admin/Email Builder/Layout', + component: EmailBuilderCanvas, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Typography: Story = { + render: () => , +}; + +export const Colours: Story = { + name: 'Colours', + render: () => , +}; + +export const NestedContainers: Story = { + render: () => , +}; + +export const ColumnsLayout: Story = { + render: () => , +}; + +export const LongContent: Story = { + render: () => , +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Overview.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Overview.stories.tsx new file mode 100644 index 0000000..4a05059 --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Overview.stories.tsx @@ -0,0 +1,53 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailTemplateAdmin } from '../../../src'; +import { + demoCatalog, + emptyTemplate, + mockSave, + mockSendTest, + sampleAvailableVariables, + welcomeTemplate, +} from '../../fixtures'; + +const meta = { + title: 'Admin/Email Builder/Overview', + component: EmailTemplateAdmin, + parameters: { + layout: 'fullscreen', + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Empty: Story = { + args: { + templates: [emptyTemplate], + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, + }, +}; + +export const ExistingWelcome: Story = { + name: 'Existing Welcome', + args: { + templates: demoCatalog, + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, + }, +}; + +/** Alias for visual-baseline story id stability (`--existing-welcome` preferred). */ +export const FullAdmin: Story = { + ...ExistingWelcome, + name: 'Full Admin (visual baseline)', + args: { + templates: [welcomeTemplate, emptyTemplate], + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, + }, +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/Responsive.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/Responsive.stories.tsx new file mode 100644 index 0000000..2793afa --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/Responsive.stories.tsx @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from '@storybook/react'; + +import { EmailTemplateAdmin } from '../../../src'; +import { + mockSave, + mockSendTest, + receiptTemplate, + sampleAvailableVariables, + welcomeTemplate, +} from '../../fixtures'; + +const meta = { + title: 'Admin/Email Builder/Responsive', + component: EmailTemplateAdmin, + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Desktop: Story = { + parameters: { + viewport: { defaultViewport: 'desktop' }, + }, + args: { + templates: [welcomeTemplate], + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, + }, +}; + +export const Mobile: Story = { + parameters: { + viewport: { defaultViewport: 'mobile' }, + }, + args: { + templates: [receiptTemplate], + availableVariables: sampleAvailableVariables, + onSave: mockSave, + onSendTest: mockSendTest, + }, +}; diff --git a/packages/post-kit-editor/stories/Admin/EmailBuilder/States.stories.tsx b/packages/post-kit-editor/stories/Admin/EmailBuilder/States.stories.tsx new file mode 100644 index 0000000..7b4201b --- /dev/null +++ b/packages/post-kit-editor/stories/Admin/EmailBuilder/States.stories.tsx @@ -0,0 +1,141 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import React, { useState } from 'react'; + +import { EmailTemplateAdmin, EmailTemplateEditor } from '../../../src'; +import { + delaySave, + emptyTemplate, + mockSave, + mockSaveFailure, + sampleAvailableVariables, + welcomeTemplate, +} from '../../fixtures'; + +const meta = { + title: 'Admin/Email Builder/States', + parameters: { layout: 'fullscreen' }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Loading: Story = { + render: () => , +}; + +export const LoadError: Story = { + render: () => ( + + ), +}; + +export const Saving: Story = { + parameters: { + docs: { + description: { + story: 'Click Save to see the pending “Saving…” state (1.2s delayed mock).', + }, + }, + }, + render: () => ( + + ), +}; + +export const Saved: Story = { + parameters: { + docs: { + description: { + story: 'Immediate successful save feedback via mockSave — click Save.', + }, + }, + }, + render: () => ( + + ), +}; + +export const SaveError: Story = { + parameters: { + docs: { + description: { + story: 'Click Save to surface synthetic failure feedback.', + }, + }, + }, + render: () => ( + + ), +}; + +export const InvalidDocument: Story = { + parameters: { + docs: { + description: { + story: + 'Admin loadError shell — used when the host cannot parse template source (loadTemplateSource would throw before mount).', + }, + }, + }, + render: () => ( + + ), +}; + +export const ExistingTemplate: Story = { + render: () => ( + + ), +}; + +function UnsavedChangesDemo(): JSX.Element { + const [dirty, setDirty] = useState(false); + return ( +