create-mithaq 0.0.0-stage → 0.2.0

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 (396) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSES/openstatus-time-picker.txt +21 -0
  3. package/LICENSES/payload.txt +22 -0
  4. package/LICENSES/ponytail.txt +21 -0
  5. package/index.js +521 -0
  6. package/package.json +19 -4
  7. package/template/apps/asas-backoffice/components.json +25 -0
  8. package/template/apps/asas-backoffice/gitignore +3 -0
  9. package/template/apps/asas-backoffice/package.json +57 -0
  10. package/template/apps/asas-backoffice/public/favicon.svg +1 -0
  11. package/template/apps/asas-backoffice/src/api.ts +147 -0
  12. package/template/apps/asas-backoffice/src/auth-frame.tsx +150 -0
  13. package/template/apps/asas-backoffice/src/components/ui/accordion.tsx +74 -0
  14. package/template/apps/asas-backoffice/src/components/ui/alert-dialog.tsx +185 -0
  15. package/template/apps/asas-backoffice/src/components/ui/avatar.tsx +106 -0
  16. package/template/apps/asas-backoffice/src/components/ui/badge.tsx +48 -0
  17. package/template/apps/asas-backoffice/src/components/ui/breadcrumb.tsx +124 -0
  18. package/template/apps/asas-backoffice/src/components/ui/button-group.tsx +87 -0
  19. package/template/apps/asas-backoffice/src/components/ui/button.tsx +55 -0
  20. package/template/apps/asas-backoffice/src/components/ui/calendar.tsx +223 -0
  21. package/template/apps/asas-backoffice/src/components/ui/card.tsx +102 -0
  22. package/template/apps/asas-backoffice/src/components/ui/chart.tsx +371 -0
  23. package/template/apps/asas-backoffice/src/components/ui/checkbox.tsx +28 -0
  24. package/template/apps/asas-backoffice/src/components/ui/collapsible.tsx +19 -0
  25. package/template/apps/asas-backoffice/src/components/ui/combobox.tsx +308 -0
  26. package/template/apps/asas-backoffice/src/components/ui/dialog.tsx +158 -0
  27. package/template/apps/asas-backoffice/src/components/ui/direction.tsx +6 -0
  28. package/template/apps/asas-backoffice/src/components/ui/directional-icon.tsx +20 -0
  29. package/template/apps/asas-backoffice/src/components/ui/dropdown-menu.tsx +267 -0
  30. package/template/apps/asas-backoffice/src/components/ui/field.tsx +236 -0
  31. package/template/apps/asas-backoffice/src/components/ui/input-group.tsx +155 -0
  32. package/template/apps/asas-backoffice/src/components/ui/input-otp.tsx +84 -0
  33. package/template/apps/asas-backoffice/src/components/ui/input.tsx +19 -0
  34. package/template/apps/asas-backoffice/src/components/ui/label.tsx +19 -0
  35. package/template/apps/asas-backoffice/src/components/ui/popover.tsx +90 -0
  36. package/template/apps/asas-backoffice/src/components/ui/radio-group.tsx +37 -0
  37. package/template/apps/asas-backoffice/src/components/ui/resizable.tsx +47 -0
  38. package/template/apps/asas-backoffice/src/components/ui/scroll-area.tsx +54 -0
  39. package/template/apps/asas-backoffice/src/components/ui/select.tsx +204 -0
  40. package/template/apps/asas-backoffice/src/components/ui/separator.tsx +24 -0
  41. package/template/apps/asas-backoffice/src/components/ui/sheet.tsx +139 -0
  42. package/template/apps/asas-backoffice/src/components/ui/sidebar.tsx +714 -0
  43. package/template/apps/asas-backoffice/src/components/ui/skeleton.tsx +13 -0
  44. package/template/apps/asas-backoffice/src/components/ui/slider.tsx +55 -0
  45. package/template/apps/asas-backoffice/src/components/ui/spinner.tsx +10 -0
  46. package/template/apps/asas-backoffice/src/components/ui/switch.tsx +29 -0
  47. package/template/apps/asas-backoffice/src/components/ui/table.tsx +115 -0
  48. package/template/apps/asas-backoffice/src/components/ui/tabs.tsx +79 -0
  49. package/template/apps/asas-backoffice/src/components/ui/textarea.tsx +17 -0
  50. package/template/apps/asas-backoffice/src/components/ui/toggle-group.tsx +89 -0
  51. package/template/apps/asas-backoffice/src/components/ui/toggle.tsx +44 -0
  52. package/template/apps/asas-backoffice/src/components/ui/tooltip.tsx +63 -0
  53. package/template/apps/asas-backoffice/src/components.ts +35 -0
  54. package/template/apps/asas-backoffice/src/copy.ts +1 -0
  55. package/template/apps/asas-backoffice/src/first-user.ts +14 -0
  56. package/template/apps/asas-backoffice/src/hooks/use-mobile.ts +19 -0
  57. package/template/apps/asas-backoffice/src/lib/utils.ts +1 -0
  58. package/template/apps/asas-backoffice/src/links.ts +38 -0
  59. package/template/apps/asas-backoffice/src/locale-switch.tsx +28 -0
  60. package/template/apps/asas-backoffice/src/no-organization.tsx +5 -0
  61. package/template/apps/asas-backoffice/src/redirect.ts +1 -0
  62. package/template/apps/asas-backoffice/src/request-headers.ts +11 -0
  63. package/template/apps/asas-backoffice/src/routeTree.gen.ts +206 -0
  64. package/template/apps/asas-backoffice/src/router.tsx +18 -0
  65. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice/files.ts +10 -0
  66. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice/screen.json +3971 -0
  67. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice/types.ts +163 -0
  68. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice.$.tsx +17 -0
  69. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice.index.tsx +10 -0
  70. package/template/apps/asas-backoffice/src/routes/(screens)/backoffice.tsx +13 -0
  71. package/template/apps/asas-backoffice/src/routes/__root.tsx +95 -0
  72. package/template/apps/asas-backoffice/src/routes/api/$.ts +34 -0
  73. package/template/apps/asas-backoffice/src/routes/auth.create-first-user.tsx +113 -0
  74. package/template/apps/asas-backoffice/src/routes/auth.sign-in.tsx +77 -0
  75. package/template/apps/asas-backoffice/src/routes/unauthorized.tsx +134 -0
  76. package/template/apps/asas-backoffice/src/screen-form.tsx +36 -0
  77. package/template/apps/asas-backoffice/src/screen-list.tsx +140 -0
  78. package/template/apps/asas-backoffice/src/screen-names.ts +10 -0
  79. package/template/apps/asas-backoffice/src/screens.tsx +888 -0
  80. package/template/apps/asas-backoffice/src/server.ts +30 -0
  81. package/template/apps/asas-backoffice/src/slide.ts +22 -0
  82. package/template/apps/asas-backoffice/src/start.ts +42 -0
  83. package/template/apps/asas-backoffice/src/styles.css +202 -0
  84. package/template/apps/asas-backoffice/src/theme.ts +2 -0
  85. package/template/apps/asas-backoffice/tsconfig.json +19 -0
  86. package/template/apps/asas-backoffice/vite.config.ts +32 -0
  87. package/template/apps/asas-tanstack/components.json +25 -0
  88. package/template/apps/asas-tanstack/gitignore +3 -0
  89. package/template/apps/asas-tanstack/package.json +58 -0
  90. package/template/apps/asas-tanstack/public/favicon.svg +1 -0
  91. package/template/apps/asas-tanstack/src/api.ts +147 -0
  92. package/template/apps/asas-tanstack/src/auth-frame.tsx +150 -0
  93. package/template/apps/asas-tanstack/src/choose-password.tsx +150 -0
  94. package/template/apps/asas-tanstack/src/components/ui/accordion.tsx +10 -0
  95. package/template/apps/asas-tanstack/src/components/ui/alert-dialog.tsx +173 -0
  96. package/template/apps/asas-tanstack/src/components/ui/avatar.tsx +104 -0
  97. package/template/apps/asas-tanstack/src/components/ui/badge.tsx +48 -0
  98. package/template/apps/asas-tanstack/src/components/ui/breadcrumb.tsx +125 -0
  99. package/template/apps/asas-tanstack/src/components/ui/button-group.tsx +87 -0
  100. package/template/apps/asas-tanstack/src/components/ui/button.tsx +56 -0
  101. package/template/apps/asas-tanstack/src/components/ui/calendar.tsx +223 -0
  102. package/template/apps/asas-tanstack/src/components/ui/card.tsx +94 -0
  103. package/template/apps/asas-tanstack/src/components/ui/chart.tsx +369 -0
  104. package/template/apps/asas-tanstack/src/components/ui/checkbox.tsx +27 -0
  105. package/template/apps/asas-tanstack/src/components/ui/collapsible.tsx +19 -0
  106. package/template/apps/asas-tanstack/src/components/ui/combobox.tsx +300 -0
  107. package/template/apps/asas-tanstack/src/components/ui/dialog.tsx +149 -0
  108. package/template/apps/asas-tanstack/src/components/ui/direction.tsx +5 -0
  109. package/template/apps/asas-tanstack/src/components/ui/directional-icon.tsx +20 -0
  110. package/template/apps/asas-tanstack/src/components/ui/dropdown-menu.tsx +267 -0
  111. package/template/apps/asas-tanstack/src/components/ui/field.tsx +225 -0
  112. package/template/apps/asas-tanstack/src/components/ui/input-group.tsx +147 -0
  113. package/template/apps/asas-tanstack/src/components/ui/input-otp.tsx +20 -0
  114. package/template/apps/asas-tanstack/src/components/ui/input.tsx +20 -0
  115. package/template/apps/asas-tanstack/src/components/ui/label.tsx +18 -0
  116. package/template/apps/asas-tanstack/src/components/ui/popover.tsx +50 -0
  117. package/template/apps/asas-tanstack/src/components/ui/radio-group.tsx +10 -0
  118. package/template/apps/asas-tanstack/src/components/ui/resizable.tsx +47 -0
  119. package/template/apps/asas-tanstack/src/components/ui/scroll-area.tsx +52 -0
  120. package/template/apps/asas-tanstack/src/components/ui/select.tsx +190 -0
  121. package/template/apps/asas-tanstack/src/components/ui/separator.tsx +23 -0
  122. package/template/apps/asas-tanstack/src/components/ui/sheet.tsx +127 -0
  123. package/template/apps/asas-tanstack/src/components/ui/sidebar.tsx +716 -0
  124. package/template/apps/asas-tanstack/src/components/ui/skeleton.tsx +13 -0
  125. package/template/apps/asas-tanstack/src/components/ui/slider.tsx +13 -0
  126. package/template/apps/asas-tanstack/src/components/ui/spinner.tsx +11 -0
  127. package/template/apps/asas-tanstack/src/components/ui/switch.tsx +8 -0
  128. package/template/apps/asas-tanstack/src/components/ui/table.tsx +119 -0
  129. package/template/apps/asas-tanstack/src/components/ui/tabs.tsx +80 -0
  130. package/template/apps/asas-tanstack/src/components/ui/textarea.tsx +18 -0
  131. package/template/apps/asas-tanstack/src/components/ui/toggle-group.tsx +8 -0
  132. package/template/apps/asas-tanstack/src/components/ui/toggle.tsx +44 -0
  133. package/template/apps/asas-tanstack/src/components/ui/tooltip.tsx +68 -0
  134. package/template/apps/asas-tanstack/src/components.ts +35 -0
  135. package/template/apps/asas-tanstack/src/copy.ts +1207 -0
  136. package/template/apps/asas-tanstack/src/first-run.ts +16 -0
  137. package/template/apps/asas-tanstack/src/hooks/use-mobile.ts +19 -0
  138. package/template/apps/asas-tanstack/src/lib/utils.ts +6 -0
  139. package/template/apps/asas-tanstack/src/links.ts +38 -0
  140. package/template/apps/asas-tanstack/src/locale-switch.tsx +28 -0
  141. package/template/apps/asas-tanstack/src/no-organization.tsx +108 -0
  142. package/template/apps/asas-tanstack/src/quiet-abort.ts +25 -0
  143. package/template/apps/asas-tanstack/src/redirect.ts +39 -0
  144. package/template/apps/asas-tanstack/src/request-headers.ts +11 -0
  145. package/template/apps/asas-tanstack/src/routeTree.gen.ts +424 -0
  146. package/template/apps/asas-tanstack/src/router.tsx +18 -0
  147. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/files.ts +11 -0
  148. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/screen.json +4242 -0
  149. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard/types.ts +160 -0
  150. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard.$.tsx +17 -0
  151. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard.index.tsx +10 -0
  152. package/template/apps/asas-tanstack/src/routes/(screens)/dashboard.tsx +13 -0
  153. package/template/apps/asas-tanstack/src/routes/(screens)/portal/files.ts +9 -0
  154. package/template/apps/asas-tanstack/src/routes/(screens)/portal/screen.json +1564 -0
  155. package/template/apps/asas-tanstack/src/routes/(screens)/portal/types.ts +94 -0
  156. package/template/apps/asas-tanstack/src/routes/(screens)/portal.$.tsx +17 -0
  157. package/template/apps/asas-tanstack/src/routes/(screens)/portal.index.tsx +10 -0
  158. package/template/apps/asas-tanstack/src/routes/(screens)/portal.tsx +13 -0
  159. package/template/apps/asas-tanstack/src/routes/__root.tsx +99 -0
  160. package/template/apps/asas-tanstack/src/routes/api/$.ts +11 -0
  161. package/template/apps/asas-tanstack/src/routes/auth.accept-invitation.tsx +108 -0
  162. package/template/apps/asas-tanstack/src/routes/auth.first-run.tsx +114 -0
  163. package/template/apps/asas-tanstack/src/routes/auth.forgot-password.tsx +94 -0
  164. package/template/apps/asas-tanstack/src/routes/auth.handoff.ts +39 -0
  165. package/template/apps/asas-tanstack/src/routes/auth.reset-password.tsx +16 -0
  166. package/template/apps/asas-tanstack/src/routes/auth.set-password.tsx +16 -0
  167. package/template/apps/asas-tanstack/src/routes/auth.sign-in.tsx +98 -0
  168. package/template/apps/asas-tanstack/src/routes/auth.sign-up.tsx +143 -0
  169. package/template/apps/asas-tanstack/src/routes/index.tsx +146 -0
  170. package/template/apps/asas-tanstack/src/routes/unauthorized.tsx +134 -0
  171. package/template/apps/asas-tanstack/src/screen-form.tsx +36 -0
  172. package/template/apps/asas-tanstack/src/screen-list.tsx +140 -0
  173. package/template/apps/asas-tanstack/src/screen-names.ts +10 -0
  174. package/template/apps/asas-tanstack/src/screens.tsx +888 -0
  175. package/template/apps/asas-tanstack/src/server.ts +26 -0
  176. package/template/apps/asas-tanstack/src/slide.ts +22 -0
  177. package/template/apps/asas-tanstack/src/start.ts +57 -0
  178. package/template/apps/asas-tanstack/src/styles.css +163 -0
  179. package/template/apps/asas-tanstack/src/theme.ts +5 -0
  180. package/template/apps/asas-tanstack/tsconfig.json +19 -0
  181. package/template/apps/asas-tanstack/vite.config.ts +34 -0
  182. package/template/package.json +16 -0
  183. package/template/templates/asas/.claude/skills/add-field/SKILL.md +27 -0
  184. package/template/templates/asas/.claude/skills/add-kayan/SKILL.md +26 -0
  185. package/template/templates/asas/.claude/skills/eject-admin-piece/SKILL.md +28 -0
  186. package/template/templates/asas/.claude/skills/upgrade-mithaq/SKILL.md +35 -0
  187. package/template/templates/asas/.env.example +33 -0
  188. package/template/templates/asas/AGENTS.md +101 -0
  189. package/template/templates/asas/CLAUDE.md +1 -0
  190. package/template/templates/asas/README.md +1056 -0
  191. package/template/templates/asas/mithaq.hints.json +25 -0
  192. package/template/templates/asas/package.json +53 -0
  193. package/template/templates/asas/src/asas.ts +118 -0
  194. package/template/templates/asas/src/backoffice-http.ts +117 -0
  195. package/template/templates/asas/src/dev-setup.ts +112 -0
  196. package/template/templates/asas/src/local-database.ts +22 -0
  197. package/template/templates/asas/src/messages/account.json +132 -0
  198. package/template/templates/asas/src/messages/auditLog.json +304 -0
  199. package/template/templates/asas/src/messages/backofficeLog.json +132 -0
  200. package/template/templates/asas/src/messages/courses.json +312 -0
  201. package/template/templates/asas/src/messages/enrollments.json +60 -0
  202. package/template/templates/asas/src/messages/invitation.json +82 -0
  203. package/template/templates/asas/src/messages/localUsers.json +48 -0
  204. package/template/templates/asas/src/messages/media.json +76 -0
  205. package/template/templates/asas/src/messages/member.json +62 -0
  206. package/template/templates/asas/src/messages/memberRoles.json +48 -0
  207. package/template/templates/asas/src/messages/mithaq.json +214 -0
  208. package/template/templates/asas/src/messages/organization.json +72 -0
  209. package/template/templates/asas/src/messages/organizationRole.json +62 -0
  210. package/template/templates/asas/src/messages/roles.json +72 -0
  211. package/template/templates/asas/src/messages/session.json +102 -0
  212. package/template/templates/asas/src/messages/sessions.json +136 -0
  213. package/template/templates/asas/src/messages/settings.json +64 -0
  214. package/template/templates/asas/src/messages/tags.json +48 -0
  215. package/template/templates/asas/src/messages/user.json +112 -0
  216. package/template/templates/asas/src/messages/verification.json +62 -0
  217. package/template/templates/asas/src/migrations/20260920080701_parched_tombstone/migration.sql +177 -0
  218. package/template/templates/asas/src/migrations/20260920080701_parched_tombstone/snapshot.json +2169 -0
  219. package/template/templates/asas/src/migrations/20260920230505_zippy_ben_urich/migration.sql +1 -0
  220. package/template/templates/asas/src/migrations/20260920230505_zippy_ben_urich/snapshot.json +2182 -0
  221. package/template/templates/asas/src/migrations/20260920231219_slim_retro_girl/migration.sql +20 -0
  222. package/template/templates/asas/src/migrations/20260920231219_slim_retro_girl/snapshot.json +2409 -0
  223. package/template/templates/asas/src/migrations/20260922082945_military_ironclad/migration.sql +15 -0
  224. package/template/templates/asas/src/migrations/20260922082945_military_ironclad/snapshot.json +2627 -0
  225. package/template/templates/asas/src/migrations/20260922112630_bitter_chat/migration.sql +5 -0
  226. package/template/templates/asas/src/migrations/20260922112630_bitter_chat/snapshot.json +2691 -0
  227. package/template/templates/asas/src/migrations/20260923235915_foamy_rachel_grey/migration.sql +8 -0
  228. package/template/templates/asas/src/migrations/20260923235915_foamy_rachel_grey/snapshot.json +2795 -0
  229. package/template/templates/asas/src/migrations/20260926145709_clean_the_initiative/migration.sql +3 -0
  230. package/template/templates/asas/src/migrations/20260926145709_clean_the_initiative/snapshot.json +2834 -0
  231. package/template/templates/asas/src/migrations/20260927212525_bent_prowler/migration.sql +9 -0
  232. package/template/templates/asas/src/migrations/20260927212525_bent_prowler/snapshot.json +2870 -0
  233. package/template/templates/asas/src/migrations/20260927223441_tranquil_bromley/migration.sql +1 -0
  234. package/template/templates/asas/src/migrations/20260927223441_tranquil_bromley/snapshot.json +2881 -0
  235. package/template/templates/asas/src/migrations/20260928030047_outgoing_wraith/migration.sql +15 -0
  236. package/template/templates/asas/src/migrations/20260928030047_outgoing_wraith/snapshot.json +3073 -0
  237. package/template/templates/asas/src/migrations/20260929024407_grey_morlun/migration.sql +21 -0
  238. package/template/templates/asas/src/migrations/20260929024407_grey_morlun/snapshot.json +3098 -0
  239. package/template/templates/asas/src/migrations/20260929130530_bored_jackal/migration.sql +21 -0
  240. package/template/templates/asas/src/migrations/20260929130530_bored_jackal/snapshot.json +3124 -0
  241. package/template/templates/asas/src/migrations/20260930102924_material_newton_destine/migration.sql +32 -0
  242. package/template/templates/asas/src/migrations/20260930102924_material_newton_destine/snapshot.json +3324 -0
  243. package/template/templates/asas/src/migrations/20261003022353_clumsy_taskmaster/migration.sql +2 -0
  244. package/template/templates/asas/src/migrations/20261003022353_clumsy_taskmaster/snapshot.json +3350 -0
  245. package/template/templates/asas/src/migrations/20261003143249_premium_red_shift/migration.sql +21 -0
  246. package/template/templates/asas/src/migrations/20261003143249_premium_red_shift/snapshot.json +3635 -0
  247. package/template/templates/asas/src/migrations/20261008215349_square_norrin_radd/migration.sql +8 -0
  248. package/template/templates/asas/src/migrations/20261008215349_square_norrin_radd/snapshot.json +3635 -0
  249. package/template/templates/asas/src/migrations/20261008230204_many_scarecrow/migration.sql +18 -0
  250. package/template/templates/asas/src/migrations/20261008230204_many_scarecrow/snapshot.json +3635 -0
  251. package/template/templates/asas/src/migrations/20261010005521_elite_giant_girl/migration.sql +18 -0
  252. package/template/templates/asas/src/migrations/20261010005521_elite_giant_girl/snapshot.json +3635 -0
  253. package/template/templates/asas/src/migrations/20261010120822_needy_thunderbolt/migration.sql +11 -0
  254. package/template/templates/asas/src/migrations/20261010120822_needy_thunderbolt/snapshot.json +3667 -0
  255. package/template/templates/asas/src/migrations/20261012000752_organization_ownership/migration.sql +48 -0
  256. package/template/templates/asas/src/migrations/20261012000752_organization_ownership/snapshot.json +3891 -0
  257. package/template/templates/asas/src/migrations/20261014221355_tags_restrict/migration.sql +1 -0
  258. package/template/templates/asas/src/migrations/20261014221355_tags_restrict/snapshot.json +3881 -0
  259. package/template/templates/asas/src/migrations/20261014222218_one_seat_per_session/migration.sql +1 -0
  260. package/template/templates/asas/src/migrations/20261014222218_one_seat_per_session/snapshot.json +3894 -0
  261. package/template/templates/asas/src/migrations/20261014223522_session_archive_reason/migration.sql +1 -0
  262. package/template/templates/asas/src/migrations/20261014223522_session_archive_reason/snapshot.json +3907 -0
  263. package/template/templates/asas/src/migrations/20261014225728_course_archive_by_operation/migration.sql +1 -0
  264. package/template/templates/asas/src/migrations/20261014225728_course_archive_by_operation/snapshot.json +3907 -0
  265. package/template/templates/asas/src/migrations/20261015042444_organization_names/migration.sql +1 -0
  266. package/template/templates/asas/src/migrations/20261015042444_organization_names/snapshot.json +3920 -0
  267. package/template/templates/asas/src/migrations/20261015053212_member_last_seen/migration.sql +1 -0
  268. package/template/templates/asas/src/migrations/20261015053212_member_last_seen/snapshot.json +3933 -0
  269. package/template/templates/asas/src/migrations/20261015093203_activity_and_staff_history/migration.sql +15 -0
  270. package/template/templates/asas/src/migrations/20261015093203_activity_and_staff_history/snapshot.json +4113 -0
  271. package/template/templates/asas/src/migrations/20261015095752_portal/migration.sql +2 -0
  272. package/template/templates/asas/src/migrations/20261015095752_portal/snapshot.json +4113 -0
  273. package/template/templates/asas/src/migrations/20261015135529_better_auth_indexes/migration.sql +9 -0
  274. package/template/templates/asas/src/migrations/20261015135529_better_auth_indexes/snapshot.json +4302 -0
  275. package/template/templates/asas/src/migrations/20261015162438_audit_changes_json/migration.sql +27 -0
  276. package/template/templates/asas/src/migrations/20261015162438_audit_changes_json/snapshot.json +4289 -0
  277. package/template/templates/asas/src/migrations/drizzle.config.ts +11 -0
  278. package/template/templates/asas/src/migrations/schema.ts +30 -0
  279. package/template/templates/asas/src/mithaq.ts +4 -0
  280. package/template/templates/asas/src/organizations.ts +3 -0
  281. package/template/templates/asas/src/seed.ts +427 -0
  282. package/template/templates/asas/src/ui-backoffice/home.tsx +63 -0
  283. package/template/templates/asas/src/ui-backoffice/organization-actions.tsx +121 -0
  284. package/template/templates/asas/src/ui-backoffice/record-page.tsx +30 -0
  285. package/template/templates/asas/src/ui-backoffice/role-cells.tsx +59 -0
  286. package/template/templates/asas/src/ui-backoffice/user-actions.tsx +249 -0
  287. package/template/templates/asas/src/ui-dashboard/dashboard.tsx +300 -0
  288. package/template/templates/asas/src/ui-dashboard/home.tsx +73 -0
  289. package/template/templates/asas/src/ui-dashboard/members-card.tsx +147 -0
  290. package/template/templates/asas/src/ui-dashboard/members.tsx +829 -0
  291. package/template/templates/asas/src/ui-dashboard/theme-provider.tsx +10 -0
  292. package/template/templates/asas/src/ui-dashboard/versions.tsx +446 -0
  293. package/template/templates/asas/src/ui-portal/courses-home.tsx +96 -0
  294. package/template/templates/asas/src/ui-portal/home.tsx +73 -0
  295. package/template/templates/asas/src/ui-portal/page.tsx +11 -0
  296. package/template/templates/features/audit-log/audit-log/audit-log.ts +284 -0
  297. package/template/templates/features/audit-log/backoffice-log/backoffice-log.ts +67 -0
  298. package/template/templates/features/audit-log/index.ts +4 -0
  299. package/template/templates/features/audit-log/package.json +13 -0
  300. package/template/templates/features/auth/index.ts +11 -0
  301. package/template/templates/features/auth/local-users/local-users.ts +143 -0
  302. package/template/templates/features/auth/package.json +13 -0
  303. package/template/templates/features/auth/user/account.access.ts +8 -0
  304. package/template/templates/features/auth/user/account.ts +31 -0
  305. package/template/templates/features/auth/user/index.ts +18 -0
  306. package/template/templates/features/auth/user/invitation.access.ts +4 -0
  307. package/template/templates/features/auth/user/invitation.ts +27 -0
  308. package/template/templates/features/auth/user/member.access.ts +10 -0
  309. package/template/templates/features/auth/user/member.screens.ts +37 -0
  310. package/template/templates/features/auth/user/member.ts +26 -0
  311. package/template/templates/features/auth/user/organization.access.ts +20 -0
  312. package/template/templates/features/auth/user/organization.screens.ts +37 -0
  313. package/template/templates/features/auth/user/organization.ts +25 -0
  314. package/template/templates/features/auth/user/organizationRole.access.ts +8 -0
  315. package/template/templates/features/auth/user/organizationRole.ts +25 -0
  316. package/template/templates/features/auth/user/session.access.ts +8 -0
  317. package/template/templates/features/auth/user/session.ts +28 -0
  318. package/template/templates/features/auth/user/user.access.ts +30 -0
  319. package/template/templates/features/auth/user/user.screens.ts +45 -0
  320. package/template/templates/features/auth/user/user.ts +31 -0
  321. package/template/templates/features/auth/user/verification.access.ts +8 -0
  322. package/template/templates/features/auth/user/verification.ts +23 -0
  323. package/template/templates/features/courses/courses/courses.ts +601 -0
  324. package/template/templates/features/courses/courses/cover-reads.ts +33 -0
  325. package/template/templates/features/courses/courses/ui/archived-badge.tsx +9 -0
  326. package/template/templates/features/courses/courses/ui/fee-cell.tsx +19 -0
  327. package/template/templates/features/courses/courses/ui/no-courses.tsx +13 -0
  328. package/template/templates/features/courses/courses/ui/status-cell.tsx +33 -0
  329. package/template/templates/features/courses/courses/ui/unpublish-button.tsx +15 -0
  330. package/template/templates/features/courses/domain/archive.ts +39 -0
  331. package/template/templates/features/courses/domain/on-offer.ts +6 -0
  332. package/template/templates/features/courses/enrollments/enrollments.ts +309 -0
  333. package/template/templates/features/courses/enrollments/ui/session-cell.tsx +75 -0
  334. package/template/templates/features/courses/enrollments/ui/session-labels.tsx +36 -0
  335. package/template/templates/features/courses/index.ts +8 -0
  336. package/template/templates/features/courses/package.json +24 -0
  337. package/template/templates/features/courses/portal/ui/catalogue.tsx +86 -0
  338. package/template/templates/features/courses/portal/ui/course.tsx +176 -0
  339. package/template/templates/features/courses/portal/ui/enrollments.tsx +170 -0
  340. package/template/templates/features/courses/portal/ui/parts.tsx +95 -0
  341. package/template/templates/features/courses/portal/ui/reads.ts +76 -0
  342. package/template/templates/features/courses/portal/ui/rules.ts +87 -0
  343. package/template/templates/features/courses/portal/ui/shell.tsx +194 -0
  344. package/template/templates/features/courses/sessions/seats.ts +42 -0
  345. package/template/templates/features/courses/sessions/sessions.ts +186 -0
  346. package/template/templates/features/media/index.ts +10 -0
  347. package/template/templates/features/media/media/media.ts +131 -0
  348. package/template/templates/features/media/media/ui/preview.tsx +143 -0
  349. package/template/templates/features/media/package.json +19 -0
  350. package/template/templates/features/roles/index.ts +4 -0
  351. package/template/templates/features/roles/member-roles/member-roles.ts +207 -0
  352. package/template/templates/features/roles/package.json +21 -0
  353. package/template/templates/features/roles/roles/roles.ts +184 -0
  354. package/template/templates/features/roles/roles/ui/role-form.tsx +267 -0
  355. package/template/templates/features/roles/roles/ui/roles.tsx +190 -0
  356. package/template/templates/features/settings/index.ts +3 -0
  357. package/template/templates/features/settings/package.json +13 -0
  358. package/template/templates/features/settings/settings/settings.ts +64 -0
  359. package/template/templates/features/tags/index.ts +3 -0
  360. package/template/templates/features/tags/package.json +14 -0
  361. package/template/templates/features/tags/tags/tags.ts +80 -0
  362. package/template/templates/mithaq/components.json +22 -0
  363. package/template/templates/mithaq/package.json +33 -0
  364. package/template/templates/mithaq/src/mail/index.ts +32 -0
  365. package/template/templates/mithaq/src/mail/mailers.ts +36 -0
  366. package/template/templates/mithaq/src/mithaq/audit-sink.ts +111 -0
  367. package/template/templates/mithaq/src/mithaq/auth/backoffice-roles.ts +108 -0
  368. package/template/templates/mithaq/src/mithaq/auth/index.ts +1859 -0
  369. package/template/templates/mithaq/src/mithaq/auth/organizations.ts +80 -0
  370. package/template/templates/mithaq/src/mithaq/pages.ts +83 -0
  371. package/template/templates/mithaq/src/mithaq/rich-text-nodes.ts +19 -0
  372. package/template/templates/mithaq/src/mithaq.ts +593 -0
  373. package/template/templates/mithaq/src/roles/default-member-roles.ts +29 -0
  374. package/template/templates/mithaq/src/roles/grants.ts +47 -0
  375. package/template/templates/mithaq/src/roles/member-access.ts +11 -0
  376. package/template/templates/mithaq/src/roles/statements.ts +13 -0
  377. package/template/templates/mithaq/src/roles/system-roles.ts +16 -0
  378. package/template/templates/mithaq/src/roles/tenant-access.ts +260 -0
  379. package/template/templates/mithaq/src/roles/tenant-roles.ts +321 -0
  380. package/template/templates/mithaq/src/steps/expected-updated-at.ts +41 -0
  381. package/template/templates/mithaq/src/storage/defaults.ts +156 -0
  382. package/template/templates/mithaq/src/storage/index.ts +97 -0
  383. package/template/templates/mithaq/src/storage/local.ts +143 -0
  384. package/template/templates/mithaq/src/storage/r2.ts +5 -0
  385. package/template/templates/mithaq/src/storage/s3.ts +91 -0
  386. package/template/templates/mithaq/src/storage/uploadthing.ts +59 -0
  387. package/template/templates/mithaq/src/ui/activity-page.tsx +33 -0
  388. package/template/templates/mithaq/src/ui/activity.tsx +527 -0
  389. package/template/templates/mithaq/src/ui/app-shell.tsx +268 -0
  390. package/template/templates/mithaq/src/ui/kpi-card.tsx +25 -0
  391. package/template/templates/mithaq/src/ui/record-page.tsx +50 -0
  392. package/template/templates/mithaq/src/ui/rich-text-nodes.tsx +33 -0
  393. package/template/templates/mithaq/src/ui/screen-nav.tsx +28 -0
  394. package/template/templates/mithaq/src/ui/table-page.tsx +9 -0
  395. package/template/templates/mithaq/src/ui/top-shell.tsx +60 -0
  396. package/README.md +0 -3
