markdown-flow-ui 0.1.128-dev.1 → 0.1.129
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/_virtual/index.cjs8.js +1 -1
- package/dist/_virtual/index.cjs9.js +1 -1
- package/dist/_virtual/index.es8.js +2 -2
- package/dist/_virtual/index.es9.js +2 -2
- package/dist/assets/markdown-flow-ui.css +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.js.map +1 -1
- package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
- package/dist/components/Slide/Player.cjs.js +1 -1
- package/dist/components/Slide/Player.cjs.js.map +1 -1
- package/dist/components/Slide/Player.d.ts +22 -2
- package/dist/components/Slide/Player.es.js +695 -474
- package/dist/components/Slide/Player.es.js.map +1 -1
- package/dist/components/Slide/Slide.cjs.js +1 -1
- package/dist/components/Slide/Slide.cjs.js.map +1 -1
- package/dist/components/Slide/Slide.es.js +673 -595
- package/dist/components/Slide/Slide.es.js.map +1 -1
- package/dist/components/Slide/Slide.stories.d.ts +2 -0
- package/dist/components/Slide/SubtitleOverlay.cjs.js.map +1 -1
- package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
- package/dist/components/Slide/constants.cjs.js +1 -1
- package/dist/components/Slide/constants.cjs.js.map +1 -1
- package/dist/components/Slide/constants.d.ts +4 -2
- package/dist/components/Slide/constants.es.js +4 -2
- package/dist/components/Slide/constants.es.js.map +1 -1
- package/dist/components/Slide/useSlide.cjs.js +1 -1
- package/dist/components/Slide/useSlide.cjs.js.map +1 -1
- package/dist/components/Slide/useSlide.d.ts +2 -0
- package/dist/components/Slide/useSlide.es.js +124 -105
- package/dist/components/Slide/useSlide.es.js.map +1 -1
- package/dist/components/Slide/utils/audioSegments.cjs.js +2 -0
- package/dist/components/Slide/utils/audioSegments.cjs.js.map +1 -0
- package/dist/components/Slide/utils/audioSegments.d.ts +2 -0
- package/dist/components/Slide/utils/audioSegments.es.js +21 -0
- package/dist/components/Slide/utils/audioSegments.es.js.map +1 -0
- package/dist/components/Slide/utils/audioSegments.test.d.ts +1 -0
- package/dist/components/Slide/utils/playbackSequence.cjs.js +1 -1
- package/dist/components/Slide/utils/playbackSequence.cjs.js.map +1 -1
- package/dist/components/Slide/utils/playbackSequence.d.ts +10 -0
- package/dist/components/Slide/utils/playbackSequence.es.js +15 -6
- package/dist/components/Slide/utils/playbackSequence.es.js.map +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.js +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.cjs.js.map +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.d.ts +1 -1
- package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js +14 -5
- package/dist/components/Slide/utils/playerKeyboardShortcuts.es.js.map +1 -1
- package/dist/components/Slide/utils/segmentSeek.cjs.js +2 -0
- package/dist/components/Slide/utils/segmentSeek.cjs.js.map +1 -0
- package/dist/components/Slide/utils/segmentSeek.d.ts +8 -0
- package/dist/components/Slide/utils/segmentSeek.es.js +31 -0
- package/dist/components/Slide/utils/segmentSeek.es.js.map +1 -0
- package/dist/components/Slide/utils/segmentSeek.test.d.ts +1 -0
- package/dist/components/Slide/utils/streamingNavigation.cjs.js.map +1 -1
- package/dist/components/Slide/utils/streamingNavigation.es.js.map +1 -1
- package/dist/components/Slide/utils/subtitleCue.cjs.js +2 -2
- package/dist/components/Slide/utils/subtitleCue.cjs.js.map +1 -1
- package/dist/components/Slide/utils/subtitleCue.d.ts +31 -0
- package/dist/components/Slide/utils/subtitleCue.es.js +157 -6
- package/dist/components/Slide/utils/subtitleCue.es.js.map +1 -1
- package/dist/components/Slide/utils/subtitleJumpNavigation.cjs.js +2 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.cjs.js.map +1 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.d.ts +10 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.es.js +22 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.es.js.map +1 -0
- package/dist/components/Slide/utils/subtitleJumpNavigation.test.d.ts +1 -0
- package/dist/lib/interaction-defaults.cjs.js.map +1 -1
- package/dist/lib/interaction-defaults.es.js.map +1 -1
- package/dist/node_modules/@braintree/sanitize-url/dist/index.cjs.js +1 -1
- package/dist/node_modules/@braintree/sanitize-url/dist/index.es.js +1 -1
- package/dist/node_modules/classnames/index.cjs.js +1 -1
- package/dist/node_modules/classnames/index.es.js +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/fast-forward.es.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rewind.es.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-back.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-back.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-back.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-back.es.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-forward.cjs.js +7 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-forward.cjs.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-forward.es.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/skip-forward.es.js.map +1 -0
- package/package.json +1 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js +0 -7
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.es.js +0 -16
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.es.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js +0 -7
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js.map +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.es.js +0 -16
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-cw.es.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorToolbar.cjs.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <Image strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","Image","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditorToolbar.cjs.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <Image strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","Image","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditorToolbar.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/EditorToolbar.tsx"],"sourcesContent":["import { memo, useCallback } from \"react\";\nimport {\n Braces,\n FileType,\n Image as ImageIcon,\n TextCursorInput,\n // Link,\n SquareCheck,\n SquarePlay,\n CircleCheck,\n} from \"lucide-react\";\nimport { SelectedOption } from \"../types\";\nimport SearchBracesIcon from \"./icons/SearchBracesIcon\";\nimport ButtonIcon from \"./icons/ButtonIcon\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../ui/tooltip\";\n\ntype ToolbarLabels = {\n confirmOutput: string | undefined;\n insertLink: string | undefined;\n insertButton: string | undefined;\n insertSingleChoice: string | undefined;\n insertMultiChoice: string | undefined;\n insertInput: string | undefined;\n variable: string;\n image: string;\n video: string;\n addVariable: string;\n search: string;\n};\n\ninterface EditorToolbarProps {\n disabled?: boolean;\n labels: ToolbarLabels;\n onSelect: (selectedOption: SelectedOption) => void;\n onInsertVariablePlaceholder?: () => void;\n onVariableSearchToggle?: (button: HTMLButtonElement) => void;\n onVariableSearchClose?: () => void;\n onInsertConfirmOutput?: () => void;\n onInsertLink?: () => void;\n onInsertButton?: () => void;\n onInsertSingleChoice?: () => void;\n onInsertMultiChoice?: () => void;\n onInsertInputField?: () => void;\n variableSearchActive?: boolean;\n rightSlot?: React.ReactNode;\n}\n\n/**\n * EditorToolbar renders quick action buttons that mirror the slash commands.\n */\nconst ICON_SIZE = 18;\n\nconst EditorToolbar: React.FC<EditorToolbarProps> = ({\n disabled = false,\n labels,\n onSelect,\n onInsertVariablePlaceholder,\n onVariableSearchToggle,\n onVariableSearchClose,\n onInsertConfirmOutput,\n // onInsertLink,\n onInsertButton,\n onInsertSingleChoice,\n onInsertMultiChoice,\n onInsertInputField,\n variableSearchActive = false,\n rightSlot,\n}) => {\n const handleAddVariable = useCallback(() => {\n if (disabled) {\n return;\n }\n onVariableSearchClose?.();\n onInsertVariablePlaceholder?.();\n }, [disabled, onInsertVariablePlaceholder, onVariableSearchClose]);\n\n const handleSearchToggle = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return;\n }\n onVariableSearchToggle?.(event.currentTarget);\n },\n [disabled, onVariableSearchToggle]\n );\n\n const handleConfirmOutput = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertConfirmOutput?.();\n }, [disabled, onInsertConfirmOutput]);\n\n // const handleInsertLink = useCallback(() => {\n // if (disabled) {\n // return;\n // }\n // onInsertLink?.();\n // }, [disabled, onInsertLink]);\n\n const handleInsertButton = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertButton?.();\n }, [disabled, onInsertButton]);\n\n const handleInsertSingleChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertSingleChoice?.();\n }, [disabled, onInsertSingleChoice]);\n\n const handleInsertMultiChoice = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertMultiChoice?.();\n }, [disabled, onInsertMultiChoice]);\n\n const handleInsertInputField = useCallback(() => {\n if (disabled) {\n return;\n }\n onInsertInputField?.();\n }, [disabled, onInsertInputField]);\n\n return (\n <TooltipProvider delayDuration={150}>\n <div className=\"markdown-flow-editor-toolbar\" aria-disabled={disabled}>\n <div className=\"markdown-flow-editor-toolbar-left\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleAddVariable}\n >\n <Braces strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.addVariable ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleSearchToggle}\n data-active={\n !disabled && variableSearchActive ? \"true\" : undefined\n }\n aria-label={labels.search}\n title={labels.search}\n >\n <SearchBracesIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.search ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertSingleChoice}\n aria-label={labels.insertSingleChoice}\n title={labels.insertSingleChoice}\n >\n <CircleCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertSingleChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertMultiChoice}\n aria-label={labels.insertMultiChoice}\n title={labels.insertMultiChoice}\n >\n <SquareCheck strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertMultiChoice ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertInputField}\n aria-label={labels.insertInput}\n title={labels.insertInput}\n >\n <TextCursorInput strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertInput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertButton}\n aria-label={labels.insertButton}\n title={labels.insertButton}\n >\n <ButtonIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertButton ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleConfirmOutput}\n aria-label={labels.confirmOutput}\n title={labels.confirmOutput}\n >\n <FileType strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.confirmOutput ?? \"\"}\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Image)}\n aria-label={labels.image}\n title={labels.image}\n >\n <ImageIcon strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.image ?? \"\"}</TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => onSelect(SelectedOption.Video)}\n aria-label={labels.video}\n title={labels.video}\n >\n <SquarePlay strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">{labels.video ?? \"\"}</TooltipContent>\n </Tooltip>\n </div>\n {rightSlot ? (\n <div className=\"markdown-flow-editor-toolbar-right-wrapper\">\n {rightSlot}\n </div>\n ) : null}\n {/* <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleInsertLink}\n aria-label={labels.insertLink}\n title={labels.insertLink}\n >\n <Link strokeWidth={1.75} size={ICON_SIZE} />\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"top\">\n {labels.insertLink ?? \"\"}\n </TooltipContent>\n </Tooltip> */}\n </div>\n </TooltipProvider>\n );\n};\n\nexport default memo(EditorToolbar);\n"],"names":["ICON_SIZE","EditorToolbar","disabled","labels","onSelect","onInsertVariablePlaceholder","onVariableSearchToggle","onVariableSearchClose","onInsertConfirmOutput","onInsertButton","onInsertSingleChoice","onInsertMultiChoice","onInsertInputField","variableSearchActive","rightSlot","handleAddVariable","useCallback","handleSearchToggle","event","handleConfirmOutput","handleInsertButton","handleInsertSingleChoice","handleInsertMultiChoice","handleInsertInputField","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Braces","TooltipContent","SearchBracesIcon","CircleCheck","SquareCheck","TextCursorInput","ButtonIcon","FileType","SelectedOption","ImageIcon","SquarePlay","EditorToolbar$1","memo"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),tt=require("../../lib/utils.cjs.js"),Ct=require("./MobilePlayerSettingsSheet.cjs.js"),wt=require("./constants.cjs.js"),Mt=require("./utils/mobileScreenMode.cjs.js"),Lt=require("./utils/audioCompletion.cjs.js"),At=require("./utils/playerKeyboardShortcutContext.cjs.js"),ee=require("./utils/playerKeyboardShortcuts.cjs.js"),Nt=require("./utils/playbackSource.cjs.js"),vt=require("./utils/playbackPreference.cjs.js"),qt=require("./utils/playerCustomActions.cjs.js"),rt=require("./utils/playerNavigationContext.cjs.js");;/* empty css */const Tt=require("../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.cjs.js"),Kt=require("../../node_modules/lucide-react/dist/esm/icons/volume-2.cjs.js"),Pt=require("../../node_modules/lucide-react/dist/esm/icons/captions.cjs.js"),Ut=require("../../node_modules/lucide-react/dist/esm/icons/captions-off.cjs.js"),Ft=require("../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js"),Wt=require("../../node_modules/lucide-react/dist/esm/icons/rotate-cw.cjs.js"),Ot=require("../../node_modules/lucide-react/dist/esm/icons/scan-line.cjs.js"),Bt=require("../../node_modules/lucide-react/dist/esm/icons/maximize.cjs.js"),Vt=require("../../node_modules/lucide-react/dist/esm/icons/file-pen-line.cjs.js"),nt=new Map,st=R=>{if(typeof window>"u"||!R||nt.has(R))return;const j=window.document.createElement("audio");j.preload="auto",j.setAttribute("playsinline","true"),j.src=R,j.load(),nt.set(R,j)},Ht=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M12 10H16V24H12V10ZM18 10H22V24H18V10Z",fill:"white"})]}),$t=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M13.3333 10L23.3333 16.6667L13.3333 23.3333V10Z",fill:"white"})]}),D={fullscreen:"F",next:"→",notes:"N",playback:"Space",previous:"←",subtitle:"C"},Zt=(R,j)=>R?`${R} (${j})`:j,zt=({audioList:R=[],className:j,currentAudioIndex:m=-1,defaultPlaying:b=!0,isPlaybackPaused:v=!1,isAutoAdvanceEnabled:U=!0,useAutoAdvanceToggle:L=!1,onLoadingChange:Se,onPlaybackPreferenceChange:Re,onPlaybackStarted:ge,onPlaybackTimeChange:te,onSubtitleToggle:X,onPrev:re,onNext:ne,onFullscreen:G,isFullscreen:Ee=!1,mobileViewMode:at=Mt.DEFAULT_MOBILE_VIEW_MODE,settingsPortalContainer:lt,onMobileViewModeChange:_e,onEnded:je,onAutoAdvanceToggle:Ce,onInteractionToggle:se,hasInteraction:fe=!1,isInteractionOpen:J=!1,isSubtitleEnabled:de=!0,prevDisabled:me=!1,nextDisabled:pe=!1,showControls:ye=!0,enableKeyboardShortcuts:ct=!0,customActions:we,customActionContext:Me,texts:Le,onFocusCapture:Ae,onPointerDown:Ne,...ot})=>{const it=t.useId(),ve=t.useContext(At.PlayerKeyboardShortcutContext),p=t.useRef(null),qe=t.useRef(J),q=t.useRef(null),Te=t.useRef(null),C=t.useRef(0),c=t.useRef(null),ue=t.useRef(void 0),A=t.useRef([]),ae=t.useRef(L?U:b),Q=t.useRef(!1),Ke=t.useRef(!1),y=t.useRef(!1),T=t.useRef(null),H=t.useRef(null),x=t.useRef(!1),a=t.useRef(!1),h=t.useRef(null),w=t.useRef(!1),F=t.useRef(null),he=t.useRef(0),K=t.useRef("unknown"),[le,i]=t.useState(b),[Pe,$]=t.useState(!1),W=ve?.ownerId??it,N=ct&&(ve?.enabled??!0),f=m>=0?R[m]:void 0,O=f?.audioUrl,g=t.useMemo(()=>[...f?.audioSegments??[]].sort((e,r)=>e.segment_index-r.segment_index),[f?.audioSegments]),Ue=t.useMemo(()=>qt.toPlayerCustomActionList(we,Me),[Me,we]),Fe=Ue.length+5,ft=t.useMemo(()=>({"--slide-player-mobile-control-count":String(Fe)}),[Fe]),l=t.useMemo(()=>({...wt.DEFAULT_SLIDE_PLAYER_TEXTS,...Le}),[Le]),be=t.useMemo(()=>f?f.audioKey??`${String(f.sequenceNumber??"none")}:${String(f.audioUrl??"")}`:"none",[f]),dt=L?U:le,We=L?U?l.pauseAutoplayLabel:l.playAutoplayLabel:le?l.pauseLabel:l.playLabel,Oe=Ee?l.exitFullscreenLabel:l.enterFullscreenLabel,Z=t.useCallback((e,r,u)=>({ariaKeyShortcuts:N?u:void 0,title:N?Zt(e,r):e}),[N]),Be=Z(l.subtitleToggleAriaLabel,D.subtitle,"c"),Ve=Z(l.previousLabel,D.previous,"ArrowLeft"),He=Z(We,D.playback,"Space"),$e=Z(l.nextLabel,D.next,"ArrowRight"),Ze=Z(Oe,D.fullscreen,"f"),ze=Z(l.notesLabel,D.notes,"n"),ce=t.useCallback(()=>{N&&ee.activatePlayerKeyboardShortcutOwner(W)},[W,N]),mt=t.useCallback(e=>{ce(),Ne?.(e)},[ce,Ne]),pt=t.useCallback(e=>{ce(),Ae?.(e)},[ce,Ae]);t.useEffect(()=>{ue.current=f},[f]),t.useEffect(()=>{ae.current=L?U:b},[b,U,L]),t.useEffect(()=>{ye||$(!1)},[ye]),t.useEffect(()=>{!qe.current&&J&&$(!1),qe.current=J},[J]),t.useEffect(()=>{A.current=g},[g]),t.useEffect(()=>{const e=f?.audioUrl,r=m>=0?R[m+1]?.audioUrl:void 0;st(e),st(r)},[R,f?.audioUrl,m]);const s=t.useCallback((e,r=null)=>{Ke.current===e&&(!e||r===null)||(Ke.current=e,Se?.({loading:e,reason:e?r:null}))},[Se]),B=t.useCallback(e=>{ae.current=e,Re?.(e)},[Re]),I=t.useCallback(()=>L?{shouldContinuePlayback:ae.current}:{shouldContinuePlayback:vt.shouldKeepPlayingAfterNavigation({defaultPlaying:ae.current,isPausedByUser:y.current})},[L]),Ye=t.useCallback(e=>e instanceof DOMException?e.name==="NotAllowedError"||e.name==="SecurityError":!1,[]),P=t.useCallback(()=>b&&!v&&!y.current&&K.current!=="blocked",[b,v]),De=t.useCallback(e=>e?e.startsWith("data:")?e:`data:audio/mpeg;base64,${e}`:"",[]),Xe=t.useCallback(()=>{const e=c.current;return e==null||e<=0?0:A.current.slice(0,e).reduce((r,u)=>r+Math.max(Number(u.duration_ms??0),0),0)/1e3},[]),V=t.useCallback(e=>e<=0?0:A.current.slice(0,e).reduce((r,u)=>r+Math.max(Number(u.duration_ms??0),0),0),[]),Ge=t.useCallback(()=>{const e=p.current;return e?T.current==="segment"?V(C.current)+Math.max(e.currentTime,0)*1e3:h.current!==null&&e.readyState===0?h.current*1e3:Math.max(e.currentTime,0)*1e3:c.current!=null?V(c.current):0},[V]),k=t.useCallback(e=>{const r=Math.max(e,0);he.current!==r&&(he.current=r,te?.(r))},[te]),o=t.useCallback(()=>{k(Ge())},[Ge,k]),d=t.useCallback(()=>{typeof window>"u"||F.current===null||(window.cancelAnimationFrame(F.current),F.current=null)},[]),Je=t.useCallback(()=>{if(typeof window>"u"||F.current!==null)return;const e=()=>{o();const r=p.current;if(!r||r.paused||r.ended){F.current=null;return}F.current=window.requestAnimationFrame(e)};F.current=window.requestAnimationFrame(e)},[o]),z=t.useCallback(()=>{const e=p.current;e&&(d(),a.current=!1,y.current=!1,Q.current=!1,T.current=null,h.current=null,x.current=!1,w.current=!1,H.current=null,e.pause(),e.removeAttribute("src"),e.load(),q.current=null,C.current=0,c.current=null,k(0),i(!1),s(!1))},[k,d,s]),E=t.useCallback(e=>{const r=p.current;if(!r)return!1;const u=r.play();return u&&typeof u.then=="function"&&u.then(()=>{K.current==="unknown"&&(K.current="auto"),a.current=!1,w.current=!1}).catch(S=>{K.current==="unknown"&&Ye(S)&&(K.current="blocked",a.current=!1,s(!1)),w.current=!1,i(!1)}),!0},[Ye,s]),M=t.useCallback((e,r)=>{const u=p.current,S=A.current[e];if(!u||!S)return!1;const _=De(S.audio_data);C.current=e,c.current=null,x.current=!1,w.current=!0,H.current="segment",k(V(e));const ie=P();a.current=ie,s(!1);const jt=q.current!==_;return T.current="segment",jt&&(u.pause(),u.removeAttribute("src"),u.load(),q.current=_,u.src=_,u.load()),h.current=0,u.readyState>0&&(u.currentTime=0,h.current=null),ie?E(`start-segment:${r}`):(a.current=!1,w.current=!1,u.pause(),i(!1),!0)},[P,De,V,k,E,s]),Y=t.useCallback(e=>{d(),a.current=!1,x.current=!1,w.current=!1,o(),i(!1),s(!1),m>=0&&je?.(m)},[m,je,d,o,s]),oe=t.useCallback(e=>{const r=p.current;return!r||T.current!=="url"||!Lt.hasReachedAudioEnd({currentTimeSeconds:Math.max(r.currentTime,0),durationSeconds:r.duration})?!1:(a.current=!1,r.pause(),Y(e),!0)},[Y]),Qe=t.useCallback(()=>{const e=C.current+1,r=A.current,u=r[e],S=ue.current,_=r.some(ie=>ie.is_final);if(u){M(e,"ended");return}if(S?.isAudioStreaming||!_){C.current=e,c.current=e,x.current=!0,a.current=b,k(V(e)),i(!1),s(!0,"waitingForMoreAudio");return}Y("segments-completed")},[b,Y,V,k,M,s]);t.useEffect(()=>{if(Te.current===be)return;Te.current=be,C.current=0,c.current=null,x.current=!1,y.current=!1,Q.current=!1,a.current=!1,w.current=!1,T.current=null,H.current=null,q.current=null,d(),k(0),s(!1);const e=p.current;e&&(e.pause(),e.removeAttribute("src"),e.load(),i(!1))},[m,be,g.length,O,k,d,s]),t.useEffect(()=>{const e=p.current;if(e){if(v){Q.current=!!(ue.current&&!y.current&&(!e.paused||a.current||c.current!==null)),a.current=!1,s(!1),e.pause(),i(!1);return}if(!(!Q.current||!ue.current||y.current)){if(Q.current=!1,c.current!==null){if(c.current<A.current.length){M(c.current,"external-resume");return}a.current=!0,s(!0,"waitingForMoreAudio");return}if(!q.current&&A.current.length>0){M(Math.min(C.current,A.current.length-1),"external-resume-init");return}e.paused&&(a.current=!0,E("external-resume"))}}},[v,M,E,s]),t.useEffect(()=>{const e=p.current;if(!e)return;if(!f){z();return}if(v){a.current=!1,s(!1),e.pause(),i(!1);return}const r=Nt.resolveAudioPlaybackSourceType({activeSourceType:T.current,hasAudioUrl:!!O,segmentCount:g.length,preferredSourceType:H.current,waitingSegmentIndex:c.current});if(r&&H.current!==r&&(H.current=r),r==="url"&&O){const u=q.current!==O,S=P();if(u){const _=c.current!==null?Xe():0;e.pause(),e.removeAttribute("src"),e.load(),q.current=O,T.current="url",e.src=O,e.load(),h.current=_,k(_*1e3),e.readyState>0&&(e.currentTime=_,h.current=null)}if(a.current=S,x.current=!1,w.current=!1,s(!1),!S){a.current=!1,e.pause(),i(!1);return}E(u?"sync-url-init":"sync-url");return}if(r==="segment"&&c.current!==null){if(c.current<g.length){if(y.current){i(!1),s(!1);return}M(c.current,"wait-resume");return}x.current=!0,a.current=P(),i(!1),s(P());return}if(r==="segment"&&!g.length){if(f.isAudioStreaming){c.current=C.current,x.current=!0,a.current=P(),i(!1),s(P());return}z();return}if(r==="segment"&&!q.current){M(Math.min(C.current,g.length-1),"effect-init");return}if(r!=="segment"){z();return}if(!b||y.current){a.current=!1,e.pause(),i(!1);return}e.paused&&(a.current=!0,E("sync-paused-retry"))},[f,m,g,O,b,v,P,k,z,M,E,Xe,s]),t.useEffect(()=>z,[z]),t.useEffect(()=>d,[d]);const yt=t.useCallback(()=>{o(),Je(),i(!0),s(!1),ge?.()},[ge,Je,o,s]),ht=t.useCallback(()=>{x.current||w.current||(d(),o(),i(!1))},[m,d,o]),bt=t.useCallback(()=>{const e=p.current;e&&h.current!==null&&(e.currentTime=h.current,h.current=null),o(),!oe("canplay-seek-finished")&&(!a.current||!b||E("canplay"))},[m,b,oe,o,E]),xt=t.useCallback(()=>{const e=p.current;e&&h.current!==null&&(e.currentTime=h.current,h.current=null),o(),oe("metadata-seek-finished")},[m,oe,o]),kt=t.useCallback(()=>{o()},[o]),St=t.useCallback(()=>{x.current||s(!0,"loadingAudio")},[s]),Rt=t.useCallback(()=>{if(x.current){s(!0,"waitingForMoreAudio");return}s(!0,"loadingAudio")},[s]),Ie=t.useCallback(()=>{o()},[o]),gt=t.useCallback(()=>{const e=T.current==="url"||A.current.length===0;if(d(),w.current=!1,e){Y("url-ended");return}Qe()},[Y,Qe,d]),Et=t.useCallback(()=>{d(),o(),i(!1),s(!1)},[d,o,s]),_t=t.useCallback(e=>{_e?.(e),$(!1)},[_e]),xe=t.useCallback(()=>{if(L){const r=!U;return B(r),Ce?.(r),!0}const e=p.current;return v||!e||!f?!1:c.current!==null?le?(B(!1),a.current=!1,y.current=!0,c.current=null,x.current=!1,i(!1),s(!1),e.pause(),!0):(B(!0),K.current="manual",y.current=!1,a.current=!0,s(!0,"waitingForMoreAudio"),!0):!e.src&&g.length>0?(B(!0),K.current="manual",y.current=!1,M(Math.min(C.current,g.length-1),"toggle"),!0):e.paused?(B(!0),K.current="manual",y.current=!1,a.current=!0,E("toggle-resume"),!0):(B(!1),a.current=!1,y.current=!0,e.pause(),!0)},[f,g.length,U,v,le,Ce,M,E,s,B,L]);t.useEffect(()=>{if(N)return ee.registerPlayerKeyboardShortcutOwner(W)},[W,N]);const ke=t.useMemo(()=>({fullscreen:()=>G?(G(),!0):!1,interaction:()=>se?(fe&&se(),!0):!1,next:()=>ne?(pe||ne(rt.suppressPlayerControlsWakeAfterNavigation(I())),!0):!1,previous:()=>re?(me||re(rt.suppressPlayerControlsWakeAfterNavigation(I())),!0):!1,subtitle:()=>X?(X(),!0):!1,togglePlayback:()=>(xe(),!0)}),[I,fe,pe,G,se,ne,re,X,me,xe]),et=t.useRef(ke);return t.useEffect(()=>{et.current=ke},[ke]),t.useEffect(()=>{if(!N||typeof document>"u")return;const e=r=>{if(!ee.isActivePlayerKeyboardShortcutOwner(W))return;const u=ee.getPlayerKeyboardShortcutAction(r);if(!u||ee.shouldIgnorePlayerKeyboardShortcutEvent(r,u))return;let S=!1;const _=et.current[u];S=_(),S&&r.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[W,N]),t.useEffect(()=>{te?.(he.current)},[te]),n.jsxRuntimeExports.jsxs("div",{...ot,"data-slide-player-shortcut-owner":W,className:tt.cn("slide-player",j),onFocusCapture:pt,onPointerDown:mt,children:[n.jsxRuntimeExports.jsx("audio",{ref:p,preload:"auto",playsInline:!0,onLoadStart:St,onLoadedMetadata:xt,onCanPlay:bt,onPlay:yt,onPause:ht,onWaiting:Rt,onSeeking:Ie,onSeeked:Ie,onTimeUpdate:kt,onEnded:gt,onError:Et}),ye?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Ct.default,{container:lt,labels:{closeSettings:l.closeSettingsLabel,fullscreen:l.fullscreenLabel,nonFullscreen:l.nonFullscreenLabel,screen:l.screenLabel,screenMode:l.screenModeLabel,subtitle:l.subtitleLabel,subtitleToggle:l.subtitleToggleAriaLabel,title:l.settingsTitle},isSubtitleEnabled:de,onClose:()=>$(!1),onOpenChange:$,onSubtitleToggle:X??(()=>{}),onViewModeChange:_t,open:Pe,viewMode:at}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__controls",style:ft,children:[n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[n.jsxRuntimeExports.jsx("button",{"aria-expanded":Pe,"aria-haspopup":"dialog","aria-label":l.moreOptionsAriaLabel,className:"slide-player__action slide-player__action--mobile-more",onClick:()=>{$(e=>!e)},type:"button",children:n.jsxRuntimeExports.jsx(Tt.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":l.volumeAriaLabel,className:"hidden",type:"button",children:n.jsxRuntimeExports.jsx(Kt.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":l.subtitleToggleAriaLabel,"aria-keyshortcuts":Be.ariaKeyShortcuts,"aria-pressed":de,className:"slide-player__action slide-player__action--subtitle",onClick:X,title:Be.title,type:"button",children:de?n.jsxRuntimeExports.jsx(Pt.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(Ut.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":Ve.ariaKeyShortcuts,"aria-label":l.previousLabel,className:"slide-player__action slide-player__action--prev",disabled:me,onClick:()=>{re?.(I())},title:Ve.title,type:"button",children:n.jsxRuntimeExports.jsx(Ft.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":We,"aria-keyshortcuts":He.ariaKeyShortcuts,className:"slide-player__toggle slide-player__toggle--playback",onClick:()=>{xe()},title:He.title,type:"button",children:dt?n.jsxRuntimeExports.jsx(Ht,{}):n.jsxRuntimeExports.jsx($t,{})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":$e.ariaKeyShortcuts,"aria-label":l.nextLabel,className:"slide-player__action slide-player__action--next",disabled:pe,onClick:()=>{ne?.(I())},title:$e.title,type:"button",children:n.jsxRuntimeExports.jsx(Wt.default,{className:"slide-player__icon",strokeWidth:2.25})}),G?n.jsxRuntimeExports.jsx("button",{"aria-label":Oe,"aria-keyshortcuts":Ze.ariaKeyShortcuts,className:"slide-player__action slide-player__action--fullscreen",onClick:G,title:Ze.title,type:"button",children:Ee?n.jsxRuntimeExports.jsx(Ot.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(Bt.default,{className:"slide-player__icon",strokeWidth:2.25})}):null]}),n.jsxRuntimeExports.jsx("div",{className:"slide-player__separator"}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[Ue.map((e,r)=>n.jsxRuntimeExports.jsx(t.Fragment,{children:e},`custom-action-${r}`)),n.jsxRuntimeExports.jsx("button",{"aria-label":l.notesLabel,"aria-keyshortcuts":ze.ariaKeyShortcuts,className:tt.cn("slide-player__action slide-player__action--notes",J&&"slide-player__action--active"),disabled:!fe,onClick:se,title:ze.title,type:"button",children:n.jsxRuntimeExports.jsx(Vt.default,{className:"slide-player__icon",strokeWidth:2.25})})]})]})]}):null]})},ut=t.memo(zt);ut.displayName="Player";exports.default=ut;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),Et=require("../../lib/utils.cjs.js"),Qt=require("./MobilePlayerSettingsSheet.cjs.js"),It=require("./constants.cjs.js"),er=require("./utils/mobileScreenMode.cjs.js"),tr=require("./utils/audioCompletion.cjs.js"),rr=require("./utils/playerKeyboardShortcutContext.cjs.js"),ae=require("./utils/playerKeyboardShortcuts.cjs.js"),nr=require("./utils/playbackSource.cjs.js"),ur=require("./utils/playbackPreference.cjs.js"),sr=require("./utils/playerCustomActions.cjs.js"),qe=require("./utils/playerNavigationContext.cjs.js"),Ke=require("./utils/segmentSeek.cjs.js"),_t=require("./utils/audioSegments.cjs.js"),jt=require("./utils/subtitleCue.cjs.js");;/* empty css */const lr=require("../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.cjs.js"),ar=require("../../node_modules/lucide-react/dist/esm/icons/volume-2.cjs.js"),cr=require("../../node_modules/lucide-react/dist/esm/icons/skip-back.cjs.js"),ir=require("../../node_modules/lucide-react/dist/esm/icons/skip-forward.cjs.js"),or=require("../../node_modules/lucide-react/dist/esm/icons/rewind.cjs.js"),fr=require("../../node_modules/lucide-react/dist/esm/icons/fast-forward.cjs.js"),dr=require("../../node_modules/lucide-react/dist/esm/icons/captions.cjs.js"),mr=require("../../node_modules/lucide-react/dist/esm/icons/captions-off.cjs.js"),pr=require("../../node_modules/lucide-react/dist/esm/icons/scan-line.cjs.js"),br=require("../../node_modules/lucide-react/dist/esm/icons/maximize.cjs.js"),hr=require("../../node_modules/lucide-react/dist/esm/icons/file-pen-line.cjs.js"),Mt=new Map,wt=o=>{if(typeof window>"u"||!o||Mt.has(o))return;const f=window.document.createElement("audio");f.preload="auto",f.setAttribute("playsinline","true"),f.src=o,f.load(),Mt.set(o,f)},yr=(o,f)=>f!==null&&f.audioList===o&&f.subtitleCueLists.length===o.length&&o.every((a,x)=>{const S=a.element?.subtitle_cues;return f.subtitleCueLists[x]===S&&f.subtitleCueLengths[x]===(S?.length??0)}),xr=o=>{const f=o.map(a=>a.element?.subtitle_cues);return{audioList:o,subtitleCueLists:f,subtitleCueLengths:f.map(a=>a?.length??0),tracks:f.map(a=>({subtitleCues:a??[]}))}},Sr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M12 10H16V24H12V10ZM18 10H22V24H18V10Z",fill:"white"})]}),kr=()=>n.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"34",height:"34",viewBox:"0 0 34 34",fill:"none",children:[n.jsxRuntimeExports.jsx("path",{d:"M16.6667 33.3333C25.8714 33.3333 33.3333 25.8714 33.3333 16.6667C33.3333 7.46192 25.8714 0 16.6667 0C7.46192 0 0 7.46192 0 16.6667C0 25.8714 7.46192 33.3333 16.6667 33.3333Z",fill:"#0A0A0A"}),n.jsxRuntimeExports.jsx("path",{d:"M13.3333 10L23.3333 16.6667L13.3333 23.3333V10Z",fill:"white"})]}),V={fullscreen:"F",next:"→",nextSubtitle:"Shift+→",notes:"N",playback:"Space",previous:"←",previousSubtitle:"Shift+←",subtitle:"C"},gr=250,Rr=(o,f)=>o?`${o} (${f})`:f,Cr=({audioList:o=[],className:f,currentAudioIndex:a=-1,defaultPlaying:x=!0,isPlaybackPaused:S=!1,isAutoAdvanceEnabled:H=!0,useAutoAdvanceToggle:q=!1,onLoadingChange:Ue,onPlaybackPreferenceChange:Pe,onPlaybackStarted:We,onPlaybackTimeChange:ce,onSubtitleToggle:I,onPrev:ie,onNext:oe,onSubtitleJump:fe,canJumpToSubtitleTarget:Ee,onFullscreen:ee,isFullscreen:Fe=!1,mobileViewMode:Tt=er.DEFAULT_MOBILE_VIEW_MODE,settingsPortalContainer:Lt,onMobileViewModeChange:Be,onEnded:Oe,onAutoAdvanceToggle:Ve,onInteractionToggle:de,hasInteraction:_e=!1,isInteractionOpen:te=!1,isSubtitleEnabled:je=!0,prevDisabled:Me=!1,nextDisabled:we=!1,showControls:ve=!0,enableKeyboardShortcuts:At=!0,subtitleSeekRequest:W=null,customActions:He,customActionContext:$e,texts:Je,onFocusCapture:Ze,onPointerDown:ze,...Nt})=>{const qt=t.useId(),Ye=t.useContext(rr.PlayerKeyboardShortcutContext),R=t.useRef(null),De=t.useRef(te),L=t.useRef(null),Xe=t.useRef(null),A=t.useRef(0),d=t.useRef(null),me=t.useRef(void 0),w=t.useRef([]),re=t.useRef(q?H:x),ne=t.useRef(!1),Ge=t.useRef(!1),k=t.useRef(!1),N=t.useRef(null),$=t.useRef(null),j=t.useRef(!1),c=t.useRef(!1),g=t.useRef(null),v=t.useRef(!1),J=t.useRef(null),pe=t.useRef(0),Qe=t.useRef(()=>{}),be=t.useRef(null),ue=t.useRef(null),Ie=t.useRef(null),et=t.useRef(null),K=t.useRef("unknown"),[he,p]=t.useState(x),[tt,D]=t.useState(!1),[X,Kt]=t.useState({next:!1,previous:!1}),Z=Ye?.ownerId??qt,U=At&&(Ye?.enabled??!0),m=a>=0?o[a]:void 0,E=m?.audioUrl,rt=m?.audioSegments,Ut=rt?.length??0,T=t.useMemo(()=>_t.getSortedAudioSegments(m),[m,Ut,rt]);let ye=et.current;yr(o,ye)||(ye=xr(o),et.current=ye);const nt=ye.tracks,ut=t.useMemo(()=>sr.toPlayerCustomActionList(He,$e),[$e,He]),st=ut.length+7,Pt=t.useMemo(()=>({"--slide-player-mobile-control-count":String(st)}),[st]),i=t.useMemo(()=>({...It.DEFAULT_SLIDE_PLAYER_TEXTS,...Je}),[Je]),Te=t.useMemo(()=>m?m.audioKey??`${String(m.sequenceNumber??"none")}:${String(m.audioUrl??"")}`:"none",[m]),Wt=q?H:he,lt=q?H?i.pauseAutoplayLabel:i.playAutoplayLabel:he?i.pauseLabel:i.playLabel,at=Fe?i.exitFullscreenLabel:i.enterFullscreenLabel,F=t.useCallback((e,r,s)=>({ariaKeyShortcuts:U?s:void 0,title:U?Rr(e,r):e}),[U]),ct=F(i.subtitleToggleAriaLabel,V.subtitle,"c"),it=F(i.previousLabel,V.previous,"ArrowLeft"),ot=F(i.previousSubtitleLabel,V.previousSubtitle,"Shift+ArrowLeft"),ft=F(lt,V.playback,"Space"),dt=F(i.nextLabel,V.next,"ArrowRight"),mt=F(i.nextSubtitleLabel,V.nextSubtitle,"Shift+ArrowRight"),pt=F(at,V.fullscreen,"f"),bt=F(i.notesLabel,V.notes,"n"),xe=t.useCallback(()=>{U&&ae.activatePlayerKeyboardShortcutOwner(Z)},[Z,U]),Ft=t.useCallback(e=>{xe(),ze?.(e)},[xe,ze]),Bt=t.useCallback(e=>{xe(),Ze?.(e)},[xe,Ze]);t.useEffect(()=>{me.current=m},[m]),t.useEffect(()=>{re.current=q?H:x},[x,H,q]),t.useEffect(()=>{ve||D(!1)},[ve]),t.useEffect(()=>{!De.current&&te&&D(!1),De.current=te},[te]),t.useEffect(()=>{w.current=T},[T]),t.useEffect(()=>{const e=m?.audioUrl,r=a>=0?o[a+1]?.audioUrl:void 0;wt(e),wt(r)},[o,m?.audioUrl,a]);const l=t.useCallback((e,r=null)=>{Ge.current===e&&(!e||r===null)||(Ge.current=e,Ue?.({loading:e,reason:e?r:null}))},[Ue]),P=t.useCallback(e=>{re.current=e,Pe?.(e)},[Pe]),z=t.useCallback(()=>q?{shouldContinuePlayback:re.current}:{shouldContinuePlayback:ur.shouldKeepPlayingAfterNavigation({defaultPlaying:re.current,isPausedByUser:k.current})},[q]),ht=t.useCallback(e=>e instanceof DOMException?e.name==="NotAllowedError"||e.name==="SecurityError":!1,[]),B=t.useCallback(()=>x&&!S&&!k.current&&K.current!=="blocked",[x,S]),yt=t.useCallback(e=>e?e.startsWith("data:")?e:`data:audio/mpeg;base64,${e}`:"",[]),xt=t.useCallback(()=>{const e=d.current;return e==null||e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0)/1e3},[]),Y=t.useCallback(e=>e<=0?0:w.current.slice(0,e).reduce((r,s)=>r+Math.max(Number(s.duration_ms??0),0),0),[]),Se=t.useCallback((e,r)=>!e||S?!1:e.audioUrl?!0:Ke.isPlaybackTimeCoveredBySegments(_t.getSortedAudioSegments(e),r),[S]),se=t.useCallback((e,r,s={})=>{const u=jt.getSubtitleCueJumpTarget({currentAudioIndex:a,currentTimeMs:r,direction:e,excludeTarget:s.excludeTarget,tracks:nt});return!u||!Se(o[u.audioIndex],u.timeMs)||u.audioIndex!==a&&(!fe||Ee&&!Ee(u))?null:u},[o,Ee,Se,a,fe,nt]),Le=t.useCallback((e,r=!1)=>{const s=Math.max(Number(e),0);if(!r&&be.current!==null&&Math.abs(s-be.current)<gr)return;be.current=s;const u={previous:se("previous",s)!==null,next:se("next",s)!==null};Kt(h=>h.previous===u.previous&&h.next===u.next?h:u)},[se]);t.useEffect(()=>{Qe.current=Le,Le(pe.current,!0)},[Le]);const ke=t.useCallback(()=>{const e=R.current;return e?N.current==="segment"?Y(A.current)+Math.max(e.currentTime,0)*1e3:g.current!==null&&e.readyState===0?g.current*1e3:Math.max(e.currentTime,0)*1e3:d.current!=null?Y(d.current):0},[Y]),C=t.useCallback(e=>{const r=Math.max(e,0);pe.current!==r&&(pe.current=r,jt.shouldClearSubtitleCueJumpTarget({currentAudioIndex:a,currentTimeMs:r,target:ue.current})&&(ue.current=null),ce?.(r),Qe.current(r))},[a,ce]),b=t.useCallback(()=>{C(ke())},[ke,C]),y=t.useCallback(()=>{typeof window>"u"||J.current===null||(window.cancelAnimationFrame(J.current),J.current=null)},[]),St=t.useCallback(()=>{if(typeof window>"u"||J.current!==null)return;const e=()=>{b();const r=R.current;if(!r||r.paused||r.ended){J.current=null;return}J.current=window.requestAnimationFrame(e)};J.current=window.requestAnimationFrame(e)},[b]),G=t.useCallback(()=>{const e=R.current;e&&(y(),c.current=!1,k.current=!1,ne.current=!1,N.current=null,g.current=null,j.current=!1,v.current=!1,$.current=null,e.pause(),e.removeAttribute("src"),e.load(),L.current=null,A.current=0,d.current=null,C(0),p(!1),l(!1))},[C,y,l]),_=t.useCallback(e=>{const r=R.current;if(!r)return!1;const s=r.play();return s&&typeof s.then=="function"&&s.then(()=>{K.current==="unknown"&&(K.current="auto"),c.current=!1,v.current=!1}).catch(u=>{K.current==="unknown"&&ht(u)&&(K.current="blocked",c.current=!1,l(!1)),v.current=!1,p(!1)}),!0},[ht,l]),M=t.useCallback((e,r,s={})=>{const u=R.current,h=w.current[e];if(!u||!h)return!1;const O=yt(h.audio_data),Ce=Math.max(Number(s.seekTimeSeconds??0),0);A.current=e,d.current=null,j.current=!1,v.current=!0,$.current="segment",C(Y(e)+Ce*1e3);const Ct=s.shouldResume??B();c.current=Ct,l(!1);const Gt=L.current!==O;return N.current="segment",Gt&&(u.pause(),u.removeAttribute("src"),u.load(),L.current=O,u.src=O,u.load()),g.current=Ce,u.readyState>0&&(u.currentTime=Ce,g.current=null),Ct?_(`start-segment:${r}`):(c.current=!1,v.current=!1,u.pause(),p(!1),!0)},[B,yt,Y,C,_,l]),ge=t.useCallback(e=>{const r=R.current;if(!r||!m||S)return!1;const s=Math.max(Number(e),0),u=!r.paused&&!r.ended||c.current||v.current||d.current!==null&&re.current&&!k.current,h=Ke.isPlaybackTimeCoveredBySegments(w.current,s)?Ke.resolveSegmentSeekTarget(w.current,s):null;if(be.current=null,y(),c.current=u,l(!1),u&&(K.current="manual",k.current=!1,P(!0)),h&&(N.current==="segment"||!E))return M(h.segmentIndex,"subtitle-seek-segment",{seekTimeSeconds:h.segmentTimeSeconds,shouldResume:u});if(E){const O=s/1e3;return L.current!==E&&(r.pause(),r.removeAttribute("src"),r.load(),L.current=E,N.current="url",$.current="url",r.src=E,r.load()),g.current=O,C(s),r.readyState>0&&(r.currentTime=O,g.current=null),u?_("subtitle-seek-url"):(c.current=!1,r.pause(),p(!1),!0)}return!1},[m,E,S,C,M,y,_,l,P]),le=t.useCallback(e=>{const r=se(e,ke(),{excludeTarget:e==="previous"?ue.current:null});if(r===null)return!1;if(r.audioIndex===a){const u=ge(r.timeMs);return u&&(ue.current=r),u}const s=!!fe?.(r,qe.suppressPlayerControlsWakeAfterNavigation(z()));return s&&(ue.current=r),s},[a,ke,z,se,fe,ge]),Q=t.useCallback(e=>{y(),c.current=!1,j.current=!1,v.current=!1,b(),p(!1),l(!1),a>=0&&Oe?.(a)},[a,Oe,y,b,l]),Re=t.useCallback(e=>{const r=R.current;return!r||N.current!=="url"||!tr.hasReachedAudioEnd({currentTimeSeconds:Math.max(r.currentTime,0),durationSeconds:r.duration})?!1:(c.current=!1,r.pause(),Q(e),!0)},[Q]),kt=t.useCallback(()=>{const e=A.current+1,r=w.current,s=r[e],u=me.current,h=r.some(O=>O.is_final);if(s){M(e,"ended");return}if(u?.isAudioStreaming||!h){A.current=e,d.current=e,j.current=!0,c.current=x,C(Y(e)),p(!1),l(!0,"waitingForMoreAudio");return}Q("segments-completed")},[x,Q,Y,C,M,l]);t.useEffect(()=>{if(Xe.current===Te)return;Xe.current=Te,A.current=0,d.current=null,j.current=!1,k.current=!1,ne.current=!1,c.current=!1,v.current=!1,N.current=null,$.current=null,L.current=null,y(),C(0),l(!1);const e=R.current;e&&(e.pause(),e.removeAttribute("src"),e.load(),p(!1))},[a,Te,T.length,E,C,y,l]),t.useEffect(()=>{const e=R.current;if(e){if(S){ne.current=!!(me.current&&!k.current&&(!e.paused||c.current||d.current!==null)),c.current=!1,l(!1),e.pause(),p(!1);return}if(!(!ne.current||!me.current||k.current)){if(ne.current=!1,d.current!==null){if(d.current<w.current.length){M(d.current,"external-resume");return}c.current=!0,l(!0,"waitingForMoreAudio");return}if(!L.current&&w.current.length>0){M(Math.min(A.current,w.current.length-1),"external-resume-init");return}e.paused&&(c.current=!0,_("external-resume"))}}},[S,M,_,l]),t.useEffect(()=>{const e=R.current;if(!e)return;if(!m){G();return}if(S){c.current=!1,l(!1),e.pause(),p(!1);return}const r=nr.resolveAudioPlaybackSourceType({activeSourceType:N.current,hasAudioUrl:!!E,segmentCount:T.length,preferredSourceType:$.current,waitingSegmentIndex:d.current});if(r&&$.current!==r&&($.current=r),r==="url"&&E){const s=L.current!==E,u=B();if(s){const h=d.current!==null?xt():0;e.pause(),e.removeAttribute("src"),e.load(),L.current=E,N.current="url",e.src=E,e.load(),g.current=h,C(h*1e3),e.readyState>0&&(e.currentTime=h,g.current=null)}if(c.current=u,j.current=!1,v.current=!1,l(!1),!u){c.current=!1,e.pause(),p(!1);return}_(s?"sync-url-init":"sync-url");return}if(r==="segment"&&d.current!==null){if(d.current<T.length){if(k.current){p(!1),l(!1);return}M(d.current,"wait-resume");return}j.current=!0,c.current=B(),p(!1),l(B());return}if(r==="segment"&&!T.length){if(m.isAudioStreaming){d.current=A.current,j.current=!0,c.current=B(),p(!1),l(B());return}G();return}if(r==="segment"&&!L.current){M(Math.min(A.current,T.length-1),"effect-init");return}if(r!=="segment"){G();return}if(!x||k.current){c.current=!1,e.pause(),p(!1);return}e.paused&&(c.current=!0,_("sync-paused-retry"))},[m,a,T,E,x,S,B,C,G,M,_,xt,l]),t.useEffect(()=>{if(!W||W.id===Ie.current||W.audioIndex!==a)return;const e=o[W.audioIndex];Se(e,W.timeMs)&&(Ie.current=W.id,ge(W.timeMs))},[o,Se,a,ge,W]),t.useEffect(()=>G,[G]),t.useEffect(()=>y,[y]);const Ot=t.useCallback(()=>{b(),St(),p(!0),l(!1),We?.()},[We,St,b,l]),Vt=t.useCallback(()=>{j.current||v.current||(y(),b(),p(!1))},[a,y,b]),Ht=t.useCallback(()=>{const e=R.current;e&&g.current!==null&&(e.currentTime=g.current,g.current=null),b(),!Re("canplay-seek-finished")&&(!c.current||!x||_("canplay"))},[a,x,Re,b,_]),$t=t.useCallback(()=>{const e=R.current;e&&g.current!==null&&(e.currentTime=g.current,g.current=null),b(),Re("metadata-seek-finished")},[a,Re,b]),Jt=t.useCallback(()=>{b()},[b]),Zt=t.useCallback(()=>{j.current||l(!0,"loadingAudio")},[l]),zt=t.useCallback(()=>{if(j.current){l(!0,"waitingForMoreAudio");return}l(!0,"loadingAudio")},[l]),gt=t.useCallback(()=>{b()},[b]),Yt=t.useCallback(()=>{const e=N.current==="url"||w.current.length===0;if(y(),v.current=!1,e){Q("url-ended");return}kt()},[Q,kt,y]),Dt=t.useCallback(()=>{y(),b(),p(!1),l(!1)},[y,b,l]),Xt=t.useCallback(e=>{Be?.(e),D(!1)},[Be]),Ae=t.useCallback(()=>{if(q){const r=!H;return P(r),Ve?.(r),!0}const e=R.current;return S||!e||!m?!1:d.current!==null?he?(P(!1),c.current=!1,k.current=!0,d.current=null,j.current=!1,p(!1),l(!1),e.pause(),!0):(P(!0),K.current="manual",k.current=!1,c.current=!0,l(!0,"waitingForMoreAudio"),!0):!e.src&&T.length>0?(P(!0),K.current="manual",k.current=!1,M(Math.min(A.current,T.length-1),"toggle"),!0):e.paused?(P(!0),K.current="manual",k.current=!1,c.current=!0,_("toggle-resume"),!0):(P(!1),c.current=!1,k.current=!0,e.pause(),!0)},[m,T.length,H,S,he,Ve,M,_,l,P,q]);t.useEffect(()=>{if(U)return ae.registerPlayerKeyboardShortcutOwner(Z)},[Z,U]);const Ne=t.useMemo(()=>({fullscreen:()=>ee?(ee(),!0):!1,interaction:()=>de?(_e&&de(),!0):!1,next:()=>oe?(we||oe(qe.suppressPlayerControlsWakeAfterNavigation(z())),!0):!1,nextSubtitle:()=>X.next?le("next"):!0,previous:()=>ie?(Me||ie(qe.suppressPlayerControlsWakeAfterNavigation(z())),!0):!1,previousSubtitle:()=>X.previous?le("previous"):!0,subtitle:()=>I?(I(),!0):!1,togglePlayback:()=>(Ae(),!0)}),[z,_e,le,we,ee,de,oe,ie,I,Me,X.next,X.previous,Ae]),Rt=t.useRef(Ne);return t.useEffect(()=>{Rt.current=Ne},[Ne]),t.useEffect(()=>{if(!U||typeof document>"u")return;const e=r=>{if(!ae.isActivePlayerKeyboardShortcutOwner(Z))return;const s=ae.getPlayerKeyboardShortcutAction(r);if(!s||ae.shouldIgnorePlayerKeyboardShortcutEvent(r,s))return;let u=!1;const h=Rt.current[s];u=h(),u&&r.preventDefault()};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[Z,U]),t.useEffect(()=>{ce?.(pe.current)},[ce]),n.jsxRuntimeExports.jsxs("div",{...Nt,"data-slide-player-shortcut-owner":Z,className:Et.cn("slide-player",f),onFocusCapture:Bt,onPointerDown:Ft,children:[n.jsxRuntimeExports.jsx("audio",{ref:R,preload:"auto",playsInline:!0,onLoadStart:Zt,onLoadedMetadata:$t,onCanPlay:Ht,onPlay:Ot,onPause:Vt,onWaiting:zt,onSeeking:gt,onSeeked:gt,onTimeUpdate:Jt,onEnded:Yt,onError:Dt}),ve?n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(Qt.default,{container:Lt,labels:{closeSettings:i.closeSettingsLabel,fullscreen:i.fullscreenLabel,nonFullscreen:i.nonFullscreenLabel,screen:i.screenLabel,screenMode:i.screenModeLabel,subtitle:i.subtitleLabel,subtitleToggle:i.subtitleToggleAriaLabel,title:i.settingsTitle},isSubtitleEnabled:je,onClose:()=>D(!1),onOpenChange:D,onSubtitleToggle:I??(()=>{}),onViewModeChange:Xt,open:tt,viewMode:Tt}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__controls",style:Pt,children:[n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[n.jsxRuntimeExports.jsx("button",{"aria-expanded":tt,"aria-haspopup":"dialog","aria-label":i.moreOptionsAriaLabel,className:"slide-player__action slide-player__action--mobile-more",onClick:()=>{D(e=>!e)},type:"button",children:n.jsxRuntimeExports.jsx(lr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":i.volumeAriaLabel,className:"hidden",type:"button",children:n.jsxRuntimeExports.jsx(ar.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":lt,"aria-keyshortcuts":ft.ariaKeyShortcuts,className:"slide-player__toggle slide-player__toggle--playback",onClick:()=>{Ae()},title:ft.title,type:"button",children:Wt?n.jsxRuntimeExports.jsx(Sr,{}):n.jsxRuntimeExports.jsx(kr,{})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":it.ariaKeyShortcuts,"aria-label":i.previousLabel,className:"slide-player__action slide-player__action--prev",disabled:Me,onClick:()=>{ie?.(z())},title:it.title,type:"button",children:n.jsxRuntimeExports.jsx(cr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":dt.ariaKeyShortcuts,"aria-label":i.nextLabel,className:"slide-player__action slide-player__action--next",disabled:we,onClick:()=>{oe?.(z())},title:dt.title,type:"button",children:n.jsxRuntimeExports.jsx(ir.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":ot.ariaKeyShortcuts,"aria-label":i.previousSubtitleLabel,className:"slide-player__action slide-player__action--prev-subtitle",disabled:!X.previous,onClick:()=>{le("previous")},title:ot.title,type:"button",children:n.jsxRuntimeExports.jsx(or.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-keyshortcuts":mt.ariaKeyShortcuts,"aria-label":i.nextSubtitleLabel,className:"slide-player__action slide-player__action--next-subtitle",disabled:!X.next,onClick:()=>{le("next")},title:mt.title,type:"button",children:n.jsxRuntimeExports.jsx(fr.default,{className:"slide-player__icon",strokeWidth:2.25})}),n.jsxRuntimeExports.jsx("button",{"aria-label":i.subtitleToggleAriaLabel,"aria-keyshortcuts":ct.ariaKeyShortcuts,"aria-pressed":je,className:"slide-player__action slide-player__action--subtitle",onClick:I,title:ct.title,type:"button",children:je?n.jsxRuntimeExports.jsx(dr.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(mr.default,{className:"slide-player__icon",strokeWidth:2.25})}),ee?n.jsxRuntimeExports.jsx("button",{"aria-label":at,"aria-keyshortcuts":pt.ariaKeyShortcuts,className:"slide-player__action slide-player__action--fullscreen",onClick:ee,title:pt.title,type:"button",children:Fe?n.jsxRuntimeExports.jsx(pr.default,{className:"slide-player__icon",strokeWidth:2.25}):n.jsxRuntimeExports.jsx(br.default,{className:"slide-player__icon",strokeWidth:2.25})}):null]}),n.jsxRuntimeExports.jsx("div",{className:"slide-player__separator"}),n.jsxRuntimeExports.jsxs("div",{className:"slide-player__group",children:[ut.map((e,r)=>n.jsxRuntimeExports.jsx(t.Fragment,{children:e},`custom-action-${r}`)),n.jsxRuntimeExports.jsx("button",{"aria-label":i.notesLabel,"aria-keyshortcuts":bt.ariaKeyShortcuts,className:Et.cn("slide-player__action slide-player__action--notes",te&&"slide-player__action--active"),disabled:!_e,onClick:de,title:bt.title,type:"button",children:n.jsxRuntimeExports.jsx(hr.default,{className:"slide-player__icon",strokeWidth:2.25})})]})]})]}):null]})},vt=t.memo(Cr);vt.displayName="Player";exports.default=vt;
|
|
2
2
|
//# sourceMappingURL=Player.cjs.js.map
|