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
@@ -1,58 +1,72 @@
1
1
  {
2
- "id.invalid": {
3
- "ar": "هذا ليس معرفا فريدا.",
4
- "en": "This is not a unique identifier."
5
- },
6
- "id.required": {
7
- "ar": "هذا الحقل مطلوب.",
8
- "en": "This field is required."
2
+ "id": {
3
+ "invalid": {
4
+ "ar": "هذا ليس معرفا فريدا.",
5
+ "en": "This is not a unique identifier."
6
+ },
7
+ "required": {
8
+ "ar": "هذا الحقل مطلوب.",
9
+ "en": "This field is required."
10
+ }
9
11
  },
10
12
  "label": {
11
- "ar": "التسمية",
12
- "en": "Label"
13
- },
14
- "label.invalid": {
15
- "ar": "هذا ليس نصا.",
16
- "en": "This is not text."
17
- },
18
- "label.maxLength": {
19
- "ar": "القيمة طويلة جدًا.",
20
- "en": "The value is too long."
21
- },
22
- "label.required": {
23
- "ar": "هذا الحقل مطلوب.",
24
- "en": "This field is required."
13
+ "$value": {
14
+ "ar": "التسمية",
15
+ "en": "Label"
16
+ },
17
+ "invalid": {
18
+ "ar": "هذا ليس نصا.",
19
+ "en": "This is not text."
20
+ },
21
+ "maxLength": {
22
+ "ar": "القيمة طويلة جدًا.",
23
+ "en": "The value is too long."
24
+ },
25
+ "required": {
26
+ "ar": "هذا الحقل مطلوب.",
27
+ "en": "This field is required."
28
+ }
25
29
  },
26
30
  "name": {
27
- "ar": "الاسم",
28
- "en": "Name"
29
- },
30
- "name.invalid": {
31
- "ar": "هذا ليس نصا.",
32
- "en": "This is not text."
33
- },
34
- "name.maxLength": {
35
- "ar": "القيمة طويلة جدًا.",
36
- "en": "The value is too long."
37
- },
38
- "name.required": {
39
- "ar": "هذا الحقل مطلوب.",
40
- "en": "This field is required."
31
+ "$value": {
32
+ "ar": "الاسم",
33
+ "en": "Name"
34
+ },
35
+ "invalid": {
36
+ "ar": "هذا ليس نصا.",
37
+ "en": "This is not text."
38
+ },
39
+ "maxLength": {
40
+ "ar": "القيمة طويلة جدًا.",
41
+ "en": "The value is too long."
42
+ },
43
+ "required": {
44
+ "ar": "هذا الحقل مطلوب.",
45
+ "en": "This field is required."
46
+ }
41
47
  },
42
48
  "organization": {
43
49
  "ar": "المؤسسة",
44
50
  "en": "Organization"
45
51
  },
46
- "permissions": {
47
- "ar": "الصلاحيات",
48
- "en": "Permissions"
52
+ "page": {
53
+ "description": {
54
+ "ar": "ما يمكن لكل دور في هذه المؤسسة أن يراه ويفعله.",
55
+ "en": "What each role in this organization may see and do."
56
+ }
49
57
  },
50
- "permissions.invalid": {
51
- "ar": "هذه ليست قائمة نصوص.",
52
- "en": "This is not a list of text."
53
- },
54
- "permissions.required": {
55
- "ar": "هذا الحقل مطلوب.",
56
- "en": "This field is required."
58
+ "permissions": {
59
+ "$value": {
60
+ "ar": "الصلاحيات",
61
+ "en": "Permissions"
62
+ },
63
+ "invalid": {
64
+ "ar": "هذه ليست قائمة نصوص.",
65
+ "en": "This is not a list of text."
66
+ },
67
+ "required": {
68
+ "ar": "هذا الحقل مطلوب.",
69
+ "en": "This field is required."
70
+ }
57
71
  }
58
72
  }
@@ -1,82 +1,102 @@
1
1
  {
2
- "activeOrganizationId.invalid": {
3
- "ar": "هذا ليس نصا.",
4
- "en": "This is not text."
5
- },
6
- "activeOrganizationId.required": {
7
- "ar": "هذا الحقل مطلوب.",
8
- "en": "This field is required."
9
- },
10
- "createdAt.invalid": {
11
- "ar": "هذا ليس تاريخا ووقتا.",
12
- "en": "This is not a date and time."
13
- },
14
- "createdAt.required": {
15
- "ar": "هذا الحقل مطلوب.",
16
- "en": "This field is required."
17
- },
18
- "expiresAt.invalid": {
19
- "ar": "هذا ليس تاريخا ووقتا.",
20
- "en": "This is not a date and time."
21
- },
22
- "expiresAt.required": {
23
- "ar": "هذا الحقل مطلوب.",
24
- "en": "This field is required."
25
- },
26
- "id.invalid": {
27
- "ar": "هذا ليس نصا.",
28
- "en": "This is not text."
29
- },
30
- "id.required": {
31
- "ar": "هذا الحقل مطلوب.",
32
- "en": "This field is required."
33
- },
34
- "impersonatedBy.invalid": {
35
- "ar": "هذا ليس نصا.",
36
- "en": "This is not text."
37
- },
38
- "impersonatedBy.required": {
39
- "ar": "هذا الحقل مطلوب.",
40
- "en": "This field is required."
41
- },
42
- "ipAddress.invalid": {
43
- "ar": "هذا ليس نصا.",
44
- "en": "This is not text."
45
- },
46
- "ipAddress.required": {
47
- "ar": "هذا الحقل مطلوب.",
48
- "en": "This field is required."
49
- },
50
- "token.invalid": {
51
- "ar": "هذا ليس نصا.",
52
- "en": "This is not text."
53
- },
54
- "token.required": {
55
- "ar": "هذا الحقل مطلوب.",
56
- "en": "This field is required."
57
- },
58
- "updatedAt.invalid": {
59
- "ar": "هذا ليس تاريخا ووقتا.",
60
- "en": "This is not a date and time."
61
- },
62
- "updatedAt.required": {
63
- "ar": "هذا الحقل مطلوب.",
64
- "en": "This field is required."
65
- },
66
- "userAgent.invalid": {
67
- "ar": "هذا ليس نصا.",
68
- "en": "This is not text."
69
- },
70
- "userAgent.required": {
71
- "ar": "هذا الحقل مطلوب.",
72
- "en": "This field is required."
73
- },
74
- "userId.invalid": {
75
- "ar": "اختر عنصرًا من القائمة.",
76
- "en": "Pick one of the listed entries."
77
- },
78
- "userId.required": {
79
- "ar": "هذا الحقل مطلوب.",
80
- "en": "This field is required."
2
+ "activeOrganizationId": {
3
+ "invalid": {
4
+ "ar": "هذا ليس نصا.",
5
+ "en": "This is not text."
6
+ },
7
+ "required": {
8
+ "ar": "هذا الحقل مطلوب.",
9
+ "en": "This field is required."
10
+ }
11
+ },
12
+ "createdAt": {
13
+ "invalid": {
14
+ "ar": "هذا ليس تاريخا ووقتا.",
15
+ "en": "This is not a date and time."
16
+ },
17
+ "required": {
18
+ "ar": "هذا الحقل مطلوب.",
19
+ "en": "This field is required."
20
+ }
21
+ },
22
+ "expiresAt": {
23
+ "invalid": {
24
+ "ar": "هذا ليس تاريخا ووقتا.",
25
+ "en": "This is not a date and time."
26
+ },
27
+ "required": {
28
+ "ar": "هذا الحقل مطلوب.",
29
+ "en": "This field is required."
30
+ }
31
+ },
32
+ "id": {
33
+ "invalid": {
34
+ "ar": "هذا ليس نصا.",
35
+ "en": "This is not text."
36
+ },
37
+ "required": {
38
+ "ar": "هذا الحقل مطلوب.",
39
+ "en": "This field is required."
40
+ }
41
+ },
42
+ "impersonatedBy": {
43
+ "invalid": {
44
+ "ar": "هذا ليس نصا.",
45
+ "en": "This is not text."
46
+ },
47
+ "required": {
48
+ "ar": "هذا الحقل مطلوب.",
49
+ "en": "This field is required."
50
+ }
51
+ },
52
+ "ipAddress": {
53
+ "invalid": {
54
+ "ar": "هذا ليس نصا.",
55
+ "en": "This is not text."
56
+ },
57
+ "required": {
58
+ "ar": "هذا الحقل مطلوب.",
59
+ "en": "This field is required."
60
+ }
61
+ },
62
+ "token": {
63
+ "invalid": {
64
+ "ar": "هذا ليس نصا.",
65
+ "en": "This is not text."
66
+ },
67
+ "required": {
68
+ "ar": "هذا الحقل مطلوب.",
69
+ "en": "This field is required."
70
+ }
71
+ },
72
+ "updatedAt": {
73
+ "invalid": {
74
+ "ar": "هذا ليس تاريخا ووقتا.",
75
+ "en": "This is not a date and time."
76
+ },
77
+ "required": {
78
+ "ar": "هذا الحقل مطلوب.",
79
+ "en": "This field is required."
80
+ }
81
+ },
82
+ "userAgent": {
83
+ "invalid": {
84
+ "ar": "هذا ليس نصا.",
85
+ "en": "This is not text."
86
+ },
87
+ "required": {
88
+ "ar": "هذا الحقل مطلوب.",
89
+ "en": "This field is required."
90
+ }
91
+ },
92
+ "userId": {
93
+ "invalid": {
94
+ "ar": "اختر عنصرًا من القائمة.",
95
+ "en": "Pick one of the listed entries."
96
+ },
97
+ "required": {
98
+ "ar": "هذا الحقل مطلوب.",
99
+ "en": "This field is required."
100
+ }
81
101
  }
82
102
  }
@@ -1,106 +1,136 @@
1
1
  {
2
+ "archiveReason": {
3
+ "ar": "سبب الأرشفة",
4
+ "en": "Archive reason"
5
+ },
2
6
  "archived": {
3
7
  "ar": "مؤرشفة",
4
8
  "en": "Archived"
5
9
  },
6
- "archived.invalid": {
7
- "ar": "يجاب على هذا بنعم أو لا.",
8
- "en": "This is answered yes or no."
9
- },
10
- "archived.required": {
11
- "ar": "هذا الحقل مطلوب.",
12
- "en": "This field is required."
13
- },
14
10
  "capacity": {
15
- "ar": "السعة",
16
- "en": "Capacity"
17
- },
18
- "capacity.invalid": {
19
- "ar": "هذا ليس رقما.",
20
- "en": "This is not a number."
21
- },
22
- "capacity.min": {
23
- "ar": "القيمة أصغر من المسموح.",
24
- "en": "The value is too small."
25
- },
26
- "capacity.required": {
27
- "ar": "هذا الحقل مطلوب.",
28
- "en": "This field is required."
11
+ "$value": {
12
+ "ar": "السعة",
13
+ "en": "Capacity"
14
+ },
15
+ "invalid": {
16
+ "ar": "هذا ليس رقما.",
17
+ "en": "This is not a number."
18
+ },
19
+ "min": {
20
+ "ar": "القيمة أصغر من المسموح.",
21
+ "en": "The value is too small."
22
+ },
23
+ "required": {
24
+ "ar": "هذا الحقل مطلوب.",
25
+ "en": "This field is required."
26
+ }
29
27
  },
30
28
  "course": {
31
- "ar": "الدورة",
32
- "en": "Course"
33
- },
34
- "course.invalid": {
35
- "ar": "اختر عنصرًا من القائمة.",
36
- "en": "Pick one of the listed entries."
37
- },
38
- "course.required": {
39
- "ar": "هذا الحقل مطلوب.",
40
- "en": "This field is required."
29
+ "$value": {
30
+ "ar": "الدورة",
31
+ "en": "Course"
32
+ },
33
+ "invalid": {
34
+ "ar": "اختر عنصرًا من القائمة.",
35
+ "en": "Pick one of the listed entries."
36
+ },
37
+ "required": {
38
+ "ar": "هذا الحقل مطلوب.",
39
+ "en": "This field is required."
40
+ }
41
41
  },
42
42
  "details": {
43
- "ar": "التفاصيل",
44
- "en": "Details"
45
- },
46
- "details.invalid": {
47
- "ar": "هذا ليس نصا منسقا.",
48
- "en": "This is not rich text."
49
- },
50
- "details.required": {
51
- "ar": "هذا الحقل مطلوب.",
52
- "en": "This field is required."
43
+ "$value": {
44
+ "ar": "التفاصيل",
45
+ "en": "Details"
46
+ },
47
+ "invalid": {
48
+ "ar": "هذا ليس نصا منسقا.",
49
+ "en": "This is not rich text."
50
+ },
51
+ "required": {
52
+ "ar": "هذا الحقل مطلوب.",
53
+ "en": "This field is required."
54
+ }
53
55
  },
54
56
  "enrollments": {
55
57
  "ar": "التسجيلات",
56
58
  "en": "Enrollments"
57
59
  },
58
60
  "format": {
59
- "ar": "الصيغة",
60
- "en": "Format"
61
- },
62
- "format.invalid": {
63
- "ar": "هذا ليس نصا.",
64
- "en": "This is not text."
65
- },
66
- "format.required": {
67
- "ar": "هذا الحقل مطلوب.",
68
- "en": "This field is required."
69
- },
70
- "id.invalid": {
71
- "ar": "هذا ليس معرفا فريدا.",
72
- "en": "This is not a unique identifier."
73
- },
74
- "id.required": {
75
- "ar": "هذا الحقل مطلوب.",
76
- "en": "This field is required."
61
+ "$value": {
62
+ "ar": "الصيغة",
63
+ "en": "Format"
64
+ },
65
+ "invalid": {
66
+ "ar": "هذا ليس نصا.",
67
+ "en": "This is not text."
68
+ },
69
+ "required": {
70
+ "ar": "هذا الحقل مطلوب.",
71
+ "en": "This field is required."
72
+ }
73
+ },
74
+ "id": {
75
+ "invalid": {
76
+ "ar": "هذا ليس معرفا فريدا.",
77
+ "en": "This is not a unique identifier."
78
+ },
79
+ "required": {
80
+ "ar": "هذا الحقل مطلوب.",
81
+ "en": "This field is required."
82
+ }
83
+ },
84
+ "operations": {
85
+ "archive": {
86
+ "reason": {
87
+ "ar": "السبب",
88
+ "en": "Reason"
89
+ }
90
+ },
91
+ "unarchive": {
92
+ "reason": {
93
+ "ar": "السبب",
94
+ "en": "Reason"
95
+ }
96
+ }
77
97
  },
78
98
  "organization": {
79
99
  "ar": "المؤسسة",
80
100
  "en": "Organization"
81
101
  },
82
- "startsAt": {
83
- "ar": "وقت البداية",
84
- "en": "Starts at"
102
+ "page": {
103
+ "description": {
104
+ "ar": "مواعيد انعقاد كل دورة، وعدد المقاعد في كل منها.",
105
+ "en": "The dates each course meets, and how many seats each one holds."
106
+ }
85
107
  },
86
- "startsAt.invalid": {
87
- "ar": "هذا ليس تاريخا ووقتا.",
88
- "en": "This is not a date and time."
89
- },
90
- "startsAt.required": {
91
- "ar": "هذا الحقل مطلوب.",
92
- "en": "This field is required."
108
+ "startsAt": {
109
+ "$value": {
110
+ "ar": "وقت البداية",
111
+ "en": "Starts at"
112
+ },
113
+ "invalid": {
114
+ "ar": "هذا ليس تاريخا ووقتا.",
115
+ "en": "This is not a date and time."
116
+ },
117
+ "required": {
118
+ "ar": "هذا الحقل مطلوب.",
119
+ "en": "This field is required."
120
+ }
93
121
  },
94
122
  "venue": {
95
- "ar": "المكان",
96
- "en": "Venue"
97
- },
98
- "venue.invalid": {
99
- "ar": "هذا ليس نصا.",
100
- "en": "This is not text."
101
- },
102
- "venue.required": {
103
- "ar": "هذا الحقل مطلوب.",
104
- "en": "This field is required."
123
+ "$value": {
124
+ "ar": "المكان",
125
+ "en": "Venue"
126
+ },
127
+ "invalid": {
128
+ "ar": "هذا ليس نصا.",
129
+ "en": "This is not text."
130
+ },
131
+ "required": {
132
+ "ar": "هذا الحقل مطلوب.",
133
+ "en": "This field is required."
134
+ }
105
135
  }
106
136
  }
@@ -1,66 +1,64 @@
1
1
  {
2
2
  "contactEmail": {
3
- "ar": "بريد التواصل",
4
- "en": "Contact email"
3
+ "$value": {
4
+ "ar": "بريد التواصل",
5
+ "en": "Contact email"
6
+ },
7
+ "invalid": {
8
+ "ar": "هذا ليس بريدا إلكترونيا.",
9
+ "en": "This is not an email address."
10
+ },
11
+ "required": {
12
+ "ar": "هذا الحقل مطلوب.",
13
+ "en": "This field is required."
14
+ }
5
15
  },
6
- "contactEmail.invalid": {
7
- "ar": "هذا ليس بريدا إلكترونيا.",
8
- "en": "This is not an email address."
16
+ "globalType": {
17
+ "invalid": {
18
+ "ar": "هذا ليس نصا.",
19
+ "en": "This is not text."
20
+ },
21
+ "required": {
22
+ "ar": "هذا الحقل مطلوب.",
23
+ "en": "This field is required."
24
+ }
9
25
  },
10
- "contactEmail.required": {
11
- "ar": "هذا الحقل مطلوب.",
12
- "en": "This field is required."
13
- },
14
- "globalType.invalid": {
15
- "ar": "هذا ليس نصا.",
16
- "en": "This is not text."
17
- },
18
- "globalType.required": {
19
- "ar": "هذا الحقل مطلوب.",
20
- "en": "This field is required."
21
- },
22
- "id.invalid": {
23
- "ar": "هذا ليس معرفا فريدا.",
24
- "en": "This is not a unique identifier."
25
- },
26
- "id.required": {
27
- "ar": "هذا الحقل مطلوب.",
28
- "en": "This field is required."
26
+ "id": {
27
+ "invalid": {
28
+ "ar": "هذا ليس معرفا فريدا.",
29
+ "en": "This is not a unique identifier."
30
+ },
31
+ "required": {
32
+ "ar": "هذا الحقل مطلوب.",
33
+ "en": "This field is required."
34
+ }
29
35
  },
30
36
  "maintenance": {
31
- "ar": "الصيانة",
32
- "en": "Maintenance"
33
- },
34
- "maintenance.description": {
35
- "ar": "ما دام هذا مفعلا، يخبر الموقع زواره بأنه مغلق للصيانة.",
36
- "en": "While this is on, the site tells visitors it is closed for maintenance."
37
- },
38
- "maintenance.invalid": {
39
- "ar": "يجاب على هذا بنعم أو لا.",
40
- "en": "This is answered yes or no."
41
- },
42
- "maintenance.required": {
43
- "ar": "هذا الحقل مطلوب.",
44
- "en": "This field is required."
37
+ "$value": {
38
+ "ar": "الصيانة",
39
+ "en": "Maintenance"
40
+ },
41
+ "description": {
42
+ "ar": "ما دام هذا مفعلا، تخبر البوابة الطلاب بأنها مغلقة للصيانة. ويواصل الموظفون عملهم.",
43
+ "en": "While this is on, the portal tells students it is closed for maintenance. Staff keep working."
44
+ },
45
+ "invalid": {
46
+ "ar": "يجاب على هذا بنعم أو لا.",
47
+ "en": "This is answered yes or no."
48
+ },
49
+ "required": {
50
+ "ar": "هذا الحقل مطلوب.",
51
+ "en": "This field is required."
52
+ }
45
53
  },
46
54
  "organization": {
47
55
  "ar": "المؤسسة",
48
56
  "en": "Organization"
49
57
  },
50
- "siteTitle": {
51
- "ar": "عنوان الموقع",
52
- "en": "Site title"
53
- },
54
- "siteTitle.invalid": {
55
- "ar": "هذا ليس نصا.",
56
- "en": "This is not text."
57
- },
58
- "siteTitle.maxLength": {
59
- "ar": "القيمة طويلة جدًا.",
60
- "en": "The value is too long."
61
- },
62
- "siteTitle.required": {
63
- "ar": "هذا الحقل مطلوب.",
64
- "en": "This field is required."
58
+ "page": {
59
+ "description": {
60
+ "ar": "أين يتواصل الطلاب مع المدرسة، وهل البوابة مفتوحة لهم.",
61
+ "en": "Where students reach the school, and whether the portal is open to them."
62
+ }
65
63
  }
66
64
  }