Skip to content

Conversation

@shaneeza
Copy link
Collaborator

@shaneeza shaneeza commented Nov 7, 2025

✍️ Proposed changes

This PR is the first PR in a series of three PRs that adds the new InputBox package and integrates it into the existing DatePicker package:

  1. This PR
  2. [LG-5504] feat(input-box): add InputBox #3285
  3. [LG-5504] refactor(date-picker): migrate to use InputBox component #3286

This PR adds the generic InputSegment component to the new @leafygreen-ui/input-box package, which provides reusable input segment functionality for date and time components. The component extracts common logic and UI elements previously embedded in the date-picker package, making it available for use across DatePicker, TimeInput, and other similar components.

🎟 Jira ticket: LG-5504

✅ Checklist

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 will look as intended on the design website.

🧪 How to test changes

  1. Check that the new InputSegment component renders correctly in their respective stories

@changeset-bot
Copy link

changeset-bot bot commented Nov 7, 2025

⚠️ No Changeset found

Latest commit: af7501f

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

This PR includes no changesets

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

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

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

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I think i should break these out into smaller files

Copy link
Collaborator

Choose a reason for hiding this comment

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

👍 Not necessary, but wouldn't hurt

@shaneeza shaneeza requested review from a team, TheSonOfThomp and stephl3 and removed request for a team November 7, 2025 22:10
@shaneeza shaneeza marked this pull request as ready for review November 7, 2025 22:10
@shaneeza shaneeza requested a review from a team as a code owner November 7, 2025 22:10
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

Size Change: +1.5 kB (+0.08%)

Total Size: 1.79 MB

