sanity-plugin-media 1.4.10 → 2.0.0-v3-studio.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 (305) hide show
  1. package/README.md +70 -26
  2. package/lib/cjs/index.js +7833 -0
  3. package/lib/cjs/index.js.map +1 -0
  4. package/lib/esm/index.js +7825 -0
  5. package/lib/esm/index.js.map +1 -0
  6. package/lib/types/index.d.ts +5 -0
  7. package/lib/types/index.d.ts.map +1 -0
  8. package/package.json +61 -48
  9. package/src/components/AssetGridVirtualized/index.tsx +79 -0
  10. package/src/components/AssetMetadata/index.tsx +113 -0
  11. package/src/components/AssetTableVirtualized/index.tsx +71 -0
  12. package/src/components/Browser/index.tsx +156 -0
  13. package/src/components/ButtonAssetCopy/index.tsx +67 -0
  14. package/src/components/ButtonViewGroup/index.tsx +39 -0
  15. package/src/components/CardAsset/index.tsx +266 -0
  16. package/src/components/CardUpload/index.tsx +157 -0
  17. package/src/components/Controls/index.tsx +135 -0
  18. package/src/components/DebugControls/index.tsx +77 -0
  19. package/src/components/Dialog/index.tsx +11 -0
  20. package/src/components/DialogAssetEdit/index.tsx +425 -0
  21. package/src/components/DialogConfirm/index.tsx +89 -0
  22. package/src/components/DialogSearchFacets/index.tsx +43 -0
  23. package/src/components/DialogTagCreate/index.tsx +122 -0
  24. package/src/components/DialogTagEdit/index.tsx +213 -0
  25. package/src/components/DialogTags/index.tsx +48 -0
  26. package/src/components/Dialogs/index.tsx +77 -0
  27. package/src/components/DocumentList/index.tsx +107 -0
  28. package/src/components/FileAssetPreview/index.tsx +37 -0
  29. package/src/components/FileIcon/index.tsx +41 -0
  30. package/src/components/FormBuilderTool/index.tsx +51 -0
  31. package/src/components/FormFieldInputFilename/index.tsx +50 -0
  32. package/src/components/FormFieldInputLabel/index.tsx +67 -0
  33. package/src/components/FormFieldInputTags/index.tsx +97 -0
  34. package/src/components/FormFieldInputText/index.tsx +41 -0
  35. package/src/components/FormFieldInputTextarea/index.tsx +43 -0
  36. package/src/components/FormSubmitButton/index.tsx +57 -0
  37. package/src/components/Header/index.tsx +76 -0
  38. package/src/components/Image/index.tsx +32 -0
  39. package/src/components/Items/index.tsx +67 -0
  40. package/src/components/Notifications/index.tsx +23 -0
  41. package/src/components/OrderSelect/index.tsx +59 -0
  42. package/src/components/PickedBar/index.tsx +75 -0
  43. package/src/components/Portal/index.tsx +24 -0
  44. package/src/components/Progress/index.tsx +39 -0
  45. package/src/components/ReduxProvider/index.tsx +74 -0
  46. package/src/components/SearchFacet/index.tsx +59 -0
  47. package/src/components/SearchFacetNumber/index.tsx +126 -0
  48. package/src/components/SearchFacetSelect/index.tsx +109 -0
  49. package/src/components/SearchFacetString/index.tsx +85 -0
  50. package/src/components/SearchFacetTags/index.tsx +108 -0
  51. package/src/components/SearchFacets/index.tsx +70 -0
  52. package/src/components/SearchFacetsControl/index.tsx +127 -0
  53. package/src/components/TableHeader/index.tsx +102 -0
  54. package/src/components/TableHeaderItem/index.tsx +61 -0
  55. package/src/components/TableRowAsset/index.tsx +334 -0
  56. package/src/components/TableRowUpload/index.tsx +165 -0
  57. package/src/components/Tag/index.tsx +199 -0
  58. package/src/components/TagIcon/index.tsx +24 -0
  59. package/src/components/TagView/index.tsx +48 -0
  60. package/src/components/TagViewHeader/index.tsx +71 -0
  61. package/src/components/TagsPanel/index.tsx +40 -0
  62. package/src/components/TagsVirtualized/index.tsx +159 -0
  63. package/src/components/TextInputNumber/index.tsx +32 -0
  64. package/src/components/TextInputSearch/index.tsx +59 -0
  65. package/src/components/Tool/index.tsx +13 -0
  66. package/src/components/UploadDropzone/index.tsx +150 -0
  67. package/src/config/orders.ts +28 -0
  68. package/src/config/searchFacets.ts +301 -0
  69. package/src/constants.ts +75 -0
  70. package/src/contexts/AssetSourceDispatchContext.tsx +37 -0
  71. package/src/contexts/DropzoneDispatchContext.tsx +34 -0
  72. package/src/hooks/useBreakpointIndex.ts +49 -0
  73. package/src/hooks/useKeyPress.ts +37 -0
  74. package/src/hooks/useOnScreen.ts +34 -0
  75. package/src/hooks/useTypedSelector.ts +7 -0
  76. package/src/index.ts +44 -0
  77. package/src/modules/assets/actions.ts +41 -0
  78. package/src/modules/assets/index.ts +806 -0
  79. package/src/modules/debug/index.ts +28 -0
  80. package/src/modules/dialog/actions.ts +10 -0
  81. package/src/modules/dialog/index.ts +233 -0
  82. package/src/modules/index.ts +109 -0
  83. package/src/modules/notifications/index.ts +178 -0
  84. package/src/modules/search/index.ts +134 -0
  85. package/src/modules/selected/index.ts +22 -0
  86. package/src/modules/selectors.ts +17 -0
  87. package/src/modules/tags/index.ts +544 -0
  88. package/src/modules/types.ts +9 -0
  89. package/src/modules/uploads/actions.ts +13 -0
  90. package/src/modules/uploads/index.ts +283 -0
  91. package/src/operators/checkTagName.ts +32 -0
  92. package/src/operators/debugThrottle.ts +25 -0
  93. package/src/schemas/tag.ts +28 -0
  94. package/src/styled/GlobalStyles/index.tsx +41 -0
  95. package/src/styled/react-select/creatable.tsx +187 -0
  96. package/src/styled/react-select/single.tsx +190 -0
  97. package/src/styled/theme.ts +12 -0
  98. package/src/types/index.ts +332 -0
  99. package/src/utils/blocksToText.ts +27 -0
  100. package/src/utils/constructFilter.ts +98 -0
  101. package/src/utils/generatePreviewBlobUrl.ts +47 -0
  102. package/src/utils/getAssetResolution.ts +7 -0
  103. package/src/utils/getDocumentAssetIds.ts +35 -0
  104. package/src/utils/getTagSelectOptions.ts +16 -0
  105. package/src/utils/imageDprUrl.ts +27 -0
  106. package/src/utils/sanitizeFormData.ts +26 -0
  107. package/src/utils/typeGuards.ts +9 -0
  108. package/src/utils/uploadSanityAsset.ts +93 -0
  109. package/src/utils/withMaxConcurrency.ts +55 -0
  110. package/CHANGELOG.md +0 -261
  111. package/dist/app.js +0 -78
  112. package/dist/app.js.map +0 -1
  113. package/dist/client.js +0 -12
  114. package/dist/client.js.map +0 -1
  115. package/dist/components/AssetGridVirtualized/index.js +0 -72
  116. package/dist/components/AssetGridVirtualized/index.js.map +0 -1
  117. package/dist/components/AssetMetadata/index.js +0 -61
  118. package/dist/components/AssetMetadata/index.js.map +0 -1
  119. package/dist/components/AssetTableVirtualized/index.js +0 -65
  120. package/dist/components/AssetTableVirtualized/index.js.map +0 -1
  121. package/dist/components/Browser/index.js +0 -112
  122. package/dist/components/Browser/index.js.map +0 -1
  123. package/dist/components/ButtonAssetCopy/index.js +0 -74
  124. package/dist/components/ButtonAssetCopy/index.js.map +0 -1
  125. package/dist/components/ButtonViewGroup/index.js +0 -27
  126. package/dist/components/ButtonViewGroup/index.js.map +0 -1
  127. package/dist/components/CardAsset/index.js +0 -171
  128. package/dist/components/CardAsset/index.js.map +0 -1
  129. package/dist/components/CardUpload/index.js +0 -87
  130. package/dist/components/CardUpload/index.js.map +0 -1
  131. package/dist/components/Controls/index.js +0 -74
  132. package/dist/components/Controls/index.js.map +0 -1
  133. package/dist/components/DebugControls/index.js +0 -51
  134. package/dist/components/DebugControls/index.js.map +0 -1
  135. package/dist/components/Dialog/index.js +0 -26
  136. package/dist/components/Dialog/index.js.map +0 -1
  137. package/dist/components/DialogAssetEdit/index.js +0 -304
  138. package/dist/components/DialogAssetEdit/index.js.map +0 -1
  139. package/dist/components/DialogConfirm/index.js +0 -49
  140. package/dist/components/DialogConfirm/index.js.map +0 -1
  141. package/dist/components/DialogSearchFacets/index.js +0 -48
  142. package/dist/components/DialogSearchFacets/index.js.map +0 -1
  143. package/dist/components/DialogTagCreate/index.js +0 -127
  144. package/dist/components/DialogTagCreate/index.js.map +0 -1
  145. package/dist/components/DialogTagEdit/index.js +0 -214
  146. package/dist/components/DialogTagEdit/index.js.map +0 -1
  147. package/dist/components/DialogTags/index.js +0 -52
  148. package/dist/components/DialogTags/index.js.map +0 -1
  149. package/dist/components/Dialogs/index.js +0 -46
  150. package/dist/components/Dialogs/index.js.map +0 -1
  151. package/dist/components/DocumentList/index.js +0 -51
  152. package/dist/components/DocumentList/index.js.map +0 -1
  153. package/dist/components/FileAssetPreview/index.js +0 -24
  154. package/dist/components/FileAssetPreview/index.js.map +0 -1
  155. package/dist/components/FileIcon/index.js +0 -34
  156. package/dist/components/FileIcon/index.js.map +0 -1
  157. package/dist/components/FormFieldInputFilename/index.js +0 -39
  158. package/dist/components/FormFieldInputFilename/index.js.map +0 -1
  159. package/dist/components/FormFieldInputLabel/index.js +0 -32
  160. package/dist/components/FormFieldInputLabel/index.js.map +0 -1
  161. package/dist/components/FormFieldInputTags/index.js +0 -41
  162. package/dist/components/FormFieldInputTags/index.js.map +0 -1
  163. package/dist/components/FormFieldInputText/index.js +0 -35
  164. package/dist/components/FormFieldInputText/index.js.map +0 -1
  165. package/dist/components/FormFieldInputTextarea/index.js +0 -35
  166. package/dist/components/FormFieldInputTextarea/index.js.map +0 -1
  167. package/dist/components/FormSubmitButton/index.js +0 -34
  168. package/dist/components/FormSubmitButton/index.js.map +0 -1
  169. package/dist/components/Header/index.js +0 -38
  170. package/dist/components/Header/index.js.map +0 -1
  171. package/dist/components/Image/index.js +0 -34
  172. package/dist/components/Image/index.js.map +0 -1
  173. package/dist/components/Items/index.js +0 -66
  174. package/dist/components/Items/index.js.map +0 -1
  175. package/dist/components/Notifications/index.js +0 -25
  176. package/dist/components/Notifications/index.js.map +0 -1
  177. package/dist/components/OrderSelect/index.js +0 -30
  178. package/dist/components/OrderSelect/index.js.map +0 -1
  179. package/dist/components/PickedBar/index.js +0 -50
  180. package/dist/components/PickedBar/index.js.map +0 -1
  181. package/dist/components/Progress/index.js +0 -30
  182. package/dist/components/Progress/index.js.map +0 -1
  183. package/dist/components/ReduxProvider/index.js +0 -100
  184. package/dist/components/ReduxProvider/index.js.map +0 -1
  185. package/dist/components/SearchFacet/index.js +0 -38
  186. package/dist/components/SearchFacet/index.js.map +0 -1
  187. package/dist/components/SearchFacetNumber/index.js +0 -43
  188. package/dist/components/SearchFacetNumber/index.js.map +0 -1
  189. package/dist/components/SearchFacetSelect/index.js +0 -39
  190. package/dist/components/SearchFacetSelect/index.js.map +0 -1
  191. package/dist/components/SearchFacetString/index.js +0 -35
  192. package/dist/components/SearchFacetString/index.js.map +0 -1
  193. package/dist/components/SearchFacetTags/index.js +0 -49
  194. package/dist/components/SearchFacetTags/index.js.map +0 -1
  195. package/dist/components/SearchFacets/index.js +0 -52
  196. package/dist/components/SearchFacets/index.js.map +0 -1
  197. package/dist/components/SearchFacetsControl/index.js +0 -71
  198. package/dist/components/SearchFacetsControl/index.js.map +0 -1
  199. package/dist/components/TableHeader/index.js +0 -80
  200. package/dist/components/TableHeader/index.js.map +0 -1
  201. package/dist/components/TableHeaderItem/index.js +0 -44
  202. package/dist/components/TableHeaderItem/index.js.map +0 -1
  203. package/dist/components/TableRowAsset/index.js +0 -216
  204. package/dist/components/TableRowAsset/index.js.map +0 -1
  205. package/dist/components/TableRowUpload/index.js +0 -100
  206. package/dist/components/TableRowUpload/index.js.map +0 -1
  207. package/dist/components/Tag/index.js +0 -98
  208. package/dist/components/Tag/index.js.map +0 -1
  209. package/dist/components/TagIcon/index.js +0 -12
  210. package/dist/components/TagIcon/index.js.map +0 -1
  211. package/dist/components/TagView/index.js +0 -35
  212. package/dist/components/TagView/index.js.map +0 -1
  213. package/dist/components/TagViewHeader/index.js +0 -41
  214. package/dist/components/TagViewHeader/index.js.map +0 -1
  215. package/dist/components/TagsPanel/index.js +0 -34
  216. package/dist/components/TagsPanel/index.js.map +0 -1
  217. package/dist/components/TagsVirtualized/index.js +0 -150
  218. package/dist/components/TagsVirtualized/index.js.map +0 -1
  219. package/dist/components/TextInputNumber/index.js +0 -43
  220. package/dist/components/TextInputNumber/index.js.map +0 -1
  221. package/dist/components/TextInputSearch/index.js +0 -39
  222. package/dist/components/TextInputSearch/index.js.map +0 -1
  223. package/dist/components/UploadDropzone/index.js +0 -207
  224. package/dist/components/UploadDropzone/index.js.map +0 -1
  225. package/dist/config/orders.js +0 -30
  226. package/dist/config/orders.js.map +0 -1
  227. package/dist/config/searchFacets.js +0 -304
  228. package/dist/config/searchFacets.js.map +0 -1
  229. package/dist/constants.js +0 -76
  230. package/dist/constants.js.map +0 -1
  231. package/dist/contexts/AssetSourceDispatchContext.js +0 -42
  232. package/dist/contexts/AssetSourceDispatchContext.js.map +0 -1
  233. package/dist/contexts/DropzoneDispatchContext.js +0 -40
  234. package/dist/contexts/DropzoneDispatchContext.js.map +0 -1
  235. package/dist/hooks/useBreakpointIndex.js +0 -66
  236. package/dist/hooks/useBreakpointIndex.js.map +0 -1
  237. package/dist/hooks/useKeyPress.js +0 -36
  238. package/dist/hooks/useKeyPress.js.map +0 -1
  239. package/dist/hooks/useOnScreen.js +0 -48
  240. package/dist/hooks/useOnScreen.js.map +0 -1
  241. package/dist/hooks/useTypedSelector.js +0 -6
  242. package/dist/hooks/useTypedSelector.js.map +0 -1
  243. package/dist/index.js +0 -14
  244. package/dist/index.js.map +0 -1
  245. package/dist/modules/assets/index.js +0 -599
  246. package/dist/modules/assets/index.js.map +0 -1
  247. package/dist/modules/debug/index.js +0 -23
  248. package/dist/modules/debug/index.js.map +0 -1
  249. package/dist/modules/dialog/index.js +0 -184
  250. package/dist/modules/dialog/index.js.map +0 -1
  251. package/dist/modules/index.js +0 -47
  252. package/dist/modules/index.js.map +0 -1
  253. package/dist/modules/notifications/index.js +0 -122
  254. package/dist/modules/notifications/index.js.map +0 -1
  255. package/dist/modules/search/index.js +0 -111
  256. package/dist/modules/search/index.js.map +0 -1
  257. package/dist/modules/selected/index.js +0 -15
  258. package/dist/modules/selected/index.js.map +0 -1
  259. package/dist/modules/selectors.js +0 -34
  260. package/dist/modules/selectors.js.map +0 -1
  261. package/dist/modules/tags/index.js +0 -434
  262. package/dist/modules/tags/index.js.map +0 -1
  263. package/dist/modules/types.js +0 -3
  264. package/dist/modules/types.js.map +0 -1
  265. package/dist/modules/uploads/index.js +0 -223
  266. package/dist/modules/uploads/index.js.map +0 -1
  267. package/dist/operators/checkTagName.js +0 -34
  268. package/dist/operators/checkTagName.js.map +0 -1
  269. package/dist/operators/debugThrottle.js +0 -19
  270. package/dist/operators/debugThrottle.js.map +0 -1
  271. package/dist/schemas/tag.js +0 -33
  272. package/dist/schemas/tag.js.map +0 -1
  273. package/dist/styled/GlobalStyles/index.js +0 -14
  274. package/dist/styled/GlobalStyles/index.js.map +0 -1
  275. package/dist/styled/react-select/creatable.js +0 -114
  276. package/dist/styled/react-select/creatable.js.map +0 -1
  277. package/dist/styled/react-select/single.js +0 -107
  278. package/dist/styled/react-select/single.js.map +0 -1
  279. package/dist/styled/theme.js +0 -13
  280. package/dist/styled/theme.js.map +0 -1
  281. package/dist/types/index.js +0 -3
  282. package/dist/types/index.js.map +0 -1
  283. package/dist/utils/blocksToText.js +0 -26
  284. package/dist/utils/blocksToText.js.map +0 -1
  285. package/dist/utils/constructFilter.js +0 -94
  286. package/dist/utils/constructFilter.js.map +0 -1
  287. package/dist/utils/generatePreviewBlobUrl.js +0 -88
  288. package/dist/utils/generatePreviewBlobUrl.js.map +0 -1
  289. package/dist/utils/getAssetResolution.js +0 -7
  290. package/dist/utils/getAssetResolution.js.map +0 -1
  291. package/dist/utils/getDocumentAssetIds.js +0 -52
  292. package/dist/utils/getDocumentAssetIds.js.map +0 -1
  293. package/dist/utils/getTagSelectOptions.js +0 -17
  294. package/dist/utils/getTagSelectOptions.js.map +0 -1
  295. package/dist/utils/imageDprUrl.js +0 -18
  296. package/dist/utils/imageDprUrl.js.map +0 -1
  297. package/dist/utils/sanitizeFormData.js +0 -26
  298. package/dist/utils/sanitizeFormData.js.map +0 -1
  299. package/dist/utils/typeGuards.js +0 -12
  300. package/dist/utils/typeGuards.js.map +0 -1
  301. package/dist/utils/uploadSanityAsset.js +0 -77
  302. package/dist/utils/uploadSanityAsset.js.map +0 -1
  303. package/dist/utils/withMaxConcurrency.js +0 -79
  304. package/dist/utils/withMaxConcurrency.js.map +0 -1
  305. package/sanity.json +0 -25
