create-mithaq 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/LICENSES/openstatus-time-picker.txt +21 -0
  2. package/index.js +457 -63
  3. package/package.json +1 -1
  4. package/template/apps/{asas-platform → asas-backoffice}/package.json +5 -3
  5. package/template/apps/{asas-platform → asas-backoffice}/src/api.ts +1 -1
  6. package/template/apps/{asas-platform → asas-backoffice}/src/auth-frame.tsx +12 -12
  7. package/template/apps/asas-backoffice/src/components.ts +35 -0
  8. package/template/apps/asas-backoffice/src/first-user.ts +14 -0
  9. package/template/apps/{asas-platform → asas-backoffice}/src/links.ts +1 -1
  10. package/template/apps/{asas-platform → asas-backoffice}/src/locale-switch.tsx +7 -5
  11. package/template/apps/asas-backoffice/src/no-organization.tsx +5 -0
  12. package/template/apps/asas-backoffice/src/redirect.ts +1 -0
  13. package/template/apps/{asas-platform → asas-backoffice}/src/request-headers.ts +1 -1
  14. package/template/apps/asas-backoffice/src/routeTree.gen.ts +206 -0
  15. package/template/apps/asas-backoffice/src/router.tsx +18 -0
  16. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice/files.ts +10 -0
  17. package/template/apps/{asas-platform/src/routes/(screens)/platform → asas-backoffice/src/routes/(screens)/backoffice}/screen.json +426 -64
  18. package/template/apps/{asas-platform/src/routes/(screens)/platform → asas-backoffice/src/routes/(screens)/backoffice}/types.ts +18 -0
  19. package/template/apps/{asas-platform/src/routes/(screens)/platform.$.tsx → asas-backoffice/src/routes/(screens)/backoffice.$.tsx} +4 -4
  20. package/template/apps/{asas-platform/src/routes/(screens)/platform.index.tsx → asas-backoffice/src/routes/(screens)/backoffice.index.tsx} +3 -3
  21. package/template/apps/{asas-platform/src/routes/(screens)/platform.tsx → asas-backoffice/src/routes/(screens)/backoffice.tsx} +3 -3
  22. package/template/apps/{asas-platform → asas-backoffice}/src/routes/__root.tsx +2 -2
  23. package/template/apps/asas-backoffice/src/routes/api/$.ts +34 -0
  24. package/template/apps/asas-backoffice/src/routes/auth.create-first-user.tsx +113 -0
  25. package/template/apps/{asas-platform → asas-backoffice}/src/routes/auth.sign-in.tsx +9 -4
  26. package/template/apps/{asas-platform → asas-backoffice}/src/routes/unauthorized.tsx +24 -12
  27. package/template/apps/{asas-platform → asas-backoffice}/src/screen-form.tsx +5 -3
  28. package/template/apps/{asas-platform → asas-backoffice}/src/screen-list.tsx +6 -5
  29. package/template/apps/{asas-platform → asas-backoffice}/src/screen-names.ts +1 -1
  30. package/template/apps/{asas-platform → asas-backoffice}/src/screens.tsx +46 -26
  31. package/template/apps/asas-backoffice/src/server.ts +30 -0
  32. package/template/apps/{asas-platform → asas-backoffice}/src/slide.ts +1 -1
  33. package/template/apps/{asas-platform → asas-backoffice}/src/start.ts +1 -1
  34. package/template/apps/{asas-platform → asas-backoffice}/src/styles.css +9 -7
  35. package/template/apps/{asas-platform → asas-backoffice}/tsconfig.json +2 -2
  36. package/template/apps/{asas-platform → asas-backoffice}/vite.config.ts +7 -1
  37. package/template/apps/asas-tanstack/package.json +4 -2
  38. package/template/apps/asas-tanstack/src/api.ts +1 -1
  39. package/template/apps/asas-tanstack/src/auth-frame.tsx +12 -12
  40. package/template/apps/asas-tanstack/src/choose-password.tsx +150 -0
  41. package/template/apps/asas-tanstack/src/components.ts +35 -0
  42. package/template/apps/asas-tanstack/src/copy.ts +416 -79
  43. package/template/apps/asas-tanstack/src/first-run.ts +16 -0
  44. package/template/apps/asas-tanstack/src/links.ts +1 -1
  45. package/template/apps/asas-tanstack/src/locale-switch.tsx +7 -5
  46. package/template/apps/asas-tanstack/src/no-organization.tsx +108 -0
  47. package/template/apps/asas-tanstack/src/redirect.ts +20 -1
  48. package/template/apps/asas-tanstack/src/request-headers.ts +1 -1
  49. package/template/apps/asas-tanstack/src/routeTree.gen.ts +42 -0
  50. package/template/apps/asas-tanstack/src/router.tsx +12 -1
  51. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/files.ts +9 -2
  52. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/screen.json +475 -116
  53. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/types.ts +4 -2
  54. package/template/apps/asas-tanstack/src/routes/(screens)/portal/files.ts +7 -2
  55. package/template/apps/asas-tanstack/src/routes/(screens)/portal/screen.json +83 -319
  56. package/template/apps/asas-tanstack/src/routes/(screens)/portal/types.ts +3 -1
  57. package/template/apps/asas-tanstack/src/routes/__root.tsx +1 -1
  58. package/template/apps/asas-tanstack/src/routes/auth.accept-invitation.tsx +14 -7
  59. package/template/apps/asas-tanstack/src/routes/auth.first-run.tsx +114 -0
  60. package/template/apps/asas-tanstack/src/routes/auth.forgot-password.tsx +2 -2
  61. package/template/apps/asas-tanstack/src/routes/auth.handoff.ts +5 -5
  62. package/template/apps/asas-tanstack/src/routes/auth.reset-password.tsx +7 -100
  63. package/template/apps/asas-tanstack/src/routes/auth.set-password.tsx +16 -0
  64. package/template/apps/asas-tanstack/src/routes/auth.sign-in.tsx +27 -15
  65. package/template/apps/asas-tanstack/src/routes/auth.sign-up.tsx +59 -38
  66. package/template/apps/asas-tanstack/src/routes/index.tsx +18 -14
  67. package/template/apps/asas-tanstack/src/routes/unauthorized.tsx +24 -12
  68. package/template/apps/asas-tanstack/src/screen-form.tsx +5 -3
  69. package/template/apps/asas-tanstack/src/screen-list.tsx +6 -5
  70. package/template/apps/asas-tanstack/src/screen-names.ts +1 -1
  71. package/template/apps/asas-tanstack/src/screens.tsx +46 -26
  72. package/template/apps/asas-tanstack/src/server.ts +10 -0
  73. package/template/apps/asas-tanstack/src/slide.ts +1 -1
  74. package/template/apps/asas-tanstack/src/styles.css +7 -3
  75. package/template/apps/asas-tanstack/tsconfig.json +2 -2
  76. package/template/apps/asas-tanstack/vite.config.ts +7 -1
  77. package/template/package.json +3 -3
  78. package/template/templates/asas/.claude/skills/add-field/SKILL.md +27 -0
  79. package/template/templates/asas/.claude/skills/add-kayan/SKILL.md +26 -0
  80. package/template/templates/asas/.claude/skills/eject-admin-piece/SKILL.md +28 -0
  81. package/template/templates/asas/.claude/skills/upgrade-mithaq/SKILL.md +35 -0
  82. package/template/templates/asas/.env.example +22 -5
  83. package/template/templates/asas/AGENTS.md +101 -0
  84. package/template/templates/asas/CLAUDE.md +1 -0
  85. package/template/templates/asas/README.md +1094 -0
  86. package/template/templates/asas/package.json +19 -4
  87. package/template/templates/asas/src/asas.ts +81 -56
  88. package/template/templates/asas/src/{platform-http.ts → backoffice-http.ts} +48 -27
  89. package/template/templates/asas/src/dev-setup.ts +112 -0
  90. package/template/templates/asas/src/local-database.ts +22 -0
  91. package/template/templates/asas/src/messages/account.json +129 -103
  92. package/template/templates/asas/src/messages/auditLog.json +223 -105
  93. package/template/templates/asas/src/messages/backofficeLog.json +132 -0
  94. package/template/templates/asas/src/messages/courses.json +256 -214
  95. package/template/templates/asas/src/messages/enrollments.json +45 -27
  96. package/template/templates/asas/src/messages/invitation.json +72 -56
  97. package/template/templates/asas/src/messages/localUsers.json +34 -28
  98. package/template/templates/asas/src/messages/media.json +31 -21
  99. package/template/templates/asas/src/messages/member.json +59 -39
  100. package/template/templates/asas/src/messages/memberRoles.json +37 -31
  101. package/template/templates/asas/src/messages/mithaq.json +206 -162
  102. package/template/templates/asas/src/messages/organization.json +63 -41
  103. package/template/templates/asas/src/messages/organizationRole.json +59 -47
  104. package/template/templates/asas/src/messages/roles.json +59 -45
  105. package/template/templates/asas/src/messages/session.json +99 -79
  106. package/template/templates/asas/src/messages/sessions.json +110 -80
  107. package/template/templates/asas/src/messages/settings.json +51 -53
  108. package/template/templates/asas/src/messages/tags.json +31 -21
  109. package/template/templates/asas/src/messages/user.json +109 -87
  110. package/template/templates/asas/src/messages/verification.json +59 -47
  111. package/template/templates/asas/src/migrations/20261014221355_tags_restrict/migration.sql +1 -0
  112. package/template/templates/asas/src/migrations/20261014221355_tags_restrict/snapshot.json +3881 -0
  113. package/template/templates/asas/src/migrations/20261014222218_one_seat_per_session/migration.sql +1 -0
  114. package/template/templates/asas/src/migrations/20261014222218_one_seat_per_session/snapshot.json +3894 -0
  115. package/template/templates/asas/src/migrations/20261014223522_session_archive_reason/migration.sql +1 -0
  116. package/template/templates/asas/src/migrations/20261014223522_session_archive_reason/snapshot.json +3907 -0
  117. package/template/templates/asas/src/migrations/20261014225728_course_archive_by_operation/migration.sql +1 -0
  118. package/template/templates/asas/src/migrations/20261014225728_course_archive_by_operation/snapshot.json +3907 -0
  119. package/template/templates/asas/src/migrations/20261015042444_organization_names/migration.sql +1 -0
  120. package/template/templates/asas/src/migrations/20261015042444_organization_names/snapshot.json +3920 -0
  121. package/template/templates/asas/src/migrations/20261015053212_member_last_seen/migration.sql +1 -0
  122. package/template/templates/asas/src/migrations/20261015053212_member_last_seen/snapshot.json +3933 -0
  123. package/template/templates/asas/src/migrations/20261015093203_activity_and_staff_history/migration.sql +15 -0
  124. package/template/templates/asas/src/migrations/20261015093203_activity_and_staff_history/snapshot.json +4113 -0
  125. package/template/templates/asas/src/migrations/20261015095752_portal/migration.sql +2 -0
  126. package/template/templates/asas/src/migrations/20261015095752_portal/snapshot.json +4113 -0
  127. package/template/templates/asas/src/migrations/20261015135529_better_auth_indexes/migration.sql +9 -0
  128. package/template/templates/asas/src/migrations/20261015135529_better_auth_indexes/snapshot.json +4302 -0
  129. package/template/templates/asas/src/migrations/20261015162438_audit_changes_json/migration.sql +27 -0
  130. package/template/templates/asas/src/migrations/20261015162438_audit_changes_json/snapshot.json +4289 -0
  131. package/template/templates/asas/src/migrations/schema.ts +1 -0
  132. package/template/templates/asas/src/mithaq.ts +4 -406
  133. package/template/templates/asas/src/organizations.ts +3 -0
  134. package/template/templates/asas/src/seed.ts +147 -45
  135. package/template/templates/asas/src/{ui-platform → ui-backoffice}/home.tsx +9 -9
  136. package/template/templates/asas/src/ui-backoffice/organization-actions.tsx +121 -0
  137. package/template/templates/asas/src/{ui-platform → ui-backoffice}/record-page.tsx +4 -4
  138. package/template/templates/asas/src/{ui-platform → ui-backoffice}/role-cells.tsx +13 -6
  139. package/template/templates/asas/src/{ui-platform → ui-backoffice}/user-actions.tsx +46 -48
  140. package/template/templates/asas/src/ui-dashboard/dashboard.tsx +10 -4
  141. package/template/templates/asas/src/ui-dashboard/home.tsx +73 -0
  142. package/template/templates/asas/src/ui-dashboard/members-card.tsx +147 -0
  143. package/template/templates/asas/src/ui-dashboard/members.tsx +637 -438
  144. package/template/templates/asas/src/ui-dashboard/versions.tsx +22 -8
  145. package/template/templates/asas/src/ui-portal/courses-home.tsx +96 -0
  146. package/template/templates/asas/src/ui-portal/home.tsx +9 -13
  147. package/template/templates/features/audit-log/audit-log/audit-log.ts +284 -0
  148. package/template/templates/features/audit-log/backoffice-log/backoffice-log.ts +67 -0
  149. package/template/templates/features/audit-log/index.ts +4 -0
  150. package/template/templates/features/audit-log/package.json +13 -0
  151. package/template/templates/features/auth/index.ts +11 -0
  152. package/template/templates/{asas/src → features/auth}/local-users/local-users.ts +7 -7
  153. package/template/templates/{auth → features/auth}/package.json +2 -3
  154. package/template/templates/{asas/src/kayan → features}/auth/user/account.access.ts +2 -2
  155. package/template/templates/{asas/src/kayan → features}/auth/user/account.ts +2 -2
  156. package/template/templates/{asas/src/kayan → features}/auth/user/invitation.access.ts +1 -1
  157. package/template/templates/{asas/src/kayan → features}/auth/user/invitation.ts +3 -3
  158. package/template/templates/{asas/src/kayan → features}/auth/user/member.access.ts +4 -4
  159. package/template/templates/{asas/src/kayan → features}/auth/user/member.screens.ts +5 -5
  160. package/template/templates/{asas/src/kayan → features}/auth/user/member.ts +4 -3
  161. package/template/templates/{asas/src/kayan → features}/auth/user/organization.access.ts +6 -6
  162. package/template/templates/{asas/src/kayan → features}/auth/user/organization.screens.ts +6 -6
  163. package/template/templates/{asas/src/kayan → features}/auth/user/organization.ts +2 -1
  164. package/template/templates/{asas/src/kayan → features}/auth/user/organizationRole.access.ts +2 -2
  165. package/template/templates/{asas/src/kayan → features}/auth/user/organizationRole.ts +3 -3
  166. package/template/templates/{asas/src/kayan → features}/auth/user/session.access.ts +2 -2
  167. package/template/templates/{asas/src/kayan → features}/auth/user/session.ts +2 -2
  168. package/template/templates/{asas/src/kayan → features}/auth/user/user.access.ts +8 -7
  169. package/template/templates/{asas/src/kayan → features}/auth/user/user.screens.ts +9 -9
  170. package/template/templates/{asas/src/kayan → features}/auth/user/user.ts +2 -2
  171. package/template/templates/{asas/src/kayan → features}/auth/user/verification.access.ts +2 -2
  172. package/template/templates/{asas/src/kayan → features}/auth/user/verification.ts +2 -2
  173. package/template/templates/{asas/src → features/courses}/courses/courses.ts +122 -133
  174. package/template/templates/features/courses/courses/cover-reads.ts +33 -0
  175. package/template/templates/features/courses/courses/ui/archived-badge.tsx +9 -0
  176. package/template/templates/{asas/src → features/courses}/courses/ui/fee-cell.tsx +1 -1
  177. package/template/templates/{asas/src → features/courses}/courses/ui/status-cell.tsx +5 -3
  178. package/template/templates/features/courses/courses/ui/unpublish-button.tsx +15 -0
  179. package/template/templates/features/courses/domain/archive.ts +39 -0
  180. package/template/templates/features/courses/domain/on-offer.ts +6 -0
  181. package/template/templates/features/courses/enrollments/enrollments.ts +309 -0
  182. package/template/templates/{asas/src → features/courses}/enrollments/ui/session-cell.tsx +17 -7
  183. package/template/templates/{asas/src → features/courses/enrollments}/ui/session-labels.tsx +3 -3
  184. package/template/templates/features/courses/index.ts +8 -0
  185. package/template/templates/features/courses/package.json +24 -0
  186. package/template/templates/features/courses/portal/ui/catalogue.tsx +86 -0
  187. package/template/templates/features/courses/portal/ui/course.tsx +176 -0
  188. package/template/templates/features/courses/portal/ui/enrollments.tsx +170 -0
  189. package/template/templates/features/courses/portal/ui/parts.tsx +95 -0
  190. package/template/templates/features/courses/portal/ui/reads.ts +76 -0
  191. package/template/templates/features/courses/portal/ui/rules.ts +87 -0
  192. package/template/templates/features/courses/portal/ui/shell.tsx +194 -0
  193. package/template/templates/features/courses/sessions/seats.ts +42 -0
  194. package/template/templates/{asas/src → features/courses}/sessions/sessions.ts +45 -14
  195. package/template/templates/features/media/index.ts +10 -0
  196. package/template/templates/{asas/src → features/media}/media/media.ts +34 -40
  197. package/template/templates/{asas/src → features/media}/media/ui/preview.tsx +2 -2
  198. package/template/templates/features/media/package.json +19 -0
  199. package/template/templates/features/roles/index.ts +4 -0
  200. package/template/templates/{asas/src → features/roles}/member-roles/member-roles.ts +15 -15
  201. package/template/templates/features/roles/package.json +21 -0
  202. package/template/templates/{asas/src → features/roles}/roles/roles.ts +23 -23
  203. package/template/templates/{asas/src → features/roles}/roles/ui/role-form.tsx +65 -24
  204. package/template/templates/{asas/src → features/roles}/roles/ui/roles.tsx +49 -25
  205. package/template/templates/features/settings/index.ts +3 -0
  206. package/template/templates/features/settings/package.json +13 -0
  207. package/template/templates/{asas/src → features/settings}/settings/settings.ts +12 -17
  208. package/template/templates/features/tags/index.ts +3 -0
  209. package/template/templates/features/tags/package.json +14 -0
  210. package/template/templates/{asas/src → features/tags}/tags/tags.ts +15 -15
  211. package/template/templates/mithaq/package.json +33 -0
  212. package/template/templates/mithaq/src/mail/index.ts +32 -0
  213. package/template/templates/mithaq/src/mail/mailers.ts +36 -0
  214. package/template/templates/{asas/src/audit-log/sink.ts → mithaq/src/mithaq/audit-sink.ts} +31 -9
  215. package/template/templates/{auth/src/platform-roles.ts → mithaq/src/mithaq/auth/backoffice-roles.ts} +44 -23
  216. package/template/templates/mithaq/src/mithaq/auth/index.ts +1859 -0
  217. package/template/templates/mithaq/src/mithaq/auth/organizations.ts +80 -0
  218. package/template/templates/{asas/src → mithaq/src/mithaq}/pages.ts +16 -7
  219. package/template/templates/mithaq/src/mithaq/rich-text-nodes.ts +19 -0
  220. package/template/templates/mithaq/src/mithaq.ts +593 -0
  221. package/template/templates/mithaq/src/roles/default-member-roles.ts +29 -0
  222. package/template/templates/{asas → mithaq}/src/roles/grants.ts +1 -1
  223. package/template/templates/mithaq/src/roles/member-access.ts +11 -0
  224. package/template/templates/{asas/src → mithaq/src/roles}/statements.ts +6 -4
  225. package/template/templates/mithaq/src/roles/system-roles.ts +16 -0
  226. package/template/templates/{asas/src → mithaq/src/roles}/tenant-access.ts +96 -57
  227. package/template/templates/{asas/src → mithaq/src/roles}/tenant-roles.ts +84 -25
  228. package/template/templates/{asas → mithaq}/src/steps/expected-updated-at.ts +2 -2
  229. package/template/templates/{asas → mithaq}/src/storage/index.ts +3 -1
  230. package/template/templates/mithaq/src/ui/activity-page.tsx +33 -0
  231. package/template/templates/mithaq/src/ui/activity.tsx +527 -0
  232. package/template/templates/{asas → mithaq}/src/ui/app-shell.tsx +27 -19
  233. package/template/templates/mithaq/src/ui/rich-text-nodes.tsx +33 -0
  234. package/template/templates/{asas → mithaq}/src/ui/screen-nav.tsx +1 -1
  235. package/template/templates/{asas → mithaq}/src/ui/top-shell.tsx +8 -8
  236. package/template/apps/asas-platform/src/components/mithaq/cells.tsx +0 -112
  237. package/template/apps/asas-platform/src/components/mithaq/controls.tsx +0 -650
  238. package/template/apps/asas-platform/src/components/mithaq/field-shell.tsx +0 -53
  239. package/template/apps/asas-platform/src/components/mithaq/filter-operators.ts +0 -108
  240. package/template/apps/asas-platform/src/components/mithaq/form.tsx +0 -1467
  241. package/template/apps/asas-platform/src/components/mithaq/list-columns.tsx +0 -108
  242. package/template/apps/asas-platform/src/components/mithaq/list-filters.tsx +0 -368
  243. package/template/apps/asas-platform/src/components/mithaq/list-pagination.tsx +0 -153
  244. package/template/apps/asas-platform/src/components/mithaq/list-query.ts +0 -432
  245. package/template/apps/asas-platform/src/components/mithaq/list-selection.tsx +0 -74
  246. package/template/apps/asas-platform/src/components/mithaq/list.tsx +0 -865
  247. package/template/apps/asas-platform/src/components/mithaq/nav.tsx +0 -871
  248. package/template/apps/asas-platform/src/components/mithaq/nodes.tsx +0 -1024
  249. package/template/apps/asas-platform/src/components/mithaq/relationship-cell.tsx +0 -127
  250. package/template/apps/asas-platform/src/components/mithaq/relationship-control.tsx +0 -400
  251. package/template/apps/asas-platform/src/components/mithaq/rich-text-nodes.ts +0 -6
  252. package/template/apps/asas-platform/src/components/mithaq/rich-text.tsx +0 -1083
  253. package/template/apps/asas-platform/src/components/mithaq/upload.tsx +0 -686
  254. package/template/apps/asas-platform/src/components/ui/drawer.tsx +0 -216
  255. package/template/apps/asas-platform/src/redirect.ts +0 -1
  256. package/template/apps/asas-platform/src/routeTree.gen.ts +0 -181
  257. package/template/apps/asas-platform/src/router.tsx +0 -7
  258. package/template/apps/asas-platform/src/routes/(screens)/platform/files.ts +0 -4
  259. package/template/apps/asas-platform/src/routes/api/$.ts +0 -30
  260. package/template/apps/asas-platform/src/server.ts +0 -20
  261. package/template/apps/asas-tanstack/src/components/mithaq/cells.tsx +0 -112
  262. package/template/apps/asas-tanstack/src/components/mithaq/controls.tsx +0 -650
  263. package/template/apps/asas-tanstack/src/components/mithaq/field-shell.tsx +0 -53
  264. package/template/apps/asas-tanstack/src/components/mithaq/filter-operators.ts +0 -108
  265. package/template/apps/asas-tanstack/src/components/mithaq/form.tsx +0 -1467
  266. package/template/apps/asas-tanstack/src/components/mithaq/list-columns.tsx +0 -108
  267. package/template/apps/asas-tanstack/src/components/mithaq/list-filters.tsx +0 -368
  268. package/template/apps/asas-tanstack/src/components/mithaq/list-pagination.tsx +0 -153
  269. package/template/apps/asas-tanstack/src/components/mithaq/list-query.ts +0 -432
  270. package/template/apps/asas-tanstack/src/components/mithaq/list-selection.tsx +0 -74
  271. package/template/apps/asas-tanstack/src/components/mithaq/list.tsx +0 -865
  272. package/template/apps/asas-tanstack/src/components/mithaq/nav.tsx +0 -871
  273. package/template/apps/asas-tanstack/src/components/mithaq/nodes.tsx +0 -1024
  274. package/template/apps/asas-tanstack/src/components/mithaq/relationship-cell.tsx +0 -127
  275. package/template/apps/asas-tanstack/src/components/mithaq/relationship-control.tsx +0 -400
  276. package/template/apps/asas-tanstack/src/components/mithaq/rich-text-nodes.ts +0 -6
  277. package/template/apps/asas-tanstack/src/components/mithaq/rich-text.tsx +0 -1083
  278. package/template/apps/asas-tanstack/src/components/mithaq/upload.tsx +0 -686
  279. package/template/apps/asas-tanstack/src/components/ui/drawer.tsx +0 -215
  280. package/template/templates/asas/src/audit-log/audit-log.ts +0 -187
  281. package/template/templates/asas/src/audit-log/ui/activity.tsx +0 -243
  282. package/template/templates/asas/src/courses/ui/archive-button.tsx +0 -25
  283. package/template/templates/asas/src/courses/ui/no-courses-on-offer.tsx +0 -11
  284. package/template/templates/asas/src/courses/ui/on-offer.ts +0 -6
  285. package/template/templates/asas/src/enrollments/enrollments.ts +0 -137
  286. package/template/templates/asas/src/rich-text-nodes.ts +0 -11
  287. package/template/templates/asas/src/roles.ts +0 -16
  288. package/template/templates/asas/src/ui/rich-text-nodes.tsx +0 -15
  289. package/template/templates/asas/src/ui-platform/organization-actions.tsx +0 -114
  290. package/template/templates/auth/src/index.ts +0 -690
  291. /package/template/apps/{asas-platform → asas-backoffice}/components.json +0 -0
  292. /package/template/apps/{asas-platform → asas-backoffice}/gitignore +0 -0
  293. /package/template/apps/{asas-platform → asas-backoffice}/public/favicon.svg +0 -0
  294. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/accordion.tsx +0 -0
  295. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/alert-dialog.tsx +0 -0
  296. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/avatar.tsx +0 -0
  297. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/badge.tsx +0 -0
  298. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/breadcrumb.tsx +0 -0
  299. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/button-group.tsx +0 -0
  300. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/button.tsx +0 -0
  301. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/calendar.tsx +0 -0
  302. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/card.tsx +0 -0
  303. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/chart.tsx +0 -0
  304. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/checkbox.tsx +0 -0
  305. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/collapsible.tsx +0 -0
  306. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/combobox.tsx +0 -0
  307. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/dialog.tsx +0 -0
  308. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/direction.tsx +0 -0
  309. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/directional-icon.tsx +0 -0
  310. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/dropdown-menu.tsx +0 -0
  311. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/field.tsx +0 -0
  312. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/input-group.tsx +0 -0
  313. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/input-otp.tsx +0 -0
  314. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/input.tsx +0 -0
  315. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/label.tsx +0 -0
  316. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/popover.tsx +0 -0
  317. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/radio-group.tsx +0 -0
  318. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/resizable.tsx +0 -0
  319. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/scroll-area.tsx +0 -0
  320. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/select.tsx +0 -0
  321. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/separator.tsx +0 -0
  322. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/sheet.tsx +0 -0
  323. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/sidebar.tsx +0 -0
  324. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/skeleton.tsx +0 -0
  325. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/slider.tsx +0 -0
  326. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/spinner.tsx +0 -0
  327. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/switch.tsx +0 -0
  328. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/table.tsx +0 -0
  329. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/tabs.tsx +0 -0
  330. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/textarea.tsx +0 -0
  331. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/toggle-group.tsx +0 -0
  332. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/toggle.tsx +0 -0
  333. /package/template/apps/{asas-platform → asas-backoffice}/src/components/ui/tooltip.tsx +0 -0
  334. /package/template/apps/{asas-platform → asas-backoffice}/src/copy.ts +0 -0
  335. /package/template/apps/{asas-platform → asas-backoffice}/src/hooks/use-mobile.ts +0 -0
  336. /package/template/apps/{asas-platform → asas-backoffice}/src/lib/utils.ts +0 -0
  337. /package/template/apps/{asas-platform → asas-backoffice}/src/theme.ts +0 -0
  338. /package/template/templates/{asas/src/kayan → features}/auth/user/index.ts +0 -0
  339. /package/template/templates/{asas/src → features/courses}/courses/ui/no-courses.tsx +0 -0
  340. /package/template/templates/{asas → mithaq}/components.json +0 -0
  341. /package/template/templates/{asas → mithaq}/src/storage/defaults.ts +0 -0
  342. /package/template/templates/{asas → mithaq}/src/storage/local.ts +0 -0
  343. /package/template/templates/{asas → mithaq}/src/storage/r2.ts +0 -0
  344. /package/template/templates/{asas → mithaq}/src/storage/s3.ts +0 -0
  345. /package/template/templates/{asas → mithaq}/src/storage/uploadthing.ts +0 -0
  346. /package/template/templates/{asas → mithaq}/src/ui/kpi-card.tsx +0 -0
  347. /package/template/templates/{asas → mithaq}/src/ui/record-page.tsx +0 -0
  348. /package/template/templates/{asas → mithaq}/src/ui/table-page.tsx +0 -0
