Skip to content

Conversation

@iharshyadav
Copy link

@iharshyadav iharshyadav commented Jan 17, 2026

Replace 'left-[68px]' with 'start-[68px]' in data table sticky cells to properly support RTL languages

The 'start-*' utility automatically adapts to text direction (left in LTR, right in RTL), preventing table cells from stacking and hiding checkboxes in Hebrew and other RTL languages.

Fixes #14489

Summary

What — What changes are introduced in this PR?

Changed the CSS positioning utility from left-[68px] to start-[68px] in two locations within the data table component for sticky header and body cells.

Why — Why are these changes relevant or necessary?

In RTL (Right-to-Left) languages like Hebrew and Arabic, the admin dashboard's data tables were displaying incorrectly. Table cells with checkboxes were stacking on top of each other, making checkboxes invisible in the Fulfillment Providers section (Settings → Locations & Shipping → Edit Fulfillment Providers). This prevented users from selecting providers in RTL language mode.

How — How have these changes been implemented?

Replaced the absolute positioning class left-[68px] with the logical property start-[68px] in the data-table-root.tsx component. Tailwind's start-* utility is a logical property that automatically becomes left-* in LTR languages and right-* in RTL languages, ensuring proper layout in both text directions.

Testing — How have these changes been tested, or how can the reviewer test the feature?

  1. Build verification: The admin dashboard builds successfully with no errors
  2. Unit tests: All existing tests pass
  3. Manual testing steps:
    • Switch admin dashboard language to Hebrew (עברית) or Arabic
    • Navigate to Settings → Locations & Shipping
    • Select a location → Edit Fulfillment Providers
    • Verify checkboxes are visible and table cells are properly aligned (not stacked)

Examples

Provide examples or code snippets that demonstrate how this feature works, or how it can be used in practice.
This helps with documentation and ensures maintainers can quickly understand and verify the change.

// Before (broken in RTL):
className={clx({
  "left-[68px]": hasLeftOffset,  // Always positions from left side
})}

// After (works in both LTR and RTL):
className={clx({
  "start-[68px]": hasLeftOffset,  // Positions from start (left in LTR, right in RTL)
})}

Visual comparison:

  • LTR (English): start-[68px]left: 68px
  • RTL (Hebrew): start-[68px]right: 68px

Checklist

Please ensure the following before requesting a review:

  • I have added a changeset for this PR
    • Every non-breaking change should be marked as a patch
    • To add a changeset, run yarn changeset and follow the prompts
  • The changes are covered by relevant tests
  • I have verified the code works as intended locally
  • I have linked the related issue(s) if applicable

Additional Context

  • This is a CSS-only fix with no breaking changes
  • The start-* Tailwind utility is a standard logical property supported in all modern browsers
  • Only affects the visual positioning in RTL languages; LTR behavior remains unchanged
  • Reported by @amir-konimbo with screenshots showing the issue

Note

Ensures sticky table header and first-column cells position correctly in RTL.

  • In data-table-root.tsx, replace left-0/left-[68px] with start-0/start-[68px] for sticky header and body cells
  • Add changeset entry rtl-table-start-68px.md for @medusajs/dashboard patch release

Written by Cursor Bugbot for commit 39a1eaf. This will update automatically on new commits. Configure here.

Replace 'left-[68px]' with 'start-[68px]' in data table sticky cells
to properly support RTL languages. The 'start-*' utility automatically
adapts to text direction (left in LTR, right in RTL), preventing table
cells from stacking and hiding checkboxes in Hebrew and other RTL languages.

Fixes medusajs#14489
@iharshyadav iharshyadav requested a review from a team as a code owner January 17, 2026 20:37
@changeset-bot
Copy link

changeset-bot bot commented Jan 17, 2026

🦋 Changeset detected

Latest commit: 39a1eaf

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 76 packages
Name Type
@medusajs/dashboard Patch
@medusajs/admin-bundler Patch
@medusajs/medusa Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
integration-tests-http Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/rbac Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/translation Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/draft-order Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/core-flows Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link

vercel bot commented Jan 17, 2026

@iharshyadav is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

@iharshyadav
Copy link
Author

@NicolasGorga please review my pr.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Update sticky positioning to use start-0 instead of left-0 to prevent
CSS conflicts in RTL mode. Previously, start-[68px] would become right: 68px
while left-0 remained, causing both properties to apply simultaneously.
Copy link
Contributor

@NicolasGorga NicolasGorga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@NicolasGorga NicolasGorga requested a review from fPolic January 17, 2026 21:46
@iharshyadav
Copy link
Author

@NicolasGorga i have done the changes which you told please review.

@iharshyadav
Copy link
Author

@fPolic can you please review my pr if possible.

Copy link
Contributor

@fPolic fPolic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks for the contribution @iharshyadav

@iharshyadav
Copy link
Author

@fPolic its good to hear, can i know when it will me merged, it would be grateful.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: <td> elements in data table are stacking on top of each other in RTL languages.

3 participants