Filename Size Change
packages/icon/dist/umd/index.js 111 kB +1.46 kB (+1.34%)
packages/input-box/dist/esm/index.js 640 B +16 B (+2.56%)
packages/input-box/dist/umd/index.js 804 B +15 B (+1.9%)
ℹ️ View Unchanged
Filename Size
charts/chart-card/dist/esm/index.js 2.79 kB
charts/chart-card/dist/umd/index.js 2.94 kB
charts/colors/dist/esm/index.js 530 B
charts/colors/dist/umd/index.js 657 B
charts/core/dist/esm/index.js 16.5 kB
charts/core/dist/umd/index.js 16.7 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.53 kB
charts/legend/dist/umd/index.js 1.68 kB
charts/series-provider/dist/esm/index.js 1.28 kB
charts/series-provider/dist/umd/index.js 1.41 kB
chat/chat-layout/dist/esm/index.js 4.91 kB
chat/chat-layout/dist/umd/index.js 5.12 kB
chat/chat-window/dist/esm/index.js 1 kB
chat/chat-window/dist/umd/index.js 1.2 kB
chat/input-bar/dist/esm/index.js 5.91 kB
chat/input-bar/dist/umd/index.js 6.1 kB
chat/leafygreen-chat-provider/dist/esm/index.js 267 B
chat/leafygreen-chat-provider/dist/umd/index.js 427 B
chat/lg-markdown/dist/esm/index.js 2.15 kB
chat/lg-markdown/dist/umd/index.js 2.29 kB
chat/message-feed/dist/esm/index.js 2.2 kB
chat/message-feed/dist/umd/index.js 2.36 kB
chat/message-feedback/dist/esm/index.js 4.05 kB
chat/message-feedback/dist/umd/index.js 4.22 kB
chat/message-prompts/dist/esm/index.js 2.25 kB
chat/message-prompts/dist/umd/index.js 2.42 kB
chat/message-rating/dist/esm/index.js 1.47 kB
chat/message-rating/dist/umd/index.js 1.66 kB
chat/message/dist/esm/index.js 6.27 kB
chat/message/dist/umd/index.js 6.54 kB
chat/rich-links/dist/esm/index.js 2.4 kB
chat/rich-links/dist/umd/index.js 2.59 kB
chat/suggestions/dist/esm/index.js 1.66 kB
chat/suggestions/dist/esm/testing/index.js 55 B
chat/suggestions/dist/umd/index.js 1.84 kB
chat/suggestions/dist/umd/testing/index.js 113 B
chat/title-bar/dist/esm/index.js 936 B
chat/title-bar/dist/umd/index.js 1.11 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.39 kB
packages/avatar/dist/umd/index.js 3.57 kB
packages/badge/dist/esm/index.js 1.47 kB
packages/badge/dist/umd/index.js 1.67 kB
packages/banner/dist/esm/index.js 3.2 kB
packages/banner/dist/umd/index.js 3.5 kB
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.74 kB
packages/card/dist/esm/index.js 1.47 kB
packages/card/dist/umd/index.js 1.65 kB
packages/checkbox/dist/esm/index.js 4.28 kB
packages/checkbox/dist/umd/index.js 4.48 kB
packages/chip/dist/esm/index.js 3.22 kB
packages/chip/dist/umd/index.js 3.41 kB
packages/code-editor/dist/esm/index.js 18.9 kB
packages/code-editor/dist/esm/testing/index.js 4.19 kB
packages/code-editor/dist/umd/index.js 19.2 kB
packages/code-editor/dist/umd/testing/index.js 4.33 kB
packages/code/dist/esm/index.js 10.5 kB
packages/code/dist/esm/testing/index.js 11.3 kB
packages/code/dist/umd/index.js 11.1 kB
packages/code/dist/umd/testing/index.js 11.9 kB
packages/combobox/dist/esm/index.js 11.8 kB
packages/combobox/dist/umd/index.js 12.1 kB
packages/compound-component/dist/esm/index.js 1.09 kB
packages/compound-component/dist/umd/index.js 1.17 kB
packages/confirmation-modal/dist/esm/index.js 2.63 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.28 kB
packages/context-drawer/dist/umd/testing/index.js 3.67 kB
packages/copyable/dist/esm/index.js 2.91 kB
packages/copyable/dist/umd/index.js 3.1 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.75 kB
packages/date-utils/dist/esm/testing/index.js 1.35 kB
packages/date-utils/dist/umd/index.js 2.86 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.76 kB
packages/empty-state/dist/umd/index.js 1.93 kB
packages/expandable-card/dist/esm/index.js 2.96 kB
packages/expandable-card/dist/esm/testing/index.js 3.48 kB
packages/expandable-card/dist/umd/index.js 3.18 kB
packages/expandable-card/dist/umd/testing/index.js 3.67 kB
packages/feature-walls/dist/esm/index.js 6.74 kB
packages/feature-walls/dist/umd/index.js 6.99 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.72 kB
packages/form-footer/dist/umd/index.js 1.94 kB
packages/gallery-indicator/dist/esm/index.js 1.5 kB
packages/gallery-indicator/dist/esm/testing/index.js 351 B
packages/gallery-indicator/dist/umd/index.js 1.66 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.36 kB
packages/hooks/dist/esm/index.js 3.65 kB
packages/hooks/dist/umd/index.js 3.79 kB
packages/icon-button/dist/esm/index.js 2.28 kB
packages/icon-button/dist/umd/index.js 2.49 kB
packages/icon/dist/esm/ActivityFeed.js 1.18 kB
packages/icon/dist/esm/AddFile.js 964 B
packages/icon/dist/esm/AIModel.js 1.68 kB
packages/icon/dist/esm/AllProducts.js 1.05 kB
packages/icon/dist/esm/AnalyticsNode.js 821 B
packages/icon/dist/esm/Apps.js 660 B
packages/icon/dist/esm/Array.js 781 B
packages/icon/dist/esm/ArrowDown.js 892 B
packages/icon/dist/esm/ArrowLeft.js 895 B
packages/icon/dist/esm/ArrowRight.js 890 B
packages/icon/dist/esm/ArrowUp.js 887 B
packages/icon/dist/esm/Award.js 1.3 kB
packages/icon/dist/esm/Beaker.js 1.3 kB
packages/icon/dist/esm/Bell.js 857 B
packages/icon/dist/esm/Biometric.js 1.39 kB
packages/icon/dist/esm/Boolean.js 706 B
packages/icon/dist/esm/Building.js 851 B
packages/icon/dist/esm/Bulb.js 891 B
packages/icon/dist/esm/Calendar.js 852 B
packages/icon/dist/esm/Camera.js 934 B
packages/icon/dist/esm/Cap.js 1.04 kB
packages/icon/dist/esm/CaretDown.js 726 B
packages/icon/dist/esm/CaretLeft.js 725 B
packages/icon/dist/esm/CaretRight.js 720 B
packages/icon/dist/esm/CaretUp.js 725 B
packages/icon/dist/esm/ChartFilled.js 819 B
packages/icon/dist/esm/Charts.js 805 B
packages/icon/dist/esm/Checkmark.js 850 B
packages/icon/dist/esm/CheckmarkWithCircle.js 912 B
packages/icon/dist/esm/ChevronDown.js 824 B
packages/icon/dist/esm/ChevronLeft.js 822 B
packages/icon/dist/esm/ChevronRight.js 833 B
packages/icon/dist/esm/ChevronUp.js 812 B
packages/icon/dist/esm/Circle.js 602 B
packages/icon/dist/esm/Clock.js 874 B
packages/icon/dist/esm/ClockWithArrow.js 1.13 kB
packages/icon/dist/esm/Clone.js 759 B
packages/icon/dist/esm/Cloud.js 926 B
packages/icon/dist/esm/Code.js 1.11 kB
packages/icon/dist/esm/CodeBlock.js 1.06 kB
packages/icon/dist/esm/Coin.js 1.16 kB
packages/icon/dist/esm/Colon.js 717 B
packages/icon/dist/esm/Config.js 1.01 kB
packages/icon/dist/esm/Connect.js 1.15 kB
packages/icon/dist/esm/Copy.js 1.11 kB
packages/icon/dist/esm/CreditCard.js 688 B
packages/icon/dist/esm/CurlyBraces.js 1.26 kB
packages/icon/dist/esm/Cursor.js 806 B
packages/icon/dist/esm/Dashboard.js 828 B
packages/icon/dist/esm/Database.js 1.26 kB
packages/icon/dist/esm/Diagram.js 899 B
packages/icon/dist/esm/Diagram2.js 905 B
packages/icon/dist/esm/Diagram3.js 884 B
packages/icon/dist/esm/Disconnect.js 1.1 kB
packages/icon/dist/esm/Download.js 1.03 kB
packages/icon/dist/esm/Drag.js 869 B
packages/icon/dist/esm/Edit.js 765 B
packages/icon/dist/esm/Ellipsis.js 758 B
packages/icon/dist/esm/Email.js 948 B
packages/icon/dist/esm/EmptyDatabase.js 3.44 kB
packages/icon/dist/esm/EmptyFolder.js 1.33 kB
packages/icon/dist/esm/Eraser.js 1.01 kB
packages/icon/dist/esm/Escalation.js 910 B
packages/icon/dist/esm/Export.js 1.02 kB
packages/icon/dist/esm/Favorite.js 970 B
packages/icon/dist/esm/Federation.js 1.27 kB
packages/icon/dist/esm/File.js 793 B
packages/icon/dist/esm/Filter.js 779 B
packages/icon/dist/esm/Folder.js 694 B
packages/icon/dist/esm/Format.js 1.1 kB
packages/icon/dist/esm/FullScreenEnter.js 943 B
packages/icon/dist/esm/FullScreenExit.js 952 B
packages/icon/dist/esm/Function.js 1.92 kB
packages/icon/dist/esm/Gauge.js 964 B
packages/icon/dist/esm/GlobeAmericas.js 890 B
packages/icon/dist/esm/glyphCommon-cTThlth0.js 825 B
packages/icon/dist/esm/GovernmentBuilding.js 931 B
packages/icon/dist/esm/Guide.js 1.22 kB
packages/icon/dist/esm/Hash.js 1.07 kB
packages/icon/dist/esm/HiddenSecondaryNode.js 2.31 kB
packages/icon/dist/esm/Highlight.js 1.1 kB
packages/icon/dist/esm/Home.js 1.03 kB
packages/icon/dist/esm/HorizontalDrag.js 876 B
packages/icon/dist/esm/Import.js 1.01 kB
packages/icon/dist/esm/ImportantWithCircle.js 792 B
packages/icon/dist/esm/index.js 109 kB
packages/icon/dist/esm/InfoWithCircle.js 825 B
packages/icon/dist/esm/InternalEmployee.js 1.1 kB
packages/icon/dist/esm/InviteUser.js 1.11 kB
packages/icon/dist/esm/Key.js 926 B
packages/icon/dist/esm/Laptop.js 910 B
packages/icon/dist/esm/LightningBolt.js 790 B
packages/icon/dist/esm/Link.js 1.25 kB
packages/icon/dist/esm/List.js 939 B
packages/icon/dist/esm/Lock.js 879 B
packages/icon/dist/esm/LogIn.js 951 B
packages/icon/dist/esm/LogOut.js 1.01 kB
packages/icon/dist/esm/MagnifyingGlass.js 859 B
packages/icon/dist/esm/Megaphone.js 830 B
packages/icon/dist/esm/Menu.js 753 B
packages/icon/dist/esm/Minus.js 703 B
packages/icon/dist/esm/Mobile.js 698 B
packages/icon/dist/esm/Moon.js 870 B
packages/icon/dist/esm/MultiDirectionArrow.js 906 B
packages/icon/dist/esm/MultiLayers.js 1.83 kB
packages/icon/dist/esm/NavCollapse.js 924 B
packages/icon/dist/esm/NavExpand.js 934 B
packages/icon/dist/esm/NoFilter.js 911 B
packages/icon/dist/esm/NotAllowed.js 808 B
packages/icon/dist/esm/Note.js 842 B
packages/icon/dist/esm/NumberedList.js 1.7 kB
packages/icon/dist/esm/OpenNewTab.js 1.1 kB
packages/icon/dist/esm/OutlineFavorite.js 1.23 kB
packages/icon/dist/esm/Package.js 1.08 kB
packages/icon/dist/esm/Pause.js 753 B
packages/icon/dist/esm/Pending.js 732 B
packages/icon/dist/esm/Person.js 908 B
packages/icon/dist/esm/PersonGroup.js 1.1 kB
packages/icon/dist/esm/PersonWithLock.js 1.1 kB
packages/icon/dist/esm/Pin.js 854 B
packages/icon/dist/esm/Play.js 736 B
packages/icon/dist/esm/Plus.js 757 B
packages/icon/dist/esm/PlusWithCircle.js 787 B
packages/icon/dist/esm/Primary.js 804 B
packages/icon/dist/esm/Project.js 843 B
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.13 kB
packages/icon/dist/esm/Read.js 1.42 kB
packages/icon/dist/esm/Recommended.js 1.58 kB
packages/icon/dist/esm/Redo.js 1.06 kB
packages/icon/dist/esm/Refresh.js 1.13 kB
packages/icon/dist/esm/Relationship.js 852 B
packages/icon/dist/esm/ReplicaSet.js 997 B
packages/icon/dist/esm/Resize.js 825 B
packages/icon/dist/esm/Resource.js 1.14 kB
packages/icon/dist/esm/Return.js 909 B
packages/icon/dist/esm/Revert.js 943 B
packages/icon/dist/esm/Router.js 1.6 kB
packages/icon/dist/esm/Save.js 1.32 kB
packages/icon/dist/esm/SearchIndex.js 1.45 kB
packages/icon/dist/esm/Secondary.js 1.03 kB
packages/icon/dist/esm/Serverless.js 976 B
packages/icon/dist/esm/Settings.js 1.39 kB
packages/icon/dist/esm/ShardedCluster.js 1.35 kB
packages/icon/dist/esm/Shell.js 900 B
packages/icon/dist/esm/Shield.js 1.3 kB
packages/icon/dist/esm/Shirt.js 855 B
packages/icon/dist/esm/Shortcut.js 1.4 kB
packages/icon/dist/esm/SMS.js 864 B
packages/icon/dist/esm/SortAscending.js 947 B
packages/icon/dist/esm/SortDescending.js 939 B
packages/icon/dist/esm/Sparkle.js 1.25 kB
packages/icon/dist/esm/SplitHorizontal.js 719 B
packages/icon/dist/esm/SplitVertical.js 718 B
packages/icon/dist/esm/Stitch.js 754 B
packages/icon/dist/esm/Stop.js 609 B
packages/icon/dist/esm/Streaming.js 1.7 kB
packages/icon/dist/esm/String.js 857 B
packages/icon/dist/esm/Sun.js 1.07 kB
packages/icon/dist/esm/Support.js 937 B
packages/icon/dist/esm/Sweep.js 964 B
packages/icon/dist/esm/Table.js 742 B
packages/icon/dist/esm/Tag.js 781 B
packages/icon/dist/esm/TemporaryTable.js 967 B
packages/icon/dist/esm/ThumbsDown.js 1.05 kB
packages/icon/dist/esm/ThumbsUp.js 1.04 kB
packages/icon/dist/esm/TimeSeries.js 1.08 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.21 kB
packages/icon/dist/esm/Trash.js 770 B
packages/icon/dist/esm/Undo.js 1.06 kB
packages/icon/dist/esm/University.js 1.25 kB
packages/icon/dist/esm/Unlock.js 947 B
packages/icon/dist/esm/Unsorted.js 991 B
packages/icon/dist/esm/UpDownCarets.js 845 B
packages/icon/dist/esm/Upload.js 1.03 kB
packages/icon/dist/esm/VerticalEllipsis.js 768 B
packages/icon/dist/esm/View.js 903 B
packages/icon/dist/esm/Visibility.js 1.06 kB
packages/icon/dist/esm/VisibilityOff.js 1.44 kB
packages/icon/dist/esm/Warning.js 839 B
packages/icon/dist/esm/Wizard.js 1.15 kB
packages/icon/dist/esm/Wrench.js 1.15 kB
packages/icon/dist/esm/Write.js 1.43 kB
packages/icon/dist/esm/X.js 879 B
packages/icon/dist/esm/XWithCircle.js 824 B
packages/icon/dist/umd/ActivityFeed.js 2.04 kB
packages/icon/dist/umd/AddFile.js 1.81 kB
packages/icon/dist/umd/AIModel.js 2.56 kB
packages/icon/dist/umd/AllProducts.js 1.88 kB
packages/icon/dist/umd/AnalyticsNode.js 1.65 kB
packages/icon/dist/umd/Apps.js 1.48 kB
packages/icon/dist/umd/Array.js 1.6 kB
packages/icon/dist/umd/ArrowDown.js 1.73 kB
packages/icon/dist/umd/ArrowLeft.js 1.74 kB
packages/icon/dist/umd/ArrowRight.js 1.73 kB
packages/icon/dist/umd/ArrowUp.js 1.73 kB
packages/icon/dist/umd/Award.js 2.17 kB
packages/icon/dist/umd/Beaker.js 2.16 kB
packages/icon/dist/umd/Bell.js 1.69 kB
packages/icon/dist/umd/Biometric.js 2.26 kB
packages/icon/dist/umd/Boolean.js 1.53 kB
packages/icon/dist/umd/Building.js 1.68 kB
packages/icon/dist/umd/Bulb.js 1.73 kB
packages/icon/dist/umd/Calendar.js 1.68 kB
packages/icon/dist/umd/Camera.js 1.77 kB
packages/icon/dist/umd/Cap.js 1.89 kB
packages/icon/dist/umd/CaretDown.js 1.55 kB
packages/icon/dist/umd/CaretLeft.js 1.55 kB
packages/icon/dist/umd/CaretRight.js 1.55 kB
packages/icon/dist/umd/CaretUp.js 1.55 kB
packages/icon/dist/umd/ChartFilled.js 1.65 kB
packages/icon/dist/umd/Charts.js 1.62 kB
packages/icon/dist/umd/Checkmark.js 1.69 kB
packages/icon/dist/umd/CheckmarkWithCircle.js 1.76 kB
packages/icon/dist/umd/ChevronDown.js 1.65 kB
packages/icon/dist/umd/ChevronLeft.js 1.65 kB
packages/icon/dist/umd/ChevronRight.js 1.67 kB
packages/icon/dist/umd/ChevronUp.js 1.64 kB
packages/icon/dist/umd/Circle.js 1.42 kB
packages/icon/dist/umd/Clock.js 1.71 kB
packages/icon/dist/umd/ClockWithArrow.js 2 kB
packages/icon/dist/umd/Clone.js 1.58 kB
packages/icon/dist/umd/Cloud.js 1.77 kB
packages/icon/dist/umd/Code.js 1.98 kB
packages/icon/dist/umd/CodeBlock.js 1.91 kB
packages/icon/dist/umd/Coin.js 2.02 kB
packages/icon/dist/umd/Colon.js 1.54 kB
packages/icon/dist/umd/Config.js 1.85 kB
packages/icon/dist/umd/Connect.js 2.01 kB
packages/icon/dist/umd/Copy.js 1.96 kB
packages/icon/dist/umd/CreditCard.js 1.51 kB
packages/icon/dist/umd/CurlyBraces.js 2.12 kB
packages/icon/dist/umd/Cursor.js 1.64 kB
packages/icon/dist/umd/Dashboard.js 1.65 kB
packages/icon/dist/umd/Database.js 2.11 kB
packages/icon/dist/umd/Diagram.js 1.73 kB
packages/icon/dist/umd/Diagram2.js 1.74 kB
packages/icon/dist/umd/Diagram3.js 1.71 kB
packages/icon/dist/umd/Disconnect.js 1.95 kB
packages/icon/dist/umd/Download.js 1.87 kB
packages/icon/dist/umd/Drag.js 1.7 kB
packages/icon/dist/umd/Edit.js 1.6 kB
packages/icon/dist/umd/Ellipsis.js 1.57 kB
packages/icon/dist/umd/Email.js 1.79 kB
packages/icon/dist/umd/EmptyDatabase.js 4.4 kB
packages/icon/dist/umd/EmptyFolder.js 2.18 kB
packages/icon/dist/umd/Eraser.js 1.86 kB
packages/icon/dist/umd/Escalation.js 1.76 kB
packages/icon/dist/umd/Export.js 1.87 kB
packages/icon/dist/umd/Favorite.js 1.82 kB
packages/icon/dist/umd/Federation.js 2.15 kB
packages/icon/dist/umd/File.js 1.62 kB
packages/icon/dist/umd/Filter.js 1.61 kB
packages/icon/dist/umd/Folder.js 1.52 kB
packages/icon/dist/umd/Format.js 1.94 kB
packages/icon/dist/umd/FullScreenEnter.js 1.77 kB
packages/icon/dist/umd/FullScreenExit.js 1.78 kB
packages/icon/dist/umd/Function.js 2.84 kB
packages/icon/dist/umd/Gauge.js 1.82 kB
packages/icon/dist/umd/GlobeAmericas.js 1.73 kB
packages/icon/dist/umd/GovernmentBuilding.js 1.76 kB
packages/icon/dist/umd/Guide.js 2.08 kB
packages/icon/dist/umd/Hash.js 1.92 kB
packages/icon/dist/umd/HiddenSecondaryNode.js 3.2 kB
packages/icon/dist/umd/Highlight.js 1.97 kB
packages/icon/dist/umd/Home.js 1.88 kB
packages/icon/dist/umd/HorizontalDrag.js 1.7 kB
packages/icon/dist/umd/Import.js 1.86 kB
packages/icon/dist/umd/ImportantWithCircle.js 1.62 kB
packages/icon/dist/umd/InfoWithCircle.js 1.65 kB
packages/icon/dist/umd/InternalEmployee.js 1.95 kB
packages/icon/dist/umd/InviteUser.js 1.96 kB
packages/icon/dist/umd/Key.js 1.76 kB
packages/icon/dist/umd/Laptop.js 1.75 kB
packages/icon/dist/umd/LightningBolt.js 1.62 kB
packages/icon/dist/umd/Link.js 2.13 kB
packages/icon/dist/umd/List.js 1.76 kB
packages/icon/dist/umd/Lock.js 1.72 kB
packages/icon/dist/umd/LogIn.js 1.79 kB
packages/icon/dist/umd/LogOut.js 1.85 kB
packages/icon/dist/umd/MagnifyingGlass.js 1.69 kB
packages/icon/dist/umd/Megaphone.js 1.67 kB
packages/icon/dist/umd/Menu.js 1.57 kB
packages/icon/dist/umd/Minus.js 1.53 kB
packages/icon/dist/umd/Mobile.js 1.52 kB
packages/icon/dist/umd/Moon.js 1.71 kB
packages/icon/dist/umd/MultiDirectionArrow.js 1.74 kB
packages/icon/dist/umd/MultiLayers.js 2.71 kB
packages/icon/dist/umd/NavCollapse.js 1.76 kB
packages/icon/dist/umd/NavExpand.js 1.77 kB
packages/icon/dist/umd/NoFilter.js 1.76 kB
packages/icon/dist/umd/NotAllowed.js 1.64 kB
packages/icon/dist/umd/Note.js 1.67 kB
packages/icon/dist/umd/NumberedList.js 2.58 kB
packages/icon/dist/umd/OpenNewTab.js 1.96 kB
packages/icon/dist/umd/OutlineFavorite.js 2.09 kB
packages/icon/dist/umd/Package.js 1.93 kB
packages/icon/dist/umd/Pause.js 1.57 kB
packages/icon/dist/umd/Pending.js 1.55 kB
packages/icon/dist/umd/Person.js 1.75 kB
packages/icon/dist/umd/PersonGroup.js 1.95 kB
packages/icon/dist/umd/PersonWithLock.js 1.95 kB
packages/icon/dist/umd/Pin.js 1.69 kB
packages/icon/dist/umd/Play.js 1.56 kB
packages/icon/dist/umd/Plus.js 1.58 kB
packages/icon/dist/umd/PlusWithCircle.js 1.61 kB
packages/icon/dist/umd/Primary.js 1.63 kB
packages/icon/dist/umd/Project.js 1.67 kB
packages/icon/dist/umd/QuestionMarkWithCircle.js 1.99 kB
packages/icon/dist/umd/Read.js 2.29 kB
packages/icon/dist/umd/Recommended.js 2.47 kB
packages/icon/dist/umd/Redo.js 1.93 kB
packages/icon/dist/umd/Refresh.js 2 kB
packages/icon/dist/umd/Relationship.js 1.68 kB
packages/icon/dist/umd/ReplicaSet.js 1.84 kB
packages/icon/dist/umd/Resize.js 1.65 kB
packages/icon/dist/umd/Resource.js 1.99 kB
packages/icon/dist/umd/Return.js 1.75 kB
packages/icon/dist/umd/Revert.js 1.8 kB
packages/icon/dist/umd/Router.js 2.46 kB
packages/icon/dist/umd/Save.js 2.18 kB
packages/icon/dist/umd/SearchIndex.js 2.32 kB
packages/icon/dist/umd/Secondary.js 1.87 kB
packages/icon/dist/umd/Serverless.js 1.83 kB
packages/icon/dist/umd/Settings.js 2.26 kB
packages/icon/dist/umd/ShardedCluster.js 2.21 kB
packages/icon/dist/umd/Shell.js 1.75 kB
packages/icon/dist/umd/Shield.js 2.19 kB
packages/icon/dist/umd/Shirt.js 1.69 kB
packages/icon/dist/umd/Shortcut.js 2.27 kB
packages/icon/dist/umd/SMS.js 1.7 kB
packages/icon/dist/umd/SortAscending.js 1.78 kB
packages/icon/dist/umd/SortDescending.js 1.77 kB
packages/icon/dist/umd/Sparkle.js 2.11 kB
packages/icon/dist/umd/SplitHorizontal.js 1.54 kB
packages/icon/dist/umd/SplitVertical.js 1.54 kB
packages/icon/dist/umd/Stitch.js 1.57 kB
packages/icon/dist/umd/Stop.js 1.43 kB
packages/icon/dist/umd/Streaming.js 2.59 kB
packages/icon/dist/umd/String.js 1.69 kB
packages/icon/dist/umd/Sun.js 1.91 kB
packages/icon/dist/umd/Support.js 1.78 kB
packages/icon/dist/umd/Sweep.js 1.8 kB
packages/icon/dist/umd/Table.js 1.56 kB
packages/icon/dist/umd/Tag.js 1.6 kB
packages/icon/dist/umd/TemporaryTable.js 1.81 kB
packages/icon/dist/umd/ThumbsDown.js 1.9 kB
packages/icon/dist/umd/ThumbsUp.js 1.9 kB
packages/icon/dist/umd/TimeSeries.js 1.95 kB
packages/icon/dist/umd/TimeSeriesCollection.js 2.08 kB
packages/icon/dist/umd/Trash.js 1.6 kB
packages/icon/dist/umd/Undo.js 1.92 kB
packages/icon/dist/umd/University.js 2.11 kB
packages/icon/dist/umd/Unlock.js 1.79 kB
packages/icon/dist/umd/Unsorted.js 1.83 kB
packages/icon/dist/umd/UpDownCarets.js 1.67 kB
packages/icon/dist/umd/Upload.js 1.88 kB
packages/icon/dist/umd/VerticalEllipsis.js 1.58 kB
packages/icon/dist/umd/View.js 1.73 kB
packages/icon/dist/umd/Visibility.js 1.91 kB
packages/icon/dist/umd/VisibilityOff.js 2.31 kB
packages/icon/dist/umd/Warning.js 1.67 kB
packages/icon/dist/umd/Wizard.js 2.03 kB
packages/icon/dist/umd/Wrench.js 2.01 kB
packages/icon/dist/umd/Write.js 2.3 kB
packages/icon/dist/umd/X.js 1.71 kB
packages/icon/dist/umd/XWithCircle.js 1.65 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.71 kB
packages/inline-definition/dist/umd/index.js 1.89 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.69 kB
packages/loading-indicator/dist/esm/page-loader/index.js 2.86 kB
packages/loading-indicator/dist/esm/spinner/index.js 1.9 kB
packages/loading-indicator/dist/esm/testing/index.js 316 B
packages/loading-indicator/dist/umd/index.js 3.86 kB
packages/loading-indicator/dist/umd/testing/index.js 441 B
packages/logo/dist/esm/index.js 39 kB
packages/logo/dist/umd/index.js 39.4 kB
packages/marketing-modal/dist/esm/index.js 3.55 kB
packages/marketing-modal/dist/umd/index.js 3.75 kB
packages/menu/dist/esm/index.js 8.13 kB
packages/menu/dist/umd/index.js 8.39 kB
packages/modal/dist/esm/index.js 3.41 kB
packages/modal/dist/umd/index.js 3.55 kB
packages/number-input/dist/esm/index.js 5.69 kB
packages/number-input/dist/umd/index.js 5.85 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.7 kB
packages/pagination/dist/umd/index.js 1.94 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.55 kB
packages/password-input/dist/umd/index.js 4.75 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 5.25 kB
packages/popover/dist/umd/index.js 5.4 kB
packages/portal/dist/esm/index.js 923 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.68 kB
packages/preview-card/dist/umd/index.js 2.5 kB
packages/preview-card/dist/umd/testing/index.js 2.81 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.91 kB
packages/search-input/dist/umd/index.js 6.11 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.67 kB
packages/select/dist/esm/testing/index.js 752 B
packages/select/dist/umd/index.js 8.87 kB
packages/select/dist/umd/testing/index.js 893 B
packages/side-nav/dist/esm/index.js 7.48 kB
packages/side-nav/dist/umd/index.js 7.72 kB
packages/skeleton-loader/dist/esm/index.js 3.25 kB
packages/skeleton-loader/dist/umd/index.js 3.47 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.48 kB
packages/stepper/dist/umd/index.js 3.69 kB
packages/table/dist/esm/index.js 8.04 kB
packages/table/dist/esm/testing/index.js 694 B
packages/table/dist/umd/index.js 8.27 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.2 kB
packages/text-area/dist/esm/testing/index.js 466 B
packages/text-area/dist/umd/index.js 2.36 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 520 B
packages/text-input/dist/umd/index.js 2.68 kB
packages/text-input/dist/umd/testing/index.js 654 B
packages/time-input/dist/esm/index.js 2.76 kB
packages/time-input/dist/esm/testing/index.js 107 B
packages/time-input/dist/umd/index.js 2.93 kB
packages/time-input/dist/umd/testing/index.js 236 B
packages/toast/dist/esm/index.js 8.28 kB
packages/toast/dist/umd/index.js 8.56 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.93 kB
packages/tokens/dist/umd/index.js 3.04 kB
packages/toolbar/dist/esm/index.js 3.27 kB
packages/toolbar/dist/esm/testing/index.js 527 B
packages/toolbar/dist/umd/index.js 3.39 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
packages/typography/dist/esm/index.js 5.8 kB
packages/typography/dist/umd/index.js 5.95 kB
packages/vertical-stepper/dist/esm/index.js 3.19 kB
packages/vertical-stepper/dist/umd/index.js 3.39 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/loading-spinner-v5/transform.js 897 B
tools/codemods/dist/codemods/modal-v20/transform.js 727 B
tools/codemods/dist/codemods/named-exports/transform.js 764 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/loading-spinner-v5/transform.mjs 896 B
tools/codemods/dist/esm/codemods/modal-v20/transform.mjs 731 B
tools/codemods/dist/esm/codemods/named-exports/transform.mjs 751 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/imports/hasNamedImport.mjs 179 B
tools/codemods/dist/esm/utils/imports/mergeImportSpecifiers.mjs 261 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/imports/hasNamedImport.js 183 B
tools/codemods/dist/utils/imports/mergeImportSpecifiers.js 260 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/eslint-plugin/dist/esm/index.js 1.08 kB
tools/eslint-plugin/dist/umd/index.js 1.18 kB
tools/install/dist/esm/index.js 2.21 kB
tools/install/dist/umd/index.js 2.37 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.56 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

