create-weave-frontend-app 2.6.0 → 2.7.1

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 (292) hide show
  1. package/dist/{create-app-DzP0ryiu.js → create-app-nsSHnNL3.js} +22 -22
  2. package/dist/create-app-nsSHnNL3.js.map +1 -0
  3. package/dist/create-app.js +1 -1
  4. package/dist/index.js +83 -2
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/template/+nextjs+azure-web-pubsub/.eslintrc.json +6 -0
  8. package/template/+nextjs+azure-web-pubsub/api/del-image.ts +1 -1
  9. package/template/+nextjs+azure-web-pubsub/api/get-images.ts +1 -1
  10. package/template/+nextjs+azure-web-pubsub/api/get-room.ts +11 -0
  11. package/template/+nextjs+azure-web-pubsub/api/post-export-to-image.ts +56 -0
  12. package/template/+nextjs+azure-web-pubsub/api/post-image.ts +2 -2
  13. package/template/+nextjs+azure-web-pubsub/api/post-remove-background.ts +1 -1
  14. package/template/+nextjs+azure-web-pubsub/app/error/page.tsx +2 -2
  15. package/template/+nextjs+azure-web-pubsub/app/globals.css +1 -1
  16. package/template/+nextjs+azure-web-pubsub/app/layout.tsx +10 -10
  17. package/template/+nextjs+azure-web-pubsub/app/page.tsx +1 -1
  18. package/template/+nextjs+azure-web-pubsub/app/providers.tsx +2 -2
  19. package/template/+nextjs+azure-web-pubsub/app/rooms/[roomId]/page.tsx +2 -2
  20. package/template/+nextjs+azure-web-pubsub/components/actions/align-elements-tool/align-elements-tool.ts +7 -7
  21. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/color-token-tool.ts +23 -24
  22. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/constants.ts +3 -3
  23. package/template/+nextjs+azure-web-pubsub/components/actions/color-token-tool/types.ts +2 -2
  24. package/template/+nextjs+azure-web-pubsub/components/error/error.tsx +18 -15
  25. package/template/+nextjs+azure-web-pubsub/components/error/errors.ts +13 -13
  26. package/template/+nextjs+azure-web-pubsub/components/home/home.tsx +12 -9
  27. package/template/+nextjs+azure-web-pubsub/components/home-components/home-showcase-animation.tsx +6 -6
  28. package/template/+nextjs+azure-web-pubsub/components/home-components/login-form.tsx +20 -19
  29. package/template/+nextjs+azure-web-pubsub/components/nodes/color-token/color-token.ts +17 -17
  30. package/template/+nextjs+azure-web-pubsub/components/room/room.layout.tsx +52 -93
  31. package/template/+nextjs+azure-web-pubsub/components/room/room.tsx +38 -38
  32. package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-token.tsx +5 -5
  33. package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-tokens-library.tsx +18 -34
  34. package/template/+nextjs+azure-web-pubsub/components/room-components/connected-users.tsx +22 -22
  35. package/template/+nextjs+azure-web-pubsub/components/room-components/connection-status.tsx +10 -10
  36. package/template/+nextjs+azure-web-pubsub/components/room-components/context-menu.tsx +19 -19
  37. package/template/+nextjs+azure-web-pubsub/components/room-components/elements-tree/elements-tree.tsx +191 -0
  38. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.image.tsx +9 -9
  39. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.presentation-image.tsx +3 -3
  40. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.tsx +30 -44
  41. package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/utils.ts +6 -6
  42. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-arrange.tsx +15 -15
  43. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-drawer.tsx +19 -19
  44. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-edit.tsx +17 -17
  45. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-selection.tsx +7 -7
  46. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-shortcut-element.tsx +2 -2
  47. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-tools.tsx +19 -19
  48. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-view.tsx +7 -7
  49. package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-zoom.tsx +11 -11
  50. package/template/+nextjs+azure-web-pubsub/components/room-components/help/shortcut-element.tsx +3 -3
  51. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-context-menu.tsx +157 -124
  52. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-copy-paste.tsx +35 -20
  53. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-export-to-image-server-side.ts +133 -0
  54. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-azure-web-pubsub-provider.tsx +34 -8
  55. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-os.ts +2 -2
  56. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-handle-route-params.ts +4 -4
  57. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-key-down.ts +7 -7
  58. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-keyboard-handler.tsx +124 -114
  59. package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-mounted.tsx +1 -1
  60. package/template/+nextjs+azure-web-pubsub/components/room-components/images-library/images-library.tsx +120 -67
  61. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-color.tsx +11 -11
  62. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-font-family.tsx +7 -7
  63. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-number.tsx +6 -6
  64. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-select.tsx +7 -7
  65. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-text.tsx +6 -6
  66. package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/number-input.tsx +9 -9
  67. package/template/+nextjs+azure-web-pubsub/components/room-components/no-ssr.tsx +3 -3
  68. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/appearance-properties.tsx +20 -20
  69. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/arrow-properties.tsx +20 -20
  70. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/color-token-properties.tsx +18 -18
  71. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/crop-properties.tsx +23 -23
  72. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/ellipse-properties.tsx +21 -21
  73. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/fill-properties.tsx +21 -21
  74. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/frame-properties.tsx +22 -22
  75. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/image-properties.tsx +8 -8
  76. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/meta-properties.tsx +16 -16
  77. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/position-properties.tsx +15 -15
  78. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/regular-polygon-properties.tsx +18 -18
  79. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/size-properties.tsx +47 -47
  80. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/star-properties.tsx +22 -22
  81. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/stroke-properties.tsx +41 -41
  82. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/text-properties.tsx +64 -64
  83. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/divider.tsx +11 -11
  84. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/export-config.tsx +289 -0
  85. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/node-properties.tsx +34 -54
  86. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/overlay-animation-wrapper.tsx +3 -3
  87. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-header.tsx +62 -189
  88. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-users-overlay.tsx +6 -6
  89. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/tools-overlay.tsx +205 -144
  90. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/variants.ts +8 -8
  91. package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/zoom-toolbar.tsx +23 -23
  92. package/template/+nextjs+azure-web-pubsub/components/room-components/room-error.tsx +4 -4
  93. package/template/+nextjs+azure-web-pubsub/components/room-components/room-loader/room-loader.tsx +12 -12
  94. package/template/+nextjs+azure-web-pubsub/components/room-components/selection-information.tsx +8 -8
  95. package/template/+nextjs+azure-web-pubsub/components/room-components/sidebar-selector.tsx +32 -18
  96. package/template/+nextjs+azure-web-pubsub/components/room-components/toggle-icon-button.tsx +16 -16
  97. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-button.tsx +23 -23
  98. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-toggle-button.tsx +7 -7
  99. package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar.tsx +12 -12
  100. package/template/+nextjs+azure-web-pubsub/components/room-components/upload-file.tsx +30 -21
  101. package/template/+nextjs+azure-web-pubsub/components/room-components/user-form.tsx +14 -13
  102. package/template/+nextjs+azure-web-pubsub/components/ui/accordion.tsx +9 -9
  103. package/template/+nextjs+azure-web-pubsub/components/ui/avatar.tsx +9 -9
  104. package/template/+nextjs+azure-web-pubsub/components/ui/badge.tsx +50 -0
  105. package/template/+nextjs+azure-web-pubsub/components/ui/button.tsx +20 -20
  106. package/template/+nextjs+azure-web-pubsub/components/ui/card.tsx +15 -15
  107. package/template/+nextjs+azure-web-pubsub/components/ui/checkbox.tsx +7 -7
  108. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/color-picker-component.tsx +7 -7
  109. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/context/color-picker-context.tsx +3 -3
  110. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/editor/color-picker-format-editor.tsx +6 -6
  111. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/index.ts +7 -7
  112. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-alpha.tsx +7 -7
  113. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-eyedropper.tsx +13 -13
  114. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-format-selector.tsx +7 -7
  115. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-hue.tsx +11 -11
  116. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-saturation.tsx +15 -15
  117. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +8 -8
  118. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +14 -14
  119. package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +12 -12
  120. package/template/+nextjs+azure-web-pubsub/components/ui/command.tsx +21 -21
  121. package/template/+nextjs+azure-web-pubsub/components/ui/dialog.tsx +17 -18
  122. package/template/+nextjs+azure-web-pubsub/components/ui/drawer.tsx +18 -18
  123. package/template/+nextjs+azure-web-pubsub/components/ui/dropdown-menu.tsx +26 -26
  124. package/template/+nextjs+azure-web-pubsub/components/ui/form.tsx +19 -19
  125. package/template/+nextjs+azure-web-pubsub/components/ui/input.tsx +9 -9
  126. package/template/+nextjs+azure-web-pubsub/components/ui/label.tsx +6 -6
  127. package/template/+nextjs+azure-web-pubsub/components/ui/popover.tsx +7 -7
  128. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/Backgrounds/Dither/Dither.tsx +17 -17
  129. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/Backgrounds/Threads/Threads.tsx +10 -10
  130. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/TextAnimations/RotatingText/RotatingText.tsx +41 -41
  131. package/template/+nextjs+azure-web-pubsub/components/ui/reactbits/TextAnimations/ScrollVelocity/ScrollVelocity.tsx +9 -9
  132. package/template/+nextjs+azure-web-pubsub/components/ui/scroll-area.tsx +12 -12
  133. package/template/+nextjs+azure-web-pubsub/components/ui/select.tsx +23 -23
  134. package/template/+nextjs+azure-web-pubsub/components/ui/sheet.tsx +24 -24
  135. package/template/+nextjs+azure-web-pubsub/components/ui/sonner.tsx +8 -8
  136. package/template/+nextjs+azure-web-pubsub/components/ui/tabs.tsx +9 -9
  137. package/template/+nextjs+azure-web-pubsub/components/ui/tooltip.tsx +6 -6
  138. package/template/+nextjs+azure-web-pubsub/components/ui/tree-view.tsx +46 -46
  139. package/template/+nextjs+azure-web-pubsub/components/utils/constants.ts +81 -48
  140. package/template/+nextjs+azure-web-pubsub/components/utils/images.ts +30 -0
  141. package/template/+nextjs+azure-web-pubsub/components/utils/logo.tsx +26 -26
  142. package/template/+nextjs+azure-web-pubsub/components/utils/users.ts +3 -3
  143. package/template/+nextjs+azure-web-pubsub/lib/constants.ts +7 -8
  144. package/template/+nextjs+azure-web-pubsub/lib/utils.ts +43 -10
  145. package/template/+nextjs+azure-web-pubsub/next.config.js +12 -12
  146. package/template/+nextjs+azure-web-pubsub/store/store.ts +76 -32
  147. package/template/+nextjs+azure-web-pubsub/weave.d.ts +1 -0
  148. package/template/+nextjs+websockets/.eslintrc.json +6 -0
  149. package/template/+nextjs+websockets/api/del-image.ts +1 -1
  150. package/template/+nextjs+websockets/api/get-images.ts +1 -1
  151. package/template/+nextjs+websockets/api/get-room.ts +11 -0
  152. package/template/+nextjs+websockets/api/post-export-to-image.ts +56 -0
  153. package/template/+nextjs+websockets/api/post-image.ts +2 -2
  154. package/template/+nextjs+websockets/api/post-remove-background.ts +1 -1
  155. package/template/+nextjs+websockets/app/error/page.tsx +2 -2
  156. package/template/+nextjs+websockets/app/globals.css +1 -1
  157. package/template/+nextjs+websockets/app/layout.tsx +10 -10
  158. package/template/+nextjs+websockets/app/page.tsx +1 -1
  159. package/template/+nextjs+websockets/app/providers.tsx +2 -2
  160. package/template/+nextjs+websockets/app/rooms/[roomId]/page.tsx +2 -2
  161. package/template/+nextjs+websockets/components/actions/align-elements-tool/align-elements-tool.ts +7 -7
  162. package/template/+nextjs+websockets/components/actions/color-token-tool/color-token-tool.ts +20 -20
  163. package/template/+nextjs+websockets/components/actions/color-token-tool/constants.ts +3 -3
  164. package/template/+nextjs+websockets/components/actions/color-token-tool/types.ts +2 -2
  165. package/template/+nextjs+websockets/components/error/error.tsx +12 -12
  166. package/template/+nextjs+websockets/components/error/errors.ts +13 -13
  167. package/template/+nextjs+websockets/components/home/home.tsx +6 -6
  168. package/template/+nextjs+websockets/components/home-components/home-showcase-animation.tsx +6 -6
  169. package/template/+nextjs+websockets/components/home-components/login-form.tsx +20 -19
  170. package/template/+nextjs+websockets/components/nodes/color-token/color-token.ts +17 -17
  171. package/template/+nextjs+websockets/components/room/room.layout.tsx +52 -93
  172. package/template/+nextjs+websockets/components/room/room.tsx +38 -38
  173. package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-token.tsx +5 -5
  174. package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-tokens-library.tsx +18 -34
  175. package/template/+nextjs+websockets/components/room-components/connected-users.tsx +22 -22
  176. package/template/+nextjs+websockets/components/room-components/connection-status.tsx +10 -10
  177. package/template/+nextjs+websockets/components/room-components/context-menu.tsx +19 -19
  178. package/template/+nextjs+websockets/components/room-components/elements-tree/elements-tree.tsx +51 -48
  179. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.image.tsx +9 -9
  180. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.presentation-image.tsx +3 -3
  181. package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.tsx +30 -44
  182. package/template/+nextjs+websockets/components/room-components/frames-library/utils.ts +6 -6
  183. package/template/+nextjs+websockets/components/room-components/help/help-arrange.tsx +15 -15
  184. package/template/+nextjs+websockets/components/room-components/help/help-drawer.tsx +19 -19
  185. package/template/+nextjs+websockets/components/room-components/help/help-edit.tsx +17 -17
  186. package/template/+nextjs+websockets/components/room-components/help/help-selection.tsx +7 -7
  187. package/template/+nextjs+websockets/components/room-components/help/help-shortcut-element.tsx +2 -2
  188. package/template/+nextjs+websockets/components/room-components/help/help-tools.tsx +19 -19
  189. package/template/+nextjs+websockets/components/room-components/help/help-view.tsx +7 -7
  190. package/template/+nextjs+websockets/components/room-components/help/help-zoom.tsx +11 -11
  191. package/template/+nextjs+websockets/components/room-components/help/shortcut-element.tsx +3 -3
  192. package/template/+nextjs+websockets/components/room-components/hooks/use-context-menu.tsx +157 -124
  193. package/template/+nextjs+websockets/components/room-components/hooks/use-copy-paste.tsx +35 -20
  194. package/template/+nextjs+websockets/components/room-components/hooks/use-export-to-image-server-side.ts +133 -0
  195. package/template/+nextjs+websockets/components/room-components/hooks/use-get-os.ts +2 -2
  196. package/template/+nextjs+websockets/components/room-components/hooks/use-get-websockets-provider.ts +40 -13
  197. package/template/+nextjs+websockets/components/room-components/hooks/use-handle-route-params.ts +4 -4
  198. package/template/+nextjs+websockets/components/room-components/hooks/use-key-down.ts +7 -7
  199. package/template/+nextjs+websockets/components/room-components/hooks/use-keyboard-handler.tsx +124 -114
  200. package/template/+nextjs+websockets/components/room-components/hooks/use-mounted.tsx +1 -1
  201. package/template/+nextjs+websockets/components/room-components/images-library/images-library.tsx +120 -67
  202. package/template/+nextjs+websockets/components/room-components/inputs/input-color.tsx +11 -11
  203. package/template/+nextjs+websockets/components/room-components/inputs/input-font-family.tsx +7 -7
  204. package/template/+nextjs+websockets/components/room-components/inputs/input-number.tsx +6 -6
  205. package/template/+nextjs+websockets/components/room-components/inputs/input-select.tsx +7 -7
  206. package/template/+nextjs+websockets/components/room-components/inputs/input-text.tsx +6 -6
  207. package/template/+nextjs+websockets/components/room-components/inputs/number-input.tsx +9 -9
  208. package/template/+nextjs+websockets/components/room-components/no-ssr.tsx +3 -3
  209. package/template/+nextjs+websockets/components/room-components/node-properties/appearance-properties.tsx +20 -20
  210. package/template/+nextjs+websockets/components/room-components/node-properties/arrow-properties.tsx +20 -20
  211. package/template/+nextjs+websockets/components/room-components/node-properties/color-token-properties.tsx +18 -18
  212. package/template/+nextjs+websockets/components/room-components/node-properties/crop-properties.tsx +23 -23
  213. package/template/+nextjs+websockets/components/room-components/node-properties/ellipse-properties.tsx +21 -21
  214. package/template/+nextjs+websockets/components/room-components/node-properties/fill-properties.tsx +21 -21
  215. package/template/+nextjs+websockets/components/room-components/node-properties/frame-properties.tsx +22 -22
  216. package/template/+nextjs+websockets/components/room-components/node-properties/image-properties.tsx +8 -8
  217. package/template/+nextjs+websockets/components/room-components/node-properties/meta-properties.tsx +16 -16
  218. package/template/+nextjs+websockets/components/room-components/node-properties/position-properties.tsx +15 -15
  219. package/template/+nextjs+websockets/components/room-components/node-properties/regular-polygon-properties.tsx +18 -18
  220. package/template/+nextjs+websockets/components/room-components/node-properties/size-properties.tsx +47 -47
  221. package/template/+nextjs+websockets/components/room-components/node-properties/star-properties.tsx +22 -22
  222. package/template/+nextjs+websockets/components/room-components/node-properties/stroke-properties.tsx +41 -41
  223. package/template/+nextjs+websockets/components/room-components/node-properties/text-properties.tsx +64 -64
  224. package/template/+nextjs+websockets/components/room-components/overlay/divider.tsx +11 -11
  225. package/template/+nextjs+websockets/components/room-components/overlay/export-config.tsx +289 -0
  226. package/template/+nextjs+websockets/components/room-components/overlay/node-properties.tsx +126 -115
  227. package/template/+nextjs+websockets/components/room-components/overlay/overlay-animation-wrapper.tsx +3 -3
  228. package/template/+nextjs+websockets/components/room-components/overlay/room-header.tsx +61 -188
  229. package/template/+nextjs+websockets/components/room-components/overlay/room-users-overlay.tsx +6 -6
  230. package/template/+nextjs+websockets/components/room-components/overlay/tools-overlay.tsx +204 -143
  231. package/template/+nextjs+websockets/components/room-components/overlay/variants.ts +8 -8
  232. package/template/+nextjs+websockets/components/room-components/overlay/zoom-toolbar.tsx +23 -23
  233. package/template/+nextjs+websockets/components/room-components/room-error.tsx +4 -4
  234. package/template/+nextjs+websockets/components/room-components/room-loader/room-loader.tsx +12 -12
  235. package/template/+nextjs+websockets/components/room-components/selection-information.tsx +8 -8
  236. package/template/+nextjs+websockets/components/room-components/sidebar-selector.tsx +32 -18
  237. package/template/+nextjs+websockets/components/room-components/toggle-icon-button.tsx +16 -16
  238. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-button.tsx +23 -23
  239. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-toggle-button.tsx +7 -7
  240. package/template/+nextjs+websockets/components/room-components/toolbar/toolbar.tsx +12 -12
  241. package/template/+nextjs+websockets/components/room-components/upload-file.tsx +30 -21
  242. package/template/+nextjs+websockets/components/room-components/user-form.tsx +14 -13
  243. package/template/+nextjs+websockets/components/ui/accordion.tsx +9 -9
  244. package/template/+nextjs+websockets/components/ui/avatar.tsx +9 -9
  245. package/template/+nextjs+websockets/components/ui/badge.tsx +50 -0
  246. package/template/+nextjs+websockets/components/ui/button.tsx +20 -20
  247. package/template/+nextjs+websockets/components/ui/card.tsx +15 -15
  248. package/template/+nextjs+websockets/components/ui/checkbox.tsx +7 -7
  249. package/template/+nextjs+websockets/components/ui/color-picker/color-picker-component.tsx +7 -7
  250. package/template/+nextjs+websockets/components/ui/color-picker/context/color-picker-context.tsx +3 -3
  251. package/template/+nextjs+websockets/components/ui/color-picker/editor/color-picker-format-editor.tsx +6 -6
  252. package/template/+nextjs+websockets/components/ui/color-picker/index.ts +7 -7
  253. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-alpha.tsx +7 -7
  254. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-eyedropper.tsx +13 -13
  255. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-format-selector.tsx +7 -7
  256. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-hue.tsx +11 -11
  257. package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-saturation.tsx +15 -15
  258. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +8 -8
  259. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +14 -14
  260. package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +12 -12
  261. package/template/+nextjs+websockets/components/ui/command.tsx +21 -21
  262. package/template/+nextjs+websockets/components/ui/dialog.tsx +17 -18
  263. package/template/+nextjs+websockets/components/ui/drawer.tsx +18 -18
  264. package/template/+nextjs+websockets/components/ui/dropdown-menu.tsx +26 -26
  265. package/template/+nextjs+websockets/components/ui/form.tsx +19 -19
  266. package/template/+nextjs+websockets/components/ui/input.tsx +9 -9
  267. package/template/+nextjs+websockets/components/ui/label.tsx +6 -6
  268. package/template/+nextjs+websockets/components/ui/popover.tsx +7 -7
  269. package/template/+nextjs+websockets/components/ui/reactbits/Backgrounds/Dither/Dither.tsx +17 -17
  270. package/template/+nextjs+websockets/components/ui/reactbits/Backgrounds/Threads/Threads.tsx +10 -10
  271. package/template/+nextjs+websockets/components/ui/reactbits/TextAnimations/RotatingText/RotatingText.tsx +41 -41
  272. package/template/+nextjs+websockets/components/ui/reactbits/TextAnimations/ScrollVelocity/ScrollVelocity.tsx +9 -9
  273. package/template/+nextjs+websockets/components/ui/scroll-area.tsx +12 -12
  274. package/template/+nextjs+websockets/components/ui/select.tsx +23 -23
  275. package/template/+nextjs+websockets/components/ui/sheet.tsx +24 -24
  276. package/template/+nextjs+websockets/components/ui/sonner.tsx +8 -8
  277. package/template/+nextjs+websockets/components/ui/tabs.tsx +9 -9
  278. package/template/+nextjs+websockets/components/ui/tooltip.tsx +6 -6
  279. package/template/+nextjs+websockets/components/ui/tree-view.tsx +46 -46
  280. package/template/+nextjs+websockets/components/utils/constants.ts +81 -48
  281. package/template/+nextjs+websockets/components/utils/images.ts +30 -0
  282. package/template/+nextjs+websockets/components/utils/logo.tsx +26 -26
  283. package/template/+nextjs+websockets/components/utils/users.ts +3 -3
  284. package/template/+nextjs+websockets/lib/constants.ts +7 -8
  285. package/template/+nextjs+websockets/lib/utils.ts +43 -10
  286. package/template/+nextjs+websockets/next.config.js +12 -12
  287. package/template/+nextjs+websockets/store/store.ts +75 -32
  288. package/template/+nextjs+websockets/weave.d.ts +1 -0
  289. package/template/package.json +4 -2
  290. package/dist/create-app-DzP0ryiu.js.map +0 -1
  291. package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/radius-properties.tsx +0 -179
  292. package/template/+nextjs+websockets/components/room-components/hooks/use-get-weave-js-props.tsx +0 -35
