diff --git a/apps/seven/acceptance/tests/basic.test.ts b/apps/seven/acceptance/tests/basic.test.ts index 4397dc45843..f883ca7ddea 100644 --- a/apps/seven/acceptance/tests/basic.test.ts +++ b/apps/seven/acceptance/tests/basic.test.ts @@ -2,7 +2,7 @@ import { expect, test } from '../../../../packages/tooling/playwright/test'; test.describe('Basic Playwright Test', () => { test('should visit the root URL', async ({ page }) => { - await page.goto('/'); + await page.goto('http://localhost:3000/'); await expect(page).toHaveURL(/\/$/); await expect(page.getByText('Home')).toBeVisible(); }); diff --git a/packages/blocks/Image/Image.module.css b/packages/blocks/Image/Image.module.css new file mode 100644 index 00000000000..77a7c21b7df --- /dev/null +++ b/packages/blocks/Image/Image.module.css @@ -0,0 +1,4 @@ +.block { + max-width: var(--block-size); + float: var(--block-align); +} diff --git a/packages/blocks/Image/ImageBlockEdit.tsx b/packages/blocks/Image/ImageBlockEdit.tsx index 557c537c633..c287c6eefc9 100644 --- a/packages/blocks/Image/ImageBlockEdit.tsx +++ b/packages/blocks/Image/ImageBlockEdit.tsx @@ -8,6 +8,7 @@ import type { } from '@plone/types'; import Image from '@plone/layout/components/Image/Image'; import clsx from 'clsx'; +import styles from './Image.module.css'; import config from '@plone/registry'; function flattenToAppUrl(url: string) { @@ -72,17 +73,13 @@ const ImageBlockEdit = (props: BlockEditProps) => { { center: !Boolean(data.align), }, + styles['block'], data.align, + data.size, )} > {data.url ? ( { const { data } = props; @@ -10,14 +12,23 @@ const ImageBlockView = (props: BlockViewProps) => { image_field: data.image_field, image_scales: data.image_scales, } as ContainedItem; - return ( -
- {(data.alt +
+
+ {(data.alt +
); }; diff --git a/packages/blocks/Image/schema.tsx b/packages/blocks/Image/schema.tsx index b7d5d85dc17..dfac63727fa 100644 --- a/packages/blocks/Image/schema.tsx +++ b/packages/blocks/Image/schema.tsx @@ -61,11 +61,13 @@ export function ImageSchema({ widget: 'align', default: 'center', actions: ['left', 'right', 'center'], + styleField: true, }, size: { title: 'Image size', widget: 'size', default: 'l', + styleField: true, }, href: { title: 'Link to', diff --git a/packages/blocks/index.ts b/packages/blocks/index.ts index 70a98bd9aae..efd1d5b474f 100644 --- a/packages/blocks/index.ts +++ b/packages/blocks/index.ts @@ -43,6 +43,41 @@ export default function install(config: ConfigType) { }, ]; + const alignment = [ + { + name: 'default', + label: 'Default', + style: {}, + }, + { + name: 'left', + label: 'Left', + style: { + '--block-align': 'left', + }, + }, + { + name: 'right', + label: 'Right', + style: { + '--block-align': 'right', + }, + }, + { + name: 'l', + label: 'L', + style: { + '--block-size': '500px', + }, + }, + ]; + + config.registerUtility({ + type: 'styleFieldDefinition', + name: 'align', + method: () => alignment, + }); + config.blocks.blocksConfig.image = ImageBlockInfo as unknown as BlockConfigBase; config.blocks.blocksConfig.teaser =