@directus/app 9.12.0 → 9.12.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 (622) hide show
  1. package/dist/assets/@directus_extensions-sdk.9a1812c6.entry.js +1 -0
  2. package/dist/assets/accounts.08433099.js +1 -0
  3. package/dist/assets/active-line.b42e95d2.js +1 -0
  4. package/dist/assets/activity-log.fd558c9b.js +1 -0
  5. package/dist/assets/activity.0def80ca.js +80 -0
  6. package/dist/assets/apl.a10fee96.js +1 -0
  7. package/dist/assets/asciiarmor.3440160d.js +1 -0
  8. package/dist/assets/asn.1.bdf78f70.js +1 -0
  9. package/dist/assets/asterisk.88ae33f0.js +1 -0
  10. package/dist/assets/authentication.a6f04750.js +73 -0
  11. package/dist/assets/autorefresh.fa8b7b34.js +1 -0
  12. package/dist/assets/aws.3b1c64af.js +1 -0
  13. package/dist/assets/backing-directus.1ed89e33.js +1 -0
  14. package/dist/assets/brainfuck.af40cbfc.js +1 -0
  15. package/dist/assets/cli.5153aa86.js +4 -0
  16. package/dist/assets/cli.e8e2526b.js +19 -0
  17. package/dist/assets/clike.75f55953.js +1 -0
  18. package/dist/assets/clojure.f44f8182.js +1 -0
  19. package/dist/assets/cloudron.53c430b8.js +1 -0
  20. package/dist/assets/cmake.dc51a5f4.js +1 -0
  21. package/dist/assets/cobol.bd572fbc.js +1 -0
  22. package/dist/assets/codebase-overview.e9df94fc.js +1 -0
  23. package/dist/assets/coffeescript.903da3d2.js +1 -0
  24. package/dist/assets/collections.1c745e99.css +1 -0
  25. package/dist/assets/collections.2453db3a.js +106 -0
  26. package/dist/assets/collections.aa896b3f.js +2 -0
  27. package/dist/assets/commonlisp.0c024da5.js +1 -0
  28. package/dist/assets/config-options.b1233b4b.js +138 -0
  29. package/dist/assets/content.1b1e95cf.js +1 -0
  30. package/dist/assets/creating-extensions.bfd7c57c.js +11 -0
  31. package/dist/assets/crystal.80f7e1ba.js +1 -0
  32. package/dist/assets/css.eb89b9da.js +1 -0
  33. package/dist/assets/cypher.f649c40f.js +4 -0
  34. package/dist/assets/d.3e286089.js +1 -0
  35. package/dist/assets/dart.5b9bb9bb.js +1 -0
  36. package/dist/assets/data-model.0e360572.js +1 -0
  37. package/dist/assets/data-sharing.da96e52e.js +1 -0
  38. package/dist/assets/de-at.a1f7dd1d.js +1 -1
  39. package/dist/assets/de.a8c4aad1.js +1 -1
  40. package/dist/assets/diff.c63eafa7.js +1 -0
  41. package/dist/assets/digitalocean-app-platform.3412cb40.js +3 -0
  42. package/dist/assets/display-templates.915c0c5b.js +1 -0
  43. package/dist/assets/displays.99989c6d.js +49 -0
  44. package/dist/assets/django.3a6905fc.js +1 -0
  45. package/dist/assets/{docker.e74fbe37.js → docker.e1bb4205.js} +5 -5
  46. package/dist/assets/dockerfile.a9f614c8.js +1 -0
  47. package/dist/assets/documentation.788d4998.js +1 -0
  48. package/dist/assets/dtd.5b2d40ab.js +1 -0
  49. package/dist/assets/dylan.744cd79f.js +1 -0
  50. package/dist/assets/ebnf.6637a8f6.js +1 -0
  51. package/dist/assets/ecl.cdabfae6.js +1 -0
  52. package/dist/assets/eiffel.60b61e7f.js +1 -0
  53. package/dist/assets/elm.74b68fc8.js +1 -0
  54. package/dist/assets/email-templates.1f5ac335.js +2 -0
  55. package/dist/assets/endpoints.aaac7c81.js +27 -0
  56. package/dist/assets/erlang.d6cd5265.js +1 -0
  57. package/dist/assets/es-MX.956444f4.js +1 -0
  58. package/dist/assets/extensions.34c12005.js +12 -0
  59. package/dist/assets/factor.965cfdad.js +1 -0
  60. package/dist/assets/faq.89e68608.js +2 -0
  61. package/dist/assets/fcl.e515f605.js +1 -0
  62. package/dist/assets/fields.54985585.js +135 -0
  63. package/dist/assets/file-library.3e651030.js +1 -0
  64. package/dist/assets/files.064d5a35.js +187 -0
  65. package/dist/assets/filter-rules.e442e006.js +76 -0
  66. package/dist/assets/filters.3db1b044.js +1 -0
  67. package/dist/assets/{folders.5102c9ea.js → folders.0024d3d3.js} +20 -20
  68. package/dist/assets/forth.c62ab807.js +1 -0
  69. package/dist/assets/fortran.c0e428c5.js +1 -0
  70. package/dist/assets/gas.fd59e425.js +1 -0
  71. package/dist/assets/gcp.627205b5.js +60 -0
  72. package/dist/assets/gfm.8125a8e6.js +1 -0
  73. package/dist/assets/gherkin.c9a9f9d2.js +1 -0
  74. package/dist/assets/github-ci.abd39dcc.js +2 -0
  75. package/dist/assets/glossary.75ca2027.js +1 -0
  76. package/dist/assets/glossary.bf083fb1.js +1 -0
  77. package/dist/assets/go.31390264.js +1 -0
  78. package/dist/assets/groovy.c940d48b.js +1 -0
  79. package/dist/assets/haml.1a456af6.js +1 -0
  80. package/dist/assets/handlebars.d3c0e9e6.js +1 -0
  81. package/dist/assets/haskell-literate.06d0d330.js +1 -0
  82. package/dist/assets/haskell.f83a5b48.js +1 -0
  83. package/dist/assets/haxe.cf38bc86.js +1 -0
  84. package/dist/assets/hooks.eda18b02.js +60 -0
  85. package/dist/assets/htmlembedded.4765ab1f.js +1 -0
  86. package/dist/assets/htmlmixed.a4506ee0.js +1 -0
  87. package/dist/assets/http.cf2042b8.js +1 -0
  88. package/dist/assets/idl.2b562d7a.js +1 -0
  89. package/dist/assets/{iis.fc6aa5dd.js → iis.109e5a8a.js} +2 -2
  90. package/dist/assets/import-export.3da878a4.js +2 -0
  91. package/dist/assets/index.009353d9.js +1 -0
  92. package/dist/assets/index.05e20b6f.js +1 -0
  93. package/dist/assets/index.064c96df.js +1 -0
  94. package/dist/assets/index.08e6475d.js +1 -0
  95. package/dist/assets/index.0a4e8fad.js +1 -0
  96. package/dist/assets/index.131b4ee8.js +1 -0
  97. package/dist/assets/index.17ad666d.js +1 -0
  98. package/dist/assets/index.1a186179.js +1 -0
  99. package/dist/assets/index.1b3cf886.js +1 -1
  100. package/dist/assets/index.1d927fd3.js +1 -0
  101. package/dist/assets/index.1e0212f9.js +1 -0
  102. package/dist/assets/index.27da0362.js +1 -0
  103. package/dist/assets/index.2ff40292.js +1 -0
  104. package/dist/assets/index.35fb04b2.js +1 -0
  105. package/dist/assets/index.3acd783e.js +1 -0
  106. package/dist/assets/index.3c7e729b.js +1 -0
  107. package/dist/assets/index.40c42250.css +1 -0
  108. package/dist/assets/index.44b36a96.js +1 -0
  109. package/dist/assets/index.44c7ed90.js +1 -0
  110. package/dist/assets/index.4533ce42.js +1 -0
  111. package/dist/assets/index.48fd0edb.js +1 -0
  112. package/dist/assets/index.491a4003.js +1 -0
  113. package/dist/assets/index.4de2df6a.js +1 -0
  114. package/dist/assets/index.4ff10039.js +1 -0
  115. package/dist/assets/index.515f0cb5.js +1 -0
  116. package/dist/assets/index.5312378b.js +1 -0
  117. package/dist/assets/index.540a1c0d.js +1 -0
  118. package/dist/assets/index.5490bf54.js +1 -0
  119. package/dist/assets/index.54a49224.js +1 -0
  120. package/dist/assets/index.55f6227c.js +1 -0
  121. package/dist/assets/index.5d10078c.js +1 -0
  122. package/dist/assets/index.5e2cb31c.js +1 -0
  123. package/dist/assets/index.629b6c38.js +1 -0
  124. package/dist/assets/index.6687eb7d.js +1 -0
  125. package/dist/assets/index.6752521e.js +1 -0
  126. package/dist/assets/index.691d9c7a.js +1 -0
  127. package/dist/assets/index.70f6f88a.entry.js +3406 -0
  128. package/dist/assets/index.71e28483.js +1 -0
  129. package/dist/assets/index.734cf408.js +1 -0
  130. package/dist/assets/index.76212e14.js +1 -0
  131. package/dist/assets/index.788544c8.js +1 -0
  132. package/dist/assets/index.859a78cb.js +1 -0
  133. package/dist/assets/index.8c9bb9d2.js +1 -0
  134. package/dist/assets/index.8f901e72.js +1 -0
  135. package/dist/assets/index.90aad19e.js +1 -0
  136. package/dist/assets/index.921bf39b.js +1 -0
  137. package/dist/assets/index.9b23cd7f.js +1 -0
  138. package/dist/assets/index.9b42e31d.js +26 -0
  139. package/dist/assets/index.9fbcba2f.js +1 -0
  140. package/dist/assets/index.a0bc3d71.js +1 -0
  141. package/dist/assets/index.a40a776b.js +1 -0
  142. package/dist/assets/index.a9473e05.js +1 -0
  143. package/dist/assets/index.ae9b035a.js +1 -0
  144. package/dist/assets/index.b09321f5.js +1 -0
  145. package/dist/assets/index.b635a926.js +1 -0
  146. package/dist/assets/index.b871b7a5.js +1 -0
  147. package/dist/assets/index.b8baec6c.js +1 -0
  148. package/dist/assets/index.b955a1be.js +1 -0
  149. package/dist/assets/index.bb82940a.js +1 -0
  150. package/dist/assets/index.bbf0131f.js +1 -0
  151. package/dist/assets/index.bc32829f.js +1 -0
  152. package/dist/assets/index.bc3296ff.js +1 -0
  153. package/dist/assets/index.c219c9fd.js +1 -0
  154. package/dist/assets/index.c54243ff.js +1 -0
  155. package/dist/assets/index.c6ea1824.js +1 -0
  156. package/dist/assets/index.c91867d3.js +1 -0
  157. package/dist/assets/index.d911a640.js +1 -0
  158. package/dist/assets/index.db01bb54.js +1 -0
  159. package/dist/assets/index.ddbad0a0.js +1 -0
  160. package/dist/assets/index.e39c7e76.js +1 -0
  161. package/dist/assets/index.e7e17448.js +1 -0
  162. package/dist/assets/index.e9099679.js +1 -0
  163. package/dist/assets/index.e9faa1b7.js +1 -0
  164. package/dist/assets/index.ea326829.js +1 -0
  165. package/dist/assets/index.f334ad18.js +1 -0
  166. package/dist/assets/index.f5a62bca.js +1 -0
  167. package/dist/assets/index.f6a5906f.js +1 -0
  168. package/dist/assets/index.f6d90b7c.js +1 -0
  169. package/dist/assets/index.f715fb2c.js +1 -0
  170. package/dist/assets/index.f80921e7.js +1 -0
  171. package/dist/assets/index.fc7b1181.js +1 -0
  172. package/dist/assets/index.fd2a5a74.js +1 -0
  173. package/dist/assets/index.ff5502c6.js +1 -0
  174. package/dist/assets/index.ff5a189a.js +1 -0
  175. package/dist/assets/{input-rich-text-html.4dd91dd7.js → input-rich-text-html.1550fe06.js} +32 -32
  176. package/dist/assets/{input-rich-text-html.ef9358cf.css → input-rich-text-html.2d85a8a3.css} +1 -1
  177. package/dist/assets/insights.c8ed7c1c.js +1 -0
  178. package/dist/assets/installation.78c6d9f6.js +1 -0
  179. package/dist/assets/interfaces.9e145c45.js +46 -0
  180. package/dist/assets/introduction.2e6f5c1d.js +90 -0
  181. package/dist/assets/introduction.78a2a844.js +4 -0
  182. package/dist/assets/introduction.7c5efc8a.js +1 -0
  183. package/dist/assets/introduction.d5621d79.js +1 -0
  184. package/dist/assets/{items.4e295453.js → items.4205dfa0.js} +27 -27
  185. package/dist/assets/items.64ed9295.js +1 -0
  186. package/dist/assets/javascript-hint.29e9b67f.js +1 -0
  187. package/dist/assets/javascript.d2db845f.js +1 -0
  188. package/dist/assets/jinja2.f97723a0.js +1 -0
  189. package/dist/assets/jsx.3f2b01c1.js +1 -0
  190. package/dist/assets/julia.fa920089.js +1 -0
  191. package/dist/assets/layouts.3c14b583.js +54 -0
  192. package/dist/assets/layouts.ca8afd39.js +1 -0
  193. package/dist/assets/livescript.2ec2e5ab.js +1 -0
  194. package/dist/assets/localization.374b7427.js +1 -0
  195. package/dist/assets/lua.5e0c8497.js +1 -0
  196. package/dist/assets/manual.ab601c95.js +10 -0
  197. package/dist/assets/mark-selection.54726b3f.js +1 -0
  198. package/dist/assets/match-highlighter.218123e7.js +1 -0
  199. package/dist/assets/mathematica.df44764c.js +1 -0
  200. package/dist/assets/mbox.491dfb6c.js +1 -0
  201. package/dist/assets/migrations.8989fedc.js +19 -0
  202. package/dist/assets/mirc.a9dca563.js +1 -0
  203. package/dist/assets/mllike.0a469a43.js +1 -0
  204. package/dist/assets/modelica.306697a8.js +1 -0
  205. package/dist/assets/modules.17c944d1.js +69 -0
  206. package/dist/assets/mscgen.a45d586b.js +1 -0
  207. package/dist/assets/multiplex.26e09ed5.js +3 -0
  208. package/dist/assets/mumps.ae29c70e.js +1 -0
  209. package/dist/assets/nginx.52e6bfcd.js +1 -0
  210. package/dist/assets/notifications.33c688c9.js +153 -0
  211. package/dist/assets/nsis.5869c4bd.js +1 -0
  212. package/dist/assets/ntriples.c7dd54df.js +1 -0
  213. package/dist/assets/octave.ef49cef7.js +1 -0
  214. package/dist/assets/overlay.9a3d0cba.js +1 -0
  215. package/dist/assets/overview.3436365c.js +1 -0
  216. package/dist/assets/overview.623fafba.js +1 -0
  217. package/dist/assets/overview.dbebe94a.js +1 -0
  218. package/dist/assets/oz.6a13c27c.js +1 -0
  219. package/dist/assets/panels.385b173a.js +65 -0
  220. package/dist/assets/pascal.77947c82.js +1 -0
  221. package/dist/assets/pegjs.fb3674fc.js +1 -0
  222. package/dist/assets/perl.bd20c5e2.js +1 -0
  223. package/dist/assets/{permissions.c754088f.js → permissions.f84f8d42.js} +19 -19
  224. package/dist/assets/php.f7000a8d.js +1 -0
  225. package/dist/assets/pig.7044156f.js +1 -0
  226. package/dist/assets/pinia.256cc3da.entry.js +5 -0
  227. package/dist/assets/pl-PL.22d5965f.js +1 -0
  228. package/dist/assets/plesk.f7e3d5ef.js +27 -0
  229. package/dist/assets/powershell.d6251d29.js +1 -0
  230. package/dist/assets/presets-bookmarks.1b8ec70c.js +1 -0
  231. package/dist/assets/{presets.21984d83.js → presets.b1e8b6c1.js} +20 -20
  232. package/dist/assets/project-settings.d32669a9.js +1 -0
  233. package/dist/assets/projects.b0451bed.js +1 -0
  234. package/dist/assets/properties.21d46a91.js +1 -0
  235. package/dist/assets/protobuf.0595884b.js +1 -0
  236. package/dist/assets/pug.02047604.js +1 -0
  237. package/dist/assets/puppet.7c07ba75.js +1 -0
  238. package/dist/assets/python.fe6c7a24.js +1 -0
  239. package/dist/assets/q.bfdf1988.js +1 -0
  240. package/dist/assets/query.dbe0b56d.js +152 -0
  241. package/dist/assets/quickstart.01824cc9.js +9 -0
  242. package/dist/assets/quickstart.4d7c7736.js +20 -0
  243. package/dist/assets/r.d6b5ac21.js +1 -0
  244. package/dist/assets/relations.d29aa86d.js +115 -0
  245. package/dist/assets/relationships.c9c5db8a.js +55 -0
  246. package/dist/assets/revisions.2898106e.js +40 -0
  247. package/dist/assets/{roles.aa9ecdfc.js → roles.9fec37da.js} +21 -21
  248. package/dist/assets/rpm.92483469.js +1 -0
  249. package/dist/assets/rst.b2603799.js +1 -0
  250. package/dist/assets/ruby.0246dbd5.js +1 -0
  251. package/dist/assets/running-locally.811d0dcc.js +26 -0
  252. package/dist/assets/runtime-core.esm-bundler.b1f35d24.js +4 -0
  253. package/dist/assets/rust.dd8abd8d.js +1 -0
  254. package/dist/assets/sas.d26b2302.js +1 -0
  255. package/dist/assets/sass.a791aa27.js +1 -0
  256. package/dist/assets/scheme.ef2b1440.js +1 -0
  257. package/dist/assets/{sdk.c37a5fba.js → sdk.12cd7974.js} +48 -48
  258. package/dist/assets/security.8e2a8a41.js +1 -0
  259. package/dist/assets/{server.a0eeaade.js → server.9f12ae3e.js} +12 -12
  260. package/dist/assets/settings.149d1dff.js +1 -0
  261. package/dist/assets/settings.28abc1f0.js +51 -0
  262. package/dist/assets/shell.2f3bc735.js +1 -0
  263. package/dist/assets/show-hint.6fa4d537.js +1 -0
  264. package/dist/assets/sieve.99fca314.js +1 -0
  265. package/dist/assets/simple.0e90a38e.js +1 -0
  266. package/dist/assets/slim.92d997b6.js +1 -0
  267. package/dist/assets/smalltalk.a9b3ffec.js +1 -0
  268. package/dist/assets/smarty.c54a652c.js +1 -0
  269. package/dist/assets/solr.1356a877.js +1 -0
  270. package/dist/assets/soy.e1b19eef.js +1 -0
  271. package/dist/assets/sparql.1335f7a5.js +1 -0
  272. package/dist/assets/spreadsheet.e9096343.js +1 -0
  273. package/dist/assets/sql.ac45a460.js +1 -0
  274. package/dist/assets/{sso-examples.6c849325.js → sso-examples.b52061be.js} +12 -12
  275. package/dist/assets/sso.64b2717b.js +22 -0
  276. package/dist/assets/stex.fb7fd990.js +1 -0
  277. package/dist/assets/stylus.d0281b2a.js +1 -0
  278. package/dist/assets/support.94e3734b.js +1 -0
  279. package/dist/assets/swift.a9fd2d64.js +1 -0
  280. package/dist/assets/tcl.8f7bdfb5.js +1 -0
  281. package/dist/assets/teams.9ff14f8f.js +1 -0
  282. package/dist/assets/textile.ae199003.js +1 -0
  283. package/dist/assets/themes.df7ec485.js +5 -0
  284. package/dist/assets/tiddlywiki.52caa0ed.js +1 -0
  285. package/dist/assets/tiki.831b9315.js +1 -0
  286. package/dist/assets/toml.6f660b6b.js +1 -0
  287. package/dist/assets/tornado.01563722.js +1 -0
  288. package/dist/assets/translations.5191ab7c.js +1 -0
  289. package/dist/assets/troff.f5f797f2.js +1 -0
  290. package/dist/assets/ttcn-cfg.a6927435.js +1 -0
  291. package/dist/assets/ttcn.24c6b925.js +1 -0
  292. package/dist/assets/turtle.d0e831a8.js +1 -0
  293. package/dist/assets/twig.d5e90842.js +1 -0
  294. package/dist/assets/ubuntu.f4c21886.js +11 -0
  295. package/dist/assets/upgrades-migrations.15498a47.js +1 -0
  296. package/dist/assets/use-sync.ded22f96.js +28 -0
  297. package/dist/assets/user-directory.47c8beb2.js +1 -0
  298. package/dist/assets/users-roles-permissions.005388fa.js +1 -0
  299. package/dist/assets/users.84251ab9.js +252 -0
  300. package/dist/assets/{utilities.b9c2a9d8.js → utilities.26e6a9e8.js} +12 -12
  301. package/dist/assets/vb.bb33c7a5.js +1 -0
  302. package/dist/assets/vbscript.d8f8d95e.js +1 -0
  303. package/dist/assets/velocity.26721ec5.js +1 -0
  304. package/dist/assets/verilog.24512a86.js +1 -0
  305. package/dist/assets/vhdl.6e64552d.js +1 -0
  306. package/dist/assets/vue-i18n.ecb0af35.entry.js +31 -0
  307. package/dist/assets/vue-router.8987d576.entry.js +5 -0
  308. package/dist/assets/vue.1f4d921a.entry.js +1 -0
  309. package/dist/assets/vue.4450af40.js +1 -0
  310. package/dist/assets/vue.runtime.esm-bundler.ac4ff7af.js +1 -0
  311. package/dist/assets/wast.79f64b4c.js +1 -0
  312. package/dist/assets/{webhooks.1a2e06f9.js → webhooks.4eeecb7d.js} +20 -20
  313. package/dist/assets/webhooks.61b11e7d.js +1 -0
  314. package/dist/assets/webidl.860cea4e.js +1 -0
  315. package/dist/assets/xquery.23f4fa34.js +1 -0
  316. package/dist/assets/yacas.0d60e6b0.js +1 -0
  317. package/dist/assets/yaml-frontmatter.70ea956b.js +1 -0
  318. package/dist/assets/yaml.9d5c3ac9.js +1 -0
  319. package/dist/assets/z80.527b7cb8.js +1 -0
  320. package/dist/index.html +8 -5
  321. package/package.json +20 -20
  322. package/dist/assets/@directus_extensions-sdk.1c0f07ca.entry.js +0 -1
  323. package/dist/assets/accounts.edeb6689.js +0 -1
  324. package/dist/assets/active-line.0636efc2.js +0 -1
  325. package/dist/assets/activity-log.ccf294c8.js +0 -1
  326. package/dist/assets/activity.499754f1.js +0 -80
  327. package/dist/assets/apl.7a44de96.js +0 -1
  328. package/dist/assets/asciiarmor.5c853147.js +0 -1
  329. package/dist/assets/asn.1.6b4c88d3.js +0 -1
  330. package/dist/assets/asterisk.8e49b2d4.js +0 -1
  331. package/dist/assets/authentication.b275d277.js +0 -73
  332. package/dist/assets/autorefresh.a124d3d5.js +0 -1
  333. package/dist/assets/aws.58f13022.js +0 -1
  334. package/dist/assets/backing-directus.b130191d.js +0 -1
  335. package/dist/assets/brainfuck.40978cfa.js +0 -1
  336. package/dist/assets/cli.0b1af962.js +0 -4
  337. package/dist/assets/cli.7f7160a6.js +0 -19
  338. package/dist/assets/clike.00b06ab7.js +0 -1
  339. package/dist/assets/clojure.10c02a8f.js +0 -1
  340. package/dist/assets/cloudron.48238a4e.js +0 -1
  341. package/dist/assets/cmake.d18a828d.js +0 -1
  342. package/dist/assets/cobol.4a07e81a.js +0 -1
  343. package/dist/assets/codebase-overview.c751de28.js +0 -1
  344. package/dist/assets/coffeescript.299e7b17.js +0 -1
  345. package/dist/assets/collections.8d532d78.js +0 -106
  346. package/dist/assets/collections.fe434f3d.js +0 -2
  347. package/dist/assets/commonlisp.5d3e08ca.js +0 -1
  348. package/dist/assets/config-options.0cd2f84e.js +0 -138
  349. package/dist/assets/content.07663d5f.js +0 -1
  350. package/dist/assets/creating-extensions.a48d5b6f.js +0 -11
  351. package/dist/assets/crystal.e8ccc500.js +0 -1
  352. package/dist/assets/css.e214430c.js +0 -1
  353. package/dist/assets/cypher.93c35226.js +0 -4
  354. package/dist/assets/d.45452c03.js +0 -1
  355. package/dist/assets/dart.6fca9dfe.js +0 -1
  356. package/dist/assets/data-model.5b650232.js +0 -1
  357. package/dist/assets/data-sharing.4ba1e153.js +0 -1
  358. package/dist/assets/diff.7a671810.js +0 -1
  359. package/dist/assets/digitalocean-app-platform.a3805812.js +0 -3
  360. package/dist/assets/display-templates.ef1705ab.js +0 -1
  361. package/dist/assets/displays.29c9a9ab.js +0 -49
  362. package/dist/assets/django.70792d4e.js +0 -1
  363. package/dist/assets/dockerfile.4d9813c1.js +0 -1
  364. package/dist/assets/documentation.74a793e9.js +0 -1
  365. package/dist/assets/dtd.2b6ca795.js +0 -1
  366. package/dist/assets/dylan.bf03afb2.js +0 -1
  367. package/dist/assets/ebnf.f0b8dcf5.js +0 -1
  368. package/dist/assets/ecl.fb54f12a.js +0 -1
  369. package/dist/assets/eiffel.aa01c1cf.js +0 -1
  370. package/dist/assets/elm.7007e9b9.js +0 -1
  371. package/dist/assets/email-templates.ef4839b6.js +0 -2
  372. package/dist/assets/endpoints.84b6faf9.js +0 -27
  373. package/dist/assets/erlang.801fa573.js +0 -1
  374. package/dist/assets/es-MX.6a8efcab.js +0 -1
  375. package/dist/assets/extensions.f89cb4f9.js +0 -12
  376. package/dist/assets/factor.f3fd82cf.js +0 -1
  377. package/dist/assets/faq.5f488978.js +0 -2
  378. package/dist/assets/fcl.ccf78194.js +0 -1
  379. package/dist/assets/fields.f711b1ce.js +0 -135
  380. package/dist/assets/file-library.30569134.js +0 -1
  381. package/dist/assets/files.8a404c59.js +0 -187
  382. package/dist/assets/filter-rules.79bac758.js +0 -76
  383. package/dist/assets/filters.efeb8b64.js +0 -1
  384. package/dist/assets/forth.3c037035.js +0 -1
  385. package/dist/assets/fortran.b05b78ad.js +0 -1
  386. package/dist/assets/gas.c36c196e.js +0 -1
  387. package/dist/assets/gcp.b10d08b2.js +0 -60
  388. package/dist/assets/gfm.4af9c8c0.js +0 -1
  389. package/dist/assets/gherkin.102ec9b3.js +0 -1
  390. package/dist/assets/github-ci.b23bdb51.js +0 -2
  391. package/dist/assets/glossary.08aaa09a.js +0 -1
  392. package/dist/assets/glossary.2618dbcd.js +0 -1
  393. package/dist/assets/go.319184dc.js +0 -1
  394. package/dist/assets/groovy.219a3f40.js +0 -1
  395. package/dist/assets/haml.c2cec3e9.js +0 -1
  396. package/dist/assets/handlebars.c1ae3040.js +0 -1
  397. package/dist/assets/haskell-literate.34e39e13.js +0 -1
  398. package/dist/assets/haskell.cb6719a1.js +0 -1
  399. package/dist/assets/haxe.d5e820fa.js +0 -1
  400. package/dist/assets/hooks.d0a9236e.js +0 -60
  401. package/dist/assets/htmlembedded.b86f1a8b.js +0 -1
  402. package/dist/assets/htmlmixed.9027b596.js +0 -1
  403. package/dist/assets/http.dddc47fa.js +0 -1
  404. package/dist/assets/idl.c0519b30.js +0 -1
  405. package/dist/assets/import-export.3bcbaa5a.js +0 -2
  406. package/dist/assets/index.008f8280.js +0 -1
  407. package/dist/assets/index.02e0a0ac.js +0 -1
  408. package/dist/assets/index.08c47c7e.js +0 -1
  409. package/dist/assets/index.09f9fbcc.js +0 -1
  410. package/dist/assets/index.0aa19433.js +0 -1
  411. package/dist/assets/index.113f40e2.js +0 -1
  412. package/dist/assets/index.121f2a8c.js +0 -1
  413. package/dist/assets/index.15d64410.js +0 -1
  414. package/dist/assets/index.1913d925.js +0 -1
  415. package/dist/assets/index.1cdf4945.js +0 -1
  416. package/dist/assets/index.1ee7fd69.js +0 -1
  417. package/dist/assets/index.25ba1dd6.js +0 -1
  418. package/dist/assets/index.25c51012.js +0 -1
  419. package/dist/assets/index.27dda6e3.js +0 -26
  420. package/dist/assets/index.2a4455f2.js +0 -1
  421. package/dist/assets/index.2bc6ec6e.js +0 -1
  422. package/dist/assets/index.2d56f924.js +0 -1
  423. package/dist/assets/index.35fd1f62.js +0 -1
  424. package/dist/assets/index.36b203bd.js +0 -1
  425. package/dist/assets/index.39c20f1a.js +0 -1
  426. package/dist/assets/index.3f0e45c1.js +0 -1
  427. package/dist/assets/index.3fa2dd41.js +0 -1
  428. package/dist/assets/index.48964803.js +0 -1
  429. package/dist/assets/index.4ad01be0.js +0 -1
  430. package/dist/assets/index.511997cb.js +0 -1
  431. package/dist/assets/index.53f3d9fa.js +0 -1
  432. package/dist/assets/index.5679f5a7.js +0 -1
  433. package/dist/assets/index.57fe3e27.js +0 -1
  434. package/dist/assets/index.591b77a6.js +0 -1
  435. package/dist/assets/index.5add30a0.js +0 -1
  436. package/dist/assets/index.5e03ed98.js +0 -1
  437. package/dist/assets/index.685be3df.js +0 -1
  438. package/dist/assets/index.6868b6d6.js +0 -1
  439. package/dist/assets/index.6ad356db.js +0 -1
  440. package/dist/assets/index.6c408ae4.entry.js +0 -547
  441. package/dist/assets/index.6ddc4fdc.js +0 -1
  442. package/dist/assets/index.6fe5d0b3.js +0 -1
  443. package/dist/assets/index.713eb83a.js +0 -1
  444. package/dist/assets/index.75c64623.js +0 -1
  445. package/dist/assets/index.7aed9a74.js +0 -1
  446. package/dist/assets/index.7c788990.js +0 -1
  447. package/dist/assets/index.8287e0f2.js +0 -1
  448. package/dist/assets/index.86d0c122.js +0 -1
  449. package/dist/assets/index.8701e013.js +0 -1
  450. package/dist/assets/index.876e2150.js +0 -1
  451. package/dist/assets/index.87f07d63.js +0 -1
  452. package/dist/assets/index.8a9126c0.js +0 -1
  453. package/dist/assets/index.9020f7f8.js +0 -1
  454. package/dist/assets/index.95a38652.js +0 -1
  455. package/dist/assets/index.967c699a.js +0 -1
  456. package/dist/assets/index.9c19b896.js +0 -1
  457. package/dist/assets/index.9d085155.js +0 -1
  458. package/dist/assets/index.9d19e89b.css +0 -1
  459. package/dist/assets/index.a2dcf3d3.js +0 -1
  460. package/dist/assets/index.a33e3a0f.js +0 -1
  461. package/dist/assets/index.a3994e3e.js +0 -1
  462. package/dist/assets/index.a4a0cf79.js +0 -1
  463. package/dist/assets/index.a9130ef3.js +0 -1
  464. package/dist/assets/index.a92db738.js +0 -1
  465. package/dist/assets/index.a939892c.js +0 -1
  466. package/dist/assets/index.aaef5d37.js +0 -1
  467. package/dist/assets/index.b94caa53.js +0 -1
  468. package/dist/assets/index.be817c86.js +0 -1
  469. package/dist/assets/index.bea565ce.js +0 -1
  470. package/dist/assets/index.beaf92cf.js +0 -1
  471. package/dist/assets/index.c1202cf2.js +0 -1
  472. package/dist/assets/index.c3b8bf08.js +0 -1
  473. package/dist/assets/index.c64d544a.js +0 -1
  474. package/dist/assets/index.caf0f908.js +0 -1
  475. package/dist/assets/index.cbab03d1.js +0 -1
  476. package/dist/assets/index.cc9ba44d.js +0 -1
  477. package/dist/assets/index.ce185aa0.js +0 -1
  478. package/dist/assets/index.d1676f89.js +0 -1
  479. package/dist/assets/index.da1ac686.js +0 -1
  480. package/dist/assets/index.df9b999e.js +0 -1
  481. package/dist/assets/index.e4754ab9.js +0 -1
  482. package/dist/assets/index.e629cf0e.js +0 -1
  483. package/dist/assets/index.e6be0eb0.js +0 -1
  484. package/dist/assets/index.ec867eba.js +0 -1
  485. package/dist/assets/index.f0af50e7.js +0 -1
  486. package/dist/assets/index.f54461df.js +0 -1
  487. package/dist/assets/index.f7d9fffc.js +0 -1
  488. package/dist/assets/index.fad2fd5d.js +0 -1
  489. package/dist/assets/insights.36c270c0.js +0 -1
  490. package/dist/assets/installation.16ae0771.js +0 -1
  491. package/dist/assets/interfaces.b5cebf09.js +0 -46
  492. package/dist/assets/introduction.04bbf522.js +0 -90
  493. package/dist/assets/introduction.1cc62f08.js +0 -1
  494. package/dist/assets/introduction.33560106.js +0 -4
  495. package/dist/assets/introduction.70bf2d81.js +0 -1
  496. package/dist/assets/items.83b34697.js +0 -1
  497. package/dist/assets/javascript-hint.620ad47b.js +0 -1
  498. package/dist/assets/javascript.22a42c19.js +0 -1
  499. package/dist/assets/jinja2.0b1cb0bb.js +0 -1
  500. package/dist/assets/jsx.248607cc.js +0 -1
  501. package/dist/assets/julia.2162bdbd.js +0 -1
  502. package/dist/assets/layouts.4f3cc3e7.js +0 -54
  503. package/dist/assets/layouts.7ced46fd.js +0 -1
  504. package/dist/assets/livescript.3ddfeda6.js +0 -1
  505. package/dist/assets/localization.e9668093.js +0 -1
  506. package/dist/assets/lua.a305cd56.js +0 -1
  507. package/dist/assets/manual.0e28cbc4.js +0 -10
  508. package/dist/assets/mark-selection.7b5a6fc9.js +0 -1
  509. package/dist/assets/match-highlighter.873d12a5.js +0 -1
  510. package/dist/assets/mathematica.01c3553a.js +0 -1
  511. package/dist/assets/mbox.22a8b245.js +0 -1
  512. package/dist/assets/migrations.7147c537.js +0 -19
  513. package/dist/assets/mirc.fa73561d.js +0 -1
  514. package/dist/assets/mllike.4c54ebfa.js +0 -1
  515. package/dist/assets/modelica.07339979.js +0 -1
  516. package/dist/assets/modules.bfb7199d.js +0 -69
  517. package/dist/assets/mscgen.686cc266.js +0 -1
  518. package/dist/assets/multiplex.a88458b2.js +0 -3
  519. package/dist/assets/mumps.003d0d45.js +0 -1
  520. package/dist/assets/nginx.dcba875a.js +0 -1
  521. package/dist/assets/notifications.78fe69c9.js +0 -153
  522. package/dist/assets/nsis.a2c211d0.js +0 -1
  523. package/dist/assets/ntriples.4e06baf8.js +0 -1
  524. package/dist/assets/octave.c6583f11.js +0 -1
  525. package/dist/assets/overlay.742dc1cd.js +0 -1
  526. package/dist/assets/overview.28df1146.js +0 -1
  527. package/dist/assets/overview.508f215d.js +0 -1
  528. package/dist/assets/overview.97626817.js +0 -1
  529. package/dist/assets/oz.afa3546c.js +0 -1
  530. package/dist/assets/panels.89c0ed45.js +0 -65
  531. package/dist/assets/pascal.8941c2f2.js +0 -1
  532. package/dist/assets/pegjs.3aee5930.js +0 -1
  533. package/dist/assets/perl.3625c222.js +0 -1
  534. package/dist/assets/php.4cdaa752.js +0 -1
  535. package/dist/assets/pig.21fe63de.js +0 -1
  536. package/dist/assets/pinia.70349f0e.entry.js +0 -1
  537. package/dist/assets/pl-PL.5a1f6a70.js +0 -1
  538. package/dist/assets/plesk.af9c7c77.js +0 -27
  539. package/dist/assets/powershell.cfe96af1.js +0 -1
  540. package/dist/assets/presets-bookmarks.e7d33809.js +0 -1
  541. package/dist/assets/project-settings.d98ebcb5.js +0 -1
  542. package/dist/assets/projects.06f11c9e.js +0 -1
  543. package/dist/assets/properties.90e293bc.js +0 -1
  544. package/dist/assets/protobuf.19a9e9b8.js +0 -1
  545. package/dist/assets/pug.8fdd6886.js +0 -1
  546. package/dist/assets/puppet.6dfeb6da.js +0 -1
  547. package/dist/assets/python.e0245f5c.js +0 -1
  548. package/dist/assets/q.d3d8a6a4.js +0 -1
  549. package/dist/assets/query.8828d31d.js +0 -152
  550. package/dist/assets/quickstart.26991a56.js +0 -9
  551. package/dist/assets/quickstart.60decafe.js +0 -20
  552. package/dist/assets/r.09038281.js +0 -1
  553. package/dist/assets/relations.29fed98c.js +0 -115
  554. package/dist/assets/relationships.9b51c50f.js +0 -55
  555. package/dist/assets/revisions.0f19e955.js +0 -40
  556. package/dist/assets/rpm.881b5f64.js +0 -1
  557. package/dist/assets/rst.b571a0d9.js +0 -1
  558. package/dist/assets/ruby.83d0f6e3.js +0 -1
  559. package/dist/assets/running-locally.261a8137.js +0 -26
  560. package/dist/assets/rust.8eb02a00.js +0 -1
  561. package/dist/assets/sas.1c3e0687.js +0 -1
  562. package/dist/assets/sass.76cf8437.js +0 -1
  563. package/dist/assets/scheme.4fa8c610.js +0 -1
  564. package/dist/assets/security.ed33172c.js +0 -1
  565. package/dist/assets/settings.d5f90d4f.js +0 -51
  566. package/dist/assets/settings.fd4e15aa.js +0 -1
  567. package/dist/assets/shell.c82f9c19.js +0 -1
  568. package/dist/assets/show-hint.40044b34.js +0 -1
  569. package/dist/assets/sieve.55ac0753.js +0 -1
  570. package/dist/assets/simple.96f65f94.js +0 -1
  571. package/dist/assets/slim.e70a287c.js +0 -1
  572. package/dist/assets/smalltalk.d09dc24d.js +0 -1
  573. package/dist/assets/smarty.8ea9900c.js +0 -1
  574. package/dist/assets/solr.a026a0e6.js +0 -1
  575. package/dist/assets/soy.5034b90a.js +0 -1
  576. package/dist/assets/sparql.756dd255.js +0 -1
  577. package/dist/assets/spreadsheet.ec5c0c2e.js +0 -1
  578. package/dist/assets/sql.ec917110.js +0 -1
  579. package/dist/assets/sso.9920cf75.js +0 -22
  580. package/dist/assets/stex.d0b9833b.js +0 -1
  581. package/dist/assets/stylus.8b561261.js +0 -1
  582. package/dist/assets/support.b7301715.js +0 -1
  583. package/dist/assets/swift.1654ac84.js +0 -1
  584. package/dist/assets/tcl.b39e3c47.js +0 -1
  585. package/dist/assets/teams.7d07ab3c.js +0 -1
  586. package/dist/assets/textile.f922c3fe.js +0 -1
  587. package/dist/assets/themes.a5e50284.js +0 -5
  588. package/dist/assets/tiddlywiki.cb8704a6.js +0 -1
  589. package/dist/assets/tiki.088d0dec.js +0 -1
  590. package/dist/assets/toml.4bc9ea0d.js +0 -1
  591. package/dist/assets/tornado.b19655d1.js +0 -1
  592. package/dist/assets/translations.cd3858e6.js +0 -1
  593. package/dist/assets/troff.3a27423f.js +0 -1
  594. package/dist/assets/ttcn-cfg.66931016.js +0 -1
  595. package/dist/assets/ttcn.4b670503.js +0 -1
  596. package/dist/assets/turtle.8a998017.js +0 -1
  597. package/dist/assets/twig.2e58d76f.js +0 -1
  598. package/dist/assets/ubuntu.b8abc8f2.js +0 -11
  599. package/dist/assets/upgrades-migrations.5d6e809a.js +0 -1
  600. package/dist/assets/use-sync.18016d01.js +0 -1
  601. package/dist/assets/user-directory.370a7f49.js +0 -1
  602. package/dist/assets/users-roles-permissions.7f9a42f3.js +0 -1
  603. package/dist/assets/users.b4781411.js +0 -252
  604. package/dist/assets/vb.f5e6afca.js +0 -1
  605. package/dist/assets/vbscript.c44059f4.js +0 -1
  606. package/dist/assets/velocity.99ae445e.js +0 -1
  607. package/dist/assets/vendor.9387af12.css +0 -1
  608. package/dist/assets/vendor.f6090249.js +0 -2939
  609. package/dist/assets/verilog.75ff9f03.js +0 -1
  610. package/dist/assets/vhdl.e0f4e9d6.js +0 -1
  611. package/dist/assets/vue-i18n.4c1cb94b.entry.js +0 -1
  612. package/dist/assets/vue-router.d21957c3.entry.js +0 -1
  613. package/dist/assets/vue.a6974133.js +0 -1
  614. package/dist/assets/vue.deaebe46.entry.js +0 -1
  615. package/dist/assets/wast.9a32ecc0.js +0 -1
  616. package/dist/assets/webhooks.8a69b405.js +0 -1
  617. package/dist/assets/webidl.c677ed4a.js +0 -1
  618. package/dist/assets/xquery.766f7ffc.js +0 -1
  619. package/dist/assets/yacas.4cab11b4.js +0 -1
  620. package/dist/assets/yaml-frontmatter.3fc182ba.js +0 -1
  621. package/dist/assets/yaml.14967251.js +0 -1
  622. package/dist/assets/z80.ea9cb3dc.js +0 -1
