├── .eslintignore
├── semantic-ui
├── site
│ ├── modules
│ │ ├── embed.variables
│ │ ├── dimmer.overrides
│ │ ├── embed.overrides
│ │ ├── modal.overrides
│ │ ├── modal.variables
│ │ ├── nag.overrides
│ │ ├── popup.overrides
│ │ ├── rating.overrides
│ │ ├── rating.variables
│ │ ├── search.overrides
│ │ ├── search.variables
│ │ ├── shape.overrides
│ │ ├── sticky.overrides
│ │ ├── sticky.variables
│ │ ├── tab.overrides
│ │ ├── accordion.overrides
│ │ ├── chatroom.overrides
│ │ ├── checkbox.overrides
│ │ ├── dimmer.variables
│ │ ├── dropdown.overrides
│ │ ├── nag.variables
│ │ ├── popup.variables
│ │ ├── progress.overrides
│ │ ├── shape.variables
│ │ ├── sidebar.overrides
│ │ ├── sidebar.variables
│ │ ├── tab.variables
│ │ ├── transition.overrides
│ │ ├── accordion.variables
│ │ ├── chatroom.variables
│ │ ├── checkbox.variables
│ │ ├── dropdown.variables
│ │ ├── progress.variables
│ │ └── transition.variables
│ ├── elements
│ │ ├── flag.variables
│ │ ├── flag.overrides
│ │ ├── icon.overrides
│ │ ├── image.overrides
│ │ ├── input.overrides
│ │ ├── label.overrides
│ │ ├── rail.overrides
│ │ ├── step.overrides
│ │ ├── button.overrides
│ │ ├── button.variables
│ │ ├── container.overrides
│ │ ├── divider.overrides
│ │ ├── header.overrides
│ │ ├── header.variables
│ │ ├── icon.variables
│ │ ├── image.variables
│ │ ├── input.variables
│ │ ├── label.variables
│ │ ├── list.overrides
│ │ ├── list.variables
│ │ ├── loader.overrides
│ │ ├── loader.variables
│ │ ├── rail.variables
│ │ ├── reveal.overrides
│ │ ├── reveal.variables
│ │ ├── segment.overrides
│ │ ├── step.variables
│ │ ├── container.variables
│ │ ├── divider.variables
│ │ └── segment.variables
│ ├── collections
│ │ ├── menu.overrides
│ │ ├── form.overrides
│ │ ├── grid.overrides
│ │ ├── message.overrides
│ │ ├── table.overrides
│ │ ├── breadcrumb.overrides
│ │ ├── breadcrumb.variables
│ │ ├── form.variables
│ │ ├── grid.variables
│ │ ├── menu.variables
│ │ ├── message.variables
│ │ └── table.variables
│ ├── globals
│ │ ├── reset.overrides
│ │ ├── site.overrides
│ │ ├── reset.variables
│ │ └── site.variables
│ └── views
│ │ ├── ad.overrides
│ │ ├── ad.variables
│ │ ├── card.overrides
│ │ ├── card.variables
│ │ ├── feed.overrides
│ │ ├── feed.variables
│ │ ├── item.overrides
│ │ ├── item.variables
│ │ ├── comment.overrides
│ │ ├── comment.variables
│ │ ├── statistic.overrides
│ │ └── statistic.variables
└── theme.config
├── .prettierignore
├── .github
└── FUNDING.yml
├── public
└── images
│ ├── logo.png
│ └── favicon
│ ├── favicon.ico
│ ├── apple-icon.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── favicon-96x96.png
│ ├── ms-icon-70x70.png
│ ├── ms-icon-144x144.png
│ ├── ms-icon-150x150.png
│ ├── ms-icon-310x310.png
│ ├── android-icon-36x36.png
│ ├── android-icon-48x48.png
│ ├── android-icon-72x72.png
│ ├── android-icon-96x96.png
│ ├── apple-icon-114x114.png
│ ├── apple-icon-120x120.png
│ ├── apple-icon-144x144.png
│ ├── apple-icon-152x152.png
│ ├── apple-icon-180x180.png
│ ├── apple-icon-57x57.png
│ ├── apple-icon-60x60.png
│ ├── apple-icon-72x72.png
│ ├── apple-icon-76x76.png
│ ├── android-icon-144x144.png
│ ├── android-icon-192x192.png
│ ├── apple-icon-precomposed.png
│ ├── browserconfig.xml
│ └── manifest.json
├── pages
├── index.jsx
├── private.jsx
├── api
│ ├── hello.jsx
│ ├── private
│ │ └── hello.jsx
│ └── auth
│ │ └── [...nextauth].jsx
├── coming-soon.jsx
└── _app.jsx
├── .vscode
├── extensions.json
└── settings.json
├── next-env.d.ts
├── .babelrc
├── tsconfig.json
├── styles.css
├── middleware.js
├── amplify.yml
├── components
├── application
│ ├── session
│ │ ├── useSignOut.jsx
│ │ ├── SessionDropdown.jsx
│ │ └── SessionMenuItem.jsx
│ ├── sidebar
│ │ ├── LinkMenuItem.jsx
│ │ ├── ScrollMenuItem.jsx
│ │ ├── SidebarButton.jsx
│ │ ├── PageMenuItem.jsx
│ │ ├── SidebarLinks.jsx
│ │ └── SidebarItems.jsx
│ ├── layout
│ │ ├── PageFooter.jsx
│ │ └── PageHeader.jsx
│ └── util
│ │ ├── RenderIf.jsx
│ │ └── ScrollTarget.jsx
├── page
│ ├── HomePage.jsx
│ └── PrivatePage.jsx
└── content
│ ├── ApiTest.jsx
│ └── ApiQuery.jsx
├── .gitignore
├── test
├── sample.test.mjs
└── entity.test.jsx
├── .env.local.template
├── env
├── .env.dev.local.template
├── .env.prod.local.template
├── .env.test.local.template
├── .env.prod
├── .env.dev
└── .env.test
├── .env
├── state
├── store.mjs
├── pageSlice.mjs
└── entitySlice.mjs
├── next.config.mjs
├── README.md
├── .eslintrc.json
└── package.json
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/embed.variables:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .next/
3 | build/
4 | public/
5 | *.code-workspace
6 | *.template
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [karmaniverous]
4 |
--------------------------------------------------------------------------------
/public/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/logo.png
--------------------------------------------------------------------------------
/semantic-ui/site/elements/flag.variables:
--------------------------------------------------------------------------------
1 | /*-------------------
2 | Flag Variables
3 | --------------------*/
4 |
--------------------------------------------------------------------------------
/public/images/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/favicon.ico
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon.png
--------------------------------------------------------------------------------
/public/images/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/public/images/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/public/images/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/public/images/favicon/ms-icon-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/ms-icon-70x70.png
--------------------------------------------------------------------------------
/semantic-ui/site/collections/menu.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
--------------------------------------------------------------------------------
/semantic-ui/site/elements/flag.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/icon.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/image.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/input.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/label.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/rail.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/step.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/globals/reset.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/globals/site.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/dimmer.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/embed.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/modal.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/modal.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/nag.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/popup.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/rating.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/rating.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/search.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/search.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/shape.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/sticky.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/sticky.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/tab.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/ad.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/ad.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/card.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/card.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/feed.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/feed.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/item.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/item.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/public/images/favicon/ms-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/ms-icon-144x144.png
--------------------------------------------------------------------------------
/public/images/favicon/ms-icon-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/ms-icon-150x150.png
--------------------------------------------------------------------------------
/public/images/favicon/ms-icon-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/ms-icon-310x310.png
--------------------------------------------------------------------------------
/semantic-ui/site/collections/form.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/grid.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/message.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/table.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/button.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/button.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/container.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/divider.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/header.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/header.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/icon.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/image.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/input.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/label.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/list.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/list.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/loader.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/loader.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/rail.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/reveal.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/reveal.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/segment.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/step.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/globals/reset.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Global Variables
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/globals/site.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Global Variables
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/accordion.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/chatroom.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/checkbox.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/dimmer.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/dropdown.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/nag.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/popup.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/progress.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/shape.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/sidebar.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/sidebar.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/tab.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/transition.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/comment.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/comment.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/statistic.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/views/statistic.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-36x36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-36x36.png
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-48x48.png
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-72x72.png
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-96x96.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-114x114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-114x114.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-120x120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-120x120.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-144x144.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-152x152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-152x152.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-180x180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-180x180.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-57x57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-57x57.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-60x60.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-72x72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-72x72.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-76x76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-76x76.png
--------------------------------------------------------------------------------
/semantic-ui/site/collections/breadcrumb.overrides:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/breadcrumb.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | Site Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/form.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/grid.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/menu.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/message.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/collections/table.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/container.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/divider.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/elements/segment.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/accordion.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/chatroom.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/checkbox.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/dropdown.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/progress.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/semantic-ui/site/modules/transition.variables:
--------------------------------------------------------------------------------
1 | /*******************************
2 | User Variable Overrides
3 | *******************************/
4 |
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-144x144.png
--------------------------------------------------------------------------------
/public/images/favicon/android-icon-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/android-icon-192x192.png
--------------------------------------------------------------------------------
/public/images/favicon/apple-icon-precomposed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/karmaniverous/nextjs-template/HEAD/public/images/favicon/apple-icon-precomposed.png
--------------------------------------------------------------------------------
/pages/index.jsx:
--------------------------------------------------------------------------------
1 | // component imports
2 | import HomePage from '../components/page/HomePage';
3 |
4 | const HomeRoute = () => {
5 | return ;
6 | };
7 |
8 | export default HomeRoute;
9 |
--------------------------------------------------------------------------------
/pages/private.jsx:
--------------------------------------------------------------------------------
1 | // component imports
2 | import PrivatePage from '../components/page/PrivatePage';
3 |
4 | const PrivateRoute = () => {
5 | return ;
6 | };
7 |
8 | export default PrivateRoute;
9 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "dbaeumer.vscode-eslint",
4 | "ms-vscode.vscode-typescript-next",
5 | "hbenl.vscode-mocha-test-adapter",
6 | "esbenp.prettier-vscode"
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/pages/api/hello.jsx:
--------------------------------------------------------------------------------
1 | import { Logger } from '@karmaniverous/edge-logger';
2 | const logger = new Logger({ maxLevel: process.env.LOG_LEVEL });
3 |
4 | export default async (req, res) => {
5 | logger.debug('*** API hello ***', { req });
6 |
7 | res.status(200).json({ message: 'Hello, world!' });
8 | };
9 |
--------------------------------------------------------------------------------
/public/images/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-env",
4 | [
5 | "@babel/preset-react",
6 | {
7 | "runtime": "automatic"
8 | }
9 | ]
10 | ],
11 | "plugins": [
12 | "lodash",
13 | [
14 | "module-extension",
15 | {
16 | "mjs": ""
17 | }
18 | ],
19 | "@babel/plugin-syntax-import-assertions"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@tsconfig/recommended/tsconfig.json",
3 | "compilerOptions": {
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "noEmit": true,
7 | "incremental": true,
8 | "resolveJsonModule": true,
9 | "isolatedModules": true,
10 | "jsx": "preserve",
11 | "moduleResolution": "node"
12 | },
13 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
14 | "exclude": ["node_modules"]
15 | }
16 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "git.autofetch": true,
3 | "diffEditor.ignoreTrimWhitespace": false,
4 | "javascript.updateImportsOnFileMove.enabled": "always",
5 | "git.enableSmartCommit": true,
6 | "editor.formatOnSave": true,
7 | "editor.tabSize": 2,
8 | "editor.formatOnPaste": true,
9 | "editor.defaultFormatter": "esbenp.prettier-vscode",
10 | "javascript.preferences.importModuleSpecifierEnding": "minimal",
11 | "[markdown]": {
12 | "editor.wordWrap": "bounded"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/styles.css:
--------------------------------------------------------------------------------
1 | /* Burger button container. */
2 | @media only screen and (max-width: 767px) {
3 | .burger-container {
4 | text-align: right;
5 | }
6 | }
7 |
8 | @media only screen and (min-width: 768px) and (max-width: 991px) {
9 | .burger-container {
10 | flex-direction: column;
11 | vertical-align: middle;
12 | align-self: center !important;
13 | }
14 | }
15 |
16 | /* Fix sticky sidebar menu */
17 | .sidebar-menu {
18 | position: sticky;
19 | position: -webkit-sticky;
20 | top: 20px;
21 | }
22 |
23 | .pushable,
24 | .pusher {
25 | overflow: unset !important;
26 | }
27 |
--------------------------------------------------------------------------------
/middleware.js:
--------------------------------------------------------------------------------
1 | import { withAuth } from 'next-auth/middleware';
2 |
3 | import { Logger } from '@karmaniverous/edge-logger';
4 | const logger = new Logger({ maxLevel: process.env.LOG_LEVEL });
5 |
6 | export default withAuth(
7 | async (req, res) => {
8 | logger.debug('*** middleware withAuth ***', { req, res });
9 | },
10 | {
11 | callbacks: {
12 | authorized: (input) => {
13 | logger.debug('*** middleware authorized ***', { ...input });
14 | return true;
15 | },
16 | },
17 | }
18 | );
19 |
20 | export const config = {
21 | matcher: ['/private'],
22 | };
23 |
--------------------------------------------------------------------------------
/amplify.yml:
--------------------------------------------------------------------------------
1 | # prettier-ignore
2 | version: 1
3 | frontend:
4 | phases:
5 | preBuild:
6 | commands:
7 | - npm ci
8 | - echo -e "\n" >> .env
9 | - cat env/.env.$ENV >> .env
10 | - echo -e "\nENV=$ENV" >> .env
11 | - echo -e "\nNEXTAUTH_COGNITO_CLIENT_SECRET=$NEXTAUTH_COGNITO_CLIENT_SECRET" >> .env
12 | - echo -e "\nNEXTAUTH_SECRET=$NEXTAUTH_SECRET" >> .env
13 | build:
14 | commands:
15 | - npm run build
16 | artifacts:
17 | baseDirectory: .next
18 | files:
19 | - '**/*'
20 | cache:
21 | paths:
22 | - node_modules/**/*
23 |
--------------------------------------------------------------------------------
/components/application/session/useSignOut.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import { useRouter } from 'next/router';
3 | import { signOut as nextAuthSignOut } from 'next-auth/react';
4 | import { useCallback } from 'react';
5 | import { useSelector } from 'react-redux';
6 |
7 | const useSignOut = () => {
8 | // Get page state.
9 | const logoutUrl = useSelector((state) => state.page.logoutUrl);
10 |
11 | // Get router.
12 | const router = useRouter();
13 |
14 | const signOut = useCallback(() => {
15 | nextAuthSignOut({ redirect: false });
16 | router.push(logoutUrl);
17 | }, []);
18 |
19 | return { signOut };
20 | };
21 |
22 | export default useSignOut;
23 |
--------------------------------------------------------------------------------
/pages/api/private/hello.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import { getServerSession } from 'next-auth/next';
3 | import { authOptions } from '../auth/[...nextauth]';
4 |
5 | import { Logger } from '@karmaniverous/edge-logger';
6 | const logger = new Logger({ maxLevel: process.env.LOG_LEVEL });
7 |
8 | export default async (req, res) => {
9 | logger.debug('*** API private/hello ***', { req });
10 |
11 | const session = await getServerSession(req, res, authOptions);
12 | logger.debug('*** API private/hello session ***', { session });
13 |
14 | if (!session) {
15 | return res.status(401).json({ message: 'Unauthorized.' });
16 | }
17 |
18 | res.status(200).json({ message: `Hello ${session.user.email}!` });
19 | };
20 |
--------------------------------------------------------------------------------
/components/application/sidebar/LinkMenuItem.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import PropTypes from 'prop-types';
3 | import { Icon, Menu } from 'semantic-ui-react';
4 |
5 | const LinkMenuItem = ({ children, icon, renderIf, target, ...props }) => {
6 | if (!renderIf) return null;
7 |
8 | return (
9 |
14 | {icon ? : null}
15 |
16 | {children}
17 |
18 | );
19 | };
20 |
21 | LinkMenuItem.propTypes = {
22 | children: PropTypes.any,
23 | icon: PropTypes.string,
24 | renderIf: PropTypes.any,
25 | target: PropTypes.string,
26 | };
27 |
28 | export default LinkMenuItem;
29 |
--------------------------------------------------------------------------------
/components/application/layout/PageFooter.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import { Menu, Segment } from 'semantic-ui-react';
3 |
4 | // component imports
5 | import SidebarLinks from '../sidebar/SidebarLinks';
6 |
7 | const PageFooter = () => {
8 | return (
9 |
10 |
19 |
20 | );
21 | };
22 |
23 | export default PageFooter;
24 |
--------------------------------------------------------------------------------
/components/application/sidebar/ScrollMenuItem.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import PropTypes from 'prop-types';
3 | import { useCallback } from 'react';
4 | import { scroller } from 'react-scroll';
5 | import { Menu } from 'semantic-ui-react';
6 |
7 | const ScrollMenuItem = ({ children, name, ...props }) => {
8 | // Create scrolling callback.
9 | const doScroll = useCallback(
10 | (e, { name }) => scroller.scrollTo(name, { smooth: true }),
11 | []
12 | );
13 |
14 | return (
15 |
16 | {children}
17 |
18 | );
19 | };
20 |
21 | ScrollMenuItem.propTypes = {
22 | children: PropTypes.any,
23 | name: PropTypes.string.isRequired,
24 | };
25 |
26 | export default ScrollMenuItem;
27 |
--------------------------------------------------------------------------------
/components/application/sidebar/SidebarButton.jsx:
--------------------------------------------------------------------------------
1 | // npm imports
2 | import { Button } from 'semantic-ui-react';
3 | import { useSelector, useDispatch } from 'react-redux';
4 |
5 | // redux imports
6 | import { setSidebarVisible } from '../../../state/pageSlice.mjs';
7 |
8 | const SidebarButton = () => {
9 | // Get page state.
10 | const sidebarVisible = useSelector((state) => state.page.sidebarVisible);
11 |
12 | // Create dispatcher.
13 | const dispatch = useDispatch();
14 |
15 | return (
16 |