datocms-plugin-sdk 1.1.1 → 2.0.1

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 (393) hide show
  1. package/dist/cjs/connect.js +75 -214
  2. package/dist/cjs/connect.js.map +1 -1
  3. package/dist/cjs/{types.js → ctx/base.js} +1 -1
  4. package/dist/cjs/ctx/base.js.map +1 -0
  5. package/dist/cjs/ctx/commonExtras/field.js +3 -0
  6. package/dist/cjs/ctx/commonExtras/field.js.map +1 -0
  7. package/dist/cjs/ctx/commonExtras/itemForm.js +3 -0
  8. package/dist/cjs/ctx/commonExtras/itemForm.js.map +1 -0
  9. package/dist/cjs/ctx/commonExtras/sizing.js +3 -0
  10. package/dist/cjs/ctx/commonExtras/sizing.js.map +1 -0
  11. package/dist/cjs/ctx/pluginFrame.js +3 -0
  12. package/dist/cjs/ctx/pluginFrame.js.map +1 -0
  13. package/dist/cjs/hooks/assetSources.js +3 -0
  14. package/dist/cjs/hooks/assetSources.js.map +1 -0
  15. package/dist/cjs/hooks/buildItemPresentationInfo.js +3 -0
  16. package/dist/cjs/hooks/buildItemPresentationInfo.js.map +1 -0
  17. package/dist/cjs/hooks/contentAreaSidebarItems.js +3 -0
  18. package/dist/cjs/hooks/contentAreaSidebarItems.js.map +1 -0
  19. package/dist/cjs/hooks/customBlockStylesForStructuredTextField.js +3 -0
  20. package/dist/cjs/hooks/customBlockStylesForStructuredTextField.js.map +1 -0
  21. package/dist/cjs/hooks/customMarksForStructuredTextField.js +3 -0
  22. package/dist/cjs/hooks/customMarksForStructuredTextField.js.map +1 -0
  23. package/dist/cjs/hooks/executeFieldDropdownAction.js +3 -0
  24. package/dist/cjs/hooks/executeFieldDropdownAction.js.map +1 -0
  25. package/dist/cjs/hooks/executeItemFormDropdownAction.js +3 -0
  26. package/dist/cjs/hooks/executeItemFormDropdownAction.js.map +1 -0
  27. package/dist/cjs/hooks/executeItemsDropdownAction.js +3 -0
  28. package/dist/cjs/hooks/executeItemsDropdownAction.js.map +1 -0
  29. package/dist/cjs/hooks/executeUploadsDropdownAction.js +3 -0
  30. package/dist/cjs/hooks/executeUploadsDropdownAction.js.map +1 -0
  31. package/dist/cjs/hooks/fieldDropdownActions.js +3 -0
  32. package/dist/cjs/hooks/fieldDropdownActions.js.map +1 -0
  33. package/dist/cjs/hooks/initialLocationQueryForItemSelector.js +3 -0
  34. package/dist/cjs/hooks/initialLocationQueryForItemSelector.js.map +1 -0
  35. package/dist/cjs/hooks/itemCollectionOutlets.js +3 -0
  36. package/dist/cjs/hooks/itemCollectionOutlets.js.map +1 -0
  37. package/dist/cjs/hooks/itemFormDropdownActions.js +3 -0
  38. package/dist/cjs/hooks/itemFormDropdownActions.js.map +1 -0
  39. package/dist/cjs/hooks/itemFormOutlets.js +3 -0
  40. package/dist/cjs/hooks/itemFormOutlets.js.map +1 -0
  41. package/dist/cjs/hooks/itemFormSidebarPanels.js +3 -0
  42. package/dist/cjs/hooks/itemFormSidebarPanels.js.map +1 -0
  43. package/dist/cjs/hooks/itemFormSidebars.js +3 -0
  44. package/dist/cjs/hooks/itemFormSidebars.js.map +1 -0
  45. package/dist/cjs/hooks/itemsDropdownActions.js +3 -0
  46. package/dist/cjs/hooks/itemsDropdownActions.js.map +1 -0
  47. package/dist/cjs/hooks/mainNavigationTabs.js +3 -0
  48. package/dist/cjs/hooks/mainNavigationTabs.js.map +1 -0
  49. package/dist/cjs/hooks/manualFieldExtensions.js +3 -0
  50. package/dist/cjs/hooks/manualFieldExtensions.js.map +1 -0
  51. package/dist/cjs/hooks/onBeforeItemUpsert.js +3 -0
  52. package/dist/cjs/hooks/onBeforeItemUpsert.js.map +1 -0
  53. package/dist/cjs/hooks/onBeforeItemsDestroy.js +3 -0
  54. package/dist/cjs/hooks/onBeforeItemsDestroy.js.map +1 -0
  55. package/dist/cjs/hooks/onBeforeItemsPublish.js +3 -0
  56. package/dist/cjs/hooks/onBeforeItemsPublish.js.map +1 -0
  57. package/dist/cjs/hooks/onBeforeItemsUnpublish.js +3 -0
  58. package/dist/cjs/hooks/onBeforeItemsUnpublish.js.map +1 -0
  59. package/dist/cjs/hooks/onBoot.js +3 -0
  60. package/dist/cjs/hooks/onBoot.js.map +1 -0
  61. package/dist/cjs/hooks/overrideFieldExtensions.js +3 -0
  62. package/dist/cjs/hooks/overrideFieldExtensions.js.map +1 -0
  63. package/dist/cjs/hooks/renderAssetSource.js +11 -0
  64. package/dist/cjs/hooks/renderAssetSource.js.map +1 -0
  65. package/dist/cjs/hooks/renderConfigScreen.js +11 -0
  66. package/dist/cjs/hooks/renderConfigScreen.js.map +1 -0
  67. package/dist/cjs/hooks/renderFieldExtension.js +11 -0
  68. package/dist/cjs/hooks/renderFieldExtension.js.map +1 -0
  69. package/dist/cjs/hooks/renderItemCollectionOutlet.js +11 -0
  70. package/dist/cjs/hooks/renderItemCollectionOutlet.js.map +1 -0
  71. package/dist/cjs/hooks/renderItemFormOutlet.js +11 -0
  72. package/dist/cjs/hooks/renderItemFormOutlet.js.map +1 -0
  73. package/dist/cjs/hooks/renderItemFormSidebar.js +11 -0
  74. package/dist/cjs/hooks/renderItemFormSidebar.js.map +1 -0
  75. package/dist/cjs/hooks/renderItemFormSidebarPanel.js +11 -0
  76. package/dist/cjs/hooks/renderItemFormSidebarPanel.js.map +1 -0
  77. package/dist/cjs/hooks/renderManualFieldExtensionConfigScreen.js +11 -0
  78. package/dist/cjs/hooks/renderManualFieldExtensionConfigScreen.js.map +1 -0
  79. package/dist/cjs/hooks/renderModal.js +11 -0
  80. package/dist/cjs/hooks/renderModal.js.map +1 -0
  81. package/dist/cjs/hooks/renderPage.js +11 -0
  82. package/dist/cjs/hooks/renderPage.js.map +1 -0
  83. package/dist/cjs/hooks/renderUploadSidebar.js +11 -0
  84. package/dist/cjs/hooks/renderUploadSidebar.js.map +1 -0
  85. package/dist/cjs/hooks/renderUploadSidebarPanel.js +11 -0
  86. package/dist/cjs/hooks/renderUploadSidebarPanel.js.map +1 -0
  87. package/dist/cjs/hooks/settingsAreaSidebarItemGroups.js +3 -0
  88. package/dist/cjs/hooks/settingsAreaSidebarItemGroups.js.map +1 -0
  89. package/dist/cjs/hooks/uploadSidebarPanels.js +3 -0
  90. package/dist/cjs/hooks/uploadSidebarPanels.js.map +1 -0
  91. package/dist/cjs/hooks/uploadSidebars.js +3 -0
  92. package/dist/cjs/hooks/uploadSidebars.js.map +1 -0
  93. package/dist/cjs/hooks/uploadsDropdownActions.js +3 -0
  94. package/dist/cjs/hooks/uploadsDropdownActions.js.map +1 -0
  95. package/dist/cjs/hooks/validateManualFieldExtensionParameters.js +3 -0
  96. package/dist/cjs/hooks/validateManualFieldExtensionParameters.js.map +1 -0
  97. package/dist/cjs/icon.js +3 -0
  98. package/dist/cjs/icon.js.map +1 -0
  99. package/dist/cjs/index.js +46 -1
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/manifest.js +3172 -0
  102. package/dist/cjs/manifest.js.map +1 -0
  103. package/dist/cjs/manifestTypes.js +3 -0
  104. package/dist/cjs/manifestTypes.js.map +1 -0
  105. package/dist/cjs/shared.js +3 -0
  106. package/dist/cjs/shared.js.map +1 -0
  107. package/dist/cjs/utils.js +136 -0
  108. package/dist/cjs/utils.js.map +1 -0
  109. package/dist/esm/connect.d.ts +44 -244
  110. package/dist/esm/connect.js +74 -212
  111. package/dist/esm/connect.js.map +1 -1
  112. package/dist/esm/ctx/base.d.ts +684 -0
  113. package/dist/esm/ctx/base.js +2 -0
  114. package/dist/esm/ctx/base.js.map +1 -0
  115. package/dist/esm/ctx/commonExtras/field.d.ts +29 -0
  116. package/dist/esm/ctx/commonExtras/field.js +2 -0
  117. package/dist/esm/ctx/commonExtras/field.js.map +1 -0
  118. package/dist/esm/ctx/commonExtras/itemForm.d.ts +148 -0
  119. package/dist/esm/ctx/commonExtras/itemForm.js +2 -0
  120. package/dist/esm/ctx/commonExtras/itemForm.js.map +1 -0
  121. package/dist/esm/ctx/commonExtras/sizing.d.ts +23 -0
  122. package/dist/esm/ctx/commonExtras/sizing.js +2 -0
  123. package/dist/esm/ctx/commonExtras/sizing.js.map +1 -0
  124. package/dist/esm/ctx/pluginFrame.d.ts +12 -0
  125. package/dist/esm/ctx/pluginFrame.js +2 -0
  126. package/dist/esm/ctx/pluginFrame.js.map +1 -0
  127. package/dist/esm/hooks/assetSources.d.ts +42 -0
  128. package/dist/esm/hooks/assetSources.js +2 -0
  129. package/dist/esm/hooks/assetSources.js.map +1 -0
  130. package/dist/esm/hooks/buildItemPresentationInfo.d.ts +29 -0
  131. package/dist/esm/hooks/buildItemPresentationInfo.js +2 -0
  132. package/dist/esm/hooks/buildItemPresentationInfo.js.map +1 -0
  133. package/dist/esm/hooks/contentAreaSidebarItems.d.ts +40 -0
  134. package/dist/esm/hooks/contentAreaSidebarItems.js +2 -0
  135. package/dist/esm/hooks/contentAreaSidebarItems.js.map +1 -0
  136. package/dist/esm/hooks/customBlockStylesForStructuredTextField.d.ts +36 -0
  137. package/dist/esm/hooks/customBlockStylesForStructuredTextField.js +2 -0
  138. package/dist/esm/hooks/customBlockStylesForStructuredTextField.js.map +1 -0
  139. package/dist/esm/hooks/customMarksForStructuredTextField.d.ts +57 -0
  140. package/dist/esm/hooks/customMarksForStructuredTextField.js +2 -0
  141. package/dist/esm/hooks/customMarksForStructuredTextField.js.map +1 -0
  142. package/dist/esm/hooks/executeFieldDropdownAction.d.ts +17 -0
  143. package/dist/esm/hooks/executeFieldDropdownAction.js +2 -0
  144. package/dist/esm/hooks/executeFieldDropdownAction.js.map +1 -0
  145. package/dist/esm/hooks/executeItemFormDropdownAction.d.ts +16 -0
  146. package/dist/esm/hooks/executeItemFormDropdownAction.js +2 -0
  147. package/dist/esm/hooks/executeItemFormDropdownAction.js.map +1 -0
  148. package/dist/esm/hooks/executeItemsDropdownAction.d.ts +20 -0
  149. package/dist/esm/hooks/executeItemsDropdownAction.js +2 -0
  150. package/dist/esm/hooks/executeItemsDropdownAction.js.map +1 -0
  151. package/dist/esm/hooks/executeUploadsDropdownAction.d.ts +20 -0
  152. package/dist/esm/hooks/executeUploadsDropdownAction.js +2 -0
  153. package/dist/esm/hooks/executeUploadsDropdownAction.js.map +1 -0
  154. package/dist/esm/hooks/fieldDropdownActions.d.ts +20 -0
  155. package/dist/esm/hooks/fieldDropdownActions.js +2 -0
  156. package/dist/esm/hooks/fieldDropdownActions.js.map +1 -0
  157. package/dist/esm/hooks/initialLocationQueryForItemSelector.d.ts +27 -0
  158. package/dist/esm/hooks/initialLocationQueryForItemSelector.js +2 -0
  159. package/dist/esm/hooks/initialLocationQueryForItemSelector.js.map +1 -0
  160. package/dist/esm/hooks/itemCollectionOutlets.d.ts +31 -0
  161. package/dist/esm/hooks/itemCollectionOutlets.js +2 -0
  162. package/dist/esm/hooks/itemCollectionOutlets.js.map +1 -0
  163. package/dist/esm/hooks/itemFormDropdownActions.d.ts +20 -0
  164. package/dist/esm/hooks/itemFormDropdownActions.js +2 -0
  165. package/dist/esm/hooks/itemFormDropdownActions.js.map +1 -0
  166. package/dist/esm/hooks/itemFormOutlets.d.ts +30 -0
  167. package/dist/esm/hooks/itemFormOutlets.js +2 -0
  168. package/dist/esm/hooks/itemFormOutlets.js.map +1 -0
  169. package/dist/esm/hooks/itemFormSidebarPanels.d.ts +48 -0
  170. package/dist/esm/hooks/itemFormSidebarPanels.js +2 -0
  171. package/dist/esm/hooks/itemFormSidebarPanels.js.map +1 -0
  172. package/dist/esm/hooks/itemFormSidebars.d.ts +38 -0
  173. package/dist/esm/hooks/itemFormSidebars.js +2 -0
  174. package/dist/esm/hooks/itemFormSidebars.js.map +1 -0
  175. package/dist/esm/hooks/itemsDropdownActions.d.ts +23 -0
  176. package/dist/esm/hooks/itemsDropdownActions.js +2 -0
  177. package/dist/esm/hooks/itemsDropdownActions.js.map +1 -0
  178. package/dist/esm/hooks/mainNavigationTabs.d.ts +44 -0
  179. package/dist/esm/hooks/mainNavigationTabs.js +2 -0
  180. package/dist/esm/hooks/mainNavigationTabs.js.map +1 -0
  181. package/dist/esm/hooks/manualFieldExtensions.d.ts +59 -0
  182. package/dist/esm/hooks/manualFieldExtensions.js +2 -0
  183. package/dist/esm/hooks/manualFieldExtensions.js.map +1 -0
  184. package/dist/esm/hooks/onBeforeItemUpsert.d.ts +16 -0
  185. package/dist/esm/hooks/onBeforeItemUpsert.js +2 -0
  186. package/dist/esm/hooks/onBeforeItemUpsert.js.map +1 -0
  187. package/dist/esm/hooks/onBeforeItemsDestroy.d.ts +15 -0
  188. package/dist/esm/hooks/onBeforeItemsDestroy.js +2 -0
  189. package/dist/esm/hooks/onBeforeItemsDestroy.js.map +1 -0
  190. package/dist/esm/hooks/onBeforeItemsPublish.d.ts +15 -0
  191. package/dist/esm/hooks/onBeforeItemsPublish.js +2 -0
  192. package/dist/esm/hooks/onBeforeItemsPublish.js.map +1 -0
  193. package/dist/esm/hooks/onBeforeItemsUnpublish.d.ts +15 -0
  194. package/dist/esm/hooks/onBeforeItemsUnpublish.js +2 -0
  195. package/dist/esm/hooks/onBeforeItemsUnpublish.js.map +1 -0
  196. package/dist/esm/hooks/onBoot.d.ts +11 -0
  197. package/dist/esm/hooks/onBoot.js +2 -0
  198. package/dist/esm/hooks/onBoot.js.map +1 -0
  199. package/dist/esm/hooks/overrideFieldExtensions.d.ts +88 -0
  200. package/dist/esm/hooks/overrideFieldExtensions.js +2 -0
  201. package/dist/esm/hooks/overrideFieldExtensions.js.map +1 -0
  202. package/dist/esm/hooks/renderAssetSource.d.ts +98 -0
  203. package/dist/esm/hooks/renderAssetSource.js +8 -0
  204. package/dist/esm/hooks/renderAssetSource.js.map +1 -0
  205. package/dist/esm/hooks/renderConfigScreen.d.ts +12 -0
  206. package/dist/esm/hooks/renderConfigScreen.js +8 -0
  207. package/dist/esm/hooks/renderConfigScreen.js.map +1 -0
  208. package/dist/esm/hooks/renderFieldExtension.d.ts +20 -0
  209. package/dist/esm/hooks/renderFieldExtension.js +8 -0
  210. package/dist/esm/hooks/renderFieldExtension.js.map +1 -0
  211. package/dist/esm/hooks/renderItemCollectionOutlet.d.ts +15 -0
  212. package/dist/esm/hooks/renderItemCollectionOutlet.js +8 -0
  213. package/dist/esm/hooks/renderItemCollectionOutlet.js.map +1 -0
  214. package/dist/esm/hooks/renderItemFormOutlet.d.ts +16 -0
  215. package/dist/esm/hooks/renderItemFormOutlet.js +8 -0
  216. package/dist/esm/hooks/renderItemFormOutlet.js.map +1 -0
  217. package/dist/esm/hooks/renderItemFormSidebar.d.ts +21 -0
  218. package/dist/esm/hooks/renderItemFormSidebar.js +8 -0
  219. package/dist/esm/hooks/renderItemFormSidebar.js.map +1 -0
  220. package/dist/esm/hooks/renderItemFormSidebarPanel.d.ts +21 -0
  221. package/dist/esm/hooks/renderItemFormSidebarPanel.js +8 -0
  222. package/dist/esm/hooks/renderItemFormSidebarPanel.js.map +1 -0
  223. package/dist/esm/hooks/renderManualFieldExtensionConfigScreen.d.ts +55 -0
  224. package/dist/esm/hooks/renderManualFieldExtensionConfigScreen.js +8 -0
  225. package/dist/esm/hooks/renderManualFieldExtensionConfigScreen.js.map +1 -0
  226. package/dist/esm/hooks/renderModal.d.ts +37 -0
  227. package/dist/esm/hooks/renderModal.js +8 -0
  228. package/dist/esm/hooks/renderModal.js.map +1 -0
  229. package/dist/esm/hooks/renderPage.d.ts +16 -0
  230. package/dist/esm/hooks/renderPage.js +8 -0
  231. package/dist/esm/hooks/renderPage.js.map +1 -0
  232. package/dist/esm/hooks/renderUploadSidebar.d.ts +25 -0
  233. package/dist/esm/hooks/renderUploadSidebar.js +8 -0
  234. package/dist/esm/hooks/renderUploadSidebar.js.map +1 -0
  235. package/dist/esm/hooks/renderUploadSidebarPanel.d.ts +25 -0
  236. package/dist/esm/hooks/renderUploadSidebarPanel.js +8 -0
  237. package/dist/esm/hooks/renderUploadSidebarPanel.js.map +1 -0
  238. package/dist/esm/hooks/settingsAreaSidebarItemGroups.d.ts +53 -0
  239. package/dist/esm/hooks/settingsAreaSidebarItemGroups.js +2 -0
  240. package/dist/esm/hooks/settingsAreaSidebarItemGroups.js.map +1 -0
  241. package/dist/esm/hooks/uploadSidebarPanels.d.ts +48 -0
  242. package/dist/esm/hooks/uploadSidebarPanels.js +2 -0
  243. package/dist/esm/hooks/uploadSidebarPanels.js.map +1 -0
  244. package/dist/esm/hooks/uploadSidebars.d.ts +35 -0
  245. package/dist/esm/hooks/uploadSidebars.js +2 -0
  246. package/dist/esm/hooks/uploadSidebars.js.map +1 -0
  247. package/dist/esm/hooks/uploadsDropdownActions.d.ts +19 -0
  248. package/dist/esm/hooks/uploadsDropdownActions.js +2 -0
  249. package/dist/esm/hooks/uploadsDropdownActions.js.map +1 -0
  250. package/dist/esm/hooks/validateManualFieldExtensionParameters.d.ts +9 -0
  251. package/dist/esm/hooks/validateManualFieldExtensionParameters.js +2 -0
  252. package/dist/esm/hooks/validateManualFieldExtensionParameters.js.map +1 -0
  253. package/dist/esm/icon.d.ts +6 -0
  254. package/dist/esm/icon.js +2 -0
  255. package/dist/esm/icon.js.map +1 -0
  256. package/dist/esm/index.d.ts +57 -12
  257. package/dist/esm/index.js +46 -1
  258. package/dist/esm/index.js.map +1 -1
  259. package/dist/esm/manifest.d.ts +2 -0
  260. package/dist/esm/manifest.js +3169 -0
  261. package/dist/esm/manifest.js.map +1 -0
  262. package/dist/esm/manifestTypes.d.ts +146 -0
  263. package/dist/esm/manifestTypes.js +2 -0
  264. package/dist/esm/manifestTypes.js.map +1 -0
  265. package/dist/esm/shared.d.ts +56 -0
  266. package/dist/esm/shared.js +2 -0
  267. package/dist/esm/shared.js.map +1 -0
  268. package/dist/esm/utils.d.ts +31 -0
  269. package/dist/esm/utils.js +129 -0
  270. package/dist/esm/utils.js.map +1 -0
  271. package/dist/types/connect.d.ts +44 -244
  272. package/dist/types/ctx/base.d.ts +684 -0
  273. package/dist/types/ctx/commonExtras/field.d.ts +29 -0
  274. package/dist/types/ctx/commonExtras/itemForm.d.ts +148 -0
  275. package/dist/types/ctx/commonExtras/sizing.d.ts +23 -0
  276. package/dist/types/ctx/pluginFrame.d.ts +12 -0
  277. package/dist/types/hooks/assetSources.d.ts +42 -0
  278. package/dist/types/hooks/buildItemPresentationInfo.d.ts +29 -0
  279. package/dist/types/hooks/contentAreaSidebarItems.d.ts +40 -0
  280. package/dist/types/hooks/customBlockStylesForStructuredTextField.d.ts +36 -0
  281. package/dist/types/hooks/customMarksForStructuredTextField.d.ts +57 -0
  282. package/dist/types/hooks/executeFieldDropdownAction.d.ts +17 -0
  283. package/dist/types/hooks/executeItemFormDropdownAction.d.ts +16 -0
  284. package/dist/types/hooks/executeItemsDropdownAction.d.ts +20 -0
  285. package/dist/types/hooks/executeUploadsDropdownAction.d.ts +20 -0
  286. package/dist/types/hooks/fieldDropdownActions.d.ts +20 -0
  287. package/dist/types/hooks/initialLocationQueryForItemSelector.d.ts +27 -0
  288. package/dist/types/hooks/itemCollectionOutlets.d.ts +31 -0
  289. package/dist/types/hooks/itemFormDropdownActions.d.ts +20 -0
  290. package/dist/types/hooks/itemFormOutlets.d.ts +30 -0
  291. package/dist/types/hooks/itemFormSidebarPanels.d.ts +48 -0
  292. package/dist/types/hooks/itemFormSidebars.d.ts +38 -0
  293. package/dist/types/hooks/itemsDropdownActions.d.ts +23 -0
  294. package/dist/types/hooks/mainNavigationTabs.d.ts +44 -0
  295. package/dist/types/hooks/manualFieldExtensions.d.ts +59 -0
  296. package/dist/types/hooks/onBeforeItemUpsert.d.ts +16 -0
  297. package/dist/types/hooks/onBeforeItemsDestroy.d.ts +15 -0
  298. package/dist/types/hooks/onBeforeItemsPublish.d.ts +15 -0
  299. package/dist/types/hooks/onBeforeItemsUnpublish.d.ts +15 -0
  300. package/dist/types/hooks/onBoot.d.ts +11 -0
  301. package/dist/types/hooks/overrideFieldExtensions.d.ts +88 -0
  302. package/dist/types/hooks/renderAssetSource.d.ts +98 -0
  303. package/dist/types/hooks/renderConfigScreen.d.ts +12 -0
  304. package/dist/types/hooks/renderFieldExtension.d.ts +20 -0
  305. package/dist/types/hooks/renderItemCollectionOutlet.d.ts +15 -0
  306. package/dist/types/hooks/renderItemFormOutlet.d.ts +16 -0
  307. package/dist/types/hooks/renderItemFormSidebar.d.ts +21 -0
  308. package/dist/types/hooks/renderItemFormSidebarPanel.d.ts +21 -0
  309. package/dist/types/hooks/renderManualFieldExtensionConfigScreen.d.ts +55 -0
  310. package/dist/types/hooks/renderModal.d.ts +37 -0
  311. package/dist/types/hooks/renderPage.d.ts +16 -0
  312. package/dist/types/hooks/renderUploadSidebar.d.ts +25 -0
  313. package/dist/types/hooks/renderUploadSidebarPanel.d.ts +25 -0
  314. package/dist/types/hooks/settingsAreaSidebarItemGroups.d.ts +53 -0
  315. package/dist/types/hooks/uploadSidebarPanels.d.ts +48 -0
  316. package/dist/types/hooks/uploadSidebars.d.ts +35 -0
  317. package/dist/types/hooks/uploadsDropdownActions.d.ts +19 -0
  318. package/dist/types/hooks/validateManualFieldExtensionParameters.d.ts +9 -0
  319. package/dist/types/icon.d.ts +6 -0
  320. package/dist/types/index.d.ts +57 -12
  321. package/dist/types/manifest.d.ts +2 -0
  322. package/dist/types/manifestTypes.d.ts +146 -0
  323. package/dist/types/shared.d.ts +56 -0
  324. package/dist/types/utils.d.ts +31 -0
  325. package/manifest.json +3168 -0
  326. package/package.json +7 -6
  327. package/src/connect.ts +207 -709
  328. package/src/ctx/base.ts +746 -0
  329. package/src/ctx/commonExtras/field.ts +27 -0
  330. package/src/ctx/commonExtras/itemForm.ts +155 -0
  331. package/src/ctx/commonExtras/sizing.ts +27 -0
  332. package/src/ctx/pluginFrame.ts +39 -0
  333. package/src/hooks/assetSources.ts +45 -0
  334. package/src/hooks/buildItemPresentationInfo.ts +35 -0
  335. package/src/hooks/contentAreaSidebarItems.ts +45 -0
  336. package/src/hooks/customBlockStylesForStructuredTextField.ts +42 -0
  337. package/src/hooks/customMarksForStructuredTextField.ts +64 -0
  338. package/src/hooks/executeFieldDropdownAction.ts +28 -0
  339. package/src/hooks/executeItemFormDropdownAction.ts +26 -0
  340. package/src/hooks/executeItemsDropdownAction.ts +24 -0
  341. package/src/hooks/executeUploadsDropdownAction.ts +24 -0
  342. package/src/hooks/fieldDropdownActions.ts +27 -0
  343. package/src/hooks/initialLocationQueryForItemSelector.ts +35 -0
  344. package/src/hooks/itemCollectionOutlets.ts +37 -0
  345. package/src/hooks/itemFormDropdownActions.ts +27 -0
  346. package/src/hooks/itemFormOutlets.ts +36 -0
  347. package/src/hooks/itemFormSidebarPanels.ts +54 -0
  348. package/src/hooks/itemFormSidebars.ts +44 -0
  349. package/src/hooks/itemsDropdownActions.ts +28 -0
  350. package/src/hooks/mainNavigationTabs.ts +47 -0
  351. package/src/hooks/manualFieldExtensions.ts +82 -0
  352. package/src/hooks/onBeforeItemUpsert.ts +21 -0
  353. package/src/hooks/onBeforeItemsDestroy.ts +20 -0
  354. package/src/hooks/onBeforeItemsPublish.ts +20 -0
  355. package/src/hooks/onBeforeItemsUnpublish.ts +20 -0
  356. package/src/hooks/onBoot.ts +13 -0
  357. package/src/hooks/overrideFieldExtensions.ts +95 -0
  358. package/src/hooks/renderAssetSource.ts +119 -0
  359. package/src/hooks/renderConfigScreen.ts +27 -0
  360. package/src/hooks/renderFieldExtension.ts +46 -0
  361. package/src/hooks/renderItemCollectionOutlet.ts +35 -0
  362. package/src/hooks/renderItemFormOutlet.ts +40 -0
  363. package/src/hooks/renderItemFormSidebar.ts +45 -0
  364. package/src/hooks/renderItemFormSidebarPanel.ts +46 -0
  365. package/src/hooks/renderManualFieldExtensionConfigScreen.ts +83 -0
  366. package/src/hooks/renderModal.ts +54 -0
  367. package/src/hooks/renderPage.ts +33 -0
  368. package/src/hooks/renderUploadSidebar.ts +44 -0
  369. package/src/hooks/renderUploadSidebarPanel.ts +47 -0
  370. package/src/hooks/settingsAreaSidebarItemGroups.ts +59 -0
  371. package/src/hooks/uploadSidebarPanels.ts +59 -0
  372. package/src/hooks/uploadSidebars.ts +38 -0
  373. package/src/hooks/uploadsDropdownActions.ts +22 -0
  374. package/src/hooks/validateManualFieldExtensionParameters.ts +12 -0
  375. package/src/{types.ts → icon.ts} +0 -1739
  376. package/src/index.ts +49 -4
  377. package/src/manifest.ts +3375 -0
  378. package/src/manifestTypes.ts +153 -0
  379. package/src/shared.ts +67 -0
  380. package/src/utils.ts +253 -0
  381. package/dist/cjs/guards.js +0 -19
  382. package/dist/cjs/guards.js.map +0 -1
  383. package/dist/cjs/types.js.map +0 -1
  384. package/dist/esm/guards.d.ts +0 -37
  385. package/dist/esm/guards.js +0 -16
  386. package/dist/esm/guards.js.map +0 -1
  387. package/dist/esm/types.d.ts +0 -1569
  388. package/dist/esm/types.js +0 -2
  389. package/dist/esm/types.js.map +0 -1
  390. package/dist/types/guards.d.ts +0 -37
  391. package/dist/types/types.d.ts +0 -1569
  392. package/src/guards.ts +0 -51
  393. package/types.json +0 -37437