@@ -24,6 +24,7 @@ export type CoursesValues = {
24
24
  _status: 'draft' | 'published' | null
25
25
  details: { root: Record<string, unknown> } | null
26
26
  cover: string | null
27
+ selfEnroll: boolean | null
27
28
  }
28
29
  export type SessionsValues = {
29
30
  id: string
@@ -38,6 +39,7 @@ export type SessionsValues = {
38
39
  archived: boolean | null
39
40
  details: { root: Record<string, unknown> } | null
40
41
  enrollments: Values['enrollments'][]
42
+ archiveReason: string | null
41
43
  }
42
44
  export type EnrollmentsValues = {
43
45
  id: string
@@ -91,7 +93,6 @@ export type SettingsValues = {
91
93
  updatedAt: Date
92
94
  createdAt: Date
93
95
  organization: string
94
- siteTitle: string
95
96
  maintenance: boolean | null
96
97
  contactEmail: string | null
97
98
  globalType: string
@@ -117,6 +118,7 @@ export type OrganizationValues = {
117
118
  slug: string
118
119
  logo: string | null
119
120
  metadata: string | null
121
+ names: string | null
120
122
  }
121
123
  export type AuditLogValues = {
122
124
  id: string
@@ -127,7 +129,7 @@ export type AuditLogValues = {
127
129
  operation: string
128
130
  actor: string | null
129
131
  impersonatedBy: string | null
130
- changes: string
132
+ changes: unknown
131
133
  }
132
134
  export type Values = {
133
135
  courses: CoursesValues
@@ -1,4 +1,9 @@
1
1
  // Written by `mithaq generate screens`. Do not edit.
2
2
  /// <reference types="vite/client" />
3
- // Every file the `portal` screen's references name, each loaded when a page draws it.
4
- export const files = import.meta.glob(['./src/courses/ui/archive-button.tsx', './src/courses/ui/fee-cell.tsx', './src/courses/ui/no-courses-on-offer.tsx', './src/enrollments/ui/session-cell.tsx', './src/ui-portal/home.tsx', './src/ui-portal/page.tsx', './src/ui/record-page.tsx', './src/ui/rich-text-nodes.tsx', './src/ui/session-labels.tsx', './src/ui/top-shell.tsx'], { base: '/node_modules/asas/', exhaustive: true })
3
+ // Every file the `portal` screen's references name, each loaded when a page draws it, keyed as the reference prints it.
4
+ const named = (name: string, files: Record<string, () => Promise<unknown>>) => Object.fromEntries(Object.entries(files).map(([file, load]) => [`${name}:${file}`, load]))
5
+ export const files = {
6
+ ...import.meta.glob(['./src/ui-portal/courses-home.tsx', './src/ui-portal/page.tsx'], { base: '../../../../../../templates/asas/', exhaustive: true }),
7
+ ...named('@asas/courses', import.meta.glob(['./courses/ui/fee-cell.tsx', './enrollments/ui/session-cell.tsx', './enrollments/ui/session-labels.tsx', './portal/ui/catalogue.tsx', './portal/ui/course.tsx', './portal/ui/enrollments.tsx', './portal/ui/shell.tsx'], { base: '../../../../../../templates/features/courses/', exhaustive: true })),
8
+ ...named('@asas/mithaq', import.meta.glob(['./src/ui/rich-text-nodes.tsx'], { base: '../../../../../../templates/mithaq/', exhaustive: true })),
9
+ }
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "path": "/portal",
3
3
  "providers": [
4
- "./src/ui/rich-text-nodes.tsx#RichTextNodes",
5
- "./src/ui/session-labels.tsx#SessionLabels"
4
+ "@asas/mithaq:./src/ui/rich-text-nodes.tsx#RichTextNodes",
5
+ "@asas/courses:./enrollments/ui/session-labels.tsx#SessionLabels"
6
6
  ],
7
7
  "pages": {
8
8
  "home": {
9
9
  "path": "/",
10
- "component": "./src/ui-portal/home.tsx#Home"
10
+ "component": "./src/ui-portal/courses-home.tsx#Home"
11
11
  }
12
12
  },
13
13
  "nav": [
@@ -25,13 +25,10 @@
25
25
  }
26
26
  ],
27
27
  "layouts": {
28
- "top": "./src/ui/top-shell.tsx#PortalTopShell",
29
- "page": "./src/ui-portal/page.tsx#Page",
30
- "record": "./src/ui/record-page.tsx#RecordPage"
31
- },
32
- "components": {
33
- "archive": "./src/courses/ui/archive-button.tsx#ArchiveButton"
28
+ "top": "@asas/courses:./portal/ui/shell.tsx#PortalShell",
29
+ "page": "./src/ui-portal/page.tsx#Page"
34
30
  },
31
+ "components": {},
35
32
  "controls": {
36
33
  "text": {
37
34
  "control": "text",
@@ -77,6 +74,10 @@
77
74
  "control": "relationship",
78
75
  "cell": "relationship"
79
76
  },
77
+ "json": {
78
+ "control": "json",
79
+ "cell": "json"
80
+ },
80
81
  "join": {
81
82
  "control": "join",
82
83
  "cell": "join"
@@ -223,7 +224,7 @@
223
224
  "ar": "لكل مقعد"
224
225
  },
225
226
  "component": "number",
226
- "cell": "./src/courses/ui/fee-cell.tsx#FeeCell"
227
+ "cell": "@asas/courses:./courses/ui/fee-cell.tsx#FeeCell"
227
228
  },
228
229
  {
229
230
  "name": "currency",
@@ -362,6 +363,10 @@
362
363
  "ar": "مؤرشف"
363
364
  },
364
365
  "rules": {
366
+ "providedBy": {
367
+ "create": "never",
368
+ "update": "application"
369
+ },
365
370
  "required": false
366
371
  },
367
372
  "component": "checkbox",
@@ -426,6 +431,10 @@
426
431
  },
427
432
  "rules": {
428
433
  "maxLength": 200,
434
+ "providedBy": {
435
+ "create": "never",
436
+ "update": "application"
437
+ },
429
438
  "required": false
430
439
  },
431
440
  "component": "text",
@@ -439,7 +448,8 @@
439
448
  "ar": "الوسوم"
440
449
  },
441
450
  "rules": {
442
- "required": false
451
+ "required": false,
452
+ "onDelete": "restrict"
443
453
  },
444
454
  "relationTo": "tags",
445
455
  "hasMany": true,
@@ -523,6 +533,19 @@
523
533
  "relationTo": "media",
524
534
  "component": "upload",
525
535
  "cell": "upload"
536
+ },
537
+ {
538
+ "name": "selfEnroll",
539
+ "kind": "checkbox",
540
+ "label": {
541
+ "en": "Students may enroll themselves",
542
+ "ar": "يسجّل الطلاب أنفسهم"
543
+ },
544
+ "rules": {
545
+ "required": false
546
+ },
547
+ "component": "checkbox",
548
+ "cell": "checkbox"
526
549
  }
527
550
  ],
