From 9822d952b7164cecc3d0065dbdd6691ae26b4b58 Mon Sep 17 00:00:00 2001 From: Mariano Fuentes Date: Tue, 24 Jun 2025 13:52:29 -0400 Subject: [PATCH 1/2] feat: add tables support in policy editor --- apps/app/package.json | 4 ++ bun.lock | 20 ++++++-- .../ui/src/components/editor/extensions.ts | 11 ++++ yarn.lock | 51 +++++++++++++------ 4 files changed, 67 insertions(+), 19 deletions(-) diff --git a/apps/app/package.json b/apps/app/package.json index 968f8a66aa..5a3231ea77 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -32,6 +32,10 @@ "@react-three/postprocessing": "^3.0.4", "@tanstack/react-query": "^5.74.4", "@tanstack/react-table": "^8.21.3", + "@tiptap/extension-table": "^2.22.3", + "@tiptap/extension-table-cell": "^2.22.3", + "@tiptap/extension-table-header": "^2.22.3", + "@tiptap/extension-table-row": "^2.22.3", "@trigger.dev/react-hooks": "3.3.17", "@trigger.dev/sdk": "3.3.17", "@types/three": "^0.177.0", diff --git a/bun.lock b/bun.lock index 0a846daf1e..f7a36012d5 100644 --- a/bun.lock +++ b/bun.lock @@ -89,6 +89,10 @@ "@react-three/postprocessing": "^3.0.4", "@tanstack/react-query": "^5.74.4", "@tanstack/react-table": "^8.21.3", + "@tiptap/extension-table": "^2.22.3", + "@tiptap/extension-table-cell": "^2.22.3", + "@tiptap/extension-table-header": "^2.22.3", + "@tiptap/extension-table-row": "^2.22.3", "@trigger.dev/react-hooks": "3.3.17", "@trigger.dev/sdk": "3.3.17", "@types/three": "^0.177.0", @@ -1545,13 +1549,13 @@ "@tiptap/extension-strike": ["@tiptap/extension-strike@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-rD5d/IL3XPfBOrHRHxt+b+0X1jbIbWONGiad/3sX0ZYQD3PandtCWboH40r/J5tFksebuY12dVYyYQKgLpDBOQ=="], - "@tiptap/extension-table": ["@tiptap/extension-table@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-X/wH3XKxi5+G7cB+lHt3fPMWIJ30IBkzrJZYapJ8d4p2JxMNIU1Nyu+8K6204d0hF6SVWY8hvb/Jq/WgHtoCFA=="], + "@tiptap/extension-table": ["@tiptap/extension-table@2.22.3", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-lYTuDo/3lJsC6g85b5OCfrKi8yID82PnZlngZo4quVHusE/YuXOwXYD4qt3xEOoqdgFoPQl0b7Ck9C5Qyb8AUg=="], - "@tiptap/extension-table-cell": ["@tiptap/extension-table-cell@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-DkSNAAkMI/ymPgO8y8Gv0MDVcbd2gk7xrSyicIDNoDFFXp15VasInGW8mvyM+CgvlurGB2N+PkYncPtfb4XNuQ=="], + "@tiptap/extension-table-cell": ["@tiptap/extension-table-cell@2.22.3", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-Yj6/bd4QpKoQpNTi/eNnWpT+VMfTBB7SfCPjlMvTK1MFVr60fmbUjJHrjt2WAfTW2JmkQlLsP8UXjR+Bda+uTA=="], - "@tiptap/extension-table-header": ["@tiptap/extension-table-header@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-wX6/+t0iCo3KrqK2OjK0vbFeL76Pq+VpobGt+oM8lcxsENnsa6a0s3wdd1QEVLVPlj+WMFQggAG80Rf17+iDxA=="], + "@tiptap/extension-table-header": ["@tiptap/extension-table-header@2.22.3", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-bLq/lufV95fp9gXMjOKMuuhpAa2+t0vi8dz4Zxwnrr1dsvkk4TyiKWRyuI3OV+TCNzZ3hZqOlEStS+Ie6lB/Lg=="], - "@tiptap/extension-table-row": ["@tiptap/extension-table-row@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-a1GvCIju9xETIQu664lVQNftHqpPdRmwYp+1QzY82v3zHClso+tTLPeBSlbDdUscSmv3yZXgGML20IiOoR2l2Q=="], + "@tiptap/extension-table-row": ["@tiptap/extension-table-row@2.22.3", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-PQbrDIyGOHrsN3RmB+J75UJ10lGW7I4PqY+E2HUtx5HvFOEVPlBbcFELMfjy7dOPbKiM+v6KUSbybXW8h745mg=="], "@tiptap/extension-task-item": ["@tiptap/extension-task-item@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-MFE928s1J2ACyjOlkx52D/+r6aqz6c516C0tvnP2vzrkijFaSMNY4Xg7L1wTinzIdijh184AYQpyw7LezJa1ug=="], @@ -4295,6 +4299,14 @@ "@commitlint/types/chalk": ["chalk@5.4.1", "", {}, "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w=="], + "@comp/ui/@tiptap/extension-table": ["@tiptap/extension-table@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0", "@tiptap/pm": "^2.7.0" } }, "sha512-X/wH3XKxi5+G7cB+lHt3fPMWIJ30IBkzrJZYapJ8d4p2JxMNIU1Nyu+8K6204d0hF6SVWY8hvb/Jq/WgHtoCFA=="], + + "@comp/ui/@tiptap/extension-table-cell": ["@tiptap/extension-table-cell@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-DkSNAAkMI/ymPgO8y8Gv0MDVcbd2gk7xrSyicIDNoDFFXp15VasInGW8mvyM+CgvlurGB2N+PkYncPtfb4XNuQ=="], + + "@comp/ui/@tiptap/extension-table-header": ["@tiptap/extension-table-header@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-wX6/+t0iCo3KrqK2OjK0vbFeL76Pq+VpobGt+oM8lcxsENnsa6a0s3wdd1QEVLVPlj+WMFQggAG80Rf17+iDxA=="], + + "@comp/ui/@tiptap/extension-table-row": ["@tiptap/extension-table-row@2.14.0", "", { "peerDependencies": { "@tiptap/core": "^2.7.0" } }, "sha512-a1GvCIju9xETIQu664lVQNftHqpPdRmwYp+1QzY82v3zHClso+tTLPeBSlbDdUscSmv3yZXgGML20IiOoR2l2Q=="], + "@discordjs/rest/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="], "@discordjs/ws/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="], diff --git a/packages/ui/src/components/editor/extensions.ts b/packages/ui/src/components/editor/extensions.ts index a806378016..53e54e74fb 100644 --- a/packages/ui/src/components/editor/extensions.ts +++ b/packages/ui/src/components/editor/extensions.ts @@ -4,6 +4,10 @@ import HorizontalRule from '@tiptap/extension-horizontal-rule'; import Image from '@tiptap/extension-image'; import Link from '@tiptap/extension-link'; import Placeholder from '@tiptap/extension-placeholder'; +import Table from '@tiptap/extension-table'; +import TableCell from '@tiptap/extension-table-cell'; +import TableHeader from '@tiptap/extension-table-header'; +import TableRow from '@tiptap/extension-table-row'; import TaskItem from '@tiptap/extension-task-item'; import TaskList from '@tiptap/extension-task-list'; import TextAlign from '@tiptap/extension-text-align'; @@ -94,4 +98,11 @@ export const defaultExtensions = (placeholder: string = 'Start writing...') => [ class: 'mt-4 mb-6 border-t border-muted-foreground', }, }), + // Tables + Table.configure({ + resizable: true, + }), + TableCell, + TableHeader, + TableRow, ]; diff --git a/yarn.lock b/yarn.lock index 6d215360d0..06a7e2d7cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1191,14 +1191,14 @@ "@types/conventional-commits-parser" "^5.0.0" chalk "^5.3.0" -"@comp/analytics@^workspace:packages/analytics": +"@comp/analytics@packages/analytics": version "workspace:packages/analytics" resolved "workspace:packages/analytics" dependencies: posthog-js "^1.236.6" posthog-node "^4.14.0" -"@comp/app@^workspace:apps/app", "@comp/app@workspace:*": +"@comp/app@apps/app", "@comp/app@workspace:*": version "workspace:apps/app" resolved "workspace:apps/app" devDependencies: @@ -1226,9 +1226,7 @@ "@browserbasehq/sdk" "^2.5.0" "@calcom/atoms" "^1.0.102-framer" "@calcom/embed-react" "^1.5.3" - dependencies: "@comp/db" "workspace:*" - dependencies: "@date-fns/tz" "^1.2.0" "@dnd-kit/core" "^6.3.1" "@dnd-kit/modifiers" "^9.0.0" @@ -1247,6 +1245,10 @@ "@react-three/postprocessing" "^3.0.4" "@tanstack/react-query" "^5.74.4" "@tanstack/react-table" "^8.21.3" + "@tiptap/extension-table" "^2.22.3" + "@tiptap/extension-table-cell" "^2.22.3" + "@tiptap/extension-table-header" "^2.22.3" + "@tiptap/extension-table-row" "^2.22.3" "@trigger.dev/react-hooks" "3.3.17" "@trigger.dev/sdk" "3.3.17" "@types/three" "^0.177.0" @@ -1288,19 +1290,18 @@ xml2js "^0.6.2" zustand "^5.0.3" -"@comp/db@^workspace:packages/db", "@comp/db@workspace:*": +"@comp/db@packages/db", "@comp/db@workspace:*": version "workspace:packages/db" resolved "workspace:packages/db" devDependencies: "@comp/tsconfig" "workspace:*" - devDependencies: prisma "^6.9.0" ts-node "^10.9.2" typescript "^5.8.3" dependencies: "@prisma/client" "6.9.0" -"@comp/email@^workspace:packages/email": +"@comp/email@packages/email": version "workspace:packages/email" resolved "workspace:packages/email" devDependencies: @@ -1320,7 +1321,7 @@ react-email "^4.0.15" responsive-react-email "^0.0.5" -"@comp/framework-editor@^workspace:apps/framework-editor": +"@comp/framework-editor@apps/framework-editor": version "workspace:apps/framework-editor" resolved "workspace:apps/framework-editor" devDependencies: @@ -1350,7 +1351,7 @@ tippy.js "^6.3.7" zod "3.25.67" -"@comp/integrations@^workspace:packages/integrations": +"@comp/integrations@packages/integrations": version "workspace:packages/integrations" resolved "workspace:packages/integrations" devDependencies: @@ -1373,14 +1374,14 @@ stoppable "^1.1.0" zod "3.25.67" -"@comp/kv@^workspace:packages/kv": +"@comp/kv@packages/kv": version "workspace:packages/kv" resolved "workspace:packages/kv" dependencies: "@upstash/redis" "^1.34.2" server-only "0.0.1" -"@comp/portal@^workspace:apps/portal": +"@comp/portal@apps/portal": version "workspace:apps/portal" resolved "workspace:apps/portal" devDependencies: @@ -1411,7 +1412,7 @@ next "15.4.0-canary.85" react-email "^4.0.15" -"@comp/trust@^workspace:apps/trust": +"@comp/trust@apps/trust": version "workspace:apps/trust" resolved "workspace:apps/trust" devDependencies: @@ -1432,11 +1433,11 @@ lucide-react "^0.518.0" next "15.4.0-canary.85" -"@comp/tsconfig@^workspace:packages/tsconfig", "@comp/tsconfig@workspace:*": +"@comp/tsconfig@packages/tsconfig", "@comp/tsconfig@workspace:*": version "workspace:packages/tsconfig" resolved "workspace:packages/tsconfig" -"@comp/ui@^workspace:packages/ui", "@comp/ui@workspace:*": +"@comp/ui@packages/ui", "@comp/ui@workspace:*": version "workspace:packages/ui" resolved "workspace:packages/ui" devDependencies: @@ -1519,7 +1520,7 @@ use-debounce "^10.0.4" vaul "^0.9.6" -"@comp/utils@^workspace:packages/utils", "@comp/utils@workspace:*": +"@comp/utils@packages/utils", "@comp/utils@workspace:*": version "workspace:packages/utils" resolved "workspace:packages/utils" devDependencies: @@ -5474,21 +5475,41 @@ resolved "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.14.0.tgz" integrity sha512-X/wH3XKxi5+G7cB+lHt3fPMWIJ30IBkzrJZYapJ8d4p2JxMNIU1Nyu+8K6204d0hF6SVWY8hvb/Jq/WgHtoCFA== +"@tiptap/extension-table@^2.22.3": + version "2.22.3" + resolved "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.22.3.tgz" + integrity sha512-lYTuDo/3lJsC6g85b5OCfrKi8yID82PnZlngZo4quVHusE/YuXOwXYD4qt3xEOoqdgFoPQl0b7Ck9C5Qyb8AUg== + "@tiptap/extension-table-cell@2.14.0": version "2.14.0" resolved "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.14.0.tgz" integrity sha512-DkSNAAkMI/ymPgO8y8Gv0MDVcbd2gk7xrSyicIDNoDFFXp15VasInGW8mvyM+CgvlurGB2N+PkYncPtfb4XNuQ== +"@tiptap/extension-table-cell@^2.22.3": + version "2.22.3" + resolved "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.22.3.tgz" + integrity sha512-Yj6/bd4QpKoQpNTi/eNnWpT+VMfTBB7SfCPjlMvTK1MFVr60fmbUjJHrjt2WAfTW2JmkQlLsP8UXjR+Bda+uTA== + "@tiptap/extension-table-header@2.14.0": version "2.14.0" resolved "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.14.0.tgz" integrity sha512-wX6/+t0iCo3KrqK2OjK0vbFeL76Pq+VpobGt+oM8lcxsENnsa6a0s3wdd1QEVLVPlj+WMFQggAG80Rf17+iDxA== +"@tiptap/extension-table-header@^2.22.3": + version "2.22.3" + resolved "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.22.3.tgz" + integrity sha512-bLq/lufV95fp9gXMjOKMuuhpAa2+t0vi8dz4Zxwnrr1dsvkk4TyiKWRyuI3OV+TCNzZ3hZqOlEStS+Ie6lB/Lg== + "@tiptap/extension-table-row@2.14.0": version "2.14.0" resolved "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.14.0.tgz" integrity sha512-a1GvCIju9xETIQu664lVQNftHqpPdRmwYp+1QzY82v3zHClso+tTLPeBSlbDdUscSmv3yZXgGML20IiOoR2l2Q== +"@tiptap/extension-table-row@^2.22.3": + version "2.22.3" + resolved "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.22.3.tgz" + integrity sha512-PQbrDIyGOHrsN3RmB+J75UJ10lGW7I4PqY+E2HUtx5HvFOEVPlBbcFELMfjy7dOPbKiM+v6KUSbybXW8h745mg== + "@tiptap/extension-task-item@2.14.0": version "2.14.0" resolved "https://registry.npmjs.org/@tiptap/extension-task-item/-/extension-task-item-2.14.0.tgz" From 9afd1edde0c803d0247ee43250e42f9d35e165c5 Mon Sep 17 00:00:00 2001 From: Mariano Fuentes Date: Tue, 24 Jun 2025 13:52:42 -0400 Subject: [PATCH 2/2] feat: add tables support in policy editor --- packages/ui/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 42d0cebc78..f04a432c9f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -37,10 +37,10 @@ "@tiptap/extension-image": "2.14.0", "@tiptap/extension-link": "2.14.0", "@tiptap/extension-placeholder": "2.14.0", - "@tiptap/extension-table": "2.14.0", - "@tiptap/extension-table-cell": "2.14.0", - "@tiptap/extension-table-header": "2.14.0", - "@tiptap/extension-table-row": "2.14.0", + "@tiptap/extension-table": "^2.22.3", + "@tiptap/extension-table-cell": "^2.22.3", + "@tiptap/extension-table-header": "^2.22.3", + "@tiptap/extension-table-row": "^2.22.3", "@tiptap/extension-task-item": "2.14.0", "@tiptap/extension-task-list": "2.14.0", "@tiptap/extension-text-align": "2.14.0",