create-weave-frontend-app 0.1.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 (272) hide show
  1. package/README.md +11 -0
  2. package/dist/chunk-HZJMO45D.js +437 -0
  3. package/dist/create-app.d.ts +14 -0
  4. package/dist/create-app.js +6 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +106 -0
  7. package/package.json +65 -0
  8. package/template/+nextjs+azure-web-pubsub/README.md +36 -0
  9. package/template/+nextjs+azure-web-pubsub/api/del-image.ts +8 -0
  10. package/template/+nextjs+azure-web-pubsub/api/get-images.ts +15 -0
  11. package/template/+nextjs+azure-web-pubsub/api/post-image.ts +14 -0
  12. package/template/+nextjs+azure-web-pubsub/api/post-remove-background.ts +10 -0
  13. package/template/+nextjs+azure-web-pubsub/app/error/page.tsx +10 -0
  14. package/template/+nextjs+azure-web-pubsub/app/favicon.ico +0 -0
  15. package/template/+nextjs+azure-web-pubsub/app/globals.css +193 -0
  16. package/template/+nextjs+azure-web-pubsub/app/layout.tsx +46 -0
  17. package/template/+nextjs+azure-web-pubsub/app/page.tsx +7 -0
  18. package/template/+nextjs+azure-web-pubsub/app/providers.tsx +18 -0
  19. package/template/+nextjs+azure-web-pubsub/app/room/[roomId]/page.tsx +5 -0
  20. package/template/+nextjs+azure-web-pubsub/assets/images/home.png +0 -0
  21. package/template/+nextjs+azure-web-pubsub/assets/images/logo.png +0 -0
  22. package/template/+nextjs+azure-web-pubsub/components/actions/align-elements-tool/align-elements-tool.ts +94 -0
  23. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/color-token-tool.ts +164 -0
  24. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/constants.ts +5 -0
  25. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/types.ts +12 -0
  26. package/template/+nextjs+azure-web-pubsub/components/error/error.tsx +62 -0
  27. package/template/+nextjs+azure-web-pubsub/components/error/errors.ts +35 -0
  28. package/template/+nextjs+azure-web-pubsub/components/home/home.tsx +92 -0
  29. package/template/+nextjs+azure-web-pubsub/components/home-components/home-showcase-animation.tsx +119 -0
  30. package/template/+nextjs+azure-web-pubsub/components/home-components/login-form.tsx +117 -0
  31. package/template/+nextjs+azure-web-pubsub/components/nodes/color-token/color-token.ts +171 -0
  32. package/template/+nextjs+azure-web-pubsub/components/room/room.layout.tsx +115 -0
  33. package/template/+nextjs+azure-web-pubsub/components/room/room.tsx +125 -0
  34. package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-token.tsx +31 -0
  35. package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-tokens-library.tsx +64 -0
  36. package/template/+nextjs+azure-web-pubsub/components/room-components/connected-users.tsx +152 -0
  37. package/template/+nextjs+azure-web-pubsub/components/room-components/connection-status.tsx +52 -0
  38. package/template/+nextjs+azure-web-pubsub/components/room-components/context-menu.tsx +152 -0
  39. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.image.tsx +48 -0
  40. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.presentation-image.tsx +61 -0
  41. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.tsx +316 -0
  42. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/utils.ts +27 -0
  43. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-arrange.tsx +69 -0
  44. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-drawer.tsx +140 -0
  45. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-edit.tsx +80 -0
  46. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-selection.tsx +30 -0
  47. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-shortcut-element.tsx +24 -0
  48. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-tools.tsx +89 -0
  49. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-view.tsx +30 -0
  50. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-zoom.tsx +46 -0
  51. package/template/+nextjs+azure-web-pubsub/components/room-components/help/shortcut-element.tsx +42 -0
  52. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-context-menu.tsx +514 -0
  53. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-azure-web-pubsub-provider.ts +78 -0
  54. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-os.ts +12 -0
  55. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-weave-js-props.tsx +120 -0
  56. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-handle-route-params.ts +30 -0
  57. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-key-down.ts +29 -0
  58. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-keyboard-handler.tsx +557 -0
  59. package/template/+nextjs+azure-web-pubsub/components/room-components/images-library/images-library.tsx +146 -0
  60. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-color.tsx +101 -0
  61. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-font-family.tsx +99 -0
  62. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-number.tsx +61 -0
  63. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-text.tsx +51 -0
  64. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/number-input.tsx +107 -0
  65. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/appearance-properties.tsx +119 -0
  66. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/color-token-properties.tsx +108 -0
  67. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/crop-properties.tsx +156 -0
  68. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/fill-properties.tsx +115 -0
  69. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/frame-properties.tsx +100 -0
  70. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/image-properties.tsx +57 -0
  71. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/position-properties.tsx +156 -0
  72. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/size-properties.tsx +131 -0
  73. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/stroke-properties.tsx +327 -0
  74. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/text-properties.tsx +467 -0
  75. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/multiuse-overlay.tsx +127 -0
  76. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/node-properties.tsx +98 -0
  77. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/overlay-animation-wrapper.tsx +31 -0
  78. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-information-overlay.tsx +247 -0
  79. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-users-overlay.tsx +31 -0
  80. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/tools-overlay.tsx +289 -0
  81. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/variants.ts +58 -0
  82. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/zoom-handler-overlay.tsx +447 -0
  83. package/template/+nextjs+azure-web-pubsub/components/room-components/room-error.tsx +37 -0
  84. package/template/+nextjs+azure-web-pubsub/components/room-components/room-loader/room-loader.tsx +98 -0
  85. package/template/+nextjs+azure-web-pubsub/components/room-components/selection-information.tsx +74 -0
  86. package/template/+nextjs+azure-web-pubsub/components/room-components/toggle-icon-button.tsx +60 -0
  87. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-button.tsx +60 -0
  88. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-toggle-button.tsx +40 -0
  89. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar.tsx +28 -0
  90. package/template/+nextjs+azure-web-pubsub/components/room-components/upload-file.tsx +130 -0
  91. package/template/+nextjs+azure-web-pubsub/components/room-components/with-instance-node.tsx +53 -0
  92. package/template/+nextjs+azure-web-pubsub/components/ui/accordion.tsx +66 -0
  93. package/template/+nextjs+azure-web-pubsub/components/ui/avatar.tsx +53 -0
  94. package/template/+nextjs+azure-web-pubsub/components/ui/button.tsx +58 -0
  95. package/template/+nextjs+azure-web-pubsub/components/ui/card.tsx +68 -0
  96. package/template/+nextjs+azure-web-pubsub/components/ui/checkbox.tsx +32 -0
  97. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/color-picker-component.tsx +69 -0
  98. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/context/color-picker-context.tsx +28 -0
  99. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/editor/color-picker-format-editor.tsx +34 -0
  100. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/index.ts +7 -0
  101. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-alpha.tsx +79 -0
  102. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-eyedropper.tsx +95 -0
  103. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-format-selector.tsx +50 -0
  104. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-hue.tsx +67 -0
  105. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-saturation.tsx +145 -0
  106. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +60 -0
  107. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +65 -0
  108. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +62 -0
  109. package/template/+nextjs+azure-web-pubsub/components/ui/command.tsx +177 -0
  110. package/template/+nextjs+azure-web-pubsub/components/ui/dialog.tsx +135 -0
  111. package/template/+nextjs+azure-web-pubsub/components/ui/drawer.tsx +132 -0
  112. package/template/+nextjs+azure-web-pubsub/components/ui/dropdown-menu.tsx +201 -0
  113. package/template/+nextjs+azure-web-pubsub/components/ui/form.tsx +167 -0
  114. package/template/+nextjs+azure-web-pubsub/components/ui/input.tsx +21 -0
  115. package/template/+nextjs+azure-web-pubsub/components/ui/label.tsx +24 -0
  116. package/template/+nextjs+azure-web-pubsub/components/ui/popover.tsx +48 -0
  117. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/Backgrounds/Dither/Dither.tsx +350 -0
  118. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/Backgrounds/Threads/Threads.tsx +239 -0
  119. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/TextAnimations/RotatingText/RotatingText.tsx +276 -0
  120. package/template/+nextjs+azure-web-pubsub/components/ui/scroll-area.tsx +58 -0
  121. package/template/+nextjs+azure-web-pubsub/components/ui/select.tsx +185 -0
  122. package/template/+nextjs+azure-web-pubsub/components/ui/sheet.tsx +139 -0
  123. package/template/+nextjs+azure-web-pubsub/components/ui/sonner.tsx +25 -0
  124. package/template/+nextjs+azure-web-pubsub/components/ui/tabs.tsx +66 -0
  125. package/template/+nextjs+azure-web-pubsub/components/ui/tooltip.tsx +61 -0
  126. package/template/+nextjs+azure-web-pubsub/components/utils/constants.ts +118 -0
  127. package/template/+nextjs+azure-web-pubsub/components/utils/logo.tsx +34 -0
  128. package/template/+nextjs+azure-web-pubsub/components.json +21 -0
  129. package/template/+nextjs+azure-web-pubsub/example.env +2 -0
  130. package/template/+nextjs+azure-web-pubsub/example.gitignore +44 -0
  131. package/template/+nextjs+azure-web-pubsub/jsrepo.json +11 -0
  132. package/template/+nextjs+azure-web-pubsub/lib/utils.ts +43 -0
  133. package/template/+nextjs+azure-web-pubsub/new-types.d.ts +8 -0
  134. package/template/+nextjs+azure-web-pubsub/next-env.d.ts +5 -0
  135. package/template/+nextjs+azure-web-pubsub/next.config.js +52 -0
  136. package/template/+nextjs+azure-web-pubsub/postcss.config.mjs +5 -0
  137. package/template/+nextjs+azure-web-pubsub/store/store.ts +241 -0
  138. package/template/+nextjs+azure-web-pubsub/tsconfig.json +37 -0
  139. package/template/+nextjs+azure-web-pubsub/vitest.config.mts +10 -0
  140. package/template/+nextjs+websockets/README.md +39 -0
  141. package/template/+nextjs+websockets/api/del-image.ts +8 -0
  142. package/template/+nextjs+websockets/api/get-images.ts +15 -0
  143. package/template/+nextjs+websockets/api/post-image.ts +14 -0
  144. package/template/+nextjs+websockets/api/post-remove-background.ts +10 -0
  145. package/template/+nextjs+websockets/app/error/page.tsx +10 -0
  146. package/template/+nextjs+websockets/app/favicon.ico +0 -0
  147. package/template/+nextjs+websockets/app/globals.css +193 -0
  148. package/template/+nextjs+websockets/app/layout.tsx +46 -0
  149. package/template/+nextjs+websockets/app/page.tsx +7 -0
  150. package/template/+nextjs+websockets/app/providers.tsx +18 -0
  151. package/template/+nextjs+websockets/app/room/[roomId]/page.tsx +5 -0
  152. package/template/+nextjs+websockets/assets/images/home.png +0 -0
  153. package/template/+nextjs+websockets/assets/images/logo.png +0 -0
  154. package/template/+nextjs+websockets/components/actions/align-elements-tool/align-elements-tool.ts +94 -0
  155. package/template/+nextjs+websockets/components/actions/color-token-tool/color-token-tool.ts +164 -0
  156. package/template/+nextjs+websockets/components/actions/color-token-tool/constants.ts +5 -0
  157. package/template/+nextjs+websockets/components/actions/color-token-tool/types.ts +12 -0
  158. package/template/+nextjs+websockets/components/error/error.tsx +62 -0
  159. package/template/+nextjs+websockets/components/error/errors.ts +35 -0
  160. package/template/+nextjs+websockets/components/home/home.tsx +92 -0
  161. package/template/+nextjs+websockets/components/home-components/home-showcase-animation.tsx +119 -0
  162. package/template/+nextjs+websockets/components/home-components/login-form.tsx +117 -0
  163. package/template/+nextjs+websockets/components/nodes/color-token/color-token.ts +171 -0
  164. package/template/+nextjs+websockets/components/room/room.layout.tsx +115 -0
  165. package/template/+nextjs+websockets/components/room/room.tsx +125 -0
  166. package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-token.tsx +31 -0
  167. package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-tokens-library.tsx +64 -0
  168. package/template/+nextjs+websockets/components/room-components/connected-users.tsx +152 -0
  169. package/template/+nextjs+websockets/components/room-components/connection-status.tsx +52 -0
  170. package/template/+nextjs+websockets/components/room-components/context-menu.tsx +152 -0
  171. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.image.tsx +48 -0
  172. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.presentation-image.tsx +61 -0
  173. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.tsx +316 -0
  174. package/template/+nextjs+websockets/components/room-components/frames-library/utils.ts +27 -0
  175. package/template/+nextjs+websockets/components/room-components/help/help-arrange.tsx +69 -0
  176. package/template/+nextjs+websockets/components/room-components/help/help-drawer.tsx +140 -0
  177. package/template/+nextjs+websockets/components/room-components/help/help-edit.tsx +80 -0
  178. package/template/+nextjs+websockets/components/room-components/help/help-selection.tsx +30 -0
  179. package/template/+nextjs+websockets/components/room-components/help/help-shortcut-element.tsx +24 -0
  180. package/template/+nextjs+websockets/components/room-components/help/help-tools.tsx +89 -0
  181. package/template/+nextjs+websockets/components/room-components/help/help-view.tsx +30 -0
  182. package/template/+nextjs+websockets/components/room-components/help/help-zoom.tsx +46 -0
  183. package/template/+nextjs+websockets/components/room-components/help/shortcut-element.tsx +42 -0
  184. package/template/+nextjs+websockets/components/room-components/hooks/use-context-menu.tsx +514 -0
  185. package/template/+nextjs+websockets/components/room-components/hooks/use-get-os.ts +12 -0
  186. package/template/+nextjs+websockets/components/room-components/hooks/use-get-weave-js-props.tsx +120 -0
  187. package/template/+nextjs+websockets/components/room-components/hooks/use-get-websockets-provider.ts +79 -0
  188. package/template/+nextjs+websockets/components/room-components/hooks/use-handle-route-params.ts +30 -0
  189. package/template/+nextjs+websockets/components/room-components/hooks/use-key-down.ts +29 -0
  190. package/template/+nextjs+websockets/components/room-components/hooks/use-keyboard-handler.tsx +557 -0
  191. package/template/+nextjs+websockets/components/room-components/images-library/images-library.tsx +146 -0
  192. package/template/+nextjs+websockets/components/room-components/inputs/input-color.tsx +101 -0
  193. package/template/+nextjs+websockets/components/room-components/inputs/input-font-family.tsx +99 -0
  194. package/template/+nextjs+websockets/components/room-components/inputs/input-number.tsx +61 -0
  195. package/template/+nextjs+websockets/components/room-components/inputs/input-text.tsx +51 -0
  196. package/template/+nextjs+websockets/components/room-components/inputs/number-input.tsx +107 -0
  197. package/template/+nextjs+websockets/components/room-components/node-properties/appearance-properties.tsx +119 -0
  198. package/template/+nextjs+websockets/components/room-components/node-properties/color-token-properties.tsx +108 -0
  199. package/template/+nextjs+websockets/components/room-components/node-properties/crop-properties.tsx +156 -0
  200. package/template/+nextjs+websockets/components/room-components/node-properties/fill-properties.tsx +115 -0
  201. package/template/+nextjs+websockets/components/room-components/node-properties/frame-properties.tsx +100 -0
  202. package/template/+nextjs+websockets/components/room-components/node-properties/image-properties.tsx +57 -0
  203. package/template/+nextjs+websockets/components/room-components/node-properties/position-properties.tsx +156 -0
  204. package/template/+nextjs+websockets/components/room-components/node-properties/size-properties.tsx +131 -0
  205. package/template/+nextjs+websockets/components/room-components/node-properties/stroke-properties.tsx +327 -0
  206. package/template/+nextjs+websockets/components/room-components/node-properties/text-properties.tsx +467 -0
  207. package/template/+nextjs+websockets/components/room-components/overlay/multiuse-overlay.tsx +127 -0
  208. package/template/+nextjs+websockets/components/room-components/overlay/node-properties.tsx +98 -0
  209. package/template/+nextjs+websockets/components/room-components/overlay/overlay-animation-wrapper.tsx +31 -0
  210. package/template/+nextjs+websockets/components/room-components/overlay/room-information-overlay.tsx +247 -0
  211. package/template/+nextjs+websockets/components/room-components/overlay/room-users-overlay.tsx +31 -0
  212. package/template/+nextjs+websockets/components/room-components/overlay/tools-overlay.tsx +289 -0
  213. package/template/+nextjs+websockets/components/room-components/overlay/variants.ts +58 -0
  214. package/template/+nextjs+websockets/components/room-components/overlay/zoom-handler-overlay.tsx +447 -0
  215. package/template/+nextjs+websockets/components/room-components/room-error.tsx +37 -0
  216. package/template/+nextjs+websockets/components/room-components/room-loader/room-loader.tsx +98 -0
  217. package/template/+nextjs+websockets/components/room-components/selection-information.tsx +74 -0
  218. package/template/+nextjs+websockets/components/room-components/toggle-icon-button.tsx +60 -0
  219. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-button.tsx +60 -0
  220. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-toggle-button.tsx +40 -0
  221. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar.tsx +28 -0
  222. package/template/+nextjs+websockets/components/room-components/upload-file.tsx +130 -0
  223. package/template/+nextjs+websockets/components/room-components/with-instance-node.tsx +53 -0
  224. package/template/+nextjs+websockets/components/ui/accordion.tsx +66 -0
  225. package/template/+nextjs+websockets/components/ui/avatar.tsx +53 -0
  226. package/template/+nextjs+websockets/components/ui/button.tsx +58 -0
  227. package/template/+nextjs+websockets/components/ui/card.tsx +68 -0
  228. package/template/+nextjs+websockets/components/ui/checkbox.tsx +32 -0
  229. package/template/+nextjs+websockets/components/ui/color-picker/color-picker-component.tsx +69 -0
  230. package/template/+nextjs+websockets/components/ui/color-picker/context/color-picker-context.tsx +28 -0
  231. package/template/+nextjs+websockets/components/ui/color-picker/editor/color-picker-format-editor.tsx +34 -0
  232. package/template/+nextjs+websockets/components/ui/color-picker/index.ts +7 -0
  233. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-alpha.tsx +79 -0
  234. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-eyedropper.tsx +95 -0
  235. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-format-selector.tsx +50 -0
  236. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-hue.tsx +67 -0
  237. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-saturation.tsx +145 -0
  238. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +60 -0
  239. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +65 -0
  240. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +62 -0
  241. package/template/+nextjs+websockets/components/ui/command.tsx +177 -0
  242. package/template/+nextjs+websockets/components/ui/dialog.tsx +135 -0
  243. package/template/+nextjs+websockets/components/ui/drawer.tsx +132 -0
  244. package/template/+nextjs+websockets/components/ui/dropdown-menu.tsx +201 -0
  245. package/template/+nextjs+websockets/components/ui/form.tsx +167 -0
  246. package/template/+nextjs+websockets/components/ui/input.tsx +21 -0
  247. package/template/+nextjs+websockets/components/ui/label.tsx +24 -0
  248. package/template/+nextjs+websockets/components/ui/popover.tsx +48 -0
  249. package/template/+nextjs+websockets/components/ui/reactbits/Backgrounds/Dither/Dither.tsx +350 -0
  250. package/template/+nextjs+websockets/components/ui/reactbits/Backgrounds/Threads/Threads.tsx +239 -0
  251. package/template/+nextjs+websockets/components/ui/reactbits/TextAnimations/RotatingText/RotatingText.tsx +276 -0
  252. package/template/+nextjs+websockets/components/ui/scroll-area.tsx +58 -0
  253. package/template/+nextjs+websockets/components/ui/select.tsx +185 -0
  254. package/template/+nextjs+websockets/components/ui/sheet.tsx +139 -0
  255. package/template/+nextjs+websockets/components/ui/sonner.tsx +25 -0
  256. package/template/+nextjs+websockets/components/ui/tabs.tsx +66 -0
  257. package/template/+nextjs+websockets/components/ui/tooltip.tsx +61 -0
  258. package/template/+nextjs+websockets/components/utils/constants.ts +118 -0
  259. package/template/+nextjs+websockets/components/utils/logo.tsx +34 -0
  260. package/template/+nextjs+websockets/components.json +21 -0
  261. package/template/+nextjs+websockets/example.env +2 -0
  262. package/template/+nextjs+websockets/example.gitignore +44 -0
  263. package/template/+nextjs+websockets/jsrepo.json +11 -0
  264. package/template/+nextjs+websockets/lib/utils.ts +43 -0
  265. package/template/+nextjs+websockets/new-types.d.ts +8 -0
  266. package/template/+nextjs+websockets/next-env.d.ts +5 -0
  267. package/template/+nextjs+websockets/next.config.js +52 -0
  268. package/template/+nextjs+websockets/postcss.config.mjs +5 -0
  269. package/template/+nextjs+websockets/store/store.ts +241 -0
  270. package/template/+nextjs+websockets/tsconfig.json +37 -0
  271. package/template/+nextjs+websockets/vitest.config.mts +10 -0
  272. package/template/package.json +81 -0
