Skip to content

Conversation

@rivka-ungar
Copy link
Contributor

@rivka-ungar rivka-ungar commented Jan 1, 2026

User description

https://monday.monday.com/boards/3532714909/views/80492480/pulses/10887381446


PR Type

Enhancement


Description

  • Extract Table component into independent @vibe/table package

  • Update imports to use @vibe/shared for utilities and types

  • Replace Skeleton type constants with inline string literals

  • Add package configuration files for standalone distribution

  • Update core package to re-export from new @vibe/table package


Diagram Walkthrough

flowchart LR
  A["Table Component"] -- "extracted to" --> B["@vibe/table Package"]
  C["Utilities & Types"] -- "moved from core" --> D["@vibe/shared"]
  E["Skeleton Constants"] -- "replaced with" --> F["Inline String Literals"]
  B -- "re-exported by" --> G["@vibe/core"]
Loading

File Walkthrough

Relevant files
Configuration changes
6 files
package.json
Create new package configuration for table                             
+78/-0   
rollup.config.mjs
Add rollup build configuration                                                     
+4/-0     
tsconfig.json
Add TypeScript configuration                                                         
+9/-0     
vitest.config.mjs
Add vitest testing configuration                                                 
+7/-0     
vitest.setup.mjs
Add test setup and mocks                                                                 
+22/-0   
files.d.ts
Add module type declarations                                                         
+16/-0   
Enhancement
18 files
index.ts
Create barrel export for Table module                                       
+4/-0     
Table.tsx
Update imports to use @vibe/shared                                             
+3/-4     
tableHelpers.ts
Replace Skeleton constants with inline strings                     
+7/-6     
TableBody.tsx
Update imports to use @vibe/shared                                             
+3/-4     
TableCell.tsx
Update imports to use @vibe/shared                                             
+2/-3     
TableCellSkeleton.tsx
Update imports to use @vibe/core and @vibe/shared               
+3/-3     
TableContainer.tsx
Update imports to use @vibe/shared                                             
+2/-2     
TableContainer.types.ts
Update VibeComponentProps import source                                   
+2/-1     
TableHeader.tsx
Update imports to use @vibe/shared                                             
+2/-4     
TableHeaderCell.tsx
Update imports to use @vibe/shared                                             
+2/-4     
TableRow.tsx
Update imports to use @vibe/shared                                             
+2/-4     
TableRow.module.scss
Remove unused styles import                                                           
+1/-2     
TableRowMenu.tsx
Update imports to use @vibe/core and @vibe/shared               
+3/-5     
TableRowMenu.types.ts
Update VibeComponentProps import source                                   
+2/-1     
TableVirtualizedBody.tsx
Update imports to use @vibe/shared                                             
+2/-3     
VirtualizedList.tsx
Create placeholder VirtualizedList component                         
+9/-0     
index.ts
Export TableLoadingStateType from main index                         
+2/-1     
index.ts
Update Table exports to use @vibe/table                                   
+1/-1     
Formatting
19 files
Table.types.ts
Add trailing newline to file                                                         
+1/-0     
TableConsts.ts
Add trailing newline to file                                                         
+1/-0     
Table.test.tsx
Add trailing newline to file                                                         
+1/-0     
TableHelpers.test.tsx
Add trailing newline to file                                                         
+1/-0     
tableTestUtils.tsx
Add trailing newline to file                                                         
+1/-0     
TableBody.module.scss
Add trailing newline to file                                                         
+1/-0     
TableCell.module.scss
Add trailing newline to file                                                         
+1/-0     
TableCellSkeleton.module.scss
Add trailing newline to file                                                         
+1/-0     
TableContainer.module.scss
Add trailing newline to file                                                         
+1/-0     
TableHeader.module.scss
Add trailing newline to file                                                         
+1/-0     
TableHeaderCell.module.scss
Add trailing newline to file                                                         
+1/-0     
TableRowMenu.module.scss
Add trailing newline to file                                                         
+1/-0     
TableVirtualizedBody.module.scss
Add trailing newline to file                                                         
+1/-0     
TableContainerContext.types.ts
Add trailing newline to file                                                         
+1/-0     
TableContainerContext.tsx
Add trailing newline to file                                                         
+1/-0     
TableContext.types.ts
Add trailing newline to file                                                         
+1/-0     
TableContext.tsx
Add trailing newline to file                                                         
+1/-0     
TableRowMenuContext.types.ts
Add trailing newline to file                                                         
+1/-0     
TableRowMenuContext.tsx
Add trailing newline to file                                                         
+1/-0     
Dependencies
1 files
package.json
Add @vibe/table as dependency                                                       
+1/-0     
Additional files
1 files
Table.module.scss +1/-0     

@qodo-free-for-open-source-projects
Copy link
Contributor

qodo-free-for-open-source-projects bot commented Jan 1, 2026

PR Reviewer Guide 🔍

(Review updated until commit 136d374)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Type Definition