528
551
  "operations": [
@@ -573,23 +596,15 @@
573
596
  },
574
597
  {
575
598
  "name": "archive",
576
- "effect": "update",
577
- "fields": [
578
- {
579
- "name": "reason",
580
- "kind": "text",
581
- "label": {
582
- "en": "Reason",
583
- "ar": "السبب"
584
- },
585
- "rules": {
586
- "required": true,
587
- "maxLength": 200
588
- },
589
- "component": "text",
590
- "cell": "text"
591
- }
592
- ]
599
+ "effect": "update"
600
+ },
601
+ {
602
+ "name": "unarchive",
603
+ "effect": "update"
604
+ },
605
+ {
606
+ "name": "unpublish",
607
+ "effect": "update"
593
608
  },
594
609
  {
595
610
  "name": "findWithSessions",
@@ -601,20 +616,6 @@
601
616
  "en": "The courses on offer.",
602
617
  "ar": "الدورات المعروضة."
603
618
  },
604
- "baseFilter": {
605
- "or": [
606
- {
607
- "archived": {
608
- "exists": false
609
- }
610
- },
611
- {
612
- "archived": {
613
- "equals": false
614
- }
615
- }
616
- ]
617
- },
618
619
  "drafts": {
619
620
  "autosave": {
620
621
  "interval": 2000
@@ -623,234 +624,11 @@
623
624
  "pages": {
624
625
  "list": {
625
626
  "path": "/courses",
626
- "page": {
627
- "shell": "./src/ui/top-shell.tsx#PortalTopShell",
628
- "header": [
629
- {
630
- "title": {}
631
- }
632
- ],
633
- "nav": [
634
- {
635
- "nav": {}
636
- }
637
- ],
638
- "main": [
639
- {
640
- "layout": "./src/ui-portal/page.tsx#Page",
641
- "main": [
642
- {
643
- "list": {
644
- "columns": [
645
- {
646
- "field": "title",
647
- "cell": "text",
648
- "decided": "table"
649
- },
650
- {
651
- "field": "fee",
652
- "cell": "./src/courses/ui/fee-cell.tsx#FeeCell",
653
- "decided": "field"
654
- }
655
- ],
656
- "filters": [
657
- "title"
658
- ],
659
- "search": [
660
- "title"
661
- ],
662
- "empty": "./src/courses/ui/no-courses-on-offer.tsx#NoCourses",
663
- "row": [
664
- {
665
- "button": "archive",
666
- "label": {
667
- "en": "Archive",
668
- "ar": "أرشفة"
669
- },
670
- "fields": [
671
- "reason"
672
- ],
673
- "when": {
674
- "or": [
675
- {
676
- "record.archived": {
677
- "exists": false
678
- }
679
- },
680
- {
681
- "record.archived": {
682
- "equals": false
683
- }
684
- }
685
- ]
686
- }
687
- }
688
- ],
689
- "sort": "title",
690
- "limit": 25
691
- }
692
- }
693
- ]
694
- }
695
- ]
696
- }
627
+ "component": "@asas/courses:./portal/ui/catalogue.tsx#Catalogue"
697
628
  },
698
- "edit": {
629
+ "view": {
699
630
  "path": "/courses/:id",
700
- "page": {
701
- "shell": "./src/ui/top-shell.tsx#PortalTopShell",
702
- "header": [
703
- {
704
- "title": {}
705
- }
706
- ],
707
- "nav": [
708
- {
709
- "nav": {}
710
- }
711
- ],
712
- "main": [
713
- {
714
- "layout": "./src/ui/record-page.tsx#RecordPage",
715
- "main": [
716
- {
717
- "form": [
718
- {
719
- "section": "about",
720
- "label": {
721
- "en": "About the course",
722
- "ar": "عن الدورة"
723
- },
724
- "fields": [
725
- {
726
- "field": "title",
727
- "component": "text",
728
- "decided": "table"
729
- },
730
- {
731
- "field": "summary",
732
- "component": "text",
733
- "decided": "table"
734
- },
735
- {
736
- "field": "cover",
737
- "component": "upload",
738
- "decided": "table"
739
- },
740
- {
741
- "field": "details",
742
- "component": "richText",
743
- "decided": "table"
744
- }
745
- ]
746
- },
747
- {
748
- "section": "pricing",
749
- "label": {
750
- "en": "Pricing",
751
- "ar": "التسعير"
752
- },
753
- "fields": [
754
- {
755
- "row": [
756
- {
757
- "field": "fee",
758
- "component": "number",
759
- "decided": "table"
760
- },
761
- {
762
- "field": "currency",
763
- "component": "radio",
764
- "decided": "field"
765
- }
766
- ]
767
- },
768
- {
769
- "field": "audience",
770
- "component": "buttonGroup",
771
- "decided": "leaf"
772
- }
773
- ]
774
- },
775
- {
776
- "section": "teaching",
777
- "label": {
778
- "en": "Teaching",
779
- "ar": "التدريس"
780
- },
781
- "fields": [
782
- {
783
- "field": "delivery",
784
- "component": "radio",
785
- "decided": "field"
786
- },
787
- {
788
- "field": "accessCode",
789
- "component": "text",
790
- "decided": "table",
791
- "when": {
792
- "delivery": {
793
- "equals": "live"
794
- }
795
- }
796
- },
797
- {
798
- "field": "opensOn",
799
- "component": "date",
800
- "decided": "table"
801
- }
802
- ]
803
- }
804
- ]
805
- }
806
- ],
807
- "danger": [
808
- {
809
- "button": "archive",
810
- "label": {
811
- "en": "Archive",
812
- "ar": "أرشفة"
813
- },
814
- "reload": true,
815
- "component": "./src/courses/ui/archive-button.tsx#ArchiveButton",
816
- "confirm": {
817
- "title": {
818
- "en": "Archive this course?",
819
- "ar": "أرشفة هذه الدورة؟"
820
- },
821
- "body": {
822
- "en": "Students stop seeing it.",
823
- "ar": "يتوقف الطلاب عن رؤيتها."
824
- }
825
- },
826
- "when": {
827
- "and": [
828
- {
829
- "or": [
830
- {
831
- "record.archived": {
832
- "exists": false
833
- }
834
- },
835
- {
836
- "record.archived": {
837
- "equals": false
838
- }
839
- }
840
- ]
841
- },
842
- {
843
- "$user.collections.courses.operations.archive": {
844
- "equals": true
845
- }
846
- }
847
- ]
848
- }
849
- }
850
- ]
851
- }
852
- ]
853
- }
631
+ "component": "@asas/courses:./portal/ui/course.tsx#Course"
854
632
  }
855
633
  }
856
634
  },
@@ -941,8 +719,9 @@
941
719
  "onDelete": "restrict"
942
720
  },
943
721
  "relationTo": "sessions",
722
+ "filterOptions": true,
944
723
  "component": "relationship",
945
- "cell": "./src/enrollments/ui/session-cell.tsx#SessionCell"
724
+ "cell": "@asas/courses:./enrollments/ui/session-cell.tsx#SessionCell"
946
725
  },