@@ -1 +0,0 @@
1
- import{bW as E}from"./vendor.f6090249.js";function j(a,d){return d.forEach(function(u){u&&typeof u!="string"&&!Array.isArray(u)&&Object.keys(u).forEach(function(c){if(c!=="default"&&!(c in a)){var l=Object.getOwnPropertyDescriptor(u,c);Object.defineProperty(a,c,l.get?l:{enumerable:!0,get:function(){return u[c]}})}})}),Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}var h={exports:{}};(function(a,d){(function(u){u(E.exports)})(function(u){function c(n){for(var t={},e=0;e<n.length;e++)t[n[e]]=!0;return t}var l=c(["_","var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super","convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is","break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while","defer","return","inout","mutating","nonmutating","catch","do","rethrows","throw","throws","try","didSet","get","set","willSet","assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right","Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"]),s=c(["var","let","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"]),_=c(["true","false","nil","self","super","_"]),x=c(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String","UInt8","UInt16","UInt32","UInt64","Void"]),y="+-/*%=|&<>~^?!",g=":;,.(){}[]",b=/^\-?0b[01][01_]*/,w=/^\-?0o[0-7][0-7_]*/,k=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,z=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,m=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,A=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,O=/^\#[A-Za-z]+/,I=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function v(n,t,e){if(n.sol()&&(t.indented=n.indentation()),n.eatSpace())return null;var r=n.peek();if(r=="/"){if(n.match("//"))return n.skipToEnd(),"comment";if(n.match("/*"))return t.tokenize.push(p),p(n,t)}if(n.match(O))return"builtin";if(n.match(I))return"attribute";if(n.match(b)||n.match(w)||n.match(k)||n.match(z))return"number";if(n.match(A))return"property";if(y.indexOf(r)>-1)return n.next(),"operator";if(g.indexOf(r)>-1)return n.next(),n.match(".."),"punctuation";var i;if(i=n.match(/("""|"|')/)){var o=C.bind(null,i[0]);return t.tokenize.push(o),o(n,t)}if(n.match(m)){var f=n.current();return x.hasOwnProperty(f)?"variable-2":_.hasOwnProperty(f)?"atom":l.hasOwnProperty(f)?(s.hasOwnProperty(f)&&(t.prev="define"),"keyword"):e=="define"?"def":"variable"}return n.next(),null}function S(){var n=0;return function(t,e,r){var i=v(t,e,r);if(i=="punctuation"){if(t.current()=="(")++n;else if(t.current()==")"){if(n==0)return t.backUp(1),e.tokenize.pop(),e.tokenize[e.tokenize.length-1](t,e);--n}}return i}}function C(n,t,e){for(var r=n.length==1,i,o=!1;i=t.peek();)if(o){if(t.next(),i=="(")return e.tokenize.push(S()),"string";o=!1}else{if(t.match(n))return e.tokenize.pop(),"string";t.next(),o=i=="\\"}return r&&e.tokenize.pop(),"string"}function p(n,t){for(var e;n.match(/^[^/*]+/,!0),e=n.next(),!!e;)e==="/"&&n.eat("*")?t.tokenize.push(p):e==="*"&&n.eat("/")&&t.tokenize.pop();return"comment"}function P(n,t,e){this.prev=n,this.align=t,this.indented=e}function $(n,t){var e=t.match(/^\s*($|\/[\/\*])/,!1)?null:t.column()+1;n.context=new P(n.context,e,n.indented)}function U(n){n.context&&(n.indented=n.context.indented,n.context=n.context.prev)}u.defineMode("swift",function(n){return{startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(t,e){var r=e.prev;e.prev=null;var i=e.tokenize[e.tokenize.length-1]||v,o=i(t,e,r);if(!o||o=="comment"?e.prev=r:e.prev||(e.prev=o),o=="punctuation"){var f=/[\(\[\{]|([\]\)\}])/.exec(t.current());f&&(f[1]?U:$)(e,t)}return o},indent:function(t,e){var r=t.context;if(!r)return 0;var i=/^[\]\}\)]/.test(e);return r.align!=null?r.align-(i?1:0):r.indented+(i?0:n.indentUnit)},electricInput:/^\s*[\)\}\]]$/,lineComment:"//",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace",closeBrackets:"()[]{}''\"\"``"}}),u.defineMIME("text/x-swift","swift")})})();var F=h.exports,N=j({__proto__:null,default:F},[h.exports]);export{N as s};
@@ -1 +0,0 @@
1
- import{bW as x}from"./vendor.f6090249.js";function v(f,s){return s.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(a){if(a!=="default"&&!(a in f)){var l=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(f,a,l.get?l:{enumerable:!0,get:function(){return o[a]}})}})}),Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var b={exports:{}};(function(f,s){(function(o){o(x.exports)})(function(o){o.defineMode("tcl",function(){function a(r){for(var t={},n=r.split(" "),e=0;e<n.length;++e)t[n[e]]=!0;return t}var l=a("Tcl safe after append array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd close concat continue dde eof encoding error eval exec exit expr fblocked fconfigure fcopy file fileevent filename filename flush for foreach format gets glob global history http if incr info interp join lappend lindex linsert list llength load lrange lreplace lsearch lset lsort memory msgcat namespace open package parray pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp registry regsub rename resource return scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest tclvars tell time trace unknown unset update uplevel upvar variable vwait"),p=a("if elseif else and not or eq ne in ni for foreach while switch"),d=/[+\-*&%=<>!?^\/\|]/;function c(r,t,n){return t.tokenize=n,n(r,t)}function u(r,t){var n=t.beforeParams;t.beforeParams=!1;var e=r.next();if((e=='"'||e=="'")&&t.inParams)return c(r,t,k(e));if(/[\[\]{}\(\),;\.]/.test(e))return e=="("&&n?t.inParams=!0:e==")"&&(t.inParams=!1),null;if(/\d/.test(e))return r.eatWhile(/[\w\.]/),"number";if(e=="#")return r.eat("*")?c(r,t,h):e=="#"&&r.match(/ *\[ *\[/)?c(r,t,g):(r.skipToEnd(),"comment");if(e=='"')return r.skipTo(/"/),"comment";if(e=="$")return r.eatWhile(/[$_a-z0-9A-Z\.{:]/),r.eatWhile(/}/),t.beforeParams=!0,"builtin";if(d.test(e))return r.eatWhile(d),"comment";r.eatWhile(/[\w\$_{}\xa1-\uffff]/);var i=r.current().toLowerCase();return l&&l.propertyIsEnumerable(i)?"keyword":p&&p.propertyIsEnumerable(i)?(t.beforeParams=!0,"keyword"):null}function k(r){return function(t,n){for(var e=!1,i,m=!1;(i=t.next())!=null;){if(i==r&&!e){m=!0;break}e=!e&&i=="\\"}return m&&(n.tokenize=u),"string"}}function h(r,t){for(var n=!1,e;e=r.next();){if(e=="#"&&n){t.tokenize=u;break}n=e=="*"}return"comment"}function g(r,t){for(var n=0,e;e=r.next();){if(e=="#"&&n==2){t.tokenize=u;break}e=="]"?n++:e!=" "&&(n=0)}return"meta"}return{startState:function(){return{tokenize:u,beforeParams:!1,inParams:!1}},token:function(r,t){return r.eatSpace()?null:t.tokenize(r,t)},lineComment:"#"}}),o.defineMIME("text/x-tcl","tcl")})})();var y=b.exports,w=v({__proto__:null,default:y},[b.exports]);export{w as t};
@@ -1 +0,0 @@
1
- import{w as s,y as d,z as c,A as o,E as e,C as n,W as t}from"./vendor.f6090249.js";const h={class:"markdown-body"},u=e("blockquote",null,[e("p",null,"A Team is an organizational system that groups Accounts together as Team Members and provides consolidated billing on its nested Projects.")],-1),m=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#create-a-team"},"Create a Team")]),e("li",null,[e("a",{href:"#update-team-settings"},"Update Team Settings")]),e("li",null,[e("a",{href:"#view-team-activity"},"View Team Activity")]),e("li",null,[e("a",{href:"#view-billing-details"},"View Billing Details")]),e("li",null,[e("a",{href:"#manage-billing"},"Manage Billing")]),e("li",null,[e("a",{href:"#invite-team-members"},"Invite Team Members")]),e("li",null,[e("a",{href:"#manage-team-members"},"Manage Team Members")]),e("li",null,[e("a",{href:"#destroy-a-team"},"Destroy a Team")])])])],-1),p=e("p",null,"Teams within the Cloud Dashboard allow individuals to separate or consolidate Projects and payment methods, as well as manage Projects independently or with other Team Members.",-1),g=e("p",null,"For example, a company can use Teams to organize Projects by department, each with consolidated billing and scoped access. Similarly, agencies or freelancers with multiple customers can create a Team per client to limit their access and isolate billing. Teams are free, so create as many as you need to appropriately organize Team Members, Projects and payment methods.",-1),_=t("See the "),b=t("Overview"),y=t(" to learn how Accounts, Teams and Projects interrelate."),v=e("h2",{id:"create-a-team"},[t("Create a Team "),e("a",{class:"header-anchor",href:"#create-a-team"},"#")],-1),T=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/create-a-team-20220329A.webp",alt:"Create Team"})],-1),f=e("p",null,"To create a Team:",-1),w=e("ol",null,[e("li",null,[t("Open the Team Menu in the Dashboard Header and click "),e("strong",null,[t("\u201CCreate a Team "),e("span",{mi:"",icon:"",prmry:""},"add"),t("\u201D")]),t("."),e("br"),t(" The Create Team page will open.")]),e("li",null,[t("Enter a Team Name and Team Slug, then click "),e("strong",null,"\u201CSave\u201D"),t(".")])],-1),A=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Team Name and Team Slug"),e("p",null,[t("The Team Name is a text name assigned to a Team, used in the Cloud Dashboard. The Team slug lies within the full URL "),e("code",null,"https://directus.cloud/TEAM-SLUG/projects"),t(". These are purely organizational, allowing you to easily remember the Team and link to specific Cloud Dashboards. They do not impact Cloud Projects or billing and can be "),e("a",{href:"#update-team-settings"},"updated at any time"),t(".")])],-1),P=e("h2",{id:"update-team-settings"},[t("Update Team Settings "),e("a",{class:"header-anchor",href:"#update-team-settings"},"#")],-1),N=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/managing-a-team-20220225A.webp",alt:"Managing a Team"})],-1),j=e("p",null,"To update Team Settings:",-1),M=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CSettings\u201D"),t(" to enter the Team Settings page.")]),e("li",null,[t("Toggle "),e("span",{mi:"",icon:"",prmry:""},"edit"),t(" to allow edits.")]),e("li",null,"Edit Team Name and Team Slug as desired."),e("li",null,[t("Click the "),e("strong",null,"\u201CSave\u201D"),t(" button.")])],-1),S=e("h2",{id:"view-team-activity"},[t("View Team Activity "),e("a",{class:"header-anchor",href:"#view-team-activity"},"#")],-1),k=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/view-team-activity-20220322A.webp",alt:"View Team Activity"})],-1),C=e("p",null,"The Team Activity Page displays billing information changes, created and destroyed Projects, Team Members added or removed, Team Name and Team Slug changes, and any other major Team-oriented activities. To view Team Activity:",-1),x=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CActivity\u201D"),t(".")])],-1),D=e("h2",{id:"view-billing-details"},[t("View Billing Details "),e("a",{class:"header-anchor",href:"#view-billing-details"},"#")],-1),$=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/view-billing-details-20220322A.webp",alt:"View Billing Details"})],-1),B=e("p",null,"Follow these steps to see billing details such as credit available to Team Projects, total active subscriptions and invoice receipts:",-1),I=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CBilling\u201D"),t(" to enter the Billing Details Page.")])],-1),V=e("h2",{id:"manage-billing"},[t("Manage Billing "),e("a",{class:"header-anchor",href:"#manage-billing"},"#")],-1),O=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/manage-billing-20220322A.webp",alt:"Manage Billing"})],-1),z=e("p",null,"Since our Community tier is completely free, and our Enterprise tier pricing is individually tailored based on customer needs, this section will focus on our pay-as-you-go Standard tier. Follow the steps below to change a default payment method, add or remove additional payment methods or change other billing details:",-1),H=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CBilling\u201D"),t(" to enter the Billing Details page.")]),e("li",null,[t("Click "),e("strong",null,"\u201CManage Billing\u201D"),t(" to enter the Stripe payments gateway.")]),e("li",null,"Adjust payment methods and details as needed."),e("li",null,[t("Click "),e("strong",null,"\u201CReturn to Directus Cloud\u201D"),t(".")])],-1),E=e("h3",{id:"team-billing"},[t("Team Billing "),e("a",{class:"header-anchor",href:"#team-billing"},"#")],-1),G=e("p",null,[t("Teams are free to create, and they give Team Members access to the same Projects, Project invoices and payment methods. Each Team has its own separate billing, and each Project within a Team is "),e("a",{href:"#how-bills-are-calculated"},"calculated"),t(" and "),e("a",{href:"#billing-cycles"},"invoiced separately every month"),t(".")],-1),F=e("p",null,"Team Members are SuperAdmins. As such, they have full access to manage billing information and payment methods, including information provided by other Team Members. Team Members should be highly trusted individuals.",-1),U=e("p",null,"All bills will first be invoiced to the default payment method. You may notice that it is possible to add additional payment methods, and it may be a good idea to do so, as keeping multiple payment methods on file provides a fail-safe to help make sure your Project stays running. In the event that there is an issue processing the default payment method, the other payment methods on file will be attempted. If the bill is not paid, the Nodes will be paused, halting web-traffic, until a successful payment is made.",-1),R=e("div",{class:"warning hint"},[e("p",null,[t("If the paused Project is never repaid, it will eventually be deleted along with all of its data and assets. For details on unpaid Projects and refunds, see "),e("a",{href:"https://directus.io/cloud-policies/",target:"_blank",rel:"noopener noreferrer"},"Cloud Policies")])],-1),W=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Team Metered Usage"),e("p",null,[t("You may notice credit on top of the "),e("a",{href:"#view-billing-details"},"Billing Page"),t(". In the "),e("em",null,"rare event"),t(" your Team receives credit from the Directus Team, this credit balance will decrease the amount due on the next invoice(s) until all credit is used up. Then the default payment method will be used.")])],-1),Y=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Stripe Payment"),e("p",null,"To handle billing, Directus Cloud uses Stripe, a secure, industry-leading, dynamic international billing service.")],-1),L=e("h3",{id:"billing-cycles"},[t("Billing Cycles "),e("a",{class:"header-anchor",href:"#billing-cycles"},"#")],-1),q=e("p",null,"Bills are invoiced on a calendar monthly basis, so each new billing period begins after exactly one month. When a Project is destroyed, the bill is processed immediately. As mentioned in the previous section, bills are invoiced per-Project; so if a Team has 4 Standard Projects, it will be charged 4 times each month.",-1),K=e("h3",{id:"how-bills-are-calculated"},[t("How Bills Are Calculated "),e("a",{class:"header-anchor",href:"#how-bills-are-calculated"},"#")],-1),J=t("Project billing is calculated based on the total number of hours that Active and Standby Nodes are used during the billing period. Once the "),Q=t("Node Type"),X=t(" is selected, the associated hourly rate will apply to both Active and Standby Nodes."),Z=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Node Pricing"),e("p",null,[e("strong",null,"General Purpose:"),t(" $0.03424657534 / hour"),e("br"),e("strong",null,"Performance Tier:"),t(" $0.06849315068 / hour")])],-1),ee=e("p",null,[t("This means the monthly prices given for Active Nodes, "),e("em",null,"$25/month for General Purpose and $50/month for Performance tier"),t(", are actually estimates based on the cost per hour times the average length of a month (730 hours). So, the pricing shown for one Active General Purpose Node is "),e("code",null,"$0.03424657534 x 730hrs = $25"),t(", however the actual bill will vary slightly each month.")],-1),te=e("p",null,[t("Keep in mind that a Standard Project\u2019s Nodes can be reconfigured at any time. You can upgrade and downgrade Node Types add and remove Nodes, or destroy your Project as you please. In the end, "),e("em",null,"you simply pay for the actual Node-hours used by your Project"),t(".")],-1),oe=e("p",null,"The following four examples demonstrate this billing system:",-1),ae=e("p",null,[e("strong",null,"Hourly Pricing"),e("br"),t(" A Project is configured to use General Purpose Nodes, with one Active Node and zero Standby Nodes. The Project runs for 3 days and 3.5 hours (75.5 hours total, rounded to 76 hours) and is then destroyed, costing "),e("code",null,"1 Node x $0.03424657534/hr x 76 hrs = $2.60"),t(".")],-1),ne=e("p",null,[t("The bill will be "),e("code",null,"$2.60"),t(" plus Tax/VAT, charged at Project destruction.")],-1),ie=e("p",null,[e("strong",null,"Active Nodes"),e("br"),t(" A Project is configured to use Performance Tier Nodes, with two Active Nodes and zero Standby Nodes. The Project runs the full month (730 hours). For this billing cycle, the two Active Nodes will cost "),e("code",null,"2 Nodes x $0.06849315068/hr x 730 hrs = $100"),t(".")],-1),se=e("p",null,[t("The monthly bill will be "),e("code",null,"$100"),t(" plus Tax/VAT.")],-1),le=e("p",null,[e("strong",null,"Overages on Standby Nodes"),e("br"),t(" A Project is configured to use General Purpose Nodes, with three Active Nodes and two Standby Nodes. The Project runs the full month (730 hours). There are two traffic spikes. The first spike is smaller and only activates one Standby Node for 6.5 hours. The second spike is larger and activates the first Node from 4pm to 12am (eight hours), and the second Node from 6pm to 11pm (five hours), for a total of "),e("code",null,"8 + 5 = 13"),t(" hours. Between both spikes, Standby Nodes run for a total of 19.5 hours (rounds to 20 hrs). Active Nodes will cost "),e("code",null,"3 Nodes x $0.03424657534/hr x 730 hrs = $75.00"),t(" plus Standby Node overages "),e("code",null,"20 Node-hrs x $0.03424657534/hr = $0.68"),t(".")],-1),re=e("p",null,[t("The monthly bill will be "),e("code",null,"$75.68"),t(" plus VAT/Tax.")],-1),de=e("p",null,[e("strong",null,"Pro-rated Changes"),e("br"),t(" A Project begins the billing cycle configured to use General Purpose Nodes, one Active and zero Standby. A massive traffic spike is expected from marketing activities this month and 200 hours into the month, the Project is reconfigured. The Node Type is now Performance Tier, using two Active Nodes and five Standby Nodes. In the end, the marketing event was a failure, and traffic was just slightly above average. The five Standby Nodes were not needed and never activated. The first 200 hours cost "),e("code",null,"(1 General Purpose Node x $0.03424657534/hr x 200hrs) = $6.85"),t(". The other 530 hours cost "),e("code",null,"(2 Performance Nodes x $0.06849315068/hr x 530hrs) = 72.60"),t(".")],-1),ce=e("p",null,[t("The monthly bill will be "),e("code",null,"$79.45"),t(" plus VAT/Tax.")],-1),he=e("h3",{id:"optimize-node-configuration"},[t("Optimize Node Configuration "),e("a",{class:"header-anchor",href:"#optimize-node-configuration"},"#")],-1),ue=t("Remember: "),me=e("em",null,"you are never locked-in to a specific Node configuration",-1),pe=t(". As your needs change for a Project, you can reconfigure the Node Type as well as the number of Active and Standby Nodes at any time. To that end, you may want to monitor overall system traffic to make informed decisions on Node reconfiguration. The "),ge=t("Project Monitor Page"),_e=t(" provides performance analytics, which can be used to help identify optimal Node configurations for your Project."),be=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Standby Nodes"),e("p",null,"For production-ready Projects of any kind, it is probably a good idea to have one or more Standby Nodes. These do not activate, and you do not pay for their usage until they are needed. If you have no Standby Nodes, you many not have the processing power to handle traffic spikes, which can crash your Nodes!")],-1),ye=e("h2",{id:"invite-team-members"},[t("Invite Team Members "),e("a",{class:"header-anchor",href:"#invite-team-members"},"#")],-1),ve=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/inviting-a-team-member-20220225A.webp",alt:"Inviting a Team Member"})],-1),Te=e("p",null,"All Team Members can invite new Members via email. Each invitee will be emailed a link to accept the invitation and join the Team. To invite Team Members:",-1),fe=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CMembers\u201D"),t(" to enter the Members Page.")]),e("li",null,"Scroll down to the Invite New Members section."),e("li",null,"Enter one or more email(s), comma separated."),e("li",null,[t("Click "),e("strong",null,"\u201CSend Invites.\u201D")])],-1),we={class:"tip hint"},Ae=t("Clicking the emailed invitation link does not automatically create an Account for you. Invitees will need to "),Pe=t("create an Account"),Ne=t(" before accepting an invitation to join a Team."),je=e("h2",{id:"manage-team-members"},[t("Manage Team Members "),e("a",{class:"header-anchor",href:"#manage-team-members"},"#")],-1),Me=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/leaving-a-team-20220225A.webp",alt:"Removing a Team member"})],-1),Se=e("p",null,"All Team Members have the ability to remove other Members or invites from a Team. To remove Members or leave a Team yourself:",-1),ke=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CMembers\u201D"),t(" to enter the Members Page.")]),e("li",null,[t("Click the "),e("span",{mi:"",icon:""},"exit_to_app"),t(" or "),e("span",{mi:"",icon:""},"close"),t(" button on the desired Member.")]),e("li",null,[t("Click "),e("strong",null,"\u201CConfirm\u201D"),t(".")])],-1),Ce=e("div",{class:"warning hint"},[e("p",null,"If an Account leaves or is removed from a Team, it will be fully \u201Clocked out\u201D of the Team until re-invited by another Member.")],-1),xe=e("h2",{id:"destroy-a-team"},[t("Destroy a Team "),e("a",{class:"header-anchor",href:"#destroy-a-team"},"#")],-1),De=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/cloud/teams/teams-20220322A/destroy-a-team-20220225A.webp",alt:"Destroying a Team"})],-1),$e=e("p",null,"To destroy a Team:",-1),Be=e("ol",null,[e("li",null,"Open the Team Menu in the Dashboard Header and select the desired Team."),e("li",null,[t("Click "),e("strong",null,"\u201CSettings\u201D"),t(" to enter the Team Settings Page.")]),e("li",null,"Scroll down to the \u201CDestroy this Team\u201D section."),e("li",null,[t("Toggle "),e("span",{mi:"",icon:"",dngr:""},"local_fire_department"),t(" and an input box will appear.")]),e("li",null,"Type the Team Name into the input box."),e("li",null,[t("Click "),e("strong",null,"\u201CDestroy Team\u201D"),t(".")])],-1),Ie=e("div",{class:"danger hint"},[e("p",null,"Destroying a Team completely removes all its data from Directus Cloud. This action is permanent and irreversible. Proceed with caution!")],-1),Ve=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Teams with Active Projects"),e("p",null,"To delete a Team, you must first delete any active Projects within it.")],-1),Ge={setup(Oe,{expose:l}){const i={title:"Cloud Teams",modularExtension:!1};return l({frontmatter:i}),(ze,He)=>{const a=s("router-link"),r=s("DocsWrapper");return d(),c(r,{frontmatter:i},{default:o(()=>[e("div",h,[u,m,p,g,e("p",null,[_,n(a,{to:"/docs/cloud/overview"},{default:o(()=>[b]),_:1}),y]),v,T,f,w,A,P,N,j,M,S,k,C,x,D,$,B,I,V,O,z,H,E,G,F,U,R,W,Y,L,q,K,e("p",null,[J,n(a,{to:"/docs/cloud/glossary/#nodes"},{default:o(()=>[Q]),_:1}),X]),Z,ee,te,oe,ae,ne,ie,se,le,re,de,ce,he,e("p",null,[ue,me,pe,n(a,{to:"/docs/cloud/projects/#monitor-a-project"},{default:o(()=>[ge]),_:1}),_e]),be,ye,ve,Te,fe,e("div",we,[e("p",null,[Ae,n(a,{to:"/docs/cloud/accounts/#create-account-and-login"},{default:o(()=>[Pe]),_:1}),Ne])]),je,Me,Se,ke,Ce,xe,De,$e,Be,Ie,Ve])]),_:1})}}};export{Ge as default};
@@ -1 +0,0 @@
1
- import{bW as R}from"./vendor.f6090249.js";function w(p,m){return m.forEach(function(c){c&&typeof c!="string"&&!Array.isArray(c)&&Object.keys(c).forEach(function(u){if(u!=="default"&&!(u in p)){var b=Object.getOwnPropertyDescriptor(c,u);Object.defineProperty(p,u,b.get?b:{enumerable:!0,get:function(){return c[u]}})}})}),Object.freeze(Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}))}var T={exports:{}};(function(p,m){(function(c){c(R.exports)})(function(c){var u={addition:"positive",attributes:"attribute",bold:"strong",cite:"keyword",code:"atom",definitionList:"number",deletion:"negative",div:"punctuation",em:"em",footnote:"variable",footCite:"qualifier",header:"header",html:"comment",image:"string",italic:"em",link:"link",linkDefinition:"link",list1:"variable-2",list2:"variable-3",list3:"keyword",notextile:"string-2",pre:"operator",p:"property",quote:"bracket",span:"quote",specialChar:"tag",strong:"strong",sub:"builtin",sup:"builtin",table:"variable-3",tableHeading:"operator"};function b(i,e){e.mode=l.newLayout,e.tableHeading=!1,e.layoutType==="definitionList"&&e.spanningLayout&&i.match(r("definitionListEnd"),!1)&&(e.spanningLayout=!1)}function v(i,e,t){if(t==="_")return i.eat("_")?f(i,e,"italic",/__/,2):f(i,e,"em",/_/,1);if(t==="*")return i.eat("*")?f(i,e,"bold",/\*\*/,2):f(i,e,"strong",/\*/,1);if(t==="[")return i.match(/\d+\]/)&&(e.footCite=!0),a(e);if(t==="("){var o=i.match(/^(r|tm|c)\)/);if(o)return d(e,u.specialChar)}if(t==="<"&&i.match(/(\w+)[^>]+>[^<]+<\/\1>/))return d(e,u.html);if(t==="?"&&i.eat("?"))return f(i,e,"cite",/\?\?/,2);if(t==="="&&i.eat("="))return f(i,e,"notextile",/==/,2);if(t==="-"&&!i.eat("-"))return f(i,e,"deletion",/-/,1);if(t==="+")return f(i,e,"addition",/\+/,1);if(t==="~")return f(i,e,"sub",/~/,1);if(t==="^")return f(i,e,"sup",/\^/,1);if(t==="%")return f(i,e,"span",/%/,1);if(t==="@")return f(i,e,"code",/@/,1);if(t==="!"){var y=f(i,e,"image",/(?:\([^\)]+\))?!/,1);return i.match(/^:\S+/),y}return a(e)}function f(i,e,t,o,y){var s=i.pos>y?i.string.charAt(i.pos-y-1):null,h=i.peek();if(e[t]){if((!h||/\W/.test(h))&&s&&/\S/.test(s)){var L=a(e);return e[t]=!1,L}}else(!s||/\W/.test(s))&&h&&/\S/.test(h)&&i.match(new RegExp("^.*\\S"+o.source+"(?:\\W|$)"),!1)&&(e[t]=!0,e.mode=l.attributes);return a(e)}function a(i){var e=g(i);if(e)return e;var t=[];return i.layoutType&&t.push(u[i.layoutType]),t=t.concat(k(i,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading")),i.layoutType==="header"&&t.push(u.header+"-"+i.header),t.length?t.join(" "):null}function g(i){var e=i.layoutType;switch(e){case"notextile":case"code":case"pre":return u[e];default:return i.notextile?u.notextile+(e?" "+u[e]:""):null}}function d(i,e){var t=g(i);if(t)return t;var o=a(i);return e?o?o+" "+e:e:o}function k(i){for(var e=[],t=1;t<arguments.length;++t)i[arguments[t]]&&e.push(u[arguments[t]]);return e}function x(i){var e=i.spanningLayout,t=i.layoutType;for(var o in i)i.hasOwnProperty(o)&&delete i[o];i.mode=l.newLayout,e&&(i.layoutType=t,i.spanningLayout=!0)}var n={cache:{},single:{bc:"bc",bq:"bq",definitionList:/- .*?:=+/,definitionListEnd:/.*=:\s*$/,div:"div",drawTable:/\|.*\|/,foot:/fn\d+/,header:/h[1-6]/,html:/\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(i){switch(i){case"drawTable":return n.makeRe("^",n.single.drawTable,"$");case"html":return n.makeRe("^",n.single.html,"(?:",n.single.html,")*","$");case"linkDefinition":return n.makeRe("^",n.single.linkDefinition,"$");case"listLayout":return n.makeRe("^",n.single.list,r("allAttributes"),"*\\s+");case"tableCellAttributes":return n.makeRe("^",n.choiceRe(n.single.tableCellAttributes,r("allAttributes")),"+\\.");case"type":return n.makeRe("^",r("allTypes"));case"typeLayout":return n.makeRe("^",r("allTypes"),r("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return n.makeRe("^",r("allAttributes"),"+");case"allTypes":return n.choiceRe(n.single.div,n.single.foot,n.single.header,n.single.bc,n.single.bq,n.single.notextile,n.single.pre,n.single.table,n.single.para);case"allAttributes":return n.choiceRe(n.attributes.selector,n.attributes.css,n.attributes.lang,n.attributes.align,n.attributes.pad);default:return n.makeRe("^",n.single[i])}},makeRe:function(){for(var i="",e=0;e<arguments.length;++e){var t=arguments[e];i+=typeof t=="string"?t:t.source}return new RegExp(i)},choiceRe:function(){for(var i=[arguments[0]],e=1;e<arguments.length;++e)i[e*2-1]="|",i[e*2]=arguments[e];return i.unshift("(?:"),i.push(")"),n.makeRe.apply(null,i)}};function r(i){return n.cache[i]||(n.cache[i]=n.createRe(i))}var l={newLayout:function(i,e){if(i.match(r("typeLayout"),!1))return e.spanningLayout=!1,(e.mode=l.blockType)(i,e);var t;return g(e)||(i.match(r("listLayout"),!1)?t=l.list:i.match(r("drawTable"),!1)?t=l.table:i.match(r("linkDefinition"),!1)?t=l.linkDefinition:i.match(r("definitionList"))?t=l.definitionList:i.match(r("html"),!1)&&(t=l.html)),(e.mode=t||l.text)(i,e)},blockType:function(i,e){var t,o;if(e.layoutType=null,t=i.match(r("type")))o=t[0];else return(e.mode=l.text)(i,e);return(t=o.match(r("header")))?(e.layoutType="header",e.header=parseInt(t[0][1])):o.match(r("bq"))?e.layoutType="quote":o.match(r("bc"))?e.layoutType="code":o.match(r("foot"))?e.layoutType="footnote":o.match(r("notextile"))?e.layoutType="notextile":o.match(r("pre"))?e.layoutType="pre":o.match(r("div"))?e.layoutType="div":o.match(r("table"))&&(e.layoutType="table"),e.mode=l.attributes,a(e)},text:function(i,e){if(i.match(r("text")))return a(e);var t=i.next();return t==='"'?(e.mode=l.link)(i,e):v(i,e,t)},attributes:function(i,e){return e.mode=l.layoutLength,i.match(r("attributes"))?d(e,u.attributes):a(e)},layoutLength:function(i,e){return i.eat(".")&&i.eat(".")&&(e.spanningLayout=!0),e.mode=l.text,a(e)},list:function(i,e){var t=i.match(r("list"));e.listDepth=t[0].length;var o=(e.listDepth-1)%3;return o?o===1?e.layoutType="list2":e.layoutType="list3":e.layoutType="list1",e.mode=l.attributes,a(e)},link:function(i,e){return e.mode=l.text,i.match(r("link"))?(i.match(/\S+/),d(e,u.link)):a(e)},linkDefinition:function(i,e){return i.skipToEnd(),d(e,u.linkDefinition)},definitionList:function(i,e){return i.match(r("definitionList")),e.layoutType="definitionList",i.match(/\s*$/)?e.spanningLayout=!0:e.mode=l.attributes,a(e)},html:function(i,e){return i.skipToEnd(),d(e,u.html)},table:function(i,e){return e.layoutType="table",(e.mode=l.tableCell)(i,e)},tableCell:function(i,e){return i.match(r("tableHeading"))?e.tableHeading=!0:i.eat("|"),e.mode=l.tableCellAttributes,a(e)},tableCellAttributes:function(i,e){return e.mode=l.tableText,i.match(r("tableCellAttributes"))?d(e,u.attributes):a(e)},tableText:function(i,e){return i.match(r("tableText"))?a(e):i.peek()==="|"?(e.mode=l.tableCell,a(e)):v(i,e,i.next())}};c.defineMode("textile",function(){return{startState:function(){return{mode:l.newLayout}},token:function(i,e){return i.sol()&&b(i,e),e.mode(i,e)},blankLine:x}}),c.defineMIME("text/x-textile","textile")})})();var A=T.exports,C=w({__proto__:null,default:A},[T.exports]);export{C as t};
@@ -1,5 +0,0 @@
1
- import{w as n,y as c,z as h,A as s,E as e,C as r,W as t}from"./vendor.f6090249.js";const d={class:"markdown-body"},u=e("strong",null,"Form Follows Function",-1),p=t(" is the guiding design principle of Directus. The minimal UI allows the platform to be easily tailored to your brand. "),m=t("Learn more about the App"),g=t("."),_=e("h2",{id:"app-themes"},[t("App Themes "),e("a",{class:"header-anchor",href:"#app-themes"},"#")],-1),y=e("p",null,"The Directus App has been developed with customization and extensibility in mind. Colors and styles referenced within the codebase all use CSS variables, and therefore it is easy to make comprehensive changes to the App styling.",-1),b=e("p",null,"There are two themes included by default: Light and Dark. You can duplicate these files to create your own themes \u2014 with no limit to customization. Below are several code resources for key SCSS files.",-1),f=e("ul",null,[e("li",null,[e("strong",null,"Themes"),t(" \u2014 See the "),e("a",{href:"https://github.com/directus/directus/blob/main/app/src/styles/themes/_light.scss",target:"_blank",rel:"noopener noreferrer"},"Light Theme"),t(" or "),e("a",{href:"https://github.com/directus/directus/blob/main/app/src/styles/themes/_dark.scss",target:"_blank",rel:"noopener noreferrer"},"Dark Theme")]),e("li",null,[e("strong",null,"Typography"),t(" \u2014 See the "),e("a",{href:"https://github.com/directus/directus/blob/main/app/src/styles/_type-styles.scss",target:"_blank",rel:"noopener noreferrer"},"Fonts"),t(" and "),e("a",{href:"https://github.com/directus/directus/blob/main/app/src/styles/mixins/type-styles.scss",target:"_blank",rel:"noopener noreferrer"},"Type Styles")]),e("li",null,[e("strong",null,"Variables"),t(" \u2014 See the "),e("a",{href:"https://github.com/directus/directus/blob/main/app/src/styles/_variables.scss",target:"_blank",rel:"noopener noreferrer"},"Global Variables")])],-1),S=e("h2",{id:"project-styling"},[t("Project Styling "),e("a",{class:"header-anchor",href:"#project-styling"},"#")],-1),v=t("See "),w=t("Adjusting Project Settings"),k=e("h2",{id:"custom-css"},[t("Custom CSS "),e("a",{class:"header-anchor",href:"#custom-css"},"#")],-1),C=e("p",null,"You can also override any core CSS directly within the App through Project Settings. This makes it easy to edit the CSS variables listed in the themes above.",-1),A=e("ol",null,[e("li",null,[t("Navigate to "),e("strong",null,"Settings Module > Project Settings")]),e("li",null,[t("Scroll to the "),e("strong",null,"Custom CSS"),t(" field")]),e("li",null,[t("Enter any "),e("strong",null,"valid CSS")]),e("li",null,[t("Click the "),e("strong",null,"Save"),t(" action button in the header")])],-1),T=e("h3",{id:"example"},[t("Example "),e("a",{class:"header-anchor",href:"#example"},"#")],-1),j=e("p",null,[t("Since App styles are inserted/removed whenever a component is rendered, you\u2019ll need to be aware of CSS priority. Using "),e("code",null,":root"),t(" or "),e("code",null,"body"),t(" likely isn\u2019t scoped enough, you\u2019ll need to define a more specific scope, such as "),e("code",null,"#app"),t(", or use "),e("code",null,"!important"),t(".")],-1),x=e("pre",null,[e("code",{class:"language-css"},[e("span",{class:"hljs-selector-tag"},"body"),t(` {
2
- --family-sans-serif: `),e("span",{class:"hljs-string"},"'Comic Sans MS'"),t(`;
3
- --primary: MediumSlateBlue `),e("span",{class:"hljs-meta"},"!important"),t(`;
4
- }
5
- `)])],-1),D=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Action Styling"),e("p",null,[t("The "),e("code",null,"--primary"),t(" variable (and its shades) control call-to-actions and all other elements within the App using the \u201CDirectus Green\u201D. While it may be tempting to override this variable with your brand\u2019s color, please first review the following warnings:")]),e("ul",null,[e("li",null,"Avoid using yellow, orange, or red hues that give a sense of \u201Cdanger\u201D"),e("li",null,"Avoid low-contrast colors like yellows, grays, etc, that might not be easily visible"),e("li",null,"Avoid low-saturation colors like black, which might not properly highlight CTAs")])],-1),N={setup(B,{expose:i}){const o={title:"Themes & Styling",modularExtension:!1};return i({frontmatter:o}),(V,E)=>{const l=n("router-link"),a=n("DocsWrapper");return c(),h(a,{frontmatter:o},{default:s(()=>[e("div",d,[e("blockquote",null,[e("p",null,[u,p,r(l,{to:"/docs/app/overview/"},{default:s(()=>[m]),_:1}),g])]),_,y,b,f,S,e("p",null,[v,r(l,{to:"/docs/configuration/project-settings/"},{default:s(()=>[w]),_:1})]),k,C,A,T,j,x,D])]),_:1})}}};export{N as default};
@@ -1 +0,0 @@
1
- import{bW as O}from"./vendor.f6090249.js";function A(f,d){return d.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(c){if(c!=="default"&&!(c in f)){var l=Object.getOwnPropertyDescriptor(i,c);Object.defineProperty(f,c,l.get?l:{enumerable:!0,get:function(){return i[c]}})}})}),Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var h={exports:{}};(function(f,d){(function(i){i(O.exports)})(function(i){i.defineMode("tiddlywiki",function(){var c={},l={allTags:!0,closeAll:!0,list:!0,newJournal:!0,newTiddler:!0,permaview:!0,saveChanges:!0,search:!0,slider:!0,tabs:!0,tag:!0,tagging:!0,tags:!0,tiddler:!0,timeline:!0,today:!0,version:!0,option:!0,with:!0,filter:!0},a=/[\w_\-]/i,p=/^\-\-\-\-+$/,b=/^\/\*\*\*$/,w=/^\*\*\*\/$/,y=/^<<<$/,v=/^\/\/\{\{\{$/,g=/^\/\/\}\}\}$/,x=/^<!--\{\{\{-->$/,m=/^<!--\}\}\}-->$/,S=/^\{\{\{$/,$=/^\}\}\}$/,_=/.*?\}\}\}/;function u(e,r,n){return r.tokenize=n,n(e,r)}function o(e,r){var n=e.sol(),t=e.peek();if(r.block=!1,n&&/[<\/\*{}\-]/.test(t)){if(e.match(S))return r.block=!0,u(e,r,k);if(e.match(y))return"quote";if(e.match(b)||e.match(w)||e.match(v)||e.match(g)||e.match(x)||e.match(m))return"comment";if(e.match(p))return"hr"}if(e.next(),n&&/[\/\*!#;:>|]/.test(t)){if(t=="!")return e.skipToEnd(),"header";if(t=="*")return e.eatWhile("*"),"comment";if(t=="#")return e.eatWhile("#"),"comment";if(t==";")return e.eatWhile(";"),"comment";if(t==":")return e.eatWhile(":"),"comment";if(t==">")return e.eatWhile(">"),"quote";if(t=="|")return"header"}if(t=="{"&&e.match("{{"))return u(e,r,k);if(/[hf]/i.test(t)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if(t=='"')return"string";if(t=="~"||/[\[\]]/.test(t)&&e.match(t))return"brace";if(t=="@")return e.eatWhile(a),"link";if(/\d/.test(t))return e.eatWhile(/\d/),"number";if(t=="/"){if(e.eat("%"))return u(e,r,z);if(e.eat("/"))return u(e,r,W)}if(t=="_"&&e.eat("_"))return u(e,r,C);if(t=="-"&&e.eat("-")){if(e.peek()!=" ")return u(e,r,T);if(e.peek()==" ")return"brace"}return t=="'"&&e.eat("'")?u(e,r,E):t=="<"&&e.eat("<")?u(e,r,j):(e.eatWhile(/[\w\$_]/),c.propertyIsEnumerable(e.current())?"keyword":null)}function z(e,r){for(var n=!1,t;t=e.next();){if(t=="/"&&n){r.tokenize=o;break}n=t=="%"}return"comment"}function E(e,r){for(var n=!1,t;t=e.next();){if(t=="'"&&n){r.tokenize=o;break}n=t=="'"}return"strong"}function k(e,r){var n=r.block;return n&&e.current()?"comment":!n&&e.match(_)||n&&e.sol()&&e.match($)?(r.tokenize=o,"comment"):(e.next(),"comment")}function W(e,r){for(var n=!1,t;t=e.next();){if(t=="/"&&n){r.tokenize=o;break}n=t=="/"}return"em"}function C(e,r){for(var n=!1,t;t=e.next();){if(t=="_"&&n){r.tokenize=o;break}n=t=="_"}return"underlined"}function T(e,r){for(var n=!1,t;t=e.next();){if(t=="-"&&n){r.tokenize=o;break}n=t=="-"}return"strikethrough"}function j(e,r){if(e.current()=="<<")return"macro";var n=e.next();return n?n==">"&&e.peek()==">"?(e.next(),r.tokenize=o,"macro"):(e.eatWhile(/[\w\$_]/),l.propertyIsEnumerable(e.current())?"keyword":null):(r.tokenize=o,null)}return{startState:function(){return{tokenize:o}},token:function(e,r){if(e.eatSpace())return null;var n=r.tokenize(e,r);return n}}}),i.defineMIME("text/x-tiddlywiki","tiddlywiki")})})();var B=h.exports,I=A({__proto__:null,default:B},[h.exports]);export{I as t};
@@ -1 +0,0 @@
1
- import{bW as A}from"./vendor.f6090249.js";function E(k,v){return v.forEach(function(f){f&&typeof f!="string"&&!Array.isArray(f)&&Object.keys(f).forEach(function(a){if(a!=="default"&&!(a in k)){var i=Object.getOwnPropertyDescriptor(f,a);Object.defineProperty(k,a,i.get?i:{enumerable:!0,get:function(){return f[a]}})}})}),Object.freeze(Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}))}var P={exports:{}};(function(k,v){(function(f){f(A.exports)})(function(f){f.defineMode("tiki",function(a){function i(e,t,n){return function(o,g){for(;!o.eol();){if(o.match(t)){g.tokenize=c;break}o.next()}return n&&(g.tokenize=n),e}}function l(e){return function(t,n){for(;!t.eol();)t.next();return n.tokenize=c,e}}function c(e,t){function n(y){return t.tokenize=y,y(e,t)}var o=e.sol(),g=e.next();switch(g){case"{":return e.eat("/"),e.eatSpace(),e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),t.tokenize=h,"tag";case"_":if(e.eat("_"))return n(i("strong","__",c));break;case"'":if(e.eat("'"))return n(i("em","''",c));break;case"(":if(e.eat("("))return n(i("variable-2","))",c));break;case"[":return n(i("variable-3","]",c));case"|":if(e.eat("|"))return n(i("comment","||"));break;case"-":if(e.eat("="))return n(i("header string","=-",c));if(e.eat("-"))return n(i("error tw-deleted","--",c));break;case"=":if(e.match("=="))return n(i("tw-underline","===",c));break;case":":if(e.eat(":"))return n(i("comment","::"));break;case"^":return n(i("tw-box","^"));case"~":if(e.match("np~"))return n(i("meta","~/np~"));break}if(o)switch(g){case"!":return e.match("!!!!!")||e.match("!!!!")||e.match("!!!")||e.match("!!"),n(l("header string"));case"*":case"#":case"+":return n(l("tw-listitem bracket"))}return null}var _=a.indentUnit,x,p;function h(e,t){var n=e.next(),o=e.peek();return n=="}"?(t.tokenize=c,"tag"):n=="("||n==")"?"bracket":n=="="?(p="equals",o==">"&&(e.next(),o=e.peek()),/[\'\"]/.test(o)||(t.tokenize=L()),"operator"):/[\'\"]/.test(n)?(t.tokenize=N(n),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function N(e){return function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=h;break}return"string"}}function L(){return function(e,t){for(;!e.eol();){var n=e.next(),o=e.peek();if(n==" "||n==","||/[ )}]/.test(o)){t.tokenize=h;break}}return"string"}}var r,s;function d(){for(var e=arguments.length-1;e>=0;e--)r.cc.push(arguments[e])}function u(){return d.apply(null,arguments),!0}function w(e,t){var n=r.context&&r.context.noIndent;r.context={prev:r.context,pluginName:e,indent:r.indented,startOfLine:t,noIndent:n}}function z(){r.context&&(r.context=r.context.prev)}function S(e){if(e=="openPlugin")return r.pluginName=x,u(b,j(r.startOfLine));if(e=="closePlugin"){var t=!1;return r.context?(t=r.context.pluginName!=x,z()):t=!0,t&&(s="error"),u(I(t))}else return e=="string"&&((!r.context||r.context.name!="!cdata")&&w("!cdata"),r.tokenize==c&&z()),u()}function j(e){return function(t){return t=="selfclosePlugin"||t=="endPlugin"||t=="endPlugin"&&w(r.pluginName,e),u()}}function I(e){return function(t){return e&&(s="error"),t=="endPlugin"?u():d()}}function b(e){return e=="keyword"?(s="attribute",u(b)):e=="equals"?u(m,b):d()}function m(e){return e=="keyword"?(s="string",u()):e=="string"?u(O):d()}function O(e){return e=="string"?u(O):d()}return{startState:function(){return{tokenize:c,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=e.indentation()),e.eatSpace())return null;s=p=x=null;var n=t.tokenize(e,t);if((n||p)&&n!="comment")for(r=t;;){var o=t.cc.pop()||S;if(o(p||n))break}return t.startOfLine=!1,s||n},indent:function(e,t){var n=e.context;if(n&&n.noIndent)return 0;for(n&&/^{\//.test(t)&&(n=n.prev);n&&!n.startOfLine;)n=n.prev;return n?n.indent+_:0},electricChars:"/"}}),f.defineMIME("text/tiki","tiki")})})();var M=P.exports,q=E({__proto__:null,default:M},[P.exports]);export{q as t};
@@ -1 +0,0 @@
1
- import{bW as u}from"./vendor.f6090249.js";function t(i,l){return l.forEach(function(r){r&&typeof r!="string"&&!Array.isArray(r)&&Object.keys(r).forEach(function(e){if(e!=="default"&&!(e in i)){var n=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(i,e,n.get?n:{enumerable:!0,get:function(){return r[e]}})}})}),Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var f={exports:{}};(function(i,l){(function(r){r(u.exports)})(function(r){r.defineMode("toml",function(){return{startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,n){if(!n.inString&&(e.peek()=='"'||e.peek()=="'")&&(n.stringType=e.peek(),e.next(),n.inString=!0),e.sol()&&n.inArray===0&&(n.lhs=!0),n.inString){for(;n.inString&&!e.eol();)e.peek()===n.stringType?(e.next(),n.inString=!1):e.peek()==="\\"?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return n.lhs?"property string":"string"}else{if(n.inArray&&e.peek()==="]")return e.next(),n.inArray--,"bracket";if(n.lhs&&e.peek()==="["&&e.skipTo("]"))return e.next(),e.peek()==="]"&&e.next(),"atom";if(e.peek()==="#")return e.skipToEnd(),"comment";if(e.eatSpace())return null;if(n.lhs&&e.eatWhile(function(o){return o!="="&&o!=" "}))return"property";if(n.lhs&&e.peek()==="=")return e.next(),n.lhs=!1,null;if(!n.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!n.lhs&&(e.match("true")||e.match("false")))return"atom";if(!n.lhs&&e.peek()==="[")return n.inArray++,e.next(),"bracket";if(!n.lhs&&e.match(/^\-?\d+(?:\.\d+)?/))return"number";e.eatSpace()||e.next()}return null}}}),r.defineMIME("text/x-toml","toml")})})();var p=f.exports,h=t({__proto__:null,default:p},[f.exports]);export{h as t};
@@ -1 +0,0 @@
1
- import{bW as d}from"./vendor.f6090249.js";import{a as l}from"./htmlmixed.9027b596.js";import{o as p}from"./overlay.742dc1cd.js";function m(i,f){return f.forEach(function(e){e&&typeof e!="string"&&!Array.isArray(e)&&Object.keys(e).forEach(function(t){if(t!=="default"&&!(t in i)){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(i,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})}),Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var c={exports:{}};(function(i,f){(function(e){e(d.exports,l.exports,p.exports)})(function(e){e.defineMode("tornado:inner",function(){var t=["and","as","assert","autoescape","block","break","class","comment","context","continue","datetime","def","del","elif","else","end","escape","except","exec","extends","false","finally","for","from","global","if","import","in","include","is","json_encode","lambda","length","linkify","load","module","none","not","or","pass","print","put","raise","raw","return","self","set","squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"];t=new RegExp("^(("+t.join(")|(")+"))\\b");function o(n,r){n.eatWhile(/[^\{]/);var a=n.next();if(a=="{"&&(a=n.eat(/\{|%|#/)))return r.tokenize=u(a),"tag"}function u(n){return n=="{"&&(n="}"),function(r,a){var s=r.next();return s==n&&r.eat("}")?(a.tokenize=o,"tag"):r.match(t)?"keyword":n=="#"?"comment":"string"}}return{startState:function(){return{tokenize:o}},token:function(n,r){return r.tokenize(n,r)}}}),e.defineMode("tornado",function(t){var o=e.getMode(t,"text/html"),u=e.getMode(t,"tornado:inner");return e.overlayMode(o,u)}),e.defineMIME("text/x-tornado","tornado")})})();var x=c.exports,b=m({__proto__:null,default:x},[c.exports]);export{b as t};
@@ -1 +0,0 @@
1
- import{w as o,y as i,z as l,A as s,E as e,W as a}from"./vendor.f6090249.js";const u=e("div",{class:"markdown-body"},[e("blockquote",null,[e("p",null,"The platform supports internationalization across the entire App. Many languages are currently supported, with more being added all the time. Anyone can add or refine any languages through the integration with CrowdIn.")]),e("h2",{id:"crowdin"},[a("Crowdin "),e("a",{class:"header-anchor",href:"#crowdin"},"#")]),e("p",null,[a("Our "),e("a",{href:"https://locales.directus.io/",target:"_blank",rel:"noopener noreferrer"},"Crowdin"),a(" page provides an external interface for managing all of the different language translations for the App. You can update and extend existing languages, or request a new language be added.")]),e("h2",{id:"working-with-existing-languages"},[a("Working with Existing Languages "),e("a",{class:"header-anchor",href:"#working-with-existing-languages"},"#")]),e("ol",null,[e("li",null,[a("Navigate to "),e("a",{href:"https://locales.directus.io/",target:"_blank",rel:"noopener noreferrer"},"Crowdin")]),e("li",null,"Click on the desired language"),e("li",null,[a("Click "),e("strong",null,"Translate All"),a(" in the header")]),e("li",null,"Log in to Crowdin, or register an account as needed"),e("li",null,"Select a source string using the left-hand navigation"),e("li",null,"Add or edit the translation in the lower text area"),e("li",null,"Click \u201CSAVE\u201D below the translation")]),e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Character Length"),e("p",null,"It is important to keep the character length approximately the same as the source string (English) to avoid truncation or a drastically different wrapping. For example, some text translations will go in a smaller button with limited space for text and no ability to wrap.")]),e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Suggestions"),e("p",null,"Crowdin provides useful TM and MT suggestions, however you should always confirm that these are context appropriate, as they may not accurately map to the source meaning.")]),e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Request Additional Context"),e("p",null,"If you feel you do not have enough information on how this string is used, you can always ask for additional context using the \u201CComment\u201D section.")]),e("h2",{id:"requesting-a-new-language"},[a("Requesting a New Language "),e("a",{class:"header-anchor",href:"#requesting-a-new-language"},"#")]),e("p",null,[a("To add a new language to the Crowdin service, you can make a request via Crowdin\u2019s "),e("strong",null,"Discussions"),a(" section, or reach out to a Core Team member via "),e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord"),a(".")])],-1),p={setup(d,{expose:n}){const t={title:"App Translations",modularExtension:!1};return n({frontmatter:t}),(c,h)=>{const r=o("DocsWrapper");return i(),l(r,{frontmatter:t},{default:s(()=>[u]),_:1})}}};export{p as default};
@@ -1 +0,0 @@
1
- import{bW as p}from"./vendor.f6090249.js";function l(r,i){return i.forEach(function(n){n&&typeof n!="string"&&!Array.isArray(n)&&Object.keys(n).forEach(function(f){if(f!=="default"&&!(f in r)){var e=Object.getOwnPropertyDescriptor(n,f);Object.defineProperty(r,f,e.get?e:{enumerable:!0,get:function(){return n[f]}})}})}),Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}var h={exports:{}};(function(r,i){(function(n){n(p.exports)})(function(n){n.defineMode("troff",function(){var f={};function e(t){if(t.eatSpace())return null;var o=t.sol(),c=t.next();if(c==="\\")return t.match("fB")||t.match("fR")||t.match("fI")||t.match("u")||t.match("d")||t.match("%")||t.match("&")?"string":t.match("m[")?(t.skipTo("]"),t.next(),"string"):t.match("s+")||t.match("s-")?(t.eatWhile(/[\d-]/),"string"):((t.match("(")||t.match("*("))&&t.eatWhile(/[\w-]/),"string");if(o&&(c==="."||c==="'")&&t.eat("\\")&&t.eat('"'))return t.skipToEnd(),"comment";if(o&&c==="."){if(t.match("B ")||t.match("I ")||t.match("R "))return"attribute";if(t.match("TH ")||t.match("SH ")||t.match("SS ")||t.match("HP "))return t.skipToEnd(),"quote";if(t.match(/[A-Z]/)&&t.match(/[A-Z]/)||t.match(/[a-z]/)&&t.match(/[a-z]/))return"attribute"}t.eatWhile(/[\w-]/);var u=t.current();return f.hasOwnProperty(u)?f[u]:null}function a(t,o){return(o.tokens[0]||e)(t,o)}return{startState:function(){return{tokens:[]}},token:function(t,o){return a(t,o)}}}),n.defineMIME("text/troff","troff"),n.defineMIME("text/x-troff","troff"),n.defineMIME("application/x-troff","troff")})})();var d=h.exports,x=l({__proto__:null,default:d},[h.exports]);export{x as t};
@@ -1 +0,0 @@
1
- import{bW as d}from"./vendor.f6090249.js";function p(_,U){return U.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(r){if(r!=="default"&&!(r in _)){var C=Object.getOwnPropertyDescriptor(i,r);Object.defineProperty(_,r,C.get?C:{enumerable:!0,get:function(){return i[r]}})}})}),Object.freeze(Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}))}var S={exports:{}};(function(_,U){(function(i){i(d.exports)})(function(i){i.defineMode("ttcn-cfg",function(C,o){var u=C.indentUnit,I=o.keywords||{},P=o.fileNCtrlMaskOptions||{},L=o.externalCommands||{},a=o.multiLineStrings,M=o.indentStatements!==!1,c=/[\|]/,E;function s(e,n){var t=e.next();if(t=='"'||t=="'")return n.tokenize=D(t),n.tokenize(e,n);if(/[:=]/.test(t))return E=t,"punctuation";if(t=="#")return e.skipToEnd(),"comment";if(/\d/.test(t))return e.eatWhile(/[\w\.]/),"number";if(c.test(t))return e.eatWhile(c),"operator";if(t=="[")return e.eatWhile(/[\w_\]]/),"number sectionTitle";e.eatWhile(/[\w\$_]/);var T=e.current();return I.propertyIsEnumerable(T)?"keyword":P.propertyIsEnumerable(T)?"negative fileNCtrlMaskOptions":L.propertyIsEnumerable(T)?"negative externalCommands":"variable"}function D(e){return function(n,t){for(var T=!1,O,f=!1;(O=n.next())!=null;){if(O==e&&!T){var N=n.peek();N&&(N=N.toLowerCase(),(N=="b"||N=="h"||N=="o")&&n.next()),f=!0;break}T=!T&&O=="\\"}return(f||!(T||a))&&(t.tokenize=null),"string"}}function R(e,n,t,T,O){this.indented=e,this.column=n,this.type=t,this.align=T,this.prev=O}function A(e,n,t){var T=e.indented;return e.context&&e.context.type=="statement"&&(T=e.context.indented),e.context=new R(T,n,t,null,e.context)}function l(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}return{startState:function(e){return{tokenize:null,context:new R((e||0)-u,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var t=n.context;if(e.sol()&&(t.align==null&&(t.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;E=null;var T=(n.tokenize||s)(e,n);if(T=="comment")return T;if(t.align==null&&(t.align=!0),(E==";"||E==":"||E==",")&&t.type=="statement")l(n);else if(E=="{")A(n,e.column(),"}");else if(E=="[")A(n,e.column(),"]");else if(E=="(")A(n,e.column(),")");else if(E=="}"){for(;t.type=="statement";)t=l(n);for(t.type=="}"&&(t=l(n));t.type=="statement";)t=l(n)}else E==t.type?l(n):M&&((t.type=="}"||t.type=="top")&&E!=";"||t.type=="statement"&&E=="newstatement")&&A(n,e.column(),"statement");return n.startOfLine=!1,T},electricChars:"{}",lineComment:"#",fold:"brace"}});function r(C){for(var o={},u=C.split(" "),I=0;I<u.length;++I)o[u[I]]=!0;return o}i.defineMIME("text/x-ttcn-cfg",{name:"ttcn-cfg",keywords:r("Yes No LogFile FileMask ConsoleMask AppendFile TimeStampFormat LogEventTypes SourceInfoFormat LogEntityName LogSourceInfo DiskFullAction LogFileNumber LogFileSize MatchingHints Detailed Compact SubCategories Stack Single None Seconds DateTime Time Stop Error Retry Delete TCPPort KillTimer NumHCs UnixSocketsEnabled LocalAddress"),fileNCtrlMaskOptions:r("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION TTCN_USER TTCN_FUNCTION TTCN_STATISTICS TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG EXECUTOR ERROR WARNING PORTEVENT TIMEROP VERDICTOP DEFAULTOP TESTCASE ACTION USER FUNCTION STATISTICS PARALLEL MATCHING DEBUG LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED DEBUG_ENCDEC DEBUG_TESTPORT DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED FUNCTION_RND FUNCTION_UNQUALIFIED MATCHING_DONE MATCHING_MCSUCCESS MATCHING_MCUNSUCC MATCHING_MMSUCCESS MATCHING_MMUNSUCC MATCHING_PCSUCCESS MATCHING_PCUNSUCC MATCHING_PMSUCCESS MATCHING_PMUNSUCC MATCHING_PROBLEM MATCHING_TIMEOUT MATCHING_UNQUALIFIED PARALLEL_PORTCONN PARALLEL_PORTMAP PARALLEL_PTC PARALLEL_UNQUALIFIED PORTEVENT_DUALRECV PORTEVENT_DUALSEND PORTEVENT_MCRECV PORTEVENT_MCSEND PORTEVENT_MMRECV PORTEVENT_MMSEND PORTEVENT_MQUEUE PORTEVENT_PCIN PORTEVENT_PCOUT PORTEVENT_PMIN PORTEVENT_PMOUT PORTEVENT_PQUEUE PORTEVENT_STATE PORTEVENT_UNQUALIFIED STATISTICS_UNQUALIFIED STATISTICS_VERDICT TESTCASE_FINISH TESTCASE_START TESTCASE_UNQUALIFIED TIMEROP_GUARD TIMEROP_READ TIMEROP_START TIMEROP_STOP TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED USER_UNQUALIFIED VERDICTOP_FINAL VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),externalCommands:r("BeginControlPart EndControlPart BeginTestCase EndTestCase"),multiLineStrings:!0})})})();var m=S.exports,g=p({__proto__:null,default:m},[S.exports]);export{g as t};
@@ -1 +0,0 @@
1
- import{bW as B}from"./vendor.f6090249.js";function D(y,O){return O.forEach(function(c){c&&typeof c!="string"&&!Array.isArray(c)&&Object.keys(c).forEach(function(o){if(o!=="default"&&!(o in y)){var m=Object.getOwnPropertyDescriptor(c,o);Object.defineProperty(y,o,m.get?m:{enumerable:!0,get:function(){return c[o]}})}})}),Object.freeze(Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}))}var I={exports:{}};(function(y,O){(function(c){c(B.exports)})(function(c){c.defineMode("ttcn",function(u,i){var p=u.indentUnit,s=i.keywords||{},f=i.builtin||{},d=i.timerOps||{},v=i.portOps||{},M=i.configOps||{},S=i.verdictOps||{},z=i.sutOps||{},L=i.functionOps||{},j=i.verdictConsts||{},W=i.booleanConsts||{},_=i.otherConsts||{},C=i.types||{},P=i.visibilityModifiers||{},T=i.templateMatch||{},U=i.multiLineStrings,$=i.indentStatements!==!1,g=/[+\-*&@=<>!\/]/,l;function A(t,n){var e=t.next();if(e=='"'||e=="'")return n.tokenize=N(e),n.tokenize(t,n);if(/[\[\]{}\(\),;\\:\?\.]/.test(e))return l=e,"punctuation";if(e=="#")return t.skipToEnd(),"atom preprocessor";if(e=="%")return t.eatWhile(/\b/),"atom ttcn3Macros";if(/\d/.test(e))return t.eatWhile(/[\w\.]/),"number";if(e=="/"){if(t.eat("*"))return n.tokenize=k,k(t,n);if(t.eat("/"))return t.skipToEnd(),"comment"}if(g.test(e))return e=="@"&&(t.match("try")||t.match("catch")||t.match("lazy"))?"keyword":(t.eatWhile(g),"operator");t.eatWhile(/[\w\$_\xa1-\uffff]/);var r=t.current();return s.propertyIsEnumerable(r)?"keyword":f.propertyIsEnumerable(r)?"builtin":d.propertyIsEnumerable(r)?"def timerOps":M.propertyIsEnumerable(r)?"def configOps":S.propertyIsEnumerable(r)?"def verdictOps":v.propertyIsEnumerable(r)?"def portOps":z.propertyIsEnumerable(r)?"def sutOps":L.propertyIsEnumerable(r)?"def functionOps":j.propertyIsEnumerable(r)?"string verdictConsts":W.propertyIsEnumerable(r)?"string booleanConsts":_.propertyIsEnumerable(r)?"string otherConsts":C.propertyIsEnumerable(r)?"builtin types":P.propertyIsEnumerable(r)?"builtin visibilityModifiers":T.propertyIsEnumerable(r)?"atom templateMatch":"variable"}function N(t){return function(n,e){for(var r=!1,h,E=!1;(h=n.next())!=null;){if(h==t&&!r){var a=n.peek();a&&(a=a.toLowerCase(),(a=="b"||a=="h"||a=="o")&&n.next()),E=!0;break}r=!r&&h=="\\"}return(E||!(r||U))&&(e.tokenize=null),"string"}}function k(t,n){for(var e=!1,r;r=t.next();){if(r=="/"&&e){n.tokenize=null;break}e=r=="*"}return"comment"}function w(t,n,e,r,h){this.indented=t,this.column=n,this.type=e,this.align=r,this.prev=h}function x(t,n,e){var r=t.indented;return t.context&&t.context.type=="statement"&&(r=t.context.indented),t.context=new w(r,n,e,null,t.context)}function b(t){var n=t.context.type;return(n==")"||n=="]"||n=="}")&&(t.indented=t.context.indented),t.context=t.context.prev}return{startState:function(t){return{tokenize:null,context:new w((t||0)-p,0,"top",!1),indented:0,startOfLine:!0}},token:function(t,n){var e=n.context;if(t.sol()&&(e.align==null&&(e.align=!1),n.indented=t.indentation(),n.startOfLine=!0),t.eatSpace())return null;l=null;var r=(n.tokenize||A)(t,n);if(r=="comment")return r;if(e.align==null&&(e.align=!0),(l==";"||l==":"||l==",")&&e.type=="statement")b(n);else if(l=="{")x(n,t.column(),"}");else if(l=="[")x(n,t.column(),"]");else if(l=="(")x(n,t.column(),")");else if(l=="}"){for(;e.type=="statement";)e=b(n);for(e.type=="}"&&(e=b(n));e.type=="statement";)e=b(n)}else l==e.type?b(n):$&&((e.type=="}"||e.type=="top")&&l!=";"||e.type=="statement"&&l=="newstatement")&&x(n,t.column(),"statement");return n.startOfLine=!1,r},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});function o(u){for(var i={},p=u.split(" "),s=0;s<p.length;++s)i[p[s]]=!0;return i}function m(u,i){typeof u=="string"&&(u=[u]);var p=[];function s(d){if(d)for(var v in d)d.hasOwnProperty(v)&&p.push(v)}s(i.keywords),s(i.builtin),s(i.timerOps),s(i.portOps),p.length&&(i.helperType=u[0],c.registerHelper("hintWords",u[0],p));for(var f=0;f<u.length;++f)c.defineMIME(u[f],i)}m(["text/x-ttcn","text/x-ttcn3","text/x-ttcnpp"],{name:"ttcn",keywords:o("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),builtin:o("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),types:o("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),timerOps:o("read running start stop timeout"),portOps:o("call catch check clear getcall getreply halt raise receive reply send trigger"),configOps:o("create connect disconnect done kill killed map unmap"),verdictOps:o("getverdict setverdict"),sutOps:o("action"),functionOps:o("apply derefers refers"),verdictConsts:o("error fail inconc none pass"),booleanConsts:o("true false"),otherConsts:o("null NULL omit"),visibilityModifiers:o("private public friend"),templateMatch:o("complement ifpresent subset superset permutation"),multiLineStrings:!0})})})();var H=I.exports,F=D({__proto__:null,default:H},[I.exports]);export{F as t};
@@ -1 +0,0 @@
1
- import{bW as w}from"./vendor.f6090249.js";function k(u,d){return d.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(l){if(l!=="default"&&!(l in u)){var f=Object.getOwnPropertyDescriptor(o,l);Object.defineProperty(u,l,f.get?f:{enumerable:!0,get:function(){return o[l]}})}})}),Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var g={exports:{}};(function(u,d){(function(o){o(w.exports)})(function(o){o.defineMode("turtle",function(l){var f=l.indentUnit,i;function a(n){return new RegExp("^(?:"+n.join("|")+")$","i")}a([]);var h=a(["@prefix","@base","a"]),v=/[*+\-<>=&|]/;function y(n,e){var t=n.next();if(i=null,t=="<"&&!n.match(/^[\s\u00a0=]/,!1))return n.match(/^[^\s\u00a0>]*>?/),"atom";if(t=='"'||t=="'")return e.tokenize=b(t),e.tokenize(n,e);if(/[{}\(\),\.;\[\]]/.test(t))return i=t,null;if(t=="#")return n.skipToEnd(),"comment";if(v.test(t))return n.eatWhile(v),null;if(t==":")return"operator";if(n.eatWhile(/[_\w\d]/),n.peek()==":")return"variable-3";var r=n.current();return h.test(r)?"meta":t>="A"&&t<="Z"?"comment":"keyword";var r=n.current()}function b(n){return function(e,t){for(var r=!1,c;(c=e.next())!=null;){if(c==n&&!r){t.tokenize=y;break}r=!r&&c=="\\"}return"string"}}function p(n,e,t){n.context={prev:n.context,indent:n.indent,col:t,type:e}}function x(n){n.indent=n.context.indent,n.context=n.context.prev}return{startState:function(){return{tokenize:y,context:null,indent:0,col:0}},token:function(n,e){if(n.sol()&&(e.context&&e.context.align==null&&(e.context.align=!1),e.indent=n.indentation()),n.eatSpace())return null;var t=e.tokenize(n,e);if(t!="comment"&&e.context&&e.context.align==null&&e.context.type!="pattern"&&(e.context.align=!0),i=="(")p(e,")",n.column());else if(i=="[")p(e,"]",n.column());else if(i=="{")p(e,"}",n.column());else if(/[\]\}\)]/.test(i)){for(;e.context&&e.context.type=="pattern";)x(e);e.context&&i==e.context.type&&x(e)}else i=="."&&e.context&&e.context.type=="pattern"?x(e):/atom|string|variable/.test(t)&&e.context&&(/[\}\]]/.test(e.context.type)?p(e,"pattern",n.column()):e.context.type=="pattern"&&!e.context.align&&(e.context.align=!0,e.context.col=n.column()));return t},indent:function(n,e){var t=e&&e.charAt(0),r=n.context;if(/[\]\}]/.test(t))for(;r&&r.type=="pattern";)r=r.prev;var c=r&&t==r.type;return r?r.type=="pattern"?r.col:r.align?r.col+(c?0:1):r.indent+(c?0:f):0},lineComment:"#"}}),o.defineMIME("text/turtle","turtle")})})();var m=g.exports,z=k({__proto__:null,default:m},[g.exports]);export{z as t};
@@ -1 +0,0 @@
1
- import{bW as g}from"./vendor.f6090249.js";import{m as s}from"./multiplex.a88458b2.js";function b(u,a){return a.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(t){if(t!=="default"&&!(t in u)){var r=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(u,t,r.get?r:{enumerable:!0,get:function(){return i[t]}})}})}),Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var d={exports:{}};(function(u,a){(function(i){i(g.exports,s.exports)})(function(i){i.defineMode("twig:inner",function(){var t=["and","as","autoescape","endautoescape","block","do","endblock","else","elseif","extends","for","endfor","embed","endembed","filter","endfilter","flush","from","if","endif","in","is","include","import","not","or","set","spaceless","endspaceless","with","endwith","trans","endtrans","blocktrans","endblocktrans","macro","endmacro","use","verbatim","endverbatim"],r=/^[+\-*&%=<>!?|~^]/,l=/^[:\[\(\{]/,f=["true","false","null","empty","defined","divisibleby","divisible by","even","odd","iterable","sameas","same as"],c=/^(\d[+\-\*\/])?\d+(\.\d+)?/;t=new RegExp("(("+t.join(")|(")+"))\\b"),f=new RegExp("(("+f.join(")|(")+"))\\b");function p(e,n){var o=e.peek();if(n.incomment)return e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(n.intag){if(n.operator){if(n.operator=!1,e.match(f))return"atom";if(e.match(c))return"number"}if(n.sign){if(n.sign=!1,e.match(f))return"atom";if(e.match(c))return"number"}if(n.instring)return o==n.instring&&(n.instring=!1),e.next(),"string";if(o=="'"||o=='"')return n.instring=o,e.next(),"string";if(e.match(n.intag+"}")||e.eat("-")&&e.match(n.intag+"}"))return n.intag=!1,"tag";if(e.match(r))return n.operator=!0,"operator";if(e.match(l))n.sign=!0;else if(e.eat(" ")||e.sol()){if(e.match(t))return"keyword";if(e.match(f))return"atom";if(e.match(c))return"number";e.sol()&&e.next()}else e.next();return"variable"}else if(e.eat("{")){if(e.eat("#"))return n.incomment=!0,e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(o=e.eat(/\{|%/))return n.intag=o,o=="{"&&(n.intag="}"),e.eat("-"),"tag"}e.next()}return{startState:function(){return{}},token:function(e,n){return p(e,n)}}}),i.defineMode("twig",function(t,r){var l=i.getMode(t,"twig:inner");return!r||!r.base?l:i.multiplexingMode(i.getMode(t,r.base),{open:/\{[{#%]/,close:/[}#%]\}/,mode:l,parseDelimiters:!0})}),i.defineMIME("text/x-twig","twig")})})();var m=d.exports,w=b({__proto__:null,default:m},[d.exports]);export{w as t};
@@ -1,11 +0,0 @@
1
- import{w as r,y as s,z as c,A as l,E as t,W as e}from"./vendor.f6090249.js";const i=t("div",{class:"markdown-body"},[t("p",null,[e("DigitalOcean provides a great tutorial on how to run a Node.js based app in production. See "),t("a",{href:"https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-20-04",target:"_blank",rel:"noopener noreferrer"},"How To Set Up a Node.js Application for Production on Ubuntu 20.04"),e(".")]),t("p",null,[e("Instead of starting the app using "),t("code",null,"pm2 start hello.js"),e(", add the line "),t("code",null,'"start": "directus start"'),e(" in the \u201Cscripts\u201D part of the "),t("em",null,"package.json"),e(" and start Directus using the command "),t("code",null,"pm2 start npm -- start")]),t("p",null,[t("em",null,"Example:")]),t("pre",null,[t("code",{class:"language-json"},`{
2
- "name": "directus",
3
- "version": "1.0.0",
4
- "main": "index.js",
5
- "scripts": {
6
- "test": "echo \\"Error: no test specified\\" && exit 1",
7
- "start": "directus start"
8
- },
9
- ...
10
- }
11
- `)])],-1),f={setup(p,{expose:o}){const n={title:"Ubuntu",modularExtension:!1};return o({frontmatter:n}),(u,d)=>{const a=r("DocsWrapper");return s(),c(a,{frontmatter:n},{default:l(()=>[i]),_:1})}}};export{f as default};
@@ -1 +0,0 @@
1
- import{w as s,y as c,z as u,A as o,E as e,C as r,W as t}from"./vendor.f6090249.js";const d={class:"markdown-body"},h=t("A Project is a complete instance of Directus, including its "),p=e("strong",null,"Database",-1),g=t(", config file, asset storage, and any custom extensions. "),m=t("Learn more about Projects"),_=t("."),f=e("h2",{id:"upgrading-%2F-updating-a-project"},[t("Upgrading / Updating a Project "),e("a",{class:"header-anchor",href:"#upgrading-%2F-updating-a-project"},"#")],-1),y=e("ol",null,[e("li",null,"Backup your project"),e("li",null,[t("Run "),e("code",null,"npm update")]),e("li",null,[t("Run "),e("code",null,"npx directus database migrate:latest"),t(" to update the DB")])],-1),b=e("h2",{id:"backing-up-a-project"},[t("Backing-up a Project "),e("a",{class:"header-anchor",href:"#backing-up-a-project"},"#")],-1),v=e("ol",null,[e("li",null,[t("Make a copy of the "),e("strong",null,"files within each storage adapter"),t(", and store them in a safe place")]),e("li",null,[t("Make a copy of the "),e("strong",null,"Env file"),t(" ("),e("code",null,"/api/.env"),t("), and store it in a safe place")]),e("li",null,"Create a database dump")],-1),w=e("h2",{id:"migrating-a-project"},[t("Migrating a Project "),e("a",{class:"header-anchor",href:"#migrating-a-project"},"#")],-1),k=e("p",null,"Directus doesn\u2019t rely on anything besides the database for it\u2019s operation. Therefore, migrating your Directus project can be done by moving the whole database to a new location using a database dump.",-1),j=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"File Storage"),e("p",null,"If you have files uploaded, make sure to copy those over as well, or use the same storage location in the new location of Directus.")],-1),D=e("h2",{id:"downgrading-a-project"},[t("Downgrading a Project "),e("a",{class:"header-anchor",href:"#downgrading-a-project"},"#")],-1),x=e("p",null,[t("Directus can be reverted to an earlier version by going to your terminal, navigating into your project folder and running "),e("code",null,"npm install directus@<version>"),t(".")],-1),B=e("p",null,[t("If you ran any database migrations for a newer version, you can revert those by running "),e("code",null,"npx directus database migrate:down")],-1),P=e("h2",{id:"deleting-a-project"},[t("Deleting a Project "),e("a",{class:"header-anchor",href:"#deleting-a-project"},"#")],-1),I=e("ol",null,[e("li",null,[t("Optional: "),e("strong",null,"Backup any local files"),t(" stored within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup any custom code and extensions"),t(" within the project\u2019s root directory")]),e("li",null,[t("Optional: "),e("strong",null,"Backup your entire database"),t(", only system tables, or only project tables")]),e("li",null,[e("strong",null,"Delete the project\u2019s root directory"),t(" from the server")]),e("li",null,[e("strong",null,"Delete all Directus system tables"),t(" ("),e("code",null,"directus_*"),t(") from the database")])],-1),T=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Pure SQL"),e("p",null,"After completing this process, you will be left with a pure SQL database, with no trace that Directus was ever installed. Any external services connecting to your database\u2019s project tables directly (eg: SQL queries) should continue working normally.")],-1),A=e("h2",{id:"migrating-from-v8"},[t("Migrating from v8 "),e("a",{class:"header-anchor",href:"#migrating-from-v8"},"#")],-1),S=e("p",null,"There are two ways to migrate from an existing Directus 8.X instance:",-1),F=e("ul",null,[e("li",null,[e("a",{href:"#automated-script"},"Automated Script"),t(" (recommended)")]),e("li",null,[e("a",{href:"#manual-database-export-import"},"Manual Database Export/Import")])],-1),M=e("p",null,[t("Be sure to check the "),e("a",{href:"#breaking-changes"},"Breaking changes"),t(" if you are consuming the API from an application.")],-1),U=e("h2",{id:"automated-script"},[t("Automated Script "),e("a",{class:"header-anchor",href:"#automated-script"},"#")],-1),C=e("p",null,"We created a (community maintained) script, that will automatically copy over the schema, content, files, users, and roles from an existing v8 instance to a new v9 instance. This is the most hands-off approach to moving from a v8 to a v9 instance, and is the recommended way of migrating your v8 instance.",-1),E=e("div",{class:"tip hint"},[e("p",null,[t("The script, and instructions on how to run it, can be found on the"),e("br"),e("a",{href:"https://github.com/directus-community/migration-tool",target:"_blank",rel:"noopener noreferrer"},[e("code",null,"directus-community/migration-tool")]),t(" repo.")])],-1),N=e("p",null,"This tool will copy over:",-1),O=e("ul",null,[e("li",null,"Schema (collections / fields)"),e("li",null,"Files (including file contents)"),e("li",null,"User data (eg all items in all collections)"),e("li",null,"Roles"),e("li",null,"Users")],-1),W=e("p",null,[t("Due to significant differences in data structure between versions, this tool will "),e("strong",null,"NOT"),t(" copy over:")],-1),q=e("ul",null,[e("li",null,"Interface/display configurations"),e("li",null,"Permissions"),e("li",null,"Activity / revisions")],-1),L=e("h2",{id:"manual-database-export%2Fimport"},[t("Manual Database Export/Import "),e("a",{class:"header-anchor",href:"#manual-database-export%2Fimport"},"#")],-1),Q=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Automated"),e("p",null,"We highly recommend using the automated migration tool mentioned above. If that\u2019s not possible, you can perform the following steps to migrate your v8 instance.")],-1),R=e("p",null,"Directus v9 is a breaking change coming from v8 (hence the major version bump), so you won\u2019t be able to just use your existing v8 database and run v9 on top of it. However, due to the database-mirroring approach of Directus, it\u2019s fairly straightforward to migrate your content from v8 to v9.",-1),V=e("h4",{id:"1)-setup-a-fresh-v9-instance"},[t("1) Setup a Fresh v9 Instance "),e("a",{class:"header-anchor",href:"#1)-setup-a-fresh-v9-instance"},"#")],-1),z=e("p",null,"By installing Directus \u201Cfresh\u201D, you\u2019re ensured your system tables are up-to-date and ready to go.",-1),H=e("h4",{id:"2)-migrate-your-data"},[t("2) Migrate your Data "),e("a",{class:"header-anchor",href:"#2)-migrate-your-data"},"#")],-1),X=e("p",null,[t("Using a tool like "),e("a",{href:"http://sequelpro.com",target:"_blank",rel:"noopener noreferrer"},"Sequel Pro"),t(" or "),e("a",{href:"https://tableplus.com",target:"_blank",rel:"noopener noreferrer"},"TablePlus"),t(", export your v8 user-tables and import them into your v9 database.")],-1),G=e("p",null,"Directus v9 will automatically recognize your tables, and you\u2019ll be ready to get started in v9.",-1),J=e("p",null,[e("strong",null,"Note:"),t(" If you have references to users and files, make sure to update them to the new UUID format.")],-1),K=e("h4",{id:"3)-configure-directus"},[t("3) Configure Directus "),e("a",{class:"header-anchor",href:"#3)-configure-directus"},"#")],-1),Y=e("p",null,"Once the tables are in, you can start configuring the details of the schema. This includes choosing the correct interfaces, displays, and their options for your fields.",-1),Z=e("p",null,"This would also be a good time to reconfigure your permissions, to ensure they are accurate.",-1),$=e("h2",{id:"breaking-changes"},[t("Breaking changes "),e("a",{class:"header-anchor",href:"#breaking-changes"},"#")],-1),ee=t("Filter operators"),te=t(" have changed, now they are preceded with an underscore eg: "),oe=e("code",null,"/items/users?filter[comments.thread.title][like]=Directus",-1),ne=t(" is now "),ae=e("code",null,"/items/users?filter[comments][thread][title][_like]=Directus",-1),ce={setup(se,{expose:i}){const n={title:"Upgrades & Migrations",modularExtension:!1};return i({frontmatter:n}),(re,ie)=>{const a=s("router-link"),l=s("DocsWrapper");return c(),u(l,{frontmatter:n},{default:o(()=>[e("div",d,[e("blockquote",null,[e("p",null,[h,p,g,r(a,{to:"/docs/getting-started/glossary/#projects"},{default:o(()=>[m]),_:1}),_])]),f,y,b,v,w,k,j,D,x,B,P,I,T,A,S,F,M,U,C,E,N,O,W,q,L,Q,R,V,z,H,X,G,J,K,Y,Z,$,e("ul",null,[e("li",null,[r(a,{to:"/docs/configuration/filter-rules/"},{default:o(()=>[ee]),_:1}),te,oe,ne,ae])])])]),_:1})}}};export{ce as default};
@@ -1 +0,0 @@
1
- var G=Object.defineProperty,K=Object.defineProperties;var V=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var R=(e,t,n)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A=(e,t)=>{for(var n in t||(t={}))Y.call(t,n)&&R(e,n,t[n]);if(N)for(var n of N(t))Z.call(t,n)&&R(e,n,t[n]);return e},q=(e,t)=>K(e,V(t));import{L as P,r as F,v as c,l as I,D as ee,a4 as y,al as M,t as te,a3 as ne,a7 as le}from"./vendor.f6090249.js";function ge(e){return e}function Se(e){return e}function be(e){return e}function we(e){return e}function Fe(e){return e}function Ee(e){return e}function Te(e){return e}function $e(e){return e}function Ce(e){if(e===null)return[];const t=/{{(.*?)}}/g;let n=e.match(t);return Array.isArray(n)?(n=n.map(i=>i.replace(/{{/g,"").replace(/}}/g,"").trim()),n):[]}function Oe(e){var t,n,i;const{relation:l,collection:a,field:r}=e;return l?l.collection===a&&l.field===r&&((t=l.meta)===null||t===void 0?void 0:t.one_collection_field)&&((n=l.meta)===null||n===void 0?void 0:n.one_allowed_collections)?"m2a":l.collection===a&&l.field===r?"m2o":l.related_collection===a&&((i=l.meta)===null||i===void 0?void 0:i.one_field)===r?"o2m":null:null}const ue="stores",oe="api",ie="extensions";function ae(e,t,n){const i=e[t],l=e.length,a=t-n;if(i===void 0)return e;if(a>0)return[...e.slice(0,n),i,...e.slice(n,t),...e.slice(t+1,l)];if(a<0){const r=n+1;return[...e.slice(0,t),...e.slice(t+1,r),i,...e.slice(r,l)]}return e}function re(){const e=P(ue);if(!e)throw new Error("[useStores]: The stores could not be found.");return e}function se(){const e=P(oe);if(!e)throw new Error("[useApi]: The api could not be found.");return e}function ce(){const e=P(ie);if(!e)throw new Error("[useExtensions]: The extensions could not be found.");return e}function de(e){const{useCollectionsStore:t,useFieldsStore:n}=re(),i=t(),l=n(),a=typeof e=="string"?F(e):e,r=c(()=>i.collections.find(({collection:u})=>u===a.value)||null),h=c(()=>a.value?l.getFieldsForCollectionSorted(a.value):[]),T=c(()=>{var u;if(!h.value)return{};const o={};for(const p of h.value)((u=p.schema)===null||u===void 0?void 0:u.default_value)&&(o[p.field]=p.schema.default_value);return o}),$=c(()=>h.value.find(u=>{var o;return u.collection===a.value&&((o=u.schema)===null||o===void 0?void 0:o.is_primary_key)===!0})||null),m=c(()=>{var u;return((u=h.value)===null||u===void 0?void 0:u.find(o=>{var p;return(((p=o.meta)===null||p===void 0?void 0:p.special)||[]).includes("user_created")}))||null}),C=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.sort_field)||null}),_=c(()=>{var u,o;return((o=(u=r.value)===null||u===void 0?void 0:u.meta)===null||o===void 0?void 0:o.singleton)===!0}),E=c(()=>!r.value||!r.value.meta?null:r.value.meta.accountability);return{info:r,fields:h,defaults:T,primaryKeyField:$,userCreatedField:m,sortField:C,isSingleton:_,accountabilityScope:E}}function Ae(e,t,n=!0){const i=se(),{primaryKeyField:l}=de(e),{fields:a,limit:r,sort:h,search:T,filter:$,page:m}=t,C=c(()=>e.value?e.value.startsWith("directus_")?`/${e.value.substring(9)}`:`/items/${e.value}`:null),_=F([]),E=F(!1),u=F(null),o=F(null),p=F(null),J=c(()=>{var d,f;return o.value===null||o.value<((d=y(r))!==null&&d!==void 0?d:100)?1:Math.ceil(o.value/((f=y(r))!==null&&f!==void 0?f:100))});let S=null,b=null;const W=I.exports.throttle(x,500);return n&&W(),ee([e,r,h,T,$,a,m],async(d,f)=>{if(I.exports.isEqual(d,f))return;const[v,s,g,w,j,O,pe]=d,[L,Q,X,H,z,me,_e]=f;!v||!t||((!I.exports.isEqual(j,z)||!I.exports.isEqual(g,X)||s!==Q||w!==H)&&L&&(m.value=1),v!==L&&U(),W())},{deep:!0,immediate:!0}),{itemCount:o,totalCount:p,items:_,totalPages:J,loading:E,error:u,changeManualSort:D,getItems:x};async function x(){var d,f;if(!C.value)return;S==null||S.cancel(),S=null,u.value=null,b&&clearTimeout(b),b=setTimeout(()=>{E.value=!0},150);let v=[...(d=y(a))!==null&&d!==void 0?d:[]];!((f=y(a))===null||f===void 0?void 0:f.includes("*"))&&l.value&&v.includes(l.value.field)===!1&&v.push(l.value.field),v=v.filter(s=>s.startsWith("$")===!1);try{S=M.CancelToken.source();const s=await i.get(C.value,{params:{limit:y(r),fields:v,sort:y(h),page:y(m),search:y(T),filter:y($),meta:["filter_count","total_count"]},cancelToken:S.token});let g=s.data.data;e.value==="directus_files"&&(g=g.map(w=>q(A({},w),{$thumbnail:w}))),_.value=g,p.value=s.data.meta.total_count,o.value=s.data.meta.filter_count,m&&g.length===0&&(m==null?void 0:m.value)!==1&&(m.value=1)}catch(s){M.isCancel(s)||(u.value=s)}finally{b&&(clearTimeout(b),b=null),E.value=!1}}function U(){_.value=[],p.value=null,o.value=null}async function D({item:d,to:f}){var v;const s=(v=l.value)===null||v===void 0?void 0:v.field;if(!s)return;const g=_.value.findIndex(O=>O[s]===d),w=_.value.findIndex(O=>O[s]===f);_.value=ae(_.value,g,w);const j=c(()=>`/utils/sort/${e.value}`);await i.post(j.value,{item:d,to:f})}}const k="wrapper",B=["selection","layoutOptions","layoutQuery"];function fe(e){return B.includes(e)}function ve(e){return te({name:`${e.id}-${k}`,props:{collection:{type:String,required:!0},selection:{type:Array,default:()=>[]},layoutOptions:{type:Object,default:()=>({})},layoutQuery:{type:Object,default:()=>({})},filter:{type:Object,default:null},filterUser:{type:Object,default:null},filterSystem:{type:Object,default:null},search:{type:String,default:null},showSelect:{type:String,default:"multiple"},selectMode:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},resetPreset:{type:Function,default:null},clearFilters:{type:Function,default:null}},emits:B.map(t=>`update:${t}`),setup(t,{emit:n}){const i=ne(A(A({},e.setup(t,{emit:n})),le(t)));for(const l in i)i[`onUpdate:${l}`]=a=>{fe(l)?n(`update:${l}`,a):Object.keys(t).includes(l)||(i[l]=a)};return{state:i}},render(t){return t.$slots.default!==void 0?t.$slots.default({layoutState:t.state}):null}})}function Ie(e){const{layouts:t}=ce(),n=c(()=>t.value.map(l=>ve(l)));return{layoutWrapper:c(()=>{const l=n.value.find(a=>a.name===`${e.value}-${k}`);return l===void 0?n.value.find(a=>a.name===`tabular-${k}`):l})}}function je(e,t,n){return c({get(){return e[t]},set(i){n(`update:${t}`,i)}})}export{oe as A,ie as E,ue as S,Ie as a,de as b,Oe as c,we as d,Fe as e,Se as f,Ce as g,ge as h,be as i,Ae as j,$e as k,Ee as l,ae as m,Te as n,re as o,se as p,ce as q,je as u};
@@ -1 +0,0 @@
1
- import{w as l,y as d,z as c,A as t,E as e,C as i,W as s}from"./vendor.f6090249.js";const u={class:"markdown-body"},h=s("The User Directory is the management system for all Users within a Project. "),p=s("Users"),_=s(" are the individual accounts for logging in to the App. Each User belongs to a "),g=s("Role"),f=s(" which defines its "),m=s("Permissions"),y=s("."),v=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-20220222A.webp",alt:"User Directory Page"})],-1),U=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#how-it-works"},"How it Works")]),e("li",null,[e("a",{href:"#user-directory-page"},"User Directory Page")]),e("li",null,[e("a",{href:"#user-details-page"},"User Details Page")]),e("li",null,[e("a",{href:"#view-a-user"},"View a User")]),e("li",null,[e("a",{href:"#create-a-user"},"Create a User")]),e("li",null,[e("a",{href:"#invite-a-user"},"Invite a User")]),e("li",null,[e("a",{href:"#edit-user-details"},"Edit User Details")]),e("li",null,[e("a",{href:"#archive-a-user"},"Archive a User")]),e("li",null,[e("a",{href:"#delete-a-user"},"Delete a User")])])])],-1),b=e("h2",{id:"how-it-works"},[s("How it Works "),e("a",{class:"header-anchor",href:"#how-it-works"},"#")],-1),w=e("p",null,"This Module is a management system that enables one to view, invite, create, edit, and delete Users and User information. Users can be created directly in the app, or invited to join via email.",-1),A=e("p",null,"When a User is created, they must also be assigned a Role. This Role defines the User\u2019s data access permissions within Directus. In other words, it determines what a User can see and do inside the app.",-1),D=s("The User Directory is composed of two pages: The User Directory Page and the User Details Page. It has all the same features and functionality as the "),T=s("Content Module"),k=s(" such as manual and automatic sorting, batch edit/delete/archive, import/export from files, etc."),P=e("h2",{id:"user-directory-page"},[s("User Directory Page "),e("a",{class:"header-anchor",href:"#user-directory-page"},"#")],-1),S=e("video",{title:"User Directory Options",autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-options-20220222A.mp4"}),e("p",null,[s(" Your browser is not displaying the video for some reason. Here's a "),e("a",{href:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-options-20220222A.mp4"},"link to the video"),s(" instead. ")])],-1),I=s("The User Directory Page lists all Users in a Project, with a navigation that allows quick access to Users by Role. This page has the same functionality as the "),C=s("Collection Page"),L=s("."),E=e("li",null,[e("strong",null,"Select All"),s(" \u2014 Selects all Users currently in queue.")],-1),N=e("li",null,[e("strong",null,"Card Size"),s(" \u2014 Toggles size of User Displays.")],-1),O=e("li",null,[e("strong",null,"Sort Field"),s(" \u2014 Selects Field used to Users by.")],-1),x=e("li",null,[e("strong",null,"Sort Direction"),s(" \u2014 Toggles ascending & descending sort order.")],-1),R=e("li",null,[e("strong",null,"Search"),s(" \u2014 Enables classic type-based searching.")],-1),F=e("li",null,[e("strong",null,"Filter"),s(" \u2014 Enables advanced query-based search.")],-1),W=e("span",{mi:"",btn:"",sec:""},"person_add",-1),M=s(" \u2014 "),j=s("Invite people"),q=s(" to become Users via email."),z=e("span",{mi:"",btn:""},"add",-1),H=s(" \u2014 "),V=s("Create User"),B=s(" manually."),K=e("p",null,[e("em",null,"The following are only visible once Users are selected.")],-1),Y=e("ul",null,[e("li",null,[e("span",{mi:"",btn:"",warn:""},"edit"),s(" \u2014 Opens a User Details page to apply a single edit across multiple Users.")]),e("li",null,[e("strong",null,[e("span",{mi:"",btn:"",dngr:""},"delete")]),s(" \u2014 Deletes one or more Users.")])],-1),G=e("h3",{id:"layout-options"},[s("Layout Options "),e("a",{class:"header-anchor",href:"#layout-options"},"#")],-1),J=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-directory-layout-options-20220222A.webp",alt:"User Directory Layout Options"})],-1),Q=s("The "),X=e("strong",null,"Sidebar > Layout Options",-1),Z=s(),$=e("em",null,[s("(denoted by "),e("span",{mi:"",icon:""},"layers"),s(" when Sidebar is minimized)")],-1),ee=s(" allows you to adjust how Users are displayed on the User Directory. To learn more, see "),se=s("Layouts"),te=s("."),oe=e("h2",{id:"user-details-page"},[s("User Details Page "),e("a",{class:"header-anchor",href:"#user-details-page"},"#")],-1),ie=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-profile-20220222A.webp",alt:"The User Page"})],-1),ne=s("A User\u2019s profile page can be accessed from the User Directory or by clicking the User Menu at the bottom of the "),le=s("Module Bar"),re=s(". The profile page has the same features and functionality as the "),ae=s("Item Page"),de=s(". Administrators can add and customize Fields under "),ce=s("Settings > Data Model > Directus Users"),ue=s(", but the following are available by default."),he=e("ul",null,[e("li",null,[e("strong",null,"First Name"),s(" \u2014 The given name.")]),e("li",null,[e("strong",null,"Last Name"),s(" \u2014 The family/surname.")]),e("li",null,[e("strong",null,"Email"),s(" \u2014 A unique email address.")]),e("li",null,[e("strong",null,"Password"),s(" \u2014 A hashed system password.")]),e("li",null,[e("strong",null,"Avatar"),s(" \u2014 An image to represent the User.")]),e("li",null,[e("strong",null,"Location"),s(" \u2014 The city, country, office, or branch name.")]),e("li",null,[e("strong",null,"Title"),s(" \u2014 The professional staff title.")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A freeform text description.")]),e("li",null,[e("strong",null,"Tags"),s(" \u2014 Keywords for search-ability.")])],-1),pe=e("h3",{id:"user-preferences"},[s("User Preferences "),e("a",{class:"header-anchor",href:"#user-preferences"},"#")],-1),_e=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-preferences-20220222A.webp",alt:"User Preferences"})],-1),ge=e("ul",null,[e("li",null,[e("strong",null,"Language"),s(" \u2014 The preferred App language/locale.")]),e("li",null,[e("strong",null,"Theme"),s(" \u2014 Light or Dark mode (or based on system preferences).")]),e("li",null,[e("strong",null,"Multi-Factor Authentication"),s(" \u2014 Configuration for MFA.")]),e("li",null,[e("strong",null,"Email Notifications"),s(" \u2014 Receive emails for notifications.")])],-1),fe=e("h3",{id:"admin-options"},[s("Admin Options "),e("a",{class:"header-anchor",href:"#admin-options"},"#")],-1),me=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/admin-options-20220222A.webp",alt:"Admin Options"})],-1),ye=e("li",null,[e("strong",null,"Status"),s(" \u2014 Sets User status as Draft, Invited, Active, Suspended, Archived.")],-1),ve=e("li",null,[e("strong",null,"Role"),s(" \u2014 Defines the User\u2019s Role.")],-1),Ue=e("li",null,[e("strong",null,"Token"),s(" \u2014 Accepts any string as a User access token."),e("br"),e("em",null,"Note: At least 19-20 characters recommended for an access token, but we give you the flexibility to set this according to you own internal security policies.")],-1),be=e("strong",null,"Provider",-1),we=s(" \u2014 "),Ae=e("em",null,"read-only:",-1),De=s(" SSO provider associated with User. See our built-in "),Te=s("SSO options"),ke=s("."),Pe=e("li",null,[e("strong",null,"External Identifier"),s(" \u2014 Displays external identifier generated by SSO provider.")],-1),Se=e("h3",{id:"read-only-info"},[s("Read-only Info "),e("a",{class:"header-anchor",href:"#read-only-info"},"#")],-1),Ie=e("p",null,[e("img",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/user-profile-sidebar-information-20220309A.webp",alt:"User Profile Sidebar Information"})],-1),Ce=e("p",null,[s("Information in the Sidebar "),e("em",null,[s("(denoted by "),e("span",{mi:"",icon:"",dark:""},"info"),s(" when Sidebar is minimized)")]),s(" also includes the following read-only details:")],-1),Le=e("ul",null,[e("li",null,[e("strong",null,"User Key"),s(" \u2014 The Primary Key of the User.")]),e("li",null,[e("strong",null,"Last Page"),s(" \u2014 The last App page accessed by the User.")]),e("li",null,[e("strong",null,"Last Access"),s(" \u2014 The timestamp of the User\u2019s last App or API action.")])],-1),Ee=e("h2",{id:"view-a-user"},[s("View a User "),e("a",{class:"header-anchor",href:"#view-a-user"},"#")],-1),Ne=e("video",{autoplay:"",muted:"",loop:"",controls:""},[e("source",{src:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/viewing-a-user-20220222A.mp4"}),e("p",null,[s(" Your browser is not displaying the video for some reason. Here's a "),e("a",{href:"https://cdn.directus.io/docs/v9/app-guide/user-directory/user-directory-20220222A/viewing-a-user-20220222A.mp4"},"link to the video"),s(" instead. ")])],-1),Oe=e("p",null,"Users are referenced throughout the app, often for accountability purposes. Hovering over a User in this context will provide a popover with basic information. Clicking that popover will navigate you to a view of that User\u2019s profile page.",-1),xe=e("h2",{id:"create-a-user"},[s("Create a User "),e("a",{class:"header-anchor",href:"#create-a-user"},"#")],-1),Re=e("p",null,"To create a User, follow these steps:",-1),Fe=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library"),s(".")]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the page header.")]),e("li",null,[s("Enter an "),e("strong",null,"Email Address"),s(".")]),e("li",null,"Optional: Fill in the other User details as desired."),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"check"),s(" to save the User.")])],-1),We=e("h2",{id:"invite-a-user"},[s("Invite a User "),e("a",{class:"header-anchor",href:"#invite-a-user"},"#")],-1),Me=e("p",null,"To invite User(s) via email, follow these steps:",-1),je=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library"),s(".")]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",sec:""},"person_add"),s(" in the page header.")]),e("li",null,[s("Enter one or more email addresses, separated by a comma and a space."),e("br"),e("em",null,"Tip: You can also add emails on a new line.")]),e("li",null,[s("Select the "),e("strong",null,"Role"),s(" you want to assign to the User(s).")]),e("li",null,[s("Click "),e("strong",null,"Invite"),s(".")])],-1),qe=e("p",null,"After that, the invited User(s) will receive an email with a link to the App where they set a password and enable their account.",-1),ze=e("h2",{id:"edit-user-details"},[s("Edit User Details "),e("a",{class:"header-anchor",href:"#edit-user-details"},"#")],-1),He=e("p",null,"To edit User details, follow these steps:",-1),Ve=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library"),s(".")]),e("li",null,"Click on the User you wish to manage and the User Details Page will open."),e("li",null,"Reset User details as desired.")],-1),Be=e("p",null,"The User Detail is only editable by the current User and admins, and the following fields are only available to admins:",-1),Ke=e("li",null,[e("strong",null,"Status"),s(" \u2014 Determines if an account is able to access the platform or not. Only the "),e("code",null,"active"),s(" state is able to authenticate, all others are simply descriptive inactive states. "),e("ul",null,[e("li",null,[e("strong",null,"Draft"),s(" \u2014 An incomplete User; no App/API access.")]),e("li",null,[e("strong",null,"Invited"),s(" \u2014 Has a pending invite to the project; no App/API access until accepted.")]),e("li",null,[e("strong",null,"Active"),s(" \u2014 The only status that has proper access to the App and API.")]),e("li",null,[e("strong",null,"Suspended"),s(" \u2014 A User that has been temporarily disabled; no App/API access.")]),e("li",null,[e("strong",null,"Archived"),s(" \u2014 A soft-deleted User; no App/API access.")])])],-1),Ye=e("li",null,[e("strong",null,"Role"),s(" \u2014 The User\u2019s role determines their permissions and access.")],-1),Ge=e("strong",null,"Token",-1),Je=s(" \u2014 A User\u2019s token is an alternate way to "),Qe=s("authenticate into the API"),Xe=s(" using a static string. When NULL, the token is disabled. When enabled, ensure that a secure string is used."),Ze=e("h2",{id:"archive-a-user"},[s("Archive a User "),e("a",{class:"header-anchor",href:"#archive-a-user"},"#")],-1),$e=e("p",null,"To archive a User, follow these steps:",-1),es=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library"),s(".")]),e("li",null,"Click the User you with to archive to go to their User Detail page."),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",warn:""},"archive"),s(" in the header.")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Archive"),s(" in the dialog.")])],-1),ss=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Disables Access"),e("p",null,[s("Archiving is equivalent to a "),e("em",null,"soft-delete"),s(". These Users are unable to access the App or API.")])],-1),ts=e("h2",{id:"delete-a-user"},[s("Delete a User "),e("a",{class:"header-anchor",href:"#delete-a-user"},"#")],-1),os=e("p",null,"To delete a User, follow these steps:",-1),is=e("ol",null,[e("li",null,[s("Navigate to the "),e("strong",null,"User Library"),s(".")]),e("li",null,"Select one or more Users you wish to delete."),e("li",null,[s("Click on "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header.")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog.")])],-1),ns=e("div",{class:"danger hint"},[e("div",{class:"hint-title"},"Irreversible Change"),e("p",null,[s("This action is permanent and can not be undone. Please proceed with caution. If you wish to soft-delete Users, see "),e("a",{href:"#archive-a-user"},"Archive a User"),s(".")])],-1),cs={setup(ls,{expose:r}){const n={title:"User Directory",modularExtension:!1};return r({frontmatter:n}),(rs,as)=>{const o=l("router-link"),a=l("DocsWrapper");return d(),c(a,{frontmatter:n},{default:t(()=>[e("div",u,[e("blockquote",null,[e("p",null,[h,i(o,{to:"/docs/getting-started/glossary#users"},{default:t(()=>[p]),_:1}),_,i(o,{to:"/docs/getting-started/glossary#roles"},{default:t(()=>[g]),_:1}),f,i(o,{to:"/docs/getting-started/glossary#permissions"},{default:t(()=>[m]),_:1}),y])]),v,U,b,w,A,e("p",null,[D,i(o,{to:"/docs/app/collections"},{default:t(()=>[T]),_:1}),k]),P,S,e("p",null,[I,i(o,{to:"/docs/app/content/collections/"},{default:t(()=>[C]),_:1}),L]),e("ul",null,[E,N,O,x,R,F,e("li",null,[W,M,i(o,{to:"/docs/configuration/users-roles-permissions/#inviting-a-user"},{default:t(()=>[j]),_:1}),q]),e("li",null,[z,H,i(o,{to:"/docs/configuration/users-roles-permissions/#creating-a-user"},{default:t(()=>[V]),_:1}),B])]),K,Y,G,J,e("p",null,[Q,X,Z,$,ee,i(o,{to:"/docs/app/layouts/"},{default:t(()=>[se]),_:1}),te]),oe,ie,e("p",null,[ne,i(o,{to:"/docs/app/overview/#_1-module-bar"},{default:t(()=>[le]),_:1}),re,i(o,{to:"/docs/app/content-items/"},{default:t(()=>[ae]),_:1}),de,i(o,{to:"/docs/configuration/data-model"},{default:t(()=>[ce]),_:1}),ue]),he,pe,_e,ge,fe,me,e("ul",null,[ye,ve,Ue,e("li",null,[be,we,Ae,De,i(o,{to:"/docs/configuration/sso"},{default:t(()=>[Te]),_:1}),ke]),Pe]),Se,Ie,Ce,Le,Ee,Ne,Oe,xe,Re,Fe,We,Me,je,qe,ze,He,Ve,Be,e("ul",null,[Ke,Ye,e("li",null,[Ge,Je,i(o,{to:"/docs/reference/authentication/"},{default:t(()=>[Qe]),_:1}),Xe])]),Ze,$e,es,ss,ts,os,is,ns])]),_:1})}}};export{cs as default};
@@ -1 +0,0 @@
1
- import{w as i,y as c,z as d,A as t,E as e,C as l,W as s}from"./vendor.f6090249.js";const u={class:"markdown-body"},h=s("Users"),m=s(" are the individual accounts for authenticating into the API and App. Each user belongs to a "),p=s("Role"),f=s(" which defines its access "),_=s("Permissions"),g=s("."),w=e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#overview"},"Overview")]),e("li",null,[e("a",{href:"#create-a-role"},"Create a Role")]),e("li",null,[e("a",{href:"#configure-a-role"},"Configure a Role")]),e("li",null,[e("a",{href:"#delete-a-role"},"Delete a Role")]),e("li",null,[e("a",{href:"#configure-permissions"},"Configure Permissions")]),e("li",null,[e("a",{href:"#configure-workflows"},"Configure Workflows")])])])],-1),y=e("h2",{id:"overview"},[s("Overview "),e("a",{class:"header-anchor",href:"#overview"},"#")],-1),v=e("p",null,"While this page focuses on configuration of Roles and Permissions, it is important to remember that Roles and Permissions are inherently intwined with Users. This is because every User must be assigned a Role to define their access permissions.",-1),b=e("p",null,"Directus comes with two Roles out of the box, Admin and Public. The Admin role provides full Permissions for all data in the app, and this cannot be limited. This Admin Role provides full, app-wide control to the Project owners, administrators, and creators. The Public role comes with all permissions turned off by default and these can be fully reconfigured as needed. This Public role determines the access permissions given for any unauthenticated request to app data including un-authenticated users, visitors to your website or any other web request to your Directus Project\u2019s API.",-1),A=e("p",null,"In addition, Admins can create as many Roles as they wish and configure permissions granularly.",-1),R=e("h2",{id:"create-a-role"},[s("Create a Role "),e("a",{class:"header-anchor",href:"#create-a-role"},"#")],-1),P=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:""},"add"),s(" in the header")]),e("li",null,[s("Enter a unique "),e("strong",null,"Role Name")]),e("li",null,[s("Enabling "),e("strong",null,"App Access"),s(" allows logging in to the App")]),e("li",null,[s("Enabling "),e("strong",null,"Admin Access"),s(" gives full permission to project data and Settings")]),e("li",null,[s("Click on "),e("strong",null,"Save"),s(" to save the role")])],-1),k=e("h2",{id:"configure-a-role"},[s("Configure a Role "),e("a",{class:"header-anchor",href:"#configure-a-role"},"#")],-1),C=e("ul",null,[e("li",null,[e("strong",null,"Permissions"),s(" \u2014 Configure "),e("a",{href:"#configure-permissions"},"access permissions"),s(" for the role")]),e("li",null,[e("strong",null,"Role Name"),s(" \u2014 This is the name of the role")]),e("li",null,[e("strong",null,"Role Icon"),s(" \u2014 The icon used throughout the App when referencing this role")]),e("li",null,[e("strong",null,"Description"),s(" \u2014 A helpful note that explains the role\u2019s purpose")]),e("li",null,[e("strong",null,"App Access"),s(" \u2014 Allows logging in to the App")]),e("li",null,[e("strong",null,"Admin Access"),s(" \u2014 Gives full permission to project data and Settings")]),e("li",null,[e("strong",null,"IP Access"),s(" \u2014 An allow-list of IP addresses from which the platform can be accessed, empty allows all")]),e("li",null,[e("strong",null,"Require 2FA"),s(" \u2014 Forces all users within this role to use two-factor authentication")]),e("li",null,[e("strong",null,"Users in Role"),s(" \u2014 A list of all users within this role")])],-1),F=e("h2",{id:"delete-a-role"},[s("Delete a Role "),e("a",{class:"header-anchor",href:"#delete-a-role"},"#")],-1),T=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Click "),e("span",{mi:"",btn:"",dngr:""},"delete"),s(" in the header")]),e("li",null,[s("Confirm this decision by clicking "),e("strong",null,"Delete"),s(" in the dialog")])],-1),D=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Users in a Deleted Role"),e("p",null,[s("If you delete a role that still has users in it, those users will be given a "),e("code",null,"NULL"),s(" role, which denies their App access and limits them to Public permissions. They can then be reassigned to a new role by an admin.")])],-1),S=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Last Admin"),e("p",null,"You must maintain at least one role/user with Admin Access so that you can still properly manage the project.")],-1),I=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Public Role"),e("p",null,"You can not delete the Public role, as it is part of the core platform. To disable it completely, simply turn off all Public access permissions.")],-1),N=e("h2",{id:"configure-permissions"},[s("Configure Permissions "),e("a",{class:"header-anchor",href:"#configure-permissions"},"#")],-1),x=e("p",null,"Directus possesses an extremely granular, yet easy to configure, permissions system. When creating a new role, permissions are disabled for all project collections by default \u2014 allowing you to give explicit access to only what is required. Individual permissions are applied to the role, and each is scoped to a specific collection and CRUD action (create, read, update, delete).",-1),U=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Saves Automatically"),e("p",null,"Every change made to the permissions of a role is saved automatically and instantly.")],-1),q=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Admin Roles"),e("p",null,[s("If a role is set to "),e("strong",null,"Admin Access"),s(" then it is granted complete access to the platform, and Permission configuration is disabled.")])],-1),W=e("ol",null,[e("li",null,[s("Navigate to "),e("strong",null,[s("Settings "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" Roles & Permissions "),e("span",{mi:"",icon:"",dark:""},"chevron_right"),s(" [Role Name]")])]),e("li",null,[s("Scroll to the "),e("strong",null,"Permissions"),s(" section")]),e("li",null,[e("strong",null,"Click the icon"),s(" for the collection (row) and action (column) you want to set")]),e("li",null,[s("Choose the desired permission level: "),e("span",{mi:"",icon:""},"check"),s(),e("strong",null,"All Access"),s(", "),e("span",{mi:"",icon:""},"block"),s(),e("strong",null,"No Access"),s(", or "),e("span",{mi:"",icon:""},"rule"),s(),e("strong",null,"Use Custom")])],-1),j=e("p",null,[s("If you selected "),e("strong",null,[s("\u201C"),e("span",{mi:"",icon:""},"check"),s(" All Access\u201D")]),s(" or "),e("strong",null,[s("\u201C"),e("span",{mi:"",icon:""},"block"),s(" No Access\u201D")]),s(" then setup is complete. If you chose to customize permissions then continue with the appropriate guide below based on the relevant "),e("em",null,"action"),s(".")],-1),E=e("h3",{id:"create-(custom-access)"},[s("Create (Custom Access) "),e("a",{class:"header-anchor",href:"#create-(custom-access)"},"#")],-1),V=e("ol",{start:"5"},[e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields accept a value on create. Fields are individually toggled.")]),e("li",null,[e("strong",null,"Field Validation"),s(" define the rules for field values on create")]),e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when creating an item")])],-1),z=e("h3",{id:"read-(custom-access)"},[s("Read (Custom Access) "),e("a",{class:"header-anchor",href:"#read-(custom-access)"},"#")],-1),B={start:"5"},L=e("strong",null,"Item Permissions",-1),M=s(" control which items can be read, as defined by the "),Y=s("Filter Rules"),G=s(" entered."),O=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be read. Fields are individually toggled.")],-1),K=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Read Field Permissions"),e("p",null,[s("The Directus App always requires read access to the Primary Key field (eg: "),e("code",null,"id"),s(") so it can uniquely identify items. Also, if a Collection has \u201CArchive\u201D or \u201CSort\u201D fields configured, those fields will also need read access to use the App\u2019s soft-delete and manual sorting features.")])],-1),H=e("h3",{id:"update-(custom-access)"},[s("Update (Custom Access) "),e("a",{class:"header-anchor",href:"#update-(custom-access)"},"#")],-1),J={start:"5"},Q=e("strong",null,"Item Permissions",-1),X=s(" control which items can be updated, as defined by "),Z=s("Filter Rules"),$=s("."),ee=e("li",null,[e("strong",null,"Field Permissions"),s(" control which fields can be updated. Fields are individually toggled.")],-1),se=e("strong",null,"Field Validation",-1),te=s(" define the rules for field values on update, as defined by "),oe=s("Filter Rules"),le=s("."),ne=e("li",null,[e("strong",null,"Field Presets"),s(" control the field defaults when updating an item")],-1),ie=e("h3",{id:"delete-(custom-access)"},[s("Delete (Custom Access) "),e("a",{class:"header-anchor",href:"#delete-(custom-access)"},"#")],-1),re={start:"5"},ae=e("strong",null,"Item Permissions",-1),ce=s(" control which items can be deleted, as defined by the "),de=s("Filter Rules"),ue=s(" entered."),he=e("hr",null,null,-1),me=e("h3",{id:"configure-system-permissions"},[s("Configure System Permissions "),e("a",{class:"header-anchor",href:"#configure-system-permissions"},"#")],-1),pe=e("p",null,[s("In addition to permissions for "),e("em",null,"your"),s(" custom collections, you can also customize the permissions for "),e("em",null,"system"),s(" collections. To edit system permissions, follow these steps:")],-1),fe=e("ol",null,[e("li",null,[s("Go to "),e("strong",null,"Roles and Permissions"),s(" and select the desired Role."),e("br"),e("em",null,"You will be taken to the permissions configuration page.")]),e("li",null,[s("Click "),e("strong",null,"System Collections"),s(" at the bottom of the page.")]),e("li",null,"Find the desired System Collection."),e("li",null,"Set permissions as desired.")],-1),_e=e("p",null,"There are two pre-configured options you can use for resetting the role\u2019s system permissions and ensure proper App access. To access these, click \u201CSystem Collections\u201D to expand, and then click one of the buttons at the bottom of the listing.",-1),ge=e("ul",null,[e("li",null,[e("strong",null,"App Access Minimum"),s(" \u2014 The minimum permissions required to properly access the App")]),e("li",null,[e("strong",null,"Recommended Defaults"),s(" \u2014 More permissive but balanced for a better App user experience")])],-1),we=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Remember"),e("p",null,[s("When App Access is enabled, Directus will automatically add "),e("em",null,"(and hardcode)"),s(" permissions for the necessary system collections for that Role.")])],-1),ye=e("h2",{id:"configure-workflows"},[s("Configure Workflows "),e("a",{class:"header-anchor",href:"#configure-workflows"},"#")],-1),ve=e("p",null,"Workflows are a way to add structured stages to the flow of content authoring. They are primarily defined through the permissions for a Collection, but can be further enhanced via email notifications, custom interfaces, and automation. Directus supports endlessly configurable workflows, so we will only cover one simple example below.",-1),be=s("To create a structured workflow for "),Ae=e("strong",null,"Articles",-1),Re=s(", the first step is "),Pe=s("Creating a Field"),ke=s(" to track the article \u201Cstatus\u201D \u2014 we\u2019ll call it "),Ce=e("strong",null,"Status",-1),Fe=s(", but it can be named anything."),Te=e("li",null,[s("Next, create different Roles for each stage of the workflow, such as "),e("code",null,"author"),s(" and "),e("code",null,"manager"),s(".")],-1),De=e("li",null,[s("Finally, configure the Role permissions based on the possible values of that Status field, such as "),e("code",null,"draft"),s(", "),e("code",null,"review"),s(", "),e("code",null,"approved"),s(", and "),e("code",null,"published"),s(", so that they are properly restricted to create content and update the status. "),e("ul",null,[e("li",null,[s("The Author can create content, but only save a status of "),e("code",null,"draft"),s(" or "),e("code",null,"review"),s(".")]),e("li",null,[s("The Manager has additional permissions that allow them to save statuses of "),e("code",null,"approved"),s(" or "),e("code",null,"published"),s(".")])])],-1),Ue={setup(Se,{expose:r}){const n={title:"Users, Roles & Permissions",modularExtension:!1};return r({frontmatter:n}),(Ie,Ne)=>{const o=i("router-link"),a=i("DocsWrapper");return c(),d(a,{frontmatter:n},{default:t(()=>[e("div",u,[e("blockquote",null,[e("p",null,[l(o,{to:"/docs/getting-started/glossary/#users"},{default:t(()=>[h]),_:1}),m,l(o,{to:"/docs/getting-started/glossary/#roles"},{default:t(()=>[p]),_:1}),f,l(o,{to:"/docs/getting-started/glossary/#permissions"},{default:t(()=>[_]),_:1}),g])]),w,y,v,b,A,R,P,k,C,F,T,D,S,I,N,x,U,q,W,j,E,V,z,e("ol",B,[e("li",null,[L,M,l(o,{to:"/docs/configuration/filter-rules"},{default:t(()=>[Y]),_:1}),G]),O]),K,H,e("ol",J,[e("li",null,[Q,X,l(o,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[Z]),_:1}),$]),ee,e("li",null,[se,te,l(o,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[oe]),_:1}),le]),ne]),ie,e("ol",re,[e("li",null,[ae,ce,l(o,{to:"/docs/configuration/filter-rules/"},{default:t(()=>[de]),_:1}),ue])]),he,me,pe,fe,_e,ge,we,ye,ve,e("ol",null,[e("li",null,[be,Ae,Re,l(o,{to:"/docs/configuration/data-model/#creating-a-field"},{default:t(()=>[Pe]),_:1}),ke,Ce,Fe]),Te,De])])]),_:1})}}};export{Ue as default};