From 2333aec603a7d0aeca11357192f0c4ddbc1df6fb Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Mon, 2 Dec 2024 22:59:45 +0100 Subject: [PATCH] initial commit --- .editorconfig | 12 + .github/dependabot.yml | 8 + .github/workflows/ci.yml | 70 ++++++ .gitignore | 196 +++++++++++++++ .vscode/settings.json | 15 ++ .vscode/tasks.json | 11 + LICENSE | 21 ++ README.md | 7 + bun.lockb | Bin 0 -> 240768 bytes components.json | 20 ++ eslint.config.js | 31 +++ index.html | 26 ++ package.json | 72 ++++++ postcss.config.js | 6 + public/apple-touch-icon.png | Bin 0 -> 11656 bytes public/favicon.ico | Bin 0 -> 5238 bytes public/icon-192-maskable.png | Bin 0 -> 12590 bytes public/icon-192.png | Bin 0 -> 16242 bytes public/icon-512-maskable.png | Bin 0 -> 48375 bytes public/icon-512.png | Bin 0 -> 58673 bytes public/manifest.json | 46 ++++ src/assets/fileJson.svg | 61 +++++ src/assets/fileXml.svg | 57 +++++ src/assets/undraw_no_data_re_kwbl.svg | 1 + src/components/ActionTooltip.tsx | 47 ++++ src/components/AppSettingsDialog.tsx | 73 ++++++ src/components/AppTemplatesDialog.tsx | 163 +++++++++++++ src/components/ComponentChooseDialog.tsx | 126 ++++++++++ src/components/DarkModeToggle.tsx | 29 +++ src/components/Devtools.tsx | 28 +++ src/components/TemplateSaveDialog.tsx | 92 +++++++ src/components/context/editor/context.ts | 22 ++ src/components/context/editor/provider.tsx | 83 +++++++ src/components/context/settings/context.ts | 25 ++ src/components/context/settings/provider.tsx | 67 ++++++ src/components/context/storage/context.ts | 18 ++ src/components/context/storage/provider.tsx | 87 +++++++ src/components/ui/alert-dialog.tsx | 139 +++++++++++ src/components/ui/button.tsx | 57 +++++ src/components/ui/card.tsx | 76 ++++++ src/components/ui/dialog.tsx | 120 ++++++++++ src/components/ui/form.tsx | 176 ++++++++++++++ src/components/ui/input.tsx | 25 ++ src/components/ui/label.tsx | 24 ++ src/components/ui/menubar.tsx | 238 +++++++++++++++++++ src/components/ui/popover.tsx | 31 +++ src/components/ui/scroll-area.tsx | 46 ++++ src/components/ui/select.tsx | 156 ++++++++++++ src/components/ui/toast.tsx | 127 ++++++++++ src/components/ui/toaster.tsx | 33 +++ src/components/ui/tooltip.tsx | 28 +++ src/hooks/use-app-editor.ts | 6 + src/hooks/use-app-settings.ts | 6 + src/hooks/use-app-storage.ts | 6 + src/hooks/use-range.ts | 15 ++ src/hooks/use-toast.ts | 191 +++++++++++++++ src/index.css | 86 +++++++ src/lib/dot-prop.ts | 38 +++ src/lib/storage.ts | 41 ++++ src/lib/utils.ts | 6 + src/main.tsx | 17 ++ src/mjml/components.ts | 100 ++++++++ src/mjml/convert.ts | 55 +++++ src/mjml/guard.ts | 9 + src/mjml/types.ts | 33 +++ src/pages/PageJsonEditor.tsx | 209 ++++++++++++++++ src/providers.tsx | 30 +++ src/router.ts | 13 + src/routes/__root.tsx | 37 +++ src/routes/index.lazy.tsx | 6 + src/vite-env.d.ts | 1 + tailwind.config.js | 77 ++++++ tsconfig.app.json | 35 +++ tsconfig.json | 19 ++ tsconfig.node.json | 25 ++ vite.config.ts | 60 +++++ 76 files changed, 3917 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 LICENSE create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 components.json create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon.ico create mode 100644 public/icon-192-maskable.png create mode 100644 public/icon-192.png create mode 100644 public/icon-512-maskable.png create mode 100644 public/icon-512.png create mode 100644 public/manifest.json create mode 100644 src/assets/fileJson.svg create mode 100644 src/assets/fileXml.svg create mode 100644 src/assets/undraw_no_data_re_kwbl.svg create mode 100644 src/components/ActionTooltip.tsx create mode 100644 src/components/AppSettingsDialog.tsx create mode 100644 src/components/AppTemplatesDialog.tsx create mode 100644 src/components/ComponentChooseDialog.tsx create mode 100644 src/components/DarkModeToggle.tsx create mode 100644 src/components/Devtools.tsx create mode 100644 src/components/TemplateSaveDialog.tsx create mode 100644 src/components/context/editor/context.ts create mode 100644 src/components/context/editor/provider.tsx create mode 100644 src/components/context/settings/context.ts create mode 100644 src/components/context/settings/provider.tsx create mode 100644 src/components/context/storage/context.ts create mode 100644 src/components/context/storage/provider.tsx create mode 100644 src/components/ui/alert-dialog.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/card.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/form.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/menubar.tsx create mode 100644 src/components/ui/popover.tsx create mode 100644 src/components/ui/scroll-area.tsx create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/toast.tsx create mode 100644 src/components/ui/toaster.tsx create mode 100644 src/components/ui/tooltip.tsx create mode 100644 src/hooks/use-app-editor.ts create mode 100644 src/hooks/use-app-settings.ts create mode 100644 src/hooks/use-app-storage.ts create mode 100644 src/hooks/use-range.ts create mode 100644 src/hooks/use-toast.ts create mode 100644 src/index.css create mode 100644 src/lib/dot-prop.ts create mode 100644 src/lib/storage.ts create mode 100644 src/lib/utils.ts create mode 100644 src/main.tsx create mode 100644 src/mjml/components.ts create mode 100644 src/mjml/convert.ts create mode 100644 src/mjml/guard.ts create mode 100644 src/mjml/types.ts create mode 100644 src/pages/PageJsonEditor.tsx create mode 100644 src/providers.tsx create mode 100644 src/router.ts create mode 100644 src/routes/__root.tsx create mode 100644 src/routes/index.lazy.tsx create mode 100644 src/vite-env.d.ts create mode 100644 tailwind.config.js create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..71b67b1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +trim_trailing_whitespace = true +insert_final_newline = true + +[*.yml] +indent_size = 2 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..2c48dea --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + - directory: /.github/workflows + package-ecosystem: github-actions + schedule: + interval: monthly + - directory: / + package-ecosystem: npm diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..8db4485 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.x + + - uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('bun.lockb') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install Dependencies + run: bun install --frozen-lockfile + + - name: Build + run: bun run build + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/ + + deploy: + runs-on: ubuntu-latest + if: github.event_name == 'push' + needs: + - build + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/download-artifact@v4 + with: + name: dist + + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: dist/ + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28dc2b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,196 @@ +# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,node +# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,macos,node + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,macos,node diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7859abc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "editor.foldingImportsByDefault": true, + "editor.defaultFormatter": null, + "editor.formatOnSave": true, + "editor.linkedEditing": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "[typescript]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "dbaeumer.vscode-eslint" + }, +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..db55d61 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,11 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "dev", + "type": "bun", + "script": "dev", + "group": "none", + } + ] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..947e398 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Axel Rindle + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b0cd87 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# mjml.app + +> ✉️ A playground with live-preview capabilities for MJML, the Mailjet Markup Language + +## License + +[MIT](LICENSE) diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..bc0e0949ac515a6476caf867e69ecb3fd7be6048 GIT binary patch literal 240768 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 YBbi<;tjLxep!}`EtLFUA|LK4K0}sS!ssI20 literal 0 HcmV?d00001 diff --git a/components.json b/components.json new file mode 100644 index 0000000..24510b2 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/index.css", + "baseColor": "stone", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..a02cb09 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,31 @@ +import { configActDefault, configActReact } from '@actcoding/eslint-config' +import pluginQuery from '@tanstack/eslint-plugin-query' + +/** @type import('eslint').Linter.Config[] */ +const config = [ + ...configActDefault, + ...configActReact, + { + name: 'app/ignores', + ignores: [ + '*.d.ts', + ], + }, + { + name: 'app/react', + rules: { + '@react/react-in-jsx-scope': 'off', + '@react/prop-types': 'off', + }, + }, + { + name: 'app/tailwind', + rules: { + '@tailwindcss/no-custom-classname': 'off', + }, + }, + + ...pluginQuery.configs['flat/recommended'], +] + +export default config diff --git a/index.html b/index.html new file mode 100644 index 0000000..ad4205b --- /dev/null +++ b/index.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + MJML Playground + + + +
+ + + + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..34f7fec --- /dev/null +++ b/package.json @@ -0,0 +1,72 @@ +{ + "private": true, + "name": "mjml.app", + "description": "✉️ A playground with live-preview capabilities for MJML, the Mailjet Markup Language", + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@dnd-kit/core": "^6.1.0", + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", + "@fortawesome/react-fontawesome": "^0.2.2", + "@hookform/resolvers": "^3.9.0", + "@radix-ui/react-alert-dialog": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-menubar": "^1.1.2", + "@radix-ui/react-popover": "^1.1.2", + "@radix-ui/react-scroll-area": "^1.2.0", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-toast": "^1.2.2", + "@radix-ui/react-tooltip": "^1.1.3", + "@tanstack/react-query": "^5.61.5", + "@tanstack/react-router": "^1.70.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "dot-prop": "^9.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-minify-whitespace": "^1.0.1", + "hast-util-to-html": "^9.0.3", + "json-edit-react": "^1.17.0", + "lucide-react": "^0.453.0", + "mjml-browser": "^4.15.3", + "nanoid": "^5.0.7", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.0", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7", + "usehooks-ts": "^3.1.0", + "zod": "^3.23.8" + }, + "devDependencies": { + "@actcoding/eslint-config": "^0.0.8", + "@tanstack/eslint-plugin-query": "^5.61.4", + "@tanstack/react-query-devtools": "^5.61.5", + "@tanstack/router-devtools": "^1.70.0", + "@tanstack/router-plugin": "^1.69.1", + "@types/hast": "^3.0.4", + "@types/mjml-browser": "^4.15.0", + "@types/mjml-core": "^4.15.0", + "@types/node": "^22.7.6", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.2", + "autoprefixer": "^10.4.20", + "eslint": "^9.11.1", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.14", + "type-fest": "^4.26.1", + "typescript": "^5.5.3", + "vite": "^5.4.8" + } +} \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..d41ad63 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..aa18f994002c4c1517755a0f42bfbca00c81c1f0 GIT binary patch literal 11656 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 LEybGWmf`;cbkMl5 literal 0 HcmV?d00001 diff --git a/public/icon-192.png b/public/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..9723c8622e713786e5dcab19421efb2678f52bf7 GIT binary patch literal 16242 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 S>=4U2l+z%AH9kxF`&CXY* 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 U#`D`gng9R*07*qoM6N<$g2_#ZRsaA1 literal 0 HcmV?d00001 diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..0f908c3 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json.schemastore.org/web-manifest-combined.json", + "background_color": "#eb5f3f", + "theme_color": "#eb5f3f", + "lang": "en", + "dir": "ltr", + "orientation": "landscape", + "display": "standalone", + "categories": [ + "developer tools", + "utilities", + "design" + ], + "name": "MJML Playground", + "short_name": "MJML", + "description": "✉️ A playground with live-preview capabilities for MJML, the Mailjet Markup Language", + "icons": [ + { + "src": "/favicon.ico", + "type": "image/x-icon", + "sizes": "16x16 32x32" + }, + { + "src": "/icon-192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/icon-512.png", + "type": "image/png", + "sizes": "512x512" + }, + { + "src": "/icon-192-maskable.png", + "type": "image/png", + "sizes": "192x192", + "purpose": "maskable" + }, + { + "src": "/icon-512-maskable.png", + "type": "image/png", + "sizes": "512x512", + "purpose": "maskable" + } + ] +} \ No newline at end of file diff --git a/src/assets/fileJson.svg b/src/assets/fileJson.svg new file mode 100644 index 0000000..b22a791 --- /dev/null +++ b/src/assets/fileJson.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + diff --git a/src/assets/fileXml.svg b/src/assets/fileXml.svg new file mode 100644 index 0000000..c97a17a --- /dev/null +++ b/src/assets/fileXml.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + diff --git a/src/assets/undraw_no_data_re_kwbl.svg b/src/assets/undraw_no_data_re_kwbl.svg new file mode 100644 index 0000000..36d0aca --- /dev/null +++ b/src/assets/undraw_no_data_re_kwbl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/ActionTooltip.tsx b/src/components/ActionTooltip.tsx new file mode 100644 index 0000000..e886e00 --- /dev/null +++ b/src/components/ActionTooltip.tsx @@ -0,0 +1,47 @@ +import { IconDefinition } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { ReactNode } from '@tanstack/react-router' +import { Simplify } from 'type-fest' +import { Button } from './ui/button' +import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip' + +type Props = Simplify<{ + label: string + icon: IconDefinition | string + action?: () => void | Promise + children?: (children: ReactNode) => ReactNode +}> + +function Icon({ icon }: Props) { + if (typeof icon === 'string') { + return + } + + return +} + +function IconButton(props: Props) { + return ( + + ) +} + +export default function ActionTooltip(props: Props) { + return ( + + + {props.children ? props.children(IconButton(props)) : IconButton(props)} + + +

