Skip to content

Conversation

TheSonOfThomp
Copy link
Collaborator

@TheSonOfThomp TheSonOfThomp commented Sep 30, 2025

✍️ Proposed changes

'@leafygreen-ui/typography': minor

Adds TextNode component.

Wraps a string in the provided as component,
or renders the provided ReactNode.

Useful when rendering children props that can be any react node

<TextNode as={h1}>Hello!</TextNode> 
// Renders: <h1>Hello!</h1>
<TextNode>
  <h2>Hello!</h2>
</TextNode> 
// Renders: <h2>Hello!</h2>

@TheSonOfThomp TheSonOfThomp requested a review from a team as a code owner September 30, 2025 21:09
@TheSonOfThomp TheSonOfThomp requested review from Copilot and stephl3 and removed request for a team September 30, 2025 21:09
Copy link

changeset-bot bot commented Sep 30, 2025

🦋 Changeset detected

Latest commit: 449e6da

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

This PR includes changesets to release 65 packages
Name Type
@leafygreen-ui/typography Minor
@lg-charts/chart-card Patch
@lg-charts/core Patch
@lg-chat/chat-disclaimer Patch
@lg-chat/fixed-chat-window Patch
@lg-chat/input-bar Patch
@lg-chat/lg-markdown Patch
@lg-chat/message-feed Patch
@lg-chat/message-feedback Patch
@lg-chat/message-prompts Patch
@lg-chat/message-rating Patch
@lg-chat/message Patch
@lg-chat/rich-links Patch
@lg-chat/suggestions Patch
@lg-chat/title-bar Patch
@leafygreen-ui/banner Patch
@leafygreen-ui/callout Patch
@leafygreen-ui/checkbox Patch
@leafygreen-ui/code-editor Patch
@leafygreen-ui/code Patch
@leafygreen-ui/combobox Patch
@leafygreen-ui/confirmation-modal Patch
@leafygreen-ui/copyable Patch
@leafygreen-ui/date-picker Patch
@leafygreen-ui/drawer Patch
@leafygreen-ui/empty-state Patch
@leafygreen-ui/expandable-card Patch
@leafygreen-ui/form-field Patch
@leafygreen-ui/guide-cue Patch
@leafygreen-ui/inline-definition Patch
@leafygreen-ui/input-option Patch
@leafygreen-ui/loading-indicator Patch
@leafygreen-ui/marketing-modal Patch
@leafygreen-ui/menu Patch
@leafygreen-ui/number-input Patch
@leafygreen-ui/ordered-list Patch
@leafygreen-ui/pagination Patch
@leafygreen-ui/password-input Patch
@leafygreen-ui/progress-bar Patch
@leafygreen-ui/radio-group Patch
@leafygreen-ui/search-input Patch
@leafygreen-ui/section-nav Patch
@leafygreen-ui/segmented-control Patch
@leafygreen-ui/select Patch
@leafygreen-ui/side-nav Patch
@leafygreen-ui/skeleton-loader Patch
@leafygreen-ui/stepper Patch
@leafygreen-ui/table Patch
@leafygreen-ui/tabs Patch
@leafygreen-ui/text-area Patch
@leafygreen-ui/text-input Patch
@leafygreen-ui/toast Patch
@leafygreen-ui/toolbar Patch
@leafygreen-ui/tooltip Patch
@lg-tools/storybook-addon Patch
@lg-charts/drag-provider Patch
@lg-charts/legend Patch
@lg-chat/chat-window Patch
@lg-chat/message-actions Patch
@leafygreen-ui/form-footer Patch
@lg-tools/storybook-decorators Patch
@leafygreen-ui/split-button Patch
@leafygreen-ui/info-sprinkle Patch
@leafygreen-ui/pipeline Patch
@leafygreen-ui/chip 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

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces a new TextNode component to the typography package that conditionally wraps string/number children in a specified HTML element or React component, while passing through React nodes unchanged.

Key changes:

  • Creates a new utility component for handling mixed string/ReactNode children
  • Adds comprehensive test coverage for various input types and edge cases
  • Documents the component's behavior through changeset and inline comments

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
packages/typography/src/index.ts Exports the new TextNode component
packages/typography/src/TextNode/TextNode.tsx Implements the TextNode component with conditional rendering logic
packages/typography/src/TextNode/TestNode.spec.tsx Comprehensive test suite covering string, ReactNode, and edge cases
.changeset/typography-text-node.md Documents the new component for release notes

@@ -0,0 +1,128 @@
import React, { PropsWithChildren } from 'react';
Copy link
Preview

Copilot AI Sep 30, 2025

Choose a reason for hiding this comment

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

The filename 'TestNode.spec.tsx' contains a typo. It should be 'TextNode.spec.tsx' to match the component name.

Copilot uses AI. Check for mistakes.

Useful when rendering `children` props that can be any react node

