@trokky/trokky 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/dist/adapters/filesystem/filesystem-adapter.d.ts +80 -0
  2. package/dist/adapters/filesystem/filesystem-adapter.d.ts.map +1 -0
  3. package/dist/adapters/filesystem/filesystem-adapter.js +1370 -0
  4. package/dist/adapters/filesystem/filesystem-adapter.js.map +1 -0
  5. package/dist/adapters/filesystem/index.d.ts +29 -0
  6. package/dist/adapters/filesystem/index.d.ts.map +1 -0
  7. package/dist/adapters/filesystem/index.js +31 -0
  8. package/dist/adapters/filesystem/index.js.map +1 -0
  9. package/dist/adapters/filesystem/types.d.ts +111 -0
  10. package/dist/adapters/filesystem/types.d.ts.map +1 -0
  11. package/dist/adapters/filesystem/types.js +2 -0
  12. package/dist/adapters/filesystem/types.js.map +1 -0
  13. package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts +111 -0
  14. package/dist/adapters/filesystem-data/filesystem-data-adapter.d.ts.map +1 -0
  15. package/dist/adapters/filesystem-data/filesystem-data-adapter.js +1363 -0
  16. package/dist/adapters/filesystem-data/filesystem-data-adapter.js.map +1 -0
  17. package/dist/adapters/filesystem-data/index.d.ts +3 -0
  18. package/dist/adapters/filesystem-data/index.d.ts.map +1 -0
  19. package/dist/adapters/filesystem-data/index.js +13 -0
  20. package/dist/adapters/filesystem-data/index.js.map +1 -0
  21. package/dist/adapters/filesystem-data/types.d.ts +147 -0
  22. package/dist/adapters/filesystem-data/types.d.ts.map +1 -0
  23. package/dist/adapters/filesystem-data/types.js +2 -0
  24. package/dist/adapters/filesystem-data/types.js.map +1 -0
  25. package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts +32 -0
  26. package/dist/adapters/filesystem-media/filesystem-media-adapter.d.ts.map +1 -0
  27. package/dist/adapters/filesystem-media/filesystem-media-adapter.js +639 -0
  28. package/dist/adapters/filesystem-media/filesystem-media-adapter.js.map +1 -0
  29. package/dist/adapters/filesystem-media/index.d.ts +3 -0
  30. package/dist/adapters/filesystem-media/index.d.ts.map +1 -0
  31. package/dist/adapters/filesystem-media/index.js +13 -0
  32. package/dist/adapters/filesystem-media/index.js.map +1 -0
  33. package/dist/adapters/filesystem-media/types.d.ts +76 -0
  34. package/dist/adapters/filesystem-media/types.d.ts.map +1 -0
  35. package/dist/adapters/filesystem-media/types.js +2 -0
  36. package/dist/adapters/filesystem-media/types.js.map +1 -0
  37. package/dist/adapters/postgres-data/index.d.ts +3 -0
  38. package/dist/adapters/postgres-data/index.d.ts.map +1 -0
  39. package/dist/adapters/postgres-data/index.js +13 -0
  40. package/dist/adapters/postgres-data/index.js.map +1 -0
  41. package/dist/adapters/postgres-data/postgres-data-adapter.d.ts +154 -0
  42. package/dist/adapters/postgres-data/postgres-data-adapter.d.ts.map +1 -0
  43. package/dist/adapters/postgres-data/postgres-data-adapter.js +1432 -0
  44. package/dist/adapters/postgres-data/postgres-data-adapter.js.map +1 -0
  45. package/dist/adapters/postgres-data/types.d.ts +139 -0
  46. package/dist/adapters/postgres-data/types.d.ts.map +1 -0
  47. package/dist/adapters/postgres-data/types.js +2 -0
  48. package/dist/adapters/postgres-data/types.js.map +1 -0
  49. package/dist/core/adapters/registry.d.ts +79 -0
  50. package/dist/core/adapters/registry.d.ts.map +1 -0
  51. package/dist/core/adapters/registry.js +149 -0
  52. package/dist/core/adapters/registry.js.map +1 -0
  53. package/dist/core/core/engine.d.ts +551 -0
  54. package/dist/core/core/engine.d.ts.map +1 -0
  55. package/dist/core/core/engine.js +1074 -0
  56. package/dist/core/core/engine.js.map +1 -0
  57. package/dist/core/crypto/adapter.d.ts +63 -0
  58. package/dist/core/crypto/adapter.d.ts.map +1 -0
  59. package/dist/core/crypto/adapter.js +63 -0
  60. package/dist/core/crypto/adapter.js.map +1 -0
  61. package/dist/core/crypto/fallback-adapter.d.ts +23 -0
  62. package/dist/core/crypto/fallback-adapter.d.ts.map +1 -0
  63. package/dist/core/crypto/fallback-adapter.js +195 -0
  64. package/dist/core/crypto/fallback-adapter.js.map +1 -0
  65. package/dist/core/crypto/node-adapter.d.ts +20 -0
  66. package/dist/core/crypto/node-adapter.d.ts.map +1 -0
  67. package/dist/core/crypto/node-adapter.js +85 -0
  68. package/dist/core/crypto/node-adapter.js.map +1 -0
  69. package/dist/core/crypto/password-hash.d.ts +73 -0
  70. package/dist/core/crypto/password-hash.d.ts.map +1 -0
  71. package/dist/core/crypto/password-hash.js +244 -0
  72. package/dist/core/crypto/password-hash.js.map +1 -0
  73. package/dist/core/crypto/webcrypto-adapter.d.ts +24 -0
  74. package/dist/core/crypto/webcrypto-adapter.d.ts.map +1 -0
  75. package/dist/core/crypto/webcrypto-adapter.js +158 -0
  76. package/dist/core/crypto/webcrypto-adapter.js.map +1 -0
  77. package/dist/core/errors/index.d.ts +30 -0
  78. package/dist/core/errors/index.d.ts.map +1 -0
  79. package/dist/core/errors/index.js +61 -0
  80. package/dist/core/errors/index.js.map +1 -0
  81. package/dist/core/events/event-bus.d.ts +121 -0
  82. package/dist/core/events/event-bus.d.ts.map +1 -0
  83. package/dist/core/events/event-bus.js +631 -0
  84. package/dist/core/events/event-bus.js.map +1 -0
  85. package/dist/core/events/index.d.ts +17 -0
  86. package/dist/core/events/index.d.ts.map +1 -0
  87. package/dist/core/events/index.js +22 -0
  88. package/dist/core/events/index.js.map +1 -0
  89. package/dist/core/events/memory-storage.d.ts +57 -0
  90. package/dist/core/events/memory-storage.d.ts.map +1 -0
  91. package/dist/core/events/memory-storage.js +175 -0
  92. package/dist/core/events/memory-storage.js.map +1 -0
  93. package/dist/core/events/types.d.ts +434 -0
  94. package/dist/core/events/types.d.ts.map +1 -0
  95. package/dist/core/events/types.js +9 -0
  96. package/dist/core/events/types.js.map +1 -0
  97. package/dist/core/events/utils.d.ts +134 -0
  98. package/dist/core/events/utils.d.ts.map +1 -0
  99. package/dist/core/events/utils.js +333 -0
  100. package/dist/core/events/utils.js.map +1 -0
  101. package/dist/core/fields/conditional.d.ts +115 -0
  102. package/dist/core/fields/conditional.d.ts.map +1 -0
  103. package/dist/core/fields/conditional.js +296 -0
  104. package/dist/core/fields/conditional.js.map +1 -0
  105. package/dist/core/fields/field-type.d.ts +218 -0
  106. package/dist/core/fields/field-type.d.ts.map +1 -0
  107. package/dist/core/fields/field-type.js +17 -0
  108. package/dist/core/fields/field-type.js.map +1 -0
  109. package/dist/core/fields/helpers.d.ts +86 -0
  110. package/dist/core/fields/helpers.d.ts.map +1 -0
  111. package/dist/core/fields/helpers.js +260 -0
  112. package/dist/core/fields/helpers.js.map +1 -0
  113. package/dist/core/fields/index.d.ts +5 -0
  114. package/dist/core/fields/index.d.ts.map +1 -0
  115. package/dist/core/fields/index.js +6 -0
  116. package/dist/core/fields/index.js.map +1 -0
  117. package/dist/core/fields/registry.d.ts +78 -0
  118. package/dist/core/fields/registry.d.ts.map +1 -0
  119. package/dist/core/fields/registry.js +185 -0
  120. package/dist/core/fields/registry.js.map +1 -0
  121. package/dist/core/index.d.ts +39 -0
  122. package/dist/core/index.d.ts.map +1 -0
  123. package/dist/core/index.js +57 -0
  124. package/dist/core/index.js.map +1 -0
  125. package/dist/core/media/image-processor.d.ts +24 -0
  126. package/dist/core/media/image-processor.d.ts.map +1 -0
  127. package/dist/core/media/image-processor.js +69 -0
  128. package/dist/core/media/image-processor.js.map +1 -0
  129. package/dist/core/media/processors/cloudflare-images.d.ts +83 -0
  130. package/dist/core/media/processors/cloudflare-images.d.ts.map +1 -0
  131. package/dist/core/media/processors/cloudflare-images.js +241 -0
  132. package/dist/core/media/processors/cloudflare-images.js.map +1 -0
  133. package/dist/core/media/processors/cloudflare-transform-store.d.ts +127 -0
  134. package/dist/core/media/processors/cloudflare-transform-store.d.ts.map +1 -0
  135. package/dist/core/media/processors/cloudflare-transform-store.js +237 -0
  136. package/dist/core/media/processors/cloudflare-transform-store.js.map +1 -0
  137. package/dist/core/media/processors/cloudflare-transformations.d.ts +81 -0
  138. package/dist/core/media/processors/cloudflare-transformations.d.ts.map +1 -0
  139. package/dist/core/media/processors/cloudflare-transformations.js +144 -0
  140. package/dist/core/media/processors/cloudflare-transformations.js.map +1 -0
  141. package/dist/core/media/processors/index.d.ts +9 -0
  142. package/dist/core/media/processors/index.d.ts.map +1 -0
  143. package/dist/core/media/processors/index.js +13 -0
  144. package/dist/core/media/processors/index.js.map +1 -0
  145. package/dist/core/media/processors/noop.d.ts +22 -0
  146. package/dist/core/media/processors/noop.d.ts.map +1 -0
  147. package/dist/core/media/processors/noop.js +38 -0
  148. package/dist/core/media/processors/noop.js.map +1 -0
  149. package/dist/core/media/processors/sharp.d.ts +30 -0
  150. package/dist/core/media/processors/sharp.d.ts.map +1 -0
  151. package/dist/core/media/processors/sharp.js +126 -0
  152. package/dist/core/media/processors/sharp.js.map +1 -0
  153. package/dist/core/media/processors/types.d.ts +67 -0
  154. package/dist/core/media/processors/types.d.ts.map +1 -0
  155. package/dist/core/media/processors/types.js +42 -0
  156. package/dist/core/media/processors/types.js.map +1 -0
  157. package/dist/core/media/processors/workers-images.d.ts +112 -0
  158. package/dist/core/media/processors/workers-images.d.ts.map +1 -0
  159. package/dist/core/media/processors/workers-images.js +257 -0
  160. package/dist/core/media/processors/workers-images.js.map +1 -0
  161. package/dist/core/schema/registry.d.ts +41 -0
  162. package/dist/core/schema/registry.d.ts.map +1 -0
  163. package/dist/core/schema/registry.js +248 -0
  164. package/dist/core/schema/registry.js.map +1 -0
  165. package/dist/core/schema/singleton.d.ts +107 -0
  166. package/dist/core/schema/singleton.d.ts.map +1 -0
  167. package/dist/core/schema/singleton.js +180 -0
  168. package/dist/core/schema/singleton.js.map +1 -0
  169. package/dist/core/security/auth.d.ts +120 -0
  170. package/dist/core/security/auth.d.ts.map +1 -0
  171. package/dist/core/security/auth.js +274 -0
  172. package/dist/core/security/auth.js.map +1 -0
  173. package/dist/core/security/captcha/index.d.ts +21 -0
  174. package/dist/core/security/captcha/index.d.ts.map +1 -0
  175. package/dist/core/security/captcha/index.js +34 -0
  176. package/dist/core/security/captcha/index.js.map +1 -0
  177. package/dist/core/security/captcha/recaptcha.d.ts +41 -0
  178. package/dist/core/security/captcha/recaptcha.d.ts.map +1 -0
  179. package/dist/core/security/captcha/recaptcha.js +89 -0
  180. package/dist/core/security/captcha/recaptcha.js.map +1 -0
  181. package/dist/core/security/captcha/turnstile.d.ts +41 -0
  182. package/dist/core/security/captcha/turnstile.d.ts.map +1 -0
  183. package/dist/core/security/captcha/turnstile.js +90 -0
  184. package/dist/core/security/captcha/turnstile.js.map +1 -0
  185. package/dist/core/security/captcha/types.d.ts +66 -0
  186. package/dist/core/security/captcha/types.d.ts.map +1 -0
  187. package/dist/core/security/captcha/types.js +7 -0
  188. package/dist/core/security/captcha/types.js.map +1 -0
  189. package/dist/core/security/mfa/email-otp.d.ts +91 -0
  190. package/dist/core/security/mfa/email-otp.d.ts.map +1 -0
  191. package/dist/core/security/mfa/email-otp.js +264 -0
  192. package/dist/core/security/mfa/email-otp.js.map +1 -0
  193. package/dist/core/security/mfa/index.d.ts +8 -0
  194. package/dist/core/security/mfa/index.d.ts.map +1 -0
  195. package/dist/core/security/mfa/index.js +8 -0
  196. package/dist/core/security/mfa/index.js.map +1 -0
  197. package/dist/core/security/mfa/totp.d.ts +87 -0
  198. package/dist/core/security/mfa/totp.d.ts.map +1 -0
  199. package/dist/core/security/mfa/totp.js +293 -0
  200. package/dist/core/security/mfa/totp.js.map +1 -0
  201. package/dist/core/security/middleware.d.ts +102 -0
  202. package/dist/core/security/middleware.d.ts.map +1 -0
  203. package/dist/core/security/middleware.js +261 -0
  204. package/dist/core/security/middleware.js.map +1 -0
  205. package/dist/core/security/oauth/google.d.ts +76 -0
  206. package/dist/core/security/oauth/google.d.ts.map +1 -0
  207. package/dist/core/security/oauth/google.js +154 -0
  208. package/dist/core/security/oauth/google.js.map +1 -0
  209. package/dist/core/security/oauth/index.d.ts +8 -0
  210. package/dist/core/security/oauth/index.d.ts.map +1 -0
  211. package/dist/core/security/oauth/index.js +7 -0
  212. package/dist/core/security/oauth/index.js.map +1 -0
  213. package/dist/core/security/oauth2/authorization-server.d.ts +195 -0
  214. package/dist/core/security/oauth2/authorization-server.d.ts.map +1 -0
  215. package/dist/core/security/oauth2/authorization-server.js +569 -0
  216. package/dist/core/security/oauth2/authorization-server.js.map +1 -0
  217. package/dist/core/security/oauth2/index.d.ts +9 -0
  218. package/dist/core/security/oauth2/index.d.ts.map +1 -0
  219. package/dist/core/security/oauth2/index.js +9 -0
  220. package/dist/core/security/oauth2/index.js.map +1 -0
  221. package/dist/core/security/rate-limiter.d.ts +15 -0
  222. package/dist/core/security/rate-limiter.d.ts.map +1 -0
  223. package/dist/core/security/rate-limiter.js +48 -0
  224. package/dist/core/security/rate-limiter.js.map +1 -0
  225. package/dist/core/security/validation.d.ts +20 -0
  226. package/dist/core/security/validation.d.ts.map +1 -0
  227. package/dist/core/security/validation.js +273 -0
  228. package/dist/core/security/validation.js.map +1 -0
  229. package/dist/core/services/auth-service.d.ts +128 -0
  230. package/dist/core/services/auth-service.d.ts.map +1 -0
  231. package/dist/core/services/auth-service.js +530 -0
  232. package/dist/core/services/auth-service.js.map +1 -0
  233. package/dist/core/services/captcha-service.d.ts +44 -0
  234. package/dist/core/services/captcha-service.d.ts.map +1 -0
  235. package/dist/core/services/captcha-service.js +82 -0
  236. package/dist/core/services/captcha-service.js.map +1 -0
  237. package/dist/core/services/document-service.d.ts +59 -0
  238. package/dist/core/services/document-service.d.ts.map +1 -0
  239. package/dist/core/services/document-service.js +269 -0
  240. package/dist/core/services/document-service.js.map +1 -0
  241. package/dist/core/services/media-service.d.ts +40 -0
  242. package/dist/core/services/media-service.d.ts.map +1 -0
  243. package/dist/core/services/media-service.js +396 -0
  244. package/dist/core/services/media-service.js.map +1 -0
  245. package/dist/core/services/mfa-service.d.ts +123 -0
  246. package/dist/core/services/mfa-service.d.ts.map +1 -0
  247. package/dist/core/services/mfa-service.js +606 -0
  248. package/dist/core/services/mfa-service.js.map +1 -0
  249. package/dist/core/services/oauth-service.d.ts +58 -0
  250. package/dist/core/services/oauth-service.d.ts.map +1 -0
  251. package/dist/core/services/oauth-service.js +253 -0
  252. package/dist/core/services/oauth-service.js.map +1 -0
  253. package/dist/core/services/oauth2-server-service.d.ts +61 -0
  254. package/dist/core/services/oauth2-server-service.d.ts.map +1 -0
  255. package/dist/core/services/oauth2-server-service.js +259 -0
  256. package/dist/core/services/oauth2-server-service.js.map +1 -0
  257. package/dist/core/services/passkey-service.d.ts +59 -0
  258. package/dist/core/services/passkey-service.d.ts.map +1 -0
  259. package/dist/core/services/passkey-service.js +238 -0
  260. package/dist/core/services/passkey-service.js.map +1 -0
  261. package/dist/core/services/token-service.d.ts +31 -0
  262. package/dist/core/services/token-service.d.ts.map +1 -0
  263. package/dist/core/services/token-service.js +132 -0
  264. package/dist/core/services/token-service.js.map +1 -0
  265. package/dist/core/services/trusted-device-service.d.ts +39 -0
  266. package/dist/core/services/trusted-device-service.d.ts.map +1 -0
  267. package/dist/core/services/trusted-device-service.js +123 -0
  268. package/dist/core/services/trusted-device-service.js.map +1 -0
  269. package/dist/core/services/user-service.d.ts +38 -0
  270. package/dist/core/services/user-service.d.ts.map +1 -0
  271. package/dist/core/services/user-service.js +265 -0
  272. package/dist/core/services/user-service.js.map +1 -0
  273. package/dist/core/studio/integration.d.ts +54 -0
  274. package/dist/core/studio/integration.d.ts.map +1 -0
  275. package/dist/core/studio/integration.js +326 -0
  276. package/dist/core/studio/integration.js.map +1 -0
  277. package/dist/core/types/index.d.ts +282 -0
  278. package/dist/core/types/index.d.ts.map +1 -0
  279. package/dist/core/types/index.js +83 -0
  280. package/dist/core/types/index.js.map +1 -0
  281. package/dist/core/types/mail.d.ts +90 -0
  282. package/dist/core/types/mail.d.ts.map +1 -0
  283. package/dist/core/types/mail.js +7 -0
  284. package/dist/core/types/mail.js.map +1 -0
  285. package/dist/core/types/oauth2.d.ts +9 -0
  286. package/dist/core/types/oauth2.d.ts.map +1 -0
  287. package/dist/core/types/oauth2.js +7 -0
  288. package/dist/core/types/oauth2.js.map +1 -0
  289. package/dist/core/types/storage-adapters.d.ts +611 -0
  290. package/dist/core/types/storage-adapters.d.ts.map +1 -0
  291. package/dist/core/types/storage-adapters.js +14 -0
  292. package/dist/core/types/storage-adapters.js.map +1 -0
  293. package/dist/core/types/user.d.ts +10 -0
  294. package/dist/core/types/user.d.ts.map +1 -0
  295. package/dist/core/types/user.js +45 -0
  296. package/dist/core/types/user.js.map +1 -0
  297. package/dist/core/utils/id-generator.d.ts +16 -0
  298. package/dist/core/utils/id-generator.d.ts.map +1 -0
  299. package/dist/core/utils/id-generator.js +61 -0
  300. package/dist/core/utils/id-generator.js.map +1 -0
  301. package/dist/core/utils/logger.d.ts +100 -0
  302. package/dist/core/utils/logger.d.ts.map +1 -0
  303. package/dist/core/utils/logger.js +212 -0
  304. package/dist/core/utils/logger.js.map +1 -0
  305. package/dist/core/utils/reference-expander.d.ts +57 -0
  306. package/dist/core/utils/reference-expander.d.ts.map +1 -0
  307. package/dist/core/utils/reference-expander.js +192 -0
  308. package/dist/core/utils/reference-expander.js.map +1 -0
  309. package/dist/core/utils/universal-crypto.d.ts +46 -0
  310. package/dist/core/utils/universal-crypto.d.ts.map +1 -0
  311. package/dist/core/utils/universal-crypto.js +171 -0
  312. package/dist/core/utils/universal-crypto.js.map +1 -0
  313. package/dist/core/validation/validator.d.ts +11 -0
  314. package/dist/core/validation/validator.d.ts.map +1 -0
  315. package/dist/core/validation/validator.js +164 -0
  316. package/dist/core/validation/validator.js.map +1 -0
  317. package/dist/i18n/config.d.ts +4077 -0
  318. package/dist/i18n/config.d.ts.map +1 -0
  319. package/dist/i18n/config.js +116 -0
  320. package/dist/i18n/config.js.map +1 -0
  321. package/dist/i18n/hooks.d.ts +86 -0
  322. package/dist/i18n/hooks.d.ts.map +1 -0
  323. package/dist/i18n/hooks.js +122 -0
  324. package/dist/i18n/hooks.js.map +1 -0
  325. package/dist/i18n/index.d.ts +39 -0
  326. package/dist/i18n/index.d.ts.map +1 -0
  327. package/dist/i18n/index.js +40 -0
  328. package/dist/i18n/index.js.map +1 -0
  329. package/dist/i18n/locales/en/auth.json +108 -0
  330. package/dist/i18n/locales/en/common.json +100 -0
  331. package/dist/i18n/locales/en/errors.json +55 -0
  332. package/dist/i18n/locales/en/fields.json +456 -0
  333. package/dist/i18n/locales/en/studio.json +1329 -0
  334. package/dist/i18n/locales/fr/auth.json +108 -0
  335. package/dist/i18n/locales/fr/common.json +100 -0
  336. package/dist/i18n/locales/fr/errors.json +55 -0
  337. package/dist/i18n/locales/fr/fields.json +456 -0
  338. package/dist/i18n/locales/fr/studio.json +1274 -0
  339. package/dist/i18n/provider.d.ts +45 -0
  340. package/dist/i18n/provider.d.ts.map +1 -0
  341. package/dist/i18n/provider.js +49 -0
  342. package/dist/i18n/provider.js.map +1 -0
  343. package/dist/i18n/types.d.ts +8 -0
  344. package/dist/i18n/types.d.ts.map +1 -0
  345. package/dist/i18n/types.js +7 -0
  346. package/dist/i18n/types.js.map +1 -0
  347. package/dist/index.d.ts +15 -0
  348. package/dist/index.d.ts.map +1 -0
  349. package/dist/index.js +16 -0
  350. package/dist/index.js.map +1 -0
  351. package/dist/integrations/express/adapter.d.ts +33 -0
  352. package/dist/integrations/express/adapter.d.ts.map +1 -0
  353. package/dist/integrations/express/adapter.js +203 -0
  354. package/dist/integrations/express/adapter.js.map +1 -0
  355. package/dist/integrations/express/config.d.ts +599 -0
  356. package/dist/integrations/express/config.d.ts.map +1 -0
  357. package/dist/integrations/express/config.js +166 -0
  358. package/dist/integrations/express/config.js.map +1 -0
  359. package/dist/integrations/express/index.d.ts +10 -0
  360. package/dist/integrations/express/index.d.ts.map +1 -0
  361. package/dist/integrations/express/index.js +9 -0
  362. package/dist/integrations/express/index.js.map +1 -0
  363. package/dist/integrations/express/integration.d.ts +111 -0
  364. package/dist/integrations/express/integration.d.ts.map +1 -0
  365. package/dist/integrations/express/integration.js +730 -0
  366. package/dist/integrations/express/integration.js.map +1 -0
  367. package/dist/integrations/express/media-rewrite-middleware.d.ts +78 -0
  368. package/dist/integrations/express/media-rewrite-middleware.d.ts.map +1 -0
  369. package/dist/integrations/express/media-rewrite-middleware.js +211 -0
  370. package/dist/integrations/express/media-rewrite-middleware.js.map +1 -0
  371. package/dist/integrations/express/media-url-generator.d.ts +52 -0
  372. package/dist/integrations/express/media-url-generator.d.ts.map +1 -0
  373. package/dist/integrations/express/media-url-generator.js +107 -0
  374. package/dist/integrations/express/media-url-generator.js.map +1 -0
  375. package/dist/integrations/express/middleware.d.ts +25 -0
  376. package/dist/integrations/express/middleware.d.ts.map +1 -0
  377. package/dist/integrations/express/middleware.js +130 -0
  378. package/dist/integrations/express/middleware.js.map +1 -0
  379. package/dist/integrations/express/server.d.ts +99 -0
  380. package/dist/integrations/express/server.d.ts.map +1 -0
  381. package/dist/integrations/express/server.js +597 -0
  382. package/dist/integrations/express/server.js.map +1 -0
  383. package/dist/integrations/express/types.d.ts +106 -0
  384. package/dist/integrations/express/types.d.ts.map +1 -0
  385. package/dist/integrations/express/types.js +2 -0
  386. package/dist/integrations/express/types.js.map +1 -0
  387. package/dist/mail/adapters/console.d.ts +30 -0
  388. package/dist/mail/adapters/console.d.ts.map +1 -0
  389. package/dist/mail/adapters/console.js +169 -0
  390. package/dist/mail/adapters/console.js.map +1 -0
  391. package/dist/mail/adapters/resend.d.ts +18 -0
  392. package/dist/mail/adapters/resend.d.ts.map +1 -0
  393. package/dist/mail/adapters/resend.js +148 -0
  394. package/dist/mail/adapters/resend.js.map +1 -0
  395. package/dist/mail/adapters/smtp.d.ts +22 -0
  396. package/dist/mail/adapters/smtp.d.ts.map +1 -0
  397. package/dist/mail/adapters/smtp.js +180 -0
  398. package/dist/mail/adapters/smtp.js.map +1 -0
  399. package/dist/mail/index.d.ts +15 -0
  400. package/dist/mail/index.d.ts.map +1 -0
  401. package/dist/mail/index.js +13 -0
  402. package/dist/mail/index.js.map +1 -0
  403. package/dist/mail/mail-service.d.ts +180 -0
  404. package/dist/mail/mail-service.d.ts.map +1 -0
  405. package/dist/mail/mail-service.js +370 -0
  406. package/dist/mail/mail-service.js.map +1 -0
  407. package/dist/mail/notification-service.d.ts +82 -0
  408. package/dist/mail/notification-service.d.ts.map +1 -0
  409. package/dist/mail/notification-service.js +262 -0
  410. package/dist/mail/notification-service.js.map +1 -0
  411. package/dist/mail/templates/built-in-templates.d.ts +47 -0
  412. package/dist/mail/templates/built-in-templates.d.ts.map +1 -0
  413. package/dist/mail/templates/built-in-templates.js +416 -0
  414. package/dist/mail/templates/built-in-templates.js.map +1 -0
  415. package/dist/mail/templates/custom-template-renderer.d.ts +115 -0
  416. package/dist/mail/templates/custom-template-renderer.d.ts.map +1 -0
  417. package/dist/mail/templates/custom-template-renderer.js +225 -0
  418. package/dist/mail/templates/custom-template-renderer.js.map +1 -0
  419. package/dist/mail/types.d.ts +7 -0
  420. package/dist/mail/types.d.ts.map +1 -0
  421. package/dist/mail/types.js +7 -0
  422. package/dist/mail/types.js.map +1 -0
  423. package/dist/routes/auth/captcha.d.ts +33 -0
  424. package/dist/routes/auth/captcha.d.ts.map +1 -0
  425. package/dist/routes/auth/captcha.js +102 -0
  426. package/dist/routes/auth/captcha.js.map +1 -0
  427. package/dist/routes/auth/change-password.d.ts +17 -0
  428. package/dist/routes/auth/change-password.d.ts.map +1 -0
  429. package/dist/routes/auth/change-password.js +121 -0
  430. package/dist/routes/auth/change-password.js.map +1 -0
  431. package/dist/routes/auth/index.d.ts +13 -0
  432. package/dist/routes/auth/index.d.ts.map +1 -0
  433. package/dist/routes/auth/index.js +35 -0
  434. package/dist/routes/auth/index.js.map +1 -0
  435. package/dist/routes/auth/mfa.d.ts +121 -0
  436. package/dist/routes/auth/mfa.d.ts.map +1 -0
  437. package/dist/routes/auth/mfa.js +1143 -0
  438. package/dist/routes/auth/mfa.js.map +1 -0
  439. package/dist/routes/auth/oauth.d.ts +37 -0
  440. package/dist/routes/auth/oauth.d.ts.map +1 -0
  441. package/dist/routes/auth/oauth.js +420 -0
  442. package/dist/routes/auth/oauth.js.map +1 -0
  443. package/dist/routes/auth/oauth2-server.d.ts +70 -0
  444. package/dist/routes/auth/oauth2-server.d.ts.map +1 -0
  445. package/dist/routes/auth/oauth2-server.js +775 -0
  446. package/dist/routes/auth/oauth2-server.js.map +1 -0
  447. package/dist/routes/auth/passkey.d.ts +65 -0
  448. package/dist/routes/auth/passkey.d.ts.map +1 -0
  449. package/dist/routes/auth/passkey.js +910 -0
  450. package/dist/routes/auth/passkey.js.map +1 -0
  451. package/dist/routes/auth/password-reset.d.ts +23 -0
  452. package/dist/routes/auth/password-reset.d.ts.map +1 -0
  453. package/dist/routes/auth/password-reset.js +336 -0
  454. package/dist/routes/auth/password-reset.js.map +1 -0
  455. package/dist/routes/handlers/audit.d.ts +21 -0
  456. package/dist/routes/handlers/audit.d.ts.map +1 -0
  457. package/dist/routes/handlers/audit.js +124 -0
  458. package/dist/routes/handlers/audit.js.map +1 -0
  459. package/dist/routes/handlers/auth.d.ts +150 -0
  460. package/dist/routes/handlers/auth.d.ts.map +1 -0
  461. package/dist/routes/handlers/auth.js +512 -0
  462. package/dist/routes/handlers/auth.js.map +1 -0
  463. package/dist/routes/handlers/base.d.ts +34 -0
  464. package/dist/routes/handlers/base.d.ts.map +1 -0
  465. package/dist/routes/handlers/base.js +366 -0
  466. package/dist/routes/handlers/base.js.map +1 -0
  467. package/dist/routes/handlers/config.d.ts +31 -0
  468. package/dist/routes/handlers/config.d.ts.map +1 -0
  469. package/dist/routes/handlers/config.js +483 -0
  470. package/dist/routes/handlers/config.js.map +1 -0
  471. package/dist/routes/handlers/documents.d.ts +50 -0
  472. package/dist/routes/handlers/documents.d.ts.map +1 -0
  473. package/dist/routes/handlers/documents.js +708 -0
  474. package/dist/routes/handlers/documents.js.map +1 -0
  475. package/dist/routes/handlers/index.d.ts +12 -0
  476. package/dist/routes/handlers/index.d.ts.map +1 -0
  477. package/dist/routes/handlers/index.js +11 -0
  478. package/dist/routes/handlers/index.js.map +1 -0
  479. package/dist/routes/handlers/media.d.ts +24 -0
  480. package/dist/routes/handlers/media.d.ts.map +1 -0
  481. package/dist/routes/handlers/media.js +432 -0
  482. package/dist/routes/handlers/media.js.map +1 -0
  483. package/dist/routes/handlers/search.d.ts +10 -0
  484. package/dist/routes/handlers/search.d.ts.map +1 -0
  485. package/dist/routes/handlers/search.js +153 -0
  486. package/dist/routes/handlers/search.js.map +1 -0
  487. package/dist/routes/handlers/tokens.d.ts +14 -0
  488. package/dist/routes/handlers/tokens.d.ts.map +1 -0
  489. package/dist/routes/handlers/tokens.js +109 -0
  490. package/dist/routes/handlers/tokens.js.map +1 -0
  491. package/dist/routes/handlers/types.d.ts +13 -0
  492. package/dist/routes/handlers/types.d.ts.map +1 -0
  493. package/dist/routes/handlers/types.js +5 -0
  494. package/dist/routes/handlers/types.js.map +1 -0
  495. package/dist/routes/handlers/users.d.ts +16 -0
  496. package/dist/routes/handlers/users.d.ts.map +1 -0
  497. package/dist/routes/handlers/users.js +198 -0
  498. package/dist/routes/handlers/users.js.map +1 -0
  499. package/dist/routes/handlers/webhooks.d.ts +37 -0
  500. package/dist/routes/handlers/webhooks.d.ts.map +1 -0
  501. package/dist/routes/handlers/webhooks.js +343 -0
  502. package/dist/routes/handlers/webhooks.js.map +1 -0
  503. package/dist/routes/index.d.ts +5 -0
  504. package/dist/routes/index.d.ts.map +1 -0
  505. package/dist/routes/index.js +5 -0
  506. package/dist/routes/index.js.map +1 -0
  507. package/dist/routes/routes.d.ts +29 -0
  508. package/dist/routes/routes.d.ts.map +1 -0
  509. package/dist/routes/routes.js +531 -0
  510. package/dist/routes/routes.js.map +1 -0
  511. package/dist/routes/slug-processor.d.ts +32 -0
  512. package/dist/routes/slug-processor.d.ts.map +1 -0
  513. package/dist/routes/slug-processor.js +328 -0
  514. package/dist/routes/slug-processor.js.map +1 -0
  515. package/dist/routes/types.d.ts +31 -0
  516. package/dist/routes/types.d.ts.map +1 -0
  517. package/dist/routes/types.js +7 -0
  518. package/dist/routes/types.js.map +1 -0
  519. package/dist/routes/users/index.d.ts +7 -0
  520. package/dist/routes/users/index.d.ts.map +1 -0
  521. package/dist/routes/users/index.js +7 -0
  522. package/dist/routes/users/index.js.map +1 -0
  523. package/dist/structure/builder/StructureBuilder.d.ts +209 -0
  524. package/dist/structure/builder/StructureBuilder.d.ts.map +1 -0
  525. package/dist/structure/builder/StructureBuilder.js +425 -0
  526. package/dist/structure/builder/StructureBuilder.js.map +1 -0
  527. package/dist/structure/builder/index.d.ts +8 -0
  528. package/dist/structure/builder/index.d.ts.map +1 -0
  529. package/dist/structure/builder/index.js +6 -0
  530. package/dist/structure/builder/index.js.map +1 -0
  531. package/dist/structure/builder/navigation-tree-builder.d.ts +33 -0
  532. package/dist/structure/builder/navigation-tree-builder.d.ts.map +1 -0
  533. package/dist/structure/builder/navigation-tree-builder.js +284 -0
  534. package/dist/structure/builder/navigation-tree-builder.js.map +1 -0
  535. package/dist/structure/errors/index.d.ts +72 -0
  536. package/dist/structure/errors/index.d.ts.map +1 -0
  537. package/dist/structure/errors/index.js +136 -0
  538. package/dist/structure/errors/index.js.map +1 -0
  539. package/dist/structure/index.d.ts +14 -0
  540. package/dist/structure/index.d.ts.map +1 -0
  541. package/dist/structure/index.js +16 -0
  542. package/dist/structure/index.js.map +1 -0
  543. package/dist/structure/types/filters.d.ts +167 -0
  544. package/dist/structure/types/filters.d.ts.map +1 -0
  545. package/dist/structure/types/filters.js +38 -0
  546. package/dist/structure/types/filters.js.map +1 -0
  547. package/dist/structure/types/index.d.ts +11 -0
  548. package/dist/structure/types/index.d.ts.map +1 -0
  549. package/dist/structure/types/index.js +7 -0
  550. package/dist/structure/types/index.js.map +1 -0
  551. package/dist/structure/types/permissions.d.ts +159 -0
  552. package/dist/structure/types/permissions.d.ts.map +1 -0
  553. package/dist/structure/types/permissions.js +49 -0
  554. package/dist/structure/types/permissions.js.map +1 -0
  555. package/dist/structure/types/structure.d.ts +342 -0
  556. package/dist/structure/types/structure.d.ts.map +1 -0
  557. package/dist/structure/types/structure.js +6 -0
  558. package/dist/structure/types/structure.js.map +1 -0
  559. package/dist/structure/types/views.d.ts +278 -0
  560. package/dist/structure/types/views.d.ts.map +1 -0
  561. package/dist/structure/types/views.js +6 -0
  562. package/dist/structure/types/views.js.map +1 -0
  563. package/dist/structure/utils/hash.d.ts +61 -0
  564. package/dist/structure/utils/hash.d.ts.map +1 -0
  565. package/dist/structure/utils/hash.js +118 -0
  566. package/dist/structure/utils/hash.js.map +1 -0
  567. package/dist/structure/utils/index.d.ts +10 -0
  568. package/dist/structure/utils/index.d.ts.map +1 -0
  569. package/dist/structure/utils/index.js +7 -0
  570. package/dist/structure/utils/index.js.map +1 -0
  571. package/dist/structure/utils/permission-checker.d.ts +57 -0
  572. package/dist/structure/utils/permission-checker.d.ts.map +1 -0
  573. package/dist/structure/utils/permission-checker.js +286 -0
  574. package/dist/structure/utils/permission-checker.js.map +1 -0
  575. package/dist/structure/utils/query-builder.d.ts +82 -0
  576. package/dist/structure/utils/query-builder.d.ts.map +1 -0
  577. package/dist/structure/utils/query-builder.js +489 -0
  578. package/dist/structure/utils/query-builder.js.map +1 -0
  579. package/dist/structure/utils/structure-merger.d.ts +91 -0
  580. package/dist/structure/utils/structure-merger.d.ts.map +1 -0
  581. package/dist/structure/utils/structure-merger.js +445 -0
  582. package/dist/structure/utils/structure-merger.js.map +1 -0
  583. package/dist/structure/validation/schemas.d.ts +3107 -0
  584. package/dist/structure/validation/schemas.d.ts.map +1 -0
  585. package/dist/structure/validation/schemas.js +436 -0
  586. package/dist/structure/validation/schemas.js.map +1 -0
  587. package/dist/types/api-requests.d.ts +334 -0
  588. package/dist/types/api-requests.d.ts.map +1 -0
  589. package/dist/types/api-requests.js +8 -0
  590. package/dist/types/api-requests.js.map +1 -0
  591. package/dist/types/auth.d.ts +394 -0
  592. package/dist/types/auth.d.ts.map +1 -0
  593. package/dist/types/auth.js +8 -0
  594. package/dist/types/auth.js.map +1 -0
  595. package/dist/types/document.d.ts +49 -0
  596. package/dist/types/document.d.ts.map +1 -0
  597. package/dist/types/document.js +6 -0
  598. package/dist/types/document.js.map +1 -0
  599. package/dist/types/field-system.d.ts +197 -0
  600. package/dist/types/field-system.d.ts.map +1 -0
  601. package/dist/types/field-system.js +8 -0
  602. package/dist/types/field-system.js.map +1 -0
  603. package/dist/types/fields.d.ts +17 -0
  604. package/dist/types/fields.d.ts.map +1 -0
  605. package/dist/types/fields.js +21 -0
  606. package/dist/types/fields.js.map +1 -0
  607. package/dist/types/http.d.ts +162 -0
  608. package/dist/types/http.d.ts.map +1 -0
  609. package/dist/types/http.js +8 -0
  610. package/dist/types/http.js.map +1 -0
  611. package/dist/types/i18n.d.ts +56 -0
  612. package/dist/types/i18n.d.ts.map +1 -0
  613. package/dist/types/i18n.js +25 -0
  614. package/dist/types/i18n.js.map +1 -0
  615. package/dist/types/index.d.ts +22 -0
  616. package/dist/types/index.d.ts.map +1 -0
  617. package/dist/types/index.js +10 -0
  618. package/dist/types/index.js.map +1 -0
  619. package/dist/types/mail.d.ts +224 -0
  620. package/dist/types/mail.d.ts.map +1 -0
  621. package/dist/types/mail.js +8 -0
  622. package/dist/types/mail.js.map +1 -0
  623. package/dist/types/media.d.ts +56 -0
  624. package/dist/types/media.d.ts.map +1 -0
  625. package/dist/types/media.js +6 -0
  626. package/dist/types/media.js.map +1 -0
  627. package/dist/types/oauth2.d.ts +287 -0
  628. package/dist/types/oauth2.d.ts.map +1 -0
  629. package/dist/types/oauth2.js +43 -0
  630. package/dist/types/oauth2.js.map +1 -0
  631. package/dist/types/passkey.d.ts +217 -0
  632. package/dist/types/passkey.d.ts.map +1 -0
  633. package/dist/types/passkey.js +8 -0
  634. package/dist/types/passkey.js.map +1 -0
  635. package/dist/types/slug.d.ts +99 -0
  636. package/dist/types/slug.d.ts.map +1 -0
  637. package/dist/types/slug.js +8 -0
  638. package/dist/types/slug.js.map +1 -0
  639. package/package.json +183 -0
