create-weave-frontend-app 0.12.1 → 0.13.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.
- package/dist/{create-app-D7Fjv6Q-.js → create-app-DjQDgLXy.js} +9 -6
- package/dist/create-app-DjQDgLXy.js.map +1 -0
- package/dist/create-app.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/template/+nextjs+azure-web-pubsub/app/error/page.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/app/favicon.ico.license +3 -0
- package/template/+nextjs+azure-web-pubsub/app/globals.css +8 -4
- package/template/+nextjs+azure-web-pubsub/app/layout.tsx +4 -20
- package/template/+nextjs+azure-web-pubsub/app/page.tsx +2 -4
- package/template/+nextjs+azure-web-pubsub/app/providers.tsx +4 -7
- package/template/+nextjs+azure-web-pubsub/app/rooms/[roomId]/page.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/assets/images/logo.png +0 -0
- package/template/+nextjs+azure-web-pubsub/components/error/error.tsx +6 -6
- package/template/+nextjs+azure-web-pubsub/components/home/home.tsx +32 -30
- package/template/+nextjs+azure-web-pubsub/components/home-components/login-form.tsx +17 -10
- package/template/+nextjs+azure-web-pubsub/components/nodes/color-token/color-token.ts +28 -25
- package/template/+nextjs+azure-web-pubsub/components/room/room.layout.tsx +35 -14
- package/template/+nextjs+azure-web-pubsub/components/room/room.tsx +24 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-token.tsx +1 -4
- package/template/+nextjs+azure-web-pubsub/components/room-components/color-tokens-library/color-tokens-library.tsx +21 -17
- package/template/+nextjs+azure-web-pubsub/components/room-components/connected-users.tsx +21 -15
- package/template/+nextjs+azure-web-pubsub/components/room-components/connection-status.tsx +10 -8
- package/template/+nextjs+azure-web-pubsub/components/room-components/context-menu.tsx +2 -3
- package/template/+nextjs+azure-web-pubsub/components/room-components/elements-tree/elements-tree.tsx +31 -26
- package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.image.tsx +28 -10
- package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.presentation-image.tsx +4 -4
- package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/frames-library.tsx +175 -97
- package/template/+nextjs+azure-web-pubsub/components/room-components/frames-library/utils.ts +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-drawer.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/help/help-shortcut-element.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/help/shortcut-element.tsx +3 -24
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-context-menu.tsx +27 -26
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-copy-paste.tsx +6 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/{use-get-azure-web-pubsub-provider.ts → use-get-azure-web-pubsub-provider.tsx} +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-get-os.ts +2 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-key-down.ts +17 -8
- package/template/+nextjs+azure-web-pubsub/components/room-components/hooks/use-keyboard-handler.tsx +19 -101
- package/template/+nextjs+azure-web-pubsub/components/room-components/images-library/images-library.tsx +89 -65
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-color.tsx +16 -9
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-font-family.tsx +12 -6
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-number.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-select.tsx +7 -7
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/input-text.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/inputs/number-input.tsx +2 -3
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/appearance-properties.tsx +44 -44
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/color-token-properties.tsx +20 -23
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/crop-properties.tsx +65 -65
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/fill-properties.tsx +23 -23
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/frame-properties.tsx +106 -106
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/image-properties.tsx +18 -13
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/position-properties.tsx +35 -35
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/size-properties.tsx +35 -35
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/stroke-properties.tsx +206 -209
- package/template/+nextjs+azure-web-pubsub/components/room-components/node-properties/text-properties.tsx +329 -334
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/divider.tsx +29 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/node-properties.tsx +38 -17
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/overlay-animation-wrapper.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-header.tsx +325 -137
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-users-overlay.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/tools-overlay.tsx +95 -261
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/zoom-toolbar.tsx +19 -22
- package/template/+nextjs+azure-web-pubsub/components/room-components/room-error.tsx +7 -8
- package/template/+nextjs+azure-web-pubsub/components/room-components/room-loader/room-loader.tsx +7 -7
- package/template/+nextjs+azure-web-pubsub/components/room-components/selection-information.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/sidebar-selector.tsx +120 -0
- package/template/+nextjs+azure-web-pubsub/components/room-components/toggle-icon-button.tsx +15 -15
- package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-button.tsx +61 -40
- package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar-toggle-button.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/toolbar/toolbar.tsx +6 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/user-form.tsx +7 -13
- package/template/+nextjs+azure-web-pubsub/components/ui/button.tsx +4 -4
- package/template/+nextjs+azure-web-pubsub/components/ui/card.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/checkbox.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-alpha.tsx +3 -3
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-eyedropper.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-format-selector.tsx +3 -3
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/selector/color-picker-hue.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/command.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/dialog.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/input.tsx +20 -15
- package/template/+nextjs+azure-web-pubsub/components/ui/scroll-area.tsx +15 -15
- package/template/+nextjs+azure-web-pubsub/components/ui/tabs.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/components/ui/tooltip.tsx +2 -2
- package/template/+nextjs+azure-web-pubsub/components/ui/tree-view.tsx +9 -7
- package/template/+nextjs+azure-web-pubsub/components/utils/constants.ts +6 -6
- package/template/+nextjs+azure-web-pubsub/components/utils/logo.tsx +1 -1
- package/template/+nextjs+azure-web-pubsub/lib/constants.ts +4 -0
- package/template/+nextjs+azure-web-pubsub/lib/utils.ts +10 -10
- package/template/+nextjs+websockets/app/error/page.tsx +2 -2
- package/template/+nextjs+websockets/app/favicon.ico.license +3 -0
- package/template/+nextjs+websockets/app/globals.css +8 -4
- package/template/+nextjs+websockets/app/layout.tsx +4 -20
- package/template/+nextjs+websockets/app/page.tsx +2 -4
- package/template/+nextjs+websockets/app/providers.tsx +4 -7
- package/template/+nextjs+websockets/app/rooms/[roomId]/page.tsx +1 -1
- package/template/+nextjs+websockets/assets/images/logo.png +0 -0
- package/template/+nextjs+websockets/components/error/error.tsx +6 -6
- package/template/+nextjs+websockets/components/home/home.tsx +32 -30
- package/template/+nextjs+websockets/components/home-components/login-form.tsx +17 -10
- package/template/+nextjs+websockets/components/nodes/color-token/color-token.ts +28 -25
- package/template/+nextjs+websockets/components/room/room.layout.tsx +35 -14
- package/template/+nextjs+websockets/components/room/room.tsx +26 -4
- package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-token.tsx +1 -4
- package/template/+nextjs+websockets/components/room-components/color-tokens-library/color-tokens-library.tsx +21 -17
- package/template/+nextjs+websockets/components/room-components/connected-users.tsx +21 -15
- package/template/+nextjs+websockets/components/room-components/connection-status.tsx +10 -19
- package/template/+nextjs+websockets/components/room-components/context-menu.tsx +2 -3
- package/template/+nextjs+websockets/components/room-components/elements-tree/elements-tree.tsx +31 -26
- package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.image.tsx +28 -10
- package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.presentation-image.tsx +4 -4
- package/template/+nextjs+websockets/components/room-components/frames-library/frames-library.tsx +175 -97
- package/template/+nextjs+websockets/components/room-components/frames-library/utils.ts +1 -1
- package/template/+nextjs+websockets/components/room-components/help/help-drawer.tsx +2 -2
- package/template/+nextjs+websockets/components/room-components/help/help-shortcut-element.tsx +1 -1
- package/template/+nextjs+websockets/components/room-components/help/shortcut-element.tsx +3 -24
- package/template/+nextjs+websockets/components/room-components/hooks/use-context-menu.tsx +27 -26
- package/template/+nextjs+websockets/components/room-components/hooks/use-copy-paste.tsx +6 -2
- package/template/+nextjs+websockets/components/room-components/hooks/use-get-os.ts +2 -2
- package/template/+nextjs+websockets/components/room-components/hooks/use-key-down.ts +17 -8
- package/template/+nextjs+websockets/components/room-components/hooks/use-keyboard-handler.tsx +19 -101
- package/template/+nextjs+websockets/components/room-components/images-library/images-library.tsx +89 -65
- package/template/+nextjs+websockets/components/room-components/inputs/input-color.tsx +16 -9
- package/template/+nextjs+websockets/components/room-components/inputs/input-font-family.tsx +12 -6
- package/template/+nextjs+websockets/components/room-components/inputs/input-number.tsx +1 -1
- package/template/+nextjs+websockets/components/room-components/inputs/input-select.tsx +7 -7
- package/template/+nextjs+websockets/components/room-components/inputs/input-text.tsx +2 -2
- package/template/+nextjs+websockets/components/room-components/inputs/number-input.tsx +2 -3
- package/template/+nextjs+websockets/components/room-components/node-properties/appearance-properties.tsx +44 -44
- package/template/+nextjs+websockets/components/room-components/node-properties/color-token-properties.tsx +20 -23
- package/template/+nextjs+websockets/components/room-components/node-properties/crop-properties.tsx +65 -65
- package/template/+nextjs+websockets/components/room-components/node-properties/fill-properties.tsx +23 -23
- package/template/+nextjs+websockets/components/room-components/node-properties/frame-properties.tsx +106 -106
- package/template/+nextjs+websockets/components/room-components/node-properties/image-properties.tsx +18 -13
- package/template/+nextjs+websockets/components/room-components/node-properties/position-properties.tsx +35 -35
- package/template/+nextjs+websockets/components/room-components/node-properties/size-properties.tsx +35 -35
- package/template/+nextjs+websockets/components/room-components/node-properties/stroke-properties.tsx +206 -209
- package/template/+nextjs+websockets/components/room-components/node-properties/text-properties.tsx +329 -334
- package/template/+nextjs+websockets/components/room-components/overlay/divider.tsx +29 -2
- package/template/+nextjs+websockets/components/room-components/overlay/node-properties.tsx +38 -17
- package/template/+nextjs+websockets/components/room-components/overlay/overlay-animation-wrapper.tsx +1 -1
- package/template/+nextjs+websockets/components/room-components/overlay/room-header.tsx +325 -137
- package/template/+nextjs+websockets/components/room-components/overlay/room-users-overlay.tsx +2 -2
- package/template/+nextjs+websockets/components/room-components/overlay/tools-overlay.tsx +95 -261
- package/template/+nextjs+websockets/components/room-components/overlay/zoom-toolbar.tsx +19 -22
- package/template/+nextjs+websockets/components/room-components/room-error.tsx +7 -8
- package/template/+nextjs+websockets/components/room-components/room-loader/room-loader.tsx +7 -7
- package/template/+nextjs+websockets/components/room-components/selection-information.tsx +1 -1
- package/template/+nextjs+websockets/components/room-components/sidebar-selector.tsx +120 -0
- package/template/+nextjs+websockets/components/room-components/toggle-icon-button.tsx +15 -15
- package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-button.tsx +61 -40
- package/template/+nextjs+websockets/components/room-components/toolbar/toolbar-toggle-button.tsx +1 -1
- package/template/+nextjs+websockets/components/room-components/toolbar/toolbar.tsx +6 -1
- package/template/+nextjs+websockets/components/room-components/user-form.tsx +7 -13
- package/template/+nextjs+websockets/components/ui/button.tsx +4 -4
- package/template/+nextjs+websockets/components/ui/card.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/checkbox.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-alpha.tsx +3 -3
- package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-eyedropper.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-format-selector.tsx +3 -3
- package/template/+nextjs+websockets/components/ui/color-picker/selector/color-picker-hue.tsx +2 -2
- package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-alpha-percentage.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-hexa.tsx +2 -2
- package/template/+nextjs+websockets/components/ui/color-picker/text-inputs/color-picker-rgba.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/command.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/dialog.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/input.tsx +20 -15
- package/template/+nextjs+websockets/components/ui/scroll-area.tsx +15 -15
- package/template/+nextjs+websockets/components/ui/tabs.tsx +1 -1
- package/template/+nextjs+websockets/components/ui/tooltip.tsx +2 -2
- package/template/+nextjs+websockets/components/ui/tree-view.tsx +9 -7
- package/template/+nextjs+websockets/components/utils/constants.ts +6 -6
- package/template/+nextjs+websockets/components/utils/logo.tsx +1 -1
- package/template/+nextjs+websockets/lib/constants.ts +4 -0
- package/template/+nextjs+websockets/lib/utils.ts +10 -10
- package/template/package.json +1 -0
- package/dist/create-app-D7Fjv6Q-.js.map +0 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/with-instance-node.tsx +0 -53
- package/template/+nextjs+websockets/components/room-components/with-instance-node.tsx +0 -53
|
@@ -76,11 +76,11 @@ function tryGitInit(root) {
|
|
|
76
76
|
//#endregion
|
|
77
77
|
//#region src/versions.js
|
|
78
78
|
const versions = {
|
|
79
|
-
"@inditextech/weave-types": "0.
|
|
80
|
-
"@inditextech/weave-sdk": "0.
|
|
81
|
-
"@inditextech/weave-store-websockets": "0.
|
|
82
|
-
"@inditextech/weave-store-azure-web-pubsub": "0.
|
|
83
|
-
"@inditextech/weave-react": "0.
|
|
79
|
+
"@inditextech/weave-types": "0.13.1",
|
|
80
|
+
"@inditextech/weave-sdk": "0.13.1",
|
|
81
|
+
"@inditextech/weave-store-websockets": "0.13.1",
|
|
82
|
+
"@inditextech/weave-store-azure-web-pubsub": "0.13.1",
|
|
83
|
+
"@inditextech/weave-react": "0.13.1"
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
//#endregion
|
|
@@ -114,6 +114,7 @@ var dependencies = {
|
|
|
114
114
|
"@react-three/postprocessing": "^2.19.1",
|
|
115
115
|
"@tanstack/react-query": "^5.67.1",
|
|
116
116
|
"boring-avatars": "^1.11.2",
|
|
117
|
+
"change-case": "^5.4.4",
|
|
117
118
|
"class-variance-authority": "^0.7.1",
|
|
118
119
|
"clsx": "^2.1.1",
|
|
119
120
|
"cmdk": "^1.0.0",
|
|
@@ -263,6 +264,7 @@ function createPackageJson(projectName, options) {
|
|
|
263
264
|
"@react-three/postprocessing",
|
|
264
265
|
"@tanstack/react-query",
|
|
265
266
|
"boring-avatars",
|
|
267
|
+
"change-case",
|
|
266
268
|
"class-variance-authority",
|
|
267
269
|
"clsx",
|
|
268
270
|
"cmdk",
|
|
@@ -350,6 +352,7 @@ function createPackageJson(projectName, options) {
|
|
|
350
352
|
"@react-three/postprocessing",
|
|
351
353
|
"@tanstack/react-query",
|
|
352
354
|
"boring-avatars",
|
|
355
|
+
"change-case",
|
|
353
356
|
"class-variance-authority",
|
|
354
357
|
"clsx",
|
|
355
358
|
"cmdk",
|
|
@@ -428,4 +431,4 @@ function pick(obj, keys) {
|
|
|
428
431
|
|
|
429
432
|
//#endregion
|
|
430
433
|
export { create, cwd, getPackageManager };
|
|
431
|
-
//# sourceMappingURL=create-app-
|
|
434
|
+
//# sourceMappingURL=create-app-DjQDgLXy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-app-DjQDgLXy.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-types\":\"0.13.1\",\"@inditextech/weave-sdk\":\"0.13.1\",\"@inditextech/weave-store-websockets\":\"0.13.1\",\"@inditextech/weave-store-azure-web-pubsub\":\"0.13.1\",\"@inditextech/weave-react\":\"0.13.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-sdk\": \"0.0.0\",\n \"@inditextech/weave-store-websockets\": \"0.0.0\",\n \"@inditextech/weave-store-azure-web-pubsub\": \"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 \"konva\": \"^9.3.18\",\n \"motion\": \"^12.4.7\",\n \"next\": \"14.2.28\",\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 \"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/node\": \"^20\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\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 \"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 'konva',\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 '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-sdk',\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/node',\n '@types/react',\n '@types/react-dom',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n name: projectName,\n version: '0.0.0',\n private: true,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\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 'konva',\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 '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-sdk',\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/node',\n '@types/react',\n '@types/react-dom',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n name: projectName,\n version: '0.0.0',\n private: true,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\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":"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BH,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;GACD,EAAC;GACF,GAAG,KAAK,UAAe;IACrB;IACA;IACA;GACD,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;EACD,EAAC,CACH;AAED,SAAO;GACL,MAAM;GACN,SAAS;GACT,SAAS;GACT,SAAS;IACP,OAAO;IACP,KAAK;IACL,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;EACD,EAAC;EACF,GAAG,KAAK,UAAe;GACrB;GACA;GACA;EACD,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;CACD,EAAC,CACH;AAED,QAAO;EACL,MAAM;EACN,SAAS;EACT,SAAS;EACT,SAAS;GACP,OAAO;GACP,KAAK;GACL,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"}
|
package/dist/create-app.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { create, cwd, getPackageManager } from "./create-app-
|
|
2
|
+
import { create, cwd, getPackageManager } from "./create-app-DjQDgLXy.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";
|
package/package.json
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* SPDX-FileCopyrightText: 2025 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import "tailwindcss";
|
|
2
8
|
|
|
3
9
|
@plugin "tailwindcss-animate";
|
|
4
10
|
|
|
5
11
|
@custom-variant dark (&:is(.dark *));
|
|
6
12
|
|
|
7
13
|
@theme {
|
|
8
|
-
--
|
|
9
|
-
--font-noto-sans: var(--font-noto-sans);
|
|
10
|
-
--font-noto-sans-mono: var(--font-noto-sans-mono);
|
|
14
|
+
--inter: var(--inter);
|
|
11
15
|
}
|
|
12
16
|
|
|
13
17
|
.custom-scrollbar {
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
import type { Metadata, Viewport } from 'next';
|
|
2
|
-
import {
|
|
2
|
+
import { Inter } from 'next/font/google';
|
|
3
3
|
import './globals.css';
|
|
4
4
|
import { AppProviders } from './providers';
|
|
5
5
|
|
|
6
|
-
const
|
|
6
|
+
const inter = Inter({
|
|
7
7
|
weight: '400',
|
|
8
8
|
preload: true,
|
|
9
|
-
variable: '--
|
|
10
|
-
subsets: ['latin'],
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const notoSans = Noto_Sans({
|
|
14
|
-
preload: true,
|
|
15
|
-
variable: '--font-noto-sans',
|
|
16
|
-
subsets: ['latin'],
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
const notoSansMono = Noto_Sans_Mono({
|
|
20
|
-
preload: true,
|
|
21
|
-
variable: '--font-noto-sans-mono',
|
|
9
|
+
variable: '--inter',
|
|
22
10
|
subsets: ['latin'],
|
|
23
11
|
});
|
|
24
12
|
|
|
@@ -43,11 +31,7 @@ export default function RootLayout({
|
|
|
43
31
|
}>) {
|
|
44
32
|
return (
|
|
45
33
|
<html lang="en">
|
|
46
|
-
<body
|
|
47
|
-
contentEditable="true"
|
|
48
|
-
suppressContentEditableWarning={true}
|
|
49
|
-
className={`${questrial.variable} ${notoSans.variable} ${notoSansMono.variable} antialiased`}
|
|
50
|
-
>
|
|
34
|
+
<body className={`${inter.variable} antialiased`}>
|
|
51
35
|
<AppProviders>{children}</AppProviders>
|
|
52
36
|
</body>
|
|
53
37
|
</html>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
QueryClient,
|
|
5
|
-
QueryClientProvider,
|
|
6
|
-
} from "@tanstack/react-query";
|
|
3
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
7
4
|
|
|
8
5
|
type AppProvidersProps = {
|
|
9
6
|
children: React.ReactNode;
|
|
@@ -14,5 +11,5 @@ const queryClient = new QueryClient();
|
|
|
14
11
|
export function AppProviders({ children }: Readonly<AppProvidersProps>) {
|
|
15
12
|
return (
|
|
16
13
|
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
|
17
|
-
)
|
|
18
|
-
}
|
|
14
|
+
);
|
|
15
|
+
}
|
|
Binary file
|
|
@@ -53,10 +53,10 @@ export const Error = () => {
|
|
|
53
53
|
transition={{ duration: 0.5, delay: 0.2 }}
|
|
54
54
|
className="flex flex-col items-end justify-center"
|
|
55
55
|
>
|
|
56
|
-
<h1 className="text-3xl font-
|
|
56
|
+
<h1 className="text-3xl font-inter text-foreground uppercase">
|
|
57
57
|
WHITEBOARD
|
|
58
58
|
</h1>
|
|
59
|
-
<h2 className="text-2xl font-
|
|
59
|
+
<h2 className="text-2xl font-inter font-extralight text-muted-foreground uppercase">
|
|
60
60
|
SHOWCASE
|
|
61
61
|
</h2>
|
|
62
62
|
</motion.div>
|
|
@@ -65,24 +65,24 @@ export const Error = () => {
|
|
|
65
65
|
</motion.section>
|
|
66
66
|
<div className="max-w-[520px] w-full flex flex-col items-center justify-between gap-0">
|
|
67
67
|
<div className="w-full z-1 flex flex-col gap-2 items-center justify-center bg-transparent">
|
|
68
|
-
<Card className="w-full shadow-
|
|
68
|
+
<Card className="w-full shadow-none border-0 py-8 gap-0">
|
|
69
69
|
<CardHeader className="flex flex-col items-center text-center gap-0">
|
|
70
70
|
<div className="rounded-full bg-destructive/10 p-3">
|
|
71
71
|
<AlertCircle className="h-10 w-10 text-destructive" />
|
|
72
72
|
</div>
|
|
73
|
-
<h3 className="text-xl font-
|
|
73
|
+
<h3 className="text-xl font-inter font-extralight text-muted-foreground mt-2">
|
|
74
74
|
An error has occurred
|
|
75
75
|
</h3>
|
|
76
76
|
</CardHeader>
|
|
77
77
|
|
|
78
78
|
<CardContent className="text-center py-6 pb-8">
|
|
79
79
|
<p>
|
|
80
|
-
<span className="font-
|
|
80
|
+
<span className="font-inter">{description}</span>
|
|
81
81
|
</p>
|
|
82
82
|
</CardContent>
|
|
83
83
|
|
|
84
84
|
<CardFooter className="flex flex-col">
|
|
85
|
-
<Button asChild className="font-
|
|
85
|
+
<Button asChild className="font-inter uppercase">
|
|
86
86
|
<Link href={href}>{action}</Link>
|
|
87
87
|
</Button>
|
|
88
88
|
</CardFooter>
|
|
@@ -6,12 +6,14 @@ import { motion } from 'motion/react';
|
|
|
6
6
|
import { Logo } from '@/components/utils/logo';
|
|
7
7
|
import LoginForm from '../home-components/login-form';
|
|
8
8
|
import Dither from '../ui/reactbits/Backgrounds/Dither/Dither';
|
|
9
|
-
import
|
|
9
|
+
import { Button } from '../ui/button';
|
|
10
|
+
import { Github, Book } from 'lucide-react';
|
|
11
|
+
import { DOCUMENTATION_URL, GITHUB_URL } from '@/lib/constants';
|
|
10
12
|
|
|
11
13
|
export const Home = () => {
|
|
12
14
|
return (
|
|
13
15
|
<>
|
|
14
|
-
<main className="w-full h-full flex justify-center items-center relative">
|
|
16
|
+
<main className="w-full h-full flex justify-center items-center relative p-[40px]">
|
|
15
17
|
<div className="absolute top-0 left-0 right-0 bottom-0">
|
|
16
18
|
<Dither
|
|
17
19
|
waveColor={[0.5, 0.5, 0.5]}
|
|
@@ -32,7 +34,7 @@ export const Home = () => {
|
|
|
32
34
|
className="relative flex h-full w-full flex-col items-center justify-center"
|
|
33
35
|
>
|
|
34
36
|
<div className="max-w-[520px] w-full flex flex-col items-center justify-between gap-0">
|
|
35
|
-
<div className="w-full flex justify-between items-center gap-2 md:left-8 md:top-8 bg-background p-8 py-6
|
|
37
|
+
<div className="w-full flex justify-between items-center gap-2 md:left-8 md:top-8 bg-background p-8 py-6 border border-[#c9c9c9]">
|
|
36
38
|
<Logo />
|
|
37
39
|
<motion.div
|
|
38
40
|
initial={{ opacity: 0, y: -20 }}
|
|
@@ -40,38 +42,38 @@ export const Home = () => {
|
|
|
40
42
|
transition={{ duration: 0.5, delay: 0.2 }}
|
|
41
43
|
className="flex flex-col items-end justify-center"
|
|
42
44
|
>
|
|
43
|
-
<h1 className="text-3xl font-
|
|
44
|
-
|
|
45
|
+
<h1 className="text-3xl font-inter font-bold text-foreground uppercase">
|
|
46
|
+
BOILERPLATE
|
|
45
47
|
</h1>
|
|
46
|
-
<h2 className="text-2xl font-questrial font-extralight text-muted-foreground uppercase">
|
|
47
|
-
SHOWCASE
|
|
48
|
-
</h2>
|
|
49
48
|
</motion.div>
|
|
50
49
|
</div>
|
|
51
|
-
<div className="w-full flex gap-
|
|
52
|
-
<RotatingText
|
|
53
|
-
texts={[
|
|
54
|
-
'collaborative',
|
|
55
|
-
'easy to use',
|
|
56
|
-
'extensible',
|
|
57
|
-
'visual',
|
|
58
|
-
'open source',
|
|
59
|
-
]}
|
|
60
|
-
mainClassName="font-questrial leading-[100px] w-full h-full text-black overflow-hidden justify-center items-center text-3xl"
|
|
61
|
-
staggerFrom={'last'}
|
|
62
|
-
initial={{ y: '100%' }}
|
|
63
|
-
animate={{ y: 0 }}
|
|
64
|
-
exit={{ y: '-120%' }}
|
|
65
|
-
staggerDuration={0.025}
|
|
66
|
-
splitBy="characters"
|
|
67
|
-
splitLevelClassName="overflow-hidden pb-0.5 sm:pb-1 md:pb-1"
|
|
68
|
-
transition={{ type: 'spring', damping: 30, stiffness: 400 }}
|
|
69
|
-
rotationInterval={2000}
|
|
70
|
-
/>
|
|
71
|
-
</div>
|
|
72
|
-
<div className="w-full flex flex-col gap-2 items-center justify-center bg-background p-8 py-10 rounded-xl">
|
|
50
|
+
<div className="w-full flex flex-col gap-2 items-center justify-center bg-background p-[32px] border border-[#c9c9c9] mt-[32px]">
|
|
73
51
|
<LoginForm />
|
|
74
52
|
</div>
|
|
53
|
+
<div className="w-full flex gap-2 items-center justify-center bg-background p-8 py-2 mt-4">
|
|
54
|
+
<Button
|
|
55
|
+
variant="link"
|
|
56
|
+
onClick={() => {
|
|
57
|
+
window.open(GITHUB_URL, '_blank', 'noopener,noreferrer');
|
|
58
|
+
}}
|
|
59
|
+
className="cursor-pointer font-inter font-light"
|
|
60
|
+
>
|
|
61
|
+
<Github strokeWidth={1} /> GITHUB
|
|
62
|
+
</Button>
|
|
63
|
+
<Button
|
|
64
|
+
variant="link"
|
|
65
|
+
onClick={() => {
|
|
66
|
+
window.open(
|
|
67
|
+
DOCUMENTATION_URL,
|
|
68
|
+
'_blank',
|
|
69
|
+
'noopener,noreferrer'
|
|
70
|
+
);
|
|
71
|
+
}}
|
|
72
|
+
className="cursor-pointer font-inter font-light"
|
|
73
|
+
>
|
|
74
|
+
<Book strokeWidth={1} /> DOCUMENTATION
|
|
75
|
+
</Button>
|
|
76
|
+
</div>
|
|
75
77
|
</div>
|
|
76
78
|
</motion.section>
|
|
77
79
|
</main>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
+
import * as changeCase from 'change-case';
|
|
4
5
|
import { motion } from 'motion/react';
|
|
5
6
|
import { useRouter } from 'next/navigation';
|
|
6
7
|
import { z } from 'zod';
|
|
@@ -48,12 +49,18 @@ function LoginForm() {
|
|
|
48
49
|
});
|
|
49
50
|
|
|
50
51
|
function onSubmit(values: z.infer<typeof formSchema>) {
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
const roomIdMapped = changeCase.kebabCase(values.roomId);
|
|
53
|
+
const userMapped = {
|
|
53
54
|
name: values.username,
|
|
54
55
|
email: `${values.username}@weavejs.com`,
|
|
55
|
-
}
|
|
56
|
-
|
|
56
|
+
};
|
|
57
|
+
setRoom(roomIdMapped);
|
|
58
|
+
setUser(userMapped);
|
|
59
|
+
sessionStorage.setItem(
|
|
60
|
+
`weave.js_${roomIdMapped}`,
|
|
61
|
+
JSON.stringify(userMapped)
|
|
62
|
+
);
|
|
63
|
+
router.push(`/rooms/${roomIdMapped}`);
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
return (
|
|
@@ -73,13 +80,13 @@ function LoginForm() {
|
|
|
73
80
|
name="roomId"
|
|
74
81
|
render={({ field }) => (
|
|
75
82
|
<FormItem>
|
|
76
|
-
<FormLabel className="font-
|
|
83
|
+
<FormLabel className="text-[#757575] font-inter font-light">
|
|
77
84
|
Room name
|
|
78
85
|
</FormLabel>
|
|
79
86
|
<FormControl>
|
|
80
87
|
<Input
|
|
81
88
|
placeholder="room name to join"
|
|
82
|
-
className="font-
|
|
89
|
+
className="font-inter font-light rounded-none border-black"
|
|
83
90
|
{...field}
|
|
84
91
|
/>
|
|
85
92
|
</FormControl>
|
|
@@ -91,14 +98,14 @@ function LoginForm() {
|
|
|
91
98
|
control={form.control}
|
|
92
99
|
name="username"
|
|
93
100
|
render={({ field }) => (
|
|
94
|
-
<FormItem>
|
|
95
|
-
<FormLabel className="font-
|
|
101
|
+
<FormItem className="mb-0">
|
|
102
|
+
<FormLabel className="text-[#757575] font-inter font-light">
|
|
96
103
|
Username
|
|
97
104
|
</FormLabel>
|
|
98
105
|
<FormControl>
|
|
99
106
|
<Input
|
|
100
107
|
placeholder="your username"
|
|
101
|
-
className="font-
|
|
108
|
+
className="font-inter font-light rounded-none border-black"
|
|
102
109
|
{...field}
|
|
103
110
|
/>
|
|
104
111
|
</FormControl>
|
|
@@ -109,7 +116,7 @@ function LoginForm() {
|
|
|
109
116
|
<div className="w-full flex justify-center items-center">
|
|
110
117
|
<Button
|
|
111
118
|
type="submit"
|
|
112
|
-
className="cursor-pointer font-
|
|
119
|
+
className="cursor-pointer font-inter rounded-none mt-[32px]"
|
|
113
120
|
>
|
|
114
121
|
ENTER
|
|
115
122
|
</Button>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { WeaveNode } from
|
|
1
|
+
import { WeaveNode } from "@inditextech/weave-sdk";
|
|
2
2
|
import {
|
|
3
3
|
WeaveElementAttributes,
|
|
4
4
|
WeaveElementInstance,
|
|
5
|
-
} from
|
|
6
|
-
import Konva from
|
|
7
|
-
import {
|
|
5
|
+
} from "@inditextech/weave-types";
|
|
6
|
+
import Konva from "konva";
|
|
7
|
+
import { Inter } from "next/font/google";
|
|
8
8
|
|
|
9
|
-
export const COLOR_TOKEN_NODE_TYPE =
|
|
9
|
+
export const COLOR_TOKEN_NODE_TYPE = "color-token";
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const inter = Inter({
|
|
12
12
|
preload: true,
|
|
13
|
-
variable:
|
|
14
|
-
subsets: [
|
|
13
|
+
variable: "--inter",
|
|
14
|
+
subsets: ["latin"],
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
export class ColorTokenNode extends WeaveNode {
|
|
@@ -20,34 +20,35 @@ export class ColorTokenNode extends WeaveNode {
|
|
|
20
20
|
onRender(props: WeaveElementAttributes) {
|
|
21
21
|
const { id } = props;
|
|
22
22
|
|
|
23
|
-
const colorTokenColor = props.colorToken ??
|
|
23
|
+
const colorTokenColor = props.colorToken ?? "#DEFFA0";
|
|
24
24
|
|
|
25
25
|
const colorTokenParams = {
|
|
26
26
|
...props,
|
|
27
27
|
};
|
|
28
28
|
delete colorTokenParams.zIndex;
|
|
29
29
|
|
|
30
|
-
const
|
|
30
|
+
const colorTokenNode = new Konva.Group({
|
|
31
31
|
...colorTokenParams,
|
|
32
32
|
width: colorTokenParams.width,
|
|
33
33
|
height: colorTokenParams.height,
|
|
34
|
-
name:
|
|
34
|
+
name: "node",
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
const internalRect = new Konva.Rect({
|
|
38
38
|
groupId: id,
|
|
39
|
+
id: `${id}-colorToken`,
|
|
39
40
|
x: 0,
|
|
40
41
|
y: 0,
|
|
41
|
-
fill:
|
|
42
|
+
fill: "#FFFFFFFF",
|
|
42
43
|
width: colorTokenParams.width,
|
|
43
44
|
height: colorTokenParams.height,
|
|
44
45
|
draggable: false,
|
|
45
|
-
|
|
46
|
-
stroke: 'black',
|
|
46
|
+
stroke: "black",
|
|
47
47
|
strokeWidth: 2,
|
|
48
|
+
name: "node",
|
|
48
49
|
});
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
colorTokenNode.add(internalRect);
|
|
51
52
|
|
|
52
53
|
const internalRect2 = new Konva.Rect({
|
|
53
54
|
id: `${id}-colorToken-1`,
|
|
@@ -57,10 +58,11 @@ export class ColorTokenNode extends WeaveNode {
|
|
|
57
58
|
fill: colorTokenColor,
|
|
58
59
|
width: colorTokenParams.width - 2,
|
|
59
60
|
height: (colorTokenParams.height ?? 0) - 60,
|
|
61
|
+
listening: false,
|
|
60
62
|
draggable: false,
|
|
61
63
|
});
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
colorTokenNode.add(internalRect2);
|
|
64
66
|
|
|
65
67
|
const internalText = new Konva.Text({
|
|
66
68
|
id: `${id}-colorToken-code`,
|
|
@@ -68,23 +70,24 @@ export class ColorTokenNode extends WeaveNode {
|
|
|
68
70
|
x: 20,
|
|
69
71
|
y: 260,
|
|
70
72
|
fontSize: 20,
|
|
71
|
-
fontFamily:
|
|
72
|
-
fill:
|
|
73
|
+
fontFamily: inter.style.fontFamily,
|
|
74
|
+
fill: "#CCCCCCFF",
|
|
73
75
|
strokeEnabled: false,
|
|
74
|
-
stroke:
|
|
76
|
+
stroke: "#000000FF",
|
|
75
77
|
strokeWidth: 1,
|
|
76
78
|
text: `${colorTokenColor}`,
|
|
77
79
|
width: (colorTokenParams.width ?? 0) - 40,
|
|
78
80
|
height: 20,
|
|
79
|
-
align:
|
|
81
|
+
align: "left",
|
|
82
|
+
listening: false,
|
|
80
83
|
draggable: false,
|
|
81
84
|
});
|
|
82
85
|
|
|
83
|
-
|
|
86
|
+
colorTokenNode.add(internalText);
|
|
84
87
|
|
|
85
|
-
this.setupDefaultNodeEvents(
|
|
88
|
+
this.setupDefaultNodeEvents(colorTokenNode);
|
|
86
89
|
|
|
87
|
-
return
|
|
90
|
+
return colorTokenNode;
|
|
88
91
|
}
|
|
89
92
|
|
|
90
93
|
onUpdate(
|
|
@@ -101,7 +104,7 @@ export class ColorTokenNode extends WeaveNode {
|
|
|
101
104
|
zIndex: nodeInstanceZIndex,
|
|
102
105
|
});
|
|
103
106
|
|
|
104
|
-
const colorTokenColor = colorToken ??
|
|
107
|
+
const colorTokenColor = colorToken ?? "#DEFFA0";
|
|
105
108
|
|
|
106
109
|
const colorTokenNode1 = colorTokenNode.findOne(`#${id}-colorToken-1`);
|
|
107
110
|
if (colorTokenNode1) {
|
|
@@ -111,7 +114,7 @@ export class ColorTokenNode extends WeaveNode {
|
|
|
111
114
|
}
|
|
112
115
|
const colorTokenCode = colorTokenNode.findOne(`#${id}-colorToken-code`);
|
|
113
116
|
if (colorTokenCode) {
|
|
114
|
-
colorTokenCode.setAttr(
|
|
117
|
+
colorTokenCode.setAttr("text", `${colorTokenColor}`);
|
|
115
118
|
}
|
|
116
119
|
}
|
|
117
120
|
}
|