diff --git a/apps/web/components/editor/field.tsx b/apps/web/components/editor/field.tsx new file mode 100644 index 000000000..6df7f911a --- /dev/null +++ b/apps/web/components/editor/field.tsx @@ -0,0 +1,49 @@ +import { ResizableBox, ResizeCallbackData } from "react-resizable"; +import React, { SyntheticEvent, useState } from "react"; +import Draggable from "react-draggable"; +import { CircleStackIcon } from "@heroicons/react/24/outline"; +import Logo from "../logo"; + +type FieldPropsType = { + color: string; + type: string; +}; + +export default function Field(props: FieldPropsType) { + return ( + + { + e.preventDefault(); + e.stopPropagation(); + }} + > +
+ Signature + + + + + + +
+
+
+ ); +} diff --git a/apps/web/package.json b/apps/web/package.json index e2e1b19c1..b1007346d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -35,8 +35,10 @@ "placeholder-loading": "^0.6.0", "react": "18.2.0", "react-dom": "18.2.0", + "react-draggable": "^4.4.5", "react-hook-form": "^7.41.5", "react-pdf": "^6.2.2", + "react-resizable": "^3.0.4", "react-tooltip": "^5.7.2", "sass": "^1.57.1", "short-uuid": "^4.2.2", @@ -49,6 +51,7 @@ "@types/nodemailer": "^6.4.7", "@types/nodemailer-sendgrid": "^1.0.0", "@types/react-pdf": "^6.2.0", + "@types/react-resizable": "^3.0.3", "autoprefixer": "^10.4.13", "postcss": "^8.4.19", "tailwindcss": "^3.2.4" diff --git a/apps/web/pages/_app.tsx b/apps/web/pages/_app.tsx index 85504bcaa..d9a50d762 100644 --- a/apps/web/pages/_app.tsx +++ b/apps/web/pages/_app.tsx @@ -1,5 +1,6 @@ import "../styles/tailwind.css"; import "../../../node_modules/placeholder-loading/src/scss/placeholder-loading.scss"; +import "../../../node_modules/react-resizable/css/styles.css"; import "react-tooltip/dist/react-tooltip.css"; import { ReactElement, ReactNode } from "react"; import type { AppProps } from "next/app"; diff --git a/package-lock.json b/package-lock.json index 778594706..c3eca1170 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,8 +68,10 @@ "placeholder-loading": "^0.6.0", "react": "18.2.0", "react-dom": "18.2.0", + "react-draggable": "^4.4.5", "react-hook-form": "^7.41.5", "react-pdf": "^6.2.2", + "react-resizable": "^3.0.4", "react-tooltip": "^5.7.2", "sass": "^1.57.1", "short-uuid": "^4.2.2", @@ -82,6 +84,7 @@ "@types/nodemailer": "^6.4.7", "@types/nodemailer-sendgrid": "^1.0.0", "@types/react-pdf": "^6.2.0", + "@types/react-resizable": "^3.0.3", "autoprefixer": "^10.4.13", "postcss": "^8.4.19", "tailwindcss": "^3.2.4" @@ -859,6 +862,15 @@ "pdfjs-dist": "^2.16.105" } }, + "node_modules/@types/react-resizable": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/react-resizable/-/react-resizable-3.0.3.tgz", + "integrity": "sha512-W/QsUOZoXBAIBQNhNm95A5ohoaiUA874lWQytO2UP9dOjp5JHO9+a0cwYNabea7sA12ZDJnGVUFZxcNaNksAWA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/request": { "version": "2.48.8", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", @@ -7132,6 +7144,19 @@ "react": "^18.2.0" } }, + "node_modules/react-draggable": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", + "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, "node_modules/react-hook-form": { "version": "7.42.1", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.42.1.tgz", @@ -7196,6 +7221,18 @@ } } }, + "node_modules/react-resizable": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.4.tgz", + "integrity": "sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA==", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, "node_modules/react-tooltip": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.7.2.tgz", @@ -8501,6 +8538,7 @@ "@types/nodemailer-sendgrid": "^1.0.0", "@types/react-dom": "18.0.9", "@types/react-pdf": "^6.2.0", + "@types/react-resizable": "*", "autoprefixer": "^10.4.13", "avatar-from-initials": "^1.0.3", "bcryptjs": "^2.4.3", @@ -8520,8 +8558,10 @@ "postcss": "^8.4.19", "react": "18.2.0", "react-dom": "18.2.0", + "react-draggable": "^4.4.5", "react-hook-form": "^7.41.5", "react-pdf": "^6.2.2", + "react-resizable": "^3.0.4", "react-tooltip": "^5.7.2", "sass": "^1.57.1", "short-uuid": "^4.2.2", @@ -9043,6 +9083,15 @@ "pdfjs-dist": "^2.16.105" } }, + "@types/react-resizable": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/react-resizable/-/react-resizable-3.0.3.tgz", + "integrity": "sha512-W/QsUOZoXBAIBQNhNm95A5ohoaiUA874lWQytO2UP9dOjp5JHO9+a0cwYNabea7sA12ZDJnGVUFZxcNaNksAWA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/request": { "version": "2.48.8", "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.8.tgz", @@ -13387,6 +13436,15 @@ "scheduler": "^0.23.0" } }, + "react-draggable": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.5.tgz", + "integrity": "sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==", + "requires": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + } + }, "react-hook-form": { "version": "7.42.1", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.42.1.tgz", @@ -13422,6 +13480,15 @@ "tiny-warning": "^1.0.0" } }, + "react-resizable": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.4.tgz", + "integrity": "sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA==", + "requires": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + } + }, "react-tooltip": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.7.2.tgz",