+ {props.label} +

+
+
+ ) +} diff --git a/src/components/AppSettingsDialog.tsx b/src/components/AppSettingsDialog.tsx new file mode 100644 index 0000000..84ddeb2 --- /dev/null +++ b/src/components/AppSettingsDialog.tsx @@ -0,0 +1,73 @@ +import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from '@/components/ui/alert-dialog' +import { Button } from '@/components/ui/button' +import { useAppSettings } from '@/hooks/use-app-settings' +import { faCog } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { zodResolver } from '@hookform/resolvers/zod' +import { useCallback, useState } from 'react' +import { useForm } from 'react-hook-form' +import { AppSettings, appSettingsSchema } from './context/settings/context' +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from './ui/form' +import { Input } from './ui/input' + +export default function AppSettingsDialog() { + const { settings, overwriteSettings } = useAppSettings() + + const [open, setOpen] = useState(false) + + const form = useForm({ + resolver: zodResolver(appSettingsSchema), + defaultValues: settings, + }) + + const onSubmit = useCallback((values: AppSettings) => { + overwriteSettings(values) + setOpen(false) + }, [overwriteSettings, setOpen]) + + return ( + + + + + +
+ + + + Settings + + + Customize the application to your likings. + + + ( + + Editor Font Size + + + + + + )} + /> + + + Cancel + + +
+ +
+
+ ) +} diff --git a/src/components/AppTemplatesDialog.tsx b/src/components/AppTemplatesDialog.tsx new file mode 100644 index 0000000..f8745e3 --- /dev/null +++ b/src/components/AppTemplatesDialog.tsx @@ -0,0 +1,163 @@ +import { useAppEditor } from '@/hooks/use-app-editor' +import { useAppStorage } from '@/hooks/use-app-storage' +import { useToast } from '@/hooks/use-toast' +import { cn } from '@/lib/utils' +import { faFileCode, faTrash } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { zodResolver } from '@hookform/resolvers/zod' +import { useCallback, useMemo } from 'react' +import { useForm } from 'react-hook-form' +import { z } from 'zod' +import { Button } from './ui/button' +import { Card, CardHeader, CardTitle } from './ui/card' +import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './ui/dialog' +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from './ui/form' +import { Input } from './ui/input' +import { ScrollArea } from './ui/scroll-area' + +import imageEmpty from '@/assets/undraw_no_data_re_kwbl.svg' +import { MJMLJsonObject } from '@/mjml/types' + +const formSchema = z.strictObject({ + search: z.string(), +}) + +type FormSchema = z.infer + +export default function AppTemplatesDialog() { + const { toast } = useToast() + + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + search: '', + }, + }) + + const onSubmit = useCallback((values: FormSchema) => { + console.log(values) + }, []) + + const { templates, removeTemplate } = useAppStorage() + const amount = useMemo(() => Object.keys(templates).length, [templates]) + + const { search } = form.watch() + const filteredTemplates = useMemo(() => { + const entries = Object.entries(templates) + if (search.length === 0) { + return entries + } + + return entries.filter(([e]) => e.toLocaleLowerCase().includes(search.toLocaleLowerCase())) + }, [search, templates]) + + const editor = useAppEditor() + const onSelect = useCallback((name: string, data: MJMLJsonObject) => { + editor.filename[1](name) + editor.data[1](data) + + toast({ + title: 'Template geladen', + }) + }, [editor.data, editor.filename, toast]) + + return ( + + + + + + + + Templates + + + Choose a template to load or create a blank template. + + + +
+ + ( + + Search + + + + + + )} + /> + + + + + +
+ {filteredTemplates.length === 0 ? + ( +
+ +

+ Noch nichts gespeichert. +

+
+ ) : + filteredTemplates.map(([name, data], i) => ( +
+ onSelect(name, data)} + > + + + {name} + + + + +
+ )) + } +
+ +
+ + +

