├── public ├── favicon.ico ├── images │ ├── ballot-meta.png │ └── logo │ │ └── ballot.png └── vercel.svg ├── next.config.js ├── pages ├── api │ ├── hello.js │ ├── auth │ │ ├── middleware.js │ │ ├── nonce.js │ │ └── verify.js │ ├── utils │ │ └── cloudFlareKVClient.js │ ├── storage │ │ └── put.js │ ├── polls │ │ ├── update-description.js │ │ └── archive.js │ └── stacks │ │ ├── pox-cycles │ │ └── index.js │ │ └── stx-balances │ │ └── [pollId].js ├── all-polls.js ├── _app.js ├── summary │ └── index.js ├── builder │ └── [[...id]].js └── [param].js ├── .gitignore ├── package.json ├── components ├── builder │ └── Preview.component.js ├── home │ ├── EcosystemLogos.module.css │ ├── accordion.js │ ├── WalletSelector.module.css │ ├── EcosystemLogos.js │ ├── HeroVisual.module.css │ └── WalletSelector.js ├── common │ ├── CountdownTimer.js │ ├── ArchiveConfirmationModal.js │ ├── MyVotesPopup.js │ └── EditDescriptionModal.js ├── poll │ ├── QRCodePopup.js │ ├── PollService.js │ └── ModernResultsVisualization.js └── summary │ ├── SummaryComponent.js │ └── ChoosePollsPopup.js ├── LICENSE ├── clarity ├── nft.clar └── ballot.clar ├── styles ├── Accordion.module.css ├── ChoosePollsPopup.module.css ├── quill-overrides.css ├── QRCodePopup.module.css ├── CountdownTimer.module.css └── VotingMethodSelection.module.css ├── services ├── r2-storage.js ├── pox-validation.js ├── stx-dust-vote-utils.js └── utils.js ├── README.md ├── CLAUDE.md ├── WARP.md ├── common └── constants.js └── utils └── htmlSanitizer.js /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockSurvey/ballot/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/images/ballot-meta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockSurvey/ballot/HEAD/public/images/ballot-meta.png -------------------------------------------------------------------------------- /public/images/logo/ballot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BlockSurvey/ballot/HEAD/public/images/logo/ballot.png -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | swcMinify: true, 5 | } 6 | 7 | module.exports = nextConfig 8 | -------------------------------------------------------------------------------- /pages/api/hello.js: -------------------------------------------------------------------------------- 1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2 | 3 | export default function handler(req, res) { 4 | res.status(200).json({ name: 'John Doe' }) 5 | } 6 | -------------------------------------------------------------------------------- /pages/all-polls.js: -------------------------------------------------------------------------------- 1 | import { DashboardNavBarComponent } from "../components/common/DashboardNavBarComponent"; 2 | import DashboardAllPollsComponent from "../components/dashboard/DashboardAllPollsComponent"; 3 | import styles from "../styles/Dashboard.module.css"; 4 | 5 | export default function Dashboard() { 6 | return ( 7 | <> 8 | {/* Navigation */} 9 | 10 | 11 | {/* Main Dashboard Content */} 12 | 13 | 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env.local 30 | .env.development.local 31 | .env.test.local 32 | .env.production.local 33 | .env.production 34 | .env.development 35 | .env* 36 | 37 | # vercel 38 | .vercel 39 | -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import Head from 'next/head' 2 | import { SSRProvider } from 'react-bootstrap' 3 | import '../styles/globals.css' 4 | import '../styles/quill-overrides.css' 5 | 6 | function MyApp({ Component, pageProps }) { 7 | return <> 8 | 9 | {/* Header */} 10 | 11 | {/* Fathom Analytics */} 12 |