@@ -0,0 +1,27 @@
1
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
2
+ import { containedRenderModeBootstrapper } from '../utils';
3
+
4
+ export type RenderConfigScreenHook = {
5
+ /**
6
+ * This function will be called when the plugin needs to render the plugin's
7
+ * configuration form
8
+ *
9
+ * @tag configScreen
10
+ */
11
+ renderConfigScreen: (ctx: RenderConfigScreenCtx) => void;
12
+ };
13
+
14
+ export type RenderConfigScreenCtx =
15
+ SelfResizingPluginFrameCtx<'renderConfigScreen'>;
16
+
17
+ export const renderConfigScreenBootstrapper =
18
+ containedRenderModeBootstrapper<RenderConfigScreenCtx>(
19
+ 'renderConfigScreen',
20
+ (configuration, ctx) => {
21
+ if (!configuration.renderConfigScreen) {
22
+ return;
23
+ }
24
+
25
+ configuration.renderConfigScreen(ctx);
26
+ },
27
+ );
@@ -0,0 +1,46 @@
1
+ import { FieldAdditionalProperties } from '../ctx/commonExtras/field';
2
+ import {
3
+ ItemFormAdditionalMethods,
4
+ ItemFormAdditionalProperties,
5
+ } from '../ctx/commonExtras/itemForm';
6
+
7
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
8
+ import { containedRenderModeBootstrapper } from '../utils';
9
+
10
+ export type RenderFieldExtensionHook = {
11
+ /**
12
+ * This function will be called when the plugin needs to render a field
13
+ * extension (see the `manualFieldExtensions` and `overrideFieldExtensions`
14
+ * functions)
15
+ *
16
+ * @tag forcedFieldExtensions
17
+ */
18
+ renderFieldExtension: (
19
+ fieldExtensionId: string,
20
+ ctx: RenderFieldExtensionCtx,
21
+ ) => void;
22
+ };
23
+
24
+ export type RenderFieldExtensionCtx = SelfResizingPluginFrameCtx<
25
+ 'renderFieldExtension',
26
+ ItemFormAdditionalProperties &
27
+ FieldAdditionalProperties & {
28
+ /** The ID of the field extension that needs to be rendered */
29
+ fieldExtensionId: string;
30
+ /** The arbitrary `parameters` of the field extension */
31
+ parameters: Record<string, unknown>;
32
+ },
33
+ ItemFormAdditionalMethods
34
+ >;
35
+
36
+ export const renderFieldExtensionBootstrapper =
37
+ containedRenderModeBootstrapper<RenderFieldExtensionCtx>(
38
+ 'renderFieldExtension',
39
+ (configuration, ctx) => {
40
+ if (!configuration.renderFieldExtension) {
41
+ return;
42
+ }
43
+
44
+ configuration.renderFieldExtension(ctx.fieldExtensionId, ctx);
45
+ },
46
+ );
@@ -0,0 +1,35 @@
1
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
2
+ import { containedRenderModeBootstrapper } from '../utils';
3
+
4
+ export type RenderItemCollectionOutletHook = {
5
+ /**
6
+ * This function will be called when the plugin needs to render an outlet
7
+ * defined by the `itemFormOutlets()` hook.
8
+ *
9
+ * @tag outlets
10
+ */
11
+ renderItemCollectionOutlet: (
12
+ itemCollectionOutletId: string,
13
+ ctx: RenderItemCollectionOutletCtx,
14
+ ) => void;
15
+ };
16
+
17
+ export type RenderItemCollectionOutletCtx = SelfResizingPluginFrameCtx<
18
+ 'renderItemCollectionOutlet',
19
+ {
20
+ /** The ID of the outlet that needs to be rendered */
21
+ itemCollectionOutletId: string;
22
+ }
23
+ >;
24
+
25
+ export const renderItemCollectionOutletBootstrapper =
26
+ containedRenderModeBootstrapper<RenderItemCollectionOutletCtx>(
27
+ 'renderItemCollectionOutlet',
28
+ (configuration, ctx) => {
29
+ if (!configuration.renderItemCollectionOutlet) {
30
+ return;
31
+ }
32
+
33
+ configuration.renderItemCollectionOutlet(ctx.itemCollectionOutletId, ctx);
34
+ },
35
+ );
@@ -0,0 +1,40 @@
1
+ import {
2
+ ItemFormAdditionalMethods,
3
+ ItemFormAdditionalProperties,
4
+ } from '../ctx/commonExtras/itemForm';
5
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
6
+ import { containedRenderModeBootstrapper } from '../utils';
7
+
8
+ export type RenderItemFormOutletHook = {
9
+ /**
10
+ * This function will be called when the plugin needs to render an outlet
11
+ * defined by the `itemFormOutlets()` hook.
12
+ *
13
+ * @tag outlets
14
+ */
15
+ renderItemFormOutlet: (
16
+ itemFormOutletId: string,
17
+ ctx: RenderItemFormOutletCtx,
18
+ ) => void;
19
+ };
20
+
21
+ export type RenderItemFormOutletCtx = SelfResizingPluginFrameCtx<
22
+ 'renderItemFormOutlet',
23
+ ItemFormAdditionalProperties & {
24
+ /** The ID of the outlet that needs to be rendered */
25
+ itemFormOutletId: string;
26
+ },
27
+ ItemFormAdditionalMethods
28
+ >;
29
+
30
+ export const renderItemFormOutletBootstrapper =
31
+ containedRenderModeBootstrapper<RenderItemFormOutletCtx>(
32
+ 'renderItemFormOutlet',
33
+ (configuration, ctx) => {
34
+ if (!configuration.renderItemFormOutlet) {
35
+ return;
36
+ }
37
+
38
+ configuration.renderItemFormOutlet(ctx.itemFormOutletId, ctx);
39
+ },
40
+ );
@@ -0,0 +1,45 @@
1
+ import {
2
+ ItemFormAdditionalMethods,
3
+ ItemFormAdditionalProperties,
4
+ } from '../ctx/commonExtras/itemForm';
5
+ import { ImposedSizePluginFrameCtx } from '../ctx/pluginFrame';
6
+ import { fullScreenRenderModeBootstrapper } from '../utils';
7
+
8
+ export type RenderItemFormSidebarHook = {
9
+ /**
10
+ * This function will be called when the plugin needs to render a sidebar (see
11
+ * the `itemFormSidebars` function)
12
+ *
13
+ * @tag sidebarPanels
14
+ */
15
+ renderItemFormSidebar: (
16
+ sidebarId: string,
17
+ ctx: RenderItemFormSidebarCtx,
18
+ ) => void;
19
+ };
20
+
21
+ export type RenderItemFormSidebarCtx = ImposedSizePluginFrameCtx<
22
+ 'renderItemFormSidebar',
23
+ ItemFormAdditionalProperties & {
24
+ /** The ID of the sidebar that needs to be rendered */
25
+ sidebarId: string;
26
+ /**
27
+ * The arbitrary `parameters` of the declared in the `itemFormSidebars`
28
+ * function
29
+ */
30
+ parameters: Record<string, unknown>;
31
+ },
32
+ ItemFormAdditionalMethods
33
+ >;
34
+
35
+ export const renderItemFormSidebarBootstrapper =
36
+ fullScreenRenderModeBootstrapper<RenderItemFormSidebarCtx>(
37
+ 'renderItemFormSidebar',
38
+ (configuration, ctx) => {
39
+ if (!configuration.renderItemFormSidebar) {
40
+ return;
41
+ }
42
+
43
+ configuration.renderItemFormSidebar(ctx.sidebarId, ctx);
44
+ },
45
+ );
@@ -0,0 +1,46 @@
1
+ import {
2
+ ItemFormAdditionalMethods,
3
+ ItemFormAdditionalProperties,
4
+ } from '../ctx/commonExtras/itemForm';
5
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
6
+ import { containedRenderModeBootstrapper } from '../utils';
7
+
8
+ export type RenderItemFormSidebarPanelHook = {
9
+ /**
10
+ * This function will be called when the plugin needs to render a sidebar panel
11
+ * (see the `itemFormSidebarPanels` function)
12
+ *
13
+ * @tag sidebarPanels
14
+ */
15
+ renderItemFormSidebarPanel: (
16
+ sidebarPaneId: string,
17
+ ctx: RenderItemFormSidebarPanelCtx,
18
+ ) => void;
19
+ };
20
+
21
+ export type RenderItemFormSidebarPanelCtx = SelfResizingPluginFrameCtx<
22
+ 'renderItemFormSidebarPanel',
23
+ ItemFormAdditionalProperties & {
24
+ /** The ID of the sidebar panel that needs to be rendered */
25
+ sidebarPaneId: string;
26
+
27
+ /**
28
+ * The arbitrary `parameters` of the panel declared in the
29
+ * `itemFormSidebarPanels` function
30
+ */
31
+ parameters: Record<string, unknown>;
32
+ },
33
+ ItemFormAdditionalMethods
34
+ >;
35
+
36
+ export const renderItemFormSidebarPanelBootstrapper =
37
+ containedRenderModeBootstrapper<RenderItemFormSidebarPanelCtx>(
38
+ 'renderItemFormSidebarPanel',
39
+ (configuration, ctx) => {
40
+ if (!configuration.renderItemFormSidebarPanel) {
41
+ return;
42
+ }
43
+
44
+ configuration.renderItemFormSidebarPanel(ctx.sidebarPaneId, ctx);
45
+ },
46
+ );
@@ -0,0 +1,83 @@
1
+ import type { SchemaTypes } from '@datocms/cma-client';
2
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
3
+ import { containedRenderModeBootstrapper } from '../utils';
4
+
5
+ type Field = SchemaTypes.Field;
6
+ type ItemType = SchemaTypes.ItemType;
7
+
8
+ export type RenderManualFieldExtensionConfigScreenHook = {
9
+ renderManualFieldExtensionConfigScreen: (
10
+ fieldExtensionId: string,
11
+ ctx: RenderManualFieldExtensionConfigScreenCtx,
12
+ ) => void;
13
+ };
14
+
15
+ export type RenderManualFieldExtensionConfigScreenCtx =
16
+ SelfResizingPluginFrameCtx<
17
+ 'renderManualFieldExtensionConfigScreen',
18
+ {
19
+ /**
20
+ * The ID of the field extension for which we need to render the parameters
21
+ * form
22
+ */
23
+ fieldExtensionId: string;
24
+ /**
25
+ * The current value of the parameters (you can change the value with the
26
+ * `setParameters` function)
27
+ */
28
+ parameters: Record<string, unknown>;
29
+ /**
30
+ * The current validation errors for the parameters (you can set them
31
+ * implementing the `validateManualFieldExtensionParameters` function)
32
+ */
33
+ errors: Record<string, unknown>;
34
+
35
+ /** The field entity that is being edited in the form */
36
+ pendingField: PendingField;
37
+
38
+ /** The model for the field being edited */
39
+ itemType: ItemType;
40
+ },
41
+ {
42
+ /**
43
+ * Sets a new value for the parameters
44
+ *
45
+ * @example
46
+ *
47
+ * ```js
48
+ * await ctx.setParameters({ color: '#ff0000' });
49
+ * ```
50
+ */
51
+ setParameters: (params: Record<string, unknown>) => Promise<void>;
52
+ }
53
+ >;
54
+
55
+ export type PendingField = {
56
+ id?: string;
57
+ type: 'field';
58
+ attributes: {
59
+ api_key: Field['attributes']['api_key'];
60
+ appearance: Field['attributes']['appearance'];
61
+ default_value: Field['attributes']['default_value'];
62
+ field_type: Field['attributes']['field_type'];
63
+ hint: Field['attributes']['hint'];
64
+ label: Field['attributes']['label'];
65
+ localized: Field['attributes']['localized'];
66
+ validators: Field['attributes']['validators'];
67
+ };
68
+ };
69
+
70
+ export const renderManualFieldExtensionConfigScreenBootstrapper =
71
+ containedRenderModeBootstrapper<RenderManualFieldExtensionConfigScreenCtx>(
72
+ 'renderManualFieldExtensionConfigScreen',
73
+ (configuration, ctx) => {
74
+ if (!configuration.renderManualFieldExtensionConfigScreen) {
75
+ return;
76
+ }
77
+
78
+ configuration.renderManualFieldExtensionConfigScreen(
79
+ ctx.fieldExtensionId,
80
+ ctx,
81
+ );
82
+ },
83
+ );
@@ -0,0 +1,54 @@
1
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
2
+ import { containedRenderModeBootstrapper } from '../utils';
3
+
4
+ export type RenderModalHook = {
5
+ /**
6
+ * This function will be called when the plugin requested to open a modal (see
7
+ * the `openModal` function)
8
+ *
9
+ * @tag modals
10
+ */
11
+ renderModal: (modalId: string, ctx: RenderModalCtx) => void;
12
+ };
13
+ export type RenderModalCtx = SelfResizingPluginFrameCtx<
14
+ 'renderModal',
15
+ {
16
+ /** The ID of the modal that needs to be rendered */
17
+ modalId: string;
18
+ /**
19
+ * The arbitrary `parameters` of the modal declared in the `openModal`
20
+ * function
21
+ */
22
+ parameters: Record<string, unknown>;
23
+ },
24
+ {
25
+ /**
26
+ * A function to be called by the plugin to close the modal. The `openModal`
27
+ * call will be resolved with the passed return value
28
+ *
29
+ * @example
30
+ *
31
+ * ```js
32
+ * const returnValue = prompt(
33
+ * 'Please specify the value to return to the caller:',
34
+ * 'success',
35
+ * );
36
+ *
37
+ * await ctx.resolve(returnValue);
38
+ * ```
39
+ */
40
+ resolve: (returnValue: unknown) => Promise<void>;
41
+ }
42
+ >;
43
+
44
+ export const renderModalBootstrapper =
45
+ containedRenderModeBootstrapper<RenderModalCtx>(
46
+ 'renderModal',
47
+ (configuration, ctx) => {
48
+ if (!configuration.renderModal) {
49
+ return;
50
+ }
51
+
52
+ configuration.renderModal(ctx.modalId, ctx);
53
+ },
54
+ );
@@ -0,0 +1,33 @@
1
+ import { ImposedSizePluginFrameCtx } from '../ctx/pluginFrame';
2
+ import { fullScreenRenderModeBootstrapper } from '../utils';
3
+
4
+ export type RenderPageHook = {
5
+ /**
6
+ * This function will be called when the plugin needs to render a specific
7
+ * page (see the `mainNavigationTabs`, `settingsAreaSidebarItemGroups` and
8
+ * `contentAreaSidebarItems` functions)
9
+ *
10
+ * @tag pages
11
+ */
12
+ renderPage: (pageId: string, ctx: RenderPageCtx) => void;
13
+ };
14
+
15
+ export type RenderPageCtx = ImposedSizePluginFrameCtx<
16
+ 'renderPage',
17
+ {
18
+ /** The ID of the page that needs to be rendered */
19
+ pageId: string;
20
+ }
21
+ >;
22
+
23
+ export const renderPageBootstrapper =
24
+ fullScreenRenderModeBootstrapper<RenderPageCtx>(
25
+ 'renderPage',
26
+ (configuration, ctx) => {
27
+ if (!configuration.renderPage) {
28
+ return;
29
+ }
30
+
31
+ configuration.renderPage(ctx.pageId, ctx);
32
+ },
33
+ );
@@ -0,0 +1,44 @@
1
+ import type { SchemaTypes } from '@datocms/cma-client';
2
+ import { ImposedSizePluginFrameCtx } from '../ctx/pluginFrame';
3
+ import { fullScreenRenderModeBootstrapper } from '../utils';
4
+
5
+ type Upload = SchemaTypes.Upload;
6
+
7
+ export type RenderUploadSidebarHook = {
8
+ /**
9
+ * This function will be called when the plugin needs to render a sidebar (see
10
+ * the `uploadSidebars` function)
11
+ *
12
+ * @tag sidebarPanels
13
+ */
14
+ renderUploadSidebar: (sidebarId: string, ctx: RenderUploadSidebarCtx) => void;
15
+ };
16
+
17
+ export type RenderUploadSidebarCtx = ImposedSizePluginFrameCtx<
18
+ 'renderUploadSidebar',
19
+ {
20
+ /** The ID of the sidebar that needs to be rendered */
21
+ sidebarId: string;
22
+
23
+ /**
24
+ * The arbitrary `parameters` of the declared in the `uploadSidebars`
25
+ * function
26
+ */
27
+ parameters: Record<string, unknown>;
28
+
29
+ /** The active asset */
30
+ upload: Upload;
31
+ }
32
+ >;
33
+
34
+ export const renderUploadSidebarBootstrapper =
35
+ fullScreenRenderModeBootstrapper<RenderUploadSidebarCtx>(
36
+ 'renderUploadSidebar',
37
+ (configuration, ctx) => {
38
+ if (!configuration.renderUploadSidebar) {
39
+ return;
40
+ }
41
+
42
+ configuration.renderUploadSidebar(ctx.sidebarId, ctx);
43
+ },
44
+ );
@@ -0,0 +1,47 @@
1
+ import { SchemaTypes } from '@datocms/cma-client';
2
+ import { SelfResizingPluginFrameCtx } from '../ctx/pluginFrame';
3
+ import { containedRenderModeBootstrapper } from '../utils';
4
+
5
+ type Upload = SchemaTypes.Upload;
6
+
7
+ export type RenderUploadSidebarPanelHook = {
8
+ /**
9
+ * This function will be called when the plugin needs to render a sidebar panel
10
+ * (see the `uploadSidebarPanels` function)
11
+ *
12
+ * @tag sidebarPanels
13
+ */
14
+ renderUploadSidebarPanel: (
15
+ sidebarPaneId: string,
16
+ ctx: RenderUploadSidebarPanelCtx,
17
+ ) => void;
18
+ };
19
+
20
+ export type RenderUploadSidebarPanelCtx = SelfResizingPluginFrameCtx<
21
+ 'renderUploadSidebarPanel',
22
+ {
23
+ /** The ID of the sidebar panel that needs to be rendered */
24
+ sidebarPaneId: string;
25
+
26
+ /**
27
+ * The arbitrary `parameters` of the panel declared in the
28
+ * `uploadSidebarPanels` function
29
+ */
30
+ parameters: Record<string, unknown>;
31
+
32
+ /** The active asset */
33
+ upload: Upload;
34
+ }
35
+ >;
36
+
37
+ export const renderUploadSidebarPanelBootstrapper =
38
+ containedRenderModeBootstrapper<RenderUploadSidebarPanelCtx>(
39
+ 'renderUploadSidebarPanel',
40
+ (configuration, ctx) => {
41
+ if (!configuration.renderUploadSidebarPanel) {
42
+ return;
43
+ }
44
+
45
+ configuration.renderUploadSidebarPanel(ctx.sidebarPaneId, ctx);
46
+ },
47
+ );
@@ -0,0 +1,59 @@
1
+ import { Ctx } from '../ctx/base';
2
+ import { Icon } from '../icon';
3
+
4
+ export type SettingsAreaSidebarItemGroupsHook = {
5
+ /**
6
+ * Use this function to declare new navigation sections in the Settings Area
7
+ * sidebar
8
+ *
9
+ * @tag pages
10
+ */
11
+ settingsAreaSidebarItemGroups: (
12
+ ctx: SettingsAreaSidebarItemGroupsCtx,
13
+ ) => SettingsAreaSidebarItemGroup[];
14
+ };
15
+
16
+ export type SettingsAreaSidebarItemGroupsCtx = Ctx;
17
+
18
+ /**
19
+ * The sidebar in the Settings Area presents a number of pages grouped by topic.
20
+ * This object represents a new group to be added in the sideebar to the
21
+ * standard ones DatoCMS provides.
22
+ */
23
+ export type SettingsAreaSidebarItemGroup = {
24
+ /** Label to be shown. Must be unique. */
25
+ label: string;
26
+ /** The list of items it contains * */
27
+ items: SettingsAreaSidebarItem[];
28
+ /**
29
+ * Expresses where you want the group to be placed inside the sidebar. If not
30
+ * specified, the item will be placed after the standard items provided by
31
+ * DatoCMS itself.
32
+ */
33
+ placement?: ['before' | 'after', 'properties' | 'permissions'];
34
+ /**
35
+ * If different plugins specify the same `placement` for their sections, they
36
+ * will be displayed by ascending `rank`. If you want to specify an explicit
37
+ * value for `rank`, make sure to offer a way for final users to customize it
38
+ * inside the plugin's settings form, otherwise the hardcoded value you choose
39
+ * might clash with the one of another plugin!
40
+ */
41
+ rank?: number;
42
+ };
43
+
44
+ /** An item contained in a Settings Area group */
45
+ export type SettingsAreaSidebarItem = {
46
+ /** Label to be shown. Must be unique. */
47
+ label: string;
48
+ /**
49
+ * Icon to be shown alongside the label. Can be a FontAwesome icon name (ie.
50
+ * `"address-book"`) or a custom SVG definition. To maintain visual
51
+ * consistency with the rest of the interface, try to use FontAwesome icons
52
+ * whenever possible.
53
+ */
54
+ icon: Icon;
55
+ /** ID of the page linked to the item */
56
+ pointsTo: {
57
+ pageId: string;
58
+ };
59
+ };
@@ -0,0 +1,59 @@
1
+ import { Ctx } from '../ctx/base';
2
+
3
+ export type UploadSidebarPanelsHook = {
4
+ /**
5
+ * Use this function to declare new sidebar panels to be shown when the user
6
+ * opens up an asset in the Media Area
7
+ *
8
+ * @tag sidebarPanels
9
+ */
10
+ uploadSidebarPanels: (ctx: UploadSidebarPanelsCtx) => UploadSidebarPanel[];
11
+ };
12
+
13
+ export type UploadSidebarPanelsCtx = Ctx;
14
+
15
+ export type UploadSidebarPanel = {
16
+ /**
17
+ * ID of the panel. Will be the first argument for the
18
+ * `renderUploadSidebarPanel` function
19
+ */
20
+ id: string;
21
+ /** Label to be shown on the collapsible sidebar panel handle */
22
+ label: string;
23
+ /**
24
+ * An arbitrary configuration object that will be passed as the `parameters`
25
+ * property of the second argument of the `renderUploadSidebarPanel`
26
+ * function
27
+ */
28
+ parameters?: Record<string, unknown>;
29
+ /** Whether the sidebar panel will start open or collapsed */
30
+ startOpen?: boolean;
31
+ /**
32
+ * Expresses where you want the item to be placed inside the sidebar. If not
33
+ * specified, the item will be placed after the standard panels provided by
34
+ * DatoCMS itself.
35
+ */
36
+ placement?: UploadSidebarPanelPlacement;
37
+ /**
38
+ * If multiple sidebar panels specify the same `placement`, they will be
39
+ * sorted by ascending `rank`. If you want to specify an explicit value for
40
+ * `rank`, make sure to offer a way for final users to customize it inside the
41
+ * plugin's settings form, otherwise the hardcoded value you choose might
42
+ * clash with the one of another plugin!
43
+ */
44
+ rank?: number;
45
+ /** The initial height to set for the iframe that will render the sidebar panel */
46
+ initialHeight?: number;
47
+ };
48
+
49
+ export type UploadSidebarPanelPlacement = [
50
+ 'before' | 'after',
51
+ (
52
+ | 'defaultMetadata'
53
+ | 'categorization'
54
+ | 'creator'
55
+ | 'videoTracks'
56
+ | 'links'
57
+ | 'replace'
58
+ ),
59
+ ];
@@ -0,0 +1,38 @@
1
+ import { Ctx } from '../ctx/base';
2
+
3
+ export type UploadSidebarsHook = {
4
+ /**
5
+ * Use this function to declare new sidebar to be shown when the user opens
6
+ * up an asset in the Media Area
7
+ *
8
+ * @tag sidebarPanels
9
+ */
10
+ uploadSidebars: (ctx: UploadSidebarsCtx) => UploadSidebar[];
11
+ };
12
+
13
+ export type UploadSidebarsCtx = Ctx;
14
+
15
+ export type UploadSidebar = {
16
+ /**
17
+ * ID of the sidebar. Will be the first argument for the
18
+ * `renderUploadSidebar` function
19
+ */
20
+ id: string;
21
+ /** Label to be shown on the collapsible sidebar handle */
22
+ label: string;
23
+ /**
24
+ * An arbitrary configuration object that will be passed as the `parameters`
25
+ * property of the second argument of the `renderUploadSidebar` function
26
+ */
27
+ parameters?: Record<string, unknown>;
28
+ /**
29
+ * If multiple sidebars specify the same `placement`, they will be sorted by
30
+ * ascending `rank`. If you want to specify an explicit value for `rank`, make
31
+ * sure to offer a way for final users to customize it inside the plugin's
32
+ * settings form, otherwise the hardcoded value you choose might clash with
33
+ * the one of another plugin!
34
+ */
35
+ rank?: number;
36
+ /** The preferred width for the sidebar */
37
+ preferredWidth?: number;
38
+ };
@@ -0,0 +1,22 @@
1
+ import { Ctx } from '../ctx/base';
2
+ import { DropdownAction, DropdownActionGroup } from '../shared';
3
+
4
+ export type UploadsDropdownActionsHook = {
5
+ /**
6
+ * This function lets you set up custom actions (or groups of actions) that
7
+ * show up when the user:
8
+ *
9
+ * * selects multiple assets in the Media Area for batch operations, or
10
+ * * opens up a specific asset from the Media Area.
11
+ *
12
+ * The `executeUploadsDropdownAction()` hook will be triggered once the user
13
+ * clicks on one of the defined actions.
14
+ *
15
+ * @tag dropdownActions
16
+ */
17
+ uploadsDropdownActions: (
18
+ ctx: UploadsDropdownActionsCtx,
19
+ ) => Array<DropdownAction | DropdownActionGroup>;
20
+ };
21
+
22
+ type UploadsDropdownActionsCtx = Ctx;