Skip to content

LG-5067: Create basic CodeEditor component/package #2858

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

Merged
merged 32 commits into from
May 23, 2025

Conversation

tsck
Copy link
Collaborator

@tsck tsck commented May 16, 2025

✍️ Proposed changes

  • Adds a new package - @leafygreen-ui/code-editor.
  • Adds CodeEditor component with the following functionality:
    • Basic setup
    • Line wrapping
    • Hyperlink support
    • Forced parsing
    • Placeholders
  • Adds renderEditor test utility which exposes a number of helper methods, with the idea that these will get added onto as we go alone in development.
  • Adds initial package README.

🎟 Jira ticket: LG-5067

✅ 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

  • All tests added passing
  • Manual QA on live example in Storybook

Screenshot

Screenshot 2025-05-16 at 10 30 29 AM

Copy link

changeset-bot bot commented May 16, 2025

🦋 Changeset detected

Latest commit: ee82832

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

This PR includes changesets to release 1 package
Name Type
@leafygreen-ui/code-editor Minor

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

Comment on lines +7 to +12
global.MutationObserver = jest.fn().mockImplementation(() => ({
observe: jest.fn(),
unobserve: jest.fn(),
disconnect: jest.fn(),
takeRecords: jest.fn().mockReturnValue([]),
}));
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hoping to figure out a way to do this in the render utility. Right now consumers would need to do it themselves, which isn't ideal. I can't just move it because it relies on jest and I can't use jest outside of a spec file. Open to ideas, if not will be bringing up in a future dev sync.

Comment on lines 10 to 36
export type CodeMirrorExtension = Extension;
export type CodeMirrorRef = ReactCodeMirrorRef;
export type CodeMirrorState = EditorState;
export type CodeMirrorView = EditorView;
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Trying something new with this. CodeMirror has a view key types that we use and that will be usable by the consumer. I'm mapping them to more uniform names and exposing them. If this seems undesirable for some reason or another pattern exists for this, please let me know.

Copy link
Collaborator

Choose a reason for hiding this comment

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

LGTM! One thing I noticed is that code mirror has docs for the types that aren't forwarded/inherited when they're reassigned in our code. I think it would be valuable for consumers if we included tsdocs to each of these

  1. Can we add a {@link ...} to the code mirror docs?
  2. Also wondering about adding a direct copy/paste of the tsdoc associated with Extension, ReactCodeMirrorRef, etc. Overall, I think it would be helpful although I worry that it could desync if/when we bump the dependency

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Makes sense to me! I'll update this with both suggestions shortly.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

These utilities are not in alignment with our current test harness API's. I believe they're just different since they're mostly helping do things with CodeMirror internals, which is why I went in a different direction that I thought would be more helpful in this case. I've mapped it more to the RTL API, hoping that the familiarity of that will make it very easy to work with as well.

That said, if there's opinions against it, I'm more than happy to discuss and this could easily be changed to individual functions. Please let me know!

@tsck tsck marked this pull request as ready for review May 16, 2025 14:51
@tsck tsck requested a review from a team as a code owner May 16, 2025 14:51
@tsck tsck requested review from TheSonOfThomp, a team and stephl3 and removed request for a team and TheSonOfThomp May 16, 2025 14:51
Copy link
Contributor

github-actions bot commented May 16, 2025

Size Change: 0 B

Total Size: 1.86 MB