+ {search.length === 0 + ? ( + {amount} templates available + ) + : ( + {filteredTemplates.length} / {amount} templates available + ) + } +

+
+ + Close + +
+
+
+ ) +} diff --git a/src/components/ComponentChooseDialog.tsx b/src/components/ComponentChooseDialog.tsx new file mode 100644 index 0000000..3b28c8a --- /dev/null +++ b/src/components/ComponentChooseDialog.tsx @@ -0,0 +1,126 @@ +import { MjmlComponent, mjmlComponents } from '@/mjml/components' +import { faExternalLink } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { zodResolver } from '@hookform/resolvers/zod' +import { useCallback } from 'react' +import { useForm } from 'react-hook-form' +import { UnionToTuple } from 'type-fest' +import { z } from 'zod' +import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from './ui/alert-dialog' +import { Button } from './ui/button' +import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from './ui/form' +import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from './ui/select' + +const components = Object.values(mjmlComponents).reduce((a, b) => [...a, ...b], []) as UnionToTuple + +const formSchema = z.strictObject({ + component: z.enum(components), +}) + +type FormSchema = z.infer + +type Props = { + open: boolean + setOpen: (open: boolean) => void + onSubmit: (values: FormSchema) => void +} + +export default function ComponentChooseDialog({ + onSubmit, + open, setOpen, +}: Props) { + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + component: 'mj-text', + }, + }) + + const handleSubmit = useCallback((values: FormSchema) => { + onSubmit(values) + setOpen(false) + }, [onSubmit, setOpen]) + + return ( + + + + + Add Component + + + Choose an MJML component to insert into the tree. + + + +
+ + ( + + + MJML Component + + + + An extensive documentation on all the components can be + found in the MJML documentation + + + + )} + /> + + + + + + + + + +
+
+ ) +} diff --git a/src/components/DarkModeToggle.tsx b/src/components/DarkModeToggle.tsx new file mode 100644 index 0000000..1f441b5 --- /dev/null +++ b/src/components/DarkModeToggle.tsx @@ -0,0 +1,29 @@ +import { useDarkMode } from 'usehooks-ts' +import { Button } from './ui/button' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { faMoon, faSun } from '@fortawesome/free-solid-svg-icons' +import { useEffect } from 'react' + +const element = document.querySelector('html') as HTMLHtmlElement + +export default function DarkModeToggle() { + const { isDarkMode, toggle } = useDarkMode() + + useEffect(() => { + if (isDarkMode) { + element.classList.add('dark') + } else { + element.classList.remove('dark') + } + }, [isDarkMode]) + + return ( + + ) +} diff --git a/src/components/Devtools.tsx b/src/components/Devtools.tsx new file mode 100644 index 0000000..959c10b --- /dev/null +++ b/src/components/Devtools.tsx @@ -0,0 +1,28 @@ +import { lazy, Suspense } from 'react' + +const TanStackRouterDevtools = + process.env.NODE_ENV === 'production' + ? () => null + : lazy(() => + import('@tanstack/router-devtools').then((res) => ({ + default: res.TanStackRouterDevtools, + })), + ) + +const TanStackQueryDevtools = + process.env.NODE_ENV === 'production' + ? () => null + : lazy(() => + import('@tanstack/react-query-devtools').then((res) => ({ + default: res.ReactQueryDevtools, + })), + ) + +export default function Devtools() { + return (<> + + + + + ) +} diff --git a/src/components/TemplateSaveDialog.tsx b/src/components/TemplateSaveDialog.tsx new file mode 100644 index 0000000..a6e94f9 --- /dev/null +++ b/src/components/TemplateSaveDialog.tsx @@ -0,0 +1,92 @@ +import { useAppEditor } from '@/hooks/use-app-editor' +import { useAppStorage } from '@/hooks/use-app-storage' +import { zodResolver } from '@hookform/resolvers/zod' +import { PropsWithChildren, useCallback, useMemo, useState } from 'react' +import { useForm } from 'react-hook-form' +import { z } from 'zod' +import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from './ui/alert-dialog' +import { Button } from './ui/button' +import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from './ui/form' +import { Input } from './ui/input' + +export default function TemplateSaveDialog({ children }: PropsWithChildren) { + const { + data: [data], + filename: [filename, setFilename], + } = useAppEditor() + + const { hasTemplate, saveTemplate } = useAppStorage() + + const [open, setOpen] = useState(false) + + const formSchema = useMemo(() => z.strictObject({ + filename: z.string().min(1), + }), []) + + type FormSchema = z.infer + + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + filename, + }, + }) + + const onSubmit = useCallback((values: FormSchema) => { + saveTemplate(values.filename, data) + + setFilename(values.filename) + form.reset(values) + + setOpen(false) + }, [data, form, saveTemplate, setFilename]) + + const values = form.watch() + const exists = useMemo(() => hasTemplate(values.filename), [hasTemplate, values.filename]) + + return ( + + {children} + + + + Speichern + + + +
+ + ( + + Filename + + + + + + )} + /> + + + + Abbrechen + + {exists ? ( + + ) : ( + + )} + + + +
+
+ ) +} diff --git a/src/components/context/editor/context.ts b/src/components/context/editor/context.ts new file mode 100644 index 0000000..62f29a8 --- /dev/null +++ b/src/components/context/editor/context.ts @@ -0,0 +1,22 @@ +import { MJMLJsonObject, ZMJMLJsonObject } from '@/mjml/types' +import { createContext, Dispatch, SetStateAction } from 'react' +import { z } from 'zod' + +export const appEditorSchema = z.strictObject({ + filename: z.string().optional(), + data: ZMJMLJsonObject, +}) + +export type AppEditorSchema = z.infer + +type State = [S, Dispatch>] +type LocalStorageState = [...State, () => void] + +export type Context = { + filename: LocalStorageState + data: State + persist: () => void + reset: () => void +} + +export const AppEditorContext = createContext({} as Context) diff --git a/src/components/context/editor/provider.tsx b/src/components/context/editor/provider.tsx new file mode 100644 index 0000000..3efa12e --- /dev/null +++ b/src/components/context/editor/provider.tsx @@ -0,0 +1,83 @@ +import { MJMLJsonObject } from '@/mjml/types' +import { PropsWithChildren, useState } from 'react' +import { AppEditorContext, Context } from './context' +import { useLocalStorage } from 'usehooks-ts' + +const storageKey = 'template' + +const defaultData: MJMLJsonObject = { + tagName: 'mjml', + children: [ + { + tagName: 'mj-head', + children: [ + { + tagName: 'mj-attributes', + children: [ + { + tagName: 'mj-all', + attributes: { + 'font-family': 'sans-serif', + }, + }, + { + tagName: 'mj-text', + attributes: { + 'font-size': '14px', + }, + }, + ], + }, + ], + }, + { + tagName: 'mj-body', + attributes: { + 'background-color': '#f1f5f9', + }, + children: [ + { + tagName: 'mj-section', + children: [ + { + tagName: 'mj-column', + children: [ + { + tagName: 'mj-text', + content: 'Hello World', + }, + ], + }, + ], + }, + ], + }, + ], +} +const initialData = localStorage.getItem(storageKey) + +export function AppEditorProvider({ children }: PropsWithChildren) { + const filename = useLocalStorage('lastFilename', 'template.mjml') + const data = useState( + initialData !== null + ? JSON.parse(initialData) + : defaultData, + ) + + const context: Context = { + filename, + data, + persist() { + localStorage.setItem(storageKey, JSON.stringify(data[0])) + }, + reset() { + data[1](defaultData) + }, + } + + return ( + + {children} + + ) +} diff --git a/src/components/context/settings/context.ts b/src/components/context/settings/context.ts new file mode 100644 index 0000000..b38edd8 --- /dev/null +++ b/src/components/context/settings/context.ts @@ -0,0 +1,25 @@ +import { createContext } from 'react' +import type { Get, Paths } from 'type-fest' +import { z } from 'zod' + +export const appSettingsSchema = z.strictObject({ + editor: z.strictObject({ + fontSize: z.coerce.number().int().min(8).max(20), + }), +}) + +export type AppSettings = z.infer + +export type Context = { + settings: AppSettings + updateSettings: >(key: Path, value: Get) => void + overwriteSettings: (newSettings: AppSettings) => void +} + +export const AppSettingsContext = createContext({ + settings: { + editor: { + fontSize: 14, + }, + }, +} as Context) diff --git a/src/components/context/settings/provider.tsx b/src/components/context/settings/provider.tsx new file mode 100644 index 0000000..dfc0ab2 --- /dev/null +++ b/src/components/context/settings/provider.tsx @@ -0,0 +1,67 @@ +import { PropsWithChildren, useEffect, useMemo, useState } from 'react' +import { AppSettings, AppSettingsContext, appSettingsSchema, Context } from './context' +import { setProperty } from 'dot-prop' + +const defaultSettings: AppSettings = { + editor: { + fontSize: 14, + }, +} + +const storageKey = 'app-settings' + +export function AppSettingsProvider({ children }: PropsWithChildren) { + const [ready, setReady] = useState(false) + const [settings, setSettings] = useState(defaultSettings) + + const context = useMemo(() => ({ + settings, + updateSettings(key, value) { + const copy = Object.assign({}, settings) + + setProperty(copy, key, value) + setSettings(copy) + }, + overwriteSettings(newSettings) { + setSettings(newSettings) + }, + }), [settings]) + + // persistence + useEffect(() => { + if (!ready) { + return + } + + localStorage.setItem(storageKey, JSON.stringify(settings)) + }, [ready, settings]) + + // initial load + useEffect(() => { + const fromStorage = localStorage.getItem(storageKey) + if (fromStorage === null) { + setReady(true) + return + } + + try { + const parsed = JSON.parse(fromStorage) + const validated = appSettingsSchema.parse(parsed) + setSettings(validated) + } catch (error) { + // ignore + } finally { + setReady(true) + } + }, []) + + if (!ready) { + return null + } + + return ( + + {children} + + ) +} diff --git a/src/components/context/storage/context.ts b/src/components/context/storage/context.ts new file mode 100644 index 0000000..7b87cdc --- /dev/null +++ b/src/components/context/storage/context.ts @@ -0,0 +1,18 @@ +import { MJMLJsonObject, ZMJMLJsonObject } from '@/mjml/types' +import { createContext } from 'react' +import { z } from 'zod' + +export const ZTemplates = z.record(z.string().min(1), ZMJMLJsonObject) + +export type Templates = z.infer + +export type Context = { + templates: Templates + + getTemplate: (name: string) => MJMLJsonObject | undefined + hasTemplate: (name: string) => boolean + saveTemplate: (name: string, data: MJMLJsonObject) => void + removeTemplate: (name: string) => void +} + +export const AppStorageContext = createContext({} as Context) diff --git a/src/components/context/storage/provider.tsx b/src/components/context/storage/provider.tsx new file mode 100644 index 0000000..fe02710 --- /dev/null +++ b/src/components/context/storage/provider.tsx @@ -0,0 +1,87 @@ +import { useToast } from '@/hooks/use-toast' +import { MJMLJsonObject } from '@/mjml/types' +import { useMutation, UseMutationResult, useQuery, UseQueryResult } from '@tanstack/react-query' +import { PropsWithChildren, useCallback, useMemo } from 'react' +import { AppStorageContext, Context, Templates, ZTemplates } from './context' + +const storageKey = 'templates' + +// TODO: Use IndexedDB or something else more db-like + +function useTemplates(): [UseQueryResult, UseMutationResult] { + const { toast } = useToast() + + const query = useQuery({ + queryKey: ['templates'], + initialData: {}, + queryFn: () => { + const data = localStorage.getItem(storageKey) + if (data === null) { + localStorage.setItem(storageKey, '{}') + return {} + } + + const { success, data: parsed, error } = ZTemplates.safeParse(JSON.parse(data)) + if (!success) { + toast({ + title: 'Failed to load templates!', + description: error.message, + variant: 'destructive', + }) + console.error(error) + + localStorage.setItem(`${storageKey}-backup`, data) + localStorage.setItem(storageKey, '{}') + return {} + } + + return parsed + }, + }) + + const mutation = useMutation({ + mutationFn: async (templates: Templates) => { + localStorage.setItem(storageKey, JSON.stringify(templates)) + await query.refetch() + }, + }) + + return [query, mutation] +} + +export function AppStorageProvider({ children }: PropsWithChildren) { + const [ + { data }, + { mutate }, + ] = useTemplates() + + const templates = useMemo(() => data ?? {}, [data]) + + const getTemplate = useCallback((name: string) => templates[name], [templates]) + const hasTemplate = useCallback((name: string) => getTemplate(name) !== undefined, [getTemplate]) + const removeTemplate = useCallback((name: string) => { + const filtered = Object.fromEntries(Object.entries(templates).filter(([key]) => key !== name)) + mutate(filtered) + }, [mutate, templates]) + const saveTemplate = useCallback((name: string, data: MJMLJsonObject) => { + mutate({ + ...templates, + [name]: data, + }) + }, [mutate, templates]) + + const context: Context = { + templates, + + getTemplate, + hasTemplate, + removeTemplate, + saveTemplate, + } + + return ( + + {children} + + ) +} diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..a77e9b8 --- /dev/null +++ b/src/components/ui/alert-dialog.tsx @@ -0,0 +1,139 @@ +import * as React from 'react' +import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog' + +import { cn } from '@/lib/utils' +import { buttonVariants } from '@/components/ui/button' + +const AlertDialog = AlertDialogPrimitive.Root + +const AlertDialogTrigger = AlertDialogPrimitive.Trigger + +const AlertDialogPortal = AlertDialogPrimitive.Portal + +const AlertDialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName + +const AlertDialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + +)) +AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName + +const AlertDialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogHeader.displayName = 'AlertDialogHeader' + +const AlertDialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +AlertDialogFooter.displayName = 'AlertDialogFooter' + +const AlertDialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName + +const AlertDialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogDescription.displayName = + AlertDialogPrimitive.Description.displayName + +const AlertDialogAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName + +const AlertDialogCancel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +} diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx new file mode 100644 index 0000000..13a8259 --- /dev/null +++ b/src/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', + { + variants: { + variant: { + default: + 'bg-primary text-primary-foreground shadow hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90', + outline: + 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2', + sm: 'h-8 rounded-md px-3 text-xs', + lg: 'h-10 rounded-md px-8', + icon: 'size-9', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : 'button' + return ( + + ) + }, +) +Button.displayName = 'Button' + +export { Button, buttonVariants } diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx new file mode 100644 index 0000000..77e9fb7 --- /dev/null +++ b/src/components/ui/card.tsx @@ -0,0 +1,76 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx new file mode 100644 index 0000000..1cc6c16 --- /dev/null +++ b/src/components/ui/dialog.tsx @@ -0,0 +1,120 @@ +import * as React from 'react' +import * as DialogPrimitive from '@radix-ui/react-dialog' +import { Cross2Icon } from '@radix-ui/react-icons' + +import { cn } from '@/lib/utils' + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = 'DialogHeader' + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = 'DialogFooter' + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/src/components/ui/form.tsx b/src/components/ui/form.tsx new file mode 100644 index 0000000..089bca5 --- /dev/null +++ b/src/components/ui/form.tsx @@ -0,0 +1,176 @@ +import * as React from 'react' +import * as LabelPrimitive from '@radix-ui/react-label' +import { Slot } from '@radix-ui/react-slot' +import { + Controller, + ControllerProps, + FieldPath, + FieldValues, + FormProvider, + useFormContext, +} from 'react-hook-form' + +import { cn } from '@/lib/utils' +import { Label } from '@/components/ui/label' + +const Form = FormProvider + +type FormFieldContextValue< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> = { + name: TName +} + +const FormFieldContext = React.createContext( + {} as FormFieldContextValue, +) + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ) +} + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext) + const itemContext = React.useContext(FormItemContext) + const { getFieldState, formState } = useFormContext() + + const fieldState = getFieldState(fieldContext.name, formState) + + if (!fieldContext) { + throw new Error('useFormField should be used within ') + } + + const { id } = itemContext + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + } +} + +type FormItemContextValue = { + id: string +} + +const FormItemContext = React.createContext( + {} as FormItemContextValue, +) + +const FormItem = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => { + const id = React.useId() + + return ( + +
+ + ) +}) +FormItem.displayName = 'FormItem' + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField() + + return ( +