├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ ├── config.yml
│ ├── feature_request.yml
│ └── security_report.yml
├── custom-issue-templates
│ ├── 00 Initialize showcase with KIT.md
│ ├── 01 Setup App deployment.md
│ ├── 02 Setup CI.md
│ ├── 03 Create login page.md
│ ├── 04 Get top repositories from GitHub API.md
│ ├── 05 Get Gists from GitHub API.md
│ ├── 06 Get profile info from GitHub.md
│ ├── 07 Get all repositories from GitHub API.md
│ ├── 08 Get Organization repositories from GitHub API.md
│ ├── 09 Get single repository info from GitHub API.md
│ ├── 10 Get issue information from GitHub API.md
│ ├── 11 Get pull request information from GitHub API.md
│ ├── 12 Create navigation header.md
│ ├── 13 Create gists panel.md
│ ├── 14 Create repository card.md
│ ├── 15 Create main page layout (top repositories + gists).md
│ ├── 16 Create user profile card.md
│ ├── 17 Create component for search input and filter sort buttons.md
│ ├── 18 Create profile page layout.md
│ ├── 19 Setup organization page layout.md
│ ├── 20 Implement search functionality.md
│ ├── 21 Implement type filter functionality.md
│ ├── 22 Implement language filter functionality.md
│ ├── 23 Implement sort functionality.md
│ ├── 24 Implement search filter sort result text.md
│ ├── 25 Create single repo view sub header.md
│ ├── 26 Create single repo view about section.md
│ ├── 27 Create single repo code tab view.md
│ ├── 28 Create single repo readme view.md
│ ├── 29 Create issue pull request cards.md
│ ├── 30 Create single repo issues tab view.md
│ ├── 31 Create single repo pull request tab view.md
│ ├── 32 Create folder navigation.md
│ ├── 33 Create file view.md
│ ├── 34 Add logout functionality.md
│ ├── 35 Add project to docs site.md
│ ├── x12 Get organization info from GitHub API.md
│ ├── x13 Implement search sort filter functionality.md
│ ├── x14 Create repository page layout.md
│ └── x22 Clean up tasks.md
├── pull_request_template.md
└── workflows
│ ├── be-deploy.yml
│ ├── ci-angular-apollo-tailwind.yml
│ ├── ci-angular-ngrx-scss.yml
│ ├── ci-cra-rxjs-styled-components.yml
│ ├── ci-nuxt-pinia-tailwind.yml
│ ├── ci-qwik-graphql-tailwind.yml
│ ├── ci-solidjs-tailwind.yml
│ ├── ci-solidstart-tanstackquery-tailwind-modules.yml
│ ├── ci-svelte-kit-scss.yml
│ ├── ci-vue3-apollo-quasar.yml
│ ├── expo-zustand-styled-components.yml
│ ├── remix-deploy.yml
│ ├── send-slack-notification.yml
│ └── thank-contributor.yml
├── .gitignore
├── .graphqlconfig
├── .nvmrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── amplify.yml
├── angular-apollo-tailwind
├── .browserslistrc
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .husky
│ ├── pre-commit
│ └── pre-push
├── .prettierignore
├── .prettierrc
├── .stylelintrc
├── README.md
├── angular.json
├── codegen.yml
├── github-schema-loader.js
├── karma.conf.js
├── package.json
├── projects
│ ├── prism
│ │ ├── .browserslistrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── karma.conf.js
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── lib
│ │ │ │ ├── components
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── line
│ │ │ │ │ │ ├── line.component.html
│ │ │ │ │ │ ├── line.component.spec.ts
│ │ │ │ │ │ └── line.component.ts
│ │ │ │ │ ├── prism
│ │ │ │ │ │ ├── prism.component.html
│ │ │ │ │ │ ├── prism.component.spec.ts
│ │ │ │ │ │ ├── prism.component.ts
│ │ │ │ │ │ └── prism.components.css
│ │ │ │ │ └── token
│ │ │ │ │ │ ├── token.component.html
│ │ │ │ │ │ ├── token.component.spec.ts
│ │ │ │ │ │ └── token.component.ts
│ │ │ │ ├── prism.module.ts
│ │ │ │ ├── themes
│ │ │ │ │ ├── dracula.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── night-owl-light.ts
│ │ │ │ ├── types
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── language.ts
│ │ │ │ │ └── model.ts
│ │ │ │ └── utils
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── normalize-tokens.ts
│ │ │ │ │ └── themes-to-dict.ts
│ │ │ ├── public-api.ts
│ │ │ └── test.ts
│ │ ├── tsconfig.lib.json
│ │ ├── tsconfig.lib.prod.json
│ │ └── tsconfig.spec.json
│ └── shared
│ │ ├── .browserslistrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── karma.conf.js
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── lib
│ │ │ ├── components
│ │ │ │ ├── container
│ │ │ │ │ ├── container.component.spec.ts
│ │ │ │ │ ├── container.component.ts
│ │ │ │ │ └── container.module.ts
│ │ │ │ ├── content-loading
│ │ │ │ │ ├── bullet-list-loading
│ │ │ │ │ │ ├── bullet-list-loading.component.spec.ts
│ │ │ │ │ │ └── bullet-list-loading.component.ts
│ │ │ │ │ ├── content-loading.module.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── pulse-dots-loading
│ │ │ │ │ │ ├── pulse-dots-loading.component.spec.ts
│ │ │ │ │ │ └── pulse-dots-loading.component.ts
│ │ │ │ │ └── text-line-loading
│ │ │ │ │ │ ├── text-line-loading.component.spec.ts
│ │ │ │ │ │ └── text-line-loading.component.ts
│ │ │ │ ├── count-button-group
│ │ │ │ │ ├── count-button-group.component.html
│ │ │ │ │ ├── count-button-group.component.spec.ts
│ │ │ │ │ ├── count-button-group.component.ts
│ │ │ │ │ └── count-button-group.module.ts
│ │ │ │ ├── data-container
│ │ │ │ │ ├── data-container.component.html
│ │ │ │ │ ├── data-container.component.spec.ts
│ │ │ │ │ ├── data-container.component.ts
│ │ │ │ │ └── data-container.module.ts
│ │ │ │ ├── error-block
│ │ │ │ │ ├── error-block.component.html
│ │ │ │ │ ├── error-block.component.spec.ts
│ │ │ │ │ ├── error-block.component.ts
│ │ │ │ │ ├── error-block.module.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── icons
│ │ │ │ │ ├── code-icon.component.ts
│ │ │ │ │ ├── document-icon.component.ts
│ │ │ │ │ ├── eye-icon.component.ts
│ │ │ │ │ ├── folder-icon.component.ts
│ │ │ │ │ ├── git-branch-icon.component.ts
│ │ │ │ │ ├── git-repo-icon.component.ts
│ │ │ │ │ ├── github-logo.component.ts
│ │ │ │ │ ├── icons.module.ts
│ │ │ │ │ ├── information-circle-icon.component.ts
│ │ │ │ │ ├── privacy-badge.component.ts
│ │ │ │ │ ├── privacy-icon.component.ts
│ │ │ │ │ ├── pull-request-icon.component.ts
│ │ │ │ │ ├── toc.component.ts
│ │ │ │ │ └── twitter-icon.component.ts
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ ├── pipes
│ │ │ │ ├── dfns
│ │ │ │ │ ├── format-distance.pipe.spec.ts
│ │ │ │ │ └── format-distance.pipe.ts
│ │ │ │ ├── generate-url-with-protocol
│ │ │ │ │ ├── generate-url-with-protocol.pipe.spec.ts
│ │ │ │ │ └── generate-url-with-protocol.pipe.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── markdown
│ │ │ │ │ ├── markdown.pipe.spec.ts
│ │ │ │ │ └── markdown.pipe.ts
│ │ │ │ ├── number
│ │ │ │ │ ├── round-up.pipe.spec.ts
│ │ │ │ │ └── round-up.pipe.ts
│ │ │ │ └── pipes.module.ts
│ │ │ └── shared.module.ts
│ │ ├── public-api.ts
│ │ └── test.ts
│ │ ├── tsconfig.lib.json
│ │ ├── tsconfig.lib.prod.json
│ │ ├── tsconfig.spec.json
│ │ └── yarn.lock
├── src
│ ├── _redirects
│ ├── app
│ │ ├── app-routing.module.ts
│ │ ├── app.component.css
│ │ ├── app.component.html
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ ├── auth
│ │ │ ├── auth.guard.spec.ts
│ │ │ ├── auth.guard.ts
│ │ │ ├── auth.service.spec.ts
│ │ │ ├── auth.service.ts
│ │ │ ├── token.interceptor.spec.ts
│ │ │ ├── token.interceptor.ts
│ │ │ ├── token.service.spec.ts
│ │ │ └── token.service.ts
│ │ ├── components
│ │ │ ├── filter-dropdown
│ │ │ │ ├── filter-dropdown.component.css
│ │ │ │ ├── filter-dropdown.component.html
│ │ │ │ ├── filter-dropdown.component.spec.ts
│ │ │ │ ├── filter-dropdown.component.ts
│ │ │ │ └── filter-dropdown.module.ts
│ │ │ ├── filters
│ │ │ │ ├── filter.models.ts
│ │ │ │ ├── profile-repos-filter-store.spec.ts
│ │ │ │ ├── profile-repos-filter-store.ts
│ │ │ │ ├── repos-filter.store.spec.ts
│ │ │ │ └── repos-filter.store.ts
│ │ │ ├── pagination
│ │ │ │ ├── pagination.component.css
│ │ │ │ ├── pagination.component.html
│ │ │ │ ├── pagination.component.spec.ts
│ │ │ │ ├── pagination.component.ts
│ │ │ │ └── pagination.module.ts
│ │ │ ├── repos-filter-dropdown
│ │ │ │ ├── repos-filter-dropdown.component.css
│ │ │ │ ├── repos-filter-dropdown.component.html
│ │ │ │ ├── repos-filter-dropdown.component.spec.ts
│ │ │ │ ├── repos-filter-dropdown.component.ts
│ │ │ │ └── repos-filter-dropdown.module.ts
│ │ │ └── toaster
│ │ │ │ ├── toast
│ │ │ │ ├── toast.component.css
│ │ │ │ ├── toast.component.html
│ │ │ │ ├── toast.component.spec.ts
│ │ │ │ └── toast.component.ts
│ │ │ │ ├── toaster.component.css
│ │ │ │ ├── toaster.component.html
│ │ │ │ ├── toaster.component.spec.ts
│ │ │ │ ├── toaster.component.ts
│ │ │ │ ├── toaster.model.ts
│ │ │ │ ├── toaster.module.ts
│ │ │ │ ├── toaster.repo.ts
│ │ │ │ ├── toaster.service.spec.ts
│ │ │ │ └── toaster.service.ts
│ │ ├── file-viewer
│ │ │ ├── components
│ │ │ │ ├── file-code
│ │ │ │ │ ├── file-code.component.css
│ │ │ │ │ ├── file-code.component.html
│ │ │ │ │ ├── file-code.component.spec.ts
│ │ │ │ │ └── file-code.component.ts
│ │ │ │ └── file-explorer-about
│ │ │ │ │ ├── file-explorer-about-description
│ │ │ │ │ ├── file-explorer-about-description.component.spec.ts
│ │ │ │ │ └── file-explorer-about-description.component.ts
│ │ │ │ │ ├── file-explorer-about.component.css
│ │ │ │ │ ├── file-explorer-about.component.html
│ │ │ │ │ ├── file-explorer-about.component.spec.ts
│ │ │ │ │ ├── file-explorer-about.component.ts
│ │ │ │ │ ├── home-page-url
│ │ │ │ │ ├── home-page-url.component.css
│ │ │ │ │ ├── home-page-url.component.spec.ts
│ │ │ │ │ └── home-page-url.component.ts
│ │ │ │ │ └── topics
│ │ │ │ │ ├── topics.component.css
│ │ │ │ │ ├── topics.component.html
│ │ │ │ │ ├── topics.component.spec.ts
│ │ │ │ │ └── topics.component.ts
│ │ │ ├── file-explorer-blob
│ │ │ │ ├── file-explorer-blob.component.html
│ │ │ │ ├── file-explorer-blob.component.spec.ts
│ │ │ │ └── file-explorer-blob.component.ts
│ │ │ ├── file-explorer-list-container
│ │ │ │ ├── file-explorer-list-container.component.css
│ │ │ │ ├── file-explorer-list-container.component.html
│ │ │ │ ├── file-explorer-list-container.component.spec.ts
│ │ │ │ └── file-explorer-list-container.component.ts
│ │ │ ├── file-explorer-list
│ │ │ │ ├── file-explorer-list.component.css
│ │ │ │ ├── file-explorer-list.component.html
│ │ │ │ ├── file-explorer-list.component.spec.ts
│ │ │ │ └── file-explorer-list.component.ts
│ │ │ ├── file-explorer-nav
│ │ │ │ ├── file-explorer-nav-skeleton
│ │ │ │ │ ├── file-explorer-nav-skeleton.component.html
│ │ │ │ │ ├── file-explorer-nav-skeleton.component.spec.ts
│ │ │ │ │ ├── file-explorer-nav-skeleton.component.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── file-explorer-nav.component.css
│ │ │ │ ├── file-explorer-nav.component.html
│ │ │ │ ├── file-explorer-nav.component.spec.ts
│ │ │ │ ├── file-explorer-nav.component.ts
│ │ │ │ └── index.ts
│ │ │ ├── file-explorer-root.component.html
│ │ │ ├── file-explorer-root.component.spec.ts
│ │ │ ├── file-explorer-root.component.ts
│ │ │ ├── file-explorer-routing.module.ts
│ │ │ ├── file-explorer-view
│ │ │ │ ├── file-explorer-view.component.html
│ │ │ │ ├── file-explorer-view.component.spec.ts
│ │ │ │ └── file-explorer-view.component.ts
│ │ │ ├── file-explorer.module.ts
│ │ │ ├── file-viewer
│ │ │ │ ├── file-viewer.component.css
│ │ │ │ ├── file-viewer.component.html
│ │ │ │ ├── file-viewer.component.spec.ts
│ │ │ │ └── file-viewer.component.ts
│ │ │ ├── parse-tree.ts
│ │ │ ├── repo-read-me
│ │ │ │ ├── read-me
│ │ │ │ │ ├── read-me.component.css
│ │ │ │ │ ├── read-me.component.spec.ts
│ │ │ │ │ └── read-me.component.ts
│ │ │ │ ├── repo-read-me.component.css
│ │ │ │ ├── repo-read-me.component.html
│ │ │ │ ├── repo-read-me.component.spec.ts
│ │ │ │ └── repo-read-me.component.ts
│ │ │ └── utils
│ │ │ │ └── map-language-ext.ts
│ │ ├── gql
│ │ │ ├── graphql.module.ts
│ │ │ ├── index.ts
│ │ │ ├── models
│ │ │ │ ├── index.ts
│ │ │ │ ├── org-profile.ts
│ │ │ │ ├── pagination.ts
│ │ │ │ ├── profile.ts
│ │ │ │ ├── repo-details.ts
│ │ │ │ ├── repo-file.ts
│ │ │ │ ├── repo-issues.ts
│ │ │ │ ├── repo-pulls.ts
│ │ │ │ ├── repo-tree.ts
│ │ │ │ ├── user-repos.ts
│ │ │ │ └── user-top-repos.ts
│ │ │ ├── parse-error.ts
│ │ │ └── queries
│ │ │ │ ├── current-user.query.gql
│ │ │ │ ├── org-profile.query.gql
│ │ │ │ ├── org-repos.query.gql
│ │ │ │ ├── profile.query.gql
│ │ │ │ ├── repo-details.query.gql
│ │ │ │ ├── repo-file.query.gql
│ │ │ │ ├── repo-issues.query.gql
│ │ │ │ ├── repo-pulls.query.gql
│ │ │ │ ├── repo-read-me.query.gql
│ │ │ │ ├── repo-tree.query.gql
│ │ │ │ ├── user-gists.query.gql
│ │ │ │ ├── user-repos.query.gql
│ │ │ │ └── user-top-repos.query.gql
│ │ ├── home
│ │ │ ├── home-routing.module.ts
│ │ │ ├── home.component.css
│ │ │ ├── home.component.html
│ │ │ ├── home.component.spec.ts
│ │ │ ├── home.component.ts
│ │ │ ├── home.module.ts
│ │ │ ├── navbar
│ │ │ │ ├── navbar.component.html
│ │ │ │ ├── navbar.component.spec.ts
│ │ │ │ └── navbar.component.ts
│ │ │ └── user-dropdown-menu
│ │ │ │ ├── user-dropdown-menu.component.html
│ │ │ │ ├── user-dropdown-menu.component.spec.ts
│ │ │ │ └── user-dropdown-menu.component.ts
│ │ ├── issues
│ │ │ ├── components
│ │ │ │ ├── issues-empty
│ │ │ │ │ ├── issues-empty.component.css
│ │ │ │ │ ├── issues-empty.component.spec.ts
│ │ │ │ │ └── issues-empty.component.ts
│ │ │ │ ├── issues-filters
│ │ │ │ │ ├── issues-filters.component.css
│ │ │ │ │ ├── issues-filters.component.html
│ │ │ │ │ ├── issues-filters.component.spec.ts
│ │ │ │ │ └── issues-filters.component.ts
│ │ │ │ ├── issues-list
│ │ │ │ │ ├── issues-list.component.css
│ │ │ │ │ ├── issues-list.component.html
│ │ │ │ │ ├── issues-list.component.spec.ts
│ │ │ │ │ └── issues-list.component.ts
│ │ │ │ └── issues-skeleton
│ │ │ │ │ ├── issues-skeleton.component.spec.ts
│ │ │ │ │ └── issues-skeleton.component.ts
│ │ │ ├── issues-routing.module.ts
│ │ │ ├── issues.component.css
│ │ │ ├── issues.component.html
│ │ │ ├── issues.component.spec.ts
│ │ │ ├── issues.component.ts
│ │ │ ├── issues.module.ts
│ │ │ ├── issues.store.spec.ts
│ │ │ ├── issues.store.ts
│ │ │ └── parse-issues.ts
│ │ ├── profile
│ │ │ ├── components
│ │ │ │ ├── file-text
│ │ │ │ │ ├── file-text.component.css
│ │ │ │ │ ├── file-text.component.spec.ts
│ │ │ │ │ └── file-text.component.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── orgs-list
│ │ │ │ │ ├── orgs-list.component.css
│ │ │ │ │ ├── orgs-list.component.spec.ts
│ │ │ │ │ └── orgs-list.component.ts
│ │ │ │ ├── profile-loading
│ │ │ │ │ ├── profile-loading.component.spec.ts
│ │ │ │ │ └── profile-loading.component.ts
│ │ │ │ ├── profile-repo-list-item-skeleton
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── profile-repo-list-item-skeleton.component.spec.ts
│ │ │ │ │ └── profile-repo-list-item-skeleton.component.ts
│ │ │ │ ├── profile-repo-list-item
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── profile-repo-list-item.component.html
│ │ │ │ │ ├── profile-repo-list-item.component.spec.ts
│ │ │ │ │ └── profile-repo-list-item.component.ts
│ │ │ │ ├── profile-repo-list
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── profile-repo-list.component.html
│ │ │ │ │ ├── profile-repo-list.component.spec.ts
│ │ │ │ │ └── profile-repo-list.component.ts
│ │ │ │ └── repos-filters
│ │ │ │ │ ├── repos-filters.component.css
│ │ │ │ │ ├── repos-filters.component.html
│ │ │ │ │ ├── repos-filters.component.spec.ts
│ │ │ │ │ └── repos-filters.component.ts
│ │ │ ├── org-about
│ │ │ │ ├── org-about.component.css
│ │ │ │ ├── org-about.component.html
│ │ │ │ ├── org-about.component.spec.ts
│ │ │ │ └── org-about.component.ts
│ │ │ ├── org-profile
│ │ │ │ ├── org-profile.component.html
│ │ │ │ ├── org-profile.component.spec.ts
│ │ │ │ └── org-profile.component.ts
│ │ │ ├── profile-about
│ │ │ │ ├── parse-profile.ts
│ │ │ │ ├── profile-about.component.css
│ │ │ │ ├── profile-about.component.html
│ │ │ │ ├── profile-about.component.spec.ts
│ │ │ │ └── profile-about.component.ts
│ │ │ ├── profile-nav
│ │ │ │ ├── profile-nav.component.html
│ │ │ │ └── profile-nav.component.ts
│ │ │ ├── profile-repos-view
│ │ │ │ ├── filter-repos.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── parse-languages.ts
│ │ │ │ ├── parse-profile-repos.ts
│ │ │ │ ├── profile-repos-view.component.html
│ │ │ │ ├── profile-repos-view.component.spec.ts
│ │ │ │ ├── profile-repos-view.component.ts
│ │ │ │ ├── profile-repos.store.spec.ts
│ │ │ │ └── profile-repos.store.ts
│ │ │ ├── profile-routing.module.ts
│ │ │ ├── profile.component.html
│ │ │ ├── profile.component.spec.ts
│ │ │ ├── profile.component.ts
│ │ │ ├── profile.module.ts
│ │ │ ├── profile.resolver.spec.ts
│ │ │ ├── profile.resolver.ts
│ │ │ └── user-profile
│ │ │ │ ├── user-profile.component.html
│ │ │ │ ├── user-profile.component.spec.ts
│ │ │ │ └── user-profile.component.ts
│ │ ├── provider
│ │ │ ├── provider.component.css
│ │ │ ├── provider.component.html
│ │ │ ├── provider.component.spec.ts
│ │ │ ├── provider.component.ts
│ │ │ ├── provider.module.ts
│ │ │ └── redirect
│ │ │ │ └── redirect.component.ts
│ │ ├── pull-requests
│ │ │ ├── components
│ │ │ │ ├── pull-requests-empty
│ │ │ │ │ ├── pull-requests-empty.component.css
│ │ │ │ │ ├── pull-requests-empty.component.spec.ts
│ │ │ │ │ └── pull-requests-empty.component.ts
│ │ │ │ ├── pull-requests-filters
│ │ │ │ │ ├── pull-requests-filters.component.css
│ │ │ │ │ ├── pull-requests-filters.component.html
│ │ │ │ │ ├── pull-requests-filters.component.spec.ts
│ │ │ │ │ └── pull-requests-filters.component.ts
│ │ │ │ ├── pull-requests-list
│ │ │ │ │ ├── pull-requests-list.component.css
│ │ │ │ │ ├── pull-requests-list.component.html
│ │ │ │ │ ├── pull-requests-list.component.spec.ts
│ │ │ │ │ └── pull-requests-list.component.ts
│ │ │ │ └── pull-requests-skeleton
│ │ │ │ │ ├── pull-requests-skeleton.component.spec.ts
│ │ │ │ │ └── pull-requests-skeleton.component.ts
│ │ │ ├── parse-pull-requests.ts
│ │ │ ├── pull-requests-routing.module.ts
│ │ │ ├── pull-requests.component.css
│ │ │ ├── pull-requests.component.html
│ │ │ ├── pull-requests.component.spec.ts
│ │ │ ├── pull-requests.component.ts
│ │ │ ├── pull-requests.module.ts
│ │ │ ├── pull-requests.store.spec.ts
│ │ │ └── pull-requests.store.ts
│ │ ├── repos
│ │ │ ├── components
│ │ │ │ ├── repo-list-item-skeleton
│ │ │ │ │ ├── repo-list-item-skeleton.component.spec.ts
│ │ │ │ │ └── repo-list-item-skeleton.component.ts
│ │ │ │ ├── repo-list-item
│ │ │ │ │ ├── repo-list-item.component.html
│ │ │ │ │ ├── repo-list-item.component.spec.ts
│ │ │ │ │ └── repo-list-item.component.ts
│ │ │ │ ├── repo-list
│ │ │ │ │ ├── repo-list.component.css
│ │ │ │ │ ├── repo-list.component.html
│ │ │ │ │ ├── repo-list.component.spec.ts
│ │ │ │ │ └── repo-list.component.ts
│ │ │ │ ├── repo-meta
│ │ │ │ │ ├── repo-meta.component.html
│ │ │ │ │ └── repo-meta.component.ts
│ │ │ │ └── user-gists
│ │ │ │ │ ├── user-gists.component.css
│ │ │ │ │ ├── user-gists.component.html
│ │ │ │ │ └── user-gists.component.ts
│ │ │ ├── parse-top-repos.ts
│ │ │ ├── parse-topics.ts
│ │ │ ├── repo-details
│ │ │ │ ├── repo-details.component.html
│ │ │ │ ├── repo-details.component.spec.ts
│ │ │ │ └── repo-details.component.ts
│ │ │ ├── repo-header
│ │ │ │ ├── repo-action-buttons
│ │ │ │ │ ├── repo-action-buttons.component.css
│ │ │ │ │ ├── repo-action-buttons.component.html
│ │ │ │ │ ├── repo-action-buttons.component.spec.ts
│ │ │ │ │ └── repo-action-buttons.component.ts
│ │ │ │ ├── repo-header-skeleton
│ │ │ │ │ ├── repo-header-skeleton.component.html
│ │ │ │ │ ├── repo-header-skeleton.component.spec.ts
│ │ │ │ │ └── repo-header-skeleton.component.ts
│ │ │ │ ├── repo-header.component.css
│ │ │ │ ├── repo-header.component.html
│ │ │ │ ├── repo-header.component.spec.ts
│ │ │ │ ├── repo-header.component.ts
│ │ │ │ ├── repo-heading
│ │ │ │ │ ├── repo-heading.component.css
│ │ │ │ │ ├── repo-heading.component.html
│ │ │ │ │ ├── repo-heading.component.spec.ts
│ │ │ │ │ └── repo-heading.component.ts
│ │ │ │ └── repo-tab-navigation
│ │ │ │ │ ├── repo-tab-navigation.component.css
│ │ │ │ │ ├── repo-tab-navigation.component.html
│ │ │ │ │ ├── repo-tab-navigation.component.spec.ts
│ │ │ │ │ └── repo-tab-navigation.component.ts
│ │ │ ├── repo-page.resolver.spec.ts
│ │ │ ├── repo-page.resolver.ts
│ │ │ ├── repo-routing.module.ts
│ │ │ ├── repos.component.html
│ │ │ ├── repos.component.spec.ts
│ │ │ ├── repos.component.ts
│ │ │ └── repos.module.ts
│ │ └── utils
│ │ │ ├── index.ts
│ │ │ └── route-utils.ts
│ ├── assets
│ │ └── .gitkeep
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── polyfills.ts
│ ├── styles.css
│ └── test.ts
├── tailwind.config.js
├── tools
│ ├── generate-cert.sh
│ ├── set-env.js
│ └── set-env.prod.js
├── tsconfig.app.json
├── tsconfig.eslint.json
├── tsconfig.json
├── tsconfig.spec.json
└── yarn.lock
├── angular-ngrx-scss
├── .browserslistrc
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .vscode
│ ├── extensions.json
│ ├── launch.json
│ └── tasks.json
├── README.md
├── angular.json
├── karma.conf.js
├── package-lock.json
├── package.json
├── projects
│ └── prism
│ │ ├── .browserslistrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── karma.conf.js
│ │ ├── ng-package.json
│ │ ├── package.json
│ │ ├── src
│ │ ├── lib
│ │ │ ├── components
│ │ │ │ ├── index.ts
│ │ │ │ ├── line
│ │ │ │ │ ├── line.component.html
│ │ │ │ │ ├── line.component.spec.ts
│ │ │ │ │ └── line.component.ts
│ │ │ │ ├── prism
│ │ │ │ │ ├── prism.component.html
│ │ │ │ │ ├── prism.component.spec.ts
│ │ │ │ │ ├── prism.component.ts
│ │ │ │ │ └── prism.components.css
│ │ │ │ └── token
│ │ │ │ │ ├── token.component.html
│ │ │ │ │ ├── token.component.spec.ts
│ │ │ │ │ └── token.component.ts
│ │ │ ├── prism.module.ts
│ │ │ ├── themes
│ │ │ │ ├── dracula.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── night-owl-light.ts
│ │ │ ├── types
│ │ │ │ ├── index.ts
│ │ │ │ ├── language.ts
│ │ │ │ └── model.ts
│ │ │ └── utils
│ │ │ │ ├── index.ts
│ │ │ │ ├── normalize-tokens.ts
│ │ │ │ └── themes-to-dict.ts
│ │ ├── public-api.ts
│ │ └── test.ts
│ │ ├── tsconfig.lib.json
│ │ ├── tsconfig.lib.prod.json
│ │ └── tsconfig.spec.json
├── scripts
│ ├── .eslintrc
│ ├── generate-language-colors.js
│ └── package.json
├── src
│ ├── _redirects
│ ├── app
│ │ ├── app-routing.module.ts
│ │ ├── app.component.html
│ │ ├── app.component.scss
│ │ ├── app.component.spec.ts
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ │ ├── auth
│ │ │ ├── auth-routing.module.ts
│ │ │ ├── auth.component.html
│ │ │ ├── auth.component.scss
│ │ │ ├── auth.component.ts
│ │ │ ├── auth.module.ts
│ │ │ ├── interfaces
│ │ │ │ └── auth.ts
│ │ │ ├── redirect
│ │ │ │ └── redirect.component.ts
│ │ │ └── services
│ │ │ │ ├── auth.guard.spec.ts
│ │ │ │ ├── auth.guard.ts
│ │ │ │ ├── auth.service.spec.ts
│ │ │ │ ├── auth.service.ts
│ │ │ │ ├── token.interceptor.ts
│ │ │ │ └── token.service.ts
│ │ ├── file-viewer
│ │ │ ├── components
│ │ │ │ ├── file-code
│ │ │ │ │ ├── file-code.component.html
│ │ │ │ │ ├── file-code.component.scss
│ │ │ │ │ ├── file-code.component.spec.ts
│ │ │ │ │ └── file-code.component.ts
│ │ │ │ ├── file-explorer-about
│ │ │ │ │ ├── file-explorer-about.component.html
│ │ │ │ │ ├── file-explorer-about.component.scss
│ │ │ │ │ ├── file-explorer-about.component.spec.ts
│ │ │ │ │ └── file-explorer-about.component.ts
│ │ │ │ └── file-text
│ │ │ │ │ ├── file-text.component.html
│ │ │ │ │ ├── file-text.component.scss
│ │ │ │ │ ├── file-text.component.spec.ts
│ │ │ │ │ └── file-text.component.ts
│ │ │ ├── file-explorer-blob
│ │ │ │ ├── file-explorer-blob.component.html
│ │ │ │ ├── file-explorer-blob.component.scss
│ │ │ │ ├── file-explorer-blob.component.spec.ts
│ │ │ │ └── file-explorer-blob.component.ts
│ │ │ ├── file-explorer-container
│ │ │ │ ├── file-explorer-container.component.html
│ │ │ │ ├── file-explorer-container.component.scss
│ │ │ │ ├── file-explorer-container.component.spec.ts
│ │ │ │ └── file-explorer-container.component.ts
│ │ │ ├── file-explorer-nav
│ │ │ │ ├── file-explorer-nav.component.html
│ │ │ │ ├── file-explorer-nav.component.scss
│ │ │ │ ├── file-explorer-nav.component.spec.ts
│ │ │ │ └── file-explorer-nav.component.ts
│ │ │ ├── file-explorer
│ │ │ │ ├── file-explorer.component.html
│ │ │ │ ├── file-explorer.component.scss
│ │ │ │ ├── file-explorer.component.spec.ts
│ │ │ │ └── file-explorer.component.ts
│ │ │ ├── file-viewer-routing.module.ts
│ │ │ ├── file-viewer.module.ts
│ │ │ ├── file-viewer
│ │ │ │ ├── file-viewer.component.html
│ │ │ │ ├── file-viewer.component.scss
│ │ │ │ ├── file-viewer.component.spec.ts
│ │ │ │ └── file-viewer.component.ts
│ │ │ ├── read-me
│ │ │ │ ├── read-me.component.html
│ │ │ │ ├── read-me.component.scss
│ │ │ │ ├── read-me.component.spec.ts
│ │ │ │ └── read-me.component.ts
│ │ │ └── utils
│ │ │ │ └── map-lanuage-ext.ts
│ │ ├── fixtures
│ │ │ └── repository.fixtures.ts
│ │ ├── home
│ │ │ ├── home-routing.module.ts
│ │ │ ├── home.component.html
│ │ │ ├── home.component.scss
│ │ │ ├── home.component.spec.ts
│ │ │ ├── home.component.ts
│ │ │ ├── home.module.ts
│ │ │ ├── nav-bar
│ │ │ │ ├── nav-bar.component.html
│ │ │ │ ├── nav-bar.component.scss
│ │ │ │ ├── nav-bar.component.spec.ts
│ │ │ │ └── nav-bar.component.ts
│ │ │ ├── profile
│ │ │ │ ├── org-profile
│ │ │ │ │ ├── org-info
│ │ │ │ │ │ ├── org-info.component.html
│ │ │ │ │ │ ├── org-info.component.scss
│ │ │ │ │ │ └── org-info.component.ts
│ │ │ │ │ ├── org-profile.component.html
│ │ │ │ │ ├── org-profile.component.scss
│ │ │ │ │ └── org-profile.component.ts
│ │ │ │ ├── profile-about
│ │ │ │ │ ├── profile-about.component.html
│ │ │ │ │ ├── profile-about.component.scss
│ │ │ │ │ ├── profile-about.component.spec.ts
│ │ │ │ │ └── profile-about.component.ts
│ │ │ │ ├── profile-nav
│ │ │ │ │ ├── profile-nav.component.html
│ │ │ │ │ ├── profile-nav.component.scss
│ │ │ │ │ ├── profile-nav.component.spec.ts
│ │ │ │ │ └── profile-nav.component.ts
│ │ │ │ ├── profile.component.html
│ │ │ │ ├── profile.component.scss
│ │ │ │ ├── profile.component.spec.ts
│ │ │ │ ├── profile.component.ts
│ │ │ │ └── user-profile
│ │ │ │ │ ├── user-profile.component.html
│ │ │ │ │ ├── user-profile.component.scss
│ │ │ │ │ └── user-profile.component.ts
│ │ │ └── user-gists
│ │ │ │ ├── user-gists.component.html
│ │ │ │ ├── user-gists.component.scss
│ │ │ │ └── user-gists.component.ts
│ │ ├── issues
│ │ │ ├── components
│ │ │ │ ├── issues-header
│ │ │ │ │ ├── issues-header.component.html
│ │ │ │ │ ├── issues-header.component.scss
│ │ │ │ │ └── issues-header.component.ts
│ │ │ │ ├── issues-list
│ │ │ │ │ ├── issues-list.component.html
│ │ │ │ │ └── issues-list.component.ts
│ │ │ │ ├── issues.component.html
│ │ │ │ ├── issues.component.scss
│ │ │ │ └── issues.component.ts
│ │ │ ├── issues-routing.module.ts
│ │ │ └── issues.module.ts
│ │ ├── organization
│ │ │ └── services
│ │ │ │ ├── organization.interfaces.ts
│ │ │ │ ├── organization.service.spec.ts
│ │ │ │ └── organization.service.ts
│ │ ├── pull-requests
│ │ │ ├── components
│ │ │ │ ├── pull-request-card
│ │ │ │ │ ├── pull-request-card.component.html
│ │ │ │ │ ├── pull-request-card.component.scss
│ │ │ │ │ ├── pull-request-card.component.spec.ts
│ │ │ │ │ └── pull-request-card.component.ts
│ │ │ │ ├── pull-requests-header
│ │ │ │ │ ├── pull-requests-header.component.html
│ │ │ │ │ ├── pull-requests-header.component.scss
│ │ │ │ │ └── pull-requests-header.component.ts
│ │ │ │ └── pull-requests-list
│ │ │ │ │ ├── pull-requests-list.component.html
│ │ │ │ │ ├── pull-requests-list.component.scss
│ │ │ │ │ ├── pull-requests-list.component.spec.ts
│ │ │ │ │ └── pull-requests-list.component.ts
│ │ │ ├── pull-requests-routing.module.ts
│ │ │ ├── pull-requests.component.html
│ │ │ ├── pull-requests.component.scss
│ │ │ ├── pull-requests.component.spec.ts
│ │ │ ├── pull-requests.component.ts
│ │ │ └── pull-requests.module.ts
│ │ ├── repository
│ │ │ ├── components
│ │ │ │ ├── repo-header
│ │ │ │ │ ├── repo-header.component.html
│ │ │ │ │ ├── repo-header.component.scss
│ │ │ │ │ ├── repo-header.component.ts
│ │ │ │ │ ├── repo-heading
│ │ │ │ │ │ ├── repo-heading.component.html
│ │ │ │ │ │ ├── repo-heading.component.scss
│ │ │ │ │ │ └── repo-heading.component.ts
│ │ │ │ │ ├── repo-info
│ │ │ │ │ │ ├── repo-info.component.html
│ │ │ │ │ │ ├── repo-info.component.scss
│ │ │ │ │ │ └── repo-info.component.ts
│ │ │ │ │ └── repo-navigation
│ │ │ │ │ │ ├── repo-navigation.component.html
│ │ │ │ │ │ ├── repo-navigation.component.scss
│ │ │ │ │ │ └── repo-navigation.component.ts
│ │ │ │ ├── repository-details
│ │ │ │ │ ├── repository-details.component.html
│ │ │ │ │ ├── repository-details.component.scss
│ │ │ │ │ ├── repository-details.component.spec.ts
│ │ │ │ │ └── repository-details.component.ts
│ │ │ │ └── top-repositories
│ │ │ │ │ ├── top-repositories.component.html
│ │ │ │ │ ├── top-repositories.component.scss
│ │ │ │ │ └── top-repositories.component.ts
│ │ │ ├── repository-routing.module.ts
│ │ │ ├── repository.module.ts
│ │ │ └── services
│ │ │ │ ├── repository.interfaces.ts
│ │ │ │ ├── repository.service.spec.ts
│ │ │ │ └── repository.service.ts
│ │ ├── shared
│ │ │ ├── components
│ │ │ │ ├── clear-filters-button
│ │ │ │ │ ├── clear-filters-button.component.html
│ │ │ │ │ ├── clear-filters-button.component.scss
│ │ │ │ │ └── clear-filters-button.component.ts
│ │ │ │ ├── filter-dropdown
│ │ │ │ │ ├── filter-dropdown.component.html
│ │ │ │ │ ├── filter-dropdown.component.scss
│ │ │ │ │ └── filter-dropdown.component.ts
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.component.html
│ │ │ │ │ ├── pagination.component.scss
│ │ │ │ │ └── pagination.component.ts
│ │ │ │ ├── repo-card
│ │ │ │ │ ├── repo-card.component.html
│ │ │ │ │ ├── repo-card.component.scss
│ │ │ │ │ ├── repo-card.component.spec.ts
│ │ │ │ │ └── repo-card.component.ts
│ │ │ │ ├── repo-controls
│ │ │ │ │ ├── repo-controls.component.html
│ │ │ │ │ ├── repo-controls.component.scss
│ │ │ │ │ ├── repo-controls.component.spec.ts
│ │ │ │ │ └── repo-controls.component.ts
│ │ │ │ ├── repo-issue-pull-card
│ │ │ │ │ ├── repo-issue-pull-card.component.html
│ │ │ │ │ ├── repo-issue-pull-card.component.scss
│ │ │ │ │ └── repo-issue-pull-card.component.ts
│ │ │ │ └── repo-list
│ │ │ │ │ ├── repo-list.component.html
│ │ │ │ │ ├── repo-list.component.scss
│ │ │ │ │ ├── repo-list.component.spec.ts
│ │ │ │ │ └── repo-list.component.ts
│ │ │ ├── constants
│ │ │ │ └── index.ts
│ │ │ ├── directives
│ │ │ │ ├── click-away.directive.spec.ts
│ │ │ │ ├── click-away.directive.ts
│ │ │ │ └── octicons.directive.ts
│ │ │ ├── pipes
│ │ │ │ ├── markdown.pipe.ts
│ │ │ │ ├── relative-time.pipe.spec.ts
│ │ │ │ └── relative-time.pipe.ts
│ │ │ ├── shared.module.ts
│ │ │ ├── styles
│ │ │ │ ├── functions.scss
│ │ │ │ └── variables.scss
│ │ │ └── utils
│ │ │ │ └── index.ts
│ │ ├── state
│ │ │ ├── app.reducer.ts
│ │ │ ├── app.state.ts
│ │ │ ├── auth
│ │ │ │ ├── auth.actions.ts
│ │ │ │ ├── auth.effects.spec.ts
│ │ │ │ ├── auth.effects.ts
│ │ │ │ ├── auth.reducer.ts
│ │ │ │ ├── auth.selectors.ts
│ │ │ │ ├── auth.state.ts
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ ├── profile
│ │ │ │ ├── index.ts
│ │ │ │ ├── profile.actions.ts
│ │ │ │ ├── profile.effects.spec.ts
│ │ │ │ ├── profile.effects.ts
│ │ │ │ ├── profile.reducer.ts
│ │ │ │ ├── profile.selectors.ts
│ │ │ │ └── profile.state.ts
│ │ │ ├── repository
│ │ │ │ ├── index.ts
│ │ │ │ ├── repository.actions.ts
│ │ │ │ ├── repository.effects.spec.ts
│ │ │ │ ├── repository.effects.ts
│ │ │ │ ├── repository.reducer.ts
│ │ │ │ ├── repository.selectors.ts
│ │ │ │ └── repository.state.ts
│ │ │ └── user
│ │ │ │ ├── index.ts
│ │ │ │ ├── user.actions.ts
│ │ │ │ ├── user.effects.spec.ts
│ │ │ │ ├── user.effects.ts
│ │ │ │ ├── user.mappings.ts
│ │ │ │ ├── user.reducer.ts
│ │ │ │ ├── user.selectors.ts
│ │ │ │ └── user.state.ts
│ │ └── user
│ │ │ └── services
│ │ │ ├── user.service.spec.ts
│ │ │ └── user.service.ts
│ ├── assets
│ │ ├── .gitkeep
│ │ └── language-colors.json
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── polyfills.ts
│ ├── styles.scss
│ └── test.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.spec.json
└── typings.d.ts
├── cra-rxjs-styled-components
├── .editorconfig
├── .env.example
├── .gitignore
├── .husky
│ ├── pre-commit
│ └── pre-push
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.js
│ └── preview.js
├── README.md
├── package-lock.json
├── package.json
├── public
│ ├── _redirects
│ ├── index.html
│ ├── manifest.json
│ └── robots.txt
├── src
│ ├── App.test.tsx
│ ├── App.tsx
│ ├── components
│ │ ├── AuthGuard.tsx
│ │ ├── Loading
│ │ │ ├── LoadingBulletList.stories.tsx
│ │ │ ├── LoadingBulletList.tsx
│ │ │ ├── LoadingTextLine.stories.tsx
│ │ │ ├── LoadingTextLine.tsx
│ │ │ └── index.ts
│ │ ├── clear-filter-and-sort-button
│ │ │ ├── ClearFilterAndSortButtonText.styles.ts
│ │ │ └── ClearFilterAndSortButtonText.tsx
│ │ ├── details-dropdown
│ │ │ ├── DetailsDropdown.stories.tsx
│ │ │ ├── DetailsDropdown.style.tsx
│ │ │ └── DetailsDropdown.tsx
│ │ ├── dropdown
│ │ │ ├── Dropdown.styles.tsx
│ │ │ └── Dropdown.tsx
│ │ ├── empty-result
│ │ │ ├── EmptyResult.styles.ts
│ │ │ └── EmptyResult.tsx
│ │ ├── file-explorer
│ │ │ ├── FileExplorer.stories.tsx
│ │ │ ├── FileExplorer.styles.tsx
│ │ │ └── FileExplorer.tsx
│ │ ├── file-viewer
│ │ │ ├── FileCode.tsx
│ │ │ ├── FileText.tsx
│ │ │ ├── FileViewer.data.tsx
│ │ │ ├── FileViewer.stories.tsx
│ │ │ ├── FileViewer.styles.tsx
│ │ │ ├── FileViewer.view.tsx
│ │ │ └── mapExtensionToLanguage.ts
│ │ ├── filter-dropdown
│ │ │ ├── FilterDropdown.styles.ts
│ │ │ └── FilterDropdown.tsx
│ │ ├── header
│ │ │ ├── Header.stories.tsx
│ │ │ ├── Header.styles.tsx
│ │ │ └── Header.tsx
│ │ ├── icons
│ │ │ ├── BookIcon.tsx
│ │ │ ├── CloseIcon.tsx
│ │ │ ├── ClosedIssueIcon.tsx
│ │ │ ├── ClosedPRIcon.tsx
│ │ │ ├── CodeIcon.tsx
│ │ │ ├── CorrectIcon.tsx
│ │ │ ├── DirectoryIcon.tsx
│ │ │ ├── DropdownIcon.tsx
│ │ │ ├── EyeIcon.tsx
│ │ │ ├── FileIcon.tsx
│ │ │ ├── ForkIcon.tsx
│ │ │ ├── IssueIcon.tsx
│ │ │ ├── IssuesIcon.tsx
│ │ │ ├── LinkIcon.tsx
│ │ │ ├── MergedPRIcon.tsx
│ │ │ ├── MessageIcon.tsx
│ │ │ ├── OpenIssueIcon.tsx
│ │ │ ├── OpenPRIcon.tsx
│ │ │ ├── PrIcon.tsx
│ │ │ ├── PullRequestIcon.tsx
│ │ │ ├── ReadmeBookIcon.tsx
│ │ │ ├── ReadmeListIcon.tsx
│ │ │ ├── RepoBookIcon.tsx
│ │ │ ├── RepoIcon.tsx
│ │ │ ├── StarIcon.tsx
│ │ │ ├── TwitterIcon.tsx
│ │ │ ├── icons.stories.tsx
│ │ │ └── index.tsx
│ │ ├── issue-pr-card
│ │ │ ├── IssuePRCard.styles.tsx
│ │ │ ├── IssuePRCard.tsx
│ │ │ └── IssuePRCardInfo.tsx
│ │ ├── layouts
│ │ │ ├── Layout.tsx
│ │ │ ├── ProfileLayout.tsx
│ │ │ ├── RepoLayoutPage.tsx
│ │ │ └── Sidebar.tsx
│ │ ├── misc
│ │ │ ├── BranchLogo.tsx
│ │ │ ├── GitHubLogo.tsx
│ │ │ ├── StarLogo.tsx
│ │ │ └── privacy-badge
│ │ │ │ ├── PrivacyBadge.styles.tsx
│ │ │ │ └── PrivacyBadge.tsx
│ │ ├── paginate-button
│ │ │ ├── PaginateButton.stories.tsx
│ │ │ ├── PaginateButton.style.tsx
│ │ │ └── PaginateButton.tsx
│ │ ├── pagination
│ │ │ ├── Pagination.styles.tsx
│ │ │ └── Pagination.tsx
│ │ ├── pr-issue-tab
│ │ │ ├── IssuePRTabHeader.styles.tsx
│ │ │ └── IssuePRTabHeader.tsx
│ │ ├── pull-request
│ │ │ ├── PullRequest.stories.tsx
│ │ │ ├── getPRIcon.tsx
│ │ │ ├── pull-request
│ │ │ │ ├── PullRequest.data.tsx
│ │ │ │ ├── PullRequest.style.tsx
│ │ │ │ ├── PullRequest.type.ts
│ │ │ │ └── PullRequest.view.tsx
│ │ │ └── types.ts
│ │ ├── readme
│ │ │ ├── Readme.stories.tsx
│ │ │ ├── Readme.styles.tsx
│ │ │ ├── Readme.test.tsx
│ │ │ └── Readme.tsx
│ │ ├── repo-about
│ │ │ ├── RepoAbout.stories.tsx
│ │ │ ├── RepoAbout.styles.tsx
│ │ │ └── RepoAbout.tsx
│ │ ├── repo-card
│ │ │ ├── LoadingRepoCard.tsx
│ │ │ ├── RepoCard.stories.tsx
│ │ │ ├── RepoCard.styles.tsx
│ │ │ └── RepoCard.tsx
│ │ ├── repo-filter
│ │ │ ├── FilterText.tsx
│ │ │ ├── RepoFilter.styles.ts
│ │ │ ├── Repofilter.tsx
│ │ │ ├── SearchInput.tsx
│ │ │ └── data.ts
│ │ ├── repo-issues
│ │ │ └── Issues
│ │ │ │ ├── Issue.type.ts
│ │ │ │ ├── Issues.tsx
│ │ │ │ ├── Issues.view.styles.tsx
│ │ │ │ └── Issues.view.tsx
│ │ ├── repo-meta
│ │ │ ├── MetaIcon.tsx
│ │ │ ├── RepoMeta.styles.tsx
│ │ │ └── RepoMeta.tsx
│ │ ├── repo-page
│ │ │ ├── RepoPage.data.tsx
│ │ │ └── RepoPage.error.tsx
│ │ ├── sub-header
│ │ │ ├── SubHeader.styles.tsx
│ │ │ └── SubHeader.tsx
│ │ ├── tab-nav
│ │ │ ├── TabNav.styles.ts
│ │ │ └── TabNav.tsx
│ │ ├── user-gists
│ │ │ ├── UserGist.tsx
│ │ │ └── UserGists.styles.tsx
│ │ ├── user-profile
│ │ │ ├── LoadingProfile.tsx
│ │ │ ├── OrgList.styles.tsx
│ │ │ ├── OrgList.tsx
│ │ │ ├── SocialIcons.tsx
│ │ │ ├── UserProfile.styles.tsx
│ │ │ └── UserProfile.tsx
│ │ └── user-repos
│ │ │ ├── UserRepos.styles.tsx
│ │ │ └── UserRepos.tsx
│ ├── constants
│ │ ├── auth.constants.ts
│ │ ├── colors.tsx
│ │ ├── data.ts
│ │ └── url.constants.ts
│ ├── context
│ │ ├── RepoContext.tsx
│ │ ├── RepoFilterContext.tsx
│ │ └── UserProvider.tsx
│ ├── helpers
│ │ ├── buildPrIssueResolution.ts
│ │ ├── colours.ts
│ │ ├── dynamicColor.ts
│ │ ├── extract-branch-count.ts
│ │ ├── format-distance.ts
│ │ ├── getPullsState.ts
│ │ ├── languageFilterFunction.ts
│ │ ├── objectToQueryString.ts
│ │ ├── parseSortParams.ts
│ │ ├── replaceSpaceWithPlus.ts
│ │ ├── searchFunction.ts
│ │ ├── sortRepoFunction.ts
│ │ └── typeFilterFunction.ts
│ ├── hooks
│ │ ├── auth
│ │ │ ├── from-fetch-with-auth.ts
│ │ │ ├── use-set-token.ts
│ │ │ ├── use-sign-in.ts
│ │ │ └── use-sign-out.ts
│ │ ├── gists
│ │ │ └── use-gists.ts
│ │ ├── repo-blob
│ │ │ └── use-repo-blob.ts
│ │ ├── repo-explorer
│ │ │ └── use-repo-explorer.ts
│ │ ├── repositories
│ │ │ ├── use-repo-sort-filter.ts
│ │ │ └── use-repos.ts
│ │ ├── useIssuesPRs.tsx
│ │ └── user-repositories
│ │ │ └── use-user-repositories.ts
│ ├── index.css
│ ├── index.tsx
│ ├── interfaces
│ │ ├── auth.interfaces.ts
│ │ ├── gists.interfaces.ts
│ │ ├── org.interface.ts
│ │ └── repositories.interfaces.ts
│ ├── react-app-env.d.ts
│ ├── reportWebVitals.ts
│ ├── routes
│ │ ├── Index.tsx
│ │ ├── orgs.tsx
│ │ ├── profile.tsx
│ │ ├── redirect.tsx
│ │ ├── repo
│ │ │ ├── index.tsx
│ │ │ ├── repository-code
│ │ │ │ ├── index.tsx
│ │ │ │ ├── repository-blob
│ │ │ │ │ └── repository-blob.tsx
│ │ │ │ └── repository-tree
│ │ │ │ │ └── repository-tree.tsx
│ │ │ ├── repository-issues.tsx
│ │ │ └── repository-pull-request.tsx
│ │ ├── sign-in.tsx
│ │ └── user-top-repos.tsx
│ ├── setupTests.ts
│ └── types
│ │ └── types.ts
├── tsconfig.json
└── tsconfig.paths.json
├── expo-zustand-styled-components
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc
├── App.tsx
├── README.md
├── __mocks__
│ └── @react-native-async-storage
│ │ └── async-storage.ts
├── app.json
├── assets
│ ├── about-icon.png
│ ├── adaptive-icon.png
│ ├── arrow-down-icon.png
│ ├── favicon.png
│ ├── fonts
│ │ └── courier.ttf
│ ├── icon.png
│ ├── reload-icon.png
│ ├── splash.png
│ └── starter-logo.png
├── babel.config.js
├── functions
│ ├── callback
│ │ └── callback.ts
│ └── signin
│ │ └── signin.ts
├── netlify.toml
├── package.json
├── setup-tests.ts
├── src
│ ├── components
│ │ ├── BranchNavigation
│ │ │ ├── BranchNavigation.styles.tsx
│ │ │ ├── BranchNavigation.test.tsx
│ │ │ ├── BranchNavigation.tsx
│ │ │ └── index.ts
│ │ ├── Button
│ │ │ ├── Button.styles.ts
│ │ │ ├── Button.test.tsx
│ │ │ ├── Button.tsx
│ │ │ └── index.ts
│ │ ├── FileTree
│ │ │ ├── FileTree.styles.ts
│ │ │ ├── FileTree.test.tsx
│ │ │ ├── FileTree.tsx
│ │ │ └── index.ts
│ │ ├── FileViewer
│ │ │ ├── FIleCode
│ │ │ │ ├── FileCode.styles.ts
│ │ │ │ ├── FileCode.tsx
│ │ │ │ └── index.ts
│ │ │ ├── FileText
│ │ │ │ ├── FileText.styles.ts
│ │ │ │ ├── FileText.tsx
│ │ │ │ └── index.ts
│ │ │ ├── FileViewer.styles.ts
│ │ │ ├── FileViewer.test.tsx
│ │ │ ├── FileViewer.tsx
│ │ │ ├── font.ts
│ │ │ ├── index.ts
│ │ │ └── mapExtensionToLanguage.ts
│ │ ├── FilterDropdown
│ │ │ ├── Dropdown.tsx
│ │ │ ├── DropdownModal.tsx
│ │ │ ├── FilterDropdown.styles.ts
│ │ │ ├── FilterDropdown.test.tsx
│ │ │ ├── FilterDropdown.tsx
│ │ │ └── index.ts
│ │ ├── Header
│ │ │ ├── Header.spec.tsx
│ │ │ ├── Header.styles.ts
│ │ │ ├── Header.tsx
│ │ │ └── index.ts
│ │ ├── Icons
│ │ │ ├── BranchLogo.tsx
│ │ │ ├── CaretIcon.tsx
│ │ │ ├── CloseIcon.tsx
│ │ │ ├── ClosedIssueIcon.tsx
│ │ │ ├── ClosedPrIcon.tsx
│ │ │ ├── CodeIcon.tsx
│ │ │ ├── CommentIcon.tsx
│ │ │ ├── CorrectIcon.tsx
│ │ │ ├── DocumentIcon.tsx
│ │ │ ├── EyeIcon.tsx
│ │ │ ├── FolderIcon.tsx
│ │ │ ├── GitBranchIcon.tsx
│ │ │ ├── GitHubLogo.tsx
│ │ │ ├── IssueIcon.tsx
│ │ │ ├── IssuesIcon.tsx
│ │ │ ├── LinkIcon.tsx
│ │ │ ├── LocationIcon.tsx
│ │ │ ├── MergedPrIcon.tsx
│ │ │ ├── OfficeBuildingIcon.tsx
│ │ │ ├── PadlockIcon.tsx
│ │ │ ├── PullRequestIcon.tsx
│ │ │ ├── ReadmeBookIcon.tsx
│ │ │ ├── ReadmeListIcon.tsx
│ │ │ ├── RepoBookIcon.tsx
│ │ │ ├── RepoIcon.tsx
│ │ │ ├── StarIcon.tsx
│ │ │ ├── StarLogo.tsx
│ │ │ ├── TwitterIcon.tsx
│ │ │ ├── UsersIcon.tsx
│ │ │ └── index.ts
│ │ ├── IssuePullRequestCard
│ │ │ ├── IssuePullRequestCard.spec.tsx
│ │ │ ├── IssuePullRequestCard.styles.ts
│ │ │ ├── IssuePullRequestCard.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── IssuesPRClearFilter
│ │ │ ├── IssuesPRClearFilter.spec.tsx
│ │ │ ├── IssuesPRClearFilter.styles.ts
│ │ │ ├── IssuesPRClearFilter.tsx
│ │ │ └── index.ts
│ │ ├── IssuesTabView
│ │ │ ├── IssuesTabView.spec.tsx
│ │ │ ├── IssuesTabView.styles.ts
│ │ │ ├── IssuesTabView.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── LinkButton
│ │ │ ├── LinkButton.spec.tsx
│ │ │ └── LinkButton.tsx
│ │ ├── LoaderErrorView
│ │ │ ├── LoaderErrorView.spec.tsx
│ │ │ ├── LoaderErrorView.tsx
│ │ │ └── index.ts
│ │ ├── Organization
│ │ │ ├── About
│ │ │ │ ├── About.spec.tsx
│ │ │ │ ├── About.styles.ts
│ │ │ │ ├── About.tsx
│ │ │ │ └── index.ts
│ │ │ ├── Repositories
│ │ │ │ ├── Repositories.spec.tsx
│ │ │ │ ├── Repositories.tsx
│ │ │ │ └── index.ts
│ │ │ └── index.ts
│ │ ├── PRAndIssueHeader
│ │ │ ├── PRAndIssueHeader.spec.tsx
│ │ │ ├── PRAndIssueHeader.styles.ts
│ │ │ ├── PRAndIssueHeader.tsx
│ │ │ ├── index.ts
│ │ │ └── utils.ts
│ │ ├── PRAndIssueLoaderSkeleton
│ │ │ ├── PRAndIssueLoaderSkeleton.styles.ts
│ │ │ ├── PRAndIssueLoaderSkeleton.tsx
│ │ │ └── index.ts
│ │ ├── Pagination
│ │ │ ├── Pagination.spec.tsx
│ │ │ ├── Pagination.styles.ts
│ │ │ ├── Pagination.tsx
│ │ │ └── index.ts
│ │ ├── PrivacyBadge
│ │ │ ├── PrivacyBadge.spec.tsx
│ │ │ ├── PrivacyBadge.style.ts
│ │ │ ├── PrivacyBadge.tsx
│ │ │ └── index.ts
│ │ ├── Profile
│ │ │ ├── Repositories
│ │ │ │ ├── Repositories.spec.tsx
│ │ │ │ ├── Repositories.styles.ts
│ │ │ │ ├── Repositories.tsx
│ │ │ │ ├── data.ts
│ │ │ │ └── index.ts
│ │ │ └── UserCard
│ │ │ │ ├── OrgList.spec.tsx
│ │ │ │ ├── OrgList.styles.ts
│ │ │ │ ├── OrgList.tsx
│ │ │ │ ├── SocialCounts.spec.tsx
│ │ │ │ ├── SocialCounts.tsx
│ │ │ │ ├── UserCard.spec.tsx
│ │ │ │ ├── UserCard.styles.ts
│ │ │ │ ├── UserCard.tsx
│ │ │ │ ├── data.ts
│ │ │ │ └── index.ts
│ │ ├── PullRequestsTabView
│ │ │ ├── PullRequestsTabView.spec.tsx
│ │ │ ├── PullRequestsTabView.styles.ts
│ │ │ ├── PullRequestsTabView.tsx
│ │ │ └── index.ts
│ │ ├── RepoAbout
│ │ │ ├── RepoAbout.spec.tsx
│ │ │ ├── RepoAbout.styles.tsx
│ │ │ ├── RepoAbout.tsx
│ │ │ └── index.ts
│ │ ├── RepoActionButtons
│ │ │ ├── CountButtonGroup.spec.tsx
│ │ │ ├── CountButtonGroup.tsx
│ │ │ ├── RepoActionButtons.spec.tsx
│ │ │ ├── RepoActionButtons.styles.ts
│ │ │ ├── RepoActionButtons.tsx
│ │ │ └── index.ts
│ │ ├── RepoCard
│ │ │ ├── RepoCard.spec.tsx
│ │ │ ├── RepoCard.styles.ts
│ │ │ ├── RepoCard.tsx
│ │ │ ├── RepoMeta.tsx
│ │ │ └── index.ts
│ │ ├── RepoFilter
│ │ │ ├── FilterText.tsx
│ │ │ ├── RepoFilter.spec.tsx
│ │ │ ├── RepoFilter.styles.ts
│ │ │ ├── RepoFilter.tsx
│ │ │ ├── SearchInput.spec.tsx
│ │ │ ├── SearchInput.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── RepoHeading
│ │ │ ├── PrivacyIcon.spec.tsx
│ │ │ ├── PrivacyIcon.tsx
│ │ │ ├── RepoHeading.spec.tsx
│ │ │ ├── RepoHeading.styles.ts
│ │ │ ├── RepoHeading.tsx
│ │ │ └── index.ts
│ │ ├── RepoLayout
│ │ │ ├── RepoLayout.styles.tsx
│ │ │ ├── RepoLayout.tsx
│ │ │ └── index.ts
│ │ ├── RepoReadme
│ │ │ ├── RepoReadme.styles.tsx
│ │ │ ├── RepoReadme.tsx
│ │ │ └── index.ts
│ │ ├── RepoSubHeader
│ │ │ ├── RepoSubHeader.styles.ts
│ │ │ ├── RepoSubHeader.tsx
│ │ │ ├── index.ts
│ │ │ └── tabList.ts
│ │ ├── TabNavigation
│ │ │ ├── TabNavigation.spec.tsx
│ │ │ ├── TabNavigation.styles.ts
│ │ │ ├── TabNavigation.tsx
│ │ │ └── index.ts
│ │ └── UserDropdown
│ │ │ ├── UserDropdown.spec.tsx
│ │ │ ├── UserDropdown.styles.ts
│ │ │ ├── UserDropdown.tsx
│ │ │ └── index.ts
│ ├── hooks
│ │ ├── stores
│ │ │ ├── index.ts
│ │ │ ├── useAppStore.ts
│ │ │ ├── useAuthStore.ts
│ │ │ ├── useGistsStore.ts
│ │ │ ├── useIssuesStore.ts
│ │ │ ├── useOrgStore.ts
│ │ │ ├── usePRAndIssueHeaderStore.ts
│ │ │ ├── usePullRequestsStore.ts
│ │ │ ├── useRepoFilterStore.ts
│ │ │ ├── useRepoInfoStore.ts
│ │ │ ├── useTopReposStore.ts
│ │ │ └── useUserReposStore.ts
│ │ ├── useCachedResources.ts
│ │ ├── useLayoutDropdown.ts
│ │ └── useRefs.ts
│ ├── navigation
│ │ ├── LinkingConfiguration.ts
│ │ ├── app
│ │ │ ├── RepoNavigator
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── auth
│ │ │ └── index.tsx
│ │ └── index.tsx
│ ├── screens
│ │ ├── Home
│ │ │ ├── Home.styles.ts
│ │ │ ├── Home.tsx
│ │ │ └── index.ts
│ │ ├── Login
│ │ │ ├── Login.styles.ts
│ │ │ ├── Login.tsx
│ │ │ └── index.tsx
│ │ ├── Organization
│ │ │ ├── Organization.styles.ts
│ │ │ ├── Organization.tsx
│ │ │ └── index.ts
│ │ ├── Profile
│ │ │ ├── Profile.styles.ts
│ │ │ ├── Profile.tsx
│ │ │ └── index.ts
│ │ └── Repository
│ │ │ ├── Blob
│ │ │ ├── Blob.tsx
│ │ │ └── index.ts
│ │ │ ├── Code
│ │ │ ├── Code.tsx
│ │ │ └── index.ts
│ │ │ ├── Issues
│ │ │ ├── Issues.style.tsx
│ │ │ ├── Issues.tsx
│ │ │ └── index.ts
│ │ │ ├── Pull-Requests
│ │ │ ├── Pull-Requests.style.tsx
│ │ │ ├── Pull-Requests.tsx
│ │ │ └── index.ts
│ │ │ ├── Repository.styles.tsx
│ │ │ └── Tree
│ │ │ ├── Tree.tsx
│ │ │ └── index.ts
│ ├── services
│ │ ├── api.ts
│ │ ├── get-gists.ts
│ │ ├── get-org-repos.ts
│ │ ├── get-repo-file.ts
│ │ ├── get-repo-info.ts
│ │ ├── get-repo-issues.ts
│ │ ├── get-repo-pull-requests.ts
│ │ ├── get-repo-readme.ts
│ │ ├── get-repo-tree.ts
│ │ ├── get-top-repos.ts
│ │ ├── get-user-profile.ts
│ │ ├── get-user-repos.ts
│ │ ├── get-viewer-info.ts
│ │ ├── getGists.ts
│ │ └── queries
│ │ │ ├── gists.ts
│ │ │ ├── issues.ts
│ │ │ ├── org-repos.ts
│ │ │ ├── pull-requests.ts
│ │ │ ├── repo-file.ts
│ │ │ ├── repo-info.ts
│ │ │ ├── repo-readme.ts
│ │ │ ├── repo-tree.ts
│ │ │ ├── top-repos.ts
│ │ │ ├── user-profile.ts
│ │ │ ├── user-repos.ts
│ │ │ └── viewer-info.ts
│ ├── types
│ │ ├── gists-type.ts
│ │ ├── issues-type.ts
│ │ ├── label-type.ts
│ │ ├── org-repos.ts
│ │ ├── pull-requests-type.ts
│ │ ├── repo-file-type.ts
│ │ ├── repo-info-type.ts
│ │ ├── repo-readme-type.ts
│ │ ├── repo-tree-type.ts
│ │ ├── top-repos-type.ts
│ │ ├── user-profile-type.ts
│ │ └── user-repos-type.ts
│ └── utils
│ │ ├── breakpoints.ts
│ │ ├── calculateDropdownHeight.spec.ts
│ │ ├── calculateDropdownHeight.ts
│ │ ├── constants.ts
│ │ ├── dynamicColor.spec.ts
│ │ ├── dynamicColor.ts
│ │ ├── getLanguages.spec.ts
│ │ ├── getLanguages.ts
│ │ ├── language-colors.spec.ts
│ │ ├── language-colors.ts
│ │ ├── languageFilterFunction.spec.ts
│ │ ├── languageFilterFunction.ts
│ │ ├── parseSortParams.spec.ts
│ │ ├── parseSortParams.ts
│ │ ├── searchFunction.spec.ts
│ │ ├── searchFunction.ts
│ │ ├── sortRepoFunction.spec.ts
│ │ ├── sortRepoFunction.ts
│ │ ├── style-variables.ts
│ │ ├── typeFilterFunction.spec.ts
│ │ ├── typeFilterFunction.ts
│ │ ├── useRepoSortFiler.ts
│ │ └── useRepoSortFilter.test.ts
├── tsconfig.json
├── types.tsx
├── types
│ └── env.d.ts
└── webpack.config.js
├── github-schema.graphql
├── next-react-query-tailwind
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierrc
├── .storybook
│ ├── main.ts
│ └── preview.ts
├── .vscode
│ └── settings.json
├── README.md
├── __mocks__
│ ├── fileMock.js
│ ├── nextImage.jsx
│ ├── nextLink.jsx
│ └── styleMock.js
├── codegen.ts
├── github-schema-loader.js
├── globals.d.ts
├── jest.config.js
├── jest.setup.js
├── middleware.ts
├── netlify.toml
├── next-env.d.ts
├── next.config.js
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ ├── mockServiceWorker.js
│ └── vercel.svg
├── src
│ ├── components
│ │ ├── FileExplorer
│ │ │ ├── FileExplorer.data.tsx
│ │ │ ├── FileExplorer.mocks.ts
│ │ │ ├── FileExplorer.module.css
│ │ │ ├── FileExplorer.query.ts
│ │ │ ├── FileExplorer.stories.tsx
│ │ │ ├── FileExplorer.test.tsx
│ │ │ ├── FileExplorer.view.tsx
│ │ │ ├── index.ts
│ │ │ ├── parseQueryData.ts
│ │ │ └── types.ts
│ │ ├── FileViewer
│ │ │ ├── FileCode.tsx
│ │ │ ├── FileText.tsx
│ │ │ ├── FileViewer.data.tsx
│ │ │ ├── FileViewer.mocks.tsx
│ │ │ ├── FileViewer.module.css
│ │ │ ├── FileViewer.query.ts
│ │ │ ├── FileViewer.stories.tsx
│ │ │ ├── FileViewer.test.tsx
│ │ │ ├── FileViewer.view.tsx
│ │ │ ├── index.ts
│ │ │ └── mapExtensionToLanguage.ts
│ │ ├── FilterDropdown
│ │ │ ├── FilterDropdown.module.css
│ │ │ ├── FilterDropdown.tsx
│ │ │ └── index.ts
│ │ ├── GitHubLogo
│ │ │ ├── GitHubLogo.tsx
│ │ │ └── index.ts
│ │ ├── Icons
│ │ │ ├── ClosedPullRequestIcon.tsx
│ │ │ ├── EyeIcon.tsx
│ │ │ ├── GitBranchIcon.tsx
│ │ │ ├── GitRepoIcon.tsx
│ │ │ ├── MergedPullRequestIcon.tsx
│ │ │ ├── PullRequestIcon.tsx
│ │ │ ├── TOCIcon.tsx
│ │ │ ├── TwitterIcon.tsx
│ │ │ └── index.ts
│ │ ├── IssueFilters
│ │ │ ├── IssueFilters.module.css
│ │ │ ├── IssueFilters.tsx
│ │ │ ├── index.ts
│ │ │ ├── types.ts
│ │ │ └── useIssueFilters.tsx
│ │ ├── IssuesContainer
│ │ │ ├── IssuesContainer.module.css
│ │ │ ├── IssuesContainer.tsx
│ │ │ └── index.ts
│ │ ├── IssuesEmpty
│ │ │ ├── IssuesEmpty.module.css
│ │ │ ├── IssuesEmpty.tsx
│ │ │ └── index.ts
│ │ ├── IssuesSkeleton
│ │ │ ├── IssuesSkeleton.tsx
│ │ │ └── index.ts
│ │ ├── Loading
│ │ │ ├── LoadingBulletList.stories.tsx
│ │ │ ├── LoadingBulletList.tsx
│ │ │ ├── LoadingPulseDots.stories.tsx
│ │ │ ├── LoadingPulseDots.tsx
│ │ │ ├── LoadingTextLine.stories.tsx
│ │ │ ├── LoadingTextLine.tsx
│ │ │ └── index.ts
│ │ ├── NavBar
│ │ │ ├── NavBar.module.css
│ │ │ ├── NavBar.stories.tsx
│ │ │ ├── NavBar.tsx
│ │ │ └── index.ts
│ │ ├── OrgProfile
│ │ │ ├── OrgProfile.data.tsx
│ │ │ ├── OrgProfile.mocks.ts
│ │ │ ├── OrgProfile.query.ts
│ │ │ ├── OrgProfile.stories.tsx
│ │ │ ├── OrgProfile.view.tsx
│ │ │ └── index.ts
│ │ ├── Pagination
│ │ │ ├── Pagination.module.css
│ │ │ ├── Pagination.tsx
│ │ │ └── index.ts
│ │ ├── PrivacyBadge
│ │ │ ├── PrivacyBadge.module.css
│ │ │ ├── PrivacyBadge.tsx
│ │ │ └── index.ts
│ │ ├── ProfileNav
│ │ │ ├── ProfileNav.tsx
│ │ │ ├── index.ts
│ │ │ └── tabList.tsx
│ │ ├── ProfilePage
│ │ │ ├── ProfilePage.tsx
│ │ │ └── index.ts
│ │ ├── RepoAboutWidget
│ │ │ ├── Description.tsx
│ │ │ ├── HomepageUrl.tsx
│ │ │ ├── RepoAboutWidget.module.css
│ │ │ ├── RepoAboutWidget.stories.tsx
│ │ │ ├── RepoAboutWidget.tsx
│ │ │ └── Topics.tsx
│ │ ├── RepoActionButtons
│ │ │ ├── CountButtonGroup.tsx
│ │ │ ├── RepoActionButtons.module.css
│ │ │ ├── RepoActionButtons.stories.tsx
│ │ │ ├── RepoActionButtons.tsx
│ │ │ └── index.ts
│ │ ├── RepoFilters
│ │ │ ├── FilterDropdown.module.css
│ │ │ ├── FilterDropdown.tsx
│ │ │ ├── RepoFilters.module.css
│ │ │ ├── RepoFilters.test.tsx
│ │ │ ├── RepoFilters.tsx
│ │ │ ├── index.ts
│ │ │ └── useRepoFilters.tsx
│ │ ├── RepoHeader
│ │ │ ├── RepoHeader.module.css
│ │ │ ├── RepoHeader.stories.tsx
│ │ │ ├── RepoHeader.tsx
│ │ │ ├── index.ts
│ │ │ └── tabList.tsx
│ │ ├── RepoHeading
│ │ │ ├── PrivacyIcon.tsx
│ │ │ ├── RepoHeading.module.css
│ │ │ ├── RepoHeading.stories.tsx
│ │ │ ├── RepoHeading.tsx
│ │ │ └── index.ts
│ │ ├── RepoIssues
│ │ │ ├── RepoIssues.data.tsx
│ │ │ ├── RepoIssues.mocks.ts
│ │ │ ├── RepoIssues.module.css
│ │ │ ├── RepoIssues.query.ts
│ │ │ ├── RepoIssues.stories.tsx
│ │ │ ├── RepoIssues.test.tsx
│ │ │ ├── RepoIssues.view.tsx
│ │ │ ├── index.ts
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ ├── RepoMeta
│ │ │ ├── RepoMeta.module.css
│ │ │ ├── RepoMeta.tsx
│ │ │ └── index.ts
│ │ ├── RepoNavigation
│ │ │ ├── RepoNavigation.module.css
│ │ │ ├── RepoNavigation.stories.tsx
│ │ │ ├── RepoNavigation.tsx
│ │ │ └── index.ts
│ │ ├── RepoPage
│ │ │ ├── RenderContextValue.tsx
│ │ │ ├── RepoPage.data.tsx
│ │ │ ├── RepoPage.error.tsx
│ │ │ ├── RepoPage.mocks.ts
│ │ │ ├── RepoPage.query.ts
│ │ │ ├── RepoPage.stories.tsx
│ │ │ ├── RepoPage.test.tsx
│ │ │ ├── index.ts
│ │ │ └── parseTopics.ts
│ │ ├── RepoPulls
│ │ │ ├── RepoPulls.data.tsx
│ │ │ ├── RepoPulls.mocks.ts
│ │ │ ├── RepoPulls.query.ts
│ │ │ ├── RepoPulls.stories.tsx
│ │ │ ├── RepoPulls.test.tsx
│ │ │ ├── RepoPulls.view.tsx
│ │ │ ├── index.ts
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ ├── RepoReadMe
│ │ │ ├── Empty.tsx
│ │ │ ├── RepoReadMe.data.tsx
│ │ │ ├── RepoReadMe.mocks.ts
│ │ │ ├── RepoReadMe.module.css
│ │ │ ├── RepoReadMe.query.ts
│ │ │ ├── RepoReadMe.stories.tsx
│ │ │ ├── RepoReadMe.test.tsx
│ │ │ ├── RepoReadMe.view.tsx
│ │ │ ├── index.ts
│ │ │ └── parseQuery.ts
│ │ ├── TabNavigation
│ │ │ ├── TabNavigation.module.css
│ │ │ ├── TabNavigation.stories.tsx
│ │ │ ├── TabNavigation.tsx
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── UserDropdown
│ │ │ ├── UserDropdown.data.tsx
│ │ │ ├── UserDropdown.mocks.ts
│ │ │ ├── UserDropdown.module.css
│ │ │ ├── UserDropdown.query.ts
│ │ │ ├── UserDropdown.stories.tsx
│ │ │ ├── UserDropdown.test.tsx
│ │ │ ├── UserDropdown.view.tsx
│ │ │ └── index.ts
│ │ ├── UserGists
│ │ │ ├── Container.tsx
│ │ │ ├── UserGists.data.tsx
│ │ │ ├── UserGists.mocks.ts
│ │ │ ├── UserGists.module.css
│ │ │ ├── UserGists.query.ts
│ │ │ ├── UserGists.stories.tsx
│ │ │ ├── UserGists.test.tsx
│ │ │ ├── UserGists.view.tsx
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ ├── UserProfile
│ │ │ ├── LoadingProfile.stories.tsx
│ │ │ ├── LoadingProfile.tsx
│ │ │ ├── OrgList.module.css
│ │ │ ├── OrgList.tsx
│ │ │ ├── UserProfile.data.tsx
│ │ │ ├── UserProfile.mocks.ts
│ │ │ ├── UserProfile.module.css
│ │ │ ├── UserProfile.query.ts
│ │ │ ├── UserProfile.stories.tsx
│ │ │ ├── UserProfile.test.tsx
│ │ │ ├── UserProfile.view.tsx
│ │ │ ├── index.ts
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ ├── UserRepos
│ │ │ ├── LoadingRepos.stories.tsx
│ │ │ ├── LoadingRepos.tsx
│ │ │ ├── OrgRepos.query.ts
│ │ │ ├── UserRepos.data.tsx
│ │ │ ├── UserRepos.mocks.ts
│ │ │ ├── UserRepos.module.css
│ │ │ ├── UserRepos.query.ts
│ │ │ ├── UserRepos.stories.tsx
│ │ │ ├── UserRepos.test.tsx
│ │ │ ├── UserRepos.view.tsx
│ │ │ ├── filterRepos.ts
│ │ │ ├── getLanguages.ts
│ │ │ ├── index.ts
│ │ │ ├── parseQuery.ts
│ │ │ ├── types.ts
│ │ │ └── useOrgOrUserQuery.ts
│ │ └── UserTopRepos
│ │ │ ├── UserTopRepos.data.tsx
│ │ │ ├── UserTopRepos.mocks.ts
│ │ │ ├── UserTopRepos.module.css
│ │ │ ├── UserTopRepos.query.ts
│ │ │ ├── UserTopRepos.stories.tsx
│ │ │ ├── UserTopRepos.view.tsx
│ │ │ ├── UserTopsRepos.test.tsx
│ │ │ ├── index.ts
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ ├── context
│ │ └── RepoContext.tsx
│ ├── lib
│ │ ├── gqlClient.ts
│ │ ├── jwt.ts
│ │ ├── mswServer.ts
│ │ ├── parseError.ts
│ │ ├── pathUtils.ts
│ │ ├── testUtils.tsx
│ │ └── withAuthRedirect.ts
│ ├── pages
│ │ ├── [owner]
│ │ │ ├── [name]
│ │ │ │ ├── blob
│ │ │ │ │ └── [branch]
│ │ │ │ │ │ └── [...path].tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── issues.tsx
│ │ │ │ ├── pulls.tsx
│ │ │ │ └── tree
│ │ │ │ │ └── [branch]
│ │ │ │ │ ├── [...path].tsx
│ │ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── _app.tsx
│ │ ├── api
│ │ │ ├── auth
│ │ │ │ └── [...nextauth].ts
│ │ │ ├── graphql.ts
│ │ │ └── user.ts
│ │ ├── auth
│ │ │ └── signin.tsx
│ │ ├── index.tsx
│ │ └── orgs
│ │ │ └── [login].tsx
│ └── styles
│ │ └── globals.css
├── tailwind.config.js
├── tsconfig.json
└── yarn.lock
├── nuxt-pinia-tailwind
├── .babelrc
├── .editorconfig
├── .env.example
├── .eslintrc.js
├── .gitignore
├── .husky
│ ├── commit-msg
│ ├── common.sh
│ └── pre-commit
├── .prettierignore
├── .prettierrc
├── README.md
├── commitlint.config.js
├── components
│ ├── PrivacyBadge
│ │ └── PrivacyBadge.vue
│ ├── ProfileNav
│ │ └── ProfileNav.vue
│ ├── RepoMeta
│ │ └── RepoMeta.vue
│ ├── RepositoryCard
│ │ └── RepositoryCard.vue
│ ├── TabNavigation
│ │ ├── TabNavigation.vue
│ │ └── types.ts
│ ├── TheNavBar
│ │ └── TheNavBar.vue
│ ├── UserGists
│ │ └── UserGists.vue
│ ├── UserProfile
│ │ └── UserProfile.vue
│ ├── UserRepos
│ │ └── UserRepos.vue
│ └── icons
│ │ ├── GitBranchIcon.vue
│ │ ├── GitOverviewIcon.vue
│ │ ├── GitRepoIcon.vue
│ │ ├── GithubLogo.vue
│ │ ├── LocationMarkerIcon.vue
│ │ ├── OfficeBuildingIcon.vue
│ │ ├── StarIcon.vue
│ │ ├── TwitterLogo.vue
│ │ └── UsersIcon.vue
├── constants
│ └── url.constants.ts
├── jest.config.js
├── jest.setup.js
├── layouts
│ └── LoggedIn.vue
├── nuxt.config.js
├── package.json
├── pages
│ ├── _user
│ │ └── index.vue
│ ├── index.vue
│ ├── redirect
│ │ ├── Redirect.test.ts
│ │ └── index.vue
│ └── sign-in
│ │ ├── Signin.test.ts
│ │ └── index.vue
├── plugins
│ └── formatter.ts
├── schemes
│ └── authScheme.ts
├── static
│ └── favicon.ico
├── store
│ ├── orgStore.ts
│ ├── repoStore.ts
│ └── userStore.ts
├── stylelint.config.js
├── tailwind.config.js
├── test
│ ├── __mocks__
│ │ ├── handlers
│ │ │ └── index.ts
│ │ └── mswServer.ts
│ └── utils.ts
├── ts-shim.d.ts
├── tsconfig.json
├── tsconfig.node.json
├── types
│ ├── auth
│ │ ├── enums.ts
│ │ └── index.ts
│ ├── repository
│ │ ├── enums.ts
│ │ ├── interfaces.ts
│ │ └── types.ts
│ └── user
│ │ └── interfaces.ts
└── yarn.lock
├── qwik-graphql-tailwind
├── .env.example
├── .eslintignore
├── .eslintrc.cjs
├── .gitignore
├── .node-version
├── .npmrc
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.ts
│ ├── preview-head.html
│ └── preview.ts
├── README.md
├── adaptors
│ ├── netlify-edge
│ │ └── vite.config.ts
│ └── static
│ │ └── vite.config.ts
├── netlify.toml
├── package.json
├── postcss.config.js
├── public
│ ├── _headers
│ ├── _redirects
│ ├── favicon.svg
│ └── mockServiceWorker.js
├── src
│ ├── components
│ │ ├── Loading
│ │ │ └── loading-pulse-dot.tsx
│ │ ├── branch-navigation
│ │ │ └── index.tsx
│ │ ├── clear-filter-and-sort-button
│ │ │ └── index.tsx
│ │ ├── file-explorer
│ │ │ ├── index.tsx
│ │ │ ├── parseTree.ts
│ │ │ └── types.ts
│ │ ├── file-viewer
│ │ │ ├── index.tsx
│ │ │ ├── mapExtensionToLanguage.ts
│ │ │ ├── text.tsx
│ │ │ └── view.tsx
│ │ ├── filter-dropdown
│ │ │ ├── filter-dropdown.spec.tsx
│ │ │ ├── filter-dropdown.stories.tsx
│ │ │ └── filter-dropdown.tsx
│ │ ├── gists
│ │ │ ├── gist-list-item.tsx
│ │ │ ├── gists.spec.tsx
│ │ │ ├── gists.stories.tsx
│ │ │ ├── index.tsx
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ ├── header
│ │ │ ├── github-logo.tsx
│ │ │ ├── header.spec.tsx
│ │ │ ├── header.stories.tsx
│ │ │ └── header.tsx
│ │ ├── icons
│ │ │ ├── book-open.icon.tsx
│ │ │ ├── building.icon.tsx
│ │ │ ├── carret-dropdown.icon.tsx
│ │ │ ├── check.icon.tsx
│ │ │ ├── chevron-down.icon.tsx
│ │ │ ├── closed-issue.icon.tsx
│ │ │ ├── closed-pr.icon.tsx
│ │ │ ├── code.icon.tsx
│ │ │ ├── comment.icon.tsx
│ │ │ ├── document.icon.tsx
│ │ │ ├── draft-pr.icon.tsx
│ │ │ ├── eye.icon.tsx
│ │ │ ├── folder.icon.tsx
│ │ │ ├── git-branch.icon.tsx
│ │ │ ├── git-repo.icon.tsx
│ │ │ ├── icon.stories.tsx
│ │ │ ├── icons.styles.ts
│ │ │ ├── index.ts
│ │ │ ├── information-circle.icon.tsx
│ │ │ ├── issues.icon.tsx
│ │ │ ├── link-icon.tsx
│ │ │ ├── link.icon.tsx
│ │ │ ├── location-marker.icon.tsx
│ │ │ ├── merged-pr.icon.tsx
│ │ │ ├── pullRequest.icon.tsx
│ │ │ ├── repo.icon.tsx
│ │ │ ├── resolved-issue.icon.tsx
│ │ │ ├── star.icon.tsx
│ │ │ ├── toc.icon.tsx
│ │ │ ├── twitter.icon.tsx
│ │ │ ├── types.ts
│ │ │ ├── users.icon.tsx
│ │ │ └── xmark.icon.tsx
│ │ ├── issue-pr-card
│ │ │ ├── card.tsx
│ │ │ ├── issue-card.stories.tsx
│ │ │ ├── issue-pr-card.spec.tsx
│ │ │ └── pr-card.stories.tsx
│ │ ├── issue-tab-view
│ │ │ ├── data.ts
│ │ │ ├── index.tsx
│ │ │ ├── issue-tab-view.spec.tsx
│ │ │ ├── issue-tab-view.stories.tsx
│ │ │ ├── issues-data.tsx
│ │ │ ├── parseQuery.ts
│ │ │ └── type.ts
│ │ ├── org-list
│ │ │ ├── org-list.spec.tsx
│ │ │ ├── org-list.stories.tsx
│ │ │ └── org-list.tsx
│ │ ├── pagination
│ │ │ ├── pagination.spec.tsx
│ │ │ ├── pagination.stories.tsx
│ │ │ └── pagination.tsx
│ │ ├── privacy-badge
│ │ │ ├── privacy-badge.spec.tsx
│ │ │ ├── privacy-badge.stories.tsx
│ │ │ └── privacy-badge.tsx
│ │ ├── profile-nav
│ │ │ ├── profile-nav.spec.tsx
│ │ │ ├── profile-nav.tsx
│ │ │ └── tab-list.tsx
│ │ ├── pull-request-issue-tab
│ │ │ ├── pr-issue-context-provider.tsx
│ │ │ ├── pull-request-issue-tab.spec.tsx
│ │ │ ├── pull-request-issue-tab.stories.tsx
│ │ │ └── pull-request-issue-tab.tsx
│ │ ├── repo-about
│ │ │ ├── description
│ │ │ │ └── index.tsx
│ │ │ ├── homepage-url
│ │ │ │ └── index.tsx
│ │ │ ├── index.tsx
│ │ │ ├── repo-about.spec.tsx
│ │ │ └── topic
│ │ │ │ └── index.tsx
│ │ ├── repo-action-buttons
│ │ │ └── index.tsx
│ │ ├── repo-card
│ │ │ ├── repo-card.spec.tsx
│ │ │ ├── repo-card.stories.tsx
│ │ │ ├── repo-card.tsx
│ │ │ └── types.ts
│ │ ├── repo-filters
│ │ │ ├── repo-filters.spec.tsx
│ │ │ ├── repo-filters.stories.tsx
│ │ │ ├── repo-filters.tsx
│ │ │ └── types.ts
│ │ ├── repo-header
│ │ │ ├── index.tsx
│ │ │ ├── repo-header.spec.tsx
│ │ │ └── tab-lists.tsx
│ │ ├── repo-heading
│ │ │ ├── index.tsx
│ │ │ └── repo-heading.spec.tsx
│ │ ├── repo-layout
│ │ │ └── index.tsx
│ │ ├── repo-meta
│ │ │ ├── repo-meta.classNames.ts
│ │ │ ├── repo-meta.stories.tsx
│ │ │ └── repo-meta.tsx
│ │ ├── repo-pulls
│ │ │ ├── data.ts
│ │ │ ├── index.tsx
│ │ │ ├── parseQuery.ts
│ │ │ ├── repo-pulls-data.tsx
│ │ │ └── types.ts
│ │ ├── repo-read-me
│ │ │ ├── empty.tsx
│ │ │ ├── index.tsx
│ │ │ └── repo-read-me.spec.tsx
│ │ ├── router-head
│ │ │ └── router-head.tsx
│ │ ├── search-input
│ │ │ ├── search-input.spec.tsx
│ │ │ ├── search-input.stories.tsx
│ │ │ └── search-input.tsx
│ │ ├── tab-navigation
│ │ │ ├── tab-navigation.stories.tsx
│ │ │ ├── tab-navigation.tsx
│ │ │ └── types.ts
│ │ ├── top-repos
│ │ │ ├── index.tsx
│ │ │ ├── parseQuery.ts
│ │ │ ├── top-repos-card.tsx
│ │ │ └── types.ts
│ │ ├── user-dropdown
│ │ │ ├── user-dropdown.spec.tsx
│ │ │ ├── user-dropdown.stories.tsx
│ │ │ └── user-dropdown.tsx
│ │ ├── user-profile-card
│ │ │ ├── user-profile-card.spec.tsx
│ │ │ ├── user-profile-card.stories.tsx
│ │ │ └── user-profile-card.tsx
│ │ └── user-repos
│ │ │ ├── filter-sort-functions.ts
│ │ │ ├── getLanguages.ts
│ │ │ ├── types.ts
│ │ │ ├── user-repos.spec.tsx
│ │ │ ├── user-repos.stories.tsx
│ │ │ └── user-repos.tsx
│ ├── context
│ │ ├── issue-pr-store.ts
│ │ ├── issue-tab-header-dropdown.ts
│ │ ├── pull-request-store.ts
│ │ └── repo-filter.ts
│ ├── entry.dev.tsx
│ ├── entry.netlify-edge.tsx
│ ├── entry.preview.tsx
│ ├── entry.ssr.tsx
│ ├── global.css
│ ├── integrations
│ │ └── react
│ │ │ ├── file-code.tsx
│ │ │ └── read-md.tsx
│ ├── mock
│ │ ├── data.ts
│ │ ├── mockedGists.ts
│ │ ├── mockedIssues.ts
│ │ ├── mockedUserRepo.ts
│ │ └── serverSetup.ts
│ ├── root.tsx
│ ├── routes
│ │ ├── [owner]
│ │ │ └── [name]
│ │ │ │ ├── blob
│ │ │ │ └── [branch]
│ │ │ │ │ └── [...path]
│ │ │ │ │ └── index@named.tsx
│ │ │ │ ├── index@named.tsx
│ │ │ │ ├── issues
│ │ │ │ └── index@named.tsx
│ │ │ │ ├── layout-named.tsx
│ │ │ │ ├── parseTopics.ts
│ │ │ │ ├── pulls
│ │ │ │ └── index@named.tsx
│ │ │ │ └── tree
│ │ │ │ └── [branch]
│ │ │ │ └── [...path]
│ │ │ │ └── index@named.tsx
│ │ ├── [user]
│ │ │ ├── index.tsx
│ │ │ ├── types.ts
│ │ │ └── user-page.classNames.ts
│ │ ├── auth
│ │ │ ├── layout!.tsx
│ │ │ ├── redirect
│ │ │ │ └── index.tsx
│ │ │ └── signin
│ │ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ ├── layout.tsx
│ │ ├── orgs
│ │ │ └── [name]
│ │ │ │ ├── index.tsx
│ │ │ │ ├── org-profile-card.tsx
│ │ │ │ └── types.ts
│ │ └── service-worker.ts
│ ├── types
│ │ └── index.ts
│ └── utils
│ │ ├── constants.ts
│ │ ├── dynamicColor.ts
│ │ ├── getMilestoneNumber.ts
│ │ ├── helpers.ts
│ │ ├── index.ts
│ │ ├── isParentWithinScope.ts
│ │ ├── parseRestAPIPullRequests.ts
│ │ ├── queries
│ │ ├── file-query.ts
│ │ ├── gists-query.ts
│ │ ├── issues-query.ts
│ │ ├── org-repos-query.ts
│ │ ├── pull-request.ts
│ │ ├── repo-info.ts
│ │ ├── repo-read-me.ts
│ │ ├── repo-tree.ts
│ │ ├── repos-query.ts
│ │ ├── top-repos-query.ts
│ │ └── user-profile-query.ts
│ │ ├── storybook
│ │ └── storybookMockRouting.ts
│ │ ├── types.ts
│ │ └── useQuery.ts
├── tailwind.config.js
├── tsconfig.json
├── vite.config.ts
└── yarn.lock
├── remix-gql-tailwind
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.js
├── .eslintrc.json
├── .gitignore
├── .husky
│ └── pre-commit
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.js
│ ├── mockRemix
│ │ ├── Link.tsx
│ │ └── index.ts
│ └── preview.js
├── README.md
├── app.arc
├── app
│ ├── components
│ │ ├── Issues
│ │ │ ├── IssueFilters
│ │ │ │ ├── IssueFilters.classNames.ts
│ │ │ │ ├── IssueFilters.tsx
│ │ │ │ ├── Pagination.classNames.ts
│ │ │ │ ├── Pagination.tsx
│ │ │ │ ├── types.ts
│ │ │ │ └── useIssueFilters.tsx
│ │ │ ├── IssuesContainer
│ │ │ │ ├── IssuesContainer.classNames.ts
│ │ │ │ └── IssuesContainer.tsx
│ │ │ └── IssuesEmpty
│ │ │ │ ├── IssuesEmpty.classNames.ts
│ │ │ │ └── IssuesEmpty.tsx
│ │ ├── Navbar
│ │ │ ├── NavBar.tsx
│ │ │ └── Navbar.classNames.ts
│ │ ├── Profiles
│ │ │ ├── OrgProfile
│ │ │ │ ├── OrgProfile.tsx
│ │ │ │ └── OrgProfile.view.tsx
│ │ │ ├── ProfileNav
│ │ │ │ ├── ProfileNav.tsx
│ │ │ │ └── tabList.tsx
│ │ │ ├── ProfilePage
│ │ │ │ ├── ProfilePage.classNames.ts
│ │ │ │ ├── ProfilePage.stories.tsx
│ │ │ │ └── ProfilePage.view.tsx
│ │ │ └── UserProfile
│ │ │ │ ├── OrgList.classNames.ts
│ │ │ │ ├── OrgList.tsx
│ │ │ │ ├── UserProfile.classNames.ts
│ │ │ │ ├── UserProfile.stories.tsx
│ │ │ │ ├── UserProfile.view.tsx
│ │ │ │ └── types.ts
│ │ ├── RepoNavigation
│ │ │ ├── RepoNavigation.classNames.ts
│ │ │ ├── RepoNavigation.stories.tsx
│ │ │ └── RepoNavigation.tsx
│ │ ├── Repositories
│ │ │ ├── FileExplorer
│ │ │ │ ├── FileExplorer.classNames.ts
│ │ │ │ ├── FileExplorer.stories.tsx
│ │ │ │ ├── FileExplorer.view.tsx
│ │ │ │ ├── parseQueryData.ts
│ │ │ │ └── types.ts
│ │ │ ├── FileViewer
│ │ │ │ ├── FileCode.tsx
│ │ │ │ ├── FileText.tsx
│ │ │ │ ├── FileViewer.classNames.ts
│ │ │ │ ├── FileViewer.tsx
│ │ │ │ ├── FileViewer.view.tsx
│ │ │ │ └── mapExtensionToLanguage.ts
│ │ │ ├── RepoAboutWidget
│ │ │ │ ├── Description.tsx
│ │ │ │ ├── HomepageUrl.tsx
│ │ │ │ ├── RepoAboutWidget.classNames.ts
│ │ │ │ ├── RepoAboutWidget.stories.tsx
│ │ │ │ ├── RepoAboutWidget.tsx
│ │ │ │ └── Topics.tsx
│ │ │ ├── RepoActionButtons
│ │ │ │ ├── CountButtonGroup.tsx
│ │ │ │ ├── RepoActionButtons.classNames.ts
│ │ │ │ ├── RepoActionButtons.stories.tsx
│ │ │ │ └── RepoActionButtons.tsx
│ │ │ ├── RepoFilters
│ │ │ │ ├── FilterDropdown.classNames.ts
│ │ │ │ ├── FilterDropdown.tsx
│ │ │ │ ├── RepoFilters.classNames.ts
│ │ │ │ ├── RepoFilters.tsx
│ │ │ │ └── useRepoFilters.tsx
│ │ │ ├── RepoHeader
│ │ │ │ ├── RepoHeader.classNames.ts
│ │ │ │ ├── RepoHeader.stories.tsx
│ │ │ │ ├── RepoHeader.tsx
│ │ │ │ └── tabList.tsx
│ │ │ ├── RepoHeading
│ │ │ │ ├── PrivacyIcon.tsx
│ │ │ │ ├── RepoHeading.classNames.ts
│ │ │ │ ├── RepoHeading.stories.tsx
│ │ │ │ └── RepoHeading.tsx
│ │ │ ├── RepoIssues
│ │ │ │ ├── RepoIssues.classNames.ts
│ │ │ │ ├── RepoIssues.mocks.ts
│ │ │ │ ├── RepoIssues.tsx
│ │ │ │ ├── RepoIssues.view.tsx
│ │ │ │ ├── parseQuery.ts
│ │ │ │ └── types.ts
│ │ │ ├── RepoMeta
│ │ │ │ ├── RepoMeta.classNames.ts
│ │ │ │ └── RepoMeta.tsx
│ │ │ ├── RepoNavigation
│ │ │ │ ├── RepoNavigation.classNames.ts
│ │ │ │ ├── RepoNavigation.stories.tsx
│ │ │ │ └── RepoNavigation.tsx
│ │ │ ├── RepoPage
│ │ │ │ └── parseTopics.ts
│ │ │ ├── RepoPulls
│ │ │ │ ├── RepoPulls.tsx
│ │ │ │ ├── RepoPulls.view.tsx
│ │ │ │ ├── parseQuery.ts
│ │ │ │ └── types.ts
│ │ │ └── RepoReadMe
│ │ │ │ ├── Empty.tsx
│ │ │ │ ├── RepoReadMe.classNames.ts
│ │ │ │ ├── RepoReadMe.stories.tsx
│ │ │ │ ├── RepoReadMe.view.tsx
│ │ │ │ └── parseQuery.ts
│ │ ├── Shared
│ │ │ ├── FilterDropdown
│ │ │ │ ├── FilterDropdown.classNames.ts
│ │ │ │ └── FilterDropdown.tsx
│ │ │ ├── Icons
│ │ │ │ ├── ClosedPullRequestIcon.tsx
│ │ │ │ ├── EyeIcon.tsx
│ │ │ │ ├── GitBranchIcon.tsx
│ │ │ │ ├── GitHubLogo.tsx
│ │ │ │ ├── GitRepoIcon.tsx
│ │ │ │ ├── MergedPullRequestIcon.tsx
│ │ │ │ ├── PullRequestIcon.tsx
│ │ │ │ ├── TOCIcon.tsx
│ │ │ │ ├── TwitterIcon.tsx
│ │ │ │ └── index.ts
│ │ │ ├── Pagination
│ │ │ │ ├── Pagination.classNames.ts
│ │ │ │ └── Pagination.tsx
│ │ │ ├── PrivacyBadge
│ │ │ │ ├── PrivacyBadge.classNames.ts
│ │ │ │ └── PrivacyBadge.tsx
│ │ │ └── TabNavigation
│ │ │ │ ├── TabNavigation.classNames.ts
│ │ │ │ ├── TabNavigation.stories.tsx
│ │ │ │ ├── TabNavigation.tsx
│ │ │ │ └── types.ts
│ │ └── User
│ │ │ ├── UserDropdown
│ │ │ ├── UserDropdown.classNames.ts
│ │ │ └── UserDropdown.view.tsx
│ │ │ ├── UserGists
│ │ │ ├── UserGists.classNames.ts
│ │ │ ├── UserGists.view.tsx
│ │ │ ├── container.classNames.ts
│ │ │ ├── container.tsx
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ │ ├── UserRepos
│ │ │ ├── LoadingRepos.stories.tsx
│ │ │ ├── LoadingRepos.tsx
│ │ │ ├── UserRepos.classNames.ts
│ │ │ ├── UserRepos.mocks.ts
│ │ │ ├── UserRepos.stories.tsx
│ │ │ ├── UserRepos.view.tsx
│ │ │ ├── filterRepos.ts
│ │ │ ├── getLanguages.ts
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ │ │ └── UserTopRepos
│ │ │ ├── UserTopRepos.classNames.ts
│ │ │ ├── UserTopRepos.view.tsx
│ │ │ ├── parseQuery.ts
│ │ │ └── types.ts
│ ├── context
│ │ └── RepoContext.tsx
│ ├── entry.client.tsx
│ ├── entry.server.tsx
│ ├── lib
│ │ ├── graphql-client.tsx
│ │ ├── pathUtils.ts
│ │ └── queries
│ │ │ ├── FileExplorer.ts
│ │ │ ├── FileViewer.ts
│ │ │ ├── OrgProfile.ts
│ │ │ ├── RepoIssues.ts
│ │ │ ├── RepoPage.ts
│ │ │ ├── RepoPulls.ts
│ │ │ ├── RepoReadMe.ts
│ │ │ ├── UserDropdown.ts
│ │ │ ├── UserGists.ts
│ │ │ ├── UserProfile.ts
│ │ │ ├── UserRepos.ts
│ │ │ └── UserTopRepos.ts
│ ├── root.tsx
│ ├── routes
│ │ ├── $user
│ │ │ ├── $repository
│ │ │ │ ├── blob
│ │ │ │ │ └── $branch
│ │ │ │ │ │ ├── $.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── issues.tsx
│ │ │ │ ├── pulls.tsx
│ │ │ │ └── tree
│ │ │ │ │ └── $branch
│ │ │ │ │ └── $.tsx
│ │ │ └── index.tsx
│ │ ├── auth.github.callback.tsx
│ │ ├── auth.github.tsx
│ │ ├── index.tsx
│ │ ├── login.tsx
│ │ └── logout.tsx
│ ├── services
│ │ ├── auth.server.ts
│ │ └── session.server.ts
│ └── styles
│ │ └── README.md
├── cypress.json
├── cypress
│ ├── .eslintrc.js
│ ├── e2e
│ │ └── smoke.ts
│ ├── fixtures
│ │ └── example.json
│ ├── plugins
│ │ └── index.ts
│ ├── support
│ │ ├── commands.ts
│ │ ├── index.ts
│ │ └── test-routes
│ │ │ └── create-user.ts
│ └── tsconfig.json
├── dev.js
├── mocks
│ ├── README.md
│ ├── handlers.js
│ └── index.js
├── netlify.toml
├── package.json
├── postcss.config.js
├── public
│ ├── favicon.ico
│ └── mockServiceWorker.js
├── remix.config.js
├── remix.env.d.ts
├── sam.json
├── sam.yaml
├── server.js
├── server
│ ├── package-lock.json
│ └── package.json
├── styles
│ └── tailwind.css
├── tailwind.config.js
├── test
│ └── setup-test-env.ts
├── tsconfig.json
├── vitest.config.ts
└── yarn.lock
├── solidjs-tailwind
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.js
│ └── preview.js
├── LICENSE
├── README.md
├── index.html
├── msw
│ ├── data.js
│ ├── mockReadMe.js
│ ├── mockRepoInfo.js
│ └── mockRepoTree.js
├── package.json
├── postcss.config.js
├── public
│ ├── _redirects
│ └── mockServiceWorker.js
├── setupVitest.js
├── src
│ ├── App.jsx
│ ├── assets
│ │ └── favicon.ico
│ ├── auth
│ │ ├── AuthStore.js
│ │ └── index.js
│ ├── components
│ │ ├── AuthGuard
│ │ │ ├── AuthGuard.jsx
│ │ │ ├── AuthGuard.spec.jsx
│ │ │ └── index.js
│ │ ├── BranchNavigation
│ │ │ ├── BranchNavigation.jsx
│ │ │ ├── BranchNavigation.module.css
│ │ │ ├── BranchNavigation.stories.jsx
│ │ │ └── index.js
│ │ ├── FileExplorer
│ │ │ ├── FileExplorer.jsx
│ │ │ ├── FileExplorer.module.css
│ │ │ ├── FileExplorer.stories.jsx
│ │ │ ├── data.js
│ │ │ ├── index.js
│ │ │ └── parseTree.js
│ │ ├── FileViewer
│ │ │ ├── FileCode.jsx
│ │ │ ├── FileText.jsx
│ │ │ ├── FileViewer.jsx
│ │ │ ├── FileViewer.module.css
│ │ │ ├── index.js
│ │ │ └── mapExtensionToLanguage.js
│ │ ├── FilterDropDown
│ │ │ ├── FilterDropdown.jsx
│ │ │ └── index.jsx
│ │ ├── Header
│ │ │ ├── GithubLogo.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── Header.module.css
│ │ │ ├── Header.spec.jsx
│ │ │ └── index.js
│ │ ├── Icons
│ │ │ ├── BookOpenIcon.jsx
│ │ │ ├── CheckIcon.jsx
│ │ │ ├── ChevronDownIcon.jsx
│ │ │ ├── ClosedIssueIcon.jsx
│ │ │ ├── ClosedPrIcon.jsx
│ │ │ ├── CodeIcon.jsx
│ │ │ ├── CommentIcon.jsx
│ │ │ ├── DocumentIcon.jsx
│ │ │ ├── EyeIcon.jsx
│ │ │ ├── FolderIcon.jsx
│ │ │ ├── GitBranchIcon.jsx
│ │ │ ├── Icon.spec.jsx
│ │ │ ├── InformationCircleIcon.jsx
│ │ │ ├── IssuesIcon.jsx
│ │ │ ├── LinkIcon.jsx
│ │ │ ├── LocationMarkerIcon.jsx
│ │ │ ├── MergedPrIcon.jsx
│ │ │ ├── OfficeBuildingIcon.jsx
│ │ │ ├── PullRequestIcon.jsx
│ │ │ ├── StarIcon.jsx
│ │ │ ├── TocIcon.jsx
│ │ │ ├── TwitterIcon.jsx
│ │ │ ├── UsersIcon.jsx
│ │ │ ├── caret.jsx
│ │ │ ├── close.jsx
│ │ │ ├── correct.jsx
│ │ │ ├── index.js
│ │ │ ├── repo-book.jsx
│ │ │ └── repo.icon.jsx
│ │ ├── OrgAbout
│ │ │ ├── OrgAbout.jsx
│ │ │ ├── OrgAbout.module.css
│ │ │ ├── OrgAbout.spec.jsx
│ │ │ ├── OrgAbout.stories.jsx
│ │ │ ├── data.js
│ │ │ └── index.js
│ │ ├── PRAndIssueLoaderSkeleton
│ │ │ ├── PRAndIssueLoaderSkeleton.jsx
│ │ │ └── index.jsx
│ │ ├── PRAndIssuesData
│ │ │ ├── PRAndIssuesData.jsx
│ │ │ └── index.jsx
│ │ ├── PRAndIssuesHeader
│ │ │ ├── PRAndIssuesHeader.jsx
│ │ │ ├── index.jsx
│ │ │ └── utils.jsx
│ │ ├── PRAndIssuesListItem
│ │ │ ├── PRAndIssuesListItem.jsx
│ │ │ └── index.jsx
│ │ ├── Pagination
│ │ │ ├── Pagination.jsx
│ │ │ ├── Pagination.module.css
│ │ │ └── index.js
│ │ ├── PrivacyBadge
│ │ │ ├── PrivacyBadge.jsx
│ │ │ ├── PrivacyBadge.spec.jsx
│ │ │ ├── PrivacyBadge.stories.jsx
│ │ │ └── index.js
│ │ ├── ProfileNav
│ │ │ ├── ProfileNav.jsx
│ │ │ ├── ProfileNav.spec.jsx
│ │ │ ├── index.js
│ │ │ └── tab-list.js
│ │ ├── ProfilePage
│ │ │ ├── Profile.module.css
│ │ │ ├── ProfilePage.jsx
│ │ │ ├── ProfilePage.spec.jsx
│ │ │ └── index.js
│ │ ├── Repo
│ │ │ ├── Repo.jsx
│ │ │ └── index.jsx
│ │ ├── RepoAbout
│ │ │ ├── Description.jsx
│ │ │ ├── HomePageUrl.jsx
│ │ │ ├── RepoAbout.jsx
│ │ │ ├── RepoAbout.module.css
│ │ │ ├── RepoAbout.spec.jsx
│ │ │ ├── RepoAbout.stories.jsx
│ │ │ ├── Topics.jsx
│ │ │ ├── data.js
│ │ │ └── index.jsx
│ │ ├── RepoActionButtons
│ │ │ ├── CountButtonGroup.jsx
│ │ │ ├── RepoActionButtons.jsx
│ │ │ ├── RepoActionButtons.module.css
│ │ │ └── index.js
│ │ ├── RepoCard
│ │ │ ├── RepoCard.jsx
│ │ │ ├── RepoCard.module.css
│ │ │ ├── RepoCard.spec.jsx
│ │ │ ├── RepoCard.stories.jsx
│ │ │ ├── data.js
│ │ │ └── index.js
│ │ ├── RepoFilter
│ │ │ ├── FilterText.jsx
│ │ │ ├── RepoFIlter.stories.jsx
│ │ │ ├── RepoFilter.jsx
│ │ │ ├── RepoFilter.module.css
│ │ │ ├── RepoFilter.spec.jsx
│ │ │ ├── RepoFilter.store.js
│ │ │ ├── SearchInput.jsx
│ │ │ ├── data.js
│ │ │ └── index.js
│ │ ├── RepoHeader
│ │ │ ├── RepoHeader.jsx
│ │ │ ├── RepoHeader.module.css
│ │ │ ├── index.js
│ │ │ └── tabList.jsx
│ │ ├── RepoHeading
│ │ │ ├── PrivacyIcon.jsx
│ │ │ ├── RepoHeading.jsx
│ │ │ ├── RepoHeading.module.css
│ │ │ ├── RepoHeading.stories.jsx
│ │ │ └── index.js
│ │ ├── RepoIssues
│ │ │ ├── RepoIssues.jsx
│ │ │ ├── index.jsx
│ │ │ └── utils.jsx
│ │ ├── RepoMeta
│ │ │ ├── RepoMeta.jsx
│ │ │ ├── RepoMeta.module.css
│ │ │ ├── RepoMeta.spec.jsx
│ │ │ └── index.js
│ │ ├── RepoPullRequests
│ │ │ ├── RepoPullRequests.jsx
│ │ │ ├── index.jsx
│ │ │ └── utils.jsx
│ │ ├── RepoReadMe
│ │ │ ├── Empty.jsx
│ │ │ ├── RepoReadMe.jsx
│ │ │ ├── RepoReadMe.module.css
│ │ │ ├── RepoReadMe.stories.jsx
│ │ │ └── index.jsx
│ │ ├── TabNavigation
│ │ │ ├── TabNavigation.jsx
│ │ │ ├── TabNavigation.module.css
│ │ │ └── index.js
│ │ ├── TopRepos
│ │ │ ├── TopRepos.jsx
│ │ │ ├── TopRepos.module.css
│ │ │ ├── TopRepos.spec.jsx
│ │ │ └── index.js
│ │ ├── UserDropdown
│ │ │ ├── UserDropdown.jsx
│ │ │ ├── UserDropdown.module.css
│ │ │ ├── UserDropdown.spec.jsx
│ │ │ └── index.js
│ │ ├── UserGists
│ │ │ ├── Container.jsx
│ │ │ ├── UserGist.spec.jsx
│ │ │ ├── UserGists.jsx
│ │ │ ├── UserGists.module.css
│ │ │ └── index.js
│ │ ├── UserProfile
│ │ │ ├── OrgList.jsx
│ │ │ ├── UserProfile.jsx
│ │ │ ├── UserProfile.module.css
│ │ │ ├── UserProfile.spec.jsx
│ │ │ ├── UserProfile.stories.jsx
│ │ │ ├── data.js
│ │ │ └── index.js
│ │ └── UserRepos
│ │ │ ├── UserRepos.jsx
│ │ │ ├── UserRepos.spec.jsx
│ │ │ ├── UserRepos.stories.jsx
│ │ │ └── index.js
│ ├── contexts
│ │ ├── PrAndIssuesContext.jsx
│ │ └── RepoContext.jsx
│ ├── index.css
│ ├── index.jsx
│ ├── logo.svg
│ ├── pages
│ │ ├── Home.jsx
│ │ ├── Issues.jsx
│ │ ├── OrgProfile.jsx
│ │ ├── Profile.jsx
│ │ ├── PullRequests.jsx
│ │ ├── Redirect.jsx
│ │ ├── RepoBlob.jsx
│ │ ├── RepoDetails.jsx
│ │ ├── RepoTree.jsx
│ │ └── Signin.jsx
│ ├── routes.js
│ ├── services
│ │ ├── api.js
│ │ ├── get-gists.js
│ │ ├── get-issues.js
│ │ ├── get-org-repos.js
│ │ ├── get-profile.js
│ │ ├── get-readme.js
│ │ ├── get-repo-file.js
│ │ ├── get-repo-info.js
│ │ ├── get-repo-pull-requests.js
│ │ ├── get-repo-tree.js
│ │ ├── get-top-repos.js
│ │ ├── queries
│ │ │ ├── all-repos.js
│ │ │ ├── gists.js
│ │ │ ├── issue-info.js
│ │ │ ├── org-repos.js
│ │ │ ├── repo-file.js
│ │ │ ├── repo-info.js
│ │ │ ├── repo-pull-requests.js
│ │ │ ├── repo-readme.js
│ │ │ ├── repo-tree.js
│ │ │ ├── top-repos.js
│ │ │ ├── user-profile.js
│ │ │ └── viewer-profile.js
│ │ ├── user-profile.js
│ │ └── user-repos.js
│ └── utils
│ │ ├── constants.js
│ │ ├── fixtures
│ │ └── mocks.js
│ │ ├── getFriendlyDate.js
│ │ ├── getLanguages.js
│ │ ├── getLanguages.spec.js
│ │ ├── languageFilterFunction.js
│ │ ├── languageFilterFunction.spec.js
│ │ ├── onclickOutside.js
│ │ ├── parseFunctions.js
│ │ ├── parseRestAPIPullRequest.js
│ │ ├── removeLastPathPart.js
│ │ ├── searchFunctionality.js
│ │ ├── searchFunctionality.spec.js
│ │ ├── sortRepoFunction.js
│ │ ├── sortRepoFunction.spec.js
│ │ ├── typeFilterFunction.js
│ │ ├── typeFilterFunction.spec.js
│ │ └── useRepoSortFilter.js
├── tailwind.config.js
└── vite.config.js
├── solidstart-tanstackquery-tailwind-modules
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.cjs
│ ├── preview-head.html
│ └── preview.js
├── README.md
├── msw
│ ├── data.ts
│ ├── mockReadMe.ts
│ ├── mockRepoInfo.ts
│ ├── mockRepoTree.ts
│ └── server.ts
├── netlify.toml
├── package.json
├── postcss.config.cjs
├── public
│ ├── favicon.ico
│ └── mockServiceWorker.js
├── src
│ ├── auth
│ │ ├── AuthStore.ts
│ │ └── index.ts
│ ├── components
│ │ ├── BranchNavigation
│ │ │ ├── BranchNavigation.module.css
│ │ │ ├── BranchNavigation.stories.tsx
│ │ │ ├── BranchNavigation.tsx
│ │ │ └── index.ts
│ │ ├── FileExplorer
│ │ │ ├── FileExplorer.module.css
│ │ │ ├── FileExplorer.stories.tsx
│ │ │ ├── FileExplorer.tsx
│ │ │ ├── index.ts
│ │ │ └── parseTree.ts
│ │ ├── FileViewer
│ │ │ ├── FileCode.css
│ │ │ ├── FileCode.tsx
│ │ │ ├── FileText.tsx
│ │ │ ├── FileViewer.module.css
│ │ │ ├── FileViewer.tsx
│ │ │ ├── index.ts
│ │ │ └── mapExtensionToLanguage.ts
│ │ ├── FilterDropDown
│ │ │ ├── FilterDropdown.tsx
│ │ │ └── index.tsx
│ │ ├── GistPanel
│ │ │ ├── Gists.module.css
│ │ │ ├── Gists.spec.tsx
│ │ │ ├── Gists.stories.tsx
│ │ │ ├── GistsData.tsx
│ │ │ ├── GistsWrapper.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── Icons
│ │ │ ├── BookOpenIcon.tsx
│ │ │ ├── CheckIcon.tsx
│ │ │ ├── ChevronDownIcon.tsx
│ │ │ ├── ClosedIssueIcon.tsx
│ │ │ ├── ClosedPrIcon.tsx
│ │ │ ├── CodeIcon.tsx
│ │ │ ├── CommentIcon.tsx
│ │ │ ├── DocumentIcon.tsx
│ │ │ ├── EyeIcon.tsx
│ │ │ ├── FolderIcon.tsx
│ │ │ ├── GitBranchIcon.tsx
│ │ │ ├── InformationCircleIcon.tsx
│ │ │ ├── IssuesIcon.tsx
│ │ │ ├── LinkIcon.tsx
│ │ │ ├── MergedPrIcon.tsx
│ │ │ ├── PullRequestIcon.tsx
│ │ │ ├── RepoIcon.tsx
│ │ │ ├── StarIcon.tsx
│ │ │ ├── TocIcon.tsx
│ │ │ ├── TwitterIcon.tsx
│ │ │ ├── caret.tsx
│ │ │ ├── close.tsx
│ │ │ ├── correct.tsx
│ │ │ ├── index.ts
│ │ │ ├── repo-book.tsx
│ │ │ └── types.ts
│ │ ├── LoadingPulseDot
│ │ │ ├── LoadingPulseDot.tsx
│ │ │ └── index.ts
│ │ ├── OrgAbout
│ │ │ ├── OrgAbout.module.css
│ │ │ ├── OrgAbout.spec.tsx
│ │ │ ├── OrgAbout.stories.tsx
│ │ │ ├── OrgAbout.tsx
│ │ │ ├── Skeleton.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── PRAndIssueCard
│ │ │ ├── PRAndIssueCard.spec.tsx
│ │ │ ├── PRAndIssueCard.stories.tsx
│ │ │ ├── PRAndIssueCard.tsx
│ │ │ ├── data.ts
│ │ │ └── index.tsx
│ │ ├── PRAndIssuesData
│ │ │ ├── PRAndIssuesData.tsx
│ │ │ └── index.ts
│ │ ├── PRAndIssuesHeader
│ │ │ ├── PRAndIssuesHeader.tsx
│ │ │ ├── index.ts
│ │ │ └── utils.ts
│ │ ├── PRAndIssuesListItem
│ │ │ ├── PRAndIssuesListItem.tsx
│ │ │ └── index.ts
│ │ ├── Pagination
│ │ │ ├── Pagination.module.css
│ │ │ ├── Pagination.tsx
│ │ │ └── index.ts
│ │ ├── PrivacyBadge
│ │ │ ├── PrivacyBadge.spec.tsx
│ │ │ ├── PrivacyBadge.stories.tsx
│ │ │ ├── PrivacyBadge.tsx
│ │ │ └── index.ts
│ │ ├── ProfileNav
│ │ │ ├── ProfileNav.spec.tsx
│ │ │ ├── ProfileNav.tsx
│ │ │ ├── index.ts
│ │ │ └── tab-list.ts
│ │ ├── ProfilePage
│ │ │ ├── ProfilePage.module.css
│ │ │ ├── ProfilePage.tsx
│ │ │ └── index.ts
│ │ ├── RepoAbout
│ │ │ ├── Description.tsx
│ │ │ ├── HomePageUrl.tsx
│ │ │ ├── RepoAbout.module.css
│ │ │ ├── RepoAbout.spec.tsx
│ │ │ ├── RepoAbout.stories.tsx
│ │ │ ├── RepoAbout.tsx
│ │ │ ├── Topics.tsx
│ │ │ ├── data.ts
│ │ │ └── index.tsx
│ │ ├── RepoActionButtons
│ │ │ ├── CountButtonGroup.tsx
│ │ │ ├── RepoActionButtons.module.css
│ │ │ ├── RepoActionButtons.tsx
│ │ │ └── index.ts
│ │ ├── RepoCard
│ │ │ ├── RepoCard.module.css
│ │ │ ├── RepoCard.spec.tsx
│ │ │ ├── RepoCard.stories.tsx
│ │ │ ├── RepoCard.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── RepoFilter
│ │ │ ├── FilterText.tsx
│ │ │ ├── RepoFIlter.stories.tsx
│ │ │ ├── RepoFilter.module.css
│ │ │ ├── RepoFilter.spec.tsx
│ │ │ ├── RepoFilter.store.ts
│ │ │ ├── RepoFilter.tsx
│ │ │ ├── SearchInput.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── RepoHeader
│ │ │ ├── RepoHeader.module.css
│ │ │ ├── RepoHeader.stories.tsx
│ │ │ ├── RepoHeader.tsx
│ │ │ ├── index.ts
│ │ │ └── tabList.tsx
│ │ ├── RepoHeading
│ │ │ ├── PrivacyIcon.tsx
│ │ │ ├── RepoHeading.module.css
│ │ │ ├── RepoHeading.stories.tsx
│ │ │ ├── RepoHeading.tsx
│ │ │ ├── data.ts
│ │ │ └── index.ts
│ │ ├── RepoIssues
│ │ │ ├── RepoIssues.tsx
│ │ │ ├── index.ts
│ │ │ └── utils.tsx
│ │ ├── RepoMeta
│ │ │ ├── RepoMeta.module.css
│ │ │ ├── RepoMeta.spec.tsx
│ │ │ ├── RepoMeta.tsx
│ │ │ └── index.ts
│ │ ├── RepoPullRequests
│ │ │ ├── RepoPullrequests.tsx
│ │ │ ├── index.ts
│ │ │ └── utils.tsx
│ │ ├── RepoReadMe
│ │ │ ├── Empty.tsx
│ │ │ ├── RepoReadMe.module.css
│ │ │ ├── RepoReadMe.stories.tsx
│ │ │ ├── RepoReadMe.tsx
│ │ │ └── index.tsx
│ │ ├── ShowcaseHeader
│ │ │ ├── ShowcaseHeader.module.css
│ │ │ ├── ShowcaseHeader.tsx
│ │ │ ├── github-logo.tsx
│ │ │ └── index.ts
│ │ ├── TabNavigation
│ │ │ ├── TabNavigation.module.css
│ │ │ ├── TabNavigation.tsx
│ │ │ └── index.ts
│ │ ├── TopRepos
│ │ │ ├── TopRepos.module.css
│ │ │ ├── TopRepos.spec.tsx
│ │ │ ├── TopRepos.tsx
│ │ │ └── index.ts
│ │ ├── UserDropdown
│ │ │ ├── UserDropdown.module.css
│ │ │ ├── UserDropdown.spec.tsx
│ │ │ ├── UserDropdown.tsx
│ │ │ └── index.tsx
│ │ ├── UserProfile
│ │ │ ├── OrgList.tsx
│ │ │ ├── UserProfile.module.css
│ │ │ ├── UserProfile.stories.tsx
│ │ │ ├── data.ts
│ │ │ └── index.tsx
│ │ ├── UserRepos
│ │ │ ├── UserRepos.tsx
│ │ │ └── index.ts
│ │ └── layout.tsx
│ ├── entry-client.tsx
│ ├── entry-server.tsx
│ ├── hooks
│ │ └── useGetRepoInfo.ts
│ ├── mock
│ │ └── serverSetup.ts
│ ├── root.css
│ ├── root.tsx
│ ├── routes
│ │ ├── [...404].tsx
│ │ ├── [login].tsx
│ │ ├── [owner]
│ │ │ ├── [name]
│ │ │ │ ├── blob
│ │ │ │ │ └── [branch]
│ │ │ │ │ │ └── [...path]
│ │ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── issues.tsx
│ │ │ │ ├── pulls.tsx
│ │ │ │ └── tree
│ │ │ │ │ └── [branch]
│ │ │ │ │ └── [...path]
│ │ │ │ │ └── index.tsx
│ │ │ └── style.module.css
│ │ ├── index.tsx
│ │ ├── orgs
│ │ │ └── [login].tsx
│ │ ├── redirect.tsx
│ │ └── signin.tsx
│ ├── services
│ │ ├── api.ts
│ │ ├── get-gists.tsx
│ │ ├── get-issues.ts
│ │ ├── get-org-repos.ts
│ │ ├── get-pull-request.ts
│ │ ├── get-repo-file.ts
│ │ ├── get-repo-info.ts
│ │ ├── get-repo-readme.ts
│ │ ├── get-repo-tree.ts
│ │ ├── get-top-repos.ts
│ │ ├── get-user-profile.ts
│ │ ├── get-user-repos.ts
│ │ ├── get-viewer-profile.ts
│ │ └── queries
│ │ │ ├── gists.tsx
│ │ │ ├── issue-info.ts
│ │ │ ├── org-repos.ts
│ │ │ ├── pull-request.ts
│ │ │ ├── repo-file.ts
│ │ │ ├── repo-info.ts
│ │ │ ├── repo-readme.ts
│ │ │ ├── repo-tree.ts
│ │ │ ├── top-repos-query.ts
│ │ │ ├── user-profile.ts
│ │ │ ├── user-repos.ts
│ │ │ └── viewer-profile.ts
│ ├── store.ts
│ ├── test
│ │ └── template.spec.ts
│ ├── types
│ │ ├── gists-type.ts
│ │ ├── issues-type.ts
│ │ ├── label-type.ts
│ │ ├── org-repos.ts
│ │ ├── pull-request-type.ts
│ │ ├── repo-file-type.ts
│ │ ├── repo-info-type.ts
│ │ ├── repo-readme-types.ts
│ │ ├── repo-tree-type.ts
│ │ ├── top-repos-type.ts
│ │ ├── user-profile-type.ts
│ │ └── user-repo-type.ts
│ └── utils
│ │ ├── constants.ts
│ │ ├── dynamicColor.ts
│ │ ├── getLanguages.ts
│ │ ├── languageFilterFunction.ts
│ │ ├── onclickOutside.ts
│ │ ├── parseFunctions.ts
│ │ ├── parseResrAPIPullRequest.ts
│ │ ├── protected-paths.ts
│ │ ├── searchFunction.ts
│ │ ├── sortRepoFunction.ts
│ │ ├── typeFilterFunction.ts
│ │ └── useRepoSortFilter.ts
├── tailwind.config.cjs
├── tsconfig.json
├── vite.config.ts
└── yarn.lock
├── starter-dev-backend
├── .env.example
├── .eslintrc
├── .gitignore
├── .prettierrc
├── README.md
├── codegen.ts
├── index.html
├── netlify.toml
├── package.json
├── src
│ ├── datasources
│ │ └── github-api.ts
│ ├── formatters
│ │ ├── index.ts
│ │ ├── orgFormatter.ts
│ │ ├── ownerFormatter.ts
│ │ └── repoFormatter.ts
│ ├── graphql.ts
│ ├── index.ts
│ ├── lib
│ │ ├── access-token.js
│ │ ├── clear-cookies.js
│ │ ├── constants.ts
│ │ ├── expiration.js
│ │ ├── get-access-token.js
│ │ ├── index.js
│ │ ├── refresh-token.js
│ │ └── signin-url.js
│ ├── schema
│ │ ├── github
│ │ │ ├── github.resolvers.ts
│ │ │ ├── github.typedefs.ts
│ │ │ └── index.ts
│ │ ├── hello
│ │ │ ├── hello.resolvers.ts
│ │ │ ├── hello.typedefs.ts
│ │ │ └── index.ts
│ │ └── index.ts
│ ├── server.js
│ └── types
│ │ └── index.ts
├── tsconfig.json
├── tsconfig.spec.json
├── types
│ └── graphql.ts
└── yarn.lock
├── starter-dev-e2e
├── .gitignore
├── README.md
├── config.example.config.ts
├── cypress
│ ├── configs
│ │ ├── angular-apollo-tailwind.config.ts
│ │ ├── angular-ngrx-scss.config.ts
│ │ ├── cra-rxjs-styled-components.config.ts
│ │ ├── next-react-query-tailwind.config.ts
│ │ ├── remix-gql-tailwind.config.ts
│ │ ├── script-config.json
│ │ ├── vite-apollo-vanilla.config.ts
│ │ └── vue3-ts-quasar.config.ts
│ ├── e2e
│ │ ├── dashboard.cy.ts
│ │ ├── organization.cy.ts
│ │ ├── profile.cy.ts
│ │ └── repo.cy.ts
│ ├── fixtures
│ │ ├── auth
│ │ │ ├── next-auth.session.json
│ │ │ ├── remix-auth.session.json
│ │ │ └── token.json
│ │ ├── org
│ │ │ └── graphql
│ │ │ │ ├── empty
│ │ │ │ └── orgRepos.empty.graphql.json
│ │ │ │ ├── orgProfile.graphql.json
│ │ │ │ ├── orgRepos-orderByName.graphql.json
│ │ │ │ ├── orgRepos-orderByStars.graphql.json
│ │ │ │ └── orgRepos.graphql.json
│ │ ├── profile
│ │ │ └── graphql
│ │ │ │ ├── empty
│ │ │ │ └── userProfile.empty.graphql.json
│ │ │ │ └── userProfile.graphql.json
│ │ ├── repo
│ │ │ ├── graphql
│ │ │ │ ├── empty
│ │ │ │ │ ├── repoIssues.empty.graphql.json
│ │ │ │ │ ├── repoPage.empty.graphql.json
│ │ │ │ │ ├── repoPullRequests.empty.graphql.json
│ │ │ │ │ ├── repoReadMe.empty.graphql.json
│ │ │ │ │ └── repoTree.empty.graphql.json
│ │ │ │ ├── repoFile.graphql.json
│ │ │ │ ├── repoIssues-filterByLabel.graphql.json
│ │ │ │ ├── repoIssues-filterByMilestone.graphql.json
│ │ │ │ ├── repoIssues-page2.graphql.json
│ │ │ │ ├── repoIssues-sortByAsc.graphql.json
│ │ │ │ ├── repoIssues.graphql.json
│ │ │ │ ├── repoPage.graphql.json
│ │ │ │ ├── repoPullRequests-filterByLabel.graphql.json
│ │ │ │ ├── repoPullRequests-page2.graphql.json
│ │ │ │ ├── repoPullRequests-sortByAsc.graphql.json
│ │ │ │ ├── repoPullRequests.graphql.json
│ │ │ │ ├── repoReadMe-folder1.graphql.json
│ │ │ │ ├── repoReadMe.graphql.json
│ │ │ │ ├── repoTree-folder1.graphql.json
│ │ │ │ ├── repoTree-folder2.graphql.json
│ │ │ │ ├── repoTree-folder3.graphql.json
│ │ │ │ └── repoTree.graphql.json
│ │ │ └── rest
│ │ │ │ ├── contents.json
│ │ │ │ ├── issues.json
│ │ │ │ ├── repo.json
│ │ │ │ ├── repoPullRequests.json
│ │ │ │ └── repoPullRequestsClosed.json
│ │ └── user
│ │ │ ├── graphql
│ │ │ ├── currentUser.graphql.json
│ │ │ ├── empty
│ │ │ │ ├── userGist.empty.graphql.json
│ │ │ │ ├── userRepos.empty.graphql.json
│ │ │ │ └── userTopRepos.empty.graphql.json
│ │ │ ├── userGist.graphql.json
│ │ │ ├── userRepos-orderByName.graphql.json
│ │ │ ├── userRepos-orderByStars.graphql.json
│ │ │ ├── userRepos.graphql.json
│ │ │ └── userTopRepos.graphql.json
│ │ │ └── rest
│ │ │ ├── currentUser.json
│ │ │ └── userTopRepos.json
│ ├── support
│ │ ├── commands.ts
│ │ └── e2e.ts
│ └── utils
│ │ ├── graphql-test-utils.ts
│ │ ├── intercept-response.ts
│ │ ├── interceptors.json
│ │ └── view.ts
├── package.json
├── tsconfig.json
└── yarn.lock
├── svelte-kit-scss
├── .editorconfig
├── .env.example
├── .eslintignore
├── .eslintrc.json
├── .gitignore
├── .husky
│ └── pre-commit
├── .prettierignore
├── .prettierrc
├── .storybook
│ ├── main.cjs
│ ├── preview-head.html
│ └── preview.js
├── README.md
├── netlify.toml
├── package-lock.json
├── package.json
├── playwright.config.ts
├── setupTests.ts
├── src
│ ├── additional-svelte-jsx.d.ts
│ ├── app.d.ts
│ ├── app.html
│ ├── hooks.server.ts
│ ├── lib
│ │ ├── components
│ │ │ ├── ErrorPage
│ │ │ │ ├── ErrorFlash.svelte
│ │ │ │ ├── ErrorMain.svelte
│ │ │ │ └── ErrorPage.spec.ts
│ │ │ ├── FileExplorer
│ │ │ │ ├── FileExplorerContainer
│ │ │ │ │ ├── FileExplorerContainer.spec.ts
│ │ │ │ │ └── FileExplorerContainer.svelte
│ │ │ │ ├── FileExplorerNav
│ │ │ │ │ ├── BranchesSelectList.svelte
│ │ │ │ │ └── FileExplorerNav.svelte
│ │ │ │ ├── FileExplorerReadme
│ │ │ │ │ └── FileExplorerReadme.svelte
│ │ │ │ ├── models.ts
│ │ │ │ └── utils.ts
│ │ │ ├── FileViewer
│ │ │ │ ├── FileCode
│ │ │ │ │ ├── FileCode.svelte
│ │ │ │ │ └── FileCodeLine.svelte
│ │ │ │ ├── FileText.svelte
│ │ │ │ ├── FileViewer.spec.ts
│ │ │ │ ├── FileViewer.svelte
│ │ │ │ ├── themes
│ │ │ │ │ ├── dracula.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── night-owl-light.ts
│ │ │ │ ├── types
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── language.ts
│ │ │ │ │ └── model.ts
│ │ │ │ └── utils
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── normalize-tokens.ts
│ │ │ │ │ ├── serialize-styles.ts
│ │ │ │ │ └── themes-to-dict.ts
│ │ │ ├── Gists
│ │ │ │ ├── Gists.spec.ts
│ │ │ │ ├── Gists.stories.ts
│ │ │ │ └── Gists.svelte
│ │ │ ├── IssueSearch
│ │ │ │ ├── IssueSearch.spec.ts
│ │ │ │ ├── IssueSearchControls
│ │ │ │ │ ├── DropdownFilterTextButton.svelte
│ │ │ │ │ ├── IssueLabelFilterItemTemplateCheckbox.svelte
│ │ │ │ │ ├── IssueSearchControls.svelte
│ │ │ │ │ └── IssueStateFilter.svelte
│ │ │ │ ├── IssueSearchList.svelte
│ │ │ │ ├── IssueSearchListItem
│ │ │ │ │ ├── CommentsCount.svelte
│ │ │ │ │ ├── IssueLabel.svelte
│ │ │ │ │ ├── IssueSearchAssignees.svelte
│ │ │ │ │ ├── IssueSearchListItem.svelte
│ │ │ │ │ ├── IssueStateDescription.svelte
│ │ │ │ │ └── IssueStateIcon.svelte
│ │ │ │ └── utils.ts
│ │ │ ├── NavBar
│ │ │ │ ├── NavBar.spec.ts
│ │ │ │ └── NavBar.svelte
│ │ │ ├── NavigationProgress
│ │ │ │ └── NavigationProgress.svelte
│ │ │ ├── Profile
│ │ │ │ ├── OrganizationProfile
│ │ │ │ │ ├── OrganizationDetails
│ │ │ │ │ │ ├── OrganizationDetails.svelte
│ │ │ │ │ │ ├── OrganizationMembers.spec.ts
│ │ │ │ │ │ └── OrganizationMembers.svelte
│ │ │ │ │ ├── OrganizationProfile.spec.ts
│ │ │ │ │ └── OrganizationProfile.svelte
│ │ │ │ ├── UserProfile
│ │ │ │ │ ├── UserProfile.spec.ts
│ │ │ │ │ └── UserProfile.svelte
│ │ │ │ └── common
│ │ │ │ │ ├── ProfileFollowers.svelte
│ │ │ │ │ ├── ProfileOrganizations
│ │ │ │ │ ├── ProfileOrganizations.spec.ts
│ │ │ │ │ └── ProfileOrganizations.svelte
│ │ │ │ │ └── SocialLink.svelte
│ │ │ ├── Repository
│ │ │ │ ├── NamedCounter.svelte
│ │ │ │ ├── RepositoryCounters.spec.ts
│ │ │ │ ├── RepositoryCounters.svelte
│ │ │ │ ├── RepositoryDetails.spec.ts
│ │ │ │ ├── RepositoryDetails.svelte
│ │ │ │ ├── RepositoryHeading.svelte
│ │ │ │ ├── VisibilityLabel.spec.ts
│ │ │ │ └── VisibilityLabel.svelte
│ │ │ ├── RepositoryList
│ │ │ │ ├── AllRepositoriesList
│ │ │ │ │ ├── AllRepositoriesList.spec.ts
│ │ │ │ │ └── AllRepositoriesList.svelte
│ │ │ │ ├── RepositoryCard
│ │ │ │ │ ├── RepositoryCard.spec.ts
│ │ │ │ │ └── RepositoryCard.svelte
│ │ │ │ ├── RepositoryList
│ │ │ │ │ ├── RepositoryList.spec.ts
│ │ │ │ │ └── RepositoryList.svelte
│ │ │ │ ├── RepositoryListFilters
│ │ │ │ │ ├── DropdownButtonOutline.svelte
│ │ │ │ │ ├── RepositoryListControls.svelte
│ │ │ │ │ └── SearchInputDelayed.svelte
│ │ │ │ ├── TopRepositoriesList
│ │ │ │ │ ├── TopRepositoriesList.spec.ts
│ │ │ │ │ └── TopRepositoriesList.svelte
│ │ │ │ ├── mocks.ts
│ │ │ │ └── view-models.ts
│ │ │ ├── auth
│ │ │ │ ├── Auth.svelte
│ │ │ │ └── redirect
│ │ │ │ │ └── Redirect.svelte
│ │ │ └── shared
│ │ │ │ ├── Breadcrumbs
│ │ │ │ ├── Breadcrumbs.spec.ts
│ │ │ │ ├── Breadcrumbs.stories.ts
│ │ │ │ ├── Breadcrumbs.svelte
│ │ │ │ └── models.ts
│ │ │ │ ├── Dropdown
│ │ │ │ ├── DropdownMenu.svelte
│ │ │ │ ├── DropdownMenuSelect
│ │ │ │ │ └── DropdownMenuSelect.svelte
│ │ │ │ └── item-templates
│ │ │ │ │ └── DropdownItemTemplateCheckbox.svelte
│ │ │ │ ├── FilterDropdown
│ │ │ │ ├── FilterDropdown.svelte
│ │ │ │ └── filter-option.ts
│ │ │ │ ├── HtmlSentence
│ │ │ │ ├── HtmlSentence.svelte
│ │ │ │ └── view-models.ts
│ │ │ │ ├── ListBlankSlate
│ │ │ │ └── ListBlankSlate.svelte
│ │ │ │ ├── PageNavigationTabs
│ │ │ │ ├── PageNavigationTab.svelte
│ │ │ │ ├── PageNavigtionTabs.svelte
│ │ │ │ └── models.ts
│ │ │ │ ├── Pagination
│ │ │ │ ├── Pagination.svelte
│ │ │ │ ├── PaginationButton.svelte
│ │ │ │ └── view-models.ts
│ │ │ │ ├── ProgrammingLanguage
│ │ │ │ └── ProgrammingLanguage.svelte
│ │ │ │ ├── actions
│ │ │ │ └── clickOutside.ts
│ │ │ │ ├── buttons
│ │ │ │ └── ButtonText.svelte
│ │ │ │ ├── chips
│ │ │ │ ├── Chips.svelte
│ │ │ │ └── models.ts
│ │ │ │ ├── icons
│ │ │ │ ├── Icon.svelte
│ │ │ │ ├── IconTwitter16.svelte
│ │ │ │ ├── icons.ts
│ │ │ │ └── index.ts
│ │ │ │ ├── layouts
│ │ │ │ ├── BoxLayout.svelte
│ │ │ │ ├── LayoutPageContentRow.svelte
│ │ │ │ ├── LayoutPageHeader.svelte
│ │ │ │ └── LayoutSidebar.svelte
│ │ │ │ ├── links
│ │ │ │ └── link-text.svelte
│ │ │ │ └── models
│ │ │ │ └── navigation-filter-option.ts
│ │ ├── constants
│ │ │ ├── auth.ts
│ │ │ ├── env.ts
│ │ │ ├── github
│ │ │ │ ├── github-api-request-timeout.ts
│ │ │ │ ├── github-folder-content-item-type.ts
│ │ │ │ └── index.ts
│ │ │ ├── headers.ts
│ │ │ ├── issues-search-query-filters.ts
│ │ │ ├── language-colors.ts
│ │ │ ├── matchers.ts
│ │ │ ├── page-ids.ts
│ │ │ ├── repository-search.ts
│ │ │ ├── repository.ts
│ │ │ └── router.ts
│ │ ├── fixtures
│ │ │ ├── gists.ts
│ │ │ └── index.ts
│ │ ├── helpers
│ │ │ ├── branches.spec.ts
│ │ │ ├── branches.ts
│ │ │ ├── common
│ │ │ │ ├── collection-page.spec.ts
│ │ │ │ ├── collection-page.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── simple-user.spec.ts
│ │ │ │ └── simple-user.ts
│ │ │ ├── file.spec.ts
│ │ │ ├── file.ts
│ │ │ ├── formatting.spec.ts
│ │ │ ├── formatting.ts
│ │ │ ├── gists.ts
│ │ │ ├── index.ts
│ │ │ ├── issue-label.spec.ts
│ │ │ ├── issue-label.ts
│ │ │ ├── issue-milestone.spec.ts
│ │ │ ├── issue-milestone.ts
│ │ │ ├── issues-search-query-builder.ts
│ │ │ ├── issues.spec.ts
│ │ │ ├── issues.ts
│ │ │ ├── mocks
│ │ │ │ ├── branches.ts
│ │ │ │ ├── common
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── simple-user.ts
│ │ │ │ ├── file-viewer.ts
│ │ │ │ ├── issues.ts
│ │ │ │ ├── organizations.ts
│ │ │ │ ├── repository-contents.ts
│ │ │ │ ├── repository.ts
│ │ │ │ └── users.ts
│ │ │ ├── organizations.spec.ts
│ │ │ ├── organizations.ts
│ │ │ ├── repository-contents.spec.ts
│ │ │ ├── repository-contents.ts
│ │ │ ├── repository-search.spec.ts
│ │ │ ├── repository-search.ts
│ │ │ ├── repository.spec.ts
│ │ │ ├── repository.ts
│ │ │ ├── router.spec.ts
│ │ │ ├── router.ts
│ │ │ ├── test-utils.ts
│ │ │ ├── topic.spec.ts
│ │ │ ├── topic.ts
│ │ │ ├── users.spec.ts
│ │ │ └── users.ts
│ │ ├── images
│ │ │ ├── github.svg
│ │ │ ├── svelte-logo.svg
│ │ │ ├── svelte-welcome.png
│ │ │ └── svelte-welcome.webp
│ │ ├── interfaces
│ │ │ ├── branches.ts
│ │ │ ├── common
│ │ │ │ ├── collection-page.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── simple-user.ts
│ │ │ ├── data-contract
│ │ │ │ └── github
│ │ │ │ │ ├── branches.ts
│ │ │ │ │ ├── common
│ │ │ │ │ ├── collection-page.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── simple-user.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── issue-label.ts
│ │ │ │ │ ├── issues.ts
│ │ │ │ │ ├── milestones.ts
│ │ │ │ │ ├── organizations.ts
│ │ │ │ │ ├── repository-contents.ts
│ │ │ │ │ ├── repository-search.ts
│ │ │ │ │ ├── repository.ts
│ │ │ │ │ └── users.ts
│ │ │ ├── gists.ts
│ │ │ ├── index.ts
│ │ │ ├── issue-label.ts
│ │ │ ├── issue-milestone.ts
│ │ │ ├── issues.ts
│ │ │ ├── organizations.ts
│ │ │ ├── repository-search.ts
│ │ │ ├── repository.ts
│ │ │ ├── topic.ts
│ │ │ ├── type-utls.ts
│ │ │ └── users.ts
│ │ ├── server
│ │ │ └── helpers
│ │ │ │ ├── index.ts
│ │ │ │ └── repository-contents.ts
│ │ ├── services
│ │ │ ├── abstract-fetch-service.ts
│ │ │ ├── auth-service.ts
│ │ │ ├── branch-service.ts
│ │ │ ├── configure-services.ts
│ │ │ ├── index.ts
│ │ │ ├── issue-label-service.ts
│ │ │ ├── issue-milestone-service.ts
│ │ │ ├── issues-search-service.ts
│ │ │ ├── organization-service.ts
│ │ │ ├── repository-service.ts
│ │ │ ├── search-repository-service.ts
│ │ │ └── user-service.ts
│ │ ├── stores
│ │ │ ├── auth.ts
│ │ │ ├── current-page-id.ts
│ │ │ └── navigation-progress.ts
│ │ └── styles
│ │ │ └── variables.scss
│ ├── params
│ │ └── issue_search_type.ts
│ └── routes
│ │ ├── (authenticated)
│ │ ├── (home)
│ │ │ ├── +page.server.ts
│ │ │ └── +page.svelte
│ │ ├── +error.svelte
│ │ ├── +layout.server.ts
│ │ ├── +layout.svelte
│ │ └── [username]
│ │ │ ├── +page.server.ts
│ │ │ ├── +page.svelte
│ │ │ └── [repo]
│ │ │ ├── (file-view)
│ │ │ ├── [...tree]
│ │ │ │ ├── +page.server.ts
│ │ │ │ └── +page.svelte
│ │ │ └── blob
│ │ │ │ └── [branch]
│ │ │ │ └── [...file]
│ │ │ │ ├── +page.server.ts
│ │ │ │ └── +page.svelte
│ │ │ ├── +layout.server.ts
│ │ │ ├── +layout.svelte
│ │ │ └── [issueSearchType=issue_search_type]
│ │ │ ├── +page.server.ts
│ │ │ └── +page.svelte
│ │ ├── +layout.svelte
│ │ ├── logout
│ │ └── +page.server.ts
│ │ ├── signin
│ │ └── (auth)
│ │ │ ├── +page.svelte
│ │ │ └── redirect
│ │ │ └── +page.svelte
│ │ └── styles.scss
├── static
│ ├── favicon.png
│ ├── robots.txt
│ └── social.png
├── svelte.config.js
├── tests
│ └── test.ts
├── tsconfig.json
├── typings.d.ts
└── vite.config.ts
└── vue3-apollo-quasar
├── .browserslistrc
├── .env.development
├── .env.production
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── .prettierignore
├── .prettierrc
├── .storybook
├── main.js
└── preview.js
├── CONTRIBUTING.md
├── README.md
├── babel.config.js
├── cypress.json
├── jest.config.js
├── package.json
├── public
├── _redirects
├── app-icons
│ ├── arrow-right.svg
│ ├── book.svg
│ ├── branch.svg
│ ├── closed-issue.svg
│ ├── closed-pull-request.svg
│ ├── code.svg
│ ├── comment.svg
│ ├── correct.svg
│ ├── file.svg
│ ├── folder.svg
│ ├── fork.svg
│ ├── issue.svg
│ ├── link.svg
│ ├── merged-pull-request.svg
│ ├── mobile.svg
│ ├── pull-request.svg
│ ├── read-me.svg
│ ├── readme-list-icon.svg
│ ├── repo-overview.svg
│ ├── repo-packages.svg
│ ├── repo-projects.svg
│ ├── repo-stars.svg
│ └── repositories.svg
├── index.html
├── logos
│ ├── gh-logo-dark-bg.svg
│ ├── gh-logo-lg-dark-bg.svg
│ ├── gh-logo-lg-light-bg.svg
│ └── gh-logo-light-bg.svg
├── mockServiceWorker.js
└── vue3-ts-quasar.png
├── src
├── App.css
├── App.vue
├── assets
│ ├── logo.png
│ └── logo.svg
├── components
│ ├── AppInput
│ │ ├── AppInput.vue
│ │ └── index.ts
│ ├── BranchMenu
│ │ ├── BranchMenu.stories.ts
│ │ ├── BranchMenu.vue
│ │ └── index.ts
│ ├── ClearIssuePRFilter
│ │ ├── ClearIssuePRFilter.vue
│ │ └── index.ts
│ ├── EmptyContainer
│ │ ├── EmptyContainer.stories.ts
│ │ ├── EmptyContainer.vue
│ │ └── index.ts
│ ├── FileExplorer
│ │ ├── FileExplorer.stories.ts
│ │ ├── FileExplorer.vue
│ │ ├── FileExplorerNav.stories.ts
│ │ ├── FileExplorerNav.vue
│ │ ├── index.ts
│ │ └── types.ts
│ ├── FileView
│ │ ├── FileCode.vue
│ │ ├── FileText.vue
│ │ ├── FileView.vue
│ │ ├── getLanguage.ts
│ │ └── index.ts
│ ├── Footer
│ │ ├── Footer.stories.ts
│ │ ├── Footer.vue
│ │ └── index.ts
│ ├── GistsPanel
│ │ ├── GistsPanel.stories.ts
│ │ ├── GistsPanel.vue
│ │ ├── data.ts
│ │ ├── index.ts
│ │ └── mockedUserGists.ts
│ ├── IssuePullRequestTab
│ │ ├── IssuePullRequestTab.stories.ts
│ │ ├── IssuePullRequestTab.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── IssueTabView
│ │ ├── IssueTabView.stories.ts
│ │ ├── IssueTabView.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── IssuesPullRequestsCard
│ │ ├── IssuesPullRequestsCard.stories.ts
│ │ ├── IssuesPullRequestsCard.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── Loading
│ │ ├── Loading.stories.ts
│ │ ├── Loading.vue
│ │ └── index.ts
│ ├── Logo
│ │ ├── Logo.stories.ts
│ │ ├── Logo.vue
│ │ └── index.ts
│ ├── MarkdownContainer
│ │ ├── MarkdownContainer.vue
│ │ ├── MarkdownView.vue
│ │ └── index.ts
│ ├── NavHeader
│ │ ├── NavHeader.stories.ts
│ │ ├── NavHeader.vue
│ │ └── index.ts
│ ├── OrganizationPageLayout
│ │ ├── OrganizationPageLayout.stories.ts
│ │ ├── OrganizationPageLayout.vue
│ │ ├── data.ts
│ │ ├── index.ts
│ │ └── mockedOrgProfile.ts
│ ├── PaginationButtons
│ │ ├── PaginationButtons.stories.ts
│ │ ├── PaginationButtons.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── ProfilePageLayout
│ │ ├── ProfilePageLayout.stories.ts
│ │ ├── ProfilePageLayout.vue
│ │ ├── data.ts
│ │ ├── index.ts
│ │ ├── mockProfilePageRepo.ts
│ │ └── query
│ │ │ ├── filter-type.query.ts
│ │ │ ├── index.ts
│ │ │ ├── language.query.ts
│ │ │ ├── search.query.ts
│ │ │ └── sort-by.query.ts
│ ├── PullRequestTabView
│ │ ├── PullRequestTabView.stories.ts
│ │ ├── PullRequestTabView.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── RepoCard
│ │ ├── RepoCard.stories.ts
│ │ ├── RepoCard.vue
│ │ └── index.ts
│ ├── RepoFilters
│ │ └── useRepoFilters.tsx
│ ├── RepoSubHeader
│ │ ├── ListItem.vue
│ │ ├── RepoSubHeader.stories.ts
│ │ ├── RepoSubHeader.vue
│ │ ├── RepoSubHeaderExperiment.vue
│ │ ├── RepoTabHeader.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── SearchDropdowns
│ │ ├── SearchDropdowns.stories.ts
│ │ ├── SearchDropdowns.vue
│ │ └── index.ts
│ ├── SearchFilter
│ │ ├── SearchFilter.stories.ts
│ │ ├── SearchFilter.vue
│ │ ├── data.ts
│ │ └── index.ts
│ ├── SearchInput
│ │ ├── SearchInput.stories.ts
│ │ ├── SearchInput.vue
│ │ └── index.ts
│ ├── TabHeader
│ │ ├── TabHeader.stories.ts
│ │ ├── TabHeader.vue
│ │ └── index.ts
│ ├── TextWithIconAndCount
│ │ ├── TextWithIconAndCount.stories.ts
│ │ ├── TextWithIconAndCount.vue
│ │ └── index.ts
│ ├── UserAvatar
│ │ ├── UserAvatar.stories.ts
│ │ ├── UserAvatar.vue
│ │ └── index.ts
│ ├── UserProfileCard
│ │ ├── UserProfileCard.stories.ts
│ │ ├── UserProfileCard.vue
│ │ ├── data.ts
│ │ ├── index.ts
│ │ └── mockedUserProfile.ts
│ └── index.ts
├── composables
│ ├── auth
│ │ ├── index.ts
│ │ ├── useAuth.ts
│ │ └── useToken.ts
│ ├── github
│ │ ├── index.ts
│ │ ├── queries
│ │ │ ├── current-user.query.ts
│ │ │ ├── index.ts
│ │ │ ├── issues.query.ts
│ │ │ ├── organization-profile.query.ts
│ │ │ ├── organization-repos.query.ts
│ │ │ ├── profile.query.ts
│ │ │ ├── pull-request.query.ts
│ │ │ ├── repo-branches.query.ts
│ │ │ ├── repo-page.query.ts
│ │ │ ├── repo-readme.query.ts
│ │ │ ├── repo-tree.query.ts
│ │ │ ├── user-gists.query.ts
│ │ │ ├── user-repos.query.ts
│ │ │ └── user-top-repos.query.ts
│ │ ├── types
│ │ │ ├── CurrentUser.ts
│ │ │ ├── Gist.ts
│ │ │ ├── Issues.ts
│ │ │ ├── Label.ts
│ │ │ ├── Milestones.ts
│ │ │ ├── OrderBy.ts
│ │ │ ├── OrganizationRepositories.ts
│ │ │ ├── OrgsProfile.ts
│ │ │ ├── Profile.ts
│ │ │ ├── PullRequest.ts
│ │ │ ├── UserTopRepos.ts
│ │ │ ├── index.ts
│ │ │ └── userRepos.ts
│ │ ├── useGist.ts
│ │ ├── useIssue.ts
│ │ ├── useOrgProfile.ts
│ │ ├── useOrganizationRepository.ts
│ │ ├── usePullRequest.ts
│ │ ├── useRepoBranch.ts
│ │ ├── useRepoPage.ts
│ │ ├── useRepoReadMe.ts
│ │ ├── useRepoTree.ts
│ │ ├── useRepository.ts
│ │ ├── useUser.ts
│ │ └── useUserRepo.ts
│ ├── index.ts
│ ├── reducer.ts
│ ├── useApollo.ts
│ ├── useFormatter.ts
│ ├── useNav.ts
│ └── useSearch.ts
├── globals
│ ├── branch.ts
│ ├── filterType.ts
│ ├── filteredLanguage.ts
│ ├── search.ts
│ └── sortBy.ts
├── helpers
│ ├── api.ts
│ ├── countCalc.ts
│ ├── formatByte.ts
│ ├── getTime.ts
│ ├── inArray.ts
│ ├── index.ts
│ ├── matchText.ts
│ ├── modifyFilterTypeText.ts
│ ├── parseFunctions.ts
│ ├── parseIssue.ts
│ ├── parsePullRequest.ts
│ ├── parseRestAPIPullRequests.ts
│ └── useApi.ts
├── init
│ ├── index.ts
│ └── setupGraphQL.ts
├── layouts
│ ├── SiteLayout.vue
│ └── index.ts
├── main.ts
├── quasar-user-options.js
├── router
│ ├── index.ts
│ └── utils.ts
├── shims-vue.d.ts
├── store
│ ├── respoStore.ts
│ └── userStore.ts
├── styles
│ ├── quasar.scss
│ └── quasar.variables.scss
└── views
│ ├── 404.vue
│ ├── Auth
│ ├── Auth.stories.js
│ ├── Auth.vue
│ └── index.ts
│ ├── Home
│ ├── Home.stories.ts
│ ├── Home.vue
│ └── index.ts
│ ├── OrgsProfile
│ ├── OrgsProfile.vue
│ └── index.ts
│ ├── Profile
│ ├── Profile.vue
│ └── index.ts
│ ├── Redirect.vue
│ ├── Repository
│ ├── Code
│ │ ├── Code.vue
│ │ ├── Loader.vue
│ │ └── index.ts
│ ├── Issues
│ │ ├── Issues.vue
│ │ ├── IssuesWrapper.vue
│ │ └── index.ts
│ ├── PullRequests
│ │ ├── PullRequestWrapper.vue
│ │ ├── PullRequests.vue
│ │ └── index.ts
│ ├── RepositoryDetails.vue
│ └── index.ts
│ └── index.ts
├── tests
├── e2e
│ ├── .eslintrc.js
│ ├── plugins
│ │ └── index.js
│ ├── specs
│ │ └── test.js
│ └── support
│ │ ├── commands.js
│ │ └── index.js
└── unit
│ ├── components
│ ├── AppInput.spec.ts
│ ├── BranchMenu.spec.ts
│ ├── GistsPanel.spec.ts
│ ├── IssuePullRequestTab.spec.ts
│ ├── IssueTabView.spec.ts
│ ├── IssuesPullRequestsCard.spec.ts
│ ├── ListItem.spec.ts
│ ├── Logo.spec.ts
│ ├── NavHeader.spec.ts
│ ├── OrganizationPageLayout.spec.ts
│ ├── PaginationButtons.spec.ts
│ ├── ProfilePageLayout.spec.ts
│ ├── PullRequestTabView.spec.ts
│ ├── RepoCard.spec.ts
│ ├── RepoSubHeader.spec.ts
│ ├── RepoTabHeader.spec.ts
│ ├── SearchDropdown.spec.ts
│ ├── SearchFilter.spec.ts
│ ├── SearchInput.spec.ts
│ ├── TabHeader.spec.ts
│ ├── UserAvatar.spec.ts
│ └── UserProfileCard.spec.ts
│ └── pages
│ ├── Auth.spec.ts
│ └── Home.spec.ts
├── tsconfig.json
├── vue.config.js
└── yarn.lock
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: true
2 |
--------------------------------------------------------------------------------
/.github/custom-issue-templates/x22 Clean up tasks.md:
--------------------------------------------------------------------------------
1 | # Clean up tasks
2 |
3 | - [ ] make star buttons work
4 | - [ ] make branch dropdown work
5 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | 16
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.env.example:
--------------------------------------------------------------------------------
1 | GITHUB_GRAPHQL_URL=https://api.github.com/graphql
2 | OAUTH_API_URL=https://api.starter.dev
3 | CLIENT_REDIRECT_URL=http://localhost:4200/redirect
4 | PRODUCTION=false
5 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | projects/node_modules
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | cd angular-apollo-tailwind
5 | yarn lint-staged
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.husky/pre-push:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | cd angular-apollo-tailwind
5 | yarn lint-prepush
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.prettierignore:
--------------------------------------------------------------------------------
1 | dist
2 | coverage
3 | e2e
4 | node_modules
5 | src/app/gql/github.schema.ts
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "all",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "bracketSpacing": true,
7 | "endOfLine": "auto"
8 | }
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["stylelint-config-standard"],
3 | "rules": {}
4 | }
5 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/github-schema-loader.js:
--------------------------------------------------------------------------------
1 | const { schema } = require('@octokit/graphql-schema');
2 | module.exports = schema.json;
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/ng-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3 | "dest": "../../dist/prism",
4 | "lib": {
5 | "entryFile": "src/public-api.ts"
6 | }
7 | }
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "prism",
3 | "version": "0.0.1",
4 | "peerDependencies": {
5 | "@angular/common": "^13.0.0",
6 | "@angular/core": "^13.0.0"
7 | },
8 | "dependencies": {
9 | "tslib": "^2.3.0"
10 | }
11 | }
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './prism/prism.component';
2 | export * from './token/token.component';
3 | export * from './line/line.component';
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/components/prism/prism.component.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/components/token/token.component.html:
--------------------------------------------------------------------------------
1 |
2 | {{
3 | tokens[i].content
4 | }}
5 |
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/themes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './dracula';
2 | export * from './night-owl-light';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './language';
2 | export * from './model';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/lib/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './themes-to-dict';
2 | export * from './normalize-tokens';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/src/public-api.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Public API Surface of prism
3 | */
4 |
5 | export * from './lib/components';
6 | export * from './lib/types';
7 | export * from './lib/prism.module';
8 |
9 | // Themes
10 | export * from './lib/themes';
11 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/prism/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "./tsconfig.lib.json",
4 | "compilerOptions": {
5 | "declarationMap": false
6 | },
7 | "angularCompilerOptions": {
8 | "compilationMode": "partial"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/ng-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3 | "dest": "../../dist/shared",
4 | "lib": {
5 | "entryFile": "src/public-api.ts"
6 | }
7 | }
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/components/container/container.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { ContainerComponent } from './container.component';
3 |
4 | @NgModule({
5 | declarations: [ContainerComponent],
6 | exports: [ContainerComponent],
7 | })
8 | export class ContainerComponentModule {}
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/components/content-loading/index.ts:
--------------------------------------------------------------------------------
1 | export * from './bullet-list-loading/bullet-list-loading.component';
2 | export * from './pulse-dots-loading/pulse-dots-loading.component';
3 | export * from './text-line-loading/text-line-loading.component';
4 | export * from './content-loading.module';
5 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/components/error-block/error-block.component.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/components/error-block/error-block.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'sd-error-block',
5 | templateUrl: './error-block.component.html',
6 | })
7 | export class ErrorBlockComponent {}
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/components/error-block/index.ts:
--------------------------------------------------------------------------------
1 | export * from './error-block.module';
2 | export * from './error-block.component';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/index.ts:
--------------------------------------------------------------------------------
1 | export * from './pipes';
2 | export * from './components';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/pipes/dfns/format-distance.pipe.spec.ts:
--------------------------------------------------------------------------------
1 | import { FormatDistancePipe } from './format-distance.pipe';
2 |
3 | describe('FormatDistancePipe', () => {
4 | it('create an instance', () => {
5 | const pipe = new FormatDistancePipe();
6 | expect(pipe).toBeTruthy();
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/pipes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './dfns/format-distance.pipe';
2 | export * from './number/round-up.pipe';
3 | export * from './markdown/markdown.pipe';
4 | export * from './generate-url-with-protocol/generate-url-with-protocol.pipe';
5 | export * from './pipes.module';
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/pipes/markdown/markdown.pipe.spec.ts:
--------------------------------------------------------------------------------
1 | import { MarkdownPipe } from './markdown.pipe';
2 |
3 | describe('MarkdownPipe', () => {
4 | it('create an instance', () => {
5 | const pipe = new MarkdownPipe();
6 | expect(pipe).toBeTruthy();
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/lib/pipes/number/round-up.pipe.spec.ts:
--------------------------------------------------------------------------------
1 | import { RoundUpPipe } from './round-up.pipe';
2 |
3 | describe('RoundUpPipe', () => {
4 | it('create an instance', () => {
5 | const pipe = new RoundUpPipe();
6 | expect(pipe).toBeTruthy();
7 | });
8 | });
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/src/public-api.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Public API Surface of shared
3 | */
4 |
5 | // Services
6 |
7 | // Components
8 | export * from './lib/components';
9 |
10 | // Modules
11 | export * from './lib/shared.module';
12 |
13 | // Pipes
14 | export * from './lib/pipes';
15 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/projects/shared/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "./tsconfig.lib.json",
4 | "compilerOptions": {
5 | "declarationMap": false
6 | },
7 | "angularCompilerOptions": {
8 | "compilationMode": "partial"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/_redirects:
--------------------------------------------------------------------------------
1 | /* /index.html 200
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/app.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/app.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css'],
7 | })
8 | export class AppComponent {}
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/components/filters/filter.models.ts:
--------------------------------------------------------------------------------
1 | export enum TypeFilter {
2 | ALL = 'all',
3 | FORKED = 'forked',
4 | ARCHIVED = 'archived',
5 | }
6 |
7 | export interface LanguageFilter {
8 | label: string;
9 | value: string;
10 | }
11 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/components/toaster/toast/toast.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/components/toaster/toast/toast.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/components/toaster/toaster.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/components/toaster/toaster.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/components/toaster/toaster.component.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/components/toaster/toaster.model.ts:
--------------------------------------------------------------------------------
1 | export enum ToasterType {
2 | ERROR = 'error',
3 | SUCCESS = 'success',
4 | INFO = 'info',
5 | WARNING = 'warning',
6 | }
7 |
8 | export interface ToastEvent {
9 | title: string;
10 | message: string;
11 | type: ToasterType;
12 | }
13 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/components/file-code/file-code.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/file-viewer/components/file-code/file-code.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/components/file-code/file-code.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/components/file-explorer-about/topics/topics.component.css:
--------------------------------------------------------------------------------
1 | .topic {
2 | @apply inline-block bg-blue-100 text-blue-600 text-xs font-medium py-1 px-2 rounded-xl mr-1.5 hover:text-white hover:bg-blue-600 transition-colors cursor-pointer;
3 | }
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/components/file-explorer-about/topics/topics.component.html:
--------------------------------------------------------------------------------
1 | topics works!
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/file-explorer-list-container/file-explorer-list-container.component.css:
--------------------------------------------------------------------------------
1 | .file-explorer-list-container {
2 | @apply border rounded border-gray-300 text-sm;
3 | }
4 |
5 | .cellBack {
6 | @apply block py-2 px-4 border-b border-gray-200 hover:bg-gray-50 cursor-pointer;
7 | }
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/file-explorer-nav/file-explorer-nav-skeleton/file-explorer-nav-skeleton.component.html:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/file-explorer-nav/file-explorer-nav-skeleton/index.ts:
--------------------------------------------------------------------------------
1 | export * from './file-explorer-nav-skeleton.component';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/file-explorer-nav/index.ts:
--------------------------------------------------------------------------------
1 | export * from './file-explorer-nav.component';
2 | export * from './file-explorer-nav-skeleton';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/file-viewer/repo-read-me/read-me/read-me.component.css:
--------------------------------------------------------------------------------
1 | :host img {
2 | max-width: 100%;
3 | }
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/index.ts:
--------------------------------------------------------------------------------
1 | export * from './github.schema';
2 | export * from './models';
3 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/models/org-profile.ts:
--------------------------------------------------------------------------------
1 | export interface Org {
2 | id: string;
3 | avatarUrl: string;
4 | name: string;
5 | }
6 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/models/pagination.ts:
--------------------------------------------------------------------------------
1 | export interface PaginationEvent {
2 | before?: string | null;
3 | after?: string | null;
4 | }
5 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/models/repo-file.ts:
--------------------------------------------------------------------------------
1 | import { Language } from '@prism';
2 |
3 | export interface FileDetails {
4 | byteSize: string | number;
5 | extension: string;
6 | language: Language;
7 | text?: string | null;
8 | lines: number;
9 | }
10 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/queries/current-user.query.gql:
--------------------------------------------------------------------------------
1 | query CurrentUser {
2 | viewer {
3 | id
4 | avatarUrl
5 | login
6 | name
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/queries/org-profile.query.gql:
--------------------------------------------------------------------------------
1 | query OrgProfile($orgname: String!) {
2 | organization(login: $orgname) {
3 | id
4 | avatarUrl
5 | name
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/gql/queries/repo-read-me.query.gql:
--------------------------------------------------------------------------------
1 | query RepoReadMe($owner: String!, $name: String!, $expression: String!) {
2 | repository(owner: $owner, name: $name) {
3 | id
4 | readme: object(expression: $expression) {
5 | ... on Blob {
6 | text
7 | }
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/home/home.component.css:
--------------------------------------------------------------------------------
1 | .netlify-badge-container {
2 | @apply flex justify-center mt-auto pb-5 pt-6;
3 | }
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/issues/components/issues-empty/issues-empty.component.css:
--------------------------------------------------------------------------------
1 | .issues-empty-container {
2 | @apply w-full py-16 flex flex-col items-center;
3 | }
4 |
5 | .icon {
6 | @apply w-6 h-6 text-gray-600;
7 | }
8 |
9 | .heading {
10 | @apply text-2xl font-semibold text-gray-900 text-center my-4;
11 | }
12 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/issues/components/issues-filters/issues-filters.component.css:
--------------------------------------------------------------------------------
1 | .filters-container {
2 | @apply flex flex-wrap space-x-1 space-y-2 md:space-x-0 md:space-y-0 items-center justify-between p-4 bg-gray-100 border-b;
3 | }
4 |
5 | .typeIcon {
6 | @apply w-5 h-5 inline mr-1.5 mb-0.5;
7 | }
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/components/file-text/file-text.component.css:
--------------------------------------------------------------------------------
1 | .codeBlock {
2 | border-spacing: 5px;
3 | background-color: #ffffff !important;
4 | @apply text-left text-xs py-1 px-8 overflow-auto;
5 | }
6 |
7 | .lineNumber {
8 | @apply table-cell text-right pr-4 select-none text-gray-500;
9 | }
10 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile-repo-list';
2 | export * from './profile-repo-list-item';
3 | export * from './profile-repo-list-item-skeleton';
4 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/components/profile-repo-list-item-skeleton/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile-repo-list-item-skeleton.component';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/components/profile-repo-list-item/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile-repo-list-item.component';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/components/profile-repo-list/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile-repo-list.component';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/org-about/org-about.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/profile/org-about/org-about.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/profile/profile-repos-view/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile-repos-view.component';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/pull-requests/components/pull-requests-filters/pull-requests-filters.component.css:
--------------------------------------------------------------------------------
1 | .filters-container {
2 | @apply flex flex-wrap space-x-1 space-y-2 md:space-x-0 md:space-y-0 items-center justify-between p-4 bg-gray-100 border-b;
3 | }
4 |
5 | .typeIcon {
6 | @apply w-5 h-5 inline mr-1.5 mb-0.5;
7 | }
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/repos/components/repo-list/repo-list.component.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/app/repos/components/repo-list/repo-list.component.css
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/repos/components/user-gists/user-gists.component.css:
--------------------------------------------------------------------------------
1 | .link {
2 | @apply text-sm hover:text-blue-500 hover:underline;
3 | }
4 |
5 | .error {
6 | @apply text-sm text-gray-600 font-medium;
7 | }
8 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/repos/repo-header/repo-header.component.css:
--------------------------------------------------------------------------------
1 | .wrapper {
2 | @apply pt-6 px-12 bg-gray-100 border-b border-gray-300;
3 | }
4 |
5 | .topRow {
6 | @apply flex flex-col space-y-8 lg:space-y-0 lg:flex-row lg:items-center justify-between;
7 | }
8 |
9 | .bottomRow {
10 | @apply mt-6;
11 | }
12 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/repos/repos.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './route-utils';
2 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/app/utils/route-utils.ts:
--------------------------------------------------------------------------------
1 | import { UrlSegment } from '@angular/router';
2 |
3 | export const getPathSegments = (segments: UrlSegment[]): string[] =>
4 | segments.map(({ path }: UrlSegment) => path);
5 |
6 | export const isOrgPath = (path: string) => {
7 | return path === 'orgs';
8 | };
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/assets/.gitkeep
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true,
3 | apiUrl: 'https://api.starter.dev/.netlify/functions/server',
4 | graphApiUrl: 'https://api.github.com/graphql',
5 | redirectUrl: 'https://angular-apollo-tailwind.starter.dev/redirect',
6 | };
7 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-apollo-tailwind/src/favicon.ico
--------------------------------------------------------------------------------
/angular-apollo-tailwind/src/styles.css:
--------------------------------------------------------------------------------
1 | @import 'tailwindcss/base';
2 | @import 'tailwindcss/components';
3 | @import 'tailwindcss/utilities';
4 |
5 | html,
6 | body {
7 | height: 100%;
8 | }
9 |
--------------------------------------------------------------------------------
/angular-apollo-tailwind/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": ["src/**/*.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/.env.example:
--------------------------------------------------------------------------------
1 | GITHUB_URL=https://api.github.com
2 | OAUTH_API_URL=/api
3 | CLIENT_REDIRECT_URL=http://localhost:4200/redirect
4 | PRODUCTION=false
5 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | projects/node_modules
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/.prettierignore:
--------------------------------------------------------------------------------
1 | dist
2 | coverage
3 | e2e
4 | node_modules
5 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "all",
3 | "tabWidth": 2,
4 | "semi": true,
5 | "singleQuote": true,
6 | "bracketSpacing": true,
7 | "endOfLine": "auto"
8 | }
9 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3 | "recommendations": ["angular.ng-template"]
4 | }
5 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/ng-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3 | "dest": "../../dist/prism",
4 | "lib": {
5 | "entryFile": "src/public-api.ts"
6 | }
7 | }
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "prism",
3 | "version": "0.0.1",
4 | "peerDependencies": {
5 | "@angular/common": "16.1.0",
6 | "@angular/core": "16.1.0"
7 | },
8 | "dependencies": {
9 | "tslib": "^2.5.0"
10 | }
11 | }
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './prism/prism.component';
2 | export * from './token/token.component';
3 | export * from './line/line.component';
4 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/components/prism/prism.component.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/components/token/token.component.html:
--------------------------------------------------------------------------------
1 |
2 | {{
3 | tokens[i].content
4 | }}
5 |
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/themes/index.ts:
--------------------------------------------------------------------------------
1 | export * from './dracula';
2 | export * from './night-owl-light';
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './language';
2 | export * from './model';
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/lib/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './themes-to-dict';
2 | export * from './normalize-tokens';
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/src/public-api.ts:
--------------------------------------------------------------------------------
1 | /*
2 | * Public API Surface of prism
3 | */
4 |
5 | export * from './lib/components';
6 | export * from './lib/types';
7 | export * from './lib/prism.module';
8 |
9 | // Themes
10 | export * from './lib/themes';
11 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/projects/prism/tsconfig.lib.prod.json:
--------------------------------------------------------------------------------
1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */
2 | {
3 | "extends": "./tsconfig.lib.json",
4 | "compilerOptions": {
5 | "declarationMap": false
6 | },
7 | "angularCompilerOptions": {
8 | "compilationMode": "partial"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/scripts/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "parserOptions": {
3 | "ecmaVersion": 2022,
4 | "sourceType": "module"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/scripts/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module"
3 | }
4 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/_redirects:
--------------------------------------------------------------------------------
1 | /* /index.html 200
2 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/app.component.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/app.component.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-ngrx-scss/src/app/app.component.scss
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.scss'],
7 | })
8 | export class AppComponent {}
9 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/auth/interfaces/auth.ts:
--------------------------------------------------------------------------------
1 | export interface AuthResponse {
2 | access_token?: string;
3 | }
4 |
5 | export interface SignOutResponse {
6 | message: string;
7 | }
8 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/file-viewer/components/file-code/file-code.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/file-viewer/components/file-code/file-code.component.scss:
--------------------------------------------------------------------------------
1 | @use 'variables';
2 |
3 | :host {
4 | border: 1px solid variables.$gray100;
5 | display: block;
6 | }
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/file-viewer/components/file-text/file-text.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{i + 1}}
4 | {{line}}
5 |
6 |
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/file-viewer/file-explorer-blob/file-explorer-blob.component.scss:
--------------------------------------------------------------------------------
1 | .file-viewer {
2 | overflow: auto;
3 | }
4 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/file-viewer/file-explorer/file-explorer.component.scss:
--------------------------------------------------------------------------------
1 | @use 'functions';
2 |
3 | .container.subpage {
4 | gap: functions.rem(28);
5 | }
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/home/profile/org-profile/org-info/org-info.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-org-info',
5 | templateUrl: './org-info.component.html',
6 | styleUrls: ['./org-info.component.scss'],
7 | })
8 | export class OrganizationInfoComponent {}
9 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/issues/components/issues-list/issues-list.component.html:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/issues/components/issues.component.scss:
--------------------------------------------------------------------------------
1 | @use 'variables';
2 | @use 'functions';
3 |
4 | .issues-container {
5 | border-bottom-left-radius: variables.$padding;
6 | border-bottom-right-radius: variables.$padding;
7 | border: 1px solid variables.$gray200;
8 | margin-bottom: functions.rem(14);
9 | }
10 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/repository/components/repository-details/repository-details.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/repository/components/repository-details/repository-details.component.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-ngrx-scss/src/app/repository/components/repository-details/repository-details.component.scss
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/shared/components/clear-filters-button/clear-filters-button.component.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/shared/components/repo-list/repo-list.component.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/shared/components/repo-list/repo-list.component.scss:
--------------------------------------------------------------------------------
1 | ul {
2 | list-style: none;
3 |
4 | li {
5 | padding: 32px 0;
6 | border-bottom: 1px solid rgba(229, 231, 235, 1);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/shared/styles/functions.scss:
--------------------------------------------------------------------------------
1 | @function rem($pxValue, $sizeBase: 14) {
2 | $remValue: ($pxValue / $sizeBase) + rem;
3 | @return $remValue;
4 | }
5 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/auth/auth.state.ts:
--------------------------------------------------------------------------------
1 | export interface AuthState {
2 | isAuthenticated: boolean;
3 | loading: boolean;
4 | authUser: AuthUserData;
5 | }
6 |
7 | export interface AuthUserData {
8 | avatar: string;
9 | email: string;
10 | username: string;
11 | }
12 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/auth/index.ts:
--------------------------------------------------------------------------------
1 | export * from './auth.actions';
2 | export * from './auth.effects';
3 | export * from './auth.reducer';
4 | export * from './auth.selectors';
5 | export * from './auth.state';
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/index.ts:
--------------------------------------------------------------------------------
1 | export * from './app.reducer';
2 | export * from './app.state';
3 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/profile/index.ts:
--------------------------------------------------------------------------------
1 | export * from './profile.actions';
2 | export * from './profile.effects';
3 | export * from './profile.reducer';
4 | export * from './profile.selectors';
5 | export * from './profile.state';
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/repository/index.ts:
--------------------------------------------------------------------------------
1 | export * from './repository.actions';
2 | export * from './repository.effects';
3 | export * from './repository.reducer';
4 | export * from './repository.selectors';
5 | export * from './repository.state';
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/app/state/user/index.ts:
--------------------------------------------------------------------------------
1 | export * from './user.actions';
2 | export * from './user.effects';
3 | export * from './user.reducer';
4 | export * from './user.selectors';
5 | export * from './user.state';
6 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-ngrx-scss/src/assets/.gitkeep
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true,
3 | apiUrl: 'https://api.starter.dev/.netlify/functions/server',
4 | githubUrl: 'https://api.github.com',
5 | redirectUrl: 'https://angular-ngrx-scss.starter.dev/redirect',
6 | };
7 |
--------------------------------------------------------------------------------
/angular-ngrx-scss/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/angular-ngrx-scss/src/favicon.ico
--------------------------------------------------------------------------------
/angular-ngrx-scss/typings.d.ts:
--------------------------------------------------------------------------------
1 | interface LanguageColors {
2 | [language: string]: string;
3 | }
4 |
5 | declare module 'src/assets/language-colors.json' {
6 | const value: LanguageColors;
7 | export default value;
8 | }
9 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.env.example:
--------------------------------------------------------------------------------
1 | REACT_APP_API_URL=https://api.starter.dev/api
2 | REACT_APP_BASE_URL=http://localhost:3000
3 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx pretty-quick --staged
5 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.husky/pre-push:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | # causes issues related to testing at an individual library level. Perhaps an investigation needed
5 | # cd "$(dirname -- "$0")" && npm run test:ci
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.prettierignore:
--------------------------------------------------------------------------------
1 | /build
2 | /coverage
3 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "singleQuote": true,
4 | "useTabs": true,
5 | "tabWidth": 1
6 | }
7 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/.storybook/preview.js:
--------------------------------------------------------------------------------
1 | import '../src/index.css';
2 |
3 | export const parameters = {
4 | actions: { argTypesRegex: '^on[A-Z].*' },
5 | controls: {
6 | matchers: {
7 | color: /(background|color)$/i,
8 | date: /Date$/,
9 | },
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/public/_redirects:
--------------------------------------------------------------------------------
1 | /* /index.html 200
2 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "start_url": ".",
5 | "display": "standalone",
6 | "theme_color": "#000000",
7 | "background_color": "#ffffff"
8 | }
9 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/App.test.tsx:
--------------------------------------------------------------------------------
1 | import { render, screen } from '@testing-library/react';
2 | import App from './App';
3 |
4 | test('renders learn react link', () => {
5 | render();
6 | const linkElement = screen.getByText(/learn react/i);
7 | expect(linkElement).toBeInTheDocument();
8 | });
9 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/components/Loading/index.ts:
--------------------------------------------------------------------------------
1 | export { default as LoadingBulletList } from './LoadingBulletList';
2 | export { default as LoadingTextLine } from './LoadingTextLine';
3 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/components/pull-request/types.ts:
--------------------------------------------------------------------------------
1 | export type PRTabValues = 'open' | 'close';
2 | export type State = 'merged' | 'closed' | 'open';
3 | export type DropdownTitle = 'Label' | 'Sort' | 'Milestones';
4 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/components/repo-page/RepoPage.error.tsx:
--------------------------------------------------------------------------------
1 | interface RepoPageErrorProps {
2 | error: Error;
3 | }
4 |
5 | function RepoPageError({ error }: RepoPageErrorProps) {
6 | return Error: {error.message}
;
7 | }
8 |
9 | export default RepoPageError;
10 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/constants/auth.constants.ts:
--------------------------------------------------------------------------------
1 | export const AUTH_TOKEN = 'token';
2 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/helpers/buildPrIssueResolution.ts:
--------------------------------------------------------------------------------
1 | export const buildPrIssueResolution = (state: string) => {
2 | if (state === 'merged') {
3 | return `was merged on`;
4 | }
5 |
6 | if (state === 'closed') {
7 | return `was closed on`;
8 | }
9 | return `on`;
10 | };
11 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/helpers/getPullsState.ts:
--------------------------------------------------------------------------------
1 | import { IssuePRData } from '@/types/types';
2 |
3 | export const getPullsState = (pr: IssuePRData) => {
4 | if (pr.state === 'open') {
5 | return 'open';
6 | }
7 |
8 | if (pr.state === 'closed' && pr.merged_at) {
9 | return 'merged';
10 | }
11 | return 'closed';
12 | };
13 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/helpers/objectToQueryString.ts:
--------------------------------------------------------------------------------
1 | export default function convertObjectToQueryString(
2 | object: Record
3 | ) {
4 | return new URLSearchParams(object).toString();
5 | }
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/helpers/parseSortParams.ts:
--------------------------------------------------------------------------------
1 | export const parseSortParams = ({
2 | options,
3 | value,
4 | position,
5 | }: {
6 | options: Record;
7 | position: number;
8 | value?: string;
9 | }) =>
10 | Object.keys(options)
11 | .find((key) => options[key] === value)
12 | ?.split('^')[position];
13 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/helpers/replaceSpaceWithPlus.ts:
--------------------------------------------------------------------------------
1 | export default function replaceSpaceWithPlus(str: string) {
2 | return str.split(' ').join('+');
3 | }
4 |
5 | export const replaceEncodedSpaceWithPlus = (str: string) => {
6 | return str.split(encodeURIComponent(' ')).join('+');
7 | };
8 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/interfaces/auth.interfaces.ts:
--------------------------------------------------------------------------------
1 | export interface AuthSuccessResponse {
2 | access_token: string;
3 | scope: string;
4 | token_type: string;
5 | }
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/interfaces/gists.interfaces.ts:
--------------------------------------------------------------------------------
1 | export interface Gist {
2 | url: string;
3 | id: string;
4 | html_url: string;
5 | files: {
6 | [key: string]: {
7 | filename: string;
8 | };
9 | };
10 | }
11 |
12 | export interface GistWithFilename extends Gist {
13 | filename: string;
14 | }
15 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/routes/Index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Outlet } from 'react-router-dom';
3 | import Header from '../components/header/Header';
4 |
5 | const Index = () => {
6 | return (
7 | <>
8 |
9 |
10 | >
11 | );
12 | };
13 |
14 | export default Index;
15 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/routes/redirect.tsx:
--------------------------------------------------------------------------------
1 | import { useSetToken } from '../hooks/auth/use-set-token';
2 |
3 | export default function Redirect() {
4 | useSetToken();
5 |
6 | return Redirecting...
;
7 | }
8 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/routes/repo/repository-issues.tsx:
--------------------------------------------------------------------------------
1 | import IssueCtrl from '../../components/repo-issues/Issues/Issues';
2 |
3 | export default function RepoIssues() {
4 | return ;
5 | }
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/routes/repo/repository-pull-request.tsx:
--------------------------------------------------------------------------------
1 | import PullRequestCtrl from '../../components/pull-request/pull-request/PullRequest.data';
2 |
3 | export default function RepoPullRequest() {
4 | return ;
5 | }
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/src/setupTests.ts:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/cra-rxjs-styled-components/tsconfig.paths.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": { "@/*": ["./src/*"] }
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/expo-zustand-styled-components/.env.example:
--------------------------------------------------------------------------------
1 | GITHUB_URL=https://api.github.com
2 | SERVER_BASE_URL=http://localhost:9999
3 | WEB_REDIRECT_URI=http://localhost:19006
4 | MOBILE_REDIRECT_URI=exp://192.168.1.149:19000
5 | GITHUB_CLIENT_ID=************
6 | GITHUB_CLIENT_SECRET=************
--------------------------------------------------------------------------------
/expo-zustand-styled-components/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .vscode/
3 | *.local
4 | coverage/
--------------------------------------------------------------------------------
/expo-zustand-styled-components/.prettierignore:
--------------------------------------------------------------------------------
1 | # Ignore artifacts:
2 | dist
--------------------------------------------------------------------------------
/expo-zustand-styled-components/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 100,
3 | "tabWidth": 2,
4 | "singleQuote": true,
5 | "bracketSameLine": true,
6 | "trailingComma": "es5"
7 | }
8 |
--------------------------------------------------------------------------------
/expo-zustand-styled-components/__mocks__/@react-native-async-storage/async-storage.ts:
--------------------------------------------------------------------------------
1 | export { default } from '@react-native-async-storage/async-storage/jest/async-storage-mock';
2 |
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/about-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/about-icon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/adaptive-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/adaptive-icon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/arrow-down-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/arrow-down-icon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/favicon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/fonts/courier.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/fonts/courier.ttf
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/icon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/reload-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/reload-icon.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/splash.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/assets/starter-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/thisdot/starter.dev-github-showcases/45cd826616d8443621f1df0d1b8ceda9e7ef696e/expo-zustand-styled-components/assets/starter-logo.png
--------------------------------------------------------------------------------
/expo-zustand-styled-components/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | functions = "functions"
3 |
4 | [dev]
5 | publish = "web-build"
6 |
7 | [[redirects]]
8 | from="/*"
9 | to="/index.html"
10 | status=200
11 |
--------------------------------------------------------------------------------
/expo-zustand-styled-components/setup-tests.ts:
--------------------------------------------------------------------------------
1 | import '@testing-library/jest-native/extend-expect';
--------------------------------------------------------------------------------
/expo-zustand-styled-components/src/components/BranchNavigation/index.ts:
--------------------------------------------------------------------------------
1 | export { default } from './BranchNavigation';
2 |
--------------------------------------------------------------------------------
/expo-zustand-styled-components/src/components/Button/Button.test.tsx:
--------------------------------------------------------------------------------
1 | import { render, screen } from '@testing-library/react-native';
2 | import Button from '.';
3 |
4 | test('The Button component is rendered', () => {
5 | render(