ℹ️ View Unchanged
Filename Size
charts/chart-card/dist/esm/index.js 2.78 kB
charts/chart-card/dist/umd/index.js 2.93 kB
charts/colors/dist/esm/index.js 515 B
charts/colors/dist/umd/index.js 638 B
charts/core/dist/esm/index.js 16 kB
charts/core/dist/umd/index.js 16.2 kB
charts/drag-provider/dist/esm/index.js 1.39 kB
charts/drag-provider/dist/umd/index.js 1.5 kB
charts/legend/dist/esm/index.js 1.55 kB
charts/legend/dist/umd/index.js 1.71 kB
charts/series-provider/dist/esm/index.js 1.05 kB
charts/series-provider/dist/umd/index.js 1.17 kB
chat/avatar/dist/esm/index.js 1.36 kB
chat/avatar/dist/umd/index.js 1.52 kB
chat/chat-disclaimer/dist/esm/index.js 566 B
chat/chat-disclaimer/dist/umd/index.js 750 B
chat/chat-window/dist/esm/index.js 1.62 kB
chat/chat-window/dist/umd/index.js 1.78 kB
chat/fixed-chat-window/dist/esm/index.js 2.39 kB
chat/fixed-chat-window/dist/umd/index.js 2.57 kB
chat/input-bar/dist/esm/index.js 6.9 kB
chat/input-bar/dist/umd/index.js 7.12 kB
chat/leafygreen-chat-provider/dist/esm/index.js 873 B
chat/leafygreen-chat-provider/dist/umd/index.js 1.03 kB
chat/lg-markdown/dist/esm/index.js 1.44 kB
chat/lg-markdown/dist/umd/index.js 1.59 kB
chat/message-feed/dist/esm/index.js 2.78 kB
chat/message-feed/dist/umd/index.js 2.97 kB
chat/message-feedback/dist/esm/index.js 2.54 kB
chat/message-feedback/dist/umd/index.js 2.79 kB
chat/message-prompts/dist/esm/index.js 1.72 kB
chat/message-prompts/dist/umd/index.js 1.86 kB
chat/message-rating/dist/esm/index.js 2.55 kB
chat/message-rating/dist/umd/index.js 2.76 kB
chat/message/dist/esm/index.js 3.78 kB
chat/message/dist/umd/index.js 3.98 kB
chat/rich-links/dist/esm/index.js 2.68 kB
chat/rich-links/dist/umd/index.js 2.89 kB
chat/title-bar/dist/esm/index.js 1.37 kB
chat/title-bar/dist/umd/index.js 1.58 kB
packages/a11y/dist/esm/index.js 1.7 kB
packages/a11y/dist/umd/index.js 1.83 kB
packages/avatar/dist/esm/index.js 2.35 kB
packages/avatar/dist/umd/index.js 2.52 kB
packages/badge/dist/esm/index.js 1.41 kB
packages/badge/dist/umd/index.js 1.59 kB
packages/banner/dist/esm/index.js 3.08 kB
packages/banner/dist/umd/index.js 3.37 kB
packages/box/dist/esm/index.js 489 B
packages/box/dist/umd/index.js 627 B
packages/button/dist/esm/index.js 4.92 kB
packages/button/dist/umd/index.js 5.1 kB
packages/callout/dist/esm/index.js 1.54 kB
packages/callout/dist/umd/index.js 1.71 kB
packages/card/dist/esm/index.js 1.51 kB
packages/card/dist/umd/index.js 1.69 kB
packages/checkbox/dist/esm/index.js 4.23 kB
packages/checkbox/dist/umd/index.js 4.44 kB
packages/chip/dist/esm/index.js 3.2 kB
packages/chip/dist/umd/index.js 3.41 kB
packages/code-editor/dist/esm/index.js 2.12 kB
packages/code-editor/dist/umd/index.js 2.26 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 kB
packages/combobox/dist/esm/index.js 11.6 kB
packages/combobox/dist/umd/index.js 11.8 kB
packages/confirmation-modal/dist/esm/index.js 2.52 kB
packages/confirmation-modal/dist/umd/index.js 2.74 kB
packages/copyable/dist/esm/index.js 2.78 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.71 kB
packages/date-utils/dist/esm/testing/index.js 1.36 kB
packages/date-utils/dist/umd/index.js 2.82 kB
packages/date-utils/dist/umd/testing/index.js 1.5 kB
packages/descendants/dist/esm/index.js 2.83 kB
packages/descendants/dist/umd/index.js 2.93 kB
packages/drawer/dist/esm/index.js 3.62 kB
packages/drawer/dist/umd/index.js 3.76 kB
packages/emotion/dist/esm/index.js 356 B
packages/emotion/dist/umd/index.js 572 B
packages/empty-state/dist/esm/index.js 1.77 kB
packages/empty-state/dist/umd/index.js 1.94 kB
packages/expandable-card/dist/esm/index.js 2.85 kB
packages/expandable-card/dist/umd/index.js 3.04 kB
packages/form-field/dist/esm/index.js 4.31 kB
packages/form-field/dist/umd/index.js 4.46 kB
packages/form-footer/dist/esm/index.js 1.71 kB
packages/form-footer/dist/umd/index.js 1.91 kB
packages/gallery-indicator/dist/esm/index.js 1.34 kB
packages/gallery-indicator/dist/esm/testing/index.js 340 B
packages/gallery-indicator/dist/umd/index.js 1.49 kB
packages/gallery-indicator/dist/umd/testing/index.js 470 B
packages/guide-cue/dist/esm/index.js 6.37 kB
packages/guide-cue/dist/umd/index.js 6.57 kB
packages/hooks/dist/esm/index.js 3.45 kB
packages/hooks/dist/umd/index.js 3.59 kB
packages/icon-button/dist/esm/index.js 2.23 kB
packages/icon-button/dist/umd/index.js 2.42 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/AnalyticsNode.js 1.56 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.49 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/Config.js 1.75 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.54 kB
packages/icon/dist/Dashboard.js 1.56 kB
packages/icon/dist/Database.js 2.02 kB
packages/icon/dist/Diagram.js 1.63 kB
packages/icon/dist/Diagram2.js 1.64 kB
packages/icon/dist/Diagram3.js 1.62 kB
packages/icon/dist/Disconnect.js 1.86 kB
packages/icon/dist/Download.js 1.78 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/AnalyticsNode.js 1.36 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/Config.js 1.55 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.57 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.52 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/Function.js 2.53 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/Guide.js 1.78 kB
packages/icon/dist/esm/Hash.js 1.62 kB
packages/icon/dist/esm/HiddenSecondaryNode.js 2.89 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 35.2 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/NumberedList.js 2.28 kB
packages/icon/dist/esm/OpenNewTab.js 1.66 kB
packages/icon/dist/esm/OutlineFavorite.js 1.79 kB
packages/icon/dist/esm/Package.js 1.64 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/Resource.js 1.69 kB
packages/icon/dist/esm/Return.js 1.46 kB
packages/icon/dist/esm/Revert.js 1.5 kB
packages/icon/dist/esm/Router.js 2.16 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/Shirt.js 1.4 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/Streaming.js 2.28 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/TemporaryTable.js 1.51 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/View.js 1.44 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.73 kB
packages/icon/dist/Federation.js 2.05 kB
packages/icon/dist/File.js 1.53 kB
packages/icon/dist/Filter.js 1.51 kB
packages/icon/dist/Folder.js 1.42 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/Function.js 2.74 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/Guide.js 1.99 kB
packages/icon/dist/Hash.js 1.82 kB
packages/icon/dist/HiddenSecondaryNode.js 3.1 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/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.62 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.61 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/NumberedList.js 2.48 kB
packages/icon/dist/OpenNewTab.js 1.87 kB
packages/icon/dist/OutlineFavorite.js 2 kB
packages/icon/dist/Package.js 1.84 kB
packages/icon/dist/Pause.js 1.48 kB
packages/icon/dist/Pending.js 1.46 kB
packages/icon/dist/Person.js 1.65 kB
packages/icon/dist/PersonGroup.js 1.85 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.74 kB
packages/icon/dist/Resize.js 1.56 kB
packages/icon/dist/Resource.js 1.89 kB
packages/icon/dist/Return.js 1.66 kB
packages/icon/dist/Revert.js 1.7 kB
packages/icon/dist/Router.js 2.37 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.11 kB
packages/icon/dist/Shell.js 1.65 kB
packages/icon/dist/Shirt.js 1.6 kB
packages/icon/dist/SMS.js 1.6 kB
packages/icon/dist/SortAscending.js 1.69 kB
packages/icon/dist/SortDescending.js 1.68 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/Streaming.js 2.49 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/TemporaryTable.js 1.71 kB
packages/icon/dist/ThumbsDown.js 1.81 kB
packages/icon/dist/ThumbsUp.js 1.8 kB
packages/icon/dist/TimeSeries.js 1.85 kB
packages/icon/dist/TimeSeriesCollection.js 1.99 kB
packages/icon/dist/Trash.js 1.51 kB
packages/icon/dist/umd/ActivityFeed.js 1.95 kB
packages/icon/dist/umd/AddFile.js 1.72 kB
packages/icon/dist/umd/AllProducts.js 1.79 kB
packages/icon/dist/umd/AnalyticsNode.js 1.56 kB
packages/icon/dist/umd/Apps.js 1.39 kB
packages/icon/dist/umd/Array.js 1.51 kB
packages/icon/dist/umd/ArrowDown.js 1.64 kB
packages/icon/dist/umd/ArrowLeft.js 1.65 kB
packages/icon/dist/umd/ArrowRight.js 1.64 kB
packages/icon/dist/umd/ArrowUp.js 1.64 kB
packages/icon/dist/umd/Beaker.js 2.07 kB
packages/icon/dist/umd/Bell.js 1.6 kB
packages/icon/dist/umd/Biometric.js 2.17 kB
packages/icon/dist/umd/Boolean.js 1.44 kB
packages/icon/dist/umd/Building.js 1.59 kB
packages/icon/dist/umd/Bulb.js 1.64 kB
packages/icon/dist/umd/Calendar.js 1.59 kB
packages/icon/dist/umd/Camera.js 1.68 kB
packages/icon/dist/umd/Cap.js 1.8 kB
packages/icon/dist/umd/CaretDown.js 1.46 kB
packages/icon/dist/umd/CaretLeft.js 1.46 kB
packages/icon/dist/umd/CaretRight.js 1.46 kB
packages/icon/dist/umd/CaretUp.js 1.46 kB
packages/icon/dist/umd/ChartFilled.js 1.56 kB
packages/icon/dist/umd/Charts.js 1.53 kB
packages/icon/dist/umd/Checkmark.js 1.6 kB
packages/icon/dist/umd/CheckmarkWithCircle.js 1.67 kB
packages/icon/dist/umd/ChevronDown.js 1.56 kB
packages/icon/dist/umd/ChevronLeft.js 1.56 kB
packages/icon/dist/umd/ChevronRight.js 1.57 kB
packages/icon/dist/umd/ChevronUp.js 1.55 kB
packages/icon/dist/umd/Circle.js 1.33 kB
packages/icon/dist/umd/Clock.js 1.62 kB
packages/icon/dist/umd/ClockWithArrow.js 1.91 kB
packages/icon/dist/umd/Clone.js 1.49 kB
packages/icon/dist/umd/Cloud.js 1.67 kB
packages/icon/dist/umd/Code.js 1.88 kB
packages/icon/dist/umd/CodeBlock.js 1.81 kB
packages/icon/dist/umd/Coin.js 1.93 kB
packages/icon/dist/umd/Colon.js 1.44 kB
packages/icon/dist/umd/Config.js 1.75 kB
packages/icon/dist/umd/Connect.js 1.92 kB
packages/icon/dist/umd/Copy.js 1.87 kB
packages/icon/dist/umd/CreditCard.js 1.42 kB
packages/icon/dist/umd/CurlyBraces.js 2.02 kB
packages/icon/dist/umd/Cursor.js 1.54 kB
packages/icon/dist/umd/Dashboard.js 1.56 kB
packages/icon/dist/umd/Database.js 2.02 kB
packages/icon/dist/umd/Diagram.js 1.63 kB
packages/icon/dist/umd/Diagram2.js 1.64 kB
packages/icon/dist/umd/Diagram3.js 1.62 kB
packages/icon/dist/umd/Disconnect.js 1.86 kB
packages/icon/dist/umd/Download.js 1.78 kB
packages/icon/dist/umd/Drag.js 1.6 kB
packages/icon/dist/umd/Edit.js 1.51 kB
packages/icon/dist/umd/Ellipsis.js 1.48 kB
packages/icon/dist/umd/Email.js 1.7 kB
packages/icon/dist/umd/EmptyDatabase.js 4.29 kB
packages/icon/dist/umd/EmptyFolder.js 2.08 kB
packages/icon/dist/umd/Eraser.js 1.77 kB
packages/icon/dist/umd/Escalation.js 1.67 kB
packages/icon/dist/umd/Export.js 1.78 kB
packages/icon/dist/umd/Favorite.js 1.73 kB
packages/icon/dist/umd/Federation.js 2.05 kB
packages/icon/dist/umd/File.js 1.53 kB
packages/icon/dist/umd/Filter.js 1.51 kB
packages/icon/dist/umd/Folder.js 1.42 kB
packages/icon/dist/umd/Format.js 1.85 kB
packages/icon/dist/umd/FullScreenEnter.js 1.68 kB
packages/icon/dist/umd/FullScreenExit.js 1.69 kB
packages/icon/dist/umd/Function.js 2.74 kB
packages/icon/dist/umd/Gauge.js 1.72 kB
packages/icon/dist/umd/GlobeAmericas.js 1.64 kB
packages/icon/dist/umd/GovernmentBuilding.js 1.67 kB
packages/icon/dist/umd/Guide.js 1.99 kB
packages/icon/dist/umd/Hash.js 1.82 kB
packages/icon/dist/umd/HiddenSecondaryNode.js 3.1 kB
packages/icon/dist/umd/Highlight.js 1.87 kB
packages/icon/dist/umd/Home.js 1.79 kB
packages/icon/dist/umd/HorizontalDrag.js 1.61 kB
packages/icon/dist/umd/Import.js 1.77 kB
packages/icon/dist/umd/ImportantWithCircle.js 1.53 kB
packages/icon/dist/umd/index.js 35.5 kB
packages/icon/dist/umd/InfoWithCircle.js 1.56 kB
packages/icon/dist/umd/InternalEmployee.js 1.86 kB
packages/icon/dist/umd/InviteUser.js 1.87 kB
packages/icon/dist/umd/Key.js 1.67 kB
packages/icon/dist/umd/Laptop.js 1.65 kB
packages/icon/dist/umd/LightningBolt.js 1.53 kB
packages/icon/dist/umd/Link.js 2.04 kB
packages/icon/dist/umd/List.js 1.67 kB
packages/icon/dist/umd/Lock.js 1.62 kB
packages/icon/dist/umd/LogIn.js 1.7 kB
packages/icon/dist/umd/LogOut.js 1.76 kB
packages/icon/dist/umd/MagnifyingGlass.js 1.6 kB
packages/icon/dist/umd/Megaphone.js 1.57 kB
packages/icon/dist/umd/Menu.js 1.48 kB
packages/icon/dist/umd/Minus.js 1.43 kB
packages/icon/dist/umd/Mobile.js 1.43 kB
packages/icon/dist/umd/Moon.js 1.62 kB
packages/icon/dist/umd/MultiDirectionArrow.js 1.65 kB
packages/icon/dist/umd/MultiLayers.js 2.61 kB
packages/icon/dist/umd/NavCollapse.js 1.67 kB
packages/icon/dist/umd/NavExpand.js 1.68 kB
packages/icon/dist/umd/NoFilter.js 1.66 kB
packages/icon/dist/umd/NotAllowed.js 1.55 kB
packages/icon/dist/umd/Note.js 1.58 kB
packages/icon/dist/umd/NumberedList.js 2.48 kB
packages/icon/dist/umd/OpenNewTab.js 1.87 kB
packages/icon/dist/umd/OutlineFavorite.js 2 kB
packages/icon/dist/umd/Package.js 1.84 kB
packages/icon/dist/umd/Pause.js 1.48 kB
packages/icon/dist/umd/Pending.js 1.46 kB
packages/icon/dist/umd/Person.js 1.65 kB
packages/icon/dist/umd/PersonGroup.js 1.85 kB
packages/icon/dist/umd/PersonWithLock.js 1.86 kB
packages/icon/dist/umd/Pin.js 1.59 kB
packages/icon/dist/umd/Play.js 1.47 kB
packages/icon/dist/umd/Plus.js 1.49 kB
packages/icon/dist/umd/PlusWithCircle.js 1.52 kB
packages/icon/dist/umd/Primary.js 1.54 kB
packages/icon/dist/umd/Project.js 1.58 kB
packages/icon/dist/umd/QuestionMarkWithCircle.js 1.9 kB
packages/icon/dist/umd/Read.js 2.19 kB
packages/icon/dist/umd/Recommended.js 2.37 kB
packages/icon/dist/umd/Redo.js 1.84 kB
packages/icon/dist/umd/Refresh.js 1.9 kB
packages/icon/dist/umd/Relationship.js 1.59 kB
packages/icon/dist/umd/ReplicaSet.js 1.74 kB
packages/icon/dist/umd/Resize.js 1.56 kB
packages/icon/dist/umd/Resource.js 1.89 kB
packages/icon/dist/umd/Return.js 1.66 kB
packages/icon/dist/umd/Revert.js 1.7 kB
packages/icon/dist/umd/Router.js 2.37 kB
packages/icon/dist/umd/Save.js 2.09 kB
packages/icon/dist/umd/SearchIndex.js 2.22 kB
packages/icon/dist/umd/Secondary.js 1.78 kB
packages/icon/dist/umd/Serverless.js 1.74 kB
packages/icon/dist/umd/Settings.js 2.16 kB
packages/icon/dist/umd/ShardedCluster.js 2.11 kB
packages/icon/dist/umd/Shell.js 1.65 kB
packages/icon/dist/umd/Shirt.js 1.6 kB
packages/icon/dist/umd/SMS.js 1.6 kB
packages/icon/dist/umd/SortAscending.js 1.69 kB
packages/icon/dist/umd/SortDescending.js 1.68 kB
packages/icon/dist/umd/Sparkle.js 2.02 kB
packages/icon/dist/umd/SplitHorizontal.js 1.45 kB
packages/icon/dist/umd/SplitVertical.js 1.45 kB
packages/icon/dist/umd/Stitch.js 1.49 kB
packages/icon/dist/umd/Stop.js 1.33 kB
packages/icon/dist/umd/Streaming.js 2.49 kB
packages/icon/dist/umd/String.js 1.6 kB
packages/icon/dist/umd/Sun.js 1.81 kB
packages/icon/dist/umd/Support.js 1.69 kB
packages/icon/dist/umd/Sweep.js 1.7 kB
packages/icon/dist/umd/Table.js 1.48 kB
packages/icon/dist/umd/Tag.js 1.51 kB
packages/icon/dist/umd/TemporaryTable.js 1.71 kB
packages/icon/dist/umd/ThumbsDown.js 1.81 kB
packages/icon/dist/umd/ThumbsUp.js 1.8 kB
packages/icon/dist/umd/TimeSeries.js 1.85 kB
packages/icon/dist/umd/TimeSeriesCollection.js 1.99 kB
packages/icon/dist/umd/Trash.js 1.51 kB
packages/icon/dist/umd/Undo.js 1.82 kB
packages/icon/dist/umd/University.js 2.02 kB
packages/icon/dist/umd/Unlock.js 1.7 kB
packages/icon/dist/umd/Unsorted.js 1.74 kB
packages/icon/dist/umd/UpDownCarets.js 1.58 kB
packages/icon/dist/umd/Upload.js 1.79 kB
packages/icon/dist/umd/VerticalEllipsis.js 1.49 kB
packages/icon/dist/umd/View.js 1.64 kB
packages/icon/dist/umd/Visibility.js 1.81 kB
packages/icon/dist/umd/VisibilityOff.js 2.22 kB
packages/icon/dist/umd/Warning.js 1.58 kB
packages/icon/dist/umd/Wizard.js 1.93 kB
packages/icon/dist/umd/Wrench.js 1.92 kB
packages/icon/dist/umd/Write.js 2.2 kB
packages/icon/dist/umd/X.js 1.62 kB
packages/icon/dist/umd/XWithCircle.js 1.56 kB
packages/icon/dist/Undo.js 1.82 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.58 kB
packages/icon/dist/Upload.js 1.79 kB
packages/icon/dist/VerticalEllipsis.js 1.49 kB
packages/icon/dist/View.js 1.64 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/umd/index.js 2.02 kB
packages/inline-definition/dist/esm/index.js 1.69 kB
packages/inline-definition/dist/umd/index.js 1.85 kB
packages/input-option/dist/esm/index.js 2.67 kB
packages/input-option/dist/umd/index.js 2.81 kB
packages/leafygreen-provider/dist/esm/index.js 1.86 kB
packages/leafygreen-provider/dist/umd/index.js 2.02 kB
packages/lib/dist/esm/index.js 2.54 kB
packages/lib/dist/umd/index.js 2.7 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/umd/index.js 3.55 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.49 kB
packages/marketing-modal/dist/umd/index.js 3.69 kB
packages/menu/dist/esm/index.js 7.94 kB
packages/menu/dist/umd/index.js 8.19 kB
packages/modal/dist/esm/index.js 3.4 kB
packages/modal/dist/umd/index.js 3.62 kB
packages/number-input/dist/esm/index.js 5.64 kB
packages/number-input/dist/umd/index.js 5.83 kB
packages/ordered-list/dist/esm/index.js 1.32 kB
packages/ordered-list/dist/umd/index.js 1.49 kB
packages/pagination/dist/esm/index.js 1.68 kB
packages/pagination/dist/umd/index.js 1.89 kB
packages/palette/dist/esm/index.js 411 B
packages/palette/dist/umd/index.js 562 B
packages/password-input/dist/esm/index.js 4.42 kB
packages/password-input/dist/umd/index.js 4.65 kB
packages/pipeline/dist/esm/index.js 7.85 kB
packages/pipeline/dist/umd/index.js 8.11 kB
packages/polymorphic/dist/esm/index.js 1.27 kB
packages/polymorphic/dist/umd/index.js 1.4 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 929 B
packages/portal/dist/umd/index.js 1.09 kB
packages/radio-box-group/dist/esm/index.js 2.87 kB
packages/radio-box-group/dist/umd/index.js 2.99 kB
packages/radio-group/dist/esm/index.js 3.25 kB
packages/radio-group/dist/umd/index.js 3.38 kB
packages/ripple/dist/esm/index.js 956 B
packages/ripple/dist/umd/index.js 1.05 kB
packages/search-input/dist/esm/index.js 5.89 kB
packages/search-input/dist/umd/index.js 6.11 kB
packages/segmented-control/dist/esm/index.js 5.44 kB
packages/segmented-control/dist/umd/index.js 5.57 kB
packages/select/dist/esm/index.js 8.47 kB
packages/select/dist/esm/testing/index.js 699 B
packages/select/dist/umd/index.js 8.68 kB
packages/select/dist/umd/testing/index.js 831 B
packages/side-nav/dist/esm/index.js 7.46 kB
packages/side-nav/dist/umd/index.js 7.7 kB
packages/skeleton-loader/dist/esm/index.js 3.19 kB
packages/skeleton-loader/dist/umd/index.js 3.39 kB
packages/split-button/dist/esm/index.js 3.46 kB
packages/split-button/dist/umd/index.js 3.63 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 7.9 kB
packages/table/dist/esm/testing/index.js 660 B
packages/table/dist/umd/index.js 8.15 kB
packages/table/dist/umd/testing/index.js 789 B
packages/tabs/dist/esm/index.js 5.07 kB
packages/tabs/dist/esm/testing/index.js 589 B
packages/tabs/dist/umd/index.js 5.2 kB
packages/tabs/dist/umd/testing/index.js 710 B
packages/testing-lib/dist/esm/index.js 4.52 kB
packages/testing-lib/dist/umd/index.js 4.74 kB
packages/testing-lib/dist/umd/renderHookServer.js 592 B
packages/testing-lib/dist/umd/renderHookServerV17.js 388 B
packages/text-area/dist/esm/index.js 2.11 kB
packages/text-area/dist/esm/testing/index.js 468 B
packages/text-area/dist/umd/index.js 2.26 kB
packages/text-area/dist/umd/testing/index.js 603 B
packages/text-input/dist/esm/index.js 2.42 kB
packages/text-input/dist/esm/testing/index.js 463 B
packages/text-input/dist/umd/index.js 2.58 kB
packages/text-input/dist/umd/testing/index.js 598 B
packages/toast/dist/esm/index.js 8.22 kB
packages/toast/dist/umd/index.js 8.51 kB
packages/toggle/dist/esm/index.js 2.92 kB
packages/toggle/dist/esm/testing/index.js 260 B
packages/toggle/dist/umd/index.js 3.1 kB
packages/toggle/dist/umd/testing/index.js 389 B
packages/tokens/dist/esm/index.js 2.5 kB
packages/tokens/dist/umd/index.js 2.62 kB
packages/tooltip/dist/esm/index.js 4.3 kB
packages/tooltip/dist/umd/index.js 4.58 kB
packages/typography/dist/esm/index.js 5.75 kB
packages/typography/dist/umd/index.js 5.9 kB
tools/build/dist/esm/index.js 7.38 kB
tools/build/dist/umd/cli.js 7.73 kB
tools/build/dist/umd/index.js 7.68 kB
tools/cli/dist/esm/index.js 2.33 kB
tools/cli/dist/umd/index.js 2.49 kB
tools/codemods/dist/_virtual/_rollupPluginBabelHelpers.js 940 B
tools/codemods/dist/codemods/popover-v12/transform.js 1.11 kB
tools/codemods/dist/constants.js 148 B
tools/codemods/dist/esm/_virtual/_rollupPluginBabelHelpers.mjs 935 B
tools/codemods/dist/esm/codemods/popover-v12/transform.mjs 1.09 kB
tools/codemods/dist/esm/constants.mjs 148 B
tools/codemods/dist/esm/index.js 4.58 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/types.js 765 B
tools/codemods/dist/umd/index.js 4.81 kB
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 3.58 kB
tools/create/dist/umd/index.js 3.73 kB
tools/install/dist/esm/index.js 2.14 kB
tools/install/dist/umd/index.js 2.29 kB
tools/link/dist/esm/index.js 5.04 kB
tools/link/dist/umd/index.js 5.15 kB
tools/lint/dist/esm/index.js 5.36 kB
tools/lint/dist/umd/index.js 5.49 kB
tools/meta/dist/esm/index.js 1.72 kB
tools/meta/dist/umd/index.js 1.86 kB
tools/prompt-kit/dist/esm/index.js 3.49 kB
tools/prompt-kit/dist/umd/index.js 3.63 kB
tools/slackbot/dist/esm/index.js 6.1 kB
tools/slackbot/dist/umd/index.js 6.27 kB
tools/storybook-addon/dist/esm/index.js 2.2 kB
tools/storybook-addon/dist/esm/main.js 2.2 kB
tools/storybook-addon/dist/esm/manager.js 554 B
tools/storybook-addon/dist/esm/preview.js 1.6 kB
tools/storybook-addon/dist/umd/index.js 2.31 kB
tools/storybook-addon/dist/umd/main.js 2.31 kB
tools/storybook-addon/dist/umd/manager.js 687 B
tools/storybook-addon/dist/umd/preview.js 1.69 kB
tools/storybook-decorators/dist/esm/index.js 3.29 kB
tools/storybook-decorators/dist/umd/index.js 3.57 kB
tools/storybook-utils/dist/esm/index.js 4.01 kB
tools/storybook-utils/dist/umd/index.js 4.13 kB
tools/test-harnesses/dist/esm/index.js 1.79 kB
tools/test-harnesses/dist/umd/index.js 1.92 kB
tools/test/dist/esm/index.js 1.69 kB
tools/test/dist/umd/index.js 1.82 kB
tools/update/dist/esm/index.js 730 B
tools/update/dist/umd/index.js 895 B
tools/validate/dist/esm/index.js 6.96 kB
tools/validate/dist/umd/index.js 7.19 kB

