@byline/host-tanstack-start 0.9.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 (511) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +48 -0
  3. package/dist/admin-shell/admin-roles/container.d.ts +34 -0
  4. package/dist/admin-shell/admin-roles/container.d.ts.map +1 -0
  5. package/dist/admin-shell/admin-roles/container.js +259 -0
  6. package/dist/admin-shell/admin-roles/container.module.js +17 -0
  7. package/dist/admin-shell/admin-roles/container_module.css +93 -0
  8. package/dist/admin-shell/admin-roles/delete.d.ts +9 -0
  9. package/dist/admin-shell/admin-roles/delete.d.ts.map +1 -0
  10. package/dist/admin-shell/admin-roles/delete.js +107 -0
  11. package/dist/admin-shell/admin-roles/delete.module.js +10 -0
  12. package/dist/admin-shell/admin-roles/delete_module.css +35 -0
  13. package/dist/admin-shell/admin-roles/list.d.ts +25 -0
  14. package/dist/admin-shell/admin-roles/list.d.ts.map +1 -0
  15. package/dist/admin-shell/admin-roles/list.js +292 -0
  16. package/dist/admin-shell/admin-roles/list.module.js +24 -0
  17. package/dist/admin-shell/admin-roles/list_module.css +113 -0
  18. package/dist/admin-shell/admin-users/container.d.ts +18 -0
  19. package/dist/admin-shell/admin-users/container.d.ts.map +1 -0
  20. package/dist/admin-shell/admin-users/container.js +418 -0
  21. package/dist/admin-shell/admin-users/container.module.js +22 -0
  22. package/dist/admin-shell/admin-users/container_module.css +136 -0
  23. package/dist/admin-shell/admin-users/delete.d.ts +9 -0
  24. package/dist/admin-shell/admin-users/delete.d.ts.map +1 -0
  25. package/dist/admin-shell/admin-users/delete.js +115 -0
  26. package/dist/admin-shell/admin-users/delete.module.js +10 -0
  27. package/dist/admin-shell/admin-users/delete_module.css +35 -0
  28. package/dist/admin-shell/admin-users/list.d.ts +13 -0
  29. package/dist/admin-shell/admin-users/list.d.ts.map +1 -0
  30. package/dist/admin-shell/admin-users/list.js +328 -0
  31. package/dist/admin-shell/admin-users/list.module.js +22 -0
  32. package/dist/admin-shell/admin-users/list_module.css +112 -0
  33. package/dist/admin-shell/chrome/admin-app-bar.d.ts +7 -0
  34. package/dist/admin-shell/chrome/admin-app-bar.d.ts.map +1 -0
  35. package/dist/admin-shell/chrome/admin-app-bar.js +71 -0
  36. package/dist/admin-shell/chrome/admin-app-bar.module.js +9 -0
  37. package/dist/admin-shell/chrome/admin-app-bar_module.css +54 -0
  38. package/dist/admin-shell/chrome/admin-layout.module.js +5 -0
  39. package/dist/admin-shell/chrome/admin-layout_module.css +8 -0
  40. package/dist/admin-shell/chrome/branding.d.ts +9 -0
  41. package/dist/admin-shell/chrome/branding.d.ts.map +1 -0
  42. package/dist/admin-shell/chrome/branding.js +17 -0
  43. package/dist/admin-shell/chrome/branding.module.js +6 -0
  44. package/dist/admin-shell/chrome/branding_module.css +11 -0
  45. package/dist/admin-shell/chrome/breadcrumbs/@types.d.ts +6 -0
  46. package/dist/admin-shell/chrome/breadcrumbs/@types.d.ts.map +1 -0
  47. package/dist/admin-shell/chrome/breadcrumbs/@types.js +1 -0
  48. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.d.ts +7 -0
  49. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.d.ts.map +1 -0
  50. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-client.js +20 -0
  51. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.d.ts +24 -0
  52. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.d.ts.map +1 -0
  53. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.js +23 -0
  54. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.d.ts +15 -0
  55. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  56. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.js +77 -0
  57. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs.module.js +12 -0
  58. package/dist/admin-shell/chrome/breadcrumbs/breadcrumbs_module.css +81 -0
  59. package/dist/admin-shell/chrome/byline-logo.d.ts +12 -0
  60. package/dist/admin-shell/chrome/byline-logo.d.ts.map +1 -0
  61. package/dist/admin-shell/chrome/byline-logo.js +178 -0
  62. package/dist/admin-shell/chrome/content.d.ts +24 -0
  63. package/dist/admin-shell/chrome/content.d.ts.map +1 -0
  64. package/dist/admin-shell/chrome/content.js +31 -0
  65. package/dist/admin-shell/chrome/content.module.js +5 -0
  66. package/dist/admin-shell/chrome/content_module.css +10 -0
  67. package/dist/admin-shell/chrome/dashboard.d.ts +14 -0
  68. package/dist/admin-shell/chrome/dashboard.d.ts.map +1 -0
  69. package/dist/admin-shell/chrome/dashboard.js +129 -0
  70. package/dist/admin-shell/chrome/dashboard.module.js +19 -0
  71. package/dist/admin-shell/chrome/dashboard_module.css +175 -0
  72. package/dist/admin-shell/chrome/drawer-toggle.d.ts +9 -0
  73. package/dist/admin-shell/chrome/drawer-toggle.d.ts.map +1 -0
  74. package/dist/admin-shell/chrome/drawer-toggle.js +57 -0
  75. package/dist/admin-shell/chrome/drawer-toggle.module.js +8 -0
  76. package/dist/admin-shell/chrome/drawer-toggle_module.css +21 -0
  77. package/dist/admin-shell/chrome/hamburger.d.ts +10 -0
  78. package/dist/admin-shell/chrome/hamburger.d.ts.map +1 -0
  79. package/dist/admin-shell/chrome/hamburger.js +30 -0
  80. package/dist/admin-shell/chrome/hamburger.module.js +5 -0
  81. package/dist/admin-shell/chrome/hamburger_module.css +7 -0
  82. package/dist/admin-shell/chrome/loose-router.d.ts +33 -0
  83. package/dist/admin-shell/chrome/loose-router.d.ts.map +1 -0
  84. package/dist/admin-shell/chrome/loose-router.js +6 -0
  85. package/dist/admin-shell/chrome/menu-drawer.d.ts +10 -0
  86. package/dist/admin-shell/chrome/menu-drawer.d.ts.map +1 -0
  87. package/dist/admin-shell/chrome/menu-drawer.js +141 -0
  88. package/dist/admin-shell/chrome/menu-drawer.module.js +12 -0
  89. package/dist/admin-shell/chrome/menu-drawer_module.css +137 -0
  90. package/dist/admin-shell/chrome/menu-provider.d.ts +21 -0
  91. package/dist/admin-shell/chrome/menu-provider.d.ts.map +1 -0
  92. package/dist/admin-shell/chrome/menu-provider.js +54 -0
  93. package/dist/admin-shell/chrome/preview-toggle.d.ts +13 -0
  94. package/dist/admin-shell/chrome/preview-toggle.d.ts.map +1 -0
  95. package/dist/admin-shell/chrome/preview-toggle.js +75 -0
  96. package/dist/admin-shell/chrome/route-error.d.ts +22 -0
  97. package/dist/admin-shell/chrome/route-error.d.ts.map +1 -0
  98. package/dist/admin-shell/chrome/route-error.js +119 -0
  99. package/dist/admin-shell/chrome/route-error.module.js +14 -0
  100. package/dist/admin-shell/chrome/route-error_module.css +94 -0
  101. package/dist/admin-shell/chrome/router-pager.d.ts +19 -0
  102. package/dist/admin-shell/chrome/router-pager.d.ts.map +1 -0
  103. package/dist/admin-shell/chrome/router-pager.js +91 -0
  104. package/dist/admin-shell/chrome/sign-in-page.d.ts +19 -0
  105. package/dist/admin-shell/chrome/sign-in-page.d.ts.map +1 -0
  106. package/dist/admin-shell/chrome/sign-in-page.js +20 -0
  107. package/dist/admin-shell/chrome/sign-in-page.module.js +6 -0
  108. package/dist/admin-shell/chrome/sign-in-page_module.css +22 -0
  109. package/dist/admin-shell/chrome/sort-icons.d.ts +10 -0
  110. package/dist/admin-shell/chrome/sort-icons.d.ts.map +1 -0
  111. package/dist/admin-shell/chrome/sort-icons.js +103 -0
  112. package/dist/admin-shell/chrome/th-sortable.d.ts +23 -0
  113. package/dist/admin-shell/chrome/th-sortable.d.ts.map +1 -0
  114. package/dist/admin-shell/chrome/th-sortable.js +75 -0
  115. package/dist/admin-shell/chrome/th-sortable.module.js +10 -0
  116. package/dist/admin-shell/chrome/th-sortable_module.css +37 -0
  117. package/dist/admin-shell/chrome/use-media-query.d.ts +9 -0
  118. package/dist/admin-shell/chrome/use-media-query.d.ts.map +1 -0
  119. package/dist/admin-shell/chrome/use-media-query.js +20 -0
  120. package/dist/admin-shell/chrome/utils.d.ts +12 -0
  121. package/dist/admin-shell/chrome/utils.d.ts.map +1 -0
  122. package/dist/admin-shell/chrome/utils.js +8 -0
  123. package/dist/admin-shell/collections/api.d.ts +28 -0
  124. package/dist/admin-shell/collections/api.d.ts.map +1 -0
  125. package/dist/admin-shell/collections/api.js +51 -0
  126. package/dist/admin-shell/collections/api.module.js +9 -0
  127. package/dist/admin-shell/collections/api_module.css +42 -0
  128. package/dist/admin-shell/collections/create.d.ts +14 -0
  129. package/dist/admin-shell/collections/create.d.ts.map +1 -0
  130. package/dist/admin-shell/collections/create.js +77 -0
  131. package/dist/admin-shell/collections/edit.d.ts +19 -0
  132. package/dist/admin-shell/collections/edit.d.ts.map +1 -0
  133. package/dist/admin-shell/collections/edit.js +279 -0
  134. package/dist/admin-shell/collections/history.d.ts +20 -0
  135. package/dist/admin-shell/collections/history.d.ts.map +1 -0
  136. package/dist/admin-shell/collections/history.js +252 -0
  137. package/dist/admin-shell/collections/history.module.js +18 -0
  138. package/dist/admin-shell/collections/history_module.css +121 -0
  139. package/dist/admin-shell/collections/list.d.ts +16 -0
  140. package/dist/admin-shell/collections/list.d.ts.map +1 -0
  141. package/dist/admin-shell/collections/list.js +253 -0
  142. package/dist/admin-shell/collections/list.module.js +16 -0
  143. package/dist/admin-shell/collections/list_module.css +88 -0
  144. package/dist/admin-shell/collections/preview-link.d.ts +32 -0
  145. package/dist/admin-shell/collections/preview-link.d.ts.map +1 -0
  146. package/dist/admin-shell/collections/preview-link.js +54 -0
  147. package/dist/admin-shell/collections/tanstack-navigation-guard.d.ts +16 -0
  148. package/dist/admin-shell/collections/tanstack-navigation-guard.d.ts.map +1 -0
  149. package/dist/admin-shell/collections/tanstack-navigation-guard.js +19 -0
  150. package/dist/admin-shell/collections/view-menu.d.ts +58 -0
  151. package/dist/admin-shell/collections/view-menu.d.ts.map +1 -0
  152. package/dist/admin-shell/collections/view-menu.js +203 -0
  153. package/dist/admin-shell/collections/view-menu.module.js +11 -0
  154. package/dist/admin-shell/collections/view-menu_module.css +43 -0
  155. package/dist/auth/auth-context.d.ts +38 -0
  156. package/dist/auth/auth-context.d.ts.map +1 -0
  157. package/dist/auth/auth-context.js +57 -0
  158. package/dist/auth/auth-cookies.d.ts +35 -0
  159. package/dist/auth/auth-cookies.d.ts.map +1 -0
  160. package/dist/auth/auth-cookies.js +46 -0
  161. package/dist/auth/preview-cookies.d.ts +20 -0
  162. package/dist/auth/preview-cookies.d.ts.map +1 -0
  163. package/dist/auth/preview-cookies.js +26 -0
  164. package/dist/index.d.ts +43 -0
  165. package/dist/index.d.ts.map +1 -0
  166. package/dist/index.js +1 -0
  167. package/dist/integrations/abilities.d.ts +67 -0
  168. package/dist/integrations/abilities.d.ts.map +1 -0
  169. package/dist/integrations/abilities.js +25 -0
  170. package/dist/integrations/api-utils.d.ts +34 -0
  171. package/dist/integrations/api-utils.d.ts.map +1 -0
  172. package/dist/integrations/api-utils.js +22 -0
  173. package/dist/integrations/byline-admin-services.d.ts +25 -0
  174. package/dist/integrations/byline-admin-services.d.ts.map +1 -0
  175. package/dist/integrations/byline-admin-services.js +26 -0
  176. package/dist/integrations/byline-client.d.ts +22 -0
  177. package/dist/integrations/byline-client.d.ts.map +1 -0
  178. package/dist/integrations/byline-client.js +13 -0
  179. package/dist/integrations/byline-core.d.ts +28 -0
  180. package/dist/integrations/byline-core.d.ts.map +1 -0
  181. package/dist/integrations/byline-core.js +5 -0
  182. package/dist/integrations/byline-field-services.d.ts +19 -0
  183. package/dist/integrations/byline-field-services.d.ts.map +1 -0
  184. package/dist/integrations/byline-field-services.js +14 -0
  185. package/dist/integrations/byline-public-client.d.ts +10 -0
  186. package/dist/integrations/byline-public-client.d.ts.map +1 -0
  187. package/dist/integrations/byline-public-client.js +15 -0
  188. package/dist/integrations/byline-viewer-client.d.ts +21 -0
  189. package/dist/integrations/byline-viewer-client.d.ts.map +1 -0
  190. package/dist/integrations/byline-viewer-client.js +39 -0
  191. package/dist/integrations/start-errors.d.ts +23 -0
  192. package/dist/integrations/start-errors.d.ts.map +1 -0
  193. package/dist/integrations/start-errors.js +32 -0
  194. package/dist/routes/create-admin-account-route.d.ts +9 -0
  195. package/dist/routes/create-admin-account-route.d.ts.map +1 -0
  196. package/dist/routes/create-admin-account-route.js +68 -0
  197. package/dist/routes/create-admin-dashboard-route.d.ts +9 -0
  198. package/dist/routes/create-admin-dashboard-route.d.ts.map +1 -0
  199. package/dist/routes/create-admin-dashboard-route.js +44 -0
  200. package/dist/routes/create-admin-layout-route.d.ts +14 -0
  201. package/dist/routes/create-admin-layout-route.d.ts.map +1 -0
  202. package/dist/routes/create-admin-layout-route.js +64 -0
  203. package/dist/routes/create-admin-permissions-route.d.ts +9 -0
  204. package/dist/routes/create-admin-permissions-route.d.ts.map +1 -0
  205. package/dist/routes/create-admin-permissions-route.js +39 -0
  206. package/dist/routes/create-admin-role-edit-route.d.ts +9 -0
  207. package/dist/routes/create-admin-role-edit-route.d.ts.map +1 -0
  208. package/dist/routes/create-admin-role-edit-route.js +79 -0
  209. package/dist/routes/create-admin-roles-list-route.d.ts +9 -0
  210. package/dist/routes/create-admin-roles-list-route.d.ts.map +1 -0
  211. package/dist/routes/create-admin-roles-list-route.js +39 -0
  212. package/dist/routes/create-admin-user-edit-route.d.ts +9 -0
  213. package/dist/routes/create-admin-user-edit-route.d.ts.map +1 -0
  214. package/dist/routes/create-admin-user-edit-route.js +86 -0
  215. package/dist/routes/create-admin-users-list-route.d.ts +9 -0
  216. package/dist/routes/create-admin-users-list-route.d.ts.map +1 -0
  217. package/dist/routes/create-admin-users-list-route.js +71 -0
  218. package/dist/routes/create-collection-api-route.d.ts +15 -0
  219. package/dist/routes/create-collection-api-route.d.ts.map +1 -0
  220. package/dist/routes/create-collection-api-route.js +71 -0
  221. package/dist/routes/create-collection-create-route.d.ts +9 -0
  222. package/dist/routes/create-collection-create-route.d.ts.map +1 -0
  223. package/dist/routes/create-collection-create-route.js +53 -0
  224. package/dist/routes/create-collection-edit-route.d.ts +15 -0
  225. package/dist/routes/create-collection-edit-route.d.ts.map +1 -0
  226. package/dist/routes/create-collection-edit-route.js +65 -0
  227. package/dist/routes/create-collection-history-route.d.ts +15 -0
  228. package/dist/routes/create-collection-history-route.d.ts.map +1 -0
  229. package/dist/routes/create-collection-history-route.js +94 -0
  230. package/dist/routes/create-collection-list-route.d.ts +9 -0
  231. package/dist/routes/create-collection-list-route.d.ts.map +1 -0
  232. package/dist/routes/create-collection-list-route.js +130 -0
  233. package/dist/routes/create-sign-in-route.d.ts +9 -0
  234. package/dist/routes/create-sign-in-route.d.ts.map +1 -0
  235. package/dist/routes/create-sign-in-route.js +21 -0
  236. package/dist/routes/index.d.ts +35 -0
  237. package/dist/routes/index.d.ts.map +1 -0
  238. package/dist/routes/index.js +14 -0
  239. package/dist/server-fns/admin-account/change-password.d.ts +30 -0
  240. package/dist/server-fns/admin-account/change-password.d.ts.map +1 -0
  241. package/dist/server-fns/admin-account/change-password.js +13 -0
  242. package/dist/server-fns/admin-account/get.d.ts +31 -0
  243. package/dist/server-fns/admin-account/get.d.ts.map +1 -0
  244. package/dist/server-fns/admin-account/get.js +13 -0
  245. package/dist/server-fns/admin-account/index.d.ts +22 -0
  246. package/dist/server-fns/admin-account/index.d.ts.map +1 -0
  247. package/dist/server-fns/admin-account/index.js +3 -0
  248. package/dist/server-fns/admin-account/update.d.ts +34 -0
  249. package/dist/server-fns/admin-account/update.d.ts.map +1 -0
  250. package/dist/server-fns/admin-account/update.js +13 -0
  251. package/dist/server-fns/admin-permissions/get-role-abilities.d.ts +16 -0
  252. package/dist/server-fns/admin-permissions/get-role-abilities.d.ts.map +1 -0
  253. package/dist/server-fns/admin-permissions/get-role-abilities.js +14 -0
  254. package/dist/server-fns/admin-permissions/index.d.ts +25 -0
  255. package/dist/server-fns/admin-permissions/index.d.ts.map +1 -0
  256. package/dist/server-fns/admin-permissions/index.js +4 -0
  257. package/dist/server-fns/admin-permissions/list-registered.d.ts +33 -0
  258. package/dist/server-fns/admin-permissions/list-registered.d.ts.map +1 -0
  259. package/dist/server-fns/admin-permissions/list-registered.js +14 -0
  260. package/dist/server-fns/admin-permissions/set-role-abilities.d.ts +16 -0
  261. package/dist/server-fns/admin-permissions/set-role-abilities.d.ts.map +1 -0
  262. package/dist/server-fns/admin-permissions/set-role-abilities.js +14 -0
  263. package/dist/server-fns/admin-permissions/who-has.d.ts +26 -0
  264. package/dist/server-fns/admin-permissions/who-has.d.ts.map +1 -0
  265. package/dist/server-fns/admin-permissions/who-has.js +14 -0
  266. package/dist/server-fns/admin-roles/create.d.ts +24 -0
  267. package/dist/server-fns/admin-roles/create.d.ts.map +1 -0
  268. package/dist/server-fns/admin-roles/create.js +13 -0
  269. package/dist/server-fns/admin-roles/delete.d.ts +17 -0
  270. package/dist/server-fns/admin-roles/delete.d.ts.map +1 -0
  271. package/dist/server-fns/admin-roles/delete.js +13 -0
  272. package/dist/server-fns/admin-roles/get.d.ts +22 -0
  273. package/dist/server-fns/admin-roles/get.d.ts.map +1 -0
  274. package/dist/server-fns/admin-roles/get.js +13 -0
  275. package/dist/server-fns/admin-roles/index.d.ts +23 -0
  276. package/dist/server-fns/admin-roles/index.d.ts.map +1 -0
  277. package/dist/server-fns/admin-roles/index.js +6 -0
  278. package/dist/server-fns/admin-roles/list.d.ts +26 -0
  279. package/dist/server-fns/admin-roles/list.d.ts.map +1 -0
  280. package/dist/server-fns/admin-roles/list.js +13 -0
  281. package/dist/server-fns/admin-roles/reorder.d.ts +15 -0
  282. package/dist/server-fns/admin-roles/reorder.d.ts.map +1 -0
  283. package/dist/server-fns/admin-roles/reorder.js +13 -0
  284. package/dist/server-fns/admin-roles/update.d.ts +27 -0
  285. package/dist/server-fns/admin-roles/update.d.ts.map +1 -0
  286. package/dist/server-fns/admin-roles/update.js +13 -0
  287. package/dist/server-fns/admin-users/create.d.ts +35 -0
  288. package/dist/server-fns/admin-users/create.d.ts.map +1 -0
  289. package/dist/server-fns/admin-users/create.js +13 -0
  290. package/dist/server-fns/admin-users/delete.d.ts +17 -0
  291. package/dist/server-fns/admin-users/delete.d.ts.map +1 -0
  292. package/dist/server-fns/admin-users/delete.js +13 -0
  293. package/dist/server-fns/admin-users/disable.d.ts +15 -0
  294. package/dist/server-fns/admin-users/disable.d.ts.map +1 -0
  295. package/dist/server-fns/admin-users/disable.js +13 -0
  296. package/dist/server-fns/admin-users/enable.d.ts +15 -0
  297. package/dist/server-fns/admin-users/enable.d.ts.map +1 -0
  298. package/dist/server-fns/admin-users/enable.js +13 -0
  299. package/dist/server-fns/admin-users/get-user-roles.d.ts +25 -0
  300. package/dist/server-fns/admin-users/get-user-roles.d.ts.map +1 -0
  301. package/dist/server-fns/admin-users/get-user-roles.js +13 -0
  302. package/dist/server-fns/admin-users/get.d.ts +29 -0
  303. package/dist/server-fns/admin-users/get.d.ts.map +1 -0
  304. package/dist/server-fns/admin-users/get.js +13 -0
  305. package/dist/server-fns/admin-users/index.d.ts +28 -0
  306. package/dist/server-fns/admin-users/index.d.ts.map +1 -0
  307. package/dist/server-fns/admin-users/index.js +10 -0
  308. package/dist/server-fns/admin-users/list.d.ts +51 -0
  309. package/dist/server-fns/admin-users/list.d.ts.map +1 -0
  310. package/dist/server-fns/admin-users/list.js +13 -0
  311. package/dist/server-fns/admin-users/set-password.d.ts +30 -0
  312. package/dist/server-fns/admin-users/set-password.d.ts.map +1 -0
  313. package/dist/server-fns/admin-users/set-password.js +13 -0
  314. package/dist/server-fns/admin-users/set-user-roles.d.ts +25 -0
  315. package/dist/server-fns/admin-users/set-user-roles.d.ts.map +1 -0
  316. package/dist/server-fns/admin-users/set-user-roles.js +13 -0
  317. package/dist/server-fns/admin-users/update.d.ts +37 -0
  318. package/dist/server-fns/admin-users/update.d.ts.map +1 -0
  319. package/dist/server-fns/admin-users/update.js +13 -0
  320. package/dist/server-fns/auth/current-user.d.ts +38 -0
  321. package/dist/server-fns/auth/current-user.d.ts.map +1 -0
  322. package/dist/server-fns/auth/current-user.js +52 -0
  323. package/dist/server-fns/auth/index.d.ts +11 -0
  324. package/dist/server-fns/auth/index.d.ts.map +1 -0
  325. package/dist/server-fns/auth/index.js +3 -0
  326. package/dist/server-fns/auth/sign-in.d.ts +19 -0
  327. package/dist/server-fns/auth/sign-in.d.ts.map +1 -0
  328. package/dist/server-fns/auth/sign-in.js +31 -0
  329. package/dist/server-fns/auth/sign-out.d.ts +11 -0
  330. package/dist/server-fns/auth/sign-out.d.ts.map +1 -0
  331. package/dist/server-fns/auth/sign-out.js +17 -0
  332. package/dist/server-fns/collections/create.d.ts +21 -0
  333. package/dist/server-fns/collections/create.d.ts.map +1 -0
  334. package/dist/server-fns/collections/create.js +40 -0
  335. package/dist/server-fns/collections/delete.d.ts +18 -0
  336. package/dist/server-fns/collections/delete.d.ts.map +1 -0
  337. package/dist/server-fns/collections/delete.js +44 -0
  338. package/dist/server-fns/collections/get.d.ts +26 -0
  339. package/dist/server-fns/collections/get.d.ts.map +1 -0
  340. package/dist/server-fns/collections/get.js +133 -0
  341. package/dist/server-fns/collections/history.d.ts +43 -0
  342. package/dist/server-fns/collections/history.d.ts.map +1 -0
  343. package/dist/server-fns/collections/history.js +29 -0
  344. package/dist/server-fns/collections/index.d.ts +16 -0
  345. package/dist/server-fns/collections/index.d.ts.map +1 -0
  346. package/dist/server-fns/collections/index.js +9 -0
  347. package/dist/server-fns/collections/list.d.ts +54 -0
  348. package/dist/server-fns/collections/list.d.ts.map +1 -0
  349. package/dist/server-fns/collections/list.js +65 -0
  350. package/dist/server-fns/collections/stats.d.ts +17 -0
  351. package/dist/server-fns/collections/stats.d.ts.map +1 -0
  352. package/dist/server-fns/collections/stats.js +28 -0
  353. package/dist/server-fns/collections/status.d.ts +31 -0
  354. package/dist/server-fns/collections/status.d.ts.map +1 -0
  355. package/dist/server-fns/collections/status.js +79 -0
  356. package/dist/server-fns/collections/update.d.ts +26 -0
  357. package/dist/server-fns/collections/update.d.ts.map +1 -0
  358. package/dist/server-fns/collections/update.js +41 -0
  359. package/dist/server-fns/collections/upload.d.ts +57 -0
  360. package/dist/server-fns/collections/upload.d.ts.map +1 -0
  361. package/dist/server-fns/collections/upload.js +132 -0
  362. package/dist/server-fns/collections/utils.d.ts +15 -0
  363. package/dist/server-fns/collections/utils.d.ts.map +1 -0
  364. package/dist/server-fns/collections/utils.js +4 -0
  365. package/dist/server-fns/preview/disable.d.ts +12 -0
  366. package/dist/server-fns/preview/disable.d.ts.map +1 -0
  367. package/dist/server-fns/preview/disable.js +12 -0
  368. package/dist/server-fns/preview/enable.d.ts +12 -0
  369. package/dist/server-fns/preview/enable.d.ts.map +1 -0
  370. package/dist/server-fns/preview/enable.js +14 -0
  371. package/dist/server-fns/preview/index.d.ts +11 -0
  372. package/dist/server-fns/preview/index.d.ts.map +1 -0
  373. package/dist/server-fns/preview/index.js +3 -0
  374. package/dist/server-fns/preview/state.d.ts +11 -0
  375. package/dist/server-fns/preview/state.d.ts.map +1 -0
  376. package/dist/server-fns/preview/state.js +8 -0
  377. package/package.json +164 -0
  378. package/src/admin-shell/admin-roles/container.module.css +132 -0
  379. package/src/admin-shell/admin-roles/container.tsx +209 -0
  380. package/src/admin-shell/admin-roles/delete.module.css +52 -0
  381. package/src/admin-shell/admin-roles/delete.tsx +117 -0
  382. package/src/admin-shell/admin-roles/list.module.css +158 -0
  383. package/src/admin-shell/admin-roles/list.tsx +308 -0
  384. package/src/admin-shell/admin-users/container.module.css +199 -0
  385. package/src/admin-shell/admin-users/container.tsx +344 -0
  386. package/src/admin-shell/admin-users/delete.module.css +52 -0
  387. package/src/admin-shell/admin-users/delete.tsx +129 -0
  388. package/src/admin-shell/admin-users/list.module.css +164 -0
  389. package/src/admin-shell/admin-users/list.tsx +314 -0
  390. package/src/admin-shell/chrome/admin-app-bar.module.css +72 -0
  391. package/src/admin-shell/chrome/admin-app-bar.tsx +74 -0
  392. package/src/admin-shell/chrome/admin-layout.module.css +16 -0
  393. package/src/admin-shell/chrome/branding.module.css +20 -0
  394. package/src/admin-shell/chrome/branding.tsx +23 -0
  395. package/src/admin-shell/chrome/breadcrumbs/@types.ts +5 -0
  396. package/src/admin-shell/chrome/breadcrumbs/breadcrumbs-client.tsx +30 -0
  397. package/src/admin-shell/chrome/breadcrumbs/breadcrumbs-provider.tsx +48 -0
  398. package/src/admin-shell/chrome/breadcrumbs/breadcrumbs.module.css +93 -0
  399. package/src/admin-shell/chrome/breadcrumbs/breadcrumbs.tsx +96 -0
  400. package/src/admin-shell/chrome/byline-logo.tsx +151 -0
  401. package/src/admin-shell/chrome/content.module.css +16 -0
  402. package/src/admin-shell/chrome/content.tsx +60 -0
  403. package/src/admin-shell/chrome/dashboard.module.css +245 -0
  404. package/src/admin-shell/chrome/dashboard.tsx +128 -0
  405. package/src/admin-shell/chrome/drawer-toggle.module.css +30 -0
  406. package/src/admin-shell/chrome/drawer-toggle.tsx +62 -0
  407. package/src/admin-shell/chrome/hamburger.module.css +16 -0
  408. package/src/admin-shell/chrome/hamburger.tsx +56 -0
  409. package/src/admin-shell/chrome/loose-router.ts +47 -0
  410. package/src/admin-shell/chrome/menu-drawer.module.css +196 -0
  411. package/src/admin-shell/chrome/menu-drawer.tsx +155 -0
  412. package/src/admin-shell/chrome/menu-provider.tsx +95 -0
  413. package/src/admin-shell/chrome/preview-toggle.tsx +107 -0
  414. package/src/admin-shell/chrome/route-error.module.css +114 -0
  415. package/src/admin-shell/chrome/route-error.tsx +125 -0
  416. package/src/admin-shell/chrome/router-pager.tsx +179 -0
  417. package/src/admin-shell/chrome/sign-in-page.module.css +32 -0
  418. package/src/admin-shell/chrome/sign-in-page.tsx +35 -0
  419. package/src/admin-shell/chrome/sort-icons.tsx +127 -0
  420. package/src/admin-shell/chrome/th-sortable.module.css +51 -0
  421. package/src/admin-shell/chrome/th-sortable.tsx +114 -0
  422. package/src/admin-shell/chrome/use-media-query.ts +28 -0
  423. package/src/admin-shell/chrome/utils.ts +20 -0
  424. package/src/admin-shell/collections/api.module.css +62 -0
  425. package/src/admin-shell/collections/api.tsx +70 -0
  426. package/src/admin-shell/collections/create.tsx +108 -0
  427. package/src/admin-shell/collections/edit.tsx +319 -0
  428. package/src/admin-shell/collections/history.module.css +156 -0
  429. package/src/admin-shell/collections/history.tsx +352 -0
  430. package/src/admin-shell/collections/list.module.css +124 -0
  431. package/src/admin-shell/collections/list.tsx +313 -0
  432. package/src/admin-shell/collections/preview-link.tsx +138 -0
  433. package/src/admin-shell/collections/tanstack-navigation-guard.ts +43 -0
  434. package/src/admin-shell/collections/view-menu.module.css +60 -0
  435. package/src/admin-shell/collections/view-menu.tsx +238 -0
  436. package/src/auth/auth-context.test.node.ts +200 -0
  437. package/src/auth/auth-context.ts +119 -0
  438. package/src/auth/auth-cookies.ts +113 -0
  439. package/src/auth/preview-cookies.ts +73 -0
  440. package/src/declarations.d.ts +4 -0
  441. package/src/index.ts +44 -0
  442. package/src/integrations/abilities.tsx +90 -0
  443. package/src/integrations/api-utils.ts +66 -0
  444. package/src/integrations/byline-admin-services.ts +86 -0
  445. package/src/integrations/byline-client.ts +40 -0
  446. package/src/integrations/byline-core.ts +32 -0
  447. package/src/integrations/byline-field-services.ts +35 -0
  448. package/src/integrations/byline-public-client.ts +53 -0
  449. package/src/integrations/byline-viewer-client.ts +99 -0
  450. package/src/integrations/start-errors.ts +86 -0
  451. package/src/routes/create-admin-account-route.tsx +65 -0
  452. package/src/routes/create-admin-dashboard-route.tsx +52 -0
  453. package/src/routes/create-admin-layout-route.tsx +89 -0
  454. package/src/routes/create-admin-permissions-route.tsx +43 -0
  455. package/src/routes/create-admin-role-edit-route.tsx +88 -0
  456. package/src/routes/create-admin-roles-list-route.tsx +39 -0
  457. package/src/routes/create-admin-user-edit-route.tsx +105 -0
  458. package/src/routes/create-admin-users-list-route.tsx +84 -0
  459. package/src/routes/create-collection-api-route.tsx +111 -0
  460. package/src/routes/create-collection-create-route.tsx +66 -0
  461. package/src/routes/create-collection-edit-route.tsx +102 -0
  462. package/src/routes/create-collection-history-route.tsx +130 -0
  463. package/src/routes/create-collection-list-route.tsx +175 -0
  464. package/src/routes/create-sign-in-route.tsx +39 -0
  465. package/src/routes/index.ts +36 -0
  466. package/src/server-fns/admin-account/change-password.ts +27 -0
  467. package/src/server-fns/admin-account/get.ts +27 -0
  468. package/src/server-fns/admin-account/index.ts +28 -0
  469. package/src/server-fns/admin-account/update.ts +31 -0
  470. package/src/server-fns/admin-permissions/get-role-abilities.ts +27 -0
  471. package/src/server-fns/admin-permissions/index.ts +36 -0
  472. package/src/server-fns/admin-permissions/list-registered.ts +36 -0
  473. package/src/server-fns/admin-permissions/set-role-abilities.ts +32 -0
  474. package/src/server-fns/admin-permissions/who-has.ts +24 -0
  475. package/src/server-fns/admin-roles/create.ts +28 -0
  476. package/src/server-fns/admin-roles/delete.ts +25 -0
  477. package/src/server-fns/admin-roles/get.ts +21 -0
  478. package/src/server-fns/admin-roles/index.ts +25 -0
  479. package/src/server-fns/admin-roles/list.ts +27 -0
  480. package/src/server-fns/admin-roles/reorder.ts +21 -0
  481. package/src/server-fns/admin-roles/update.ts +31 -0
  482. package/src/server-fns/admin-users/create.ts +32 -0
  483. package/src/server-fns/admin-users/delete.ts +21 -0
  484. package/src/server-fns/admin-users/disable.ts +24 -0
  485. package/src/server-fns/admin-users/enable.ts +24 -0
  486. package/src/server-fns/admin-users/get-user-roles.ts +21 -0
  487. package/src/server-fns/admin-users/get.ts +21 -0
  488. package/src/server-fns/admin-users/index.ts +35 -0
  489. package/src/server-fns/admin-users/list.ts +40 -0
  490. package/src/server-fns/admin-users/set-password.ts +27 -0
  491. package/src/server-fns/admin-users/set-user-roles.ts +26 -0
  492. package/src/server-fns/admin-users/update.ts +34 -0
  493. package/src/server-fns/auth/current-user.ts +117 -0
  494. package/src/server-fns/auth/index.ts +15 -0
  495. package/src/server-fns/auth/sign-in.ts +71 -0
  496. package/src/server-fns/auth/sign-out.ts +42 -0
  497. package/src/server-fns/collections/create.ts +58 -0
  498. package/src/server-fns/collections/delete.ts +62 -0
  499. package/src/server-fns/collections/get.ts +233 -0
  500. package/src/server-fns/collections/history.ts +73 -0
  501. package/src/server-fns/collections/index.ts +16 -0
  502. package/src/server-fns/collections/list.ts +121 -0
  503. package/src/server-fns/collections/stats.ts +52 -0
  504. package/src/server-fns/collections/status.ts +102 -0
  505. package/src/server-fns/collections/update.ts +67 -0
  506. package/src/server-fns/collections/upload.ts +274 -0
  507. package/src/server-fns/collections/utils.ts +17 -0
  508. package/src/server-fns/preview/disable.ts +24 -0
  509. package/src/server-fns/preview/enable.ts +27 -0
  510. package/src/server-fns/preview/index.ts +11 -0
  511. package/src/server-fns/preview/state.ts +30 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createFileRoute, notFound } from '@tanstack/react-router'
