drawboard-microservice 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dockerfile +14 -0
  2. package/eslint.config.js +23 -0
  3. package/index.html +12 -0
  4. package/package.json +35 -0
  5. package/public/icon-align-64-default.png +0 -0
  6. package/public/icon-align-justify-64-active.png +0 -0
  7. package/public/icon-align-justify-64-default 1.png +0 -0
  8. package/public/icon-align-justify-64-default.png +0 -0
  9. package/public/icon-align-justify-64-hover.png +0 -0
  10. package/public/icon-align-left-64-active.png +0 -0
  11. package/public/icon-align-left-64-default 1.png +0 -0
  12. package/public/icon-align-left-64-default.png +0 -0
  13. package/public/icon-align-left-64-hover.png +0 -0
  14. package/public/icon-align-right-64-active.png +0 -0
  15. package/public/icon-align-right-64-default.png +0 -0
  16. package/public/icon-align-right-64-hover.png +0 -0
  17. package/public/icon-bold-64-active.png +0 -0
  18. package/public/icon-bold-64-default 1.png +0 -0
  19. package/public/icon-bold-64-default.png +0 -0
  20. package/public/icon-bold-64-hover.png +0 -0
  21. package/public/icon-broom-64-active.png +0 -0
  22. package/public/icon-broom-64-default.png +0 -0
  23. package/public/icon-broom-64-hover.png +0 -0
  24. package/public/icon-cancel-64-active.png +0 -0
  25. package/public/icon-cancel-64-default.png +0 -0
  26. package/public/icon-cancel-64-hover.png +0 -0
  27. package/public/icon-change-64-active.png +0 -0
  28. package/public/icon-change-64-default.png +0 -0
  29. package/public/icon-change-64-hover.png +0 -0
  30. package/public/icon-circle-64-active.png +0 -0
  31. package/public/icon-circle-64-default.png +0 -0
  32. package/public/icon-circle-64-hover.png +0 -0
  33. package/public/icon-close-64-active.png +0 -0
  34. package/public/icon-close-64-default.png +0 -0
  35. package/public/icon-close-64-hover.png +0 -0
  36. package/public/icon-cursor-64-active.png +0 -0
  37. package/public/icon-cursor-64-default.png +0 -0
  38. package/public/icon-cursor-64-hover.png +0 -0
  39. package/public/icon-delete-trash-64-active.png +0 -0
  40. package/public/icon-delete-trash-64-default.png +0 -0
  41. package/public/icon-delete-trash-64-hover.png +0 -0
  42. package/public/icon-done-64-active.png +0 -0
  43. package/public/icon-done-64-default.png +0 -0
  44. package/public/icon-done-64-hover.png +0 -0
  45. package/public/icon-edit-text-file-64-active.png +0 -0
  46. package/public/icon-edit-text-file-64-default 1.png +0 -0
  47. package/public/icon-edit-text-file-64-default.png +0 -0
  48. package/public/icon-edit-text-file-64-hover.png +0 -0
  49. package/public/icon-eraser-64-active.png +0 -0
  50. package/public/icon-eraser-64-default.png +0 -0
  51. package/public/icon-eraser-64-hover.png +0 -0
  52. package/public/icon-font-style-64-active.png +0 -0
  53. package/public/icon-font-style-64-default.png +0 -0
  54. package/public/icon-font-style-64-hover.png +0 -0
  55. package/public/icon-formula-fx-64-active.png +0 -0
  56. package/public/icon-formula-fx-64-default.png +0 -0
  57. package/public/icon-formula-fx-64-hover.png +0 -0
  58. package/public/icon-highlighter-64-active.png +0 -0
  59. package/public/icon-highlighter-64-default.png +0 -0
  60. package/public/icon-highlighter-64-hover.png +0 -0
  61. package/public/icon-installing-64-active.png +0 -0
  62. package/public/icon-installing-64-default.png +0 -0
  63. package/public/icon-installing-64-hover.png +0 -0
  64. package/public/icon-italic-64-active.png +0 -0
  65. package/public/icon-italic-64-default 1.png +0 -0
  66. package/public/icon-italic-64-default.png +0 -0
  67. package/public/icon-italic-64-hover.png +0 -0
  68. package/public/icon-line-64-active.png +0 -0
  69. package/public/icon-line-64-default.png +0 -0
  70. package/public/icon-line-64-hover.png +0 -0
  71. package/public/icon-pen-64-active.png +0 -0
  72. package/public/icon-pen-64-default.png +0 -0
  73. package/public/icon-pen-64-hover.png +0 -0
  74. package/public/icon-pin-64-active.png +0 -0
  75. package/public/icon-pin-64-default.png +0 -0
  76. package/public/icon-pin-64-hover.png +0 -0
  77. package/public/icon-redo-64-active.png +0 -0
  78. package/public/icon-redo-64-default.png +0 -0
  79. package/public/icon-redo-64-hover.png +0 -0
  80. package/public/icon-return-64-active.png +0 -0
  81. package/public/icon-return-64-default.png +0 -0
  82. package/public/icon-return-64-hover.png +0 -0
  83. package/public/icon-select-active.png +0 -0
  84. package/public/icon-select-default.png +0 -0
  85. package/public/icon-select-hover.png +0 -0
  86. package/public/icon-square-64-active.png +0 -0
  87. package/public/icon-square-64-default.png +0 -0
  88. package/public/icon-square-64-hover.png +0 -0
  89. package/public/icon-strikethrough-64-active.png +0 -0
  90. package/public/icon-strikethrough-64-default 1.png +0 -0
  91. package/public/icon-strikethrough-64-default.png +0 -0
  92. package/public/icon-strikethrough-64-hover.png +0 -0
  93. package/public/icon-text-64-active.png +0 -0
  94. package/public/icon-text-64-default.png +0 -0
  95. package/public/icon-text-64-hover.png +0 -0
  96. package/public/icon-u-turn-to-right-64-active.png +0 -0
  97. package/public/icon-u-turn-to-right-64-default.png +0 -0
  98. package/public/icon-u-turn-to-right-64-hover.png +0 -0
  99. package/public/icon-under-64-active.png +0 -0
  100. package/public/icon-under-64-default 1.png +0 -0
  101. package/public/icon-under-64-default.png +0 -0
  102. package/public/icon-under-64-hover.png +0 -0
  103. package/src/App.css +887 -0
  104. package/src/App.tsx +1468 -0
  105. package/src/assets/icon-broom-64-active.png +0 -0
  106. package/src/assets/icon-broom-64-default.png +0 -0
  107. package/src/assets/icon-broom-64-hover.png +0 -0
  108. package/src/assets/icon-cancel-64-active.png +0 -0
  109. package/src/assets/icon-cancel-64-default.png +0 -0
  110. package/src/assets/icon-cancel-64-hover.png +0 -0
  111. package/src/assets/icon-change-64-active.png +0 -0
  112. package/src/assets/icon-change-64-default.png +0 -0
  113. package/src/assets/icon-change-64-hover.png +0 -0
  114. package/src/assets/icon-circle-64-active.png +0 -0
  115. package/src/assets/icon-circle-64-default.png +0 -0
  116. package/src/assets/icon-circle-64-hover.png +0 -0
  117. package/src/assets/icon-cursor-64-active.png +0 -0
  118. package/src/assets/icon-cursor-64-default.png +0 -0
  119. package/src/assets/icon-cursor-64-hover.png +0 -0
  120. package/src/assets/icon-delete-trash-64-active.png +0 -0
  121. package/src/assets/icon-delete-trash-64-default.png +0 -0
  122. package/src/assets/icon-delete-trash-64-hover.png +0 -0
  123. package/src/assets/icon-eraser-64-active.png +0 -0
  124. package/src/assets/icon-eraser-64-default.png +0 -0
  125. package/src/assets/icon-eraser-64-hover.png +0 -0
  126. package/src/assets/icon-font-style-64-active.png +0 -0
  127. package/src/assets/icon-font-style-64-default.png +0 -0
  128. package/src/assets/icon-font-style-64-hover.png +0 -0
  129. package/src/assets/icon-formula-fx-64-active.png +0 -0
  130. package/src/assets/icon-formula-fx-64-default.png +0 -0
  131. package/src/assets/icon-formula-fx-64-hover.png +0 -0
  132. package/src/assets/icon-highlighter-64-active.png +0 -0
  133. package/src/assets/icon-highlighter-64-default.png +0 -0
  134. package/src/assets/icon-highlighter-64-hover.png +0 -0
  135. package/src/assets/icon-installing-64-active.png +0 -0
  136. package/src/assets/icon-installing-64-default.png +0 -0
  137. package/src/assets/icon-installing-64-hover.png +0 -0
  138. package/src/assets/icon-line-64-active.png +0 -0
  139. package/src/assets/icon-line-64-default.png +0 -0
  140. package/src/assets/icon-line-64-hover.png +0 -0
  141. package/src/assets/icon-minus-64-active.png +0 -0
  142. package/src/assets/icon-minus-64-default.png +0 -0
  143. package/src/assets/icon-minus-64-hover.png +0 -0
  144. package/src/assets/icon-pen-64-active.png +0 -0
  145. package/src/assets/icon-pen-64-default.png +0 -0
  146. package/src/assets/icon-pen-64-hover.png +0 -0
  147. package/src/assets/icon-pin-64-active.png +0 -0
  148. package/src/assets/icon-pin-64-default.png +0 -0
  149. package/src/assets/icon-pin-64-hover.png +0 -0
  150. package/src/assets/icon-plus-64-active.png +0 -0
  151. package/src/assets/icon-plus-64-default.png +0 -0
  152. package/src/assets/icon-plus-64-hover.png +0 -0
  153. package/src/assets/icon-return-64-active.png +0 -0
  154. package/src/assets/icon-return-64-default.png +0 -0
  155. package/src/assets/icon-return-64-hover.png +0 -0
  156. package/src/assets/icon-select-active.png +0 -0
  157. package/src/assets/icon-select-default.png +0 -0
  158. package/src/assets/icon-select-hover.png +0 -0
  159. package/src/assets/icon-square-64-active.png +0 -0
  160. package/src/assets/icon-square-64-default.png +0 -0
  161. package/src/assets/icon-square-64-hover.png +0 -0
  162. package/src/assets/icon-text-64-active.png +0 -0
  163. package/src/assets/icon-text-64-default.png +0 -0
  164. package/src/assets/icon-text-64-hover.png +0 -0
  165. package/src/assets/icon-u-turn-to-right-64-active.png +0 -0
  166. package/src/assets/icon-u-turn-to-right-64-default.png +0 -0
  167. package/src/assets/icon-u-turn-to-right-64-hover.png +0 -0
  168. package/src/components/BrushToolbar.tsx +72 -0
  169. package/src/components/LatexEditor.tsx +247 -0
  170. package/src/components/LatexToolbar.tsx +68 -0
  171. package/src/components/OCRPreview.tsx +234 -0
  172. package/src/components/OCRToolbar.tsx +46 -0
  173. package/src/components/RangeToolbar.tsx +33 -0
  174. package/src/components/SelDelToolbar.tsx +52 -0
  175. package/src/components/TextEditor.tsx +38 -0
  176. package/src/components/TextToolbar.tsx +271 -0
  177. package/src/components/ToolsToolbar.tsx +114 -0
  178. package/src/constants/fonts.ts +14 -0
  179. package/src/constants/latexCategories.ts +11 -0
  180. package/src/constants/latexSymbols.ts +38 -0
  181. package/src/hooks/useDrawingHandlers.ts +675 -0
  182. package/src/hooks/useDrawingState.ts +59 -0
  183. package/src/hooks/useHistory.ts +52 -0
  184. package/src/hooks/useKeyboard.ts +96 -0
  185. package/src/hooks/useLatexSymbols.ts +79 -0
  186. package/src/hooks/useOutsideClick.ts +25 -0
  187. package/src/hooks/useTextEditing.ts +131 -0
  188. package/src/hooks/useTextFormatting.ts +153 -0
  189. package/src/hooks/useWebSocket.ts +202 -0
  190. package/src/main.tsx +18 -0
  191. package/src/services/api.ts +81 -0
  192. package/src/services/statsService.ts +165 -0
  193. package/src/services/widgetBridge.ts +73 -0
  194. package/src/types.ts +80 -0
  195. package/src/utils/colorUtils.ts +6 -0
  196. package/src/utils/latexUtils.ts +48 -0
  197. package/src/utils/shapeUtils.ts +151 -0
  198. package/tsconfig.app.json +28 -0
  199. package/tsconfig.json +14 -0
  200. package/tsconfig.node.json +26 -0
  201. package/vite.config.ts +7 -0