compressed-size-action

Comment on lines +2 to +12
'@leafygreen-ui/code-editor': minor
---

- Creates package.
- Adds `CodeEditor` component with the following functionality:
- Basic setup
- Line wrapping
- Hyperlink support
- Forced parsing
- Placeholders
- Adds `renderEditor` test utility which exposes a number of helper methods.
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 is redundant? I believe this will lead to a republish of the same source code in 0.1.0 and 0.2.0

Also, is the plan to do incremental releases or did you want to wrap it all up into an integration branch?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Oh I see. So on the init package commit we typically don't have a changeset at all? Curious if it would be better then to bump the package down to 0.0.0?

I was just going to do incremental releases but if the team prefers integration branches I'm ok with that as well. What's the benefit of doing an integration branch here?

Copy link
Collaborator

Choose a reason for hiding this comment

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

My understanding is that publishing v0.1.0 and using incremental releases can be useful for consumers that need immediate access. Thinking some more on it, I'm not sure it would make sense to allow this to release until it's ready to be consumed which might be after designs/styling are complete?

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 think where I'm not following is if something is a sub-v1 release, that indicates to consumers that there's substantial risk in using it. That to me is a beta release by definition. So I'm not sure I understand why an integration branch would be necessary here. I could see that being useful when something is already versioned. For example, if this was already a v1 and the work in this epic would bring it to v2, an integration branch would be necessary since incomplete work would minor bump the v1 version, and indicate to consumers that its ready when its not. However, for sub-v1 releases, I'm not sure I feel that applies.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ok, spoke this one through with the team and am going to rebase this to an integration branch to mitigate the concerns that this isn't styled yet. Thanks for bringing this up!