@@ -0,0 +1,1329 @@
1
+ {
2
+ "contentView": {
3
+ "filters": "Filters",
4
+ "sort": "Sort",
5
+ "clearAll": "Clear all",
6
+ "selectedOfTotal": "{{selected}} of {{total}} selected",
7
+ "selectedOfTotal_one": "{{selected}} of {{total}} selected",
8
+ "selectedOfTotal_other": "{{selected}} of {{total}} selected",
9
+ "itemsCount": "{{count}} items",
10
+ "sortAsc": "{{label}} (A-Z)",
11
+ "sortDesc": "{{label}} (Z-A)",
12
+ "filterBy": "Filter by {{label}}",
13
+ "allLabel": "All {{label}}",
14
+ "all": "All",
15
+ "yes": "Yes",
16
+ "no": "No"
17
+ },
18
+ "changeStatus": {
19
+ "title": "Change Status",
20
+ "selectStatus": "Select the new status for {{count}} selected document",
21
+ "selectStatus_plural": "Select the new status for {{count}} selected documents",
22
+ "draft": "Draft",
23
+ "draftDesc": "Save as draft",
24
+ "published": "Published",
25
+ "publishedDesc": "Make documents publicly available",
26
+ "archived": "Archived",
27
+ "archivedDesc": "Archive documents",
28
+ "updating": "Updating...",
29
+ "updateDocument": "Update {{count}} document",
30
+ "updateDocument_plural": "Update {{count}} documents"
31
+ },
32
+ "pagination": {
33
+ "showing": "Showing {{start}} to {{end}} of {{total}} results",
34
+ "show": "Show:",
35
+ "firstPage": "First page",
36
+ "previousPage": "Previous page",
37
+ "nextPage": "Next page",
38
+ "lastPage": "Last page"
39
+ },
40
+ "contentViews": {
41
+ "loadingDocuments": "Loading documents...",
42
+ "noDocumentsFound": "No documents found",
43
+ "edit": "Edit",
44
+ "copyId": "Copy ID",
45
+ "duplicate": "Duplicate",
46
+ "delete": "Delete",
47
+ "deleteConfirm": "Are you sure you want to delete this document? This action cannot be undone.",
48
+ "deleteConfirmShort": "Are you sure you want to delete this document?",
49
+ "deleteTitle": "Delete Document",
50
+ "confirmDelete": "Delete",
51
+ "actions": "Actions",
52
+ "columns": "Columns",
53
+ "showHideColumns": "Show/Hide Columns",
54
+ "itemsCount": "{{count}} items",
55
+ "yes": "Yes",
56
+ "no": "No",
57
+ "empty": "Empty",
58
+ "noItemsInColumn": "No items in {{column}}",
59
+ "addItem": "Add item"
60
+ },
61
+ "mediaBrowser": {
62
+ "title": "Browse Media",
63
+ "selectFile": "Select a file from your media library",
64
+ "selectImage": "Select an image from your media library",
65
+ "selectVideo": "Select a video from your media library",
66
+ "selectAudio": "Select an audio from your media library",
67
+ "selectDocument": "Select a document from your media library",
68
+ "close": "Close",
69
+ "searchPlaceholder": "Search media...",
70
+ "backToGrid": "Back to Grid",
71
+ "noPreviewAvailable": "Preview not available for this file type",
72
+ "noPreviewUrl": "No preview URL available",
73
+ "imageVariants": "Image Variants",
74
+ "noVariantsAvailable": "No variants available for this image.",
75
+ "regenerate": "Regenerate",
76
+ "original": "Original",
77
+ "fileDetails": "File Details",
78
+ "filename": "Filename",
79
+ "size": "Size",
80
+ "type": "Type",
81
+ "dimensions": "Dimensions",
82
+ "selectVariant": "Select {{variant}}",
83
+ "selectOriginal": "Select Original",
84
+ "variant": "Variant",
85
+ "select": "Select",
86
+ "noMediaFound": "No media files found",
87
+ "noMediaFoundMatching": "No media files found matching your search",
88
+ "noTypeFound": "No {{type}} files found",
89
+ "noTypeFoundMatching": "No {{type}} files found matching your search",
90
+ "clearSearch": "Clear search",
91
+ "paginationOf": "{{start}}-{{end}} of {{total}}",
92
+ "prev": "Prev",
93
+ "next": "Next"
94
+ },
95
+ "nav": {
96
+ "content": "Content",
97
+ "media": "Media",
98
+ "settings": "Settings",
99
+ "users": "Users",
100
+ "auditLogs": "Audit Logs",
101
+ "dashboard": "Dashboard",
102
+ "search": "Search...",
103
+ "searchPlaceholder": "Search..."
104
+ },
105
+ "header": {
106
+ "create": "Create",
107
+ "createNewDocument": "Create New Document",
108
+ "noDocumentTypes": "No document types available for creation",
109
+ "studioConfiguration": "Studio configuration",
110
+ "manageUsersPermissions": "Manage users & permissions",
111
+ "viewAllChanges": "View all content changes",
112
+ "preferences": "Preferences",
113
+ "changePassword": "Change Password",
114
+ "signOut": "Sign out",
115
+ "user": "User",
116
+ "noEmail": "No email"
117
+ },
118
+ "theme": {
119
+ "light": "Light",
120
+ "dark": "Dark",
121
+ "system": "System",
122
+ "toggle": "Toggle theme"
123
+ },
124
+ "usersPage": {
125
+ "title": "Users & Access",
126
+ "subtitle": "Manage users, permissions, API tokens, and webhooks",
127
+ "accessDenied": "Access Denied",
128
+ "accessDeniedMessage": "You don't have permission to access user management features. Contact your administrator for access.",
129
+ "tabs": {
130
+ "users": "Users",
131
+ "tokens": "API Tokens",
132
+ "webhooks": "Webhooks"
133
+ }
134
+ },
135
+ "userManagement": {
136
+ "title": "User Management",
137
+ "subtitle": "Manage user accounts, roles, and permissions",
138
+ "addUser": "Add User",
139
+ "editUser": "Edit User",
140
+ "createUser": "Create User",
141
+ "searchPlaceholder": "Search users...",
142
+ "tableHeaders": {
143
+ "user": "User",
144
+ "role": "Role",
145
+ "status": "Status",
146
+ "lastLogin": "Last Login",
147
+ "actions": "Actions"
148
+ },
149
+ "status": {
150
+ "active": "Active",
151
+ "inactive": "Inactive"
152
+ },
153
+ "mfa": "MFA",
154
+ "mfaEnabled": "MFA Enabled",
155
+ "custom": "Custom",
156
+ "customPermissionsTooltip": "Custom permissions - differs from role defaults",
157
+ "never": "Never",
158
+ "editUserTitle": "Edit user",
159
+ "resetMfaTitle": "Reset MFA",
160
+ "deleteUserTitle": "Delete user",
161
+ "deleteConfirm": "Are you sure you want to delete user \"{{username}}\"? This action cannot be undone.",
162
+ "resetMfaConfirm": "Are you sure you want to reset MFA for \"{{username}}\"? They will need to set up MFA again.",
163
+ "failedResetMfa": "Failed to reset MFA. Please try again.",
164
+ "modal": {
165
+ "editTitle": "Edit User",
166
+ "createTitle": "Create User",
167
+ "basicInfo": "Basic Information",
168
+ "username": "Username",
169
+ "email": "Email",
170
+ "fullName": "Full Name",
171
+ "newPassword": "New Password (optional)",
172
+ "password": "Password",
173
+ "generatePassword": "Generate",
174
+ "role": "Role",
175
+ "accessPermissions": "Access & Permissions",
176
+ "reset": "Reset",
177
+ "activeAccount": "Active user account",
178
+ "studioAccess": "Studio Access",
179
+ "customPermissions": "Custom permissions",
180
+ "loadingSchemaPermissions": "Loading schema permissions...",
181
+ "failedLoadSchemaPermissions": "Failed to load schema permissions: {{error}}",
182
+ "allContentEnabled": "(All Content Operations enabled)",
183
+ "coveredByAllContent": "(Covered by All Content Operations)",
184
+ "customSchemaPermissions": "Custom Schema Permissions",
185
+ "customPermissionPlaceholder": "e.g., custom:read, external:write, special:*",
186
+ "addPermission": "Add",
187
+ "customPermissionsLabel": "Custom permissions:",
188
+ "permissionFormatHelp": "Format: schema:action (e.g., custom:read, external:write, special:*). Schema permissions are auto-generated above.",
189
+ "permissionValidationError": "Permission must be in format \"schema:action\" (e.g., \"articles:read\", \"products:write\", \"events:*\")",
190
+ "cancel": "Cancel",
191
+ "updating": "Updating...",
192
+ "creating": "Creating...",
193
+ "updateUser": "Update User",
194
+ "failedSave": "Failed to save user. Please try again."
195
+ },
196
+ "roles": {
197
+ "admin": "Administrator",
198
+ "adminDesc": "Full access to all features",
199
+ "editor": "Editor",
200
+ "editorDesc": "Create, edit, and publish content",
201
+ "writer": "Writer",
202
+ "writerDesc": "Create and edit content, cannot publish",
203
+ "author": "Author",
204
+ "authorDesc": "Create and edit own content",
205
+ "viewer": "Viewer",
206
+ "viewerDesc": "Read-only access to content"
207
+ },
208
+ "permissions": {
209
+ "allContent": "All Content Operations",
210
+ "viewAllContent": "View All Content",
211
+ "editAllContent": "Edit All Content",
212
+ "deleteAllContent": "Delete All Content",
213
+ "publishAllContent": "Publish All Content",
214
+ "viewMedia": "View Media",
215
+ "uploadMedia": "Upload Media",
216
+ "editMedia": "Edit Media",
217
+ "deleteMedia": "Delete Media",
218
+ "viewUsers": "View Users",
219
+ "editUsers": "Edit Users",
220
+ "deleteUsers": "Delete Users",
221
+ "inviteUsers": "Invite Users",
222
+ "viewSettings": "View Settings",
223
+ "editSettings": "Edit Settings",
224
+ "studioAccess": "Studio Access",
225
+ "viewTokens": "View API Tokens",
226
+ "createTokens": "Create API Tokens",
227
+ "deleteTokens": "Delete API Tokens",
228
+ "viewWebhooks": "View Webhooks",
229
+ "createEditWebhooks": "Create/Edit Webhooks",
230
+ "deleteWebhooks": "Delete Webhooks",
231
+ "testWebhooks": "Test Webhooks"
232
+ }
233
+ },
234
+ "appTokens": {
235
+ "title": "API Tokens",
236
+ "subtitle": "Create and manage API tokens for external applications",
237
+ "createToken": "Create Token",
238
+ "searchPlaceholder": "Search tokens...",
239
+ "noTokensTitle": "No API tokens yet",
240
+ "noTokensDesc": "Create your first API token to enable external access to your content.",
241
+ "tableHeaders": {
242
+ "token": "Token",
243
+ "status": "Status",
244
+ "lastUsed": "Last Used",
245
+ "expires": "Expires",
246
+ "actions": "Actions"
247
+ },
248
+ "status": {
249
+ "active": "Active",
250
+ "inactive": "Inactive",
251
+ "expired": "Expired"
252
+ },
253
+ "never": "Never",
254
+ "modal": {
255
+ "title": "Create API Token",
256
+ "tokenName": "Token Name",
257
+ "tokenNamePlaceholder": "e.g., Production API, Mobile App",
258
+ "description": "Description",
259
+ "descriptionPlaceholder": "What will this token be used for?",
260
+ "expiration": "Expiration",
261
+ "expiration30days": "30 days",
262
+ "expiration90days": "90 days (recommended)",
263
+ "expiration1year": "1 year",
264
+ "expirationNever": "Never expires",
265
+ "expirationCustom": "Custom date",
266
+ "permissions": "Permissions",
267
+ "cancel": "Cancel",
268
+ "creating": "Creating...",
269
+ "createToken": "Create Token"
270
+ },
271
+ "tokenCreated": {
272
+ "title": "API Token Created",
273
+ "warning": "This is the only time you'll see this token. Copy it now and store it securely.",
274
+ "yourToken": "Your API Token",
275
+ "copied": "Copied!",
276
+ "close": "Close"
277
+ },
278
+ "deleteConfirm": "Are you sure you want to delete the token \"{{name}}\"? This action cannot be undone.",
279
+ "permissions": {
280
+ "viewContent": "View Content",
281
+ "editContent": "Edit Content",
282
+ "deleteContent": "Delete Content",
283
+ "publishContent": "Publish Content",
284
+ "viewMedia": "View Media",
285
+ "uploadMedia": "Upload Media",
286
+ "editMedia": "Edit Media",
287
+ "deleteMedia": "Delete Media"
288
+ }
289
+ },
290
+ "webhooks": {
291
+ "title": "Webhooks",
292
+ "subtitle": "Receive real-time notifications when events occur",
293
+ "createWebhook": "Create Webhook",
294
+ "searchPlaceholder": "Search webhooks...",
295
+ "noWebhooksTitle": "No webhooks configured",
296
+ "noWebhooksDesc": "Create your first webhook to receive real-time notifications when events occur.",
297
+ "tableHeaders": {
298
+ "webhook": "Webhook",
299
+ "status": "Status",
300
+ "events": "Events",
301
+ "lastUpdated": "Last Updated",
302
+ "actions": "Actions"
303
+ },
304
+ "status": {
305
+ "active": "Active",
306
+ "inactive": "Inactive"
307
+ },
308
+ "eventsCount": "{{count}} event",
309
+ "eventsCount_plural": "{{count}} events",
310
+ "moreEvents": "+{{count}} more",
311
+ "testWebhook": "Test webhook",
312
+ "viewDeliveryHistory": "View delivery history",
313
+ "editWebhook": "Edit webhook",
314
+ "deleteWebhook": "Delete webhook",
315
+ "deleteConfirm": "Are you sure you want to delete the webhook \"{{name}}\"? This action cannot be undone.",
316
+ "modal": {
317
+ "editTitle": "Edit Webhook",
318
+ "createTitle": "Create Webhook",
319
+ "name": "Webhook Name",
320
+ "namePlaceholder": "e.g., Content Sync, Slack Notifications",
321
+ "url": "Endpoint URL",
322
+ "urlPlaceholder": "https://api.example.com/webhooks/trokky",
323
+ "events": "Events to Subscribe To",
324
+ "secret": "Secret Key",
325
+ "secretPlaceholder": "Leave empty to auto-generate",
326
+ "secretDescription": "Used to verify webhook authenticity via HMAC signatures",
327
+ "headers": "Custom Headers",
328
+ "headerNamePlaceholder": "Header name",
329
+ "headerValuePlaceholder": "Header value",
330
+ "maxRetries": "Max Retries",
331
+ "backoffStrategy": "Backoff Strategy",
332
+ "linear": "Linear",
333
+ "exponential": "Exponential",
334
+ "active": "Active (webhook will receive events)",
335
+ "updating": "Updating...",
336
+ "creating": "Creating...",
337
+ "update": "Update Webhook",
338
+ "create": "Create Webhook"
339
+ },
340
+ "deliveryModal": {
341
+ "title": "Delivery History: {{name}}",
342
+ "noDeliveries": "No deliveries yet",
343
+ "status": "Status",
344
+ "response": "Response",
345
+ "timestamp": "Time",
346
+ "attempt": "Attempt",
347
+ "success": "Success",
348
+ "failed": "Failed"
349
+ },
350
+ "events": {
351
+ "allDocuments": "All Document Events",
352
+ "documentCreated": "Document Created",
353
+ "documentUpdated": "Document Updated",
354
+ "documentDeleted": "Document Deleted",
355
+ "documentPublished": "Document Published",
356
+ "documentUnpublished": "Document Unpublished",
357
+ "allMedia": "All Media Events",
358
+ "mediaUploaded": "Media Uploaded",
359
+ "mediaUpdated": "Media Updated",
360
+ "mediaDeleted": "Media Deleted",
361
+ "allUsers": "All User Events",
362
+ "userCreated": "User Created",
363
+ "userUpdated": "User Updated",
364
+ "userLogin": "User Login",
365
+ "allSystem": "All System Events",
366
+ "systemStartup": "System Startup",
367
+ "systemError": "System Error"
368
+ }
369
+ },
370
+ "changePassword": {
371
+ "title": "Change Password",
372
+ "currentPassword": "Current Password",
373
+ "newPassword": "New Password",
374
+ "confirmPassword": "Confirm New Password",
375
+ "passwordHint": "At least 8 characters",
376
+ "cancel": "Cancel",
377
+ "changing": "Changing...",
378
+ "changePassword": "Change Password",
379
+ "success": "Password changed successfully!",
380
+ "errors": {
381
+ "currentRequired": "Current password is required",
382
+ "newRequired": "New password is required",
383
+ "minLength": "New password must be at least 8 characters",
384
+ "mismatch": "Passwords do not match",
385
+ "sameAsOld": "New password must be different from current password"
386
+ }
387
+ },
388
+ "oauth": {
389
+ "accountLinked": "Account linked successfully",
390
+ "unlinkSuccess": "{{provider}} account unlinked successfully",
391
+ "unlinkFailed": "Failed to unlink account",
392
+ "notConnected": "Not connected",
393
+ "linked": "Linked {{date}}",
394
+ "unlink": "Unlink",
395
+ "comingSoon": "Coming Soon",
396
+ "google": {
397
+ "signIn": "Sign in with Google",
398
+ "linkAccount": "Link Google Account",
399
+ "initFailed": "Failed to initialize Google login"
400
+ }
401
+ },
402
+ "mfa": {
403
+ "title": "Two-Factor Authentication",
404
+ "subtitle": "Add an extra layer of security to your account",
405
+ "enabled": "MFA Enabled",
406
+ "notEnabled": "MFA Not Enabled",
407
+ "authenticatorApp": "Authenticator App",
408
+ "authenticatorAppDesc": "Use an app like Google Authenticator or Authy",
409
+ "emailVerification": "Email Verification",
410
+ "emailVerificationDesc": "Receive verification codes via email",
411
+ "emailCode": "Email Code",
412
+ "backupCode": "Backup Code",
413
+ "backupCodes": "Backup Codes",
414
+ "backupCodesRemaining": "{{count}} codes remaining",
415
+ "totpDescription": "Enter the 6-digit code from your authenticator app",
416
+ "emailDescriptionPending": "A code will be sent to your email",
417
+ "emailDescriptionSent": "Enter the code sent to your email",
418
+ "backupDescription": "Enter one of your backup codes (format: XXXX-XXXX)",
419
+ "enterCode": "Please enter the verification code",
420
+ "trustDevice": "Trust this device for 30 days",
421
+ "trustedDevices": "Trusted Devices",
422
+ "trustedDevicesCount": "{{count}} device trusted",
423
+ "trustedDevicesCount_plural": "{{count}} devices trusted",
424
+ "verifying": "Verifying...",
425
+ "verify": "Verify",
426
+ "sendingCode": "Sending...",
427
+ "resendCode": "Didn't receive the code? Resend",
428
+ "setUp": "Set Up",
429
+ "disableMethod": "Disable",
430
+ "manage": "Manage",
431
+ "hide": "Hide",
432
+ "regenerate": "Regenerate",
433
+ "revokeAll": "Revoke All",
434
+ "cancel": "Cancel",
435
+ "next": "Next",
436
+ "done": "Done",
437
+ "copyAll": "Copy All",
438
+ "copiedToClipboard": "Copied to clipboard",
439
+ "setup": {
440
+ "authenticator": "Set Up Authenticator App",
441
+ "scanQrCode": "Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.)",
442
+ "orEnterManually": "Or enter this code manually:",
443
+ "verifyAuthenticatorCode": "Verify Authenticator Code",
444
+ "enterCodeToVerify": "Enter the 6-digit code from your authenticator app to verify setup.",
445
+ "verifyEmailCode": "Verify Email Code",
446
+ "enterEmailCode": "Enter the code sent to your email address.",
447
+ "saveBackupCodes": "Save Your Backup Codes",
448
+ "backupCodesImportant": "Save these backup codes in a secure place. You can use them to access your account if you lose your authenticator device.",
449
+ "newBackupCodes": "Your New Backup Codes",
450
+ "newBackupCodesImportant": "Save these backup codes in a secure place. Your previous codes are now invalid. You can use these codes to access your account if you lose your authenticator device."
451
+ },
452
+ "disable": {
453
+ "authenticator": "Disable Authenticator App",
454
+ "email": "Disable Email Verification",
455
+ "enterPassword": "Enter your password to disable this MFA method.",
456
+ "all": "Disable All MFA",
457
+ "allDesc": "This will remove all MFA methods and backup codes from your account",
458
+ "allWarning": "This will completely disable two-factor authentication on your account. All MFA methods (authenticator app, email) and backup codes will be removed.",
459
+ "confirmPassword": "Enter your password to confirm."
460
+ },
461
+ "regenerateBackupCodes": {
462
+ "title": "Regenerate Backup Codes",
463
+ "description": "This will invalidate all your existing backup codes. Enter your password to confirm."
464
+ },
465
+ "trustedDevice": {
466
+ "trusted": "Trusted: {{date}}",
467
+ "confirmRevokeAll": "Are you sure you want to revoke trust from all devices?"
468
+ },
469
+ "toast": {
470
+ "loadFailed": "Failed to load MFA status",
471
+ "totpInitFailed": "Failed to initialize TOTP setup",
472
+ "totpEnabled": "Authenticator app enabled successfully!",
473
+ "emailCodeSent": "Verification code sent to your email",
474
+ "emailSendFailed": "Failed to send verification code",
475
+ "emailEnabled": "Email verification enabled successfully!",
476
+ "authenticatorDisabled": "Authenticator app disabled",
477
+ "emailDisabled": "Email verification disabled",
478
+ "allDisabled": "All MFA has been disabled",
479
+ "backupCodesRegenerated": "Backup codes regenerated. Save them securely!",
480
+ "deviceRevoked": "Device trust revoked",
481
+ "deviceRevokeFailed": "Failed to revoke device trust",
482
+ "allDevicesRevoked": "All device trusts revoked",
483
+ "allDevicesRevokeFailed": "Failed to revoke device trusts"
484
+ },
485
+ "errors": {
486
+ "passwordRequired": "Password is required"
487
+ }
488
+ },
489
+ "passkey": {
490
+ "signIn": "Sign in with Passkey",
491
+ "optionsFailed": "Failed to start passkey authentication",
492
+ "cancelled": "Authentication was cancelled",
493
+ "notSupported": "Passkeys are not supported in this browser",
494
+ "authFailed": "Passkey authentication failed",
495
+ "verifyFailed": "Passkey verification failed",
496
+ "unexpectedResponse": "Unexpected response from server",
497
+ "manager": {
498
+ "title": "Passkeys",
499
+ "description": "Sign in securely without a password using your fingerprint, face, or security key.",
500
+ "loadFailed": "Failed to load passkeys",
501
+ "renameFailed": "Failed to rename passkey",
502
+ "deleteFailed": "Failed to delete passkey",
503
+ "notConfigured": "Passkey authentication is not enabled",
504
+ "notConfiguredDescription": "Passkey authentication needs to be configured by an administrator in the server settings.",
505
+ "noPasskeys": "You haven't set up any passkeys yet.",
506
+ "unnamed": "Passkey",
507
+ "added": "Added",
508
+ "lastUsed": "Last used",
509
+ "synced": "Synced across devices",
510
+ "deviceOnly": "This device only"
511
+ },
512
+ "register": {
513
+ "addPasskey": "Add Passkey",
514
+ "optionsFailed": "Failed to start passkey registration",
515
+ "cancelled": "Registration was cancelled",
516
+ "alreadyRegistered": "This passkey is already registered",
517
+ "notSupported": "Passkeys are not supported in this browser",
518
+ "failed": "Passkey registration failed",
519
+ "verifyFailed": "Passkey registration verification failed",
520
+ "namePlaceholder": "e.g., MacBook Pro Touch ID",
521
+ "continue": "Continue"
522
+ }
523
+ },
524
+ "captcha": {
525
+ "loading": "Loading CAPTCHA...",
526
+ "errors": {
527
+ "hcaptchaNotSupported": "hCaptcha is not yet supported",
528
+ "providerNotSupported": "Provider \"{{provider}}\" is not supported",
529
+ "scriptLoadFailed": "Failed to load CAPTCHA script",
530
+ "renderFailed": "Failed to render CAPTCHA widget",
531
+ "notAvailable": "{{provider}} not available"
532
+ }
533
+ },
534
+ "sessionTimeout": {
535
+ "title": "Session Expiring Soon",
536
+ "expireIn": "Your session will expire in {{time}}.",
537
+ "continueWorking": "Continue working to stay logged in.",
538
+ "extendSession": "Extend Session",
539
+ "dismiss": "Dismiss",
540
+ "close": "Close",
541
+ "expired": "Session expired"
542
+ },
543
+ "users": {
544
+ "title": "User Management",
545
+ "subtitle": "Manage user accounts, roles, and permissions",
546
+ "addUser": "Add User",
547
+ "editUser": "Edit User",
548
+ "createUser": "Create User",
549
+ "deleteUser": "Delete User",
550
+ "searchPlaceholder": "Search users...",
551
+ "table": {
552
+ "user": "User",
553
+ "role": "Role",
554
+ "status": "Status",
555
+ "lastLogin": "Last Login",
556
+ "actions": "Actions"
557
+ },
558
+ "roles": {
559
+ "admin": "Administrator",
560
+ "adminDescription": "Full access to all features",
561
+ "editor": "Editor",
562
+ "editorDescription": "Create, edit, and publish content",
563
+ "author": "Author",
564
+ "authorDescription": "Create and edit own content",
565
+ "viewer": "Viewer",
566
+ "viewerDescription": "Read-only access to content"
567
+ },
568
+ "form": {
569
+ "basicInfo": "Basic Information",
570
+ "accessPermissions": "Access & Permissions",
571
+ "username": "Username",
572
+ "email": "Email",
573
+ "fullName": "Full Name",
574
+ "password": "Password",
575
+ "newPasswordOptional": "New Password (optional)",
576
+ "role": "Role",
577
+ "activeAccount": "Active user account",
578
+ "studioAccess": "Studio Access",
579
+ "customPermissions": "Custom permissions",
580
+ "customSchemaPermissions": "Custom Schema Permissions",
581
+ "permissionFormat": "Format: schema:action (e.g., custom:read, external:write, special:*). Schema permissions are auto-generated above.",
582
+ "generate": "Generate"
583
+ },
584
+ "permissions": {
585
+ "title": "Permissions",
586
+ "reset": "Reset",
587
+ "loading": "Loading schema permissions...",
588
+ "loadError": "Failed to load schema permissions: {{error}}",
589
+ "allContentOps": "All Content Operations",
590
+ "viewContent": "View All Content",
591
+ "editContent": "Edit All Content",
592
+ "deleteContent": "Delete All Content",
593
+ "publishContent": "Publish All Content",
594
+ "viewMedia": "View Media",
595
+ "uploadMedia": "Upload Media",
596
+ "editMedia": "Edit Media",
597
+ "deleteMedia": "Delete Media",
598
+ "viewUsers": "View Users",
599
+ "editUsers": "Edit Users",
600
+ "deleteUsers": "Delete Users",
601
+ "inviteUsers": "Invite Users",
602
+ "viewSettings": "View Settings",
603
+ "editSettings": "Edit Settings",
604
+ "studioAccess": "Studio Access",
605
+ "viewTokens": "View API Tokens",
606
+ "createTokens": "Create API Tokens",
607
+ "deleteTokens": "Delete API Tokens",
608
+ "viewWebhooks": "View Webhooks",
609
+ "editWebhooks": "Create/Edit Webhooks",
610
+ "deleteWebhooks": "Delete Webhooks",
611
+ "testWebhooks": "Test Webhooks",
612
+ "groups": {
613
+ "content": "Content",
614
+ "media": "Media",
615
+ "users": "Users",
616
+ "settings": "Settings",
617
+ "access": "Access",
618
+ "tokens": "Tokens",
619
+ "webhooks": "Webhooks"
620
+ },
621
+ "allContentEnabled": "(All Content Operations enabled)",
622
+ "coveredByAllContent": "(Covered by All Content Operations)"
623
+ },
624
+ "confirmDelete": "Are you sure you want to delete user \"{{username}}\"? This action cannot be undone.",
625
+ "confirmResetMFA": "Are you sure you want to reset MFA for \"{{username}}\"? They will need to set up MFA again.",
626
+ "resetMFA": "Reset MFA",
627
+ "mfaEnabled": "MFA Enabled",
628
+ "custom": "Custom"
629
+ },
630
+ "media": {
631
+ "title": "Media Library",
632
+ "subtitle": "Upload and manage your media files",
633
+ "upload": "Upload",
634
+ "uploadFiles": "Upload Files",
635
+ "dragAndDrop": "Drag and drop files here",
636
+ "or": "or",
637
+ "browseFiles": "Browse files",
638
+ "noMedia": "No media files",
639
+ "delete": "Delete",
640
+ "download": "Download",
641
+ "copyUrl": "Copy URL",
642
+ "details": "Details",
643
+ "filename": "Filename",
644
+ "filesize": "File size",
645
+ "dimensions": "Dimensions",
646
+ "uploadedAt": "Uploaded at",
647
+ "mimeType": "MIME type",
648
+ "types": {
649
+ "all": "All Files",
650
+ "images": "Images",
651
+ "videos": "Videos",
652
+ "audio": "Audio",
653
+ "documents": "Documents",
654
+ "archives": "Archives"
655
+ },
656
+ "accessDenied": "Access Denied",
657
+ "accessDeniedMessage": "You don't have permission to access the media library. Contact your administrator for access.",
658
+ "searchPlaceholder": "Search media...",
659
+ "view": {
660
+ "grid": "Grid View",
661
+ "list": "List View"
662
+ },
663
+ "filters": "Filters",
664
+ "clearFilters": "Clear filters",
665
+ "selected": "{{count}} selected",
666
+ "deleteSelected": "Delete Selected",
667
+ "confirmBulkDelete": "Are you sure you want to delete {{count}} file(s)? This action cannot be undone.",
668
+ "confirmDelete": "Are you sure you want to delete this file? This action cannot be undone.",
669
+ "editMetadata": "Edit Metadata",
670
+ "preview": "Preview",
671
+ "noResults": "No media files found",
672
+ "uploadSuccess": "File uploaded successfully",
673
+ "uploadError": "Failed to upload file",
674
+ "deleteSuccess": "File deleted successfully",
675
+ "deleteError": "Failed to delete file",
676
+ "perPage": "per page",
677
+ "sort": {
678
+ "dateDesc": "Newest first",
679
+ "dateAsc": "Oldest first",
680
+ "nameAsc": "Name A-Z",
681
+ "nameDesc": "Name Z-A",
682
+ "sizeDesc": "Largest first",
683
+ "sizeAsc": "Smallest first"
684
+ }
685
+ },
686
+ "content": {
687
+ "title": "Content",
688
+ "subtitle": "Manage all your content types and documents",
689
+ "loading": "Loading content types...",
690
+ "loadingDocuments": "Loading documents...",
691
+ "loadingSingleton": "Loading singleton document...",
692
+ "error": {
693
+ "loadingTypes": "Error loading content types",
694
+ "loadingDocuments": "Error loading documents",
695
+ "documentNotFound": "Document Not Found"
696
+ },
697
+ "noTypes": "No content types found",
698
+ "noTypesDescription": "Content types will appear here once your backend is configured with schemas.",
699
+ "viewDocuments": "View Documents",
700
+ "refresh": "Refresh",
701
+ "tryAgain": "Try Again",
702
+ "backToContent": "Back to Content",
703
+ "manageDocuments": "Manage your documents",
704
+ "viewExisting": "View existing documents",
705
+ "create": "Create {{type}}",
706
+ "deleteDocument": "Delete Document",
707
+ "confirmDelete": "Are you sure you want to delete this document? This action cannot be undone.",
708
+ "confirmBulkDelete": "Are you sure you want to delete {{count}} document(s)? This action cannot be undone.",
709
+ "deleteAll": "Delete All",
710
+ "changeStatus": "Change Status",
711
+ "redirecting": "Redirecting...",
712
+ "search": "Search {{type}}...",
713
+ "views": {
714
+ "list": "List View",
715
+ "grid": "Grid View",
716
+ "table": "Table View"
717
+ },
718
+ "filters": {
719
+ "status": "Status",
720
+ "draft": "Draft",
721
+ "published": "Published",
722
+ "archived": "Archived"
723
+ },
724
+ "sort": {
725
+ "title": "Title",
726
+ "createdDate": "Created Date",
727
+ "updatedDate": "Updated Date"
728
+ },
729
+ "bulkActions": {
730
+ "changeStatus": "Change Status",
731
+ "delete": "Delete"
732
+ }
733
+ },
734
+ "documents": {
735
+ "title": "Documents",
736
+ "createNew": "Create New",
737
+ "noDocuments": "No documents found",
738
+ "untitled": "Untitled",
739
+ "modified": "Modified",
740
+ "created": "Created",
741
+ "publish": "Publish",
742
+ "unpublish": "Unpublish",
743
+ "duplicate": "Duplicate",
744
+ "delete": "Delete",
745
+ "confirmDelete": "Are you sure you want to delete this document?",
746
+ "saveChanges": "Save Changes",
747
+ "discardChanges": "Discard Changes",
748
+ "unsavedChanges": "You have unsaved changes"
749
+ },
750
+ "settings": {
751
+ "title": "Settings",
752
+ "subtitle": "Configure your Trokky Studio and content management",
753
+ "loading": "Loading settings...",
754
+ "general": "General",
755
+ "generalSettings": "General Settings",
756
+ "branding": "Branding",
757
+ "security": "Security",
758
+ "securitySettings": "Security Settings",
759
+ "api": "API",
760
+ "webhooks": "Webhooks",
761
+ "tokens": "API Tokens",
762
+ "accessDenied": "Access Denied",
763
+ "accessDeniedMessage": "You don't have permission to access Studio settings. Contact your administrator for access.",
764
+ "readOnlyMessage": "You have read-only access to settings. Contact your administrator to make changes.",
765
+ "studioTitle": "Studio Title",
766
+ "studioTitleDescription": "The title displayed in the Studio interface",
767
+ "organizationName": "Organization Name",
768
+ "organizationNameDescription": "Organization or company name displayed on the login page",
769
+ "primaryColor": "Primary Brand Color",
770
+ "primaryColorDescription": "Primary color for buttons, links, and accents",
771
+ "secondaryColor": "Secondary Brand Color",
772
+ "secondaryColorDescription": "Secondary color for subtle elements and backgrounds",
773
+ "logoUrl": "Logo URL",
774
+ "logoUrlDescription": "URL to your organization logo (displayed on login page)",
775
+ "logoPreview": "Preview:",
776
+ "publicUrl": "Public Website URL",
777
+ "publicUrlDescription": "The public URL where your content will be displayed. Used for \"View Live\" links.",
778
+ "defaultTheme": "Default Theme",
779
+ "defaultThemeDescription": "Choose the default theme for new users",
780
+ "mfa": {
781
+ "title": "Multi-Factor Authentication (MFA) Enforcement",
782
+ "requireAll": "Require MFA for all users",
783
+ "requireRoles": "Or require MFA for specific roles:",
784
+ "allowedMethods": "Allowed MFA Methods",
785
+ "allowedMethodsDescription": "Select which MFA methods users can choose from:",
786
+ "totp": "Authenticator App (TOTP) - Recommended",
787
+ "email": "Email OTP - Send one-time code to email",
788
+ "atLeastOne": "At least one method must be enabled.",
789
+ "roleDisabledNote": "Role-based selection is disabled when MFA is required for all users.",
790
+ "enforcementNote": "When MFA is enforced, users without MFA set up will be prompted to configure it on their next login. They will receive a 15-minute setup window to complete the configuration."
791
+ },
792
+ "saveChanges": "Save Changes",
793
+ "saving": "Saving...",
794
+ "saveSuccess": "Settings saved successfully!",
795
+ "saveError": "Failed to save settings: {{error}}",
796
+ "loadError": "Failed to load settings. Using defaults."
797
+ },
798
+ "auditLogs": {
799
+ "title": "Audit Logs",
800
+ "subtitle": "Complete history of all content changes in the CMS",
801
+ "action": "Action",
802
+ "user": "User",
803
+ "resource": "Resource",
804
+ "timestamp": "Timestamp",
805
+ "details": "Details",
806
+ "noLogs": "No audit logs found",
807
+ "loading": "Loading audit logs...",
808
+ "refresh": "Refresh",
809
+ "search": "Search",
810
+ "searchPlaceholder": "Search by document title, ID, or collection...",
811
+ "filters": "Filters",
812
+ "clearFilters": "Clear all filters",
813
+ "collection": "Collection",
814
+ "allCollections": "All collections",
815
+ "allUsers": "All users",
816
+ "operation": "Operation",
817
+ "allOperations": "All operations",
818
+ "showingResults": "Showing {{start}}-{{end}} of {{total}} entries",
819
+ "noResults": "No entries found",
820
+ "page": "Page {{current}} of {{total}}",
821
+ "previous": "Previous",
822
+ "next": "Next",
823
+ "tryAgain": "Try again",
824
+ "operations": {
825
+ "create": "Created",
826
+ "update": "Updated",
827
+ "delete": "Deleted",
828
+ "publish": "Published",
829
+ "unpublish": "Unpublished",
830
+ "restore": "Restored"
831
+ },
832
+ "technical": {
833
+ "revision": "Revision:",
834
+ "documentId": "Document ID:",
835
+ "ip": "IP:",
836
+ "actorType": "Actor type:"
837
+ },
838
+ "hideDetails": "Hide details",
839
+ "showDetails": "Show details",
840
+ "changedField": "Changed {{field}}",
841
+ "changedFields": "Changed {{count}} fields"
842
+ },
843
+ "dashboard": {
844
+ "welcome": "Welcome to Trokky Studio",
845
+ "subtitle": "Content management made simple",
846
+ "recentActivity": "Recent Activity",
847
+ "quickActions": "Quick Actions",
848
+ "quickStart": "Quick Start",
849
+ "createFirstDocument": "Create Your First Document",
850
+ "uploadMedia": "Upload Media",
851
+ "studioSettings": "Studio Settings",
852
+ "userPreferences": "User Preferences",
853
+ "cards": {
854
+ "content": {
855
+ "title": "Content",
856
+ "description": "Create and manage your content"
857
+ },
858
+ "media": {
859
+ "title": "Media",
860
+ "description": "Upload and organize media files"
861
+ },
862
+ "users": {
863
+ "title": "Users",
864
+ "description": "Manage users and permissions"
865
+ }
866
+ },
867
+ "stats": {
868
+ "loading": "Loading stats...",
869
+ "contentOverview": "Content Overview",
870
+ "totalContent": "Total Content",
871
+ "singletons": "Singletons",
872
+ "mediaFiles": "Media Files",
873
+ "content": "Content",
874
+ "thisWeek": "this week",
875
+ "documents": "Documents",
876
+ "media": "Media Files",
877
+ "users": "Users"
878
+ },
879
+ "activity": {
880
+ "title": "Recent Activity",
881
+ "refresh": "Refresh activity",
882
+ "loading": "Loading recent activity...",
883
+ "unknownTime": "Unknown time",
884
+ "tryAgain": "Try again",
885
+ "noActivity": "No recent activity",
886
+ "noActivityDescription": "Activity will appear here as content is created and edited",
887
+ "failedToLoad": "Failed to load recent activity",
888
+ "operations": {
889
+ "created": "created",
890
+ "updated": "updated",
891
+ "deleted": "deleted",
892
+ "published": "published",
893
+ "unpublished": "unpublished",
894
+ "restored": "restored"
895
+ },
896
+ "changedField": "Changed {{field}}",
897
+ "changedFields": "Changed {{fields}}",
898
+ "changedFieldsCount": "Changed {{count}} fields",
899
+ "by": "by"
900
+ }
901
+ },
902
+ "language": {
903
+ "title": "Language",
904
+ "select": "Select language",
905
+ "current": "Current language"
906
+ },
907
+ "sidebar": {
908
+ "navigation": "Navigation",
909
+ "expand": "Expand sidebar",
910
+ "collapse": "Collapse sidebar",
911
+ "searchNavigation": "Search navigation...",
912
+ "loadingNavigation": "Loading navigation...",
913
+ "failedToLoad": "Failed to load navigation",
914
+ "noResultsFor": "No results found for \"{{query}}\"",
915
+ "clearSearch": "Clear search"
916
+ },
917
+ "layout": {
918
+ "globalSearch": "Global Search",
919
+ "searchPlaceholder": "Search functionality will be implemented here.",
920
+ "expandContext": "Expand context sidebar",
921
+ "collapseContext": "Collapse context sidebar",
922
+ "resizeSidebar": "Drag to resize sidebar"
923
+ },
924
+ "contextSidebar": {
925
+ "quickActions": "Quick Actions",
926
+ "createContent": "Create Content",
927
+ "createContentDesc": "Start with a new document",
928
+ "uploadMedia": "Upload Media",
929
+ "uploadMediaDesc": "Add images and files",
930
+ "recentActivity": "Recent Activity",
931
+ "noRecentActivity": "No recent activity",
932
+ "contentTypes": "Content Types",
933
+ "noContentTypes": "No content types available",
934
+ "mediaLibrary": "Media Library",
935
+ "mediaLibraryDesc": "Upload and manage your media files",
936
+ "userOverview": "User Overview",
937
+ "totalUsers": "Total Users",
938
+ "active": "Active",
939
+ "roles": "Roles",
940
+ "usersLoggedInWeek": "{{count}} user logged in this week",
941
+ "usersLoggedInWeek_plural": "{{count}} users logged in this week",
942
+ "usersNeverLoggedIn": "{{count}} user never logged in",
943
+ "usersNeverLoggedIn_plural": "{{count}} users never logged in",
944
+ "inactiveUsers": "{{count}} inactive user",
945
+ "inactiveUsers_plural": "{{count}} inactive users",
946
+ "addNewUser": "Add New User",
947
+ "manageApiTokens": "Manage API Tokens",
948
+ "studioSettings": "Studio Settings",
949
+ "configureStudio": "Configure your studio",
950
+ "fieldsRegistry": "Fields Registry",
951
+ "totalFields": "Total Fields",
952
+ "initialized": "Initialized",
953
+ "yes": "Yes",
954
+ "no": "No",
955
+ "availableTypes": "Available Types",
956
+ "documentation": "Documentation",
957
+ "docSelectFields": "Select fields from the sidebar to test different types",
958
+ "docEditPreview": "Use the Edit/Preview tabs to see both modes",
959
+ "docUseExamples": "Click example \"Use\" buttons to try different values",
960
+ "docShowErrors": "Toggle \"Show Errors\" to test validation",
961
+ "defaultContextInfo": "Context information will appear here based on the current page.",
962
+ "widgets": {
963
+ "unknownType": "Unknown widget type: {{type}}",
964
+ "recentDocuments": {
965
+ "defaultTitle": "Recent {{schema}}",
966
+ "defaultTitleFallback": "Recent Documents",
967
+ "noSchemaType": "No schema type specified",
968
+ "failedToLoad": "Failed to load recent documents",
969
+ "untitled": "Untitled",
970
+ "noDocuments": "No recent documents",
971
+ "by": "by"
972
+ },
973
+ "stats": {
974
+ "total": "Total",
975
+ "published": "Published",
976
+ "calculating": "Calculating...",
977
+ "notAvailable": "N/A"
978
+ },
979
+ "category": {
980
+ "uncategorized": "Uncategorized"
981
+ },
982
+ "recentlyEdited": {
983
+ "untitled": "Untitled",
984
+ "by": "by",
985
+ "author": "Author"
986
+ }
987
+ }
988
+ },
989
+ "preferences": {
990
+ "title": "Preferences",
991
+ "subtitle": "Customize your Studio experience",
992
+ "appearance": "Appearance",
993
+ "theme": "Theme",
994
+ "themeSystem": "System Default",
995
+ "themeLight": "Light",
996
+ "themeDark": "Dark",
997
+ "notifications": "Notifications",
998
+ "emailNotifications": "Email Notifications",
999
+ "emailNotificationsDescription": "Receive notifications via email",
1000
+ "pushNotifications": "Push Notifications",
1001
+ "pushNotificationsDescription": "Receive browser push notifications",
1002
+ "connectedAccounts": "Connected Accounts",
1003
+ "connectedAccountsDescription": "Link external accounts for easier sign-in",
1004
+ "security": "Security",
1005
+ "securityDescription": "Manage two-factor authentication and security settings",
1006
+ "passkeys": "Passkeys",
1007
+ "passkeysDescription": "Sign in securely without a password using your fingerprint, face, or security key.",
1008
+ "savePreferences": "Save Preferences",
1009
+ "saveSuccess": "Preferences saved successfully",
1010
+ "saveError": "Failed to update preferences"
1011
+ },
1012
+ "notFound": {
1013
+ "title": "Page not found",
1014
+ "message": "The page you're looking for doesn't exist or has been moved.",
1015
+ "goToDashboard": "Go to Dashboard"
1016
+ },
1017
+ "auth": {
1018
+ "forgotPassword": {
1019
+ "title": "Forgot password?",
1020
+ "subtitle": "Enter your email address and we'll send you a link to reset your password.",
1021
+ "sendResetLink": "Send Reset Link",
1022
+ "sending": "Sending...",
1023
+ "backToSignIn": "Back to Sign In",
1024
+ "checkEmail": "Check your email",
1025
+ "emailSentMessage": "If an account exists for <strong>{{email}}</strong>, you will receive a password reset link shortly.",
1026
+ "linkExpires": "The link will expire in 1 hour.",
1027
+ "captchaRequired": "Please complete the CAPTCHA verification",
1028
+ "sendError": "Failed to send reset email"
1029
+ },
1030
+ "resetPassword": {
1031
+ "title": "Reset Password",
1032
+ "subtitle": "Enter your new password below.",
1033
+ "newPassword": "New password",
1034
+ "confirmPassword": "Confirm new password",
1035
+ "resetButton": "Reset Password",
1036
+ "resetting": "Resetting Password...",
1037
+ "verifying": "Verifying reset link...",
1038
+ "success": "Password Reset Successful",
1039
+ "successMessage": "Your password has been successfully reset. You can now sign in with your new password.",
1040
+ "signIn": "Sign In",
1041
+ "invalidLink": "Invalid Reset Link",
1042
+ "invalidLinkMessage": "This password reset link is invalid or has expired.",
1043
+ "linkExpireNote": "Reset links expire after 1 hour. Please request a new one.",
1044
+ "requestNewLink": "Request New Link",
1045
+ "noToken": "No reset token provided",
1046
+ "tokenInvalid": "Invalid or expired reset token",
1047
+ "tokenVerifyError": "Failed to verify reset token",
1048
+ "passwordMinLength": "Password must be at least 8 characters long",
1049
+ "passwordMismatch": "Passwords do not match",
1050
+ "captchaRequired": "Please complete the CAPTCHA verification",
1051
+ "resetError": "Failed to reset password",
1052
+ "linkExpiresIn": "Link expires in {{minutes}} minute",
1053
+ "linkExpiresIn_plural": "Link expires in {{minutes}} minutes",
1054
+ "strength": "Strength",
1055
+ "strengthTooShort": "Too short",
1056
+ "strengthWeak": "Weak",
1057
+ "strengthMedium": "Medium",
1058
+ "strengthGood": "Good",
1059
+ "strengthStrong": "Strong",
1060
+ "requirements": "Password must:",
1061
+ "requireLength": "Be at least 8 characters long",
1062
+ "requireUppercase": "Contain an uppercase letter (recommended)",
1063
+ "requireNumber": "Contain a number (recommended)"
1064
+ },
1065
+ "oauth": {
1066
+ "processing": "Processing...",
1067
+ "completingAuth": "Completing authentication with Google",
1068
+ "success": "Success!",
1069
+ "loginSuccess": "Login successful! Redirecting...",
1070
+ "mfaRequired": "MFA verification required. Redirecting...",
1071
+ "mfaSetupRequired": "MFA setup required. Redirecting...",
1072
+ "accountLinked": "Google account linked successfully",
1073
+ "failed": "Authentication Failed",
1074
+ "returnToLogin": "Return to Login",
1075
+ "invalidResponse": "Invalid response from server"
1076
+ },
1077
+ "device": {
1078
+ "pageTitle": "Trokky CLI Login",
1079
+ "loading": "Loading device information...",
1080
+ "authorizeDevice": "Authorize Device",
1081
+ "requestingAccess": "is requesting access to your account",
1082
+ "deviceCode": "Device Code",
1083
+ "allowApplication": "This will allow the application to:",
1084
+ "deny": "Deny",
1085
+ "authorize": "Authorize",
1086
+ "authorized": "Device Authorized",
1087
+ "authorizedMessage": "You can now close this window and return to the CLI.",
1088
+ "closeWindow": "Close Window",
1089
+ "denied": "Authorization Denied",
1090
+ "deniedMessage": "The device was not authorized. You can close this window.",
1091
+ "expired": "Code Expired",
1092
+ "expiredMessage": "The device code has expired. Please try again from the CLI.",
1093
+ "error": "Error",
1094
+ "noCode": "No device code provided",
1095
+ "fetchError": "Failed to fetch device information",
1096
+ "connectError": "Failed to connect to the server",
1097
+ "authError": "Authorization failed",
1098
+ "denyError": "Failed to deny authorization",
1099
+ "returnToStudio": "Return to Studio",
1100
+ "scopes": {
1101
+ "openid": "Access your identity",
1102
+ "profile": "Access your profile information",
1103
+ "contentRead": "Read content",
1104
+ "contentWrite": "Create and update content",
1105
+ "contentDelete": "Delete content",
1106
+ "mediaRead": "Read media files",
1107
+ "mediaWrite": "Upload media files",
1108
+ "offlineAccess": "Stay logged in"
1109
+ }
1110
+ },
1111
+ "authorize": {
1112
+ "pageTitle": "Trokky",
1113
+ "validating": "Validating authorization request...",
1114
+ "authorizeApp": "Authorize Application",
1115
+ "wantsAccess": "wants to access your account",
1116
+ "allowApplication": "This will allow the application to:",
1117
+ "visitWebsite": "Visit application website",
1118
+ "deny": "Deny",
1119
+ "authorize": "Authorize",
1120
+ "consentNote": "By authorizing, you allow this application to access your data according to the permissions listed above.",
1121
+ "redirecting": "Redirecting...",
1122
+ "redirectingMessage": "You are being redirected back to the application.",
1123
+ "error": "Authorization Error",
1124
+ "missingParams": "Missing required authorization parameters",
1125
+ "invalidRequest": "Invalid authorization request",
1126
+ "validateError": "Failed to validate authorization request",
1127
+ "authFailed": "Authorization failed",
1128
+ "denyFailed": "Failed to deny authorization",
1129
+ "returnToStudio": "Return to Studio"
1130
+ }
1131
+ },
1132
+ "documentEditor": {
1133
+ "loadingSchema": "Loading schema...",
1134
+ "loadingDocument": "Loading document...",
1135
+ "backToDocuments": "Back to Documents",
1136
+ "schemaRequired": "Schema name is required",
1137
+ "documentPreview": "Document Preview",
1138
+ "newDocument": "New {{type}}",
1139
+ "backTo": "Back to {{type}}",
1140
+ "confirmStateChange": "Are you sure you want to change from {{from}} to {{to}}?",
1141
+ "edit": "Edit",
1142
+ "preview": "Preview",
1143
+ "readOnly": "Read Only",
1144
+ "readOnlyMode": "Read only mode",
1145
+ "unsavedChanges": "Unsaved changes",
1146
+ "validationErrors": "Validation errors",
1147
+ "discardChangesConfirm": "You have unsaved changes. Are you sure you want to cancel?",
1148
+ "discardChangesTitle": "Unsaved Changes",
1149
+ "discardChanges": "Discard Changes",
1150
+ "keepEditing": "Keep Editing",
1151
+ "documentInfo": "Document Info",
1152
+ "loadingForm": "Loading form...",
1153
+ "noFieldsDefined": "No fields defined in schema",
1154
+ "created": "Created",
1155
+ "lastUpdated": "Last Updated",
1156
+ "status": "Status",
1157
+ "published": "Published",
1158
+ "draft": "Draft",
1159
+ "publishedOn": "Published {{date}}",
1160
+ "tags": "Tags",
1161
+ "contributors": "Contributors",
1162
+ "contributorsLoading": "Loading...",
1163
+ "contributorsMore": "+{{count}} more",
1164
+ "references": "References",
1165
+ "referencesCount": "References ({{count}})",
1166
+ "referencesMore": "+{{count}}",
1167
+ "noReferences": "No references",
1168
+ "schema": "Schema",
1169
+ "fieldsCount": "{{count}} fields",
1170
+ "dangerZone": "Danger Zone",
1171
+ "deleteDocument": "Delete Document",
1172
+ "deleteConfirm": "Are you sure you want to delete \"{{title}}\"? This action cannot be undone.",
1173
+ "deleteTitle": "Delete Document",
1174
+ "cannotBeUndone": "This action cannot be undone.",
1175
+ "expandSidebar": "Expand sidebar",
1176
+ "collapseSidebar": "Collapse sidebar"
1177
+ },
1178
+ "documentHistory": {
1179
+ "title": "Document History",
1180
+ "refreshHistory": "Refresh history",
1181
+ "loading": "Loading...",
1182
+ "loadError": "Failed to load document history",
1183
+ "notAvailable": "Document history is not available",
1184
+ "noHistory": "No history yet",
1185
+ "moreChanges": "+{{count}} more changes"
1186
+ },
1187
+ "changesDiff": {
1188
+ "noVisibleChanges": "No visible changes",
1189
+ "changesCount": "Changes ({{count}})",
1190
+ "showSystemFields": "Show system fields",
1191
+ "hideSystemFields": "Hide system fields",
1192
+ "before": "Before:",
1193
+ "after": "After:"
1194
+ },
1195
+ "auditEntry": {
1196
+ "created": "Created",
1197
+ "updated": "Updated",
1198
+ "deleted": "Deleted",
1199
+ "published": "Published",
1200
+ "unpublished": "Unpublished",
1201
+ "restored": "Restored",
1202
+ "by": "by",
1203
+ "latest": "Latest",
1204
+ "changedField": "Changed {{field}}",
1205
+ "changedFieldsJoin": "Changed {{fields}}",
1206
+ "changedFieldsCount": "Changed {{count}} fields",
1207
+ "hideDetails": "Hide details",
1208
+ "showDetails": "Show details",
1209
+ "revision": "Revision:",
1210
+ "ipAddress": "IP Address:",
1211
+ "userAgent": "User Agent:"
1212
+ },
1213
+ "common": {
1214
+ "title": "Title",
1215
+ "cancel": "Cancel",
1216
+ "dismiss": "Dismiss",
1217
+ "note": "Important:",
1218
+ "save": "Save",
1219
+ "delete": "Delete",
1220
+ "selectAll": "Select all",
1221
+ "deselectAll": "Deselect all",
1222
+ "edit": "Edit",
1223
+ "create": "Create",
1224
+ "add": "Add",
1225
+ "remove": "Remove",
1226
+ "generate": "Generate",
1227
+ "close": "Close",
1228
+ "confirm": "Confirm",
1229
+ "loading": "Loading...",
1230
+ "error": "Error",
1231
+ "success": "Success",
1232
+ "warning": "Warning",
1233
+ "info": "Info",
1234
+ "yes": "Yes",
1235
+ "no": "No",
1236
+ "ok": "OK",
1237
+ "retry": "Retry",
1238
+ "back": "Back",
1239
+ "next": "Next",
1240
+ "previous": "Previous",
1241
+ "submit": "Submit",
1242
+ "reset": "Reset",
1243
+ "clear": "Clear",
1244
+ "tryAgain": "Try again",
1245
+ "refreshPage": "Refresh page",
1246
+ "copyErrorDetails": "Copy Error Details",
1247
+ "copied": "Copied!",
1248
+ "closeNotification": "Close notification",
1249
+ "notifications": "Notifications"
1250
+ },
1251
+ "errorBoundary": {
1252
+ "title": "Something went wrong",
1253
+ "subtitle": "The application encountered an unexpected error",
1254
+ "description": "Please try refreshing the page or contact support if the problem persists. You can copy the error details below to help with troubleshooting.",
1255
+ "errorMessage": "Error Message:",
1256
+ "stackTrace": "Stack Trace",
1257
+ "componentStack": "Component Stack",
1258
+ "environmentDetails": "Environment Details",
1259
+ "noStackTrace": "No stack trace available",
1260
+ "noComponentStack": "No component stack available",
1261
+ "url": "URL:",
1262
+ "timestamp": "Timestamp:",
1263
+ "userAgent": "User Agent:",
1264
+ "viewport": "Viewport:"
1265
+ },
1266
+ "toast": {
1267
+ "closeNotification": "Close notification",
1268
+ "notifications": "Notifications"
1269
+ },
1270
+ "confirmDialog": {
1271
+ "defaultConfirm": "Confirm",
1272
+ "defaultCancel": "Cancel"
1273
+ },
1274
+ "search": {
1275
+ "placeholder": "Search documents, media...",
1276
+ "clearSearch": "Clear search",
1277
+ "closeSearch": "Close search",
1278
+ "searching": "Searching...",
1279
+ "recentSearches": "Recent searches",
1280
+ "clear": "Clear",
1281
+ "clearHistory": "Clear search history",
1282
+ "foundResults": "Found {{count}} result",
1283
+ "foundResults_plural": "Found {{count}} results",
1284
+ "document": "Document",
1285
+ "media": "Media",
1286
+ "by": "by",
1287
+ "noResults": "No results found",
1288
+ "tryDifferent": "Try different search terms",
1289
+ "typeToSearch": "Type to search documents and media",
1290
+ "pressEscape": "Press Escape to close",
1291
+ "poweredBy": "Powered by Trokky"
1292
+ },
1293
+ "permissionsDebug": {
1294
+ "title": "Permissions Debug",
1295
+ "copyToClipboard": "Copy debug info to clipboard",
1296
+ "currentUser": "Current User",
1297
+ "username": "Username:",
1298
+ "email": "Email:",
1299
+ "role": "Role:",
1300
+ "admin": "Admin:",
1301
+ "notLoggedIn": "Not logged in",
1302
+ "notAvailable": "N/A",
1303
+ "guest": "guest",
1304
+ "yes": "Yes",
1305
+ "no": "No",
1306
+ "documentPermissions": "Document Permissions",
1307
+ "type": "Type:",
1308
+ "id": "ID:",
1309
+ "newDocument": "New Document",
1310
+ "canCreate": "Can Create",
1311
+ "canUpdate": "Can Update",
1312
+ "canDelete": "Can Delete",
1313
+ "canRead": "Can Read",
1314
+ "allowed": "Allowed",
1315
+ "denied": "Denied",
1316
+ "fieldStates": "Field States ({{count}})",
1317
+ "hideDetails": "Hide Details",
1318
+ "showDetails": "Show Details",
1319
+ "disabled": "Disabled",
1320
+ "readonly": "Readonly",
1321
+ "required": "Required",
1322
+ "hasError": "Has Error",
1323
+ "value": "Value:",
1324
+ "debugModeDev": "Debug mode is ON (dev)",
1325
+ "debugModeManual": "Debug mode is ON (manual)",
1326
+ "disableInProduction": "Disable in Production",
1327
+ "enableInProduction": "Enable in Production"
1328
+ }
1329
+ }