Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LG-4251: remove portal and use descendants pattern in tabs #2348

Merged
merged 9 commits into from
May 30, 2024

Conversation

stephl3
Copy link
Collaborator

@stephl3 stephl3 commented May 22, 2024

✍️ Proposed changes

  • refactors tabs to use @leafygreen-ui/descendants infra
  • removes @leafygreen-ui/portal dependency

Will make final changeset after all tabs changes are merged to integration branch

🎟 Jira ticket: LG-4251

✅ Checklist

For bug fixes, new features & breaking changes

  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • I have run yarn changeset and documented my changes

For new components

  • I have added my new package to the global tsconfig
  • I have added my new package to the Table of Contents on the global README
  • I have verified the Live Example looks as intended on the design website.

🧪 How to test changes

Copy link

changeset-bot bot commented May 22, 2024

⚠️ No Changeset found

Latest commit: c9685b7

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

Copy link
Contributor

github-actions bot commented May 22, 2024

Size Change: +111 B (+0.01%)

Total Size: 1.33 MB

Filename Size Change
packages/tabs/dist/esm/index.js 4.84 kB +63 B (+1.32%)
packages/tabs/dist/index.js 4.99 kB +48 B (+0.97%)
ℹ️ View Unchanged
Filename Size
chat/avatar/dist/esm/index.js 1.36 kB
chat/avatar/dist/index.js 1.52 kB
chat/chat-disclaimer/dist/esm/index.js 566 B
chat/chat-disclaimer/dist/index.js 751 B
chat/chat-window/dist/esm/index.js 1.61 kB
chat/chat-window/dist/index.js 1.79 kB
chat/fixed-chat-window/dist/esm/index.js 2.35 kB
chat/fixed-chat-window/dist/index.js 2.55 kB
chat/input-bar/dist/esm/index.js 6.53 kB
chat/input-bar/dist/index.js 6.73 kB
chat/leafygreen-chat-provider/dist/esm/index.js 903 B
chat/leafygreen-chat-provider/dist/index.js 1.06 kB
chat/lg-markdown/dist/esm/index.js 1.45 kB
chat/lg-markdown/dist/index.js 1.6 kB
chat/message-feed/dist/esm/index.js 1.91 kB
chat/message-feed/dist/index.js 2.11 kB
chat/message-feedback/dist/esm/index.js 2.53 kB
chat/message-feedback/dist/index.js 2.78 kB
chat/message-prompts/dist/esm/index.js 1.74 kB
chat/message-prompts/dist/index.js 1.91 kB
chat/message-rating/dist/esm/index.js 2.52 kB
chat/message-rating/dist/index.js 2.71 kB
chat/message/dist/esm/index.js 3.75 kB
chat/message/dist/index.js 3.93 kB
chat/rich-links/dist/esm/index.js 3.18 kB
chat/rich-links/dist/index.js 3.38 kB
chat/title-bar/dist/esm/index.js 1.38 kB
chat/title-bar/dist/index.js 1.6 kB
packages/a11y/dist/esm/index.js 1.74 kB
packages/a11y/dist/index.js 1.88 kB
packages/avatar/dist/esm/index.js 2.34 kB
packages/avatar/dist/index.js 2.53 kB
packages/badge/dist/esm/index.js 1.46 kB
packages/badge/dist/index.js 1.66 kB
packages/banner/dist/esm/index.js 3.13 kB
packages/banner/dist/index.js 3.44 kB
packages/box/dist/esm/index.js 539 B
packages/box/dist/index.js 696 B
packages/button/dist/esm/index.js 4.8 kB
packages/button/dist/index.js 5 kB
packages/callout/dist/esm/index.js 2.63 kB
packages/callout/dist/index.js 2.91 kB
packages/card/dist/esm/index.js 1.5 kB
packages/card/dist/index.js 1.71 kB
packages/checkbox/dist/esm/index.js 4.24 kB
packages/checkbox/dist/index.js 4.45 kB
packages/chip/dist/esm/index.js 2.99 kB
packages/chip/dist/index.js 3.21 kB
packages/code/dist/esm/index.js 9.43 kB
packages/code/dist/index.js 10 kB
packages/combobox/dist/esm/index.js 11.8 kB
packages/combobox/dist/index.js 12.1 kB
packages/confirmation-modal/dist/esm/index.js 2.61 kB
packages/confirmation-modal/dist/index.js 2.85 kB
packages/copyable/dist/esm/index.js 2.83 kB
packages/copyable/dist/index.js 3.04 kB
packages/date-picker/dist/esm/index.js 13.9 kB
packages/date-picker/dist/index.js 14.3 kB
packages/date-utils/dist/esm/index.js 3.41 kB
packages/date-utils/dist/index.js 3.51 kB
packages/descendants/dist/esm/index.js 1.6 kB
packages/descendants/dist/index.js 1.71 kB
packages/emotion/dist/esm/index.js 338 B
packages/emotion/dist/index.js 554 B
packages/empty-state/dist/esm/index.js 1.78 kB
packages/empty-state/dist/index.js 1.98 kB
packages/expandable-card/dist/esm/index.js 2.83 kB
packages/expandable-card/dist/index.js 3.02 kB
packages/form-field/dist/esm/index.js 4.27 kB
packages/form-field/dist/index.js 4.43 kB
packages/form-footer/dist/esm/index.js 1.77 kB
packages/form-footer/dist/index.js 1.98 kB
packages/guide-cue/dist/esm/index.js 4.3 kB
packages/guide-cue/dist/index.js 4.57 kB
packages/hooks/dist/esm/index.js 3.27 kB
packages/hooks/dist/index.js 3.41 kB
packages/icon-button/dist/esm/index.js 2.34 kB
packages/icon-button/dist/index.js 2.55 kB
packages/icon/dist/ActivityFeed.js 2.01 kB
packages/icon/dist/AddFile.js 1.78 kB
packages/icon/dist/AllProducts.js 1.86 kB
packages/icon/dist/Apps.js 1.46 kB
packages/icon/dist/Array.js 1.58 kB
packages/icon/dist/ArrowDown.js 1.7 kB
packages/icon/dist/ArrowLeft.js 1.71 kB
packages/icon/dist/ArrowRight.js 1.71 kB
packages/icon/dist/ArrowUp.js 1.7 kB
packages/icon/dist/Beaker.js 2.13 kB
packages/icon/dist/Bell.js 1.67 kB
packages/icon/dist/Biometric.js 2.22 kB
packages/icon/dist/Boolean.js 1.51 kB
packages/icon/dist/Building.js 1.65 kB
packages/icon/dist/Bulb.js 1.7 kB
packages/icon/dist/Calendar.js 1.66 kB
packages/icon/dist/Camera.js 1.75 kB
packages/icon/dist/Cap.js 1.86 kB
packages/icon/dist/CaretDown.js 1.53 kB
packages/icon/dist/CaretLeft.js 1.53 kB
packages/icon/dist/CaretRight.js 1.53 kB
packages/icon/dist/CaretUp.js 1.53 kB
packages/icon/dist/ChartFilled.js 1.63 kB
packages/icon/dist/Charts.js 1.6 kB
packages/icon/dist/Checkmark.js 1.67 kB
packages/icon/dist/CheckmarkWithCircle.js 1.73 kB
packages/icon/dist/ChevronDown.js 1.64 kB
packages/icon/dist/ChevronLeft.js 1.64 kB
packages/icon/dist/ChevronRight.js 1.65 kB
packages/icon/dist/ChevronUp.js 1.63 kB
packages/icon/dist/Clock.js 1.69 kB
packages/icon/dist/ClockWithArrow.js 1.96 kB
packages/icon/dist/Clone.js 1.56 kB
packages/icon/dist/Cloud.js 1.74 kB
packages/icon/dist/Code.js 1.93 kB
packages/icon/dist/CodeBlock.js 1.87 kB
packages/icon/dist/Colon.js 1.52 kB
packages/icon/dist/Connect.js 1.99 kB
packages/icon/dist/Copy.js 1.93 kB
packages/icon/dist/CreditCard.js 1.49 kB
packages/icon/dist/CurlyBraces.js 2.08 kB
packages/icon/dist/Cursor.js 1.62 kB
packages/icon/dist/Dashboard.js 1.63 kB
packages/icon/dist/Database.js 2.08 kB
packages/icon/dist/Diagram.js 1.7 kB
packages/icon/dist/Diagram2.js 1.71 kB
packages/icon/dist/Diagram3.js 1.69 kB
packages/icon/dist/Disconnect.js 1.92 kB
packages/icon/dist/Download.js 1.72 kB
packages/icon/dist/Drag.js 1.67 kB
packages/icon/dist/Edit.js 1.58 kB
packages/icon/dist/Ellipsis.js 1.56 kB
packages/icon/dist/Email.js 1.76 kB
packages/icon/dist/Eraser.js 1.83 kB
packages/icon/dist/Escalation.js 1.72 kB
packages/icon/dist/esm/ActivityFeed.js 1.78 kB
packages/icon/dist/esm/AddFile.js 1.55 kB
packages/icon/dist/esm/AllProducts.js 1.63 kB
packages/icon/dist/esm/Apps.js 1.24 kB
packages/icon/dist/esm/Array.js 1.35 kB
packages/icon/dist/esm/ArrowDown.js 1.47 kB
packages/icon/dist/esm/ArrowLeft.js 1.48 kB
packages/icon/dist/esm/ArrowRight.js 1.48 kB
packages/icon/dist/esm/ArrowUp.js 1.47 kB
packages/icon/dist/esm/Beaker.js 1.9 kB
packages/icon/dist/esm/Bell.js 1.44 kB
packages/icon/dist/esm/Biometric.js 2 kB
packages/icon/dist/esm/Boolean.js 1.29 kB
packages/icon/dist/esm/Building.js 1.43 kB
packages/icon/dist/esm/Bulb.js 1.47 kB
packages/icon/dist/esm/Calendar.js 1.43 kB
packages/icon/dist/esm/Camera.js 1.51 kB
packages/icon/dist/esm/Cap.js 1.63 kB
packages/icon/dist/esm/CaretDown.js 1.3 kB
packages/icon/dist/esm/CaretLeft.js 1.3 kB
packages/icon/dist/esm/CaretRight.js 1.3 kB
packages/icon/dist/esm/CaretUp.js 1.3 kB
packages/icon/dist/esm/ChartFilled.js 1.4 kB
packages/icon/dist/esm/Charts.js 1.38 kB
packages/icon/dist/esm/Checkmark.js 1.44 kB
packages/icon/dist/esm/CheckmarkWithCircle.js 1.5 kB
packages/icon/dist/esm/ChevronDown.js 1.41 kB
packages/icon/dist/esm/ChevronLeft.js 1.41 kB
packages/icon/dist/esm/ChevronRight.js 1.41 kB
packages/icon/dist/esm/ChevronUp.js 1.4 kB
packages/icon/dist/esm/Clock.js 1.46 kB
packages/icon/dist/esm/ClockWithArrow.js 1.73 kB
packages/icon/dist/esm/Clone.js 1.33 kB
packages/icon/dist/esm/Cloud.js 1.51 kB
packages/icon/dist/esm/Code.js 1.7 kB
packages/icon/dist/esm/CodeBlock.js 1.64 kB
packages/icon/dist/esm/Colon.js 1.29 kB
packages/icon/dist/esm/Connect.js 1.76 kB
packages/icon/dist/esm/Copy.js 1.69 kB
packages/icon/dist/esm/CreditCard.js 1.26 kB
packages/icon/dist/esm/CurlyBraces.js 1.86 kB
packages/icon/dist/esm/Cursor.js 1.39 kB
packages/icon/dist/esm/Dashboard.js 1.4 kB
packages/icon/dist/esm/Database.js 1.85 kB
packages/icon/dist/esm/Diagram.js 1.47 kB
packages/icon/dist/esm/Diagram2.js 1.48 kB
packages/icon/dist/esm/Diagram3.js 1.46 kB
packages/icon/dist/esm/Disconnect.js 1.69 kB
packages/icon/dist/esm/Download.js 1.49 kB
packages/icon/dist/esm/Drag.js 1.44 kB
packages/icon/dist/esm/Edit.js 1.35 kB
packages/icon/dist/esm/Ellipsis.js 1.33 kB
packages/icon/dist/esm/Email.js 1.53 kB
packages/icon/dist/esm/Eraser.js 1.6 kB
packages/icon/dist/esm/Escalation.js 1.49 kB
packages/icon/dist/esm/Export.js 1.6 kB
packages/icon/dist/esm/Favorite.js 1.56 kB
packages/icon/dist/esm/Federation.js 1.51 kB
packages/icon/dist/esm/File.js 1.38 kB
packages/icon/dist/esm/Filter.js 1.35 kB
packages/icon/dist/esm/Folder.js 1.27 kB
packages/icon/dist/esm/Format.js 1.69 kB
packages/icon/dist/esm/FullScreenEnter.js 1.52 kB
packages/icon/dist/esm/FullScreenExit.js 1.53 kB
packages/icon/dist/esm/Gauge.js 1.55 kB
packages/icon/dist/esm/GlobeAmericas.js 1.47 kB
packages/icon/dist/esm/GovernmentBuilding.js 1.51 kB
packages/icon/dist/esm/Hash.js 1.66 kB
packages/icon/dist/esm/Highlight.js 1.69 kB
packages/icon/dist/esm/Home.js 1.62 kB
packages/icon/dist/esm/HorizontalDrag.js 1.45 kB
packages/icon/dist/esm/Import.js 1.6 kB
packages/icon/dist/esm/ImportantWithCircle.js 1.37 kB
packages/icon/dist/esm/index.js 28.2 kB
packages/icon/dist/esm/InfoWithCircle.js 1.4 kB
packages/icon/dist/esm/InternalEmployee.js 1.69 kB
packages/icon/dist/esm/InviteUser.js 1.7 kB
packages/icon/dist/esm/Key.js 1.51 kB
packages/icon/dist/esm/Laptop.js 1.48 kB
packages/icon/dist/esm/LightningBolt.js 1.37 kB
packages/icon/dist/esm/Link.js 1.87 kB
packages/icon/dist/esm/List.js 1.52 kB
packages/icon/dist/esm/Lock.js 1.46 kB
packages/icon/dist/esm/LogIn.js 1.53 kB
packages/icon/dist/esm/LogOut.js 1.59 kB
packages/icon/dist/esm/MagnifyingGlass.js 1.44 kB
packages/icon/dist/esm/Megaphone.js 1.41 kB
packages/icon/dist/esm/Menu.js 1.33 kB
packages/icon/dist/esm/Minus.js 1.28 kB
packages/icon/dist/esm/Mobile.js 1.28 kB
packages/icon/dist/esm/Moon.js 1.45 kB
packages/icon/dist/esm/MultiDirectionArrow.js 1.49 kB
packages/icon/dist/esm/MultiLayers.js 2.43 kB
packages/icon/dist/esm/NavCollapse.js 1.5 kB
packages/icon/dist/esm/NavExpand.js 1.51 kB
packages/icon/dist/esm/NoFilter.js 1.5 kB
packages/icon/dist/esm/NotAllowed.js 1.39 kB
packages/icon/dist/esm/Note.js 1.42 kB
packages/icon/dist/esm/OpenNewTab.js 1.68 kB
packages/icon/dist/esm/Pause.js 1.33 kB
packages/icon/dist/esm/Person.js 1.48 kB
packages/icon/dist/esm/PersonGroup.js 1.69 kB
packages/icon/dist/esm/PersonWithLock.js 1.69 kB
packages/icon/dist/esm/Pin.js 1.43 kB
packages/icon/dist/esm/Play.js 1.32 kB
packages/icon/dist/esm/Plus.js 1.33 kB
packages/icon/dist/esm/PlusWithCircle.js 1.36 kB
packages/icon/dist/esm/Primary.js 1.39 kB
packages/icon/dist/esm/Project.js 1.42 kB
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.72 kB
packages/icon/dist/esm/Read.js 2.03 kB
packages/icon/dist/esm/Recommended.js 2.2 kB
packages/icon/dist/esm/Redo.js 1.66 kB
packages/icon/dist/esm/Refresh.js 1.73 kB
packages/icon/dist/esm/Relationship.js 1.43 kB
packages/icon/dist/esm/ReplicaSet.js 1.58 kB
packages/icon/dist/esm/Resize.js 1.41 kB
packages/icon/dist/esm/Return.js 1.49 kB
packages/icon/dist/esm/Save.js 1.92 kB
packages/icon/dist/esm/SearchIndex.js 2.06 kB
packages/icon/dist/esm/Secondary.js 1.61 kB
packages/icon/dist/esm/Serverless.js 1.56 kB
packages/icon/dist/esm/Settings.js 2 kB
packages/icon/dist/esm/ShardedCluster.js 1.94 kB
packages/icon/dist/esm/Shell.js 1.48 kB
packages/icon/dist/esm/SMS.js 1.44 kB
packages/icon/dist/esm/SortAscending.js 1.53 kB
packages/icon/dist/esm/SortDescending.js 1.52 kB
packages/icon/dist/esm/Sparkle.js 1.84 kB
packages/icon/dist/esm/SplitHorizontal.js 1.29 kB
packages/icon/dist/esm/SplitVertical.js 1.29 kB
packages/icon/dist/esm/Stitch.js 1.33 kB
packages/icon/dist/esm/Stop.js 1.19 kB
packages/icon/dist/esm/String.js 1.43 kB
packages/icon/dist/esm/Sun.js 1.65 kB
packages/icon/dist/esm/Support.js 1.52 kB
packages/icon/dist/esm/Sweep.js 1.55 kB
packages/icon/dist/esm/Table.js 1.32 kB
packages/icon/dist/esm/Tag.js 1.36 kB
packages/icon/dist/esm/ThumbsDown.js 1.64 kB
packages/icon/dist/esm/ThumbsUp.js 1.63 kB
packages/icon/dist/esm/TimeSeries.js 1.67 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.82 kB
packages/icon/dist/esm/Trash.js 1.35 kB
packages/icon/dist/esm/Undo.js 1.65 kB
packages/icon/dist/esm/University.js 1.84 kB
packages/icon/dist/esm/Unlock.js 1.53 kB
packages/icon/dist/esm/Unsorted.js 1.57 kB
packages/icon/dist/esm/UpDownCarets.js 1.42 kB
packages/icon/dist/esm/Upload.js 1.62 kB
packages/icon/dist/esm/VerticalEllipsis.js 1.35 kB
packages/icon/dist/esm/Visibility.js 1.65 kB
packages/icon/dist/esm/VisibilityOff.js 2.04 kB
packages/icon/dist/esm/Warning.js 1.42 kB
packages/icon/dist/esm/Wizard.js 1.75 kB
packages/icon/dist/esm/Wrench.js 1.75 kB
packages/icon/dist/esm/Write.js 2.03 kB
packages/icon/dist/esm/X.js 1.46 kB
packages/icon/dist/esm/XWithCircle.js 1.4 kB
packages/icon/dist/Export.js 1.84 kB
packages/icon/dist/Favorite.js 1.79 kB
packages/icon/dist/Federation.js 1.74 kB
packages/icon/dist/File.js 1.6 kB
packages/icon/dist/Filter.js 1.58 kB
packages/icon/dist/Folder.js 1.5 kB
packages/icon/dist/Format.js 1.92 kB
packages/icon/dist/FullScreenEnter.js 1.75 kB
packages/icon/dist/FullScreenExit.js 1.76 kB
packages/icon/dist/Gauge.js 1.78 kB
packages/icon/dist/GlobeAmericas.js 1.7 kB
packages/icon/dist/GovernmentBuilding.js 1.74 kB
packages/icon/dist/Hash.js 1.89 kB
packages/icon/dist/Highlight.js 1.93 kB
packages/icon/dist/Home.js 1.85 kB
packages/icon/dist/HorizontalDrag.js 1.68 kB
packages/icon/dist/Import.js 1.83 kB
packages/icon/dist/ImportantWithCircle.js 1.6 kB
packages/icon/dist/index.js 28.5 kB
packages/icon/dist/InfoWithCircle.js 1.63 kB
packages/icon/dist/InternalEmployee.js 1.92 kB
packages/icon/dist/InviteUser.js 1.93 kB
packages/icon/dist/Key.js 1.75 kB
packages/icon/dist/Laptop.js 1.71 kB
packages/icon/dist/LightningBolt.js 1.6 kB
packages/icon/dist/Link.js 2.09 kB
packages/icon/dist/List.js 1.75 kB
packages/icon/dist/Lock.js 1.69 kB
packages/icon/dist/LogIn.js 1.76 kB
packages/icon/dist/LogOut.js 1.82 kB
packages/icon/dist/MagnifyingGlass.js 1.68 kB
packages/icon/dist/Megaphone.js 1.65 kB
packages/icon/dist/Menu.js 1.55 kB
packages/icon/dist/Minus.js 1.51 kB
packages/icon/dist/Mobile.js 1.51 kB
packages/icon/dist/Moon.js 1.68 kB
packages/icon/dist/MultiDirectionArrow.js 1.72 kB
packages/icon/dist/MultiLayers.js 2.66 kB
packages/icon/dist/NavCollapse.js 1.73 kB
packages/icon/dist/NavExpand.js 1.74 kB
packages/icon/dist/NoFilter.js 1.73 kB
packages/icon/dist/NotAllowed.js 1.62 kB
packages/icon/dist/Note.js 1.65 kB
packages/icon/dist/OpenNewTab.js 1.92 kB
packages/icon/dist/Pause.js 1.55 kB
packages/icon/dist/Person.js 1.71 kB
packages/icon/dist/PersonGroup.js 1.91 kB
packages/icon/dist/PersonWithLock.js 1.92 kB
packages/icon/dist/Pin.js 1.66 kB
packages/icon/dist/Play.js 1.54 kB
packages/icon/dist/Plus.js 1.56 kB
packages/icon/dist/PlusWithCircle.js 1.59 kB
packages/icon/dist/Primary.js 1.61 kB
packages/icon/dist/Project.js 1.65 kB
packages/icon/dist/QuestionMarkWithCircle.js 1.95 kB
packages/icon/dist/Read.js 2.25 kB
packages/icon/dist/Recommended.js 2.43 kB
packages/icon/dist/Redo.js 1.88 kB
packages/icon/dist/Refresh.js 1.95 kB
packages/icon/dist/Relationship.js 1.65 kB
packages/icon/dist/ReplicaSet.js 1.81 kB
packages/icon/dist/Resize.js 1.64 kB
packages/icon/dist/Return.js 1.72 kB
packages/icon/dist/Save.js 2.15 kB
packages/icon/dist/SearchIndex.js 2.28 kB
packages/icon/dist/Secondary.js 1.84 kB
packages/icon/dist/Serverless.js 1.8 kB
packages/icon/dist/Settings.js 2.23 kB
packages/icon/dist/ShardedCluster.js 2.17 kB
packages/icon/dist/Shell.js 1.71 kB
packages/icon/dist/SMS.js 1.67 kB
packages/icon/dist/SortAscending.js 1.76 kB
packages/icon/dist/SortDescending.js 1.75 kB
packages/icon/dist/Sparkle.js 2.07 kB
packages/icon/dist/SplitHorizontal.js 1.52 kB
packages/icon/dist/SplitVertical.js 1.52 kB
packages/icon/dist/Stitch.js 1.56 kB
packages/icon/dist/Stop.js 1.41 kB
packages/icon/dist/String.js 1.66 kB
packages/icon/dist/Sun.js 1.88 kB
packages/icon/dist/Support.js 1.76 kB
packages/icon/dist/Sweep.js 1.78 kB
packages/icon/dist/Table.js 1.55 kB
packages/icon/dist/Tag.js 1.58 kB
packages/icon/dist/ThumbsDown.js 1.87 kB
packages/icon/dist/ThumbsUp.js 1.86 kB
packages/icon/dist/TimeSeries.js 1.9 kB
packages/icon/dist/TimeSeriesCollection.js 2.05 kB
packages/icon/dist/Trash.js 1.58 kB
packages/icon/dist/Undo.js 1.88 kB
packages/icon/dist/University.js 2.07 kB
packages/icon/dist/Unlock.js 1.77 kB
packages/icon/dist/Unsorted.js 1.8 kB
packages/icon/dist/UpDownCarets.js 1.65 kB
packages/icon/dist/Upload.js 1.85 kB
packages/icon/dist/VerticalEllipsis.js 1.58 kB
packages/icon/dist/Visibility.js 1.88 kB
packages/icon/dist/VisibilityOff.js 2.27 kB
packages/icon/dist/Warning.js 1.65 kB
packages/icon/dist/Wizard.js 1.98 kB
packages/icon/dist/Wrench.js 1.98 kB
packages/icon/dist/Write.js 2.26 kB
packages/icon/dist/X.js 1.69 kB
packages/icon/dist/XWithCircle.js 1.63 kB
packages/info-sprinkle/dist/esm/index.js 1.39 kB
packages/info-sprinkle/dist/index.js 1.59 kB
packages/inline-definition/dist/esm/index.js 1.2 kB
packages/inline-definition/dist/index.js 1.38 kB
packages/input-option/dist/esm/index.js 2.2 kB
packages/input-option/dist/index.js 2.36 kB
packages/leafygreen-provider/dist/esm/index.js 1.6 kB
packages/leafygreen-provider/dist/index.js 1.79 kB
packages/lib/dist/esm/index.js 2.34 kB
packages/lib/dist/index.js 2.5 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/index.js 3.59 kB
packages/logo/dist/esm/index.js 40.2 kB
packages/logo/dist/index.js 40.4 kB
packages/marketing-modal/dist/esm/index.js 3.54 kB
packages/marketing-modal/dist/index.js 3.77 kB
packages/menu/dist/esm/index.js 7.72 kB
packages/menu/dist/index.js 8.02 kB
packages/modal/dist/esm/index.js 3.19 kB
packages/modal/dist/index.js 3.42 kB
packages/number-input/dist/esm/index.js 5.92 kB
packages/number-input/dist/index.js 6.12 kB
packages/pagination/dist/esm/index.js 1.74 kB
packages/pagination/dist/index.js 1.97 kB
packages/palette/dist/esm/index.js 392 B
packages/palette/dist/index.js 546 B
packages/password-input/dist/esm/index.js 4.69 kB
packages/password-input/dist/index.js 4.92 kB
packages/pipeline/dist/esm/index.js 7.79 kB
packages/pipeline/dist/index.js 8.07 kB
packages/polymorphic/dist/esm/index.js 701 B
packages/polymorphic/dist/index.js 841 B
packages/popover/dist/esm/index.js 5.18 kB
packages/popover/dist/index.js 5.34 kB
packages/portal/dist/esm/index.js 983 B
packages/portal/dist/index.js 1.16 kB
packages/radio-box-group/dist/esm/index.js 2.96 kB
packages/radio-box-group/dist/index.js 3.12 kB
packages/radio-group/dist/esm/index.js 3.34 kB
packages/radio-group/dist/index.js 3.5 kB
packages/ripple/dist/esm/index.js 962 B
packages/ripple/dist/index.js 1.06 kB
packages/search-input/dist/esm/index.js 6.14 kB
packages/search-input/dist/index.js 6.37 kB
packages/segmented-control/dist/esm/index.js 5.46 kB
packages/segmented-control/dist/index.js 5.61 kB
packages/select/dist/esm/index.js 9.21 kB
packages/select/dist/index.js 9.41 kB
packages/side-nav/dist/esm/index.js 7.53 kB
packages/side-nav/dist/index.js 7.79 kB
packages/skeleton-loader/dist/esm/index.js 3.03 kB
packages/skeleton-loader/dist/index.js 3.21 kB
packages/split-button/dist/esm/index.js 3.5 kB
packages/split-button/dist/index.js 3.68 kB
packages/stepper/dist/esm/index.js 2.96 kB
packages/stepper/dist/index.js 3.21 kB
packages/table/dist/esm/index.js 13.4 kB
packages/table/dist/index.js 13.9 kB
packages/testing-lib/dist/esm/index.js 4.13 kB
packages/testing-lib/dist/index.js 4.37 kB
packages/text-area/dist/esm/index.js 2.43 kB
packages/text-area/dist/index.js 2.6 kB
packages/text-input/dist/esm/index.js 2.8 kB
packages/text-input/dist/index.js 2.98 kB
packages/toast/dist/esm/index.js 8.16 kB
packages/toast/dist/index.js 8.43 kB
packages/toggle/dist/esm/index.js 3.1 kB
packages/toggle/dist/index.js 3.31 kB
packages/tokens/dist/esm/index.js 1.83 kB
packages/tokens/dist/index.js 1.91 kB
packages/tooltip/dist/esm/index.js 4.44 kB
packages/tooltip/dist/index.js 4.73 kB
packages/typography/dist/esm/index.js 5.51 kB
packages/typography/dist/index.js 5.67 kB
tools/build/dist/esm/index.js 5.72 kB
tools/build/dist/index.js 5.95 kB
tools/cli/dist/esm/index.js 1.63 kB
tools/cli/dist/index.js 1.78 kB
tools/create/dist/esm/index.js 2.88 kB
tools/create/dist/index.js 3.05 kB
tools/install/dist/esm/index.js 897 B
tools/install/dist/index.js 1.04 kB
tools/link/dist/esm/index.js 5.06 kB
tools/link/dist/index.js 5.17 kB
tools/lint/dist/esm/index.js 1.03 kB
tools/lint/dist/index.js 1.17 kB
tools/meta/dist/esm/index.js 1.48 kB
tools/meta/dist/index.js 1.61 kB
tools/slackbot/dist/esm/index.js 6.12 kB
tools/slackbot/dist/index.js 6.28 kB
tools/storybook-addon/dist/esm/index.js 4.98 kB
tools/storybook-addon/dist/esm/main.js 4.94 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.61 kB
tools/storybook-addon/dist/index.js 5.09 kB
tools/storybook-addon/dist/main.js 5.05 kB
tools/storybook-addon/dist/manager.js 686 B
tools/storybook-addon/dist/preview.js 1.69 kB
tools/storybook-decorators/dist/esm/index.js 3.3 kB
tools/storybook-decorators/dist/index.js 3.56 kB
tools/storybook-utils/dist/esm/index.js 1.06 kB
tools/storybook-utils/dist/index.js 1.22 kB
tools/test-harnesses/dist/esm/index.js 1.78 kB
tools/test-harnesses/dist/index.js 1.91 kB
tools/test/dist/esm/index.js 1.65 kB
tools/test/dist/index.js 1.78 kB
tools/update/dist/esm/index.js 730 B
tools/update/dist/index.js 895 B
tools/validate/dist/esm/index.js 6.78 kB
tools/validate/dist/index.js 6.99 kB