@@ -0,0 +1,241 @@
1
+ import { Vector2d } from 'konva/lib/types';
2
+ import { create } from 'zustand';
3
+ import { ContextMenuOption } from '@/components/room-components/context-menu';
4
+ import { WeaveElementAttributes } from '@inditextech/weave-types';
5
+
6
+ type ShowcaseUser = {
7
+ name: string;
8
+ email: string;
9
+ };
10
+
11
+ type NodePropertiesAction = 'create' | 'update' | undefined;
12
+
13
+ type FinishUploadCallback = (imageURL: string) => void;
14
+
15
+ interface CollaborationRoomState {
16
+ fetchConnectionUrl: {
17
+ loading: boolean;
18
+ error: Error | null;
19
+ };
20
+ ui: {
21
+ show: boolean;
22
+ };
23
+ user: ShowcaseUser | undefined;
24
+ room: string | undefined;
25
+ contextMenu: {
26
+ show: boolean;
27
+ position: Vector2d;
28
+ options: ContextMenuOption[];
29
+ };
30
+ nodeProperties: {
31
+ action: NodePropertiesAction;
32
+ createProps: WeaveElementAttributes | undefined;
33
+ visible: boolean;
34
+ };
35
+ images: {
36
+ showSelectFile: boolean;
37
+ transforming: boolean;
38
+ uploading: boolean;
39
+ loading: boolean;
40
+ finishUploadCallback: FinishUploadCallback | null;
41
+ library: {
42
+ visible: boolean;
43
+ };
44
+ };
45
+ frames: {
46
+ library: {
47
+ visible: boolean;
48
+ };
49
+ };
50
+ colorToken: {
51
+ library: {
52
+ visible: boolean;
53
+ };
54
+ };
55
+ setShowUi: (newShowUI: boolean) => void;
56
+ setFetchConnectionUrlLoading: (newLoading: boolean) => void;
57
+ setFetchConnectionUrlError: (
58
+ newFetchConnectionUrlError: Error | null
59
+ ) => void;
60
+ setUser: (newUser: ShowcaseUser | undefined) => void;
61
+ setRoom: (newRoom: string | undefined) => void;
62
+ setContextMenuShow: (newContextMenuShow: boolean) => void;
63
+ setContextMenuPosition: (newContextMenuPosition: Vector2d) => void;
64
+ setContextMenuOptions: (newContextMenuOptions: ContextMenuOption[]) => void;
65
+ setTransformingImage: (newTransformingImage: boolean) => void;
66
+ setUploadingImage: (newUploadingImage: boolean) => void;
67
+ setShowSelectFileImage: (newShowSelectFileImage: boolean) => void;
68
+ setLoadingImage: (newLoadingImage: boolean) => void;
69
+ setFinishUploadCallbackImage: (
70
+ newFinishUploadCallbackImage: FinishUploadCallback | null
71
+ ) => void;
72
+ setNodePropertiesAction: (
73
+ newNodePropertiesAction: NodePropertiesAction
74
+ ) => void;
75
+ setNodePropertiesCreateProps: (
76
+ newNodePropertiesCreateProps: WeaveElementAttributes | undefined
77
+ ) => void;
78
+ setNodePropertiesVisible: (newNodePropertiesVisible: boolean) => void;
79
+ setImagesLibraryVisible: (newImagesLibraryVisible: boolean) => void;
80
+ setFramesLibraryVisible: (newFramesLibraryVisible: boolean) => void;
81
+ setColorTokensLibraryVisible: (newColorTokensLibraryVisible: boolean) => void;
82
+ }
83
+
84
+ export const useCollaborationRoom = create<CollaborationRoomState>()((set) => ({
85
+ ui: {
86
+ show: true,
87
+ },
88
+ fetchConnectionUrl: {
89
+ loading: false,
90
+ error: null,
91
+ },
92
+ user: undefined,
93
+ room: undefined,
94
+ contextMenu: {
95
+ show: false,
96
+ position: { x: 0, y: 0 },
97
+ options: [],
98
+ },
99
+ nodeProperties: {
100
+ action: undefined,
101
+ visible: false,
102
+ createProps: undefined,
103
+ },
104
+ images: {
105
+ showSelectFile: false,
106
+ transforming: false,
107
+ uploading: false,
108
+ loading: false,
109
+ finishUploadCallback: null,
110
+ library: {
111
+ visible: false,
112
+ },
113
+ },
114
+ frames: {
115
+ library: {
116
+ visible: false,
117
+ },
118
+ },
119
+ colorToken: {
120
+ library: {
121
+ visible: false,
122
+ },
123
+ },
124
+ setShowUi: (newShowUI) =>
125
+ set((state) => ({
126
+ ...state,
127
+ ui: { ...state.ui, show: newShowUI },
128
+ })),
129
+ setFetchConnectionUrlLoading: (newLoading) =>
130
+ set((state) => ({
131
+ ...state,
132
+ fetchConnectionUrl: { ...state.fetchConnectionUrl, loading: newLoading },
133
+ })),
134
+ setFetchConnectionUrlError: (newFetchConnectionUrlError) =>
135
+ set((state) => ({
136
+ ...state,
137
+ fetchConnectionUrl: {
138
+ ...state.fetchConnectionUrl,
139
+ error: newFetchConnectionUrlError,
140
+ },
141
+ })),
142
+ setUser: (newUser) => set((state) => ({ ...state, user: newUser })),
143
+ setRoom: (newRoom) => set((state) => ({ ...state, room: newRoom })),
144
+ setContextMenuShow: (newContextMenuShow) =>
145
+ set((state) => ({
146
+ ...state,
147
+ contextMenu: { ...state.contextMenu, show: newContextMenuShow },
148
+ })),
149
+ setContextMenuPosition: (newContextMenuPosition) =>
150
+ set((state) => ({
151
+ ...state,
152
+ contextMenu: { ...state.contextMenu, position: newContextMenuPosition },
153
+ })),
154
+ setContextMenuOptions: (newContextMenuOptions) =>
155
+ set((state) => ({
156
+ ...state,
157
+ contextMenu: { ...state.contextMenu, options: newContextMenuOptions },
158
+ })),
159
+ setTransformingImage: (newTransformingImage) =>
160
+ set((state) => ({
161
+ ...state,
162
+ images: { ...state.images, transforming: newTransformingImage },
163
+ })),
164
+ setUploadingImage: (newUploadingImage) =>
165
+ set((state) => ({
166
+ ...state,
167
+ images: { ...state.images, uploading: newUploadingImage },
168
+ })),
169
+ setShowSelectFileImage: (newShowSelectFileImage) =>
170
+ set((state) => ({
171
+ ...state,
172
+ images: { ...state.images, showSelectFile: newShowSelectFileImage },
173
+ })),
174
+ setLoadingImage: (newLoadingImage) =>
175
+ set((state) => ({
176
+ ...state,
177
+ images: { ...state.images, loading: newLoadingImage },
178
+ })),
179
+ setFinishUploadCallbackImage: (newFinishUploadCallbackImage) =>
180
+ set((state) => ({
181
+ ...state,
182
+ images: {
183
+ ...state.images,
184
+ finishUploadCallback: newFinishUploadCallbackImage,
185
+ },
186
+ })),
187
+ setNodePropertiesAction: (newNodePropertiesAction) =>
188
+ set((state) => ({
189
+ ...state,
190
+ nodeProperties: {
191
+ ...state.nodeProperties,
192
+ action: newNodePropertiesAction,
193
+ },
194
+ })),
195
+ setNodePropertiesCreateProps: (newNodePropertiesCreateProps) =>
196
+ set((state) => ({
197
+ ...state,
198
+ nodeProperties: {
199
+ ...state.nodeProperties,
200
+ createProps: newNodePropertiesCreateProps,
201
+ },
202
+ })),
203
+ setNodePropertiesVisible: (newNodePropertiesVisible) =>
204
+ set((state) => ({
205
+ ...state,
206
+ nodeProperties: {
207
+ ...state.nodeProperties,
208
+ visible: newNodePropertiesVisible,
209
+ },
210
+ })),
211
+ setImagesLibraryVisible: (newImagesLibraryVisible) =>
212
+ set((state) => ({
213
+ ...state,
214
+ images: {
215
+ ...state.images,
216
+ library: { ...state.images.library, visible: newImagesLibraryVisible },
217
+ },
218
+ })),
219
+ setFramesLibraryVisible: (newFramesLibraryVisible) =>
220
+ set((state) => ({
221
+ ...state,
222
+ frames: {
223
+ ...state.frames,
224
+ library: {
225
+ ...state.frames.library,
226
+ visible: newFramesLibraryVisible,
227
+ },
228
+ },
229
+ })),
230
+ setColorTokensLibraryVisible: (newColorTokensLibraryVisible) =>
231
+ set((state) => ({
232
+ ...state,
233
+ colorToken: {
234
+ ...state.colorToken,
235
+ library: {
236
+ ...state.colorToken.library,
237
+ visible: newColorTokensLibraryVisible,
238
+ },
239
+ },
240
+ })),
241
+ }));
@@ -0,0 +1,37 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2017",
4
+ "lib": ["dom", "dom.iterable", "esnext"],
5
+ "allowJs": true,
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noEmit": true,
9
+ "esModuleInterop": true,
10
+ "module": "esnext",
11
+ "moduleResolution": "bundler",
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "jsx": "preserve",
15
+ "incremental": true,
16
+ "plugins": [
17
+ {
18
+ "name": "next"
19
+ }
20
+ ],
21
+ "baseUrl": ".",
22
+ "paths": {
23
+ "@/*": ["./*"],
24
+ "konva": ["./node_modules/konva"],
25
+ "konva/lib/types": ["./node_modules/konva/lib/types"]
26
+ }
27
+ },
28
+ "include": [
29
+ "new-types.d.ts",
30
+ "next-env.d.ts",
31
+ "**/*.ts",
32
+ "**/*.tsx",
33
+ ".next/types/**/*.ts",
34
+ "next.config.mts"
35
+ ],
36
+ "exclude": ["node_modules"]
37
+ }
@@ -0,0 +1,10 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import react from '@vitejs/plugin-react'
3
+ import tsconfigPaths from 'vite-tsconfig-paths'
4
+
5
+ export default defineConfig({
6
+ plugins: [tsconfigPaths(), react()],
7
+ test: {
8
+ environment: 'jsdom',
9
+ },
10
+ })
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "example-versions",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "description": "Used to track dependency versions in create-*-app",
6
+ "license": "MIT",
7
+ "dependencies": {
8
+ "@hookform/resolvers": "^4.1.3",
9
+ "@inditextech/weave-react": "0.0.0",
10
+ "@inditextech/weave-sdk": "0.0.0",
11
+ "@inditextech/weave-store-websockets": "0.0.0",
12
+ "@inditextech/weave-store-azure-web-pubsub": "0.0.0",
13
+ "@inditextech/weave-types": "0.0.0",
14
+ "@next/env": "^15.2.1",
15
+ "@radix-ui/react-accordion": "^1.2.3",
16
+ "@radix-ui/react-avatar": "^1.1.3",
17
+ "@radix-ui/react-checkbox": "^1.1.4",
18
+ "@radix-ui/react-dialog": "^1.1.6",
19
+ "@radix-ui/react-dropdown-menu": "^2.1.6",
20
+ "@radix-ui/react-label": "^2.1.2",
21
+ "@radix-ui/react-popover": "^1.1.6",
22
+ "@radix-ui/react-scroll-area": "^1.2.3",
23
+ "@radix-ui/react-select": "^2.1.6",
24
+ "@radix-ui/react-slider": "^1.2.3",
25
+ "@radix-ui/react-slot": "^1.1.2",
26
+ "@radix-ui/react-tabs": "^1.1.3",
27
+ "@radix-ui/react-tooltip": "^1.1.8",
28
+ "@react-three/fiber": "^8.18.0",
29
+ "@react-three/postprocessing": "^2.19.1",
30
+ "@tanstack/react-query": "^5.67.1",
31
+ "boring-avatars": "^1.11.2",
32
+ "canvas": "^3.1.0",
33
+ "class-variance-authority": "^0.7.1",
34
+ "clsx": "^2.1.1",
35
+ "cmdk": "^1.0.0",
36
+ "color": "^5.0.0",
37
+ "framer-motion": "^11.18.2",
38
+ "konva": "^9.3.18",
39
+ "motion": "^12.4.7",
40
+ "next": "14.2.24",
41
+ "next-themes": "^0.4.6",
42
+ "ogl": "^1.0.11",
43
+ "onnxruntime-web": "^1.21.0-dev.20250206-d981b153d3",
44
+ "pdf-lib": "^1.17.1",
45
+ "platform-detect": "^3.0.1",
46
+ "postprocessing": "^6.37.1",
47
+ "react": "18.2.0",
48
+ "react-dom": "18.2.0",
49
+ "react-hook-form": "^7.54.2",
50
+ "react-number-format": "^5.4.3",
51
+ "sharp": "^0.33.5",
52
+ "sonner": "^2.0.3",
53
+ "tailwind-merge": "^3.0.2",
54
+ "tailwindcss-animate": "^1.0.7",
55
+ "three": "^0.167.1",
56
+ "uuid": "^11.1.0",
57
+ "vaul": "^1.1.2",
58
+ "zod": "^3.24.2",
59
+ "zustand": "^5.0.3"
60
+ },
61
+ "devDependencies": {
62
+ "@eslint/eslintrc": "^3",
63
+ "@tailwindcss/postcss": "^4",
64
+ "@testing-library/dom": "^10.4.0",
65
+ "@testing-library/react": "^16.2.0",
66
+ "@types/node": "^20",
67
+ "@types/react": "^18",
68
+ "@types/react-dom": "^18",
69
+ "@vitejs/plugin-react": "^4.3.4",
70
+ "@vitest/coverage-v8": "^3.0.7",
71
+ "eslint": "^8",
72
+ "eslint-config-next": "14.2.24",
73
+ "eslint-config-prettier": "^10.0.2",
74
+ "jsdom": "^26.0.0",
75
+ "lucide-react": "^0.477.0",
76
+ "tailwindcss": "^4",
77
+ "typescript": "^5",
78
+ "vite-tsconfig-paths": "^5.1.4",
79
+ "vitest": "^3.0.7"
80
+ }
81
+ }