sanity-plugin-mux-input 3.0.4 → 4.0.0

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.
Files changed (130) hide show
  1. package/README.md +0 -2
  2. package/dist/index.d.ts +134 -193
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +2893 -4417
  5. package/dist/index.js.map +1 -1
  6. package/package.json +33 -43
  7. package/dist/index.cjs +0 -7270
  8. package/dist/index.cjs.map +0 -1
  9. package/dist/index.d.cts +0 -347
  10. package/sanity.json +0 -8
  11. package/src/_exports/index.ts +0 -73
  12. package/src/actions/assets.ts +0 -152
  13. package/src/actions/secrets.ts +0 -111
  14. package/src/actions/upload.ts +0 -310
  15. package/src/clients/upChunkObservable.ts +0 -54
  16. package/src/components/AddCaptionDialog.tsx +0 -440
  17. package/src/components/CaptionsDialog.tsx +0 -23
  18. package/src/components/ConfigureApi.styled.tsx +0 -19
  19. package/src/components/ConfigureApi.tsx +0 -296
  20. package/src/components/DraggableWatermark.tsx +0 -877
  21. package/src/components/EditCaptionDialog.tsx +0 -510
  22. package/src/components/EditThumbnailDialog.tsx +0 -122
  23. package/src/components/ErrorBoundaryCard.tsx +0 -96
  24. package/src/components/FileInputButton.tsx +0 -54
  25. package/src/components/FileInputMenuItem.styled.tsx +0 -36
  26. package/src/components/FileInputMenuItem.tsx +0 -85
  27. package/src/components/FormField.tsx +0 -38
  28. package/src/components/IconInfo.tsx +0 -22
  29. package/src/components/ImportVideosFromMux.tsx +0 -342
  30. package/src/components/Input.styled.tsx +0 -22
  31. package/src/components/Input.tsx +0 -78
  32. package/src/components/InputBrowser.tsx +0 -41
  33. package/src/components/InputError.tsx +0 -17
  34. package/src/components/MuxLogo.tsx +0 -42
  35. package/src/components/Onboard.tsx +0 -65
  36. package/src/components/PageSelector.tsx +0 -54
  37. package/src/components/Player.styled.tsx +0 -55
  38. package/src/components/Player.tsx +0 -117
  39. package/src/components/PlayerActionsMenu.tsx +0 -190
  40. package/src/components/ResyncMetadata.tsx +0 -280
  41. package/src/components/SelectAsset.tsx +0 -39
  42. package/src/components/SelectSortOptions.tsx +0 -45
  43. package/src/components/SpinnerBox.tsx +0 -16
  44. package/src/components/StudioTool.tsx +0 -24
  45. package/src/components/TextTracksEditor.tsx +0 -117
  46. package/src/components/TextTracksManager.tsx +0 -737
  47. package/src/components/UploadConfiguration.tsx +0 -694
  48. package/src/components/UploadPlaceholder.tsx +0 -88
  49. package/src/components/UploadProgress.tsx +0 -80
  50. package/src/components/Uploader.styled.tsx +0 -66
  51. package/src/components/Uploader.tsx +0 -498
  52. package/src/components/VideoDetails/DeleteDialog.tsx +0 -147
  53. package/src/components/VideoDetails/VideoDetails.tsx +0 -358
  54. package/src/components/VideoDetails/VideoReferences.tsx +0 -63
  55. package/src/components/VideoDetails/useVideoDetails.ts +0 -103
  56. package/src/components/VideoInBrowser.tsx +0 -245
  57. package/src/components/VideoMetadata.tsx +0 -45
  58. package/src/components/VideoPlayer.tsx +0 -235
  59. package/src/components/VideoThumbnail.tsx +0 -138
  60. package/src/components/VideosBrowser.tsx +0 -100
  61. package/src/components/documentPreview/DocumentPreview.tsx +0 -83
  62. package/src/components/documentPreview/DraftStatus.tsx +0 -34
  63. package/src/components/documentPreview/MissingSchemaType.tsx +0 -32
  64. package/src/components/documentPreview/PaneItemPreview.tsx +0 -74
  65. package/src/components/documentPreview/PublishedStatus.tsx +0 -35
  66. package/src/components/documentPreview/TimeAgo.tsx +0 -12
  67. package/src/components/documentPreview/paneItemTypes.ts +0 -7
  68. package/src/components/icons/Audio.tsx +0 -13
  69. package/src/components/icons/Resolution.tsx +0 -12
  70. package/src/components/icons/StopWatch.tsx +0 -20
  71. package/src/components/icons/ToolIcon.tsx +0 -19
  72. package/src/components/uploadConfiguration/PlaybackPolicy.tsx +0 -133
  73. package/src/components/uploadConfiguration/PlaybackPolicyOption.tsx +0 -76
  74. package/src/components/uploadConfiguration/PlaybackPolicyWarning.tsx +0 -29
  75. package/src/components/uploadConfiguration/ResolutionTierSelector.tsx +0 -72
  76. package/src/components/uploadConfiguration/StaticRenditionSelector.tsx +0 -180
  77. package/src/components/withFocusRing/helpers.ts +0 -24
  78. package/src/components/withFocusRing/index.ts +0 -1
  79. package/src/components/withFocusRing/withFocusRing.ts +0 -30
  80. package/src/context/DialogStateContext.tsx +0 -36
  81. package/src/context/DrmPlaybackWarningContext.tsx +0 -93
  82. package/src/hooks/useAccessControl.ts +0 -13
  83. package/src/hooks/useAssetDocumentValues.ts +0 -11
  84. package/src/hooks/useAssets.ts +0 -68
  85. package/src/hooks/useCancelUpload.ts +0 -22
  86. package/src/hooks/useClient.ts +0 -8
  87. package/src/hooks/useDialogState.ts +0 -11
  88. package/src/hooks/useDocReferences.ts +0 -21
  89. package/src/hooks/useFetchFileSize.ts +0 -54
  90. package/src/hooks/useImportMuxAssets.ts +0 -132
  91. package/src/hooks/useInView.ts +0 -42
  92. package/src/hooks/useMediaMetadata.ts +0 -103
  93. package/src/hooks/useMuxAssets.ts +0 -179
  94. package/src/hooks/useMuxPolling.ts +0 -49
  95. package/src/hooks/useResyncAsset.ts +0 -110
  96. package/src/hooks/useResyncMuxMetadata.ts +0 -176
  97. package/src/hooks/useSaveSecrets.ts +0 -78
  98. package/src/hooks/useSecretsDocumentValues.ts +0 -38
  99. package/src/hooks/useSecretsFormState.ts +0 -47
  100. package/src/plugin.tsx +0 -31
  101. package/src/sanity-ui.d.ts +0 -5
  102. package/src/schema.ts +0 -196
  103. package/src/util/addKeysToMuxData.ts +0 -30
  104. package/src/util/areSecretsSignable.ts +0 -5
  105. package/src/util/asserters.ts +0 -36
  106. package/src/util/assetTitlePlaceholder.ts +0 -31
  107. package/src/util/constants.ts +0 -15
  108. package/src/util/convertWatermarkToMux.ts +0 -160
  109. package/src/util/createSearchFilter.ts +0 -76
  110. package/src/util/createUrlParamsObject.ts +0 -29
  111. package/src/util/extractFiles.ts +0 -67
  112. package/src/util/formatBytes.ts +0 -32
  113. package/src/util/formatDriveShareLink.ts +0 -64
  114. package/src/util/formatSeconds.ts +0 -49
  115. package/src/util/generateJwt.ts +0 -57
  116. package/src/util/getAnimatedPosterSrc.ts +0 -26
  117. package/src/util/getPlaybackPolicy.ts +0 -69
  118. package/src/util/getPosterSrc.ts +0 -28
  119. package/src/util/getStoryboardSrc.ts +0 -27
  120. package/src/util/getVideoMetadata.ts +0 -23
  121. package/src/util/getVideoSrc.ts +0 -23
  122. package/src/util/isSigned.ts +0 -20
  123. package/src/util/parsers.ts +0 -5
  124. package/src/util/pluginVersion.ts +0 -1
  125. package/src/util/readSecrets.ts +0 -38
  126. package/src/util/roundPxString.ts +0 -16
  127. package/src/util/textTracks.ts +0 -222
  128. package/src/util/tryWithSuspend.ts +0 -22
  129. package/src/util/types.ts +0 -596
  130. package/v2-incompatible.js +0 -11