step?: number;

/**
* Whether the segment should wrap at min/max boundaries
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

need to update this: should only be at the max boundary

…se object parameter format for improved clarity and consistency
…utBoxTypes and remove deprecated InputSegment types
Comment on lines 4 to 5
import { InputBoxProvider } from '../InputBoxContext/InputBoxContext';
import { InputBoxProviderProps } from '../InputBoxContext/InputBoxContext.types';
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
import { InputBoxProvider } from '../InputBoxContext/InputBoxContext';
import { InputBoxProviderProps } from '../InputBoxContext/InputBoxContext.types';
import { InputBoxProvider, type InputBoxProviderProps } from '../InputBoxContext/InputBoxContext';

Comment on lines 6 to 7
import { InputSegment } from '../InputSegment/InputSegment';
import { InputSegmentProps } from '../InputSegment/InputSegment.types';
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
import { InputSegment } from '../InputSegment/InputSegment';
import { InputSegmentProps } from '../InputSegment/InputSegment.types';
import { InputSegment, type InputSegmentProps } from '../InputSegment/InputSegment';

/**
* Which segment this input represents
*
* @example
Copy link
Collaborator

Choose a reason for hiding this comment

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

should this include time segment examples?

export interface InputSegmentProps<Segment extends string>
extends Omit<
React.ComponentPropsWithRef<'input'>,
'size' | 'step' | 'value'
Copy link
Collaborator

Choose a reason for hiding this comment

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

why do we omit 'size' and 'value'?

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 values are read from the context, not from the prop

*
* @default false
*/
shouldSkipValidation?: boolean;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is it worth refactoring out this double negative at this point? i.e. shouldValidate w/ default of true vs shouldSkipValidation w/ default of false? shouldValidate nicely maintains parallel structure with the shouldWrap boolean prop

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'd like to have a parallel structure. I'll update!

