├── .gitattributes ├── .gitignore ├── Dockerfile ├── LICENSE ├── LOCALIZATION_PLAN.md ├── README.md ├── TECHNICAL_DESIGN.md ├── components.json ├── convert_themes.py ├── electron ├── .gitignore ├── icon.ico ├── main.js └── package.json ├── eslint.config.js ├── font_install.bat ├── index.html ├── jsconfig.json ├── landingpage ├── ai_writer_dark.png ├── ai_writer_light.png ├── chat_dark.png ├── chat_light.png ├── concept_write_dark.png ├── concept_write_light.png ├── de │ └── index.html ├── icon.PNG ├── index.html ├── overview_plan_dark.png ├── overview_plan_light.png ├── phone.PNG ├── rabbit.svg ├── rocket.svg ├── ru │ └── index.html ├── script.js ├── style.css ├── themes2.png ├── themes_dark.png ├── themes_light.png ├── vi │ └── index.html └── zh │ └── index.html ├── mac-build ├── README.md ├── build │ ├── main.js │ └── static │ │ ├── assets │ │ ├── index-B6url4st.css │ │ ├── index-tXyTnOTH.js │ │ ├── inter-cyrillic-400-normal-BLGc9T1a.woff2 │ │ ├── inter-cyrillic-400-normal-ZzOtrSSW.woff │ │ ├── inter-cyrillic-700-normal-Bc8_fv8J.woff │ │ ├── inter-cyrillic-700-normal-bGtGjVdZ.woff2 │ │ ├── inter-cyrillic-ext-400-normal-BPnxn4xp.woff │ │ ├── inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 │ │ ├── inter-cyrillic-ext-700-normal-Ced3hgUT.woff │ │ ├── inter-cyrillic-ext-700-normal-ClVoMEGq.woff2 │ │ ├── inter-greek-400-normal-BZzXV7-1.woff │ │ ├── inter-greek-400-normal-DxZsaF_h.woff2 │ │ ├── inter-greek-700-normal-BRYTaFLL.woff │ │ ├── inter-greek-700-normal-Cxpycf-U.woff2 │ │ ├── inter-greek-ext-400-normal-Bput3-QP.woff2 │ │ ├── inter-greek-ext-400-normal-DCpCPQOf.woff │ │ ├── inter-greek-ext-700-normal-DXvzx4Na.woff │ │ ├── inter-greek-ext-700-normal-SzCdnevJ.woff2 │ │ ├── inter-latin-400-normal-BOOGhInR.woff2 │ │ ├── inter-latin-400-normal-gitzw0hO.woff │ │ ├── inter-latin-700-normal-B8MtJ_2k.woff │ │ ├── inter-latin-700-normal-Sckx8rpT.woff2 │ │ ├── inter-latin-ext-400-normal-C1t-h-pH.woff │ │ ├── inter-latin-ext-400-normal-hnt3BR84.woff2 │ │ ├── inter-latin-ext-700-normal-6V9MnIL5.woff │ │ ├── inter-latin-ext-700-normal-CzikT_rs.woff2 │ │ ├── inter-vietnamese-400-normal-BUNmGMP1.woff │ │ ├── inter-vietnamese-400-normal-DMkecbls.woff2 │ │ ├── inter-vietnamese-700-normal-CGpBpxLq.woff2 │ │ ├── inter-vietnamese-700-normal-dAnkLlTo.woff │ │ ├── lato-latin-400-normal-B11PyLys.woff │ │ ├── lato-latin-400-normal-BEhtfm5r.woff2 │ │ ├── lato-latin-700-normal-BUGMgin4.woff2 │ │ ├── lato-latin-700-normal-DAdL7O4w.woff │ │ ├── lato-latin-ext-400-normal-C8eBZ-j2.woff2 │ │ ├── lato-latin-ext-700-normal-C5WWfNwx.woff2 │ │ ├── montserrat-cyrillic-400-normal-BNZrkLa0.woff2 │ │ ├── montserrat-cyrillic-400-normal-DpKvHuFb.woff │ │ ├── montserrat-cyrillic-700-normal-CF3jbqy3.woff │ │ ├── montserrat-cyrillic-700-normal-DO8I1zZZ.woff2 │ │ ├── montserrat-cyrillic-ext-400-normal-BWKiD3Kv.woff │ │ ├── montserrat-cyrillic-ext-400-normal-C8cdMEH1.woff2 │ │ ├── montserrat-cyrillic-ext-700-normal-B5jSujIz.woff │ │ ├── montserrat-cyrillic-ext-700-normal-D3s9QaN5.woff2 │ │ ├── montserrat-latin-400-normal-CIMKXMQI.woff2 │ │ ├── montserrat-latin-400-normal-Sf4eHQyG.woff │ │ ├── montserrat-latin-700-normal-BYRy5CoC.woff2 │ │ ├── montserrat-latin-700-normal-DHOpyQza.woff │ │ ├── montserrat-latin-ext-400-normal-Cd0_BKvP.woff2 │ │ ├── montserrat-latin-ext-400-normal-Cy-iUbkq.woff │ │ ├── montserrat-latin-ext-700-normal-DTfQ8iG5.woff2 │ │ ├── montserrat-latin-ext-700-normal-DdSde0HZ.woff │ │ ├── montserrat-vietnamese-400-normal-B33MQ3yC.woff │ │ ├── montserrat-vietnamese-400-normal-CgEMIOQI.woff2 │ │ ├── montserrat-vietnamese-700-normal-D8RPk-a5.woff2 │ │ ├── montserrat-vietnamese-700-normal-DUoPxeMJ.woff │ │ ├── open-sans-cyrillic-400-normal-CzqaL1iZ.woff2 │ │ ├── open-sans-cyrillic-400-normal-kTLgxuft.woff │ │ ├── open-sans-cyrillic-700-normal-BUZkPNet.woff2 │ │ ├── open-sans-cyrillic-700-normal-COG0hEe-.woff │ │ ├── open-sans-cyrillic-ext-400-normal-UJz4QWDf.woff │ │ ├── open-sans-cyrillic-ext-400-normal-pR6qsPVh.woff2 │ │ ├── open-sans-cyrillic-ext-700-normal-DlRmNm63.woff2 │ │ ├── open-sans-cyrillic-ext-700-normal-cxRSGggR.woff │ │ ├── open-sans-greek-400-normal-B-s2YDfe.woff │ │ ├── open-sans-greek-400-normal-BhbJw-ID.woff2 │ │ ├── open-sans-greek-700-normal-3ZuBy_Ld.woff │ │ ├── open-sans-greek-700-normal-DZLtG1eN.woff2 │ │ ├── open-sans-hebrew-400-normal-CyH9M0u4.woff │ │ ├── open-sans-hebrew-400-normal-DcuuLq9a.woff2 │ │ ├── open-sans-hebrew-700-normal-ByxHPEwX.woff2 │ │ ├── open-sans-hebrew-700-normal-CdblwzFU.woff │ │ ├── open-sans-latin-400-normal-Cjao0ETp.woff2 │ │ ├── open-sans-latin-400-normal-Dxjvn725.woff │ │ ├── open-sans-latin-700-normal-B572f0fn.woff │ │ ├── open-sans-latin-700-normal-C2okHfb_.woff2 │ │ ├── open-sans-latin-ext-400-normal-BXLcHD4a.woff2 │ │ ├── open-sans-latin-ext-400-normal-DkLPCGEk.woff │ │ ├── open-sans-latin-ext-700-normal-C-A0l_kt.woff2 │ │ ├── open-sans-latin-ext-700-normal-h5QwRtwi.woff │ │ ├── open-sans-math-400-normal-Bw1rHEuQ.woff │ │ ├── open-sans-math-400-normal-CoiAIOH6.woff2 │ │ ├── open-sans-math-700-normal-C_zQ2Upn.woff2 │ │ ├── open-sans-math-700-normal-D9Ix8Mnc.woff │ │ ├── open-sans-symbols-400-normal-BczhyrVJ.woff2 │ │ ├── open-sans-symbols-400-normal-D7CElg7Y.woff │ │ ├── open-sans-symbols-700-normal-9UGYaiOr.woff2 │ │ ├── open-sans-symbols-700-normal-BkRMExv1.woff │ │ ├── open-sans-vietnamese-400-normal-CWzy0rt5.woff2 │ │ ├── open-sans-vietnamese-400-normal-Coa9Lb0B.woff │ │ ├── open-sans-vietnamese-700-normal-KVBVKU1x.woff2 │ │ ├── open-sans-vietnamese-700-normal-js5t13xB.woff │ │ ├── poppins-devanagari-400-normal-CJDn6rn8.woff2 │ │ ├── poppins-devanagari-400-normal-CqVvlrh5.woff │ │ ├── poppins-devanagari-700-normal-O-jipLrW.woff2 │ │ ├── poppins-devanagari-700-normal-fHs-vx92.woff │ │ ├── poppins-latin-400-normal-BOb3E3N0.woff │ │ ├── poppins-latin-400-normal-cpxAROuN.woff2 │ │ ├── poppins-latin-700-normal-BVuQR_eA.woff │ │ ├── poppins-latin-700-normal-Qrb0O0WB.woff2 │ │ ├── poppins-latin-ext-400-normal-DaBSavcJ.woff │ │ ├── poppins-latin-ext-400-normal-by3JarPu.woff2 │ │ ├── poppins-latin-ext-700-normal-DctTR6Tg.woff │ │ ├── poppins-latin-ext-700-normal-cby-RkWa.woff2 │ │ ├── roboto-cyrillic-400-normal-DAIM1_dR.woff2 │ │ ├── roboto-cyrillic-400-normal-Dry59Hjn.woff │ │ ├── roboto-cyrillic-700-normal-CB1Rmiii.woff │ │ ├── roboto-cyrillic-700-normal-CzEIZVQR.woff2 │ │ ├── roboto-cyrillic-ext-400-normal-BxX1-eA_.woff │ │ ├── roboto-cyrillic-ext-400-normal-DzMWdK87.woff2 │ │ ├── roboto-cyrillic-ext-700-normal-CIu0AXX2.woff │ │ ├── roboto-cyrillic-ext-700-normal-D_fA0fHY.woff2 │ │ ├── roboto-greek-400-normal-CAI06USH.woff │ │ ├── roboto-greek-400-normal-jFM2czAU.woff2 │ │ ├── roboto-greek-700-normal-DCrt6r9F.woff │ │ ├── roboto-greek-700-normal-DpKAje7q.woff2 │ │ ├── roboto-latin-400-normal-551zQQ7R.woff │ │ ├── roboto-latin-400-normal-CNwBRw8h.woff2 │ │ ├── roboto-latin-700-normal-CTLkNcF_.woff │ │ ├── roboto-latin-700-normal-DZr4b_KL.woff2 │ │ ├── roboto-latin-ext-400-normal-ZYmyxeOy.woff2 │ │ ├── roboto-latin-ext-400-normal-uRIBRJt5.woff │ │ ├── roboto-latin-ext-700-normal-BNPgmEQS.woff2 │ │ ├── roboto-latin-ext-700-normal-Cnx4FGpK.woff │ │ ├── roboto-math-400-normal-B3wgz80t.woff2 │ │ ├── roboto-math-400-normal-DHrwdhE6.woff │ │ ├── roboto-math-700-normal-CpTCM92H.woff │ │ ├── roboto-math-700-normal-xbpggnJp.woff2 │ │ ├── roboto-symbols-400-normal-bG5rsNFs.woff │ │ ├── roboto-symbols-400-normal-fF1SLJBj.woff2 │ │ ├── roboto-symbols-700-normal-B2QKVW64.woff │ │ ├── roboto-symbols-700-normal-DKkQdRpM.woff2 │ │ ├── roboto-vietnamese-400-normal-CDDxGrUb.woff2 │ │ ├── roboto-vietnamese-400-normal-DgufTq8s.woff │ │ ├── roboto-vietnamese-700-normal-BFWtvCOj.woff2 │ │ ├── roboto-vietnamese-700-normal-ChAl_rRV.woff │ │ ├── source-sans-3-cyrillic-400-normal-7kQcAFpS.woff │ │ ├── source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2 │ │ ├── source-sans-3-cyrillic-700-normal-CIuudVLB.woff2 │ │ ├── source-sans-3-cyrillic-700-normal-DYE6gq6k.woff │ │ ├── source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2 │ │ ├── source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff │ │ ├── source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff │ │ ├── source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2 │ │ ├── source-sans-3-greek-400-normal-DJm9Ud5h.woff │ │ ├── source-sans-3-greek-400-normal-DZReXJla.woff2 │ │ ├── source-sans-3-greek-700-normal-BWdBblwd.woff │ │ ├── source-sans-3-greek-700-normal-C8Tp2qRF.woff2 │ │ ├── source-sans-3-greek-ext-400-normal-BI1kUwmR.woff │ │ ├── source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2 │ │ ├── source-sans-3-greek-ext-700-normal-C6ITAlBU.woff │ │ ├── source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2 │ │ ├── source-sans-3-latin-400-normal-AFMiCETP.woff │ │ ├── source-sans-3-latin-400-normal-DQi5PRDE.woff2 │ │ ├── source-sans-3-latin-700-normal-BBbVrHF_.woff │ │ ├── source-sans-3-latin-700-normal-CkzU-mV9.woff2 │ │ ├── source-sans-3-latin-ext-400-normal-BGPHfnm_.woff │ │ ├── source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2 │ │ ├── source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2 │ │ ├── source-sans-3-latin-ext-700-normal-ChH_v7nA.woff │ │ ├── source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2 │ │ ├── source-sans-3-vietnamese-400-normal-dYp9C364.woff │ │ ├── source-sans-3-vietnamese-700-normal-BHxM10oo.woff │ │ └── source-sans-3-vietnamese-700-normal-Bgamivog.woff2 │ │ ├── index.html │ │ └── rabbit.svg ├── package-lock.json ├── package.json ├── resources │ └── icon.icns └── scripts │ ├── create-mac-icon.sh │ └── prepare-build.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── discord.svg ├── github.svg └── rabbit.svg ├── src ├── App.css ├── App.jsx ├── CODE REVIEW.md ├── RootApp.jsx ├── assets │ └── react.svg ├── components │ ├── ai │ │ ├── AIChatModal.jsx │ │ ├── AINovelWriterModal.jsx │ │ ├── AISuggestionModal.jsx │ │ └── FullscreenTextareaEditModal.jsx │ ├── concept │ │ ├── ConceptCacheList.jsx │ │ ├── ConceptFormModal.jsx │ │ ├── CreateConceptModal.jsx │ │ ├── ManageTemplatesModal.jsx │ │ └── TemplateFormModal.jsx │ ├── novel │ │ ├── AddNewNovelCard.jsx │ │ ├── CreateNovelFormModal.jsx │ │ ├── ExportModal.jsx │ │ ├── NovelCard.jsx │ │ ├── NovelGridView.jsx │ │ └── NovelOverviewTab.jsx │ ├── plan │ │ ├── ActFormModal.jsx │ │ ├── ChapterFormModal.jsx │ │ ├── ImportOutlineModal.jsx │ │ ├── PlanView.jsx │ │ └── SceneFormModal.jsx │ ├── settings │ │ ├── EndpointProfileFormModal.jsx │ │ ├── FontSettingsControl.jsx │ │ ├── LanguageSwitcher.jsx │ │ ├── SettingsView.jsx │ │ └── ThemeEditor.jsx │ ├── ui │ │ ├── ConfirmModal.jsx │ │ ├── accordion.jsx │ │ ├── alert-dialog.jsx │ │ ├── alert.jsx │ │ ├── aspect-ratio.jsx │ │ ├── avatar.jsx │ │ ├── badge.jsx │ │ ├── breadcrumb.jsx │ │ ├── button.jsx │ │ ├── calendar.jsx │ │ ├── card.jsx │ │ ├── carousel.jsx │ │ ├── chart.jsx │ │ ├── checkbox.jsx │ │ ├── collapsible.jsx │ │ ├── command.jsx │ │ ├── context-menu.jsx │ │ ├── dialog.jsx │ │ ├── drawer.jsx │ │ ├── dropdown-menu.jsx │ │ ├── form.jsx │ │ ├── hover-card.jsx │ │ ├── input-otp.jsx │ │ ├── input.jsx │ │ ├── label.jsx │ │ ├── menubar.jsx │ │ ├── navigation-menu.jsx │ │ ├── pagination.jsx │ │ ├── popover.jsx │ │ ├── progress.jsx │ │ ├── radio-group.jsx │ │ ├── resizable.jsx │ │ ├── scroll-area.jsx │ │ ├── select.jsx │ │ ├── separator.jsx │ │ ├── sheet.jsx │ │ ├── skeleton.jsx │ │ ├── slider.jsx │ │ ├── sonner.jsx │ │ ├── switch.jsx │ │ ├── table.jsx │ │ ├── tabs.jsx │ │ ├── textarea.jsx │ │ ├── toast.jsx │ │ ├── toaster.jsx │ │ ├── toggle-group.jsx │ │ ├── toggle.jsx │ │ └── tooltip.jsx │ └── write │ │ ├── NovelOutlinePopover.jsx │ │ └── WriteView.jsx ├── context │ ├── DataContext.jsx │ └── SettingsContext.jsx ├── data │ ├── conceptTemplates.js │ ├── models.js │ └── themePresets.js ├── hooks │ └── use-toast.js ├── i18n.js ├── index.css ├── lib │ ├── aiContextUtils.js │ ├── indexedDb.js │ └── utils.js ├── locales │ ├── cn │ │ └── translation.json │ ├── de │ │ └── translation.json │ ├── en │ │ └── translation.json │ ├── es │ │ └── translation.json │ ├── ru │ │ └── translation.json │ └── vi │ │ └── translation.json └── main.jsx ├── tailwind.config.js └── vite.config.js /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | stuff 11 | node_modules 12 | dist 13 | dist-ssr 14 | *.local 15 | 16 | # Editor directories and files 17 | .vscode/* 18 | !.vscode/extensions.json 19 | .idea 20 | .DS_Store 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Stage 1: Build the application 2 | FROM node:20-alpine AS builder 3 | WORKDIR /app 4 | 5 | # Copy package.json and package-lock.json (or yarn.lock) 6 | COPY package*.json ./ 7 | 8 | # Install dependencies 9 | RUN npm install 10 | 11 | # Copy the rest of the application code 12 | COPY . . 13 | 14 | # Build the application 15 | RUN npm run build 16 | 17 | # Stage 2: Serve the application 18 | FROM node:20-alpine 19 | WORKDIR /app 20 | 21 | # Copy built assets from the builder stage 22 | COPY --from=builder /app/dist ./dist 23 | COPY package*.json ./ 24 | 25 | # Install only production dependencies (if any are needed by the server, though vite preview is self-contained) 26 | # For vite preview, it's often not strictly necessary to run npm install again if vite is a devDependency, 27 | # but to be safe and ensure vite is available, we can install it. 28 | RUN npm install --omit=dev vite # Install vite itself 29 | 30 | # Expose the port the app runs on. Vite preview defaults to 4173. 31 | # If you want to use a different port, you can change it here and in the CMD. 32 | EXPOSE 4173 33 | 34 | # Command to run the application 35 | # The '--host' flag makes Vite listen on all available network interfaces (0.0.0.0) 36 | # This is crucial for Docker port mapping to work. 37 | CMD ["npm", "run", "preview", "--", "--host", "--port", "4173"] 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Nguyen Phan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": false, 5 | "tsx": false, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "src/index.css", 9 | "baseColor": "slate", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /electron/.gitignore: -------------------------------------------------------------------------------- 1 | static 2 | dist 3 | node_modules -------------------------------------------------------------------------------- /electron/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/electron/icon.ico -------------------------------------------------------------------------------- /electron/main.js: -------------------------------------------------------------------------------- 1 | const { app, BrowserWindow } = require('electron') 2 | const path = require('path') 3 | 4 | function createWindow () { 5 | const win = new BrowserWindow({ 6 | width: 1440, 7 | height: 810, 8 | autoHideMenuBar: true, 9 | icon: path.join(__dirname, 'icon.ico'), 10 | webPreferences: { 11 | nodeIntegration: false, 12 | contextIsolation: true 13 | } 14 | }) 15 | 16 | win.loadFile(path.join(__dirname, 'static', 'index.html')) 17 | } 18 | 19 | app.whenReady().then(() => { 20 | createWindow() 21 | 22 | app.on('activate', () => { 23 | if (BrowserWindow.getAllWindows().length === 0) { 24 | createWindow() 25 | } 26 | }) 27 | }) 28 | 29 | app.on('window-all-closed', () => { 30 | if (process.platform !== 'darwin') { 31 | app.quit() 32 | } 33 | }) -------------------------------------------------------------------------------- /electron/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "plotbunni", 3 | "version": "1.1.0", 4 | "description": "Plot Bunni", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "electron .", 8 | "build:installer": "electron-builder --win nsis", 9 | "build:portable": "electron-builder --win portable" 10 | }, 11 | "build": { 12 | "appId": "com.fyrean.plotbunni", 13 | "productName": "Plot Bunni", 14 | "files": [ 15 | "main.js", 16 | "static/**/*", 17 | "icon.ico" 18 | ], 19 | "win": { 20 | "icon": "icon.ico" 21 | }, 22 | "compression": "maximum" 23 | }, 24 | "author": "", 25 | "license": "ISC", 26 | "devDependencies": { 27 | "electron": "^28.3.3", 28 | "electron-builder": "^24.13.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js' 2 | import globals from 'globals' 3 | import react from 'eslint-plugin-react' 4 | import reactHooks from 'eslint-plugin-react-hooks' 5 | import reactRefresh from 'eslint-plugin-react-refresh' 6 | 7 | export default [ 8 | { 9 | files: ['**/*.{js,jsx}'], 10 | ignores: ['dist'], 11 | languageOptions: { 12 | ecmaVersion: 2020, 13 | globals: globals.browser, 14 | parserOptions: { 15 | ecmaVersion: 'latest', 16 | ecmaFeatures: { jsx: true }, 17 | sourceType: 'module', 18 | }, 19 | }, 20 | settings: { react: { version: '18.3' } }, 21 | plugins: { 22 | react, 23 | 'react-hooks': reactHooks, 24 | 'react-refresh': reactRefresh, 25 | }, 26 | rules: { 27 | ...js.configs.recommended.rules, 28 | ...react.configs.recommended.rules, 29 | ...react.configs['jsx-runtime'].rules, 30 | ...reactHooks.configs.recommended.rules, 31 | 'react/jsx-no-target-blank': 'off', 32 | 'react-refresh/only-export-components': [ 33 | 'warn', 34 | { allowConstantExport: true }, 35 | ], 36 | }, 37 | }, 38 | ] 39 | -------------------------------------------------------------------------------- /font_install.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM This batch file installs several Fontsource font packages using npm. 3 | REM Make sure you have Node.js and npm installed on your system. 4 | REM Run this file in the root directory of your React project. 5 | 6 | echo Installing Fontsource npm packages... 7 | 8 | REM List of Fontsource packages to install 9 | set "FONTS_TO_INSTALL=@fontsource/inter @fontsource/roboto @fontsource/open-sans @fontsource/lato @fontsource/montserrat @fontsource/source-sans-3 @fontsource/poppins" 10 | 11 | REM Execute the npm install command 12 | npm install %FONTS_TO_INSTALL% 13 | 14 | REM Check if the installation was successful 15 | if %errorlevel% equ 0 ( 16 | echo Fontsource packages installed successfully! 17 | ) else ( 18 | echo An error occurred during installation. Please check the output above. 19 | ) 20 | 21 | echo Installation process finished. 22 | pause 23 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Plot Bunni 8 | 56 | 57 | 58 |
59 |
60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "@/*": ["src/*"] 6 | } 7 | }, 8 | "include": ["src/**/*"] 9 | } -------------------------------------------------------------------------------- /landingpage/ai_writer_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/ai_writer_dark.png -------------------------------------------------------------------------------- /landingpage/ai_writer_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/ai_writer_light.png -------------------------------------------------------------------------------- /landingpage/chat_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/chat_dark.png -------------------------------------------------------------------------------- /landingpage/chat_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/chat_light.png -------------------------------------------------------------------------------- /landingpage/concept_write_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/concept_write_dark.png -------------------------------------------------------------------------------- /landingpage/concept_write_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/concept_write_light.png -------------------------------------------------------------------------------- /landingpage/icon.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/icon.PNG -------------------------------------------------------------------------------- /landingpage/overview_plan_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/overview_plan_dark.png -------------------------------------------------------------------------------- /landingpage/overview_plan_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/overview_plan_light.png -------------------------------------------------------------------------------- /landingpage/phone.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/phone.PNG -------------------------------------------------------------------------------- /landingpage/rabbit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /landingpage/rocket.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /landingpage/script.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', () => { 2 | const themeSwitcher = document.getElementById('theme-switcher'); 3 | const themeIconLight = document.getElementById('theme-icon-light'); 4 | const themeIconDark = document.getElementById('theme-icon-dark'); 5 | const lightImages = document.querySelectorAll('.light-image'); 6 | const darkImages = document.querySelectorAll('.dark-image'); 7 | const htmlElement = document.documentElement; 8 | 9 | // Function to apply theme 10 | const applyTheme = (theme) => { 11 | if (theme === 'dark') { 12 | htmlElement.classList.add('dark'); 13 | themeIconLight.classList.add('hidden'); 14 | themeIconDark.classList.remove('hidden'); 15 | lightImages.forEach(img => img.classList.add('hidden')); 16 | darkImages.forEach(img => img.classList.remove('hidden')); 17 | localStorage.setItem('theme', 'dark'); 18 | } else { 19 | htmlElement.classList.remove('dark'); 20 | themeIconLight.classList.remove('hidden'); 21 | themeIconDark.classList.add('hidden'); 22 | lightImages.forEach(img => img.classList.remove('hidden')); 23 | darkImages.forEach(img => img.classList.add('hidden')); 24 | localStorage.setItem('theme', 'light'); 25 | } 26 | }; 27 | 28 | // Check for saved theme preference or system preference 29 | const preferredTheme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); 30 | applyTheme(preferredTheme); 31 | 32 | // Theme switcher event listener 33 | themeSwitcher.addEventListener('click', () => { 34 | const currentTheme = htmlElement.classList.contains('dark') ? 'dark' : 'light'; 35 | applyTheme(currentTheme === 'dark' ? 'light' : 'dark'); 36 | }); 37 | 38 | // Update current year in footer 39 | const currentYearSpan = document.getElementById('current-year'); 40 | if (currentYearSpan) { 41 | currentYearSpan.textContent = new Date().getFullYear(); 42 | } 43 | }); 44 | -------------------------------------------------------------------------------- /landingpage/style.css: -------------------------------------------------------------------------------- 1 | /* Import from current_theme.css */ 2 | :root { 3 | --background: 260 23.08% 97.45%; 4 | --foreground: 243.16 13.67% 27.25%; 5 | --card: 0 0% 100%; 6 | --card-foreground: 243.16 13.67% 27.25%; 7 | --popover: 0 0% 100%; 8 | --popover-foreground: 243.16 13.67% 27.25%; 9 | --primary: 260.40 22.94% 57.25%; 10 | --primary-foreground: 260 23.08% 97.45%; 11 | --secondary: 258.95 33.33% 88.82%; 12 | --secondary-foreground: 243.16 13.67% 27.25%; 13 | --muted: 258.00 15.15% 87.06%; 14 | --muted-foreground: 247.50 10.34% 45.49%; 15 | --accent: 342.46 56.52% 77.45%; 16 | --accent-foreground: 343.45 23.97% 23.73%; 17 | --destructive: 0 62.19% 60.59%; 18 | --destructive-foreground: 260 23.08% 97.45%; 19 | --border: 258.75 17.39% 81.96%; 20 | --input: 260.00 23.08% 92.35%; 21 | --ring: 260.40 22.94% 57.25%; 22 | --chart-1: 260.40 22.94% 57.25%; 23 | --chart-2: 342.46 56.52% 77.45%; 24 | --chart-3: 158.77 31.40% 59.41%; 25 | --chart-4: 35.76 76.74% 74.71%; 26 | --chart-5: 215.82 54.47% 75.88%; 27 | --sidebar: 260.00 23.08% 94.90%; 28 | --sidebar-foreground: 243.16 13.67% 27.25%; 29 | --sidebar-primary: 260.40 22.94% 57.25%; 30 | --sidebar-primary-foreground: 260 23.08% 97.45%; 31 | --sidebar-accent: 342.46 56.52% 77.45%; 32 | --sidebar-accent-foreground: 343.45 23.97% 23.73%; 33 | --sidebar-border: 261.43 18.42% 85.10%; 34 | --sidebar-ring: 260.40 22.94% 57.25%; 35 | --radius: 0.5rem; 36 | --shadow-2xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03); 37 | --shadow-xs: 1px 2px 5px 1px hsl(0 0% 0% / 0.03); 38 | --shadow-sm: 1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06); 39 | --shadow: 1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 1px 2px 0px hsl(0 0% 0% / 0.06); 40 | --shadow-md: 1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 2px 4px 0px hsl(0 0% 0% / 0.06); 41 | --shadow-lg: 1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 4px 6px 0px hsl(0 0% 0% / 0.06); 42 | --shadow-xl: 1px 2px 5px 1px hsl(0 0% 0% / 0.06), 1px 8px 10px 0px hsl(0 0% 0% / 0.06); 43 | --shadow-2xl: 1px 2px 5px 1px hsl(0 0% 0% / 0.15); 44 | } 45 | 46 | .dark { 47 | --background: 250.91 18.64% 11.57%; 48 | --foreground: 250.00 36.00% 90.20%; 49 | --card: 251.25 20% 15.69%; 50 | --card-foreground: 250.00 36.00% 90.20%; 51 | --popover: 251.25 20% 15.69%; 52 | --popover-foreground: 250.00 36.00% 90.20%; 53 | --primary: 263.08 32.50% 68.63%; 54 | --primary-foreground: 250.91 18.64% 11.57%; 55 | --secondary: 254.48 14.87% 38.24%; 56 | --secondary-foreground: 250.00 36.00% 90.20%; 57 | --muted: 254.12 20.99% 15.88%; 58 | --muted-foreground: 258.95 10.38% 64.12%; 59 | --accent: 271.76 15.60% 21.37%; 60 | --accent-foreground: 345.52 69.05% 83.53%; 61 | --destructive: 0 68.67% 67.45%; 62 | --destructive-foreground: 250.91 18.64% 11.57%; 63 | --border: 252 18.52% 21.18%; 64 | --input: 249.47 19.59% 19.02%; 65 | --ring: 263.08 32.50% 68.63%; 66 | --chart-1: 263.08 32.50% 68.63%; 67 | --chart-2: 345.52 69.05% 83.53%; 68 | --chart-3: 158.77 31.40% 59.41%; 69 | --chart-4: 35.76 76.74% 74.71%; 70 | --chart-5: 215.82 54.47% 75.88%; 71 | --sidebar: 252 20.00% 9.80%; 72 | --sidebar-foreground: 250.00 36.00% 90.20%; 73 | --sidebar-primary: 263.08 32.50% 68.63%; 74 | --sidebar-primary-foreground: 250.91 18.64% 11.57%; 75 | --sidebar-accent: 271.76 15.60% 21.37%; 76 | --sidebar-accent-foreground: 345.52 69.05% 83.53%; 77 | --sidebar-border: 249.47 19.59% 19.02%; 78 | --sidebar-ring: 263.08 32.50% 68.63%; 79 | --radius: 0.5rem; 80 | --shadow-2xs: 1px 2px 5px 1px hsl(0 0% 100% / 0.03); 81 | --shadow-xs: 1px 2px 5px 1px hsl(0 0% 100% / 0.03); 82 | --shadow-sm: 1px 2px 5px 1px hsl(0 0% 100% / 0.04), 1px 1px 2px 0px hsl(0 0% 100% / 0.04); 83 | --shadow: 1px 2px 5px 1px hsl(0 0% 100% / 0.05), 1px 1px 2px 0px hsl(0 0% 100% / 0.05); 84 | --shadow-md: 1px 2px 5px 1px hsl(0 0% 100% / 0.05), 1px 2px 4px 0px hsl(0 0% 100% / 0.05); 85 | --shadow-lg: 1px 2px 5px 1px hsl(0 0% 100% / 0.05), 1px 4px 6px 0px hsl(0 0% 100% / 0.05); 86 | --shadow-xl: 1px 2px 5px 1px hsl(0 0% 100% / 0.05), 1px 8px 10px 0px hsl(0 0% 100% / 0.05); 87 | --shadow-2xl: 1px 2px 5px 1px hsl(0 0% 100% / 0.1); 88 | } 89 | 90 | body { 91 | transition: background-color 0.3s ease, color 0.3s ease; 92 | } 93 | -------------------------------------------------------------------------------- /landingpage/themes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/themes2.png -------------------------------------------------------------------------------- /landingpage/themes_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/themes_dark.png -------------------------------------------------------------------------------- /landingpage/themes_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/landingpage/themes_light.png -------------------------------------------------------------------------------- /mac-build/README.md: -------------------------------------------------------------------------------- 1 | # Plot Bunni - Mac Build Configuration 2 | 3 | This folder contains the necessary configuration to build Plot Bunni for macOS. It's designed to be portable so you can easily copy it to new versions of the app when it's updated. 4 | 5 | ## Setup 6 | 7 | 1. Copy this entire `mac-build` folder to the root of the Plot Bunni project 8 | 2. Navigate to the mac-build directory: 9 | ```bash 10 | cd mac-build 11 | ``` 12 | 3. Install dependencies: 13 | ```bash 14 | npm install 15 | ``` 16 | 4. To build only for Mac: 17 | ```bash 18 | npm run build 19 | ``` 20 | 21 | The built applications will be available in the `dist` folder as a dmg file. Double click the dmg file to install Plot Bunni. 22 | 23 | ## Folder Structure 24 | 25 | - `resources/` - Contains generated Mac-specific resources (icons) 26 | - `scripts/` - Contains build preparation scripts 27 | - `prepare-build.js` - Prepares the build environment 28 | - `create-mac-icon.sh` - Converts the original icon to Mac format 29 | 30 | ## Updating the App 31 | 32 | When the original Plot Bunni app is updated: 33 | 34 | 1. Download/update the main app 35 | 2. Copy this entire `mac-build` folder to the root of the updated app 36 | 3. Follow the setup and build instructions above 37 | 38 | The configuration is designed to reference the main app's files while maintaining its own Mac-specific build settings. 39 | -------------------------------------------------------------------------------- /mac-build/build/main.js: -------------------------------------------------------------------------------- 1 | const { app, BrowserWindow } = require('electron') 2 | const path = require('path') 3 | 4 | function createWindow () { 5 | const win = new BrowserWindow({ 6 | width: 1440, 7 | height: 810, 8 | autoHideMenuBar: true, 9 | icon: path.join(__dirname, 'icon.ico'), 10 | webPreferences: { 11 | nodeIntegration: false, 12 | contextIsolation: true 13 | } 14 | }) 15 | 16 | win.loadFile(path.join(__dirname, 'static', 'index.html')) 17 | } 18 | 19 | app.whenReady().then(() => { 20 | createWindow() 21 | 22 | app.on('activate', () => { 23 | if (BrowserWindow.getAllWindows().length === 0) { 24 | createWindow() 25 | } 26 | }) 27 | }) 28 | 29 | app.on('window-all-closed', () => { 30 | if (process.platform !== 'darwin') { 31 | app.quit() 32 | } 33 | }) -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-700-normal-Bc8_fv8J.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-700-normal-Bc8_fv8J.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-700-normal-bGtGjVdZ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-700-normal-bGtGjVdZ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-ext-700-normal-Ced3hgUT.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-ext-700-normal-Ced3hgUT.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-cyrillic-ext-700-normal-ClVoMEGq.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-cyrillic-ext-700-normal-ClVoMEGq.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-400-normal-BZzXV7-1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-400-normal-BZzXV7-1.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-400-normal-DxZsaF_h.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-400-normal-DxZsaF_h.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-700-normal-BRYTaFLL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-700-normal-BRYTaFLL.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-700-normal-Cxpycf-U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-700-normal-Cxpycf-U.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-ext-400-normal-Bput3-QP.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-ext-400-normal-DCpCPQOf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-ext-400-normal-DCpCPQOf.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-ext-700-normal-DXvzx4Na.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-ext-700-normal-DXvzx4Na.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-greek-ext-700-normal-SzCdnevJ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-greek-ext-700-normal-SzCdnevJ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-400-normal-BOOGhInR.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-400-normal-BOOGhInR.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-400-normal-gitzw0hO.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-400-normal-gitzw0hO.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-700-normal-B8MtJ_2k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-700-normal-B8MtJ_2k.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-700-normal-Sckx8rpT.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-700-normal-Sckx8rpT.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-ext-400-normal-C1t-h-pH.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-ext-400-normal-C1t-h-pH.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-ext-400-normal-hnt3BR84.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-ext-700-normal-6V9MnIL5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-ext-700-normal-6V9MnIL5.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-latin-ext-700-normal-CzikT_rs.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-latin-ext-700-normal-CzikT_rs.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-vietnamese-400-normal-BUNmGMP1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-vietnamese-400-normal-BUNmGMP1.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-vietnamese-400-normal-DMkecbls.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-vietnamese-400-normal-DMkecbls.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-vietnamese-700-normal-CGpBpxLq.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-vietnamese-700-normal-CGpBpxLq.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/inter-vietnamese-700-normal-dAnkLlTo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/inter-vietnamese-700-normal-dAnkLlTo.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-400-normal-B11PyLys.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-400-normal-B11PyLys.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-400-normal-BEhtfm5r.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-400-normal-BEhtfm5r.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-700-normal-BUGMgin4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-700-normal-BUGMgin4.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-700-normal-DAdL7O4w.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-700-normal-DAdL7O4w.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-ext-400-normal-C8eBZ-j2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-ext-400-normal-C8eBZ-j2.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/lato-latin-ext-700-normal-C5WWfNwx.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/lato-latin-ext-700-normal-C5WWfNwx.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-400-normal-BNZrkLa0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-400-normal-BNZrkLa0.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-400-normal-DpKvHuFb.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-400-normal-DpKvHuFb.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-700-normal-CF3jbqy3.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-700-normal-CF3jbqy3.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-700-normal-DO8I1zZZ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-700-normal-DO8I1zZZ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-ext-400-normal-BWKiD3Kv.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-ext-400-normal-BWKiD3Kv.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-ext-400-normal-C8cdMEH1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-ext-400-normal-C8cdMEH1.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-ext-700-normal-B5jSujIz.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-ext-700-normal-B5jSujIz.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-cyrillic-ext-700-normal-D3s9QaN5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-cyrillic-ext-700-normal-D3s9QaN5.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-400-normal-CIMKXMQI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-400-normal-CIMKXMQI.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-400-normal-Sf4eHQyG.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-400-normal-Sf4eHQyG.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-700-normal-BYRy5CoC.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-700-normal-BYRy5CoC.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-700-normal-DHOpyQza.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-700-normal-DHOpyQza.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-ext-400-normal-Cd0_BKvP.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-ext-400-normal-Cd0_BKvP.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-ext-400-normal-Cy-iUbkq.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-ext-400-normal-Cy-iUbkq.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-ext-700-normal-DTfQ8iG5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-ext-700-normal-DTfQ8iG5.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-latin-ext-700-normal-DdSde0HZ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-latin-ext-700-normal-DdSde0HZ.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-vietnamese-400-normal-B33MQ3yC.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-vietnamese-400-normal-B33MQ3yC.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-vietnamese-400-normal-CgEMIOQI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-vietnamese-400-normal-CgEMIOQI.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-vietnamese-700-normal-D8RPk-a5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-vietnamese-700-normal-D8RPk-a5.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/montserrat-vietnamese-700-normal-DUoPxeMJ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/montserrat-vietnamese-700-normal-DUoPxeMJ.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-400-normal-CzqaL1iZ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-400-normal-CzqaL1iZ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-400-normal-kTLgxuft.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-400-normal-kTLgxuft.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-700-normal-BUZkPNet.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-700-normal-BUZkPNet.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-700-normal-COG0hEe-.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-700-normal-COG0hEe-.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-ext-400-normal-UJz4QWDf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-ext-400-normal-UJz4QWDf.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-ext-400-normal-pR6qsPVh.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-ext-400-normal-pR6qsPVh.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-ext-700-normal-DlRmNm63.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-ext-700-normal-DlRmNm63.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-cyrillic-ext-700-normal-cxRSGggR.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-cyrillic-ext-700-normal-cxRSGggR.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-greek-400-normal-B-s2YDfe.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-greek-400-normal-B-s2YDfe.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-greek-400-normal-BhbJw-ID.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-greek-400-normal-BhbJw-ID.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-greek-700-normal-3ZuBy_Ld.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-greek-700-normal-3ZuBy_Ld.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-greek-700-normal-DZLtG1eN.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-greek-700-normal-DZLtG1eN.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-hebrew-400-normal-CyH9M0u4.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-hebrew-400-normal-CyH9M0u4.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-hebrew-400-normal-DcuuLq9a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-hebrew-400-normal-DcuuLq9a.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-hebrew-700-normal-ByxHPEwX.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-hebrew-700-normal-ByxHPEwX.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-hebrew-700-normal-CdblwzFU.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-hebrew-700-normal-CdblwzFU.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-400-normal-Cjao0ETp.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-400-normal-Cjao0ETp.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-400-normal-Dxjvn725.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-400-normal-Dxjvn725.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-700-normal-B572f0fn.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-700-normal-B572f0fn.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-700-normal-C2okHfb_.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-700-normal-C2okHfb_.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-ext-400-normal-BXLcHD4a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-ext-400-normal-BXLcHD4a.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-ext-400-normal-DkLPCGEk.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-ext-400-normal-DkLPCGEk.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-ext-700-normal-C-A0l_kt.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-ext-700-normal-C-A0l_kt.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-latin-ext-700-normal-h5QwRtwi.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-latin-ext-700-normal-h5QwRtwi.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-math-400-normal-Bw1rHEuQ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-math-400-normal-Bw1rHEuQ.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-math-400-normal-CoiAIOH6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-math-400-normal-CoiAIOH6.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-math-700-normal-C_zQ2Upn.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-math-700-normal-C_zQ2Upn.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-math-700-normal-D9Ix8Mnc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-math-700-normal-D9Ix8Mnc.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-symbols-400-normal-BczhyrVJ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-symbols-400-normal-BczhyrVJ.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-symbols-400-normal-D7CElg7Y.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-symbols-400-normal-D7CElg7Y.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-symbols-700-normal-9UGYaiOr.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-symbols-700-normal-9UGYaiOr.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-symbols-700-normal-BkRMExv1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-symbols-700-normal-BkRMExv1.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-vietnamese-400-normal-CWzy0rt5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-vietnamese-400-normal-CWzy0rt5.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-vietnamese-400-normal-Coa9Lb0B.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-vietnamese-400-normal-Coa9Lb0B.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-vietnamese-700-normal-KVBVKU1x.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-vietnamese-700-normal-KVBVKU1x.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/open-sans-vietnamese-700-normal-js5t13xB.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/open-sans-vietnamese-700-normal-js5t13xB.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-devanagari-400-normal-CJDn6rn8.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-devanagari-400-normal-CqVvlrh5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-devanagari-400-normal-CqVvlrh5.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-devanagari-700-normal-O-jipLrW.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-devanagari-700-normal-O-jipLrW.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-devanagari-700-normal-fHs-vx92.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-devanagari-700-normal-fHs-vx92.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-400-normal-BOb3E3N0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-400-normal-BOb3E3N0.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-400-normal-cpxAROuN.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-400-normal-cpxAROuN.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-700-normal-BVuQR_eA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-700-normal-BVuQR_eA.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-700-normal-Qrb0O0WB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-700-normal-Qrb0O0WB.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-ext-400-normal-DaBSavcJ.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-ext-400-normal-by3JarPu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-ext-400-normal-by3JarPu.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-ext-700-normal-DctTR6Tg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-ext-700-normal-DctTR6Tg.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/poppins-latin-ext-700-normal-cby-RkWa.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/poppins-latin-ext-700-normal-cby-RkWa.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-400-normal-DAIM1_dR.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-400-normal-DAIM1_dR.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-400-normal-Dry59Hjn.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-400-normal-Dry59Hjn.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-700-normal-CB1Rmiii.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-700-normal-CB1Rmiii.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-700-normal-CzEIZVQR.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-700-normal-CzEIZVQR.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-ext-400-normal-BxX1-eA_.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-ext-400-normal-BxX1-eA_.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-ext-400-normal-DzMWdK87.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-ext-400-normal-DzMWdK87.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-ext-700-normal-CIu0AXX2.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-ext-700-normal-CIu0AXX2.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-cyrillic-ext-700-normal-D_fA0fHY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-cyrillic-ext-700-normal-D_fA0fHY.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-greek-400-normal-CAI06USH.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-greek-400-normal-CAI06USH.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-greek-400-normal-jFM2czAU.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-greek-400-normal-jFM2czAU.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-greek-700-normal-DCrt6r9F.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-greek-700-normal-DCrt6r9F.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-greek-700-normal-DpKAje7q.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-greek-700-normal-DpKAje7q.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-400-normal-551zQQ7R.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-400-normal-551zQQ7R.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-400-normal-CNwBRw8h.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-400-normal-CNwBRw8h.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-700-normal-CTLkNcF_.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-700-normal-CTLkNcF_.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-700-normal-DZr4b_KL.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-700-normal-DZr4b_KL.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-ext-400-normal-ZYmyxeOy.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-ext-400-normal-ZYmyxeOy.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-ext-400-normal-uRIBRJt5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-ext-400-normal-uRIBRJt5.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-ext-700-normal-BNPgmEQS.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-ext-700-normal-BNPgmEQS.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-latin-ext-700-normal-Cnx4FGpK.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-latin-ext-700-normal-Cnx4FGpK.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-math-400-normal-B3wgz80t.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-math-400-normal-B3wgz80t.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-math-400-normal-DHrwdhE6.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-math-400-normal-DHrwdhE6.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-math-700-normal-CpTCM92H.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-math-700-normal-CpTCM92H.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-math-700-normal-xbpggnJp.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-math-700-normal-xbpggnJp.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-symbols-400-normal-bG5rsNFs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-symbols-400-normal-bG5rsNFs.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-symbols-400-normal-fF1SLJBj.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-symbols-400-normal-fF1SLJBj.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-symbols-700-normal-B2QKVW64.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-symbols-700-normal-B2QKVW64.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-symbols-700-normal-DKkQdRpM.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-symbols-700-normal-DKkQdRpM.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-vietnamese-400-normal-CDDxGrUb.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-vietnamese-400-normal-CDDxGrUb.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-vietnamese-400-normal-DgufTq8s.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-vietnamese-400-normal-DgufTq8s.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-vietnamese-700-normal-BFWtvCOj.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-vietnamese-700-normal-BFWtvCOj.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/roboto-vietnamese-700-normal-ChAl_rRV.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/roboto-vietnamese-700-normal-ChAl_rRV.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-400-normal-DZReXJla.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-400-normal-DZReXJla.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-700-normal-BWdBblwd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-700-normal-BWdBblwd.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-400-normal-AFMiCETP.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-400-normal-AFMiCETP.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff -------------------------------------------------------------------------------- /mac-build/build/static/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/build/static/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2 -------------------------------------------------------------------------------- /mac-build/build/static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Plot Bunni 8 | 56 | 57 | 58 | 59 | 60 |
61 |
62 | 63 | 64 | -------------------------------------------------------------------------------- /mac-build/build/static/rabbit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /mac-build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "plotbunni-mac", 3 | "version": "1.0.0", 4 | "description": "Plot Bunni - Mac Build Configuration", 5 | "main": "build/main.js", 6 | "scripts": { 7 | "start": "electron .", 8 | "build": "node ./scripts/prepare-build.js && electron-builder --mac", 9 | "build-both": "node ./scripts/prepare-build.js && electron-builder --win portable --mac" 10 | }, 11 | "build": { 12 | "appId": "com.fyrean.plotbunni", 13 | "productName": "Plot Bunni", 14 | "files": [ 15 | "build/**/*", 16 | "resources/icon.icns" 17 | ], 18 | "mac": { 19 | "icon": "resources/icon.icns", 20 | "target": ["dmg", "zip"], 21 | "category": "public.app-category.developer-tools" 22 | }, 23 | "compression": "maximum" 24 | }, 25 | "devDependencies": { 26 | "electron": "^28.3.3", 27 | "electron-builder": "^24.13.3", 28 | "fs-extra": "^11.2.0" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /mac-build/resources/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/mac-build/resources/icon.icns -------------------------------------------------------------------------------- /mac-build/scripts/create-mac-icon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get script directory 4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | RESOURCES_DIR="$SCRIPT_DIR/../resources" 6 | ORIGINAL_ICON="$SCRIPT_DIR/../../electron/icon.ico" 7 | 8 | # Create iconset directory 9 | mkdir -p "$RESOURCES_DIR/icon.iconset" 10 | 11 | # Convert icon.ico to PNG images of different sizes 12 | sips -s format png "$ORIGINAL_ICON" --out "$RESOURCES_DIR/icon.png" 13 | for size in 16 32 64 128 256 512; do 14 | sips -z $size $size "$RESOURCES_DIR/icon.png" --out "$RESOURCES_DIR/icon.iconset/icon_${size}x${size}.png" 15 | if [ $size -le 32 ]; then 16 | sips -z $size $size "$RESOURCES_DIR/icon.png" --out "$RESOURCES_DIR/icon.iconset/icon_${size}x${size}@2x.png" 17 | fi 18 | done 19 | 20 | # Create icns file 21 | cd "$RESOURCES_DIR" 22 | iconutil -c icns icon.iconset 23 | 24 | # Clean up 25 | rm -rf icon.iconset icon.png 26 | -------------------------------------------------------------------------------- /mac-build/scripts/prepare-build.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra'); 2 | const path = require('path'); 3 | const { execSync } = require('child_process'); 4 | 5 | // Paths 6 | const rootDir = path.join(__dirname, '..'); 7 | const resourcesDir = path.join(rootDir, 'resources'); 8 | const buildDir = path.join(rootDir, 'build'); 9 | const staticDir = path.join(buildDir, 'static'); 10 | const iconScript = path.join(__dirname, 'create-mac-icon.sh'); 11 | 12 | // Source paths 13 | const projectRoot = path.join(__dirname, '../..'); 14 | const electronDir = path.join(projectRoot, 'electron'); 15 | const distDir = path.join(projectRoot, 'dist'); 16 | 17 | // Clean and create necessary directories 18 | fs.removeSync(buildDir); 19 | fs.removeSync(distDir); 20 | fs.ensureDirSync(resourcesDir); 21 | fs.ensureDirSync(buildDir); 22 | fs.ensureDirSync(staticDir); 23 | 24 | // Install dependencies in the main project 25 | console.log('📦 Installing dependencies...'); 26 | try { 27 | execSync('npm install', { 28 | stdio: 'inherit', 29 | cwd: projectRoot 30 | }); 31 | console.log('✅ Dependencies installed'); 32 | } catch (error) { 33 | console.error('❌ Error installing dependencies:', error); 34 | process.exit(1); 35 | } 36 | 37 | // Build the Vite app 38 | console.log('🏗️ Building Vite app...'); 39 | try { 40 | execSync('npm run build', { 41 | stdio: 'inherit', 42 | cwd: projectRoot 43 | }); 44 | console.log('✅ Vite build successful'); 45 | } catch (error) { 46 | console.error('❌ Error building Vite app:', error); 47 | process.exit(1); 48 | } 49 | 50 | // Copy the built files 51 | console.log('📦 Copying built files...'); 52 | if (fs.existsSync(distDir)) { 53 | fs.copySync(distDir, staticDir); 54 | // Verify the copy 55 | if (!fs.existsSync(path.join(staticDir, 'index.html'))) { 56 | console.error('❌ index.html not found in static directory after copy'); 57 | process.exit(1); 58 | } 59 | console.log('✅ Built files copied successfully'); 60 | } else { 61 | console.error('❌ Dist directory not found. Make sure the Vite build was successful.'); 62 | process.exit(1); 63 | } 64 | 65 | // Copy and modify main.js 66 | console.log('📦 Copying and updating main.js...'); 67 | let mainJsContent = fs.readFileSync(path.join(electronDir, 'main.js'), 'utf8'); 68 | 69 | // Update the path to the index.html file 70 | mainJsContent = mainJsContent.replace( 71 | "win.loadFile(path.join(__dirname, 'static', 'index.html'))", 72 | "win.loadFile(path.join(__dirname, 'static', 'index.html'))" 73 | ); 74 | 75 | fs.writeFileSync(path.join(buildDir, 'main.js'), mainJsContent); 76 | 77 | // Make icon conversion script executable and run it 78 | try { 79 | fs.chmodSync(iconScript, '755'); 80 | execSync(iconScript, { stdio: 'inherit' }); 81 | console.log('✅ Mac icon created successfully'); 82 | } catch (error) { 83 | console.error('❌ Error creating Mac icon:', error); 84 | process.exit(1); 85 | } 86 | 87 | console.log('✅ Build preparation complete'); 88 | 89 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "claudetemplate", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint .", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@fontsource/inter": "^5.2.5", 14 | "@fontsource/lato": "^5.2.5", 15 | "@fontsource/montserrat": "^5.2.5", 16 | "@fontsource/open-sans": "^5.2.5", 17 | "@fontsource/poppins": "^5.2.6", 18 | "@fontsource/roboto": "^5.2.5", 19 | "@fontsource/source-sans-3": "^5.2.7", 20 | "@hookform/resolvers": "^3.9.0", 21 | "@radix-ui/react-accordion": "^1.2.0", 22 | "@radix-ui/react-alert-dialog": "^1.1.1", 23 | "@radix-ui/react-aspect-ratio": "^1.1.0", 24 | "@radix-ui/react-avatar": "^1.1.0", 25 | "@radix-ui/react-checkbox": "^1.1.1", 26 | "@radix-ui/react-collapsible": "^1.1.0", 27 | "@radix-ui/react-context-menu": "^2.2.1", 28 | "@radix-ui/react-dialog": "^1.1.1", 29 | "@radix-ui/react-dropdown-menu": "^2.1.1", 30 | "@radix-ui/react-hover-card": "^1.1.1", 31 | "@radix-ui/react-label": "^2.1.0", 32 | "@radix-ui/react-menubar": "^1.1.1", 33 | "@radix-ui/react-navigation-menu": "^1.2.0", 34 | "@radix-ui/react-popover": "^1.1.1", 35 | "@radix-ui/react-progress": "^1.1.0", 36 | "@radix-ui/react-radio-group": "^1.2.0", 37 | "@radix-ui/react-scroll-area": "^1.1.0", 38 | "@radix-ui/react-select": "^2.1.1", 39 | "@radix-ui/react-separator": "^1.1.0", 40 | "@radix-ui/react-slider": "^1.2.0", 41 | "@radix-ui/react-slot": "^1.1.0", 42 | "@radix-ui/react-switch": "^1.1.0", 43 | "@radix-ui/react-tabs": "^1.1.0", 44 | "@radix-ui/react-toast": "^1.2.1", 45 | "@radix-ui/react-toggle": "^1.1.0", 46 | "@radix-ui/react-toggle-group": "^1.1.0", 47 | "@radix-ui/react-tooltip": "^1.1.2", 48 | "class-variance-authority": "^0.7.0", 49 | "clsx": "^2.1.1", 50 | "cmdk": "^1.0.0", 51 | "date-fns": "^3.6.0", 52 | "embla-carousel-react": "^8.3.0", 53 | "i18n": "^0.15.1", 54 | "i18next": "^25.1.3", 55 | "i18next-browser-languagedetector": "^8.1.0", 56 | "input-otp": "^1.2.4", 57 | "jszip": "^3.10.1", 58 | "lucide-react": "^0.427.0", 59 | "next-themes": "^0.3.0", 60 | "pdfmake": "^0.2.20", 61 | "react": "^18.3.1", 62 | "react-colorful": "^5.6.1", 63 | "react-day-picker": "^8.10.1", 64 | "react-dom": "^18.3.1", 65 | "react-hook-form": "^7.53.0", 66 | "react-i18next": "^15.5.1", 67 | "react-joyride": "^2.9.3", 68 | "react-markdown": "^8.0.7", 69 | "react-resizable-panels": "^2.1.3", 70 | "react-router-dom": "^7.6.0", 71 | "recharts": "^2.12.7", 72 | "sonner": "^1.5.0", 73 | "tailwind-merge": "^2.4.0", 74 | "tailwindcss-animate": "^1.0.7", 75 | "uuid": "^11.1.0", 76 | "vaul": "^1.0.0", 77 | "zod": "^3.23.8" 78 | }, 79 | "devDependencies": { 80 | "@eslint/js": "^9.8.0", 81 | "@tailwindcss/typography": "^0.5.16", 82 | "@types/react": "^18.3.3", 83 | "@types/react-dom": "^18.3.0", 84 | "@vitejs/plugin-react": "^4.3.1", 85 | "autoprefixer": "^10.4.20", 86 | "eslint": "^9.8.0", 87 | "eslint-plugin-react": "^7.35.0", 88 | "eslint-plugin-react-hooks": "^5.1.0-rc.0", 89 | "eslint-plugin-react-refresh": "^0.4.9", 90 | "globals": "^15.9.0", 91 | "postcss": "^8.4.41", 92 | "tailwindcss": "^3.4.9", 93 | "vite": "^5.4.0" 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/discord.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /public/rabbit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MangoLion/plotbunni/a5eda1cc6aa24191236456cea0969f911c7b0373/src/App.css -------------------------------------------------------------------------------- /src/RootApp.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useTranslation } from 'react-i18next'; 3 | import { 4 | createHashRouter, 5 | RouterProvider, 6 | useParams, 7 | } from 'react-router-dom'; 8 | import App from './App'; 9 | import NovelGridView from './components/novel/NovelGridView'; 10 | import { DataProvider } from './context/DataContext'; 11 | import { SettingsProvider } from './context/SettingsContext'; 12 | 13 | // Novel Editor View Layout 14 | // Extracts novelId from params and provides DataContext for that novel 15 | const NovelEditorLayout = () => { 16 | const { novelId } = useParams(); 17 | const { t } = useTranslation(); 18 | 19 | if (!novelId) { 20 | // This case should ideally be handled by routing or a redirect 21 | // For now, show a message or redirect to home. 22 | return ( 23 |
24 |

{t('root_app_error_no_novel_id')}

25 | {t('root_app_go_to_novels_link')} 26 |
27 | ); 28 | } 29 | 30 | return ( 31 | 32 | 33 | 34 | ); 35 | }; 36 | 37 | const router = createHashRouter([ 38 | { 39 | path: '/', 40 | element: , 41 | }, 42 | { 43 | path: '/novel/:novelId', 44 | element: , // Use a layout component to grab params 45 | }, 46 | ]); 47 | 48 | function RootApp() { 49 | return ( 50 | 51 | 52 | 53 | ); 54 | } 55 | 56 | export default RootApp; 57 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/ai/FullscreenTextareaEditModal.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from 'react'; 2 | import { useTranslation } from 'react-i18next'; 3 | import { 4 | Dialog, 5 | DialogContent, 6 | DialogHeader, 7 | DialogTitle, 8 | DialogFooter, 9 | } from '@/components/ui/dialog'; 10 | import { Button } from '@/components/ui/button'; 11 | import { Textarea } from '@/components/ui/textarea'; 12 | import { Label } from '@/components/ui/label'; 13 | 14 | export const FullscreenTextareaEditModal = ({ 15 | isOpen, 16 | onClose, 17 | initialValue, 18 | onSave, 19 | title, 20 | textareaId, 21 | }) => { 22 | const { t } = useTranslation(); 23 | const [currentValue, setCurrentValue] = useState(initialValue); 24 | 25 | useEffect(() => { 26 | if (isOpen) { 27 | setCurrentValue(initialValue); 28 | } 29 | }, [isOpen, initialValue]); 30 | 31 | const handleSave = () => { 32 | onSave(currentValue); 33 | onClose(); 34 | }; 35 | 36 | const handleCancel = () => { 37 | onClose(); 38 | }; 39 | 40 | if (!isOpen) { 41 | return null; 42 | } 43 | 44 | return ( 45 | !open && handleCancel()}> 46 | 47 | 48 | {title || t('fullscreen_textarea_edit_modal_default_title', 'Edit Text')} 49 | 50 |
51 | {textareaId && } 52 |