10
+
11
+ import type { CollectionDefinition } from '@byline/core'
12
+ import { getCollectionDefinition } from '@byline/core'
13
+ import { z } from 'zod'
14
+
15
+ import { BreadcrumbsClient } from '../admin-shell/chrome/breadcrumbs/breadcrumbs-client.js'
16
+ import { ApiView } from '../admin-shell/collections/api.js'
17
+ import { getCollectionDocument } from '../server-fns/collections/index.js'
18
+ import type { ContentLocaleOption } from '../admin-shell/collections/view-menu.js'
19
+
20
+ const searchSchema = z.object({
21
+ locale: z.string().optional(),
22
+ /**
23
+ * Populate depth for relation fields. Capped at 3 to avoid runaway
24
+ * fan-out in the admin preview. Programmatic callers via
25
+ * `@byline/client` can go deeper.
26
+ */
27
+ depth: z.coerce.number().int().min(0).max(3).optional(),
28
+ })
29
+
30
+ interface CollectionApiOpts {
31
+ contentLocales: ReadonlyArray<ContentLocaleOption>
32
+ defaultContentLocale: string
33
+ }
34
+
35
+ export function createCollectionApiRoute(path: string, opts: CollectionApiOpts) {
36
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
37
+ const Route: any = createFileRoute(path as never)({
38
+ validateSearch: searchSchema,
39
+ loaderDeps: ({ search }: { search: z.infer<typeof searchSchema> }) => ({
40
+ locale: search.locale,
41
+ depth: search.depth,
42
+ }),
43
+ loader: async ({
44
+ params,
45
+ deps,
46
+ }: {
47
+ params: { collection: string; id: string }
48
+ deps: { locale?: string; depth?: number }
49
+ }) => {
50
+ const collectionDef = getCollectionDefinition(params.collection)
51
+ if (!collectionDef) {
52
+ throw notFound()
53
+ }
54
+
55
+ // 'all' is now always explicit in the URL when the user picks it.
56
+ // No locale param means the user hasn't made a selection yet — default
57
+ // to the content default locale (same as History and Edit behaviours).
58
+ const resolvedLocale = deps.locale ?? opts.defaultContentLocale
59
+ const data = await getCollectionDocument(
60
+ params.collection,
61
+ params.id,
62
+ resolvedLocale,
63
+ deps.depth
64
+ )
65
+
66
+ if (!data) {
67
+ throw notFound()
68
+ }
69
+
70
+ return data
71
+ },
72
+ staleTime: 0,
73
+ gcTime: 0,
74
+ shouldReload: true,
75
+ component: function CollectionApiComponent() {
76
+ const data = Route.useLoaderData()
77
+ const { collection, id } = Route.useParams() as { collection: string; id: string }
78
+ const { locale, depth } = Route.useSearch() as z.infer<typeof searchSchema>
79
+ const collectionDef = getCollectionDefinition(collection) as CollectionDefinition
80
+
81
+ return (
82
+ <>
83
+ <BreadcrumbsClient
84
+ breadcrumbs={[
85
+ { label: 'Dashboard', href: `/admin` },
86
+ { label: collectionDef.labels.plural, href: `/admin/collections/${collection}` },
87
+ {
88
+ label: 'Edit',
89
+ href: `/admin/collections/${collection}/${id}`,
90
+ },
91
+ {
92
+ label: 'API',
93
+ href: `/admin/collections/${collection}/${id}/api`,
94
+ },
95
+ ]}
96
+ />
97
+ <ApiView
98
+ collectionDefinition={collectionDef}
99
+ initialData={data}
100
+ locale={locale}
101
+ depth={depth}
102
+ contentLocales={opts.contentLocales}
103
+ defaultContentLocale={opts.defaultContentLocale}
104
+ />
105
+ </>
106
+ )
107
+ },
108
+ })
109
+
110
+ return Route
111
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createFileRoute, notFound } from '@tanstack/react-router'
10
+
11
+ import type { CollectionDefinition } from '@byline/core'
12
+ import {
13
+ buildInitialDataFromFields,
14
+ getCollectionAdminConfig,
15
+ getCollectionDefinition,
16
+ } from '@byline/core'
17
+
18
+ import { BreadcrumbsClient } from '../admin-shell/chrome/breadcrumbs/breadcrumbs-client.js'
19
+ import { CreateView } from '../admin-shell/collections/create.js'
20
+
21
+ export function createCollectionCreateRoute(path: string) {
22
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
23
+ const Route: any = createFileRoute(path as never)({
24
+ loader: async ({
25
+ params,
26
+ }: {
27
+ params: { collection: string }
28
+ // biome-ignore lint/suspicious/noExplicitAny: collection-specific shape
29
+ }): Promise<{ initialData: any }> => {
30
+ const collectionDef = getCollectionDefinition(params.collection)
31
+ if (!collectionDef) {
32
+ throw notFound()
33
+ }
34
+ const initialData = await buildInitialDataFromFields(collectionDef.fields, {
35
+ data: {},
36
+ now: () => new Date(),
37
+ })
38
+ return { initialData }
39
+ },
40
+ component: function CollectionCreateComponent() {
41
+ const { collection } = Route.useParams() as { collection: string }
42
+ // biome-ignore lint/suspicious/noExplicitAny: collection-specific shape
43
+ const { initialData } = Route.useLoaderData() as { initialData: any }
44
+ const collectionDef = getCollectionDefinition(collection) as CollectionDefinition
45
+ const adminConfig = getCollectionAdminConfig(collection)
46
+ return (
47
+ <>
48
+ <BreadcrumbsClient
49
+ breadcrumbs={[
50
+ { label: 'Dashboard', href: '/admin' },
51
+ { label: collectionDef.labels.plural, href: `/admin/collections/${collection}` },
52
+ { label: 'Create', href: `/admin/collections/${collection}/create` },
53
+ ]}
54
+ />
55
+ <CreateView
56
+ collectionDefinition={collectionDef}
57
+ adminConfig={adminConfig ?? undefined}
58
+ initialData={initialData}
59
+ />
60
+ </>
61
+ )
62
+ },
63
+ })
64
+
65
+ return Route
66
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createFileRoute, notFound } from '@tanstack/react-router'
10
+
11
+ import type { CollectionDefinition } from '@byline/core'
12
+ import { getCollectionAdminConfig, getCollectionDefinition } from '@byline/core'
13
+ import { z } from 'zod'
14
+
15
+ import { BreadcrumbsClient } from '../admin-shell/chrome/breadcrumbs/breadcrumbs-client.js'
16
+ import { EditView } from '../admin-shell/collections/edit.js'
17
+ import { getCollectionDocument } from '../server-fns/collections/index.js'
18
+ import type { ContentLocaleOption } from '../admin-shell/collections/view-menu.js'
19
+
20
+ const searchSchema = z.object({
21
+ locale: z.string().optional(),
22
+ })
23
+
24
+ interface CollectionEditOpts {
25
+ contentLocales: ReadonlyArray<ContentLocaleOption>
26
+ defaultContentLocale: string
27
+ }
28
+
29
+ export function createCollectionEditRoute(path: string, opts: CollectionEditOpts) {
30
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
31
+ const Route: any = createFileRoute(path as never)({
32
+ validateSearch: searchSchema,
33
+ loaderDeps: ({ search }: { search: z.infer<typeof searchSchema> }) => ({
34
+ locale: search.locale,
35
+ }),
36
+ loader: async ({
37
+ params,
38
+ deps,
39
+ }: {
40
+ params: { collection: string; id: string }
41
+ deps: { locale?: string }
42
+ }) => {
43
+ const collectionDef = getCollectionDefinition(params.collection)
44
+ if (!collectionDef) {
45
+ throw notFound()
46
+ }
47
+
48
+ // Auto-populate direct relation fields (depth 1) so the edit form's
49
+ // relation-summary tiles render with target data (category name, media
50
+ // thumbnail, etc.) on first paint. Projection is derived from each
51
+ // target's `CollectionAdminConfig.picker` columns.
52
+ const data = await getCollectionDocument(
53
+ params.collection,
54
+ params.id,
55
+ deps.locale,
56
+ undefined,
57
+ true
58
+ )
59
+
60
+ if (!data) {
61
+ throw notFound()
62
+ }
63
+
64
+ return data
65
+ },
66
+ staleTime: 0,
67
+ gcTime: 0,
68
+ shouldReload: true,
69
+ component: function CollectionEditComponent() {
70
+ const data = Route.useLoaderData()
71
+ const { collection, id } = Route.useParams() as { collection: string; id: string }
72
+ const { locale } = Route.useSearch() as z.infer<typeof searchSchema>
73
+ const collectionDef = getCollectionDefinition(collection) as CollectionDefinition
74
+ const adminConfig = getCollectionAdminConfig(collection)
75
+
76
+ return (
77
+ <>
78
+ <BreadcrumbsClient
79
+ breadcrumbs={[
80
+ { label: 'Dashboard', href: `/admin` },
81
+ { label: collectionDef.labels.plural, href: `/admin/collections/${collection}` },
82
+ {
83
+ label: 'Edit',
84
+ href: `/admin/collections/${collection}/${id}`,
85
+ },
86
+ ]}
87
+ />
88
+ <EditView
89
+ collectionDefinition={collectionDef}
90
+ adminConfig={adminConfig ?? undefined}
91
+ initialData={data}
92
+ locale={locale}
93
+ contentLocales={opts.contentLocales}
94
+ defaultContentLocale={opts.defaultContentLocale}
95
+ />
96
+ </>
97
+ )
98
+ },
99
+ })
100
+
101
+ return Route
102
+ }
@@ -0,0 +1,130 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createFileRoute, notFound } from '@tanstack/react-router'
10
+
11
+ import type { CollectionDefinition } from '@byline/core'
12
+ import {
13
+ getCollectionAdminConfig,
14
+ getCollectionDefinition,
15
+ getWorkflowStatuses,
16
+ } from '@byline/core'
17
+ import { z } from 'zod'
18
+
19
+ import { BreadcrumbsClient } from '../admin-shell/chrome/breadcrumbs/breadcrumbs-client.js'
20
+ import { HistoryView } from '../admin-shell/collections/history.js'
21
+ import {
22
+ getCollectionDocument,
23
+ getCollectionDocumentHistory,
24
+ } from '../server-fns/collections/index.js'
25
+ import type { ContentLocaleOption } from '../admin-shell/collections/view-menu.js'
26
+
27
+ const searchSchema = z.object({
28
+ page: z.coerce.number().min(1).optional(),
29
+ page_size: z.coerce.number().max(100).optional(),
30
+ order: z.string().optional(),
31
+ desc: z.coerce.boolean().optional(),
32
+ locale: z.string().optional(),
33
+ })
34
+
35
+ interface CollectionHistoryOpts {
36
+ contentLocales: ReadonlyArray<ContentLocaleOption>
37
+ defaultContentLocale: string
38
+ }
39
+
40
+ export function createCollectionHistoryRoute(path: string, opts: CollectionHistoryOpts) {
41
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
42
+ const Route: any = createFileRoute(path as never)({
43
+ validateSearch: searchSchema,
44
+ loaderDeps: ({ search }: { search: z.infer<typeof searchSchema> }) => ({
45
+ page: search.page,
46
+ page_size: search.page_size,
47
+ order: search.order,
48
+ desc: search.desc,
49
+ locale: search.locale,
50
+ }),
51
+ loader: async ({
52
+ params,
53
+ deps,
54
+ }: {
55
+ params: { collection: string; id: string }
56
+ deps: {
57
+ page?: number
58
+ page_size?: number
59
+ order?: string
60
+ desc?: boolean
61
+ locale?: string
62
+ }
63
+ }) => {
64
+ const collectionDef = getCollectionDefinition(params.collection)
65
+ if (!collectionDef) {
66
+ throw notFound()
67
+ }
68
+
69
+ const [history, currentDocument] = await Promise.all([
70
+ getCollectionDocumentHistory({
71
+ data: {
72
+ collection: params.collection,
73
+ id: params.id,
74
+ params: {
75
+ page: deps.page,
76
+ page_size: deps.page_size,
77
+ order: deps.order,
78
+ desc: deps.desc,
79
+ locale: deps.locale,
80
+ },
81
+ },
82
+ }),
83
+ // Fetch the current document with the same locale (or 'all') so diffs
84
+ // compare the same shape as what the user is viewing.
85
+ getCollectionDocument(params.collection, params.id, deps.locale ?? 'all'),
86
+ ])
87
+
88
+ return { history, currentDocument }
89
+ },
90
+ staleTime: 0,
91
+ gcTime: 0,
92
+ shouldReload: true,
93
+ component: function CollectionHistoryComponent() {
94
+ const { history, currentDocument } = Route.useLoaderData()
95
+ const { collection } = Route.useParams() as { collection: string; id: string }
96
+ const collectionDef = getCollectionDefinition(collection) as CollectionDefinition
97
+ const adminConfig = getCollectionAdminConfig(collection)
98
+
99
+ return (
100
+ <>
101
+ <BreadcrumbsClient
102
+ breadcrumbs={[
103
+ { label: 'Dashboard', href: `/admin` },
104
+ { label: collectionDef.labels.plural, href: `/admin/collections/${collection}` },
105
+ {
106
+ label: 'Edit',
107
+ href: `/admin/collections/${collection}/${Route.useParams().id}`,
108
+ },
109
+ {
110
+ label: 'History',
111
+ href: `/admin/collections/${collection}/${Route.useParams().id}/history`,
112
+ },
113
+ ]}
114
+ />
115
+ <HistoryView
116
+ collectionDefinition={collectionDef}
117
+ workflowStatuses={getWorkflowStatuses(collectionDef)}
118
+ adminConfig={adminConfig ?? undefined}
119
+ data={history}
120
+ currentDocument={currentDocument as Record<string, unknown> | null}
121
+ contentLocales={opts.contentLocales}
122
+ defaultContentLocale={opts.defaultContentLocale}
123
+ />
124
+ </>
125
+ )
126
+ },
127
+ })
128
+
129
+ return Route
130
+ }
@@ -0,0 +1,175 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { useEffect, useRef } from 'react'
10
+ import { createFileRoute, notFound } from '@tanstack/react-router'
11
+
12
+ import type { CollectionDefinition } from '@byline/core'
13
+ import {
14
+ getCollectionAdminConfig,
15
+ getCollectionDefinition,
16
+ getWorkflowStatuses,
17
+ } from '@byline/core'
18
+ import { useToastManager } from '@infonomic/uikit/react'
19
+ import { z } from 'zod'
20
+
21
+ import { BreadcrumbsClient } from '../admin-shell/chrome/breadcrumbs/breadcrumbs-client.js'
22
+ import { useNavigate } from '../admin-shell/chrome/loose-router.js'
23
+ import { ListView } from '../admin-shell/collections/list.js'
24
+ import { getCollectionDocuments } from '../server-fns/collections/index.js'
25
+
26
+ const searchSchema = z.object({
27
+ page: z.coerce.number().min(1).optional(),
28
+ page_size: z.coerce.number().max(100).optional(),
29
+ order: z.string().optional(),
30
+ desc: z.coerce.boolean().optional(),
31
+ query: z.string().optional(),
32
+ locale: z.string().optional(),
33
+ status: z.string().optional(),
34
+ action: z.enum(['created']).optional(),
35
+ })
36
+
37
+ export function createCollectionListRoute(path: string) {
38
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
39
+ const Route: any = createFileRoute(path as never)({
40
+ validateSearch: searchSchema,
41
+ loaderDeps: ({ search }: { search: z.infer<typeof searchSchema> }) => ({
42
+ page: search.page,
43
+ page_size: search.page_size,
44
+ order: search.order,
45
+ desc: search.desc,
46
+ query: search.query,
47
+ locale: search.locale,
48
+ status: search.status,
49
+ }),
50
+ loader: async ({
51
+ params,
52
+ deps,
53
+ }: {
54
+ params: { collection: string }
55
+ deps: {
56
+ page?: number
57
+ page_size?: number
58
+ order?: string
59
+ desc?: boolean
60
+ query?: string
61
+ locale?: string
62
+ status?: string
63
+ }
64
+ }) => {
65
+ const collectionDef = getCollectionDefinition(params.collection)
66
+ if (!collectionDef) {
67
+ throw notFound()
68
+ }
69
+
70
+ // Derive the field names the list view needs from the admin column config.
71
+ // This lets findDocuments query only the relevant store tables.
72
+ const adminConfig = getCollectionAdminConfig(params.collection)
73
+ const fields = adminConfig?.columns
74
+ ?.map((c) => String(c.fieldName))
75
+ .filter((name) => collectionDef.fields.some((f) => f.name === name))
76
+
77
+ const data = await getCollectionDocuments({
78
+ data: {
79
+ collection: params.collection,
80
+ params: {
81
+ page: deps.page,
82
+ page_size: deps.page_size,
83
+ order: deps.order,
84
+ desc: deps.desc,
85
+ query: deps.query,
86
+ locale: deps.locale,
87
+ status: deps.status,
88
+ fields,
89
+ },
90
+ },
91
+ })
92
+
93
+ return data
94
+ },
95
+ component: function CollectionListComponent() {
96
+ const toastManager = useToastManager()
97
+ const data = Route.useLoaderData()
98
+ const { collection } = Route.useParams() as { collection: string }
99
+ const search = Route.useSearch() as z.infer<typeof searchSchema>
100
+ const navigate = useNavigate()
101
+ const collectionDef = getCollectionDefinition(collection) as CollectionDefinition
102
+ const adminConfig = getCollectionAdminConfig(collection)
103
+ const columns = adminConfig?.columns || []
104
+ const workflowStatuses = getWorkflowStatuses(collectionDef)
105
+
106
+ // Ref-guarded so the post-create toast fires exactly once per arrival with
107
+ // ?action=created. Base UI's useToastManager returns a new memoized object
108
+ // whenever its internal toasts array changes — depending on `toastManager`
109
+ // (the object) in the deps array would create a loop: add() updates toasts
110
+ // → new toastManager identity → effect re-fires → add again. We depend on
111
+ // `toastManager.add` (the underlying store method, which is stable), and
112
+ // the ref is belt-and-suspenders protection against any re-fire that
113
+ // observes `search.action === 'created'` before navigate clears it.
114
+ const createdToastFiredRef = useRef(false)
115
+ useEffect(() => {
116
+ if (search.action !== 'created') {
117
+ createdToastFiredRef.current = false
118
+ return
119
+ }
120
+ if (createdToastFiredRef.current) return
121
+ createdToastFiredRef.current = true
122
+
123
+ toastManager.add({
124
+ title: `${collectionDef.labels.singular} Created`,
125
+ description: `Successfully created ${collectionDef.labels.singular.toLowerCase()}`,
126
+ data: {
127
+ intent: 'success',
128
+ iconType: 'success',
129
+ icon: true,
130
+ close: true,
131
+ },
132
+ })
133
+ navigate({
134
+ to: '.',
135
+ search: (prev: Record<string, unknown>) => ({ ...prev, action: undefined }),
136
+ replace: true,
137
+ })
138
+ }, [
139
+ search.action,
140
+ navigate,
141
+ toastManager.add,
142
+ collectionDef.labels.singular.toLowerCase,
143
+ collectionDef.labels.singular,
144
+ ])
145
+
146
+ const CustomListView = adminConfig?.listView
147
+
148
+ return (
149
+ <>
150
+ <BreadcrumbsClient
151
+ breadcrumbs={[
152
+ { label: 'Dashboard', href: `/admin` },
153
+ {
154
+ label: data.included.collection.labels.plural,
155
+ href: `/admin/collections/${collection}`,
156
+ },
157
+ ]}
158
+ />
159
+ {CustomListView ? (
160
+ <CustomListView data={data} workflowStatuses={workflowStatuses} />
161
+ ) : (
162
+ <ListView
163
+ data={data}
164
+ columns={columns}
165
+ workflowStatuses={workflowStatuses}
166
+ useAsTitle={collectionDef.useAsTitle}
167
+ />
168
+ )}
169
+ </>
170
+ )
171
+ },
172
+ })
173
+
174
+ return Route
175
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ /**
10
+ * Sign-in page route factory.
11
+ *
12
+ * Lives outside the `/admin` subtree so the authenticated-admin layout
13
+ * (and its `beforeLoad` guard) does not apply. Preserves a `callbackUrl`
14
+ * query param so sign-ins triggered by the admin guard redirect back to
15
+ * the originally-requested path.
16
+ */
17
+
18
+ import { createFileRoute } from '@tanstack/react-router'
19
+
20
+ import { SignInPage } from '../admin-shell/chrome/sign-in-page.js'
21
+
22
+ interface SignInSearch {
23
+ callbackUrl?: string
24
+ }
25
+
26
+ export function createSignInRoute(path: string) {
27
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic path bypasses route-tree typing
28
+ const Route: any = createFileRoute(path as never)({
29
+ validateSearch: (search: Record<string, unknown>): SignInSearch => {
30
+ const callbackUrl = typeof search.callbackUrl === 'string' ? search.callbackUrl : undefined
31
+ return { callbackUrl }
32
+ },
33
+ component: function SignInRouteComponent() {
34
+ const { callbackUrl } = Route.useSearch() as SignInSearch
35
+ return <SignInPage callbackUrl={callbackUrl} />
36
+ },
37
+ })
38
+ return Route
39
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ /**
10
+ * Route factories for the Byline admin UI on TanStack Start.
11
+ *
12
+ * Each factory takes a path string (the host's filesystem-backed route
13
+ * path) and returns the `Route` object produced by
14
+ * `createFileRoute(path)({...})`. The host's route file collapses to:
15
+ *
16
+ * import { createCollectionListRoute } from '@byline/host-tanstack-start/routes'
17
+ * export const Route = createCollectionListRoute('/(byline)/admin/collections/$collection/')
18
+ *
19
+ * Routes that need host-specific data (i18n bridge component, content
20
+ * locales) take a second `opts` argument.
21
+ */
22
+
23
+ export { createAdminAccountRoute } from './create-admin-account-route.js'
24
+ export { createAdminDashboardRoute } from './create-admin-dashboard-route.js'
25
+ export { createAdminLayoutRoute } from './create-admin-layout-route.js'
26
+ export { createAdminPermissionsRoute } from './create-admin-permissions-route.js'
27
+ export { createAdminRoleEditRoute } from './create-admin-role-edit-route.js'
28
+ export { createAdminRolesListRoute } from './create-admin-roles-list-route.js'
29
+ export { createAdminUserEditRoute } from './create-admin-user-edit-route.js'
30
+ export { createAdminUsersListRoute } from './create-admin-users-list-route.js'
31
+ export { createCollectionApiRoute } from './create-collection-api-route.js'
32
+ export { createCollectionCreateRoute } from './create-collection-create-route.js'
33
+ export { createCollectionEditRoute } from './create-collection-edit-route.js'
34
+ export { createCollectionHistoryRoute } from './create-collection-history-route.js'
35
+ export { createCollectionListRoute } from './create-collection-list-route.js'
36
+ export { createSignInRoute } from './create-sign-in-route.js'
@@ -0,0 +1,27 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createServerFn } from '@tanstack/react-start'
10
+
11
+ import { type AccountResponse, changeAccountPasswordCommand } from '@byline/admin/admin-account'
12
+
13
+ import { getAdminRequestContext } from '../../auth/auth-context.js'
14
+ import { bylineCore } from '../../integrations/byline-core.js'
15
+
16
+ export interface ChangeAccountPasswordInput {
17
+ vid: number
18
+ currentPassword: string
19
+ newPassword: string
20
+ }
21
+
22
+ export const changeAccountPassword = createServerFn({ method: 'POST' })
23
+ .inputValidator((input: ChangeAccountPasswordInput) => input)
24
+ .handler(async ({ data }): Promise<AccountResponse> => {
25
+ const context = await getAdminRequestContext()
26
+ return changeAccountPasswordCommand(context, data, { store: bylineCore().adminStore! })
27
+ })