package/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Sanity Media
2
2
 
3
+ > ⚠️ This version of `sanity-plugin-media` is for [Sanity Studio V3](https://www.sanity.io/blog/sanity-studio-v3-developer-preview), which is currently in developer preview.
4
+ >
5
+ > The Studio V2 compatible version can be found on the [V2 branch](https://github.com/robinpyon/sanity-plugin-media).
6
+
7
+ ## What is it?
8
+
3
9
  ![npm-v](https://img.shields.io/npm/v/sanity-plugin-media?style=flat-square)
4
10
  ![npm-dw](https://img.shields.io/npm/dw/sanity-plugin-media?style=flat-square)
5
11
 
@@ -40,51 +46,67 @@ _Individual asset view_
40
46
  - Built with the same [UI components Sanity uses](https://www.sanity.io/ui) under the hood
41
47
  - Fully responsive and mobile friendly
42
48
 
43
- ## Install
49
+ ## Install (V3 Studio only)
44
50
 
45
- In your Sanity project folder:
51
+ In your Sanity project folder, install the plugin and its peer dependency:
46
52
 
47
53
  ```sh
48
- sanity install media
54
+ npm install --save sanity-plugin-media@v3-studio @mdx-js/react
49
55
  ```
50
56
 
51
- This will add the Media plugin as a standalone tool, accessible via your studio menu.
57
+ or
52
58
 
53
- If you're happy with Sanity's default image and file pickers, then this is all you need to do!
54
-
55
- ### Enabling it as a global [custom asset source](https://www.sanity.io/docs/custom-asset-sources)
59
+ ```sh
60
+ yarn add sanity-plugin-media@v3-studio @mdx-js/react
61
+ ```
56
62
 
57
- You'll need to do this if you want to use the plugin when selecting images or files.
63
+ `@mdx-js/react` will be removed as a dependency in a future version.
58
64
 
59
- This plugin exposes `part:sanity-plugin-media/asset-source` which you import when defining custom asset sources.
65
+ ## Usage
60
66
 
61
- In `sanity.json`, add the following snippet to the `parts` array.
67
+ Add it as a plugin in your `sanity.config.ts` (or .js) file:
62
68
 
63
- _File asset support requires Sanity 2.16.x or greater._
69
+ ```js
70
+ import {media} from 'sanity-plugin-media'
64
71
 
65
- ```json
66
- {
67
- "implements": "part:@sanity/form-builder/input/image/asset-sources",
68
- "path": "./parts/assetSources.js"
69
- },
70
- {
71
- "implements": "part:@sanity/form-builder/input/file/asset-sources",
72
- "path": "./parts/assetSources.js"
73
- },
72
+ export default createConfig({
73
+ // ...
74
+ plugins: [media()]
75
+ })
74
76
  ```
75
77
 
76
- In `./parts/assetSources.js`:
78
+ This will enable the Media plugin as both a standalone tool (accessible in your studio menu) and as an additional asset source for your image and file fields.
77
79
 
78
- ```js
79
- import MediaAssetSource from 'part:sanity-plugin-media/asset-source'
80
+ ### Customizing the asset source
80
81
 
81
- export default [MediaAssetSource]
82
- ```
82
+ You can configure your studio to use this asset source either exclusively, or conditionally enable it based on the type of asset (image or file).
83
83
 
84
- That's it! The plugin will now pop up every time you try select an image or file.
84
+ ```js
85
+ import {media, mediaAssetSource} from 'sanity-plugin-media'
86
+
87
+ export default createConfig({
88
+ // ...
89
+ plugins: [media()],
90
+ form: {
91
+ // Don't use this plugin when selecting files only (but allow all other enabled asset sources)
92
+ file: {
93
+ assetSources: previousAssetSources => {
94
+ return previousAssetSources.filter(assetSource => assetSource !== mediaAssetSource)
95
+ }
96
+ }
97
+ }
98
+ })
99
+ ```
85
100
 
86
101
  ## Known issues
87
102
 
103
+ <details>
104
+ <summary>(V3) Where has the references tab gone?</summary>
105
+
106
+ - This will be enabled in a future version!
107
+
108
+ </details>
109
+
88
110
  <details>
89
111
  <summary>There isn't a way to edit asset fields directly from the desk (without opening the plugin)</summary>
90
112
 
@@ -233,3 +255,25 @@ Contributions, issues and feature requests are welcome!
233
255
  ## License
234
256
 
235
257
  MIT. See [license](LICENSE)
258
+
259
+ ## Develop & test
260
+
261
+ Make sure to run `npm run build` once, then run
262
+
263
+ ```bash
264
+ npm run link-watch
265
+ ```
266
+
267
+ In another shell, `cd` to your test studio and run:
268
+
269
+ ```bash
270
+ npx yalc add sanity-plugin-media && yarn install
271
+ ```
272
+
273
+ Now, changes in this repo will be automatically built and pushed to the studio,
274
+ triggering hotreload. Yalc avoids issues with react-hooks that are typical when using yarn/npm link.
275
+
276
+ ### About build & watch
277
+
278
+ This plugin uses [@sanity/plugin-sdk](https://github.com/sanity-io/plugin-sdk)
279
+ with default configuration for build & watch scripts.