@ruya.sa/next 3.71.3

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 (406) hide show
  1. package/LICENSE.md +22 -0
  2. package/dist/auth/login.js +67 -0
  3. package/dist/auth/login.js.map +1 -0
  4. package/dist/auth/logout.js +52 -0
  5. package/dist/auth/logout.js.map +1 -0
  6. package/dist/auth/refresh.js +56 -0
  7. package/dist/auth/refresh.js.map +1 -0
  8. package/dist/config.js +2 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/dummy.css +0 -0
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +19 -0
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -0
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +81 -0
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -0
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +66 -0
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -0
  17. package/dist/elements/DocumentHeader/Tabs/index.js +78 -0
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +29 -0
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -0
  21. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +72 -0
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -0
  23. package/dist/elements/DocumentHeader/index.js +36 -0
  24. package/dist/elements/DocumentHeader/index.js.map +1 -0
  25. package/dist/elements/FormHeader/index.js +20 -0
  26. package/dist/elements/FormHeader/index.js.map +1 -0
  27. package/dist/elements/Logo/index.js +39 -0
  28. package/dist/elements/Logo/index.js.map +1 -0
  29. package/dist/elements/Nav/NavHamburger/index.js +51 -0
  30. package/dist/elements/Nav/NavHamburger/index.js.map +1 -0
  31. package/dist/elements/Nav/NavWrapper/index.js +61 -0
  32. package/dist/elements/Nav/NavWrapper/index.js.map +1 -0
  33. package/dist/elements/Nav/SettingsMenuButton/index.js +45 -0
  34. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -0
  35. package/dist/elements/Nav/getNavPrefs.js +26 -0
  36. package/dist/elements/Nav/getNavPrefs.js.map +1 -0
  37. package/dist/elements/Nav/index.client.js +133 -0
  38. package/dist/elements/Nav/index.client.js.map +1 -0
  39. package/dist/elements/Nav/index.js +145 -0
  40. package/dist/elements/Nav/index.js.map +1 -0
  41. package/dist/esbuildEntry.js +5 -0
  42. package/dist/esbuildEntry.js.map +1 -0
  43. package/dist/exports/auth.js +4 -0
  44. package/dist/exports/auth.js.map +1 -0
  45. package/dist/exports/client.js +6 -0
  46. package/dist/exports/client.js.map +1 -0
  47. package/dist/exports/layouts.js +3 -0
  48. package/dist/exports/layouts.js.map +1 -0
  49. package/dist/exports/routes.js +3 -0
  50. package/dist/exports/routes.js.map +1 -0
  51. package/dist/exports/rsc.js +4 -0
  52. package/dist/exports/rsc.js.map +1 -0
  53. package/dist/exports/templates.js +3 -0
  54. package/dist/exports/templates.js.map +1 -0
  55. package/dist/exports/utilities.js +53 -0
  56. package/dist/exports/utilities.js.map +1 -0
  57. package/dist/exports/views.js +10 -0
  58. package/dist/exports/views.js.map +1 -0
  59. package/dist/index.js +2 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/layouts/Root/NestProviders.js +24 -0
  62. package/dist/layouts/Root/NestProviders.js.map +1 -0
  63. package/dist/layouts/Root/checkDependencies.js +49 -0
  64. package/dist/layouts/Root/checkDependencies.js.map +1 -0
  65. package/dist/layouts/Root/index.js +120 -0
  66. package/dist/layouts/Root/index.js.map +1 -0
  67. package/dist/routes/graphql/handler.js +137 -0
  68. package/dist/routes/graphql/handler.js.map +1 -0
  69. package/dist/routes/graphql/index.js +3 -0
  70. package/dist/routes/graphql/index.js.map +1 -0
  71. package/dist/routes/graphql/playground.js +31 -0
  72. package/dist/routes/graphql/playground.js.map +1 -0
  73. package/dist/routes/index.js +3 -0
  74. package/dist/routes/index.js.map +1 -0
  75. package/dist/routes/rest/index.js +33 -0
  76. package/dist/routes/rest/index.js.map +1 -0
  77. package/dist/routes/rest/og/image.js +86 -0
  78. package/dist/routes/rest/og/image.js.map +1 -0
  79. package/dist/routes/rest/og/index.js +70 -0
  80. package/dist/routes/rest/og/index.js.map +1 -0
  81. package/dist/routes/rest/og/roboto-regular.woff +0 -0
  82. package/dist/templates/Default/NavHamburger/index.js +25 -0
  83. package/dist/templates/Default/NavHamburger/index.js.map +1 -0
  84. package/dist/templates/Default/Wrapper/index.js +49 -0
  85. package/dist/templates/Default/Wrapper/index.js.map +1 -0
  86. package/dist/templates/Default/index.js +129 -0
  87. package/dist/templates/Default/index.js.map +1 -0
  88. package/dist/templates/Minimal/index.js +21 -0
  89. package/dist/templates/Minimal/index.js.map +1 -0
  90. package/dist/utilities/getExistingAuthToken.js +6 -0
  91. package/dist/utilities/getExistingAuthToken.js.map +1 -0
  92. package/dist/utilities/getNextRequestI18n.js +22 -0
  93. package/dist/utilities/getNextRequestI18n.js.map +1 -0
  94. package/dist/utilities/getPayloadHMR.js +15 -0
  95. package/dist/utilities/getPayloadHMR.js.map +1 -0
  96. package/dist/utilities/getPreferences.js +26 -0
  97. package/dist/utilities/getPreferences.js.map +1 -0
  98. package/dist/utilities/getRequestLocale.js +20 -0
  99. package/dist/utilities/getRequestLocale.js.map +1 -0
  100. package/dist/utilities/getRequestTheme.js +22 -0
  101. package/dist/utilities/getRequestTheme.js.map +1 -0
  102. package/dist/utilities/getRouteWithoutAdmin.js +7 -0
  103. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -0
  104. package/dist/utilities/handleAuthRedirect.js +41 -0
  105. package/dist/utilities/handleAuthRedirect.js.map +1 -0
  106. package/dist/utilities/handleServerFunctions.js +57 -0
  107. package/dist/utilities/handleServerFunctions.js.map +1 -0
  108. package/dist/utilities/initReq.js +110 -0
  109. package/dist/utilities/initReq.js.map +1 -0
  110. package/dist/utilities/isCustomAdminView.js +31 -0
  111. package/dist/utilities/isCustomAdminView.js.map +1 -0
  112. package/dist/utilities/isPublicAdminRoute.js +25 -0
  113. package/dist/utilities/isPublicAdminRoute.js.map +1 -0
  114. package/dist/utilities/meta.js +69 -0
  115. package/dist/utilities/meta.js.map +1 -0
  116. package/dist/utilities/selectiveCache.js +38 -0
  117. package/dist/utilities/selectiveCache.js.map +1 -0
  118. package/dist/utilities/setPayloadAuthCookie.js +27 -0
  119. package/dist/utilities/setPayloadAuthCookie.js.map +1 -0
  120. package/dist/utilities/slugify.js +47 -0
  121. package/dist/utilities/slugify.js.map +1 -0
  122. package/dist/utilities/timestamp.js +8 -0
  123. package/dist/utilities/timestamp.js.map +1 -0
  124. package/dist/views/API/LocaleSelector/index.js +44 -0
  125. package/dist/views/API/LocaleSelector/index.js.map +1 -0
  126. package/dist/views/API/RenderJSON/index.js +135 -0
  127. package/dist/views/API/RenderJSON/index.js.map +1 -0
  128. package/dist/views/API/index.client.js +209 -0
  129. package/dist/views/API/index.client.js.map +1 -0
  130. package/dist/views/API/index.js +7 -0
  131. package/dist/views/API/index.js.map +1 -0
  132. package/dist/views/API/metadata.js +29 -0
  133. package/dist/views/API/metadata.js.map +1 -0
  134. package/dist/views/Account/ResetPreferences/index.js +112 -0
  135. package/dist/views/Account/ResetPreferences/index.js.map +1 -0
  136. package/dist/views/Account/Settings/LanguageSelector.js +52 -0
  137. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -0
  138. package/dist/views/Account/Settings/index.js +33 -0
  139. package/dist/views/Account/Settings/index.js.map +1 -0
  140. package/dist/views/Account/ToggleTheme/index.js +60 -0
  141. package/dist/views/Account/ToggleTheme/index.js.map +1 -0
  142. package/dist/views/Account/index.client.js +37 -0
  143. package/dist/views/Account/index.client.js.map +1 -0
  144. package/dist/views/Account/index.js +178 -0
  145. package/dist/views/Account/index.js.map +1 -0
  146. package/dist/views/Account/metadata.js +14 -0
  147. package/dist/views/Account/metadata.js.map +1 -0
  148. package/dist/views/BrowseByFolder/buildView.js +169 -0
  149. package/dist/views/BrowseByFolder/buildView.js.map +1 -0
  150. package/dist/views/BrowseByFolder/index.js +20 -0
  151. package/dist/views/BrowseByFolder/index.js.map +1 -0
  152. package/dist/views/BrowseByFolder/metadata.js +18 -0
  153. package/dist/views/BrowseByFolder/metadata.js.map +1 -0
  154. package/dist/views/CollectionFolders/buildView.js +156 -0
  155. package/dist/views/CollectionFolders/buildView.js.map +1 -0
  156. package/dist/views/CollectionFolders/index.js +20 -0
  157. package/dist/views/CollectionFolders/index.js.map +1 -0
  158. package/dist/views/CollectionFolders/metadata.js +25 -0
  159. package/dist/views/CollectionFolders/metadata.js.map +1 -0
  160. package/dist/views/CollectionFolders/renderFolderViewSlots.js +64 -0
  161. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -0
  162. package/dist/views/CollectionTrash/index.js +21 -0
  163. package/dist/views/CollectionTrash/index.js.map +1 -0
  164. package/dist/views/CollectionTrash/metadata.js +25 -0
  165. package/dist/views/CollectionTrash/metadata.js.map +1 -0
  166. package/dist/views/CreateFirstUser/index.client.js +112 -0
  167. package/dist/views/CreateFirstUser/index.client.js.map +1 -0
  168. package/dist/views/CreateFirstUser/index.js +88 -0
  169. package/dist/views/CreateFirstUser/index.js.map +1 -0
  170. package/dist/views/CreateFirstUser/metadata.js +14 -0
  171. package/dist/views/CreateFirstUser/metadata.js.map +1 -0
  172. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -0
  173. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -0
  174. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +431 -0
  175. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -0
  176. package/dist/views/Dashboard/Default/ModularDashboard/index.js +87 -0
  177. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -0
  178. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +99 -0
  179. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -0
  180. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +58 -0
  181. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -0
  182. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +72 -0
  183. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -0
  184. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +158 -0
  185. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -0
  186. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +38 -0
  187. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -0
  188. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +264 -0
  189. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -0
  190. package/dist/views/Dashboard/Default/index.js +52 -0
  191. package/dist/views/Dashboard/Default/index.js.map +1 -0
  192. package/dist/views/Dashboard/index.js +50 -0
  193. package/dist/views/Dashboard/index.js.map +1 -0
  194. package/dist/views/Dashboard/metadata.js +16 -0
  195. package/dist/views/Dashboard/metadata.js.map +1 -0
  196. package/dist/views/Document/getCustomDocumentViewByKey.js +4 -0
  197. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -0
  198. package/dist/views/Document/getCustomViewByRoute.js +35 -0
  199. package/dist/views/Document/getCustomViewByRoute.js.map +1 -0
  200. package/dist/views/Document/getDocPreferences.js +45 -0
  201. package/dist/views/Document/getDocPreferences.js.map +1 -0
  202. package/dist/views/Document/getDocumentData.js +60 -0
  203. package/dist/views/Document/getDocumentData.js.map +1 -0
  204. package/dist/views/Document/getDocumentPermissions.js +87 -0
  205. package/dist/views/Document/getDocumentPermissions.js.map +1 -0
  206. package/dist/views/Document/getDocumentView.js +310 -0
  207. package/dist/views/Document/getDocumentView.js.map +1 -0
  208. package/dist/views/Document/getIsLocked.js +79 -0
  209. package/dist/views/Document/getIsLocked.js.map +1 -0
  210. package/dist/views/Document/getMetaBySegment.js +150 -0
  211. package/dist/views/Document/getMetaBySegment.js.map +1 -0
  212. package/dist/views/Document/getVersions.js +210 -0
  213. package/dist/views/Document/getVersions.js.map +1 -0
  214. package/dist/views/Document/handleServerFunction.js +135 -0
  215. package/dist/views/Document/handleServerFunction.js.map +1 -0
  216. package/dist/views/Document/index.js +390 -0
  217. package/dist/views/Document/index.js.map +1 -0
  218. package/dist/views/Document/metadata.js +3 -0
  219. package/dist/views/Document/metadata.js.map +1 -0
  220. package/dist/views/Document/renderDocumentSlots.js +154 -0
  221. package/dist/views/Document/renderDocumentSlots.js.map +1 -0
  222. package/dist/views/Edit/index.js +11 -0
  223. package/dist/views/Edit/index.js.map +1 -0
  224. package/dist/views/Edit/metadata.js +52 -0
  225. package/dist/views/Edit/metadata.js.map +1 -0
  226. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +179 -0
  227. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -0
  228. package/dist/views/ForgotPassword/index.js +72 -0
  229. package/dist/views/ForgotPassword/index.js.map +1 -0
  230. package/dist/views/ForgotPassword/metadata.js +14 -0
  231. package/dist/views/ForgotPassword/metadata.js.map +1 -0
  232. package/dist/views/List/createSerializableValue.js +14 -0
  233. package/dist/views/List/createSerializableValue.js.map +1 -0
  234. package/dist/views/List/enrichDocsWithVersionStatus.js +96 -0
  235. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -0
  236. package/dist/views/List/extractRelationshipDisplayValue.js +17 -0
  237. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -0
  238. package/dist/views/List/extractValueOrRelationshipID.js +19 -0
  239. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -0
  240. package/dist/views/List/handleGroupBy.js +160 -0
  241. package/dist/views/List/handleGroupBy.js.map +1 -0
  242. package/dist/views/List/handleServerFunction.js +130 -0
  243. package/dist/views/List/handleServerFunction.js.map +1 -0
  244. package/dist/views/List/index.js +356 -0
  245. package/dist/views/List/index.js.map +1 -0
  246. package/dist/views/List/metadata.js +24 -0
  247. package/dist/views/List/metadata.js.map +1 -0
  248. package/dist/views/List/renderListViewSlots.js +80 -0
  249. package/dist/views/List/renderListViewSlots.js.map +1 -0
  250. package/dist/views/List/resolveAllFilterOptions.js +49 -0
  251. package/dist/views/List/resolveAllFilterOptions.js.map +1 -0
  252. package/dist/views/List/transformColumnsToSelect.js +11 -0
  253. package/dist/views/List/transformColumnsToSelect.js.map +1 -0
  254. package/dist/views/Login/LoginField/index.js +98 -0
  255. package/dist/views/Login/LoginField/index.js.map +1 -0
  256. package/dist/views/Login/LoginForm/index.js +177 -0
  257. package/dist/views/Login/LoginForm/index.js.map +1 -0
  258. package/dist/views/Login/index.js +95 -0
  259. package/dist/views/Login/index.js.map +1 -0
  260. package/dist/views/Login/metadata.js +14 -0
  261. package/dist/views/Login/metadata.js.map +1 -0
  262. package/dist/views/Logout/LogoutClient.js +140 -0
  263. package/dist/views/Logout/LogoutClient.js.map +1 -0
  264. package/dist/views/Logout/index.js +36 -0
  265. package/dist/views/Logout/index.js.map +1 -0
  266. package/dist/views/Logout/metadata.js +13 -0
  267. package/dist/views/Logout/metadata.js.map +1 -0
  268. package/dist/views/NotFound/index.client.js +88 -0
  269. package/dist/views/NotFound/index.client.js.map +1 -0
  270. package/dist/views/NotFound/index.js +87 -0
  271. package/dist/views/NotFound/index.js.map +1 -0
  272. package/dist/views/NotFound/metadata.js +11 -0
  273. package/dist/views/NotFound/metadata.js.map +1 -0
  274. package/dist/views/ResetPassword/ResetPasswordForm/index.js +117 -0
  275. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  276. package/dist/views/ResetPassword/index.js +83 -0
  277. package/dist/views/ResetPassword/index.js.map +1 -0
  278. package/dist/views/ResetPassword/metadata.js +14 -0
  279. package/dist/views/ResetPassword/metadata.js.map +1 -0
  280. package/dist/views/Root/attachViewActions.js +27 -0
  281. package/dist/views/Root/attachViewActions.js.map +1 -0
  282. package/dist/views/Root/generateCustomViewMetadata.js +25 -0
  283. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -0
  284. package/dist/views/Root/getCustomViewByKey.js +16 -0
  285. package/dist/views/Root/getCustomViewByKey.js.map +1 -0
  286. package/dist/views/Root/getCustomViewByRoute.js +48 -0
  287. package/dist/views/Root/getCustomViewByRoute.js.map +1 -0
  288. package/dist/views/Root/getDocumentViewInfo.js +28 -0
  289. package/dist/views/Root/getDocumentViewInfo.js.map +1 -0
  290. package/dist/views/Root/getRouteData.js +359 -0
  291. package/dist/views/Root/getRouteData.js.map +1 -0
  292. package/dist/views/Root/index.js +300 -0
  293. package/dist/views/Root/index.js.map +1 -0
  294. package/dist/views/Root/isPathMatchingRoute.js +29 -0
  295. package/dist/views/Root/isPathMatchingRoute.js.map +1 -0
  296. package/dist/views/Root/metadata.js +209 -0
  297. package/dist/views/Root/metadata.js.map +1 -0
  298. package/dist/views/Unauthorized/index.js +54 -0
  299. package/dist/views/Unauthorized/index.js.map +1 -0
  300. package/dist/views/Unauthorized/metadata.js +14 -0
  301. package/dist/views/Unauthorized/metadata.js.map +1 -0
  302. package/dist/views/Verify/index.client.js +50 -0
  303. package/dist/views/Verify/index.client.js.map +1 -0
  304. package/dist/views/Verify/index.js +71 -0
  305. package/dist/views/Verify/index.js.map +1 -0
  306. package/dist/views/Verify/metadata.js +14 -0
  307. package/dist/views/Verify/metadata.js.map +1 -0
  308. package/dist/views/Version/Default/SelectedLocalesContext.js +8 -0
  309. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -0
  310. package/dist/views/Version/Default/SetStepNav.js +135 -0
  311. package/dist/views/Version/Default/SetStepNav.js.map +1 -0
  312. package/dist/views/Version/Default/index.js +253 -0
  313. package/dist/views/Version/Default/index.js.map +1 -0
  314. package/dist/views/Version/Default/types.js +2 -0
  315. package/dist/views/Version/Default/types.js.map +1 -0
  316. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +130 -0
  317. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -0
  318. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +80 -0
  319. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -0
  320. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +439 -0
  321. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -0
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +61 -0
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -0
  324. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +75 -0
  325. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -0
  326. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +66 -0
  327. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -0
  328. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +129 -0
  329. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -0
  330. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +45 -0
  331. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -0
  332. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +188 -0
  333. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -0
  334. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -0
  335. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -0
  336. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +87 -0
  337. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -0
  338. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +155 -0
  339. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -0
  340. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +100 -0
  341. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -0
  342. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +222 -0
  343. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -0
  344. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +35 -0
  345. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -0
  346. package/dist/views/Version/RenderFieldsToDiff/index.js +13 -0
  347. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -0
  348. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +242 -0
  349. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -0
  350. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +861 -0
  351. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -0
  352. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +4 -0
  353. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -0
  354. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +47 -0
  355. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -0
  356. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +45 -0
  357. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -0
  358. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +135 -0
  359. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -0
  360. package/dist/views/Version/Restore/index.js +106 -0
  361. package/dist/views/Version/Restore/index.js.map +1 -0
  362. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +56 -0
  363. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -0
  364. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +240 -0
  365. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -0
  366. package/dist/views/Version/SelectComparison/index.js +57 -0
  367. package/dist/views/Version/SelectComparison/index.js.map +1 -0
  368. package/dist/views/Version/SelectComparison/types.js +2 -0
  369. package/dist/views/Version/SelectComparison/types.js.map +1 -0
  370. package/dist/views/Version/SelectLocales/index.js +39 -0
  371. package/dist/views/Version/SelectLocales/index.js.map +1 -0
  372. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +110 -0
  373. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -0
  374. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +34 -0
  375. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -0
  376. package/dist/views/Version/fetchVersions.js +151 -0
  377. package/dist/views/Version/fetchVersions.js.map +1 -0
  378. package/dist/views/Version/index.js +349 -0
  379. package/dist/views/Version/index.js.map +1 -0
  380. package/dist/views/Version/metadata.js +58 -0
  381. package/dist/views/Version/metadata.js.map +1 -0
  382. package/dist/views/Versions/buildColumns.js +88 -0
  383. package/dist/views/Versions/buildColumns.js.map +1 -0
  384. package/dist/views/Versions/cells/AutosaveCell/index.js +45 -0
  385. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -0
  386. package/dist/views/Versions/cells/CreatedAt/index.js +60 -0
  387. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -0
  388. package/dist/views/Versions/cells/ID/index.js +12 -0
  389. package/dist/views/Versions/cells/ID/index.js.map +1 -0
  390. package/dist/views/Versions/index.client.js +89 -0
  391. package/dist/views/Versions/index.client.js.map +1 -0
  392. package/dist/views/Versions/index.js +157 -0
  393. package/dist/views/Versions/index.js.map +1 -0
  394. package/dist/views/Versions/metadata.js +51 -0
  395. package/dist/views/Versions/metadata.js.map +1 -0
  396. package/dist/views/Versions/types.js +2 -0
  397. package/dist/views/Versions/types.js.map +1 -0
  398. package/dist/withPayload/withPayload.js +162 -0
  399. package/dist/withPayload/withPayload.js.map +1 -0
  400. package/dist/withPayload/withPayload.spec.js +40 -0
  401. package/dist/withPayload/withPayload.spec.js.map +1 -0
  402. package/dist/withPayload/withPayload.utils.js +133 -0
  403. package/dist/withPayload/withPayload.utils.js.map +1 -0
  404. package/dist/withPayload/withPayloadLegacy.js +47 -0
  405. package/dist/withPayload/withPayloadLegacy.js.map +1 -0
  406. package/package.json +153 -0