compressed-size-action

@stephl3 stephl3 force-pushed the steph/tabs-no-portal branch 4 times, most recently from 435225d to f24a640 Compare May 28, 2024 16:33
Comment on lines 142 to 143
tabTitleElements[controlledSelected].focus();
}, [controlledSelected, isControlled, tabTitleElements]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

This will technically fire if/when tabTitleElements or isControlled changes.

I can imagine a case where some external event causes tabs to be added/removed, which would trigger this effect

Copy link
Collaborator

Choose a reason for hiding this comment

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

If I comment out this useEffect locally, changing selected in Storybook does not update the focus (only the green "selected" indicator)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@TheSonOfThomp to avoid having the effect run based off external events when tabs are added/removed, I opted to leave out the useEffect. When testing on the Controlled story instance, focus seems to update as intended. Let me know if you think otherwise, and I can add it back in

@TheSonOfThomp
Copy link
Collaborator

Noticed that setting the controlled state to a disabled index still highlights the tab
Screenshot 2024-05-28 at 3 55 21 PM

@stephl3 stephl3 force-pushed the steph/tabs-no-portal branch 2 times, most recently from 70208b7 to eb5e49c Compare May 28, 2024 20:55
Comment on lines +119 to +120
selected={selectedTab}
setSelected={setSelectedTab}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Since we're controlling this value, can we remove it from the SB "controls"
Screenshot 2024-05-30 at 1 41 00 PM

