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-4798: code custom snips obj #2728

Open
wants to merge 150 commits into
base: LG-4657-code-improvements-integration
Choose a base branch
from

Conversation

shaneeza
Copy link
Collaborator

@shaneeza shaneeza commented Feb 18, 2025

✍️ Proposed changes

🎟 Jira ticket: LG-4798

We had a request to change the color of certain words in the code editor. In particular, this ticket wanted to highlight password and username.

Some examples of this include:
image (3)

image (2)

I initially tried an approach of wrapping the word to highlight in a sequence of characters:

In this line change the color of {{ password}} and {{ username }}

However, this approach was challenging because we support a wide range of languages, making it difficult to find a character sequence that wouldn’t interfere with language-specific special characters.

I decided to use an object-based approach. Consumers can pass in an object containing multiple keywords they want to customize. I'll search for each keyword and wrap it in a div with the specified className. However, if the keyword is a reserved word in that language, it will be ignored. The only drawback to this approach is that it will target every occurrence of the keyword.

customKeywordObject: {{ 'keyword': 'className' }}

✅ 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 pnpm 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 Feb 18, 2025

🦋 Changeset detected

Latest commit: 9fa19d9

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

This PR includes changesets to release 4 packages
Name Type
@leafygreen-ui/code Minor
@lg-chat/lg-markdown Patch
@lg-chat/message Patch
@lg-chat/message-feed 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

github-actions bot commented Feb 18, 2025

Size Change: +446 B (+0.03%)

Total Size: 1.4 MB