@@ -1,88 +0,0 @@
1
- import {DocumentVideoIcon, PlugIcon, SearchIcon, UploadIcon} from '@sanity/icons'
2
- import {Button, Card, Flex, Inline, Text} from '@sanity/ui'
3
- import {useCallback} from 'react'
4
-
5
- import {useAccessControl} from '../hooks/useAccessControl'
6
- import type {SetDialogState} from '../hooks/useDialogState'
7
- import {PluginConfig} from '../util/types'
8
- import {FileInputButton, type FileInputButtonProps} from './FileInputButton'
9
-
10
- function formatAcceptString(accept: string): string {
11
- return accept
12
- .split(',')
13
- .map((type) => type.trim().replace('/*', ''))
14
- .join(' or ')
15
- }
16
-
17
- interface UploadPlaceholderProps {
18
- setDialogState: SetDialogState
19
- readOnly: boolean
20
- hovering: boolean
21
- needsSetup: boolean
22
- onSelect: FileInputButtonProps['onSelect']
23
- config: PluginConfig
24
- accept: string
25
- }
26
- export default function UploadPlaceholder(props: UploadPlaceholderProps) {
27
- const {setDialogState, readOnly, onSelect, hovering, needsSetup, accept} = props
28
- const handleBrowse = useCallback(() => setDialogState('select-video'), [setDialogState])
29
- const handleConfigureApi = useCallback(() => setDialogState('secrets'), [setDialogState])
30
- const {hasConfigAccess} = useAccessControl(props.config)
31
-
32
- return (
33
- <Card
34
- sizing="border"
35
- tone={readOnly ? 'transparent' : 'inherit'}
36
- border
37
- radius={2}
38
- paddingX={3}
39
- paddingY={1}
40
- style={hovering ? {borderColor: 'transparent'} : undefined}
41
- >
42
- <Flex
43
- align="center"
44
- justify="space-between"
45
- gap={4}
46
- direction={['column', 'column', 'row']}
47
- paddingY={2}
48
- sizing="border"
49
- >
50
- <Flex align="center" justify="flex-start" gap={2} flex={1}>
51
- <Flex justify="center">
52
- <Text muted>
53
- <DocumentVideoIcon />
54
- </Text>
55
- </Flex>
56
- <Flex justify="center">
57
- <Text size={1} muted>
58
- Drag {formatAcceptString(accept)} file or paste URL here
59
- </Text>
60
- </Flex>
61
- </Flex>
62
- <Inline space={2}>
63
- <FileInputButton
64
- accept={accept}
65
- mode="bleed"
66
- tone="default"
67
- icon={UploadIcon}
68
- text="Upload"
69
- onSelect={onSelect}
70
- />
71
- <Button mode="bleed" icon={SearchIcon} text="Select" onClick={handleBrowse} />
72
-
73
- {hasConfigAccess && (
74
- <Button
75
- padding={3}
76
- radius={3}
77
- tone={needsSetup ? 'critical' : undefined}
78
- onClick={handleConfigureApi}
79
- icon={PlugIcon}
80
- mode="bleed"
81
- title="Configure plugin credentials"
82
- />
83
- )}
84
- </Inline>
85
- </Flex>
86
- </Card>
87
- )
88
- }
@@ -1,80 +0,0 @@
1
- // Lifted from sanity/form/inputs/files/common/UploadProgress
2
-
3
- import {Button, Card, Code, Flex, Inline, Stack, Text} from '@sanity/ui'
4
- import {LinearProgress} from 'sanity'
5
- import {styled} from 'styled-components'
6
-
7
- export const CardWrapper = styled(Card)`
8
- min-height: 82px;
9
- box-sizing: border-box;
10
- `
11
-
12
- export const FlexWrapper = styled(Flex)`
13
- text-overflow: ellipsis;
14
- overflow: hidden;
15
- `
16
-
17
- export const LeftSection = styled(Stack)`
18
- position: relative;
19
- width: 60%;
20
- `
21
-
22
- export const CodeWrapper = styled(Code)`
23
- position: relative;
24
- width: 100%;
25
-
26
- code {
27
- overflow: hidden;
28
- text-overflow: ellipsis;
29
- position: relative;
30
- max-width: 200px;
31
- }
32
- `
33
-
34
- export const UploadProgress = ({
35
- progress = 100,
36
- onCancel,
37
- filename,
38
- text = 'Uploading',
39
- }: {
40
- progress: number
41
- filename?: React.ReactNode
42
- onCancel?: React.MouseEventHandler<HTMLButtonElement>
43
- text?: React.ReactNode
44
- }) => {
45
- // Disable cancel button when upload is 90% or more complete
46
- // to prevent inconsistency between Mux and Sanity
47
- const isCancelDisabled = progress >= 90
48
-
49
- return (
50
- <CardWrapper tone="primary" padding={4} border height="fill">
51
- <FlexWrapper align="center" justify="space-between" height="fill" direction="row" gap={2}>
52
- <LeftSection>
53
- <Flex justify="center" gap={[3, 3, 2, 2]} direction={['column', 'column', 'row']}>
54
- <Text size={1}>
55
- <Inline space={2}>
56
- {text}
57
- <CodeWrapper size={1}>{filename ? filename : '...'}</CodeWrapper>
58
- </Inline>
59
- </Text>
60
- </Flex>
61
-
62
- <Card marginTop={3} radius={5} shadow={1}>
63
- <LinearProgress value={progress} />
64
- </Card>
65
- </LeftSection>
66
-
67
- {onCancel ? (
68
- <Button
69
- fontSize={2}
70
- text="Cancel upload"
71
- mode="ghost"
72
- tone="critical"
73
- onClick={onCancel}
74
- disabled={isCancelDisabled}
75
- />
76
- ) : null}
77
- </FlexWrapper>
78
- </CardWrapper>
79
- )
80
- }
@@ -1,66 +0,0 @@
1
- /* eslint-disable no-nested-ternary */
2
- import {Card, type CardTone} from '@sanity/ui'
3
- import React, {forwardRef, useCallback, useRef} from 'react'
4
- import {styled} from 'styled-components'
5
-
6
- import {withFocusRing} from './withFocusRing'
7
-
8
- const UploadCardWithFocusRing = withFocusRing(Card)
9
-
10
- interface UploadCardProps {
11
- tone?: CardTone
12
- children: React.ReactNode
13
- onPaste: React.ClipboardEventHandler<HTMLInputElement>
14
- onDrop: React.DragEventHandler<HTMLDivElement>
15
- onDragOver: React.DragEventHandler<HTMLDivElement>
16
- onDragLeave: React.DragEventHandler<HTMLDivElement>
17
- onDragEnter: React.DragEventHandler<HTMLDivElement>
18
- }
19
- export const UploadCard = forwardRef<HTMLDivElement, UploadCardProps>(
20
- ({children, tone, onPaste, onDrop, onDragEnter, onDragLeave, onDragOver}, forwardedRef) => {
21
- const inputRef = useRef<HTMLInputElement>(null)
22
- const handleKeyDown = useCallback<React.KeyboardEventHandler<HTMLDivElement>>((event) => {
23
- const target = event.target as HTMLElement
24
-
25
- // Don't steal focus when pasting into the VTT input
26
- if (target.closest('#vtt-url')) {
27
- return
28
- }
29
-
30
- if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
31
- inputRef.current!.focus()
32
- }
33
- }, [])
34
-
35
- return (
36
- <UploadCardWithFocusRing
37
- tone={tone}
38
- ref={forwardedRef}
39
- padding={0}
40
- radius={2}
41
- shadow={0}
42
- tabIndex={0}
43
- onKeyDown={handleKeyDown}
44
- onPaste={onPaste}
45
- onDrop={onDrop}
46
- onDragEnter={onDragEnter}
47
- onDragLeave={onDragLeave}
48
- onDragOver={onDragOver}
49
- >
50
- <HiddenInput ref={inputRef} />
51
- {children}
52
- </UploadCardWithFocusRing>
53
- )
54
- }
55
- )
56
-
57
- const HiddenInput = styled.input.attrs({type: 'text'})`
58
- position: absolute;
59
- border: 0;
60
- color: white;
61
- opacity: 0;
62
-
63
- &:focus {
64
- outline: none;
65
- }
66
- `