@yoopta/themes-shadcn 6.0.0-beta.14 → 6.0.0-beta.16
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/table/components/row-controls.d.ts.map +1 -1
- package/package.json +2 -2
- 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-2202c874.js +0 -1080
- package/dist/chunks/Combination-2202c874.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-cc37c75c.js +0 -30
- package/dist/chunks/arrow-right-cc37c75c.js.map +0 -1
- package/dist/chunks/button-f9af7cb3.js +0 -76
- package/dist/chunks/button-f9af7cb3.js.map +0 -1
- package/dist/chunks/card-29720641.js +0 -38
- package/dist/chunks/card-29720641.js.map +0 -1
- package/dist/chunks/check-530fff0e.js +0 -14
- package/dist/chunks/check-530fff0e.js.map +0 -1
- package/dist/chunks/chevron-down-544d1acd.js +0 -16
- package/dist/chunks/chevron-down-544d1acd.js.map +0 -1
- package/dist/chunks/chevron-up-053cba03.js +0 -14
- package/dist/chunks/chevron-up-053cba03.js.map +0 -1
- package/dist/chunks/code-2ff9cc0c.js +0 -17
- package/dist/chunks/code-2ff9cc0c.js.map +0 -1
- package/dist/chunks/createLucideIcon-02eb7854.js +0 -95
- package/dist/chunks/createLucideIcon-02eb7854.js.map +0 -1
- package/dist/chunks/dropdown-menu-ac777fdc.js +0 -1165
- package/dist/chunks/dropdown-menu-ac777fdc.js.map +0 -1
- package/dist/chunks/external-link-43895ded.js +0 -18
- package/dist/chunks/external-link-43895ded.js.map +0 -1
- package/dist/chunks/file-text-99674d8d.js +0 -20
- package/dist/chunks/file-text-99674d8d.js.map +0 -1
- package/dist/chunks/hover-card-134f053d.js +0 -257
- package/dist/chunks/hover-card-134f053d.js.map +0 -1
- package/dist/chunks/index-056b596e.js +0 -16
- package/dist/chunks/index-056b596e.js.map +0 -1
- package/dist/chunks/index-35823769.js +0 -222
- package/dist/chunks/index-35823769.js.map +0 -1
- package/dist/chunks/index-41c4abc4.js +0 -3805
- package/dist/chunks/index-41c4abc4.js.map +0 -1
- package/dist/chunks/index-454935af.js +0 -71
- package/dist/chunks/index-454935af.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-b8a83ba5.js +0 -335
- package/dist/chunks/index-b8a83ba5.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-c90e54a4.js +0 -190
- package/dist/chunks/index-c90e54a4.js.map +0 -1
- package/dist/chunks/index-cf5f0d71.js +0 -2907
- package/dist/chunks/index-cf5f0d71.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-dd0fd848.js +0 -70
- package/dist/chunks/index-dd0fd848.js.map +0 -1
- package/dist/chunks/input-5608c2c9.js +0 -13
- package/dist/chunks/input-5608c2c9.js.map +0 -1
- package/dist/chunks/label-c9152e49.js +0 -168
- package/dist/chunks/label-c9152e49.js.map +0 -1
- package/dist/chunks/language-select-bdc50f20.js +0 -44
- package/dist/chunks/language-select-bdc50f20.js.map +0 -1
- package/dist/chunks/play-1a34ad05.js +0 -16
- package/dist/chunks/play-1a34ad05.js.map +0 -1
- package/dist/chunks/plus-fcea2532.js +0 -17
- package/dist/chunks/plus-fcea2532.js.map +0 -1
- package/dist/chunks/popover-ef29b0ac.js +0 -300
- package/dist/chunks/popover-ef29b0ac.js.map +0 -1
- package/dist/chunks/scroll-area-17d8c584.js +0 -726
- package/dist/chunks/scroll-area-17d8c584.js.map +0 -1
- package/dist/chunks/select-98610101.js +0 -1213
- package/dist/chunks/select-98610101.js.map +0 -1
- package/dist/chunks/separator-9e6aa45b.js +0 -172
- package/dist/chunks/separator-9e6aa45b.js.map +0 -1
- package/dist/chunks/sparkles-8922a4af.js +0 -26
- package/dist/chunks/sparkles-8922a4af.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-9cfbd3cc.js +0 -204
- package/dist/chunks/tabs-9cfbd3cc.js.map +0 -1
- package/dist/chunks/tooltip-f1e02ae0.js +0 -800
- package/dist/chunks/tooltip-f1e02ae0.js.map +0 -1
- package/dist/chunks/trash-2-be728dd2.js +0 -20
- package/dist/chunks/trash-2-be728dd2.js.map +0 -1
- package/dist/chunks/upload-0f56ec3e.js +0 -44
- package/dist/chunks/upload-0f56ec3e.js.map +0 -1
- package/dist/chunks/utils-131071a4.js +0 -2500
- package/dist/chunks/utils-131071a4.js.map +0 -1
- package/dist/chunks/x-2f6cf742.js +0 -17
- package/dist/chunks/x-2f6cf742.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/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/video.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sources":["../../../../node_modules/lucide-react/src/icons/video.ts","../src/video/elements/video/video-placeholder.tsx","../../../../node_modules/@radix-ui/react-switch/src/switch.tsx","../src/ui/switch.tsx","../src/video/elements/video/video-inline-toolbar-settings.tsx","../src/video/elements/video/video-inline-toolbar.tsx","../src/video/elements/video/video-render.tsx","../src/video/elements/video/video-element.tsx","../src/video/index.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Video\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/video\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 Video = createLucideIcon('Video', [\n [\n 'path',\n {\n d: 'm16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5',\n key: 'ftymec',\n },\n ],\n ['rect', { x: '2', y: '6', width: '14', height: '12', rx: '2', key: '158x01' }],\n]);\n\nexport default Video;\n","import { useRef, useState } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport type { VideoUploadPreview, VideoUploadProgress } from '@yoopta/video';\nimport { parseVideoUrl } from '@yoopta/video';\nimport { LinkIcon, Loader2, Play, Upload, VideoIcon } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Input } from '../../../ui/input';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../ui/tabs';\nimport { cn } from '../../../utils';\n\ntype VideoPlaceholderProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onInsertUrl: (url: string) => void;\n className?: string;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n preview: VideoUploadPreview | null;\n progress: VideoUploadProgress | null;\n loading: boolean;\n};\n\n// Preview Video Component\ntype VideoPreviewProps = {\n preview: VideoUploadPreview;\n};\n\nconst VideoPreview = ({ preview }: VideoPreviewProps) => (\n <div className=\"absolute inset-0 overflow-hidden flex items-center justify-center bg-black/5\">\n <video\n src={preview.url}\n className=\"max-w-full max-h-full object-contain\"\n style={{\n maxWidth: preview.width || '100%',\n maxHeight: preview.height || '100%',\n }}\n controls={false}\n muted\n draggable={false}\n />\n </div>\n);\n\n// Upload Progress Component\ntype VideoUploadProgressProps = {\n progress: VideoUploadProgress;\n};\n\nconst VideoUploadProgressOverlay = ({ progress }: VideoUploadProgressProps) => (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-4 bg-black/70 backdrop-blur-sm p-6\">\n <div className=\"w-full max-w-md space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-medium text-white\">Uploading video...</span>\n <span className=\"text-white/80\">{progress.percentage}%</span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-white/20\">\n <div\n className=\"h-full bg-primary transition-all duration-300 ease-out\"\n style={{ width: `${progress.percentage}%` }}\n />\n </div>\n <div className=\"flex items-center justify-between text-xs text-white/60\">\n <span>\n {(progress.loaded / 1024 / 1024).toFixed(2)} MB /{' '}\n {(progress.total / 1024 / 1024).toFixed(2)} MB\n </span>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n </div>\n </div>\n </div>\n </div>\n);\n\n// Upload Form Component\ntype VideoUploadFormProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n hasPreview: boolean;\n};\n\nconst VideoUploadForm = ({ onUpload, hasPreview }: VideoUploadFormProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n if (hasPreview) {\n return (\n <div className=\"flex flex-col items-center justify-center gap-4 py-8\">\n <div className=\"text-center space-y-2\">\n <p className=\"text-sm font-medium text-white\">Video preview</p>\n <p className=\"text-xs text-white/80\">Uploading your video...</p>\n </div>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"video/*\"\n onChange={onUpload}\n className=\"hidden\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-center gap-3 py-6\">\n <div className=\"rounded-lg bg-muted p-3\">\n <VideoIcon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">Upload a video</p>\n <p className=\"text-xs text-muted-foreground\">Click or drag and drop</p>\n </div>\n <Button onClick={() => fileInputRef.current?.click()}>Choose file</Button>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"video/*\"\n onChange={onUpload}\n className=\"hidden\"\n />\n </div>\n );\n};\n\n// Link Form Component\ntype VideoLinkFormProps = {\n onInsertUrl: (url: string) => void;\n};\n\nconst VideoLinkForm = ({ onInsertUrl }: VideoLinkFormProps) => {\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 parsed = parseVideoUrl(value.trim());\n setIsValidProvider(parsed.isValid);\n setProviderName(parsed.provider ? parsed.provider.charAt(0).toUpperCase() + parsed.provider.slice(1) : null);\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=\"mt-4 space-y-3\">\n <div className=\"space-y-2\">\n <Input\n placeholder=\"Paste video URL (YouTube, Vimeo, Dailymotion, Loom, Wistia)...\"\n value={urlInput}\n onChange={(e) => handleUrlChange(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && urlInput.trim() && isValidProvider) {\n handleSubmit();\n }\n }}\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 <Play className=\"h-3 w-3\" />\n {providerName} video detected\n </span>\n ) : (\n <span className=\"text-destructive\">Invalid video URL. Supported: YouTube, Vimeo, Dailymotion, Loom, Wistia</span>\n )}\n </div>\n )}\n </div>\n <Button\n className=\"w-full\"\n onClick={handleSubmit}\n disabled={!urlInput.trim() || !isValidProvider}>\n {isValidProvider ? `Embed ${providerName} video` : 'Embed video'}\n </Button>\n </div>\n );\n};\n\n// Tabs Container Component\ntype VideoPlaceholderTabsProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onInsertUrl: (url: string) => void;\n hasPreview: boolean;\n};\n\nconst VideoPlaceholderTabs = ({\n onUpload,\n onInsertUrl,\n hasPreview,\n}: VideoPlaceholderTabsProps) => (\n <div className={cn('relative p-4', hasPreview && 'min-h-[300px] flex flex-col')}>\n <Tabs defaultValue=\"upload\" className=\"w-full\">\n <TabsList\n className={cn(\n 'grid w-full grid-cols-2',\n hasPreview && 'bg-background/80 backdrop-blur-sm',\n )}>\n <TabsTrigger value=\"upload\" className=\"gap-1.5\">\n <Upload className=\"h-3.5 w-3.5\" />\n Upload\n </TabsTrigger>\n <TabsTrigger value=\"link\" className=\"gap-1.5\">\n <LinkIcon className=\"h-3.5 w-3.5\" />\n Link\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"upload\" className=\"mt-4\">\n <VideoUploadForm onUpload={onUpload} hasPreview={hasPreview} />\n </TabsContent>\n\n <TabsContent value=\"link\">\n <VideoLinkForm onInsertUrl={onInsertUrl} />\n </TabsContent>\n </Tabs>\n </div>\n);\n\n// Main Component\nexport const VideoPlaceholder = ({\n onUpload,\n onInsertUrl,\n className,\n attributes,\n children,\n preview,\n progress,\n loading,\n}: VideoPlaceholderProps) => {\n const hasPreview = preview !== null && !!preview.url;\n const showUploadProgress = loading && progress;\n\n return (\n <div\n className={cn(\n 'mt-2 relative rounded-lg border bg-background overflow-hidden',\n hasPreview && 'min-h-[300px]',\n className,\n )}\n {...attributes}\n contentEditable={false}>\n {hasPreview && <VideoPreview preview={preview} />}\n\n {!hasPreview && (\n <VideoPlaceholderTabs\n onUpload={onUpload}\n onInsertUrl={onInsertUrl}\n hasPreview={hasPreview}\n />\n )}\n\n {showUploadProgress && progress && <VideoUploadProgressOverlay progress={progress} />}\n {children}\n </div>\n );\n};\n\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Switch\n * -----------------------------------------------------------------------------------------------*/\n\nconst SWITCH_NAME = 'Switch';\n\ntype ScopedProps<P> = P & { __scopeSwitch?: Scope };\nconst [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\n\ntype SwitchContextValue = { checked: boolean; disabled?: boolean };\nconst [SwitchProvider, useSwitchContext] = createSwitchContext<SwitchContextValue>(SWITCH_NAME);\n\ntype SwitchElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface SwitchProps extends PrimitiveButtonProps {\n checked?: boolean;\n defaultChecked?: boolean;\n required?: boolean;\n onCheckedChange?(checked: boolean): void;\n}\n\nconst Switch = React.forwardRef<SwitchElement, SwitchProps>(\n (props: ScopedProps<SwitchProps>, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = 'on',\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState<HTMLButtonElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? form || !!button.closest('form') : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME,\n });\n\n return (\n <SwitchProvider scope={__scopeSwitch} checked={checked} disabled={disabled}>\n <Primitive.button\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...switchProps}\n ref={composedRefs}\n onClick={composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if switch is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect switch updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n <SwitchBubbleInput\n control={button}\n bubbles={!hasConsumerStoppedPropagationRef.current}\n name={name}\n value={value}\n checked={checked}\n required={required}\n disabled={disabled}\n form={form}\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n style={{ transform: 'translateX(-100%)' }}\n />\n )}\n </SwitchProvider>\n );\n }\n);\n\nSwitch.displayName = SWITCH_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SwitchThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SwitchThumb';\n\ntype SwitchThumbElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SwitchThumbProps extends PrimitiveSpanProps {}\n\nconst SwitchThumb = React.forwardRef<SwitchThumbElement, SwitchThumbProps>(\n (props: ScopedProps<SwitchThumbProps>, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return (\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...thumbProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSwitchThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SwitchBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'SwitchBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface SwitchBubbleInputProps extends Omit<InputProps, 'checked'> {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst SwitchBubbleInput = React.forwardRef<HTMLInputElement, SwitchBubbleInputProps>(\n (\n {\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }: ScopedProps<SwitchBubbleInputProps>,\n forwardedRef\n ) => {\n const ref = React.useRef<HTMLInputElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n <input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={checked}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n }}\n />\n );\n }\n);\n\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nconst Root = Switch;\nconst Thumb = SwitchThumb;\n\nexport {\n createSwitchScope,\n //\n Switch,\n SwitchThumb,\n //\n Root,\n Thumb,\n};\nexport type { SwitchProps, SwitchThumbProps };\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\n\nimport { cn } from '../utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n ref={ref}>\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n\n","import { useState } from 'react';\nimport { Settings2 } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Label } from '../../../ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../ui/popover';\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../../../ui/select';\nimport { Separator } from '../../../ui/separator';\nimport { Switch } from '../../../ui/switch';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport type { ObjectFit, VideoElementProps } from '../../types';\n\ntype VideoInlineToolbarSettingsProps = {\n fit: ObjectFit | null;\n settings: {\n controls?: boolean;\n loop?: boolean;\n muted?: boolean;\n autoPlay?: boolean;\n };\n onUpdate: (props: Partial<VideoElementProps>) => void;\n};\n\nconst FIT_LABELS: Partial<Record<ObjectFit, { label: string; description: string }>> = {\n contain: { label: 'Contain', description: 'Fit within bounds' },\n cover: { label: 'Cover', description: 'Fill and crop' },\n fill: { label: 'Fill', description: 'Stretch to fit' },\n};\n\nexport const VideoInlineToolbarSettings = ({\n fit,\n settings,\n onUpdate,\n}: VideoInlineToolbarSettingsProps) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const handleSettingsUpdate = (newSettings: Partial<typeof settings>) => {\n onUpdate({\n settings: {\n ...settings,\n ...newSettings,\n },\n });\n };\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <PopoverTrigger asChild>\n <Button variant={isOpen ? 'secondary' : 'ghost'} size=\"icon\" className=\"h-7 w-7\">\n <Settings2 className=\"h-4 w-4\" />\n </Button>\n </PopoverTrigger>\n </TooltipTrigger>\n <TooltipContent>Settings</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n\n <PopoverContent\n className=\"w-80 p-3\"\n align=\"start\"\n contentEditable={false}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"space-y-3\">\n <div>\n <h4 className=\"font-semibold\">Video settings</h4>\n <p className=\"text-xs text-muted-foreground\">Customize video playback and display</p>\n </div>\n <Separator />\n\n <div className=\"space-y-1\">\n <Label htmlFor=\"object-fit\" className=\"text-sm font-medium\">\n How video fits\n </Label>\n <Select\n value={fit || 'contain'}\n onValueChange={(value: ObjectFit) => onUpdate({ fit: value })}>\n <SelectTrigger id=\"object-fit\" className=\"h-9 w-full\">\n <SelectValue placeholder=\"Select how video fits\">\n <div className=\"flex items-center gap-2\">\n <div className=\"font-medium\">{FIT_LABELS[fit || 'contain']?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS[fit || 'contain']?.description}\n </div>\n </div>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"contain\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-4 w-3 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.contain?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.contain?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n <SelectItem value=\"cover\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-8 w-6 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.cover?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.cover?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n <SelectItem value=\"fill\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-8 w-8 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.fill?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.fill?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n\n <Separator />\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label htmlFor=\"controls\" className=\"text-sm font-medium\">\n Show controls\n </Label>\n <p className=\"text-xs text-muted-foreground\">Display video player controls</p>\n </div>\n <Switch\n id=\"controls\"\n checked={settings.controls ?? false}\n onCheckedChange={(checked) => handleSettingsUpdate({ controls: checked })}\n />\n </div>\n\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label htmlFor=\"loop\" className=\"text-sm font-medium\">\n Loop video\n </Label>\n <p className=\"text-xs text-muted-foreground\">Automatically replay when finished</p>\n </div>\n <Switch\n id=\"loop\"\n checked={settings.loop ?? false}\n onCheckedChange={(checked) => handleSettingsUpdate({ loop: checked })}\n />\n </div>\n\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label htmlFor=\"muted\" className=\"text-sm font-medium\">\n Muted\n </Label>\n <p className=\"text-xs text-muted-foreground\">Start video without sound</p>\n </div>\n <Switch\n id=\"muted\"\n checked={settings.muted ?? false}\n onCheckedChange={(checked) => handleSettingsUpdate({ muted: checked })}\n />\n </div>\n\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label htmlFor=\"autoplay\" className=\"text-sm font-medium\">\n Autoplay\n </Label>\n <p className=\"text-xs text-muted-foreground\">\n Start playing automatically (may require muted)\n </p>\n </div>\n <Switch\n id=\"autoplay\"\n checked={settings.autoPlay ?? false}\n onCheckedChange={(checked) => handleSettingsUpdate({ autoPlay: checked })}\n />\n </div>\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n\n","import { useEffect, useState } from 'react';\nimport { autoUpdate, inline, offset, shift, useFloating } from '@floating-ui/react';\nimport copy from 'copy-to-clipboard';\nimport { AlignCenter, AlignLeft, AlignRight, Copy, Download, ExternalLink, RotateCw, Trash2 } from 'lucide-react';\n\nimport { VideoInlineToolbarSettings } from './video-inline-toolbar-settings';\nimport { Button } from '../../../ui/button';\nimport { Separator } from '../../../ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport { cn } from '../../../utils';\nimport type { VideoElementProps } from '../../types';\n\ntype VideoInlineToolbarProps = {\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n elementProps: VideoElementProps;\n onUpdate: (props: Partial<VideoElementProps>) => void;\n onReplace: () => void;\n onDelete: () => void;\n onDownload?: () => void;\n onCopy?: () => void;\n};\n\nexport const VideoInlineToolbar = ({\n referenceRef,\n elementProps,\n onUpdate,\n onReplace,\n onDelete,\n onDownload,\n onCopy,\n}: VideoInlineToolbarProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const isProviderVideo = elementProps.provider && elementProps.provider.type;\n const hasAlignment = 'alignment' in elementProps;\n\n const { refs, floatingStyles } = useFloating({\n placement: 'top',\n strategy: 'fixed',\n middleware: [\n offset(8),\n inline(),\n shift({ padding: 10 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n useEffect(() => {\n requestAnimationFrame(() => {\n setIsVisible(true);\n });\n }, []);\n\n useEffect(() => {\n const element = referenceRef.current;\n if (element) {\n refs.setReference(element);\n }\n }, [referenceRef, refs]);\n\n const handleDownload = () => {\n if (onDownload) {\n onDownload();\n } else if (elementProps.src && !isProviderVideo) {\n // Fallback download for non-provider videos\n const a = document.createElement('a');\n a.href = elementProps.src;\n a.download = `video-${Date.now()}.mp4`;\n a.click();\n }\n };\n\n const handleCopy = () => {\n if (onCopy) {\n onCopy();\n } else if (elementProps.src) {\n copy(elementProps.src);\n }\n };\n\n const handleOpenLink = () => {\n if (elementProps.provider?.url) {\n window.open(elementProps.provider.url, '_blank');\n }\n };\n\n return (\n <div\n ref={refs.setFloating}\n onMouseDown={(e) => e.stopPropagation()}\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-all duration-200 ease-out',\n isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-2',\n )}\n style={floatingStyles}>\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 <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 <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 <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 {!isProviderVideo && elementProps.src && (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleDownload}>\n <Download className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Download</TooltipContent>\n </Tooltip>\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 )}\n\n {isProviderVideo && elementProps.provider?.url && (\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 {!isProviderVideo && (\n <>\n <Separator orientation=\"vertical\" className=\"h-4\" />\n <VideoInlineToolbarSettings\n fit={elementProps.fit ?? 'contain'}\n settings={elementProps.settings || {\n controls: false,\n loop: false,\n muted: false,\n autoPlay: false,\n }}\n onUpdate={onUpdate}\n />\n </>\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 <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Delete</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div >\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 { VideoPluginOptions } from '@yoopta/video';\nimport { getEmbedUrl } from '@yoopta/video';\nimport { Rnd } from 'react-rnd';\n\nimport { VideoInlineToolbar } from './video-inline-toolbar';\nimport { cn } from '../../../utils';\nimport type { VideoElementProps } from '../../types';\n\ntype Props = {\n blockId: string;\n elementId: string;\n onUpdate: (props: Partial<VideoElementProps>) => void;\n onDelete: () => void;\n onReplace: () => void;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n elementProps: VideoElementProps;\n pluginOptions?: VideoPluginOptions;\n};\n\nexport const VideoRender = ({\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 || { width: 650, height: 400 });\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 || 650;\n const maxSizesOptions = pluginOptions?.maxSizes;\n\n return {\n maxWidth: maxSizesOptions?.maxWidth\n ? typeof maxSizesOptions.maxWidth === 'number'\n ? maxSizesOptions.maxWidth\n : parseInt(String(maxSizesOptions.maxWidth).replace(/[^\\d]/g, ''), 10)\n : editorWidth,\n maxHeight: maxSizesOptions?.maxHeight\n ? typeof maxSizesOptions.maxHeight === 'number'\n ? maxSizesOptions.maxHeight\n : parseInt(String(maxSizesOptions.maxHeight).replace(/[^\\d]/g, ''), 10)\n : 550,\n };\n });\n\n // Update maxSizes when editor width changes\n useEffect(() => {\n const updateMaxSizes = () => {\n const editorWidth = editor.refElement?.getBoundingClientRect().width || 650;\n const pluginMaxSizes = pluginOptions?.maxSizes;\n\n setMaxSizes({\n maxWidth: pluginMaxSizes?.maxWidth\n ? typeof pluginMaxSizes.maxWidth === 'number'\n ? pluginMaxSizes.maxWidth\n : parseInt(String(pluginMaxSizes.maxWidth).replace(/[^\\d]/g, ''), 10)\n : editorWidth,\n maxHeight: pluginMaxSizes?.maxHeight\n ? typeof pluginMaxSizes.maxHeight === 'number'\n ? pluginMaxSizes.maxHeight\n : parseInt(String(pluginMaxSizes.maxHeight).replace(/[^\\d]/g, ''), 10)\n : 550,\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 limitVideoSizes = (\n sizes: { width: number | string; height: number | string },\n maxSizes: { 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(sizes.width);\n const currentHeight = parseSize(sizes.height);\n const maxWidth = parseSize(maxSizes.width);\n const maxHeight = parseSize(maxSizes.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 = limitVideoSizes(\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 = limitVideoSizes(\n { width: newWidth, height: newHeight },\n { width: maxSizes.maxWidth, height: maxSizes.maxHeight },\n );\n\n setSizes(limitedSizes);\n };\n\n const isProviderVideo = elementProps.provider && elementProps.provider.type;\n const videoSrc = elementProps.src || '';\n const embedUrl = isProviderVideo && elementProps.provider?.id\n ? getEmbedUrl(elementProps.provider.type, elementProps.provider.id)\n : null;\n\n const settings = elementProps.settings || {\n controls: true,\n loop: false,\n muted: false,\n autoPlay: false,\n };\n\n const download = async () => {\n if (!elementProps.src || isProviderVideo) return;\n\n try {\n const response = await fetch(elementProps.src);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `video-${Date.now()}.mp4`;\n a.click();\n URL.revokeObjectURL(url);\n } catch (error) {\n // error\n }\n };\n\n const copyVideo = async () => {\n if (!elementProps.src) return;\n\n try {\n if (isProviderVideo && elementProps.provider?.url) {\n const { default: copy } = await import('copy-to-clipboard');\n copy(elementProps.provider.url);\n } else {\n const response = await fetch(elementProps.src);\n const blob = await response.blob();\n\n if (navigator.clipboard && ClipboardItem) {\n await navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]);\n } else {\n const { default: copy } = await import('copy-to-clipboard');\n copy(elementProps.src);\n }\n }\n } catch (error) {\n const { default: copy } = await import('copy-to-clipboard');\n copy(elementProps.src || '');\n }\n };\n\n const alignmentClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[elementProps.alignment ?? 'center'];\n\n return (\n <div\n {...attributes}\n className={cn('group/video mt-2 relative transition-all w-full flex', alignmentClass)}>\n <div className=\"relative\" contentEditable={false}>\n <Rnd\n ref={(node) => {\n // Get the actual DOM element from Rnd\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 }}\n size={{\n width: typeof sizes.width === 'number' ? sizes.width : parseInt(String(sizes.width), 10),\n height: typeof sizes.height === 'number' ? sizes.height : parseInt(String(sizes.height), 10),\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: (\n <div className=\"h-10 w-2 rounded-full border border-primary bg-primary shadow-sm\" />\n ),\n right: (\n <div className=\"h-10 w-2 rounded-full border border-primary bg-primary shadow-sm\" />\n ),\n }}\n className={cn('rounded-sm overflow-hidden')}>\n {isProviderVideo && embedUrl ? (\n <iframe\n title={elementProps.provider!.type!}\n src={embedUrl}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n className=\"w-full h-full\"\n style={{\n aspectRatio: `${sizes.width} / ${sizes.height}`,\n }}\n />\n ) : (\n // eslint-disable-next-line jsx-a11y/media-has-caption\n <video\n title=\"Video\"\n src={videoSrc}\n controls={settings.controls}\n loop={settings.loop}\n muted={settings.muted}\n autoPlay={settings.autoPlay}\n poster={elementProps.poster ?? undefined}\n className=\"w-full h-full transition-all duration-200\"\n style={{\n objectFit: elementProps.fit ?? 'contain',\n }}\n draggable={false}\n />\n )}\n </Rnd>\n {isSelected && (\n <VideoInlineToolbar\n referenceRef={rndRef}\n elementProps={elementProps}\n onUpdate={onUpdate}\n onReplace={onReplace}\n onDelete={onDelete}\n onDownload={download}\n onCopy={copyVideo}\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 {\n buildVideoProvider,\n parseVideoUrl,\n useVideoDelete,\n useVideoPreview,\n useVideoUpload\n} from '@yoopta/video';\nimport type {\n VideoElement as VideoElementType,\n VideoPluginOptions\n} from '@yoopta/video';\nimport { Editor, Element } from 'slate';\n\nimport { VideoPlaceholder } from './video-placeholder';\nimport { VideoRender } from './video-render';\nimport type { VideoElementProps } from '../../types';\n\nexport const VideoElement = ({\n element,\n attributes,\n children,\n blockId,\n}: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const pluginOptions = useYooptaPluginOptions<VideoPluginOptions>('Video');\n const { upload: uploadVideoToStorage, progress, loading } = useVideoUpload(pluginOptions.upload!);\n const { deleteVideo: deleteVideoFromStorage } = useVideoDelete(pluginOptions.delete!);\n const { preview, generatePreview, clearPreview } = useVideoPreview();\n\n const updateElement = useCallback(\n (props: Partial<VideoElementProps>) => {\n Elements.updateElement(editor, {\n blockId,\n type: 'video',\n props: {\n ...element.props,\n ...props,\n },\n });\n },\n [editor, blockId, element.props],\n );\n\n const deleteVideo = useCallback(async () => {\n await deleteVideoFromStorage(element as VideoElementType);\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: 'video',\n path: elementPath,\n });\n return;\n }\n\n Blocks.deleteBlock(editor, { blockId, focus: true });\n }, [editor, blockId, element, deleteVideoFromStorage]);\n\n const replaceVideo = useCallback(() => {\n Elements.updateElement(editor, {\n blockId,\n type: 'video',\n props: {\n ...element.props,\n src: null,\n provider: null,\n },\n });\n }, [editor, blockId, element.props]);\n\n const onUpload = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n generatePreview(file);\n const result = await uploadVideoToStorage(file);\n updateElement({\n id: result.id || (result as any).fileId,\n src: result.url,\n sizes: result.width && result.height\n ? { width: result.width, height: result.height }\n : element.props.sizes || { width: 650, height: 400 },\n provider: result.provider || null,\n poster: result.poster || null,\n });\n clearPreview();\n },\n [uploadVideoToStorage, updateElement, generatePreview, clearPreview, element.props.sizes],\n );\n\n const onInsertUrl = useCallback(\n async (url: string) => {\n const parsed = parseVideoUrl(url);\n\n if (parsed.isValid && parsed.provider) {\n const provider = buildVideoProvider(url);\n updateElement({\n src: parsed.embedUrl,\n provider,\n sizes: element.props.sizes || { width: 650, height: 400 },\n });\n } else if (url.trim()) {\n // Fallback: treat as direct video URL\n updateElement({\n src: url.trim(),\n provider: null,\n sizes: element.props.sizes || { width: 650, height: 400 },\n });\n }\n },\n [updateElement, element.props.sizes],\n );\n\n if (!element.props.src && !element.props.provider) {\n return (\n <VideoPlaceholder\n onUpload={onUpload}\n preview={preview}\n progress={progress}\n loading={loading}\n onInsertUrl={onInsertUrl}\n attributes={attributes}>\n {children}\n </VideoPlaceholder>\n );\n }\n\n return (\n <VideoRender\n blockId={blockId}\n elementId={element.id}\n onUpdate={updateElement}\n onDelete={deleteVideo}\n attributes={attributes}\n onReplace={replaceVideo}\n elementProps={element.props}\n pluginOptions={pluginOptions}>\n {children}\n </VideoRender>\n );\n};\n\n","import { VideoElement } from './elements/video/video-element';\n\nexport const VideoUI = {\n video: {\n render: VideoElement,\n },\n};\n\n"],"names":["_jsx","_jsxs","Loader2","VideoIcon","LinkIcon","Switch","SwitchPrimitives.Root","SwitchPrimitives.Thumb","copy","_Fragment"],"mappings":"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","x_google_ignoreList":[0,2]}
|