Filename Size Change
packages/code/dist/esm/index.js 11 kB +225 B (+2.1%)
packages/code/dist/index.js 11.6 kB +221 B (+1.95%)
ℹ️ View Unchanged
Filename Size
charts/core/dist/esm/index.js 15.4 kB
charts/core/dist/index.js 15.6 kB
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 755 B
chat/chat-window/dist/esm/index.js 1.62 kB
chat/chat-window/dist/index.js 1.79 kB
chat/fixed-chat-window/dist/esm/index.js 2.39 kB
chat/fixed-chat-window/dist/index.js 2.57 kB
chat/input-bar/dist/esm/index.js 6.9 kB
chat/input-bar/dist/index.js 7.11 kB
chat/leafygreen-chat-provider/dist/esm/index.js 873 B
chat/leafygreen-chat-provider/dist/index.js 1.02 kB
chat/lg-markdown/dist/esm/index.js 1.44 kB
chat/lg-markdown/dist/index.js 1.59 kB
chat/message-feed/dist/esm/index.js 2.78 kB
chat/message-feed/dist/index.js 2.97 kB
chat/message-feedback/dist/esm/index.js 2.54 kB
chat/message-feedback/dist/index.js 2.78 kB
chat/message-prompts/dist/esm/index.js 1.72 kB
chat/message-prompts/dist/index.js 1.86 kB
chat/message-rating/dist/esm/index.js 2.51 kB
chat/message-rating/dist/index.js 2.71 kB
chat/message/dist/esm/index.js 3.78 kB
chat/message/dist/index.js 3.98 kB
chat/rich-links/dist/esm/index.js 2.68 kB
chat/rich-links/dist/index.js 2.89 kB
chat/title-bar/dist/esm/index.js 1.37 kB
chat/title-bar/dist/index.js 1.58 kB
packages/a11y/dist/esm/index.js 1.7 kB
packages/a11y/dist/index.js 1.83 kB
packages/avatar/dist/esm/index.js 2.35 kB
packages/avatar/dist/index.js 2.53 kB
packages/badge/dist/esm/index.js 1.41 kB
packages/badge/dist/index.js 1.59 kB
packages/banner/dist/esm/index.js 3.08 kB
packages/banner/dist/index.js 3.37 kB
packages/box/dist/esm/index.js 489 B
packages/box/dist/index.js 627 B
packages/button/dist/esm/index.js 4.92 kB
packages/button/dist/index.js 5.1 kB
packages/callout/dist/esm/index.js 1.54 kB
packages/callout/dist/index.js 1.71 kB
packages/card/dist/esm/index.js 1.51 kB
packages/card/dist/index.js 1.69 kB
packages/checkbox/dist/esm/index.js 4.2 kB
packages/checkbox/dist/index.js 4.39 kB
packages/chip/dist/esm/index.js 3.2 kB
packages/chip/dist/index.js 3.41 kB
packages/combobox/dist/esm/index.js 11.6 kB
packages/combobox/dist/index.js 11.8 kB
packages/confirmation-modal/dist/esm/index.js 2.52 kB
packages/confirmation-modal/dist/index.js 2.74 kB
packages/copyable/dist/esm/index.js 2.78 kB
packages/copyable/dist/index.js 2.99 kB
packages/date-picker/dist/esm/index.js 13.6 kB
packages/date-picker/dist/index.js 14 kB
packages/date-utils/dist/esm/index.js 3.48 kB
packages/date-utils/dist/index.js 3.6 kB
packages/descendants/dist/esm/index.js 2.83 kB
packages/descendants/dist/index.js 2.93 kB
packages/emotion/dist/esm/index.js 345 B
packages/emotion/dist/index.js 555 B
packages/empty-state/dist/esm/index.js 1.77 kB
packages/empty-state/dist/index.js 1.94 kB
packages/expandable-card/dist/esm/index.js 2.85 kB
packages/expandable-card/dist/index.js 3.03 kB
packages/form-field/dist/esm/index.js 4.31 kB
packages/form-field/dist/index.js 4.47 kB
packages/form-footer/dist/esm/index.js 1.71 kB
packages/form-footer/dist/index.js 1.91 kB
packages/gallery-indicator/dist/esm/index.js 1.51 kB
packages/gallery-indicator/dist/index.js 1.67 kB
packages/guide-cue/dist/esm/index.js 6.36 kB
packages/guide-cue/dist/index.js 6.56 kB
packages/hooks/dist/esm/index.js 3.36 kB
packages/hooks/dist/index.js 3.49 kB
packages/icon-button/dist/esm/index.js 2.23 kB
packages/icon-button/dist/index.js 2.43 kB
packages/icon/dist/ActivityFeed.js 1.95 kB
packages/icon/dist/AddFile.js 1.72 kB
packages/icon/dist/AllProducts.js 1.79 kB
packages/icon/dist/Apps.js 1.39 kB
packages/icon/dist/Array.js 1.51 kB
packages/icon/dist/ArrowDown.js 1.64 kB
packages/icon/dist/ArrowLeft.js 1.65 kB
packages/icon/dist/ArrowRight.js 1.64 kB
packages/icon/dist/ArrowUp.js 1.64 kB
packages/icon/dist/Beaker.js 2.07 kB
packages/icon/dist/Bell.js 1.6 kB
packages/icon/dist/Biometric.js 2.17 kB
packages/icon/dist/Boolean.js 1.44 kB
packages/icon/dist/Building.js 1.59 kB
packages/icon/dist/Bulb.js 1.64 kB
packages/icon/dist/Calendar.js 1.59 kB
packages/icon/dist/Camera.js 1.68 kB
packages/icon/dist/Cap.js 1.8 kB
packages/icon/dist/CaretDown.js 1.46 kB
packages/icon/dist/CaretLeft.js 1.46 kB
packages/icon/dist/CaretRight.js 1.46 kB
packages/icon/dist/CaretUp.js 1.46 kB
packages/icon/dist/ChartFilled.js 1.56 kB
packages/icon/dist/Charts.js 1.53 kB
packages/icon/dist/Checkmark.js 1.6 kB
packages/icon/dist/CheckmarkWithCircle.js 1.67 kB
packages/icon/dist/ChevronDown.js 1.56 kB
packages/icon/dist/ChevronLeft.js 1.56 kB
packages/icon/dist/ChevronRight.js 1.57 kB
packages/icon/dist/ChevronUp.js 1.55 kB
packages/icon/dist/Circle.js 1.33 kB
packages/icon/dist/Clock.js 1.62 kB
packages/icon/dist/ClockWithArrow.js 1.91 kB
packages/icon/dist/Clone.js 1.5 kB
packages/icon/dist/Cloud.js 1.67 kB
packages/icon/dist/Code.js 1.88 kB
packages/icon/dist/CodeBlock.js 1.81 kB
packages/icon/dist/Coin.js 1.93 kB
packages/icon/dist/Colon.js 1.44 kB
packages/icon/dist/Connect.js 1.92 kB
packages/icon/dist/Copy.js 1.87 kB
packages/icon/dist/CreditCard.js 1.42 kB
packages/icon/dist/CurlyBraces.js 2.02 kB
packages/icon/dist/Cursor.js 1.55 kB
packages/icon/dist/Dashboard.js 1.56 kB
packages/icon/dist/Database.js 2.02 kB
packages/icon/dist/Diagram.js 1.64 kB
packages/icon/dist/Diagram2.js 1.65 kB
packages/icon/dist/Diagram3.js 1.62 kB
packages/icon/dist/Disconnect.js 1.86 kB
packages/icon/dist/Download.js 1.65 kB
packages/icon/dist/Drag.js 1.6 kB
packages/icon/dist/Edit.js 1.51 kB
packages/icon/dist/Ellipsis.js 1.48 kB
packages/icon/dist/Email.js 1.7 kB
packages/icon/dist/EmptyDatabase.js 4.29 kB
packages/icon/dist/EmptyFolder.js 2.08 kB
packages/icon/dist/Eraser.js 1.77 kB
packages/icon/dist/Escalation.js 1.67 kB
packages/icon/dist/esm/ActivityFeed.js 1.74 kB
packages/icon/dist/esm/AddFile.js 1.51 kB
packages/icon/dist/esm/AllProducts.js 1.59 kB
packages/icon/dist/esm/Apps.js 1.2 kB
packages/icon/dist/esm/Array.js 1.31 kB
packages/icon/dist/esm/ArrowDown.js 1.44 kB
packages/icon/dist/esm/ArrowLeft.js 1.44 kB
packages/icon/dist/esm/ArrowRight.js 1.43 kB
packages/icon/dist/esm/ArrowUp.js 1.43 kB
packages/icon/dist/esm/Beaker.js 1.86 kB
packages/icon/dist/esm/Bell.js 1.4 kB
packages/icon/dist/esm/Biometric.js 1.96 kB
packages/icon/dist/esm/Boolean.js 1.24 kB
packages/icon/dist/esm/Building.js 1.39 kB
packages/icon/dist/esm/Bulb.js 1.44 kB
packages/icon/dist/esm/Calendar.js 1.39 kB
packages/icon/dist/esm/Camera.js 1.48 kB
packages/icon/dist/esm/Cap.js 1.59 kB
packages/icon/dist/esm/CaretDown.js 1.26 kB
packages/icon/dist/esm/CaretLeft.js 1.26 kB
packages/icon/dist/esm/CaretRight.js 1.26 kB
packages/icon/dist/esm/CaretUp.js 1.26 kB
packages/icon/dist/esm/ChartFilled.js 1.35 kB
packages/icon/dist/esm/Charts.js 1.33 kB
packages/icon/dist/esm/Checkmark.js 1.4 kB
packages/icon/dist/esm/CheckmarkWithCircle.js 1.46 kB
packages/icon/dist/esm/ChevronDown.js 1.36 kB
packages/icon/dist/esm/ChevronLeft.js 1.36 kB
packages/icon/dist/esm/ChevronRight.js 1.38 kB
packages/icon/dist/esm/ChevronUp.js 1.35 kB
packages/icon/dist/esm/Circle.js 1.13 kB
packages/icon/dist/esm/Clock.js 1.42 kB
packages/icon/dist/esm/ClockWithArrow.js 1.7 kB
packages/icon/dist/esm/Clone.js 1.29 kB
packages/icon/dist/esm/Cloud.js 1.47 kB
packages/icon/dist/esm/Code.js 1.68 kB
packages/icon/dist/esm/CodeBlock.js 1.61 kB
packages/icon/dist/esm/Coin.js 1.72 kB
packages/icon/dist/esm/Colon.js 1.25 kB
packages/icon/dist/esm/Connect.js 1.72 kB
packages/icon/dist/esm/Copy.js 1.67 kB
packages/icon/dist/esm/CreditCard.js 1.22 kB
packages/icon/dist/esm/CurlyBraces.js 1.82 kB
packages/icon/dist/esm/Cursor.js 1.35 kB
packages/icon/dist/esm/Dashboard.js 1.36 kB
packages/icon/dist/esm/Database.js 1.81 kB
packages/icon/dist/esm/Diagram.js 1.44 kB
packages/icon/dist/esm/Diagram2.js 1.44 kB
packages/icon/dist/esm/Diagram3.js 1.42 kB
packages/icon/dist/esm/Disconnect.js 1.65 kB
packages/icon/dist/esm/Download.js 1.45 kB
packages/icon/dist/esm/Drag.js 1.41 kB
packages/icon/dist/esm/Edit.js 1.31 kB
packages/icon/dist/esm/Ellipsis.js 1.29 kB
packages/icon/dist/esm/Email.js 1.5 kB
packages/icon/dist/esm/EmptyDatabase.js 4.07 kB
packages/icon/dist/esm/EmptyFolder.js 1.88 kB
packages/icon/dist/esm/Eraser.js 1.56 kB
packages/icon/dist/esm/Escalation.js 1.46 kB
packages/icon/dist/esm/Export.js 1.57 kB
packages/icon/dist/esm/Favorite.js 1.53 kB
packages/icon/dist/esm/Federation.js 1.84 kB
packages/icon/dist/esm/File.js 1.33 kB
packages/icon/dist/esm/Filter.js 1.32 kB
packages/icon/dist/esm/Folder.js 1.23 kB
packages/icon/dist/esm/Format.js 1.65 kB
packages/icon/dist/esm/FullScreenEnter.js 1.48 kB
packages/icon/dist/esm/FullScreenExit.js 1.49 kB
packages/icon/dist/esm/Gauge.js 1.52 kB
packages/icon/dist/esm/GlobeAmericas.js 1.44 kB
packages/icon/dist/esm/GovernmentBuilding.js 1.47 kB
packages/icon/dist/esm/Hash.js 1.62 kB
packages/icon/dist/esm/Highlight.js 1.67 kB
packages/icon/dist/esm/Home.js 1.58 kB
packages/icon/dist/esm/HorizontalDrag.js 1.41 kB
packages/icon/dist/esm/Import.js 1.56 kB
packages/icon/dist/esm/ImportantWithCircle.js 1.33 kB
packages/icon/dist/esm/index.js 29.8 kB
packages/icon/dist/esm/InfoWithCircle.js 1.36 kB
packages/icon/dist/esm/InternalEmployee.js 1.65 kB
packages/icon/dist/esm/InviteUser.js 1.67 kB
packages/icon/dist/esm/Key.js 1.47 kB
packages/icon/dist/esm/Laptop.js 1.46 kB
packages/icon/dist/esm/LightningBolt.js 1.33 kB
packages/icon/dist/esm/Link.js 1.83 kB
packages/icon/dist/esm/List.js 1.47 kB
packages/icon/dist/esm/Lock.js 1.43 kB
packages/icon/dist/esm/LogIn.js 1.5 kB
packages/icon/dist/esm/LogOut.js 1.56 kB
packages/icon/dist/esm/MagnifyingGlass.js 1.4 kB
packages/icon/dist/esm/Megaphone.js 1.37 kB
packages/icon/dist/esm/Menu.js 1.28 kB
packages/icon/dist/esm/Minus.js 1.23 kB
packages/icon/dist/esm/Mobile.js 1.23 kB
packages/icon/dist/esm/Moon.js 1.41 kB
packages/icon/dist/esm/MultiDirectionArrow.js 1.45 kB
packages/icon/dist/esm/MultiLayers.js 2.4 kB
packages/icon/dist/esm/NavCollapse.js 1.47 kB
packages/icon/dist/esm/NavExpand.js 1.48 kB
packages/icon/dist/esm/NoFilter.js 1.46 kB
packages/icon/dist/esm/NotAllowed.js 1.35 kB
packages/icon/dist/esm/Note.js 1.38 kB
packages/icon/dist/esm/OpenNewTab.js 1.66 kB
packages/icon/dist/esm/Pause.js 1.28 kB
packages/icon/dist/esm/Pending.js 1.26 kB
packages/icon/dist/esm/Person.js 1.45 kB
packages/icon/dist/esm/PersonGroup.js 1.65 kB
packages/icon/dist/esm/PersonWithLock.js 1.66 kB
packages/icon/dist/esm/Pin.js 1.39 kB
packages/icon/dist/esm/Play.js 1.27 kB
packages/icon/dist/esm/Plus.js 1.29 kB
packages/icon/dist/esm/PlusWithCircle.js 1.32 kB
packages/icon/dist/esm/Primary.js 1.34 kB
packages/icon/dist/esm/Project.js 1.38 kB
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.69 kB
packages/icon/dist/esm/Read.js 1.98 kB
packages/icon/dist/esm/Recommended.js 2.16 kB
packages/icon/dist/esm/Redo.js 1.63 kB
packages/icon/dist/esm/Refresh.js 1.7 kB
packages/icon/dist/esm/Relationship.js 1.39 kB
packages/icon/dist/esm/ReplicaSet.js 1.54 kB
packages/icon/dist/esm/Resize.js 1.36 kB
packages/icon/dist/esm/Return.js 1.46 kB
packages/icon/dist/esm/Revert.js 1.5 kB
packages/icon/dist/esm/Save.js 1.89 kB
packages/icon/dist/esm/SearchIndex.js 2.02 kB
packages/icon/dist/esm/Secondary.js 1.58 kB
packages/icon/dist/esm/Serverless.js 1.53 kB
packages/icon/dist/esm/Settings.js 1.96 kB
packages/icon/dist/esm/ShardedCluster.js 1.91 kB
packages/icon/dist/esm/Shell.js 1.45 kB
packages/icon/dist/esm/SMS.js 1.41 kB
packages/icon/dist/esm/SortAscending.js 1.49 kB
packages/icon/dist/esm/SortDescending.js 1.48 kB
packages/icon/dist/esm/Sparkle.js 1.81 kB
packages/icon/dist/esm/SplitHorizontal.js 1.25 kB
packages/icon/dist/esm/SplitVertical.js 1.25 kB
packages/icon/dist/esm/Stitch.js 1.29 kB
packages/icon/dist/esm/Stop.js 1.14 kB
packages/icon/dist/esm/String.js 1.4 kB
packages/icon/dist/esm/Sun.js 1.62 kB
packages/icon/dist/esm/Support.js 1.48 kB
packages/icon/dist/esm/Sweep.js 1.5 kB
packages/icon/dist/esm/Table.js 1.28 kB
packages/icon/dist/esm/Tag.js 1.31 kB
packages/icon/dist/esm/ThumbsDown.js 1.6 kB
packages/icon/dist/esm/ThumbsUp.js 1.6 kB
packages/icon/dist/esm/TimeSeries.js 1.64 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.78 kB
packages/icon/dist/esm/Trash.js 1.31 kB
packages/icon/dist/esm/Undo.js 1.62 kB
packages/icon/dist/esm/University.js 1.81 kB
packages/icon/dist/esm/Unlock.js 1.5 kB
packages/icon/dist/esm/Unsorted.js 1.53 kB
packages/icon/dist/esm/UpDownCarets.js 1.38 kB
packages/icon/dist/esm/Upload.js 1.59 kB
packages/icon/dist/esm/VerticalEllipsis.js 1.3 kB
packages/icon/dist/esm/Visibility.js 1.61 kB
packages/icon/dist/esm/VisibilityOff.js 2.01 kB
packages/icon/dist/esm/Warning.js 1.38 kB
packages/icon/dist/esm/Wizard.js 1.72 kB
packages/icon/dist/esm/Wrench.js 1.72 kB
packages/icon/dist/esm/Write.js 1.99 kB
packages/icon/dist/esm/X.js 1.42 kB
packages/icon/dist/esm/XWithCircle.js 1.36 kB
packages/icon/dist/Export.js 1.78 kB
packages/icon/dist/Favorite.js 1.74 kB
packages/icon/dist/Federation.js 2.05 kB
packages/icon/dist/File.js 1.53 kB
packages/icon/dist/Filter.js 1.52 kB
packages/icon/dist/Folder.js 1.43 kB
packages/icon/dist/Format.js 1.85 kB
packages/icon/dist/FullScreenEnter.js 1.68 kB
packages/icon/dist/FullScreenExit.js 1.69 kB
packages/icon/dist/Gauge.js 1.72 kB
packages/icon/dist/GlobeAmericas.js 1.64 kB
packages/icon/dist/GovernmentBuilding.js 1.67 kB
packages/icon/dist/Hash.js 1.83 kB
packages/icon/dist/Highlight.js 1.87 kB
packages/icon/dist/Home.js 1.79 kB
packages/icon/dist/HorizontalDrag.js 1.61 kB
packages/icon/dist/Import.js 1.77 kB
packages/icon/dist/ImportantWithCircle.js 1.53 kB
packages/icon/dist/index.js 30.1 kB
packages/icon/dist/InfoWithCircle.js 1.56 kB
packages/icon/dist/InternalEmployee.js 1.86 kB
packages/icon/dist/InviteUser.js 1.87 kB
packages/icon/dist/Key.js 1.67 kB
packages/icon/dist/Laptop.js 1.65 kB
packages/icon/dist/LightningBolt.js 1.53 kB
packages/icon/dist/Link.js 2.04 kB
packages/icon/dist/List.js 1.67 kB
packages/icon/dist/Lock.js 1.63 kB
packages/icon/dist/LogIn.js 1.7 kB
packages/icon/dist/LogOut.js 1.76 kB
packages/icon/dist/MagnifyingGlass.js 1.6 kB
packages/icon/dist/Megaphone.js 1.57 kB
packages/icon/dist/Menu.js 1.48 kB
packages/icon/dist/Minus.js 1.43 kB
packages/icon/dist/Mobile.js 1.43 kB
packages/icon/dist/Moon.js 1.62 kB
packages/icon/dist/MultiDirectionArrow.js 1.65 kB
packages/icon/dist/MultiLayers.js 2.62 kB
packages/icon/dist/NavCollapse.js 1.67 kB
packages/icon/dist/NavExpand.js 1.68 kB
packages/icon/dist/NoFilter.js 1.66 kB
packages/icon/dist/NotAllowed.js 1.55 kB
packages/icon/dist/Note.js 1.58 kB
packages/icon/dist/OpenNewTab.js 1.87 kB
packages/icon/dist/Pause.js 1.49 kB
packages/icon/dist/Pending.js 1.46 kB
packages/icon/dist/Person.js 1.65 kB
packages/icon/dist/PersonGroup.js 1.86 kB
packages/icon/dist/PersonWithLock.js 1.86 kB
packages/icon/dist/Pin.js 1.59 kB
packages/icon/dist/Play.js 1.47 kB
packages/icon/dist/Plus.js 1.49 kB
packages/icon/dist/PlusWithCircle.js 1.52 kB
packages/icon/dist/Primary.js 1.54 kB
packages/icon/dist/Project.js 1.58 kB
packages/icon/dist/QuestionMarkWithCircle.js 1.9 kB
packages/icon/dist/Read.js 2.19 kB
packages/icon/dist/Recommended.js 2.37 kB
packages/icon/dist/Redo.js 1.84 kB
packages/icon/dist/Refresh.js 1.9 kB
packages/icon/dist/Relationship.js 1.59 kB
packages/icon/dist/ReplicaSet.js 1.75 kB
packages/icon/dist/Resize.js 1.56 kB
packages/icon/dist/Return.js 1.66 kB
packages/icon/dist/Revert.js 1.7 kB
packages/icon/dist/Save.js 2.09 kB
packages/icon/dist/SearchIndex.js 2.22 kB
packages/icon/dist/Secondary.js 1.78 kB
packages/icon/dist/Serverless.js 1.74 kB
packages/icon/dist/Settings.js 2.16 kB
packages/icon/dist/ShardedCluster.js 2.12 kB
packages/icon/dist/Shell.js 1.65 kB
packages/icon/dist/SMS.js 1.6 kB
packages/icon/dist/SortAscending.js 1.69 kB
packages/icon/dist/SortDescending.js 1.69 kB
packages/icon/dist/Sparkle.js 2.02 kB
packages/icon/dist/SplitHorizontal.js 1.45 kB
packages/icon/dist/SplitVertical.js 1.45 kB
packages/icon/dist/Stitch.js 1.49 kB
packages/icon/dist/Stop.js 1.33 kB
packages/icon/dist/String.js 1.6 kB
packages/icon/dist/Sun.js 1.81 kB
packages/icon/dist/Support.js 1.69 kB
packages/icon/dist/Sweep.js 1.7 kB
packages/icon/dist/Table.js 1.48 kB
packages/icon/dist/Tag.js 1.51 kB
packages/icon/dist/ThumbsDown.js 1.81 kB
packages/icon/dist/ThumbsUp.js 1.8 kB
packages/icon/dist/TimeSeries.js 1.86 kB
packages/icon/dist/TimeSeriesCollection.js 1.99 kB
packages/icon/dist/Trash.js 1.51 kB
packages/icon/dist/Undo.js 1.83 kB
packages/icon/dist/University.js 2.02 kB
packages/icon/dist/Unlock.js 1.7 kB
packages/icon/dist/Unsorted.js 1.74 kB
packages/icon/dist/UpDownCarets.js 1.59 kB
packages/icon/dist/Upload.js 1.79 kB
packages/icon/dist/VerticalEllipsis.js 1.5 kB
packages/icon/dist/Visibility.js 1.81 kB
packages/icon/dist/VisibilityOff.js 2.22 kB
packages/icon/dist/Warning.js 1.58 kB
packages/icon/dist/Wizard.js 1.93 kB
packages/icon/dist/Wrench.js 1.92 kB
packages/icon/dist/Write.js 2.2 kB
packages/icon/dist/X.js 1.62 kB
packages/icon/dist/XWithCircle.js 1.56 kB
packages/info-sprinkle/dist/esm/index.js 1.83 kB
packages/info-sprinkle/dist/index.js 2.02 kB
packages/inline-definition/dist/esm/index.js 1.69 kB
packages/inline-definition/dist/index.js 1.85 kB
packages/input-option/dist/esm/index.js 2.67 kB
packages/input-option/dist/index.js 2.81 kB
packages/leafygreen-provider/dist/esm/index.js 1.86 kB
packages/leafygreen-provider/dist/index.js 2.02 kB
packages/lib/dist/esm/index.js 2.44 kB
packages/lib/dist/index.js 2.61 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/index.js 3.55 kB
packages/logo/dist/esm/index.js 39 kB
packages/logo/dist/index.js 39.3 kB
packages/marketing-modal/dist/esm/index.js 3.49 kB
packages/marketing-modal/dist/index.js 3.69 kB
packages/menu/dist/esm/index.js 7.9 kB
packages/menu/dist/index.js 8.14 kB
packages/modal/dist/esm/index.js 3.24 kB
packages/modal/dist/index.js 3.46 kB
packages/number-input/dist/esm/index.js 5.59 kB
packages/number-input/dist/index.js 5.76 kB
packages/ordered-list/dist/esm/index.js 1.32 kB
packages/ordered-list/dist/index.js 1.49 kB
packages/pagination/dist/esm/index.js 1.68 kB
packages/pagination/dist/index.js 1.88 kB
packages/palette/dist/esm/index.js 411 B
packages/palette/dist/index.js 562 B
packages/password-input/dist/esm/index.js 4.42 kB
packages/password-input/dist/index.js 4.64 kB
packages/pipeline/dist/esm/index.js 7.82 kB
packages/pipeline/dist/index.js 8.09 kB
packages/polymorphic/dist/esm/index.js 1.27 kB
packages/polymorphic/dist/index.js 1.4 kB
packages/popover/dist/esm/index.js 4.94 kB
packages/popover/dist/index.js 5.08 kB
packages/portal/dist/esm/index.js 929 B
packages/portal/dist/index.js 1.09 kB
packages/radio-box-group/dist/esm/index.js 2.87 kB
packages/radio-box-group/dist/index.js 2.99 kB
packages/radio-group/dist/esm/index.js 3.25 kB
packages/radio-group/dist/index.js 3.38 kB
packages/ripple/dist/esm/index.js 956 B
packages/ripple/dist/index.js 1.05 kB
packages/search-input/dist/esm/index.js 5.89 kB
packages/search-input/dist/index.js 6.1 kB
packages/segmented-control/dist/esm/index.js 5.44 kB
packages/segmented-control/dist/index.js 5.57 kB
packages/select/dist/esm/index.js 8.9 kB
packages/select/dist/index.js 9.11 kB
packages/side-nav/dist/esm/index.js 7.46 kB
packages/side-nav/dist/index.js 7.7 kB
packages/skeleton-loader/dist/esm/index.js 3.19 kB
packages/skeleton-loader/dist/index.js 3.39 kB
packages/split-button/dist/esm/index.js 3.46 kB
packages/split-button/dist/index.js 3.63 kB
packages/stepper/dist/esm/index.js 3.47 kB
packages/stepper/dist/index.js 3.67 kB
packages/table/dist/esm/index.js 8.3 kB
packages/table/dist/index.js 8.55 kB
packages/tabs/dist/esm/index.js 5.41 kB
packages/tabs/dist/index.js 5.54 kB
packages/testing-lib/dist/esm/index.js 4.52 kB
packages/testing-lib/dist/index.js 4.74 kB
packages/testing-lib/dist/renderHookServer.js 391 B
packages/testing-lib/dist/renderHookServerV17.js 239 B
packages/text-area/dist/esm/index.js 2.38 kB
packages/text-area/dist/index.js 2.54 kB
packages/text-input/dist/esm/index.js 2.69 kB
packages/text-input/dist/index.js 2.85 kB
packages/toast/dist/esm/index.js 8.21 kB
packages/toast/dist/index.js 8.49 kB
packages/toggle/dist/esm/index.js 3.05 kB
packages/toggle/dist/index.js 3.23 kB
packages/tokens/dist/esm/index.js 1.96 kB
packages/tokens/dist/index.js 2.09 kB
packages/tooltip/dist/esm/index.js 4.3 kB
packages/tooltip/dist/index.js 4.58 kB
packages/typography/dist/esm/index.js 5.64 kB
packages/typography/dist/index.js 5.8 kB
tools/build/dist/esm/index.js 5.75 kB
tools/build/dist/index.js 5.96 kB
tools/cli/dist/esm/index.js 1.98 kB
tools/cli/dist/index.js 2.13 kB
tools/codemods/dist/_virtual/_rollupPluginBabelHelpers.js 940 B
tools/codemods/dist/codemods/consolidate-props/transform.js 378 B
tools/codemods/dist/codemods/popover-v12/transform.js 1.11 kB
tools/codemods/dist/codemods/rename-component-prop/transform.js 317 B
tools/codemods/dist/codemods/update-component-prop-value/transform.js 330 B
tools/codemods/dist/constants.js 148 B
tools/codemods/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs 935 B
tools/codemods/dist/esm/codemods/consolidate-props/transform.mjs 376 B
tools/codemods/dist/esm/codemods/popover-v12/transform.mjs 1.09 kB
tools/codemods/dist/esm/codemods/rename-component-prop/transform.mjs 314 B
tools/codemods/dist/esm/codemods/update-component-prop-value/transform.mjs 330 B
tools/codemods/dist/esm/constants.mjs 148 B
tools/codemods/dist/esm/index.js 4.24 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 161 B
tools/codemods/dist/esm/utils/jsx/insertJSXComment/insertJSXComment.mjs 373 B
tools/codemods/dist/esm/utils/transformations/addJSXAttributes/addJSXAttributes.mjs 414 B
tools/codemods/dist/esm/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.mjs 666 B
tools/codemods/dist/esm/utils/transformations/removeJSXAttributes/removeJSXAttributes.mjs 362 B
tools/codemods/dist/esm/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.mjs 280 B
tools/codemods/dist/index.js 4.48 kB
tools/codemods/dist/types.js 765 B
tools/codemods/dist/utils/imports/getImportSpecifiersForDeclaration.js 283 B
tools/codemods/dist/utils/jsx/getJSXAttributes.js 165 B
tools/codemods/dist/utils/jsx/insertJSXComment/insertJSXComment.js 373 B
tools/codemods/dist/utils/transformations/addJSXAttributes/addJSXAttributes.js 412 B
tools/codemods/dist/utils/transformations/consolidateJSXAttributes/consolidateJSXAttributes.js 664 B
tools/codemods/dist/utils/transformations/removeJSXAttributes/removeJSXAttributes.js 366 B
tools/codemods/dist/utils/transformations/replaceJSXAttributes/replaceJSXAttributes.js 283 B
tools/create/dist/esm/index.js 2.88 kB
tools/create/dist/index.js 3.05 kB
tools/install/dist/esm/index.js 885 B
tools/install/dist/index.js 1.03 kB
tools/link/dist/esm/index.js 5.04 kB
tools/link/dist/index.js 5.15 kB
tools/lint/dist/esm/index.js 3.77 kB
tools/lint/dist/index.js 3.92 kB
tools/meta/dist/esm/index.js 1.54 kB
tools/meta/dist/index.js 1.69 kB
tools/slackbot/dist/esm/index.js 6.1 kB
tools/slackbot/dist/index.js 6.27 kB
tools/storybook-addon/dist/esm/index.js 4.68 kB
tools/storybook-addon/dist/esm/main.js 4.64 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.6 kB
tools/storybook-addon/dist/index.js 4.79 kB
tools/storybook-addon/dist/main.js 4.74 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.29 kB
tools/storybook-decorators/dist/index.js 3.56 kB
tools/storybook-utils/dist/esm/index.js 1.05 kB
tools/storybook-utils/dist/index.js 1.21 kB
tools/test-harnesses/dist/esm/index.js 1.79 kB
tools/test-harnesses/dist/index.js 1.92 kB
tools/test/dist/esm/index.js 1.69 kB
tools/test/dist/index.js 1.82 kB
tools/update/dist/esm/index.js 730 B
tools/update/dist/index.js 896 B
tools/validate/dist/esm/index.js 6.86 kB
tools/validate/dist/index.js 7.08 kB