947
726
  {
948
727
  "name": "student",
@@ -956,6 +735,7 @@
956
735
  "onDelete": "restrict"
957
736
  },
958
737
  "relationTo": "user",
738
+ "filterOptions": true,
959
739
  "component": "relationship",
960
740
  "cell": "relationship"
961
741
  },
@@ -1016,57 +796,17 @@
1016
796
  "pages": {
1017
797
  "list": {
1018
798
  "path": "/enrollments",
1019
- "page": {
1020
- "shell": "./src/ui/top-shell.tsx#PortalTopShell",
1021
- "header": [
1022
- {
1023
- "title": {}
1024
- }
1025
- ],
1026
- "nav": [
1027
- {
1028
- "nav": {}
1029
- }
1030
- ],
1031
- "main": [
1032
- {
1033
- "layout": "./src/ui-portal/page.tsx#Page",
1034
- "main": [
1035
- {
1036
- "list": {
1037
- "columns": [
1038
- {
1039
- "field": "session",
1040
- "cell": "./src/enrollments/ui/session-cell.tsx#SessionCell",
1041
- "decided": "field"
1042
- },
1043
- {
1044
- "field": "createdAt",
1045
- "cell": "datetime",
1046
- "decided": "table"
1047
- }
1048
- ]
1049
- }
1050
- }
1051
- ]
1052
- }
1053
- ]
1054
- }
799
+ "component": "@asas/courses:./portal/ui/enrollments.tsx#Enrollments"
1055
800
  },
1056
801
  "create": {
1057
802
  "path": "/enrollments/new",
1058
803
  "page": {
1059
- "shell": "./src/ui/top-shell.tsx#PortalTopShell",
804
+ "shell": "@asas/courses:./portal/ui/shell.tsx#PortalShell",
1060
805
  "header": [
1061
806
  {
1062
807
  "title": {}
1063
808
  }
1064
809
  ],
1065
- "nav": [
1066
- {
1067
- "nav": {}
1068
- }
1069
- ],
1070
810
  "main": [
1071
811
  {
1072
812
  "layout": "./src/ui-portal/page.tsx#Page",
@@ -1088,23 +828,17 @@
1088
828
  ]
1089
829
  }
1090
830
  ]
1091
- },
1092
- "mode": "drawer"
831
+ }
1093
832
  },