@@ -76,11 +76,11 @@ function tryGitInit(root) {
76
76
  //#endregion
77
77
  //#region src/versions.js
78
78
  const versions = {
79
- "@inditextech/weave-types": "2.6.0",
80
- "@inditextech/weave-sdk": "2.6.0",
81
- "@inditextech/weave-store-websockets": "2.6.0",
82
- "@inditextech/weave-store-azure-web-pubsub": "2.6.0",
83
- "@inditextech/weave-react": "2.6.0"
79
+ "@inditextech/weave-react": "2.7.1",
80
+ "@inditextech/weave-sdk": "2.7.1",
81
+ "@inditextech/weave-store-azure-web-pubsub": "2.7.1",
82
+ "@inditextech/weave-store-websockets": "2.7.1",
83
+ "@inditextech/weave-types": "2.7.1"
84
84
  };
85
85
 
86
86
  //#endregion
@@ -93,9 +93,8 @@ var license = "MIT";
93
93
  var dependencies = {
94
94
  "@hookform/resolvers": "^4.1.3",
95
95
  "@inditextech/weave-react": "0.0.0",
96
- "@inditextech/weave-sdk": "0.0.0",
97
- "@inditextech/weave-store-websockets": "0.0.0",
98
96
  "@inditextech/weave-store-azure-web-pubsub": "0.0.0",
97
+ "@inditextech/weave-store-websockets": "0.0.0",
99
98
  "@next/env": "^15.2.1",
100
99
  "@radix-ui/react-accordion": "^1.2.3",
101
100
  "@radix-ui/react-avatar": "^1.1.3",
@@ -133,6 +132,7 @@ var dependencies = {
133
132
  "react-dom": "18.2.0",
134
133
  "react-hook-form": "^7.54.2",
135
134
  "react-number-format": "^5.4.3",
135
+ "react-responsive-masonry": "^2.7.1",
136
136
  "sharp": "^0.33.5",
137
137
  "sonner": "^2.0.3",
138
138
  "tailwind-merge": "^3.0.2",
@@ -152,6 +152,7 @@ var devDependencies = {
152
152
  "@types/node": "^20",
153
153
  "@types/react": "^18",
154
154
  "@types/react-dom": "^18",
155
+ "@types/react-responsive-masonry": "^2.6.0",
155
156
  "@vitejs/plugin-react": "^4.3.4",
156
157
  "@vitest/coverage-v8": "^3.0.7",
157
158
  "eslint": "^8",
@@ -159,6 +160,7 @@ var devDependencies = {
159
160
  "eslint-config-prettier": "^10.0.2",
160
161
  "jsdom": "^26.0.0",
161
162
  "lucide-react": "^0.477.0",
163
+ "prettier": "^3.6.2",
162
164
  "tailwindcss": "^4",
163
165
  "typescript": "^5",
164
166
  "vite-tsconfig-paths": "^5.1.4",
@@ -284,6 +286,7 @@ function createPackageJson(projectName, options) {
284
286
  "react-dom",
285
287
  "react-hook-form",
286
288
  "react-number-format",
289
+ "react-responsive-masonry",
287
290
  "sharp",
288
291
  "sonner",
289
292
  "tailwind-merge",
@@ -294,11 +297,7 @@ function createPackageJson(projectName, options) {
294
297
  "zod",
295
298
  "zustand"
296
299
  ]),
297
- ...pick(versions, [
298
- "@inditextech/weave-react",
299
- "@inditextech/weave-sdk",
300
- "@inditextech/weave-store-azure-web-pubsub"
301
- ])
300
+ ...pick(versions, ["@inditextech/weave-react", "@inditextech/weave-store-azure-web-pubsub"])
302
301
  };
303
302
  const devDependencies$2 = { ...pick(package_default.devDependencies, [
304
303
  "@eslint/eslintrc",
@@ -309,23 +308,25 @@ function createPackageJson(projectName, options) {
309
308
  "@types/node",
310
309
  "@types/react",
311
310
  "@types/react-dom",
311
+ "@types/react-responsive-masonry",
312
312
  "@vitejs/plugin-react",
313
313
  "eslint",
314
314
  "eslint-config-next",
315
315
  "eslint-config-prettier",
316
316
  "jsdom",
317
317
  "lucide-react",
318
+ "prettier",
318
319
  "tailwindcss",
319
320
  "typescript",
320
321
  "vite-tsconfig-paths"
321
322
  ]) };
322
323
  return {
324
+ ...package_default,
323
325
  name: projectName,
324
- version: "0.0.0",
325
- private: true,
326
326
  scripts: {
327
327
  build: "next build",
328
328
  dev: "next dev --experimental-https",
329
+ format: "prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js",
329
330
  lint: "next lint",
330
331
  start: "next start"
331
332
  },
@@ -373,6 +374,7 @@ function createPackageJson(projectName, options) {
373
374
  "react-dom",
374
375
  "react-hook-form",
375
376
  "react-number-format",
377
+ "react-responsive-masonry",
376
378
  "sharp",
377
379
  "sonner",
378
380
  "tailwind-merge",
@@ -383,11 +385,7 @@ function createPackageJson(projectName, options) {
383
385
  "zod",
384
386
  "zustand"
385
387
  ]),
386
- ...pick(versions, [
387
- "@inditextech/weave-react",
388
- "@inditextech/weave-sdk",
389
- "@inditextech/weave-store-websockets"
390
- ])
388
+ ...pick(versions, ["@inditextech/weave-react", "@inditextech/weave-store-websockets"])
391
389
  };
392
390
  const devDependencies$1 = { ...pick(package_default.devDependencies, [
393
391
  "@eslint/eslintrc",
@@ -398,23 +396,25 @@ function createPackageJson(projectName, options) {
398
396
  "@types/node",
399
397
  "@types/react",
400
398
  "@types/react-dom",
399
+ "@types/react-responsive-masonry",
401
400
  "@vitejs/plugin-react",
402
401
  "eslint",
403
402
  "eslint-config-next",
404
403
  "eslint-config-prettier",
405
404
  "jsdom",
406
405
  "lucide-react",
406
+ "prettier",
407
407
  "tailwindcss",
408
408
  "typescript",
409
409
  "vite-tsconfig-paths"
410
410
  ]) };
411
411
  return {
412
+ ...package_default,
412
413
  name: projectName,
413
- version: "0.0.0",
414
- private: true,
415
414
  scripts: {
416
415
  build: "next build",
417
416
  dev: "next dev --experimental-https",
417
+ format: "prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js",
418
418
  lint: "next lint",
419
419
  start: "next start"
420
420
  },
@@ -434,4 +434,4 @@ function pick(obj, keys) {
434
434
 
435
435
  //#endregion
436
436
  export { create, cwd, getPackageManager };
437
- //# sourceMappingURL=create-app-DzP0ryiu.js.map
437
+ //# sourceMappingURL=create-app-nsSHnNL3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app-nsSHnNL3.js","names":["cwd: string","root: string","manager: PackageManager","dest: string","options: Options","file: string","dest: string","projectName: string","from: string","to: string","rename: (s: string) => string","obj: T","keys: K[]","result: Partial<T>"],"sources":["../src/git.ts","../src/versions.js","../template/package.json","../src/auto-install.ts","../src/constants.ts","../src/create-app.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { rmSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\n\nfunction isInGitRepository(cwd: string): boolean {\n try {\n execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isInMercurialRepository(cwd: string): boolean {\n try {\n execSync('hg --cwd . root', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isDefaultBranchSet(cwd: string): boolean {\n try {\n execSync('git config init.defaultBranch', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nexport function tryGitInit(root: string): boolean {\n let didInit = false;\n\n try {\n execSync('git --version', { stdio: 'ignore' });\n if (isInGitRepository(root) || isInMercurialRepository(root)) {\n return false;\n }\n\n execSync('git init', { stdio: 'ignore', cwd: root });\n didInit = true;\n\n if (!isDefaultBranchSet(root)) {\n execSync('git checkout -b main', { stdio: 'ignore', cwd: root });\n }\n\n execSync('git add -A', { stdio: 'ignore', cwd: root });\n execSync('git commit -m \"Initial commit from Create Fumadocs App\"', {\n stdio: 'ignore',\n cwd: root,\n });\n return true;\n } catch {\n if (didInit) {\n try {\n rmSync(join(root, '.git'), { recursive: true, force: true });\n } catch {\n // do nothing\n }\n }\n\n return false;\n }\n}\n","export const versions = {\"@inditextech/weave-react\":\"2.7.1\",\"@inditextech/weave-sdk\":\"2.7.1\",\"@inditextech/weave-store-azure-web-pubsub\":\"2.7.1\",\"@inditextech/weave-store-websockets\":\"2.7.1\",\"@inditextech/weave-types\":\"2.7.1\"}","{\n \"name\": \"example-versions\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"description\": \"Used to track dependency versions in create-*-app\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@hookform/resolvers\": \"^4.1.3\",\n \"@inditextech/weave-react\": \"0.0.0\",\n \"@inditextech/weave-store-azure-web-pubsub\": \"0.0.0\",\n \"@inditextech/weave-store-websockets\": \"0.0.0\",\n \"@next/env\": \"^15.2.1\",\n \"@radix-ui/react-accordion\": \"^1.2.3\",\n \"@radix-ui/react-avatar\": \"^1.1.3\",\n \"@radix-ui/react-checkbox\": \"^1.1.4\",\n \"@radix-ui/react-dialog\": \"^1.1.6\",\n \"@radix-ui/react-dropdown-menu\": \"^2.1.6\",\n \"@radix-ui/react-label\": \"^2.1.2\",\n \"@radix-ui/react-popover\": \"^1.1.6\",\n \"@radix-ui/react-scroll-area\": \"^1.2.3\",\n \"@radix-ui/react-select\": \"^2.1.6\",\n \"@radix-ui/react-slider\": \"^1.2.3\",\n \"@radix-ui/react-slot\": \"^1.1.2\",\n \"@radix-ui/react-tabs\": \"^1.1.3\",\n \"@radix-ui/react-tooltip\": \"^1.1.8\",\n \"@react-three/fiber\": \"^8.18.0\",\n \"@react-three/postprocessing\": \"^2.19.1\",\n \"@tanstack/react-query\": \"^5.67.1\",\n \"boring-avatars\": \"^1.11.2\",\n \"change-case\": \"^5.4.4\",\n \"class-variance-authority\": \"^0.7.1\",\n \"clsx\": \"^2.1.1\",\n \"cmdk\": \"^1.0.0\",\n \"color\": \"^5.0.0\",\n \"framer-motion\": \"^11.18.2\",\n \"lodash\": \"^4.17.21\",\n \"motion\": \"^12.4.7\",\n \"next\": \"14.2.32\",\n \"next-themes\": \"^0.4.6\",\n \"ogl\": \"^1.0.11\",\n \"onnxruntime-web\": \"^1.21.0-dev.20250206-d981b153d3\",\n \"pdf-lib\": \"^1.17.1\",\n \"platform-detect\": \"^3.0.1\",\n \"postprocessing\": \"^6.37.1\",\n \"react\": \"18.2.0\",\n \"react-dom\": \"18.2.0\",\n \"react-hook-form\": \"^7.54.2\",\n \"react-number-format\": \"^5.4.3\",\n \"react-responsive-masonry\": \"^2.7.1\",\n \"sharp\": \"^0.33.5\",\n \"sonner\": \"^2.0.3\",\n \"tailwind-merge\": \"^3.0.2\",\n \"tailwindcss-animate\": \"^1.0.7\",\n \"three\": \"^0.167.1\",\n \"uuid\": \"^11.1.0\",\n \"vaul\": \"^1.1.2\",\n \"zod\": \"^3.24.2\",\n \"zustand\": \"^5.0.3\"\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"^3\",\n \"@tailwindcss/postcss\": \"^4\",\n \"@testing-library/dom\": \"^10.4.0\",\n \"@testing-library/react\": \"^16.2.0\",\n \"@types/lodash\": \"^4.17.17\",\n \"@types/node\": \"^20\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@types/react-responsive-masonry\": \"^2.6.0\",\n \"@vitejs/plugin-react\": \"^4.3.4\",\n \"@vitest/coverage-v8\": \"^3.0.7\",\n \"eslint\": \"^8\",\n \"eslint-config-next\": \"14.2.24\",\n \"eslint-config-prettier\": \"^10.0.2\",\n \"jsdom\": \"^26.0.0\",\n \"lucide-react\": \"^0.477.0\",\n \"prettier\": \"^3.6.2\",\n \"tailwindcss\": \"^4\",\n \"typescript\": \"^5\",\n \"vite-tsconfig-paths\": \"^5.1.4\",\n \"vitest\": \"^3.0.7\"\n }\n}\n","import { spawn } from 'cross-spawn';\n\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent ?? '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return 'npm';\n}\n\nexport function autoInstall(\n manager: PackageManager,\n dest: string\n): Promise<void> {\n return new Promise((res, reject) => {\n const installProcess = spawn(manager, ['install'], {\n stdio: 'ignore',\n env: {\n ...process.env,\n NODE_ENV: 'development',\n DISABLE_OPENCOLLECTIVE: '1',\n },\n cwd: dest,\n });\n\n installProcess.on('close', (code) => {\n if (code !== 0) {\n reject(new Error('Install failed'));\n } else {\n res();\n }\n });\n });\n}\n","import { fileURLToPath } from 'node:url';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\nexport const cwd = process.cwd();\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { tryGitInit } from '@/git';\nimport { versions as localVersions } from '@/versions';\nimport versionPkg from './../template/package.json';\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { cwd, sourceDir } from './constants';\n\nexport type Template = '+nextjs+websockets' | '+nextjs+azure-web-pubsub';\n\nexport interface Options {\n outputDir: string;\n template: Template;\n packageManager: PackageManager;\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n}\n\nexport async function create(options: Options): Promise<void> {\n const {\n installDeps = true,\n initializeGit = true,\n log = console.log,\n } = options;\n const projectName = path.basename(options.outputDir);\n const dest = path.resolve(cwd, options.outputDir);\n\n function defaultRename(file: string): string {\n file = file.replace('example.gitignore', '.gitignore');\n file = file.replace('example.env', '.env');\n\n return file;\n }\n\n await copy(\n path.join(sourceDir, `template/${options.template}`),\n dest,\n defaultRename\n );\n\n const packageJson = createPackageJson(projectName, options);\n await fs.writeFile(\n path.join(dest, 'package.json'),\n JSON.stringify(packageJson, null, 2)\n );\n\n const readMe = await getReadme(dest, projectName);\n await fs.writeFile(path.join(dest, 'README.md'), readMe);\n\n if (installDeps) {\n await autoInstall(options.packageManager, dest);\n log('Installed dependencies');\n }\n\n if (initializeGit && tryGitInit(dest)) {\n log('Initialized Git repository');\n }\n}\n\nasync function getReadme(dest: string, projectName: string): Promise<string> {\n const template = await fs\n .readFile(path.join(dest, 'README.md'))\n .then((res) => res.toString());\n\n return `# ${projectName}\\n\\n${template}`;\n}\n\nasync function copy(\n from: string,\n to: string,\n rename: (s: string) => string = (s) => s\n): Promise<void> {\n const stats = await fs.stat(from);\n\n if (stats.isDirectory()) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) =>\n copy(path.join(from, file), rename(path.join(to, file)))\n )\n );\n } else {\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nfunction createPackageJson(projectName: string, options: Options): object {\n if (options.template === '+nextjs+azure-web-pubsub') {\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-azure-web-pubsub',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n }\n\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-websockets',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction sortObjectKeys<T extends Record<string, any>>(obj: T): T {\n const sortedEntries = Object.keys(obj)\n .sort()\n .map((key) => [key, obj[key]] as [keyof T, T[keyof T]]);\n\n return Object.fromEntries(sortedEntries) as T;\n}\n\nfunction pick<T extends object, K extends keyof T>(\n obj: T,\n keys: K[]\n): Pick<T, K> {\n const result: Partial<T> = {};\n\n for (const key of keys) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n\n return result as Pick<T, K>;\n}\n"],"mappings":";;;;;;;;AAUA,SAAS,kBAAkBA,OAAsB;AAC/C,KAAI;AACF,WAAS,uCAAuC;GAAE,OAAO;GAAU;EAAK,EAAC;AACzE,SAAO;CACR,QAAO;AACN,SAAO;CACR;AACF;AAED,SAAS,wBAAwBA,OAAsB;AACrD,KAAI;AACF,WAAS,mBAAmB;GAAE,OAAO;GAAU;EAAK,EAAC;AACrD,SAAO;CACR,QAAO;AACN,SAAO;CACR;AACF;AAED,SAAS,mBAAmBA,OAAsB;AAChD,KAAI;AACF,WAAS,iCAAiC;GAAE,OAAO;GAAU;EAAK,EAAC;AACnE,SAAO;CACR,QAAO;AACN,SAAO;CACR;AACF;AAED,SAAgB,WAAWC,MAAuB;CAChD,IAAI,UAAU;AAEd,KAAI;AACF,WAAS,iBAAiB,EAAE,OAAO,SAAU,EAAC;AAC9C,MAAI,kBAAkB,KAAK,IAAI,wBAAwB,KAAK,CAC1D,QAAO;AAGT,WAAS,YAAY;GAAE,OAAO;GAAU,KAAK;EAAM,EAAC;AACpD,YAAU;AAEV,OAAK,mBAAmB,KAAK,CAC3B,UAAS,wBAAwB;GAAE,OAAO;GAAU,KAAK;EAAM,EAAC;AAGlE,WAAS,cAAc;GAAE,OAAO;GAAU,KAAK;EAAM,EAAC;AACtD,WAAS,6DAA2D;GAClE,OAAO;GACP,KAAK;EACN,EAAC;AACF,SAAO;CACR,QAAO;AACN,MAAI,QACF,KAAI;AACF,UAAO,KAAK,MAAM,OAAO,EAAE;IAAE,WAAW;IAAM,OAAO;GAAM,EAAC;EAC7D,QAAO,CAEP;AAGH,SAAO;CACR;AACF;;;;ACtED,MAAa,WAAW;CAAC,4BAA2B;CAAQ,0BAAyB;CAAQ,6CAA4C;CAAQ,uCAAsC;CAAQ,4BAA2B;AAAQ;;;;WCCxN;cACG;gBACA;kBACI;cACJ;mBACK;CACd,uBAAuB;CACvB,4BAA4B;CAC5B,6CAA6C;CAC7C,uCAAuC;CACvC,aAAa;CACb,6BAA6B;CAC7B,0BAA0B;CAC1B,4BAA4B;CAC5B,0BAA0B;CAC1B,iCAAiC;CACjC,yBAAyB;CACzB,2BAA2B;CAC3B,+BAA+B;CAC/B,0BAA0B;CAC1B,0BAA0B;CAC1B,wBAAwB;CACxB,wBAAwB;CACxB,2BAA2B;CAC3B,sBAAsB;CACtB,+BAA+B;CAC/B,yBAAyB;CACzB,kBAAkB;CAClB,eAAe;CACf,4BAA4B;CAC5B,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,UAAU;CACV,UAAU;CACV,QAAQ;CACR,eAAe;CACf,OAAO;CACP,mBAAmB;CACnB,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB,SAAS;CACT,aAAa;CACb,mBAAmB;CACnB,uBAAuB;CACvB,4BAA4B;CAC5B,SAAS;CACT,UAAU;CACV,kBAAkB;CAClB,uBAAuB;CACvB,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,WAAW;AACZ;sBACkB;CACjB,oBAAoB;CACpB,wBAAwB;CACxB,wBAAwB;CACxB,0BAA0B;CAC1B,iBAAiB;CACjB,eAAe;CACf,gBAAgB;CAChB,oBAAoB;CACpB,mCAAmC;CACnC,wBAAwB;CACxB,uBAAuB;CACvB,UAAU;CACV,sBAAsB;CACtB,0BAA0B;CAC1B,SAAS;CACT,gBAAgB;CAChB,YAAY;CACZ,eAAe;CACf,cAAc;CACd,uBAAuB;CACvB,UAAU;AACX;sBAjFH;;;;;;;;AAkFC;;;;AC9ED,SAAgB,oBAAoC;CAClD,MAAM,YAAY,QAAQ,IAAI,yBAAyB;AAEvD,KAAI,UAAU,WAAW,OAAO,CAC9B,QAAO;AAGT,KAAI,UAAU,WAAW,OAAO,CAC9B,QAAO;AAGT,KAAI,UAAU,WAAW,MAAM,CAC7B,QAAO;AAGT,QAAO;AACR;AAED,SAAgB,YACdC,SACAC,MACe;AACf,QAAO,IAAI,QAAQ,CAAC,KAAK,WAAW;EAClC,MAAM,iBAAiB,MAAM,SAAS,CAAC,SAAU,GAAE;GACjD,OAAO;GACP,KAAK;IACH,GAAG,QAAQ;IACX,UAAU;IACV,wBAAwB;GACzB;GACD,KAAK;EACN,EAAC;AAEF,iBAAe,GAAG,SAAS,CAAC,SAAS;AACnC,OAAI,SAAS,EACX,QAAO,IAAI,MAAM,kBAAkB;OAEnC,MAAK;EAER,EAAC;CACH;AACF;;;;AC3CD,MAAa,YAAY,cAAc,IAAI,KAAK,MAAM,OAAO,KAAK,KAAK,KAAK;AAC5E,MAAa,MAAM,QAAQ,KAAK;;;;ACiBhC,eAAsB,OAAOC,SAAiC;CAC5D,MAAM,EACJ,cAAc,MACd,gBAAgB,MAChB,MAAM,QAAQ,KACf,GAAG;CACJ,MAAM,cAAc,KAAK,SAAS,QAAQ,UAAU;CACpD,MAAM,OAAO,KAAK,QAAQ,KAAK,QAAQ,UAAU;CAEjD,SAAS,cAAcC,MAAsB;AAC3C,SAAO,KAAK,QAAQ,qBAAqB,aAAa;AACtD,SAAO,KAAK,QAAQ,eAAe,OAAO;AAE1C,SAAO;CACR;AAED,OAAM,KACJ,KAAK,KAAK,YAAY,WAAW,QAAQ,SAAS,EAAE,EACpD,MACA,cACD;CAED,MAAM,cAAc,kBAAkB,aAAa,QAAQ;AAC3D,OAAM,GAAG,UACP,KAAK,KAAK,MAAM,eAAe,EAC/B,KAAK,UAAU,aAAa,MAAM,EAAE,CACrC;CAED,MAAM,SAAS,MAAM,UAAU,MAAM,YAAY;AACjD,OAAM,GAAG,UAAU,KAAK,KAAK,MAAM,YAAY,EAAE,OAAO;AAExD,KAAI,aAAa;AACf,QAAM,YAAY,QAAQ,gBAAgB,KAAK;AAC/C,MAAI,yBAAyB;CAC9B;AAED,KAAI,iBAAiB,WAAW,KAAK,CACnC,KAAI,6BAA6B;AAEpC;AAED,eAAe,UAAUC,MAAcC,aAAsC;CAC3E,MAAM,WAAW,MAAM,GACpB,SAAS,KAAK,KAAK,MAAM,YAAY,CAAC,CACtC,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC;AAEhC,SAAQ,IAAI,YAAY,MAAM,SAAS;AACxC;AAED,eAAe,KACbC,MACAC,IACAC,SAAgC,CAAC,MAAM,GACxB;CACf,MAAM,QAAQ,MAAM,GAAG,KAAK,KAAK;AAEjC,KAAI,MAAM,aAAa,EAAE;EACvB,MAAM,QAAQ,MAAM,GAAG,QAAQ,KAAK;AAEpC,QAAM,QAAQ,IACZ,MAAM,IAAI,CAAC,SACT,KAAK,KAAK,KAAK,MAAM,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CACzD,CACF;CACF,OAAM;AACL,QAAM,GAAG,MAAM,KAAK,QAAQ,GAAG,EAAE,EAAE,WAAW,KAAM,EAAC;AACrD,QAAM,GAAG,SAAS,MAAM,GAAG;CAC5B;AACF;AAED,SAAS,kBAAkBH,aAAqBH,SAA0B;AACxE,KAAI,QAAQ,aAAa,4BAA4B;EACnD,MAAM,iBAAe;GACnB,GAAG,KAAK,gBAAW,cAAc;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,EAAC;GACF,GAAG,KAAK,UAAe,CACrB,4BACA,2CACD,EAAC;EACH;EAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC,CACH;AAED,SAAO;GACL,GAAG;GACH,MAAM;GACN,SAAS;IACP,OAAO;IACP,KAAK;IACL,QACE;IACF,MAAM;IACN,OAAO;GACR;GACD,cAAc,eAAe,eAAa;GAC1C,iBAAiB,eAAe,kBAAgB;EACjD;CACF;CAED,MAAM,iBAAe;EACnB,GAAG,KAAK,gBAAW,cAAc;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC;EACF,GAAG,KAAK,UAAe,CACrB,4BACA,qCACD,EAAC;CACH;CAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,EAAC,CACH;AAED,QAAO;EACL,GAAG;EACH,MAAM;EACN,SAAS;GACP,OAAO;GACP,KAAK;GACL,QACE;GACF,MAAM;GACN,OAAO;EACR;EACD,cAAc,eAAe,eAAa;EAC1C,iBAAiB,eAAe,kBAAgB;CACjD;AACF;AAGD,SAAS,eAA8CO,KAAW;CAChE,MAAM,gBAAgB,OAAO,KAAK,IAAI,CACnC,MAAM,CACN,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAK,EAA0B;AAEzD,QAAO,OAAO,YAAY,cAAc;AACzC;AAED,SAAS,KACPA,KACAC,MACY;CACZ,MAAMC,SAAqB,CAAE;AAE7B,MAAK,MAAM,OAAO,KAChB,KAAI,OAAO,IACT,QAAO,OAAO,IAAI;AAItB,QAAO;AACR"}
@@ -1,3 +1,3 @@
1
- import { create } from "./create-app-DzP0ryiu.js";
1
+ import { create } from "./create-app-nsSHnNL3.js";
2
2
 
3
3
  export { create };
package/dist/index.js CHANGED
@@ -1,14 +1,95 @@
1
1
  #!/usr/bin/env node
2
- import { create, cwd, getPackageManager } from "./create-app-DzP0ryiu.js";
2
+ import { create, cwd, getPackageManager } from "./create-app-nsSHnNL3.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import { cancel, confirm, group, intro, isCancel, outro, select, spinner, text } from "@clack/prompts";
6
6
  import pc from "picocolors";
7
7
 
8
+ //#region package.json
9
+ var name = "create-weave-frontend-app";
10
+ var version = "2.7.1";
11
+ var description = "Create a new frontend artifact for a site with Weave.js";
12
+ var keywords = [
13
+ "NextJs",
14
+ "next",
15
+ "react",
16
+ "Weave.js"
17
+ ];
18
+ var homepage = "https://inditextech.github.io/weavejs";
19
+ var repository = "github:InditexTech/weavejs";
20
+ var license = "Apache-2.0";
21
+ var author = "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>";
22
+ var type = "module";
23
+ var bin = "./dist/index.js";
24
+ var module = "./dist/create-app.js";
25
+ var types = "./dist/create-app.d.ts";
26
+ var files = ["template/*", "dist/*"];
27
+ var scripts = {
28
+ "bump:snapshot": "tsc --noEmit && tsdown --sourcemap",
29
+ "build": "tsc --noEmit && tsdown",
30
+ "clean": "rimraf dist",
31
+ "dev": "tsdown --watch",
32
+ "format": "prettier --write ./src ./template",
33
+ "link": "npm link",
34
+ "lint:fix": "npm run lint -- --fix",
35
+ "lint": "eslint ./src",
36
+ "pack": "npm pack",
37
+ "publish:snapshot": "npm publish",
38
+ "release:perform": "npm publish --access public",
39
+ "release:prepare": "npm run verify",
40
+ "test": "echo \"No tests defined\" && exit 0",
41
+ "types:check": "tsc --noEmit",
42
+ "unpublish": "npm unpublish --force",
43
+ "verify": "npm run lint && npm run test && npm run build",
44
+ "version:development": "npm version $(npm version minor)-SNAPSHOT",
45
+ "version:release": "npm version $RELEASE_VERSION -m \"[npm-scripts] prepare release $RELEASE_VERSION\" --tag-version-prefix \"\""
46
+ };
47
+ var dependencies = {
48
+ "@clack/prompts": "^0.10.1",
49
+ "cross-spawn": "^7.0.6",
50
+ "picocolors": "^1.1.1"
51
+ };
52
+ var devDependencies = {
53
+ "@types/cross-spawn": "^6.0.6",
54
+ "@types/node": "22.14.1",
55
+ "fast-glob": "^3.3.3"
56
+ };
57
+ var engines = { "node": "^18.12 || ^20.11 || ^22.11" };
58
+ var publishConfig = { "access": "public" };
59
+ var nx = { "implicitDependencies": [
60
+ "@inditextech/weave-react",
61
+ "@inditextech/weave-sdk",
62
+ "@inditextech/weave-store-azure-web-pubsub",
63
+ "@inditextech/weave-store-websockets",
64
+ "@inditextech/weave-types"
65
+ ] };
66
+ var package_default = {
67
+ name,
68
+ version,
69
+ description,
70
+ keywords,
71
+ homepage,
72
+ repository,
73
+ license,
74
+ author,
75
+ type,
76
+ bin,
77
+ module,
78
+ types,
79
+ files,
80
+ scripts,
81
+ dependencies,
82
+ devDependencies,
83
+ engines,
84
+ publishConfig,
85
+ nx
86
+ };
87
+
88
+ //#endregion
8
89
  //#region src/index.ts
9
90
  const manager = getPackageManager();
10
91
  async function main() {
11
- intro(pc.bgCyan(pc.bold("Create Weave.js Frontend App")));
92
+ intro(pc.bgCyan(pc.bold(`Create Weave.js Frontend App [${package_default.version}]`)));
12
93
  const options = await group({
13
94
  name: () => text({
14
95
  message: "Project name",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["e: unknown"],"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n cancel,\n confirm,\n group,\n intro,\n isCancel,\n outro,\n select,\n spinner,\n text,\n} from '@clack/prompts';\nimport pc from 'picocolors';\nimport { getPackageManager } from './auto-install';\nimport { type Template, create } from './create-app';\nimport { cwd } from './constants';\n\nconst manager = getPackageManager();\n\nasync function main(): Promise<void> {\n intro(pc.bgCyan(pc.bold('Create Weave.js Frontend App')));\n\n const options = await group(\n {\n name: () =>\n text({\n message: 'Project name',\n placeholder: 'my-app',\n defaultValue: 'my-app',\n }),\n template: () =>\n select({\n message: 'Choose a template',\n initialValue: '+nextjs+websockets' as Template,\n options: [\n {\n value: '+nextjs+websockets',\n label: 'Next.js: Weave.js Websockets Store',\n hint: 'recommended',\n },\n {\n value: '+nextjs+azure-web-pubsub',\n label: 'Next.js: Weave.js Azure Web Pubsub Store',\n },\n ],\n }),\n installDeps: () =>\n confirm({\n message: `Do you want to install packages automatically? (detected as ${manager})`,\n }),\n },\n {\n onCancel: () => {\n cancel('Installation Stopped.');\n process.exit(0);\n },\n }\n );\n\n const projectName = options.name.toLowerCase().replace(/\\s/, '-');\n const dest = path.resolve(cwd, projectName);\n\n const destDir = await fs.readdir(dest).catch(() => null);\n if (destDir && destDir.length > 0) {\n const del = await confirm({\n message: `directory ${projectName} already exists, do you want to delete its files?`,\n });\n\n if (isCancel(del)) {\n cancel();\n return;\n }\n\n if (del) {\n const info = spinner();\n info.start(`Deleting files in ${projectName}`);\n\n await Promise.all(\n destDir.map((item) => {\n return fs.rm(path.join(dest, item), {\n recursive: true,\n force: true,\n });\n })\n );\n\n info.stop(`Deleted files in ${projectName}`);\n }\n }\n\n const info = spinner();\n info.start(`Generating Project`);\n\n await create({\n packageManager: manager,\n template: options.template,\n outputDir: dest,\n installDeps: options.installDeps,\n log: (message) => {\n info.message(message);\n },\n });\n\n info.stop('Project Generated');\n\n outro(pc.bgGreen(pc.bold('Done')));\n\n console.log(pc.bold('\\nOpen the project'));\n console.log(pc.cyan(`cd ${projectName}`));\n\n console.log(pc.bold('\\nRun Development Server'));\n console.log(pc.cyan('npm run dev | pnpm run dev | yarn dev'));\n\n process.exit(0);\n}\n\nmain().catch((e: unknown) => {\n console.error(e);\n throw e;\n});\n"],"mappings":";;;;;;;;AAmBA,MAAM,UAAU,mBAAmB;AAEnC,eAAe,OAAsB;AACnC,OAAM,GAAG,OAAO,GAAG,KAAK,+BAA+B,CAAC,CAAC;CAEzD,MAAM,UAAU,MAAM,MACpB;EACE,MAAM,MACJ,KAAK;GACH,SAAS;GACT,aAAa;GACb,cAAc;EACf,EAAC;EACJ,UAAU,MACR,OAAO;GACL,SAAS;GACT,cAAc;GACd,SAAS,CACP;IACE,OAAO;IACP,OAAO;IACP,MAAM;GACP,GACD;IACE,OAAO;IACP,OAAO;GAEV,CAAA;EACF,EAAC;EACJ,aAAa,MACX,QAAQ,EACN,UAAU,8DAA8D,QAAQ,GACjF,EAAC;CACL,GACD,EACE,UAAU,MAAM;AACd,SAAO,wBAAwB;AAC/B,UAAQ,KAAK,EAAE;CAChB,EACF,EACF;CAED,MAAM,cAAc,QAAQ,KAAK,aAAa,CAAC,QAAQ,MAAM,IAAI;CACjE,MAAM,OAAO,KAAK,QAAQ,KAAK,YAAY;CAE3C,MAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,CAAC,MAAM,MAAM,KAAK;AACxD,KAAI,WAAW,QAAQ,SAAS,GAAG;EACjC,MAAM,MAAM,MAAM,QAAQ,EACxB,UAAU,YAAY,YAAY,mDACnC,EAAC;AAEF,MAAI,SAAS,IAAI,EAAE;AACjB,WAAQ;AACR;EACD;AAED,MAAI,KAAK;GACP,MAAM,SAAO,SAAS;AACtB,UAAK,OAAO,oBAAoB,YAAY,EAAE;AAE9C,SAAM,QAAQ,IACZ,QAAQ,IAAI,CAAC,SAAS;AACpB,WAAO,GAAG,GAAG,KAAK,KAAK,MAAM,KAAK,EAAE;KAClC,WAAW;KACX,OAAO;IACR,EAAC;GACH,EAAC,CACH;AAED,UAAK,MAAM,mBAAmB,YAAY,EAAE;EAC7C;CACF;CAED,MAAM,OAAO,SAAS;AACtB,MAAK,OAAO,oBAAoB;AAEhC,OAAM,OAAO;EACX,gBAAgB;EAChB,UAAU,QAAQ;EAClB,WAAW;EACX,aAAa,QAAQ;EACrB,KAAK,CAAC,YAAY;AAChB,QAAK,QAAQ,QAAQ;EACtB;CACF,EAAC;AAEF,MAAK,KAAK,oBAAoB;AAE9B,OAAM,GAAG,QAAQ,GAAG,KAAK,OAAO,CAAC,CAAC;AAElC,SAAQ,IAAI,GAAG,KAAK,qBAAqB,CAAC;AAC1C,SAAQ,IAAI,GAAG,MAAM,KAAK,YAAY,EAAE,CAAC;AAEzC,SAAQ,IAAI,GAAG,KAAK,2BAA2B,CAAC;AAChD,SAAQ,IAAI,GAAG,KAAK,wCAAwC,CAAC;AAE7D,SAAQ,KAAK,EAAE;AAChB;AAED,MAAM,CAAC,MAAM,CAACA,MAAe;AAC3B,SAAQ,MAAM,EAAE;AAChB,OAAM;AACP,EAAC"}
1
+ {"version":3,"file":"index.js","names":["e: unknown"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"create-weave-frontend-app\",\n \"version\": \"2.7.1\",\n \"description\": \"Create a new frontend artifact for a site with Weave.js\",\n \"keywords\": [\n \"NextJs\",\n \"next\",\n \"react\",\n \"Weave.js\"\n ],\n \"homepage\": \"https://inditextech.github.io/weavejs\",\n \"repository\": \"github:InditexTech/weavejs\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>\",\n \"type\": \"module\",\n \"bin\": \"./dist/index.js\",\n \"module\": \"./dist/create-app.js\",\n \"types\": \"./dist/create-app.d.ts\",\n \"files\": [\n \"template/*\",\n \"dist/*\"\n ],\n \"scripts\": {\n \"bump:snapshot\": \"tsc --noEmit && tsdown --sourcemap\",\n \"build\": \"tsc --noEmit && tsdown\",\n \"clean\": \"rimraf dist\",\n \"dev\": \"tsdown --watch\",\n \"format\": \"prettier --write ./src ./template\",\n \"link\": \"npm link\",\n \"lint:fix\": \"npm run lint -- --fix\",\n \"lint\": \"eslint ./src\",\n \"pack\": \"npm pack\",\n \"publish:snapshot\": \"npm publish\",\n \"release:perform\": \"npm publish --access public\",\n \"release:prepare\": \"npm run verify\",\n \"test\": \"echo \\\"No tests defined\\\" && exit 0\",\n \"types:check\": \"tsc --noEmit\",\n \"unpublish\": \"npm unpublish --force\",\n \"verify\": \"npm run lint && npm run test && npm run build\",\n \"version:development\": \"npm version $(npm version minor)-SNAPSHOT\",\n \"version:release\": \"npm version $RELEASE_VERSION -m \\\"[npm-scripts] prepare release $RELEASE_VERSION\\\" --tag-version-prefix \\\"\\\"\"\n },\n \"dependencies\": {\n \"@clack/prompts\": \"^0.10.1\",\n \"cross-spawn\": \"^7.0.6\",\n \"picocolors\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@types/cross-spawn\": \"^6.0.6\",\n \"@types/node\": \"22.14.1\",\n \"fast-glob\": \"^3.3.3\"\n },\n \"engines\": {\n \"node\": \"^18.12 || ^20.11 || ^22.11\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"nx\": {\n \"implicitDependencies\": [\n \"@inditextech/weave-react\",\n \"@inditextech/weave-sdk\",\n \"@inditextech/weave-store-azure-web-pubsub\",\n \"@inditextech/weave-store-websockets\",\n \"@inditextech/weave-types\"\n ]\n }\n}\n","#!/usr/bin/env node\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n cancel,\n confirm,\n group,\n intro,\n isCancel,\n outro,\n select,\n spinner,\n text,\n} from '@clack/prompts';\nimport pc from 'picocolors';\nimport { getPackageManager } from './auto-install';\nimport { type Template, create } from './create-app';\nimport { cwd } from './constants';\nimport packageJson from '../package.json' assert { type: 'json' };\n\nconst manager = getPackageManager();\n\nasync function main(): Promise<void> {\n intro(\n pc.bgCyan(pc.bold(`Create Weave.js Frontend App [${packageJson.version}]`))\n );\n\n const options = await group(\n {\n name: () =>\n text({\n message: 'Project name',\n placeholder: 'my-app',\n defaultValue: 'my-app',\n }),\n template: () =>\n select({\n message: 'Choose a template',\n initialValue: '+nextjs+websockets' as Template,\n options: [\n {\n value: '+nextjs+websockets',\n label: 'Next.js: Weave.js Websockets Store',\n hint: 'recommended',\n },\n {\n value: '+nextjs+azure-web-pubsub',\n label: 'Next.js: Weave.js Azure Web Pubsub Store',\n },\n ],\n }),\n installDeps: () =>\n confirm({\n message: `Do you want to install packages automatically? (detected as ${manager})`,\n }),\n },\n {\n onCancel: () => {\n cancel('Installation Stopped.');\n process.exit(0);\n },\n }\n );\n\n const projectName = options.name.toLowerCase().replace(/\\s/, '-');\n const dest = path.resolve(cwd, projectName);\n\n const destDir = await fs.readdir(dest).catch(() => null);\n if (destDir && destDir.length > 0) {\n const del = await confirm({\n message: `directory ${projectName} already exists, do you want to delete its files?`,\n });\n\n if (isCancel(del)) {\n cancel();\n return;\n }\n\n if (del) {\n const info = spinner();\n info.start(`Deleting files in ${projectName}`);\n\n await Promise.all(\n destDir.map((item) => {\n return fs.rm(path.join(dest, item), {\n recursive: true,\n force: true,\n });\n })\n );\n\n info.stop(`Deleted files in ${projectName}`);\n }\n }\n\n const info = spinner();\n info.start(`Generating Project`);\n\n await create({\n packageManager: manager,\n template: options.template,\n outputDir: dest,\n installDeps: options.installDeps,\n log: (message) => {\n info.message(message);\n },\n });\n\n info.stop('Project Generated');\n\n outro(pc.bgGreen(pc.bold('Done')));\n\n console.log(pc.bold('\\nOpen the project'));\n console.log(pc.cyan(`cd ${projectName}`));\n\n console.log(pc.bold('\\nRun Development Server'));\n console.log(pc.cyan('npm run dev | pnpm run dev | yarn dev'));\n\n process.exit(0);\n}\n\nmain().catch((e: unknown) => {\n console.error(e);\n throw e;\n});\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-weave-frontend-app",
3
- "version": "2.6.0",
3
+ "version": "2.7.1",
4
4
  "description": "Create a new frontend artifact for a site with Weave.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": [
3
+ "next/core-web-vitals",
4
+ "next/typescript"
5
+ ]
6
+ }
@@ -1,7 +1,7 @@
1
1
  export const delImage = async (roomId: string, imageId: string) => {
2
2
  const endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/rooms/${roomId}/images/${imageId}`;
3
3
  const response = await fetch(endpoint, {
4
- method: 'DELETE',
4
+ method: "DELETE",
5
5
  });
6
6
  const data = await response.json();
7
7
  return data;
@@ -1,7 +1,7 @@
1
1
  export const getImages = async (
2
2
  roomId: string,
3
3
  pageSize: number,
4
- page: string | undefined
4
+ page: string | undefined,
5
5
  ) => {
6
6
  let endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/rooms/${roomId}/images?pageSize=${pageSize}`;
7
7
 
@@ -0,0 +1,11 @@
1
+ export const getRoom = async (roomId: string) => {
2
+ const endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/rooms/${roomId}`;
3
+ const response = await fetch(endpoint);
4
+
5
+ if (!response.ok && response.status === 404) {
6
+ throw new Error(`Room doesn't exist`);
7
+ }
8
+
9
+ const data = await response.bytes();
10
+ return data;
11
+ };
@@ -0,0 +1,56 @@
1
+ // SPDX-FileCopyrightText: 2025 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+
5
+ import { WeaveExportNodesOptions } from "@inditextech/weave-types";
6
+
7
+ export const postExportToImage = async (
8
+ roomData: string,
9
+ nodes: string[],
10
+ options: WeaveExportNodesOptions,
11
+ responseType: "base64" | "blob" | "zip" = "zip",
12
+ ) => {
13
+ const endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/export`;
14
+
15
+ const exportPayload = {
16
+ roomData,
17
+ nodes,
18
+ options: {
19
+ format: options.format,
20
+ pixelRatio: options.pixelRatio,
21
+ padding: options.padding,
22
+ backgroundColor: options.backgroundColor,
23
+ ...(options.format === "image/jpeg" && { quality: options.quality }),
24
+ },
25
+ responseType,
26
+ };
27
+
28
+ const response = await fetch(endpoint, {
29
+ method: "POST",
30
+ headers: {
31
+ "Content-Type": "application/json",
32
+ },
33
+ body: JSON.stringify(exportPayload),
34
+ });
35
+
36
+ if (!response.ok) {
37
+ throw new Error("Failed to export room to image");
38
+ }
39
+
40
+ if (responseType === "zip") {
41
+ const blob = await response.blob();
42
+
43
+ return blob;
44
+ }
45
+
46
+ if (responseType === "blob") {
47
+ const blob = await response.blob();
48
+
49
+ return blob;
50
+ }
51
+
52
+ if (responseType === "base64") {
53
+ const data = await response.json();
54
+ return data;
55
+ }
56
+ };
@@ -1,10 +1,10 @@
1
1
  export const postImage = async (roomId: string, file: File) => {
2
2
  const formData = new FormData();
3
- formData.append('file', file);
3
+ formData.append("file", file);
4
4
 
5
5
  const endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/rooms/${roomId}/images`;
6
6
  const response = await fetch(endpoint, {
7
- method: 'POST',
7
+ method: "POST",
8
8
  body: formData,
9
9
  });
10
10
 
@@ -1,7 +1,7 @@
1
1
  export const postRemoveBackground = async (roomId: string, imageId: string) => {
2
2
  const endpoint = `${process.env.NEXT_PUBLIC_API_ENDPOINT}/rooms/${roomId}/images/${imageId}/remove-background`;
3
3
  const response = await fetch(endpoint, {
4
- method: 'POST',
4
+ method: "POST",
5
5
  });
6
6
 
7
7
  const data = await response.json();
@@ -1,5 +1,5 @@
1
- import { Error } from '@/components/error/error';
2
- import { Suspense } from 'react';
1
+ import { Error } from "@/components/error/error";
2
+ import { Suspense } from "react";
3
3
 
4
4
  export default function ErrorPage() {
5
5
  return (
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- @import 'tailwindcss';
7
+ @import "tailwindcss";
8
8
 
9
9
  @plugin "tailwindcss-animate";
10
10
 
@@ -1,17 +1,17 @@
1
- import type { Metadata, Viewport } from 'next';
2
- import { Inter } from 'next/font/google';
3
- import './globals.css';
4
- import { AppProviders } from './providers';
1
+ import type { Metadata, Viewport } from "next";
2
+ import { Inter } from "next/font/google";
3
+ import "./globals.css";
4
+ import { AppProviders } from "./providers";
5
5
 
6
6
  const inter = Inter({
7
- weight: '400',
7
+ weight: "400",
8
8
  preload: true,
9
- variable: '--inter',
10
- subsets: ['latin'],
9
+ variable: "--inter",
10
+ subsets: ["latin"],
11
11
  });
12
12
 
13
13
  export const viewport: Viewport = {
14
- width: 'device-width',
14
+ width: "device-width",
15
15
  initialScale: 1,
16
16
  maximumScale: 1,
17
17
  userScalable: false,
@@ -20,8 +20,8 @@ export const viewport: Viewport = {
20
20
  };
21
21
 
22
22
  export const metadata: Metadata = {
23
- title: 'WeaveJS Playground',
24
- description: 'This is a playground for WeaveJS',
23
+ title: "WeaveJS Playground",
24
+ description: "This is a playground for WeaveJS",
25
25
  };
26
26
 
27
27
  export default function RootLayout({
@@ -1,4 +1,4 @@
1
- import { Home } from '@/components/home/home';
1
+ import { Home } from "@/components/home/home";
2
2
 
3
3
  export default function HomePage() {
4
4
  return <Home />;
@@ -1,6 +1,6 @@
1
- 'use client';
1
+ "use client";
2
2
 
3
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
3
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
4
4
 
5
5
  type AppProvidersProps = {
6
6
  children: React.ReactNode;
@@ -1,5 +1,5 @@
1
- import { Room } from '@/components/room/room';
2
- import { NoSsr } from '@/components/room-components/no-ssr.tsx';
1
+ import { Room } from "@/components/room/room";
2
+ import { NoSsr } from "@/components/room-components/no-ssr.tsx";
3
3
 
4
4
  export default function RoomPage() {
5
5
  return (
@@ -1,6 +1,6 @@
1
- import { WeaveAction, WeaveNode } from '@inditextech/weave-sdk';
2
- import { WeaveElementInstance, WeaveSelection } from '@inditextech/weave-types';
3
- import Konva from 'konva';
1
+ import { WeaveAction, WeaveNode } from "@inditextech/weave-sdk";
2
+ import { WeaveElementInstance, WeaveSelection } from "@inditextech/weave-types";
3
+ import Konva from "konva";
4
4
 
5
5
  export class AlignElementsToolAction extends WeaveAction {
6
6
  protected cancelAction!: () => void;
@@ -8,7 +8,7 @@ export class AlignElementsToolAction extends WeaveAction {
8
8
  onInit = undefined;
9
9
 
10
10
  getName(): string {
11
- return 'alignElementsTool';
11
+ return "alignElementsTool";
12
12
  }
13
13
 
14
14
  private alignElements(nodes: WeaveSelection[], gap: number) {
@@ -45,7 +45,7 @@ export class AlignElementsToolAction extends WeaveAction {
45
45
 
46
46
  if (prevInstance) {
47
47
  const handler = this.instance.getNodeHandler<WeaveNode>(
48
- instance.getAttrs().nodeType
48
+ instance.getAttrs().nodeType,
49
49
  );
50
50
  const node = handler.serialize(instance as WeaveElementInstance);
51
51
 
@@ -74,10 +74,10 @@ export class AlignElementsToolAction extends WeaveAction {
74
74
 
75
75
  trigger(
76
76
  cancelAction: () => void,
77
- { gap = 20, nodes }: { gap: number; nodes: WeaveSelection[] }
77
+ { gap = 20, nodes }: { gap: number; nodes: WeaveSelection[] },
78
78
  ) {
79
79
  if (!this.instance) {
80
- throw new Error('Instance not defined');
80
+ throw new Error("Instance not defined");
81
81
  }
82
82
 
83
83
  const stage = this.instance.getStage();