@payloadcms/ui 4.0.0-internal.567a487 → 4.0.0-internal.5a4aa81

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 (459) hide show
  1. package/dist/elements/AppHeader/index.css +0 -4
  2. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  3. package/dist/elements/AppHeader/index.js +1 -4
  4. package/dist/elements/AppHeader/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +2 -6
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  9. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  11. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js +4 -9
  14. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  15. package/dist/elements/Button/index.d.ts.map +1 -1
  16. package/dist/elements/Button/index.js +2 -0
  17. package/dist/elements/Button/index.js.map +1 -1
  18. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  19. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +10 -3
  20. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  21. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  22. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  23. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  24. package/dist/elements/ColumnSelection/Popup.js +3 -3
  25. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  26. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
  27. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
  28. package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
  29. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
  30. package/dist/{utilities/matchesSearchQuery.spec.js → elements/ColumnSelection/matchesColumnSearch.spec.js} +29 -29
  31. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
  32. package/dist/elements/Combobox/index.css +23 -84
  33. package/dist/elements/Combobox/index.d.ts +0 -21
  34. package/dist/elements/Combobox/index.d.ts.map +1 -1
  35. package/dist/elements/Combobox/index.js +21 -66
  36. package/dist/elements/Combobox/index.js.map +1 -1
  37. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  38. package/dist/elements/CopyLocaleData/index.js +8 -9
  39. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  40. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  41. package/dist/elements/DeleteDocument/index.js +2 -9
  42. package/dist/elements/DeleteDocument/index.js.map +1 -1
  43. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  44. package/dist/elements/DeleteMany/index.js +3 -7
  45. package/dist/elements/DeleteMany/index.js.map +1 -1
  46. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +3 -5
  47. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  48. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -32
  49. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  50. package/dist/elements/Dropzone/index.css +10 -4
  51. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  52. package/dist/elements/DuplicateDocument/index.js +3 -9
  53. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  54. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  55. package/dist/elements/EditMany/DrawerContent.js +3 -7
  56. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  57. package/dist/elements/FileManager/index.css +0 -30
  58. package/dist/elements/FileManager/index.d.ts.map +1 -1
  59. package/dist/elements/FileManager/index.js +379 -287
  60. package/dist/elements/FileManager/index.js.map +1 -1
  61. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  62. package/dist/elements/Hierarchy/ColumnBrowser/index.js +1 -4
  63. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  64. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  65. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -4
  66. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  67. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +1 -2
  68. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  69. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +0 -2
  70. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  71. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/index.js +0 -3
  73. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +3 -7
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  78. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -6
  79. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  80. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  81. package/dist/elements/Hierarchy/Tree/useChildren.js +1 -4
  82. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  83. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  84. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +4 -9
  85. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  86. package/dist/elements/LivePreview/Window/index.js +1 -1
  87. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  88. package/dist/elements/Localizer/index.js +1 -1
  89. package/dist/elements/Localizer/index.js.map +1 -1
  90. package/dist/elements/Nav/context.js +2 -2
  91. package/dist/elements/Nav/context.js.map +1 -1
  92. package/dist/elements/Nav/getNavPrefs.d.ts +0 -6
  93. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  94. package/dist/elements/Nav/getNavPrefs.js +46 -14
  95. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  96. package/dist/elements/NavGroup/index.js +1 -1
  97. package/dist/elements/NavGroup/index.js.map +1 -1
  98. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  99. package/dist/elements/PermanentlyDeleteButton/index.js +1 -4
  100. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  101. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  102. package/dist/elements/PublishButton/ScheduleDrawer/index.js +8 -30
  103. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  104. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  105. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  106. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  107. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  108. package/dist/elements/PublishButton/index.js +7 -12
  109. package/dist/elements/PublishButton/index.js.map +1 -1
  110. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  111. package/dist/elements/PublishMany/DrawerContent.js +3 -7
  112. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  113. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  114. package/dist/elements/RestoreButton/index.js +1 -4
  115. package/dist/elements/RestoreButton/index.js.map +1 -1
  116. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  117. package/dist/elements/RestoreMany/index.js +2 -6
  118. package/dist/elements/RestoreMany/index.js.map +1 -1
  119. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  120. package/dist/elements/SaveDraftButton/index.js +4 -18
  121. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  122. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  123. package/dist/elements/SchedulePublishButton/index.js +1 -7
  124. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  125. package/dist/elements/Status/index.d.ts.map +1 -1
  126. package/dist/elements/Status/index.js +5 -19
  127. package/dist/elements/Status/index.js.map +1 -1
  128. package/dist/elements/StepNav/index.css +0 -7
  129. package/dist/elements/StepNav/index.d.ts.map +1 -1
  130. package/dist/elements/StepNav/index.js +24 -16
  131. package/dist/elements/StepNav/index.js.map +1 -1
  132. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  133. package/dist/elements/Table/OrderableTable.js +3 -6
  134. package/dist/elements/Table/OrderableTable.js.map +1 -1
  135. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  136. package/dist/elements/Table/RelationshipProvider/index.js +25 -32
  137. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  138. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  139. package/dist/elements/UnpublishButton/index.js +4 -8
  140. package/dist/elements/UnpublishButton/index.js.map +1 -1
  141. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  142. package/dist/elements/UnpublishMany/DrawerContent.js +3 -7
  143. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  144. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  145. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  146. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  147. package/dist/elements/Upload/index.css +39 -32
  148. package/dist/elements/Upload/index.d.ts.map +1 -1
  149. package/dist/elements/Upload/index.js +37 -99
  150. package/dist/elements/Upload/index.js.map +1 -1
  151. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  152. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  153. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  154. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  155. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  156. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  157. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  158. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  159. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  160. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  161. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  162. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  163. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  164. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  165. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -4
  166. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  167. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  168. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  169. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  170. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  171. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  172. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  173. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  174. package/dist/elements/WhereBuilder/index.js +15 -4
  175. package/dist/elements/WhereBuilder/index.js.map +1 -1
  176. package/dist/exports/client/index.d.ts +0 -17
  177. package/dist/exports/client/index.d.ts.map +1 -1
  178. package/dist/exports/client/index.js +1 -1
  179. package/dist/exports/client/index.js.map +3 -3
  180. package/dist/fields/Array/index.d.ts.map +1 -1
  181. package/dist/fields/Array/index.js +2 -3
  182. package/dist/fields/Array/index.js.map +1 -1
  183. package/dist/fields/Blocks/index.d.ts.map +1 -1
  184. package/dist/fields/Blocks/index.js +2 -3
  185. package/dist/fields/Blocks/index.js.map +1 -1
  186. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  187. package/dist/fields/FieldLabel/index.js +4 -5
  188. package/dist/fields/FieldLabel/index.js.map +1 -1
  189. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  190. package/dist/fields/Relationship/Input.js +3 -8
  191. package/dist/fields/Relationship/Input.js.map +1 -1
  192. package/dist/fields/Slug/index.d.ts.map +1 -1
  193. package/dist/fields/Slug/index.js +2 -3
  194. package/dist/fields/Slug/index.js.map +1 -1
  195. package/dist/fields/Upload/Input.d.ts.map +1 -1
  196. package/dist/fields/Upload/Input.js +47 -23
  197. package/dist/fields/Upload/Input.js.map +1 -1
  198. package/dist/fields/Upload/Input.spec.js +242 -0
  199. package/dist/fields/Upload/Input.spec.js.map +1 -0
  200. package/dist/fields/shared/index.d.ts +1 -1
  201. package/dist/fields/shared/index.d.ts.map +1 -1
  202. package/dist/fields/shared/index.js.map +1 -1
  203. package/dist/forms/Form/index.d.ts.map +1 -1
  204. package/dist/forms/Form/index.js +2 -3
  205. package/dist/forms/Form/index.js.map +1 -1
  206. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  207. package/dist/forms/NullifyField/index.js +2 -3
  208. package/dist/forms/NullifyField/index.js.map +1 -1
  209. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  210. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  211. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  212. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  213. package/dist/hooks/usePayloadAPI.js +42 -47
  214. package/dist/hooks/usePayloadAPI.js.map +1 -1
  215. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  216. package/dist/providers/DocumentInfo/index.js +3 -8
  217. package/dist/providers/DocumentInfo/index.js.map +1 -1
  218. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
  219. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  220. package/dist/providers/DocumentInfo/useGetDocPermissions.js +1 -3
  221. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  222. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  223. package/dist/providers/Hierarchy/index.js +1 -4
  224. package/dist/providers/Hierarchy/index.js.map +1 -1
  225. package/dist/providers/Locale/index.d.ts +1 -5
  226. package/dist/providers/Locale/index.d.ts.map +1 -1
  227. package/dist/providers/Locale/index.js +61 -139
  228. package/dist/providers/Locale/index.js.map +1 -1
  229. package/dist/providers/Preferences/index.d.ts +1 -3
  230. package/dist/providers/Preferences/index.d.ts.map +1 -1
  231. package/dist/providers/Preferences/index.js +3 -9
  232. package/dist/providers/Preferences/index.js.map +1 -1
  233. package/dist/providers/Selection/index.d.ts.map +1 -1
  234. package/dist/providers/Selection/index.js +2 -3
  235. package/dist/providers/Selection/index.js.map +1 -1
  236. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  237. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  238. package/dist/providers/ServerFunctions/index.js +15 -0
  239. package/dist/providers/ServerFunctions/index.js.map +1 -1
  240. package/dist/styles.css +1 -1
  241. package/dist/templates/Default/index.d.ts.map +1 -1
  242. package/dist/templates/Default/index.js +37 -43
  243. package/dist/templates/Default/index.js.map +1 -1
  244. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  245. package/dist/utilities/formatMetadata.js +0 -5
  246. package/dist/utilities/formatMetadata.js.map +1 -1
  247. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  248. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  249. package/dist/utilities/getFilesFromClipboard.js +49 -0
  250. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  251. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  252. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  253. package/dist/utilities/getHasScheduledPublish.js +2 -5
  254. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  255. package/dist/utilities/getVersions.d.ts +1 -6
  256. package/dist/utilities/getVersions.d.ts.map +1 -1
  257. package/dist/utilities/getVersions.js +0 -5
  258. package/dist/utilities/getVersions.js.map +1 -1
  259. package/dist/utilities/initReq.d.ts.map +1 -1
  260. package/dist/utilities/initReq.js +0 -8
  261. package/dist/utilities/initReq.js.map +1 -1
  262. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  263. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  264. package/dist/utilities/schedulePublishHandler.js +68 -14
  265. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  266. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  267. package/dist/utilities/serverFunctionRegistry.js +2 -7
  268. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  269. package/dist/utilities/slugify.d.ts.map +1 -1
  270. package/dist/utilities/slugify.js +3 -0
  271. package/dist/utilities/slugify.js.map +1 -1
  272. package/dist/views/API/index.client.d.ts.map +1 -1
  273. package/dist/views/API/index.client.js +4 -13
  274. package/dist/views/API/index.client.js.map +1 -1
  275. package/dist/views/Document/getDocumentView.d.ts.map +1 -1
  276. package/dist/views/Document/getDocumentView.js +2 -21
  277. package/dist/views/Document/getDocumentView.js.map +1 -1
  278. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  279. package/dist/views/Document/getMetaBySegment.js +0 -9
  280. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  281. package/dist/views/Document/index.d.ts +1 -3
  282. package/dist/views/Document/index.d.ts.map +1 -1
  283. package/dist/views/Document/index.js +2 -10
  284. package/dist/views/Document/index.js.map +1 -1
  285. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  286. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  287. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  288. package/dist/views/Edit/index.d.ts.map +1 -1
  289. package/dist/views/Edit/index.js +3 -2
  290. package/dist/views/Edit/index.js.map +1 -1
  291. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  292. package/dist/views/HierarchyList/HierarchyTable/index.js +2 -6
  293. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  294. package/dist/views/Root/getRouteData.d.ts.map +1 -1
  295. package/dist/views/Root/getRouteData.js +4 -12
  296. package/dist/views/Root/getRouteData.js.map +1 -1
  297. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  298. package/dist/views/Version/Default/SetStepNav.js +10 -13
  299. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  300. package/dist/views/Version/Default/index.css +2 -26
  301. package/dist/views/Version/Default/index.d.ts.map +1 -1
  302. package/dist/views/Version/Default/index.js +18 -31
  303. package/dist/views/Version/Default/index.js.map +1 -1
  304. package/dist/views/Version/Default/types.d.ts +0 -9
  305. package/dist/views/Version/Default/types.d.ts.map +1 -1
  306. package/dist/views/Version/Default/types.js.map +1 -1
  307. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  308. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -8
  309. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  310. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  311. package/dist/views/Version/Restore/index.js +3 -6
  312. package/dist/views/Version/Restore/index.js.map +1 -1
  313. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  314. package/dist/views/Version/index.d.ts.map +1 -1
  315. package/dist/views/Version/index.js +0 -4
  316. package/dist/views/Version/index.js.map +1 -1
  317. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  318. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  319. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  320. package/dist/views/Versions/buildColumns.d.ts +1 -2
  321. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  322. package/dist/views/Versions/buildColumns.js +1 -21
  323. package/dist/views/Versions/buildColumns.js.map +1 -1
  324. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  325. package/dist/views/Versions/index.client.d.ts +1 -0
  326. package/dist/views/Versions/index.client.d.ts.map +1 -1
  327. package/dist/views/Versions/index.client.js.map +1 -1
  328. package/dist/views/Versions/index.d.ts.map +1 -1
  329. package/dist/views/Versions/index.js +14 -2
  330. package/dist/views/Versions/index.js.map +1 -1
  331. package/package.json +6 -5
  332. package/dist/elements/BranchSelector/NewBranchModal/index.css +0 -46
  333. package/dist/elements/BranchSelector/NewBranchModal/index.d.ts +0 -12
  334. package/dist/elements/BranchSelector/NewBranchModal/index.d.ts.map +0 -1
  335. package/dist/elements/BranchSelector/NewBranchModal/index.js +0 -174
  336. package/dist/elements/BranchSelector/NewBranchModal/index.js.map +0 -1
  337. package/dist/elements/BranchSelector/index.css +0 -172
  338. package/dist/elements/BranchSelector/index.d.ts +0 -13
  339. package/dist/elements/BranchSelector/index.d.ts.map +0 -1
  340. package/dist/elements/BranchSelector/index.js +0 -255
  341. package/dist/elements/BranchSelector/index.js.map +0 -1
  342. package/dist/elements/ChangeSummary/index.css +0 -18
  343. package/dist/elements/ChangeSummary/index.d.ts +0 -28
  344. package/dist/elements/ChangeSummary/index.d.ts.map +0 -1
  345. package/dist/elements/ChangeSummary/index.js +0 -147
  346. package/dist/elements/ChangeSummary/index.js.map +0 -1
  347. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.css +0 -12
  348. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts +0 -12
  349. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.d.ts.map +0 -1
  350. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js +0 -83
  351. package/dist/elements/DocumentHeader/Tabs/tabs/BranchChangesPill/index.js.map +0 -1
  352. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts +0 -14
  353. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.d.ts.map +0 -1
  354. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js +0 -28
  355. package/dist/elements/DocumentHeader/Tabs/tabs/BranchSettingsTab/index.js.map +0 -1
  356. package/dist/elements/MergeBranch/context.d.ts +0 -67
  357. package/dist/elements/MergeBranch/context.d.ts.map +0 -1
  358. package/dist/elements/MergeBranch/context.js +0 -47
  359. package/dist/elements/MergeBranch/context.js.map +0 -1
  360. package/dist/elements/MergeBranch/index.css +0 -136
  361. package/dist/elements/MergeBranch/index.d.ts +0 -15
  362. package/dist/elements/MergeBranch/index.d.ts.map +0 -1
  363. package/dist/elements/MergeBranch/index.js +0 -545
  364. package/dist/elements/MergeBranch/index.js.map +0 -1
  365. package/dist/elements/MergeBranch/provider.d.ts +0 -12
  366. package/dist/elements/MergeBranch/provider.d.ts.map +0 -1
  367. package/dist/elements/MergeBranch/provider.js +0 -19
  368. package/dist/elements/MergeBranch/provider.js.map +0 -1
  369. package/dist/elements/MergeBranch/slug.d.ts +0 -9
  370. package/dist/elements/MergeBranch/slug.d.ts.map +0 -1
  371. package/dist/elements/MergeBranch/slug.js +0 -8
  372. package/dist/elements/MergeBranch/slug.js.map +0 -1
  373. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.css +0 -34
  374. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts +0 -13
  375. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.d.ts.map +0 -1
  376. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js +0 -51
  377. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +0 -1
  378. package/dist/icons/Branch/index.css +0 -5
  379. package/dist/icons/Branch/index.d.ts +0 -7
  380. package/dist/icons/Branch/index.d.ts.map +0 -1
  381. package/dist/icons/Branch/index.js +0 -25
  382. package/dist/icons/Branch/index.js.map +0 -1
  383. package/dist/providers/Branch/index.d.ts +0 -68
  384. package/dist/providers/Branch/index.d.ts.map +0 -1
  385. package/dist/providers/Branch/index.js +0 -193
  386. package/dist/providers/Branch/index.js.map +0 -1
  387. package/dist/providers/Branch/index.server.d.ts +0 -14
  388. package/dist/providers/Branch/index.server.d.ts.map +0 -1
  389. package/dist/providers/Branch/index.server.js +0 -125
  390. package/dist/providers/Branch/index.server.js.map +0 -1
  391. package/dist/utilities/getAdminPreferences.d.ts +0 -14
  392. package/dist/utilities/getAdminPreferences.d.ts.map +0 -1
  393. package/dist/utilities/getAdminPreferences.js +0 -22
  394. package/dist/utilities/getAdminPreferences.js.map +0 -1
  395. package/dist/utilities/getRequestBranch.d.ts +0 -20
  396. package/dist/utilities/getRequestBranch.d.ts.map +0 -1
  397. package/dist/utilities/getRequestBranch.js +0 -35
  398. package/dist/utilities/getRequestBranch.js.map +0 -1
  399. package/dist/utilities/matchesSearchQuery.d.ts +0 -12
  400. package/dist/utilities/matchesSearchQuery.d.ts.map +0 -1
  401. package/dist/utilities/matchesSearchQuery.js +0 -23
  402. package/dist/utilities/matchesSearchQuery.js.map +0 -1
  403. package/dist/utilities/matchesSearchQuery.spec.js.map +0 -1
  404. package/dist/utilities/scheduleMergeHandler.d.ts +0 -33
  405. package/dist/utilities/scheduleMergeHandler.d.ts.map +0 -1
  406. package/dist/utilities/scheduleMergeHandler.js +0 -119
  407. package/dist/utilities/scheduleMergeHandler.js.map +0 -1
  408. package/dist/views/Branch/BranchChanges/index.d.ts +0 -23
  409. package/dist/views/Branch/BranchChanges/index.d.ts.map +0 -1
  410. package/dist/views/Branch/BranchChanges/index.js +0 -150
  411. package/dist/views/Branch/BranchChanges/index.js.map +0 -1
  412. package/dist/views/Branch/ChangedDocuments/index.css +0 -118
  413. package/dist/views/Branch/ChangedDocuments/index.d.ts +0 -34
  414. package/dist/views/Branch/ChangedDocuments/index.d.ts.map +0 -1
  415. package/dist/views/Branch/ChangedDocuments/index.js +0 -233
  416. package/dist/views/Branch/ChangedDocuments/index.js.map +0 -1
  417. package/dist/views/Branch/DiscardChangesButton/index.d.ts +0 -16
  418. package/dist/views/Branch/DiscardChangesButton/index.d.ts.map +0 -1
  419. package/dist/views/Branch/DiscardChangesButton/index.js +0 -106
  420. package/dist/views/Branch/DiscardChangesButton/index.js.map +0 -1
  421. package/dist/views/Branch/Manage/index.d.ts +0 -11
  422. package/dist/views/Branch/Manage/index.d.ts.map +0 -1
  423. package/dist/views/Branch/Manage/index.js +0 -71
  424. package/dist/views/Branch/Manage/index.js.map +0 -1
  425. package/dist/views/Branch/MergeChangesButton/index.d.ts +0 -14
  426. package/dist/views/Branch/MergeChangesButton/index.d.ts.map +0 -1
  427. package/dist/views/Branch/MergeChangesButton/index.js +0 -55
  428. package/dist/views/Branch/MergeChangesButton/index.js.map +0 -1
  429. package/dist/views/Branch/MergeLedger/index.css +0 -137
  430. package/dist/views/Branch/MergeLedger/index.d.ts +0 -31
  431. package/dist/views/Branch/MergeLedger/index.d.ts.map +0 -1
  432. package/dist/views/Branch/MergeLedger/index.js +0 -211
  433. package/dist/views/Branch/MergeLedger/index.js.map +0 -1
  434. package/dist/views/Branch/ScheduledMerges/index.css +0 -83
  435. package/dist/views/Branch/ScheduledMerges/index.d.ts +0 -32
  436. package/dist/views/Branch/ScheduledMerges/index.d.ts.map +0 -1
  437. package/dist/views/Branch/ScheduledMerges/index.js +0 -183
  438. package/dist/views/Branch/ScheduledMerges/index.js.map +0 -1
  439. package/dist/views/Branch/index.css +0 -77
  440. package/dist/views/Branch/index.d.ts +0 -17
  441. package/dist/views/Branch/index.d.ts.map +0 -1
  442. package/dist/views/Branch/index.js +0 -188
  443. package/dist/views/Branch/index.js.map +0 -1
  444. package/dist/views/Branch/renderBranchDiff.d.ts +0 -29
  445. package/dist/views/Branch/renderBranchDiff.d.ts.map +0 -1
  446. package/dist/views/Branch/renderBranchDiff.js +0 -151
  447. package/dist/views/Branch/renderBranchDiff.js.map +0 -1
  448. package/dist/views/Branch/renderMergeDiff.d.ts +0 -24
  449. package/dist/views/Branch/renderMergeDiff.d.ts.map +0 -1
  450. package/dist/views/Branch/renderMergeDiff.js +0 -94
  451. package/dist/views/Branch/renderMergeDiff.js.map +0 -1
  452. package/dist/views/Branches/index.d.ts +0 -16
  453. package/dist/views/Branches/index.d.ts.map +0 -1
  454. package/dist/views/Branches/index.js +0 -54
  455. package/dist/views/Branches/index.js.map +0 -1
  456. package/dist/views/Versions/cells/Branch/index.d.ts +0 -12
  457. package/dist/views/Versions/cells/Branch/index.d.ts.map +0 -1
  458. package/dist/views/Versions/cells/Branch/index.js +0 -27
  459. package/dist/views/Versions/cells/Branch/index.js.map +0 -1