The SkeletonType type is now defined inline in this file, but it may already be defined in @vibe/shared or @vibe/core. This could lead to type inconsistencies if the same type exists elsewhere with different definitions.

export type SkeletonType = "circle" | "rectangle" | "text";
Placeholder Component

This placeholder component always returns null and is only used for type reference. Consider using a proper type-only import or interface instead of a runtime component that serves no functional purpose.

// This is a placeholder type for VirtualizedList used in TableBody type definitions
// The actual VirtualizedList component is expected to come from @vibe/core if needed
import React from "react";

// Placeholder component for type reference only
const VirtualizedList: React.FC = () => null;

export default VirtualizedList;
Circular Dependency

The package depends on @vibe/core (version 3.82.4), but @vibe/core now re-exports from @vibe/table. This creates a circular dependency that could cause build or runtime issues.

"@vibe/core": "3.82.4",
"@vibe/icon": "3.0.9",

@qodo-free-for-open-source-projects
Copy link
Contributor

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Build / Build and Upload

Failed stage: Build [❌]

Failure summary:

The action failed during the build process of the @vibe/core package. The TypeScript compiler
encountered an error in src/components/index.ts at line 67, column 15:
- Error: TS2307: Cannot
find module '@vibe/table' or its corresponding type declarations.
- The code attempted to export
from @vibe/table module, but this module could not be found or resolved.
- This caused the rollup
build to fail with exit code 1.
- Additionally, the @vibe/table:build task did not run because its
dependency (@vibe/core:build) failed.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

140:  * [new branch]          feature/moro/disabled-legacy-editable-heading-text-selection -> origin/feature/moro/disabled-legacy-editable-heading-text-selection
141:  * [new branch]          feature/moshe/auto_scroll_after_back_on_store -> origin/feature/moshe/auto_scroll_after_back_on_store
142:  * [new branch]          feature/moshe/vulcan_upgrade -> origin/feature/moshe/vulcan_upgrade
143:  * [new branch]          feature/sergeyro/icon-deprecate-clickable -> origin/feature/sergeyro/icon-deprecate-clickable
144:  * [new branch]          feature/shanab/input-type-time -> origin/feature/shanab/input-type-time
145:  * [new branch]          fix-add-tslib               -> origin/fix-add-tslib
146:  * [new branch]          fix-chromatic-action        -> origin/fix-chromatic-action
147:  * [new branch]          fix-dialog-show-contextmenu-default-menu -> origin/fix-dialog-show-contextmenu-default-menu
148:  * [new branch]          fix-dropdown-spec           -> origin/fix-dropdown-spec
149:  * [new branch]          fix-showHideEvent-in-dialog-story -> origin/fix-showHideEvent-in-dialog-story
150:  * [new branch]          fix/combobox-spacings-9062326510 -> origin/fix/combobox-spacings-9062326510
151:  * [new branch]          fix/modal-focus             -> origin/fix/modal-focus
152:  * [new branch]          fix/orhal/playwright-install-performance-fix -> origin/fix/orhal/playwright-install-performance-fix
153:  * [new branch]          fix/yossi/test-focus-lock-esm -> origin/fix/yossi/test-focus-lock-esm
154:  * [new branch]          gh-pages                    -> origin/gh-pages
155:  * [new branch]          lint-error-fixes            -> origin/lint-error-fixes
156:  * [new branch]          master                      -> origin/master
...