@@ -0,0 +1,424 @@
1
+ /* eslint-disable */
2
+
3
+ // @ts-nocheck
4
+
5
+ // noinspection JSUnusedGlobalSymbols
6
+
7
+ // This file was automatically generated by TanStack Router.
8
+ // You should NOT make any changes in this file as it will be overwritten.
9
+ // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
+
11
+ import { Route as rootRouteImport } from './routes/__root'
12
+ import { Route as IndexRouteImport } from './routes/index'
13
+ import { Route as UnauthorizedRouteImport } from './routes/unauthorized'
14
+ import { Route as screensDashboardRouteImport } from './routes/(screens)/dashboard'
15
+ import { Route as screensPortalRouteImport } from './routes/(screens)/portal'
16
+ import { Route as ApiSplatRouteImport } from './routes/api/$'
17
+ import { Route as AuthAcceptInvitationRouteImport } from './routes/auth.accept-invitation'
18
+ import { Route as AuthFirstRunRouteImport } from './routes/auth.first-run'
19
+ import { Route as AuthForgotPasswordRouteImport } from './routes/auth.forgot-password'
20
+ import { Route as AuthHandoffRouteImport } from './routes/auth.handoff'
21
+ import { Route as AuthResetPasswordRouteImport } from './routes/auth.reset-password'
22
+ import { Route as AuthSetPasswordRouteImport } from './routes/auth.set-password'
23
+ import { Route as AuthSignInRouteImport } from './routes/auth.sign-in'
24
+ import { Route as AuthSignUpRouteImport } from './routes/auth.sign-up'
25
+ import { Route as screensDashboardIndexRouteImport } from './routes/(screens)/dashboard.index'
26
+ import { Route as screensDashboardSplatRouteImport } from './routes/(screens)/dashboard.$'
27
+ import { Route as screensPortalIndexRouteImport } from './routes/(screens)/portal.index'
28
+ import { Route as screensPortalSplatRouteImport } from './routes/(screens)/portal.$'
29
+
30
+ const IndexRoute = IndexRouteImport.update({
31
+ id: '/',
32
+ path: '/',
33
+ getParentRoute: () => rootRouteImport,
34
+ } as any)
35
+ const UnauthorizedRoute = UnauthorizedRouteImport.update({
36
+ id: '/unauthorized',
37
+ path: '/unauthorized',
38
+ getParentRoute: () => rootRouteImport,
39
+ } as any)
40
+ const screensDashboardRoute = screensDashboardRouteImport.update({
41
+ id: '/(screens)/dashboard',
42
+ path: '/dashboard',
43
+ getParentRoute: () => rootRouteImport,
44
+ } as any)
45
+ const screensPortalRoute = screensPortalRouteImport.update({
46
+ id: '/(screens)/portal',
47
+ path: '/portal',
48
+ getParentRoute: () => rootRouteImport,
49
+ } as any)
50
+ const ApiSplatRoute = ApiSplatRouteImport.update({
51
+ id: '/api/$',
52
+ path: '/api/$',
53
+ getParentRoute: () => rootRouteImport,
54
+ } as any)
55
+ const AuthAcceptInvitationRoute = AuthAcceptInvitationRouteImport.update({
56
+ id: '/auth/accept-invitation',
57
+ path: '/auth/accept-invitation',
58
+ getParentRoute: () => rootRouteImport,
59
+ } as any)
60
+ const AuthFirstRunRoute = AuthFirstRunRouteImport.update({
61
+ id: '/auth/first-run',
62
+ path: '/auth/first-run',
63
+ getParentRoute: () => rootRouteImport,
64
+ } as any)
65
+ const AuthForgotPasswordRoute = AuthForgotPasswordRouteImport.update({
66
+ id: '/auth/forgot-password',
67
+ path: '/auth/forgot-password',
68
+ getParentRoute: () => rootRouteImport,
69
+ } as any)
70
+ const AuthHandoffRoute = AuthHandoffRouteImport.update({
71
+ id: '/auth/handoff',
72
+ path: '/auth/handoff',
73
+ getParentRoute: () => rootRouteImport,
74
+ } as any)
75
+ const AuthResetPasswordRoute = AuthResetPasswordRouteImport.update({
76
+ id: '/auth/reset-password',
77
+ path: '/auth/reset-password',
78
+ getParentRoute: () => rootRouteImport,
79
+ } as any)
80
+ const AuthSetPasswordRoute = AuthSetPasswordRouteImport.update({
81
+ id: '/auth/set-password',
82
+ path: '/auth/set-password',
83
+ getParentRoute: () => rootRouteImport,
84
+ } as any)
85
+ const AuthSignInRoute = AuthSignInRouteImport.update({
86
+ id: '/auth/sign-in',
87
+ path: '/auth/sign-in',
88
+ getParentRoute: () => rootRouteImport,
89
+ } as any)
90
+ const AuthSignUpRoute = AuthSignUpRouteImport.update({
91
+ id: '/auth/sign-up',
92
+ path: '/auth/sign-up',
93
+ getParentRoute: () => rootRouteImport,
94
+ } as any)
95
+ const screensDashboardIndexRoute = screensDashboardIndexRouteImport.update({
96
+ id: '/',
97
+ path: '/',
98
+ getParentRoute: () => screensDashboardRoute,
99
+ } as any)
100
+ const screensDashboardSplatRoute = screensDashboardSplatRouteImport.update({
101
+ id: '/$',
102
+ path: '/$',
103
+ getParentRoute: () => screensDashboardRoute,
104
+ } as any)
105
+ const screensPortalIndexRoute = screensPortalIndexRouteImport.update({
106
+ id: '/',
107
+ path: '/',
108
+ getParentRoute: () => screensPortalRoute,
109
+ } as any)
110
+ const screensPortalSplatRoute = screensPortalSplatRouteImport.update({
111
+ id: '/$',
112
+ path: '/$',
113
+ getParentRoute: () => screensPortalRoute,
114
+ } as any)
115
+
116
+ export interface FileRoutesByFullPath {
117
+ '/': typeof IndexRoute
118
+ '/unauthorized': typeof UnauthorizedRoute
119
+ '/dashboard': typeof screensDashboardRouteWithChildren
120
+ '/portal': typeof screensPortalRouteWithChildren
121
+ '/api/$': typeof ApiSplatRoute
122
+ '/auth/accept-invitation': typeof AuthAcceptInvitationRoute
123
+ '/auth/first-run': typeof AuthFirstRunRoute
124
+ '/auth/forgot-password': typeof AuthForgotPasswordRoute
125
+ '/auth/handoff': typeof AuthHandoffRoute
126
+ '/auth/reset-password': typeof AuthResetPasswordRoute
127
+ '/auth/set-password': typeof AuthSetPasswordRoute
128
+ '/auth/sign-in': typeof AuthSignInRoute
129
+ '/auth/sign-up': typeof AuthSignUpRoute
130
+ '/dashboard/$': typeof screensDashboardSplatRoute
131
+ '/portal/$': typeof screensPortalSplatRoute
132
+ '/dashboard/': typeof screensDashboardIndexRoute
133
+ '/portal/': typeof screensPortalIndexRoute
134
+ }
135
+ export interface FileRoutesByTo {
136
+ '/': typeof IndexRoute
137
+ '/unauthorized': typeof UnauthorizedRoute
138
+ '/api/$': typeof ApiSplatRoute
139
+ '/auth/accept-invitation': typeof AuthAcceptInvitationRoute
140
+ '/auth/first-run': typeof AuthFirstRunRoute
141
+ '/auth/forgot-password': typeof AuthForgotPasswordRoute
142
+ '/auth/handoff': typeof AuthHandoffRoute
143
+ '/auth/reset-password': typeof AuthResetPasswordRoute
144
+ '/auth/set-password': typeof AuthSetPasswordRoute
145
+ '/auth/sign-in': typeof AuthSignInRoute
146
+ '/auth/sign-up': typeof AuthSignUpRoute
147
+ '/dashboard/$': typeof screensDashboardSplatRoute
148
+ '/portal/$': typeof screensPortalSplatRoute
149
+ '/dashboard': typeof screensDashboardIndexRoute
150
+ '/portal': typeof screensPortalIndexRoute
151
+ }
152
+ export interface FileRoutesById {
153
+ __root__: typeof rootRouteImport
154
+ '/': typeof IndexRoute
155
+ '/unauthorized': typeof UnauthorizedRoute
156
+ '/(screens)/dashboard': typeof screensDashboardRouteWithChildren
157
+ '/(screens)/portal': typeof screensPortalRouteWithChildren
158
+ '/api/$': typeof ApiSplatRoute
159
+ '/auth/accept-invitation': typeof AuthAcceptInvitationRoute
160
+ '/auth/first-run': typeof AuthFirstRunRoute
161
+ '/auth/forgot-password': typeof AuthForgotPasswordRoute
162
+ '/auth/handoff': typeof AuthHandoffRoute
163
+ '/auth/reset-password': typeof AuthResetPasswordRoute
164
+ '/auth/set-password': typeof AuthSetPasswordRoute
165
+ '/auth/sign-in': typeof AuthSignInRoute
166
+ '/auth/sign-up': typeof AuthSignUpRoute
167
+ '/(screens)/dashboard/$': typeof screensDashboardSplatRoute
168
+ '/(screens)/portal/$': typeof screensPortalSplatRoute
169
+ '/(screens)/dashboard/': typeof screensDashboardIndexRoute
170
+ '/(screens)/portal/': typeof screensPortalIndexRoute
171
+ }
172
+ export interface FileRouteTypes {
173
+ fileRoutesByFullPath: FileRoutesByFullPath
174
+ fullPaths:
175
+ | '/'
176
+ | '/unauthorized'
177
+ | '/dashboard'
178
+ | '/portal'
179
+ | '/api/$'
180
+ | '/auth/accept-invitation'
181
+ | '/auth/first-run'
182
+ | '/auth/forgot-password'
183
+ | '/auth/handoff'
184
+ | '/auth/reset-password'
185
+ | '/auth/set-password'
186
+ | '/auth/sign-in'
187
+ | '/auth/sign-up'
188
+ | '/dashboard/$'
189
+ | '/portal/$'
190
+ | '/dashboard/'
191
+ | '/portal/'
192
+ fileRoutesByTo: FileRoutesByTo
193
+ to:
194
+ | '/'
195
+ | '/unauthorized'
196
+ | '/api/$'
197
+ | '/auth/accept-invitation'
198
+ | '/auth/first-run'
199
+ | '/auth/forgot-password'
200
+ | '/auth/handoff'
201
+ | '/auth/reset-password'
202
+ | '/auth/set-password'
203
+ | '/auth/sign-in'
204
+ | '/auth/sign-up'
205
+ | '/dashboard/$'
206
+ | '/portal/$'
207
+ | '/dashboard'
208
+ | '/portal'
209
+ id:
210
+ | '__root__'
211
+ | '/'
212
+ | '/unauthorized'
213
+ | '/(screens)/dashboard'
214
+ | '/(screens)/portal'
215
+ | '/api/$'
216
+ | '/auth/accept-invitation'
217
+ | '/auth/first-run'
218
+ | '/auth/forgot-password'
219
+ | '/auth/handoff'
220
+ | '/auth/reset-password'
221
+ | '/auth/set-password'
222
+ | '/auth/sign-in'
223
+ | '/auth/sign-up'
224
+ | '/(screens)/dashboard/$'
225
+ | '/(screens)/portal/$'
226
+ | '/(screens)/dashboard/'
227
+ | '/(screens)/portal/'
228
+ fileRoutesById: FileRoutesById
229
+ }
230
+ export interface RootRouteChildren {
231
+ IndexRoute: typeof IndexRoute
232
+ UnauthorizedRoute: typeof UnauthorizedRoute
233
+ screensDashboardRoute: typeof screensDashboardRouteWithChildren
234
+ screensPortalRoute: typeof screensPortalRouteWithChildren
235
+ ApiSplatRoute: typeof ApiSplatRoute
236
+ AuthAcceptInvitationRoute: typeof AuthAcceptInvitationRoute
237
+ AuthFirstRunRoute: typeof AuthFirstRunRoute
238
+ AuthForgotPasswordRoute: typeof AuthForgotPasswordRoute
239
+ AuthHandoffRoute: typeof AuthHandoffRoute
240
+ AuthResetPasswordRoute: typeof AuthResetPasswordRoute
241
+ AuthSetPasswordRoute: typeof AuthSetPasswordRoute
242
+ AuthSignInRoute: typeof AuthSignInRoute
243
+ AuthSignUpRoute: typeof AuthSignUpRoute
244
+ }
245
+
246
+ declare module '@tanstack/react-router' {
247
+ interface FileRoutesByPath {
248
+ '/': {
249
+ id: '/'
250
+ path: '/'
251
+ fullPath: '/'
252
+ preLoaderRoute: typeof IndexRouteImport
253
+ parentRoute: typeof rootRouteImport
254
+ }
255
+ '/unauthorized': {
256
+ id: '/unauthorized'
257
+ path: '/unauthorized'
258
+ fullPath: '/unauthorized'
259
+ preLoaderRoute: typeof UnauthorizedRouteImport
260
+ parentRoute: typeof rootRouteImport
261
+ }
262
+ '/(screens)/dashboard': {
263
+ id: '/(screens)/dashboard'
264
+ path: '/dashboard'
265
+ fullPath: '/dashboard'
266
+ preLoaderRoute: typeof screensDashboardRouteImport
267
+ parentRoute: typeof rootRouteImport
268
+ }
269
+ '/(screens)/portal': {
270
+ id: '/(screens)/portal'
271
+ path: '/portal'
272
+ fullPath: '/portal'
273
+ preLoaderRoute: typeof screensPortalRouteImport
274
+ parentRoute: typeof rootRouteImport
275
+ }
276
+ '/api/$': {
277
+ id: '/api/$'
278
+ path: '/api/$'
279
+ fullPath: '/api/$'
280
+ preLoaderRoute: typeof ApiSplatRouteImport
281
+ parentRoute: typeof rootRouteImport
282
+ }
283
+ '/auth/accept-invitation': {
284
+ id: '/auth/accept-invitation'
285
+ path: '/auth/accept-invitation'
286
+ fullPath: '/auth/accept-invitation'
287
+ preLoaderRoute: typeof AuthAcceptInvitationRouteImport
288
+ parentRoute: typeof rootRouteImport
289
+ }
290
+ '/auth/first-run': {
291
+ id: '/auth/first-run'
292
+ path: '/auth/first-run'
293
+ fullPath: '/auth/first-run'
294
+ preLoaderRoute: typeof AuthFirstRunRouteImport
295
+ parentRoute: typeof rootRouteImport
296
+ }
297
+ '/auth/forgot-password': {
298
+ id: '/auth/forgot-password'
299
+ path: '/auth/forgot-password'
300
+ fullPath: '/auth/forgot-password'
301
+ preLoaderRoute: typeof AuthForgotPasswordRouteImport
302
+ parentRoute: typeof rootRouteImport
303
+ }
304
+ '/auth/handoff': {
305
+ id: '/auth/handoff'
306
+ path: '/auth/handoff'
307
+ fullPath: '/auth/handoff'
308
+ preLoaderRoute: typeof AuthHandoffRouteImport
309
+ parentRoute: typeof rootRouteImport
310
+ }
311
+ '/auth/reset-password': {
312
+ id: '/auth/reset-password'
313
+ path: '/auth/reset-password'
314
+ fullPath: '/auth/reset-password'
315
+ preLoaderRoute: typeof AuthResetPasswordRouteImport
316
+ parentRoute: typeof rootRouteImport
317
+ }
318
+ '/auth/set-password': {
319
+ id: '/auth/set-password'
320
+ path: '/auth/set-password'
321
+ fullPath: '/auth/set-password'
322
+ preLoaderRoute: typeof AuthSetPasswordRouteImport
323
+ parentRoute: typeof rootRouteImport
324
+ }
325
+ '/auth/sign-in': {
326
+ id: '/auth/sign-in'
327
+ path: '/auth/sign-in'
328
+ fullPath: '/auth/sign-in'
329
+ preLoaderRoute: typeof AuthSignInRouteImport
330
+ parentRoute: typeof rootRouteImport
331
+ }
332
+ '/auth/sign-up': {
333
+ id: '/auth/sign-up'
334
+ path: '/auth/sign-up'
335
+ fullPath: '/auth/sign-up'
336
+ preLoaderRoute: typeof AuthSignUpRouteImport
337
+ parentRoute: typeof rootRouteImport
338
+ }
339
+ '/(screens)/dashboard/': {
340
+ id: '/(screens)/dashboard/'
341
+ path: '/'
342
+ fullPath: '/dashboard/'
343
+ preLoaderRoute: typeof screensDashboardIndexRouteImport
344
+ parentRoute: typeof screensDashboardRoute
345
+ }
346
+ '/(screens)/dashboard/$': {
347
+ id: '/(screens)/dashboard/$'
348
+ path: '/$'
349
+ fullPath: '/dashboard/$'
350
+ preLoaderRoute: typeof screensDashboardSplatRouteImport
351
+ parentRoute: typeof screensDashboardRoute
352
+ }
353
+ '/(screens)/portal/': {
354
+ id: '/(screens)/portal/'
355
+ path: '/'
356
+ fullPath: '/portal/'
357
+ preLoaderRoute: typeof screensPortalIndexRouteImport
358
+ parentRoute: typeof screensPortalRoute
359
+ }
360
+ '/(screens)/portal/$': {
361
+ id: '/(screens)/portal/$'
362
+ path: '/$'
363
+ fullPath: '/portal/$'
364
+ preLoaderRoute: typeof screensPortalSplatRouteImport
365
+ parentRoute: typeof screensPortalRoute
366
+ }
367
+ }
368
+ }
369
+
370
+ interface screensDashboardRouteChildren {
371
+ screensDashboardSplatRoute: typeof screensDashboardSplatRoute
372
+ screensDashboardIndexRoute: typeof screensDashboardIndexRoute
373
+ }
374
+
375
+ const screensDashboardRouteChildren: screensDashboardRouteChildren = {
376
+ screensDashboardSplatRoute: screensDashboardSplatRoute,
377
+ screensDashboardIndexRoute: screensDashboardIndexRoute,
378
+ }
379
+
380
+ const screensDashboardRouteWithChildren =
381
+ screensDashboardRoute._addFileChildren(screensDashboardRouteChildren)
382
+
383
+ interface screensPortalRouteChildren {
384
+ screensPortalSplatRoute: typeof screensPortalSplatRoute
385
+ screensPortalIndexRoute: typeof screensPortalIndexRoute
386
+ }
387
+
388
+ const screensPortalRouteChildren: screensPortalRouteChildren = {
389
+ screensPortalSplatRoute: screensPortalSplatRoute,
390
+ screensPortalIndexRoute: screensPortalIndexRoute,
391
+ }
392
+
393
+ const screensPortalRouteWithChildren = screensPortalRoute._addFileChildren(
394
+ screensPortalRouteChildren,
395
+ )
396
+
397
+ const rootRouteChildren: RootRouteChildren = {
398
+ IndexRoute: IndexRoute,
399
+ UnauthorizedRoute: UnauthorizedRoute,
400
+ screensDashboardRoute: screensDashboardRouteWithChildren,
401
+ screensPortalRoute: screensPortalRouteWithChildren,
402
+ ApiSplatRoute: ApiSplatRoute,
403
+ AuthAcceptInvitationRoute: AuthAcceptInvitationRoute,
404
+ AuthFirstRunRoute: AuthFirstRunRoute,
405
+ AuthForgotPasswordRoute: AuthForgotPasswordRoute,
406
+ AuthHandoffRoute: AuthHandoffRoute,
407
+ AuthResetPasswordRoute: AuthResetPasswordRoute,
408
+ AuthSetPasswordRoute: AuthSetPasswordRoute,
409
+ AuthSignInRoute: AuthSignInRoute,
410
+ AuthSignUpRoute: AuthSignUpRoute,
411
+ }
412
+ export const routeTree = rootRouteImport
413
+ ._addFileChildren(rootRouteChildren)
414
+ ._addFileTypes<FileRouteTypes>()
415
+
416
+ import type { getRouter } from './router.tsx'
417
+ import type { startInstance } from './start.ts'
418
+ declare module '@tanstack/react-start' {
419
+ interface Register {
420
+ ssr: true
421
+ router: Awaited<ReturnType<typeof getRouter>>
422
+ config: Awaited<ReturnType<typeof startInstance.getOptions>>
423
+ }
424
+ }
@@ -0,0 +1,18 @@
1
+ import { createRouter } from '@tanstack/react-router'
2
+ import { routeTree } from './routeTree.gen'
3
+ import { flatSearch } from './screen-list.tsx'
4
+ import { ComponentsProvider, RouteError } from 'mithaq-admin/components.tsx'
5
+ import { components } from './components.ts'
6
+
7
+ // The search is read and written as the URL's own pairs, one string each, because a list
8
+ // keeps its `qs` query there.
9
+ export const getRouter = () =>
10
+ createRouter({
11
+ routeTree,
12
+ scrollRestoration: true,
13
+ ...flatSearch,
14
+ // Around every route, so each screen draws its controls from this map.
15
+ Wrap: ({ children }) => <ComponentsProvider components={components}>{children}</ComponentsProvider>,
16
+ // Drawn in place of the route that threw, so the shell around it stays.
17
+ defaultErrorComponent: RouteError,
18
+ })
@@ -0,0 +1,11 @@
1
+ // Written by `mithaq generate screens`. Do not edit.
2
+ /// <reference types="vite/client" />
3
+ // Every file the `dashboard` 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-dashboard/dashboard.tsx', './src/ui-dashboard/members.tsx', './src/ui-dashboard/theme-provider.tsx', './src/ui-dashboard/versions.tsx'], { base: '../../../../../../templates/asas/', exhaustive: true }),
7
+ ...named('@asas/courses', import.meta.glob(['./courses/ui/archived-badge.tsx', './courses/ui/fee-cell.tsx', './courses/ui/no-courses.tsx', './courses/ui/status-cell.tsx', './courses/ui/unpublish-button.tsx', './enrollments/ui/session-cell.tsx', './enrollments/ui/session-labels.tsx'], { base: '../../../../../../templates/features/courses/', exhaustive: true })),
8
+ ...named('@asas/media', import.meta.glob(['./media/ui/preview.tsx'], { base: '../../../../../../templates/features/media/', exhaustive: true })),
9
+ ...named('@asas/mithaq', import.meta.glob(['./src/ui/activity-page.tsx', './src/ui/activity.tsx', './src/ui/app-shell.tsx', './src/ui/record-page.tsx', './src/ui/rich-text-nodes.tsx', './src/ui/table-page.tsx', './src/ui/top-shell.tsx'], { base: '../../../../../../templates/mithaq/', exhaustive: true })),
10
+ ...named('@asas/roles', import.meta.glob(['./roles/ui/role-form.tsx', './roles/ui/roles.tsx'], { base: '../../../../../../templates/features/roles/', exhaustive: true })),
11
+ }