@@ -1,211 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import { getTranslation } from '@payloadcms/translations';
5
- import { formatAdminURL } from 'payload/shared';
6
- import React, { useCallback, useRef, useState } from 'react';
7
- import { Link } from '../../../elements/Link/index.js';
8
- import { Pill } from '../../../elements/Pill/index.js';
9
- import { ShimmerEffect } from '../../../elements/ShimmerEffect/index.js';
10
- import { ChevronIcon } from '../../../icons/Chevron/index.js';
11
- import { useConfig } from '../../../providers/Config/index.js';
12
- import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
13
- import { useTranslation } from '../../../providers/Translation/index.js';
14
- import './index.css';
15
- const baseClass = 'merge-ledger';
16
- const operationPillStyle = {
17
- create: 'success',
18
- delete: 'error',
19
- update: 'warning'
20
- };
21
- /**
22
- * A branch's history: one section per merge event, newest first.
23
- *
24
- * Reconstructed from the ledger rather than from the branch's current state, which
25
- * by then holds nothing — a merge consumes the change rows it applies and drops the
26
- * shadow rows behind them. Titles are the ones the documents had when they merged.
27
- *
28
- * Rows expand to the diff of what that merge did, rendered from the snapshots taken
29
- * either side of the write. Fetched per row, because a history can hold hundreds of
30
- * documents and each diff is a full field-tree render.
31
- */
32
- export const MergeLedger = ({
33
- events
34
- }) => {
35
- const {
36
- config,
37
- getEntityConfig
38
- } = useConfig();
39
- const {
40
- i18n,
41
- t
42
- } = useTranslation();
43
- const {
44
- serverFunction
45
- } = useServerFunctions();
46
- const [expanded, setExpanded] = useState(() => new Set());
47
- const [loaded, setLoaded] = useState({});
48
- const loadedRef = useRef(loaded);
49
- loadedRef.current = loaded;
50
- const load = useCallback(async ({
51
- changeIndex,
52
- key,
53
- mergeID
54
- }) => {
55
- if (loadedRef.current[key]) {
56
- return;
57
- }
58
- setLoaded(prev => ({
59
- ...prev,
60
- [key]: {
61
- status: 'loading'
62
- }
63
- }));
64
- try {
65
- const result = await serverFunction({
66
- name: 'render-merge-diff',
67
- args: {
68
- changeIndex,
69
- mergeID
70
- }
71
- });
72
- setLoaded(prev_1 => ({
73
- ...prev_1,
74
- [key]: {
75
- result,
76
- status: 'ready'
77
- }
78
- }));
79
- } catch (_err) {
80
- setLoaded(prev_0 => ({
81
- ...prev_0,
82
- [key]: {
83
- status: 'error'
84
- }
85
- }));
86
- }
87
- }, [serverFunction]);
88
- const toggle = useCallback(({
89
- changeIndex: changeIndex_0,
90
- key: key_0,
91
- mergeID: mergeID_0
92
- }) => {
93
- // The fetch is kicked off outside the updater. A state updater must be pure —
94
- // React may run it during another component's render, and the `setLoaded` inside
95
- // `load` then lands mid-render.
96
- const willExpand = !expanded.has(key_0);
97
- setExpanded(prev_2 => {
98
- const next = new Set(prev_2);
99
- if (next.has(key_0)) {
100
- next.delete(key_0);
101
- } else {
102
- next.add(key_0);
103
- }
104
- return next;
105
- });
106
- if (willExpand) {
107
- void load({
108
- changeIndex: changeIndex_0,
109
- key: key_0,
110
- mergeID: mergeID_0
111
- });
112
- }
113
- }, [expanded, load]);
114
- if (!events.length) {
115
- return null;
116
- }
117
- return /*#__PURE__*/_jsx("div", {
118
- className: baseClass,
119
- children: events.map(event => /*#__PURE__*/_jsxs("section", {
120
- className: `${baseClass}__event`,
121
- children: [/*#__PURE__*/_jsxs("header", {
122
- className: `${baseClass}__header`,
123
- children: [/*#__PURE__*/_jsx("h3", {
124
- className: `${baseClass}__when`,
125
- children: t('branching:mergedOn', {
126
- date: new Date(event.mergedAt).toLocaleString(undefined, {
127
- dateStyle: 'medium',
128
- timeStyle: 'short'
129
- })
130
- })
131
- }), /*#__PURE__*/_jsx("span", {
132
- className: `${baseClass}__meta`,
133
- children: event.mergedByLabel ? t('branching:mergedByCount', {
134
- count: event.changes.length,
135
- user: event.mergedByLabel
136
- }) : t('branching:mergedCount', {
137
- count: event.changes.length
138
- })
139
- })]
140
- }), /*#__PURE__*/_jsx("ul", {
141
- className: `${baseClass}__list`,
142
- children: event.changes.map((change, changeIndex_1) => {
143
- const collectionConfig = change.globalSlug ? undefined : getEntityConfig({
144
- collectionSlug: change.collectionSlug
145
- });
146
- const globalConfig = change.globalSlug ? getEntityConfig({
147
- globalSlug: change.globalSlug
148
- }) : undefined;
149
- const key_1 = `${event.id}-${changeIndex_1}`;
150
- const isExpanded = expanded.has(key_1);
151
- const state = loaded[key_1];
152
- return /*#__PURE__*/_jsxs("li", {
153
- className: `${baseClass}__row`,
154
- children: [/*#__PURE__*/_jsxs("div", {
155
- className: `${baseClass}__row-header`,
156
- children: [/*#__PURE__*/_jsx("button", {
157
- "aria-expanded": isExpanded,
158
- className: `${baseClass}__toggle`,
159
- onClick: () => toggle({
160
- changeIndex: changeIndex_1,
161
- key: key_1,
162
- mergeID: event.id
163
- }),
164
- type: "button",
165
- children: /*#__PURE__*/_jsx("span", {
166
- children: change.docTitle
167
- })
168
- }), /*#__PURE__*/_jsxs("div", {
169
- className: `${baseClass}__row-content`,
170
- children: [/*#__PURE__*/_jsx(Pill, {
171
- className: `${baseClass}__operation`,
172
- pillStyle: operationPillStyle[change.operation],
173
- size: "small",
174
- children: t(`branching:operation_${change.operation}`)
175
- }), /*#__PURE__*/_jsx(Pill, {
176
- className: `${baseClass}__entity`,
177
- pillStyle: "light-gray",
178
- size: "small",
179
- children: getTranslation(globalConfig ? globalConfig.label ?? change.globalSlug : collectionConfig?.labels?.singular ?? change.collectionSlug, i18n)
180
- }), change.operation === 'delete' ? /*#__PURE__*/_jsx("span", {
181
- className: `${baseClass}__title`,
182
- children: change.docTitle
183
- }) : /*#__PURE__*/_jsx(Link, {
184
- className: `${baseClass}__title ${baseClass}__title--link`,
185
- href: formatAdminURL({
186
- adminRoute: config.routes.admin,
187
- path: change.globalSlug ? `/globals/${change.globalSlug}` : `/collections/${change.collectionSlug}/${change.docID}`
188
- }),
189
- children: change.docTitle
190
- }), /*#__PURE__*/_jsx(ChevronIcon, {
191
- className: `${baseClass}__indicator`,
192
- direction: isExpanded ? 'up' : 'down',
193
- size: 16
194
- })]
195
- })]
196
- }), isExpanded && /*#__PURE__*/_jsxs("div", {
197
- className: `${baseClass}__diff`,
198
- children: [state?.status === 'ready' ? state.result?.diff : null, state?.status === 'loading' || !state ? /*#__PURE__*/_jsx(ShimmerEffect, {
199
- height: "3rem"
200
- }) : null, state?.status === 'error' ? /*#__PURE__*/_jsx("p", {
201
- className: `${baseClass}__error`,
202
- children: t('error:unknown')
203
- }) : null]
204
- })]
205
- }, key_1);
206
- })
207
- })]
208
- }, event.id))
209
- });
210
- };
211
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","React","useCallback","useRef","useState","Link","Pill","ShimmerEffect","ChevronIcon","useConfig","useServerFunctions","useTranslation","baseClass","operationPillStyle","create","delete","update","MergeLedger","events","config","getEntityConfig","i18n","t","serverFunction","expanded","setExpanded","Set","loaded","setLoaded","loadedRef","current","load","changeIndex","key","mergeID","prev","status","result","name","args","_err","toggle","willExpand","has","next","add","length","_jsx","className","map","event","_jsxs","date","Date","mergedAt","toLocaleString","undefined","dateStyle","timeStyle","mergedByLabel","count","changes","user","change","collectionConfig","globalSlug","collectionSlug","globalConfig","id","isExpanded","state","onClick","type","docTitle","pillStyle","operation","size","label","labels","singular","href","adminRoute","routes","admin","path","docID","direction","diff","height"],"sources":["../../../../src/views/Branch/MergeLedger/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useRef, useState } from 'react'\n\nimport type { RenderMergeDiffResult } from '../renderMergeDiff.js'\n\nimport { Link } from '../../../elements/Link/index.js'\nimport { Pill } from '../../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../../elements/ShimmerEffect/index.js'\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.css'\n\nconst baseClass = 'merge-ledger'\n\nexport type MergeEventChange = {\n collectionSlug: string\n docID: string\n docTitle: string\n /** Set instead of `collectionSlug`/`docID` when the merged change was a global. */\n globalSlug?: string\n operation: 'create' | 'delete' | 'update'\n}\n\nexport type MergeEvent = {\n changes: MergeEventChange[]\n id: string\n mergedAt: string\n mergedByLabel?: string\n}\n\ntype LoadState = {\n result?: RenderMergeDiffResult\n status: 'error' | 'loading' | 'ready'\n}\n\nconst operationPillStyle = {\n create: 'success',\n delete: 'error',\n update: 'warning',\n} as const\n\n/**\n * A branch's history: one section per merge event, newest first.\n *\n * Reconstructed from the ledger rather than from the branch's current state, which\n * by then holds nothing — a merge consumes the change rows it applies and drops the\n * shadow rows behind them. Titles are the ones the documents had when they merged.\n *\n * Rows expand to the diff of what that merge did, rendered from the snapshots taken\n * either side of the write. Fetched per row, because a history can hold hundreds of\n * documents and each diff is a full field-tree render.\n */\nexport const MergeLedger: React.FC<{ events: MergeEvent[] }> = ({ events }) => {\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { serverFunction } = useServerFunctions()\n\n const [expanded, setExpanded] = useState<Set<string>>(() => new Set())\n const [loaded, setLoaded] = useState<Record<string, LoadState>>({})\n\n const loadedRef = useRef(loaded)\n loadedRef.current = loaded\n\n const load = useCallback(\n async ({\n changeIndex,\n key,\n mergeID,\n }: {\n changeIndex: number\n key: string\n mergeID: string\n }) => {\n if (loadedRef.current[key]) {\n return\n }\n\n setLoaded((prev) => ({ ...prev, [key]: { status: 'loading' } }))\n\n try {\n const result = (await serverFunction({\n name: 'render-merge-diff',\n args: { changeIndex, mergeID },\n })) as RenderMergeDiffResult\n\n setLoaded((prev) => ({ ...prev, [key]: { result, status: 'ready' } }))\n } catch (_err) {\n setLoaded((prev) => ({ ...prev, [key]: { status: 'error' } }))\n }\n },\n [serverFunction],\n )\n\n const toggle = useCallback(\n ({ changeIndex, key, mergeID }: { changeIndex: number; key: string; mergeID: string }) => {\n // The fetch is kicked off outside the updater. A state updater must be pure —\n // React may run it during another component's render, and the `setLoaded` inside\n // `load` then lands mid-render.\n const willExpand = !expanded.has(key)\n\n setExpanded((prev) => {\n const next = new Set(prev)\n\n if (next.has(key)) {\n next.delete(key)\n } else {\n next.add(key)\n }\n\n return next\n })\n\n if (willExpand) {\n void load({ changeIndex, key, mergeID })\n }\n },\n [expanded, load],\n )\n\n if (!events.length) {\n return null\n }\n\n return (\n <div className={baseClass}>\n {events.map((event) => (\n <section className={`${baseClass}__event`} key={event.id}>\n <header className={`${baseClass}__header`}>\n <h3 className={`${baseClass}__when`}>\n {t('branching:mergedOn', {\n date: new Date(event.mergedAt).toLocaleString(undefined, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }),\n })}\n </h3>\n <span className={`${baseClass}__meta`}>\n {event.mergedByLabel\n ? t('branching:mergedByCount', {\n count: event.changes.length,\n user: event.mergedByLabel,\n })\n : t('branching:mergedCount', { count: event.changes.length })}\n </span>\n </header>\n\n <ul className={`${baseClass}__list`}>\n {event.changes.map((change, changeIndex) => {\n const collectionConfig = change.globalSlug\n ? undefined\n : getEntityConfig({ collectionSlug: change.collectionSlug })\n const globalConfig = change.globalSlug\n ? getEntityConfig({ globalSlug: change.globalSlug })\n : undefined\n const key = `${event.id}-${changeIndex}`\n const isExpanded = expanded.has(key)\n const state = loaded[key]\n\n return (\n <li className={`${baseClass}__row`} key={key}>\n {/* Following `Collapsible` and the review list: an overlay button\n takes the clicks so the whole header opens the row, and the\n content sits above it with pointer events off. */}\n <div className={`${baseClass}__row-header`}>\n <button\n aria-expanded={isExpanded}\n className={`${baseClass}__toggle`}\n onClick={() => toggle({ changeIndex, key, mergeID: event.id })}\n type=\"button\"\n >\n <span>{change.docTitle}</span>\n </button>\n <div className={`${baseClass}__row-content`}>\n <Pill\n className={`${baseClass}__operation`}\n pillStyle={operationPillStyle[change.operation]}\n size=\"small\"\n >\n {t(`branching:operation_${change.operation}` as Parameters<typeof t>[0])}\n </Pill>\n <Pill className={`${baseClass}__entity`} pillStyle=\"light-gray\" size=\"small\">\n {getTranslation(\n globalConfig\n ? (globalConfig.label ?? change.globalSlug)\n : (collectionConfig?.labels?.singular ?? change.collectionSlug),\n i18n,\n )}\n </Pill>\n {/* A merged delete has no document left to open. A global has\n somewhere to go instead: its own edit view. */}\n {change.operation === 'delete' ? (\n <span className={`${baseClass}__title`}>{change.docTitle}</span>\n ) : (\n <Link\n className={`${baseClass}__title ${baseClass}__title--link`}\n href={formatAdminURL({\n adminRoute: config.routes.admin,\n path: change.globalSlug\n ? `/globals/${change.globalSlug}`\n : `/collections/${change.collectionSlug}/${change.docID}`,\n })}\n >\n {change.docTitle}\n </Link>\n )}\n <ChevronIcon\n className={`${baseClass}__indicator`}\n direction={isExpanded ? 'up' : 'down'}\n size={16}\n />\n </div>\n </div>\n\n {isExpanded && (\n <div className={`${baseClass}__diff`}>\n {state?.status === 'ready' ? state.result?.diff : null}\n {state?.status === 'loading' || !state ? (\n <ShimmerEffect height=\"3rem\" />\n ) : null}\n {state?.status === 'error' ? (\n <p className={`${baseClass}__error`}>{t('error:unknown')}</p>\n ) : null}\n </div>\n )}\n </li>\n )\n })}\n </ul>\n </section>\n ))}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,83 +0,0 @@
1
- @layer payload-default {
2
- /* One line, stated plainly, above everything it qualifies. */
3
- .scheduled-merges__banner {
4
- display: flex;
5
- align-items: center;
6
- justify-content: space-between;
7
- gap: var(--spacer-3);
8
- margin-block-end: var(--spacer-3);
9
- padding: var(--spacer-2) var(--spacer-3);
10
- border: var(--stroke-width-small) solid var(--color-border-success);
11
- border-radius: var(--radius-medium);
12
- background: var(--color-bg-success-tertiary);
13
- }
14
-
15
- .scheduled-merges__banner-text {
16
- min-width: 0;
17
- }
18
-
19
- .scheduled-merges__banner-actions {
20
- display: flex;
21
- align-items: center;
22
- gap: var(--spacer-2);
23
- flex-shrink: 0;
24
- }
25
-
26
- .scheduled-merges__list {
27
- display: flex;
28
- flex-direction: column;
29
- gap: var(--spacer-4);
30
- }
31
-
32
- .scheduled-merges__schedule-header {
33
- display: flex;
34
- align-items: baseline;
35
- justify-content: space-between;
36
- gap: var(--spacer-3);
37
- margin-block-end: var(--spacer-2);
38
- }
39
-
40
- .scheduled-merges__when,
41
- .scheduled-merges__manage-when {
42
- margin: 0;
43
- font-family: var(--text-body-medium-strong-font-family);
44
- font-size: var(--text-body-medium-font-size);
45
- font-weight: var(--text-body-medium-strong-font-weight);
46
- }
47
-
48
- .scheduled-merges__meta,
49
- .scheduled-merges__empty {
50
- color: var(--color-text-secondary);
51
- }
52
-
53
- .scheduled-merges__manage-list {
54
- display: flex;
55
- flex-direction: column;
56
- gap: var(--spacer-2);
57
- margin: 0;
58
- padding: 0;
59
- list-style: none;
60
- }
61
-
62
- .scheduled-merges__manage-row {
63
- display: flex;
64
- align-items: flex-start;
65
- justify-content: space-between;
66
- gap: var(--spacer-3);
67
- padding-block-end: var(--spacer-3);
68
- border-block-end: var(--stroke-width-small) solid var(--color-border);
69
- }
70
-
71
- /* Stacked, so the date leads and the ledger reads underneath it. */
72
- .scheduled-merges__manage-details {
73
- display: flex;
74
- flex-direction: column;
75
- gap: var(--spacer-1);
76
- min-width: 0;
77
- }
78
-
79
- .scheduled-merges__manage-row:last-child {
80
- padding-block-end: 0;
81
- border-block-end: none;
82
- }
83
- }
@@ -1,32 +0,0 @@
1
- import React from 'react';
2
- import type { BranchChange } from '../ChangedDocuments/index.js';
3
- import './index.css';
4
- export type ScheduledMerge = {
5
- /** The documents this schedule will apply, resolved against what is pending now. */
6
- changes: BranchChange[];
7
- closeBranch: boolean;
8
- /** `payload-jobs` row ID, which is also the handle for cancelling it. */
9
- id: string;
10
- /** True when the schedule named no selection, so it takes whatever is pending. */
11
- isEverything: boolean;
12
- waitUntil: string;
13
- };
14
- /**
15
- * What a branch is about to merge, and when.
16
- *
17
- * A banner says it in one line, because it changes what everything below it means: the
18
- * pending changes are no longer only a proposal, they are a proposal with a date on it.
19
- * Below that each schedule lists the documents it will apply, expandable to the same
20
- * diff the review list shows — the diff is against main either way, so it is the same
21
- * question asked about a future moment.
22
- *
23
- * Several schedules can coexist: schedule a merge, keep working, schedule another. The
24
- * banner names the soonest and the modal holds the rest, which is why actions live
25
- * there rather than being repeated per row.
26
- */
27
- export declare const ScheduledMerges: React.FC<{
28
- branchID: number | string;
29
- branchSlug: string;
30
- schedules: ScheduledMerge[];
31
- }>;
32
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Branch/ScheduledMerges/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAiBhE,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,cAAc,GAAG;IAC3B,oFAAoF;IACpF,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;IACpB,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAA;IACV,kFAAkF;IAClF,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAKD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,cAAc,EAAE,CAAA;CAC5B,CA2HA,CAAA"}
@@ -1,183 +0,0 @@
1
- 'use client';
2
-
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import React, { useCallback, useState } from 'react';
5
- import { toast } from 'sonner';
6
- import { Button } from '../../../elements/Button/index.js';
7
- import { ChangeSummary } from '../../../elements/ChangeSummary/index.js';
8
- import { DialogBody, DialogFooter, DialogHeader, DialogModal } from '../../../elements/Dialog/index.js';
9
- import { useModal } from '../../../elements/Modal/index.js';
10
- import { Pill } from '../../../elements/Pill/index.js';
11
- import { useRouter } from '../../../providers/RouterAdapter/index.js';
12
- import { useRouteTransition } from '../../../providers/RouteTransition/index.js';
13
- import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
14
- import { useTranslation } from '../../../providers/Translation/index.js';
15
- import { ChangedDocuments } from '../ChangedDocuments/index.js';
16
- import './index.css';
17
- const baseClass = 'scheduled-merges';
18
- const formatWhen = value => new Date(value).toLocaleString(undefined, {
19
- dateStyle: 'long',
20
- timeStyle: 'short'
21
- });
22
- /**
23
- * What a branch is about to merge, and when.
24
- *
25
- * A banner says it in one line, because it changes what everything below it means: the
26
- * pending changes are no longer only a proposal, they are a proposal with a date on it.
27
- * Below that each schedule lists the documents it will apply, expandable to the same
28
- * diff the review list shows — the diff is against main either way, so it is the same
29
- * question asked about a future moment.
30
- *
31
- * Several schedules can coexist: schedule a merge, keep working, schedule another. The
32
- * banner names the soonest and the modal holds the rest, which is why actions live
33
- * there rather than being repeated per row.
34
- */
35
- export const ScheduledMerges = ({
36
- branchID,
37
- branchSlug,
38
- schedules
39
- }) => {
40
- const {
41
- t
42
- } = useTranslation();
43
- const {
44
- closeModal,
45
- openModal
46
- } = useModal();
47
- const {
48
- serverFunction
49
- } = useServerFunctions();
50
- const router = useRouter();
51
- const {
52
- startRouteTransition
53
- } = useRouteTransition();
54
- const [isWorking, setIsWorking] = useState(false);
55
- const modalSlug = `scheduled-merges-${branchID}`;
56
- const soonest = schedules[0];
57
- const handleCancel = useCallback(async deleteID => {
58
- setIsWorking(true);
59
- try {
60
- await serverFunction({
61
- name: 'schedule-merge',
62
- args: {
63
- deleteID
64
- }
65
- });
66
- toast.success(t('branching:scheduleCancelled'));
67
- closeModal(modalSlug);
68
- startRouteTransition(() => router.refresh());
69
- } catch (_err) {
70
- toast.error(t('error:unknown'));
71
- } finally {
72
- setIsWorking(false);
73
- }
74
- }, [closeModal, modalSlug, router, serverFunction, startRouteTransition, t]);
75
- if (!soonest) {
76
- return null;
77
- }
78
- return /*#__PURE__*/_jsxs(React.Fragment, {
79
- children: [/*#__PURE__*/_jsxs("div", {
80
- className: `${baseClass}__banner`,
81
- children: [/*#__PURE__*/_jsx("span", {
82
- className: `${baseClass}__banner-text`,
83
- children: t('branching:scheduledToMergeOn', {
84
- date: formatWhen(soonest.waitUntil)
85
- })
86
- }), /*#__PURE__*/_jsxs("span", {
87
- className: `${baseClass}__banner-actions`,
88
- children: [schedules.length > 1 && /*#__PURE__*/_jsx(Pill, {
89
- pillStyle: "light-gray",
90
- size: "small",
91
- children: t('branching:scheduleCount', {
92
- count: schedules.length
93
- })
94
- }), /*#__PURE__*/_jsx(Button, {
95
- buttonStyle: "secondary",
96
- onClick: () => openModal(modalSlug),
97
- size: "medium",
98
- children: t('branching:manage')
99
- })]
100
- })]
101
- }), /*#__PURE__*/_jsx("div", {
102
- className: `${baseClass}__list`,
103
- children: schedules.map(schedule => /*#__PURE__*/_jsxs("section", {
104
- className: `${baseClass}__schedule`,
105
- children: [/*#__PURE__*/_jsxs("header", {
106
- className: `${baseClass}__schedule-header`,
107
- children: [/*#__PURE__*/_jsx("h4", {
108
- className: `${baseClass}__when`,
109
- children: formatWhen(schedule.waitUntil)
110
- }), /*#__PURE__*/_jsxs("span", {
111
- className: `${baseClass}__meta`,
112
- children: [schedule.isEverything ? t('branching:scheduleWillApplyAll', {
113
- count: schedule.changes.length
114
- }) : t('branching:scheduleWillApplySelected', {
115
- count: schedule.changes.length
116
- }), schedule.closeBranch ? ` · ${t('branching:closeBranchAfterMerge')}` : '']
117
- })]
118
- }), schedule.changes.length > 0 ?
119
- // Read-only: what merges is decided, and the checkboxes on the review
120
- // list below are for a different, immediate decision.
121
- /*#__PURE__*/
122
- _jsx(ChangedDocuments, {
123
- branch: branchSlug,
124
- changes: schedule.changes,
125
- selectable: false
126
- }) :
127
- // A selection whose changes were all discarded since. The job will still
128
- // fire and find nothing, which is harmless but worth saying.
129
- /*#__PURE__*/
130
- _jsx("p", {
131
- className: `${baseClass}__empty`,
132
- children: t('branching:scheduleHasNothingLeft')
133
- })]
134
- }, schedule.id))
135
- }), /*#__PURE__*/_jsxs(DialogModal, {
136
- className: baseClass,
137
- closeOnBlur: true,
138
- slug: modalSlug,
139
- children: [/*#__PURE__*/_jsx(DialogHeader, {
140
- showClose: true,
141
- title: t('branching:scheduledMerges')
142
- }), /*#__PURE__*/_jsx(DialogBody, {
143
- children: /*#__PURE__*/_jsx("ul", {
144
- className: `${baseClass}__manage-list`,
145
- children: schedules.map(schedule_0 => /*#__PURE__*/_jsxs("li", {
146
- className: `${baseClass}__manage-row`,
147
- children: [/*#__PURE__*/_jsxs("div", {
148
- className: `${baseClass}__manage-details`,
149
- children: [/*#__PURE__*/_jsx("span", {
150
- className: `${baseClass}__manage-when`,
151
- children: formatWhen(schedule_0.waitUntil)
152
- }), /*#__PURE__*/_jsxs("span", {
153
- className: `${baseClass}__meta`,
154
- children: [schedule_0.isEverything ? t('branching:scheduleWillApplyAll', {
155
- count: schedule_0.changes.length
156
- }) : t('branching:scheduleWillApplySelected', {
157
- count: schedule_0.changes.length
158
- }), schedule_0.closeBranch ? ` · ${t('branching:closeBranchAfterMerge')}` : '']
159
- }), /*#__PURE__*/_jsx(ChangeSummary, {
160
- changes: schedule_0.changes,
161
- showOperations: true
162
- })]
163
- }), /*#__PURE__*/_jsx(Button, {
164
- buttonStyle: "destructive",
165
- disabled: isWorking,
166
- onClick: () => void handleCancel(schedule_0.id),
167
- size: "medium",
168
- children: t('branching:cancelSchedule')
169
- })]
170
- }, schedule_0.id))
171
- })
172
- }), /*#__PURE__*/_jsx(DialogFooter, {
173
- children: /*#__PURE__*/_jsx(Button, {
174
- buttonStyle: "secondary",
175
- onClick: () => closeModal(modalSlug),
176
- size: "medium",
177
- children: t('general:close')
178
- })
179
- })]
180
- })]
181
- });
182
- };
183
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","toast","Button","ChangeSummary","DialogBody","DialogFooter","DialogHeader","DialogModal","useModal","Pill","useRouter","useRouteTransition","useServerFunctions","useTranslation","ChangedDocuments","baseClass","formatWhen","value","Date","toLocaleString","undefined","dateStyle","timeStyle","ScheduledMerges","branchID","branchSlug","schedules","t","closeModal","openModal","serverFunction","router","startRouteTransition","isWorking","setIsWorking","modalSlug","soonest","handleCancel","deleteID","name","args","success","refresh","_err","error","_jsxs","Fragment","className","_jsx","date","waitUntil","length","pillStyle","size","count","buttonStyle","onClick","map","schedule","isEverything","changes","closeBranch","branch","selectable","id","closeOnBlur","slug","showClose","title","showOperations","disabled"],"sources":["../../../../src/views/Branch/ScheduledMerges/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { BranchChange } from '../ChangedDocuments/index.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { ChangeSummary } from '../../../elements/ChangeSummary/index.js'\nimport {\n DialogBody,\n DialogFooter,\n DialogHeader,\n DialogModal,\n} from '../../../elements/Dialog/index.js'\nimport { useModal } from '../../../elements/Modal/index.js'\nimport { Pill } from '../../../elements/Pill/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ChangedDocuments } from '../ChangedDocuments/index.js'\nimport './index.css'\n\nconst baseClass = 'scheduled-merges'\n\nexport type ScheduledMerge = {\n /** The documents this schedule will apply, resolved against what is pending now. */\n changes: BranchChange[]\n closeBranch: boolean\n /** `payload-jobs` row ID, which is also the handle for cancelling it. */\n id: string\n /** True when the schedule named no selection, so it takes whatever is pending. */\n isEverything: boolean\n waitUntil: string\n}\n\nconst formatWhen = (value: string) =>\n new Date(value).toLocaleString(undefined, { dateStyle: 'long', timeStyle: 'short' })\n\n/**\n * What a branch is about to merge, and when.\n *\n * A banner says it in one line, because it changes what everything below it means: the\n * pending changes are no longer only a proposal, they are a proposal with a date on it.\n * Below that each schedule lists the documents it will apply, expandable to the same\n * diff the review list shows — the diff is against main either way, so it is the same\n * question asked about a future moment.\n *\n * Several schedules can coexist: schedule a merge, keep working, schedule another. The\n * banner names the soonest and the modal holds the rest, which is why actions live\n * there rather than being repeated per row.\n */\nexport const ScheduledMerges: React.FC<{\n branchID: number | string\n branchSlug: string\n schedules: ScheduledMerge[]\n}> = ({ branchID, branchSlug, schedules }) => {\n const { t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const { serverFunction } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const [isWorking, setIsWorking] = useState(false)\n\n const modalSlug = `scheduled-merges-${branchID}`\n const soonest = schedules[0]\n\n const handleCancel = useCallback(\n async (deleteID: string) => {\n setIsWorking(true)\n\n try {\n await serverFunction({ name: 'schedule-merge', args: { deleteID } })\n toast.success(t('branching:scheduleCancelled'))\n closeModal(modalSlug)\n startRouteTransition(() => router.refresh())\n } catch (_err) {\n toast.error(t('error:unknown'))\n } finally {\n setIsWorking(false)\n }\n },\n [closeModal, modalSlug, router, serverFunction, startRouteTransition, t],\n )\n\n if (!soonest) {\n return null\n }\n\n return (\n <React.Fragment>\n <div className={`${baseClass}__banner`}>\n <span className={`${baseClass}__banner-text`}>\n {t('branching:scheduledToMergeOn', { date: formatWhen(soonest.waitUntil) })}\n </span>\n <span className={`${baseClass}__banner-actions`}>\n {schedules.length > 1 && (\n <Pill pillStyle=\"light-gray\" size=\"small\">\n {t('branching:scheduleCount', { count: schedules.length })}\n </Pill>\n )}\n <Button buttonStyle=\"secondary\" onClick={() => openModal(modalSlug)} size=\"medium\">\n {t('branching:manage')}\n </Button>\n </span>\n </div>\n\n <div className={`${baseClass}__list`}>\n {schedules.map((schedule) => (\n <section className={`${baseClass}__schedule`} key={schedule.id}>\n <header className={`${baseClass}__schedule-header`}>\n <h4 className={`${baseClass}__when`}>{formatWhen(schedule.waitUntil)}</h4>\n <span className={`${baseClass}__meta`}>\n {schedule.isEverything\n ? t('branching:scheduleWillApplyAll', { count: schedule.changes.length })\n : t('branching:scheduleWillApplySelected', { count: schedule.changes.length })}\n {schedule.closeBranch ? ` · ${t('branching:closeBranchAfterMerge')}` : ''}\n </span>\n </header>\n\n {schedule.changes.length > 0 ? (\n // Read-only: what merges is decided, and the checkboxes on the review\n // list below are for a different, immediate decision.\n <ChangedDocuments branch={branchSlug} changes={schedule.changes} selectable={false} />\n ) : (\n // A selection whose changes were all discarded since. The job will still\n // fire and find nothing, which is harmless but worth saying.\n <p className={`${baseClass}__empty`}>{t('branching:scheduleHasNothingLeft')}</p>\n )}\n </section>\n ))}\n </div>\n\n {/* Cancelling is the only reason to open this, so it is the action on every row\n rather than a footer CTA — and it is destructive, so it says so. Scheduling\n another belongs to the merge modal, which is one click away on the banner. */}\n <DialogModal className={baseClass} closeOnBlur slug={modalSlug}>\n <DialogHeader showClose title={t('branching:scheduledMerges')} />\n <DialogBody>\n <ul className={`${baseClass}__manage-list`}>\n {schedules.map((schedule) => (\n <li className={`${baseClass}__manage-row`} key={schedule.id}>\n <div className={`${baseClass}__manage-details`}>\n <span className={`${baseClass}__manage-when`}>\n {formatWhen(schedule.waitUntil)}\n </span>\n <span className={`${baseClass}__meta`}>\n {schedule.isEverything\n ? t('branching:scheduleWillApplyAll', { count: schedule.changes.length })\n : t('branching:scheduleWillApplySelected', {\n count: schedule.changes.length,\n })}\n {schedule.closeBranch ? ` · ${t('branching:closeBranchAfterMerge')}` : ''}\n </span>\n {/* What is actually merging, which is the thing a date alone does not\n say — and the reason someone opened this to cancel. */}\n <ChangeSummary changes={schedule.changes} showOperations />\n </div>\n <Button\n buttonStyle=\"destructive\"\n disabled={isWorking}\n onClick={() => void handleCancel(schedule.id)}\n size=\"medium\"\n >\n {t('branching:cancelSchedule')}\n </Button>\n </li>\n ))}\n </ul>\n </DialogBody>\n <DialogFooter>\n <Button buttonStyle=\"secondary\" onClick={() => closeModal(modalSlug)} size=\"medium\">\n {t('general:close')}\n </Button>\n </DialogFooter>\n </DialogModal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,77 +0,0 @@
1
- @layer payload-default {
2
- /* The header band supplies the separation the list used to get from a margin
3
- on the heading it replaced. */
4
- .branch-changes {
5
- padding-block-start: var(--spacer-3);
6
- }
7
-
8
- /* Matches `doc-controls`, the bar directly above it, so the two read as one
9
- stack of header bands rather than a band and a heading. */
10
- .branch-changes__controls {
11
- display: flex;
12
- align-items: center;
13
- justify-content: space-between;
14
- gap: var(--spacer-2);
15
- width: 100%;
16
- padding: var(--spacer-2-5) var(--gutter-h);
17
- border-bottom: var(--stroke-width-small) solid var(--color-border);
18
- background-color: var(--color-bg);
19
- }
20
-
21
- .branch-changes__title {
22
- margin: 0;
23
- font-family: var(--text-heading-medium-font-family);
24
- font-size: var(--text-heading-medium-font-size);
25
- font-weight: var(--text-heading-medium-font-weight);
26
- line-height: var(--text-heading-medium-line-height);
27
- letter-spacing: var(--text-heading-medium-letter-spacing);
28
- }
29
-
30
- .branch-changes__actions {
31
- display: flex;
32
- align-items: center;
33
- gap: var(--spacer-2);
34
- flex-shrink: 0;
35
- }
36
-
37
- /* Separated by space rather than a rule: the section headings already divide them,
38
- and a border here would compete with the bordered rows inside each. */
39
- .branch-changes__section + .branch-changes__section {
40
- margin-block-start: var(--spacer-6);
41
- }
42
-
43
- .branch-changes__section-title {
44
- margin-block: 0 var(--spacer-2);
45
- font-family: var(--text-body-large-strong-font-family);
46
- font-size: var(--text-body-large-font-size);
47
- font-weight: var(--text-body-large-strong-font-weight);
48
- }
49
-
50
- .branch-changes__history-pages {
51
- display: flex;
52
- align-items: center;
53
- justify-content: center;
54
- gap: var(--spacer-3);
55
- margin-block-start: var(--spacer-4);
56
- }
57
-
58
- .branch-changes__history-page[aria-disabled='true'] {
59
- pointer-events: none;
60
- color: var(--color-text-disabled);
61
- }
62
-
63
- .branch-changes__history-position,
64
- .branch-changes__since,
65
- .branch-changes__empty,
66
- .branch-changes__closed {
67
- color: var(--color-text-secondary);
68
- }
69
-
70
- .branch-changes__since {
71
- margin-block: 0 var(--spacer-2);
72
- }
73
-
74
- .branch-changes__closed {
75
- margin-block: 0 var(--spacer-3);
76
- }
77
- }