@yoopta/themes-shadcn 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/embed/elements/embed/embed-element.d.ts +1 -1
- package/dist/embed/elements/embed/embed-element.d.ts.map +1 -1
- package/dist/embed/elements/embed/embed-render.d.ts.map +1 -1
- package/dist/embed/index.d.ts +1 -1
- package/dist/embed.js +2 -2
- package/dist/file/elements/file/file-element.d.ts +1 -1
- package/dist/file/elements/file/file-element.d.ts.map +1 -1
- package/dist/file/index.d.ts +1 -1
- package/dist/file.js +2 -2
- package/dist/image/elements/image/image-element.d.ts +1 -1
- package/dist/image/elements/image/image-element.d.ts.map +1 -1
- package/dist/image/elements/image/image-render.d.ts.map +1 -1
- package/dist/image/index.d.ts +1 -1
- package/dist/image.js +2 -2
- package/dist/index.js +1 -1
- package/dist/steps/elements/steps-list-item.d.ts.map +1 -1
- package/dist/steps.js +1 -1
- package/dist/video/elements/video/video-element.d.ts +1 -1
- package/dist/video/elements/video/video-element.d.ts.map +1 -1
- package/dist/video/elements/video/video-render.d.ts.map +1 -1
- package/dist/video/index.d.ts +1 -1
- package/dist/video.js +2 -2
- package/package.json +13 -13
- package/dist/accordion.js.map +0 -1
- package/dist/blockquote.js.map +0 -1
- package/dist/callout.js.map +0 -1
- package/dist/carousel.js.map +0 -1
- package/dist/chunks/Combination-3c924518.js +0 -1080
- package/dist/chunks/Combination-3c924518.js.map +0 -1
- package/dist/chunks/_tslib-514d60fe.js +0 -67
- package/dist/chunks/_tslib-514d60fe.js.map +0 -1
- package/dist/chunks/arrow-right-5ddace59.js +0 -30
- package/dist/chunks/arrow-right-5ddace59.js.map +0 -1
- package/dist/chunks/button-27a1fbc2.js +0 -76
- package/dist/chunks/button-27a1fbc2.js.map +0 -1
- package/dist/chunks/card-12ed876a.js +0 -38
- package/dist/chunks/card-12ed876a.js.map +0 -1
- package/dist/chunks/check-9acc031a.js +0 -14
- package/dist/chunks/check-9acc031a.js.map +0 -1
- package/dist/chunks/chevron-down-7424d0c3.js +0 -16
- package/dist/chunks/chevron-down-7424d0c3.js.map +0 -1
- package/dist/chunks/chevron-up-546faa64.js +0 -14
- package/dist/chunks/chevron-up-546faa64.js.map +0 -1
- package/dist/chunks/code-5407bf8e.js +0 -17
- package/dist/chunks/code-5407bf8e.js.map +0 -1
- package/dist/chunks/createLucideIcon-6ba35914.js +0 -56
- package/dist/chunks/createLucideIcon-6ba35914.js.map +0 -1
- package/dist/chunks/dropdown-menu-9ba446af.js +0 -1250
- package/dist/chunks/dropdown-menu-9ba446af.js.map +0 -1
- package/dist/chunks/external-link-1bf3c7a2.js +0 -18
- package/dist/chunks/external-link-1bf3c7a2.js.map +0 -1
- package/dist/chunks/file-text-9e348575.js +0 -23
- package/dist/chunks/file-text-9e348575.js.map +0 -1
- package/dist/chunks/hover-card-22a4067b.js +0 -258
- package/dist/chunks/hover-card-22a4067b.js.map +0 -1
- package/dist/chunks/index-0c94b090.js +0 -222
- package/dist/chunks/index-0c94b090.js.map +0 -1
- package/dist/chunks/index-12e7c5fd.js +0 -155
- package/dist/chunks/index-12e7c5fd.js.map +0 -1
- package/dist/chunks/index-26994c9d.js +0 -131
- package/dist/chunks/index-26994c9d.js.map +0 -1
- package/dist/chunks/index-600be8f8.js +0 -190
- package/dist/chunks/index-600be8f8.js.map +0 -1
- package/dist/chunks/index-7e966ec9.js +0 -16
- package/dist/chunks/index-7e966ec9.js.map +0 -1
- package/dist/chunks/index-9ac5afe2.js +0 -201
- package/dist/chunks/index-9ac5afe2.js.map +0 -1
- package/dist/chunks/index-9bb7ddb4.js +0 -104
- package/dist/chunks/index-9bb7ddb4.js.map +0 -1
- package/dist/chunks/index-ae9b48d5.js +0 -12
- package/dist/chunks/index-ae9b48d5.js.map +0 -1
- package/dist/chunks/index-b26053ec.js +0 -3805
- package/dist/chunks/index-b26053ec.js.map +0 -1
- package/dist/chunks/index-b8f2908d.js +0 -40
- package/dist/chunks/index-b8f2908d.js.map +0 -1
- package/dist/chunks/index-c655a86f.js +0 -7
- package/dist/chunks/index-c655a86f.js.map +0 -1
- package/dist/chunks/index-d9171717.js +0 -13
- package/dist/chunks/index-d9171717.js.map +0 -1
- package/dist/chunks/index-e42d0aaf.js +0 -36
- package/dist/chunks/index-e42d0aaf.js.map +0 -1
- package/dist/chunks/index-ebc47eac.js +0 -2765
- package/dist/chunks/index-ebc47eac.js.map +0 -1
- package/dist/chunks/index-ffe23855.js +0 -71
- package/dist/chunks/index-ffe23855.js.map +0 -1
- package/dist/chunks/input-7c5e4260.js +0 -13
- package/dist/chunks/input-7c5e4260.js.map +0 -1
- package/dist/chunks/label-2a076b3f.js +0 -70
- package/dist/chunks/label-2a076b3f.js.map +0 -1
- package/dist/chunks/language-select-b35256ab.js +0 -12
- package/dist/chunks/language-select-b35256ab.js.map +0 -1
- package/dist/chunks/play-c2a06e4e.js +0 -16
- package/dist/chunks/play-c2a06e4e.js.map +0 -1
- package/dist/chunks/plus-f36f52e8.js +0 -17
- package/dist/chunks/plus-f36f52e8.js.map +0 -1
- package/dist/chunks/popover-4b5c0941.js +0 -385
- package/dist/chunks/popover-4b5c0941.js.map +0 -1
- package/dist/chunks/scroll-area-8dc03d8f.js +0 -727
- package/dist/chunks/scroll-area-8dc03d8f.js.map +0 -1
- package/dist/chunks/select-88f1b66c.js +0 -1281
- package/dist/chunks/select-88f1b66c.js.map +0 -1
- package/dist/chunks/separator-a6b3e5d2.js +0 -74
- package/dist/chunks/separator-a6b3e5d2.js.map +0 -1
- package/dist/chunks/settings-2-8e53118c.js +0 -19
- package/dist/chunks/settings-2-8e53118c.js.map +0 -1
- package/dist/chunks/sparkles-a0316be3.js +0 -26
- package/dist/chunks/sparkles-a0316be3.js.map +0 -1
- package/dist/chunks/style-inject.es-746bb8ed.js +0 -29
- package/dist/chunks/style-inject.es-746bb8ed.js.map +0 -1
- package/dist/chunks/tabs-38ee85c4.js +0 -205
- package/dist/chunks/tabs-38ee85c4.js.map +0 -1
- package/dist/chunks/tooltip-eb8a0f63.js +0 -1671
- package/dist/chunks/tooltip-eb8a0f63.js.map +0 -1
- package/dist/chunks/trash-2-41ddec45.js +0 -20
- package/dist/chunks/trash-2-41ddec45.js.map +0 -1
- package/dist/chunks/upload-b987996c.js +0 -44
- package/dist/chunks/upload-b987996c.js.map +0 -1
- package/dist/chunks/utils-208f599b.js +0 -2500
- package/dist/chunks/utils-208f599b.js.map +0 -1
- package/dist/chunks/x-f7edc87d.js +0 -17
- package/dist/chunks/x-f7edc87d.js.map +0 -1
- package/dist/code-group.js.map +0 -1
- package/dist/code.js.map +0 -1
- package/dist/divider.js.map +0 -1
- package/dist/embed.js.map +0 -1
- package/dist/emoji.js.map +0 -1
- package/dist/file.js.map +0 -1
- package/dist/headings.js.map +0 -1
- package/dist/image.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/link.js.map +0 -1
- package/dist/lists.js.map +0 -1
- package/dist/mention.js.map +0 -1
- package/dist/paragraph.js.map +0 -1
- package/dist/steps.js.map +0 -1
- package/dist/table-of-contents.js.map +0 -1
- package/dist/table.js.map +0 -1
- package/dist/tabs.js.map +0 -1
- package/dist/video.js.map +0 -1
package/dist/embed.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sources":["../../../../node_modules/lucide-react/src/icons/map.ts","../../../../node_modules/lucide-react/src/icons/music.ts","../src/embed/elements/embed/embed-placeholder.tsx","../src/embed/elements/embed/embed-inline-toolbar.tsx","../src/embed/elements/embed/embed-render.tsx","../src/embed/elements/embed/embed-element.tsx","../src/embed/index.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Map\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/map\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Map = createLucideIcon('Map', [\n ['polygon', { points: '3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21', key: 'ok2ie8' }],\n ['line', { x1: '9', x2: '9', y1: '3', y2: '18', key: 'w34qz5' }],\n ['line', { x1: '15', x2: '15', y1: '6', y2: '21', key: 'volv9a' }],\n]);\n\nexport default Map;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Music\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/music\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Music = createLucideIcon('Music', [\n ['path', { d: 'M9 18V5l12-2v13', key: '1jmyc2' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['circle', { cx: '18', cy: '16', r: '3', key: '1hluhg' }],\n]);\n\nexport default Music;\n","import { useState } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { detectProvider, getSupportedProviders, isEmbedUrl } from '@yoopta/embed';\nimport { Code, LinkIcon, Map, Music, Play } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Input } from '../../../ui/input';\nimport { cn } from '../../../utils';\n\ntype EmbedPlaceholderProps = {\n onInsertUrl: (url: string) => void;\n className?: string;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n};\n\n// Get provider category icon\nconst getProviderIcon = (type: string) => {\n switch (type) {\n case 'youtube':\n case 'vimeo':\n case 'dailymotion':\n case 'wistia':\n case 'loom':\n return <Play className=\"h-3 w-3\" />;\n case 'spotify':\n case 'soundcloud':\n return <Music className=\"h-3 w-3\" />;\n case 'codepen':\n case 'codesandbox':\n return <Code className=\"h-3 w-3\" />;\n case 'google-maps':\n return <Map className=\"h-3 w-3\" />;\n default:\n return <LinkIcon className=\"h-3 w-3\" />;\n }\n};\n\n// Provider badge\nconst ProviderBadge = ({ name, type }: { name: string; type: string }) => (\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-medium bg-muted text-muted-foreground\">\n {getProviderIcon(type)}\n {name}\n </span>\n);\n\n// Link Form Component\ntype EmbedLinkFormProps = {\n onInsertUrl: (url: string) => void;\n};\n\nconst EmbedLinkForm = ({ onInsertUrl }: EmbedLinkFormProps) => {\n const [urlInput, setUrlInput] = useState('');\n const [isValidProvider, setIsValidProvider] = useState(false);\n const [providerName, setProviderName] = useState<string | null>(null);\n\n const handleUrlChange = (value: string) => {\n setUrlInput(value);\n if (value.trim()) {\n const isValid = isEmbedUrl(value.trim());\n setIsValidProvider(isValid);\n if (isValid) {\n const providerType = detectProvider(value.trim());\n const providers = getSupportedProviders();\n const provider = providers.find((p) => p.type === providerType);\n setProviderName(provider?.name ?? null);\n } else {\n setProviderName(null);\n }\n } else {\n setIsValidProvider(false);\n setProviderName(null);\n }\n };\n\n const handleSubmit = () => {\n if (urlInput.trim()) {\n onInsertUrl(urlInput.trim());\n setUrlInput('');\n setIsValidProvider(false);\n setProviderName(null);\n }\n };\n\n return (\n <div className=\"space-y-3\">\n <div className=\"space-y-2\">\n <Input\n placeholder=\"Paste a URL to embed (YouTube, Vimeo, Twitter, Spotify, etc.)\"\n value={urlInput}\n onChange={(e) => handleUrlChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && urlInput.trim() && isValidProvider) {\n e.preventDefault();\n handleSubmit();\n }\n }}\n className=\"h-10\"\n />\n {urlInput.trim() && (\n <div className=\"text-xs text-muted-foreground\">\n {isValidProvider ? (\n <span className=\"flex items-center gap-1.5 text-green-600 dark:text-green-400\">\n {getProviderIcon(detectProvider(urlInput.trim()))}\n {providerName} detected\n </span>\n ) : (\n <span className=\"text-destructive\">\n Unsupported URL. Try YouTube, Vimeo, Twitter, Spotify, Figma, CodePen, etc.\n </span>\n )}\n </div>\n )}\n </div>\n <Button className=\"w-full\" onClick={handleSubmit} disabled={!urlInput.trim() || !isValidProvider}>\n {isValidProvider ? `Embed ${providerName}` : 'Embed content'}\n </Button>\n </div>\n );\n};\n\n// Supported Providers Display\nconst SupportedProviders = () => {\n const providers = getSupportedProviders().filter((p) => p.type !== 'unknown');\n\n return (\n <div className=\"mt-4 space-y-2\">\n <p className=\"text-xs text-muted-foreground text-center\">Supported providers:</p>\n <div className=\"flex flex-wrap gap-1.5 justify-center\">\n {providers.slice(0, 8).map((provider) => (\n <ProviderBadge key={provider.type} name={provider.name} type={provider.type} />\n ))}\n {providers.length > 8 && (\n <span className=\"inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-medium bg-muted text-muted-foreground\">\n +{providers.length - 8} more\n </span>\n )}\n </div>\n </div>\n );\n};\n\n// Main Component\nexport const EmbedPlaceholder = ({\n onInsertUrl,\n className,\n attributes,\n children,\n}: EmbedPlaceholderProps) => (\n <div\n className={cn('mt-2 relative rounded-lg border bg-background overflow-hidden', className)}\n {...attributes}\n contentEditable={false}\n >\n <div className=\"p-6\">\n <div className=\"flex flex-col items-center gap-4\">\n <div className=\"rounded-lg bg-muted p-3\">\n <LinkIcon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">Embed content</p>\n <p className=\"text-xs text-muted-foreground\">Paste a URL from supported platforms</p>\n </div>\n </div>\n\n <div className=\"mt-6 max-w-md mx-auto\">\n <EmbedLinkForm onInsertUrl={onInsertUrl} />\n </div>\n\n <SupportedProviders />\n </div>\n {children}\n </div>\n);\n\n","import { useLayoutEffect, useState } from 'react';\nimport { FloatingPortal, autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';\nimport copy from 'copy-to-clipboard';\nimport { AlignCenter, AlignLeft, AlignRight, Copy, ExternalLink, RotateCw, Trash2 } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Separator } from '../../../ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport { cn } from '../../../utils';\nimport type { EmbedElementProps } from '../../types';\n\ntype EmbedInlineToolbarProps = {\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n elementProps: EmbedElementProps;\n onUpdate: (props: Partial<EmbedElementProps>) => void;\n onReplace: () => void;\n onDelete: () => void;\n onCopy?: () => void;\n};\n\nexport const EmbedInlineToolbar = ({\n referenceRef,\n elementProps,\n onUpdate,\n onReplace,\n onDelete,\n onCopy,\n}: EmbedInlineToolbarProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isReady, setIsReady] = useState(false);\n const hasProvider = elementProps.provider && elementProps.provider.type;\n const hasAlignment = 'alignment' in elementProps;\n\n const { refs, floatingStyles } = useFloating({\n placement: 'top-end',\n strategy: 'absolute',\n middleware: [\n offset(8),\n flip({\n fallbackPlacements: ['bottom-end', 'top-start', 'bottom-start'],\n padding: 10,\n }),\n shift({ padding: 10 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n // Use useLayoutEffect to set reference before paint\n useLayoutEffect(() => {\n const element = referenceRef.current;\n if (element) {\n refs.setReference(element);\n setIsReady(true);\n }\n }, [referenceRef, refs]);\n\n useLayoutEffect(() => {\n if (isReady) {\n const timer = requestAnimationFrame(() => {\n setIsVisible(true);\n });\n return () => cancelAnimationFrame(timer);\n }\n }, [isReady]);\n\n const handleCopy = () => {\n if (onCopy) {\n onCopy();\n } else if (elementProps.provider?.url) {\n copy(elementProps.provider.url);\n }\n };\n\n const handleOpenLink = () => {\n if (elementProps.provider?.url) {\n window.open(elementProps.provider.url, '_blank');\n }\n };\n\n // Don't render until reference is available and ready\n if (!isReady) return null;\n\n return (\n <FloatingPortal>\n <div\n ref={refs.setFloating}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => e.stopPropagation()}\n className={cn(\n 'pointer-events-auto',\n 'flex items-center gap-1 rounded-lg border bg-background/95 backdrop-blur-sm p-1 shadow-lg',\n 'transition-opacity duration-200 ease-out',\n isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-2',\n )}\n style={floatingStyles}\n >\n <TooltipProvider delayDuration={0}>\n {hasAlignment && (\n <div className=\"flex items-center gap-0.5 border-r pr-1\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={(elementProps as any).alignment === 'left' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'left' } as any)}\n >\n <AlignLeft className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align left</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={(elementProps as any).alignment === 'center' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'center' } as any)}\n >\n <AlignCenter className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align center</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={(elementProps as any).alignment === 'right' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'right' } as any)}\n >\n <AlignRight className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align right</TooltipContent>\n </Tooltip>\n </div>\n )}\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={onReplace}>\n <RotateCw className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Replace</TooltipContent>\n </Tooltip>\n\n {hasProvider && elementProps.provider?.url && (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleCopy}>\n <Copy className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Copy URL</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleOpenLink}>\n <ExternalLink className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Open in new tab</TooltipContent>\n </Tooltip>\n </>\n )}\n\n <Separator orientation=\"vertical\" className=\"h-4\" />\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7 text-destructive hover:bg-destructive/10 hover:text-destructive\"\n onClick={onDelete}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Delete</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n </FloatingPortal>\n );\n};\n\n","import { useEffect, useRef, useState } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { useBlockSelected, useElementSelected, useYooptaEditor } from '@yoopta/editor';\nimport type { EmbedPluginOptions } from '@yoopta/embed';\nimport { Rnd } from 'react-rnd';\n\nimport { EmbedInlineToolbar } from './embed-inline-toolbar';\nimport { cn } from '../../../utils';\nimport type { EmbedElementProps } from '../../types';\n\ntype Props = {\n blockId: string;\n elementId: string;\n onUpdate: (props: Partial<EmbedElementProps>) => void;\n onDelete: () => void;\n onReplace: () => void;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n elementProps: EmbedElementProps;\n pluginOptions?: EmbedPluginOptions;\n};\n\nexport const EmbedRender = ({\n blockId,\n attributes,\n children,\n elementProps,\n onUpdate,\n onDelete,\n onReplace,\n pluginOptions,\n}: Props) => {\n const [sizes, setSizes] = useState(elementProps.sizes);\n const { isElementSelected } = useElementSelected();\n const isBlockSelected = useBlockSelected({ blockId });\n const isSelected = isElementSelected && isBlockSelected;\n const rndRef = useRef<HTMLElement | null>(null);\n const editor = useYooptaEditor();\n\n // Get max sizes from plugin options, with default maxWidth from editor width\n const [maxSizes, setMaxSizes] = useState(() => {\n const editorWidth = editor.refElement?.getBoundingClientRect().width || Infinity;\n const maxWidth = pluginOptions?.maxWidth ?? editorWidth;\n\n return {\n maxWidth: typeof maxWidth === 'number' ? maxWidth : editorWidth,\n maxHeight: Infinity, // reasonable max height\n };\n });\n\n // Update maxSizes when editor width changes\n useEffect(() => {\n const updateMaxSizes = () => {\n const editorWidth = editor.refElement?.getBoundingClientRect().width || Infinity;\n const maxWidth = pluginOptions?.maxWidth ?? editorWidth;\n\n setMaxSizes({\n maxWidth: typeof maxWidth === 'number' ? maxWidth : editorWidth,\n maxHeight: Infinity,\n });\n };\n\n updateMaxSizes();\n\n const resizeObserver = new ResizeObserver(updateMaxSizes);\n if (editor.refElement) {\n resizeObserver.observe(editor.refElement);\n }\n\n window.addEventListener('resize', updateMaxSizes);\n\n return () => {\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateMaxSizes);\n };\n }, [editor, pluginOptions]);\n\n // Helper function to limit sizes\n const limitEmbedSizes = (\n currentSizes: { width: number | string; height: number | string },\n limits: { width: number | string; height: number | string },\n ): { width: number; height: number } => {\n const parseSize = (value: string | number): number => {\n if (typeof value === 'number') return value;\n return parseInt(String(value).replace(/[^\\d]/g, ''), 10);\n };\n\n const currentWidth = parseSize(currentSizes.width);\n const currentHeight = parseSize(currentSizes.height);\n const maxWidth = parseSize(limits.width);\n const maxHeight = parseSize(limits.height);\n\n if (currentWidth <= maxWidth && currentHeight <= maxHeight) {\n return { width: currentWidth, height: currentHeight };\n }\n\n const widthRatio = currentWidth / maxWidth;\n const heightRatio = currentHeight / maxHeight;\n const ratio = Math.max(widthRatio, heightRatio);\n\n const newWidth = Math.round(currentWidth / ratio);\n const newHeight = Math.round(currentHeight / ratio);\n\n return {\n width: Math.min(newWidth, maxWidth),\n height: Math.min(newHeight, maxHeight),\n };\n };\n\n const onResizeStop = (_e: any, _direction: any, ref: HTMLElement) => {\n const newWidth = parseInt(ref.style.width, 10);\n const newHeight = parseInt(ref.style.height, 10);\n\n // Apply max size limits\n const limitedSizes = limitEmbedSizes(\n { width: newWidth, height: newHeight },\n { width: maxSizes.maxWidth, height: maxSizes.maxHeight },\n );\n\n onUpdate({\n sizes: limitedSizes,\n });\n };\n\n const onResize = (_e: any, _direction: any, ref: HTMLElement) => {\n const newWidth = parseInt(ref.style.width, 10);\n const newHeight = parseInt(ref.style.height, 10);\n\n // Apply max size limits during resize\n const limitedSizes = limitEmbedSizes(\n { width: newWidth, height: newHeight },\n { width: maxSizes.maxWidth, height: maxSizes.maxHeight },\n );\n\n setSizes(limitedSizes);\n };\n\n const provider = elementProps.provider;\n const embedUrl = provider?.embedUrl ?? '';\n\n const copyEmbed = async () => {\n if (!provider?.url) return;\n\n try {\n const { default: copyFn } = await import('copy-to-clipboard');\n copyFn(provider.url);\n } catch {\n // silently fail\n }\n };\n\n const alignmentClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[(elementProps as any).alignment ?? 'center'];\n\n return (\n <div {...attributes} className={cn('group/embed mt-4 relative transition-all w-full flex', alignmentClass)}>\n <div className=\"relative\" contentEditable={false}>\n <Rnd\n ref={(node) => {\n if (node?.resizableElement && node.resizableElement instanceof HTMLElement) {\n rndRef.current = node.resizableElement;\n }\n }}\n style={{\n position: 'relative',\n outline: isSelected ? '.125rem solid rgba(0, 0, 0, 0)' : 'none',\n outlineColor: isSelected ? 'hsl(var(--primary))' : 'none',\n padding: 2\n }}\n onResize={onResize}\n onResizeStop={onResizeStop}\n lockAspectRatio\n minWidth={200}\n minHeight={150}\n maxWidth={maxSizes.maxWidth}\n maxHeight={maxSizes.maxHeight}\n enableResizing={\n isSelected\n ? {\n bottom: false,\n bottomLeft: false,\n bottomRight: false,\n left: true,\n right: true,\n top: false,\n topLeft: false,\n topRight: false,\n }\n : false\n }\n disableDragging\n resizeHandleStyles={{\n left: {\n width: 'auto',\n height: '40px',\n left: '-5px',\n top: '50%',\n transform: 'translateY(-50%)',\n cursor: 'ew-resize',\n },\n right: {\n width: 'auto',\n height: '40px',\n right: '-5px',\n top: '50%',\n transform: 'translateY(-50%)',\n cursor: 'ew-resize',\n },\n }}\n resizeHandleComponent={{\n left: <div className=\"h-10 w-2 rounded-full border border-primary bg-primary shadow-sm\" />,\n right: <div className=\"h-10 w-2 rounded-full border border-primary bg-primary shadow-sm\" />,\n }}\n className={cn('rounded-sm overflow-hidden')}\n >\n <iframe\n title={provider?.meta?.title ?? `Embedded content from ${provider?.type ?? 'unknown'}`}\n src={embedUrl}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n allowFullScreen\n className=\"w-full h-full\"\n style={{\n aspectRatio: `${sizes.width} / ${sizes.height}`,\n }}\n />\n </Rnd>\n {isSelected && (\n <EmbedInlineToolbar\n referenceRef={rndRef}\n elementProps={elementProps}\n onUpdate={onUpdate}\n onReplace={onReplace}\n onDelete={onDelete}\n onCopy={copyEmbed}\n />\n )}\n </div>\n {children}\n </div>\n );\n};\n\n","import { useCallback } from 'react';\nimport { type PluginElementRenderProps, useYooptaPluginOptions } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport { calculateEmbedDimensions, parseEmbedUrl } from '@yoopta/embed';\nimport type { EmbedElement as EmbedElementType, EmbedPluginOptions } from '@yoopta/embed';\nimport { Editor, Element } from 'slate';\n\nimport { EmbedPlaceholder } from './embed-placeholder';\nimport { EmbedRender } from './embed-render';\nimport type { EmbedElementProps } from '../../types';\n\nexport const EmbedElement = ({ element, attributes, children, blockId }: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const pluginOptions = useYooptaPluginOptions<EmbedPluginOptions>('Embed');\n\n const updateElement = useCallback(\n (props: Partial<EmbedElementProps>) => {\n Elements.updateElement(editor, {\n blockId,\n type: 'embed',\n props: {\n ...element.props,\n ...props,\n },\n });\n },\n [editor, blockId, element.props],\n );\n\n const deleteEmbed = useCallback(async () => {\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n const parentEntry = elementPath ? Editor.parent(slate, elementPath) : undefined;\n if (parentEntry && Element.isElement(parentEntry[0]) && !Editor.isEditor(parentEntry[0])) {\n Elements.deleteElement(editor, {\n blockId,\n type: 'embed',\n path: elementPath,\n });\n return;\n }\n\n Blocks.deleteBlock(editor, { blockId, focus: true });\n }, [editor, blockId, element]);\n\n const replaceEmbed = useCallback(() => {\n Elements.updateElement(editor, {\n blockId,\n type: 'embed',\n props: {\n ...element.props,\n provider: null,\n },\n });\n }, [editor, blockId, element.props]);\n\n const onInsertUrl = useCallback(\n async (url: string) => {\n const provider = parseEmbedUrl(url);\n\n if (provider) {\n // Calculate dimensions based on provider aspect ratio\n const maxWidth = pluginOptions?.maxWidth ?? 650;\n const { width, height } = calculateEmbedDimensions(provider.type, maxWidth);\n\n updateElement({\n provider,\n sizes: { width, height },\n });\n }\n },\n [updateElement, pluginOptions],\n );\n\n const embedElement = element as EmbedElementType;\n\n if (!embedElement.props?.provider) {\n return (\n <EmbedPlaceholder onInsertUrl={onInsertUrl} attributes={attributes}>\n {children}\n </EmbedPlaceholder>\n );\n }\n\n return (\n <EmbedRender\n blockId={blockId}\n elementId={element.id}\n onUpdate={updateElement}\n onDelete={deleteEmbed}\n attributes={attributes}\n onReplace={replaceEmbed}\n elementProps={embedElement.props}\n pluginOptions={pluginOptions}\n >\n {children}\n </EmbedRender>\n );\n};\n\n","import { EmbedElement } from './elements/embed/embed-element';\n\nexport const EmbedUI = {\n embed: {\n render: EmbedElement,\n },\n};\n\n"],"names":["_jsx","LinkIcon","_jsxs","copy","_Fragment"],"mappings":"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","x_google_ignoreList":[0,1]}
|