```tsx
<TextNode as={h1}>Hello!</TextNode>
Copy link
Preview

Copilot AI Sep 30, 2025

Choose a reason for hiding this comment

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

The component reference 'h1' should be a string 'h1' for HTML elements. This will cause a runtime error as h1 is not defined.

Suggested change
<TextNode as={h1}>Hello!</TextNode>
<TextNode as="h1">Hello!</TextNode>

Copilot uses AI. Check for mistakes.

Copy link
Contributor

Size Change: -7.72 kB (-0.48%)

Total Size: 1.59 MB

Filename Size Change
packages/icon/dist/umd/index.js 35.7 kB +186 B (+0.52%)
packages/typography/dist/esm/index.js 5.85 kB +43 B (+0.74%)
packages/typography/dist/umd/index.js 6 kB +36 B (+0.6%)
packages/vertical-stepper/dist/esm/index.js 0 B -3.19 kB (removed) 🏆
packages/vertical-stepper/dist/umd/index.js 0 B -3.39 kB (removed) 🏆
tools/eslint-plugin/dist/esm/index.js 0 B -629 B (removed) 🏆
tools/eslint-plugin/dist/umd/index.js 0 B -733 B (removed) 🏆
tools/install/dist/esm/index.js 2.18 kB -19 B (-0.86%)
tools/install/dist/umd/index.js 2.34 kB -22 B (-0.93%)
ℹ️ View Unchanged
Filename Size
charts/chart-card/dist/esm/index.js 2.78 kB
charts/chart-card/dist/umd/index.js 2.95 kB
charts/colors/dist/esm/index.js 530 B
charts/colors/dist/umd/index.js 657 B
charts/core/dist/esm/index.js 16.1 kB
charts/core/dist/umd/index.js 16.4 kB
charts/drag-provider/dist/esm/index.js 1.37 kB
charts/drag-provider/dist/umd/index.js 1.49 kB
charts/legend/dist/esm/index.js 1.52 kB
charts/legend/dist/umd/index.js 1.69 kB
charts/series-provider/dist/esm/index.js 1.28 kB
charts/series-provider/dist/umd/index.js 1.41 kB
chat/avatar/dist/esm/index.js 1.36 kB
chat/avatar/dist/umd/index.js 1.53 kB
chat/chat-disclaimer/dist/esm/index.js 905 B
chat/chat-disclaimer/dist/umd/index.js 1.07 kB
chat/chat-window/dist/esm/index.js 1.69 kB
chat/chat-window/dist/umd/index.js 1.86 kB
chat/fixed-chat-window/dist/esm/index.js 2.4 kB
chat/fixed-chat-window/dist/umd/index.js 2.59 kB
chat/input-bar/dist/esm/index.js 7.74 kB
chat/input-bar/dist/umd/index.js 7.98 kB
chat/leafygreen-chat-provider/dist/esm/index.js 957 B
chat/leafygreen-chat-provider/dist/umd/index.js 1.11 kB
chat/lg-markdown/dist/esm/index.js 2.19 kB
chat/lg-markdown/dist/umd/index.js 2.33 kB
chat/message-actions/dist/esm/index.js 3.8 kB
chat/message-actions/dist/umd/index.js 4 kB
chat/message-feed/dist/esm/index.js 2.8 kB
chat/message-feed/dist/umd/index.js 3.03 kB
chat/message-feedback/dist/esm/index.js 4.5 kB
chat/message-feedback/dist/umd/index.js 4.72 kB
chat/message-prompts/dist/esm/index.js 1.78 kB
chat/message-prompts/dist/umd/index.js 1.93 kB
chat/message-rating/dist/esm/index.js 2.58 kB
chat/message-rating/dist/umd/index.js 2.77 kB
chat/message/dist/esm/index.js 8.24 kB
chat/message/dist/umd/index.js 8.52 kB
chat/rich-links/dist/esm/index.js 2.38 kB
chat/rich-links/dist/umd/index.js 2.58 kB
chat/suggestions/dist/esm/index.js 1.65 kB
chat/suggestions/dist/esm/testing/index.js 55 B
chat/suggestions/dist/umd/index.js 1.85 kB
chat/suggestions/dist/umd/testing/index.js 113 B
chat/title-bar/dist/esm/index.js 1.38 kB
chat/title-bar/dist/umd/index.js 1.6 kB
packages/a11y/dist/esm/index.js 1.71 kB
packages/a11y/dist/umd/index.js 1.83 kB
packages/avatar/dist/esm/index.js 3.4 kB
packages/avatar/dist/umd/index.js 3.58 kB
packages/badge/dist/esm/index.js 1.47 kB
packages/badge/dist/umd/index.js 1.66 kB
packages/banner/dist/esm/index.js 3.19 kB
packages/banner/dist/umd/index.js 3.5 kB
packages/box/dist/esm/index.js 489 B
packages/box/dist/umd/index.js 633 B
packages/button/dist/esm/constants.js 121 B
packages/button/dist/esm/index.js 4.8 kB
packages/button/dist/esm/testing/index.js 321 B
packages/button/dist/umd/constants.js 262 B
packages/button/dist/umd/index.js 4.99 kB
packages/button/dist/umd/testing/index.js 443 B
packages/callout/dist/esm/index.js 1.55 kB
packages/callout/dist/umd/index.js 1.73 kB
packages/card/dist/esm/index.js 1.52 kB
packages/card/dist/umd/index.js 1.71 kB
packages/checkbox/dist/esm/index.js 4.27 kB
packages/checkbox/dist/umd/index.js 4.47 kB
packages/chip/dist/esm/index.js 3.21 kB
packages/chip/dist/umd/index.js 3.42 kB
packages/code-editor/dist/esm/index.js 15.5 kB
packages/code-editor/dist/esm/testing/index.js 4.2 kB
packages/code-editor/dist/umd/index.js 15.7 kB
packages/code-editor/dist/umd/testing/index.js 4.34 kB
packages/code/dist/esm/index.js 10.6 kB
packages/code/dist/esm/testing/index.js 11.4 kB
packages/code/dist/umd/index.js 11.2 kB
packages/code/dist/umd/testing/index.js 12.1 kB
packages/combobox/dist/esm/index.js 11.5 kB
packages/combobox/dist/umd/index.js 11.8 kB
packages/confirmation-modal/dist/esm/index.js 2.61 kB
packages/confirmation-modal/dist/umd/index.js 2.84 kB
packages/context-drawer/dist/esm/index.js 3.12 kB
packages/context-drawer/dist/esm/testing/index.js 3.52 kB
packages/context-drawer/dist/umd/index.js 3.29 kB
packages/context-drawer/dist/umd/testing/index.js 3.68 kB
packages/copyable/dist/esm/index.js 2.77 kB
packages/copyable/dist/umd/index.js 2.99 kB
packages/date-picker/dist/esm/index.js 13.6 kB
packages/date-picker/dist/umd/index.js 14 kB
packages/date-utils/dist/esm/index.js 2.7 kB
packages/date-utils/dist/esm/testing/index.js 1.35 kB
packages/date-utils/dist/umd/index.js 2.8 kB
packages/date-utils/dist/umd/testing/index.js 1.49 kB
packages/descendants/dist/esm/index.js 2.81 kB
packages/descendants/dist/umd/index.js 2.93 kB
packages/drawer/dist/esm/index.js 7.94 kB
packages/drawer/dist/esm/testing/index.js 490 B
packages/drawer/dist/umd/index.js 8.13 kB
packages/drawer/dist/umd/testing/index.js 610 B
packages/emotion/dist/esm/index.js 357 B
packages/emotion/dist/umd/index.js 571 B
packages/empty-state/dist/esm/index.js 1.75 kB
packages/empty-state/dist/umd/index.js 1.94 kB
packages/expandable-card/dist/esm/index.js 2.95 kB
packages/expandable-card/dist/esm/testing/index.js 3.47 kB
packages/expandable-card/dist/umd/index.js 3.16 kB
packages/expandable-card/dist/umd/testing/index.js 3.68 kB
packages/form-field/dist/esm/index.js 4.37 kB
packages/form-field/dist/umd/index.js 4.53 kB
packages/form-footer/dist/esm/index.js 1.68 kB
packages/form-footer/dist/umd/index.js 1.91 kB
packages/gallery-indicator/dist/esm/index.js 1.39 kB
packages/gallery-indicator/dist/esm/testing/index.js 351 B
packages/gallery-indicator/dist/umd/index.js 1.55 kB
packages/gallery-indicator/dist/umd/testing/index.js 481 B
packages/guide-cue/dist/esm/index.js 5.17 kB
packages/guide-cue/dist/umd/index.js 5.38 kB
packages/hooks/dist/esm/index.js 3.54 kB
packages/hooks/dist/umd/index.js 3.67 kB
packages/icon-button/dist/esm/index.js 2.27 kB
packages/icon-button/dist/umd/index.js 2.49 kB
packages/icon/dist/esm/ActivityFeed.js 1.11 kB
packages/icon/dist/esm/AddFile.js 903 B
packages/icon/dist/esm/AIModel.js 772 B
packages/icon/dist/esm/AllProducts.js 995 B
packages/icon/dist/esm/AnalyticsNode.js 762 B
packages/icon/dist/esm/Apps.js 604 B
packages/icon/dist/esm/Array.js 718 B
packages/icon/dist/esm/ArrowDown.js 828 B
packages/icon/dist/esm/ArrowLeft.js 833 B
packages/icon/dist/esm/ArrowRight.js 828 B
packages/icon/dist/esm/ArrowUp.js 828 B
packages/icon/dist/esm/Award.js 1.24 kB
packages/icon/dist/esm/Beaker.js 1.24 kB
packages/icon/dist/esm/Bell.js 797 B
packages/icon/dist/esm/Biometric.js 1.33 kB
packages/icon/dist/esm/Boolean.js 648 B
packages/icon/dist/esm/Building.js 793 B
packages/icon/dist/esm/Bulb.js 828 B
packages/icon/dist/esm/Calendar.js 794 B
packages/icon/dist/esm/Camera.js 874 B
packages/icon/dist/esm/Cap.js 976 B
packages/icon/dist/esm/CaretDown.js 665 B
packages/icon/dist/esm/CaretLeft.js 662 B
packages/icon/dist/esm/CaretRight.js 657 B
packages/icon/dist/esm/CaretUp.js 664 B
packages/icon/dist/esm/ChartFilled.js 761 B
packages/icon/dist/esm/Charts.js 745 B
packages/icon/dist/esm/Checkmark.js 789 B
packages/icon/dist/esm/CheckmarkWithCircle.js 851 B
packages/icon/dist/esm/ChevronDown.js 763 B
packages/icon/dist/esm/ChevronLeft.js 763 B
packages/icon/dist/esm/ChevronRight.js 772 B
packages/icon/dist/esm/ChevronUp.js 754 B
packages/icon/dist/esm/Circle.js 545 B
packages/icon/dist/esm/Clock.js 816 B
packages/icon/dist/esm/ClockWithArrow.js 1.06 kB
packages/icon/dist/esm/Clone.js 700 B
packages/icon/dist/esm/Cloud.js 861 B
packages/icon/dist/esm/Code.js 1.05 kB
packages/icon/dist/esm/CodeBlock.js 997 B
packages/icon/dist/esm/Coin.js 1.1 kB
packages/icon/dist/esm/Colon.js 654 B
packages/icon/dist/esm/Config.js 946 B
packages/icon/dist/esm/Connect.js 1.09 kB
packages/icon/dist/esm/Copy.js 1.04 kB
packages/icon/dist/esm/CreditCard.js 626 B
packages/icon/dist/esm/CurlyBraces.js 1.2 kB
packages/icon/dist/esm/Cursor.js 747 B
packages/icon/dist/esm/Dashboard.js 767 B
packages/icon/dist/esm/Database.js 1.19 kB
packages/icon/dist/esm/Diagram.js 840 B
packages/icon/dist/esm/Diagram2.js 845 B
packages/icon/dist/esm/Diagram3.js 824 B
packages/icon/dist/esm/Disconnect.js 1.04 kB
packages/icon/dist/esm/Download.js 962 B
packages/icon/dist/esm/Drag.js 808 B
packages/icon/dist/esm/Edit.js 707 B
packages/icon/dist/esm/Ellipsis.js 699 B
packages/icon/dist/esm/Email.js 884 B
packages/icon/dist/esm/EmptyDatabase.js 3.36 kB
packages/icon/dist/esm/EmptyFolder.js 1.27 kB
packages/icon/dist/esm/Eraser.js 947 B
packages/icon/dist/esm/Escalation.js 846 B
packages/icon/dist/esm/Export.js 958 B
packages/icon/dist/esm/Favorite.js 907 B
packages/icon/dist/esm/Federation.js 1.21 kB
packages/icon/dist/esm/File.js 732 B
packages/icon/dist/esm/Filter.js 719 B
packages/icon/dist/esm/Folder.js 637 B
packages/icon/dist/esm/Format.js 1.04 kB
packages/icon/dist/esm/FullScreenEnter.js 884 B
packages/icon/dist/esm/FullScreenExit.js 890 B
packages/icon/dist/esm/Function.js 1.85 kB
packages/icon/dist/esm/Gauge.js 899 B
packages/icon/dist/esm/GlobeAmericas.js 831 B
packages/icon/dist/esm/glyphCommon-D-w_icbF.js 814 B
packages/icon/dist/esm/GovernmentBuilding.js 871 B
packages/icon/dist/esm/Guide.js 1.16 kB
packages/icon/dist/esm/Hash.js 1.01 kB
packages/icon/dist/esm/HiddenSecondaryNode.js 2.24 kB
packages/icon/dist/esm/Highlight.js 1.04 kB
packages/icon/dist/esm/Home.js 970 B
packages/icon/dist/esm/HorizontalDrag.js 816 B
packages/icon/dist/esm/Import.js 951 B
packages/icon/dist/esm/ImportantWithCircle.js 735 B
packages/icon/dist/esm/index.js 35.2 kB
packages/icon/dist/esm/InfoWithCircle.js 765 B
packages/icon/dist/esm/InternalEmployee.js 1.03 kB
packages/icon/dist/esm/InviteUser.js 1.05 kB
packages/icon/dist/esm/Key.js 866 B
packages/icon/dist/esm/Laptop.js 849 B
packages/icon/dist/esm/LightningBolt.js 729 B
packages/icon/dist/esm/Link.js 1.19 kB
packages/icon/dist/esm/List.js 875 B
packages/icon/dist/esm/Lock.js 818 B
packages/icon/dist/esm/LogIn.js 889 B
packages/icon/dist/esm/LogOut.js 946 B
packages/icon/dist/esm/MagnifyingGlass.js 798 B
packages/icon/dist/esm/Megaphone.js 771 B
packages/icon/dist/esm/Menu.js 690 B
packages/icon/dist/esm/Minus.js 641 B
packages/icon/dist/esm/Mobile.js 641 B
packages/icon/dist/esm/Moon.js 808 B
packages/icon/dist/esm/MultiDirectionArrow.js 844 B
packages/icon/dist/esm/MultiLayers.js 1.77 kB
packages/icon/dist/esm/NavCollapse.js 864 B
packages/icon/dist/esm/NavExpand.js 872 B
packages/icon/dist/esm/NoFilter.js 848 B
packages/icon/dist/esm/NotAllowed.js 749 B
packages/icon/dist/esm/Note.js 783 B
packages/icon/dist/esm/NumberedList.js 1.63 kB
packages/icon/dist/esm/OpenNewTab.js 1.03 kB
packages/icon/dist/esm/OutlineFavorite.js 1.17 kB
packages/icon/dist/esm/Package.js 1.02 kB
packages/icon/dist/esm/Pause.js 689 B
packages/icon/dist/esm/Pending.js 672 B
packages/icon/dist/esm/Person.js 845 B
packages/icon/dist/esm/PersonGroup.js 1.04 kB
packages/icon/dist/esm/PersonWithLock.js 1.04 kB
packages/icon/dist/esm/Pin.js 792 B
packages/icon/dist/esm/Play.js 675 B
packages/icon/dist/esm/Plus.js 698 B
packages/icon/dist/esm/PlusWithCircle.js 728 B
packages/icon/dist/esm/Primary.js 745 B
packages/icon/dist/esm/Project.js 784 B
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.07 kB
packages/icon/dist/esm/Read.js 1.35 kB
packages/icon/dist/esm/Recommended.js 1.52 kB
packages/icon/dist/esm/Redo.js 1 kB
packages/icon/dist/esm/Refresh.js 1.07 kB
packages/icon/dist/esm/Relationship.js 791 B
packages/icon/dist/esm/ReplicaSet.js 936 B
packages/icon/dist/esm/Resize.js 764 B
packages/icon/dist/esm/Resource.js 1.07 kB
packages/icon/dist/esm/Return.js 849 B
packages/icon/dist/esm/Revert.js 881 B
packages/icon/dist/esm/Router.js 1.53 kB
packages/icon/dist/esm/Save.js 1.26 kB
packages/icon/dist/esm/SearchIndex.js 1.39 kB
packages/icon/dist/esm/Secondary.js 963 B
packages/icon/dist/esm/Serverless.js 913 B
packages/icon/dist/esm/Settings.js 1.33 kB
packages/icon/dist/esm/ShardedCluster.js 1.29 kB
packages/icon/dist/esm/Shell.js 839 B
packages/icon/dist/esm/Shield.js 1.24 kB
packages/icon/dist/esm/Shirt.js 792 B
packages/icon/dist/esm/Shortcut.js 1.33 kB
packages/icon/dist/esm/SMS.js 805 B
packages/icon/dist/esm/SortAscending.js 885 B
packages/icon/dist/esm/SortDescending.js 877 B
packages/icon/dist/esm/Sparkle.js 1.19 kB
packages/icon/dist/esm/SplitHorizontal.js 662 B
packages/icon/dist/esm/SplitVertical.js 658 B
packages/icon/dist/esm/Stitch.js 698 B
packages/icon/dist/esm/Stop.js 550 B
packages/icon/dist/esm/Streaming.js 1.63 kB
packages/icon/dist/esm/String.js 795 B
packages/icon/dist/esm/Sun.js 1.01 kB
packages/icon/dist/esm/Support.js 876 B
packages/icon/dist/esm/Sweep.js 905 B
packages/icon/dist/esm/Table.js 684 B
packages/icon/dist/esm/Tag.js 723 B
packages/icon/dist/esm/TemporaryTable.js 905 B
packages/icon/dist/esm/ThumbsDown.js 983 B
packages/icon/dist/esm/ThumbsUp.js 983 B
packages/icon/dist/esm/TimeSeries.js 1.02 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.15 kB
packages/icon/dist/esm/Trash.js 713 B
packages/icon/dist/esm/Undo.js 993 B
packages/icon/dist/esm/University.js 1.19 kB
packages/icon/dist/esm/Unlock.js 885 B
packages/icon/dist/esm/Unsorted.js 928 B
packages/icon/dist/esm/UpDownCarets.js 787 B
packages/icon/dist/esm/Upload.js 970 B
packages/icon/dist/esm/VerticalEllipsis.js 709 B
packages/icon/dist/esm/View.js 841 B
packages/icon/dist/esm/Visibility.js 995 B
packages/icon/dist/esm/VisibilityOff.js 1.37 kB
packages/icon/dist/esm/Warning.js 779 B
packages/icon/dist/esm/Wizard.js 1.09 kB
packages/icon/dist/esm/Wrench.js 1.09 kB
packages/icon/dist/esm/Write.js 1.36 kB
packages/icon/dist/esm/X.js 820 B
packages/icon/dist/esm/XWithCircle.js 766 B
packages/icon/dist/umd/ActivityFeed.js 1.96 kB
packages/icon/dist/umd/AddFile.js 1.73 kB
packages/icon/dist/umd/AIModel.js 1.57 kB
packages/icon/dist/umd/AllProducts.js 1.8 kB
packages/icon/dist/umd/AnalyticsNode.js 1.57 kB
packages/icon/dist/umd/Apps.js 1.41 kB
packages/icon/dist/umd/Array.js 1.52 kB
packages/icon/dist/umd/ArrowDown.js 1.65 kB
packages/icon/dist/umd/ArrowLeft.js 1.66 kB
packages/icon/dist/umd/ArrowRight.js 1.65 kB
packages/icon/dist/umd/ArrowUp.js 1.65 kB
packages/icon/dist/umd/Award.js 2.09 kB
packages/icon/dist/umd/Beaker.js 2.08 kB
packages/icon/dist/umd/Bell.js 1.61 kB
packages/icon/dist/umd/Biometric.js 2.18 kB
packages/icon/dist/umd/Boolean.js 1.63 kB
packages/icon/dist/umd/Building.js 1.6 kB
packages/icon/dist/umd/Bulb.js 1.65 kB
packages/icon/dist/umd/Calendar.js 1.6 kB
packages/icon/dist/umd/Camera.js 1.69 kB
packages/icon/dist/umd/Cap.js 1.81 kB
packages/icon/dist/umd/CaretDown.js 1.47 kB
packages/icon/dist/umd/CaretLeft.js 1.47 kB
packages/icon/dist/umd/CaretRight.js 1.46 kB
packages/icon/dist/umd/CaretUp.js 1.47 kB
packages/icon/dist/umd/ChartFilled.js 1.57 kB
packages/icon/dist/umd/Charts.js 1.54 kB
packages/icon/dist/umd/Checkmark.js 1.61 kB
packages/icon/dist/umd/CheckmarkWithCircle.js 1.68 kB
packages/icon/dist/umd/ChevronDown.js 1.57 kB
packages/icon/dist/umd/ChevronLeft.js 1.57 kB
packages/icon/dist/umd/ChevronRight.js 1.59 kB
packages/icon/dist/umd/ChevronUp.js 1.56 kB
packages/icon/dist/umd/Circle.js 1.34 kB
packages/icon/dist/umd/Clock.js 1.63 kB
packages/icon/dist/umd/ClockWithArrow.js 1.92 kB
packages/icon/dist/umd/Clone.js 1.5 kB
packages/icon/dist/umd/Cloud.js 1.68 kB
packages/icon/dist/umd/Code.js 1.89 kB
packages/icon/dist/umd/CodeBlock.js 1.83 kB
packages/icon/dist/umd/Coin.js 1.94 kB
packages/icon/dist/umd/Colon.js 1.45 kB
packages/icon/dist/umd/Config.js 1.77 kB
packages/icon/dist/umd/Connect.js 1.93 kB
packages/icon/dist/umd/Copy.js 1.88 kB
packages/icon/dist/umd/CreditCard.js 1.43 kB
packages/icon/dist/umd/CurlyBraces.js 2.03 kB
packages/icon/dist/umd/Cursor.js 1.56 kB
packages/icon/dist/umd/Dashboard.js 1.57 kB
packages/icon/dist/umd/Database.js 2.03 kB
packages/icon/dist/umd/Diagram.js 1.65 kB
packages/icon/dist/umd/Diagram2.js 1.66 kB
packages/icon/dist/umd/Diagram3.js 1.63 kB
packages/icon/dist/umd/Disconnect.js 1.86 kB
packages/icon/dist/umd/Download.js 1.79 kB
packages/icon/dist/umd/Drag.js 1.61 kB
packages/icon/dist/umd/Edit.js 1.52 kB
packages/icon/dist/umd/Ellipsis.js 1.5 kB
packages/icon/dist/umd/Email.js 1.71 kB
packages/icon/dist/umd/EmptyDatabase.js 4.3 kB
packages/icon/dist/umd/EmptyFolder.js 2.1 kB
packages/icon/dist/umd/Eraser.js 1.78 kB
packages/icon/dist/umd/Escalation.js 1.68 kB
packages/icon/dist/umd/Export.js 1.78 kB
packages/icon/dist/umd/Favorite.js 1.74 kB
packages/icon/dist/umd/Federation.js 2.06 kB
packages/icon/dist/umd/File.js 1.54 kB
packages/icon/dist/umd/Filter.js 1.53 kB
packages/icon/dist/umd/Folder.js 1.43 kB
packages/icon/dist/umd/Format.js 1.86 kB
packages/icon/dist/umd/FullScreenEnter.js 1.69 kB
packages/icon/dist/umd/FullScreenExit.js 1.7 kB
packages/icon/dist/umd/Function.js 2.75 kB
packages/icon/dist/umd/Gauge.js 1.73 kB
packages/icon/dist/umd/GlobeAmericas.js 1.65 kB
packages/icon/dist/umd/GovernmentBuilding.js 1.68 kB
packages/icon/dist/umd/Guide.js 2 kB
packages/icon/dist/umd/Hash.js 1.83 kB
packages/icon/dist/umd/HiddenSecondaryNode.js 3.11 kB
packages/icon/dist/umd/Highlight.js 1.88 kB
packages/icon/dist/umd/Home.js 1.8 kB
packages/icon/dist/umd/HorizontalDrag.js 1.62 kB
packages/icon/dist/umd/Import.js 1.78 kB
packages/icon/dist/umd/ImportantWithCircle.js 1.54 kB
packages/icon/dist/umd/InfoWithCircle.js 1.57 kB
packages/icon/dist/umd/InternalEmployee.js 1.87 kB
packages/icon/dist/umd/InviteUser.js 1.88 kB
packages/icon/dist/umd/Key.js 1.68 kB
packages/icon/dist/umd/Laptop.js 1.67 kB
packages/icon/dist/umd/LightningBolt.js 1.54 kB
packages/icon/dist/umd/Link.js 2.04 kB
packages/icon/dist/umd/List.js 1.68 kB
packages/icon/dist/umd/Lock.js 1.64 kB
packages/icon/dist/umd/LogIn.js 1.71 kB
packages/icon/dist/umd/LogOut.js 1.77 kB
packages/icon/dist/umd/MagnifyingGlass.js 1.6 kB
packages/icon/dist/umd/Megaphone.js 1.58 kB
packages/icon/dist/umd/Menu.js 1.49 kB
packages/icon/dist/umd/Minus.js 1.44 kB
packages/icon/dist/umd/Mobile.js 1.44 kB
packages/icon/dist/umd/Moon.js 1.63 kB
packages/icon/dist/umd/MultiDirectionArrow.js 1.66 kB
packages/icon/dist/umd/MultiLayers.js 2.63 kB
packages/icon/dist/umd/NavCollapse.js 1.68 kB
packages/icon/dist/umd/NavExpand.js 1.69 kB
packages/icon/dist/umd/NoFilter.js 1.67 kB
packages/icon/dist/umd/NotAllowed.js 1.55 kB
packages/icon/dist/umd/Note.js 1.59 kB
packages/icon/dist/umd/NumberedList.js 2.5 kB
packages/icon/dist/umd/OpenNewTab.js 1.88 kB
packages/icon/dist/umd/OutlineFavorite.js 2.01 kB
packages/icon/dist/umd/Package.js 1.85 kB
packages/icon/dist/umd/Pause.js 1.49 kB
packages/icon/dist/umd/Pending.js 1.47 kB
packages/icon/dist/umd/Person.js 1.67 kB
packages/icon/dist/umd/PersonGroup.js 1.87 kB
packages/icon/dist/umd/PersonWithLock.js 1.87 kB
packages/icon/dist/umd/Pin.js 1.61 kB
packages/icon/dist/umd/Play.js 1.48 kB
packages/icon/dist/umd/Plus.js 1.5 kB
packages/icon/dist/umd/PlusWithCircle.js 1.53 kB
packages/icon/dist/umd/Primary.js 1.55 kB
packages/icon/dist/umd/Project.js 1.59 kB
packages/icon/dist/umd/QuestionMarkWithCircle.js 1.91 kB
packages/icon/dist/umd/Read.js 2.2 kB
packages/icon/dist/umd/Recommended.js 2.38 kB
packages/icon/dist/umd/Redo.js 1.85 kB
packages/icon/dist/umd/Refresh.js 1.91 kB
packages/icon/dist/umd/Relationship.js 1.6 kB
packages/icon/dist/umd/ReplicaSet.js 1.76 kB
packages/icon/dist/umd/Resize.js 1.57 kB
packages/icon/dist/umd/Resource.js 1.9 kB
packages/icon/dist/umd/Return.js 1.67 kB
packages/icon/dist/umd/Revert.js 1.71 kB
packages/icon/dist/umd/Router.js 2.38 kB
packages/icon/dist/umd/Save.js 2.1 kB
packages/icon/dist/umd/SearchIndex.js 2.23 kB
packages/icon/dist/umd/Secondary.js 1.79 kB
packages/icon/dist/umd/Serverless.js 1.75 kB
packages/icon/dist/umd/Settings.js 2.17 kB
packages/icon/dist/umd/ShardedCluster.js 2.12 kB
packages/icon/dist/umd/Shell.js 1.67 kB
packages/icon/dist/umd/Shield.js 2.1 kB
packages/icon/dist/umd/Shirt.js 1.61 kB
packages/icon/dist/umd/Shortcut.js 2.18 kB
packages/icon/dist/umd/SMS.js 1.61 kB
packages/icon/dist/umd/SortAscending.js 1.7 kB
packages/icon/dist/umd/SortDescending.js 1.69 kB
packages/icon/dist/umd/Sparkle.js 2.03 kB
packages/icon/dist/umd/SplitHorizontal.js 1.47 kB
packages/icon/dist/umd/SplitVertical.js 1.46 kB
packages/icon/dist/umd/Stitch.js 1.5 kB
packages/icon/dist/umd/Stop.js 1.35 kB
packages/icon/dist/umd/Streaming.js 2.5 kB
packages/icon/dist/umd/String.js 1.61 kB
packages/icon/dist/umd/Sun.js 1.82 kB
packages/icon/dist/umd/Support.js 1.7 kB
packages/icon/dist/umd/Sweep.js 1.72 kB
packages/icon/dist/umd/Table.js 1.49 kB
packages/icon/dist/umd/Tag.js 1.53 kB
packages/icon/dist/umd/TemporaryTable.js 1.73 kB
packages/icon/dist/umd/ThumbsDown.js 1.82 kB
packages/icon/dist/umd/ThumbsUp.js 1.81 kB
packages/icon/dist/umd/TimeSeries.js 1.86 kB
packages/icon/dist/umd/TimeSeriesCollection.js 2 kB
packages/icon/dist/umd/Trash.js 1.52 kB
packages/icon/dist/umd/Undo.js 1.83 kB
packages/icon/dist/umd/University.js 2.03 kB
packages/icon/dist/umd/Unlock.js 1.71 kB
packages/icon/dist/umd/Unsorted.js 1.75 kB
packages/icon/dist/umd/UpDownCarets.js 1.59 kB
packages/icon/dist/umd/Upload.js 1.8 kB
packages/icon/dist/umd/VerticalEllipsis.js 1.51 kB
packages/icon/dist/umd/View.js 1.65 kB
packages/icon/dist/umd/Visibility.js 1.82 kB
packages/icon/dist/umd/VisibilityOff.js 2.23 kB
packages/icon/dist/umd/Warning.js 1.59 kB
packages/icon/dist/umd/Wizard.js 1.94 kB
packages/icon/dist/umd/Wrench.js 1.93 kB
packages/icon/dist/umd/Write.js 2.21 kB
packages/icon/dist/umd/X.js 1.63 kB
packages/icon/dist/umd/XWithCircle.js 1.57 kB
packages/info-sprinkle/dist/esm/index.js 1.83 kB
packages/info-sprinkle/dist/umd/index.js 2.04 kB
packages/inline-definition/dist/esm/index.js 1.7 kB
packages/inline-definition/dist/umd/index.js 1.86 kB
packages/input-option/dist/esm/index.js 2.67 kB
packages/input-option/dist/umd/index.js 2.82 kB
packages/leafygreen-provider/dist/esm/index.js 1.87 kB
packages/leafygreen-provider/dist/umd/index.js 2.03 kB
packages/lib/dist/esm/index.js 3.27 kB
packages/lib/dist/umd/index.js 3.42 kB
packages/loading-indicator/dist/esm/index.js 3.39 kB
packages/loading-indicator/dist/umd/index.js 3.56 kB
packages/logo/dist/esm/index.js 39 kB
packages/logo/dist/umd/index.js 39.3 kB
packages/marketing-modal/dist/esm/index.js 3.54 kB
packages/marketing-modal/dist/umd/index.js 3.75 kB
packages/menu/dist/esm/index.js 8.22 kB
packages/menu/dist/umd/index.js 8.48 kB
packages/modal/dist/esm/index.js 3.3 kB
packages/modal/dist/umd/index.js 3.45 kB
packages/number-input/dist/esm/index.js 5.68 kB
packages/number-input/dist/umd/index.js 5.87 kB
packages/ordered-list/dist/esm/index.js 1.33 kB
packages/ordered-list/dist/umd/index.js 1.5 kB
packages/pagination/dist/esm/index.js 1.68 kB
packages/pagination/dist/umd/index.js 1.9 kB
packages/palette/dist/esm/index.js 411 B
packages/palette/dist/umd/index.js 561 B
packages/password-input/dist/esm/index.js 4.54 kB
packages/password-input/dist/umd/index.js 4.76 kB
packages/pipeline/dist/esm/index.js 7.85 kB
packages/pipeline/dist/umd/index.js 8.12 kB
packages/polymorphic/dist/esm/index.js 1.27 kB
packages/polymorphic/dist/umd/index.js 1.41 kB
packages/popover/dist/esm/index.js 4.98 kB
packages/popover/dist/umd/index.js 5.15 kB
packages/portal/dist/esm/index.js 919 B
packages/portal/dist/umd/index.js 1.09 kB
packages/preview-card/dist/esm/index.js 2.35 kB
packages/preview-card/dist/esm/testing/index.js 2.67 kB
packages/preview-card/dist/umd/index.js 2.5 kB
packages/preview-card/dist/umd/testing/index.js 2.82 kB
packages/progress-bar/dist/esm/index.js 5.55 kB
packages/progress-bar/dist/esm/testing/index.js 507 B
packages/progress-bar/dist/umd/index.js 5.8 kB
packages/progress-bar/dist/umd/testing/index.js 635 B
packages/radio-box-group/dist/esm/index.js 2.87 kB
packages/radio-box-group/dist/umd/index.js 3 kB
packages/radio-group/dist/esm/index.js 3.25 kB
packages/radio-group/dist/umd/index.js 3.4 kB
packages/resizable/dist/esm/index.js 2.48 kB
packages/resizable/dist/umd/index.js 2.58 kB
packages/ripple/dist/esm/index.js 954 B
packages/ripple/dist/umd/index.js 1.05 kB
packages/search-input/dist/esm/index.js 5.9 kB
packages/search-input/dist/umd/index.js 6.12 kB
packages/section-nav/dist/esm/index.js 2.62 kB
packages/section-nav/dist/esm/testing/index.js 2.85 kB
packages/section-nav/dist/umd/index.js 2.76 kB
packages/section-nav/dist/umd/testing/index.js 3.03 kB
packages/segmented-control/dist/esm/index.js 5.44 kB
packages/segmented-control/dist/umd/index.js 5.59 kB
packages/select/dist/esm/index.js 8.69 kB
packages/select/dist/esm/testing/index.js 698 B
packages/select/dist/umd/index.js 8.9 kB
packages/select/dist/umd/testing/index.js 838 B
packages/side-nav/dist/esm/index.js 7.47 kB
packages/side-nav/dist/umd/index.js 7.73 kB
packages/skeleton-loader/dist/esm/index.js 3.19 kB
packages/skeleton-loader/dist/umd/index.js 3.4 kB
packages/split-button/dist/esm/index.js 3.56 kB
packages/split-button/dist/umd/index.js 3.72 kB
packages/stepper/dist/esm/index.js 3.47 kB
packages/stepper/dist/umd/index.js 3.68 kB
packages/table/dist/esm/index.js 8.14 kB
packages/table/dist/esm/testing/index.js 694 B
packages/table/dist/umd/index.js 8.41 kB
packages/table/dist/umd/testing/index.js 814 B
packages/tabs/dist/esm/index.js 5.14 kB
packages/tabs/dist/esm/testing/index.js 597 B
packages/tabs/dist/umd/index.js 5.29 kB
packages/tabs/dist/umd/testing/index.js 717 B
packages/testing-lib/dist/esm/index.js 3.34 kB
packages/testing-lib/dist/umd/index.js 3.56 kB
packages/testing-lib/dist/umd/renderHookServer17.js 385 B
packages/testing-lib/dist/umd/renderHookServer18.js 593 B
packages/text-area/dist/esm/index.js 2.19 kB
packages/text-area/dist/esm/testing/index.js 466 B
packages/text-area/dist/umd/index.js 2.35 kB
packages/text-area/dist/umd/testing/index.js 604 B
packages/text-input/dist/esm/index.js 2.5 kB
packages/text-input/dist/esm/testing/index.js 463 B
packages/text-input/dist/umd/index.js 2.68 kB
packages/text-input/dist/umd/testing/index.js 600 B
packages/toast/dist/esm/index.js 8.23 kB
packages/toast/dist/umd/index.js 8.53 kB
packages/toggle/dist/esm/index.js 3 kB
packages/toggle/dist/esm/testing/index.js 276 B
packages/toggle/dist/umd/index.js 3.19 kB
packages/toggle/dist/umd/testing/index.js 407 B
packages/tokens/dist/esm/index.js 2.83 kB
packages/tokens/dist/umd/index.js 2.94 kB
packages/toolbar/dist/esm/index.js 3.26 kB
packages/toolbar/dist/esm/testing/index.js 527 B
packages/toolbar/dist/umd/index.js 3.4 kB
packages/toolbar/dist/umd/testing/index.js 643 B
packages/tooltip/dist/esm/index.js 4.35 kB
packages/tooltip/dist/umd/index.js 4.63 kB
tools/build/dist/esm/index.js 6.3 kB
tools/build/dist/umd/cli.js 6.64 kB
tools/build/dist/umd/index.js 6.58 kB
tools/cli/dist/esm/index.js 2.33 kB
tools/cli/dist/umd/index.js 2.5 kB
tools/codemods/dist/_virtual/_rollupPluginBabelHelpers.js 936 B
tools/codemods/dist/codemods/modal-v20/transform.js 787 B
tools/codemods/dist/codemods/popover-v12/transform.js 1.1 kB
tools/codemods/dist/codemods/tabs-v17/transform.js 368 B
tools/codemods/dist/constants.js 148 B
tools/codemods/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs 928 B
tools/codemods/dist/esm/codemods/modal-v20/transform.mjs 788 B
tools/codemods/dist/esm/codemods/popover-v12/transform.mjs 1.09 kB
tools/codemods/dist/esm/codemods/tabs-v17/transform.mjs 366 B
tools/codemods/dist/esm/constants.mjs 148 B
tools/codemods/dist/esm/index.js 3.4 kB
tools/codemods/dist/esm/types.mjs 765 B
tools/codemods/dist/esm/utils/imports/getImportSpecifiersForDeclaration.mjs 280 B
tools/codemods/dist/esm/utils/jsx/getJSXAttributes.mjs 160 B
tools/codemods/dist/esm/utils/jsx/insertJSXComment/insertJSXComment.mjs 369 B
tools/codemods/dist/esm/utils/transformations/addJSXAttributes/addJSXAttributes.mjs 412 B
tools/codemods/dist/esm/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.mjs 665 B
tools/codemods/dist/esm/utils/transformations/removeJSXAttributes/removeJSXAttributes.mjs 360 B
tools/codemods/dist/esm/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.mjs 278 B
tools/codemods/dist/types.js 765 B
tools/codemods/dist/umd/index.js 3.64 kB
tools/codemods/dist/utils/imports/getImportSpecifiersForDeclaration.js 283 B
tools/codemods/dist/utils/jsx/getJSXAttributes.js 164 B
tools/codemods/dist/utils/jsx/insertJSXComment/insertJSXComment.js 371 B
tools/codemods/dist/utils/transformations/addJSXAttributes/addJSXAttributes.js 410 B
tools/codemods/dist/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.js 664 B
tools/codemods/dist/utils/transformations/removeJSXAttributes/removeJSXAttributes.js 364 B
tools/codemods/dist/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.js 282 B
tools/create/dist/esm/index.js 4.17 kB
tools/create/dist/umd/index.js 4.34 kB
tools/link/dist/esm/index.js 3.79 kB
tools/link/dist/umd/index.js 3.91 kB
tools/lint/dist/esm/index.js 4.11 kB
tools/lint/dist/umd/index.js 4.25 kB
tools/meta/dist/esm/index.js 1.71 kB
tools/meta/dist/umd/index.js 1.85 kB
tools/prompt-kit/dist/esm/index.js 2.27 kB
tools/prompt-kit/dist/umd/index.js 2.41 kB
tools/slackbot/dist/esm/index.js 4.8 kB
tools/slackbot/dist/umd/index.js 4.97 kB
tools/storybook-addon/dist/esm/index.js 2.22 kB
tools/storybook-addon/dist/esm/main.js 2.22 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.69 kB
tools/storybook-addon/dist/umd/index.js 2.34 kB
tools/storybook-addon/dist/umd/main.js 2.34 kB
tools/storybook-addon/dist/umd/manager.js 691 B
tools/storybook-addon/dist/umd/preview.js 1.81 kB
tools/storybook-decorators/dist/esm/index.js 3.28 kB
tools/storybook-decorators/dist/umd/index.js 3.57 kB
tools/storybook-utils/dist/esm/index.js 2.77 kB
tools/storybook-utils/dist/umd/index.js 2.9 kB
tools/test-harnesses/dist/esm/index.js 1.78 kB
tools/test-harnesses/dist/umd/index.js 1.91 kB
tools/test/dist/esm/index.js 1.68 kB
tools/test/dist/umd/index.js 1.82 kB
tools/update/dist/esm/index.js 725 B
tools/update/dist/umd/index.js 893 B
tools/validate/dist/esm/index.js 5.75 kB
tools/validate/dist/umd/index.js 5.98 kB

compressed-size-action

Comment on lines +20 to +29
export const TextNode = ({
children,
as,
}: PropsWithChildren<{ as?: PolymorphicAs }>) => {
return typeof children === 'string' || typeof children === 'number' ? (
<Polymorph as={as}>{children}</Polymorph>
) : (
children
);
};
Copy link
Collaborator

Choose a reason for hiding this comment

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

In what cases will this be used? Is it intended to be a wrapper that replaces logic elsewhere like in Description? If so, I'm wondering if we should add an explicit wrapper <div> around children on L27 so attributes/props can be passed to the component

Copy link
Collaborator

Choose a reason for hiding this comment

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

A use case for this could be Drawer. We currently have this:

<Body
as={typeof title === 'string' ? 'h2' : 'div'}
baseFontSize={BaseFontSize.Body2}
id={titleId}
className={titleStyles}
>
{title}
</Body>

but that could be replaced with TextNode like this:

const Wrapper = ({ children }: PropsWithChildren<{}>) => ( 
    <Body
      as={'h2'}
      baseFontSize={BaseFontSize.Body2}
      id={titleId}
      className={titleStyles}
    >
      {title}
    </Body>
);

  <TextNode as={Wrapper}>{title}</TextNode>

However, in this case, the consumer will lose the id attribute if using a ReactNode so being able to pass that id to the ReactNode could be beneficial.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Good example! Yes, it seems like being able to pass attributes/props to the TextNode would be important

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.

3 participants