@stephl3 stephl3 force-pushed the integration/tabs-refactor branch from 598f711 to 9aeec87 Compare May 30, 2024 17:42
Copy link
Collaborator

@TheSonOfThomp TheSonOfThomp left a comment

Choose a reason for hiding this comment

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

I would restructure the TabPanel component to remove the clone call, but what you have here works! Left a few nits, but overall LGTM

packages/tabs/src/TabPanel/TabPanel.tsx Show resolved Hide resolved
packages/tabs/src/Tabs/Tabs.tsx Show resolved Hide resolved
@@ -0,0 +1,12 @@
export function getActiveAndEnabledIndices(
Copy link
Collaborator

Choose a reason for hiding this comment

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

imo splitting this into separate getActive... and getEnabled... would be a cleaner DX

If performance is a concern, we can memoize the getEnabled... function so we're not filtering/mapping twice, an leverage it within getActive...

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

can address in a follow-up

Comment on lines +114 to +116
(e.key === keyMap.ArrowRight
? activeIndex + 1
: activeIndex - 1 + numberOfEnabledTabs) % numberOfEnabledTabs
Copy link
Collaborator

Choose a reason for hiding this comment

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

this is probably just a prettier thing, but this was hard for me to parse. I read this as only the ArrowLeft case would perform the "mod count" operation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

can address and make more explicit in a follow-up

@stephl3 stephl3 merged commit 248aeca into integration/tabs-refactor May 30, 2024
11 checks passed
@stephl3 stephl3 deleted the steph/tabs-no-portal branch May 30, 2024 19:24
stephl3 added a commit that referenced this pull request May 31, 2024
* Add @leafygreen-ui/descendants dependency

* Use descendants pattern in tabs package

* Remove Portal dependency from tabs package

* Reorg descendant contexts

* Rename tabs event handlers

* Rewrite effect

* Refactor

* Controlled story and consolidate controlled tabs tests

* Clean up Controlled story
github-merge-queue bot pushed a commit that referenced this pull request Jun 4, 2024
* Add and export class names (#2335)

* LG-3270: fixed tab title height (#2351)

* LG-4251: remove portal and use descendants pattern in tabs (#2348)

* Add @leafygreen-ui/descendants dependency

* Use descendants pattern in tabs package

* Remove Portal dependency from tabs package

* Reorg descendant contexts

* Rename tabs event handlers

* Rewrite effect

* Refactor

* Controlled story and consolidate controlled tabs tests

* Clean up Controlled story

* LG-2728: migrate from Box to Polymorphic in tabs package (#2359)

* LG-2728: migrate from Box to Polymorphic

* Address feedback

* LG-4147: forceRenderAllTabPanels prop with test util updates (#2357)

* Add expect statement to test spec

* Refactor TabTitle props and TabPanel

* Refactor handleKeyDown and util

* Changeset

* Fix type

* Address feedback
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.

2 participants