min,
max,
step,
shouldWrap: shouldWrap,
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
shouldWrap: shouldWrap,
shouldWrap,

Comment on lines 196 to 197
onBlur?.(e);
onBlurProp?.(e);
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 a little strange to me. I like that onBlurProp has the explicit *Prop suffix. Anything we can add to onBlur to make it clear that is from whatever is specified by the onBlur in InputBox?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Maybe onBlurContextProp?

}
`;

export const segmentThemeStyles: Record<Theme, string> = {
Copy link
Collaborator

Choose a reason for hiding this comment

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

opportunity to refactor to tokens and rm palette dep


import { InputSegment, InputSegmentChangeEventHandler } from '.';

describe('packages/input-segment', () => {
Copy link
Collaborator

Choose a reason for hiding this comment

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

worth adding a jest-axe test block?

} as InputBoxProviderProps<SegmentObjMock>;

const utils = render(
<InputBoxProvider {...mergedProviderProps}>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do the InputSegment tests need to depend on the InputBoxProvider?
I'd rather test the segment in isolation if possible

Comment on lines 133 to 143
const { input } = renderSegment({
providerProps: {
segments: { day: '26', month: '', year: '' },
onChange: onChangeHandler,
},
});

userEvent.type(input, '4');
expect(onChangeHandler).toHaveBeenCalledWith(
expect.objectContaining({ value: '4' }),
);
Copy link
Collaborator

Choose a reason for hiding this comment

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

it's not really clear here in the tests why typing 4 into a segment that has 26 would just render 4 instead of 264. There's logic baked in somewhere that isn't entirely clear based on this test (I'm assuming there's a default min/max value?)

Comment on lines +150 to +151
charsPerSegment: charsPerSegmentMock['day'],
allowZero: defaultMinMock['day'] === 0,
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: Imo we can remove the charsPerSegment mock, and just hard code values for the tests

Suggested change
charsPerSegment: charsPerSegmentMock['day'],
allowZero: defaultMinMock['day'] === 0,
charsPerSegment: 2,
allowZero: true,

Comment on lines 44 to 54
const {
onChange: onChangeContextProp,
onBlur: onBlurContextProp,
charsPerSegment: charsPerSegmentContext,
segmentEnum,
segmentRefs,
segments,
labelledBy,
size,
disabled,
} = useInputBoxContext<Segment>();
Copy link
Collaborator

Choose a reason for hiding this comment

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

I feel like it might be simpler if these were just props to the segment

Copy link
Collaborator

Choose a reason for hiding this comment

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

👍 Not necessary, but wouldn't hurt

Comment on lines 97 to 115
decorator: (StoryFn, context) => (
<LeafyGreenProvider darkMode={context?.args.darkMode}>
<InputBoxProvider
charsPerSegment={charsPerSegmentMock}
segmentEnum={SegmentObjMock}
onChange={() => {}}
onBlur={() => {}}
segmentRefs={segmentRefsMock}
segments={context?.args.segments}
size={context?.args.size}
disabled={false}
>
<StoryFn
placeholder={
defaultPlaceholderMock[context?.args.segment as SegmentObjMock]
}
/>
</InputBoxProvider>
</LeafyGreenProvider>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Yeah, having half the props come from the InputBoxProvider and the other as real props is probably overly complex for this component

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Chatted in person, and I'm going to remove the context and pass the props directly to the Segment component in InputBox

@shaneeza shaneeza marked this pull request as draft November 12, 2025 15:27
@shaneeza shaneeza changed the base branch from LG-5504/input-box-context to shaneeza/time-picker-integration November 12, 2025 18:22
…neric and updating related components for improved clarity
…and remove unused segmentRefs and segments properties for improved clarity
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 was inherited from the first context PR that I closed. The tests were updated to wrap the props in an object and a new test was added to test the new allowZero prop

@shaneeza shaneeza marked this pull request as ready for review November 12, 2025 21:47
const isIncomingValueNumber = !isNaN(Number(incomingValue));
// macOS adds a period when pressing SPACE twice inside a text input.
const doesIncomingValueContainPeriod = /\./.test(incomingValue);
const shouldSkipValidation = !shouldValidate;
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 think !shouldValidate is readable as-is. Feels more confusing to re-assign to this shouldSkipValidation variable

Comment on lines 57 to 62
* 'day'
* 'month'
* 'year'
* 'hours'
* 'minutes'
* 'seconds'
Copy link
Collaborator

Choose a reason for hiding this comment

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

date uses singular while time uses plural. can we make these consistent?

Comment on lines 16 to 26
/**
* Minimum value for the segment
*
* @example
* 1
* 1
* 1970
* 0
* 0
* 0
*/
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: doesn't seem all that helpful to list numbers here in this format. maybe makes more sense to restrict to unique values?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

will remove these becuase I don't think they are that helpful

Comment on lines 29 to 39
/**
* Maximum value for the segment
*
* @example
* 31
* 12
* 2038
* 23
* 59
* 59
*/
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: similar to above, these feel like arbitrary values when presented without the broader context

Comment on lines 73 to 80
/**
* The number of characters per segment
*
* @example
* 2
* 2
* 4
*/
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: similar to above, these feel like arbitrary values when presented without the broader context

"access": "public"
},
"dependencies": {
"@leafygreen-ui/a11y": "workspace:^",
Copy link
Collaborator

Choose a reason for hiding this comment

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

might be fine to drop the palette dependency altogether at this point

};
export default meta;

export const LiveExample: StoryFn<typeof InputSegment> = ({
Copy link
Collaborator

Choose a reason for hiding this comment

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

probably can disable this snapshot since you have a generated story

@shaneeza shaneeza requested a review from a team as a code owner November 13, 2025 16:07
Copy link
Collaborator

@TheSonOfThomp TheSonOfThomp left a comment

Choose a reason for hiding this comment

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

Some nits, but nothing blocking

onChange: () => {},
onBlur: () => {},
value: '',
charsPerSegment: charsPerSegmentMock['day'],
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: we probably don't need the charsPerSegmentMock and defaultMinMock, and could just pass the values directly

/**
* The number of characters per segment
*/
charsPerSegment: number;
Copy link
Collaborator

Choose a reason for hiding this comment

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

charsPerSegment is a bit of a redundant name in the abstract context. Just a simple charsCount or something would be sufficient here

Comment on lines 19 to 24
minSegmentValue: number;

/**
* Maximum value for the segment
*
* @example
* 31
* 12
* 2038
* 23
* 59
* 59
*/
maxSegmentValue: number;
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is fine for now, but we should note that it may be desirable to let this support alphanumeric chars in the future (and so min/max values don't make sense)

Comment on lines 57 to 62
* 'day'
* 'month'
* 'year'
* 'hour'
* 'minute'
* 'second'
Copy link
Collaborator

Choose a reason for hiding this comment

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

per stephen's other comment, we can rm this

Comment on lines 78 to 80
* '1'
* '2'
* '2025'
Copy link
Collaborator

Choose a reason for hiding this comment

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

ditto

*
* These types are shared between the InputBox and the segmentComponent.
*/
export interface SharedInputBoxTypes<Segment extends string> {
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 still needed here?

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 plan on using these types in InputBox as well

@github-actions
Copy link
Contributor

Coverage after merging LG-5504/input-box-segment into shaneeza/time-picker-integration will be

78.86%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
charts/chart-card/src/ChartCard
   ChartCardContext.tsx60%100%50%66.67%25
charts/colors/src
   colors.ts0%100%100%0%25, 44, 5
charts/core/src
   constants.ts50%100%0%66.67%13
charts/core/src/Axis
   Axis.ts0%0%0%0%15, 19, 21, 23, 23, 45, 45, 61
   XAxis.tsx0%0%0%0%15, 19, 31, 34, 34, 58–60, 62–63, 63, 63, 65, 67, 71, 78
   YAxis.tsx0%0%0%0%15, 19, 30, 33, 33, 57–59, 61–62, 62, 62, 64, 66, 70, 77
charts/core/src/Chart
   Chart.tsx81.25%66.67%100%100%58, 64, 95
charts/core/src/Chart/config
   getDefaultChartOptions.ts100%100%100%100%
charts/core/src/Chart/hooks
   useChart.ts77.01%82.14%76.92%73.91%118, 118, 118–119, 123, 123, 123–125, 128, 132, 136–137, 139–140, 92, 98
   useTooltipVisibility.ts41.56%25%40%49.44%109–110, 120, 131, 133, 133, 133, 133, 133–135, 145, 145, 145–146, 149, 149, 149–151, 153–154, 166, 166, 166–167, 170, 170, 170–171, 171, 174–176, 190, 190, 190–191, 194, 194, 194–195, 195, 198–199, 224, 224, 228–229, 231–234, 276, 280–283, 46, 55, 55, 55, 55, 55–56, 59–60, 78, 78, 78–79, 87, 91–93
charts/core/src/ChartContext
   ChartContext.tsx83.33%50%100%87.50%21–22
charts/core/src/ChartHeader
   ChartHeader.tsx100%100%100%100%
charts/core/src/ChartTooltip
   ChartTooltip.tsx0%0%0%0%100–101, 105–106, 106, 106, 108, 111, 111, 115, 115, 115, 143, 143, 147–148, 163, 22, 35–36, 38, 40, 64, 70–71, 71, 71, 77, 82–83, 87, 87, 87–88, 92, 97–98
   utils.ts100%100%100%100%
charts/core/src/ChartTooltip/CustomTooltip
   CustomTooltip.testUtils.ts0%100%100%0%3
   CustomTooltip.tsx78.26%66.67%100%88.89%46–47, 54, 60, 69
charts/core/src/ChartTooltip/CustomTooltip/SeriesList
   SeriesList.tsx90.91%83.33%100%91.67%15, 19
charts/core/src/ChartTooltip/CustomTooltip/SeriesListItem
   SeriesListItem.tsx90%87.50%100%90.91%27–28
charts/core/src/ChartTooltip/CustomTooltip/SeriesListItemColorDot
   SeriesListItemColorDot.tsx100%100%100%100%
charts/core/src/Echart
   initializeEcharts.ts85.19%75%100%85.71%30–31, 73–74
   updateUtils.tsx0%0%0%0%10, 12, 12, 12–13, 17, 24, 26, 26, 26–28, 32, 46, 48–49, 49, 49–50, 50, 54, 57, 61, 68, 7, 9, 9, 9
   useEchart.ts53.51%41.11%67.86%58.17%109–110, 117, 124, 124, 124, 126, 126, 126, 126, 126–127, 130, 138, 140, 140, 140–141, 144, 153, 155, 155, 155–156, 160, 160, 160–161, 161, 161, 163, 174–175, 184–185, 188, 190, 192–193, 197, 210–211, 218–219, 222, 224–225, 227, 227, 227, 229, 229, 229–230, 230, 230–231, 235–236, 236, 236, 238–239, 239, 239–240, 245, 251, 256–258, 263, 271, 273, 273, 273–274, 277, 285, 287, 287, 287–288, 291, 297, 299, 299, 299–300, 303, 317, 320, 324, 324–325, 334, 347–350, 350, 357–358, 358, 365–367, 385–386, 423–424, 45–46, 59–60, 73–74
charts/core/src/Echart/utils
   updateUtils.ts97.06%90%100%100%26
charts/core/src/EventMarkers/BaseEventMarker
   BaseEventMarker.tsx0%0%0%0%18, 23–24, 27, 27, 27, 31–32, 32, 32, 40, 44–45, 60
   utils.ts0%0%0%0%102, 102, 115, 16, 33–34, 46, 51, 51, 55, 55, 60, 60, 74, 80, 80, 80–81
charts/core/src/EventMarkers/EventMarkerLine
   EventMarkerLine.tsx0%0%0%0%11, 13
charts/core/src/EventMarkers/EventMarkerPoint
   EventMarkerPoint.tsx0%0%0%0%11, 13
charts/core/src/Series
   Series.tsx0%0%0%0%23–26, 26, 26–27, 29–30, 30, 30, 32, 32, 32–34, 41, 44, 49, 63, 66
charts/core/src/Series/Bar
   Bar.tsx0%0%0%0%18, 18, 18, 18, 20, 22, 24, 42, 46, 48, 51, 64, 67, 9
charts/core/src/Series/Line
   Line.tsx0%100%0%0%12, 35–36, 44
charts/core/src/ThresholdLine
   ThresholdLine.tsx0%0%0%0%101, 103–104, 104, 104, 112, 114–115, 119, 30, 60, 60, 98–99
charts/core/src/testUtils
   makeSeriesData.testUtils.ts0%0%0%0%10, 106–107, 109, 111, 114–115, 117–118, 125, 127, 127, 138, 142–143, 146, 149, 15, 151–152, 16, 167, 17, 170–172, 175–176, 182, 185, 187–188, 192, 20,

@shaneeza shaneeza merged commit 4059f91 into shaneeza/time-picker-integration Nov 14, 2025
12 of 13 checks passed
@shaneeza shaneeza deleted the LG-5504/input-box-segment branch November 14, 2025 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants