sidebars.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. /**
  2. * Creating a sidebar enables you to:
  3. - create an ordered group of docs
  4. - render a sidebar for each doc of that group
  5. - provide next/previous navigation
  6. The sidebars can be generated from the filesystem, or explicitly defined here.
  7. Create as many sidebars as you want.
  8. */
  9. // @ts-check
  10. const icon = {
  11. bolt: `<path d="M11.983 1.907a.75.75 0 00-1.292-.657l-8.5 9.5A.75.75 0 002.75 12h6.572l-1.305 6.093a.75.75 0 001.292.657l8.5-9.5A.75.75 0 0017.25 8h-6.572l1.305-6.093z" />`,
  12. angleBrackets: `<path fill-rule="evenodd" d="M6.28 5.22a.75.75 0 010 1.06L2.56 10l3.72 3.72a.75.75 0 01-1.06 1.06L.97 10.53a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0zm7.44 0a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L17.44 10l-3.72-3.72a.75.75 0 010-1.06zM11.377 2.011a.75.75 0 01.612.867l-2.5 14.5a.75.75 0 01-1.478-.255l2.5-14.5a.75.75 0 01.866-.612z" clip-rule="evenodd" />`,
  13. puzzle: `<path d="M12 4.467c0-.405.262-.75.559-1.027.276-.257.441-.584.441-.94 0-.828-.895-1.5-2-1.5s-2 .672-2 1.5c0 .362.171.694.456.953.29.265.544.6.544.994a.968.968 0 01-1.024.974 39.655 39.655 0 01-3.014-.306.75.75 0 00-.847.847c.14.993.242 1.999.306 3.014A.968.968 0 014.447 10c-.393 0-.729-.253-.994-.544C3.194 9.17 2.862 9 2.5 9 1.672 9 1 9.895 1 11s.672 2 1.5 2c.356 0 .683-.165.94-.441.276-.297.622-.559 1.027-.559a.997.997 0 011.004 1.03 39.747 39.747 0 01-.319 3.734.75.75 0 00.64.842c1.05.146 2.111.252 3.184.318A.97.97 0 0010 16.948c0-.394-.254-.73-.545-.995C9.171 15.693 9 15.362 9 15c0-.828.895-1.5 2-1.5s2 .672 2 1.5c0 .356-.165.683-.441.94-.297.276-.559.622-.559 1.027a.998.998 0 001.03 1.005c1.337-.05 2.659-.162 3.961-.337a.75.75 0 00.644-.644c.175-1.302.288-2.624.337-3.961A.998.998 0 0016.967 12c-.405 0-.75.262-1.027.559-.257.276-.584.441-.94.441-.828 0-1.5-.895-1.5-2s.672-2 1.5-2c.362 0 .694.17.953.455.265.291.601.545.995.545a.97.97 0 00.976-1.024 41.159 41.159 0 00-.318-3.184.75.75 0 00-.842-.64c-1.228.164-2.473.271-3.734.319A.997.997 0 0112 4.467z" />`,
  14. book: `<path d="M10.75 16.82A7.462 7.462 0 0115 15.5c.71 0 1.396.098 2.046.282A.75.75 0 0018 15.06v-11a.75.75 0 00-.546-.721A9.006 9.006 0 0015 3a8.963 8.963 0 00-4.25 1.065V16.82zM9.25 4.065A8.963 8.963 0 005 3c-.85 0-1.673.118-2.454.339A.75.75 0 002 4.06v11a.75.75 0 00.954.721A7.506 7.506 0 015 15.5c1.579 0 3.042.487 4.25 1.32V4.065z" />`,
  15. computer: `<path fill-rule="evenodd" d="M2 4.25A2.25 2.25 0 014.25 2h11.5A2.25 2.25 0 0118 4.25v8.5A2.25 2.25 0 0115.75 15h-3.105a3.501 3.501 0 001.1 1.677A.75.75 0 0113.26 18H6.74a.75.75 0 01-.484-1.323A3.501 3.501 0 007.355 15H4.25A2.25 2.25 0 012 12.75v-8.5zm1.5 0a.75.75 0 01.75-.75h11.5a.75.75 0 01.75.75v7.5a.75.75 0 01-.75.75H4.25a.75.75 0 01-.75-.75v-7.5z" clip-rule="evenodd" />`,
  16. shoppingBag: `<path fill-rule="evenodd" d="M6 5v1H4.667a1.75 1.75 0 00-1.743 1.598l-.826 9.5A1.75 1.75 0 003.84 19H16.16a1.75 1.75 0 001.743-1.902l-.826-9.5A1.75 1.75 0 0015.333 6H14V5a4 4 0 00-8 0zm4-2.5A2.5 2.5 0 007.5 5v1h5V5A2.5 2.5 0 0010 2.5zM7.5 10a2.5 2.5 0 005 0V8.75a.75.75 0 011.5 0V10a4 4 0 01-8 0V8.75a.75.75 0 011.5 0V10z" clip-rule="evenodd" />`,
  17. academicCap: `<path fill-rule="evenodd" d="M9.664 1.319a.75.75 0 01.672 0 41.059 41.059 0 018.198 5.424.75.75 0 01-.254 1.285 31.372 31.372 0 00-7.86 3.83.75.75 0 01-.84 0 31.508 31.508 0 00-2.08-1.287V9.394c0-.244.116-.463.302-.592a35.504 35.504 0 013.305-2.033.75.75 0 00-.714-1.319 37 37 0 00-3.446 2.12A2.216 2.216 0 006 9.393v.38a31.293 31.293 0 00-4.28-1.746.75.75 0 01-.254-1.285 41.059 41.059 0 018.198-5.424zM6 11.459a29.848 29.848 0 00-2.455-1.158 41.029 41.029 0 00-.39 3.114.75.75 0 00.419.74c.528.256 1.046.53 1.554.82-.21.324-.455.63-.739.914a.75.75 0 101.06 1.06c.37-.369.69-.77.96-1.193a26.61 26.61 0 013.095 2.348.75.75 0 00.992 0 26.547 26.547 0 015.93-3.95.75.75 0 00.42-.739 41.053 41.053 0 00-.39-3.114 29.925 29.925 0 00-5.199 2.801 2.25 2.25 0 01-2.514 0c-.41-.275-.826-.541-1.25-.797a6.985 6.985 0 01-1.084 3.45 26.503 26.503 0 00-1.281-.78A5.487 5.487 0 006 12v-.54z" clip-rule="evenodd" />`,
  18. cloudArrowUp: `<path fill-rule="evenodd" d="M5.5 17a4.5 4.5 0 01-1.44-8.765 4.5 4.5 0 018.302-3.046 3.5 3.5 0 014.504 4.272A4 4 0 0115 17H5.5zm3.75-2.75a.75.75 0 001.5 0V9.66l1.95 2.1a.75.75 0 101.1-1.02l-3.25-3.5a.75.75 0 00-1.1 0l-3.25 3.5a.75.75 0 101.1 1.02l1.95-2.1v4.59z" clip-rule="evenodd" />`,
  19. tsLogo: `<rect fill="#3178c6" height="128" rx="6" width="128"></rect><path clip-rule="evenodd" d="m74.2622 99.468v14.026c2.2724 1.168 4.9598 2.045 8.0625 2.629 3.1027.585 6.3728.877 9.8105.877 3.3503 0 6.533-.321 9.5478-.964 3.016-.643 5.659-1.702 7.932-3.178 2.272-1.476 4.071-3.404 5.397-5.786 1.325-2.381 1.988-5.325 1.988-8.8313 0-2.5421-.379-4.7701-1.136-6.6841-.758-1.9139-1.85-3.6159-3.278-5.1062-1.427-1.4902-3.139-2.827-5.134-4.0104-1.996-1.1834-4.246-2.3011-6.752-3.353-1.8352-.7597-3.4812-1.4975-4.9378-2.2134-1.4567-.7159-2.6948-1.4464-3.7144-2.1915-1.0197-.7452-1.8063-1.5341-2.3598-2.3669-.5535-.8327-.8303-1.7751-.8303-2.827 0-.9643.2476-1.8336.7429-2.6079s1.1945-1.4391 2.0976-1.9943c.9031-.5551 2.0101-.9861 3.3211-1.2929 1.311-.3069 2.7676-.4603 4.3699-.4603 1.1658 0 2.3958.0877 3.6928.263 1.296.1753 2.6.4456 3.911.8109 1.311.3652 2.585.8254 3.824 1.3806 1.238.5552 2.381 1.198 3.43 1.9285v-13.1051c-2.127-.8182-4.45-1.4245-6.97-1.819s-5.411-.5917-8.6744-.5917c-3.3211 0-6.4674.3579-9.439 1.0738-2.9715.7159-5.5862 1.8336-7.844 3.353-2.2578 1.5195-4.0422 3.4553-5.3531 5.8075-1.311 2.3522-1.9665 5.1646-1.9665 8.4373 0 4.1785 1.2017 7.7433 3.6052 10.6945 2.4035 2.9513 6.0523 5.4496 10.9466 7.495 1.9228.7889 3.7145 1.5633 5.375 2.323 1.6606.7597 3.0954 1.5486 4.3044 2.3668s2.1628 1.7094 2.8618 2.6736c.7.9643 1.049 2.06 1.049 3.2873 0 .9062-.218 1.7462-.655 2.5202s-1.1 1.446-1.9885 2.016c-.8886.57-1.9956 1.016-3.3212 1.337-1.3255.321-2.8768.482-4.6539.482-3.0299 0-6.0305-.533-9.0021-1.6-2.9715-1.066-5.7245-2.666-8.2591-4.799zm-23.5596-34.9136h18.2974v-11.5544h-51v11.5544h18.2079v51.4456h14.4947z" fill="#fff" fill-rule="evenodd"></path>`,
  20. graphqlLogo: `<path fill-rule="evenodd" fill="#e10098" clip-rule="evenodd" d="M50 6.90308L87.323 28.4515V71.5484L50 93.0968L12.677 71.5484V28.4515L50 6.90308ZM16.8647 30.8693V62.5251L44.2795 15.0414L16.8647 30.8693ZM50 13.5086L18.3975 68.2457H81.6025L50 13.5086ZM77.4148 72.4334H22.5852L50 88.2613L77.4148 72.4334ZM83.1353 62.5251L55.7205 15.0414L83.1353 30.8693V62.5251Z"></path><circle fill="#e10098" cx="50" cy="9.3209" r="8.82"></circle><circle fill="#e10098" cx="85.2292" cy="29.6605" r="8.82"></circle><circle fill="#e10098" cx="85.2292" cy="70.3396" r="8.82"></circle><circle fill="#e10098" cx="50" cy="90.6791" r="8.82"></circle><circle fill="#e10098" cx="14.7659" cy="70.3396" r="8.82"></circle><circle fill="#e10098" cx="14.7659" cy="29.6605" r="8.82"></circle>`,
  21. };
  22. /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
  23. const sidebars = {
  24. // By default, Docusaurus generates a sidebar from the docs folder structure
  25. learnSidebar: [
  26. {
  27. type: 'category',
  28. label: 'Getting Started',
  29. items: [
  30. 'guides/getting-started/installation/index',
  31. 'guides/getting-started/graphql-intro/index',
  32. 'guides/getting-started/try-the-api/index',
  33. ],
  34. customProps: {
  35. icon: icon.bolt,
  36. },
  37. },
  38. {
  39. type: 'category',
  40. label: 'Core Concepts',
  41. items: [{ type: 'autogenerated', dirName: 'guides/core-concepts' }],
  42. customProps: {
  43. icon: icon.puzzle,
  44. },
  45. },
  46. {
  47. type: 'category',
  48. label: 'Developer Guide',
  49. items: [
  50. {
  51. type: 'html',
  52. value: 'Overview',
  53. className: 'sidebar-section-header',
  54. },
  55. 'guides/developer-guide/overview/index',
  56. 'guides/developer-guide/the-api-layer/index',
  57. 'guides/developer-guide/the-service-layer/index',
  58. {
  59. type: 'html',
  60. value: 'Fundamentals',
  61. className: 'sidebar-section-header',
  62. },
  63. 'guides/developer-guide/cli/index',
  64. 'guides/developer-guide/configuration/index',
  65. 'guides/developer-guide/custom-fields/index',
  66. 'guides/developer-guide/error-handling/index',
  67. 'guides/developer-guide/events/index',
  68. 'guides/developer-guide/migrations/index',
  69. 'guides/developer-guide/plugins/index',
  70. 'guides/developer-guide/security/index',
  71. 'guides/developer-guide/strategies-configurable-operations/index',
  72. 'guides/developer-guide/testing/index',
  73. 'guides/developer-guide/updating/index',
  74. 'guides/developer-guide/worker-job-queue/index',
  75. {
  76. type: 'html',
  77. value: 'Extend',
  78. className: 'sidebar-section-header',
  79. },
  80. 'guides/developer-guide/rest-endpoint/index',
  81. 'guides/developer-guide/custom-permissions/index',
  82. 'guides/developer-guide/database-entity/index',
  83. 'guides/developer-guide/extend-graphql-api/index',
  84. {
  85. type: 'html',
  86. value: 'Advanced Topics',
  87. className: 'sidebar-section-header',
  88. },
  89. 'guides/developer-guide/db-subscribers/index',
  90. 'guides/developer-guide/importing-data/index',
  91. 'guides/developer-guide/logging/index',
  92. {
  93. type: 'category',
  94. label: 'Migrating from v1',
  95. items: [{ type: 'autogenerated', dirName: 'guides/developer-guide/migrating-from-v1' }],
  96. },
  97. 'guides/developer-guide/stand-alone-scripts/index',
  98. 'guides/developer-guide/translations/index',
  99. 'guides/developer-guide/uploading-files/index',
  100. 'guides/developer-guide/nest-devtools/index',
  101. ],
  102. customProps: {
  103. icon: icon.angleBrackets,
  104. },
  105. },
  106. {
  107. type: 'category',
  108. label: 'How-to Guides',
  109. items: [{ type: 'autogenerated', dirName: 'guides/how-to' }],
  110. customProps: {
  111. icon: icon.book,
  112. },
  113. },
  114. {
  115. type: 'category',
  116. label: 'Extending the Admin UI',
  117. customProps: {
  118. icon: icon.computer,
  119. },
  120. items: [
  121. 'guides/extending-the-admin-ui/getting-started/index',
  122. 'guides/extending-the-admin-ui/ui-library/index',
  123. 'guides/extending-the-admin-ui/admin-ui-theming-branding/index',
  124. 'guides/extending-the-admin-ui/adding-ui-translations/index',
  125. 'guides/extending-the-admin-ui/using-other-frameworks/index',
  126. {
  127. type: 'html',
  128. value: 'Providers',
  129. className: 'sidebar-section-header',
  130. },
  131. 'guides/extending-the-admin-ui/nav-menu/index',
  132. 'guides/extending-the-admin-ui/alerts/index',
  133. 'guides/extending-the-admin-ui/add-actions-to-pages/index',
  134. 'guides/extending-the-admin-ui/page-tabs/index',
  135. 'guides/extending-the-admin-ui/custom-form-inputs/index',
  136. 'guides/extending-the-admin-ui/custom-data-table-components/index',
  137. 'guides/extending-the-admin-ui/custom-detail-components/index',
  138. 'guides/extending-the-admin-ui/bulk-actions/index',
  139. 'guides/extending-the-admin-ui/dashboard-widgets/index',
  140. 'guides/extending-the-admin-ui/custom-timeline-components/index',
  141. {
  142. type: 'html',
  143. value: 'Routes',
  144. className: 'sidebar-section-header',
  145. },
  146. 'guides/extending-the-admin-ui/defining-routes/index',
  147. 'guides/extending-the-admin-ui/creating-list-views/index',
  148. 'guides/extending-the-admin-ui/creating-detail-views/index',
  149. ],
  150. },
  151. {
  152. type: 'category',
  153. label: 'Building a Storefront',
  154. customProps: {
  155. icon: icon.shoppingBag,
  156. },
  157. items: [
  158. 'guides/storefront/storefront-starters/index',
  159. 'guides/storefront/connect-api/index',
  160. 'guides/storefront/codegen/index',
  161. {
  162. type: 'html',
  163. value: 'Storefront Tasks',
  164. className: 'sidebar-section-header',
  165. },
  166. 'guides/storefront/navigation-menu/index',
  167. 'guides/storefront/listing-products/index',
  168. 'guides/storefront/product-detail/index',
  169. 'guides/storefront/active-order/index',
  170. 'guides/storefront/checkout-flow/index',
  171. 'guides/storefront/customer-accounts/index',
  172. ],
  173. },
  174. {
  175. type: 'category',
  176. label: 'Deployment',
  177. customProps: {
  178. icon: icon.cloudArrowUp,
  179. },
  180. items: [
  181. 'guides/deployment/production-configuration/index',
  182. 'guides/deployment/using-docker',
  183. 'guides/deployment/horizontal-scaling',
  184. 'guides/deployment/getting-data-into-production',
  185. 'guides/deployment/server-resource-requirements',
  186. 'guides/deployment/deploying-admin-ui',
  187. {
  188. type: 'html',
  189. value: 'Deployment Guides',
  190. className: 'sidebar-section-header',
  191. },
  192. 'guides/deployment/deploy-to-northflank/index',
  193. 'guides/deployment/deploy-to-digital-ocean-app-platform/index',
  194. 'guides/deployment/deploy-to-railway/index',
  195. 'guides/deployment/deploy-to-render/index',
  196. 'guides/deployment/deploy-to-google-cloud-run/index',
  197. ],
  198. },
  199. ],
  200. referenceSidebar: [
  201. {
  202. type: 'doc',
  203. id: 'reference/index',
  204. className: 'reference-index',
  205. customProps: {
  206. icon: icon.book,
  207. },
  208. },
  209. {
  210. type: 'category',
  211. label: 'TypeScript API',
  212. items: [{ type: 'autogenerated', dirName: 'reference/typescript-api' }],
  213. customProps: {
  214. viewBox: '0 0 128 128',
  215. icon: icon.tsLogo,
  216. },
  217. },
  218. {
  219. type: 'category',
  220. label: 'Core Plugins',
  221. link: { type: 'doc', id: 'reference/core-plugins/index' },
  222. customProps: {
  223. viewBox: '0 0 128 128',
  224. icon: icon.tsLogo,
  225. },
  226. items: [
  227. {
  228. type: 'category',
  229. label: 'AdminUiPlugin',
  230. link: { type: 'doc', id: 'reference/core-plugins/admin-ui-plugin/index' },
  231. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/admin-ui-plugin' }],
  232. },
  233. {
  234. type: 'category',
  235. label: 'AssetServerPlugin',
  236. link: { type: 'doc', id: 'reference/core-plugins/asset-server-plugin/index' },
  237. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/asset-server-plugin' }],
  238. },
  239. {
  240. type: 'category',
  241. label: 'ElasticsearchPlugin',
  242. link: { type: 'doc', id: 'reference/core-plugins/elasticsearch-plugin/index' },
  243. items: [
  244. { type: 'autogenerated', dirName: 'reference/core-plugins/elasticsearch-plugin' },
  245. ],
  246. },
  247. {
  248. type: 'category',
  249. label: 'EmailPlugin',
  250. link: { type: 'doc', id: 'reference/core-plugins/email-plugin/index' },
  251. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/email-plugin' }],
  252. },
  253. {
  254. type: 'category',
  255. label: 'HardenPlugin',
  256. link: { type: 'doc', id: 'reference/core-plugins/harden-plugin/index' },
  257. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/harden-plugin' }],
  258. },
  259. {
  260. type: 'category',
  261. label: 'JobQueuePlugin',
  262. link: { type: 'doc', id: 'reference/core-plugins/job-queue-plugin/index' },
  263. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/job-queue-plugin' }],
  264. },
  265. {
  266. type: 'category',
  267. label: 'PaymentsPlugin',
  268. link: { type: 'doc', id: 'reference/core-plugins/payments-plugin/index' },
  269. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/payments-plugin' }],
  270. },
  271. {
  272. type: 'category',
  273. label: 'SentryPlugin',
  274. link: { type: 'doc', id: 'reference/core-plugins/sentry-plugin/index' },
  275. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/sentry-plugin' }],
  276. },
  277. {
  278. type: 'category',
  279. label: 'StellatePlugin',
  280. link: { type: 'doc', id: 'reference/core-plugins/stellate-plugin/index' },
  281. items: [{ type: 'autogenerated', dirName: 'reference/core-plugins/stellate-plugin' }],
  282. },
  283. ],
  284. },
  285. {
  286. type: 'category',
  287. label: 'GraphQL API',
  288. items: [
  289. {
  290. type: 'category',
  291. label: 'Admin API',
  292. items: [{ type: 'autogenerated', dirName: 'reference/graphql-api/admin' }],
  293. },
  294. {
  295. type: 'category',
  296. label: 'Shop API',
  297. items: [{ type: 'autogenerated', dirName: 'reference/graphql-api/shop' }],
  298. },
  299. ],
  300. customProps: {
  301. viewBox: '0 0 100 100',
  302. icon: icon.graphqlLogo,
  303. },
  304. },
  305. {
  306. type: 'category',
  307. label: 'Admin UI API',
  308. items: [{ type: 'autogenerated', dirName: 'reference/admin-ui-api' }],
  309. customProps: {
  310. icon: icon.computer,
  311. },
  312. },
  313. ],
  314. userGuideSidebar: [
  315. {
  316. type: 'doc',
  317. id: 'user-guide/index',
  318. className: 'reference-index',
  319. },
  320. {
  321. type: 'category',
  322. label: 'Catalog',
  323. items: [{ type: 'autogenerated', dirName: 'user-guide/catalog' }],
  324. },
  325. {
  326. type: 'category',
  327. label: 'Orders',
  328. items: [{ type: 'autogenerated', dirName: 'user-guide/orders' }],
  329. },
  330. {
  331. type: 'category',
  332. label: 'Customers',
  333. items: [{ type: 'autogenerated', dirName: 'user-guide/customers' }],
  334. },
  335. {
  336. type: 'category',
  337. label: 'Promotions',
  338. items: [{ type: 'autogenerated', dirName: 'user-guide/promotions' }],
  339. },
  340. {
  341. type: 'category',
  342. label: 'Settings',
  343. items: [{ type: 'autogenerated', dirName: 'user-guide/settings' }],
  344. },
  345. ],
  346. };
  347. module.exports = sidebars;