Skip to content

Commit 2a01d06

Browse files
authored
Merge pull request #3708 from udecode/media
Media
2 parents d191026 + 702ad16 commit 2a01d06

File tree

92 files changed

+4943
-120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+4943
-120
lines changed

.changeset/chilly-peaches-report.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@udecode/plate-ai': patch
3+
---
4+
5+
Missing export

.changeset/rare-zebras-kneel.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@udecode/plate-dnd': patch
3+
---
4+
5+
Add `enableFile` option to check whether to enable the DnD plugin for files dragged in from outside the browser.

.changeset/sour-bananas-arrive.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
'@udecode/plate-media': minor
3+
---
4+
ImagePlugin:
5+
- New `initialHeight` and `initialWidth` in `TImageElement` This will display a loading placeholder while the image is still loading, which helps maintain a consistent height.
6+
- New Api: editor.insert.imageFromFiles
7+
8+
PlaceholderPlugin:
9+
- Mew `placeholderId` Used to track what was converted from that placeholder plugin.
10+
- New `insertMedia` Used for inserting the placeholder at once.
11+
- New `validateFiles` utils for validate the files meet the `mediaConfig`.
12+
- If validation fails,stop insert placeholder and save the error message in uploadErrorMessage.
13+
- New `option.multiple` `maxFileCount` Used to limit the number of placeholders inserted.
14+
- New `option.disable` `disabledDndPlugin` Used to using the browser drop.
15+
- New `error` use `editor.useOption` to watch and display a toast message.

apps/www/public/r/styles/default/ai-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/align-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/basic-elements-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/basic-marks-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/basic-nodes-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/block-menu-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/block-selection-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/column-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/comment-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/copilot-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/date-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/dnd-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/emoji-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/excalidraw-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/floating-toolbar-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/font-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/highlight-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/hr-demo.json

+1-1
Large diffs are not rendered by default.

apps/www/public/r/styles/default/image-element.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
},
2121
"files": [
2222
{
23-
"content": "'use client';\n\nimport React from 'react';\n\nimport { cn, withRef } from '@udecode/cn';\nimport { withHOC } from '@udecode/plate-common/react';\nimport { Image, ImagePlugin, useMediaState } from '@udecode/plate-media/react';\nimport { ResizableProvider, useResizableStore } from '@udecode/plate-resizable';\n\nimport { Caption, CaptionTextarea } from './caption';\nimport { MediaPopover } from './media-popover';\nimport { PlateElement } from './plate-element';\nimport {\n Resizable,\n ResizeHandle,\n mediaResizeHandleVariants,\n} from './resizable';\n\nexport const ImageElement = withHOC(\n ResizableProvider,\n withRef<typeof PlateElement>(\n ({ children, className, nodeProps, ...props }, ref) => {\n const { align = 'center', focused, readOnly, selected } = useMediaState();\n\n const width = useResizableStore().get.width();\n\n return (\n <MediaPopover plugin={ImagePlugin}>\n <PlateElement\n ref={ref}\n className={cn('py-2.5', className)}\n {...props}\n >\n <figure className=\"group relative m-0\" contentEditable={false}>\n <Resizable\n align={align}\n options={{\n align,\n readOnly,\n }}\n >\n <ResizeHandle\n className={mediaResizeHandleVariants({ direction: 'left' })}\n options={{ direction: 'left' }}\n />\n <Image\n className={cn(\n 'block w-full max-w-full cursor-pointer object-cover px-0',\n 'rounded-sm',\n focused && selected && 'ring-2 ring-ring ring-offset-2'\n )}\n alt=\"\"\n {...nodeProps}\n />\n <ResizeHandle\n className={mediaResizeHandleVariants({\n direction: 'right',\n })}\n options={{ direction: 'right' }}\n />\n </Resizable>\n\n <Caption style={{ width }} align={align}>\n <CaptionTextarea\n readOnly={readOnly}\n placeholder=\"Write a caption...\"\n />\n </Caption>\n </figure>\n\n {children}\n </PlateElement>\n </MediaPopover>\n );\n }\n )\n);\n",
23+
"content": "'use client';\n\nimport React from 'react';\n\nimport { cn, withRef } from '@udecode/cn';\nimport { withHOC } from '@udecode/plate-common/react';\nimport { Image, ImagePlugin, useMediaState } from '@udecode/plate-media/react';\nimport { ResizableProvider, useResizableStore } from '@udecode/plate-resizable';\n\nimport { Caption, CaptionTextarea } from './caption';\nimport { MediaPopover } from './media-popover';\nimport { PlateElement } from './plate-element';\nimport {\n Resizable,\n ResizeHandle,\n mediaResizeHandleVariants,\n} from './resizable';\n\nexport const ImageElement = withHOC(\n ResizableProvider,\n withRef<typeof PlateElement>(\n ({ children, className, nodeProps, ...props }, ref) => {\n const { align = 'center', focused, readOnly, selected } = useMediaState();\n\n const width = useResizableStore().get.width();\n\n return (\n <MediaPopover plugin={ImagePlugin}>\n <PlateElement\n ref={ref}\n className={cn('py-2.5', className)}\n {...props}\n >\n <figure className=\"group relative m-0\" contentEditable={false}>\n <Resizable\n align={align}\n options={{\n align,\n readOnly,\n }}\n >\n <ResizeHandle\n className={mediaResizeHandleVariants({ direction: 'left' })}\n options={{ direction: 'left' }}\n />\n <Image\n className={cn(\n 'block w-full max-w-full cursor-pointer object-cover px-0',\n 'rounded-sm',\n focused && selected && 'ring-2 ring-ring ring-offset-2'\n )}\n alt=\"\"\n {...nodeProps}\n />\n <ResizeHandle\n className={mediaResizeHandleVariants({\n direction: 'right',\n })}\n options={{ direction: 'right' }}\n />\n </Resizable>\n\n <Caption style={{ width }} align={align}>\n <CaptionTextarea\n readOnly={readOnly}\n onFocus={(e) => {\n e.preventDefault();\n }}\n placeholder=\"Write a caption...\"\n />\n </Caption>\n </figure>\n\n {children}\n </PlateElement>\n </MediaPopover>\n );\n }\n )\n);\n",
2424
"path": "plate-ui/image-element.tsx",
2525
"target": "components/plate-ui/image-element.tsx",
2626
"type": "registry:ui"

0 commit comments

Comments
 (0)