compressed-size-action

@shaneeza shaneeza marked this pull request as ready for review February 18, 2025 18:57
@shaneeza shaneeza requested a review from a team as a code owner February 18, 2025 18:57
@shaneeza shaneeza requested review from tsck and removed request for a team February 18, 2025 18:57
Comment on lines 172 to 180
if (typeof child === 'string') {
if (typeof lastItem === 'string') {
acc[acc.length - 1] = lastItem + child;
} else {
acc.push(child);
}
} else {
acc.push(child);
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this can be simplified slightly:

Suggested change
if (typeof child === 'string') {
if (typeof lastItem === 'string') {
acc[acc.length - 1] = lastItem + child;
} else {
acc.push(child);
}
} else {
acc.push(child);
}
if (typeof child === 'string' && typeof lastItem === 'string') {
acc[acc.length - 1] = lastItem + child;
} else {
acc.push(child);
}

return function (
entity: string | TokenObject,
): string | FlatTokenObject | Array<string | FlatTokenObject> {
// console.log({ entity });
Copy link
Collaborator

Choose a reason for hiding this comment

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

Accidentally left behind?

Suggested change
// console.log({ entity });

* ```
*/
const lineWithKeywords = (line: Array<string | FlatTokenObject>) => {
const mergedLines = mergeStringsIntoString(line);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Q: What benefit do we get from merging the words together? Is there a functional reason this is required?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah, say, for example, you want to highlight _hello, I'm accounting for cases where the plugin might return this as:

['_', 'hello ', 'world ', 'hi', {}, 'bye ', '_', 'hello ']

Merging this into one string makes it easer to find _hello. The output of merging would be:

['_hello world hi', {}, 'bye _hello']

So this is a just-in-case thing.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Gotcha, that makes sense!

* ['_hello world hi', {}, 'bye _hello'] => [{ kind: 'lg-highlight-custom', children: ['_hello'] }, 'world ', 'hi', {}, 'bye', { kind: 'lg-highlight-custom', children: ['_hello'] }]
* ```
*/
const lineWithKeywords = (line: Array<string | FlatTokenObject>) => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Q: Do we / could we add some tests around this logic?

*
* E.g. `customKeywordObject: {{ 'keyword': 'className' }}`
*/
customKeywordObject?: Record<string, string>;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: I'm on the fence about having Object in this prop name. I think I'd prefer just customKeywords or customKeywordConfig. Not a hard stance and definitely not blocking, but curious to hear your thoughts.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't mind removing Object.

@tsck
Copy link
Collaborator

tsck commented Feb 20, 2025

Should this be a minor bump version bump? Or are we only bumping the version on the integration branch?

@shaneeza
Copy link
Collaborator Author

Should this be a minor bump version bump? Or are we only bumping the version on the integration branch?

I think I'll keep this independent from the integration branch and merge it after the integration branch merges.

@shaneeza shaneeza requested a review from tsck February 21, 2025 15:37
Copy link
Collaborator

@tsck tsck left a comment

Choose a reason for hiding this comment

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

Looks like there's a lint issue but otherwise LGTM!

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