package/dockerfile ADDED
@@ -0,0 +1,14 @@
1
+ FROM node:22-alpine
2
+
3
+ WORKDIR /app
4
+
5
+ COPY package*.json ./
6
+ COPY package-lock.json ./
7
+
8
+ RUN npm cache clean --force && npm ci
9
+
10
+ COPY . .
11
+
12
+ EXPOSE 3000
13
+
14
+ CMD ["sh", "-c", "echo 'Starting Vite...' && npm run dev -- --host 0.0.0.0"]
@@ -0,0 +1,23 @@
1
+ import js from '@eslint/js'
2
+ import globals from 'globals'
3
+ import reactHooks from 'eslint-plugin-react-hooks'
4
+ import reactRefresh from 'eslint-plugin-react-refresh'
5
+ import tseslint from 'typescript-eslint'
6
+ import { defineConfig, globalIgnores } from 'eslint/config'
7
+
8
+ export default defineConfig([
9
+ globalIgnores(['dist']),
10
+ {
11
+ files: ['**/*.{ts,tsx}'],
12
+ extends: [
13
+ js.configs.recommended,
14
+ tseslint.configs.recommended,
15
+ reactHooks.configs.flat.recommended,
16
+ reactRefresh.configs.vite,
17
+ ],
18
+ languageOptions: {
19
+ ecmaVersion: 2020,
20
+ globals: globals.browser,
21
+ },
22
+ },
23
+ ])
package/index.html ADDED
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>DrawBoard</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.tsx"></script>
11
+ </body>
12
+ </html>
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "drawboard-microservice",
3
+ "private": false,
4
+ "version": "1.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc -b && vite build",
9
+ "lint": "eslint .",
10
+ "preview": "vite preview"
11
+ },
12
+ "dependencies": {
13
+ "@xyflow/react": "^12.9.3",
14
+ "katex": "^0.16.25",
15
+ "konva": "^10.0.12",
16
+ "react": "^19.2.0",
17
+ "react-dom": "^19.2.0",
18
+ "react-konva": "^19.2.1",
19
+ "reactflow": "^11.11.4"
20
+ },
21
+ "devDependencies": {
22
+ "@eslint/js": "^9.39.1",
23
+ "@types/node": "^24.10.0",
24
+ "@types/react": "^19.2.2",
25
+ "@types/react-dom": "^19.2.2",
26
+ "@vitejs/plugin-react": "^5.1.0",
27
+ "eslint": "^9.39.1",
28
+ "eslint-plugin-react-hooks": "^7.0.1",
29
+ "eslint-plugin-react-refresh": "^0.4.24",
30
+ "globals": "^16.5.0",
31
+ "typescript": "~5.9.3",
32
+ "typescript-eslint": "^8.46.3",
33
+ "vite": "^7.2.2"
34
+ }
35
+ }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file