Comment on lines +27 to +29
## Component

### `<CodeEditor>`
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this a stub for the future or can this be removed?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nope, that's the component name that's being documented here.


#### Example

```ts
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
```ts
```tsx

```ts
import { CodeEditor } from '@leafygreen-ui/code-editor';

<CodeEditor />;
Copy link
Collaborator

Choose a reason for hiding this comment

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

anything else you want to add for basic usage? maybe a code sample?

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 see this growing significantly. I considered just doing <CodeEditor {...props} /> but it just didn't seem to add much. So you'd prefer to see a default value here? I can add that. Will push shortly!

Comment on lines 10 to 36
export type CodeMirrorExtension = Extension;
export type CodeMirrorRef = ReactCodeMirrorRef;
export type CodeMirrorState = EditorState;
export type CodeMirrorView = EditorView;
Copy link
Collaborator

Choose a reason for hiding this comment

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

LGTM! One thing I noticed is that code mirror has docs for the types that aren't forwarded/inherited when they're reassigned in our code. I think it would be valuable for consumers if we included tsdocs to each of these

  1. Can we add a {@link ...} to the code mirror docs?
  2. Also wondering about adding a direct copy/paste of the tsdoc associated with Extension, ReactCodeMirrorRef, etc. Overall, I think it would be helpful although I worry that it could desync if/when we bump the dependency

