Skip to content

Conversation

@shaneeza
Copy link
Collaborator

✍️ Proposed changes

This PR introduces a new internal @leafygreen-ui/input-box package that provides shared utility functions for handling input segments in date and time components. These utilities were extracted from the datepicker package and refactored to be generic and reusable across multiple components. The package includes utilities for segment validation, value formatting, keyboard navigation, and segment state management. This package is designed to be used internally by components like DatePicker and TimeInput to provide consistent input handling behavior.

Key utilities added:

  • createExplicitSegmentValidator - Creates validators for specific segment types
  • getNewSegmentValueFromArrowKeyPress - Handles arrow key navigation logic
  • getNewSegmentValueFromInputValue - Processes user input for segments
  • getRelativeSegment - Manages segment focus and navigation
  • getValueFormatter - Formats segment values for display
  • isElementInputSegment - Validates if an element is an input segment
  • isValidSegment - Validates segment names and values
  • isValidValueForSegment - Validates if a value is valid for a specific segment

🎟️ 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.

For bug fixes, new features & breaking changes

  • I have added stories/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

@changeset-bot
Copy link

changeset-bot bot commented Oct 29, 2025

⚠️ No Changeset found

Latest commit: 3e515d7

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

@github-actions
Copy link
Contributor

github-actions bot commented Oct 29, 2025

Size Change: 0 B

Total Size: 1.61 MB

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

compressed-size-action

@shaneeza shaneeza marked this pull request as ready for review October 29, 2025 20:35
@shaneeza shaneeza requested a review from a team as a code owner October 29, 2025 20:35
@shaneeza shaneeza requested review from a team, TheSonOfThomp, stephl3 and tsck and removed request for a team and tsck October 29, 2025 20:35
Comment on lines +1 to +11
export {
createExplicitSegmentValidator,
type ExplicitSegmentRule,
isElementInputSegment,
isValidValueForSegment,
} from './utils';
export { getValueFormatter } from './utils/getValueFormatter/getValueFormatter';
export {
isValidSegmentName,
isValidSegmentValue,
} from './utils/isValidSegment/isValidSegment';
Copy link
Collaborator

Choose a reason for hiding this comment

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

should these go in the date-utils package?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't believe so. date-utils are for Date manipulation and comparison utils not included in the date-fns library. These are more implementation-specific utils that used to live in date-picker/src/shared/utils.

Comment on lines +1 to +17
export {
createExplicitSegmentValidator,
ExplicitSegmentRule,
} from './createExplicitSegmentValidator/createExplicitSegmentValidator';
export { getNewSegmentValueFromArrowKeyPress } from './getNewSegmentValueFromArrowKeyPress/getNewSegmentValueFromArrowKeyPress';
export { getNewSegmentValueFromInputValue } from './getNewSegmentValueFromInputValue/getNewSegmentValueFromInputValue';
export {
getRelativeSegment,
getRelativeSegmentRef,
} from './getRelativeSegment/getRelativeSegment';
export { getValueFormatter } from './getValueFormatter/getValueFormatter';
export { isElementInputSegment } from './isElementInputSegment/isElementInputSegment';
export {
isValidSegmentName,
isValidSegmentValue,
} from './isValidSegment/isValidSegment';
export { isValidValueForSegment } from './isValidValueForSegment/isValidValueForSegment';
Copy link
Collaborator

Choose a reason for hiding this comment

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

do these all need to be exported in the package index file? I see several missing from there

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah. Some of these will be exported and used in both DatePicker and TimeInput.

Comment on lines 3 to 7
const segmentObj = {
Day: 'day',
Month: 'month',
Year: 'year',
} as const;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Appreciate the net-new tests across all these utils! General feedback: now that these utils have been made more generic to support time as well, it would be helpful for coverage + documentation if these also tested time-related segments as well

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thoughts on the time-related segments I added here? The segments are gonna be very similar, so I added them to the same object.

Comment on lines 22 to 30
* @example
* const segmentObj = {
* Day: 'day',
* Month: 'month',
* Year: 'year',
* };
* const rules = {
* day: { maxChars: 2, minExplicitValue: 1 },
* month: { maxChars: 2, minExplicitValue: 1 },
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 the example is cut off here

Comment on lines 32 to 34
export function createExplicitSegmentValidator<
T extends Record<string, string>,
>(segmentEnum: T, rules: Record<T[keyof T], ExplicitSegmentRule>) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

General feedback: most, if not all, these utils look like they could benefit from using a single object arg to make their call sites more readable:

Less readable:
createExplicitSegmentValidator(foo, bar)

More readable:
createExplicitSegmentValidator(segmentEnum: foo, rules: bar)

Copy link
Collaborator

Choose a reason for hiding this comment

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

@stephl3 Did you mean createExplicitSegmentValidator({segmentEnum: foo, rules: bar})?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated!

} from '../isValidSegment/isValidSegment';

/**
* Configuration for determining if a segment value is explicit
Copy link
Collaborator

Choose a reason for hiding this comment

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

what does it mean for a segment value to be "explicit"?

Copy link
Collaborator Author

@shaneeza shaneeza Nov 3, 2025

Choose a reason for hiding this comment

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

Updated the docs

* @param min - The minimum value for the segment
* @param max - The maximum value for the segment
* @param step - The step value for the arrow keys
* @param shouldNotRollover - The segments that should not rollover
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: this param threw me off and the term "rollover" doesn't seem quite right although I see it's because the lib function is called rollover. I think something like shouldWrap or shouldCycle might be more appropriate; curious what your thoughts are?

Also, is there a particular reason for using a negative boolean vs a positive? i.e. should* vs shouldNot*

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated to shouldWrap!

* month: { maxChars: 2, minExplicitValue: 1 },
*/
export function createExplicitSegmentValidator<
T extends Record<string, string>,
Copy link
Collaborator

Choose a reason for hiding this comment

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

General feedback: it'd be easier to read and understand these type generics if they were written out as specific words beyond T and V

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated

Comment on lines 10 to 11
* @param allowsZero -
* @param val - the value to format
Copy link
Collaborator

Choose a reason for hiding this comment

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

allowZero* missing description?
should val be removed 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.

This is still needed. Why should it be removed?

* @param val - the value to format
* @returns a value formatter function for the provided segment
*
* @example
Copy link
Collaborator

Choose a reason for hiding this comment

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

if including examples, maybe one where allowZero is true to show how it differs?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

done!

@@ -0,0 +1,97 @@
import { createExplicitSegmentValidator } from './createExplicitSegmentValidator';

const segmentObj = {
Copy link
Collaborator

Choose a reason for hiding this comment

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

should we rename this to something like dateSegmentObj? Might be a result of my un-familiarty with the input-box component, but just look at it i don't know right away what segment means

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 updated this example to include a few more items in the object, just to show a few more segments, so dateSegmentObj might not be the best name, but I updated the description for this prop in the TSDoc. Did that help?

* otherwise, pad the string with 0s, or trim it to n chars
*
* @param charsPerSegment - the number of characters per segment
* @param allowsZero - whether to allow zero-like values
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
* @param allowsZero - whether to allow zero-like values
* @param allowZero - whether to allow zero-like values

*
* @param charsPerSegment - the number of characters per segment
* @param allowsZero - whether to allow zero-like values
* @param val - the value to format
Copy link
Collaborator

Choose a reason for hiding this comment

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

Still seems odd that @param val makes it seem like it's a param of getValueFormatter when it should instead be a param of the value format function returned by getValueFormatter

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.

4 participants