1094
833
  "edit": {
1095
834
  "path": "/enrollments/:id",
1096
835
  "page": {
1097
- "shell": "./src/ui/top-shell.tsx#PortalTopShell",
836
+ "shell": "@asas/courses:./portal/ui/shell.tsx#PortalShell",
1098
837
  "header": [
1099
838
  {
1100
839
  "title": {}
1101
840
  }
1102
841
  ],
1103
- "nav": [
1104
- {
1105
- "nav": {}
1106
- }
1107
- ],
1108
842
  "main": [
1109
843
  {
1110
844
  "layout": "./src/ui-portal/page.tsx#Page",
@@ -1308,6 +1042,10 @@
1308
1042
  "ar": "مؤرشفة"
1309
1043
  },
1310
1044
  "rules": {
1045
+ "providedBy": {
1046
+ "create": "never",
1047
+ "update": "application"
1048
+ },
1311
1049
  "required": false
1312
1050
  },
1313
1051
  "component": "checkbox",
@@ -1345,6 +1083,24 @@
1345
1083
  "on": "session",
1346
1084
  "component": "join",
1347
1085
  "cell": "join"
1086
+ },
1087
+ {
1088
+ "name": "archiveReason",
1089
+ "kind": "text",
1090
+ "label": {
1091
+ "en": "Archive reason",
1092
+ "ar": "سبب الأرشفة"
1093
+ },
1094
+ "rules": {
1095
+ "maxLength": 200,
1096
+ "providedBy": {
1097
+ "create": "never",
1098
+ "update": "application"
1099
+ },
1100
+ "required": false
1101
+ },
1102
+ "component": "text",
1103
+ "cell": "text"
1348
1104
  }
1349
1105
  ],
1350
1106
  "operations": [
@@ -1385,6 +1141,14 @@
1385
1141
  "name": "archiveMany",
1386
1142
  "effect": "update",
1387
1143
  "updatesMany": true
1144
+ },
1145
+ {
1146
+ "name": "archive",
1147
+ "effect": "update"
1148
+ },
1149
+ {
1150
+ "name": "unarchive",
1151
+ "effect": "update"
1388
1152
  }
1389
1153
  ],
