From d8ea041c56de7ffa054ff99e9e113a7b65a48b8d Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Thu, 29 Jan 2026 08:38:36 -0800 Subject: [PATCH] docs: introduce versioned docs and migrate to fuma (#11166) ## Todos for release - [x] Configure Env in docs project on vercel - [x] Configure Root Path in the docs project on vercel - [ ] Remove old CSP https://github.com/zitadel/website/pull/1592 ## What we did This pull request migrates the project documentation from the old `docs/` directory to the new `apps/docs/` directory, introduces a new documentation system built with Next.js and Fumadocs, and updates all relevant references, configuration files, and documentation to reflect this change. It also adds new configuration and ignore files for the new documentation app, updates CI and linting to exclude the new docs from certain checks, and revises the contributing guidelines accordingly. **Documentation System Migration and New Docs App** * Migrated all documentation from `docs/` to `apps/docs/`, and updated all references in `README.md`, `CONTRIBUTING.md`, and other files to point to the new location. [[1]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L585-L640) [[2]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L660-R607) [[3]](diffhunk://#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055L740-R687) [[4]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L2-R3) [[5]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L30-R30) * Added a new Next.js/Fumadocs-based documentation app under `apps/docs/`, including core app files, layouts, routing, search API, and a comprehensive `README.md` with development and contribution instructions. [[1]](diffhunk://#diff-5a1b07344a2c1b4d3f37b23ff1388b62cd9f57dea3c1cd23d8a0412b7602b132R1-R74) [[2]](diffhunk://#diff-462b9ad1eabbb7d1c29bb9c36e4931eb180fd7190900e6d2babf8f4d66ad1c28R1-R39) [[3]](diffhunk://#diff-e16ae25660ded787b10ac35dea96d5ecaacf895dae0afc8a9bd4382dc79a8c87R1-R7) [apps/docs/app/[[...slug]]/layout.tsxR1-R81](diffhunk://#diff-59e08acde4e805b7aeccef1dcf98f1d71dfc550777e6b9402085cee0e9fa4e0aR1-R81), [apps/docs/app/[[...slug]]/page.tsxR1-R79](diffhunk://#diff-e5df3f80d0fa01e12d63d81f29c57a9d14e846c78fd3beabb2ef768e38fd9580R1-R79), [[4]](diffhunk://#diff-389b34918e040cacaa87cd7201ffa462cc2b0b716736f537e3d3c660ac69353bR1-R7) [[5]](diffhunk://#diff-d3b03416d1c457b19f1c27b26f2db741412df841b875c26ccadc36e4522247f4R1-R29) [[6]](diffhunk://#diff-c8fb8339570a5305809be7c618e14705fd86390dc278e6ce8ba224a7bc8b0c3cR1-R25) **Configuration and Tooling Updates** * Updated `.github/workflows/codeql.yml`, `.golangci.yaml`, and `.github/dependabot.yml` to properly handle the new docs app: excluded `apps/docs` from certain checks, added npm dependency updates for the docs app, and excluded generated content. [[1]](diffhunk://#diff-12783128521e452af0cfac94b99b8d250413c516ec71fe6d97dbea666ff7ba27L8-R14) [[2]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R5-R6) [[3]](diffhunk://#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5R126-R129) [[4]](diffhunk://#diff-dd4fbda47e51f1e35defb9275a9cd9c212ecde0b870cba89ddaaae65c5f3cd28R89-R106) * Updated `.devcontainer/devcontainer.json` to use the latest Go 1.25.3 version for consistency. **Licensing and Miscellaneous** * Added `apps/docs/` to the list of licensed directories in `LICENSING.md`. These changes ensure the documentation is now maintained in a modern, scalable system and all project tooling is updated to support the new structure. --------- Co-authored-by: Federico Coppede --- .devcontainer/devcontainer.json | 2 +- .github/dependabot.yml | 18 + .github/workflows/codeql.yml | 4 +- .gitignore | 15 +- .golangci.yaml | 6 + .nxignore | 2 + CONTRIBUTING.md | 63 +- LICENSING.md | 1 + README.md | 6 +- apps/api/project.json | 96 +- apps/docs/.gitignore | 39 + apps/docs/README.md | 83 + apps/docs/app/(home)/layout.tsx | 7 + apps/docs/app/[[...slug]]/layout.tsx | 81 + apps/docs/app/[[...slug]]/page.tsx | 79 + apps/docs/app/api/search/route.ts | 7 + apps/docs/app/global.css | 408 + apps/docs/app/layout.config.tsx | 29 + apps/docs/app/layout.tsx | 25 + apps/docs/app/llms-full.txt/route.ts | 10 + apps/docs/app/og/docs/[...slug]/route.tsx | 28 + apps/docs/app/providers.tsx | 26 + apps/docs/app/sitemap.ts | 27 + apps/docs/buf.gen.yaml | 6 + .../docs/components/PermissionTable/index.jsx | 111 + apps/docs/components/api-page.client.tsx | 4 + apps/docs/components/api-page.tsx | 27 + .../src => apps/docs}/components/apicard.jsx | 2 +- {docs/src => apps/docs}/components/b2b.jsx | 0 .../docs}/components/benchmark_chart.jsx | 1 + {docs/src => apps/docs}/components/column.jsx | 0 .../docs/components/docusaurus/admonition.tsx | 19 + .../components/docusaurus/browser-only.tsx | 12 + .../docs/components/docusaurus/code-block.tsx | 14 + .../components/docusaurus/doc-card-list.tsx | 30 + apps/docs/components/docusaurus/tabs.tsx | 58 + .../components/docusaurus/themed-image.tsx | 17 + apps/docs/components/feedback.tsx | 56 + .../docs}/components/frameworks.jsx | 2 +- apps/docs/components/inkeep-search.tsx | 71 + apps/docs/components/mixpanel-provider.tsx | 51 + .../docs}/components/pii_table.jsx | 38 +- apps/docs/components/plausible-provider.tsx | 17 + apps/docs/components/player.jsx | 37 + {docs/src => apps/docs}/components/tile.jsx | 2 +- apps/docs/components/version-selector.tsx | 93 + apps/docs/content/apis/_meta.json | 203 + .../content}/apis/actions/code-examples.mdx | 42 +- .../content/apis/actions/complement-token.mdx | 24 +- .../apis/actions/customize-samlresponse.mdx | 8 +- .../apis/actions/external-authentication.mdx | 90 +- .../apis/actions/internal-authentication.mdx | 60 +- .../content/apis/actions/introduction.mdx | 0 .../docs/content/apis/actions/modules.mdx | 42 +- .../docs/content/apis/actions/objects.mdx | 52 +- .../docs/content}/apis/apis/index.mdx | 4 +- .../docs/content/apis/assets/assets.mdx | 86 +- .../content}/apis/benchmarks/_template.mdx | 40 +- .../docs/content}/apis/benchmarks/index.mdx | 28 +- .../machine_jwt_profile_grant/index.mdx | 63 +- .../machine_jwt_profile_grant/output.json | 0 .../machine_jwt_profile_grant/index.mdx | 46 +- .../machine_jwt_profile_grant/output.json | 0 .../machine_jwt_profile_grant/index.mdx | 38 +- .../machine_jwt_profile_grant/output.json | 0 .../benchmarks/v2.70.0/oidc_session/index.mdx | 45 +- .../v2.70.0/oidc_session/output.json | 0 .../apis/benchmarks/v4/add_session/index.mdx | 31 +- .../benchmarks/v4/add_session/output.json | 0 .../v4/human_password_login/index.mdx | 33 +- .../v4/human_password_login/output.json | 0 .../apis/benchmarks/v4/introspect/index.mdx | 35 +- .../apis/benchmarks/v4/introspect/output.json | 0 .../index.mdx | 31 +- .../output.json | 0 .../v4/machine_jwt_profile_grant/index.mdx | 29 +- .../v4/machine_jwt_profile_grant/output.json | 0 .../benchmarks/v4/machine_pat_login/index.mdx | 33 +- .../v4/machine_pat_login/output.json | 0 .../benchmarks/v4/manipulate_user/index.mdx | 33 +- .../benchmarks/v4/manipulate_user/output.json | 0 .../apis/benchmarks/v4/oidc_session/index.mdx | 39 +- .../benchmarks/v4/oidc_session/output.json | 0 .../apis/benchmarks/v4/otp_session/index.mdx | 35 +- .../benchmarks/v4/otp_session/output.json | 0 .../benchmarks/v4/password_session/index.mdx | 35 +- .../v4/password_session/output.json | 0 .../apis/benchmarks/v4/user_info/index.mdx | 19 +- .../apis/benchmarks/v4/user_info/output.json | 0 .../docs/content}/apis/introduction.mdx | 84 +- .../docs/content}/apis/migration_v1_to_v2.mdx | 4 +- .../content/apis/observability/health.mdx | 8 +- .../content/apis/observability/metrics.mdx | 4 +- .../openidoauth/_token_exchange_request.mdx | 2 +- .../openidoauth/_token_exchange_response.mdx | 0 .../openidoauth/_token_exchange_types.mdx | 0 .../apis/openidoauth/authn-methods.mdx | 4 +- .../content}/apis/openidoauth/authrequest.mdx | 12 +- .../docs/content/apis/openidoauth/claims.mdx | 8 +- .../content}/apis/openidoauth/endpoints.mdx | 215 +- .../content/apis/openidoauth/grant-types.mdx | 10 +- .../docs/content/apis/openidoauth/scopes.mdx | 0 .../docs/content}/apis/proto/.gitignore | 0 .../docs/content/apis/saml/endpoints.mdx | 2 +- .../docs/content/apis/scim2.mdx | 1 - .../docs/content}/apis/statuscodes.mdx | 1 - {docs/docs => apps/docs/content}/apis/v2.mdx | 4 +- .../content/concepts/architecture/secrets.mdx | 41 +- .../concepts/architecture/software.mdx | 24 +- .../concepts/architecture/solution.mdx | 21 +- .../concepts/eventstore/implementation.mdx | 20 +- .../content/concepts/eventstore/overview.mdx | 2 +- .../concepts/features/account-linking.mdx | 8 +- .../content/concepts/features/actions.mdx | 8 +- .../content/concepts/features/actions_v2.mdx | 14 +- .../content/concepts/features/audit-trail.mdx | 26 +- .../content/concepts/features/console.mdx | 14 +- .../concepts/features/custom-domain.mdx | 2 +- .../concepts/features/external-user-grant.mdx | 6 +- .../concepts/features/identity-brokering.mdx | 12 +- apps/docs/content/concepts/features/index.mdx | 14 + .../content/concepts/features/passkeys.mdx | 9 +- .../content/concepts/features/selfservice.mdx | 12 +- apps/docs/content/concepts/index.mdx | 20 + .../docs/content/concepts/knowledge/index.mdx | 7 + .../concepts/knowledge/opaque-tokens.mdx | 4 +- .../docs/content/concepts/principles.mdx | 0 .../structure/_manager_description.mdx | 10 +- .../concepts/structure/_org_description.mdx | 4 +- .../structure/_project_description.mdx | 2 +- .../concepts/structure/applications.mdx | 15 +- .../concepts/structure/granted_projects.mdx | 2 +- .../docs/content/concepts/structure/index.mdx | 13 + .../content}/concepts/structure/instance.mdx | 9 +- .../content}/concepts/structure/managers.mdx | 7 +- .../concepts/structure/organizations.mdx | 5 +- .../content/concepts/structure/policies.mdx | 4 +- .../content/concepts/structure/projects.mdx | 9 +- .../docs/content/concepts/structure/users.mdx | 13 +- .../examples/identity-proxy/oauth2-proxy.mdx | 4 +- .../content}/examples/imports/_app_jwt.mdx | 22 +- .../examples/imports/_serviceuser_jwt.mdx | 25 +- .../examples/imports/_serviceuser_role.mdx | 18 +- .../examples/imports/_setup_django.mdx | 0 .../examples/imports/_setup_dotenv.mdx | 0 .../examples/imports/_setup_python.mdx | 2 +- .../examples/introduction/backend/index.mdx | 20 + .../examples/introduction/frontend/index.mdx | 18 + .../examples/introduction/fullstack/index.mdx | 16 + .../content/examples/introduction/index.mdx | 19 + .../examples/introduction/mobile/index.mdx | 15 + .../examples/introduction/webapp/index.mdx | 18 + .../docs/content/examples/login/angular.mdx | 10 +- .../docs/content/examples/login/flutter.mdx | 6 +- .../docs/content/examples/login/go.mdx | 13 +- .../content/examples/login/java-spring.mdx | 27 +- .../content/examples/login/nextjs-b2b.mdx | 4 +- .../docs/content/examples/login/nextjs.mdx | 3 +- .../content}/examples/login/python-django.mdx | 32 +- .../docs/content/examples/login/react.mdx | 16 +- .../docs/content/examples/login/symfony.mdx | 46 +- .../docs/content}/examples/login/vue.mdx | 20 +- .../docs/content/examples/secure-api/go.mdx | 26 +- .../examples/secure-api/java-spring.mdx | 28 +- .../examples/secure-api/nodejs-nestjs.mdx | 8 +- .../content}/examples/secure-api/pylon.mdx | 21 +- .../examples/secure-api/python-django.mdx | 17 +- .../examples/secure-api/python-flask.mdx | 71 +- .../guides/integrate/actions/go/json.go | 2 + .../guides/integrate/actions/go/jwe.go | 4 +- .../guides/integrate/actions/go/jwt.go | 4 +- .../integrate/actions/migrate-from-v1.mdx | 8 +- .../integrate/actions/testing-event.mdx | 26 +- .../actions/testing-function-manipulation.mdx | 26 +- .../integrate/actions/testing-function.mdx | 26 +- .../actions/testing-request-manipulation.mdx | 28 +- .../actions/testing-request-signature.mdx | 38 +- .../integrate/actions/testing-request.mdx | 30 +- .../actions/testing-response-manipulation.mdx | 30 +- .../integrate/actions/testing-response.mdx | 28 +- .../guides/integrate/actions/usage.mdx | 30 +- .../integrate/actions/webhook-site-setup.mdx | 10 +- .../integrate/application/_application.mdx | 12 +- .../integrate/application/_auth-type.mdx | 5 +- .../integrate/application/_generate-key.mdx | 2 +- .../integrate/application/_redirect-uris.mdx | 6 +- .../integrate/application/_review-config.mdx | 2 +- .../authenticated-mongodb-charts.mdx | 18 +- .../guides/integrate/back-channel-logout.mdx | 23 +- .../guides/integrate/external-audit-log.mdx | 12 +- .../identity-providers/_activate.mdx | 4 +- .../_custom_login_policy.mdx | 7 +- .../_general_config_description.mdx | 4 +- .../identity-providers/_generic_oauth.mdx | 0 .../_how_ldap_idp_works.mdx | 0 .../identity-providers/_idps_overview.mdx | 4 +- .../integrate/identity-providers/_intro.mdx | 4 +- .../identity-providers/_prefill_action.mdx | 1 - .../identity-providers/_test_setup.mdx | 0 .../identity-providers/_unlinked_oauth.mdx | 2 +- .../additional-information.mdx | 6 +- .../integrate/identity-providers/apple.mdx | 22 +- .../identity-providers/azure-ad-oidc.mdx | 30 +- .../identity-providers/azure-ad-saml.mdx | 36 +- .../identity-providers/generic-oidc.mdx | 16 +- .../integrate/identity-providers/github.mdx | 30 +- .../integrate/identity-providers/gitlab.mdx | 30 +- .../integrate/identity-providers/google.mdx | 30 +- .../identity-providers/introduction.mdx | 57 +- .../integrate/identity-providers/jwt_idp.mdx | 53 +- .../integrate/identity-providers/keycloak.mdx | 26 +- .../integrate/identity-providers/ldap.mdx | 29 +- .../identity-providers/linkedin_oauth.mdx | 27 +- .../integrate/identity-providers/migrate.mdx | 10 +- .../integrate/identity-providers/mocksaml.mdx | 30 +- .../identity-providers/okta-oidc.mdx | 24 +- .../identity-providers/okta_saml.mdx | 41 +- .../identity-providers/onelogin-saml.mdx | 60 +- .../integrate/identity-providers/openldap.mdx | 36 +- .../identity-providers/pingfederate-saml.mdx | 42 +- apps/docs/content/guides/integrate/index.mdx | 19 + .../login-ui/_browser_register_webauthn.mdx | 2 +- .../login-ui/_browser_signin_webauthn.mdx | 1 - .../integrate/login-ui/_list-mfa-options.mdx | 4 +- .../guides/integrate/login-ui/_logout.mdx | 3 +- .../integrate/login-ui/_select-account.mdx | 3 +- .../login-ui/_update_session_webauthn.mdx | 5 +- .../guides/integrate/login-ui/device-auth.mdx | 18 +- .../integrate/login-ui/external-login.mdx | 16 +- .../guides/integrate/login-ui/index.mdx | 26 + .../guides/integrate/login-ui/login-app.mdx | 12 +- .../guides/integrate/login-ui/logout.mdx | 2 +- .../guides/integrate/login-ui/mfa.mdx | 59 +- .../integrate/login-ui/oidc-standard.mdx | 18 +- .../guides/integrate/login-ui/passkey.mdx | 22 +- .../integrate/login-ui/password-reset.mdx | 15 +- .../integrate/login-ui/saml-standard.mdx | 15 +- .../integrate/login-ui/select-account.mdx | 2 +- .../integrate/login-ui/session-validation.mdx | 14 +- .../integrate/login-ui/username-password.mdx | 27 +- .../integrate/login/_prevent-lockout.mdx | 4 +- .../guides/integrate/login/hosted-login.mdx | 76 +- .../content/guides/integrate/login/index.mdx | 17 + .../guides/integrate/login/login-users.mdx | 38 +- .../integrate/login/oidc/_authmethods.mdx | 39 +- .../integrate/login/oidc/authmethods.mdx | 9 + .../login/oidc/authmethods/_basic.mdx | 6 +- .../login/oidc/authmethods/_implicit.mdx | 10 +- .../login/oidc/authmethods/_jwtpk.mdx | 6 +- .../login/oidc/authmethods/_pkce.mdx | 6 +- .../login/oidc/authmethods/_pkcenative.mdx | 6 +- .../login/oidc/device-authorization.mdx | 11 +- .../guides/integrate/login/oidc/index.mdx | 25 + .../integrate/login/oidc/login-users.mdx | 22 +- .../guides/integrate/login/oidc/logout.mdx | 16 +- .../login/oidc/oauth-recommended-flows.mdx | 4 +- .../guides/integrate/login/oidc/webkeys.mdx | 16 +- .../content/guides/integrate/login/saml.mdx | 20 +- .../onboarding/_org_login_description.mdx | 2 +- .../guides/integrate/onboarding/b2b.mdx | 49 +- .../guides/integrate/onboarding/end-users.mdx | 27 +- .../guides/integrate/onboarding/index.mdx | 17 + .../guides/integrate/retrieve-user-roles.mdx | 98 +- .../guides/integrate/scim-okta-guide.mdx | 7 +- .../authenticate-service-users.mdx | 21 +- .../service-users/client-credentials.mdx | 23 +- .../service-users/personal-access-token.mdx | 14 +- .../service-users/private-key-jwt.mdx | 27 +- .../integrate/services/atlassian-saml.mdx | 20 +- .../guides/integrate/services/auth0-oidc.mdx | 16 +- .../guides/integrate/services/auth0-saml.mdx | 18 +- .../guides/integrate/services/aws-saml.mdx | 12 +- .../integrate/services/cloudflare-oidc.mdx | 10 +- .../guides/integrate/services/gitlab-saml.mdx | 20 +- .../integrate/services/gitlab-self-hosted.mdx | 3 +- .../integrate/services/google-cloud.mdx | 36 +- .../integrate/services/google-workspace.mdx | 38 +- .../guides/integrate/services/index.mdx | 31 + .../integrate/services/pingidentity-saml.mdx | 18 +- .../guides/integrate/token-exchange.mdx | 59 +- .../_introspection-response.mdx | 5 +- .../token-introspection/basic-auth.mdx | 25 +- .../integrate/token-introspection/index.mdx | 17 +- .../token-introspection/private-key-jwt.mdx | 34 +- .../guides/integrate/tools/apache2.mdx | 8 +- .../zitadel-apis/_accessing_zitadel_api.mdx | 6 +- .../zitadel-apis/access-zitadel-apis.mdx | 38 +- .../access-zitadel-system-api.mdx | 17 +- .../integrate/zitadel-apis/event-api.mdx | 16 +- .../example-zitadel-api-with-dot-net.mdx | 8 +- .../example-zitadel-api-with-go.mdx | 7 +- .../content/guides/manage/cloud/billing.mdx | 11 +- .../content/guides/manage/cloud/egress.mdx | 19 +- .../content/guides/manage/cloud/instances.mdx | 18 +- .../guides/manage/cloud/overview/index.mdx | 19 + .../content/guides/manage/cloud/settings.mdx | 15 +- .../content/guides/manage/cloud/start.mdx | 6 +- .../content/guides/manage/cloud/support.mdx | 34 + .../content/guides/manage/cloud/users.mdx | 7 +- .../guides/manage/console/_add_manager.mdx | 2 +- .../manage/console/_application-types.mdx | 2 +- .../guides/manage/console/_create-user.mdx | 25 +- .../manage/console/actions-overview.mdx | 1 - .../guides/manage/console/actions.mdx | 0 .../manage/console/applications-overview.mdx | 38 +- .../guides/manage/console/applications.mdx | 21 +- .../manage/console/console-overview.mdx | 18 +- .../manage/console/default-settings.mdx | 28 +- .../guides/manage/console/managers.mdx | 14 +- .../manage/console/organizations-overview.mdx | 26 +- .../guides/manage/console/organizations.mdx | 31 +- .../guides/manage/console/overview.mdx | 2 +- .../manage/console/projects-overview.mdx | 12 +- .../guides/manage/console/projects.mdx | 8 +- .../content}/guides/manage/console/roles.mdx | 2 +- .../guides/manage/console/users-overview.mdx | 12 +- .../content}/guides/manage/console/users.mdx | 6 +- .../guides/manage/customize/behavior.mdx | 5 +- .../guides/manage/customize/branding.mdx | 4 +- .../customize/notification-providers.mdx | 29 +- .../guides/manage/customize/restrictions.mdx | 2 +- .../content/guides/manage/customize/texts.mdx | 20 +- .../guides/manage/customize/user-metadata.mdx | 55 +- .../guides/manage/terraform-provider.mdx | 10 +- .../guides/manage/user/reg-create-user.mdx | 4 +- .../docs/content/guides/manage/user/scim2.mdx | 12 +- .../content/guides/migrate/introduction.mdx | 26 +- .../content/guides/migrate/sources/auth0.mdx | 27 +- .../guides/migrate/sources/keycloak.mdx | 10 +- .../guides/migrate/sources/zitadel.mdx | 28 +- .../docs/content/guides/migrate/users.mdx | 49 +- .../guides/solution-scenarios/b2b.mdx | 10 +- .../guides/solution-scenarios/b2c.mdx | 10 +- .../solution-scenarios/configurations.mdx | 30 +- .../solution-scenarios/domain-discovery.mdx | 44 +- .../frontend-calling-backend-API.mdx | 12 +- .../guides/solution-scenarios/index.mdx | 9 + .../solution-scenarios/introduction/index.mdx | 19 + .../solution-scenarios/restrict-console.mdx | 23 +- .../guides/solution-scenarios/saas.mdx | 10 +- .../content}/guides/start/_local_instance.mdx | 2 +- .../docs/content}/guides/start/quickstart.mdx | 54 +- .../docs/content/imports/_code-flow-chart.mdx | 2 +- apps/docs/content/index.mdx | 127 + .../docs/content}/legal/_piid-table.mdx | 4 +- .../content}/legal/annex-support-services.mdx | 4 +- .../legal/data-processing-agreement.mdx | 54 +- apps/docs/content/legal/index.mdx | 20 + .../legal/policies/acceptable-use-policy.mdx | 4 +- .../legal/policies/account-lockout-policy.mdx | 12 +- .../legal/policies/brand-trademark-policy.mdx | 0 .../policies/feature-development-policy.mdx | 0 apps/docs/content/legal/policies/index.mdx | 15 + .../legal/policies/privacy-policy.mdx | 54 +- .../legal/policies/rate-limit-policy.mdx | 10 +- .../vulnerability-disclosure-policy.mdx | 4 +- .../cloud-service-description.mdx | 14 +- .../legal/service-description/index.mdx | 16 + .../service-level-description.mdx | 2 +- .../service-description/support-services.mdx | 21 +- .../docs/content/legal/subprocessors.mdx | 2 +- .../docs/content/legal/terms-of-service.mdx | 16 +- .../docs/content}/product/_beta-ga.mdx | 2 +- .../content}/product/_breaking-changes.mdx | 2 +- .../docs/content}/product/_deprecated.mdx | 2 +- .../docs/content}/product/_new-feature.mdx | 2 +- .../docs/content}/product/_sdk_v3.mdx | 2 +- .../docs/content}/product/release-cycle.mdx | 6 +- .../docs/content}/product/roadmap.mdx | 124 +- .../docs/content}/sdk-examples/angular.mdx | 4 +- apps/docs/content/sdk-examples/astro.mdx | 83 + .../client-libraries/_category_.json | 0 .../sdk-examples/client-libraries/java.mdx | 22 +- .../sdk-examples/client-libraries/node.mdx | 7 +- .../sdk-examples/client-libraries/php.mdx | 5 +- .../sdk-examples/client-libraries/python.mdx | 5 +- .../sdk-examples/client-libraries/ruby.mdx | 4 +- .../docs/content}/sdk-examples/django.mdx | 0 .../docs/content}/sdk-examples/expressjs.mdx | 2 +- .../docs/content}/sdk-examples/fastapi.mdx | 0 .../docs/content}/sdk-examples/fastify.mdx | 2 +- .../docs/content}/sdk-examples/flask.mdx | 0 .../docs/content}/sdk-examples/flutter.mdx | 10 +- .../docs/content}/sdk-examples/go.mdx | 13 +- .../docs/content}/sdk-examples/hono.mdx | 0 .../content}/sdk-examples/introduction.mdx | 11 +- .../docs/content}/sdk-examples/java.mdx | 11 +- .../docs/content}/sdk-examples/laravel.mdx | 0 .../docs/content}/sdk-examples/nestjs.mdx | 6 +- .../docs/content}/sdk-examples/nextjs.mdx | 4 +- .../docs/content}/sdk-examples/nuxtjs.mdx | 2 +- .../docs/content}/sdk-examples/qwik.mdx | 4 +- apps/docs/content/sdk-examples/react.mdx | 84 + .../docs/content}/sdk-examples/solidstart.mdx | 8 +- .../docs/content}/sdk-examples/spring.mdx | 0 .../docs/content}/sdk-examples/sveltekit.mdx | 2 +- .../docs/content}/sdk-examples/symfony.mdx | 6 +- .../docs/content}/sdk-examples/vue.mdx | 6 +- .../content}/self-hosting/deploy/.gitignore | 0 .../self-hosting/deploy/_defaultuser.mdx | 0 .../self-hosting/deploy/_disclaimer.mdx | 2 +- .../content}/self-hosting/deploy/_next.mdx | 5 +- .../content}/self-hosting/deploy/compose.mdx | 32 +- .../self-hosting/deploy/devcontainer.mdx | 5 +- .../self-hosting/deploy/docker-compose.yaml | 2 +- .../self-hosting/deploy/kubernetes.mdx | 8 + .../content}/self-hosting/deploy/linux.mdx | 8 +- .../content}/self-hosting/deploy/macos.mdx | 9 +- .../content}/self-hosting/deploy/overview.mdx | 4 +- .../troubleshooting/_instance_not_found.mdx | 4 +- .../_note_instance_not_found.mdx | 6 +- .../troubleshooting/_upstream_header.mdx | 4 +- .../troubleshooting/troubleshooting.mdx | 15 + .../content}/self-hosting/manage/.gitignore | 0 .../content/self-hosting/manage/cache.mdx | 40 +- .../self-hosting/manage/cli/mirror.mdx | 14 +- .../self-hosting/manage/cli/overview.mdx | 10 +- .../self-hosting/manage/configure/.gitignore | 0 .../manage/configure/_compose.mdx | 31 +- .../self-hosting/manage/configure/_helm.mdx | 0 .../manage/configure/_linuxunix.mdx | 39 +- .../self-hosting/manage/configure/_login.mdx | 0 .../manage/configure/configure.mdx | 62 +- .../manage/configure/docker-compose.yaml | 0 .../example-skip-superuser-queries.yaml | 0 .../configure/example-zitadel-config.yaml | 0 .../configure/example-zitadel-init-steps.yaml | 0 .../configure/example-zitadel-secrets.yaml | 0 .../self-hosting/manage/configure/index.mdx | 7 + .../self-hosting/manage/custom-domain.mdx | 5 +- .../manage/database/_postgres.mdx | 4 +- .../self-hosting/manage/database/index.mdx | 31 +- .../content}/self-hosting/manage/http2.mdx | 0 .../self-hosting/manage/login-client.mdx | 8 +- .../self-hosting/manage/metrics/overview.mdx | 17 +- .../manage/metrics/prometheus.mdx | 18 +- .../self-hosting/manage/production.mdx | 46 +- .../manage/productionchecklist.mdx | 25 +- .../manage/reverseproxy/_proxy_guide_more.mdx | 0 .../reverseproxy/_proxy_guide_overview.mdx | 8 +- .../reverseproxy/_proxy_guide_tls_mode.mdx | 16 +- .../reverseproxy/caddy/disabled-tls.Caddyfile | 0 .../reverseproxy/caddy/docker-compose.yaml | 0 .../reverseproxy/caddy/enabled-tls.Caddyfile | 0 .../reverseproxy/caddy/external-tls.Caddyfile | 0 .../manage/reverseproxy/caddy/index.mdx | 32 + .../manage/reverseproxy/cloudflare/index.mdx | 4 +- .../reverseproxy/cloudflare_tunnel/index.mdx | 3 +- .../manage/reverseproxy/docker-compose.yaml | 0 .../reverseproxy/httpd/docker-compose.yaml | 0 .../httpd/httpd-disabled-tls.conf | 0 .../reverseproxy/httpd/httpd-enabled-tls.conf | 0 .../httpd/httpd-external-tls.conf | 0 .../manage/reverseproxy/httpd/index.mdx | 28 + .../reverseproxy/nginx/docker-compose.yaml | 0 .../manage/reverseproxy/nginx/index.mdx | 32 + .../nginx/nginx-disabled-tls.conf | 0 .../reverseproxy/nginx/nginx-enabled-tls.conf | 0 .../nginx/nginx-external-tls.conf | 0 .../manage/reverseproxy/reverse_proxy.mdx | 2 - .../reverseproxy/traefik/docker-compose.yaml | 0 .../manage/reverseproxy/traefik/index.mdx | 32 + .../traefik/traefik-disabled-tls.yaml | 0 .../traefik/traefik-enabled-tls.yaml | 0 .../traefik/traefik-external-tls.yaml | 0 .../reverseproxy/zitadel_cloud/index.mdx | 0 .../self-hosting/manage/service_ping.mdx | 10 +- .../self-hosting/manage/tls_modes.mdx | 4 +- .../self-hosting/manage/updating_scaling.mdx | 8 +- .../self-hosting/manage/usage_control.mdx | 21 +- .../docs/content/support/advisory/a10000.mdx | 6 +- .../docs/content/support/advisory/a10001.mdx | 2 +- .../docs/content/support/advisory/a10002.mdx | 4 +- .../docs/content/support/advisory/a10003.mdx | 12 +- .../docs/content/support/advisory/a10004.mdx | 4 +- .../docs/content/support/advisory/a10005.mdx | 4 +- .../docs/content/support/advisory/a10006.mdx | 2 +- .../docs/content/support/advisory/a10007.mdx | 4 +- .../docs/content/support/advisory/a10008.mdx | 2 +- .../docs/content/support/advisory/a10009.mdx | 0 .../docs/content/support/advisory/a10010.mdx | 0 .../docs/content/support/advisory/a10011.mdx | 2 +- .../docs/content/support/advisory/a10012.mdx | 0 .../docs/content/support/advisory/a10013.mdx | 4 +- .../docs/content/support/advisory/a10014.mdx | 8 +- .../docs/content/support/advisory/a10015.mdx | 2 +- .../docs/content/support/advisory/a10016.mdx | 1 - .../content}/support/technical_advisory.mdx | 6 +- .../docs/content}/support/troubleshooting.mdx | 22 +- .../src => apps/docs}/css/apicard.module.css | 0 {docs/src => apps/docs}/css/card.module.css | 8 +- apps/docs/css/custom.css | 287 + .../docs}/css/environment.module.css | 6 +- {docs/src => apps/docs}/css/list.module.css | 6 +- {docs/src => apps/docs}/css/tile.module.css | 4 +- apps/docs/eslint.config.mjs | 126 + {docs => apps/docs}/frameworks.json | 0 apps/docs/lib/custom-tree.ts | 246 + apps/docs/lib/layout.shared.tsx | 11 + apps/docs/lib/openapi.ts | 15 + apps/docs/lib/sidebar-data.ts | 1114 + apps/docs/lib/source.ts | 45 + apps/docs/mdx-components.tsx | 23 + apps/docs/next.config.mjs | 164 + apps/docs/package.json | 75 + apps/docs/postcss.config.mjs | 5 + apps/docs/project.json | 242 + .../img => apps/docs/public}/favicon.ico | Bin .../docs/public}/fonts/lato/Lato-Black.ttf | Bin .../public}/fonts/lato/Lato-BlackItalic.ttf | Bin .../docs/public}/fonts/lato/Lato-Bold.ttf | Bin .../public}/fonts/lato/Lato-BoldItalic.ttf | Bin .../docs/public}/fonts/lato/Lato-Italic.ttf | Bin .../docs/public}/fonts/lato/Lato-Light.ttf | Bin .../public}/fonts/lato/Lato-LightItalic.ttf | Bin .../docs/public}/fonts/lato/Lato-Regular.ttf | Bin .../docs/public}/fonts/lato/Lato-Thin.ttf | Bin .../public}/fonts/lato/Lato-ThinItalic.ttf | Bin .../static/img => apps/docs/public}/gigi.svg | 0 .../docs/public}/img/actions-v2/console.png | Bin .../public}/img/actions-v2/local-listener.png | Bin .../img/actions-v2/webhook-listener.png | Bin .../public}/img/actions-v2/webhook-url.png | Bin .../public}/img/actions-v2/webhook-xhr.png | Bin .../docs/public}/img/angular/app-create.png | Bin .../docs/public}/img/angular/app-screen.png | Bin .../docs/public}/img/api/apis_overview.png | Bin .../docs/public}/img/benchmark/Flowchart.svg | 0 .../concepts/audit-trail/audit-log-events.png | Bin .../img/concepts/audit-trail/event-viewer.png | Bin .../concepts/features/domain-discovery.png | Bin .../concepts/features/external-user-grant.png | Bin .../concepts/features/identity-brokering.png | Bin .../img/concepts/objects/instances.png | Bin .../img/concepts/objects/object_overview.png | Bin .../img/concepts/objects/organization.png | Bin .../concepts/objects/organization_grants.png | Bin .../public}/img/concepts/usecase/saas.png | Bin .../docs/public}/img/console_dashboard.png | Bin .../public}/img/console_feature_settings.png | Bin .../img/console_instance_policy_general.png | Bin .../console_instance_policy_notification.png | Bin .../docs/public}/img/console_languages.png | Bin .../docs/public}/img/console_login_texts.png | Bin .../public}/img/console_message_texts.png | Bin .../img/console_org_identitiy_provider.gif | Bin .../img/console_org_identity_provider.gif | Bin .../public}/img/console_org_manager_add.gif | Bin .../docs/public}/img/console_org_register.png | Bin .../docs/public}/img/console_org_select.png | Bin .../public}/img/console_private_labeling.png | Bin .../img/console_projects_add_new_roles.gif | Bin ...le_projects_application_token_settings.png | Bin .../public}/img/console_projects_empty.png | Bin .../public}/img/console_projects_granted.png | Bin .../img/console_service_user_tokentype.png | Bin .../img/console_serviceusers_create.gif | Bin .../img/console_serviceusers_new_key.gif | Bin .../img/console_serviceusers_secret.gif | Bin .../public}/img/console_verify_domain.png | Bin .../docs/public}/img/create-user.gif | Bin .../docs/public}/img/deploy-to-vercel.png | Bin .../docs/public}/img/develop2.png | Bin .../img/device-auth/device-auth-01.png | Bin .../img/device-auth/device-auth-02.png | Bin .../img/device-auth/device-auth-03.png | Bin .../img/device-auth/device-auth-04.png | Bin .../img/device-auth/device-auth-05.png | Bin .../img/device-auth/device-auth-06.png | Bin .../img/device-auth/device-auth-07.png | Bin .../img/device-auth/device-auth-08.png | Bin .../img/device-auth/device-auth-09.png | Bin .../img/device-auth/device-auth-10.png | Bin .../img/device-auth/device-auth-11.png | Bin .../public}/img/django/app-auth-method.png | Bin .../docs/public}/img/django/app-create.png | Bin .../docs/public}/img/django/app-redirects.png | Bin .../img/django/project-authorizations.png | Bin .../docs/public}/img/django/project-roles.png | Bin .../public}/img/django/project-settings.png | Bin .../docs/public}/img/docusaurus.png | Bin .../img/examples/secure-api/app-jwt/1.png | Bin .../img/examples/secure-api/app-jwt/10.png | Bin .../img/examples/secure-api/app-jwt/11.png | Bin .../img/examples/secure-api/app-jwt/2.png | Bin .../img/examples/secure-api/app-jwt/3.png | Bin .../img/examples/secure-api/app-jwt/4.png | Bin .../img/examples/secure-api/app-jwt/5.png | Bin .../img/examples/secure-api/app-jwt/6.png | Bin .../img/examples/secure-api/app-jwt/7.png | Bin .../img/examples/secure-api/app-jwt/8.png | Bin .../img/examples/secure-api/app-jwt/9.png | Bin .../secure-api/service-user-jwt/1.png | Bin .../secure-api/service-user-jwt/2.png | Bin .../secure-api/service-user-jwt/3.png | Bin .../secure-api/service-user-jwt/4.png | Bin .../secure-api/service-user-jwt/5.png | Bin .../secure-api/service-user-jwt/6.png | Bin .../secure-api/service-user-jwt/7.png | Bin .../secure-api/service-user-jwt/8.png | Bin .../secure-api/service-user-jwt/9.png | Bin .../secure-api/service-user-jwt/scopes/1.png | Bin .../secure-api/service-user-jwt/scopes/2.png | Bin .../secure-api/service-user-jwt/scopes/3.png | Bin .../secure-api/service-user-jwt/scopes/4.png | Bin .../secure-api/service-user-jwt/scopes/5.png | Bin .../secure-api/service-user-jwt/scopes/6.png | Bin .../secure-api/service-user-jwt/scopes/7.png | Bin .../secure-api/service-user-jwt/scopes/8.png | Bin .../secure-api/service-user-jwt/scopes/9.png | Bin .../docs/public}/img/flutter/authed.png | Bin .../docs/public}/img/flutter/hello-world.png | Bin .../docs/public}/img/flutter/nativeapp.png | Bin .../docs/public}/img/flutter/not-authed.png | Bin .../docs/public}/img/flutter/web-authed.png | Bin .../public}/img/flutter/web-not-authed.png | Bin .../docs/public}/img/go/api-PAT_creation.png | Bin .../docs/public}/img/go/api-PAT_view.png | Bin .../docs/public}/img/go/api-app_details.png | Bin .../public}/img/go/api-create_application.png | Bin .../img/go/api-create_service_user.png | Bin .../docs/public}/img/go/api-download_key.png | Bin .../public}/img/go/api-expiration_date.png | Bin .../docs/public}/img/go/api-new_key.png | Bin .../docs/public}/img/go/api-project-auth.png | Bin .../docs/public}/img/go/api-project-role.png | Bin .../public}/img/go/api-select_framework.png | Bin .../docs/public}/img/go/api-select_jwt.png | Bin .../public}/img/go/api-service_user_panel.png | Bin .../docs/public}/img/go/app-create-auth.png | Bin .../public}/img/go/app-create-clientid.png | Bin .../public}/img/go/app-create-redirect.png | Bin .../docs/public}/img/go/app-create.png | Bin .../docs/public}/img/go/app-home.png | Bin .../docs/public}/img/go/app-profile.png | Bin .../public}/img/guides/app-types-dark.png | Bin .../public}/img/guides/app-types-light.png | Bin .../docs/public}/img/guides/apple_login.png | Bin .../img/guides/apple_service_create.png | Bin .../guides/application/basic-logo-dark.png | Bin .../guides/application/client-id-secret.png | Bin .../img/guides/application/client-id.png | Bin .../img/guides/application/code-logo-dark.png | Bin .../img/guides/application/create-api-app.png | Bin .../guides/application/create-native-app.png | Bin .../guides/application/create-saml-app.png | Bin .../application/create-user-agent-app.png | Bin .../img/guides/application/create-web-app.png | Bin .../img/guides/application/generate-key.png | Bin .../guides/application/implicit-logo-dark.png | Bin .../img/guides/application/jwt-logo-dark.png | Bin .../img/guides/application/pkce-logo-dark.png | Bin .../guides/application/pkce-logo-light.png | Bin .../img/guides/application/post-logo-dark.png | Bin .../img/guides/application/redirect-uris.png | Bin .../docs/public}/img/guides/auth_flow.png | Bin .../img/guides/azure_api_permissions.png | Bin .../docs/public}/img/guides/azure_app.png | Bin .../img/guides/azure_app_redirects.png | Bin .../public}/img/guides/azure_app_register.png | Bin .../img/guides/azure_app_registration.png | Bin .../public}/img/guides/azure_app_secrets.png | Bin .../public}/img/guides/azure_app_token.png | Bin .../img/guides/azure_client_secret.png | Bin .../img/guides/azure_client_tenant_id.png | Bin .../azure_disable_assignment_required.png | Bin .../docs/public}/img/guides/azure_login.png | Bin .../img/guides/azure_saml_app_create.png | Bin .../img/guides/azure_saml_overview.png | Bin .../img/guides/azure_saml_overview2.png | Bin .../img/guides/azure_token_configuration.png | Bin .../img/guides/azure_zitadel_activate.png | Bin .../img/guides/azure_zitadel_active.png | Bin .../img/guides/azure_zitadel_button.png | Bin .../img/guides/azure_zitadel_settings.png | Bin .../back-channel-logout-flow.png | Bin .../docs/public}/img/guides/branding.jpeg | Bin .../guides/console-service-user-org-owner.gif | Bin .../img/guides/console-service-user-pat.gif | Bin .../public}/img/guides/console/action.png | Bin .../img/guides/console/actionsmenu.png | Bin .../img/guides/console/addapplication.png | Bin .../public}/img/guides/console/addhuman.png | Bin .../img/guides/console/additional-origins.png | Bin .../public}/img/guides/console/addmachine.png | Bin .../public}/img/guides/console/addmanager.png | Bin .../public}/img/guides/console/addrole.png | Bin .../img/guides/console/app-token-settings.png | Bin .../img/guides/console/appidtokensettings.png | Bin .../img/guides/console/application.png | Bin .../img/guides/console/applications.png | Bin .../img/guides/console/authorization.png | Bin .../public}/img/guides/console/authusers.png | Bin .../public}/img/guides/console/complexity.png | Bin .../img/guides/console/contextswitcher.png | Bin .../img/guides/console/developmentmode.png | Bin .../public}/img/guides/console/expiry.png | Bin .../img/guides/console/external_links_1.png | Bin .../img/guides/console/external_links_2.png | Bin .../docs/public}/img/guides/console/flow.png | Bin .../img/guides/console/grantedprojectgrid.png | Bin .../public}/img/guides/console/grantsmenu.png | Bin .../img/guides/console/instancebutton.png | Bin .../img/guides/console/invitehuman.png | Bin .../public}/img/guides/console/languages.png | Bin .../public}/img/guides/console/lockout.png | Bin .../img/guides/console/loginpolicy.png | Bin .../public}/img/guides/console/logintexts.png | Bin .../public}/img/guides/console/managers.png | Bin .../img/guides/console/messagetexts.png | Bin .../public}/img/guides/console/myprofile.png | Bin .../img/guides/console/notification.png | Bin .../img/guides/console/oidc-compliance.png | Bin .../img/guides/console/oidcsettings.png | Bin .../public}/img/guides/console/posproject.png | Bin .../img/guides/console/projectbranding.png | Bin .../img/guides/console/redirect-uris.png | Bin .../img/guides/console/redirecturis.png | Bin .../docs/public}/img/guides/console/roles.png | Bin .../img/guides/console/rolesettings.png | Bin .../img/guides/console/secretappearance.png | Bin .../img/guides/console/setupauthmethod.png | Bin .../docs/public}/img/guides/console/smtp.png | Bin .../public}/img/guides/console/smtp_table.png | Bin .../public}/img/guides/console/smtp_test.png | Bin .../public}/img/guides/console/tokenroles.png | Bin .../public}/img/guides/console/twilio.png | Bin .../img/guides/console/usermetadata.png | Bin .../public}/img/guides/console/usersmenu.png | Bin ...consulting_federated_identities_basics.png | Bin .../docs/public}/img/guides/github_login.png | Bin .../guides/github_oauth_app_registration.png | Bin .../guides/github_oauth_client_id_secret.png | Bin .../img/guides/gitlab_app_id_secret.png | Bin .../img/guides/gitlab_app_registration.png | Bin .../docs/public}/img/guides/gitlab_login.png | Bin .../img/guides/google_client_id_secret.png | Bin .../docs/public}/img/guides/google_login.png | Bin .../guides/google_oauth_app_registration.png | Bin .../login/login-external-idp-templates.png | Bin .../guides/integrate/login/login-start.png | Bin .../integrate/login/login-v2-app-config.png | Bin .../integrate/retrieve-user-roles-1.png | Bin .../integrate/retrieve-user-roles-2.png | Bin .../sequence-private-key-jwt.svg | 0 .../services/google-cloud-action-code.png | Bin .../services/google-cloud-action-flow.png | Bin .../services/google-cloud-create-app.png | Bin .../services/google-cloud-redirect-url.png | Bin .../services/google-cloud-token-settings.png | Bin .../google-workspace-domain-sepcific-urls.png | Bin .../services/google-workspace-sso-bottom.png | Bin .../google-workspace-sso-overview.png | Bin .../services/google-workspace-sso-zitadel.png | Bin ...e-workspace-zitadel-profile-configured.png | Bin .../google-workspace-zitadel-profile.png | Bin .../google-workspace-zitadel-set-profile.png | Bin .../services/user-info-inside-id-token.png | Bin .../token-introspection-basic-auth-1.png | Bin .../token-introspection-basic-auth-2.png | Bin .../token-introspection-basic-auth-3.png | Bin .../token-introspection-basic-auth-4.png | Bin .../token-introspection-basic-auth-5.png | Bin .../token-introspection-basic-auth-6.png | Bin .../token-introspection-basic-auth-7.png | Bin .../token-introspection-jwt-profile-1.png | Bin .../token-introspection-jwt-profile-10.png | Bin .../token-introspection-jwt-profile-11.png | Bin .../token-introspection-jwt-profile-2.png | Bin .../token-introspection-jwt-profile-3.png | Bin .../token-introspection-jwt-profile-4.png | Bin .../token-introspection-jwt-profile-5.png | Bin .../token-introspection-jwt-profile-6.png | Bin .../token-introspection-jwt-profile-7.png | Bin .../token-introspection-jwt-profile-8.png | Bin .../token-introspection-jwt-profile-9.png | Bin .../integrate/tools/apache-configuration.png | Bin .../tools/apache-redirect_settings.png | Bin .../guides/integrate/tools/apache-urls.png | Bin .../docs/public}/img/guides/jwt_idp.png | Bin .../img/guides/keycloak_add_client.png | Bin .../img/guides/keycloak_client_secret.png | Bin .../public}/img/guides/keycloak_login.png | Bin .../public}/img/guides/linkedin_add_app.png | Bin .../public}/img/guides/linkedin_login.png | Bin .../login-ui/authenticate-email-otp-flow.png | Bin .../login-ui/authenticate-phone-otp-flow.png | Bin .../login-ui/authenticate-totp-flow.png | Bin .../guides/login-ui/authenticate-u2f-flow.png | Bin .../img/guides/login-ui/device-auth-flow.png | Bin .../guides/login-ui/external-login-flow.png | Bin .../public}/img/guides/login-ui/oidc-flow.png | Bin .../guides/login-ui/passkey-login-flow.png | Bin .../login-ui/passkey-registration-flow.png | Bin .../guides/login-ui/password-reset-flow.png | Bin .../login-ui/register-email-otp-flow.png | Bin .../login-ui/register-phone-otp-flow.png | Bin .../guides/login-ui/register-totp-flow.png | Bin .../img/guides/login-ui/register-u2f-flow.png | Bin .../public}/img/guides/login-ui/saml-flow.png | Bin .../login-ui/username-password-flow.png | Bin .../public}/img/guides/login_lifetimes.png | Bin .../public}/img/guides/microsoft_login.png | Bin .../img/guides/migrate/keycloak-01.png | Bin .../img/guides/migrate/keycloak-02.png | Bin .../img/guides/migrate/keycloak-03.png | Bin .../img/guides/migrate/keycloak-04.png | Bin .../img/guides/migrate/keycloak-05.png | Bin .../img/guides/migrate/keycloak-06.png | Bin .../img/guides/migrate/keycloak-07.png | Bin .../img/guides/migrate/keycloak-08.png | Bin .../img/guides/migrate/keycloak-09.png | Bin .../img/guides/migrate/keycloak-10.png | Bin .../img/guides/migrate/keycloak-11.png | Bin .../img/guides/migrate/keycloak-12.png | Bin .../img/guides/migrate/keycloak-13.png | Bin .../img/guides/migrate/keycloak-14.png | Bin .../img/guides/migrate/keycloak-15.png | Bin .../img/guides/migrate/keycloak-16.png | Bin .../img/guides/migrate/keycloak-17.png | Bin .../img/guides/migrate/keycloak-18.png | Bin .../img/guides/migrate/keycloak-19.png | Bin .../img/guides/migrate/keycloak-20.png | Bin .../img/guides/migrate/keycloak-21.png | Bin .../img/guides/migrate/keycloak-22.png | Bin .../img/guides/migrate/keycloak-23.png | Bin .../img/guides/migrate/keycloak-24.png | Bin .../img/guides/migrate/keycloak-25.png | Bin .../img/guides/migrate/keycloak-26.png | Bin .../img/guides/migrate/keycloak-27.png | Bin .../img/guides/migrate/keycloak-28.png | Bin .../img/guides/migrate/keycloak-29.png | Bin .../img/guides/migrate/keycloak-30.png | Bin .../img/guides/migrate/keycloak-31.png | Bin .../img/guides/migrate/keycloak-32.png | Bin .../img/guides/migrate/keycloak-33.png | Bin .../img/guides/migrate/keycloak-34.png | Bin .../img/guides/migrate/keycloak-35.png | Bin .../img/guides/migrate/keycloak-36.png | Bin .../img/guides/migrate/keycloak-37.png | Bin .../img/guides/migrate/keycloak-38.png | Bin .../img/guides/migrate/keycloak-39.png | Bin .../img/guides/migrate/keycloak-40.png | Bin .../img/guides/migrate/keycloak-41.png | Bin .../img/guides/migrate/keycloak-42.png | Bin .../img/guides/migrate/keycloak-43.png | Bin .../img/guides/migrate/keycloak-44.png | Bin .../img/guides/migrate/keycloak-45.png | Bin .../img/guides/migrate/keycloak-46.png | Bin .../img/guides/migrate/keycloak-47.png | Bin .../public}/img/guides/mocksaml_login.png | Bin .../docs/public}/img/guides/okta_add_app.png | Bin .../public}/img/guides/okta_add_saml_app.png | Bin .../img/guides/okta_assign_user_to_app.png | Bin .../docs/public}/img/guides/okta_login.png | Bin .../guides/okta_saml_attribute_mapping.png | Bin .../public}/img/guides/onelogin-add-apps.png | Bin .../img/guides/onelogin-configuration.png | Bin apps/docs/public/img/guides/quickstart/22.png | Bin 0 -> 358289 bytes apps/docs/public/img/guides/quickstart/23.png | Bin 0 -> 256161 bytes apps/docs/public/img/guides/quickstart/24.png | Bin 0 -> 270684 bytes apps/docs/public/img/guides/quickstart/25.png | Bin 0 -> 446887 bytes apps/docs/public/img/guides/quickstart/26.png | Bin 0 -> 283932 bytes apps/docs/public/img/guides/quickstart/27.png | Bin 0 -> 320749 bytes apps/docs/public/img/guides/quickstart/28.png | Bin 0 -> 957735 bytes apps/docs/public/img/guides/quickstart/29.png | Bin 0 -> 344839 bytes apps/docs/public/img/guides/quickstart/30.png | Bin 0 -> 271520 bytes apps/docs/public/img/guides/quickstart/31.png | Bin 0 -> 300118 bytes apps/docs/public/img/guides/quickstart/32.png | Bin 0 -> 321263 bytes apps/docs/public/img/guides/quickstart/33.png | Bin 0 -> 318733 bytes apps/docs/public/img/guides/quickstart/34.png | Bin 0 -> 332651 bytes apps/docs/public/img/guides/quickstart/35.png | Bin 0 -> 147215 bytes apps/docs/public/img/guides/quickstart/36.png | Bin 0 -> 841679 bytes apps/docs/public/img/guides/quickstart/37.png | Bin 0 -> 358628 bytes apps/docs/public/img/guides/quickstart/51.png | Bin 0 -> 558318 bytes apps/docs/public/img/guides/quickstart/52.png | Bin 0 -> 459668 bytes .../quickstart/app_detail_overview_react.png | Bin .../guides/quickstart/cloud_create_app.png | Bin .../quickstart/cloud_create_instance.png | Bin .../img/guides/quickstart/cloud_register.png | Bin .../img/guides/quickstart/cloud_sign_up.png | Bin .../img/guides/quickstart/create_instance.png | Bin 0 -> 621132 bytes .../quickstart/create_instance_admin.png | Bin 0 -> 652451 bytes .../quickstart/create_instance_name.png | Bin 0 -> 651552 bytes .../quickstart/create_project_react.png | Bin .../guides/quickstart/instance_dashboard.png | Bin .../public}/img/guides/quickstart/login1.png | Bin .../public}/img/guides/quickstart/login2.png | Bin .../public}/img/guides/quickstart/login3.png | Bin .../public}/img/guides/quickstart/login4.png | Bin .../quickstart/onboarding_questions.png | Bin .../guides/quickstart/project_client_id.png | Bin .../project_config_overview_react.png | Bin .../img/guides/quickstart/project_urls.png | Bin .../guides/quickstart/react_example_app.png | Bin .../guides/quickstart/sign_in_instance.png | Bin .../public}/img/guides/quickstart/v2_1.png | Bin .../public}/img/guides/quickstart/v2_2.png | Bin .../public}/img/guides/quickstart/v2_3.png | Bin .../public}/img/guides/quickstart/v2_4.png | Bin .../public}/img/guides/quickstart/v2_5.png | Bin .../public}/img/guides/quickstart/v2_6.png | Bin .../public}/img/guides/quickstart/v2_7.png | Bin .../public/img/guides/quickstart/v3_1.png | Bin 0 -> 846591 bytes .../public}/img/guides/quickstart/v3_17.png | Bin .../public/img/guides/quickstart/v3_2.png | Bin 0 -> 449941 bytes .../public/img/guides/quickstart/v3_3.png | Bin 0 -> 474582 bytes .../public/img/guides/quickstart/v3_4.png | Bin 0 -> 588747 bytes .../public/img/guides/quickstart/v3_5.png | Bin 0 -> 216077 bytes .../public}/img/guides/quickstart/v3_6.png | Bin .../public}/img/guides/quickstart/v3_7.png | Bin .../public}/img/guides/quickstart/v3_8.png | Bin .../domain_policy_org_domain_disabled.png | Bin .../login-settings-mfa-init-lifetime.png | Bin .../scenarios/login_policy_advanced.png | Bin .../scenarios/login_policy_advanced_phone.png | Bin .../img/guides/scenarios/security_policy.png | Bin .../console-access-restricted.png | Bin .../console-check-project-auth.png | Bin .../console-create-project-grant-org.png | Bin .../console-default-project.png | Bin .../console-default-redirect.png | Bin .../console-zitadel-project-grants.png | Bin .../create-org-dropdown.png | Bin .../create-organization.png | Bin .../default-organization.png | Bin .../solution-scenarios/domain-discovery.png | Bin .../frontend-calling-backend-API_1.png | Bin .../solution-scenarios/org-list-add-new.png | Bin .../solution-scenarios/register-end-user.png | Bin .../register-local-user.png | Bin .../solution-scenarios/register-options.png | Bin .../register-organization.png | Bin .../register-team-graphic.png | Bin .../user-login-with-external-idp.png | Bin .../app-token-exchange-grant.png | Bin .../instance-security-impersonation.png | Bin .../org-role-end-user-impersonator.png | Bin .../guides/token-exchange/user-audit-log.png | Bin .../guides/zitadel-activate-onelogin-saml.png | Bin .../zitadel-activate-pingfederate-saml.png | Bin .../guides/zitadel-login-onelogin-button.png | Bin .../zitadel-login-pingfederate-button.png | Bin .../img/guides/zitadel_activate_apple.png | Bin .../img/guides/zitadel_activate_azure.png | Bin .../guides/zitadel_activate_azure_saml.png | Bin .../img/guides/zitadel_activate_github.png | Bin .../img/guides/zitadel_activate_gitlab.png | Bin .../img/guides/zitadel_activate_google.png | Bin .../img/guides/zitadel_activate_keycloak.png | Bin .../img/guides/zitadel_activate_ldap.png | Bin .../img/guides/zitadel_activate_linkedin.png | Bin .../img/guides/zitadel_activate_okta.png | Bin .../img/guides/zitadel_activate_okta_saml.png | Bin .../guides/zitadel_activate_onelogin_saml.png | Bin 0 -> 145507 bytes .../zitadel_activate_pingfederate_saml.png | Bin 0 -> 145174 bytes .../img/guides/zitadel_activate_saml.png | Bin .../img/guides/zitadel_allow_external_idp.png | Bin .../guides/zitadel_apple_create_provider.png | Bin .../img/guides/zitadel_azure_provider2.png | Bin .../guides/zitadel_azure_saml_provider.png | Bin .../zitadel_azure_saml_provider_urls.png | Bin .../zitadel_generic_oidc_create_provider.png | Bin .../guides/zitadel_github_create_provider.png | Bin .../guides/zitadel_gitlab_create_provider.png | Bin .../guides/zitadel_google_create_provider.png | Bin .../zitadel_identity_provider_overview.png | Bin .../zitadel_keycloak_create_provider.png | Bin .../guides/zitadel_ldap_create_provider.png | Bin .../zitadel_linkedin_create_provider.png | Bin .../img/guides/zitadel_login_apple.png | Bin .../img/guides/zitadel_login_azure.png | Bin .../img/guides/zitadel_login_azure_saml.png | Bin ..._login_external_not_found_registration.png | Bin .../img/guides/zitadel_login_github.png | Bin .../img/guides/zitadel_login_gitlab.png | Bin .../img/guides/zitadel_login_google.png | Bin .../img/guides/zitadel_login_keycloak.png | Bin .../public}/img/guides/zitadel_login_ldap.png | Bin .../img/guides/zitadel_login_ldap_input.png | Bin .../img/guides/zitadel_login_linkedin.png | Bin .../public}/img/guides/zitadel_login_okta.png | Bin .../guides/zitadel_login_onelogin_button.png | Bin 0 -> 139409 bytes .../zitadel_login_pingfederate_button.png | Bin 0 -> 146295 bytes .../public}/img/guides/zitadel_login_saml.png | Bin .../zitadel_okta_saml_provider_empty.png | Bin .../zitadel_okta_saml_provider_filled.png | Bin .../zitadel_okta_saml_provider_urls.png | Bin .../guides/zitadel_saml_create_provider.png | Bin .../icons/line-awesome/css/line-awesome.css | 0 .../line-awesome/css/line-awesome.min.css | 0 .../line-awesome/fonts/la-brands-400.eot | Bin .../line-awesome/fonts/la-brands-400.svg | 0 .../line-awesome/fonts/la-brands-400.ttf | Bin .../line-awesome/fonts/la-brands-400.woff | Bin .../line-awesome/fonts/la-brands-400.woff2 | Bin .../line-awesome/fonts/la-regular-400.eot | Bin .../line-awesome/fonts/la-regular-400.svg | 0 .../line-awesome/fonts/la-regular-400.ttf | Bin .../line-awesome/fonts/la-regular-400.woff | Bin .../line-awesome/fonts/la-regular-400.woff2 | Bin .../icons/line-awesome/fonts/la-solid-900.eot | Bin .../icons/line-awesome/fonts/la-solid-900.svg | 0 .../icons/line-awesome/fonts/la-solid-900.ttf | Bin .../line-awesome/fonts/la-solid-900.woff | Bin .../line-awesome/fonts/la-solid-900.woff2 | Bin .../img}/icons/line-awesome/svg/500px.svg | 0 .../line-awesome/svg/accessible-icon.svg | 0 .../img}/icons/line-awesome/svg/accusoft.svg | 0 .../svg/acquisitions-incorporated.svg | 0 .../img}/icons/line-awesome/svg/ad-solid.svg | 0 .../line-awesome/svg/address-book-solid.svg | 0 .../icons/line-awesome/svg/address-book.svg | 0 .../line-awesome/svg/address-card-solid.svg | 0 .../icons/line-awesome/svg/address-card.svg | 0 .../icons/line-awesome/svg/adjust-solid.svg | 0 .../img}/icons/line-awesome/svg/adn.svg | 0 .../img}/icons/line-awesome/svg/adobe.svg | 0 .../img}/icons/line-awesome/svg/adversal.svg | 0 .../icons/line-awesome/svg/affiliatetheme.svg | 0 .../line-awesome/svg/air-freshener-solid.svg | 0 .../img}/icons/line-awesome/svg/airbnb.svg | 0 .../img}/icons/line-awesome/svg/algolia.svg | 0 .../line-awesome/svg/align-center-solid.svg | 0 .../line-awesome/svg/align-justify-solid.svg | 0 .../line-awesome/svg/align-left-solid.svg | 0 .../line-awesome/svg/align-right-solid.svg | 0 .../img}/icons/line-awesome/svg/alipay.svg | 0 .../line-awesome/svg/allergies-solid.svg | 0 .../icons/line-awesome/svg/amazon-pay.svg | 0 .../img}/icons/line-awesome/svg/amazon.svg | 0 .../line-awesome/svg/ambulance-solid.svg | 0 ...rican-sign-language-interpreting-solid.svg | 0 .../img}/icons/line-awesome/svg/amilia.svg | 0 .../icons/line-awesome/svg/anchor-solid.svg | 0 .../img}/icons/line-awesome/svg/android.svg | 0 .../img}/icons/line-awesome/svg/angellist.svg | 0 .../svg/angle-double-down-solid.svg | 0 .../svg/angle-double-left-solid.svg | 0 .../svg/angle-double-right-solid.svg | 0 .../svg/angle-double-up-solid.svg | 0 .../line-awesome/svg/angle-down-solid.svg | 0 .../line-awesome/svg/angle-left-solid.svg | 0 .../line-awesome/svg/angle-right-solid.svg | 0 .../icons/line-awesome/svg/angle-up-solid.svg | 0 .../icons/line-awesome/svg/angry-solid.svg | 0 .../img}/icons/line-awesome/svg/angry.svg | 0 .../icons/line-awesome/svg/angrycreative.svg | 0 .../img}/icons/line-awesome/svg/angular.svg | 0 .../icons/line-awesome/svg/ankh-solid.svg | 0 .../icons/line-awesome/svg/app-store-ios.svg | 0 .../img}/icons/line-awesome/svg/app-store.svg | 0 .../img}/icons/line-awesome/svg/apper.svg | 0 .../line-awesome/svg/apple-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/apple-pay.svg | 0 .../img}/icons/line-awesome/svg/apple.svg | 0 .../icons/line-awesome/svg/archive-solid.svg | 0 .../icons/line-awesome/svg/archway-solid.svg | 0 .../svg/arrow-alt-circle-down-solid.svg | 0 .../svg/arrow-alt-circle-down.svg | 0 .../svg/arrow-alt-circle-left-solid.svg | 0 .../svg/arrow-alt-circle-left.svg | 0 .../svg/arrow-alt-circle-right-solid.svg | 0 .../svg/arrow-alt-circle-right.svg | 0 .../svg/arrow-alt-circle-up-solid.svg | 0 .../line-awesome/svg/arrow-alt-circle-up.svg | 0 .../svg/arrow-circle-down-solid.svg | 0 .../svg/arrow-circle-left-solid.svg | 0 .../svg/arrow-circle-right-solid.svg | 0 .../svg/arrow-circle-up-solid.svg | 0 .../line-awesome/svg/arrow-down-solid.svg | 0 .../line-awesome/svg/arrow-left-solid.svg | 0 .../line-awesome/svg/arrow-right-solid.svg | 0 .../icons/line-awesome/svg/arrow-up-solid.svg | 0 .../line-awesome/svg/arrows-alt-h-solid.svg | 0 .../line-awesome/svg/arrows-alt-solid.svg | 0 .../line-awesome/svg/arrows-alt-v-solid.svg | 0 .../icons/line-awesome/svg/artstation.svg | 0 .../svg/assistive-listening-systems-solid.svg | 0 .../icons/line-awesome/svg/asterisk-solid.svg | 0 .../icons/line-awesome/svg/asymmetrik.svg | 0 .../img}/icons/line-awesome/svg/at-solid.svg | 0 .../icons/line-awesome/svg/atlas-solid.svg | 0 .../img}/icons/line-awesome/svg/atlassian.svg | 0 .../icons/line-awesome/svg/atom-solid.svg | 0 .../img}/icons/line-awesome/svg/audible.svg | 0 .../svg/audio-description-solid.svg | 0 .../icons/line-awesome/svg/autoprefixer.svg | 0 .../img}/icons/line-awesome/svg/avianex.svg | 0 .../img}/icons/line-awesome/svg/aviato.svg | 0 .../icons/line-awesome/svg/award-solid.svg | 0 .../img}/icons/line-awesome/svg/aws.svg | 0 .../line-awesome/svg/baby-carriage-solid.svg | 0 .../icons/line-awesome/svg/baby-solid.svg | 0 .../line-awesome/svg/backspace-solid.svg | 0 .../icons/line-awesome/svg/backward-solid.svg | 0 .../icons/line-awesome/svg/bacon-solid.svg | 0 .../svg/balance-scale-left-solid.svg | 0 .../svg/balance-scale-right-solid.svg | 0 .../line-awesome/svg/balance-scale-solid.svg | 0 .../img}/icons/line-awesome/svg/ban-solid.svg | 0 .../icons/line-awesome/svg/band-aid-solid.svg | 0 .../img}/icons/line-awesome/svg/bandcamp.svg | 0 .../icons/line-awesome/svg/barcode-solid.svg | 0 .../icons/line-awesome/svg/bars-solid.svg | 0 .../line-awesome/svg/baseball-ball-solid.svg | 0 .../svg/basketball-ball-solid.svg | 0 .../icons/line-awesome/svg/bath-solid.svg | 0 .../line-awesome/svg/battery-empty-solid.svg | 0 .../line-awesome/svg/battery-full-solid.svg | 0 .../line-awesome/svg/battery-half-solid.svg | 0 .../svg/battery-quarter-solid.svg | 0 .../svg/battery-three-quarters-solid.svg | 0 .../icons/line-awesome/svg/battle-net.svg | 0 .../img}/icons/line-awesome/svg/bed-solid.svg | 0 .../icons/line-awesome/svg/beer-solid.svg | 0 .../icons/line-awesome/svg/behance-square.svg | 0 .../img}/icons/line-awesome/svg/behance.svg | 0 .../line-awesome/svg/bell-slash-solid.svg | 0 .../icons/line-awesome/svg/bell-slash.svg | 0 .../icons/line-awesome/svg/bell-solid.svg | 0 .../img}/icons/line-awesome/svg/bell.svg | 0 .../line-awesome/svg/bezier-curve-solid.svg | 0 .../icons/line-awesome/svg/bible-solid.svg | 0 .../icons/line-awesome/svg/bicycle-solid.svg | 0 .../icons/line-awesome/svg/biking-solid.svg | 0 .../img}/icons/line-awesome/svg/bimobject.svg | 0 .../line-awesome/svg/binoculars-solid.svg | 0 .../line-awesome/svg/biohazard-solid.svg | 0 .../line-awesome/svg/birthday-cake-solid.svg | 0 .../img}/icons/line-awesome/svg/bitbucket.svg | 0 .../img}/icons/line-awesome/svg/bitcoin.svg | 0 .../img}/icons/line-awesome/svg/bity.svg | 0 .../img}/icons/line-awesome/svg/black-tie.svg | 0 .../icons/line-awesome/svg/blackberry.svg | 0 .../line-awesome/svg/blender-phone-solid.svg | 0 .../icons/line-awesome/svg/blender-solid.svg | 0 .../icons/line-awesome/svg/blind-solid.svg | 0 .../icons/line-awesome/svg/blog-solid.svg | 0 .../img}/icons/line-awesome/svg/blogger-b.svg | 0 .../img}/icons/line-awesome/svg/blogger.svg | 0 .../icons/line-awesome/svg/bluetooth-b.svg | 0 .../img}/icons/line-awesome/svg/bluetooth.svg | 0 .../icons/line-awesome/svg/bold-solid.svg | 0 .../icons/line-awesome/svg/bolt-solid.svg | 0 .../icons/line-awesome/svg/bomb-solid.svg | 0 .../icons/line-awesome/svg/bone-solid.svg | 0 .../icons/line-awesome/svg/bong-solid.svg | 0 .../line-awesome/svg/book-dead-solid.svg | 0 .../line-awesome/svg/book-medical-solid.svg | 0 .../line-awesome/svg/book-open-solid.svg | 0 .../line-awesome/svg/book-reader-solid.svg | 0 .../icons/line-awesome/svg/book-solid.svg | 0 .../icons/line-awesome/svg/bookmark-solid.svg | 0 .../img}/icons/line-awesome/svg/bookmark.svg | 0 .../img}/icons/line-awesome/svg/bootstrap.svg | 0 .../line-awesome/svg/border-all-solid.svg | 0 .../line-awesome/svg/border-none-solid.svg | 0 .../line-awesome/svg/border-style-solid.svg | 0 .../line-awesome/svg/bowling-ball-solid.svg | 0 .../icons/line-awesome/svg/box-open-solid.svg | 0 .../img}/icons/line-awesome/svg/box-solid.svg | 0 .../icons/line-awesome/svg/boxes-solid.svg | 0 .../icons/line-awesome/svg/braille-solid.svg | 0 .../icons/line-awesome/svg/brain-solid.svg | 0 .../line-awesome/svg/bread-slice-solid.svg | 0 .../svg/briefcase-medical-solid.svg | 0 .../line-awesome/svg/briefcase-solid.svg | 0 .../svg/broadcast-tower-solid.svg | 0 .../icons/line-awesome/svg/broom-solid.svg | 0 .../icons/line-awesome/svg/brush-solid.svg | 0 .../img}/icons/line-awesome/svg/btc.svg | 0 .../img}/icons/line-awesome/svg/buffer.svg | 0 .../img}/icons/line-awesome/svg/bug-solid.svg | 0 .../icons/line-awesome/svg/building-solid.svg | 0 .../img}/icons/line-awesome/svg/building.svg | 0 .../icons/line-awesome/svg/bullhorn-solid.svg | 0 .../icons/line-awesome/svg/bullseye-solid.svg | 0 .../icons/line-awesome/svg/burn-solid.svg | 0 .../line-awesome/svg/buromobelexperte.svg | 0 .../icons/line-awesome/svg/bus-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/bus-solid.svg | 0 .../line-awesome/svg/business-time-solid.svg | 0 .../icons/line-awesome/svg/buy-n-large.svg | 0 .../icons/line-awesome/svg/buysellads.svg | 0 .../line-awesome/svg/calculator-solid.svg | 0 .../line-awesome/svg/calendar-alt-solid.svg | 0 .../icons/line-awesome/svg/calendar-alt.svg | 0 .../line-awesome/svg/calendar-check-solid.svg | 0 .../icons/line-awesome/svg/calendar-check.svg | 0 .../line-awesome/svg/calendar-day-solid.svg | 0 .../line-awesome/svg/calendar-minus-solid.svg | 0 .../icons/line-awesome/svg/calendar-minus.svg | 0 .../line-awesome/svg/calendar-plus-solid.svg | 0 .../icons/line-awesome/svg/calendar-plus.svg | 0 .../icons/line-awesome/svg/calendar-solid.svg | 0 .../line-awesome/svg/calendar-times-solid.svg | 0 .../icons/line-awesome/svg/calendar-times.svg | 0 .../line-awesome/svg/calendar-week-solid.svg | 0 .../img}/icons/line-awesome/svg/calendar.svg | 0 .../line-awesome/svg/camera-retro-solid.svg | 0 .../icons/line-awesome/svg/camera-solid.svg | 0 .../line-awesome/svg/campground-solid.svg | 0 .../line-awesome/svg/canadian-maple-leaf.svg | 0 .../line-awesome/svg/candy-cane-solid.svg | 0 .../icons/line-awesome/svg/cannabis-solid.svg | 0 .../icons/line-awesome/svg/capsules-solid.svg | 0 .../icons/line-awesome/svg/car-alt-solid.svg | 0 .../line-awesome/svg/car-battery-solid.svg | 0 .../line-awesome/svg/car-crash-solid.svg | 0 .../icons/line-awesome/svg/car-side-solid.svg | 0 .../img}/icons/line-awesome/svg/car-solid.svg | 0 .../line-awesome/svg/caret-down-solid.svg | 0 .../line-awesome/svg/caret-left-solid.svg | 0 .../line-awesome/svg/caret-right-solid.svg | 0 .../svg/caret-square-down-solid.svg | 0 .../line-awesome/svg/caret-square-down.svg | 0 .../svg/caret-square-left-solid.svg | 0 .../line-awesome/svg/caret-square-left.svg | 0 .../svg/caret-square-right-solid.svg | 0 .../line-awesome/svg/caret-square-right.svg | 0 .../svg/caret-square-up-solid.svg | 0 .../line-awesome/svg/caret-square-up.svg | 0 .../icons/line-awesome/svg/caret-up-solid.svg | 0 .../icons/line-awesome/svg/carrot-solid.svg | 0 .../svg/cart-arrow-down-solid.svg | 0 .../line-awesome/svg/cart-plus-solid.svg | 0 .../line-awesome/svg/cash-register-solid.svg | 0 .../img}/icons/line-awesome/svg/cat-solid.svg | 0 .../icons/line-awesome/svg/cc-amazon-pay.svg | 0 .../img}/icons/line-awesome/svg/cc-amex.svg | 0 .../icons/line-awesome/svg/cc-apple-pay.svg | 0 .../icons/line-awesome/svg/cc-diners-club.svg | 0 .../icons/line-awesome/svg/cc-discover.svg | 0 .../img}/icons/line-awesome/svg/cc-jcb.svg | 0 .../icons/line-awesome/svg/cc-mastercard.svg | 0 .../img}/icons/line-awesome/svg/cc-paypal.svg | 0 .../img}/icons/line-awesome/svg/cc-stripe.svg | 0 .../img}/icons/line-awesome/svg/cc-visa.svg | 0 .../icons/line-awesome/svg/centercode.svg | 0 .../img}/icons/line-awesome/svg/centos.svg | 0 .../line-awesome/svg/certificate-solid.svg | 0 .../icons/line-awesome/svg/chair-solid.svg | 0 .../line-awesome/svg/chalkboard-solid.svg | 0 .../svg/chalkboard-teacher-solid.svg | 0 .../svg/charging-station-solid.svg | 0 .../line-awesome/svg/chart-area-solid.svg | 0 .../line-awesome/svg/chart-bar-solid.svg | 0 .../img}/icons/line-awesome/svg/chart-bar.svg | 0 .../line-awesome/svg/chart-line-solid.svg | 0 .../line-awesome/svg/chart-pie-solid.svg | 0 .../line-awesome/svg/check-circle-solid.svg | 0 .../icons/line-awesome/svg/check-circle.svg | 0 .../line-awesome/svg/check-double-solid.svg | 0 .../icons/line-awesome/svg/check-solid.svg | 0 .../line-awesome/svg/check-square-solid.svg | 0 .../icons/line-awesome/svg/check-square.svg | 0 .../icons/line-awesome/svg/cheese-solid.svg | 0 .../line-awesome/svg/chess-bishop-solid.svg | 0 .../line-awesome/svg/chess-board-solid.svg | 0 .../line-awesome/svg/chess-king-solid.svg | 0 .../line-awesome/svg/chess-knight-solid.svg | 0 .../line-awesome/svg/chess-pawn-solid.svg | 0 .../line-awesome/svg/chess-queen-solid.svg | 0 .../line-awesome/svg/chess-rook-solid.svg | 0 .../icons/line-awesome/svg/chess-solid.svg | 0 .../svg/chevron-circle-down-solid.svg | 0 .../svg/chevron-circle-left-solid.svg | 0 .../svg/chevron-circle-right-solid.svg | 0 .../svg/chevron-circle-up-solid.svg | 0 .../line-awesome/svg/chevron-down-solid.svg | 0 .../line-awesome/svg/chevron-left-solid.svg | 0 .../line-awesome/svg/chevron-right-solid.svg | 0 .../line-awesome/svg/chevron-up-solid.svg | 0 .../icons/line-awesome/svg/child-solid.svg | 0 .../img}/icons/line-awesome/svg/chrome.svg | 0 .../icons/line-awesome/svg/chromecast.svg | 0 .../icons/line-awesome/svg/church-solid.svg | 0 .../line-awesome/svg/circle-notch-solid.svg | 0 .../icons/line-awesome/svg/circle-solid.svg | 0 .../img}/icons/line-awesome/svg/circle.svg | 0 .../icons/line-awesome/svg/city-solid.svg | 0 .../line-awesome/svg/clinic-medical-solid.svg | 0 .../svg/clipboard-check-solid.svg | 0 .../line-awesome/svg/clipboard-list-solid.svg | 0 .../line-awesome/svg/clipboard-solid.svg | 0 .../img}/icons/line-awesome/svg/clipboard.svg | 0 .../icons/line-awesome/svg/clock-solid.svg | 0 .../img}/icons/line-awesome/svg/clock.svg | 0 .../icons/line-awesome/svg/clone-solid.svg | 0 .../img}/icons/line-awesome/svg/clone.svg | 0 .../svg/closed-captioning-solid.svg | 0 .../line-awesome/svg/closed-captioning.svg | 0 .../svg/cloud-download-alt-solid.svg | 0 .../line-awesome/svg/cloud-meatball-solid.svg | 0 .../svg/cloud-moon-rain-solid.svg | 0 .../line-awesome/svg/cloud-moon-solid.svg | 0 .../line-awesome/svg/cloud-rain-solid.svg | 0 .../svg/cloud-showers-heavy-solid.svg | 0 .../icons/line-awesome/svg/cloud-solid.svg | 0 .../line-awesome/svg/cloud-sun-rain-solid.svg | 0 .../line-awesome/svg/cloud-sun-solid.svg | 0 .../svg/cloud-upload-alt-solid.svg | 0 .../icons/line-awesome/svg/cloudscale.svg | 0 .../icons/line-awesome/svg/cloudsmith.svg | 0 .../icons/line-awesome/svg/cloudversify.svg | 0 .../icons/line-awesome/svg/cocktail-solid.svg | 0 .../line-awesome/svg/code-branch-solid.svg | 0 .../icons/line-awesome/svg/code-solid.svg | 0 .../img}/icons/line-awesome/svg/codepen.svg | 0 .../img}/icons/line-awesome/svg/codiepie.svg | 0 .../icons/line-awesome/svg/coffee-solid.svg | 0 .../img}/icons/line-awesome/svg/cog-solid.svg | 0 .../icons/line-awesome/svg/cogs-solid.svg | 0 .../icons/line-awesome/svg/coins-solid.svg | 0 .../icons/line-awesome/svg/columns-solid.svg | 0 .../line-awesome/svg/comment-alt-solid.svg | 0 .../icons/line-awesome/svg/comment-alt.svg | 0 .../line-awesome/svg/comment-dollar-solid.svg | 0 .../line-awesome/svg/comment-dots-solid.svg | 0 .../icons/line-awesome/svg/comment-dots.svg | 0 .../svg/comment-medical-solid.svg | 0 .../line-awesome/svg/comment-slash-solid.svg | 0 .../icons/line-awesome/svg/comment-solid.svg | 0 .../img}/icons/line-awesome/svg/comment.svg | 0 .../svg/comments-dollar-solid.svg | 0 .../icons/line-awesome/svg/comments-solid.svg | 0 .../img}/icons/line-awesome/svg/comments.svg | 0 .../line-awesome/svg/compact-disc-solid.svg | 0 .../icons/line-awesome/svg/compass-solid.svg | 0 .../img}/icons/line-awesome/svg/compass.svg | 0 .../svg/compress-arrows-alt-solid.svg | 0 .../icons/line-awesome/svg/compress-solid.svg | 0 .../line-awesome/svg/concierge-bell-solid.svg | 0 .../icons/line-awesome/svg/confluence.svg | 0 .../icons/line-awesome/svg/connectdevelop.svg | 0 .../img}/icons/line-awesome/svg/contao.svg | 0 .../line-awesome/svg/cookie-bite-solid.svg | 0 .../icons/line-awesome/svg/cookie-solid.svg | 0 .../icons/line-awesome/svg/copy-solid.svg | 0 .../img}/icons/line-awesome/svg/copy.svg | 0 .../line-awesome/svg/copyright-solid.svg | 0 .../img}/icons/line-awesome/svg/copyright.svg | 0 .../icons/line-awesome/svg/cotton-bureau.svg | 0 .../icons/line-awesome/svg/couch-solid.svg | 0 .../img}/icons/line-awesome/svg/cpanel.svg | 0 .../line-awesome/svg/creative-commons-by.svg | 0 .../svg/creative-commons-nc-eu.svg | 0 .../svg/creative-commons-nc-jp.svg | 0 .../line-awesome/svg/creative-commons-nc.svg | 0 .../line-awesome/svg/creative-commons-nd.svg | 0 .../svg/creative-commons-pd-alt.svg | 0 .../line-awesome/svg/creative-commons-pd.svg | 0 .../svg/creative-commons-remix.svg | 0 .../line-awesome/svg/creative-commons-sa.svg | 0 .../svg/creative-commons-sampling-plus.svg | 0 .../svg/creative-commons-sampling.svg | 0 .../svg/creative-commons-share.svg | 0 .../svg/creative-commons-zero.svg | 0 .../line-awesome/svg/creative-commons.svg | 0 .../line-awesome/svg/credit-card-solid.svg | 0 .../icons/line-awesome/svg/credit-card.svg | 0 .../icons/line-awesome/svg/critical-role.svg | 0 .../icons/line-awesome/svg/crop-alt-solid.svg | 0 .../icons/line-awesome/svg/crop-solid.svg | 0 .../icons/line-awesome/svg/cross-solid.svg | 0 .../line-awesome/svg/crosshairs-solid.svg | 0 .../icons/line-awesome/svg/crow-solid.svg | 0 .../icons/line-awesome/svg/crown-solid.svg | 0 .../icons/line-awesome/svg/crutch-solid.svg | 0 .../img}/icons/line-awesome/svg/css3-alt.svg | 0 .../img}/icons/line-awesome/svg/css3.svg | 0 .../icons/line-awesome/svg/cube-solid.svg | 0 .../icons/line-awesome/svg/cubes-solid.svg | 0 .../img}/icons/line-awesome/svg/cut-solid.svg | 0 .../icons/line-awesome/svg/cuttlefish.svg | 0 .../icons/line-awesome/svg/d-and-d-beyond.svg | 0 .../img}/icons/line-awesome/svg/d-and-d.svg | 0 .../img}/icons/line-awesome/svg/dashcube.svg | 0 .../icons/line-awesome/svg/database-solid.svg | 0 .../icons/line-awesome/svg/deaf-solid.svg | 0 .../img}/icons/line-awesome/svg/delicious.svg | 0 .../icons/line-awesome/svg/democrat-solid.svg | 0 .../img}/icons/line-awesome/svg/deploydog.svg | 0 .../img}/icons/line-awesome/svg/deskpro.svg | 0 .../icons/line-awesome/svg/desktop-solid.svg | 0 .../img}/icons/line-awesome/svg/dev.svg | 0 .../icons/line-awesome/svg/deviantart.svg | 0 .../line-awesome/svg/dharmachakra-solid.svg | 0 .../img}/icons/line-awesome/svg/dhl.svg | 0 .../line-awesome/svg/diagnoses-solid.svg | 0 .../img}/icons/line-awesome/svg/diaspora.svg | 0 .../icons/line-awesome/svg/dice-d20-solid.svg | 0 .../icons/line-awesome/svg/dice-d6-solid.svg | 0 .../line-awesome/svg/dice-five-solid.svg | 0 .../line-awesome/svg/dice-four-solid.svg | 0 .../icons/line-awesome/svg/dice-one-solid.svg | 0 .../icons/line-awesome/svg/dice-six-solid.svg | 0 .../icons/line-awesome/svg/dice-solid.svg | 0 .../line-awesome/svg/dice-three-solid.svg | 0 .../icons/line-awesome/svg/dice-two-solid.svg | 0 .../img}/icons/line-awesome/svg/digg.svg | 0 .../icons/line-awesome/svg/digital-ocean.svg | 0 .../svg/digital-tachograph-solid.svg | 0 .../line-awesome/svg/directions-solid.svg | 0 .../img}/icons/line-awesome/svg/discord.svg | 0 .../img}/icons/line-awesome/svg/discourse.svg | 0 .../icons/line-awesome/svg/divide-solid.svg | 0 .../icons/line-awesome/svg/dizzy-solid.svg | 0 .../img}/icons/line-awesome/svg/dizzy.svg | 0 .../img}/icons/line-awesome/svg/dna-solid.svg | 0 .../img}/icons/line-awesome/svg/dochub.svg | 0 .../img}/icons/line-awesome/svg/docker.svg | 0 .../img}/icons/line-awesome/svg/dog-solid.svg | 0 .../line-awesome/svg/dollar-sign-solid.svg | 0 .../line-awesome/svg/dolly-flatbed-solid.svg | 0 .../icons/line-awesome/svg/dolly-solid.svg | 0 .../icons/line-awesome/svg/donate-solid.svg | 0 .../line-awesome/svg/door-closed-solid.svg | 0 .../line-awesome/svg/door-open-solid.svg | 0 .../line-awesome/svg/dot-circle-solid.svg | 0 .../icons/line-awesome/svg/dot-circle.svg | 0 .../icons/line-awesome/svg/dove-solid.svg | 0 .../icons/line-awesome/svg/download-solid.svg | 0 .../icons/line-awesome/svg/draft2digital.svg | 0 .../svg/drafting-compass-solid.svg | 0 .../icons/line-awesome/svg/dragon-solid.svg | 0 .../line-awesome/svg/draw-polygon-solid.svg | 0 .../line-awesome/svg/dribbble-square.svg | 0 .../img}/icons/line-awesome/svg/dribbble.svg | 0 .../img}/icons/line-awesome/svg/dropbox.svg | 0 .../icons/line-awesome/svg/drum-solid.svg | 0 .../line-awesome/svg/drum-steelpan-solid.svg | 0 .../line-awesome/svg/drumstick-bite-solid.svg | 0 .../img}/icons/line-awesome/svg/drupal.svg | 0 .../icons/line-awesome/svg/dumbbell-solid.svg | 0 .../line-awesome/svg/dumpster-fire-solid.svg | 0 .../icons/line-awesome/svg/dumpster-solid.svg | 0 .../icons/line-awesome/svg/dungeon-solid.svg | 0 .../img}/icons/line-awesome/svg/dyalog.svg | 0 .../icons/line-awesome/svg/earlybirds.svg | 0 .../img}/icons/line-awesome/svg/ebay.svg | 0 .../img}/icons/line-awesome/svg/edge.svg | 0 .../icons/line-awesome/svg/edit-solid.svg | 0 .../img}/icons/line-awesome/svg/edit.svg | 0 .../img}/icons/line-awesome/svg/egg-solid.svg | 0 .../icons/line-awesome/svg/eject-solid.svg | 0 .../img}/icons/line-awesome/svg/elementor.svg | 0 .../line-awesome/svg/ellipsis-h-solid.svg | 0 .../line-awesome/svg/ellipsis-v-solid.svg | 0 .../img}/icons/line-awesome/svg/ello.svg | 0 .../img}/icons/line-awesome/svg/ember.svg | 0 .../img}/icons/line-awesome/svg/empire.svg | 0 .../line-awesome/svg/envelope-open-solid.svg | 0 .../svg/envelope-open-text-solid.svg | 0 .../icons/line-awesome/svg/envelope-open.svg | 0 .../icons/line-awesome/svg/envelope-solid.svg | 0 .../svg/envelope-square-solid.svg | 0 .../img}/icons/line-awesome/svg/envelope.svg | 0 .../img}/icons/line-awesome/svg/envira.svg | 0 .../icons/line-awesome/svg/equals-solid.svg | 0 .../icons/line-awesome/svg/eraser-solid.svg | 0 .../img}/icons/line-awesome/svg/erlang.svg | 0 .../img}/icons/line-awesome/svg/ethereum.svg | 0 .../icons/line-awesome/svg/ethernet-solid.svg | 0 .../img}/icons/line-awesome/svg/etsy.svg | 0 .../line-awesome/svg/euro-sign-solid.svg | 0 .../img}/icons/line-awesome/svg/evernote.svg | 0 .../line-awesome/svg/exchange-alt-solid.svg | 0 .../svg/exclamation-circle-solid.svg | 0 .../line-awesome/svg/exclamation-solid.svg | 0 .../svg/exclamation-triangle-solid.svg | 0 .../svg/expand-arrows-alt-solid.svg | 0 .../icons/line-awesome/svg/expand-solid.svg | 0 .../icons/line-awesome/svg/expeditedssl.svg | 0 .../svg/external-link-alt-solid.svg | 0 .../svg/external-link-square-alt-solid.svg | 0 .../line-awesome/svg/eye-dropper-solid.svg | 0 .../line-awesome/svg/eye-slash-solid.svg | 0 .../img}/icons/line-awesome/svg/eye-slash.svg | 0 .../img}/icons/line-awesome/svg/eye-solid.svg | 0 .../img}/icons/line-awesome/svg/eye.svg | 0 .../icons/line-awesome/svg/facebook-f.svg | 0 .../line-awesome/svg/facebook-messenger.svg | 0 .../line-awesome/svg/facebook-square.svg | 0 .../img}/icons/line-awesome/svg/facebook.svg | 0 .../img}/icons/line-awesome/svg/fan-solid.svg | 0 .../line-awesome/svg/fantasy-flight-games.svg | 0 .../line-awesome/svg/fast-backward-solid.svg | 0 .../line-awesome/svg/fast-forward-solid.svg | 0 .../img}/icons/line-awesome/svg/fax-solid.svg | 0 .../line-awesome/svg/feather-alt-solid.svg | 0 .../icons/line-awesome/svg/feather-solid.svg | 0 .../img}/icons/line-awesome/svg/fedex.svg | 0 .../img}/icons/line-awesome/svg/fedora.svg | 0 .../icons/line-awesome/svg/female-solid.svg | 0 .../line-awesome/svg/fighter-jet-solid.svg | 0 .../img}/icons/line-awesome/svg/figma.svg | 0 .../icons/line-awesome/svg/file-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/file-alt.svg | 0 .../line-awesome/svg/file-archive-solid.svg | 0 .../icons/line-awesome/svg/file-archive.svg | 0 .../line-awesome/svg/file-audio-solid.svg | 0 .../icons/line-awesome/svg/file-audio.svg | 0 .../line-awesome/svg/file-code-solid.svg | 0 .../img}/icons/line-awesome/svg/file-code.svg | 0 .../line-awesome/svg/file-contract-solid.svg | 0 .../icons/line-awesome/svg/file-csv-solid.svg | 0 .../line-awesome/svg/file-download-solid.svg | 0 .../line-awesome/svg/file-excel-solid.svg | 0 .../icons/line-awesome/svg/file-excel.svg | 0 .../line-awesome/svg/file-export-solid.svg | 0 .../line-awesome/svg/file-image-solid.svg | 0 .../icons/line-awesome/svg/file-image.svg | 0 .../line-awesome/svg/file-import-solid.svg | 0 .../svg/file-invoice-dollar-solid.svg | 0 .../line-awesome/svg/file-invoice-solid.svg | 0 .../svg/file-medical-alt-solid.svg | 0 .../line-awesome/svg/file-medical-solid.svg | 0 .../icons/line-awesome/svg/file-pdf-solid.svg | 0 .../img}/icons/line-awesome/svg/file-pdf.svg | 0 .../svg/file-powerpoint-solid.svg | 0 .../line-awesome/svg/file-powerpoint.svg | 0 .../svg/file-prescription-solid.svg | 0 .../line-awesome/svg/file-signature-solid.svg | 0 .../icons/line-awesome/svg/file-solid.svg | 0 .../line-awesome/svg/file-upload-solid.svg | 0 .../line-awesome/svg/file-video-solid.svg | 0 .../icons/line-awesome/svg/file-video.svg | 0 .../line-awesome/svg/file-word-solid.svg | 0 .../img}/icons/line-awesome/svg/file-word.svg | 0 .../img}/icons/line-awesome/svg/file.svg | 0 .../line-awesome/svg/fill-drip-solid.svg | 0 .../icons/line-awesome/svg/fill-solid.svg | 0 .../icons/line-awesome/svg/film-solid.svg | 0 .../icons/line-awesome/svg/filter-solid.svg | 0 .../line-awesome/svg/fingerprint-solid.svg | 0 .../icons/line-awesome/svg/fire-alt-solid.svg | 0 .../svg/fire-extinguisher-solid.svg | 0 .../icons/line-awesome/svg/fire-solid.svg | 0 .../img}/icons/line-awesome/svg/firefox.svg | 0 .../line-awesome/svg/first-aid-solid.svg | 0 .../line-awesome/svg/first-order-alt.svg | 0 .../icons/line-awesome/svg/first-order.svg | 0 .../icons/line-awesome/svg/firstdraft.svg | 0 .../icons/line-awesome/svg/fish-solid.svg | 0 .../line-awesome/svg/fist-raised-solid.svg | 0 .../line-awesome/svg/flag-checkered-solid.svg | 0 .../icons/line-awesome/svg/flag-solid.svg | 0 .../icons/line-awesome/svg/flag-usa-solid.svg | 0 .../img}/icons/line-awesome/svg/flag.svg | 0 .../icons/line-awesome/svg/flask-solid.svg | 0 .../img}/icons/line-awesome/svg/flickr.svg | 0 .../img}/icons/line-awesome/svg/flipboard.svg | 0 .../icons/line-awesome/svg/flushed-solid.svg | 0 .../img}/icons/line-awesome/svg/flushed.svg | 0 .../img}/icons/line-awesome/svg/fly.svg | 0 .../line-awesome/svg/folder-minus-solid.svg | 0 .../line-awesome/svg/folder-open-solid.svg | 0 .../icons/line-awesome/svg/folder-open.svg | 0 .../line-awesome/svg/folder-plus-solid.svg | 0 .../icons/line-awesome/svg/folder-solid.svg | 0 .../img}/icons/line-awesome/svg/folder.svg | 0 .../line-awesome/svg/font-awesome-alt.svg | 0 .../line-awesome/svg/font-awesome-flag.svg | 0 .../icons/line-awesome/svg/font-awesome.svg | 0 .../icons/line-awesome/svg/font-solid.svg | 0 .../icons/line-awesome/svg/fonticons-fi.svg | 0 .../img}/icons/line-awesome/svg/fonticons.svg | 0 .../line-awesome/svg/football-ball-solid.svg | 0 .../line-awesome/svg/fort-awesome-alt.svg | 0 .../icons/line-awesome/svg/fort-awesome.svg | 0 .../img}/icons/line-awesome/svg/forumbee.svg | 0 .../icons/line-awesome/svg/forward-solid.svg | 0 .../icons/line-awesome/svg/foursquare.svg | 0 .../icons/line-awesome/svg/free-code-camp.svg | 0 .../img}/icons/line-awesome/svg/freebsd.svg | 0 .../icons/line-awesome/svg/frog-solid.svg | 0 .../line-awesome/svg/frown-open-solid.svg | 0 .../icons/line-awesome/svg/frown-open.svg | 0 .../icons/line-awesome/svg/frown-solid.svg | 0 .../img}/icons/line-awesome/svg/frown.svg | 0 .../img}/icons/line-awesome/svg/fulcrum.svg | 0 .../line-awesome/svg/funnel-dollar-solid.svg | 0 .../icons/line-awesome/svg/futbol-solid.svg | 0 .../img}/icons/line-awesome/svg/futbol.svg | 0 .../line-awesome/svg/galactic-republic.svg | 0 .../line-awesome/svg/galactic-senate.svg | 0 .../icons/line-awesome/svg/gamepad-solid.svg | 0 .../icons/line-awesome/svg/gas-pump-solid.svg | 0 .../icons/line-awesome/svg/gavel-solid.svg | 0 .../img}/icons/line-awesome/svg/gem-solid.svg | 0 .../img}/icons/line-awesome/svg/gem.svg | 0 .../line-awesome/svg/genderless-solid.svg | 0 .../icons/line-awesome/svg/get-pocket.svg | 0 .../img}/icons/line-awesome/svg/gg-circle.svg | 0 .../public/img}/icons/line-awesome/svg/gg.svg | 0 .../icons/line-awesome/svg/ghost-solid.svg | 0 .../icons/line-awesome/svg/gift-solid.svg | 0 .../icons/line-awesome/svg/gifts-solid.svg | 0 .../img}/icons/line-awesome/svg/git-alt.svg | 0 .../icons/line-awesome/svg/git-square.svg | 0 .../img}/icons/line-awesome/svg/git.svg | 0 .../icons/line-awesome/svg/github-alt.svg | 0 .../icons/line-awesome/svg/github-square.svg | 0 .../img}/icons/line-awesome/svg/github.svg | 0 .../img}/icons/line-awesome/svg/gitkraken.svg | 0 .../img}/icons/line-awesome/svg/gitlab.svg | 0 .../img}/icons/line-awesome/svg/gitter.svg | 0 .../line-awesome/svg/glass-cheers-solid.svg | 0 .../svg/glass-martini-alt-solid.svg | 0 .../line-awesome/svg/glass-martini-solid.svg | 0 .../line-awesome/svg/glass-whiskey-solid.svg | 0 .../icons/line-awesome/svg/glasses-solid.svg | 0 .../img}/icons/line-awesome/svg/glide-g.svg | 0 .../img}/icons/line-awesome/svg/glide.svg | 0 .../line-awesome/svg/globe-africa-solid.svg | 0 .../line-awesome/svg/globe-americas-solid.svg | 0 .../line-awesome/svg/globe-asia-solid.svg | 0 .../line-awesome/svg/globe-europe-solid.svg | 0 .../icons/line-awesome/svg/globe-solid.svg | 0 .../img}/icons/line-awesome/svg/gofore.svg | 0 .../line-awesome/svg/golf-ball-solid.svg | 0 .../icons/line-awesome/svg/goodreads-g.svg | 0 .../img}/icons/line-awesome/svg/goodreads.svg | 0 .../icons/line-awesome/svg/google-drive.svg | 0 .../icons/line-awesome/svg/google-play.svg | 0 .../icons/line-awesome/svg/google-plus-g.svg | 0 .../line-awesome/svg/google-plus-square.svg | 0 .../icons/line-awesome/svg/google-plus.svg | 0 .../icons/line-awesome/svg/google-wallet.svg | 0 .../img}/icons/line-awesome/svg/google.svg | 0 .../icons/line-awesome/svg/gopuram-solid.svg | 0 .../line-awesome/svg/graduation-cap-solid.svg | 0 .../img}/icons/line-awesome/svg/gratipay.svg | 0 .../img}/icons/line-awesome/svg/grav.svg | 0 .../svg/greater-than-equal-solid.svg | 0 .../line-awesome/svg/greater-than-solid.svg | 0 .../icons/line-awesome/svg/grimace-solid.svg | 0 .../img}/icons/line-awesome/svg/grimace.svg | 0 .../icons/line-awesome/svg/grin-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/grin-alt.svg | 0 .../line-awesome/svg/grin-beam-solid.svg | 0 .../svg/grin-beam-sweat-solid.svg | 0 .../line-awesome/svg/grin-beam-sweat.svg | 0 .../img}/icons/line-awesome/svg/grin-beam.svg | 0 .../line-awesome/svg/grin-hearts-solid.svg | 0 .../icons/line-awesome/svg/grin-hearts.svg | 0 .../icons/line-awesome/svg/grin-solid.svg | 0 .../line-awesome/svg/grin-squint-solid.svg | 0 .../svg/grin-squint-tears-solid.svg | 0 .../line-awesome/svg/grin-squint-tears.svg | 0 .../icons/line-awesome/svg/grin-squint.svg | 0 .../line-awesome/svg/grin-stars-solid.svg | 0 .../icons/line-awesome/svg/grin-stars.svg | 0 .../line-awesome/svg/grin-tears-solid.svg | 0 .../icons/line-awesome/svg/grin-tears.svg | 0 .../line-awesome/svg/grin-tongue-solid.svg | 0 .../svg/grin-tongue-squint-solid.svg | 0 .../line-awesome/svg/grin-tongue-squint.svg | 0 .../svg/grin-tongue-wink-solid.svg | 0 .../line-awesome/svg/grin-tongue-wink.svg | 0 .../icons/line-awesome/svg/grin-tongue.svg | 0 .../line-awesome/svg/grin-wink-solid.svg | 0 .../img}/icons/line-awesome/svg/grin-wink.svg | 0 .../img}/icons/line-awesome/svg/grin.svg | 0 .../svg/grip-horizontal-solid.svg | 0 .../line-awesome/svg/grip-lines-solid.svg | 0 .../svg/grip-lines-vertical-solid.svg | 0 .../line-awesome/svg/grip-vertical-solid.svg | 0 .../img}/icons/line-awesome/svg/gripfire.svg | 0 .../img}/icons/line-awesome/svg/grunt.svg | 0 .../icons/line-awesome/svg/guitar-solid.svg | 0 .../img}/icons/line-awesome/svg/gulp.svg | 0 .../icons/line-awesome/svg/h-square-solid.svg | 0 .../line-awesome/svg/hacker-news-square.svg | 0 .../icons/line-awesome/svg/hacker-news.svg | 0 .../icons/line-awesome/svg/hackerrank.svg | 0 .../line-awesome/svg/hamburger-solid.svg | 0 .../icons/line-awesome/svg/hammer-solid.svg | 0 .../icons/line-awesome/svg/hamsa-solid.svg | 0 .../svg/hand-holding-heart-solid.svg | 0 .../line-awesome/svg/hand-holding-solid.svg | 0 .../svg/hand-holding-usd-solid.svg | 0 .../line-awesome/svg/hand-lizard-solid.svg | 0 .../icons/line-awesome/svg/hand-lizard.svg | 0 .../svg/hand-middle-finger-solid.svg | 0 .../line-awesome/svg/hand-paper-solid.svg | 0 .../icons/line-awesome/svg/hand-paper.svg | 0 .../line-awesome/svg/hand-peace-solid.svg | 0 .../icons/line-awesome/svg/hand-peace.svg | 0 .../svg/hand-point-down-solid.svg | 0 .../line-awesome/svg/hand-point-down.svg | 0 .../svg/hand-point-left-solid.svg | 0 .../line-awesome/svg/hand-point-left.svg | 0 .../svg/hand-point-right-solid.svg | 0 .../line-awesome/svg/hand-point-right.svg | 0 .../line-awesome/svg/hand-point-up-solid.svg | 0 .../icons/line-awesome/svg/hand-point-up.svg | 0 .../line-awesome/svg/hand-pointer-solid.svg | 0 .../icons/line-awesome/svg/hand-pointer.svg | 0 .../line-awesome/svg/hand-rock-solid.svg | 0 .../img}/icons/line-awesome/svg/hand-rock.svg | 0 .../line-awesome/svg/hand-scissors-solid.svg | 0 .../icons/line-awesome/svg/hand-scissors.svg | 0 .../line-awesome/svg/hand-spock-solid.svg | 0 .../icons/line-awesome/svg/hand-spock.svg | 0 .../line-awesome/svg/hands-helping-solid.svg | 0 .../icons/line-awesome/svg/hands-solid.svg | 0 .../line-awesome/svg/handshake-solid.svg | 0 .../img}/icons/line-awesome/svg/handshake.svg | 0 .../icons/line-awesome/svg/hanukiah-solid.svg | 0 .../icons/line-awesome/svg/hard-hat-solid.svg | 0 .../icons/line-awesome/svg/hashtag-solid.svg | 0 .../svg/hat-cowboy-side-solid.svg | 0 .../line-awesome/svg/hat-cowboy-solid.svg | 0 .../line-awesome/svg/hat-wizard-solid.svg | 0 .../icons/line-awesome/svg/haykal-solid.svg | 0 .../img}/icons/line-awesome/svg/hdd-solid.svg | 0 .../img}/icons/line-awesome/svg/hdd.svg | 0 .../icons/line-awesome/svg/heading-solid.svg | 0 .../line-awesome/svg/headphones-alt-solid.svg | 0 .../line-awesome/svg/headphones-solid.svg | 0 .../icons/line-awesome/svg/headset-solid.svg | 0 .../line-awesome/svg/heart-broken-solid.svg | 0 .../icons/line-awesome/svg/heart-solid.svg | 0 .../img}/icons/line-awesome/svg/heart.svg | 0 .../line-awesome/svg/heartbeat-solid.svg | 0 .../line-awesome/svg/helicopter-solid.svg | 0 .../line-awesome/svg/highlighter-solid.svg | 0 .../icons/line-awesome/svg/hiking-solid.svg | 0 .../icons/line-awesome/svg/hippo-solid.svg | 0 .../img}/icons/line-awesome/svg/hips.svg | 0 .../icons/line-awesome/svg/hire-a-helper.svg | 0 .../icons/line-awesome/svg/history-solid.svg | 0 .../line-awesome/svg/hockey-puck-solid.svg | 0 .../line-awesome/svg/holly-berry-solid.svg | 0 .../icons/line-awesome/svg/home-solid.svg | 0 .../img}/icons/line-awesome/svg/hooli.svg | 0 .../img}/icons/line-awesome/svg/hornbill.svg | 0 .../line-awesome/svg/horse-head-solid.svg | 0 .../icons/line-awesome/svg/horse-solid.svg | 0 .../line-awesome/svg/hospital-alt-solid.svg | 0 .../icons/line-awesome/svg/hospital-solid.svg | 0 .../svg/hospital-symbol-solid.svg | 0 .../img}/icons/line-awesome/svg/hospital.svg | 0 .../icons/line-awesome/svg/hot-tub-solid.svg | 0 .../icons/line-awesome/svg/hotdog-solid.svg | 0 .../icons/line-awesome/svg/hotel-solid.svg | 0 .../img}/icons/line-awesome/svg/hotjar.svg | 0 .../line-awesome/svg/hourglass-end-solid.svg | 0 .../line-awesome/svg/hourglass-half-solid.svg | 0 .../line-awesome/svg/hourglass-solid.svg | 0 .../svg/hourglass-start-solid.svg | 0 .../img}/icons/line-awesome/svg/hourglass.svg | 0 .../line-awesome/svg/house-damage-solid.svg | 0 .../img}/icons/line-awesome/svg/houzz.svg | 0 .../icons/line-awesome/svg/hryvnia-solid.svg | 0 .../img}/icons/line-awesome/svg/html5.svg | 0 .../img}/icons/line-awesome/svg/hubspot.svg | 0 .../icons/line-awesome/svg/i-cursor-solid.svg | 0 .../line-awesome/svg/ice-cream-solid.svg | 0 .../icons/line-awesome/svg/icicles-solid.svg | 0 .../icons/line-awesome/svg/icons-solid.svg | 0 .../icons/line-awesome/svg/id-badge-solid.svg | 0 .../img}/icons/line-awesome/svg/id-badge.svg | 0 .../line-awesome/svg/id-card-alt-solid.svg | 0 .../icons/line-awesome/svg/id-card-solid.svg | 0 .../img}/icons/line-awesome/svg/id-card.svg | 0 .../icons/line-awesome/svg/igloo-solid.svg | 0 .../icons/line-awesome/svg/image-solid.svg | 0 .../img}/icons/line-awesome/svg/image.svg | 0 .../icons/line-awesome/svg/images-solid.svg | 0 .../img}/icons/line-awesome/svg/images.svg | 0 .../img}/icons/line-awesome/svg/imdb.svg | 0 .../icons/line-awesome/svg/inbox-solid.svg | 0 .../icons/line-awesome/svg/indent-solid.svg | 0 .../icons/line-awesome/svg/industry-solid.svg | 0 .../icons/line-awesome/svg/infinity-solid.svg | 0 .../line-awesome/svg/info-circle-solid.svg | 0 .../icons/line-awesome/svg/info-solid.svg | 0 .../img}/icons/line-awesome/svg/instagram.svg | 0 .../img}/icons/line-awesome/svg/intercom.svg | 0 .../line-awesome/svg/internet-explorer.svg | 0 .../img}/icons/line-awesome/svg/invision.svg | 0 .../img}/icons/line-awesome/svg/ioxhost.svg | 0 .../icons/line-awesome/svg/italic-solid.svg | 0 .../img}/icons/line-awesome/svg/itch-io.svg | 0 .../icons/line-awesome/svg/itunes-note.svg | 0 .../img}/icons/line-awesome/svg/itunes.svg | 0 .../img}/icons/line-awesome/svg/java.svg | 0 .../icons/line-awesome/svg/jedi-order.svg | 0 .../icons/line-awesome/svg/jedi-solid.svg | 0 .../img}/icons/line-awesome/svg/jenkins.svg | 0 .../img}/icons/line-awesome/svg/jira.svg | 0 .../img}/icons/line-awesome/svg/joget.svg | 0 .../icons/line-awesome/svg/joint-solid.svg | 0 .../img}/icons/line-awesome/svg/joomla.svg | 0 .../line-awesome/svg/journal-whills-solid.svg | 0 .../img}/icons/line-awesome/svg/js-square.svg | 0 .../public/img}/icons/line-awesome/svg/js.svg | 0 .../img}/icons/line-awesome/svg/jsfiddle.svg | 0 .../icons/line-awesome/svg/kaaba-solid.svg | 0 .../img}/icons/line-awesome/svg/kaggle.svg | 0 .../img}/icons/line-awesome/svg/key-solid.svg | 0 .../img}/icons/line-awesome/svg/keybase.svg | 0 .../icons/line-awesome/svg/keyboard-solid.svg | 0 .../img}/icons/line-awesome/svg/keyboard.svg | 0 .../img}/icons/line-awesome/svg/keycdn.svg | 0 .../icons/line-awesome/svg/khanda-solid.svg | 0 .../icons/line-awesome/svg/kickstarter-k.svg | 0 .../icons/line-awesome/svg/kickstarter.svg | 0 .../line-awesome/svg/kiss-beam-solid.svg | 0 .../img}/icons/line-awesome/svg/kiss-beam.svg | 0 .../icons/line-awesome/svg/kiss-solid.svg | 0 .../svg/kiss-wink-heart-solid.svg | 0 .../line-awesome/svg/kiss-wink-heart.svg | 0 .../img}/icons/line-awesome/svg/kiss.svg | 0 .../line-awesome/svg/kiwi-bird-solid.svg | 0 .../img}/icons/line-awesome/svg/korvue.svg | 0 .../icons/line-awesome/svg/landmark-solid.svg | 0 .../icons/line-awesome/svg/language-solid.svg | 0 .../line-awesome/svg/laptop-code-solid.svg | 0 .../line-awesome/svg/laptop-medical-solid.svg | 0 .../icons/line-awesome/svg/laptop-solid.svg | 0 .../img}/icons/line-awesome/svg/laravel.svg | 0 .../icons/line-awesome/svg/lastfm-square.svg | 0 .../img}/icons/line-awesome/svg/lastfm.svg | 0 .../line-awesome/svg/laugh-beam-solid.svg | 0 .../icons/line-awesome/svg/laugh-beam.svg | 0 .../icons/line-awesome/svg/laugh-solid.svg | 0 .../line-awesome/svg/laugh-squint-solid.svg | 0 .../icons/line-awesome/svg/laugh-squint.svg | 0 .../line-awesome/svg/laugh-wink-solid.svg | 0 .../icons/line-awesome/svg/laugh-wink.svg | 0 .../img}/icons/line-awesome/svg/laugh.svg | 0 .../line-awesome/svg/layer-group-solid.svg | 0 .../icons/line-awesome/svg/leaf-solid.svg | 0 .../img}/icons/line-awesome/svg/leanpub.svg | 0 .../icons/line-awesome/svg/lemon-solid.svg | 0 .../img}/icons/line-awesome/svg/lemon.svg | 0 .../svg/less-than-equal-solid.svg | 0 .../line-awesome/svg/less-than-solid.svg | 0 .../img}/icons/line-awesome/svg/less.svg | 0 .../line-awesome/svg/level-down-alt-solid.svg | 0 .../line-awesome/svg/level-up-alt-solid.svg | 0 .../line-awesome/svg/life-ring-solid.svg | 0 .../img}/icons/line-awesome/svg/life-ring.svg | 0 .../line-awesome/svg/lightbulb-solid.svg | 0 .../img}/icons/line-awesome/svg/lightbulb.svg | 0 .../img}/icons/line-awesome/svg/line.svg | 0 .../icons/line-awesome/svg/link-solid.svg | 0 .../icons/line-awesome/svg/linkedin-in.svg | 0 .../img}/icons/line-awesome/svg/linkedin.svg | 0 .../img}/icons/line-awesome/svg/linode.svg | 0 .../img}/icons/line-awesome/svg/linux.svg | 0 .../line-awesome/svg/lira-sign-solid.svg | 0 .../icons/line-awesome/svg/list-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/list-alt.svg | 0 .../icons/line-awesome/svg/list-ol-solid.svg | 0 .../icons/line-awesome/svg/list-solid.svg | 0 .../icons/line-awesome/svg/list-ul-solid.svg | 0 .../line-awesome/svg/location-arrow-solid.svg | 0 .../line-awesome/svg/lock-open-solid.svg | 0 .../icons/line-awesome/svg/lock-solid.svg | 0 .../svg/long-arrow-alt-down-solid.svg | 0 .../svg/long-arrow-alt-left-solid.svg | 0 .../svg/long-arrow-alt-right-solid.svg | 0 .../svg/long-arrow-alt-up-solid.svg | 0 .../line-awesome/svg/low-vision-solid.svg | 0 .../line-awesome/svg/luggage-cart-solid.svg | 0 .../img}/icons/line-awesome/svg/lyft.svg | 0 .../img}/icons/line-awesome/svg/magento.svg | 0 .../icons/line-awesome/svg/magic-solid.svg | 0 .../icons/line-awesome/svg/magnet-solid.svg | 0 .../line-awesome/svg/mail-bulk-solid.svg | 0 .../img}/icons/line-awesome/svg/mailchimp.svg | 0 .../icons/line-awesome/svg/male-solid.svg | 0 .../icons/line-awesome/svg/mandalorian.svg | 0 .../line-awesome/svg/map-marked-alt-solid.svg | 0 .../line-awesome/svg/map-marked-solid.svg | 0 .../line-awesome/svg/map-marker-alt-solid.svg | 0 .../line-awesome/svg/map-marker-solid.svg | 0 .../icons/line-awesome/svg/map-pin-solid.svg | 0 .../line-awesome/svg/map-signs-solid.svg | 0 .../img}/icons/line-awesome/svg/map-solid.svg | 0 .../img}/icons/line-awesome/svg/map.svg | 0 .../img}/icons/line-awesome/svg/markdown.svg | 0 .../icons/line-awesome/svg/marker-solid.svg | 0 .../line-awesome/svg/mars-double-solid.svg | 0 .../icons/line-awesome/svg/mars-solid.svg | 0 .../line-awesome/svg/mars-stroke-h-solid.svg | 0 .../line-awesome/svg/mars-stroke-solid.svg | 0 .../line-awesome/svg/mars-stroke-v-solid.svg | 0 .../icons/line-awesome/svg/mask-solid.svg | 0 .../img}/icons/line-awesome/svg/mastodon.svg | 0 .../img}/icons/line-awesome/svg/maxcdn.svg | 0 .../img}/icons/line-awesome/svg/mdb.svg | 0 .../icons/line-awesome/svg/medal-solid.svg | 0 .../img}/icons/line-awesome/svg/medapps.svg | 0 .../img}/icons/line-awesome/svg/medium-m.svg | 0 .../img}/icons/line-awesome/svg/medium.svg | 0 .../icons/line-awesome/svg/medkit-solid.svg | 0 .../img}/icons/line-awesome/svg/medrt.svg | 0 .../img}/icons/line-awesome/svg/meetup.svg | 0 .../img}/icons/line-awesome/svg/megaport.svg | 0 .../line-awesome/svg/meh-blank-solid.svg | 0 .../img}/icons/line-awesome/svg/meh-blank.svg | 0 .../svg/meh-rolling-eyes-solid.svg | 0 .../line-awesome/svg/meh-rolling-eyes.svg | 0 .../img}/icons/line-awesome/svg/meh-solid.svg | 0 .../img}/icons/line-awesome/svg/meh.svg | 0 .../icons/line-awesome/svg/memory-solid.svg | 0 .../img}/icons/line-awesome/svg/mendeley.svg | 0 .../icons/line-awesome/svg/menorah-solid.svg | 0 .../icons/line-awesome/svg/mercury-solid.svg | 0 .../icons/line-awesome/svg/meteor-solid.svg | 0 .../line-awesome/svg/microchip-solid.svg | 0 .../svg/microphone-alt-slash-solid.svg | 0 .../line-awesome/svg/microphone-alt-solid.svg | 0 .../svg/microphone-slash-solid.svg | 0 .../line-awesome/svg/microphone-solid.svg | 0 .../line-awesome/svg/microscope-solid.svg | 0 .../img}/icons/line-awesome/svg/microsoft.svg | 0 .../line-awesome/svg/minus-circle-solid.svg | 0 .../icons/line-awesome/svg/minus-solid.svg | 0 .../line-awesome/svg/minus-square-solid.svg | 0 .../icons/line-awesome/svg/minus-square.svg | 0 .../icons/line-awesome/svg/mitten-solid.svg | 0 .../img}/icons/line-awesome/svg/mix.svg | 0 .../img}/icons/line-awesome/svg/mixcloud.svg | 0 .../img}/icons/line-awesome/svg/mizuni.svg | 0 .../line-awesome/svg/mobile-alt-solid.svg | 0 .../icons/line-awesome/svg/mobile-solid.svg | 0 .../img}/icons/line-awesome/svg/modx.svg | 0 .../img}/icons/line-awesome/svg/monero.svg | 0 .../line-awesome/svg/money-bill-alt-solid.svg | 0 .../icons/line-awesome/svg/money-bill-alt.svg | 0 .../line-awesome/svg/money-bill-solid.svg | 0 .../svg/money-bill-wave-alt-solid.svg | 0 .../svg/money-bill-wave-solid.svg | 0 .../svg/money-check-alt-solid.svg | 0 .../line-awesome/svg/money-check-solid.svg | 0 .../icons/line-awesome/svg/monument-solid.svg | 0 .../icons/line-awesome/svg/moon-solid.svg | 0 .../img}/icons/line-awesome/svg/moon.svg | 0 .../line-awesome/svg/mortar-pestle-solid.svg | 0 .../icons/line-awesome/svg/mosque-solid.svg | 0 .../line-awesome/svg/motorcycle-solid.svg | 0 .../icons/line-awesome/svg/mountain-solid.svg | 0 .../line-awesome/svg/mouse-pointer-solid.svg | 0 .../icons/line-awesome/svg/mouse-solid.svg | 0 .../icons/line-awesome/svg/mug-hot-solid.svg | 0 .../icons/line-awesome/svg/music-solid.svg | 0 .../img}/icons/line-awesome/svg/napster.svg | 0 .../img}/icons/line-awesome/svg/neos.svg | 0 .../line-awesome/svg/network-wired-solid.svg | 0 .../icons/line-awesome/svg/neuter-solid.svg | 0 .../line-awesome/svg/newspaper-solid.svg | 0 .../img}/icons/line-awesome/svg/newspaper.svg | 0 .../img}/icons/line-awesome/svg/nimblr.svg | 0 .../img}/icons/line-awesome/svg/node-js.svg | 0 .../img}/icons/line-awesome/svg/node.svg | 0 .../line-awesome/svg/not-equal-solid.svg | 0 .../line-awesome/svg/notes-medical-solid.svg | 0 .../img}/icons/line-awesome/svg/npm.svg | 0 .../img}/icons/line-awesome/svg/ns8.svg | 0 .../icons/line-awesome/svg/nutritionix.svg | 0 .../line-awesome/svg/object-group-solid.svg | 0 .../icons/line-awesome/svg/object-group.svg | 0 .../line-awesome/svg/object-ungroup-solid.svg | 0 .../icons/line-awesome/svg/object-ungroup.svg | 0 .../line-awesome/svg/odnoklassniki-square.svg | 0 .../icons/line-awesome/svg/odnoklassniki.svg | 0 .../icons/line-awesome/svg/oil-can-solid.svg | 0 .../icons/line-awesome/svg/old-republic.svg | 0 .../img}/icons/line-awesome/svg/om-solid.svg | 0 .../img}/icons/line-awesome/svg/opencart.svg | 0 .../img}/icons/line-awesome/svg/openid.svg | 0 .../img}/icons/line-awesome/svg/opera.svg | 0 .../icons/line-awesome/svg/optin-monster.svg | 0 .../img}/icons/line-awesome/svg/orcid.svg | 0 .../img}/icons/line-awesome/svg/osi.svg | 0 .../icons/line-awesome/svg/otter-solid.svg | 0 .../icons/line-awesome/svg/outdent-solid.svg | 0 .../img}/icons/line-awesome/svg/page4.svg | 0 .../img}/icons/line-awesome/svg/pagelines.svg | 0 .../icons/line-awesome/svg/pager-solid.svg | 0 .../line-awesome/svg/paint-brush-solid.svg | 0 .../line-awesome/svg/paint-roller-solid.svg | 0 .../icons/line-awesome/svg/palette-solid.svg | 0 .../img}/icons/line-awesome/svg/palfed.svg | 0 .../icons/line-awesome/svg/pallet-solid.svg | 0 .../line-awesome/svg/paper-plane-solid.svg | 0 .../icons/line-awesome/svg/paper-plane.svg | 0 .../line-awesome/svg/paperclip-solid.svg | 0 .../line-awesome/svg/parachute-box-solid.svg | 0 .../line-awesome/svg/paragraph-solid.svg | 0 .../icons/line-awesome/svg/parking-solid.svg | 0 .../icons/line-awesome/svg/passport-solid.svg | 0 .../line-awesome/svg/pastafarianism-solid.svg | 0 .../icons/line-awesome/svg/paste-solid.svg | 0 .../img}/icons/line-awesome/svg/patreon.svg | 0 .../line-awesome/svg/pause-circle-solid.svg | 0 .../icons/line-awesome/svg/pause-circle.svg | 0 .../icons/line-awesome/svg/pause-solid.svg | 0 .../img}/icons/line-awesome/svg/paw-solid.svg | 0 .../img}/icons/line-awesome/svg/paypal.svg | 0 .../icons/line-awesome/svg/peace-solid.svg | 0 .../icons/line-awesome/svg/pen-alt-solid.svg | 0 .../line-awesome/svg/pen-fancy-solid.svg | 0 .../icons/line-awesome/svg/pen-nib-solid.svg | 0 .../img}/icons/line-awesome/svg/pen-solid.svg | 0 .../line-awesome/svg/pen-square-solid.svg | 0 .../line-awesome/svg/pencil-alt-solid.svg | 0 .../line-awesome/svg/pencil-ruler-solid.svg | 0 .../icons/line-awesome/svg/penny-arcade.svg | 0 .../line-awesome/svg/people-carry-solid.svg | 0 .../line-awesome/svg/pepper-hot-solid.svg | 0 .../icons/line-awesome/svg/percent-solid.svg | 0 .../line-awesome/svg/percentage-solid.svg | 0 .../img}/icons/line-awesome/svg/periscope.svg | 0 .../line-awesome/svg/person-booth-solid.svg | 0 .../icons/line-awesome/svg/phabricator.svg | 0 .../line-awesome/svg/phoenix-framework.svg | 0 .../line-awesome/svg/phoenix-squadron.svg | 0 .../line-awesome/svg/phone-alt-solid.svg | 0 .../line-awesome/svg/phone-slash-solid.svg | 0 .../icons/line-awesome/svg/phone-solid.svg | 0 .../svg/phone-square-alt-solid.svg | 0 .../line-awesome/svg/phone-square-solid.svg | 0 .../line-awesome/svg/phone-volume-solid.svg | 0 .../line-awesome/svg/photo-video-solid.svg | 0 .../img}/icons/line-awesome/svg/php.svg | 0 .../icons/line-awesome/svg/pied-piper-alt.svg | 0 .../icons/line-awesome/svg/pied-piper-hat.svg | 0 .../icons/line-awesome/svg/pied-piper-pp.svg | 0 .../icons/line-awesome/svg/pied-piper.svg | 0 .../line-awesome/svg/piggy-bank-solid.svg | 0 .../icons/line-awesome/svg/pills-solid.svg | 0 .../icons/line-awesome/svg/pinterest-p.svg | 0 .../line-awesome/svg/pinterest-square.svg | 0 .../img}/icons/line-awesome/svg/pinterest.svg | 0 .../line-awesome/svg/pizza-slice-solid.svg | 0 .../svg/place-of-worship-solid.svg | 0 .../line-awesome/svg/plane-arrival-solid.svg | 0 .../svg/plane-departure-solid.svg | 0 .../icons/line-awesome/svg/plane-solid.svg | 0 .../line-awesome/svg/play-circle-solid.svg | 0 .../icons/line-awesome/svg/play-circle.svg | 0 .../icons/line-awesome/svg/play-solid.svg | 0 .../icons/line-awesome/svg/playstation.svg | 0 .../icons/line-awesome/svg/plug-solid.svg | 0 .../line-awesome/svg/plus-circle-solid.svg | 0 .../icons/line-awesome/svg/plus-solid.svg | 0 .../line-awesome/svg/plus-square-solid.svg | 0 .../icons/line-awesome/svg/plus-square.svg | 0 .../icons/line-awesome/svg/podcast-solid.svg | 0 .../icons/line-awesome/svg/poll-h-solid.svg | 0 .../icons/line-awesome/svg/poll-solid.svg | 0 .../img}/icons/line-awesome/svg/poo-solid.svg | 0 .../line-awesome/svg/poo-storm-solid.svg | 0 .../icons/line-awesome/svg/poop-solid.svg | 0 .../icons/line-awesome/svg/portrait-solid.svg | 0 .../line-awesome/svg/pound-sign-solid.svg | 0 .../line-awesome/svg/power-off-solid.svg | 0 .../icons/line-awesome/svg/pray-solid.svg | 0 .../line-awesome/svg/praying-hands-solid.svg | 0 .../svg/prescription-bottle-alt-solid.svg | 0 .../svg/prescription-bottle-solid.svg | 0 .../line-awesome/svg/prescription-solid.svg | 0 .../icons/line-awesome/svg/print-solid.svg | 0 .../line-awesome/svg/procedures-solid.svg | 0 .../icons/line-awesome/svg/product-hunt.svg | 0 .../svg/project-diagram-solid.svg | 0 .../img}/icons/line-awesome/svg/pushed.svg | 0 .../line-awesome/svg/puzzle-piece-solid.svg | 0 .../img}/icons/line-awesome/svg/python.svg | 0 .../public/img}/icons/line-awesome/svg/qq.svg | 0 .../icons/line-awesome/svg/qrcode-solid.svg | 0 .../svg/question-circle-solid.svg | 0 .../line-awesome/svg/question-circle.svg | 0 .../icons/line-awesome/svg/question-solid.svg | 0 .../line-awesome/svg/quidditch-solid.svg | 0 .../img}/icons/line-awesome/svg/quinscape.svg | 0 .../img}/icons/line-awesome/svg/quora.svg | 0 .../line-awesome/svg/quote-left-solid.svg | 0 .../line-awesome/svg/quote-right-solid.svg | 0 .../icons/line-awesome/svg/quran-solid.svg | 0 .../img}/icons/line-awesome/svg/r-project.svg | 0 .../line-awesome/svg/radiation-alt-solid.svg | 0 .../line-awesome/svg/radiation-solid.svg | 0 .../icons/line-awesome/svg/rainbow-solid.svg | 0 .../icons/line-awesome/svg/random-solid.svg | 0 .../icons/line-awesome/svg/raspberry-pi.svg | 0 .../img}/icons/line-awesome/svg/ravelry.svg | 0 .../img}/icons/line-awesome/svg/react.svg | 0 .../icons/line-awesome/svg/reacteurope.svg | 0 .../img}/icons/line-awesome/svg/readme.svg | 0 .../img}/icons/line-awesome/svg/rebel.svg | 0 .../icons/line-awesome/svg/receipt-solid.svg | 0 .../line-awesome/svg/record-vinyl-solid.svg | 0 .../icons/line-awesome/svg/recycle-solid.svg | 0 .../img}/icons/line-awesome/svg/red-river.svg | 0 .../icons/line-awesome/svg/reddit-alien.svg | 0 .../icons/line-awesome/svg/reddit-square.svg | 0 .../img}/icons/line-awesome/svg/reddit.svg | 0 .../img}/icons/line-awesome/svg/redhat.svg | 0 .../icons/line-awesome/svg/redo-alt-solid.svg | 0 .../icons/line-awesome/svg/redo-solid.svg | 0 .../line-awesome/svg/registered-solid.svg | 0 .../icons/line-awesome/svg/registered.svg | 0 .../line-awesome/svg/remove-format-solid.svg | 0 .../img}/icons/line-awesome/svg/renren.svg | 0 .../line-awesome/svg/reply-all-solid.svg | 0 .../icons/line-awesome/svg/reply-solid.svg | 0 .../img}/icons/line-awesome/svg/replyd.svg | 0 .../line-awesome/svg/republican-solid.svg | 0 .../icons/line-awesome/svg/researchgate.svg | 0 .../img}/icons/line-awesome/svg/resolving.svg | 0 .../icons/line-awesome/svg/restroom-solid.svg | 0 .../icons/line-awesome/svg/retweet-solid.svg | 0 .../img}/icons/line-awesome/svg/rev.svg | 0 .../icons/line-awesome/svg/ribbon-solid.svg | 0 .../icons/line-awesome/svg/ring-solid.svg | 0 .../icons/line-awesome/svg/road-solid.svg | 0 .../icons/line-awesome/svg/robot-solid.svg | 0 .../icons/line-awesome/svg/rocket-solid.svg | 0 .../icons/line-awesome/svg/rocketchat.svg | 0 .../img}/icons/line-awesome/svg/rockrms.svg | 0 .../icons/line-awesome/svg/route-solid.svg | 0 .../img}/icons/line-awesome/svg/rss-solid.svg | 0 .../line-awesome/svg/rss-square-solid.svg | 0 .../line-awesome/svg/ruble-sign-solid.svg | 0 .../line-awesome/svg/ruler-combined-solid.svg | 0 .../svg/ruler-horizontal-solid.svg | 0 .../icons/line-awesome/svg/ruler-solid.svg | 0 .../line-awesome/svg/ruler-vertical-solid.svg | 0 .../icons/line-awesome/svg/running-solid.svg | 0 .../line-awesome/svg/rupee-sign-solid.svg | 0 .../icons/line-awesome/svg/sad-cry-solid.svg | 0 .../img}/icons/line-awesome/svg/sad-cry.svg | 0 .../icons/line-awesome/svg/sad-tear-solid.svg | 0 .../img}/icons/line-awesome/svg/sad-tear.svg | 0 .../img}/icons/line-awesome/svg/safari.svg | 0 .../icons/line-awesome/svg/salesforce.svg | 0 .../img}/icons/line-awesome/svg/sass.svg | 0 .../line-awesome/svg/satellite-dish-solid.svg | 0 .../line-awesome/svg/satellite-solid.svg | 0 .../icons/line-awesome/svg/save-solid.svg | 0 .../img}/icons/line-awesome/svg/save.svg | 0 .../img}/icons/line-awesome/svg/schlix.svg | 0 .../icons/line-awesome/svg/school-solid.svg | 0 .../line-awesome/svg/screwdriver-solid.svg | 0 .../img}/icons/line-awesome/svg/scribd.svg | 0 .../icons/line-awesome/svg/scroll-solid.svg | 0 .../icons/line-awesome/svg/sd-card-solid.svg | 0 .../line-awesome/svg/search-dollar-solid.svg | 0 .../svg/search-location-solid.svg | 0 .../line-awesome/svg/search-minus-solid.svg | 0 .../line-awesome/svg/search-plus-solid.svg | 0 .../icons/line-awesome/svg/search-solid.svg | 0 .../icons/line-awesome/svg/searchengin.svg | 0 .../icons/line-awesome/svg/seedling-solid.svg | 0 .../img}/icons/line-awesome/svg/sellcast.svg | 0 .../img}/icons/line-awesome/svg/sellsy.svg | 0 .../icons/line-awesome/svg/server-solid.svg | 0 .../icons/line-awesome/svg/servicestack.svg | 0 .../icons/line-awesome/svg/shapes-solid.svg | 0 .../line-awesome/svg/share-alt-solid.svg | 0 .../svg/share-alt-square-solid.svg | 0 .../icons/line-awesome/svg/share-solid.svg | 0 .../line-awesome/svg/share-square-solid.svg | 0 .../icons/line-awesome/svg/share-square.svg | 0 .../line-awesome/svg/shekel-sign-solid.svg | 0 .../line-awesome/svg/shield-alt-solid.svg | 0 .../icons/line-awesome/svg/ship-solid.svg | 0 .../line-awesome/svg/shipping-fast-solid.svg | 0 .../icons/line-awesome/svg/shirtsinbulk.svg | 0 .../line-awesome/svg/shoe-prints-solid.svg | 0 .../line-awesome/svg/shopping-bag-solid.svg | 0 .../svg/shopping-basket-solid.svg | 0 .../line-awesome/svg/shopping-cart-solid.svg | 0 .../img}/icons/line-awesome/svg/shopware.svg | 0 .../icons/line-awesome/svg/shower-solid.svg | 0 .../line-awesome/svg/shuttle-van-solid.svg | 0 .../line-awesome/svg/sign-in-alt-solid.svg | 0 .../line-awesome/svg/sign-language-solid.svg | 0 .../line-awesome/svg/sign-out-alt-solid.svg | 0 .../icons/line-awesome/svg/sign-solid.svg | 0 .../icons/line-awesome/svg/signal-solid.svg | 0 .../line-awesome/svg/signature-solid.svg | 0 .../icons/line-awesome/svg/sim-card-solid.svg | 0 .../icons/line-awesome/svg/simplybuilt.svg | 0 .../img}/icons/line-awesome/svg/sistrix.svg | 0 .../icons/line-awesome/svg/sitemap-solid.svg | 0 .../img}/icons/line-awesome/svg/sith.svg | 0 .../icons/line-awesome/svg/skating-solid.svg | 0 .../img}/icons/line-awesome/svg/sketch.svg | 0 .../line-awesome/svg/skiing-nordic-solid.svg | 0 .../icons/line-awesome/svg/skiing-solid.svg | 0 .../svg/skull-crossbones-solid.svg | 0 .../icons/line-awesome/svg/skull-solid.svg | 0 .../img}/icons/line-awesome/svg/skyatlas.svg | 0 .../img}/icons/line-awesome/svg/skype.svg | 0 .../icons/line-awesome/svg/slack-hash.svg | 0 .../img}/icons/line-awesome/svg/slack.svg | 0 .../icons/line-awesome/svg/slash-solid.svg | 0 .../icons/line-awesome/svg/sleigh-solid.svg | 0 .../line-awesome/svg/sliders-h-solid.svg | 0 .../icons/line-awesome/svg/slideshare.svg | 0 .../line-awesome/svg/smile-beam-solid.svg | 0 .../icons/line-awesome/svg/smile-beam.svg | 0 .../icons/line-awesome/svg/smile-solid.svg | 0 .../line-awesome/svg/smile-wink-solid.svg | 0 .../icons/line-awesome/svg/smile-wink.svg | 0 .../img}/icons/line-awesome/svg/smile.svg | 0 .../icons/line-awesome/svg/smog-solid.svg | 0 .../line-awesome/svg/smoking-ban-solid.svg | 0 .../icons/line-awesome/svg/smoking-solid.svg | 0 .../img}/icons/line-awesome/svg/sms-solid.svg | 0 .../icons/line-awesome/svg/snapchat-ghost.svg | 0 .../line-awesome/svg/snapchat-square.svg | 0 .../img}/icons/line-awesome/svg/snapchat.svg | 0 .../line-awesome/svg/snowboarding-solid.svg | 0 .../line-awesome/svg/snowflake-solid.svg | 0 .../img}/icons/line-awesome/svg/snowflake.svg | 0 .../icons/line-awesome/svg/snowman-solid.svg | 0 .../icons/line-awesome/svg/snowplow-solid.svg | 0 .../icons/line-awesome/svg/socks-solid.svg | 0 .../line-awesome/svg/solar-panel-solid.svg | 0 .../svg/sort-alpha-down-alt-solid.svg | 0 .../svg/sort-alpha-down-solid.svg | 0 .../svg/sort-alpha-up-alt-solid.svg | 0 .../line-awesome/svg/sort-alpha-up-solid.svg | 0 .../svg/sort-amount-down-alt-solid.svg | 0 .../svg/sort-amount-down-solid.svg | 0 .../svg/sort-amount-up-alt-solid.svg | 0 .../line-awesome/svg/sort-amount-up-solid.svg | 0 .../line-awesome/svg/sort-down-solid.svg | 0 .../svg/sort-numeric-down-alt-solid.svg | 0 .../svg/sort-numeric-down-solid.svg | 0 .../svg/sort-numeric-up-alt-solid.svg | 0 .../svg/sort-numeric-up-solid.svg | 0 .../icons/line-awesome/svg/sort-solid.svg | 0 .../icons/line-awesome/svg/sort-up-solid.svg | 0 .../icons/line-awesome/svg/soundcloud.svg | 0 .../icons/line-awesome/svg/sourcetree.svg | 0 .../img}/icons/line-awesome/svg/spa-solid.svg | 0 .../line-awesome/svg/space-shuttle-solid.svg | 0 .../img}/icons/line-awesome/svg/speakap.svg | 0 .../icons/line-awesome/svg/speaker-deck.svg | 0 .../line-awesome/svg/spell-check-solid.svg | 0 .../icons/line-awesome/svg/spider-solid.svg | 0 .../icons/line-awesome/svg/spinner-solid.svg | 0 .../icons/line-awesome/svg/splotch-solid.svg | 0 .../img}/icons/line-awesome/svg/spotify.svg | 0 .../line-awesome/svg/spray-can-solid.svg | 0 .../line-awesome/svg/square-full-solid.svg | 0 .../svg/square-root-alt-solid.svg | 0 .../icons/line-awesome/svg/square-solid.svg | 0 .../img}/icons/line-awesome/svg/square.svg | 0 .../icons/line-awesome/svg/squarespace.svg | 0 .../icons/line-awesome/svg/stack-exchange.svg | 0 .../icons/line-awesome/svg/stack-overflow.svg | 0 .../img}/icons/line-awesome/svg/stackpath.svg | 0 .../icons/line-awesome/svg/stamp-solid.svg | 0 .../svg/star-and-crescent-solid.svg | 0 .../line-awesome/svg/star-half-alt-solid.svg | 0 .../line-awesome/svg/star-half-solid.svg | 0 .../img}/icons/line-awesome/svg/star-half.svg | 0 .../line-awesome/svg/star-of-david-solid.svg | 0 .../line-awesome/svg/star-of-life-solid.svg | 0 .../icons/line-awesome/svg/star-solid.svg | 0 .../img}/icons/line-awesome/svg/star.svg | 0 .../icons/line-awesome/svg/staylinked.svg | 0 .../icons/line-awesome/svg/steam-square.svg | 0 .../icons/line-awesome/svg/steam-symbol.svg | 0 .../img}/icons/line-awesome/svg/steam.svg | 0 .../line-awesome/svg/step-backward-solid.svg | 0 .../line-awesome/svg/step-forward-solid.svg | 0 .../line-awesome/svg/stethoscope-solid.svg | 0 .../icons/line-awesome/svg/sticker-mule.svg | 0 .../line-awesome/svg/sticky-note-solid.svg | 0 .../icons/line-awesome/svg/sticky-note.svg | 0 .../line-awesome/svg/stop-circle-solid.svg | 0 .../icons/line-awesome/svg/stop-circle.svg | 0 .../icons/line-awesome/svg/stop-solid.svg | 0 .../line-awesome/svg/stopwatch-solid.svg | 0 .../line-awesome/svg/store-alt-solid.svg | 0 .../icons/line-awesome/svg/store-solid.svg | 0 .../img}/icons/line-awesome/svg/strava.svg | 0 .../icons/line-awesome/svg/stream-solid.svg | 0 .../line-awesome/svg/street-view-solid.svg | 0 .../line-awesome/svg/strikethrough-solid.svg | 0 .../img}/icons/line-awesome/svg/stripe-s.svg | 0 .../img}/icons/line-awesome/svg/stripe.svg | 0 .../line-awesome/svg/stroopwafel-solid.svg | 0 .../icons/line-awesome/svg/studiovinari.svg | 0 .../line-awesome/svg/stumbleupon-circle.svg | 0 .../icons/line-awesome/svg/stumbleupon.svg | 0 .../line-awesome/svg/subscript-solid.svg | 0 .../icons/line-awesome/svg/subway-solid.svg | 0 .../svg/suitcase-rolling-solid.svg | 0 .../icons/line-awesome/svg/suitcase-solid.svg | 0 .../img}/icons/line-awesome/svg/sun-solid.svg | 0 .../img}/icons/line-awesome/svg/sun.svg | 0 .../icons/line-awesome/svg/superpowers.svg | 0 .../line-awesome/svg/superscript-solid.svg | 0 .../img}/icons/line-awesome/svg/supple.svg | 0 .../icons/line-awesome/svg/surprise-solid.svg | 0 .../img}/icons/line-awesome/svg/surprise.svg | 0 .../img}/icons/line-awesome/svg/suse.svg | 0 .../line-awesome/svg/swatchbook-solid.svg | 0 .../img}/icons/line-awesome/svg/swift.svg | 0 .../icons/line-awesome/svg/swimmer-solid.svg | 0 .../line-awesome/svg/swimming-pool-solid.svg | 0 .../img}/icons/line-awesome/svg/symfony.svg | 0 .../line-awesome/svg/synagogue-solid.svg | 0 .../icons/line-awesome/svg/sync-alt-solid.svg | 0 .../icons/line-awesome/svg/sync-solid.svg | 0 .../icons/line-awesome/svg/syringe-solid.svg | 0 .../icons/line-awesome/svg/table-solid.svg | 0 .../line-awesome/svg/table-tennis-solid.svg | 0 .../line-awesome/svg/tablet-alt-solid.svg | 0 .../icons/line-awesome/svg/tablet-solid.svg | 0 .../icons/line-awesome/svg/tablets-solid.svg | 0 .../line-awesome/svg/tachometer-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/tag-solid.svg | 0 .../icons/line-awesome/svg/tags-solid.svg | 0 .../icons/line-awesome/svg/tape-solid.svg | 0 .../icons/line-awesome/svg/tasks-solid.svg | 0 .../icons/line-awesome/svg/taxi-solid.svg | 0 .../img}/icons/line-awesome/svg/teamspeak.svg | 0 .../line-awesome/svg/teeth-open-solid.svg | 0 .../icons/line-awesome/svg/teeth-solid.svg | 0 .../icons/line-awesome/svg/telegram-plane.svg | 0 .../img}/icons/line-awesome/svg/telegram.svg | 0 .../svg/temperature-high-solid.svg | 0 .../svg/temperature-low-solid.svg | 0 .../icons/line-awesome/svg/tencent-weibo.svg | 0 .../icons/line-awesome/svg/tenge-solid.svg | 0 .../icons/line-awesome/svg/terminal-solid.svg | 0 .../line-awesome/svg/text-height-solid.svg | 0 .../line-awesome/svg/text-width-solid.svg | 0 .../icons/line-awesome/svg/th-large-solid.svg | 0 .../icons/line-awesome/svg/th-list-solid.svg | 0 .../img}/icons/line-awesome/svg/th-solid.svg | 0 .../icons/line-awesome/svg/the-red-yeti.svg | 0 .../line-awesome/svg/theater-masks-solid.svg | 0 .../img}/icons/line-awesome/svg/themeco.svg | 0 .../img}/icons/line-awesome/svg/themeisle.svg | 0 .../svg/thermometer-empty-solid.svg | 0 .../svg/thermometer-full-solid.svg | 0 .../svg/thermometer-half-solid.svg | 0 .../svg/thermometer-quarter-solid.svg | 0 .../line-awesome/svg/thermometer-solid.svg | 0 .../svg/thermometer-three-quarters-solid.svg | 0 .../icons/line-awesome/svg/think-peaks.svg | 0 .../line-awesome/svg/thumbs-down-solid.svg | 0 .../icons/line-awesome/svg/thumbs-down.svg | 0 .../line-awesome/svg/thumbs-up-solid.svg | 0 .../img}/icons/line-awesome/svg/thumbs-up.svg | 0 .../line-awesome/svg/thumbtack-solid.svg | 0 .../line-awesome/svg/ticket-alt-solid.svg | 0 .../line-awesome/svg/times-circle-solid.svg | 0 .../icons/line-awesome/svg/times-circle.svg | 0 .../icons/line-awesome/svg/times-solid.svg | 0 .../line-awesome/svg/tint-slash-solid.svg | 0 .../icons/line-awesome/svg/tint-solid.svg | 0 .../icons/line-awesome/svg/tired-solid.svg | 0 .../img}/icons/line-awesome/svg/tired.svg | 0 .../line-awesome/svg/toggle-off-solid.svg | 0 .../line-awesome/svg/toggle-on-solid.svg | 0 .../line-awesome/svg/toilet-paper-solid.svg | 0 .../icons/line-awesome/svg/toilet-solid.svg | 0 .../icons/line-awesome/svg/toolbox-solid.svg | 0 .../icons/line-awesome/svg/tools-solid.svg | 0 .../icons/line-awesome/svg/tooth-solid.svg | 0 .../icons/line-awesome/svg/torah-solid.svg | 0 .../line-awesome/svg/torii-gate-solid.svg | 0 .../icons/line-awesome/svg/tractor-solid.svg | 0 .../line-awesome/svg/trade-federation.svg | 0 .../line-awesome/svg/trademark-solid.svg | 0 .../line-awesome/svg/traffic-light-solid.svg | 0 .../icons/line-awesome/svg/train-solid.svg | 0 .../icons/line-awesome/svg/tram-solid.svg | 0 .../svg/transgender-alt-solid.svg | 0 .../line-awesome/svg/transgender-solid.svg | 0 .../line-awesome/svg/trash-alt-solid.svg | 0 .../img}/icons/line-awesome/svg/trash-alt.svg | 0 .../svg/trash-restore-alt-solid.svg | 0 .../line-awesome/svg/trash-restore-solid.svg | 0 .../icons/line-awesome/svg/trash-solid.svg | 0 .../icons/line-awesome/svg/tree-solid.svg | 0 .../img}/icons/line-awesome/svg/trello.svg | 0 .../icons/line-awesome/svg/tripadvisor.svg | 0 .../icons/line-awesome/svg/trophy-solid.svg | 0 .../line-awesome/svg/truck-loading-solid.svg | 0 .../line-awesome/svg/truck-monster-solid.svg | 0 .../line-awesome/svg/truck-moving-solid.svg | 0 .../line-awesome/svg/truck-pickup-solid.svg | 0 .../icons/line-awesome/svg/truck-solid.svg | 0 .../icons/line-awesome/svg/tshirt-solid.svg | 0 .../img}/icons/line-awesome/svg/tty-solid.svg | 0 .../icons/line-awesome/svg/tumblr-square.svg | 0 .../img}/icons/line-awesome/svg/tumblr.svg | 0 .../img}/icons/line-awesome/svg/tv-solid.svg | 0 .../img}/icons/line-awesome/svg/twitch.svg | 0 .../icons/line-awesome/svg/twitter-square.svg | 0 .../img}/icons/line-awesome/svg/twitter.svg | 0 .../img}/icons/line-awesome/svg/typo3.svg | 0 .../img}/icons/line-awesome/svg/uber.svg | 0 .../img}/icons/line-awesome/svg/ubuntu.svg | 0 .../img}/icons/line-awesome/svg/uikit.svg | 0 .../img}/icons/line-awesome/svg/umbraco.svg | 0 .../line-awesome/svg/umbrella-beach-solid.svg | 0 .../icons/line-awesome/svg/umbrella-solid.svg | 0 .../line-awesome/svg/underline-solid.svg | 0 .../icons/line-awesome/svg/undo-alt-solid.svg | 0 .../icons/line-awesome/svg/undo-solid.svg | 0 .../icons/line-awesome/svg/uniregistry.svg | 0 .../svg/universal-access-solid.svg | 0 .../line-awesome/svg/university-solid.svg | 0 .../icons/line-awesome/svg/unlink-solid.svg | 0 .../line-awesome/svg/unlock-alt-solid.svg | 0 .../icons/line-awesome/svg/unlock-solid.svg | 0 .../img}/icons/line-awesome/svg/untappd.svg | 0 .../icons/line-awesome/svg/upload-solid.svg | 0 .../img}/icons/line-awesome/svg/ups.svg | 0 .../img}/icons/line-awesome/svg/usb.svg | 0 .../line-awesome/svg/user-alt-slash-solid.svg | 0 .../icons/line-awesome/svg/user-alt-solid.svg | 0 .../line-awesome/svg/user-astronaut-solid.svg | 0 .../line-awesome/svg/user-check-solid.svg | 0 .../line-awesome/svg/user-circle-solid.svg | 0 .../icons/line-awesome/svg/user-circle.svg | 0 .../line-awesome/svg/user-clock-solid.svg | 0 .../icons/line-awesome/svg/user-cog-solid.svg | 0 .../line-awesome/svg/user-edit-solid.svg | 0 .../line-awesome/svg/user-friends-solid.svg | 0 .../line-awesome/svg/user-graduate-solid.svg | 0 .../line-awesome/svg/user-injured-solid.svg | 0 .../line-awesome/svg/user-lock-solid.svg | 0 .../icons/line-awesome/svg/user-md-solid.svg | 0 .../line-awesome/svg/user-minus-solid.svg | 0 .../line-awesome/svg/user-ninja-solid.svg | 0 .../line-awesome/svg/user-nurse-solid.svg | 0 .../line-awesome/svg/user-plus-solid.svg | 0 .../line-awesome/svg/user-secret-solid.svg | 0 .../line-awesome/svg/user-shield-solid.svg | 0 .../line-awesome/svg/user-slash-solid.svg | 0 .../icons/line-awesome/svg/user-solid.svg | 0 .../icons/line-awesome/svg/user-tag-solid.svg | 0 .../icons/line-awesome/svg/user-tie-solid.svg | 0 .../line-awesome/svg/user-times-solid.svg | 0 .../img}/icons/line-awesome/svg/user.svg | 0 .../line-awesome/svg/users-cog-solid.svg | 0 .../icons/line-awesome/svg/users-solid.svg | 0 .../img}/icons/line-awesome/svg/usps.svg | 0 .../img}/icons/line-awesome/svg/ussunnah.svg | 0 .../line-awesome/svg/utensil-spoon-solid.svg | 0 .../icons/line-awesome/svg/utensils-solid.svg | 0 .../img}/icons/line-awesome/svg/vaadin.svg | 0 .../line-awesome/svg/vector-square-solid.svg | 0 .../line-awesome/svg/venus-double-solid.svg | 0 .../line-awesome/svg/venus-mars-solid.svg | 0 .../icons/line-awesome/svg/venus-solid.svg | 0 .../img}/icons/line-awesome/svg/viacoin.svg | 0 .../icons/line-awesome/svg/viadeo-square.svg | 0 .../img}/icons/line-awesome/svg/viadeo.svg | 0 .../icons/line-awesome/svg/vial-solid.svg | 0 .../icons/line-awesome/svg/vials-solid.svg | 0 .../img}/icons/line-awesome/svg/viber.svg | 0 .../line-awesome/svg/video-slash-solid.svg | 0 .../icons/line-awesome/svg/video-solid.svg | 0 .../icons/line-awesome/svg/vihara-solid.svg | 0 .../icons/line-awesome/svg/vimeo-square.svg | 0 .../img}/icons/line-awesome/svg/vimeo-v.svg | 0 .../img}/icons/line-awesome/svg/vimeo.svg | 0 .../img}/icons/line-awesome/svg/vine.svg | 0 .../public/img}/icons/line-awesome/svg/vk.svg | 0 .../img}/icons/line-awesome/svg/vnv.svg | 0 .../line-awesome/svg/voicemail-solid.svg | 0 .../svg/volleyball-ball-solid.svg | 0 .../line-awesome/svg/volume-down-solid.svg | 0 .../line-awesome/svg/volume-mute-solid.svg | 0 .../line-awesome/svg/volume-off-solid.svg | 0 .../line-awesome/svg/volume-up-solid.svg | 0 .../icons/line-awesome/svg/vote-yea-solid.svg | 0 .../line-awesome/svg/vr-cardboard-solid.svg | 0 .../img}/icons/line-awesome/svg/vuejs.svg | 0 .../icons/line-awesome/svg/walking-solid.svg | 0 .../icons/line-awesome/svg/wallet-solid.svg | 0 .../line-awesome/svg/warehouse-solid.svg | 0 .../icons/line-awesome/svg/water-solid.svg | 0 .../line-awesome/svg/wave-square-solid.svg | 0 .../img}/icons/line-awesome/svg/waze.svg | 0 .../img}/icons/line-awesome/svg/weebly.svg | 0 .../img}/icons/line-awesome/svg/weibo.svg | 0 .../line-awesome/svg/weight-hanging-solid.svg | 0 .../icons/line-awesome/svg/weight-solid.svg | 0 .../img}/icons/line-awesome/svg/weixin.svg | 0 .../line-awesome/svg/whatsapp-square.svg | 0 .../img}/icons/line-awesome/svg/whatsapp.svg | 0 .../line-awesome/svg/wheelchair-solid.svg | 0 .../img}/icons/line-awesome/svg/whmcs.svg | 0 .../icons/line-awesome/svg/wifi-solid.svg | 0 .../icons/line-awesome/svg/wikipedia-w.svg | 0 .../icons/line-awesome/svg/wind-solid.svg | 0 .../line-awesome/svg/window-close-solid.svg | 0 .../icons/line-awesome/svg/window-close.svg | 0 .../svg/window-maximize-solid.svg | 0 .../line-awesome/svg/window-maximize.svg | 0 .../svg/window-minimize-solid.svg | 0 .../line-awesome/svg/window-minimize.svg | 0 .../line-awesome/svg/window-restore-solid.svg | 0 .../icons/line-awesome/svg/window-restore.svg | 0 .../img}/icons/line-awesome/svg/windows.svg | 0 .../line-awesome/svg/wine-bottle-solid.svg | 0 .../line-awesome/svg/wine-glass-alt-solid.svg | 0 .../line-awesome/svg/wine-glass-solid.svg | 0 .../img}/icons/line-awesome/svg/wix.svg | 0 .../line-awesome/svg/wizards-of-the-coast.svg | 0 .../line-awesome/svg/wolf-pack-battalion.svg | 0 .../icons/line-awesome/svg/won-sign-solid.svg | 0 .../line-awesome/svg/wordpress-simple.svg | 0 .../img}/icons/line-awesome/svg/wordpress.svg | 0 .../icons/line-awesome/svg/wpbeginner.svg | 0 .../icons/line-awesome/svg/wpexplorer.svg | 0 .../img}/icons/line-awesome/svg/wpforms.svg | 0 .../img}/icons/line-awesome/svg/wpressr.svg | 0 .../icons/line-awesome/svg/wrench-solid.svg | 0 .../icons/line-awesome/svg/x-ray-solid.svg | 0 .../img}/icons/line-awesome/svg/xbox.svg | 0 .../icons/line-awesome/svg/xing-square.svg | 0 .../img}/icons/line-awesome/svg/xing.svg | 0 .../icons/line-awesome/svg/y-combinator.svg | 0 .../img}/icons/line-awesome/svg/yahoo.svg | 0 .../img}/icons/line-awesome/svg/yammer.svg | 0 .../line-awesome/svg/yandex-international.svg | 0 .../img}/icons/line-awesome/svg/yandex.svg | 0 .../img}/icons/line-awesome/svg/yarn.svg | 0 .../img}/icons/line-awesome/svg/yelp.svg | 0 .../icons/line-awesome/svg/yen-sign-solid.svg | 0 .../icons/line-awesome/svg/yin-yang-solid.svg | 0 .../img}/icons/line-awesome/svg/yoast.svg | 0 .../icons/line-awesome/svg/youtube-square.svg | 0 .../img}/icons/line-awesome/svg/youtube.svg | 0 .../img}/icons/line-awesome/svg/zhihu.svg | 0 .../docs/public}/img/index/APIs-dark.svg | 0 .../docs/public}/img/index/APIs-light.svg | 0 .../docs/public}/img/index/Concepts-dark.svg | 0 .../docs/public}/img/index/Concepts-light.svg | 0 .../docs/public}/img/index/Guides-dark.svg | 0 .../docs/public}/img/index/Guides-light.svg | 0 .../docs/public}/img/index/Manual-dark.svg | 0 .../docs/public}/img/index/Manual-light.svg | 0 .../public}/img/index/Quickstarts-dark.svg | 0 .../public}/img/index/Quickstarts-light.svg | 0 .../mongodb-charts-app-create-light.png | Bin .../mongodb-charts-auth-provider-light.png | Bin .../img/java-spring/api-create-auth.png | Bin .../api-create-clientid-secret.png | Bin .../public}/img/java-spring/api-create.png | Bin .../img/java-spring/api-project-auth.png | Bin .../img/java-spring/api-project-role.png | Bin .../img/java-spring/app-create-auth.png | Bin .../img/java-spring/app-create-clientid.png | Bin .../img/java-spring/app-create-redirect.png | Bin .../public}/img/java-spring/app-create.png | Bin .../public}/img/java-spring/app-profile.png | Bin .../docs/public/img}/logos/oidc-cert.png | Bin .../img}/logos/zitadel-logo-dark@2x.png | Bin .../img}/logos/zitadel-logo-light@2x.png | Bin .../manage/users/enable-scim-provisioning.png | Bin .../img/manage/users/provisioning-to-app.png | Bin .../users/select-provisioning-actions.png | Bin .../public}/img/manuals/console_add_otp.gif | Bin .../console_add_passwordless_direct.gif | Bin .../public}/img/manuals/console_add_u2f.gif | Bin .../public}/img/manuals/console_profile.png | Bin .../img/manuals/console_profile_loginname.png | Bin .../manuals/console_profile_mfa_webauthn.gif | Bin .../manuals/console_profile_passwordless.gif | Bin .../img/manuals/errors/block-cookies.png | Bin .../img/manuals/errors/same-site-strict.png | Bin .../portal/customer_portal_add_admin.png | Bin .../portal/customer_portal_add_domain.png | Bin .../customer_portal_administrator_list.png | Bin .../portal/customer_portal_billing.png | Bin .../portal/customer_portal_delete_admin.png | Bin .../customer_portal_general_support.png | Bin ...customer_portal_general_support_inkeep.png | Bin .../customer_portal_instance_detail.png | Bin .../customer_portal_instance_overview.png | Bin .../portal/customer_portal_invoices.png | Bin .../portal/customer_portal_landing_page.png | Bin .../portal/customer_portal_landing_page_2.png | Bin .../portal/customer_portal_landing_page_3.png | Bin .../portal/customer_portal_new_instance.gif | Bin .../customer_portal_settings_general.png | Bin .../portal/customer_portal_support.png | Bin .../portal/customer_portal_support_2.png | Bin .../portal/customer_portal_upgrade_tier.png | Bin .../portal/portal_instance_detail_domain.png | Bin .../docs/public}/img/nextjs-b2b/home.png | Bin .../docs/public}/img/nextjs/app-create.png | Bin .../img/oidc/auth0/auth0-create-app.png | Bin .../img/oidc/auth0/auth0-enable-app.png | Bin .../public}/img/oidc/auth0/auth0-full.png | Bin .../public}/img/oidc/auth0/auth0-init-app.png | Bin .../docs/public}/img/oidc/auth0/auth0-try.png | Bin .../public}/img/oidc/auth0/auth0-works.png | Bin .../docs/public}/img/preview.png | Bin .../public}/img/product/release-cycle.png | Bin .../docs/public}/img/python-flask/1.png | Bin .../docs/public}/img/python-flask/2.png | Bin .../docs/public}/img/python-flask/3.png | Bin .../docs/public}/img/react/app-create.png | Bin .../docs/public}/img/react/app-screen.png | Bin .../docs/public}/img/react/project-authz.png | Bin .../docs/public}/img/react/project-role.png | Bin .../img/saml/atlassian/atlassian-01.png | Bin .../img/saml/atlassian/atlassian-02.png | Bin .../img/saml/atlassian/atlassian-03.png | Bin .../img/saml/atlassian/atlassian-04.png | Bin .../img/saml/atlassian/atlassian-05.png | Bin .../img/saml/atlassian/atlassian-06.png | Bin .../img/saml/auth0/auth_enterprise.png | Bin .../img/saml/auth0/auth_enterprise_try.png | Bin .../public}/img/saml/auth0/connection.png | Bin .../img/saml/auth0/enterprise_connections.png | Bin .../docs/public}/img/saml/aws/change_idp.png | Bin .../public}/img/saml/aws/configure_idp.png | Bin .../public}/img/saml/gitlab/gitlab-01.png | Bin .../public}/img/saml/gitlab/gitlab-02.png | Bin .../public}/img/saml/gitlab/gitlab-03.png | Bin .../img/saml/pingidentity/conf_connection.png | Bin .../saml/pingidentity/conf_idp_connection.png | Bin .../saml/pingidentity/create_idp_profile.png | Bin .../pingidentity/idp_idp_configuration.png | Bin .../saml/pingidentity/idp_p1_connection.png | Bin .../img/saml/zitadel/application_saml.png | Bin .../saml/zitadel/application_saml_create.png | Bin .../zitadel/application_saml_metadata.png | Bin .../docs/public}/img/saml/zitadel/project.png | Bin .../docs/public}/img/sdk-examples/console.png | Bin .../check_for_project_on_authentication.png | Bin .../img/support/login_not_possible_error.png | Bin .../support/project_grant_for_customer_b.png | Bin .../img/support/project_grant_missing.png | Bin .../public}/img/symfony/app-auth-method.png | Bin .../docs/public}/img/symfony/app-create.png | Bin .../public}/img/symfony/app-redirects.png | Bin .../img/symfony/project-authorizations.png | Bin .../public}/img/symfony/project-roles.png | Bin .../public}/img/symfony/project-settings.png | Bin .../docs/public}/img/tech/android.svg | 0 .../docs/public}/img/tech/angular.svg | 32 +- .../docs/public}/img/tech/aspnet.png | Bin .../docs/public}/img/tech/astro.svg | 0 .../docs/public}/img/tech/dart.svg | 0 .../docs/public}/img/tech/django.png | Bin .../docs/public}/img/tech/django.svg | 0 .../docs/public}/img/tech/dotnet.svg | 0 .../docs/public}/img/tech/elixir.svg | 0 .../docs/public}/img/tech/expressjs.svg | 0 .../docs/public}/img/tech/fastapi.svg | 0 .../docs/public}/img/tech/fastify.svg | 0 .../docs/public}/img/tech/flask.svg | 0 .../docs/public}/img/tech/flasklight.svg | 0 .../docs/public}/img/tech/flutter.svg | 0 .../docs/public}/img/tech/github.svg | 0 .../docs/public}/img/tech/golang.svg | 0 .../docs/public}/img/tech/hono.svg | 0 .../docs/public}/img/tech/java.svg | 0 .../docs/public}/img/tech/javascript.svg | 0 .../docs/public}/img/tech/laravel.svg | 0 .../docs/public}/img/tech/nestjs.svg | 0 .../docs/public}/img/tech/net.svg | 0 .../docs/public}/img/tech/nextjs.svg | 0 .../docs/public}/img/tech/nextjslight.svg | 0 .../docs/public}/img/tech/nodejs.svg | 0 .../docs/public}/img/tech/nuxtjs.svg | 0 .../docs/public}/img/tech/oauth.svg | 0 .../docs/public}/img/tech/oauth2-proxy.svg | 0 .../docs/public}/img/tech/passportjs.svg | 0 .../docs/public}/img/tech/php.svg | 0 .../docs/public}/img/tech/pylon.svg | 0 .../docs/public}/img/tech/python.svg | 0 .../docs/public}/img/tech/qwik.svg | 0 .../docs/public}/img/tech/react.png | Bin .../docs/public}/img/tech/react.svg | 0 .../docs/public}/img/tech/ruby.svg | 0 .../docs/public}/img/tech/rust.svg | 0 .../docs/public}/img/tech/rustlight.svg | 0 .../docs/public}/img/tech/solidstart.svg | 0 .../docs/public}/img/tech/spring.svg | 0 .../docs/public}/img/tech/sveltekit.svg | 0 .../docs/public}/img/tech/symfony.svg | 0 .../docs/public}/img/tech/vue.svg | 0 .../img/typescript-login-architecture.png | Bin .../img/undraw_docusaurus_mountain.svg | 0 .../public}/img/undraw_docusaurus_react.svg | 0 .../public}/img/undraw_docusaurus_tree.svg | 0 .../docs/public}/img/vue/app-create.png | Bin .../docs/public}/img/vue/app-screen.png | Bin .../docs/public}/img/vue/project-authz.png | Bin .../docs/public}/img/vue/project-role.png | Bin .../public}/img/vue/tick-refresh-token.png | Bin .../img/zitadel_cluster_architecture.png | Bin .../img/zitadel_multicluster_architecture.png | Bin .../img/zitadel_software_architecture.png | Bin .../static/img => apps/docs/public}/logo.svg | 0 .../static => apps/docs/public}/security.txt | 0 .../docs/public}/zitadel-logo-dark.svg | 0 .../docs/public}/zitadel-logo-light.svg | 0 .../public}/zitadel-logo-solo-darkdesign.svg | 0 .../docs/public}/zitadel-logo-solo-light.png | Bin apps/docs/redirects.json | 3157 +++ apps/docs/scripts/check-links.mts | 286 + apps/docs/scripts/clean-openapi.mts | 89 + apps/docs/scripts/clean.mjs | 58 + apps/docs/scripts/fetch-remote-content.mjs | 547 + apps/docs/scripts/generate-api-reference.mts | 241 + apps/docs/scripts/generate-index-pages.ts | 236 + apps/docs/scripts/generate-proto-docs.mjs | 206 + apps/docs/scripts/inspect-toc-endpoints.mts | 17 + apps/docs/scripts/loader.mjs | 100 + apps/docs/scripts/match-redirects.mjs | 199 + apps/docs/scripts/relink-images.mjs | 71 + apps/docs/scripts/test-glob.mjs | 12 + apps/docs/scripts/validate-redirects.mjs | 91 + apps/docs/source.config.ts | 72 + .../machine_jwt_profile_grant/output.json | 1803 ++ .../machine_jwt_profile_grant/output.json | 1803 ++ .../machine_jwt_profile_grant/output.json | 1572 ++ .../v2.70.0/oidc_session/output.json | 7213 ++++++ .../benchmarks/v4/add_session/output.json | 3604 +++ .../v4/human_password_login/output.json | 10841 +++++++++ .../data/benchmarks/v4/introspect/output.json | 1811 ++ .../output.json | 3604 +++ .../v4/machine_jwt_profile_grant/output.json | 1803 ++ .../v4/machine_pat_login/output.json | 1802 ++ .../benchmarks/v4/manipulate_user/output.json | 7233 ++++++ .../benchmarks/v4/oidc_session/output.json | 3641 +++ .../benchmarks/v4/otp_session/output.json | 5424 +++++ .../v4/password_session/output.json | 5433 +++++ .../data/benchmarks/v4/user_info/output.json | 1803 ++ apps/docs/tailwind.config.mjs | 27 + apps/docs/tsconfig.json | 36 + apps/docs/utils/cn.ts | 6 + apps/docs/utils/mixpanel.ts | 107 + apps/docs/vercel.json | 9 + apps/login/package.json | 5 - .../framework-change.component.ts | 2 +- .../quickstart/quickstart.component.ts | 2 +- .../pages/app-create/app-create.component.ts | 2 +- docs/.gitignore | 29 - docs/README.md | 43 - docs/apis/assets/assets.md | 259 - docs/base.yaml | 5 - docs/buf.gen.yaml | 19 - docs/docs/guides/manage/cloud/support.md | 34 - .../guides/manage/customize/user-schema.md | 230 - docs/docs/guides/overview.mdx | 50 - docs/docs/sdk-examples/astro.mdx | 83 - docs/docs/sdk-examples/react.mdx | 84 - .../deploy/kubernetes/configuration.md | 315 - .../deploy/kubernetes/database.md | 128 - .../self-hosting/deploy/kubernetes/index.md | 62 - .../self-hosting/deploy/kubernetes/ingress.md | 60 - .../deploy/kubernetes/installation.md | 235 - .../deploy/kubernetes/observability.md | 84 - .../deploy/kubernetes/operations.md | 151 - .../deploy/kubernetes/uninstalling.md | 60 - .../troubleshooting/troubleshooting.mdx | 16 - .../manage/database/_cockroachdb.mdx | 39 - .../manage/reverseproxy/caddy/caddy.mdx | 38 - .../manage/reverseproxy/httpd/httpd.mdx | 40 - .../manage/reverseproxy/nginx/nginx.mdx | 38 - .../manage/reverseproxy/traefik/traefik.mdx | 38 - docs/docusaurus.config.js | 488 - docs/package.json | 68 - docs/plugin-download.sh | 70 - docs/project.json | 75 - docs/sidebars.js | 1418 -- docs/src/components/PermissionTable/index.jsx | 77 - .../PermissionTable/styles.module.css | 73 - docs/src/components/authrequest.jsx | 690 - docs/src/components/card.jsx | 35 - docs/src/components/environment.jsx | 133 - docs/src/components/list.jsx | 184 - docs/src/components/player.jsx | 17 - docs/src/css/custom.css | 753 - docs/src/pages/index.js | 344 - docs/src/pages/styles.module.css | 143 - docs/src/theme/ApiItem/index.jsx | 206 - docs/src/theme/DocCardList/index.js | 13 - docs/src/theme/DocSidebarItems/index.js | 14 - docs/src/theme/Footer/index.js | 10 - docs/src/theme/Root/index.js | 12 - docs/src/utils/authrequest.js | 90 - docs/src/utils/deprecated-items.js | 29 - docs/src/utils/environment.js | 31 - docs/static/.nojekyll | 0 docs/tailwind.config.js | 55 - docs/vercel.json | 273 - .../api/assets/generator/asset_generator.go | 2 +- .../api/ui/login/static/resources/generate.go | 2 +- nx.json | 18 +- package.json | 13 +- pnpm-lock.yaml | 18293 +++++----------- pnpm-workspace.yaml | 1 - project.json | 47 +- proto/zitadel/app/v2beta/app_service.proto | 24 +- proto/zitadel/auth.proto | 4 +- proto/zitadel/org/v2beta/org_service.proto | 4 +- proto/zitadel/policy.proto | 6 +- .../user/v3alpha/authenticator.proto | 2 +- .../zitadel/settings/v2/legal_settings.proto | 6 +- .../settings/v2beta/legal_settings.proto | 6 +- proto/zitadel/user/v2/password.proto | 2 +- proto/zitadel/user/v2/user_service.proto | 24 +- proto/zitadel/user/v2beta/password.proto | 2 +- 2826 files changed, 78739 insertions(+), 23571 deletions(-) create mode 100644 apps/docs/.gitignore create mode 100644 apps/docs/README.md create mode 100644 apps/docs/app/(home)/layout.tsx create mode 100644 apps/docs/app/[[...slug]]/layout.tsx create mode 100644 apps/docs/app/[[...slug]]/page.tsx create mode 100644 apps/docs/app/api/search/route.ts create mode 100644 apps/docs/app/global.css create mode 100644 apps/docs/app/layout.config.tsx create mode 100644 apps/docs/app/layout.tsx create mode 100644 apps/docs/app/llms-full.txt/route.ts create mode 100644 apps/docs/app/og/docs/[...slug]/route.tsx create mode 100644 apps/docs/app/providers.tsx create mode 100644 apps/docs/app/sitemap.ts create mode 100644 apps/docs/buf.gen.yaml create mode 100644 apps/docs/components/PermissionTable/index.jsx create mode 100644 apps/docs/components/api-page.client.tsx create mode 100644 apps/docs/components/api-page.tsx rename {docs/src => apps/docs}/components/apicard.jsx (93%) rename {docs/src => apps/docs}/components/b2b.jsx (100%) rename {docs/src => apps/docs}/components/benchmark_chart.jsx (99%) rename {docs/src => apps/docs}/components/column.jsx (100%) create mode 100644 apps/docs/components/docusaurus/admonition.tsx create mode 100644 apps/docs/components/docusaurus/browser-only.tsx create mode 100644 apps/docs/components/docusaurus/code-block.tsx create mode 100644 apps/docs/components/docusaurus/doc-card-list.tsx create mode 100644 apps/docs/components/docusaurus/tabs.tsx create mode 100644 apps/docs/components/docusaurus/themed-image.tsx create mode 100644 apps/docs/components/feedback.tsx rename {docs/src => apps/docs}/components/frameworks.jsx (92%) create mode 100644 apps/docs/components/inkeep-search.tsx create mode 100644 apps/docs/components/mixpanel-provider.tsx rename {docs/src => apps/docs}/components/pii_table.jsx (80%) create mode 100644 apps/docs/components/plausible-provider.tsx create mode 100644 apps/docs/components/player.jsx rename {docs/src => apps/docs}/components/tile.jsx (94%) create mode 100644 apps/docs/components/version-selector.tsx create mode 100644 apps/docs/content/apis/_meta.json rename {docs/docs => apps/docs/content}/apis/actions/code-examples.mdx (84%) rename docs/docs/apis/actions/complement-token.md => apps/docs/content/apis/actions/complement-token.mdx (89%) rename docs/docs/apis/actions/customize-samlresponse.md => apps/docs/content/apis/actions/customize-samlresponse.mdx (89%) rename docs/docs/apis/actions/external-authentication.md => apps/docs/content/apis/actions/external-authentication.mdx (72%) rename docs/docs/apis/actions/internal-authentication.md => apps/docs/content/apis/actions/internal-authentication.mdx (71%) rename docs/docs/apis/actions/introduction.md => apps/docs/content/apis/actions/introduction.mdx (100%) rename docs/docs/apis/actions/modules.md => apps/docs/content/apis/actions/modules.mdx (84%) rename docs/docs/apis/actions/objects.md => apps/docs/content/apis/actions/objects.mdx (86%) rename {docs/docs => apps/docs/content}/apis/apis/index.mdx (74%) rename docs/docs/apis/assets/assets.md => apps/docs/content/apis/assets/assets.mdx (84%) rename {docs/docs => apps/docs/content}/apis/benchmarks/_template.mdx (53%) rename {docs/docs => apps/docs/content}/apis/benchmarks/index.mdx (95%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.65.0/machine_jwt_profile_grant/index.mdx (64%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.65.0/machine_jwt_profile_grant/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.66.0/machine_jwt_profile_grant/index.mdx (83%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.66.0/machine_jwt_profile_grant/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.70.0/machine_jwt_profile_grant/index.mdx (84%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.70.0/machine_jwt_profile_grant/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.70.0/oidc_session/index.mdx (81%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v2.70.0/oidc_session/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/add_session/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/add_session/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/human_password_login/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/human_password_login/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/introspect/index.mdx (91%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/introspect/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_client_credentials_login/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_client_credentials_login/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_jwt_profile_grant/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_jwt_profile_grant/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_pat_login/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/machine_pat_login/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/manipulate_user/index.mdx (92%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/manipulate_user/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/oidc_session/index.mdx (91%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/oidc_session/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/otp_session/index.mdx (91%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/otp_session/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/password_session/index.mdx (91%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/password_session/output.json (100%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/user_info/index.mdx (95%) rename {docs/docs => apps/docs/content}/apis/benchmarks/v4/user_info/output.json (100%) rename {docs/docs => apps/docs/content}/apis/introduction.mdx (76%) rename {docs/docs => apps/docs/content}/apis/migration_v1_to_v2.mdx (99%) rename docs/docs/apis/observability/health.md => apps/docs/content/apis/observability/health.mdx (96%) rename docs/docs/apis/observability/metrics.md => apps/docs/content/apis/observability/metrics.mdx (69%) rename {docs/docs => apps/docs/content}/apis/openidoauth/_token_exchange_request.mdx (90%) rename {docs/docs => apps/docs/content}/apis/openidoauth/_token_exchange_response.mdx (100%) rename {docs/docs => apps/docs/content}/apis/openidoauth/_token_exchange_types.mdx (100%) rename docs/docs/apis/openidoauth/authn-methods.md => apps/docs/content/apis/openidoauth/authn-methods.mdx (99%) rename {docs/docs => apps/docs/content}/apis/openidoauth/authrequest.mdx (92%) rename docs/docs/apis/openidoauth/claims.md => apps/docs/content/apis/openidoauth/claims.mdx (95%) rename {docs/docs => apps/docs/content}/apis/openidoauth/endpoints.mdx (89%) rename docs/docs/apis/openidoauth/grant-types.md => apps/docs/content/apis/openidoauth/grant-types.mdx (94%) rename docs/docs/apis/openidoauth/scopes.md => apps/docs/content/apis/openidoauth/scopes.mdx (100%) rename {docs/docs => apps/docs/content}/apis/proto/.gitignore (100%) rename docs/docs/apis/saml/endpoints.md => apps/docs/content/apis/saml/endpoints.mdx (97%) rename docs/docs/apis/scim2.md => apps/docs/content/apis/scim2.mdx (99%) rename {docs/docs => apps/docs/content}/apis/statuscodes.mdx (99%) rename {docs/docs => apps/docs/content}/apis/v2.mdx (83%) rename docs/docs/concepts/architecture/secrets.md => apps/docs/content/concepts/architecture/secrets.mdx (89%) rename docs/docs/concepts/architecture/software.md => apps/docs/content/concepts/architecture/software.mdx (91%) rename docs/docs/concepts/architecture/solution.md => apps/docs/content/concepts/architecture/solution.mdx (81%) rename docs/docs/concepts/eventstore/implementation.md => apps/docs/content/concepts/eventstore/implementation.mdx (94%) rename docs/docs/concepts/eventstore/overview.md => apps/docs/content/concepts/eventstore/overview.mdx (97%) rename docs/docs/concepts/features/account-linking.md => apps/docs/content/concepts/features/account-linking.mdx (91%) rename docs/docs/concepts/features/actions.md => apps/docs/content/concepts/features/actions.mdx (95%) rename docs/docs/concepts/features/actions_v2.md => apps/docs/content/concepts/features/actions_v2.mdx (94%) rename docs/docs/concepts/features/audit-trail.md => apps/docs/content/concepts/features/audit-trail.mdx (67%) rename docs/docs/concepts/features/console.md => apps/docs/content/concepts/features/console.mdx (65%) rename docs/docs/concepts/features/custom-domain.md => apps/docs/content/concepts/features/custom-domain.mdx (83%) rename docs/docs/concepts/features/external-user-grant.md => apps/docs/content/concepts/features/external-user-grant.mdx (91%) rename docs/docs/concepts/features/identity-brokering.md => apps/docs/content/concepts/features/identity-brokering.mdx (88%) create mode 100644 apps/docs/content/concepts/features/index.mdx rename docs/docs/concepts/features/passkeys.md => apps/docs/content/concepts/features/passkeys.mdx (81%) rename docs/docs/concepts/features/selfservice.md => apps/docs/content/concepts/features/selfservice.mdx (98%) create mode 100644 apps/docs/content/concepts/index.mdx create mode 100644 apps/docs/content/concepts/knowledge/index.mdx rename docs/docs/concepts/knowledge/opaque-tokens.md => apps/docs/content/concepts/knowledge/opaque-tokens.mdx (98%) rename docs/docs/concepts/principles.md => apps/docs/content/concepts/principles.mdx (100%) rename {docs/docs => apps/docs/content}/concepts/structure/_manager_description.mdx (59%) rename {docs/docs => apps/docs/content}/concepts/structure/_org_description.mdx (91%) rename {docs/docs => apps/docs/content}/concepts/structure/_project_description.mdx (90%) rename docs/docs/concepts/structure/applications.md => apps/docs/content/concepts/structure/applications.mdx (55%) rename docs/docs/concepts/structure/granted_projects.md => apps/docs/content/concepts/structure/granted_projects.mdx (91%) create mode 100644 apps/docs/content/concepts/structure/index.mdx rename {docs/docs => apps/docs/content}/concepts/structure/instance.mdx (85%) rename {docs/docs => apps/docs/content}/concepts/structure/managers.mdx (54%) rename docs/docs/concepts/structure/organizations.md => apps/docs/content/concepts/structure/organizations.mdx (77%) rename docs/docs/concepts/structure/policies.md => apps/docs/content/concepts/structure/policies.mdx (83%) rename docs/docs/concepts/structure/projects.md => apps/docs/content/concepts/structure/projects.mdx (85%) rename docs/docs/concepts/structure/users.md => apps/docs/content/concepts/structure/users.mdx (87%) rename docs/docs/examples/identity-proxy/oauth2-proxy.md => apps/docs/content/examples/identity-proxy/oauth2-proxy.mdx (84%) rename {docs/docs => apps/docs/content}/examples/imports/_app_jwt.mdx (65%) rename {docs/docs => apps/docs/content}/examples/imports/_serviceuser_jwt.mdx (63%) rename {docs/docs => apps/docs/content}/examples/imports/_serviceuser_role.mdx (52%) rename {docs/docs => apps/docs/content}/examples/imports/_setup_django.mdx (100%) rename {docs/docs => apps/docs/content}/examples/imports/_setup_dotenv.mdx (100%) rename {docs/docs => apps/docs/content}/examples/imports/_setup_python.mdx (53%) create mode 100644 apps/docs/content/examples/introduction/backend/index.mdx create mode 100644 apps/docs/content/examples/introduction/frontend/index.mdx create mode 100644 apps/docs/content/examples/introduction/fullstack/index.mdx create mode 100644 apps/docs/content/examples/introduction/index.mdx create mode 100644 apps/docs/content/examples/introduction/mobile/index.mdx create mode 100644 apps/docs/content/examples/introduction/webapp/index.mdx rename docs/docs/examples/login/angular.md => apps/docs/content/examples/login/angular.mdx (97%) rename docs/docs/examples/login/flutter.md => apps/docs/content/examples/login/flutter.mdx (98%) rename docs/docs/examples/login/go.md => apps/docs/content/examples/login/go.mdx (93%) rename docs/docs/examples/login/java-spring.md => apps/docs/content/examples/login/java-spring.mdx (91%) rename docs/docs/examples/login/nextjs-b2b.md => apps/docs/content/examples/login/nextjs-b2b.mdx (99%) rename docs/docs/examples/login/nextjs.md => apps/docs/content/examples/login/nextjs.mdx (98%) rename {docs/docs => apps/docs/content}/examples/login/python-django.mdx (92%) rename docs/docs/examples/login/react.md => apps/docs/content/examples/login/react.mdx (94%) rename docs/docs/examples/login/symfony.md => apps/docs/content/examples/login/symfony.mdx (93%) rename {docs/docs => apps/docs/content}/examples/login/vue.mdx (93%) rename docs/docs/examples/secure-api/go.md => apps/docs/content/examples/secure-api/go.mdx (89%) rename docs/docs/examples/secure-api/java-spring.md => apps/docs/content/examples/secure-api/java-spring.mdx (93%) rename docs/docs/examples/secure-api/nodejs-nestjs.md => apps/docs/content/examples/secure-api/nodejs-nestjs.mdx (78%) rename {docs/docs => apps/docs/content}/examples/secure-api/pylon.mdx (92%) rename {docs/docs => apps/docs/content}/examples/secure-api/python-django.mdx (92%) rename {docs/docs => apps/docs/content}/examples/secure-api/python-flask.mdx (77%) rename docs/docs/guides/integrate/actions/go/json => apps/docs/content/guides/integrate/actions/go/json.go (98%) rename docs/docs/guides/integrate/actions/go/jwe => apps/docs/content/guides/integrate/actions/go/jwe.go (98%) rename docs/docs/guides/integrate/actions/go/jwt => apps/docs/content/guides/integrate/actions/go/jwt.go (98%) rename docs/docs/guides/integrate/actions/migrate-from-v1.md => apps/docs/content/guides/integrate/actions/migrate-from-v1.mdx (99%) rename docs/docs/guides/integrate/actions/testing-event.md => apps/docs/content/guides/integrate/actions/testing-event.mdx (92%) rename docs/docs/guides/integrate/actions/testing-function-manipulation.md => apps/docs/content/guides/integrate/actions/testing-function-manipulation.mdx (90%) rename docs/docs/guides/integrate/actions/testing-function.md => apps/docs/content/guides/integrate/actions/testing-function.mdx (91%) rename docs/docs/guides/integrate/actions/testing-request-manipulation.md => apps/docs/content/guides/integrate/actions/testing-request-manipulation.mdx (94%) rename {docs/docs => apps/docs/content}/guides/integrate/actions/testing-request-signature.mdx (93%) rename docs/docs/guides/integrate/actions/testing-request.md => apps/docs/content/guides/integrate/actions/testing-request.mdx (92%) rename docs/docs/guides/integrate/actions/testing-response-manipulation.md => apps/docs/content/guides/integrate/actions/testing-response-manipulation.mdx (95%) rename docs/docs/guides/integrate/actions/testing-response.md => apps/docs/content/guides/integrate/actions/testing-response.mdx (93%) rename docs/docs/guides/integrate/actions/usage.md => apps/docs/content/guides/integrate/actions/usage.mdx (93%) rename docs/docs/guides/integrate/actions/webhook-site-setup.md => apps/docs/content/guides/integrate/actions/webhook-site-setup.mdx (91%) rename {docs/docs => apps/docs/content}/guides/integrate/application/_application.mdx (70%) rename {docs/docs => apps/docs/content}/guides/integrate/application/_auth-type.mdx (97%) rename {docs/docs => apps/docs/content}/guides/integrate/application/_generate-key.mdx (89%) rename {docs/docs => apps/docs/content}/guides/integrate/application/_redirect-uris.mdx (88%) rename {docs/docs => apps/docs/content}/guides/integrate/application/_review-config.mdx (94%) rename docs/docs/guides/integrate/authenticated-mongodb-charts.md => apps/docs/content/guides/integrate/authenticated-mongodb-charts.mdx (80%) rename {docs/docs => apps/docs/content}/guides/integrate/back-channel-logout.mdx (94%) rename docs/docs/guides/integrate/external-audit-log.md => apps/docs/content/guides/integrate/external-audit-log.mdx (89%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_activate.mdx (65%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_custom_login_policy.mdx (65%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_general_config_description.mdx (97%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_generic_oauth.mdx (100%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_how_ldap_idp_works.mdx (100%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_idps_overview.mdx (59%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_intro.mdx (94%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_prefill_action.mdx (99%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_test_setup.mdx (100%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/_unlinked_oauth.mdx (98%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/additional-information.mdx (72%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/apple.mdx (80%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/azure-ad-oidc.mdx (82%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/azure-ad-saml.mdx (77%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/generic-oidc.mdx (80%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/github.mdx (71%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/gitlab.mdx (69%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/google.mdx (67%) rename docs/docs/guides/integrate/identity-providers/introduction.md => apps/docs/content/guides/integrate/identity-providers/introduction.mdx (95%) rename docs/docs/guides/integrate/identity-providers/jwt_idp.md => apps/docs/content/guides/integrate/identity-providers/jwt_idp.mdx (85%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/keycloak.mdx (72%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/ldap.mdx (75%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/linkedin_oauth.mdx (71%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/migrate.mdx (84%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/mocksaml.mdx (90%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/okta-oidc.mdx (74%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/okta_saml.mdx (67%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/onelogin-saml.mdx (87%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/openldap.mdx (88%) rename {docs/docs => apps/docs/content}/guides/integrate/identity-providers/pingfederate-saml.mdx (91%) create mode 100644 apps/docs/content/guides/integrate/index.mdx rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_browser_register_webauthn.mdx (98%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_browser_signin_webauthn.mdx (99%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_list-mfa-options.mdx (93%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_logout.mdx (92%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_select-account.mdx (94%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/_update_session_webauthn.mdx (88%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/device-auth.mdx (90%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/external-login.mdx (91%) create mode 100644 apps/docs/content/guides/integrate/login-ui/index.mdx rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/login-app.mdx (90%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/logout.mdx (72%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/mfa.mdx (87%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/oidc-standard.mdx (88%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/passkey.mdx (92%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/password-reset.mdx (90%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/saml-standard.mdx (92%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/select-account.mdx (68%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/session-validation.mdx (94%) rename {docs/docs => apps/docs/content}/guides/integrate/login-ui/username-password.mdx (85%) rename {docs/docs => apps/docs/content}/guides/integrate/login/_prevent-lockout.mdx (77%) rename {docs/docs => apps/docs/content}/guides/integrate/login/hosted-login.mdx (72%) create mode 100644 apps/docs/content/guides/integrate/login/index.mdx rename {docs/docs => apps/docs/content}/guides/integrate/login/login-users.mdx (86%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/_authmethods.mdx (62%) create mode 100644 apps/docs/content/guides/integrate/login/oidc/authmethods.mdx rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/authmethods/_basic.mdx (97%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/authmethods/_implicit.mdx (95%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/authmethods/_jwtpk.mdx (97%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/authmethods/_pkce.mdx (98%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/authmethods/_pkcenative.mdx (97%) rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/device-authorization.mdx (99%) create mode 100644 apps/docs/content/guides/integrate/login/oidc/index.mdx rename {docs/docs => apps/docs/content}/guides/integrate/login/oidc/login-users.mdx (91%) rename docs/docs/guides/integrate/login/oidc/logout.md => apps/docs/content/guides/integrate/login/oidc/logout.mdx (92%) rename docs/docs/guides/integrate/login/oidc/oauth-recommended-flows.md => apps/docs/content/guides/integrate/login/oidc/oauth-recommended-flows.mdx (98%) rename docs/docs/guides/integrate/login/oidc/webkeys.md => apps/docs/content/guides/integrate/login/oidc/webkeys.mdx (94%) rename docs/docs/guides/integrate/login/saml.md => apps/docs/content/guides/integrate/login/saml.mdx (98%) rename {docs/docs => apps/docs/content}/guides/integrate/onboarding/_org_login_description.mdx (91%) rename {docs/docs => apps/docs/content}/guides/integrate/onboarding/b2b.mdx (81%) rename {docs/docs => apps/docs/content}/guides/integrate/onboarding/end-users.mdx (87%) create mode 100644 apps/docs/content/guides/integrate/onboarding/index.mdx rename docs/docs/guides/integrate/retrieve-user-roles.md => apps/docs/content/guides/integrate/retrieve-user-roles.mdx (86%) rename docs/docs/guides/integrate/scim-okta-guide.md => apps/docs/content/guides/integrate/scim-okta-guide.mdx (97%) rename docs/docs/guides/integrate/service-users/authenticate-service-users.md => apps/docs/content/guides/integrate/service-users/authenticate-service-users.mdx (91%) rename docs/docs/guides/integrate/service-users/client-credentials.md => apps/docs/content/guides/integrate/service-users/client-credentials.mdx (85%) rename docs/docs/guides/integrate/service-users/personal-access-token.md => apps/docs/content/guides/integrate/service-users/personal-access-token.mdx (83%) rename docs/docs/guides/integrate/service-users/private-key-jwt.md => apps/docs/content/guides/integrate/service-users/private-key-jwt.mdx (92%) rename docs/docs/guides/integrate/services/atlassian-saml.md => apps/docs/content/guides/integrate/services/atlassian-saml.mdx (85%) rename {docs/docs => apps/docs/content}/guides/integrate/services/auth0-oidc.mdx (78%) rename docs/docs/guides/integrate/services/auth0-saml.md => apps/docs/content/guides/integrate/services/auth0-saml.mdx (83%) rename docs/docs/guides/integrate/services/aws-saml.md => apps/docs/content/guides/integrate/services/aws-saml.mdx (89%) rename {docs/docs => apps/docs/content}/guides/integrate/services/cloudflare-oidc.mdx (87%) rename docs/docs/guides/integrate/services/gitlab-saml.md => apps/docs/content/guides/integrate/services/gitlab-saml.mdx (79%) rename {docs/docs => apps/docs/content}/guides/integrate/services/gitlab-self-hosted.mdx (92%) rename {docs/docs => apps/docs/content}/guides/integrate/services/google-cloud.mdx (87%) rename docs/docs/guides/integrate/services/google-workspace.md => apps/docs/content/guides/integrate/services/google-workspace.mdx (83%) create mode 100644 apps/docs/content/guides/integrate/services/index.mdx rename docs/docs/guides/integrate/services/pingidentity-saml.md => apps/docs/content/guides/integrate/services/pingidentity-saml.mdx (84%) rename {docs/docs => apps/docs/content}/guides/integrate/token-exchange.mdx (96%) rename {docs/docs => apps/docs/content}/guides/integrate/token-introspection/_introspection-response.mdx (95%) rename {docs/docs => apps/docs/content}/guides/integrate/token-introspection/basic-auth.mdx (86%) rename docs/docs/guides/integrate/token-introspection/index.md => apps/docs/content/guides/integrate/token-introspection/index.mdx (75%) rename {docs/docs => apps/docs/content}/guides/integrate/token-introspection/private-key-jwt.mdx (78%) rename {docs/docs => apps/docs/content}/guides/integrate/tools/apache2.mdx (90%) rename docs/docs/guides/integrate/zitadel-apis/_accessing_zitadel_api.md => apps/docs/content/guides/integrate/zitadel-apis/_accessing_zitadel_api.mdx (97%) rename docs/docs/guides/integrate/zitadel-apis/access-zitadel-apis.md => apps/docs/content/guides/integrate/zitadel-apis/access-zitadel-apis.mdx (88%) rename docs/docs/guides/integrate/zitadel-apis/access-zitadel-system-api.md => apps/docs/content/guides/integrate/zitadel-apis/access-zitadel-system-api.mdx (96%) rename docs/docs/guides/integrate/zitadel-apis/event-api.md => apps/docs/content/guides/integrate/zitadel-apis/event-api.mdx (88%) rename docs/docs/guides/integrate/zitadel-apis/example-zitadel-api-with-dot-net.md => apps/docs/content/guides/integrate/zitadel-apis/example-zitadel-api-with-dot-net.mdx (94%) rename docs/docs/guides/integrate/zitadel-apis/example-zitadel-api-with-go.md => apps/docs/content/guides/integrate/zitadel-apis/example-zitadel-api-with-go.mdx (92%) rename docs/docs/guides/manage/cloud/billing.md => apps/docs/content/guides/manage/cloud/billing.mdx (86%) rename docs/docs/guides/manage/cloud/egress.md => apps/docs/content/guides/manage/cloud/egress.mdx (74%) rename docs/docs/guides/manage/cloud/instances.md => apps/docs/content/guides/manage/cloud/instances.mdx (86%) create mode 100644 apps/docs/content/guides/manage/cloud/overview/index.mdx rename docs/docs/guides/manage/cloud/settings.md => apps/docs/content/guides/manage/cloud/settings.mdx (79%) rename docs/docs/guides/manage/cloud/start.md => apps/docs/content/guides/manage/cloud/start.mdx (77%) create mode 100644 apps/docs/content/guides/manage/cloud/support.mdx rename docs/docs/guides/manage/cloud/users.md => apps/docs/content/guides/manage/cloud/users.mdx (81%) rename {docs/docs => apps/docs/content}/guides/manage/console/_add_manager.mdx (96%) rename {docs/docs => apps/docs/content}/guides/manage/console/_application-types.mdx (93%) rename {docs/docs => apps/docs/content}/guides/manage/console/_create-user.mdx (74%) rename {docs/docs => apps/docs/content}/guides/manage/console/actions-overview.mdx (99%) rename {docs/docs => apps/docs/content}/guides/manage/console/actions.mdx (100%) rename {docs/docs => apps/docs/content}/guides/manage/console/applications-overview.mdx (87%) rename {docs/docs => apps/docs/content}/guides/manage/console/applications.mdx (93%) rename {docs/docs => apps/docs/content}/guides/manage/console/console-overview.mdx (71%) rename {docs/docs => apps/docs/content}/guides/manage/console/default-settings.mdx (96%) rename {docs/docs => apps/docs/content}/guides/manage/console/managers.mdx (94%) rename {docs/docs => apps/docs/content}/guides/manage/console/organizations-overview.mdx (91%) rename {docs/docs => apps/docs/content}/guides/manage/console/organizations.mdx (86%) rename {docs/docs => apps/docs/content}/guides/manage/console/overview.mdx (93%) rename {docs/docs => apps/docs/content}/guides/manage/console/projects-overview.mdx (95%) rename {docs/docs => apps/docs/content}/guides/manage/console/projects.mdx (97%) rename {docs/docs => apps/docs/content}/guides/manage/console/roles.mdx (98%) rename {docs/docs => apps/docs/content}/guides/manage/console/users-overview.mdx (95%) rename {docs/docs => apps/docs/content}/guides/manage/console/users.mdx (98%) rename docs/docs/guides/manage/customize/behavior.md => apps/docs/content/guides/manage/customize/behavior.mdx (88%) rename docs/docs/guides/manage/customize/branding.md => apps/docs/content/guides/manage/customize/branding.mdx (94%) rename {docs/docs => apps/docs/content}/guides/manage/customize/notification-providers.mdx (85%) rename docs/docs/guides/manage/customize/restrictions.md => apps/docs/content/guides/manage/customize/restrictions.mdx (92%) rename docs/docs/guides/manage/customize/texts.md => apps/docs/content/guides/manage/customize/texts.mdx (85%) rename docs/docs/guides/manage/customize/user-metadata.md => apps/docs/content/guides/manage/customize/user-metadata.mdx (79%) rename docs/docs/guides/manage/terraform-provider.md => apps/docs/content/guides/manage/terraform-provider.mdx (80%) rename docs/docs/guides/manage/user/reg-create-user.md => apps/docs/content/guides/manage/user/reg-create-user.mdx (94%) rename docs/docs/guides/manage/user/scim2.md => apps/docs/content/guides/manage/user/scim2.mdx (98%) rename docs/docs/guides/migrate/introduction.md => apps/docs/content/guides/migrate/introduction.mdx (74%) rename docs/docs/guides/migrate/sources/auth0.md => apps/docs/content/guides/migrate/sources/auth0.mdx (94%) rename docs/docs/guides/migrate/sources/keycloak.md => apps/docs/content/guides/migrate/sources/keycloak.mdx (95%) rename docs/docs/guides/migrate/sources/zitadel.md => apps/docs/content/guides/migrate/sources/zitadel.mdx (94%) rename docs/docs/guides/migrate/users.md => apps/docs/content/guides/migrate/users.mdx (83%) rename {docs/docs => apps/docs/content}/guides/solution-scenarios/b2b.mdx (91%) rename {docs/docs => apps/docs/content}/guides/solution-scenarios/b2c.mdx (95%) rename {docs/docs => apps/docs/content}/guides/solution-scenarios/configurations.mdx (90%) rename {docs/docs => apps/docs/content}/guides/solution-scenarios/domain-discovery.mdx (68%) rename {docs/docs => apps/docs/content}/guides/solution-scenarios/frontend-calling-backend-API.mdx (95%) create mode 100644 apps/docs/content/guides/solution-scenarios/index.mdx create mode 100644 apps/docs/content/guides/solution-scenarios/introduction/index.mdx rename {docs/docs => apps/docs/content}/guides/solution-scenarios/restrict-console.mdx (72%) rename docs/docs/guides/solution-scenarios/saas.md => apps/docs/content/guides/solution-scenarios/saas.mdx (97%) rename {docs/docs => apps/docs/content}/guides/start/_local_instance.mdx (74%) rename {docs/docs => apps/docs/content}/guides/start/quickstart.mdx (75%) rename docs/docs/imports/_code-flow-chart.md => apps/docs/content/imports/_code-flow-chart.mdx (99%) create mode 100644 apps/docs/content/index.mdx rename {docs/docs => apps/docs/content}/legal/_piid-table.mdx (99%) rename {docs/docs => apps/docs/content}/legal/annex-support-services.mdx (92%) rename {docs/docs => apps/docs/content}/legal/data-processing-agreement.mdx (97%) create mode 100644 apps/docs/content/legal/index.mdx rename docs/docs/legal/policies/acceptable-use-policy.md => apps/docs/content/legal/policies/acceptable-use-policy.mdx (98%) rename docs/docs/legal/policies/account-lockout-policy.md => apps/docs/content/legal/policies/account-lockout-policy.mdx (95%) rename docs/docs/legal/policies/brand-trademark-policy.md => apps/docs/content/legal/policies/brand-trademark-policy.mdx (100%) rename docs/docs/legal/policies/feature-development-policy.md => apps/docs/content/legal/policies/feature-development-policy.mdx (100%) create mode 100644 apps/docs/content/legal/policies/index.mdx rename {docs/docs => apps/docs/content}/legal/policies/privacy-policy.mdx (96%) rename docs/docs/legal/policies/rate-limit-policy.md => apps/docs/content/legal/policies/rate-limit-policy.mdx (94%) rename {docs/docs => apps/docs/content}/legal/policies/vulnerability-disclosure-policy.mdx (97%) rename docs/docs/legal/service-description/cloud-service-description.md => apps/docs/content/legal/service-description/cloud-service-description.mdx (81%) create mode 100644 apps/docs/content/legal/service-description/index.mdx rename docs/docs/legal/service-description/service-level-description.md => apps/docs/content/legal/service-description/service-level-description.mdx (99%) rename {docs/docs => apps/docs/content}/legal/service-description/support-services.mdx (95%) rename docs/docs/legal/subprocessors.md => apps/docs/content/legal/subprocessors.mdx (99%) rename docs/docs/legal/terms-of-service.md => apps/docs/content/legal/terms-of-service.mdx (93%) rename {docs/docs => apps/docs/content}/product/_beta-ga.mdx (78%) rename {docs/docs => apps/docs/content}/product/_breaking-changes.mdx (67%) rename {docs/docs => apps/docs/content}/product/_deprecated.mdx (79%) rename {docs/docs => apps/docs/content}/product/_new-feature.mdx (96%) rename {docs/docs => apps/docs/content}/product/_sdk_v3.mdx (97%) rename {docs/docs => apps/docs/content}/product/release-cycle.mdx (98%) rename {docs/docs => apps/docs/content}/product/roadmap.mdx (92%) rename {docs/docs => apps/docs/content}/sdk-examples/angular.mdx (92%) create mode 100644 apps/docs/content/sdk-examples/astro.mdx rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/_category_.json (100%) rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/java.mdx (87%) rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/node.mdx (96%) rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/php.mdx (99%) rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/python.mdx (99%) rename {docs/docs => apps/docs/content}/sdk-examples/client-libraries/ruby.mdx (99%) rename {docs/docs => apps/docs/content}/sdk-examples/django.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/expressjs.mdx (90%) rename {docs/docs => apps/docs/content}/sdk-examples/fastapi.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/fastify.mdx (78%) rename {docs/docs => apps/docs/content}/sdk-examples/flask.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/flutter.mdx (87%) rename {docs/docs => apps/docs/content}/sdk-examples/go.mdx (92%) rename {docs/docs => apps/docs/content}/sdk-examples/hono.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/introduction.mdx (97%) rename {docs/docs => apps/docs/content}/sdk-examples/java.mdx (92%) rename {docs/docs => apps/docs/content}/sdk-examples/laravel.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/nestjs.mdx (56%) rename {docs/docs => apps/docs/content}/sdk-examples/nextjs.mdx (92%) rename {docs/docs => apps/docs/content}/sdk-examples/nuxtjs.mdx (63%) rename {docs/docs => apps/docs/content}/sdk-examples/qwik.mdx (67%) create mode 100644 apps/docs/content/sdk-examples/react.mdx rename {docs/docs => apps/docs/content}/sdk-examples/solidstart.mdx (92%) rename {docs/docs => apps/docs/content}/sdk-examples/spring.mdx (100%) rename {docs/docs => apps/docs/content}/sdk-examples/sveltekit.mdx (79%) rename {docs/docs => apps/docs/content}/sdk-examples/symfony.mdx (93%) rename {docs/docs => apps/docs/content}/sdk-examples/vue.mdx (65%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/.gitignore (100%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/_defaultuser.mdx (100%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/_disclaimer.mdx (92%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/_next.mdx (81%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/compose.mdx (80%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/devcontainer.mdx (95%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/docker-compose.yaml (98%) create mode 100644 apps/docs/content/self-hosting/deploy/kubernetes.mdx rename {docs/docs => apps/docs/content}/self-hosting/deploy/linux.mdx (96%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/macos.mdx (95%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/overview.mdx (86%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/troubleshooting/_instance_not_found.mdx (52%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/troubleshooting/_note_instance_not_found.mdx (54%) rename {docs/docs => apps/docs/content}/self-hosting/deploy/troubleshooting/_upstream_header.mdx (97%) create mode 100644 apps/docs/content/self-hosting/deploy/troubleshooting/troubleshooting.mdx rename {docs/docs => apps/docs/content}/self-hosting/manage/.gitignore (100%) rename docs/docs/self-hosting/manage/cache.md => apps/docs/content/self-hosting/manage/cache.mdx (84%) rename {docs/docs => apps/docs/content}/self-hosting/manage/cli/mirror.mdx (96%) rename {docs/docs => apps/docs/content}/self-hosting/manage/cli/overview.mdx (69%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/.gitignore (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/_compose.mdx (61%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/_helm.mdx (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/_linuxunix.mdx (67%) rename docs/docs/self-hosting/manage/configure/_login.md => apps/docs/content/self-hosting/manage/configure/_login.mdx (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/configure.mdx (82%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/docker-compose.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/example-skip-superuser-queries.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/example-zitadel-config.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/example-zitadel-init-steps.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/configure/example-zitadel-secrets.yaml (100%) create mode 100644 apps/docs/content/self-hosting/manage/configure/index.mdx rename docs/docs/self-hosting/manage/custom-domain.md => apps/docs/content/self-hosting/manage/custom-domain.mdx (93%) rename {docs/docs => apps/docs/content}/self-hosting/manage/database/_postgres.mdx (86%) rename docs/docs/self-hosting/manage/database/database.mdx => apps/docs/content/self-hosting/manage/database/index.mdx (56%) rename {docs/docs => apps/docs/content}/self-hosting/manage/http2.mdx (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/login-client.mdx (95%) rename {docs/docs => apps/docs/content}/self-hosting/manage/metrics/overview.mdx (92%) rename docs/docs/self-hosting/manage/metrics/prometheus.md => apps/docs/content/self-hosting/manage/metrics/prometheus.mdx (99%) rename docs/docs/self-hosting/manage/production.md => apps/docs/content/self-hosting/manage/production.mdx (89%) rename docs/docs/self-hosting/manage/productionchecklist.md => apps/docs/content/self-hosting/manage/productionchecklist.mdx (75%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/_proxy_guide_more.mdx (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/_proxy_guide_overview.mdx (73%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/_proxy_guide_tls_mode.mdx (86%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/caddy/disabled-tls.Caddyfile (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/caddy/docker-compose.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/caddy/enabled-tls.Caddyfile (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/caddy/external-tls.Caddyfile (100%) create mode 100644 apps/docs/content/self-hosting/manage/reverseproxy/caddy/index.mdx rename docs/docs/self-hosting/manage/reverseproxy/cloudflare/cloudflare.mdx => apps/docs/content/self-hosting/manage/reverseproxy/cloudflare/index.mdx (98%) rename docs/docs/self-hosting/manage/reverseproxy/cloudflare_tunnel/cloudflare_tunnel.mdx => apps/docs/content/self-hosting/manage/reverseproxy/cloudflare_tunnel/index.mdx (88%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/docker-compose.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/httpd/docker-compose.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/httpd/httpd-disabled-tls.conf (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/httpd/httpd-enabled-tls.conf (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/httpd/httpd-external-tls.conf (100%) create mode 100644 apps/docs/content/self-hosting/manage/reverseproxy/httpd/index.mdx rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/nginx/docker-compose.yaml (100%) create mode 100644 apps/docs/content/self-hosting/manage/reverseproxy/nginx/index.mdx rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/nginx/nginx-disabled-tls.conf (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/nginx/nginx-enabled-tls.conf (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/nginx/nginx-external-tls.conf (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/reverse_proxy.mdx (99%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/traefik/docker-compose.yaml (100%) create mode 100644 apps/docs/content/self-hosting/manage/reverseproxy/traefik/index.mdx rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/traefik/traefik-disabled-tls.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/traefik/traefik-enabled-tls.yaml (100%) rename {docs/docs => apps/docs/content}/self-hosting/manage/reverseproxy/traefik/traefik-external-tls.yaml (100%) rename docs/docs/self-hosting/manage/reverseproxy/zitadel_cloud/zitadel_cloud.mdx => apps/docs/content/self-hosting/manage/reverseproxy/zitadel_cloud/index.mdx (100%) rename docs/docs/self-hosting/manage/service_ping.md => apps/docs/content/self-hosting/manage/service_ping.mdx (95%) rename {docs/docs => apps/docs/content}/self-hosting/manage/tls_modes.mdx (98%) rename docs/docs/self-hosting/manage/updating_scaling.md => apps/docs/content/self-hosting/manage/updating_scaling.mdx (93%) rename docs/docs/self-hosting/manage/usage_control.md => apps/docs/content/self-hosting/manage/usage_control.mdx (86%) rename docs/docs/support/advisory/a10000.md => apps/docs/content/support/advisory/a10000.mdx (85%) rename docs/docs/support/advisory/a10001.md => apps/docs/content/support/advisory/a10001.mdx (98%) rename docs/docs/support/advisory/a10002.md => apps/docs/content/support/advisory/a10002.mdx (98%) rename docs/docs/support/advisory/a10003.md => apps/docs/content/support/advisory/a10003.mdx (87%) rename docs/docs/support/advisory/a10004.md => apps/docs/content/support/advisory/a10004.mdx (95%) rename docs/docs/support/advisory/a10005.md => apps/docs/content/support/advisory/a10005.mdx (98%) rename docs/docs/support/advisory/a10006.md => apps/docs/content/support/advisory/a10006.mdx (99%) rename docs/docs/support/advisory/a10007.md => apps/docs/content/support/advisory/a10007.mdx (93%) rename docs/docs/support/advisory/a10008.md => apps/docs/content/support/advisory/a10008.mdx (98%) rename docs/docs/support/advisory/a10009.md => apps/docs/content/support/advisory/a10009.mdx (100%) rename docs/docs/support/advisory/a10010.md => apps/docs/content/support/advisory/a10010.mdx (100%) rename docs/docs/support/advisory/a10011.md => apps/docs/content/support/advisory/a10011.mdx (96%) rename docs/docs/support/advisory/a10012.md => apps/docs/content/support/advisory/a10012.mdx (100%) rename docs/docs/support/advisory/a10013.md => apps/docs/content/support/advisory/a10013.mdx (97%) rename docs/docs/support/advisory/a10014.md => apps/docs/content/support/advisory/a10014.mdx (68%) rename docs/docs/support/advisory/a10015.md => apps/docs/content/support/advisory/a10015.mdx (82%) rename docs/docs/support/advisory/a10016.md => apps/docs/content/support/advisory/a10016.mdx (99%) rename {docs/docs => apps/docs/content}/support/technical_advisory.mdx (97%) rename {docs/docs => apps/docs/content}/support/troubleshooting.mdx (89%) rename {docs/src => apps/docs}/css/apicard.module.css (100%) rename {docs/src => apps/docs}/css/card.module.css (90%) create mode 100644 apps/docs/css/custom.css rename {docs/src => apps/docs}/css/environment.module.css (90%) rename {docs/src => apps/docs}/css/list.module.css (92%) rename {docs/src => apps/docs}/css/tile.module.css (97%) create mode 100644 apps/docs/eslint.config.mjs rename {docs => apps/docs}/frameworks.json (100%) create mode 100644 apps/docs/lib/custom-tree.ts create mode 100644 apps/docs/lib/layout.shared.tsx create mode 100644 apps/docs/lib/openapi.ts create mode 100644 apps/docs/lib/sidebar-data.ts create mode 100644 apps/docs/lib/source.ts create mode 100644 apps/docs/mdx-components.tsx create mode 100644 apps/docs/next.config.mjs create mode 100644 apps/docs/package.json create mode 100644 apps/docs/postcss.config.mjs create mode 100644 apps/docs/project.json rename {docs/static/img => apps/docs/public}/favicon.ico (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Black.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-BlackItalic.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Bold.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-BoldItalic.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Italic.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Light.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-LightItalic.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Regular.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-Thin.ttf (100%) rename {docs/static => apps/docs/public}/fonts/lato/Lato-ThinItalic.ttf (100%) rename {docs/static/img => apps/docs/public}/gigi.svg (100%) rename {docs/static => apps/docs/public}/img/actions-v2/console.png (100%) rename {docs/static => apps/docs/public}/img/actions-v2/local-listener.png (100%) rename {docs/static => apps/docs/public}/img/actions-v2/webhook-listener.png (100%) rename {docs/static => apps/docs/public}/img/actions-v2/webhook-url.png (100%) rename {docs/static => apps/docs/public}/img/actions-v2/webhook-xhr.png (100%) rename {docs/static => apps/docs/public}/img/angular/app-create.png (100%) rename {docs/static => apps/docs/public}/img/angular/app-screen.png (100%) rename {docs/static => apps/docs/public}/img/api/apis_overview.png (100%) rename {docs/static => apps/docs/public}/img/benchmark/Flowchart.svg (100%) rename {docs/static => apps/docs/public}/img/concepts/audit-trail/audit-log-events.png (100%) rename {docs/static => apps/docs/public}/img/concepts/audit-trail/event-viewer.png (100%) rename {docs/static => apps/docs/public}/img/concepts/features/domain-discovery.png (100%) rename {docs/static => apps/docs/public}/img/concepts/features/external-user-grant.png (100%) rename {docs/static => apps/docs/public}/img/concepts/features/identity-brokering.png (100%) rename {docs/static => apps/docs/public}/img/concepts/objects/instances.png (100%) rename {docs/static => apps/docs/public}/img/concepts/objects/object_overview.png (100%) rename {docs/static => apps/docs/public}/img/concepts/objects/organization.png (100%) rename {docs/static => apps/docs/public}/img/concepts/objects/organization_grants.png (100%) rename {docs/static => apps/docs/public}/img/concepts/usecase/saas.png (100%) rename {docs/static => apps/docs/public}/img/console_dashboard.png (100%) rename {docs/static => apps/docs/public}/img/console_feature_settings.png (100%) rename {docs/static => apps/docs/public}/img/console_instance_policy_general.png (100%) rename {docs/static => apps/docs/public}/img/console_instance_policy_notification.png (100%) rename {docs/static => apps/docs/public}/img/console_languages.png (100%) rename {docs/static => apps/docs/public}/img/console_login_texts.png (100%) rename {docs/static => apps/docs/public}/img/console_message_texts.png (100%) rename {docs/static => apps/docs/public}/img/console_org_identitiy_provider.gif (100%) rename {docs/static => apps/docs/public}/img/console_org_identity_provider.gif (100%) rename {docs/static => apps/docs/public}/img/console_org_manager_add.gif (100%) rename {docs/static => apps/docs/public}/img/console_org_register.png (100%) rename {docs/static => apps/docs/public}/img/console_org_select.png (100%) rename {docs/static => apps/docs/public}/img/console_private_labeling.png (100%) rename {docs/static => apps/docs/public}/img/console_projects_add_new_roles.gif (100%) rename {docs/static => apps/docs/public}/img/console_projects_application_token_settings.png (100%) rename {docs/static => apps/docs/public}/img/console_projects_empty.png (100%) rename {docs/static => apps/docs/public}/img/console_projects_granted.png (100%) rename {docs/static => apps/docs/public}/img/console_service_user_tokentype.png (100%) rename {docs/static => apps/docs/public}/img/console_serviceusers_create.gif (100%) rename {docs/static => apps/docs/public}/img/console_serviceusers_new_key.gif (100%) rename {docs/static => apps/docs/public}/img/console_serviceusers_secret.gif (100%) rename {docs/static => apps/docs/public}/img/console_verify_domain.png (100%) rename {docs/static => apps/docs/public}/img/create-user.gif (100%) rename {docs/static => apps/docs/public}/img/deploy-to-vercel.png (100%) rename {docs/static => apps/docs/public}/img/develop2.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-01.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-02.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-03.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-04.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-05.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-06.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-07.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-08.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-09.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-10.png (100%) rename {docs/static => apps/docs/public}/img/device-auth/device-auth-11.png (100%) rename {docs/static => apps/docs/public}/img/django/app-auth-method.png (100%) rename {docs/static => apps/docs/public}/img/django/app-create.png (100%) rename {docs/static => apps/docs/public}/img/django/app-redirects.png (100%) rename {docs/static => apps/docs/public}/img/django/project-authorizations.png (100%) rename {docs/static => apps/docs/public}/img/django/project-roles.png (100%) rename {docs/static => apps/docs/public}/img/django/project-settings.png (100%) rename {docs/static => apps/docs/public}/img/docusaurus.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/1.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/10.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/11.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/2.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/3.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/4.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/5.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/6.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/7.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/8.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/app-jwt/9.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/1.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/2.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/3.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/4.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/5.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/6.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/7.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/8.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/9.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/1.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/2.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/3.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/4.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/5.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/6.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/7.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/8.png (100%) rename {docs/static => apps/docs/public}/img/examples/secure-api/service-user-jwt/scopes/9.png (100%) rename {docs/static => apps/docs/public}/img/flutter/authed.png (100%) rename {docs/static => apps/docs/public}/img/flutter/hello-world.png (100%) rename {docs/static => apps/docs/public}/img/flutter/nativeapp.png (100%) rename {docs/static => apps/docs/public}/img/flutter/not-authed.png (100%) rename {docs/static => apps/docs/public}/img/flutter/web-authed.png (100%) rename {docs/static => apps/docs/public}/img/flutter/web-not-authed.png (100%) rename {docs/static => apps/docs/public}/img/go/api-PAT_creation.png (100%) rename {docs/static => apps/docs/public}/img/go/api-PAT_view.png (100%) rename {docs/static => apps/docs/public}/img/go/api-app_details.png (100%) rename {docs/static => apps/docs/public}/img/go/api-create_application.png (100%) rename {docs/static => apps/docs/public}/img/go/api-create_service_user.png (100%) rename {docs/static => apps/docs/public}/img/go/api-download_key.png (100%) rename {docs/static => apps/docs/public}/img/go/api-expiration_date.png (100%) rename {docs/static => apps/docs/public}/img/go/api-new_key.png (100%) rename {docs/static => apps/docs/public}/img/go/api-project-auth.png (100%) rename {docs/static => apps/docs/public}/img/go/api-project-role.png (100%) rename {docs/static => apps/docs/public}/img/go/api-select_framework.png (100%) rename {docs/static => apps/docs/public}/img/go/api-select_jwt.png (100%) rename {docs/static => apps/docs/public}/img/go/api-service_user_panel.png (100%) rename {docs/static => apps/docs/public}/img/go/app-create-auth.png (100%) rename {docs/static => apps/docs/public}/img/go/app-create-clientid.png (100%) rename {docs/static => apps/docs/public}/img/go/app-create-redirect.png (100%) rename {docs/static => apps/docs/public}/img/go/app-create.png (100%) rename {docs/static => apps/docs/public}/img/go/app-home.png (100%) rename {docs/static => apps/docs/public}/img/go/app-profile.png (100%) rename {docs/static => apps/docs/public}/img/guides/app-types-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/app-types-light.png (100%) rename {docs/static => apps/docs/public}/img/guides/apple_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/apple_service_create.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/basic-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/client-id-secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/client-id.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/code-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/create-api-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/create-native-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/create-saml-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/create-user-agent-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/create-web-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/generate-key.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/implicit-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/jwt-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/pkce-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/pkce-logo-light.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/post-logo-dark.png (100%) rename {docs/static => apps/docs/public}/img/guides/application/redirect-uris.png (100%) rename {docs/static => apps/docs/public}/img/guides/auth_flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_api_permissions.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app_redirects.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app_register.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app_registration.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app_secrets.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_app_token.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_client_secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_client_tenant_id.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_disable_assignment_required.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_saml_app_create.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_saml_overview.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_saml_overview2.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_token_configuration.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_zitadel_activate.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_zitadel_active.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_zitadel_button.png (100%) rename {docs/static => apps/docs/public}/img/guides/azure_zitadel_settings.png (100%) rename {docs/static => apps/docs/public}/img/guides/back-channel-logout/back-channel-logout-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/branding.jpeg (100%) rename {docs/static => apps/docs/public}/img/guides/console-service-user-org-owner.gif (100%) rename {docs/static => apps/docs/public}/img/guides/console-service-user-pat.gif (100%) rename {docs/static => apps/docs/public}/img/guides/console/action.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/actionsmenu.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/addapplication.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/addhuman.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/additional-origins.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/addmachine.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/addmanager.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/addrole.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/app-token-settings.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/appidtokensettings.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/application.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/applications.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/authorization.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/authusers.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/complexity.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/contextswitcher.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/developmentmode.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/expiry.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/external_links_1.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/external_links_2.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/grantedprojectgrid.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/grantsmenu.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/instancebutton.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/invitehuman.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/languages.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/lockout.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/loginpolicy.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/logintexts.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/managers.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/messagetexts.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/myprofile.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/notification.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/oidc-compliance.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/oidcsettings.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/posproject.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/projectbranding.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/redirect-uris.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/redirecturis.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/roles.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/rolesettings.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/secretappearance.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/setupauthmethod.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/smtp.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/smtp_table.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/smtp_test.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/tokenroles.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/twilio.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/usermetadata.png (100%) rename {docs/static => apps/docs/public}/img/guides/console/usersmenu.png (100%) rename {docs/static => apps/docs/public}/img/guides/consulting_federated_identities_basics.png (100%) rename {docs/static => apps/docs/public}/img/guides/github_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/github_oauth_app_registration.png (100%) rename {docs/static => apps/docs/public}/img/guides/github_oauth_client_id_secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/gitlab_app_id_secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/gitlab_app_registration.png (100%) rename {docs/static => apps/docs/public}/img/guides/gitlab_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/google_client_id_secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/google_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/google_oauth_app_registration.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/login/login-external-idp-templates.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/login/login-start.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/login/login-v2-app-config.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/retrieve-user-roles-1.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/retrieve-user-roles-2.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/service-users/sequence-private-key-jwt.svg (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-cloud-action-code.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-cloud-action-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-cloud-create-app.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-cloud-redirect-url.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-cloud-token-settings.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-domain-sepcific-urls.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-sso-bottom.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-sso-overview.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-sso-zitadel.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-zitadel-profile-configured.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-zitadel-profile.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/google-workspace-zitadel-set-profile.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/services/user-info-inside-id-token.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-1.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-2.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-3.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-4.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-5.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-6.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-basic-auth-7.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-1.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-10.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-11.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-2.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-3.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-4.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-5.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-6.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-7.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-8.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/token-introspection-jwt-profile-9.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/tools/apache-configuration.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/tools/apache-redirect_settings.png (100%) rename {docs/static => apps/docs/public}/img/guides/integrate/tools/apache-urls.png (100%) rename {docs/static => apps/docs/public}/img/guides/jwt_idp.png (100%) rename {docs/static => apps/docs/public}/img/guides/keycloak_add_client.png (100%) rename {docs/static => apps/docs/public}/img/guides/keycloak_client_secret.png (100%) rename {docs/static => apps/docs/public}/img/guides/keycloak_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/linkedin_add_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/linkedin_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/authenticate-email-otp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/authenticate-phone-otp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/authenticate-totp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/authenticate-u2f-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/device-auth-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/external-login-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/oidc-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/passkey-login-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/passkey-registration-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/password-reset-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/register-email-otp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/register-phone-otp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/register-totp-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/register-u2f-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/saml-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login-ui/username-password-flow.png (100%) rename {docs/static => apps/docs/public}/img/guides/login_lifetimes.png (100%) rename {docs/static => apps/docs/public}/img/guides/microsoft_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-01.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-02.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-03.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-04.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-05.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-06.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-07.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-08.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-09.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-10.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-11.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-12.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-13.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-14.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-15.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-16.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-17.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-18.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-19.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-20.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-21.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-22.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-23.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-24.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-25.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-26.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-27.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-28.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-29.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-30.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-31.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-32.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-33.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-34.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-35.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-36.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-37.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-38.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-39.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-40.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-41.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-42.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-43.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-44.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-45.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-46.png (100%) rename {docs/static => apps/docs/public}/img/guides/migrate/keycloak-47.png (100%) rename {docs/static => apps/docs/public}/img/guides/mocksaml_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/okta_add_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/okta_add_saml_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/okta_assign_user_to_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/okta_login.png (100%) rename {docs/static => apps/docs/public}/img/guides/okta_saml_attribute_mapping.png (100%) rename {docs/static => apps/docs/public}/img/guides/onelogin-add-apps.png (100%) rename {docs/static => apps/docs/public}/img/guides/onelogin-configuration.png (100%) create mode 100644 apps/docs/public/img/guides/quickstart/22.png create mode 100644 apps/docs/public/img/guides/quickstart/23.png create mode 100644 apps/docs/public/img/guides/quickstart/24.png create mode 100644 apps/docs/public/img/guides/quickstart/25.png create mode 100644 apps/docs/public/img/guides/quickstart/26.png create mode 100644 apps/docs/public/img/guides/quickstart/27.png create mode 100644 apps/docs/public/img/guides/quickstart/28.png create mode 100644 apps/docs/public/img/guides/quickstart/29.png create mode 100644 apps/docs/public/img/guides/quickstart/30.png create mode 100644 apps/docs/public/img/guides/quickstart/31.png create mode 100644 apps/docs/public/img/guides/quickstart/32.png create mode 100644 apps/docs/public/img/guides/quickstart/33.png create mode 100644 apps/docs/public/img/guides/quickstart/34.png create mode 100644 apps/docs/public/img/guides/quickstart/35.png create mode 100644 apps/docs/public/img/guides/quickstart/36.png create mode 100644 apps/docs/public/img/guides/quickstart/37.png create mode 100644 apps/docs/public/img/guides/quickstart/51.png create mode 100644 apps/docs/public/img/guides/quickstart/52.png rename {docs/static => apps/docs/public}/img/guides/quickstart/app_detail_overview_react.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/cloud_create_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/cloud_create_instance.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/cloud_register.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/cloud_sign_up.png (100%) create mode 100644 apps/docs/public/img/guides/quickstart/create_instance.png create mode 100644 apps/docs/public/img/guides/quickstart/create_instance_admin.png create mode 100644 apps/docs/public/img/guides/quickstart/create_instance_name.png rename {docs/static => apps/docs/public}/img/guides/quickstart/create_project_react.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/instance_dashboard.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/login1.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/login2.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/login3.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/login4.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/onboarding_questions.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/project_client_id.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/project_config_overview_react.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/project_urls.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/react_example_app.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/sign_in_instance.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_1.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_2.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_3.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_4.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_5.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_6.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v2_7.png (100%) create mode 100644 apps/docs/public/img/guides/quickstart/v3_1.png rename {docs/static => apps/docs/public}/img/guides/quickstart/v3_17.png (100%) create mode 100644 apps/docs/public/img/guides/quickstart/v3_2.png create mode 100644 apps/docs/public/img/guides/quickstart/v3_3.png create mode 100644 apps/docs/public/img/guides/quickstart/v3_4.png create mode 100644 apps/docs/public/img/guides/quickstart/v3_5.png rename {docs/static => apps/docs/public}/img/guides/quickstart/v3_6.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v3_7.png (100%) rename {docs/static => apps/docs/public}/img/guides/quickstart/v3_8.png (100%) rename {docs/static => apps/docs/public}/img/guides/scenarios/domain_policy_org_domain_disabled.png (100%) rename {docs/static => apps/docs/public}/img/guides/scenarios/login-settings-mfa-init-lifetime.png (100%) rename {docs/static => apps/docs/public}/img/guides/scenarios/login_policy_advanced.png (100%) rename {docs/static => apps/docs/public}/img/guides/scenarios/login_policy_advanced_phone.png (100%) rename {docs/static => apps/docs/public}/img/guides/scenarios/security_policy.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-access-restricted.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-check-project-auth.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-create-project-grant-org.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-default-project.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-default-redirect.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/console-zitadel-project-grants.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/create-org-dropdown.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/create-organization.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/default-organization.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/domain-discovery.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/frontend-calling-backend-API_1.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/org-list-add-new.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/register-end-user.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/register-local-user.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/register-options.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/register-organization.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/register-team-graphic.png (100%) rename {docs/static => apps/docs/public}/img/guides/solution-scenarios/user-login-with-external-idp.png (100%) rename {docs/static => apps/docs/public}/img/guides/token-exchange/app-token-exchange-grant.png (100%) rename {docs/static => apps/docs/public}/img/guides/token-exchange/instance-security-impersonation.png (100%) rename {docs/static => apps/docs/public}/img/guides/token-exchange/org-role-end-user-impersonator.png (100%) rename {docs/static => apps/docs/public}/img/guides/token-exchange/user-audit-log.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel-activate-onelogin-saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel-activate-pingfederate-saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel-login-onelogin-button.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel-login-pingfederate-button.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_apple.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_azure.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_azure_saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_github.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_gitlab.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_google.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_keycloak.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_ldap.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_linkedin.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_okta.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_okta_saml.png (100%) create mode 100644 apps/docs/public/img/guides/zitadel_activate_onelogin_saml.png create mode 100644 apps/docs/public/img/guides/zitadel_activate_pingfederate_saml.png rename {docs/static => apps/docs/public}/img/guides/zitadel_activate_saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_allow_external_idp.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_apple_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_azure_provider2.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_azure_saml_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_azure_saml_provider_urls.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_generic_oidc_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_github_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_gitlab_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_google_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_identity_provider_overview.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_keycloak_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_ldap_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_linkedin_create_provider.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_apple.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_azure.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_azure_saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_external_not_found_registration.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_github.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_gitlab.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_google.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_keycloak.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_ldap.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_ldap_input.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_linkedin.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_login_okta.png (100%) create mode 100644 apps/docs/public/img/guides/zitadel_login_onelogin_button.png create mode 100644 apps/docs/public/img/guides/zitadel_login_pingfederate_button.png rename {docs/static => apps/docs/public}/img/guides/zitadel_login_saml.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_okta_saml_provider_empty.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_okta_saml_provider_filled.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_okta_saml_provider_urls.png (100%) rename {docs/static => apps/docs/public}/img/guides/zitadel_saml_create_provider.png (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/css/line-awesome.css (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/css/line-awesome.min.css (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-brands-400.eot (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-brands-400.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-brands-400.ttf (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-brands-400.woff (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-brands-400.woff2 (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-regular-400.eot (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-regular-400.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-regular-400.ttf (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-regular-400.woff (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-regular-400.woff2 (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-solid-900.eot (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-solid-900.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-solid-900.ttf (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-solid-900.woff (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/fonts/la-solid-900.woff2 (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/500px.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/accessible-icon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/accusoft.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/acquisitions-incorporated.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ad-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/address-book-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/address-book.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/address-card-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/address-card.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/adjust-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/adn.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/adobe.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/adversal.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/affiliatetheme.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/air-freshener-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/airbnb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/algolia.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/align-center-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/align-justify-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/align-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/align-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/alipay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/allergies-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/amazon-pay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/amazon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ambulance-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/american-sign-language-interpreting-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/amilia.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/anchor-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/android.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angellist.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-double-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-double-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-double-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-double-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angle-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angry-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angry.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angrycreative.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/angular.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ankh-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/app-store-ios.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/app-store.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/apper.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/apple-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/apple-pay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/apple.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/archive-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/archway-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-down.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-left.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-right.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-alt-circle-up.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-circle-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-circle-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-circle-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-circle-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrow-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrows-alt-h-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrows-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/arrows-alt-v-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/artstation.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/assistive-listening-systems-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/asterisk-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/asymmetrik.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/at-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/atlas-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/atlassian.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/atom-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/audible.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/audio-description-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/autoprefixer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/avianex.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/aviato.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/award-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/aws.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/baby-carriage-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/baby-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/backspace-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/backward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bacon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/balance-scale-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/balance-scale-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/balance-scale-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ban-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/band-aid-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bandcamp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/barcode-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bars-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/baseball-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/basketball-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bath-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battery-empty-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battery-full-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battery-half-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battery-quarter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battery-three-quarters-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/battle-net.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bed-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/beer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/behance-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/behance.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bell-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bell-slash.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bell-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bell.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bezier-curve-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bible-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bicycle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/biking-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bimobject.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/binoculars-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/biohazard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/birthday-cake-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bitbucket.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bitcoin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bity.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/black-tie.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blackberry.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blender-phone-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blender-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blind-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blogger-b.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/blogger.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bluetooth-b.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bluetooth.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bold-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bolt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bomb-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bone-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bong-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/book-dead-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/book-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/book-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/book-reader-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/book-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bookmark-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bookmark.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bootstrap.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/border-all-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/border-none-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/border-style-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bowling-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/box-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/box-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/boxes-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/braille-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/brain-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bread-slice-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/briefcase-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/briefcase-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/broadcast-tower-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/broom-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/brush-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/btc.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/buffer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bug-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/building-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/building.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bullhorn-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bullseye-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/burn-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/buromobelexperte.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bus-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/bus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/business-time-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/buy-n-large.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/buysellads.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calculator-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-check.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-day-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-minus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-minus.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-plus.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-times-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-times.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar-week-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/calendar.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/camera-retro-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/camera-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/campground-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/canadian-maple-leaf.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/candy-cane-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cannabis-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/capsules-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/car-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/car-battery-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/car-crash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/car-side-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/car-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-down.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-left.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-right.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-square-up.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/caret-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/carrot-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cart-arrow-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cart-plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cash-register-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cat-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-amazon-pay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-amex.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-apple-pay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-diners-club.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-discover.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-jcb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-mastercard.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-paypal.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-stripe.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cc-visa.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/centercode.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/centos.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/certificate-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chair-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chalkboard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chalkboard-teacher-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/charging-station-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chart-area-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chart-bar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chart-bar.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chart-line-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chart-pie-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-double-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/check-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cheese-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-bishop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-board-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-king-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-knight-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-pawn-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-queen-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-rook-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chess-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-circle-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-circle-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-circle-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-circle-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chevron-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/child-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chrome.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/chromecast.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/church-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/circle-notch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/city-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clinic-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clipboard-check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clipboard-list-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clipboard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clipboard.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clock.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clone-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/clone.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/closed-captioning-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/closed-captioning.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-download-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-meatball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-moon-rain-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-moon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-rain-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-showers-heavy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-sun-rain-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-sun-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloud-upload-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloudscale.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloudsmith.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cloudversify.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cocktail-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/code-branch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/code-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/codepen.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/codiepie.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/coffee-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cogs-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/coins-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/columns-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-dollar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-dots-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-dots.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comment.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comments-dollar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comments-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/comments.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/compact-disc-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/compass-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/compass.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/compress-arrows-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/compress-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/concierge-bell-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/confluence.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/connectdevelop.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/contao.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cookie-bite-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cookie-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/copy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/copy.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/copyright-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/copyright.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cotton-bureau.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/couch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cpanel.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-by.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-nc-eu.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-nc-jp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-nc.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-nd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-pd-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-pd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-remix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-sa.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-sampling-plus.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-sampling.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-share.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons-zero.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/creative-commons.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/credit-card-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/credit-card.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/critical-role.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crop-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cross-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crosshairs-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crow-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crown-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/crutch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/css3-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/css3.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cube-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cubes-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cut-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/cuttlefish.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/d-and-d-beyond.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/d-and-d.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dashcube.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/database-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/deaf-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/delicious.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/democrat-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/deploydog.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/deskpro.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/desktop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dev.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/deviantart.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dharmachakra-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dhl.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/diagnoses-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/diaspora.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-d20-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-d6-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-five-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-four-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-one-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-six-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-three-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dice-two-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/digg.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/digital-ocean.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/digital-tachograph-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/directions-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/discord.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/discourse.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/divide-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dizzy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dizzy.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dna-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dochub.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/docker.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dollar-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dolly-flatbed-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dolly-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/donate-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/door-closed-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/door-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dot-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dot-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dove-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/download-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/draft2digital.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/drafting-compass-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dragon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/draw-polygon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dribbble-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dribbble.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dropbox.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/drum-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/drum-steelpan-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/drumstick-bite-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/drupal.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dumbbell-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dumpster-fire-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dumpster-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dungeon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/dyalog.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/earlybirds.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ebay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/edge.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/edit-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/edit.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/egg-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eject-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/elementor.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ellipsis-h-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ellipsis-v-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ello.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ember.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/empire.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope-open-text-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope-open.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envelope.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/envira.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/equals-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eraser-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/erlang.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ethereum.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ethernet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/etsy.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/euro-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/evernote.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/exchange-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/exclamation-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/exclamation-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/exclamation-triangle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/expand-arrows-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/expand-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/expeditedssl.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/external-link-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/external-link-square-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eye-dropper-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eye-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eye-slash.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eye-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/eye.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/facebook-f.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/facebook-messenger.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/facebook-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/facebook.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fan-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fantasy-flight-games.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fast-backward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fast-forward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fax-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/feather-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/feather-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fedex.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fedora.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/female-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fighter-jet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/figma.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-archive-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-archive.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-audio-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-audio.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-code-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-code.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-contract-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-csv-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-download-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-excel-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-excel.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-export-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-image-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-image.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-import-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-invoice-dollar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-invoice-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-medical-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-pdf-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-pdf.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-powerpoint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-powerpoint.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-prescription-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-signature-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-upload-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-video-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-video.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-word-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file-word.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/file.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fill-drip-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fill-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/film-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/filter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fingerprint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fire-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fire-extinguisher-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fire-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/firefox.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/first-aid-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/first-order-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/first-order.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/firstdraft.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fish-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fist-raised-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flag-checkered-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flag-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flag-usa-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flag.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flask-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flickr.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flipboard.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flushed-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/flushed.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fly.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder-minus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder-open.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder-plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/folder.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/font-awesome-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/font-awesome-flag.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/font-awesome.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/font-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fonticons-fi.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fonticons.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/football-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fort-awesome-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fort-awesome.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/forumbee.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/forward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/foursquare.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/free-code-camp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/freebsd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/frog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/frown-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/frown-open.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/frown-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/frown.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/fulcrum.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/funnel-dollar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/futbol-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/futbol.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/galactic-republic.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/galactic-senate.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gamepad-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gas-pump-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gavel-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gem-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gem.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/genderless-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/get-pocket.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gg-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gg.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ghost-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gift-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gifts-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/git-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/git-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/git.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/github-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/github-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/github.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gitkraken.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gitlab.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gitter.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glass-cheers-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glass-martini-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glass-martini-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glass-whiskey-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glasses-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glide-g.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/glide.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/globe-africa-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/globe-americas-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/globe-asia-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/globe-europe-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/globe-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gofore.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/golf-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/goodreads-g.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/goodreads.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-drive.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-play.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-plus-g.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-plus-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-plus.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google-wallet.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/google.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gopuram-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/graduation-cap-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gratipay.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grav.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/greater-than-equal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/greater-than-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grimace-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grimace.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-beam-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-beam-sweat-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-beam-sweat.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-beam.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-hearts-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-hearts.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-squint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-squint-tears-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-squint-tears.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-squint.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-stars-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-stars.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tears-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tears.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue-squint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue-squint.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue-wink-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue-wink.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-tongue.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-wink-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin-wink.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grip-horizontal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grip-lines-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grip-lines-vertical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grip-vertical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gripfire.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/grunt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/guitar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/gulp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/h-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hacker-news-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hacker-news.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hackerrank.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hamburger-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hammer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hamsa-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-holding-heart-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-holding-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-holding-usd-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-lizard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-lizard.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-middle-finger-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-paper-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-paper.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-peace-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-peace.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-down.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-left.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-right.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-point-up.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-pointer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-pointer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-rock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-rock.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-scissors-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-scissors.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-spock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hand-spock.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hands-helping-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hands-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/handshake-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/handshake.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hanukiah-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hard-hat-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hashtag-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hat-cowboy-side-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hat-cowboy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hat-wizard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/haykal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hdd-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hdd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/heading-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/headphones-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/headphones-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/headset-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/heart-broken-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/heart-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/heart.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/heartbeat-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/helicopter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/highlighter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hiking-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hippo-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hips.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hire-a-helper.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/history-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hockey-puck-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/holly-berry-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/home-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hooli.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hornbill.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/horse-head-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/horse-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hospital-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hospital-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hospital-symbol-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hospital.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hot-tub-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hotdog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hotel-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hotjar.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hourglass-end-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hourglass-half-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hourglass-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hourglass-start-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hourglass.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/house-damage-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/houzz.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hryvnia-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/html5.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/hubspot.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/i-cursor-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ice-cream-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/icicles-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/icons-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/id-badge-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/id-badge.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/id-card-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/id-card-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/id-card.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/igloo-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/image-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/image.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/images-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/images.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/imdb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/inbox-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/indent-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/industry-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/infinity-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/info-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/info-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/instagram.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/intercom.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/internet-explorer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/invision.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ioxhost.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/italic-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/itch-io.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/itunes-note.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/itunes.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/java.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/jedi-order.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/jedi-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/jenkins.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/jira.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/joget.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/joint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/joomla.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/journal-whills-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/js-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/js.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/jsfiddle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kaaba-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kaggle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/key-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/keybase.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/keyboard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/keyboard.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/keycdn.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/khanda-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kickstarter-k.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kickstarter.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss-beam-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss-beam.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss-wink-heart-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss-wink-heart.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiss.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/kiwi-bird-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/korvue.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/landmark-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/language-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laptop-code-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laptop-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laptop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laravel.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lastfm-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lastfm.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-beam-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-beam.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-squint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-squint.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-wink-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh-wink.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/laugh.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/layer-group-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/leaf-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/leanpub.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lemon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lemon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/less-than-equal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/less-than-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/less.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/level-down-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/level-up-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/life-ring-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/life-ring.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lightbulb-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lightbulb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/line.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/link-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/linkedin-in.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/linkedin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/linode.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/linux.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lira-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/list-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/list-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/list-ol-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/list-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/list-ul-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/location-arrow-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lock-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/long-arrow-alt-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/long-arrow-alt-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/long-arrow-alt-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/long-arrow-alt-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/low-vision-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/luggage-cart-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/lyft.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/magento.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/magic-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/magnet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mail-bulk-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mailchimp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/male-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mandalorian.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-marked-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-marked-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-marker-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-marker-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-pin-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-signs-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/map.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/markdown.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/marker-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mars-double-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mars-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mars-stroke-h-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mars-stroke-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mars-stroke-v-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mask-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mastodon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/maxcdn.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mdb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medapps.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medium-m.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medium.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medkit-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/medrt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meetup.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/megaport.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh-blank-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh-blank.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh-rolling-eyes-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh-rolling-eyes.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meh.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/memory-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mendeley.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/menorah-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mercury-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/meteor-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microchip-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microphone-alt-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microphone-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microphone-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microphone-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microscope-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/microsoft.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/minus-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/minus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/minus-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/minus-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mitten-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mixcloud.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mizuni.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mobile-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mobile-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/modx.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/monero.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-bill-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-bill-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-bill-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-bill-wave-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-bill-wave-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-check-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/money-check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/monument-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/moon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/moon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mortar-pestle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mosque-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/motorcycle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mountain-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mouse-pointer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mouse-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/mug-hot-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/music-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/napster.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/neos.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/network-wired-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/neuter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/newspaper-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/newspaper.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/nimblr.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/node-js.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/node.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/not-equal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/notes-medical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/npm.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ns8.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/nutritionix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/object-group-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/object-group.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/object-ungroup-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/object-ungroup.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/odnoklassniki-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/odnoklassniki.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/oil-can-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/old-republic.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/om-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/opencart.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/openid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/opera.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/optin-monster.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/orcid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/osi.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/otter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/outdent-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/page4.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pagelines.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pager-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paint-brush-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paint-roller-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/palette-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/palfed.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pallet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paper-plane-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paper-plane.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paperclip-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/parachute-box-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paragraph-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/parking-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/passport-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pastafarianism-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paste-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/patreon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pause-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pause-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pause-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paw-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/paypal.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/peace-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pen-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pen-fancy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pen-nib-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pen-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pen-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pencil-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pencil-ruler-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/penny-arcade.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/people-carry-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pepper-hot-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/percent-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/percentage-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/periscope.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/person-booth-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phabricator.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phoenix-framework.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phoenix-squadron.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-square-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/phone-volume-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/photo-video-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/php.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pied-piper-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pied-piper-hat.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pied-piper-pp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pied-piper.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/piggy-bank-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pills-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pinterest-p.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pinterest-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pinterest.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pizza-slice-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/place-of-worship-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plane-arrival-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plane-departure-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plane-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/play-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/play-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/play-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/playstation.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plug-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plus-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plus-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/plus-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/podcast-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/poll-h-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/poll-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/poo-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/poo-storm-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/poop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/portrait-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pound-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/power-off-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pray-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/praying-hands-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/prescription-bottle-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/prescription-bottle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/prescription-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/print-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/procedures-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/product-hunt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/project-diagram-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/pushed.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/puzzle-piece-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/python.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/qq.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/qrcode-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/question-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/question-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/question-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quidditch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quinscape.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quora.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quote-left-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quote-right-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/quran-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/r-project.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/radiation-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/radiation-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rainbow-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/random-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/raspberry-pi.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ravelry.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/react.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reacteurope.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/readme.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rebel.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/receipt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/record-vinyl-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/recycle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/red-river.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reddit-alien.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reddit-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reddit.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/redhat.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/redo-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/redo-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/registered-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/registered.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/remove-format-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/renren.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reply-all-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/reply-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/replyd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/republican-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/researchgate.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/resolving.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/restroom-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/retweet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rev.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ribbon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ring-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/road-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/robot-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rocket-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rocketchat.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rockrms.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/route-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rss-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rss-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ruble-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ruler-combined-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ruler-horizontal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ruler-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ruler-vertical-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/running-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/rupee-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sad-cry-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sad-cry.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sad-tear-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sad-tear.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/safari.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/salesforce.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sass.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/satellite-dish-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/satellite-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/save-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/save.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/schlix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/school-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/screwdriver-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/scribd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/scroll-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sd-card-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/search-dollar-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/search-location-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/search-minus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/search-plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/search-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/searchengin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/seedling-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sellcast.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sellsy.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/server-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/servicestack.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shapes-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/share-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/share-alt-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/share-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/share-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/share-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shekel-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shield-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ship-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shipping-fast-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shirtsinbulk.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shoe-prints-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shopping-bag-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shopping-basket-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shopping-cart-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shopware.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shower-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/shuttle-van-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sign-in-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sign-language-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sign-out-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/signal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/signature-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sim-card-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/simplybuilt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sistrix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sitemap-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sith.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skating-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sketch.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skiing-nordic-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skiing-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skull-crossbones-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skull-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skyatlas.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/skype.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/slack-hash.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/slack.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sleigh-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sliders-h-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/slideshare.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile-beam-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile-beam.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile-wink-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile-wink.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smile.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smoking-ban-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/smoking-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sms-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snapchat-ghost.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snapchat-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snapchat.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snowboarding-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snowflake-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snowflake.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snowman-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/snowplow-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/socks-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/solar-panel-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-alpha-down-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-alpha-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-alpha-up-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-alpha-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-amount-down-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-amount-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-amount-up-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-amount-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-numeric-down-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-numeric-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-numeric-up-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-numeric-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sort-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/soundcloud.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sourcetree.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spa-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/space-shuttle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/speakap.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/speaker-deck.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spell-check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spider-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spinner-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/splotch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spotify.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/spray-can-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/square-full-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/square-root-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/squarespace.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stack-exchange.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stack-overflow.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stackpath.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stamp-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-and-crescent-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-half-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-half-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-half.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-of-david-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-of-life-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/star.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/staylinked.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/steam-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/steam-symbol.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/steam.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/step-backward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/step-forward-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stethoscope-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sticker-mule.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sticky-note-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sticky-note.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stop-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stop-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stop-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stopwatch-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/store-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/store-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/strava.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stream-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/street-view-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/strikethrough-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stripe-s.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stripe.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stroopwafel-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/studiovinari.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stumbleupon-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/stumbleupon.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/subscript-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/subway-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/suitcase-rolling-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/suitcase-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sun-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sun.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/superpowers.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/superscript-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/supple.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/surprise-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/surprise.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/suse.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/swatchbook-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/swift.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/swimmer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/swimming-pool-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/symfony.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/synagogue-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sync-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/sync-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/syringe-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/table-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/table-tennis-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tablet-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tablet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tablets-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tachometer-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tag-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tags-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tape-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tasks-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/taxi-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/teamspeak.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/teeth-open-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/teeth-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/telegram-plane.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/telegram.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/temperature-high-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/temperature-low-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tencent-weibo.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tenge-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/terminal-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/text-height-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/text-width-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/th-large-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/th-list-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/th-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/the-red-yeti.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/theater-masks-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/themeco.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/themeisle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-empty-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-full-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-half-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-quarter-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thermometer-three-quarters-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/think-peaks.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thumbs-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thumbs-down.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thumbs-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thumbs-up.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/thumbtack-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ticket-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/times-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/times-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/times-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tint-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tint-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tired-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tired.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/toggle-off-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/toggle-on-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/toilet-paper-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/toilet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/toolbox-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tools-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tooth-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/torah-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/torii-gate-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tractor-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trade-federation.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trademark-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/traffic-light-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/train-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tram-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/transgender-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/transgender-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trash-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trash-alt.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trash-restore-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trash-restore-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tree-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trello.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tripadvisor.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/trophy-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/truck-loading-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/truck-monster-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/truck-moving-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/truck-pickup-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/truck-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tshirt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tty-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tumblr-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tumblr.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/tv-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/twitch.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/twitter-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/twitter.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/typo3.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/uber.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ubuntu.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/uikit.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/umbraco.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/umbrella-beach-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/umbrella-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/underline-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/undo-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/undo-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/uniregistry.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/universal-access-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/university-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/unlink-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/unlock-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/unlock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/untappd.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/upload-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ups.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/usb.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-alt-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-astronaut-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-check-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-circle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-circle.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-clock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-cog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-edit-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-friends-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-graduate-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-injured-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-lock-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-md-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-minus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-ninja-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-nurse-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-plus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-secret-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-shield-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-tag-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-tie-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user-times-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/user.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/users-cog-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/users-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/usps.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/ussunnah.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/utensil-spoon-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/utensils-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vaadin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vector-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/venus-double-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/venus-mars-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/venus-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/viacoin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/viadeo-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/viadeo.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vial-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vials-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/viber.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/video-slash-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/video-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vihara-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vimeo-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vimeo-v.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vimeo.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vine.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vk.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vnv.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/voicemail-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/volleyball-ball-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/volume-down-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/volume-mute-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/volume-off-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/volume-up-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vote-yea-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vr-cardboard-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/vuejs.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/walking-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wallet-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/warehouse-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/water-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wave-square-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/waze.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/weebly.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/weibo.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/weight-hanging-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/weight-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/weixin.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/whatsapp-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/whatsapp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wheelchair-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/whmcs.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wifi-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wikipedia-w.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wind-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-close-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-close.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-maximize-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-maximize.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-minimize-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-minimize.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-restore-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/window-restore.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/windows.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wine-bottle-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wine-glass-alt-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wine-glass-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wix.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wizards-of-the-coast.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wolf-pack-battalion.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/won-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wordpress-simple.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wordpress.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wpbeginner.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wpexplorer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wpforms.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wpressr.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/wrench-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/x-ray-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/xbox.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/xing-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/xing.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/y-combinator.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yahoo.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yammer.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yandex-international.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yandex.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yarn.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yelp.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yen-sign-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yin-yang-solid.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/yoast.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/youtube-square.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/youtube.svg (100%) rename {docs/static => apps/docs/public/img}/icons/line-awesome/svg/zhihu.svg (100%) rename {docs/static => apps/docs/public}/img/index/APIs-dark.svg (100%) rename {docs/static => apps/docs/public}/img/index/APIs-light.svg (100%) rename {docs/static => apps/docs/public}/img/index/Concepts-dark.svg (100%) rename {docs/static => apps/docs/public}/img/index/Concepts-light.svg (100%) rename {docs/static => apps/docs/public}/img/index/Guides-dark.svg (100%) rename {docs/static => apps/docs/public}/img/index/Guides-light.svg (100%) rename {docs/static => apps/docs/public}/img/index/Manual-dark.svg (100%) rename {docs/static => apps/docs/public}/img/index/Manual-light.svg (100%) rename {docs/static => apps/docs/public}/img/index/Quickstarts-dark.svg (100%) rename {docs/static => apps/docs/public}/img/index/Quickstarts-light.svg (100%) rename {docs/static => apps/docs/public}/img/integrations/mongodb-charts-app-create-light.png (100%) rename {docs/static => apps/docs/public}/img/integrations/mongodb-charts-auth-provider-light.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/api-create-auth.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/api-create-clientid-secret.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/api-create.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/api-project-auth.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/api-project-role.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/app-create-auth.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/app-create-clientid.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/app-create-redirect.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/app-create.png (100%) rename {docs/static => apps/docs/public}/img/java-spring/app-profile.png (100%) rename {docs/static => apps/docs/public/img}/logos/oidc-cert.png (100%) rename {docs/static => apps/docs/public/img}/logos/zitadel-logo-dark@2x.png (100%) rename {docs/static => apps/docs/public/img}/logos/zitadel-logo-light@2x.png (100%) rename {docs/static => apps/docs/public}/img/manage/users/enable-scim-provisioning.png (100%) rename {docs/static => apps/docs/public}/img/manage/users/provisioning-to-app.png (100%) rename {docs/static => apps/docs/public}/img/manage/users/select-provisioning-actions.png (100%) rename {docs/static => apps/docs/public}/img/manuals/console_add_otp.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/console_add_passwordless_direct.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/console_add_u2f.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/console_profile.png (100%) rename {docs/static => apps/docs/public}/img/manuals/console_profile_loginname.png (100%) rename {docs/static => apps/docs/public}/img/manuals/console_profile_mfa_webauthn.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/console_profile_passwordless.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/errors/block-cookies.png (100%) rename {docs/static => apps/docs/public}/img/manuals/errors/same-site-strict.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_add_admin.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_add_domain.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_administrator_list.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_billing.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_delete_admin.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_general_support.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_general_support_inkeep.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_instance_detail.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_instance_overview.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_invoices.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_landing_page.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_landing_page_2.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_landing_page_3.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_new_instance.gif (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_settings_general.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_support.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_support_2.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/customer_portal_upgrade_tier.png (100%) rename {docs/static => apps/docs/public}/img/manuals/portal/portal_instance_detail_domain.png (100%) rename {docs/static => apps/docs/public}/img/nextjs-b2b/home.png (100%) rename {docs/static => apps/docs/public}/img/nextjs/app-create.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-create-app.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-enable-app.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-full.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-init-app.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-try.png (100%) rename {docs/static => apps/docs/public}/img/oidc/auth0/auth0-works.png (100%) rename {docs/static => apps/docs/public}/img/preview.png (100%) rename {docs/static => apps/docs/public}/img/product/release-cycle.png (100%) rename {docs/static => apps/docs/public}/img/python-flask/1.png (100%) rename {docs/static => apps/docs/public}/img/python-flask/2.png (100%) rename {docs/static => apps/docs/public}/img/python-flask/3.png (100%) rename {docs/static => apps/docs/public}/img/react/app-create.png (100%) rename {docs/static => apps/docs/public}/img/react/app-screen.png (100%) rename {docs/static => apps/docs/public}/img/react/project-authz.png (100%) rename {docs/static => apps/docs/public}/img/react/project-role.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-01.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-02.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-03.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-04.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-05.png (100%) rename {docs/static => apps/docs/public}/img/saml/atlassian/atlassian-06.png (100%) rename {docs/static => apps/docs/public}/img/saml/auth0/auth_enterprise.png (100%) rename {docs/static => apps/docs/public}/img/saml/auth0/auth_enterprise_try.png (100%) rename {docs/static => apps/docs/public}/img/saml/auth0/connection.png (100%) rename {docs/static => apps/docs/public}/img/saml/auth0/enterprise_connections.png (100%) rename {docs/static => apps/docs/public}/img/saml/aws/change_idp.png (100%) rename {docs/static => apps/docs/public}/img/saml/aws/configure_idp.png (100%) rename {docs/static => apps/docs/public}/img/saml/gitlab/gitlab-01.png (100%) rename {docs/static => apps/docs/public}/img/saml/gitlab/gitlab-02.png (100%) rename {docs/static => apps/docs/public}/img/saml/gitlab/gitlab-03.png (100%) rename {docs/static => apps/docs/public}/img/saml/pingidentity/conf_connection.png (100%) rename {docs/static => apps/docs/public}/img/saml/pingidentity/conf_idp_connection.png (100%) rename {docs/static => apps/docs/public}/img/saml/pingidentity/create_idp_profile.png (100%) rename {docs/static => apps/docs/public}/img/saml/pingidentity/idp_idp_configuration.png (100%) rename {docs/static => apps/docs/public}/img/saml/pingidentity/idp_p1_connection.png (100%) rename {docs/static => apps/docs/public}/img/saml/zitadel/application_saml.png (100%) rename {docs/static => apps/docs/public}/img/saml/zitadel/application_saml_create.png (100%) rename {docs/static => apps/docs/public}/img/saml/zitadel/application_saml_metadata.png (100%) rename {docs/static => apps/docs/public}/img/saml/zitadel/project.png (100%) rename {docs/static => apps/docs/public}/img/sdk-examples/console.png (100%) rename {docs/static => apps/docs/public}/img/support/check_for_project_on_authentication.png (100%) rename {docs/static => apps/docs/public}/img/support/login_not_possible_error.png (100%) rename {docs/static => apps/docs/public}/img/support/project_grant_for_customer_b.png (100%) rename {docs/static => apps/docs/public}/img/support/project_grant_missing.png (100%) rename {docs/static => apps/docs/public}/img/symfony/app-auth-method.png (100%) rename {docs/static => apps/docs/public}/img/symfony/app-create.png (100%) rename {docs/static => apps/docs/public}/img/symfony/app-redirects.png (100%) rename {docs/static => apps/docs/public}/img/symfony/project-authorizations.png (100%) rename {docs/static => apps/docs/public}/img/symfony/project-roles.png (100%) rename {docs/static => apps/docs/public}/img/symfony/project-settings.png (100%) rename {docs/static => apps/docs/public}/img/tech/android.svg (100%) rename {docs/static => apps/docs/public}/img/tech/angular.svg (98%) rename {docs/static => apps/docs/public}/img/tech/aspnet.png (100%) rename {docs/static => apps/docs/public}/img/tech/astro.svg (100%) rename {docs/static => apps/docs/public}/img/tech/dart.svg (100%) rename {docs/static => apps/docs/public}/img/tech/django.png (100%) rename {docs/static => apps/docs/public}/img/tech/django.svg (100%) rename {docs/static => apps/docs/public}/img/tech/dotnet.svg (100%) rename {docs/static => apps/docs/public}/img/tech/elixir.svg (100%) rename {docs/static => apps/docs/public}/img/tech/expressjs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/fastapi.svg (100%) rename {docs/static => apps/docs/public}/img/tech/fastify.svg (100%) rename {docs/static => apps/docs/public}/img/tech/flask.svg (100%) rename {docs/static => apps/docs/public}/img/tech/flasklight.svg (100%) rename {docs/static => apps/docs/public}/img/tech/flutter.svg (100%) rename {docs/static => apps/docs/public}/img/tech/github.svg (100%) rename {docs/static => apps/docs/public}/img/tech/golang.svg (100%) rename {docs/static => apps/docs/public}/img/tech/hono.svg (100%) rename {docs/static => apps/docs/public}/img/tech/java.svg (100%) rename {docs/static => apps/docs/public}/img/tech/javascript.svg (100%) rename {docs/static => apps/docs/public}/img/tech/laravel.svg (100%) rename {docs/static => apps/docs/public}/img/tech/nestjs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/net.svg (100%) rename {docs/static => apps/docs/public}/img/tech/nextjs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/nextjslight.svg (100%) rename {docs/static => apps/docs/public}/img/tech/nodejs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/nuxtjs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/oauth.svg (100%) rename {docs/static => apps/docs/public}/img/tech/oauth2-proxy.svg (100%) rename {docs/static => apps/docs/public}/img/tech/passportjs.svg (100%) rename {docs/static => apps/docs/public}/img/tech/php.svg (100%) rename {docs/static => apps/docs/public}/img/tech/pylon.svg (100%) rename {docs/static => apps/docs/public}/img/tech/python.svg (100%) rename {docs/static => apps/docs/public}/img/tech/qwik.svg (100%) rename {docs/static => apps/docs/public}/img/tech/react.png (100%) rename {docs/static => apps/docs/public}/img/tech/react.svg (100%) rename {docs/static => apps/docs/public}/img/tech/ruby.svg (100%) rename {docs/static => apps/docs/public}/img/tech/rust.svg (100%) rename {docs/static => apps/docs/public}/img/tech/rustlight.svg (100%) rename {docs/static => apps/docs/public}/img/tech/solidstart.svg (100%) rename {docs/static => apps/docs/public}/img/tech/spring.svg (100%) rename {docs/static => apps/docs/public}/img/tech/sveltekit.svg (100%) rename {docs/static => apps/docs/public}/img/tech/symfony.svg (100%) rename {docs/static => apps/docs/public}/img/tech/vue.svg (100%) rename {docs/static => apps/docs/public}/img/typescript-login-architecture.png (100%) rename {docs/static => apps/docs/public}/img/undraw_docusaurus_mountain.svg (100%) rename {docs/static => apps/docs/public}/img/undraw_docusaurus_react.svg (100%) rename {docs/static => apps/docs/public}/img/undraw_docusaurus_tree.svg (100%) rename {docs/static => apps/docs/public}/img/vue/app-create.png (100%) rename {docs/static => apps/docs/public}/img/vue/app-screen.png (100%) rename {docs/static => apps/docs/public}/img/vue/project-authz.png (100%) rename {docs/static => apps/docs/public}/img/vue/project-role.png (100%) rename {docs/static => apps/docs/public}/img/vue/tick-refresh-token.png (100%) rename {docs/static => apps/docs/public}/img/zitadel_cluster_architecture.png (100%) rename {docs/static => apps/docs/public}/img/zitadel_multicluster_architecture.png (100%) rename {docs/static => apps/docs/public}/img/zitadel_software_architecture.png (100%) rename {docs/static/img => apps/docs/public}/logo.svg (100%) rename {docs/static => apps/docs/public}/security.txt (100%) rename {docs/static/img => apps/docs/public}/zitadel-logo-dark.svg (100%) rename {docs/static/img => apps/docs/public}/zitadel-logo-light.svg (100%) rename {docs/static/img => apps/docs/public}/zitadel-logo-solo-darkdesign.svg (100%) rename {docs/static/img => apps/docs/public}/zitadel-logo-solo-light.png (100%) create mode 100644 apps/docs/redirects.json create mode 100644 apps/docs/scripts/check-links.mts create mode 100644 apps/docs/scripts/clean-openapi.mts create mode 100644 apps/docs/scripts/clean.mjs create mode 100644 apps/docs/scripts/fetch-remote-content.mjs create mode 100644 apps/docs/scripts/generate-api-reference.mts create mode 100644 apps/docs/scripts/generate-index-pages.ts create mode 100644 apps/docs/scripts/generate-proto-docs.mjs create mode 100644 apps/docs/scripts/inspect-toc-endpoints.mts create mode 100644 apps/docs/scripts/loader.mjs create mode 100644 apps/docs/scripts/match-redirects.mjs create mode 100644 apps/docs/scripts/relink-images.mjs create mode 100644 apps/docs/scripts/test-glob.mjs create mode 100644 apps/docs/scripts/validate-redirects.mjs create mode 100644 apps/docs/source.config.ts create mode 100644 apps/docs/src/data/benchmarks/v2.65.0/machine_jwt_profile_grant/output.json create mode 100644 apps/docs/src/data/benchmarks/v2.66.0/machine_jwt_profile_grant/output.json create mode 100644 apps/docs/src/data/benchmarks/v2.70.0/machine_jwt_profile_grant/output.json create mode 100644 apps/docs/src/data/benchmarks/v2.70.0/oidc_session/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/add_session/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/human_password_login/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/introspect/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/machine_client_credentials_login/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/machine_jwt_profile_grant/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/machine_pat_login/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/manipulate_user/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/oidc_session/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/otp_session/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/password_session/output.json create mode 100644 apps/docs/src/data/benchmarks/v4/user_info/output.json create mode 100644 apps/docs/tailwind.config.mjs create mode 100644 apps/docs/tsconfig.json create mode 100644 apps/docs/utils/cn.ts create mode 100644 apps/docs/utils/mixpanel.ts create mode 100644 apps/docs/vercel.json delete mode 100644 docs/.gitignore delete mode 100644 docs/README.md delete mode 100755 docs/apis/assets/assets.md delete mode 100644 docs/base.yaml delete mode 100644 docs/buf.gen.yaml delete mode 100644 docs/docs/guides/manage/cloud/support.md delete mode 100644 docs/docs/guides/manage/customize/user-schema.md delete mode 100644 docs/docs/guides/overview.mdx delete mode 100644 docs/docs/sdk-examples/astro.mdx delete mode 100644 docs/docs/sdk-examples/react.mdx delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/configuration.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/database.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/index.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/ingress.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/installation.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/observability.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/operations.md delete mode 100644 docs/docs/self-hosting/deploy/kubernetes/uninstalling.md delete mode 100644 docs/docs/self-hosting/deploy/troubleshooting/troubleshooting.mdx delete mode 100644 docs/docs/self-hosting/manage/database/_cockroachdb.mdx delete mode 100644 docs/docs/self-hosting/manage/reverseproxy/caddy/caddy.mdx delete mode 100644 docs/docs/self-hosting/manage/reverseproxy/httpd/httpd.mdx delete mode 100644 docs/docs/self-hosting/manage/reverseproxy/nginx/nginx.mdx delete mode 100644 docs/docs/self-hosting/manage/reverseproxy/traefik/traefik.mdx delete mode 100644 docs/docusaurus.config.js delete mode 100644 docs/package.json delete mode 100644 docs/plugin-download.sh delete mode 100644 docs/project.json delete mode 100644 docs/sidebars.js delete mode 100644 docs/src/components/PermissionTable/index.jsx delete mode 100644 docs/src/components/PermissionTable/styles.module.css delete mode 100644 docs/src/components/authrequest.jsx delete mode 100644 docs/src/components/card.jsx delete mode 100644 docs/src/components/environment.jsx delete mode 100644 docs/src/components/list.jsx delete mode 100644 docs/src/components/player.jsx delete mode 100644 docs/src/css/custom.css delete mode 100644 docs/src/pages/index.js delete mode 100644 docs/src/pages/styles.module.css delete mode 100644 docs/src/theme/ApiItem/index.jsx delete mode 100644 docs/src/theme/DocCardList/index.js delete mode 100644 docs/src/theme/DocSidebarItems/index.js delete mode 100644 docs/src/theme/Footer/index.js delete mode 100644 docs/src/theme/Root/index.js delete mode 100644 docs/src/utils/authrequest.js delete mode 100644 docs/src/utils/deprecated-items.js delete mode 100644 docs/src/utils/environment.js delete mode 100644 docs/static/.nojekyll delete mode 100644 docs/tailwind.config.js delete mode 100644 docs/vercel.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c3915e55d..babf8a3bc 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -33,7 +33,7 @@ }, "features": { "ghcr.io/devcontainers/features/go:1": { - "version": "1.25" + "version": "1.25.3" }, "ghcr.io/devcontainers/features/docker-outside-of-docker": {}, "ghcr.io/schlich/devcontainer-features/cypress:1": { diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8fa71ba65..6696343e1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -86,3 +86,21 @@ updates: commit-message: prefix: chore include: scope +- package-ecosystem: npm + directory: '/apps/docs' + open-pull-requests-limit: 10 + schedule: + interval: weekly + time: "02:00" + groups: + prod: + dependency-type: production + dev: + dependency-type: development + commit-message: + prefix: chore + include: scope + labels: + - "npm" + - "dependencies" + - "documentation" diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 3be436bcc..2aad51c43 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -5,13 +5,13 @@ on: branches: - 'main' paths-ignore: - - 'docs/**' + - 'apps/docs/content/**' pull_request: # The branches below must be a subset of the branches above branches: - 'main' paths-ignore: - - 'docs/**' + - 'apps/docs/content/**' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} diff --git a/.gitignore b/.gitignore index b464368fb..94b8d77b5 100644 --- a/.gitignore +++ b/.gitignore @@ -57,19 +57,18 @@ console/.angular pkg/**/**.connect.go **.gen.go openapi/**/*.json +# multi-version proto artifacts +/proto/latest/ +/proto/v*/ /internal/api/assets/authz.go /internal/api/assets/router.go internal/api/ui/console/static !internal/api/ui/console/static/gitkeep -docs/docs/apis/auth -docs/docs/apis/admin -docs/docs/apis/mgmt -docs/docs/apis/system -docs/docs/apis/proto -**/.sass-cache +apps/docs/content/apis/assets/assets.mdx +apps/docs/content/reference/api/ /internal/api/ui/login/static/resources/themes/zitadel/css/zitadel.css /internal/api/ui/login/static/resources/themes/zitadel/css/zitadel.css.map -zitadel-*-* +/zitadel-*-* !apps/**/zitadel-*-* # local @@ -106,3 +105,5 @@ CLAUDE.md AGENTS.md .mcp.json .gemini/* + +docs_old \ No newline at end of file diff --git a/.golangci.yaml b/.golangci.yaml index 59cf2d392..158e45e0a 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -2,6 +2,8 @@ version: "2" run: concurrency: 4 go: "1.24" + skip-dirs: + - apps/docs linters: enable: - asciicheck @@ -121,6 +123,10 @@ issues: max-issues-per-linter: 0 max-same-issues: 0 new-from-rev: origin/main + exclude-rules: + - path: apps/docs/.* + linters: + - typecheck formatters: enable: - gci diff --git a/.nxignore b/.nxignore index 5d94a71cb..fd3a2de74 100644 --- a/.nxignore +++ b/.nxignore @@ -2,3 +2,5 @@ !console/src/app/proto/generated !internal/api/ui/console/static !.artifacts/bin/*/*/zitadel.local +!apps/docs/content/apis/assets/assets.mdx +!apps/docs/content/reference/api/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e4054777..fe79cd639 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -129,7 +129,7 @@ The code consists of the following parts: | API definitions | Specifications of the API | [Protobuf](https://developers.google.com/protocol-buffers) | [./proto/zitadel](./proto/zitadel) | [Contribute to API](#contribute-to-api) | | Management Console | Frontend the user interacts with after log in | [Angular](https://angular.io), [Typescript](https://www.typescriptlang.org) | [./console](./console) | [Contribute to Frontend](#contribute-to-frontend) | | Login | Modern authentication UI built with Next.js | [Next.js](https://nextjs.org), [React](https://reactjs.org), [TypeScript](https://www.typescriptlang.org) | [./apps/login](./apps/login) | [Contribute to Frontend](#contribute-to-frontend) | -| Docs | Project documentation made with docusaurus | [Docusaurus](https://docusaurus.io/) | [./docs](./docs) | [Contribute to Frontend](#contribute-to-frontend) | +| Docs | Project documentation made with docusaurus | [Docusaurus](https://docusaurus.io/) | [./apps/docs](./apps/docs) | [Contribute to Frontend](#contribute-to-frontend) | | translations | Internationalization files for default languages | YAML | [./console](./console) and [./internal](./internal) | [Contribute Translations](#contribute-translations) | Please follow the guides to validate and test the code before you contribute. @@ -582,62 +582,9 @@ pnpm nx run @zitadel/client:build # Build after changes ### Contribute to Docs -Project documentation is made with Docusaurus and is located under [./docs](./docs). The documentation uses **pnpm** and **Nx** for development and build processes. +Project documentation is located under [./apps/docs](./apps/docs). +Please refer to the [Docs README](./apps/docs/README.md) for detailed instructions on how to contribute to the documentation. -To start developing, make sure you followed the [quick start](#quick-start) steps. - -#### Local Development - -```bash -# Start development server (recommended) -pnpm nx run @zitadel/docs:dev - -# Or start production server -pnpm nx run @zitadel/docs:prod -``` - -The Docs build process automatically: - -1. Downloads required protoc plugins -2. Generates gRPC documentation from proto files -3. Generates API documentation from OpenAPI specs -4. Copies configuration files -5. Builds the Docusaurus site - -#### Local testing - -The documentation server will be available at http://localhost:3000 with live reload for fast development feedback. - -#### Style guide - -- **Code with variables**: Make sure that code snippets can be used by setting environment variables, instead of manually replacing a placeholder. -- **Embedded files**: When embedding mdx files, make sure the template ist prefixed by "\_" (lowdash). The content will be rendered inside the parent page, but is not accessible individually (eg, by search). -- **Don't repeat yourself**: When using the same content in multiple places, save and manage the content as separate file and make use of embedded files to import it into other docs pages. -- **Embedded code**: You can embed code snippets from a repository. See the [plugin](https://github.com/saucelabs/docusaurus-theme-github-codeblock#usage) for usage. - -Following the [Google style guide](https://developers.google.com/style) is highly recommended. Its clear and concise guidelines ensure consistency and effective communication within the wider developer community. - -The style guide covers a lot of material, so their [highlights](https://developers.google.com/style/highlights) page provides an overview of its most important points. Some of the points stated in the highlights that we care about most are given below: - -- Be conversational and friendly without being frivolous. -- Use sentence case for document titles and section headings. -- Use active voice: make clear who's performing the action. -- Use descriptive link text. - -#### Docs pull request - -When making a pull request use `docs(): ` as title for the semantic release. -Scope can be left empty (omit the brackets) or refer to the top navigation sections. - -#### Pass Quality Checks - -Verify the Docs build correctly. - -```bash -pnpm nx run @zitadel/docs:build -``` - -Fix the quality checks, add new checks that cover your changes and mark your pull request as ready for review when the pipeline checks pass. ## Contribute Translations @@ -657,7 +604,7 @@ You also have to add some changes to the following files: - [Register Local File](./console/src/app/app.module.ts) - Import and register the Angular locale, register `i18n-iso-countries` locale - [Exclude from Angular prebundle](./console/angular.json) - Add `i18n-iso-countries/langs/.json` to `prebundle.exclude` - [Add Supported Language](./console/src/app/utils/language.ts) -- [Customized Text Docs](./docs/docs/guides/manage/customize/texts.md) +- [Customized Text Docs](./apps/docs/docs/guides/manage/customize/texts.md) - [Add language option](./internal/api/ui/login/static/templates/external_not_found_option.html) ### Login v2 (Next.js) @@ -737,7 +684,7 @@ The category shows which part of Zitadel is affected. - **category: backend**: The backend includes the APIs, event store, command and query side. This is developed in golang. - **category: ci**: ci is all about continuous integration and pipelines. - **category: design**: All about the ux/ui of Zitadel -- **category: docs**: Adjustments or new documentations, this can be found in the docs folder. +- **category: docs**: Adjustments or new documentations, this can be found in the apps/docs folder. - **category: frontend**: The frontend concerns on the one hand the Zitadel Management Console (Angular) and on the other hand the Login (gohtml) - **category: infra**: Infrastructure does include many different parts. E.g Terraform-provider, docker, metrics, etc. - **category: translation**: Everything concerning translations or new languages diff --git a/LICENSING.md b/LICENSING.md index 875b6cbea..67aff71b7 100644 --- a/LICENSING.md +++ b/LICENSING.md @@ -16,6 +16,7 @@ The following files and directories, including their subdirectories, are license ``` proto/ +apps/docs/ ``` diff --git a/README.md b/README.md index 4c995cbd2..91b88bf3b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- Zitadel Logo - Zitadel Logo + Zitadel Logo + Zitadel Logo

@@ -27,7 +27,7 @@

- +

Are you searching for a user management tool that is quickly set up like Auth0 and open source like Keycloak? diff --git a/apps/api/project.json b/apps/api/project.json index e56a32dbc..f1208e8bb 100644 --- a/apps/api/project.json +++ b/apps/api/project.json @@ -20,7 +20,9 @@ "!{workspaceRoot}/**/integration_test/**/*" ], "pack": [ - { "env": "VERSION" }, + { + "env": "VERSION" + }, "runtime" ] }, @@ -65,10 +67,16 @@ ], "command": "bash -c 'CGO_ENABLED=0 go build -o .artifacts/bin/$(go env GOOS)/$(go env GOARCH)/zitadel.local -ldflags=\"-s -w\"'", "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" }, + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + }, "runtime", - {"dependentTasksOutputFiles": "internal/api/ui/console/static/**/*"} + { + "dependentTasksOutputFiles": "internal/api/ui/console/static/**/*" + } ], "outputs": [ "{workspaceRoot}/.artifacts/bin/*/*/zitadel.local" @@ -82,13 +90,17 @@ "generate-statik" ] }, - "lint-install":{ + "lint-install": { "description": "Installs golangci-lint binary for linting. Using go install is not recommended in the official docs, because this can produce non-deterministic results.", "cache": true, "command": "curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b .artifacts/bin/$(go env GOOS)/$(go env GOARCH) v2.5.0", "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" } + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + } ], "outputs": [ "{workspaceRoot}/.artifacts/bin/*/*/golangci-lint" @@ -137,8 +149,12 @@ "command": "go build -cover -race -tags integration -o .artifacts/bin/$(go env GOOS)/$(go env GOARCH)/zitadel.test main.go", "cache": true, "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" }, + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + }, "sources", "{workspaceRoot}/internal/integration/**", "{workspaceRoot}/go*" @@ -193,8 +209,12 @@ ] }, "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" }, + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + }, "sources", "{workspaceRoot}/internal/integration/**", "{workspaceRoot}/go*" @@ -215,7 +235,9 @@ "command": "find internal/api/ui/console/static -mindepth 1 ! -name 'gitkeep' -delete -print && cp -r -v console/dist/console/* internal/api/ui/console/static", "cache": true, "inputs": [ - {"dependentTasksOutputFiles": "console/dist/console/**/*"} + { + "dependentTasksOutputFiles": "console/dist/console/**/*" + } ], "outputs": [ "{workspaceRoot}/internal/api/ui/console/static" @@ -231,7 +253,6 @@ "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install go.uber.org/mock/mockgen@v0.4.0", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install golang.org/x/tools/cmd/stringer@v0.36.0", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install github.com/rakyll/statik@v0.1.7", - "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install github.com/bufbuild/buf/cmd/buf@v1.45.0", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35.1", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1", @@ -240,15 +261,18 @@ "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install github.com/envoyproxy/protoc-gen-validate@v1.1.0", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install connectrpc.com/connect/cmd/protoc-gen-connect-go@v1.18.1", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35.1", - "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install ./internal/protoc/protoc-gen-authoption", "GOBIN=${PWD}/.artifacts/bin/$(go env GOOS)/$(go env GOARCH) go install ./internal/protoc/protoc-gen-zitadel" ] }, "cache": true, "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" }, + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + }, "{workspaceRoot}/internal/protoc/protoc-gen-authoption/**/*", "{workspaceRoot}/internal/protoc/protoc-gen-zitadel/**/*" ], @@ -257,7 +281,6 @@ "{workspaceRoot}/.artifacts/bin/*/*/mockgen", "{workspaceRoot}/.artifacts/bin/*/*/stringer", "{workspaceRoot}/.artifacts/bin/*/*/statik", - "{workspaceRoot}/.artifacts/bin/*/*/buf", "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-go", "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-go-grpc", @@ -265,7 +288,6 @@ "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-openapiv2", "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-validate", "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-connect-go", - "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-authoption", "{workspaceRoot}/.artifacts/bin/*/*/protoc-gen-zitadel" ] @@ -313,8 +335,12 @@ }, "cache": true, "inputs": [ - { "runtime": "go env GOOS" }, - { "runtime": "go env GOARCH" }, + { + "runtime": "go env GOOS" + }, + { + "runtime": "go env GOARCH" + }, "{workspaceRoot}/internal/statik/generate.go", "{workspaceRoot}/internal/notification/statik/generate.go", "{workspaceRoot}/internal/api/ui/login/static/resources/generate.go", @@ -332,7 +358,7 @@ "dependsOn": [ "generate-install" ], - "command": "mkdir -p docs/apis/assets && go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=docs/apis/assets/assets.md", + "command": "mkdir -p apps/docs/content/apis/assets && go run internal/api/assets/generator/asset_generator.go -directory=internal/api/assets/generator/ -assets=apps/docs/content/apis/assets/assets.mdx", "cache": true, "inputs": [ "{workspaceRoot}/internal/api/assets/generator/asset_generator.go" @@ -340,7 +366,7 @@ "outputs": [ "{workspaceRoot}/internal/api/assets/authz.go", "{workspaceRoot}/internal/api/assets/router.go", - "{workspaceRoot}/docs/apis/assets/assets.md" + "{workspaceRoot}/apps/docs/content/apis/assets/assets.mdx" ] }, "generate-go": { @@ -372,7 +398,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-darwin-amd64.tar.gz", @@ -389,7 +417,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-darwin-arm64.tar.gz", @@ -406,7 +436,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-linux-amd64.tar.gz", @@ -423,7 +455,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-linux-arm64.tar.gz", @@ -440,7 +474,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-windows-amd64.tar.gz", @@ -457,7 +493,9 @@ "cache": true, "inputs": [ "pack", - { "env": "ZITADEL_VERSION" } + { + "env": "ZITADEL_VERSION" + } ], "outputs": [ "{workspaceRoot}/.artifacts/pack/zitadel-windows-arm64.tar.gz", @@ -465,4 +503,4 @@ ] } } -} +} \ No newline at end of file diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore new file mode 100644 index 000000000..01c23dc09 --- /dev/null +++ b/apps/docs/.gitignore @@ -0,0 +1,39 @@ +# deps +/node_modules + +# generated content +.source +scanned-urls.json + +# test & build +/coverage +/.next/ +/out/ +/build +*.tsbuildinfo + +# misc +.DS_Store +*.pem +/.pnp +.pnp.js +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# others +.env*.local +.vercel +next-env.d.ts + +# generated api docs +/content/reference/api +/content/reference/api-v1 +/openapi/ + +# multi-version artifacts +/content/versions.json +/content/v*/ +/public/v* +/.temp/ +/.source diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 000000000..4b38b4dbf --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,83 @@ +# @zitadel/docs + +Documentation for Zitadel, built with [Fumadocs](https://fumadocs.dev) and [Next.js](https://nextjs.org). + +## Getting Started + +Ensure you have followed the [root quick start](../../CONTRIBUTING.md#quick-start) to set up dependencies. + +### Local Development + +Start the development server: + +```bash +pnpm nx run @zitadel/docs:dev +``` + +The site will be available at http://localhost:3000. + +### Scripts + +Key scripts for documentation workflows: + +| Script | Description | +| :--- | :--- | +| `dev` | Starts the development server. | +| `build` | Builds the production application. | +| `fetch:remote-content` | Fetches remote tags and referenced content. | +| `generate` | Runs all generation steps (`fetch:remote-content`, `generate:proto-docs`, `generate:api-reference`, `generate:index-pages`). | +| `check:links` | Validates content integrity (broken links, missing frontmatter, schema errors). | +| `check-types` | Validates typescript types. | +| `test` | Runs all validation steps (`check-types`, `check:links`). | +| `lint` | checks for code style and syntax errors (ESLint). | +| `clean` | Cleans the build output and generated files. | + +### Validation + +* **Code Quality**: Run `pnpm lint` to check for syntax and style issues in JS/TS/MDX files. +* **Content Integrity**: Run `pnpm check:links` to validate content structure, including: + * Broken internal links + * Missing required frontmatter (e.g., `title`) + * Image references + +## Contributing + +### Build Process + +The docs build process automatically handling the following steps via `generate`: +1. Downloads required protoc plugins. +2. Generates gRPC documentation from proto files. +3. Generates API documentation from OpenAPI specs. +4. Generates index files for directory structures. + +### Style Guide + +- **Variables**: Use environment variables in code snippets where possible. +- **Embedded Content**: Use `_filename.mdx` for content embedded in other pages (not indexed individually). +- **Code Embedding**: Use the `file` property in code blocks to embed code from the repo. +- **Voice**: Use active voice and sentence case for titles. + +Refer to the [Google Developer Style Guide](https://developers.google.com/style) for general guidelines. + +### Adding Content + +All documentation content is located in the `content` directory. Note that the system strictly accepts **only `.mdx` files**. + +To add a new page: +1. Create a `.mdx` file in the appropriate subdirectory of [`content`](./content). +2. Register the new page in the sidebar configuration at [`lib/sidebar-data.ts`](./lib/sidebar-data.ts) to make it accessible in the navigation. + + +### Pull Requests + +Use `docs(): ` for PR titles. +Pass quality checks before submitting: + +```bash +pnpm nx run @zitadel/docs:build +pnpm nx run @zitadel/docs:check:links +``` + +You can also run specific steps individually: +* `pnpm fetch:remote-content` +* `pnpm generate:api-reference` diff --git a/apps/docs/app/(home)/layout.tsx b/apps/docs/app/(home)/layout.tsx new file mode 100644 index 000000000..8d1530ec2 --- /dev/null +++ b/apps/docs/app/(home)/layout.tsx @@ -0,0 +1,7 @@ +import { HomeLayout } from 'fumadocs-ui/layouts/home'; +import { baseOptions } from '@/lib/layout.shared'; +import { ReactNode } from 'react'; + +export default function Layout({ children }: { children: ReactNode }) { + return {children}; +} diff --git a/apps/docs/app/[[...slug]]/layout.tsx b/apps/docs/app/[[...slug]]/layout.tsx new file mode 100644 index 000000000..1703f5029 --- /dev/null +++ b/apps/docs/app/[[...slug]]/layout.tsx @@ -0,0 +1,81 @@ +import { source, versionSource } from '@/lib/source'; +import { ReactNode } from 'react'; +import { DocsLayout } from 'fumadocs-ui/layouts/docs'; +import { baseOptions } from '@/lib/layout.shared'; +import { buildCustomTree } from '@/lib/custom-tree'; +import rawVersions from '@/content/versions.json'; + +const versions = rawVersions as any[]; +import { VersionSelector } from '@/components/version-selector'; + +export default async function Layout(props: { children: ReactNode; params: Promise<{ slug?: string[] }> }) { + const params = await props.params; + const slug = params.slug || []; + + // Determine current version and tail path + // If first slug segment matches a version param (e.g. v4.10), that's the version. + // Otherwise it's latest. + const versionParam = slug[0] && versions.find(v => v.param === slug[0]) ? slug[0] : undefined; + const currentVersion = versionParam || 'latest'; + + const allPages = [...source.getPages(), ...versionSource.getPages()]; + const labelsMap = new Map(); + allPages.forEach(p => { + if (p.data.sidebar_label) { + labelsMap.set(p.url, p.data.sidebar_label); + } + }); + + let tree = source.pageTree; + if (currentVersion !== 'latest') { + // Hoist the version folder to root to flatten sidebar + // versionSource.pageTree -> [ v4.10 folder, v4.9 folder ... ] + // We want the children of the specific version folder. + + const children = (versionSource.pageTree as any).children || []; + + const versionFolder = children.find((node: any) => { + if (node.type !== 'folder') return false; + // Check if the folder's index page belongs to this version + if (node.index?.url && node.index.url.includes(`/${currentVersion}`)) return true; + // Fallback: check first child if index missing + if (node.children?.[0]?.url?.includes(`/${currentVersion}`)) return true; + return false; + }); + + if (versionFolder) { + // Hoist children + const hoistedTree = { + name: versionFolder.name, + children: versionFolder.children, + } as any; + + // Apply custom sidebar structure (from local sidebar-data.ts) + // We strip the prefix '/v4.10' so the lookup matches generic keys 'guides/...' + // The logs showed the URLs start with /[version] not /docs/[version] + const prefix = currentVersion === 'latest' ? '/docs' : `/${currentVersion}`; + tree = buildCustomTree(hoistedTree, { + stripPrefix: prefix, + labels: labelsMap + }); + } else { + tree = buildCustomTree(versionSource.pageTree, { labels: labelsMap }); + } + } else { + tree = buildCustomTree(source.pageTree, { labels: labelsMap }); + } + + return ( + + ), + }} + > + {props.children} + + ); +} diff --git a/apps/docs/app/[[...slug]]/page.tsx b/apps/docs/app/[[...slug]]/page.tsx new file mode 100644 index 000000000..bd00570d7 --- /dev/null +++ b/apps/docs/app/[[...slug]]/page.tsx @@ -0,0 +1,79 @@ +import { getPageImage, getPage, source } from '@/lib/source'; +import { + DocsBody, + DocsDescription, + DocsPage, + DocsTitle, +} from 'fumadocs-ui/layouts/docs/page'; +import { notFound } from 'next/navigation'; +import { getMDXComponents } from '@/mdx-components'; +import type { Metadata } from 'next'; +import { createRelativeLink } from 'fumadocs-ui/mdx'; +import { Callout } from 'fumadocs-ui/components/callout'; +import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; +import { Feedback } from '@/components/feedback'; + +export default async function Page(props: any) { + const params = await props.params; + const { page, source: pageSource } = getPage(params.slug); + if (!page) notFound(); + + const MDX = page.data.body; + + return ( + + {page.data.title} + {page.data.description} + + + + + + ); +} + +export const dynamicParams = true; +export const revalidate = 3600; + +export async function generateStaticParams() { + return source.generateParams(); +} + +export async function generateMetadata( + props: any, +): Promise { + const params = await props.params; + const { page } = getPage(params.slug); + if (!page) notFound(); + const baseUrl = 'https://zitadel.com/docs'; + const url = params.slug ? `${baseUrl}/${params.slug.join('/')}` : baseUrl; + + let canonicalUrl = url; + + if (params.slug?.[0]?.startsWith('v')) { + const unversionedSlug = params.slug.slice(1); + const unversionedPage = source.getPage(unversionedSlug); + if (unversionedPage) { + canonicalUrl = `${baseUrl}${unversionedPage.url === '/' ? '' : unversionedPage.url}`; + } + } + + return { + title: page.data.title, + description: page.data.description, + alternates: { + canonical: canonicalUrl, + }, + openGraph: { + images: getPageImage(page).url, + }, + }; +} diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts new file mode 100644 index 000000000..7ba7e8231 --- /dev/null +++ b/apps/docs/app/api/search/route.ts @@ -0,0 +1,7 @@ +import { source } from '@/lib/source'; +import { createFromSource } from 'fumadocs-core/search/server'; + +export const { GET } = createFromSource(source, { + // https://docs.orama.com/docs/orama-js/supported-languages + language: 'english', +}); diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css new file mode 100644 index 000000000..c194edee4 --- /dev/null +++ b/apps/docs/app/global.css @@ -0,0 +1,408 @@ +@import 'tailwindcss'; +@import 'fumadocs-ui/css/neutral.css'; +@import 'fumadocs-ui/css/preset.css'; +@import 'fumadocs-openapi/css/preset.css'; + +@theme { + /* 1. REGISTER STANDARD UTILITIES */ + --color-background: hsl(var(--background)); + --color-foreground: hsl(var(--foreground)); + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + --color-secondary: hsl(var(--secondary)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-ring: hsl(var(--ring)); + + /* 2. MAP FUMADOCS VARIABLES */ + --color-fd-primary: var(--color-primary); + --color-fd-primary-foreground: var(--color-primary-foreground); + --color-fd-background: var(--color-background); + --color-fd-foreground: var(--color-foreground); + --color-fd-card: var(--color-card); + --color-fd-card-foreground: var(--color-card-foreground); + --color-fd-popover: var(--color-popover); + --color-fd-popover-foreground: var(--color-popover-foreground); + --color-fd-muted: var(--color-muted); + --color-fd-muted-foreground: var(--color-muted-foreground); + --color-fd-accent: var(--color-accent); + --color-fd-accent-foreground: var(--color-accent-foreground); + --color-fd-border: var(--color-border); + --color-fd-ring: var(--color-ring); + + --color-zitadelpink: #ff2069; + --font-sans: var(--font-lato), "Lato", "ui-sans-serif", "system-ui"; +} + +/* --- LIGHT MODE VARIABLES --- */ +:root { + --primary: 230 59% 58%; + --primary-foreground: 0 0% 100%; + + --background: 0 0% 98%; + --foreground: 0 0% 10%; + + --card: 0 0% 93%; + --card-foreground: 0 0% 10%; + + --muted: 0 0% 96%; + --muted-foreground: 0 0% 45%; + + --accent: 0 0% 92%; + --accent-foreground: 230 59% 58%; + + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + + --border: 0 0% 90%; + --input: 0 0% 90%; + --ring: 230 59% 58%; + + --radius: 0.5rem; + --overlaycolor: #6c90b420; +} + +/* --- DARK MODE VARIABLES --- */ +:root[class~="dark"], [data-theme="dark"] { + --primary: 340 100% 56%; + --primary-foreground: 0 0% 100%; + + --background: 235 45% 14%; + --foreground: 0 0% 98%; + + --card: 220 40% 25%; + --card-foreground: 0 0% 98%; + + --muted: 230 43% 15%; + --muted-foreground: 230 20% 70%; + + --accent: 230 43% 20%; + --accent-foreground: 340 100% 65%; + + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + + --border: 230 43% 25%; + --input: 230 43% 25%; + --ring: 340 100% 56%; + + --overlaycolor: #ffffff15; + + /* FORCE OVERRIDE for Fumadocs Variables */ + --color-fd-background: hsl(var(--background)); + --color-fd-foreground: hsl(var(--foreground)); + --color-fd-primary: hsl(var(--primary)); + --color-fd-primary-foreground: hsl(var(--primary-foreground)); + --color-fd-card: hsl(var(--card)); + --color-fd-card-foreground: hsl(var(--card-foreground)); + --color-fd-popover: hsl(var(--card)); + --color-fd-popover-foreground: hsl(var(--foreground)); + --color-fd-muted: hsl(var(--muted)); + --color-fd-muted-foreground: hsl(var(--muted-foreground)); + --color-fd-accent: hsl(var(--accent)); + --color-fd-accent-foreground: hsl(var(--accent-foreground)); + --color-fd-border: hsl(var(--border)); + --color-fd-ring: hsl(var(--ring)); +} + +@layer components { + + /* 1. VISIBILITY HELPERS */ + .hideondark { display: block !important; } + .hideonlight { display: none !important; } + + :root[class~="dark"] .hideondark, [data-theme="dark"] .hideondark { + display: none !important; + } + :root[class~="dark"] .hideonlight, [data-theme="dark"] .hideonlight { + display: block !important; + } + + /* 2. MAIN CARD LAYOUT (Tile Wrapper) */ + .tile-wrapper { + @apply flex flex-row flex-wrap gap-6 my-6; + } + + .tile-wrapper > * { + @apply flex flex-col items-center text-center rounded-lg border relative; + + background-color: hsl(var(--card)) !important; + border-color: hsl(var(--border)); + + justify-content: flex-start; + min-width: 160px; + min-height: 180px; + padding: 2rem; + padding-bottom: 3rem; + } + + .tile-wrapper > * > :last-child { + margin-top: auto; + } + + .tile-wrapper > * > h3, + .tile-wrapper > * > h4, + .tile-wrapper > * > strong { + @apply mt-0; + } + + /* 3. ICON STYLING */ + .custom-rounded { + @apply flex items-center justify-center p-2 rounded-full w-14 h-14 shrink-0 m-0; + } + .custom-rounded svg { + @apply fill-white h-7 w-7; + } + .custom-rounded i { + @apply text-white; + } + + /* Gradients */ + .custom-rounded-start { background: linear-gradient(40deg, #059669 30%, #047857); } + .custom-rounded-password { background: linear-gradient(40deg, #f59e0b 30%, #b45309); } + .custom-rounded-login, .custom-rounded-register { background: linear-gradient(40deg, #059669 30%, #047857); } + .custom-rounded-privatelabel, .custom-rounded-phone, .custom-rounded-email, .custom-rounded-storage, .custom-rounded-service { background: linear-gradient(40deg, #ff2069 30%, #cc1a54); } + .custom-rounded-split { background: linear-gradient(40deg, #ff2069, #cc1a54); } + .custom-rounded-texts, .custom-rounded-help, .custom-rounded-architecture { background: linear-gradient(40deg, #dc2626 30%, #db2777); } + .custom-rounded-system, .custom-rounded-apis, .custom-rounded-policy, .custom-rounded-instance { background: linear-gradient(40deg, #1f2937, #111827); } + + /* 4. B2B / DIAGRAM LAYOUTS (Fixes the B2B Component) */ + .flexrowbetween { + @apply flex flex-row items-center justify-around gap-4 my-8 w-full; + } + + .arrowright { + @apply w-8 h-8 shrink-0 text-muted-foreground; + } + + .b2borg, .b2bproject, .b2bapp, .b2buser { + @apply rounded-xl p-4 border text-left; + background: var(--overlaycolor); + border-color: hsl(var(--border)); + } + + .b2buser { @apply mt-4; } + + .b2borg span, .b2bproject span, .b2bapp span, .b2buser span { + @apply ml-4 mb-2 block font-semibold; + } + + /* Specific styling for the role text */ + .b2bprojectrole { + @apply mt-2 ml-4 block text-sm opacity-80 font-normal; + } + + /* 5. FOOTER / PAGINATION CARDS */ + a.\@max-lg\:col-span-full { + @apply flex flex-col p-6 rounded-xl border transition-all no-underline; + background-color: hsl(var(--card)) !important; + border-color: hsl(var(--border)) !important; + } + + a.\@max-lg\:col-span-full:hover { + @apply shadow-sm; + border-color: hsl(var(--primary)) !important; + background-color: hsl(var(--card)) !important; + } + + a.\@max-lg\:col-span-full > div:first-child { + @apply flex items-center gap-3; + } + + a.\@max-lg\:col-span-full svg { + @apply w-5 h-5 m-0; + } + + a.\@max-lg\:col-span-full p { + margin-bottom: 0 !important; + margin-top: 0 !important; + } + + a.\@max-lg\:col-span-full p.text-fd-muted-foreground { + @apply mt-2 text-sm opacity-80; + } + + /* 6. VIDEO PLAYER WRAPPER */ + /* Fixes aspect ratio for ReactPlayer embeds */ + .player-wrapper { + @apply relative mb-8; + padding-top: 56.25%; /* 16:9 Aspect Ratio */ + } + .react-player { + @apply absolute top-0 left-0; + } + + /* 7. GET STARTED BUTTON */ + .get-started { + @apply inline-flex items-center justify-center px-6 py-2 rounded-full font-bold border-2 transition-all; + border-color: #ff2069; + background-color: #ff2069; + color: white; + } + .get-started:hover { + @apply opacity-90; + color: white !important; + } + + /* Target any div that uses the callout color variable */ + div[style*="--callout-color"] { + @apply rounded-lg shadow-sm mb-4; + + /* Force Docusaurus Layout: Left Border Only */ + border: 1px solid rgba(0,0,0,0.05) !important; + border-left-width: 4px !important; + + /* Hide the default Fumadocs vertical colored bar inside */ + & > div[role="none"] { + display: none !important; + } + } + + /* --- INFO (Blue) --- */ + /* We match the variable name in the style string */ + div[style*="--color-fd-info"] { + background-color: #eff6ff !important; + border-left-color: #3b82f6 !important; + color: #1e3a8a !important; + } + div[style*="--color-fd-info"] svg { + color: #3b82f6 !important; + fill: transparent !important; /* Remove fill to look cleaner */ + } + /* Dark Mode Info */ + :is(.dark div[style*="--color-fd-info"]) { + background-color: rgba(59, 130, 246, 0.1) !important; + color: #dbeafe !important; + border-top-color: rgba(255,255,255,0.05) !important; + border-right-color: rgba(255,255,255,0.05) !important; + border-bottom-color: rgba(255,255,255,0.05) !important; + } + + /* --- WARNING (Amber) --- */ + div[style*="--color-fd-warn"] { + background-color: #fffbeb !important; + border-left-color: #f59e0b !important; + color: #78350f !important; + } + div[style*="--color-fd-warn"] svg { + color: #f59e0b !important; + fill: transparent !important; + } + /* Dark Mode Warning */ + :is(.dark div[style*="--color-fd-warn"]) { + background-color: rgba(245, 158, 11, 0.1) !important; + color: #fef3c7 !important; + border-top-color: rgba(255,255,255,0.05) !important; + border-right-color: rgba(255,255,255,0.05) !important; + border-bottom-color: rgba(255,255,255,0.05) !important; + } + + /* --- ERROR (Red) --- */ + div[style*="--color-fd-error"] { + background-color: #fef2f2 !important; + border-left-color: #ef4444 !important; + color: #7f1d1d !important; + } + div[style*="--color-fd-error"] svg { + color: #ef4444 !important; + fill: transparent !important; + } + /* Dark Mode Error */ + :is(.dark div[style*="--color-fd-error"]) { + background-color: rgba(239, 68, 68, 0.12) !important; + color: #fee2e2 !important; + border-top-color: rgba(255,255,255,0.05) !important; + border-right-color: rgba(255,255,255,0.05) !important; + border-bottom-color: rgba(255,255,255,0.05) !important; + } + + /* --- TITLE BOLD --- */ + div[style*="--callout-color"] strong, + div[style*="--callout-color"] p:first-child strong { + font-weight: 700 !important; + } +} + +@layer base { + /* HEADINGS */ + h1, h2, h3, h4, h5, h6 { + font-family: var(--font-sans); + color: hsl(var(--foreground)) !important; + margin-bottom: 1rem; + letter-spacing: -0.025em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + color: inherit !important; + text-decoration: none !important; + } + + h1 { + font-size: 3.5rem !important; + font-weight: 700 !important; + line-height: 1.1 !important; + margin-bottom: 1.5rem !important; + } + + h2 { + font-size: 2.25rem !important; + font-weight: 600 !important; + margin-top: 3rem !important; + margin-bottom: 1rem !important; + padding-bottom: 0.5rem !important; + border-bottom: 1px solid hsl(var(--border)) !important; + } + + h3 { + font-size: 2rem !important; + font-weight: 600 !important; + margin-top: 2.5rem !important; + margin-bottom: 1rem !important; + } + + h4 { + font-size: 1.5rem !important; + font-weight: 600 !important; + margin-top: 2.5rem !important; + margin-bottom: 1rem !important; + } + + p { + font-size: 1rem; + line-height: 1.7; + margin-bottom: 1.5rem; + } + + html, body { + background-color: hsl(var(--background)); + color: hsl(var(--foreground)); + } + + a { + color: hsl(var(--primary)); + text-decoration: none; + transition: opacity 0.2s; + } + a:hover { + opacity: 0.8; + } +} \ No newline at end of file diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx new file mode 100644 index 000000000..58cb9e3d1 --- /dev/null +++ b/apps/docs/app/layout.config.tsx @@ -0,0 +1,29 @@ +import { type BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; +import { BookOpen, Code2, Server } from 'lucide-react'; + +export const baseOptions: BaseLayoutProps = { + nav: { + title: 'ZITADEL Docs', + }, + links: [ + { + text: 'Guides', + url: '/', + active: 'nested-url', + icon: , + }, + { + text: 'APIs', + url: '/apis/introduction', + active: 'nested-url', + icon: , + }, + { + text: 'Legal', + url: '/legal/terms-of-service', + active: 'nested-url', + icon: , // Using Server icon as placeholder or pick another one + }, + ], + githubUrl: 'https://github.com/zitadel/zitadel', +}; diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx new file mode 100644 index 000000000..f894bd4cc --- /dev/null +++ b/apps/docs/app/layout.tsx @@ -0,0 +1,25 @@ +import './global.css'; +import type { Metadata } from 'next'; +import { Providers } from './providers'; + +export const metadata: Metadata = { + metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000'), + icons: { + other: [ + { + rel: 'stylesheet', + url: '/docs/img/icons/line-awesome/css/line-awesome.min.css', + }, + ], + }, +}; + +export default function Layout({ children }: any) { + return ( + + + {children} + + + ); +} diff --git a/apps/docs/app/llms-full.txt/route.ts b/apps/docs/app/llms-full.txt/route.ts new file mode 100644 index 000000000..d494d2cbb --- /dev/null +++ b/apps/docs/app/llms-full.txt/route.ts @@ -0,0 +1,10 @@ +import { getLLMText, source } from '@/lib/source'; + +export const revalidate = false; + +export async function GET() { + const scan = source.getPages().map(getLLMText); + const scanned = await Promise.all(scan); + + return new Response(scanned.join('\n\n')); +} diff --git a/apps/docs/app/og/docs/[...slug]/route.tsx b/apps/docs/app/og/docs/[...slug]/route.tsx new file mode 100644 index 000000000..b88c88389 --- /dev/null +++ b/apps/docs/app/og/docs/[...slug]/route.tsx @@ -0,0 +1,28 @@ +import { ImageResponse } from 'next/og'; +import { notFound } from 'next/navigation'; +import { source } from '@/lib/source'; +import { generate as DefaultImage } from 'fumadocs-ui/og'; + +export const revalidate = false; + +export async function GET(request: Request, context: any) { + const { slug } = context.params; + const page = source.getPage(slug.slice(0, -1)); + if (!page) notFound(); + + return new ImageResponse( + , + { + width: 1200, + height: 630, + }, + ); +} + +export function generateStaticParams() { + return []; +} diff --git a/apps/docs/app/providers.tsx b/apps/docs/app/providers.tsx new file mode 100644 index 000000000..f143a4231 --- /dev/null +++ b/apps/docs/app/providers.tsx @@ -0,0 +1,26 @@ +'use client'; + +import { RootProvider } from 'fumadocs-ui/provider/next'; +import dynamic from "next/dynamic"; +import { ThemeProvider } from 'next-themes'; + +import MixpanelProvider from '@/components/mixpanel-provider'; +import PlausibleProvider from '@/components/plausible-provider'; + +const SearchDialog = dynamic(() => import("@/components/inkeep-search")); + +export function Providers({ children }: { children: React.ReactNode }) { + return ( + + + + {children} + + + ); +} diff --git a/apps/docs/app/sitemap.ts b/apps/docs/app/sitemap.ts new file mode 100644 index 000000000..07aa3912b --- /dev/null +++ b/apps/docs/app/sitemap.ts @@ -0,0 +1,27 @@ +import { MetadataRoute } from 'next'; +import { source } from '@/lib/source'; + +export default function sitemap(): MetadataRoute.Sitemap { + const baseUrl = 'https://zitadel.com/docs'; + + const docsPages = source.getPages().map((page) => ({ + url: `${baseUrl}${page.url === '/' ? '' : page.url}`, + lastModified: new Date(), + changeFrequency: 'weekly' as const, + priority: 0.8, + })); + + + + return [ + { + url: baseUrl, + lastModified: new Date(), + changeFrequency: 'daily' as const, + priority: 1, + }, + ...docsPages, + ].filter((item, index, self) => + index === self.findIndex((t) => t.url === item.url) + ); +} diff --git a/apps/docs/buf.gen.yaml b/apps/docs/buf.gen.yaml new file mode 100644 index 000000000..0b6ba85fe --- /dev/null +++ b/apps/docs/buf.gen.yaml @@ -0,0 +1,6 @@ +version: v2 +plugins: + - remote: buf.build/community/sudorandom-connect-openapi:v0.19.1 + out: . + opt: + - format=json diff --git a/apps/docs/components/PermissionTable/index.jsx b/apps/docs/components/PermissionTable/index.jsx new file mode 100644 index 000000000..ee82a33f5 --- /dev/null +++ b/apps/docs/components/PermissionTable/index.jsx @@ -0,0 +1,111 @@ +import React, { useMemo } from 'react'; +import yaml from 'js-yaml'; +import { Check, X } from 'lucide-react'; +import { cn } from '@/utils/cn'; // Assuming utils/cn exists or I'll use clsx/tailwind-merge directly if not sure + +// Fallback utility if generic cn doesn't exist, checking imports first is safer but I'll inline a simple merge if needed +// Checking package.json I saw clsx and tailwind-merge are dependencies. + +function classNames(...classes) { + return classes.filter(Boolean).join(' '); +} + +export default function PermissionTable({ data }) { + const { roles, permissions, matrix } = useMemo(() => { + if (!data) return { roles: [], permissions: [], matrix: {} }; + + let parsedData = data; + if (typeof data === 'string') { + try { + parsedData = yaml.load(data); + } catch (e) { + console.error('Failed to parse YAML data:', e); + return { roles: [], permissions: [], matrix: {} }; + } + } + + // 1. Identify all sources. + const sources = [ + parsedData?.InternalAuthZ?.RolePermissionMappings, + parsedData?.SystemAuthZ?.RolePermissionMappings, + ].filter(Boolean).flat(); + + // 2. Aggregate Data + const roleMap = new Map(); + const allPermissions = new Set(); + + sources.forEach((mapping) => { + const roleName = mapping.Role; + const rolePerms = mapping.Permissions || []; + + if (!roleMap.has(roleName)) { + roleMap.set(roleName, new Set()); + } + + rolePerms.forEach((perm) => { + roleMap.get(roleName).add(perm); + allPermissions.add(perm); + }); + }); + + // 3. Sort for display + const sortedRoles = Array.from(roleMap.keys()).sort(); + const sortedPermissions = Array.from(allPermissions).sort(); + + return { + roles: sortedRoles, + permissions: sortedPermissions, + matrix: roleMap, + }; + }, [data]); + + if (!roles.length) { + return
No permission data available.
; + } + + return ( +
+ + + + + {roles.map((role) => ( + + ))} + + + + {permissions.map((perm) => ( + + + {roles.map((role) => { + const hasPermission = matrix.get(role).has(perm); + return ( + + ); + })} + + ))} + +
+ Permission + + {role.replace(/_/g, ' ')} +
+ {perm} + + {hasPermission ? ( + + ) : ( + No + )} +
+
+ ); +} \ No newline at end of file diff --git a/apps/docs/components/api-page.client.tsx b/apps/docs/components/api-page.client.tsx new file mode 100644 index 000000000..0564d3da8 --- /dev/null +++ b/apps/docs/components/api-page.client.tsx @@ -0,0 +1,4 @@ +'use client'; +import { defineClientConfig } from 'fumadocs-openapi/ui/client'; + +export default defineClientConfig(); diff --git a/apps/docs/components/api-page.tsx b/apps/docs/components/api-page.tsx new file mode 100644 index 000000000..a16980b39 --- /dev/null +++ b/apps/docs/components/api-page.tsx @@ -0,0 +1,27 @@ +import { createOpenAPI } from 'fumadocs-openapi/server'; +import { createAPIPage } from 'fumadocs-openapi/ui'; +import path from 'path'; +import client from './api-page.client'; + +export function APIPage({ document, operations }: { document: string; operations: any[] }) { + + + if (!path.isAbsolute(document) && !document.startsWith('openapi/')) { + throw new Error(`APIPage document path MUST start with 'openapi/'. Received: ${document}`); + } + + const absoluteDocument = path.isAbsolute(document) + ? document + : path.join(process.cwd(), 'openapi', document.slice('openapi/'.length)); + + const openapi = createOpenAPI({ + input: [absoluteDocument], + }); + + const InnerAPIPage = createAPIPage(openapi, { + client, + }); + + return ; +} + diff --git a/docs/src/components/apicard.jsx b/apps/docs/components/apicard.jsx similarity index 93% rename from docs/src/components/apicard.jsx rename to apps/docs/components/apicard.jsx index c8025ae1d..8c6c0cae6 100644 --- a/docs/src/components/apicard.jsx +++ b/apps/docs/components/apicard.jsx @@ -1,6 +1,6 @@ import React from "react"; -import styles from "../css/apicard.module.css"; +import styles from "@/css/apicard.module.css"; export function ApiCard({ type, children }) { let classes = ""; diff --git a/docs/src/components/b2b.jsx b/apps/docs/components/b2b.jsx similarity index 100% rename from docs/src/components/b2b.jsx rename to apps/docs/components/b2b.jsx diff --git a/docs/src/components/benchmark_chart.jsx b/apps/docs/components/benchmark_chart.jsx similarity index 99% rename from docs/src/components/benchmark_chart.jsx rename to apps/docs/components/benchmark_chart.jsx index cf93a842e..3bb3a8224 100644 --- a/docs/src/components/benchmark_chart.jsx +++ b/apps/docs/components/benchmark_chart.jsx @@ -1,3 +1,4 @@ +"use client"; import React from "react"; import Chart from "react-google-charts"; diff --git a/docs/src/components/column.jsx b/apps/docs/components/column.jsx similarity index 100% rename from docs/src/components/column.jsx rename to apps/docs/components/column.jsx diff --git a/apps/docs/components/docusaurus/admonition.tsx b/apps/docs/components/docusaurus/admonition.tsx new file mode 100644 index 000000000..509d7de2d --- /dev/null +++ b/apps/docs/components/docusaurus/admonition.tsx @@ -0,0 +1,19 @@ +import { Callout } from 'fumadocs-ui/components/callout'; + +export default function Admonition({ type, title, children, icon }: any) { + let calloutType: 'info' | 'warn' | 'error' = 'info'; + switch (type) { + case 'note': calloutType = 'info'; break; + case 'tip': calloutType = 'info'; break; + case 'info': calloutType = 'info'; break; + case 'warning': calloutType = 'warn'; break; + case 'danger': calloutType = 'error'; break; + case 'caution': calloutType = 'warn'; break; + } + + return ( + + {children} + + ); +} diff --git a/apps/docs/components/docusaurus/browser-only.tsx b/apps/docs/components/docusaurus/browser-only.tsx new file mode 100644 index 000000000..ac851664f --- /dev/null +++ b/apps/docs/components/docusaurus/browser-only.tsx @@ -0,0 +1,12 @@ +"use client"; +import { useEffect, useState } from 'react'; + +export default function BrowserOnly({ children, fallback }: any) { + const [mounted, setMounted] = useState(false); + + useEffect(() => setMounted(true), []); + + if (!mounted) return fallback || null; + + return children(); +} diff --git a/apps/docs/components/docusaurus/code-block.tsx b/apps/docs/components/docusaurus/code-block.tsx new file mode 100644 index 000000000..eccba78d3 --- /dev/null +++ b/apps/docs/components/docusaurus/code-block.tsx @@ -0,0 +1,14 @@ +import React from 'react'; + +export default function CodeBlock({ children, language, title, className, showLineNumbers: _showLineNumbers }: any) { + return ( +
+ {title &&
{title}
} +
+        
+          {children}
+        
+      
+
+ ); +} diff --git a/apps/docs/components/docusaurus/doc-card-list.tsx b/apps/docs/components/docusaurus/doc-card-list.tsx new file mode 100644 index 000000000..6f009e398 --- /dev/null +++ b/apps/docs/components/docusaurus/doc-card-list.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { Cards, Card } from 'fumadocs-ui/components/card'; + +export default function DocCardList({ items }: { items?: any[] }) { + // If items are provided (manual list), render them + if (items) { + return ( + + {items.map((item, index) => ( + + ))} + + ); + } + + // If no items, it's likely an auto-generated list for the current sidebar category. + // Fumadocs doesn't have a direct equivalent to "current sidebar category items" in a component easily accessible here without context. + // For now, we'll render a placeholder or nothing to avoid build errors. + // In a real migration, we'd use `useTreeContext` or similar if available, or rely on Fumadocs' index page generation. + return ( +
+
+
DocCardList Placeholder
+
+
+

Auto-generated card lists are not yet fully supported in the migration.

+
+
+ ); +} diff --git a/apps/docs/components/docusaurus/tabs.tsx b/apps/docs/components/docusaurus/tabs.tsx new file mode 100644 index 000000000..82d597037 --- /dev/null +++ b/apps/docs/components/docusaurus/tabs.tsx @@ -0,0 +1,58 @@ +import { Tabs as FumadocsTabs, Tab as FumadocsTab } from 'fumadocs-ui/components/tabs'; +import React, { isValidElement } from 'react'; + +export function TabItem({ value, label: _label, children, default: _isDefault, className, attributes }: any) { + return {children}; +} + +export default function Tabs({ children, defaultValue, values, groupId, className }: any) { + let items: string[] = []; + + const childrenArray = React.Children.toArray(children); + + if (values) { + items = values.map((v: any) => v.label); + } else { + childrenArray.forEach((child) => { + if (isValidElement(child)) { + const props = child.props as any; + const label = props.label || props.value; + items.push(label); + } + }); + } + + const newChildren = childrenArray.map((child, index) => { + if (isValidElement(child)) { + const props = child.props as any; + let label = props.label; + if (!label && values) { + const valObj = values.find((v: any) => v.value === props.value); + if (valObj) label = valObj.label; + } + if (!label) label = props.value; + + return {props.children}; + } + return child; + }); + + let newDefaultValue = defaultValue; + if (defaultValue && values) { + const valObj = values.find((v: any) => v.value === defaultValue); + if (valObj) newDefaultValue = valObj.label; + } else if (defaultValue) { + const child = childrenArray.find((c: any) => (c as any).props.value === defaultValue); + if (child) { + newDefaultValue = (child as any).props.label || (child as any).props.value; + } + } + + return ( + + {newChildren} + + ); +} + + diff --git a/apps/docs/components/docusaurus/themed-image.tsx b/apps/docs/components/docusaurus/themed-image.tsx new file mode 100644 index 000000000..2c86c56be --- /dev/null +++ b/apps/docs/components/docusaurus/themed-image.tsx @@ -0,0 +1,17 @@ +"use client"; +import Image from 'next/image'; +import { useTheme } from 'next-themes'; +import { useEffect, useState } from 'react'; + +export default function ThemedImage({ sources, alt, ...props }: any) { + const { resolvedTheme } = useTheme(); + const [mounted, setMounted] = useState(false); + + useEffect(() => setMounted(true), []); + + if (!mounted) return {alt}; + + const src = resolvedTheme === 'dark' ? sources.dark : sources.light; + + return {alt}; +} diff --git a/apps/docs/components/feedback.tsx b/apps/docs/components/feedback.tsx new file mode 100644 index 000000000..b2c2e586f --- /dev/null +++ b/apps/docs/components/feedback.tsx @@ -0,0 +1,56 @@ +'use client'; + +import { useState } from 'react'; +import { mixpanelClient } from '@/utils/mixpanel'; +import { usePathname } from 'next/navigation'; +import { ThumbsUp, ThumbsDown } from 'lucide-react'; +import { cn } from '@/utils/cn'; + +export function Feedback() { + const pathname = usePathname(); + const [voted, setVoted] = useState(null); + + const handleVote = (useful: boolean) => { + setVoted(useful); + mixpanelClient.track('helpfulness_vote', { + path: pathname, + useful: useful, + }); + }; + + if (voted !== null) { + return ( +
+

+ Thanks for your feedback! +

+
+ ); + } + + return ( +
+

Was this page helpful?

+
+ + +
+
+ ); +} diff --git a/docs/src/components/frameworks.jsx b/apps/docs/components/frameworks.jsx similarity index 92% rename from docs/src/components/frameworks.jsx rename to apps/docs/components/frameworks.jsx index a514b8ed2..4307a64f5 100644 --- a/docs/src/components/frameworks.jsx +++ b/apps/docs/components/frameworks.jsx @@ -1,6 +1,6 @@ import React from "react"; import { Tile } from "./tile"; -import frameworks from "../../frameworks.json"; +import frameworks from "../frameworks.json"; export function Frameworks({ filter }) { const filteredFrameworks = frameworks.filter((framework) => { diff --git a/apps/docs/components/inkeep-search.tsx b/apps/docs/components/inkeep-search.tsx new file mode 100644 index 000000000..677729cd8 --- /dev/null +++ b/apps/docs/components/inkeep-search.tsx @@ -0,0 +1,71 @@ +"use client"; + +import type { SharedProps } from "fumadocs-ui/components/dialog/search"; +import { + InkeepModalSearchAndChat, + type InkeepModalSearchAndChatProps, +} from "@inkeep/cxkit-react"; +import { useEffect, useState } from "react"; + +export default function CustomDialog(props: SharedProps) { + const [syncTarget, setSyncTarget] = useState(null); + const { open, onOpenChange } = props; + // We do this because document is not available in the server + useEffect(() => { + setSyncTarget(document.documentElement); + }, []); + + const config: InkeepModalSearchAndChatProps = { + baseSettings: { + apiKey: process.env.NEXT_PUBLIC_INKEEP_API_KEY, + primaryBrandColor: '#425b76', + organizationDisplayName: "Zitadel", + colorMode: { + sync: { + target: syncTarget, + attributes: ["class"], + isDarkMode: (attributes) => !!attributes.class?.includes("dark"), + }, + }, + }, + modalSettings: { + isOpen: open, + onOpenChange, + // optional settings + }, + searchSettings: { + // optional settings + }, + aiChatSettings: { + aiAssistantName: 'Zitadel AI Assistant', + chatSubjectName: 'Zitadel', + placeholder: 'How can I enable MFA?', + introMessage: 'Hey! I’m the Zitadel AI assistant 🤖 — throw your questions my way!', + aiAssistantAvatar: '/icons/favicon-32x32.png', + userAvatar: '/icons/user.png', + exampleQuestionsLabel: 'Example Questions:', + exampleQuestions: [ + 'What is an Instance?', + 'What is an Organization?', + 'How to create an Action?', + 'How to integrate Zitadel to my React app?', + ], + isFirstExampleQuestionHighlighted: true, + shouldOpenLinksInNewTab: true, + isCopyChatButtonVisible: true, + disclaimerSettings: { + isEnabled: true, + label: 'AI Assistant', + tooltip: 'Responses are AI-generated and may require verification.', + }, + toolbarButtonLabels: { + clear: 'Start Over', + share: 'Share Chat', + getHelp: 'Get Help', + stop: 'Stop', + copyChat: 'Copy Chat', + }, + }, + }; + return ; +} \ No newline at end of file diff --git a/apps/docs/components/mixpanel-provider.tsx b/apps/docs/components/mixpanel-provider.tsx new file mode 100644 index 000000000..fff346367 --- /dev/null +++ b/apps/docs/components/mixpanel-provider.tsx @@ -0,0 +1,51 @@ +'use client'; + +import { initMixpanel, mixpanelClient, optInTracking, optOutTracking } from '@/utils/mixpanel'; +import React, { useEffect } from 'react'; + +export default function MixpanelProvider({ children }: { children: React.ReactNode }) { + useEffect(() => { + const setup = async () => { + await initMixpanel(); + + const CookieConsent = await import('vanilla-cookieconsent'); + const cookie = CookieConsent.getCookie(); + + // @ts-ignore + if (!cookie || !cookie.services || !cookie.services.analytics) { + // We only send data when people opt-in, not just if they have not opted out. + return; + } + // @ts-ignore + const hasMixpanelConsent = cookie?.services?.analytics?.indexOf('mixpanel') !== -1; + if (hasMixpanelConsent) { + optInTracking(); + } else { + optOutTracking(); + } + }; + setup().catch((error) => { + console.error('Error setting up Mixpanel:', error); + }); + + const handleConsentChange = async () => { + const CookieConsent = await import('vanilla-cookieconsent'); + const cookie = CookieConsent.getCookie(); + // @ts-ignore + const hasMixpanelConsent = cookie?.services?.analytics?.indexOf('mixpanel') !== -1; + if (hasMixpanelConsent) { + optInTracking(); + } else { + optOutTracking(); + } + }; + + window.addEventListener('cc:onChange:mixpanel', handleConsentChange); + + return () => { + window.removeEventListener('cc:onChange:mixpanel', handleConsentChange); + }; + }, []); + + return <>{children}; +} diff --git a/docs/src/components/pii_table.jsx b/apps/docs/components/pii_table.jsx similarity index 80% rename from docs/src/components/pii_table.jsx rename to apps/docs/components/pii_table.jsx index fd3de78fb..f59a28488 100644 --- a/docs/src/components/pii_table.jsx +++ b/apps/docs/components/pii_table.jsx @@ -81,26 +81,34 @@ export function PiiTable() { ], subjects: "All users" }, - ] + ] return ( - - - - - - { - pii.map((row, rowID) => { - return ( - - - + + + + + + + + + { + pii.map((row) => ( + + + - ) - }) - } + )) + } +
Type of personal dataExamplesAffected data subjects
{row.type}
    {row.examples.map((example) => { return (
  • {example}
  • )})}
Type of personal dataExamplesAffected data subjects
{row.type} +
    + {row.examples.map((example) => ( +
  • {example}
  • + ))} +
+
{row.subjects}
); } diff --git a/apps/docs/components/plausible-provider.tsx b/apps/docs/components/plausible-provider.tsx new file mode 100644 index 000000000..ae78a22b8 --- /dev/null +++ b/apps/docs/components/plausible-provider.tsx @@ -0,0 +1,17 @@ +'use client'; + +import Script from 'next/script'; + +export default function PlausibleProvider() { + const domain = process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN || 'zitadel.com'; + + return ( +