package/LICENSE.md ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018-2025 Payload CMS, Inc. <info@payloadcms.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,67 @@
1
+ 'use server';
2
+
3
+ import { getPayload } from '@ruya.sa/payload';
4
+ import { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js';
5
+ export async function login({
6
+ collection,
7
+ config,
8
+ email,
9
+ password,
10
+ username
11
+ }) {
12
+ const payload = await getPayload({
13
+ config,
14
+ cron: true
15
+ });
16
+ const authConfig = payload.collections[collection]?.config.auth;
17
+ if (!authConfig) {
18
+ throw new Error(`No auth config found for collection: ${collection}`);
19
+ }
20
+ const loginWithUsername = authConfig?.loginWithUsername ?? false;
21
+ if (loginWithUsername) {
22
+ if (loginWithUsername.allowEmailLogin) {
23
+ if (!email && !username) {
24
+ throw new Error('Email or username is required.');
25
+ }
26
+ } else {
27
+ if (!username) {
28
+ throw new Error('Username is required.');
29
+ }
30
+ }
31
+ } else {
32
+ if (!email) {
33
+ throw new Error('Email is required.');
34
+ }
35
+ }
36
+ let loginData;
37
+ if (loginWithUsername) {
38
+ loginData = username ? {
39
+ password,
40
+ username
41
+ } : {
42
+ email,
43
+ password
44
+ };
45
+ } else {
46
+ loginData = {
47
+ email,
48
+ password
49
+ };
50
+ }
51
+ const result = await payload.login({
52
+ collection,
53
+ data: loginData
54
+ });
55
+ if (result.token) {
56
+ await setPayloadAuthCookie({
57
+ authConfig,
58
+ cookiePrefix: payload.config.cookiePrefix,
59
+ token: result.token
60
+ });
61
+ }
62
+ if ('removeTokenFromResponses' in config && config.removeTokenFromResponses) {
63
+ delete result.token;
64
+ }
65
+ return result;
66
+ }
67
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","names":["getPayload","setPayloadAuthCookie","login","collection","config","email","password","username","payload","cron","authConfig","collections","auth","Error","loginWithUsername","allowEmailLogin","loginData","result","data","token","cookiePrefix","removeTokenFromResponses"],"sources":["../../src/auth/login.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from '@ruya.sa/payload'\n\nimport { getPayload } from '@ruya.sa/payload'\n\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\ntype LoginWithEmail = {\n collection: CollectionSlug\n config: any\n email: string\n password: string\n username?: never\n}\n\ntype LoginWithUsername = {\n collection: CollectionSlug\n config: any\n email?: never\n password: string\n username: string\n}\ntype LoginArgs = LoginWithEmail | LoginWithUsername\n\nexport async function login({ collection, config, email, password, username }: LoginArgs): Promise<{\n token?: string\n user: any\n}> {\n const payload = await getPayload({ config, cron: true })\n\n const authConfig = payload.collections[collection]?.config.auth\n\n if (!authConfig) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const loginWithUsername = authConfig?.loginWithUsername ?? false\n\n if (loginWithUsername) {\n if (loginWithUsername.allowEmailLogin) {\n if (!email && !username) {\n throw new Error('Email or username is required.')\n }\n } else {\n if (!username) {\n throw new Error('Username is required.')\n }\n }\n } else {\n if (!email) {\n throw new Error('Email is required.')\n }\n }\n\n let loginData\n\n if (loginWithUsername) {\n loginData = username ? { password, username } : { email, password }\n } else {\n loginData = { email, password }\n }\n\n const result = await payload.login({\n collection,\n data: loginData,\n })\n\n if (result.token) {\n await setPayloadAuthCookie({\n authConfig,\n cookiePrefix: payload.config.cookiePrefix,\n token: result.token,\n })\n }\n\n if ('removeTokenFromResponses' in config && config.removeTokenFromResponses) {\n delete result.token\n }\n\n return result\n}\n"],"mappings":"AAAA;;AAIA,SAASA,UAAU,QAAQ;AAE3B,SAASC,oBAAoB,QAAQ;AAmBrC,OAAO,eAAeC,MAAM;EAAEC,UAAU;EAAEC,MAAM;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAQ,CAAa;EAItF,MAAMC,OAAA,GAAU,MAAMR,UAAA,CAAW;IAAEI,MAAA;IAAQK,IAAA,EAAM;EAAK;EAEtD,MAAMC,UAAA,GAAaF,OAAA,CAAQG,WAAW,CAACR,UAAA,CAAW,EAAEC,MAAA,CAAOQ,IAAA;EAE3D,IAAI,CAACF,UAAA,EAAY;IACf,MAAM,IAAIG,KAAA,CAAM,wCAAwCV,UAAA,EAAY;EACtE;EAEA,MAAMW,iBAAA,GAAoBJ,UAAA,EAAYI,iBAAA,IAAqB;EAE3D,IAAIA,iBAAA,EAAmB;IACrB,IAAIA,iBAAA,CAAkBC,eAAe,EAAE;MACrC,IAAI,CAACV,KAAA,IAAS,CAACE,QAAA,EAAU;QACvB,MAAM,IAAIM,KAAA,CAAM;MAClB;IACF,OAAO;MACL,IAAI,CAACN,QAAA,EAAU;QACb,MAAM,IAAIM,KAAA,CAAM;MAClB;IACF;EACF,OAAO;IACL,IAAI,CAACR,KAAA,EAAO;MACV,MAAM,IAAIQ,KAAA,CAAM;IAClB;EACF;EAEA,IAAIG,SAAA;EAEJ,IAAIF,iBAAA,EAAmB;IACrBE,SAAA,GAAYT,QAAA,GAAW;MAAED,QAAA;MAAUC;IAAS,IAAI;MAAEF,KAAA;MAAOC;IAAS;EACpE,OAAO;IACLU,SAAA,GAAY;MAAEX,KAAA;MAAOC;IAAS;EAChC;EAEA,MAAMW,MAAA,GAAS,MAAMT,OAAA,CAAQN,KAAK,CAAC;IACjCC,UAAA;IACAe,IAAA,EAAMF;EACR;EAEA,IAAIC,MAAA,CAAOE,KAAK,EAAE;IAChB,MAAMlB,oBAAA,CAAqB;MACzBS,UAAA;MACAU,YAAA,EAAcZ,OAAA,CAAQJ,MAAM,CAACgB,YAAY;MACzCD,KAAA,EAAOF,MAAA,CAAOE;IAChB;EACF;EAEA,IAAI,8BAA8Bf,MAAA,IAAUA,MAAA,CAAOiB,wBAAwB,EAAE;IAC3E,OAAOJ,MAAA,CAAOE,KAAK;EACrB;EAEA,OAAOF,MAAA;AACT","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ 'use server';
2
+
3
+ import { cookies as getCookies, headers as nextHeaders } from 'next/headers.js';
4
+ import { createLocalReq, getPayload, logoutOperation } from '@ruya.sa/payload';
5
+ import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
6
+ export async function logout({
7
+ allSessions = false,
8
+ config
9
+ }) {
10
+ const payload = await getPayload({
11
+ config,
12
+ cron: true
13
+ });
14
+ const headers = await nextHeaders();
15
+ const authResult = await payload.auth({
16
+ headers
17
+ });
18
+ if (!authResult.user) {
19
+ return {
20
+ message: 'User already logged out',
21
+ success: true
22
+ };
23
+ }
24
+ const {
25
+ user
26
+ } = authResult;
27
+ const req = await createLocalReq({
28
+ user
29
+ }, payload);
30
+ const collection = payload.collections[user.collection];
31
+ const logoutResult = await logoutOperation({
32
+ allSessions,
33
+ collection,
34
+ req
35
+ });
36
+ if (!logoutResult) {
37
+ return {
38
+ message: 'Logout failed',
39
+ success: false
40
+ };
41
+ }
42
+ const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix);
43
+ if (existingCookie) {
44
+ const cookies = await getCookies();
45
+ cookies.delete(existingCookie.name);
46
+ }
47
+ return {
48
+ message: 'User logged out successfully',
49
+ success: true
50
+ };
51
+ }
52
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","names":["cookies","getCookies","headers","nextHeaders","createLocalReq","getPayload","logoutOperation","getExistingAuthToken","logout","allSessions","config","payload","cron","authResult","auth","user","message","success","req","collection","collections","logoutResult","existingCookie","cookiePrefix","delete","name"],"sources":["../../src/auth/logout.ts"],"sourcesContent":["'use server'\n\nimport type { SanitizedConfig } from '@ruya.sa/payload'\n\nimport { cookies as getCookies, headers as nextHeaders } from 'next/headers.js'\nimport { createLocalReq, getPayload, logoutOperation } from '@ruya.sa/payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\n\nexport async function logout({\n allSessions = false,\n config,\n}: {\n allSessions?: boolean\n config: Promise<SanitizedConfig> | SanitizedConfig\n}) {\n const payload = await getPayload({ config, cron: true })\n const headers = await nextHeaders()\n const authResult = await payload.auth({ headers })\n\n if (!authResult.user) {\n return { message: 'User already logged out', success: true }\n }\n\n const { user } = authResult\n const req = await createLocalReq({ user }, payload)\n const collection = payload.collections[user.collection]\n\n const logoutResult = await logoutOperation({\n allSessions,\n collection,\n req,\n })\n\n if (!logoutResult) {\n return { message: 'Logout failed', success: false }\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n if (existingCookie) {\n const cookies = await getCookies()\n cookies.delete(existingCookie.name)\n }\n\n return { message: 'User logged out successfully', success: true }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,OAAA,IAAWC,UAAU,EAAEC,OAAA,IAAWC,WAAW,QAAQ;AAC9D,SAASC,cAAc,EAAEC,UAAU,EAAEC,eAAe,QAAQ;AAE5D,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,OAAO;EAC3BC,WAAA,GAAc,KAAK;EACnBC;AAAM,CAIP;EACC,MAAMC,OAAA,GAAU,MAAMN,UAAA,CAAW;IAAEK,MAAA;IAAQE,IAAA,EAAM;EAAK;EACtD,MAAMV,OAAA,GAAU,MAAMC,WAAA;EACtB,MAAMU,UAAA,GAAa,MAAMF,OAAA,CAAQG,IAAI,CAAC;IAAEZ;EAAQ;EAEhD,IAAI,CAACW,UAAA,CAAWE,IAAI,EAAE;IACpB,OAAO;MAAEC,OAAA,EAAS;MAA2BC,OAAA,EAAS;IAAK;EAC7D;EAEA,MAAM;IAAEF;EAAI,CAAE,GAAGF,UAAA;EACjB,MAAMK,GAAA,GAAM,MAAMd,cAAA,CAAe;IAAEW;EAAK,GAAGJ,OAAA;EAC3C,MAAMQ,UAAA,GAAaR,OAAA,CAAQS,WAAW,CAACL,IAAA,CAAKI,UAAU,CAAC;EAEvD,MAAME,YAAA,GAAe,MAAMf,eAAA,CAAgB;IACzCG,WAAA;IACAU,UAAA;IACAD;EACF;EAEA,IAAI,CAACG,YAAA,EAAc;IACjB,OAAO;MAAEL,OAAA,EAAS;MAAiBC,OAAA,EAAS;IAAM;EACpD;EAEA,MAAMK,cAAA,GAAiB,MAAMf,oBAAA,CAAqBI,OAAA,CAAQD,MAAM,CAACa,YAAY;EAC7E,IAAID,cAAA,EAAgB;IAClB,MAAMtB,OAAA,GAAU,MAAMC,UAAA;IACtBD,OAAA,CAAQwB,MAAM,CAACF,cAAA,CAAeG,IAAI;EACpC;EAEA,OAAO;IAAET,OAAA,EAAS;IAAgCC,OAAA,EAAS;EAAK;AAClE","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ 'use server';
2
+
3
+ import { headers as nextHeaders } from 'next/headers.js';
4
+ import { createLocalReq, getPayload, refreshOperation } from '@ruya.sa/payload';
5
+ import { getExistingAuthToken } from '../utilities/getExistingAuthToken.js';
6
+ import { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js';
7
+ export async function refresh({
8
+ config
9
+ }) {
10
+ const payload = await getPayload({
11
+ config,
12
+ cron: true
13
+ });
14
+ const headers = await nextHeaders();
15
+ const result = await payload.auth({
16
+ headers
17
+ });
18
+ if (!result.user) {
19
+ throw new Error('Cannot refresh token: user not authenticated');
20
+ }
21
+ const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix);
22
+ if (!existingCookie) {
23
+ return {
24
+ message: 'No valid token found to refresh',
25
+ success: false
26
+ };
27
+ }
28
+ const collection = result.user.collection;
29
+ const collectionConfig = payload.collections[collection];
30
+ if (!collectionConfig?.config.auth) {
31
+ throw new Error(`No auth config found for collection: ${collection}`);
32
+ }
33
+ const req = await createLocalReq({
34
+ user: result.user
35
+ }, payload);
36
+ const refreshResult = await refreshOperation({
37
+ collection: collectionConfig,
38
+ req
39
+ });
40
+ if (!refreshResult) {
41
+ return {
42
+ message: 'Token refresh failed',
43
+ success: false
44
+ };
45
+ }
46
+ await setPayloadAuthCookie({
47
+ authConfig: collectionConfig.config.auth,
48
+ cookiePrefix: payload.config.cookiePrefix,
49
+ token: refreshResult.refreshedToken
50
+ });
51
+ return {
52
+ message: 'Token refreshed successfully',
53
+ success: true
54
+ };
55
+ }
56
+ //# sourceMappingURL=refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.js","names":["headers","nextHeaders","createLocalReq","getPayload","refreshOperation","getExistingAuthToken","setPayloadAuthCookie","refresh","config","payload","cron","result","auth","user","Error","existingCookie","cookiePrefix","message","success","collection","collectionConfig","collections","req","refreshResult","authConfig","token","refreshedToken"],"sources":["../../src/auth/refresh.ts"],"sourcesContent":["'use server'\n\nimport type { CollectionSlug } from '@ruya.sa/payload'\n\nimport { headers as nextHeaders } from 'next/headers.js'\nimport { createLocalReq, getPayload, refreshOperation } from '@ruya.sa/payload'\n\nimport { getExistingAuthToken } from '../utilities/getExistingAuthToken.js'\nimport { setPayloadAuthCookie } from '../utilities/setPayloadAuthCookie.js'\n\nexport async function refresh({ config }: { config: any }) {\n const payload = await getPayload({ config, cron: true })\n const headers = await nextHeaders()\n const result = await payload.auth({ headers })\n\n if (!result.user) {\n throw new Error('Cannot refresh token: user not authenticated')\n }\n\n const existingCookie = await getExistingAuthToken(payload.config.cookiePrefix)\n if (!existingCookie) {\n return { message: 'No valid token found to refresh', success: false }\n }\n\n const collection: CollectionSlug | undefined = result.user.collection\n const collectionConfig = payload.collections[collection]\n\n if (!collectionConfig?.config.auth) {\n throw new Error(`No auth config found for collection: ${collection}`)\n }\n\n const req = await createLocalReq({ user: result.user }, payload)\n\n const refreshResult = await refreshOperation({\n collection: collectionConfig,\n req,\n })\n\n if (!refreshResult) {\n return { message: 'Token refresh failed', success: false }\n }\n\n await setPayloadAuthCookie({\n authConfig: collectionConfig.config.auth,\n cookiePrefix: payload.config.cookiePrefix,\n token: refreshResult.refreshedToken,\n })\n\n return { message: 'Token refreshed successfully', success: true }\n}\n"],"mappings":"AAAA;;AAIA,SAASA,OAAA,IAAWC,WAAW,QAAQ;AACvC,SAASC,cAAc,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ;AAE7D,SAASC,oBAAoB,QAAQ;AACrC,SAASC,oBAAoB,QAAQ;AAErC,OAAO,eAAeC,QAAQ;EAAEC;AAAM,CAAmB;EACvD,MAAMC,OAAA,GAAU,MAAMN,UAAA,CAAW;IAAEK,MAAA;IAAQE,IAAA,EAAM;EAAK;EACtD,MAAMV,OAAA,GAAU,MAAMC,WAAA;EACtB,MAAMU,MAAA,GAAS,MAAMF,OAAA,CAAQG,IAAI,CAAC;IAAEZ;EAAQ;EAE5C,IAAI,CAACW,MAAA,CAAOE,IAAI,EAAE;IAChB,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAMC,cAAA,GAAiB,MAAMV,oBAAA,CAAqBI,OAAA,CAAQD,MAAM,CAACQ,YAAY;EAC7E,IAAI,CAACD,cAAA,EAAgB;IACnB,OAAO;MAAEE,OAAA,EAAS;MAAmCC,OAAA,EAAS;IAAM;EACtE;EAEA,MAAMC,UAAA,GAAyCR,MAAA,CAAOE,IAAI,CAACM,UAAU;EACrE,MAAMC,gBAAA,GAAmBX,OAAA,CAAQY,WAAW,CAACF,UAAA,CAAW;EAExD,IAAI,CAACC,gBAAA,EAAkBZ,MAAA,CAAOI,IAAA,EAAM;IAClC,MAAM,IAAIE,KAAA,CAAM,wCAAwCK,UAAA,EAAY;EACtE;EAEA,MAAMG,GAAA,GAAM,MAAMpB,cAAA,CAAe;IAAEW,IAAA,EAAMF,MAAA,CAAOE;EAAK,GAAGJ,OAAA;EAExD,MAAMc,aAAA,GAAgB,MAAMnB,gBAAA,CAAiB;IAC3Ce,UAAA,EAAYC,gBAAA;IACZE;EACF;EAEA,IAAI,CAACC,aAAA,EAAe;IAClB,OAAO;MAAEN,OAAA,EAAS;MAAwBC,OAAA,EAAS;IAAM;EAC3D;EAEA,MAAMZ,oBAAA,CAAqB;IACzBkB,UAAA,EAAYJ,gBAAA,CAAiBZ,MAAM,CAACI,IAAI;IACxCI,YAAA,EAAcP,OAAA,CAAQD,MAAM,CAACQ,YAAY;IACzCS,KAAA,EAAOF,aAAA,CAAcG;EACvB;EAEA,OAAO;IAAET,OAAA,EAAS;IAAgCC,OAAA,EAAS;EAAK;AAClE","ignoreList":[]}
package/dist/config.js ADDED
@@ -0,0 +1,2 @@
1
+ export default {};
2
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","names":[],"sources":["../src/config.ts"],"sourcesContent":["import type { SanitizedConfig } from '@ruya.sa/payload'\n\nexport default {} as Promise<SanitizedConfig>\n"],"mappings":"AAEA,eAAe,CAAC","ignoreList":[]}
package/dist/dummy.css ADDED
File without changes
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+
3
+ import { useDocumentInfo } from '@ruya.sa/ui';
4
+ export const ShouldRenderTabs = t0 => {
5
+ const {
6
+ children
7
+ } = t0;
8
+ const {
9
+ id: idFromContext,
10
+ collectionSlug,
11
+ globalSlug
12
+ } = useDocumentInfo();
13
+ const id = idFromContext !== "create" ? idFromContext : null;
14
+ if (collectionSlug && id || globalSlug) {
15
+ return children;
16
+ }
17
+ return null;
18
+ };
19
+ //# sourceMappingURL=ShouldRenderTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShouldRenderTabs.js","names":["useDocumentInfo","ShouldRenderTabs","t0","children","id","idFromContext","collectionSlug","globalSlug"],"sources":["../../../../src/elements/DocumentHeader/Tabs/ShouldRenderTabs.tsx"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useDocumentInfo } from '@ruya.sa/ui'\n\nexport const ShouldRenderTabs: React.FC<{\n children: React.ReactNode\n}> = ({ children }) => {\n const { id: idFromContext, collectionSlug, globalSlug } = useDocumentInfo()\n\n const id = idFromContext !== 'create' ? idFromContext : null\n\n // Don't show tabs when creating new documents\n if ((collectionSlug && id) || globalSlug) {\n return children\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAGA,SAASA,eAAe,QAAQ;AAEhC,OAAO,MAAMC,gBAAA,GAERC,EAAA;EAAC;IAAAC;EAAA,IAAAD,EAAY;EAChB;IAAAE,EAAA,EAAAC,aAAA;IAAAC,cAAA;IAAAC;EAAA,IAA0DP,eAAA;EAE1D,MAAAI,EAAA,GAAWC,aAAA,KAAkB,WAAWA,aAAA,OAAgB;EAAA,IAGpDC,cAAC,IAAkBF,EAAA,IAAOG,UAAA;IAAA,OACrBJ,QAAA;EAAA;EAAA;AAAA,CAIX","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { Button } from '@ruya.sa/ui';
6
+ import { useParams, usePathname, useSearchParams } from 'next/navigation.js';
7
+ import { formatAdminURL } from '@ruya.sa/payload/shared';
8
+ import React from 'react';
9
+ export const DocumentTabLink = t0 => {
10
+ const $ = _c(13);
11
+ const {
12
+ adminRoute,
13
+ ariaLabel,
14
+ baseClass,
15
+ children,
16
+ href: hrefFromProps,
17
+ isActive: isActiveFromProps,
18
+ newTab
19
+ } = t0;
20
+ const pathname = usePathname();
21
+ const params = useParams();
22
+ const searchParams = useSearchParams();
23
+ const locale = searchParams.get("locale");
24
+ const [entityType, entitySlug, segmentThree, segmentFour] = params.segments || [];
25
+ const isCollection = entityType === "collections";
26
+ const t1 = `/${isCollection ? "collections" : "globals"}/${entitySlug}`;
27
+ let t2;
28
+ if ($[0] !== adminRoute || $[1] !== t1) {
29
+ t2 = formatAdminURL({
30
+ adminRoute,
31
+ path: t1
32
+ });
33
+ $[0] = adminRoute;
34
+ $[1] = t1;
35
+ $[2] = t2;
36
+ } else {
37
+ t2 = $[2];
38
+ }
39
+ let docPath = t2;
40
+ if (isCollection) {
41
+ if (segmentThree === "trash" && segmentFour) {
42
+ docPath = docPath + `/trash/${segmentFour}`;
43
+ } else {
44
+ if (segmentThree) {
45
+ docPath = docPath + `/${segmentThree}`;
46
+ }
47
+ }
48
+ }
49
+ const href = `${docPath}${hrefFromProps}`;
50
+ const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ""}`;
51
+ let t3;
52
+ if ($[3] !== ariaLabel || $[4] !== baseClass || $[5] !== children || $[6] !== docPath || $[7] !== href || $[8] !== hrefWithLocale || $[9] !== isActiveFromProps || $[10] !== newTab || $[11] !== pathname) {
53
+ const isActive = href === docPath && pathname === docPath || href !== docPath && pathname.startsWith(href) || isActiveFromProps;
54
+ t3 = _jsx(Button, {
55
+ "aria-label": ariaLabel,
56
+ buttonStyle: "tab",
57
+ className: [baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(" "),
58
+ disabled: isActive,
59
+ el: !isActive || href !== pathname ? "link" : "div",
60
+ margin: false,
61
+ newTab,
62
+ size: "medium",
63
+ to: !isActive || href !== pathname ? hrefWithLocale : undefined,
64
+ children
65
+ });
66
+ $[3] = ariaLabel;
67
+ $[4] = baseClass;
68
+ $[5] = children;
69
+ $[6] = docPath;
70
+ $[7] = href;
71
+ $[8] = hrefWithLocale;
72
+ $[9] = isActiveFromProps;
73
+ $[10] = newTab;
74
+ $[11] = pathname;
75
+ $[12] = t3;
76
+ } else {
77
+ t3 = $[12];
78
+ }
79
+ return t3;
80
+ };
81
+ //# sourceMappingURL=TabLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabLink.js","names":["c","_c","Button","useParams","usePathname","useSearchParams","formatAdminURL","React","DocumentTabLink","t0","$","adminRoute","ariaLabel","baseClass","children","href","hrefFromProps","isActive","isActiveFromProps","newTab","pathname","params","searchParams","locale","get","entityType","entitySlug","segmentThree","segmentFour","segments","isCollection","t1","t2","path","docPath","hrefWithLocale","t3","startsWith","_jsx","buttonStyle","className","filter","Boolean","join","disabled","el","margin","size","to","undefined"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/TabLink.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedConfig } from '@ruya.sa/payload'\n\nimport { Button } from '@ruya.sa/ui'\nimport { useParams, usePathname, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from '@ruya.sa/payload/shared'\nimport React from 'react'\n\nexport const DocumentTabLink: React.FC<{\n adminRoute: SanitizedConfig['routes']['admin']\n ariaLabel?: string\n baseClass: string\n children?: React.ReactNode\n href: string\n isActive?: boolean\n newTab?: boolean\n}> = ({\n adminRoute,\n ariaLabel,\n baseClass,\n children,\n href: hrefFromProps,\n isActive: isActiveFromProps,\n newTab,\n}) => {\n const pathname = usePathname()\n const params = useParams()\n\n const searchParams = useSearchParams()\n\n const locale = searchParams.get('locale')\n\n const [entityType, entitySlug, segmentThree, segmentFour, ...rest] = params.segments || []\n const isCollection = entityType === 'collections'\n\n let docPath = formatAdminURL({\n adminRoute,\n path: `/${isCollection ? 'collections' : 'globals'}/${entitySlug}`,\n })\n\n if (isCollection) {\n if (segmentThree === 'trash' && segmentFour) {\n docPath += `/trash/${segmentFour}`\n } else if (segmentThree) {\n docPath += `/${segmentThree}`\n }\n }\n\n const href = `${docPath}${hrefFromProps}`\n // separated the two so it doesn't break checks against pathname\n const hrefWithLocale = `${href}${locale ? `?locale=${locale}` : ''}`\n\n const isActive =\n (href === docPath && pathname === docPath) ||\n (href !== docPath && pathname.startsWith(href)) ||\n isActiveFromProps\n\n return (\n <Button\n aria-label={ariaLabel}\n buttonStyle=\"tab\"\n className={[baseClass, isActive && `${baseClass}--active`].filter(Boolean).join(' ')}\n disabled={isActive}\n el={!isActive || href !== pathname ? 'link' : 'div'}\n margin={false}\n newTab={newTab}\n size=\"medium\"\n to={!isActive || href !== pathname ? hrefWithLocale : undefined}\n >\n {children}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,EAAEC,WAAW,EAAEC,eAAe,QAAQ;AACxD,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,OAAO,MAAMC,eAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,IAAA,EAAAC,aAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC;EAAA,IAAAV,EAQL;EACC,MAAAW,QAAA,GAAiBhB,WAAA;EACjB,MAAAiB,MAAA,GAAelB,SAAA;EAEf,MAAAmB,YAAA,GAAqBjB,eAAA;EAErB,MAAAkB,MAAA,GAAeD,YAAA,CAAAE,GAAA,CAAiB;EAEhC,OAAAC,UAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,WAAA,IAAqEP,MAAA,CAAAQ,QAAA,MAAqB;EAC1F,MAAAC,YAAA,GAAqBL,UAAA,KAAe;EAI5B,MAAAM,EAAA,OAAID,YAAA,GAAe,gBAAgB,aAAaJ,UAAA,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAqB,EAAA;IAFtDC,EAAA,GAAA1B,cAAA;MAAAK,UAAA;MAAAsB,IAAA,EAENF;IAA4D,CACpE;IAAArB,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAHA,IAAAwB,OAAA,GAAcF,EAGd;EAAA,IAEIF,YAAA;IAAA,IACEH,YAAA,KAAiB,WAAWC,WAAA;MAC9BM,OAAA,GAAAA,OAAA,GAAW,UAAUN,WAAA,EAAa;IAAA;MAAA,IACzBD,YAAA;QACTO,OAAA,GAAAA,OAAA,GAAW,IAAIP,YAAA,EAAc;MAAA;IAAA;EAAA;EAIjC,MAAAZ,IAAA,GAAa,GAAGmB,OAAA,GAAUlB,aAAA,EAAe;EAEzC,MAAAmB,cAAA,GAAuB,GAAGpB,IAAA,GAAOQ,MAAA,GAAS,WAAWA,MAAA,EAAQ,GAAG,IAAI;EAAA,IAAAa,EAAA;EAAA,IAAA1B,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,QAAA,IAAAJ,CAAA,QAAAwB,OAAA,IAAAxB,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAyB,cAAA,IAAAzB,CAAA,QAAAQ,iBAAA,IAAAR,CAAA,SAAAS,MAAA,IAAAT,CAAA,SAAAU,QAAA;IAEpE,MAAAH,QAAA,GACEF,IAAC,KAASmB,OAAA,IAAWd,QAAA,KAAac,OAAA,IACjCnB,IAAA,KAASmB,OAAA,IAAWd,QAAA,CAAAiB,UAAA,CAAoBtB,IAAA,KACzCG,iBAAA;IAGAkB,EAAA,GAAAE,IAAA,CAAApC,MAAA;MAAA,cACcU,SAAA;MAAA2B,WAAA,EACA;MAAAC,SAAA,EACD,CAAC3B,SAAA,EAAWI,QAAA,IAAY,GAAGJ,SAAA,UAAmB,EAAA4B,MAAA,CAAAC,OAAS,EAAAC,IAAA,CAAc;MAAAC,QAAA,EACtE3B,QAAA;MAAA4B,EAAA,EACN,CAAC5B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAW,SAAS;MAAA0B,MAAA;MAAA3B,MAAA;MAAA4B,IAAA,EAGzC;MAAAC,EAAA,EACD,CAAC/B,QAAA,IAAYF,IAAA,KAASK,QAAA,GAAWe,cAAA,GAAAc,SAAiB;MAAAnC;IAAA,C;;;;;;;;;;;;;;SATxDsB,E;CAcJ","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent';
3
+ import { Fragment } from 'react';
4
+ import { DocumentTabLink } from './TabLink.js';
5
+ export const baseClass = 'doc-tab';
6
+ export const DefaultDocumentTab = props => {
7
+ const {
8
+ apiURL,
9
+ collectionConfig,
10
+ globalConfig,
11
+ permissions,
12
+ req,
13
+ tabConfig: {
14
+ href: tabHref,
15
+ isActive: tabIsActive,
16
+ label,
17
+ newTab,
18
+ Pill,
19
+ Pill_Component
20
+ }
21
+ } = props;
22
+ let href = typeof tabHref === 'string' ? tabHref : '';
23
+ let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false;
24
+ if (typeof tabHref === 'function') {
25
+ href = tabHref({
26
+ apiURL,
27
+ collection: collectionConfig,
28
+ global: globalConfig,
29
+ routes: req.payload.config.routes
30
+ });
31
+ }
32
+ if (typeof tabIsActive === 'function') {
33
+ isActive = tabIsActive({
34
+ href
35
+ });
36
+ }
37
+ const labelToRender = typeof label === 'function' ? label({
38
+ t: req.i18n.t
39
+ }) : label;
40
+ return /*#__PURE__*/_jsx(DocumentTabLink, {
41
+ adminRoute: req.payload.config.routes.admin,
42
+ ariaLabel: labelToRender,
43
+ baseClass: baseClass,
44
+ href: href,
45
+ isActive: isActive,
46
+ newTab: newTab,
47
+ children: /*#__PURE__*/_jsxs("span", {
48
+ className: `${baseClass}__label`,
49
+ children: [labelToRender, Pill || Pill_Component ? /*#__PURE__*/_jsxs(Fragment, {
50
+ children: [" ", RenderServerComponent({
51
+ Component: Pill,
52
+ Fallback: Pill_Component,
53
+ importMap: req.payload.importMap,
54
+ serverProps: {
55
+ i18n: req.i18n,
56
+ payload: req.payload,
57
+ permissions,
58
+ req,
59
+ user: req.user
60
+ }
61
+ })]
62
+ }) : null]
63
+ })
64
+ });
65
+ };
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","Fragment","DocumentTabLink","baseClass","DefaultDocumentTab","props","apiURL","collectionConfig","globalConfig","permissions","req","tabConfig","href","tabHref","isActive","tabIsActive","label","newTab","Pill","Pill_Component","collection","global","routes","payload","config","labelToRender","t","i18n","_jsx","adminRoute","admin","ariaLabel","_jsxs","className","Component","Fallback","importMap","serverProps","user"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/Tab/index.tsx"],"sourcesContent":["import type {\n DocumentTabConfig,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from '@ruya.sa/payload'\nimport type React from 'react'\n\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport { Fragment } from 'react'\n\nimport { DocumentTabLink } from './TabLink.js'\nimport './index.scss'\n\nexport const baseClass = 'doc-tab'\n\nexport const DefaultDocumentTab: React.FC<{\n apiURL?: string\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n path?: string\n permissions?: SanitizedPermissions\n req: PayloadRequest\n tabConfig: { readonly Pill_Component?: React.FC } & DocumentTabConfig\n}> = (props) => {\n const {\n apiURL,\n collectionConfig,\n globalConfig,\n permissions,\n req,\n tabConfig: { href: tabHref, isActive: tabIsActive, label, newTab, Pill, Pill_Component },\n } = props\n\n let href = typeof tabHref === 'string' ? tabHref : ''\n let isActive = typeof tabIsActive === 'boolean' ? tabIsActive : false\n\n if (typeof tabHref === 'function') {\n href = tabHref({\n apiURL,\n collection: collectionConfig,\n global: globalConfig,\n routes: req.payload.config.routes,\n })\n }\n\n if (typeof tabIsActive === 'function') {\n isActive = tabIsActive({\n href,\n })\n }\n\n const labelToRender =\n typeof label === 'function'\n ? label({\n t: req.i18n.t,\n })\n : label\n\n return (\n <DocumentTabLink\n adminRoute={req.payload.config.routes.admin}\n ariaLabel={labelToRender}\n baseClass={baseClass}\n href={href}\n isActive={isActive}\n newTab={newTab}\n >\n <span className={`${baseClass}__label`}>\n {labelToRender}\n {Pill || Pill_Component ? (\n <Fragment>\n &nbsp;\n {RenderServerComponent({\n Component: Pill,\n Fallback: Pill_Component,\n importMap: req.payload.importMap,\n serverProps: {\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })}\n </Fragment>\n ) : null}\n </span>\n </DocumentTabLink>\n )\n}\n"],"mappings":";AAUA,SAASA,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AAEzB,SAASC,eAAe,QAAQ;AAGhC,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,MAAMC,kBAAA,GAQPC,KAAA;EACJ,MAAM;IACJC,MAAM;IACNC,gBAAgB;IAChBC,YAAY;IACZC,WAAW;IACXC,GAAG;IACHC,SAAA,EAAW;MAAEC,IAAA,EAAMC,OAAO;MAAEC,QAAA,EAAUC,WAAW;MAAEC,KAAK;MAAEC,MAAM;MAAEC,IAAI;MAAEC;IAAc;EAAE,CACzF,GAAGd,KAAA;EAEJ,IAAIO,IAAA,GAAO,OAAOC,OAAA,KAAY,WAAWA,OAAA,GAAU;EACnD,IAAIC,QAAA,GAAW,OAAOC,WAAA,KAAgB,YAAYA,WAAA,GAAc;EAEhE,IAAI,OAAOF,OAAA,KAAY,YAAY;IACjCD,IAAA,GAAOC,OAAA,CAAQ;MACbP,MAAA;MACAc,UAAA,EAAYb,gBAAA;MACZc,MAAA,EAAQb,YAAA;MACRc,MAAA,EAAQZ,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF;IAC7B;EACF;EAEA,IAAI,OAAOP,WAAA,KAAgB,YAAY;IACrCD,QAAA,GAAWC,WAAA,CAAY;MACrBH;IACF;EACF;EAEA,MAAMa,aAAA,GACJ,OAAOT,KAAA,KAAU,aACbA,KAAA,CAAM;IACJU,CAAA,EAAGhB,GAAA,CAAIiB,IAAI,CAACD;EACd,KACAV,KAAA;EAEN,oBACEY,IAAA,CAAC1B,eAAA;IACC2B,UAAA,EAAYnB,GAAA,CAAIa,OAAO,CAACC,MAAM,CAACF,MAAM,CAACQ,KAAK;IAC3CC,SAAA,EAAWN,aAAA;IACXtB,SAAA,EAAWA,SAAA;IACXS,IAAA,EAAMA,IAAA;IACNE,QAAA,EAAUA,QAAA;IACVG,MAAA,EAAQA,MAAA;cAER,aAAAe,KAAA,CAAC;MAAKC,SAAA,EAAW,GAAG9B,SAAA,SAAkB;iBACnCsB,aAAA,EACAP,IAAA,IAAQC,cAAA,gBACPa,KAAA,CAAC/B,QAAA;mBAAS,KAEPD,qBAAA,CAAsB;UACrBkC,SAAA,EAAWhB,IAAA;UACXiB,QAAA,EAAUhB,cAAA;UACViB,SAAA,EAAW1B,GAAA,CAAIa,OAAO,CAACa,SAAS;UAChCC,WAAA,EAAa;YACXV,IAAA,EAAMjB,GAAA,CAAIiB,IAAI;YACdJ,OAAA,EAASb,GAAA,CAAIa,OAAO;YACpBd,WAAA;YACAC,GAAA;YACA4B,IAAA,EAAM5B,GAAA,CAAI4B;UACZ;QACF;WAEA;;;AAIZ","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent';
3
+ import React from 'react';
4
+ import { ShouldRenderTabs } from './ShouldRenderTabs.js';
5
+ import { DefaultDocumentTab } from './Tab/index.js';
6
+ import { getTabs } from './tabs/index.js';
7
+ const baseClass = 'doc-tabs';
8
+ export const DocumentTabs = ({
9
+ collectionConfig,
10
+ globalConfig,
11
+ permissions,
12
+ req
13
+ }) => {
14
+ const {
15
+ config
16
+ } = req.payload;
17
+ const tabs = getTabs({
18
+ collectionConfig,
19
+ globalConfig
20
+ });
21
+ return /*#__PURE__*/_jsx(ShouldRenderTabs, {
22
+ children: /*#__PURE__*/_jsx("div", {
23
+ className: baseClass,
24
+ children: /*#__PURE__*/_jsx("div", {
25
+ className: `${baseClass}__tabs-container`,
26
+ children: /*#__PURE__*/_jsx("ul", {
27
+ className: `${baseClass}__tabs`,
28
+ children: tabs?.map(({
29
+ tab: tabConfig,
30
+ viewPath
31
+ }, index) => {
32
+ const {
33
+ condition
34
+ } = tabConfig || {};
35
+ const meetsCondition = !condition || condition({
36
+ collectionConfig,
37
+ config,
38
+ globalConfig,
39
+ permissions,
40
+ req
41
+ });
42
+ if (!meetsCondition) {
43
+ return null;
44
+ }
45
+ if (tabConfig?.Component) {
46
+ return RenderServerComponent({
47
+ clientProps: {
48
+ path: viewPath
49
+ },
50
+ Component: tabConfig.Component,
51
+ importMap: req.payload.importMap,
52
+ key: `tab-${index}`,
53
+ serverProps: {
54
+ collectionConfig,
55
+ globalConfig,
56
+ i18n: req.i18n,
57
+ payload: req.payload,
58
+ permissions,
59
+ req,
60
+ user: req.user
61
+ }
62
+ });
63
+ }
64
+ return /*#__PURE__*/_jsx(DefaultDocumentTab, {
65
+ collectionConfig: collectionConfig,
66
+ globalConfig: globalConfig,
67
+ path: viewPath,
68
+ permissions: permissions,
69
+ req: req,
70
+ tabConfig: tabConfig
71
+ }, `tab-${index}`);
72
+ })
73
+ })
74
+ })
75
+ })
76
+ });
77
+ };
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["RenderServerComponent","React","ShouldRenderTabs","DefaultDocumentTab","getTabs","baseClass","DocumentTabs","collectionConfig","globalConfig","permissions","req","config","payload","tabs","_jsx","className","map","tab","tabConfig","viewPath","index","condition","meetsCondition","Component","clientProps","path","importMap","key","serverProps","i18n","user"],"sources":["../../../../src/elements/DocumentHeader/Tabs/index.tsx"],"sourcesContent":["import type {\n DocumentTabClientProps,\n DocumentTabServerPropsOnly,\n PayloadRequest,\n SanitizedCollectionConfig,\n SanitizedGlobalConfig,\n SanitizedPermissions,\n} from '@ruya.sa/payload'\n\nimport { RenderServerComponent } from '@ruya.sa/ui/elements/RenderServerComponent'\nimport React from 'react'\n\nimport { ShouldRenderTabs } from './ShouldRenderTabs.js'\nimport { DefaultDocumentTab } from './Tab/index.js'\nimport { getTabs } from './tabs/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-tabs'\n\nexport const DocumentTabs: React.FC<{\n collectionConfig: SanitizedCollectionConfig\n globalConfig: SanitizedGlobalConfig\n permissions: SanitizedPermissions\n req: PayloadRequest\n}> = ({ collectionConfig, globalConfig, permissions, req }) => {\n const { config } = req.payload\n\n const tabs = getTabs({\n collectionConfig,\n globalConfig,\n })\n\n return (\n <ShouldRenderTabs>\n <div className={baseClass}>\n <div className={`${baseClass}__tabs-container`}>\n <ul className={`${baseClass}__tabs`}>\n {tabs?.map(({ tab: tabConfig, viewPath }, index) => {\n const { condition } = tabConfig || {}\n\n const meetsCondition =\n !condition ||\n condition({ collectionConfig, config, globalConfig, permissions, req })\n\n if (!meetsCondition) {\n return null\n }\n\n if (tabConfig?.Component) {\n return RenderServerComponent({\n clientProps: {\n path: viewPath,\n } satisfies DocumentTabClientProps,\n Component: tabConfig.Component,\n importMap: req.payload.importMap,\n key: `tab-${index}`,\n serverProps: {\n collectionConfig,\n globalConfig,\n i18n: req.i18n,\n payload: req.payload,\n permissions,\n req,\n user: req.user,\n } satisfies DocumentTabServerPropsOnly,\n })\n }\n\n return (\n <DefaultDocumentTab\n collectionConfig={collectionConfig}\n globalConfig={globalConfig}\n key={`tab-${index}`}\n path={viewPath}\n permissions={permissions}\n req={req}\n tabConfig={tabConfig}\n />\n )\n })}\n </ul>\n </div>\n </div>\n </ShouldRenderTabs>\n )\n}\n"],"mappings":";AASA,SAASA,qBAAqB,QAAQ;AACtC,OAAOC,KAAA,MAAW;AAElB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AAGxB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAKRA,CAAC;EAAEC,gBAAgB;EAAEC,YAAY;EAAEC,WAAW;EAAEC;AAAG,CAAE;EACxD,MAAM;IAAEC;EAAM,CAAE,GAAGD,GAAA,CAAIE,OAAO;EAE9B,MAAMC,IAAA,GAAOT,OAAA,CAAQ;IACnBG,gBAAA;IACAC;EACF;EAEA,oBACEM,IAAA,CAACZ,gBAAA;cACC,aAAAY,IAAA,CAAC;MAAIC,SAAA,EAAWV,SAAA;gBACd,aAAAS,IAAA,CAAC;QAAIC,SAAA,EAAW,GAAGV,SAAA,kBAA2B;kBAC5C,aAAAS,IAAA,CAAC;UAAGC,SAAA,EAAW,GAAGV,SAAA,QAAiB;oBAChCQ,IAAA,EAAMG,GAAA,CAAI,CAAC;YAAEC,GAAA,EAAKC,SAAS;YAAEC;UAAQ,CAAE,EAAEC,KAAA;YACxC,MAAM;cAAEC;YAAS,CAAE,GAAGH,SAAA,IAAa,CAAC;YAEpC,MAAMI,cAAA,GACJ,CAACD,SAAA,IACDA,SAAA,CAAU;cAAEd,gBAAA;cAAkBI,MAAA;cAAQH,YAAA;cAAcC,WAAA;cAAaC;YAAI;YAEvE,IAAI,CAACY,cAAA,EAAgB;cACnB,OAAO;YACT;YAEA,IAAIJ,SAAA,EAAWK,SAAA,EAAW;cACxB,OAAOvB,qBAAA,CAAsB;gBAC3BwB,WAAA,EAAa;kBACXC,IAAA,EAAMN;gBACR;gBACAI,SAAA,EAAWL,SAAA,CAAUK,SAAS;gBAC9BG,SAAA,EAAWhB,GAAA,CAAIE,OAAO,CAACc,SAAS;gBAChCC,GAAA,EAAK,OAAOP,KAAA,EAAO;gBACnBQ,WAAA,EAAa;kBACXrB,gBAAA;kBACAC,YAAA;kBACAqB,IAAA,EAAMnB,GAAA,CAAImB,IAAI;kBACdjB,OAAA,EAASF,GAAA,CAAIE,OAAO;kBACpBH,WAAA;kBACAC,GAAA;kBACAoB,IAAA,EAAMpB,GAAA,CAAIoB;gBACZ;cACF;YACF;YAEA,oBACEhB,IAAA,CAACX,kBAAA;cACCI,gBAAA,EAAkBA,gBAAA;cAClBC,YAAA,EAAcA,YAAA;cAEdiB,IAAA,EAAMN,QAAA;cACNV,WAAA,EAAaA,WAAA;cACbC,GAAA,EAAKA,GAAA;cACLQ,SAAA,EAAWA;eAJN,OAAOE,KAAA,EAAO;UAOzB;;;;;AAMZ","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { useDocumentInfo } from '@ruya.sa/ui';
6
+ import React from 'react';
7
+ const baseClass = 'pill-version-count';
8
+ export const VersionsPill = () => {
9
+ const $ = _c(2);
10
+ const {
11
+ versionCount
12
+ } = useDocumentInfo();
13
+ if (!versionCount) {
14
+ return null;
15
+ }
16
+ let t0;
17
+ if ($[0] !== versionCount) {
18
+ t0 = _jsx("span", {
19
+ className: baseClass,
20
+ children: versionCount
21
+ });
22
+ $[0] = versionCount;
23
+ $[1] = t0;
24
+ } else {
25
+ t0 = $[1];
26
+ }
27
+ return t0;
28
+ };
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","useDocumentInfo","React","baseClass","VersionsPill","$","versionCount","t0","_jsx","className","children"],"sources":["../../../../../../src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx"],"sourcesContent":["'use client'\nimport { useDocumentInfo } from '@ruya.sa/ui'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'pill-version-count'\n\nexport const VersionsPill: React.FC = () => {\n const { versionCount } = useDocumentInfo()\n\n if (!versionCount) {\n return null\n }\n\n return <span className={baseClass}>{versionCount}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,eAAe,QAAQ;AAChC,OAAOC,KAAA,MAAW;AAIlB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,YAAA,GAAyBA,CAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACpC;IAAAM;EAAA,IAAyBL,eAAA;EAAA,KAEpBK,YAAA;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IAIEC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAN,SAAA;MAAAO,QAAA,EAA4BJ;IAAA,C;;;;;;SAA7BC,E;CACT","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ import { VersionsPill } from './VersionsPill/index.js';
2
+ export const documentViewKeys = ['api', 'default', 'livePreview', 'versions'];
3
+ export const getTabs = ({
4
+ collectionConfig,
5
+ globalConfig
6
+ }) => {
7
+ const customViews = collectionConfig?.admin?.components?.views?.edit || globalConfig?.admin?.components?.views?.edit || {};
8
+ return [{
9
+ tab: {
10
+ href: '',
11
+ label: ({
12
+ t
13
+ }) => t('general:edit'),
14
+ order: 100,
15
+ ...(customViews?.['default']?.tab || {})
16
+ },
17
+ viewPath: '/'
18
+ }, {
19
+ tab: {
20
+ condition: ({
21
+ collectionConfig,
22
+ globalConfig,
23
+ permissions
24
+ }) => Boolean(collectionConfig?.versions && permissions?.collections?.[collectionConfig?.slug]?.readVersions || globalConfig?.versions && permissions?.globals?.[globalConfig?.slug]?.readVersions),
25
+ href: '/versions',
26
+ label: ({
27
+ t
28
+ }) => t('version:versions'),
29
+ order: 300,
30
+ Pill_Component: VersionsPill,
31
+ ...(customViews?.['versions']?.tab || {})
32
+ },
33
+ viewPath: '/versions'
34
+ }, {
35
+ tab: {
36
+ condition: ({
37
+ collectionConfig,
38
+ globalConfig
39
+ }) => collectionConfig && !collectionConfig?.admin?.hideAPIURL || globalConfig && !globalConfig?.admin?.hideAPIURL,
40
+ href: '/api',
41
+ label: 'API',
42
+ order: 400,
43
+ ...(customViews?.['api']?.tab || {})
44
+ },
45
+ viewPath: '/api'
46
+ }].concat(Object.entries(customViews).reduce((acc, [key, value]) => {
47
+ if (documentViewKeys.includes(key)) {
48
+ return acc;
49
+ }
50
+ if (value?.tab) {
51
+ acc.push({
52
+ tab: value.tab,
53
+ viewPath: 'path' in value ? value.path : ''
54
+ });
55
+ }
56
+ return acc;
57
+ }, []))?.sort(({
58
+ tab: a
59
+ }, {
60
+ tab: b
61
+ }) => {
62
+ if (a.order === undefined && b.order === undefined) {
63
+ return 0;
64
+ } else if (a.order === undefined) {
65
+ return 1;
66
+ } else if (b.order === undefined) {
67
+ return -1;
68
+ }
69
+ return a.order - b.order;
70
+ });
71
+ };
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["VersionsPill","documentViewKeys","getTabs","collectionConfig","globalConfig","customViews","admin","components","views","edit","tab","href","label","t","order","viewPath","condition","permissions","Boolean","versions","collections","slug","readVersions","globals","Pill_Component","hideAPIURL","concat","Object","entries","reduce","acc","key","value","includes","push","path","sort","a","b","undefined"],"sources":["../../../../../src/elements/DocumentHeader/Tabs/tabs/index.tsx"],"sourcesContent":["import type { DocumentTabConfig, SanitizedCollectionConfig, SanitizedGlobalConfig } from '@ruya.sa/payload'\n\nimport { VersionsPill } from './VersionsPill/index.js'\n\nexport const documentViewKeys = ['api', 'default', 'livePreview', 'versions']\n\nexport type DocumentViewKey = (typeof documentViewKeys)[number]\n\nexport const getTabs = ({\n collectionConfig,\n globalConfig,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n globalConfig?: SanitizedGlobalConfig\n}): { tab: DocumentTabConfig; viewPath: string }[] => {\n const customViews =\n collectionConfig?.admin?.components?.views?.edit ||\n globalConfig?.admin?.components?.views?.edit ||\n {}\n\n return [\n {\n tab: {\n href: '',\n label: ({ t }) => t('general:edit'),\n order: 100,\n ...(customViews?.['default']?.tab || {}),\n },\n viewPath: '/',\n },\n {\n tab: {\n condition: ({ collectionConfig, globalConfig, permissions }) =>\n Boolean(\n (collectionConfig?.versions &&\n permissions?.collections?.[collectionConfig?.slug]?.readVersions) ||\n (globalConfig?.versions && permissions?.globals?.[globalConfig?.slug]?.readVersions),\n ),\n href: '/versions',\n label: ({ t }) => t('version:versions'),\n order: 300,\n Pill_Component: VersionsPill,\n ...(customViews?.['versions']?.tab || {}),\n },\n viewPath: '/versions',\n },\n {\n tab: {\n condition: ({ collectionConfig, globalConfig }) =>\n (collectionConfig && !collectionConfig?.admin?.hideAPIURL) ||\n (globalConfig && !globalConfig?.admin?.hideAPIURL),\n href: '/api',\n label: 'API',\n order: 400,\n ...(customViews?.['api']?.tab || {}),\n },\n viewPath: '/api',\n },\n ]\n .concat(\n Object.entries(customViews).reduce((acc, [key, value]) => {\n if (documentViewKeys.includes(key)) {\n return acc\n }\n\n if (value?.tab) {\n acc.push({\n tab: value.tab,\n viewPath: 'path' in value ? value.path : '',\n })\n }\n\n return acc\n }, []),\n )\n ?.sort(({ tab: a }, { tab: b }) => {\n if (a.order === undefined && b.order === undefined) {\n return 0\n } else if (a.order === undefined) {\n return 1\n } else if (b.order === undefined) {\n return -1\n }\n\n return a.order - b.order\n })\n}\n"],"mappings":"AAEA,SAASA,YAAY,QAAQ;AAE7B,OAAO,MAAMC,gBAAA,GAAmB,CAAC,OAAO,WAAW,eAAe,WAAW;AAI7E,OAAO,MAAMC,OAAA,GAAUA,CAAC;EACtBC,gBAAgB;EAChBC;AAAY,CAIb;EACC,MAAMC,WAAA,GACJF,gBAAA,EAAkBG,KAAA,EAAOC,UAAA,EAAYC,KAAA,EAAOC,IAAA,IAC5CL,YAAA,EAAcE,KAAA,EAAOC,UAAA,EAAYC,KAAA,EAAOC,IAAA,IACxC,CAAC;EAEH,OAAO,CACL;IACEC,GAAA,EAAK;MACHC,IAAA,EAAM;MACNC,KAAA,EAAOA,CAAC;QAAEC;MAAC,CAAE,KAAKA,CAAA,CAAE;MACpBC,KAAA,EAAO;MACP,IAAIT,WAAA,GAAc,UAAU,EAAEK,GAAA,IAAO,CAAC,CAAC;IACzC;IACAK,QAAA,EAAU;EACZ,GACA;IACEL,GAAA,EAAK;MACHM,SAAA,EAAWA,CAAC;QAAEb,gBAAgB;QAAEC,YAAY;QAAEa;MAAW,CAAE,KACzDC,OAAA,CACEf,gBAAC,EAAkBgB,QAAA,IACjBF,WAAA,EAAaG,WAAA,GAAcjB,gBAAA,EAAkBkB,IAAA,CAAK,EAAEC,YAAA,IACnDlB,YAAA,EAAce,QAAA,IAAYF,WAAA,EAAaM,OAAA,GAAUnB,YAAA,EAAciB,IAAA,CAAK,EAAEC,YAAA;MAE7EX,IAAA,EAAM;MACNC,KAAA,EAAOA,CAAC;QAAEC;MAAC,CAAE,KAAKA,CAAA,CAAE;MACpBC,KAAA,EAAO;MACPU,cAAA,EAAgBxB,YAAA;MAChB,IAAIK,WAAA,GAAc,WAAW,EAAEK,GAAA,IAAO,CAAC,CAAC;IAC1C;IACAK,QAAA,EAAU;EACZ,GACA;IACEL,GAAA,EAAK;MACHM,SAAA,EAAWA,CAAC;QAAEb,gBAAgB;QAAEC;MAAY,CAAE,KAC5CD,gBAAC,IAAoB,CAACA,gBAAA,EAAkBG,KAAA,EAAOmB,UAAA,IAC9CrB,YAAA,IAAgB,CAACA,YAAA,EAAcE,KAAA,EAAOmB,UAAA;MACzCd,IAAA,EAAM;MACNC,KAAA,EAAO;MACPE,KAAA,EAAO;MACP,IAAIT,WAAA,GAAc,MAAM,EAAEK,GAAA,IAAO,CAAC,CAAC;IACrC;IACAK,QAAA,EAAU;EACZ,EACD,CACEW,MAAM,CACLC,MAAA,CAAOC,OAAO,CAACvB,WAAA,EAAawB,MAAM,CAAC,CAACC,GAAA,EAAK,CAACC,GAAA,EAAKC,KAAA,CAAM;IACnD,IAAI/B,gBAAA,CAAiBgC,QAAQ,CAACF,GAAA,GAAM;MAClC,OAAOD,GAAA;IACT;IAEA,IAAIE,KAAA,EAAOtB,GAAA,EAAK;MACdoB,GAAA,CAAII,IAAI,CAAC;QACPxB,GAAA,EAAKsB,KAAA,CAAMtB,GAAG;QACdK,QAAA,EAAU,UAAUiB,KAAA,GAAQA,KAAA,CAAMG,IAAI,GAAG;MAC3C;IACF;IAEA,OAAOL,GAAA;EACT,GAAG,EAAE,IAELM,IAAA,CAAK,CAAC;IAAE1B,GAAA,EAAK2B;EAAC,CAAE,EAAE;IAAE3B,GAAA,EAAK4B;EAAC,CAAE;IAC5B,IAAID,CAAA,CAAEvB,KAAK,KAAKyB,SAAA,IAAaD,CAAA,CAAExB,KAAK,KAAKyB,SAAA,EAAW;MAClD,OAAO;IACT,OAAO,IAAIF,CAAA,CAAEvB,KAAK,KAAKyB,SAAA,EAAW;MAChC,OAAO;IACT,OAAO,IAAID,CAAA,CAAExB,KAAK,KAAKyB,SAAA,EAAW;MAChC,OAAO,CAAC;IACV;IAEA,OAAOF,CAAA,CAAEvB,KAAK,GAAGwB,CAAA,CAAExB,KAAK;EAC1B;AACJ","ignoreList":[]}