1390
1154
  "useAsTitle": "startsAt",
@@ -24,6 +24,7 @@ export type CoursesValues = {
24
24
  _status: 'draft' | 'published' | null
25
25
  details: { root: Record<string, unknown> } | null
26
26
  cover: string | null
27
+ selfEnroll: boolean | null
27
28
  }
28
29
  export type EnrollmentsValues = {
29
30
  id: string
@@ -47,6 +48,7 @@ export type SessionsValues = {
47
48
  archived: boolean | null
48
49
  details: { root: Record<string, unknown> } | null
49
50
  enrollments: Values['enrollments'][]
51
+ archiveReason: string | null
50
52
  }
51
53
  export type MediaValues = {
52
54
  id: string
@@ -83,7 +85,7 @@ export type Values = {
83
85
  user: UserValues
84
86
  }
85
87
  export type Pages = {
86
- courses: 'list' | 'edit'
88
+ courses: 'list' | 'view'
87
89
  enrollments: 'list' | 'create' | 'edit'
88
90
  sessions: never
89
91
  media: never
@@ -2,7 +2,7 @@ import { HeadContent, Outlet, Scripts, createRootRoute } from '@tanstack/react-r
2
2
  import { DirectionProvider } from '@/components/ui/direction'
3
3
  export { locales } from '../copy.ts'
4
4
  import { dirOf, documentHead, localeOf, translator } from '../copy.ts'
5
- import { ThemeProvider } from '../components/mithaq/nav.tsx'
5
+ import { ThemeProvider } from 'mithaq-admin/theme.tsx'
6
6
  import { themeStorageKey } from '../theme.ts'
7
7
  import appCss from '../styles.css?url'
8
8