export type CodeEditorSelectors =
(typeof CodeEditorSelectors)[keyof typeof CodeEditorSelectors];

export interface CodeEditorProps extends DarkModeProps {
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: can we add line breaks between props?

return (
<CodeMirror
value={value}
height="200px"
Copy link
Collaborator

Choose a reason for hiding this comment

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

This looks like a magic number that is worth breaking out into a separate constant

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good point! Will update

Comment on lines +37 to +52
const [value, setValue] = useState(defaultValue || '');
const editorRef = useRef<CodeMirrorRef>(null);

const onChange = useCallback(
(val: string) => {
setValue(val);

if (onChangeProp) {
onChangeProp(val);
}
},
[onChangeProp],
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I haven't had a need for it yet myself, but useControlledValue may be handy here (or in a future refactor)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

So this is a bit odd but something I realized when putting this together. This isn't actually a controlled value. This has to do with how the CodeMirror component works. Though it accepts a value, manually updating that value doesn't appear to override the value displayed in the editor. So really it isn't controlled but accepts an initial value.

We can force controlled behavior though if we'd prefer that.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't think useControlledValue forces controlled behavior. It abstracts logic for the pattern of having a value and state setter function. Looks like it could work here

).toBeInTheDocument();
});

test('Fold gutter does not renders when disabled', () => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
test('Fold gutter does not renders when disabled', () => {
test('Fold gutter does not render when disabled', () => {

width="100%"
onChange={onChange}
onCreateEditor={onCreateEditor}
readOnly={readOnly}
Copy link
Collaborator

Choose a reason for hiding this comment

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

I know styling isn't covered here but will leave a note for the future: I might expect readOnly state to prevent cursor blinking in addition to disabling typing

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This makes sense to me! I'm not going to update on this PR but will definitely make sure this is addressed when we get to styling things.

@tsck tsck requested a review from stephl3 May 20, 2025 16:21
@tsck tsck changed the base branch from main to integration/code-editor May 23, 2025 15:18
@tsck tsck force-pushed the LG-5067/editor-basic branch from 190a3ff to 40e1508 Compare May 23, 2025 15:19
@tsck tsck force-pushed the LG-5067/editor-basic branch from c71c574 to d2d186a Compare May 23, 2025 18:05
@tsck tsck merged commit 4195fcf into integration/code-editor May 23, 2025
11 checks passed
@tsck tsck deleted the LG-5067/editor-basic branch May 23, 2025 19:22
tsck added a commit that referenced this pull request May 23, 2025
* feat(code-editor): initialize code editor package with README, configuration, and basic components

* feat(code-editor): enhance CodeEditor component with new props and dependencies

* refactor(code-editor): change import statements to use 'type' for CodeEditorProps

* feat(code-editor): update CodeEditor stories with args and argTypes for better customization

* Start test suite

* Fix deps

* feat(code-editor): refactor extensions handling using Compartment for dynamic configuration

* feat(tests): enhance CodeEditor tests with improved selector handling and new assertions

* feat(code-editor): rename 'value' prop to 'initialValue' for consistency and clarity

* feat(code-editor): rename 'initialValue' prop to 'defaultValue' for consistency and update related tests

* feat(code-editor): enable active line highlighting based on prop for improved editor usability

* feat(tests): enable forceParsing test and update mock implementation for consistency

* feat(tests): refactor CodeEditor tests to use new renderCodeEditor utility and update selectors

* refactor(tests): move MutationObserver mock to testUtils for better organization

* feat(docs): update README to include new CodeEditor properties and test utilities

* refactor(tests): update typing test to use userEvent and export editor utilities

* refactor(tests): update CodeEditor interactions and test utilities for improved clarity

* test: update forceParsing method test to remove async and improve clarity

* changeset

* feat(docs): add CodeEditor package information to README

* feat: expand exports in index.ts to include additional CodeEditor types and functions

* refactor(tests): move renderCodeEditor utility to CodeEditor.testUtils for better organization

* feat(tests): add TestUtils for improved test rendering utilities

* fix: correct rendering description in tests and update README for CodeEditor example
refactor: extract CodeMirror dimensions into constants for better maintainability
docs: enhance CodeMirror types documentation with detailed descriptions
chore: remove unused package from ALL_PACKAGES.ts

* docs(code-editor): update README with CodeEditor example and default value

* chore(package): update node engine version to >= 18.20.8 (#2868)

* chore(package): update node engine version to >= 18.22.0

* chore(package): update node engine version to >= 18.20.8

* fix(package): update main and types paths in package.json

* chore(package): add @lg-tools/build to devDependencies

* chore(package): update build script in package.json

* feat(button): add exports field for module resolution

* feat(code-editor): add exports field for module resolution
fix(button): remove exports field from package.json
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