2055:  �[2K�[1G�[2m$ node scripts/generate-lazy-icons.js�[22m
2056:  Generated lazy components and index.ts for 275 icons.
2057:  �[2K�[1G�[2m$ node scripts/generate-svg-index.js�[22m
2058:  Generated index.ts for SVG exports in ./src/svg
2059:  �[36m
2060:  �[1msrc/react/index.ts, src/lazy/index.ts, src/svg/index.ts, src/iconsMetaData.ts, src/types.ts�[22m → �[1mdist�[22m...�[39m
2061:  �[1m�[33m(!) Generated an empty chunk�[39m�[22m
2062:  types
2063:  �[32mcreated �[1mdist�[22m in �[1m45.7s�[22m�[39m
2064:  �[2K�[1GDone in 54.34s.
2065:  ##[endgroup]
2066:  Lerna (powered by Nx)   Successfully ran target build for 4 projects
2067:  Done in 114.80s.
2068:  ##[group]Run if [[ -n "$(git status --porcelain yarn.lock)" ]]; then
2069:  �[36;1mif [[ -n "$(git status --porcelain yarn.lock)" ]]; then�[0m
2070:  �[36;1m  echo "Error: yarn.lock has uncommitted changes. Please commit it."�[0m
2071:  �[36;1m  exit 1�[0m
...

2094:  �[36;1mif [[ "$GITHUB_REF" == "refs/heads/master" ]]; then�[0m
2095:  �[36;1m  since_flag="--since"�[0m
2096:  �[36;1m  echo "Running on master branch, checking for all changes."�[0m
2097:  �[36;1melse�[0m
2098:  �[36;1m  since_flag="--since=origin/master...HEAD"�[0m
2099:  �[36;1m  echo "Not running on master branch, checking for changes since origin/master."�[0m
2100:  �[36;1mfi�[0m
2101:  �[36;1m�[0m
2102:  �[36;1mecho "since_flag=$since_flag" >> $GITHUB_OUTPUT�[0m
2103:  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2104:  env:
2105:  NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc
2106:  NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX
2107:  ##[endgroup]
2108:  Not running on master branch, checking for changes since origin/master.
2109:  ##[group]Run changed_packages=$(yarn -s lerna ls $SINCE_FLAG --json --loglevel=error)
2110:  �[36;1mchanged_packages=$(yarn -s lerna ls $SINCE_FLAG --json --loglevel=error)�[0m
2111:  �[36;1m�[0m
...

2680:  �[36m
2681:  �[1m/home/runner/work/vibe/vibe/packages/components/typography/src/index.ts�[22m → �[1mdist/mocked_classnames�[22m...�[39m
2682:  Browserslist: caniuse-lite is outdated. Please run:
2683:  npx update-browserslist-db@latest
2684:  Why you should do it regularly: https://github.com/browserslist/update-db#readme
2685:  �[32mcreated �[1mdist/mocked_classnames�[22m in �[1m5.3s�[22m�[39m
2686:  ##[endgroup]
2687:  ##[group]❌ > @vibe/core:build
2688:  �[2K�[1G�[2m$ yarn build:esm && yarn build:esm:mock-classnames && yarn build:metadata�[22m
2689:  �[2K�[1G�[2m$ rollup -c�[22m
2690:  �[36m
2691:  �[1m/home/runner/work/vibe/vibe/packages/core/src/index.ts, /home/runner/work/vibe/vibe/packages/core/src/tests/interactions-utils.ts, /home/runner/work/vibe/vibe/packages/core/src/tests/test-ids-utils.ts, /home/runner/work/vibe/vibe/packages/core/src/components/next.ts�[22m → �[1mdist�[22m...�[39m
2692:  Browserslist: caniuse-lite is outdated. Please run:
2693:  npx update-browserslist-db@latest
2694:  Why you should do it regularly: https://github.com/browserslist/update-db#readme
2695:  �[1m�[31m[!] �[1m(plugin rpt2) Error: �[96msrc/components/index.ts�[0m:�[93m67�[0m:�[93m15�[0m - �[91merror�[0m�[90m TS2307: �[0mCannot find module '@vibe/table' or its corresponding type declarations.
2696:  �[7m67�[0m export * from "@vibe/table";
2697:  �[7m  �[0m �[91m              ~~~~~~~~~~~~~�[0m
2698:  �[22m�[1m�[39m�[22m
2699:  src/index.ts
2700:  �[2m
2701:  at error (/home/runner/work/vibe/vibe/node_modules/rollup/dist/shared/rollup.js:198:30)
2702:  at throwPluginError (/home/runner/work/vibe/vibe/node_modules/rollup/dist/shared/rollup.js:21718:12)
2703:  at Object.error (/home/runner/work/vibe/vibe/node_modules/rollup/dist/shared/rollup.js:22672:20)
2704:  at RollupContext.error (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/src/context.ts:35:17)
2705:  at /home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/src/diagnostics.ts:70:17
2706:  at Array.forEach (<anonymous>)
2707:  at printDiagnostics (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/src/diagnostics.ts:42:14)
2708:  at typecheckFile (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/src/index.ts:67:3)
2709:  at Object.<anonymous> (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/src/index.ts:257:5)
2710:  at Generator.next (<anonymous>)
2711:  at /home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/node_modules/tslib/tslib.es6.js:76:71
2712:  at new Promise (<anonymous>)
2713:  at __awaiter (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/node_modules/tslib/tslib.es6.js:72:12)
2714:  at Object.transform (/home/runner/work/vibe/vibe/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:28084:20)
2715:  at /home/runner/work/vibe/vibe/node_modules/rollup/dist/shared/rollup.js:22879:40�[22m
2716:  �[2K�[1G�[31merror�[39m Command failed with exit code 1.
2717:  �[2K�[1G�[34minfo�[39m Visit �[1mhttps://yarnpkg.com/en/docs/cli/run�[22m for documentation about this command.
2718:  �[2K�[1G�[31merror�[39m Command failed with exit code 1.
2719:  �[2K�[1G�[34minfo�[39m Visit �[1mhttps://yarnpkg.com/en/docs/cli/run�[22m for documentation about this command.
2720:  ##[endgroup]
2721:  Lerna (powered by Nx)   Running target build for 18 projects failed
2722:  Tasks not run because their dependencies failed or --nx-bail=true:
2723:  - @vibe/table:build
2724:  Failed tasks:
2725:  - @vibe/core:build
2726:  error Command failed with exit code 1.
2727:  info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
2728:  ##[error]Process completed with exit code 1.
2729:  Post job cleanup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants