@razorpay/blade 12.110.0 → 12.119.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/assets/spark/colorama-center-gradient-map-dark.jpg +0 -0
  2. package/assets/spark/colorama-gradient-map-dark.png +0 -0
  3. package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js +5 -5
  4. package/build/lib/native/components/AnimateInteractions/AnimateInteractions.native.js.map +1 -1
  5. package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js +6 -0
  6. package/build/lib/native/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -0
  7. package/build/lib/native/components/BaseMotion/BaseMotion.native.js +22 -0
  8. package/build/lib/native/components/BaseMotion/BaseMotion.native.js.map +1 -0
  9. package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js +11 -0
  10. package/build/lib/native/components/BaseMotion/baseMotionInterpreter.native.js.map +1 -0
  11. package/build/lib/native/components/BaseMotion/baseMotionUtils.js +4 -0
  12. package/build/lib/native/components/BaseMotion/baseMotionUtils.js.map +1 -0
  13. package/build/lib/native/components/BaseMotion/index.js +3 -0
  14. package/build/lib/native/components/BaseMotion/index.js.map +1 -0
  15. package/build/lib/native/components/BaseMotion/types.js +2 -0
  16. package/build/lib/native/components/BaseMotion/types.js.map +1 -0
  17. package/build/lib/native/components/Button/BaseButton/BaseButton.js +3 -3
  18. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  19. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  20. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  21. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js +2 -1
  22. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js.map +1 -1
  23. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js +2 -2
  24. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js.map +1 -1
  25. package/build/lib/native/components/Charts/CommonChartComponents/index.js +1 -1
  26. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +2 -2
  27. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  28. package/build/lib/native/components/Charts/LineChart/LineChart.native.js +4 -2
  29. package/build/lib/native/components/Charts/LineChart/LineChart.native.js.map +1 -1
  30. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js +4 -0
  31. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  32. package/build/lib/native/components/Charts/utils/referenceBandUtils.js +6 -0
  33. package/build/lib/native/components/Charts/utils/referenceBandUtils.js.map +1 -0
  34. package/build/lib/native/components/CounterInput/CounterInput.native.js +3 -2
  35. package/build/lib/native/components/CounterInput/CounterInput.native.js.map +1 -1
  36. package/build/lib/native/components/CounterInput/token.js +2 -2
  37. package/build/lib/native/components/CounterInput/token.js.map +1 -1
  38. package/build/lib/native/components/DatePicker/Calendar.native.js +2 -2
  39. package/build/lib/native/components/DatePicker/Calendar.native.js.map +1 -1
  40. package/build/lib/native/components/DatePicker/utils.js +2 -2
  41. package/build/lib/native/components/DatePicker/utils.js.map +1 -1
  42. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  43. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  44. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js +2 -1
  45. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js.map +1 -1
  46. package/build/lib/native/components/Dropdown/dropdownUtils.js +1 -1
  47. package/build/lib/native/components/Dropdown/dropdownUtils.js.map +1 -1
  48. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js +4 -0
  49. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  50. package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
  51. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  52. package/build/lib/native/components/Fade/Fade.native.js +7 -5
  53. package/build/lib/native/components/Fade/Fade.native.js.map +1 -1
  54. package/build/lib/native/components/FilterChip/BaseFilterChip.native.js +2 -2
  55. package/build/lib/native/components/FilterChip/BaseFilterChip.native.js.map +1 -1
  56. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +14 -0
  57. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  58. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js +20 -0
  59. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js.map +1 -0
  60. package/build/lib/native/components/FloatingActionButton/index.js +2 -0
  61. package/build/lib/native/components/FloatingActionButton/index.js.map +1 -0
  62. package/build/lib/native/components/GenUI/GenUIContext.native.js +2 -2
  63. package/build/lib/native/components/GenUI/GenUIContext.native.js.map +1 -1
  64. package/build/lib/native/components/GenUI/index.js +1 -1
  65. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +14 -0
  66. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  67. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js +2 -0
  68. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  69. package/build/lib/native/components/Icons/index.js +1 -0
  70. package/build/lib/native/components/Icons/index.js.map +1 -1
  71. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js +1 -1
  72. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
  73. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  74. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  75. package/build/lib/native/components/Morph/Morph.native.js +9 -5
  76. package/build/lib/native/components/Morph/Morph.native.js.map +1 -1
  77. package/build/lib/native/components/Move/Move.native.js +8 -5
  78. package/build/lib/native/components/Move/Move.native.js.map +1 -1
  79. package/build/lib/native/components/Scale/Scale.native.js +7 -5
  80. package/build/lib/native/components/Scale/Scale.native.js.map +1 -1
  81. package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js +27 -0
  82. package/build/lib/native/components/SegmentedControl/SegmentedControl.native.js.map +1 -0
  83. package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js +8 -0
  84. package/build/lib/native/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  85. package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js +18 -0
  86. package/build/lib/native/components/SegmentedControl/SegmentedControlItem.native.js.map +1 -0
  87. package/build/lib/native/components/SegmentedControl/index.js +3 -0
  88. package/build/lib/native/components/SegmentedControl/index.js.map +1 -0
  89. package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js +4 -0
  90. package/build/lib/native/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  91. package/build/lib/native/components/Slide/Slide.native.js +7 -5
  92. package/build/lib/native/components/Slide/Slide.native.js.map +1 -1
  93. package/build/lib/native/components/Spark/RzpGlass/utils.native.js +1 -1
  94. package/build/lib/native/components/Spark/RzpGlass/utils.native.js.map +1 -1
  95. package/build/lib/native/components/Stagger/Stagger.native.js +10 -5
  96. package/build/lib/native/components/Stagger/Stagger.native.js.map +1 -1
  97. package/build/lib/native/components/Stagger/StaggerProvider.js +6 -0
  98. package/build/lib/native/components/Stagger/StaggerProvider.js.map +1 -0
  99. package/build/lib/native/components/TreeView/TreeView.native.js +4 -0
  100. package/build/lib/native/components/TreeView/TreeView.native.js.map +1 -0
  101. package/build/lib/native/components/TreeView/index.native.js +2 -0
  102. package/build/lib/native/components/TreeView/index.native.js.map +1 -0
  103. package/build/lib/native/components/index.js +10 -2
  104. package/build/lib/native/components/index.js.map +1 -1
  105. package/build/lib/native/tokens/global/colors.js +1 -1
  106. package/build/lib/native/tokens/global/colors.js.map +1 -1
  107. package/build/lib/native/tokens/index.js +1 -0
  108. package/build/lib/native/tokens/index.js.map +1 -1
  109. package/build/lib/native/tokens/theme/bladeNeutralTheme.js +15 -0
  110. package/build/lib/native/tokens/theme/bladeNeutralTheme.js.map +1 -0
  111. package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
  112. package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
  113. package/build/lib/native/tokens/theme/index.js +1 -0
  114. package/build/lib/native/tokens/theme/index.js.map +1 -1
  115. package/build/lib/native/tokens/theme/theme.js.map +1 -1
  116. package/build/lib/native/utils/componentZIndices.js +1 -1
  117. package/build/lib/native/utils/componentZIndices.js.map +1 -1
  118. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  119. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  120. package/build/lib/native/utils/msToSeconds.js +4 -0
  121. package/build/lib/native/utils/msToSeconds.js.map +1 -0
  122. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +1 -1
  123. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  124. package/build/lib/web/development/_virtual/flatten.js +1 -1
  125. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  126. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
  127. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
  128. package/build/lib/web/development/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
  129. package/build/lib/web/development/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
  130. package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
  131. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +124 -73
  132. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  133. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +68 -2
  134. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  135. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +206 -18
  136. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  137. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  138. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  139. package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +1 -1
  140. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +15 -2
  141. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  142. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +272 -15
  143. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
  144. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js +195 -0
  145. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  146. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js +175 -0
  147. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  148. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js +66 -0
  149. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js.map +1 -0
  150. package/build/lib/web/development/components/CounterInput/CounterInput.web.js +29 -5
  151. package/build/lib/web/development/components/CounterInput/CounterInput.web.js.map +1 -1
  152. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js +20 -4
  153. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js.map +1 -1
  154. package/build/lib/web/development/components/CounterInput/token.js +6 -1
  155. package/build/lib/web/development/components/CounterInput/token.js.map +1 -1
  156. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +28 -1
  157. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  158. package/build/lib/web/development/components/DatePicker/Calendar.web.js +9 -2
  159. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
  160. package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
  161. package/build/lib/web/development/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
  162. package/build/lib/web/development/components/DatePicker/utils.js +21 -1
  163. package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
  164. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  165. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  166. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +40 -5
  167. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  168. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +30 -32
  169. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  170. package/build/lib/web/development/components/Dropdown/dropdownUtils.js +28 -2
  171. package/build/lib/web/development/components/Dropdown/dropdownUtils.js.map +1 -1
  172. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js +60 -0
  173. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  174. package/build/lib/web/development/components/Dropdown/useDropdown.js +91 -5
  175. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  176. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +35 -11
  177. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  178. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +126 -0
  179. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  180. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  181. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  182. package/build/lib/web/development/components/FloatingActionButton/index.js +2 -0
  183. package/build/lib/web/development/components/FloatingActionButton/index.js.map +1 -0
  184. package/build/lib/web/development/components/GenUI/GenUIComponents.web.js.map +1 -1
  185. package/build/lib/web/development/components/GenUI/GenUIContext.web.js +9 -1
  186. package/build/lib/web/development/components/GenUI/GenUIContext.web.js.map +1 -1
  187. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js +17 -0
  188. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js.map +1 -1
  189. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  190. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  191. package/build/lib/web/development/components/GenUI/index.js +1 -1
  192. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  193. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  194. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js +2 -0
  195. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  196. package/build/lib/web/development/components/Icons/index.js +1 -0
  197. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  198. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +3 -0
  199. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  200. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js +7 -1
  201. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js.map +1 -1
  202. package/build/lib/web/development/components/RollingText/RollingText.web.js +27 -20
  203. package/build/lib/web/development/components/RollingText/RollingText.web.js.map +1 -1
  204. package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js +196 -0
  205. package/build/lib/web/development/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
  206. package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js +18 -0
  207. package/build/lib/web/development/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  208. package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
  209. package/build/lib/web/development/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
  210. package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
  211. package/build/lib/web/development/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
  212. package/build/lib/web/development/components/SegmentedControl/index.js +3 -0
  213. package/build/lib/web/development/components/SegmentedControl/index.js.map +1 -0
  214. package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js +53 -0
  215. package/build/lib/web/development/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  216. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +16 -7
  217. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  218. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  219. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  220. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +30 -1
  221. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
  222. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  223. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  224. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +26 -10
  225. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
  226. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js +31 -18
  227. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  228. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  229. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  230. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  231. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  232. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js +58 -1
  233. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js.map +1 -1
  234. package/build/lib/web/development/components/Stagger/StaggerProvider.js.map +1 -1
  235. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js +41 -0
  236. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  237. package/build/lib/web/development/components/TreeView/TreeView.web.js +696 -0
  238. package/build/lib/web/development/components/TreeView/TreeView.web.js.map +1 -0
  239. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js +184 -0
  240. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  241. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js +73 -0
  242. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js.map +1 -0
  243. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js +295 -0
  244. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js.map +1 -0
  245. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js +173 -0
  246. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  247. package/build/lib/web/development/components/TreeView/componentIds.js +8 -0
  248. package/build/lib/web/development/components/TreeView/componentIds.js.map +1 -0
  249. package/build/lib/web/development/components/TreeView/index.web.js +4 -0
  250. package/build/lib/web/development/components/TreeView/index.web.js.map +1 -0
  251. package/build/lib/web/development/components/TreeView/treeViewUtils.js +475 -0
  252. package/build/lib/web/development/components/TreeView/treeViewUtils.js.map +1 -0
  253. package/build/lib/web/development/components/TreeView/useTreeView.js +24 -0
  254. package/build/lib/web/development/components/TreeView/useTreeView.js.map +1 -0
  255. package/build/lib/web/development/components/index.js +12 -2
  256. package/build/lib/web/development/components/index.js.map +1 -1
  257. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  258. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  259. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  260. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  261. package/build/lib/web/development/tokens/global/colors.js +2 -2
  262. package/build/lib/web/development/tokens/global/colors.js.map +1 -1
  263. package/build/lib/web/development/tokens/index.js +1 -0
  264. package/build/lib/web/development/tokens/index.js.map +1 -1
  265. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js +1439 -0
  266. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js.map +1 -0
  267. package/build/lib/web/development/tokens/theme/bladeTheme.js +48 -12
  268. package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
  269. package/build/lib/web/development/tokens/theme/index.js +1 -0
  270. package/build/lib/web/development/tokens/theme/index.js.map +1 -1
  271. package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
  272. package/build/lib/web/development/utils/componentZIndices.js +2 -0
  273. package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
  274. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +7 -1
  275. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  276. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  277. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  278. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  279. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  280. package/build/lib/web/production/_virtual/flatten.js +1 -1
  281. package/build/lib/web/production/_virtual/flatten3.js +1 -1
  282. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractions.web.js +1 -1
  283. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js +2 -1
  284. package/build/lib/web/production/components/AnimateInteractions/AnimateInteractionsProvider.js.map +1 -1
  285. package/build/lib/web/production/components/AnimateInteractions/{useFocusWithin.js → useFocusWithin.web.js} +1 -1
  286. package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.web.js.map +1 -0
  287. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +124 -73
  288. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  289. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +68 -2
  290. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  291. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +206 -18
  292. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  293. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  294. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  295. package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +1 -1
  296. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +15 -2
  297. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  298. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +272 -15
  299. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
  300. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js +195 -0
  301. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  302. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js +175 -0
  303. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  304. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js +66 -0
  305. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js.map +1 -0
  306. package/build/lib/web/production/components/CounterInput/CounterInput.web.js +29 -5
  307. package/build/lib/web/production/components/CounterInput/CounterInput.web.js.map +1 -1
  308. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js +20 -4
  309. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js.map +1 -1
  310. package/build/lib/web/production/components/CounterInput/token.js +6 -1
  311. package/build/lib/web/production/components/CounterInput/token.js.map +1 -1
  312. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +28 -1
  313. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  314. package/build/lib/web/production/components/DatePicker/Calendar.web.js +9 -2
  315. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
  316. package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js +4 -1
  317. package/build/lib/web/production/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.js.map +1 -1
  318. package/build/lib/web/production/components/DatePicker/utils.js +21 -1
  319. package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
  320. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  321. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  322. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +40 -5
  323. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  324. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +30 -32
  325. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  326. package/build/lib/web/production/components/Dropdown/dropdownUtils.js +28 -2
  327. package/build/lib/web/production/components/Dropdown/dropdownUtils.js.map +1 -1
  328. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js +60 -0
  329. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -0
  330. package/build/lib/web/production/components/Dropdown/useDropdown.js +91 -5
  331. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  332. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +35 -11
  333. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  334. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +126 -0
  335. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  336. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  337. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  338. package/build/lib/web/production/components/FloatingActionButton/index.js +2 -0
  339. package/build/lib/web/production/components/FloatingActionButton/index.js.map +1 -0
  340. package/build/lib/web/production/components/GenUI/GenUIComponents.web.js.map +1 -1
  341. package/build/lib/web/production/components/GenUI/GenUIContext.web.js +9 -1
  342. package/build/lib/web/production/components/GenUI/GenUIContext.web.js.map +1 -1
  343. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js +17 -0
  344. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js.map +1 -1
  345. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  346. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  347. package/build/lib/web/production/components/GenUI/index.js +1 -1
  348. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  349. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  350. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js +2 -0
  351. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  352. package/build/lib/web/production/components/Icons/index.js +1 -0
  353. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  354. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +3 -0
  355. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  356. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js +7 -1
  357. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js.map +1 -1
  358. package/build/lib/web/production/components/RollingText/RollingText.web.js +27 -20
  359. package/build/lib/web/production/components/RollingText/RollingText.web.js.map +1 -1
  360. package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js +196 -0
  361. package/build/lib/web/production/components/SegmentedControl/SegmentedControl.web.js.map +1 -0
  362. package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js +18 -0
  363. package/build/lib/web/production/components/SegmentedControl/SegmentedControlContext.js.map +1 -0
  364. package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js +109 -0
  365. package/build/lib/web/production/components/SegmentedControl/SegmentedControlIndicator.web.js.map +1 -0
  366. package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js +170 -0
  367. package/build/lib/web/production/components/SegmentedControl/SegmentedControlItem.web.js.map +1 -0
  368. package/build/lib/web/production/components/SegmentedControl/index.js +3 -0
  369. package/build/lib/web/production/components/SegmentedControl/index.js.map +1 -0
  370. package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js +53 -0
  371. package/build/lib/web/production/components/SegmentedControl/segmentedControlTokens.js.map +1 -0
  372. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +16 -7
  373. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  374. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  375. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  376. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +30 -1
  377. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
  378. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  379. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  380. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +26 -10
  381. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
  382. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js +31 -18
  383. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  384. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  385. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  386. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  387. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  388. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js +58 -1
  389. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js.map +1 -1
  390. package/build/lib/web/production/components/Stagger/StaggerProvider.js.map +1 -1
  391. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js +41 -0
  392. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  393. package/build/lib/web/production/components/TreeView/TreeView.web.js +696 -0
  394. package/build/lib/web/production/components/TreeView/TreeView.web.js.map +1 -0
  395. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js +184 -0
  396. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  397. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js +73 -0
  398. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js.map +1 -0
  399. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js +295 -0
  400. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js.map +1 -0
  401. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js +173 -0
  402. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  403. package/build/lib/web/production/components/TreeView/componentIds.js +8 -0
  404. package/build/lib/web/production/components/TreeView/componentIds.js.map +1 -0
  405. package/build/lib/web/production/components/TreeView/index.web.js +4 -0
  406. package/build/lib/web/production/components/TreeView/index.web.js.map +1 -0
  407. package/build/lib/web/production/components/TreeView/treeViewUtils.js +475 -0
  408. package/build/lib/web/production/components/TreeView/treeViewUtils.js.map +1 -0
  409. package/build/lib/web/production/components/TreeView/useTreeView.js +24 -0
  410. package/build/lib/web/production/components/TreeView/useTreeView.js.map +1 -0
  411. package/build/lib/web/production/components/index.js +12 -2
  412. package/build/lib/web/production/components/index.js.map +1 -1
  413. package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  414. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  415. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  416. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  417. package/build/lib/web/production/tokens/global/colors.js +2 -2
  418. package/build/lib/web/production/tokens/global/colors.js.map +1 -1
  419. package/build/lib/web/production/tokens/index.js +1 -0
  420. package/build/lib/web/production/tokens/index.js.map +1 -1
  421. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js +1439 -0
  422. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js.map +1 -0
  423. package/build/lib/web/production/tokens/theme/bladeTheme.js +48 -12
  424. package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
  425. package/build/lib/web/production/tokens/theme/index.js +1 -0
  426. package/build/lib/web/production/tokens/theme/index.js.map +1 -1
  427. package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
  428. package/build/lib/web/production/utils/componentZIndices.js +2 -0
  429. package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
  430. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +7 -1
  431. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  432. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  433. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  434. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  435. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  436. package/build/types/components/index.d.ts +794 -25
  437. package/build/types/components/index.native.d.ts +872 -29
  438. package/build/types/tokens/index.d.ts +11 -4
  439. package/build/types/tokens/index.native.d.ts +11 -4
  440. package/build/types/utils/index.d.ts +8 -3
  441. package/build/types/utils/index.native.d.ts +8 -3
  442. package/package.json +2 -2
  443. package/build/lib/web/development/components/AnimateInteractions/useFocusWithin.js.map +0 -1
  444. package/build/lib/web/production/components/AnimateInteractions/useFocusWithin.js.map +0 -1
@@ -9,6 +9,7 @@ import { CalendarStyles, CalendarGradientStyles } from './CalendarStyles.web.js'
9
9
  import { useUncontrolledDates } from './useControlledDates.js';
10
10
  import { pickerToLevel, levelToPicker, classes } from './constants.js';
11
11
  import { shiftTimezone } from './shiftTimezone.js';
12
+ import { clampDateToRange } from './utils.js';
12
13
  import { useControllableState } from '../../utils/useControllable.js';
13
14
  import { useIsMobile } from '../../utils/useIsMobile.js';
14
15
  import '../../utils/logger/index.js';
@@ -98,8 +99,14 @@ var Calendar = function Calendar(_ref) {
98
99
  if (!isRangeSelection && selectedValue) {
99
100
  return selectedValue;
100
101
  }
101
- return shiftTimezone('add', new Date());
102
- }, [_visibleMonth, _date, selectedValue]);
102
+ // When nothing is selected, open on today's month clamped into the [minDate, maxDate]
103
+ // range so the calendar doesn't land on a month where every date is disabled.
104
+ return clampDateToRange({
105
+ date: shiftTimezone('add', new Date()),
106
+ minDate: props.minDate,
107
+ maxDate: props.maxDate
108
+ });
109
+ }, [_visibleMonth, _date, selectedValue, props.minDate, props.maxDate]);
103
110
  var numberOfColumns = isMobile || !isRange ? 1 : 2;
104
111
  var columnsToScroll = numberOfColumns;
105
112
 
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.web.js","sources":["../../../../../../src/components/DatePicker/Calendar.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport dayjs from 'dayjs';\nimport React from 'react';\nimport type { CalendarLevel, DatesRangeValue } from '@mantine/dates';\nimport { useDatesContext, DatePicker } from '@mantine/dates';\nimport type { CalendarProps, DateSelectionType, PickerType, DateValue } from './types';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CalendarGradientStyles, CalendarStyles } from './CalendarStyles';\nimport { useUncontrolledDates } from './useControlledDates';\nimport { levelToPicker, pickerToLevel, classes } from './constants';\nimport { shiftTimezone } from './shiftTimezone';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { throwBladeError } from '~utils/logger';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst Calendar = <Type extends DateSelectionType>({\n firstDayOfWeek = 0,\n selectionType,\n allowSingleDateInRange,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n date,\n defaultDate,\n onDateChange,\n visibleMonth,\n defaultVisibleMonth,\n onVisibleMonthChange,\n onNext,\n onPrevious,\n presets,\n showLevelChangeLink,\n selectedValue,\n ...props\n}: CalendarProps<Type> & {\n date?: Date;\n defaultDate?: Date;\n onDateChange?: (date: DateValue) => void;\n showLevelChangeLink?: boolean;\n selectedValue: DatesRangeValue | null;\n}): React.ReactElement => {\n const isRange = selectionType === 'range';\n\n const [level, setLevel] = useControllableState<CalendarLevel>({\n defaultValue: pickerToLevel[defaultPicker],\n value: pickerToLevel[picker!],\n onChange: (level) => {\n onPickerChange?.(levelToPicker[level]);\n },\n });\n\n if (__DEV__) {\n if (isRange && level !== 'month') {\n throwBladeError({\n message: `Cannot use range DatePicker with pickerType: ${levelToPicker[level]}, Only \"day\" is supported`,\n moduleName: 'DatePicker',\n });\n }\n }\n\n const [_date, setDate] = useUncontrolledDates({\n type: 'default',\n value: date,\n defaultValue: defaultDate,\n onChange: onDateChange,\n });\n\n const [_visibleMonth, setVisibleMonth] = useControllableState<Date | undefined>({\n value: visibleMonth,\n defaultValue: defaultVisibleMonth,\n onChange: (date) => {\n if (date) onVisibleMonthChange?.(date);\n },\n });\n\n const dateContext = useDatesContext();\n const isMobile = useIsMobile();\n const currentDate = React.useMemo(() => {\n if (_visibleMonth) {\n return _visibleMonth;\n }\n if (_date) {\n return _date;\n }\n const isRangeSelection = Array.isArray(selectedValue);\n if (isRangeSelection && selectedValue[0]) {\n return selectedValue[0];\n }\n if (!isRangeSelection && selectedValue) {\n return selectedValue;\n }\n return shiftTimezone('add', new Date());\n }, [_visibleMonth, _date, selectedValue]);\n const numberOfColumns = isMobile || !isRange ? 1 : 2;\n const columnsToScroll = numberOfColumns;\n\n // Keeps the legacy `_date` state and the new `_visibleMonth` state in sync so that\n // navigation keeps working regardless of which one is currently driving `currentDate`.\n // Note: Not wrapped in useCallback because `setDate` from mantine's `useUncontrolled`\n // is not memoized, so useCallback would provide no benefit.\n const updateCurrentDate = (nextDate: Date): void => {\n setDate(nextDate);\n setVisibleMonth(() => nextDate);\n };\n\n const handleNextMonth = () => {\n const nextDate = dayjs(currentDate).add(columnsToScroll, 'month').toDate();\n onNext?.({ date: nextDate, type: 'month' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousMonth = () => {\n const nextDate = dayjs(currentDate).subtract(columnsToScroll, 'month').toDate();\n onPrevious?.({ date: nextDate, type: 'month' });\n updateCurrentDate(nextDate);\n };\n\n const handleNextYear = () => {\n const nextDate = dayjs(currentDate).add(columnsToScroll, 'year').toDate();\n onNext?.({ date: nextDate, type: 'year' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousYear = () => {\n const nextDate = dayjs(currentDate).subtract(columnsToScroll, 'year').toDate();\n onPrevious?.({ date: nextDate, type: 'year' });\n updateCurrentDate(nextDate);\n };\n\n const handleNextDecade = () => {\n const nextDate = dayjs(currentDate)\n .add(10 * columnsToScroll, 'year')\n .toDate();\n onNext?.({ date: nextDate, type: 'decade' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousDecade = () => {\n const nextDate = dayjs(currentDate)\n .subtract(10 * columnsToScroll, 'year')\n .toDate();\n onPrevious?.({ date: nextDate, type: 'decade' });\n updateCurrentDate(nextDate);\n };\n\n return (\n <CalendarStyles\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.7\"\n pickerType={levelToPicker[level]}\n {...metaAttribute({ name: MetaConstants.Calendar })}\n {...makeAnalyticsAttribute(props)}\n >\n <CalendarHeader\n isRange={isRange}\n date={currentDate}\n onLevelChange={(level) => setLevel(() => level)}\n pickerType={levelToPicker[level] as PickerType}\n onNextMonth={handleNextMonth}\n onPreviousMonth={handlePreviousMonth}\n onNextDecade={handleNextDecade}\n onPreviousDecade={handlePreviousDecade}\n onNextYear={handleNextYear}\n onPreviousYear={handlePreviousYear}\n showLevelChangeLink={showLevelChangeLink}\n />\n <CalendarGradientStyles isRange={isRange} date={currentDate}>\n <DatePicker\n withCellSpacing={false}\n type={isRange ? 'range' : 'default'}\n date={currentDate}\n locale={dateContext.locale}\n level={level}\n onDateChange={updateCurrentDate}\n onLevelChange={(level) => setLevel(() => level)}\n numberOfColumns={numberOfColumns}\n weekdayFormat=\"ddd\"\n firstDayOfWeek={firstDayOfWeek}\n // @ts-expect-error unable to narrow props based on `type`\n allowSingleDateInRange={allowSingleDateInRange}\n classNames={{\n monthLevelGroup: classes.levelsGroup,\n yearLevelGroup: classes.levelsGroup,\n decadeLevelGroup: classes.levelsGroup,\n day: classes.dayCell,\n monthsListCell: classes.yearsListControl,\n yearsListCell: classes.monthsListControl,\n monthCell: classes.dayCell,\n calendarHeader: classes.calendarHeader,\n monthRow: classes.row,\n yearsListRow: classes.row,\n monthsListRow: classes.row,\n weekdaysRow: classes.row,\n weekday: classes.weekday,\n }}\n {...props}\n />\n </CalendarGradientStyles>\n </CalendarStyles>\n );\n};\n\nexport { Calendar };\n"],"names":["Calendar","_ref","_ref$firstDayOfWeek","firstDayOfWeek","selectionType","allowSingleDateInRange","_ref$defaultPicker","defaultPicker","picker","onPickerChange","date","defaultDate","onDateChange","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","onNext","onPrevious","presets","showLevelChangeLink","selectedValue","props","_objectWithoutProperties","_excluded","isRange","_useControllableState","useControllableState","defaultValue","pickerToLevel","value","onChange","level","levelToPicker","_useControllableState2","_slicedToArray","setLevel","throwBladeError","message","concat","moduleName","_useUncontrolledDates","useUncontrolledDates","type","_useUncontrolledDates2","_date","setDate","_useControllableState3","_useControllableState4","_visibleMonth","setVisibleMonth","dateContext","useDatesContext","isMobile","useIsMobile","currentDate","React","useMemo","isRangeSelection","Array","isArray","shiftTimezone","Date","numberOfColumns","columnsToScroll","updateCurrentDate","nextDate","handleNextMonth","dayjs","add","toDate","handlePreviousMonth","subtract","handleNextYear","handlePreviousYear","handleNextDecade","handlePreviousDecade","_jsxs","CalendarStyles","_objectSpread","display","flexDirection","gap","pickerType","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","children","_jsx","CalendarHeader","onLevelChange","onNextMonth","onPreviousMonth","onNextDecade","onPreviousDecade","onNextYear","onPreviousYear","CalendarGradientStyles","DatePicker","withCellSpacing","locale","weekdayFormat","classNames","monthLevelGroup","classes","levelsGroup","yearLevelGroup","decadeLevelGroup","day","dayCell","monthsListCell","yearsListControl","yearsListCell","monthsListControl","monthCell","calendarHeader","monthRow","row","yearsListRow","monthsListRow","weekdaysRow","weekday"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.web.js","sources":["../../../../../../src/components/DatePicker/Calendar.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport dayjs from 'dayjs';\nimport React from 'react';\nimport type { CalendarLevel, DatesRangeValue } from '@mantine/dates';\nimport { useDatesContext, DatePicker } from '@mantine/dates';\nimport type { CalendarProps, DateSelectionType, PickerType, DateValue } from './types';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CalendarGradientStyles, CalendarStyles } from './CalendarStyles';\nimport { useUncontrolledDates } from './useControlledDates';\nimport { levelToPicker, pickerToLevel, classes } from './constants';\nimport { shiftTimezone } from './shiftTimezone';\nimport { clampDateToRange } from './utils';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { throwBladeError } from '~utils/logger';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst Calendar = <Type extends DateSelectionType>({\n firstDayOfWeek = 0,\n selectionType,\n allowSingleDateInRange,\n defaultPicker = 'day',\n picker,\n onPickerChange,\n date,\n defaultDate,\n onDateChange,\n visibleMonth,\n defaultVisibleMonth,\n onVisibleMonthChange,\n onNext,\n onPrevious,\n presets,\n showLevelChangeLink,\n selectedValue,\n ...props\n}: CalendarProps<Type> & {\n date?: Date;\n defaultDate?: Date;\n onDateChange?: (date: DateValue) => void;\n showLevelChangeLink?: boolean;\n selectedValue: DatesRangeValue | null;\n}): React.ReactElement => {\n const isRange = selectionType === 'range';\n\n const [level, setLevel] = useControllableState<CalendarLevel>({\n defaultValue: pickerToLevel[defaultPicker],\n value: pickerToLevel[picker!],\n onChange: (level) => {\n onPickerChange?.(levelToPicker[level]);\n },\n });\n\n if (__DEV__) {\n if (isRange && level !== 'month') {\n throwBladeError({\n message: `Cannot use range DatePicker with pickerType: ${levelToPicker[level]}, Only \"day\" is supported`,\n moduleName: 'DatePicker',\n });\n }\n }\n\n const [_date, setDate] = useUncontrolledDates({\n type: 'default',\n value: date,\n defaultValue: defaultDate,\n onChange: onDateChange,\n });\n\n const [_visibleMonth, setVisibleMonth] = useControllableState<Date | undefined>({\n value: visibleMonth,\n defaultValue: defaultVisibleMonth,\n onChange: (date) => {\n if (date) onVisibleMonthChange?.(date);\n },\n });\n\n const dateContext = useDatesContext();\n const isMobile = useIsMobile();\n const currentDate = React.useMemo(() => {\n if (_visibleMonth) {\n return _visibleMonth;\n }\n if (_date) {\n return _date;\n }\n const isRangeSelection = Array.isArray(selectedValue);\n if (isRangeSelection && selectedValue[0]) {\n return selectedValue[0];\n }\n if (!isRangeSelection && selectedValue) {\n return selectedValue;\n }\n // When nothing is selected, open on today's month clamped into the [minDate, maxDate]\n // range so the calendar doesn't land on a month where every date is disabled.\n return clampDateToRange({\n date: shiftTimezone('add', new Date()),\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n }, [_visibleMonth, _date, selectedValue, props.minDate, props.maxDate]);\n const numberOfColumns = isMobile || !isRange ? 1 : 2;\n const columnsToScroll = numberOfColumns;\n\n // Keeps the legacy `_date` state and the new `_visibleMonth` state in sync so that\n // navigation keeps working regardless of which one is currently driving `currentDate`.\n // Note: Not wrapped in useCallback because `setDate` from mantine's `useUncontrolled`\n // is not memoized, so useCallback would provide no benefit.\n const updateCurrentDate = (nextDate: Date): void => {\n setDate(nextDate);\n setVisibleMonth(() => nextDate);\n };\n\n const handleNextMonth = () => {\n const nextDate = dayjs(currentDate).add(columnsToScroll, 'month').toDate();\n onNext?.({ date: nextDate, type: 'month' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousMonth = () => {\n const nextDate = dayjs(currentDate).subtract(columnsToScroll, 'month').toDate();\n onPrevious?.({ date: nextDate, type: 'month' });\n updateCurrentDate(nextDate);\n };\n\n const handleNextYear = () => {\n const nextDate = dayjs(currentDate).add(columnsToScroll, 'year').toDate();\n onNext?.({ date: nextDate, type: 'year' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousYear = () => {\n const nextDate = dayjs(currentDate).subtract(columnsToScroll, 'year').toDate();\n onPrevious?.({ date: nextDate, type: 'year' });\n updateCurrentDate(nextDate);\n };\n\n const handleNextDecade = () => {\n const nextDate = dayjs(currentDate)\n .add(10 * columnsToScroll, 'year')\n .toDate();\n onNext?.({ date: nextDate, type: 'decade' });\n updateCurrentDate(nextDate);\n };\n\n const handlePreviousDecade = () => {\n const nextDate = dayjs(currentDate)\n .subtract(10 * columnsToScroll, 'year')\n .toDate();\n onPrevious?.({ date: nextDate, type: 'decade' });\n updateCurrentDate(nextDate);\n };\n\n return (\n <CalendarStyles\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.7\"\n pickerType={levelToPicker[level]}\n {...metaAttribute({ name: MetaConstants.Calendar })}\n {...makeAnalyticsAttribute(props)}\n >\n <CalendarHeader\n isRange={isRange}\n date={currentDate}\n onLevelChange={(level) => setLevel(() => level)}\n pickerType={levelToPicker[level] as PickerType}\n onNextMonth={handleNextMonth}\n onPreviousMonth={handlePreviousMonth}\n onNextDecade={handleNextDecade}\n onPreviousDecade={handlePreviousDecade}\n onNextYear={handleNextYear}\n onPreviousYear={handlePreviousYear}\n showLevelChangeLink={showLevelChangeLink}\n />\n <CalendarGradientStyles isRange={isRange} date={currentDate}>\n <DatePicker\n withCellSpacing={false}\n type={isRange ? 'range' : 'default'}\n date={currentDate}\n locale={dateContext.locale}\n level={level}\n onDateChange={updateCurrentDate}\n onLevelChange={(level) => setLevel(() => level)}\n numberOfColumns={numberOfColumns}\n weekdayFormat=\"ddd\"\n firstDayOfWeek={firstDayOfWeek}\n // @ts-expect-error unable to narrow props based on `type`\n allowSingleDateInRange={allowSingleDateInRange}\n classNames={{\n monthLevelGroup: classes.levelsGroup,\n yearLevelGroup: classes.levelsGroup,\n decadeLevelGroup: classes.levelsGroup,\n day: classes.dayCell,\n monthsListCell: classes.yearsListControl,\n yearsListCell: classes.monthsListControl,\n monthCell: classes.dayCell,\n calendarHeader: classes.calendarHeader,\n monthRow: classes.row,\n yearsListRow: classes.row,\n monthsListRow: classes.row,\n weekdaysRow: classes.row,\n weekday: classes.weekday,\n }}\n {...props}\n />\n </CalendarGradientStyles>\n </CalendarStyles>\n );\n};\n\nexport { Calendar };\n"],"names":["Calendar","_ref","_ref$firstDayOfWeek","firstDayOfWeek","selectionType","allowSingleDateInRange","_ref$defaultPicker","defaultPicker","picker","onPickerChange","date","defaultDate","onDateChange","visibleMonth","defaultVisibleMonth","onVisibleMonthChange","onNext","onPrevious","presets","showLevelChangeLink","selectedValue","props","_objectWithoutProperties","_excluded","isRange","_useControllableState","useControllableState","defaultValue","pickerToLevel","value","onChange","level","levelToPicker","_useControllableState2","_slicedToArray","setLevel","throwBladeError","message","concat","moduleName","_useUncontrolledDates","useUncontrolledDates","type","_useUncontrolledDates2","_date","setDate","_useControllableState3","_useControllableState4","_visibleMonth","setVisibleMonth","dateContext","useDatesContext","isMobile","useIsMobile","currentDate","React","useMemo","isRangeSelection","Array","isArray","clampDateToRange","shiftTimezone","Date","minDate","maxDate","numberOfColumns","columnsToScroll","updateCurrentDate","nextDate","handleNextMonth","dayjs","add","toDate","handlePreviousMonth","subtract","handleNextYear","handlePreviousYear","handleNextDecade","handlePreviousDecade","_jsxs","CalendarStyles","_objectSpread","display","flexDirection","gap","pickerType","metaAttribute","name","MetaConstants","makeAnalyticsAttribute","children","_jsx","CalendarHeader","onLevelChange","onNextMonth","onPreviousMonth","onNextDecade","onPreviousDecade","onNextYear","onPreviousYear","CalendarGradientStyles","DatePicker","withCellSpacing","locale","weekdayFormat","classNames","monthLevelGroup","classes","levelsGroup","yearLevelGroup","decadeLevelGroup","day","dayCell","monthsListCell","yearsListControl","yearsListCell","monthsListControl","monthCell","calendarHeader","monthRow","row","yearsListRow","monthsListRow","weekdaysRow","weekday"],"mappings":"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"}
@@ -47,7 +47,9 @@ var _DatePickerFilterChip = function _DatePickerFilterChip(_ref, ref) {
47
47
  date = props.date,
48
48
  format = props.format,
49
49
  isDisabled = props.isDisabled,
50
- selectedPresetLabel = props.selectedPresetLabel;
50
+ selectedPresetLabel = props.selectedPresetLabel,
51
+ _props$showClearButto = props.showClearButton,
52
+ showClearButton = _props$showClearButto === void 0 ? true : _props$showClearButto;
51
53
  var _useDatesContext = useDatesContext(),
52
54
  locale = _useDatesContext.locale;
53
55
  var displayFormat = (_useDatePickerContext = (_useDatePickerContext2 = useDatePickerContext()) === null || _useDatePickerContext2 === void 0 ? void 0 : _useDatePickerContext2.displayFormat) !== null && _useDatePickerContext !== void 0 ? _useDatePickerContext : 'default';
@@ -80,6 +82,7 @@ var _DatePickerFilterChip = function _DatePickerFilterChip(_ref, ref) {
80
82
  ref: ref,
81
83
  label: label,
82
84
  value: dateValue,
85
+ showClearButton: showClearButton,
83
86
  onClearButtonClick: onClearButtonChange,
84
87
  accessibilityProps: {
85
88
  label: accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : label,
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerFilterChip.web.js","sources":["../../../../../../../src/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerFilterChipProps } from '../types';\nimport { getFormattedDate, getHumanizedDate } from '../utils';\nimport { useDatePickerContext } from '../DatePickerContext';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport type { BladeElementRef } from '~utils/types';\n\nconst formatDateRange = (\n date: Date | [Date, Date],\n format: string,\n locale: string,\n selectionType: 'single' | 'range',\n): string => {\n const formatOptions = {\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default' as const,\n };\n\n if (selectionType === 'single' && date instanceof Date) {\n return getFormattedDate(formatOptions);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate) {\n return `${getFormattedDate({ ...formatOptions, date: startDate })} ${\n endDate ? ' - ' : ''\n } ${getFormattedDate({\n ...formatOptions,\n date: endDate,\n })}`;\n }\n }\n return '';\n};\n\nconst _DatePickerFilterChip: React.ForwardRefRenderFunction<\n BladeElementRef,\n DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n }\n> = (\n {\n ...props\n }: DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n },\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n referenceProps,\n label,\n selectionType,\n onClearButtonChange,\n accessibilityLabel,\n date,\n format,\n isDisabled,\n selectedPresetLabel,\n } = props;\n const { locale } = useDatesContext();\n const displayFormat = useDatePickerContext()?.displayFormat ?? 'default';\n\n // Check if there's actually a valid date selection.\n // In range mode both dates need to be present.\n const hasValidSelection =\n selectionType === 'range'\n ? Boolean((date as [Date | null, Date | null])?.[0]) &&\n Boolean((date as [Date | null, Date | null])?.[1])\n : Boolean(date);\n\n // When displayFormat is 'compact' and a defined preset (e.g. \"Last 7 days\") is selected,\n // show the preset label inside the chip instead of the actual date range.\n // For custom range selections there is no preset label, so we fall back to the date range.\n const shouldShowPresetLabel =\n displayFormat === 'compact' && Boolean(selectedPresetLabel) && hasValidSelection;\n\n let dateValue: string;\n if (shouldShowPresetLabel) {\n // A defined preset (e.g. \"Past 7 days\") is selected → show its label.\n dateValue = selectedPresetLabel as string;\n } else if (displayFormat === 'compact' && format === 'DD/MM/YYYY') {\n // Compact mode with a custom/date selection on the day picker → humanised date range.\n // Month/year pickers keep their own format (e.g. MMM/YYYY) which is already readable.\n dateValue = getHumanizedDate({ date, locale, selectionType });\n } else {\n // Default → show the date range using the configured format (e.g. DD/MM/YYYY).\n dateValue = formatDateRange(date, format, locale, selectionType);\n }\n\n return (\n <BaseFilterChip\n ref={ref}\n label={label}\n value={dateValue}\n onClearButtonClick={onClearButtonChange}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: referenceProps['aria-haspopup'],\n expanded: referenceProps['aria-expanded'],\n controls: referenceProps['aria-controls'],\n role: 'combobox',\n }}\n isDisabled={isDisabled}\n {...referenceProps}\n />\n );\n};\n\nconst DatePickerFilterChip = forwardRef(_DatePickerFilterChip);\n\nexport { DatePickerFilterChip };\n"],"names":["formatDateRange","date","format","locale","selectionType","formatOptions","labelSeparator","type","Date","getFormattedDate","Array","isArray","_date","_slicedToArray","startDate","endDate","concat","_objectSpread","_DatePickerFilterChip","_ref","ref","_useDatePickerContext","_useDatePickerContext2","props","_extends","_objectDestructuringEmpty","referenceProps","label","onClearButtonChange","accessibilityLabel","isDisabled","selectedPresetLabel","_useDatesContext","useDatesContext","displayFormat","useDatePickerContext","hasValidSelection","Boolean","shouldShowPresetLabel","dateValue","getHumanizedDate","_jsx","BaseFilterChip","value","onClearButtonClick","accessibilityProps","hasPopup","expanded","controls","role","DatePickerFilterChip","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerFilterChip.web.js","sources":["../../../../../../../src/components/DatePicker/FilterChipDatePicker/DatePickerFilterChip.web.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerFilterChipProps } from '../types';\nimport { getFormattedDate, getHumanizedDate } from '../utils';\nimport { useDatePickerContext } from '../DatePickerContext';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport type { BladeElementRef } from '~utils/types';\n\nconst formatDateRange = (\n date: Date | [Date, Date],\n format: string,\n locale: string,\n selectionType: 'single' | 'range',\n): string => {\n const formatOptions = {\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default' as const,\n };\n\n if (selectionType === 'single' && date instanceof Date) {\n return getFormattedDate(formatOptions);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate) {\n return `${getFormattedDate({ ...formatOptions, date: startDate })} ${\n endDate ? ' - ' : ''\n } ${getFormattedDate({\n ...formatOptions,\n date: endDate,\n })}`;\n }\n }\n return '';\n};\n\nconst _DatePickerFilterChip: React.ForwardRefRenderFunction<\n BladeElementRef,\n DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n }\n> = (\n {\n ...props\n }: DatePickerFilterChipProps & {\n onClearButtonChange: (value: string) => void;\n },\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n referenceProps,\n label,\n selectionType,\n onClearButtonChange,\n accessibilityLabel,\n date,\n format,\n isDisabled,\n selectedPresetLabel,\n showClearButton = true,\n } = props;\n const { locale } = useDatesContext();\n const displayFormat = useDatePickerContext()?.displayFormat ?? 'default';\n\n // Check if there's actually a valid date selection.\n // In range mode both dates need to be present.\n const hasValidSelection =\n selectionType === 'range'\n ? Boolean((date as [Date | null, Date | null])?.[0]) &&\n Boolean((date as [Date | null, Date | null])?.[1])\n : Boolean(date);\n\n // When displayFormat is 'compact' and a defined preset (e.g. \"Last 7 days\") is selected,\n // show the preset label inside the chip instead of the actual date range.\n // For custom range selections there is no preset label, so we fall back to the date range.\n const shouldShowPresetLabel =\n displayFormat === 'compact' && Boolean(selectedPresetLabel) && hasValidSelection;\n\n let dateValue: string;\n if (shouldShowPresetLabel) {\n // A defined preset (e.g. \"Past 7 days\") is selected → show its label.\n dateValue = selectedPresetLabel as string;\n } else if (displayFormat === 'compact' && format === 'DD/MM/YYYY') {\n // Compact mode with a custom/date selection on the day picker → humanised date range.\n // Month/year pickers keep their own format (e.g. MMM/YYYY) which is already readable.\n dateValue = getHumanizedDate({ date, locale, selectionType });\n } else {\n // Default → show the date range using the configured format (e.g. DD/MM/YYYY).\n dateValue = formatDateRange(date, format, locale, selectionType);\n }\n\n return (\n <BaseFilterChip\n ref={ref}\n label={label}\n value={dateValue}\n showClearButton={showClearButton}\n onClearButtonClick={onClearButtonChange}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: referenceProps['aria-haspopup'],\n expanded: referenceProps['aria-expanded'],\n controls: referenceProps['aria-controls'],\n role: 'combobox',\n }}\n isDisabled={isDisabled}\n {...referenceProps}\n />\n );\n};\n\nconst DatePickerFilterChip = forwardRef(_DatePickerFilterChip);\n\nexport { DatePickerFilterChip };\n"],"names":["formatDateRange","date","format","locale","selectionType","formatOptions","labelSeparator","type","Date","getFormattedDate","Array","isArray","_date","_slicedToArray","startDate","endDate","concat","_objectSpread","_DatePickerFilterChip","_ref","ref","_useDatePickerContext","_useDatePickerContext2","props","_extends","_objectDestructuringEmpty","referenceProps","label","onClearButtonChange","accessibilityLabel","isDisabled","selectedPresetLabel","_props$showClearButto","showClearButton","_useDatesContext","useDatesContext","displayFormat","useDatePickerContext","hasValidSelection","Boolean","shouldShowPresetLabel","dateValue","getHumanizedDate","_jsx","BaseFilterChip","value","onClearButtonClick","accessibilityProps","hasPopup","expanded","controls","role","DatePickerFilterChip","forwardRef"],"mappings":"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"}
@@ -705,5 +705,25 @@ var getHumanizedDate = function getHumanizedDate(_ref3) {
705
705
  return '';
706
706
  };
707
707
 
708
- export { convertIntlToDayjsLocale, finalInputFormat, getFormattedDate, getHumanizedDate, getTextInputFormat, loadScript, rangeFormattedValue, rangeInputPlaceHolder, stripDelimiters, validateAndParseDateInput, validateDateComponents, validatePartialDateSimple };
708
+ /**
709
+ * Clamps a date into the `[minDate, maxDate]` range so the calendar opens on a month
710
+ * that actually contains selectable dates. When the anchor (usually today) is after
711
+ * `maxDate`, the last selectable date (`maxDate`) is returned; when it is before
712
+ * `minDate`, the first selectable date (`minDate`) is returned. Otherwise the anchor is
713
+ * returned unchanged. `excludeDate` gaps are intentionally not considered here.
714
+ */
715
+ var clampDateToRange = function clampDateToRange(_ref4) {
716
+ var date = _ref4.date,
717
+ minDate = _ref4.minDate,
718
+ maxDate = _ref4.maxDate;
719
+ if (maxDate && dayjs(date).isAfter(dayjs(maxDate), 'day')) {
720
+ return maxDate;
721
+ }
722
+ if (minDate && dayjs(date).isBefore(dayjs(minDate), 'day')) {
723
+ return minDate;
724
+ }
725
+ return date;
726
+ };
727
+
728
+ export { clampDateToRange, convertIntlToDayjsLocale, finalInputFormat, getFormattedDate, getHumanizedDate, getTextInputFormat, loadScript, rangeFormattedValue, rangeInputPlaceHolder, stripDelimiters, validateAndParseDateInput, validateDateComponents, validatePartialDateSimple };
709
729
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\nconst dayjs_locales = [\n 'af',\n 'ar',\n 'ar-dz',\n 'ar-kw',\n 'ar-ly',\n 'ar-ma',\n 'ar-sa',\n 'ar-tn',\n 'az',\n 'be',\n 'bg',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'cs',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'de-at',\n 'de-ch',\n 'dv',\n 'el',\n 'en',\n 'en-au',\n 'en-ca',\n 'en-gb',\n 'en-ie',\n 'en-il',\n 'en-nz',\n 'en-SG',\n 'eo',\n 'es',\n 'es-do',\n 'es-us',\n 'et',\n 'eu',\n 'fa',\n 'fi',\n 'fo',\n 'fr',\n 'fr-ca',\n 'fr-ch',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gom-latn',\n 'gu',\n 'he',\n 'hi',\n 'hr',\n 'hu',\n 'hy-am',\n 'id',\n 'is',\n 'it',\n 'it-ch',\n 'ja',\n 'jv',\n 'ka',\n 'kk',\n 'km',\n 'kn',\n 'ko',\n 'ku',\n 'ky',\n 'lb',\n 'lo',\n 'lt',\n 'lv',\n 'me',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'ms-my',\n 'mt',\n 'my',\n 'nb',\n 'ne',\n 'nl',\n 'nl-be',\n 'nn',\n 'oc-lnc',\n 'pa-in',\n 'pl',\n 'pt',\n 'pt-br',\n 'ro',\n 'ru',\n 'sd',\n 'se',\n 'si',\n 'sk',\n 'sl',\n 'sq',\n 'sr',\n 'sr-cyrl',\n 'ss',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tet',\n 'tg',\n 'th',\n 'tl-ph',\n 'tlh',\n 'tr',\n 'tzl',\n 'tzm',\n 'tzm-latn',\n 'ug-cn',\n 'uk',\n 'ur',\n 'uz',\n 'uz-latn',\n 'vi',\n 'x-pseudo',\n 'yo',\n 'zh-cn',\n 'zh-hk',\n 'zh-tw',\n];\n\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\n// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261\nfunction patchLocale(locale: string): string | boolean {\n if (['en', 'en-us'].includes(locale)) return 'en';\n if (locale === 'zn') return 'zh-cn';\n if (locale === 'no') return 'nb';\n if (dayjs_locales.includes(locale)) return locale;\n return false;\n}\n\nfunction convertIntlToDayjsLocale(lang: string): string {\n lang = lang.toLowerCase();\n const locale = patchLocale(lang) || (lang.includes('-') && patchLocale(lang.split('-')[0]));\n if (!locale) return 'en';\n\n return `${locale}`;\n}\n\nfunction isScriptLoaded(src: string): boolean {\n return Boolean(document.querySelector(`script[src=\"${src}\"]`));\n}\n\n/**\n * Used to dynamically load a script\n */\nfunction loadScript(src: string, callback?: () => void): void {\n if (isScriptLoaded(src)) {\n callback?.();\n return;\n }\n const localeScript = document.createElement('script');\n localeScript.async = true;\n localeScript.src = src;\n localeScript.onload = () => callback?.();\n document.head.appendChild(localeScript);\n}\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\ntype DateFormatter = (input: DateFormatterInput) => string;\n\nfunction defaultDateFormatter({ type, date, locale, format, labelSeparator }: DateFormatterInput) {\n const formatDate = (value: Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as Date);\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nfunction getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n\nconst rangeFormattedValue = (startValue: string, endValue: string) => {\n // Both values exist\n if (startValue && endValue) {\n if (startValue === endValue) {\n return startValue; // Same date, show single value\n }\n return `${startValue} – ${endValue}`; // Different dates, show range\n }\n\n // Only start value exists\n if (startValue) {\n return `${startValue} – `;\n }\n\n // Only end value exists\n if (endValue) {\n return ` – ${endValue}`;\n }\n\n // No values\n return '';\n};\n\nconst rangeInputPlaceHolder = (placeholder: string | undefined, format: string) => {\n if (placeholder) {\n return `${placeholder} – ${placeholder}`;\n }\n return `${format} – ${format}`;\n};\n\nconst finalInputFormat = (startValue: string, endValue: string, format: string | undefined) => {\n // For case: when start and end are the same, return the format\n if (startValue === endValue && (startValue || endValue)) {\n return format;\n }\n return `${format} – ${format}`;\n};\n\n/**\n * Converts date format string to TextInput pattern for masking.\n * TextInput format only recognizes # as input placeholder, so we replace\n * date characters (Y,M,D) with # while preserving delimiters.\n *\n * @example \"DD/MM/YYYY\" – \"##/##/####\"\n * @example \"MMMM\" – \"################\" (longest month: \"September\")\n * @example \"MMM\" – \"###\"\n */\nconst getTextInputFormat = (formatStr?: string, isRangeInput?: boolean): string => {\n if (!formatStr) {\n return isRangeInput ? '##/##/#### – ##/##/####' : '##/##/####';\n } else if (formatStr === 'MMMM') {\n return formatStr.replace(/MMMM/g, '#########');\n }\n return formatStr.replace(/[YMD]/g, '#');\n};\n\n/**\n * Validates date string using DayJS strict parsing and business rules\n *\n * @param dateStr - The date string to validate in DD/MM/YYYY format\n * @returns Object with validation result, error message if invalid, and parsed Date if valid\n *\n * @example\n * // Valid date\n * validateDateComponents(\"25/12/2024\")\n * // → { isValid: true, parsedDate: Date(2024, 11, 25) }\n *\n * @example\n * // Invalid date (non-existent)\n * validateDateComponents(\"31/02/2024\")\n * // → { isValid: false, error: \"Please enter a valid date\" }\n *\n * @example\n * // Invalid year range\n * validateDateComponents(\"25/12/999\")\n * // → { isValid: false, error: \"Year must be between 1000 and 3000\" }\n *\n * @example\n * // Empty input\n * validateDateComponents(\"\")\n * // → { isValid: true }\n */\nconst validateDateComponents = (\n dateStr: string,\n): {\n isValid: boolean;\n error?: string;\n parsedDate?: Date;\n} => {\n // Empty strings are considered valid (user hasn't started typing)\n if (!dateStr?.trim()) {\n return { isValid: true };\n }\n\n // Use DayJS strict parsing to validate DD/MM/YYYY format and date existence\n const parsed = dayjs(dateStr, 'DD/MM/YYYY', true);\n\n // DayJS strict mode catches invalid days/months and non-existent dates (e.g., Feb 30th)\n if (!parsed.isValid()) {\n return { isValid: false, error: 'Please enter a valid date' };\n }\n\n // Business rule: restrict year range to reasonable values for most applications\n const year = parsed.year();\n if (year < 1000 || year > 3000) {\n return { isValid: false, error: 'Year must be between 1000 and 3000' };\n }\n\n // Return both validation result AND parsed date to avoid double parsing\n return { isValid: true, parsedDate: parsed.toDate() };\n};\n\n/**\n * Detects and parses special single date formats (MMM, MMMM, YYYY)\n * These formats preserve current date/month/year and only change the specified component\n *\n * @param inputValue - The input string to parse\n * @param format - The expected format ('MMM', 'MMMM', or 'YYYY')\n * @returns Object with special format detection, parsed date, and validation result\n *\n * @example\n * // Year format - preserves current month/day, changes year\n * parseSpecialSingleFormat(\"2024\", \"YYYY\")\n * // → { isSpecialFormat: true, parsedDate: Date(2024, currentMonth, currentDay), shouldBlock: false }\n *\n * @example\n * // Short month format - preserves current day/year, changes month\n * parseSpecialSingleFormat(\"Aug\", \"MMM\")\n * // → { isSpecialFormat: true, parsedDate: Date(currentYear, 7, currentDay), shouldBlock: false }\n *\n * @example\n * // Full month format - preserves current day/year, changes month\n * parseSpecialSingleFormat(\"August\", \"MMMM\")\n * // → { isSpecialFormat: true, parsedDate: Date(currentYear, 7, currentDay), shouldBlock: false }\n *\n * @example\n * // Invalid year\n * parseSpecialSingleFormat(\"999\", \"YYYY\")\n * // → { isSpecialFormat: true, shouldBlock: true }\n *\n * @example\n * // Not a special format\n * parseSpecialSingleFormat(\"25/12/2024\", \"DD/MM/YYYY\")\n * // → { isSpecialFormat: false, shouldBlock: false }\n */\nconst parseSpecialSingleFormat = (\n inputValue: string,\n format?: string,\n): { isSpecialFormat: boolean; parsedDate?: Date; shouldBlock: boolean } => {\n if (!format) return { isSpecialFormat: false, shouldBlock: false };\n\n const trimmedInput = inputValue.trim();\n const today = new Date();\n\n // Handle year-only format (YYYY) - keep current month and day, change year\n if (format === 'YYYY' && /^\\d{4}$/.test(trimmedInput)) {\n const year = parseInt(trimmedInput, 10);\n if (year >= 1000 && year <= 3000) {\n return {\n isSpecialFormat: true,\n parsedDate: new Date(year, today.getMonth(), today.getDate()),\n shouldBlock: false,\n };\n } else {\n return {\n isSpecialFormat: true,\n shouldBlock: true,\n };\n }\n }\n\n // Handle month formats (MMM, MMMM) - keep current day and year, change month\n if ((format === 'MMM' || format === 'MMMM') && trimmedInput.length >= 3) {\n // Using DayJS to parse month names (handles both short \"Aug\" and full \"August\")\n const monthDate = dayjs(trimmedInput, format === 'MMM' ? 'MMM' : 'MMMM', true);\n\n if (!monthDate.isValid()) {\n return {\n isSpecialFormat: true,\n shouldBlock: true,\n };\n }\n return {\n isSpecialFormat: true,\n parsedDate: new Date(today.getFullYear(), monthDate.month(), today.getDate()),\n shouldBlock: false,\n };\n }\n\n return { isSpecialFormat: false, shouldBlock: false };\n};\n\n/**\n * Validates and parses date input with comprehensive error handling and constraint checking\n * Combines validation + parsing to avoid redundant operations and supports both single dates and ranges\n *\n * @param inputValue - The input string to validate and parse\n * @param isRange - Whether this is a range input (true) or single date (false)\n * @param format - The expected date format ('DD/MM/YYYY', 'MMM', 'MMMM', 'YYYY')\n * @param options - Additional validation constraints\n * @param options.excludeDate - Function to exclude specific dates (single dates only)\n * @param options.minDate - Minimum allowed date\n * @param options.maxDate - Maximum allowed date\n * @returns Object with shouldBlock flag, optional error message, and parsed values if valid\n *\n * @example\n * // Valid single date\n * validateAndParseDateInput(\"25/12/2024\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: false, parsedValue: Date(2024, 11, 25) }\n *\n * @example\n * // Valid range input\n * validateAndParseDateInput(\"25/12/2024 – 31/12/2024\", true, \"DD/MM/YYYY\")\n * // → { shouldBlock: false, parsedValue: [Date(2024, 11, 25), Date(2024, 11, 31)] }\n *\n * @example\n * // Invalid date with error\n * validateAndParseDateInput(\"31/02/2024\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: true, error: \"Please enter a valid date in DD/MM/YYYY format\" }\n *\n * @example\n * // Date excluded by constraint\n * validateAndParseDateInput(\"25/12/2024\", false, \"DD/MM/YYYY\", {\n * excludeDate: (date) => date.getDay() === 0 // No Sundays\n * })\n * // → { shouldBlock: true, error: \"This date is not available for selection\" }\n *\n * @example\n * // Special format - year only\n * validateAndParseDateInput(\"2024\", false, \"YYYY\")\n * // → { shouldBlock: false, parsedValue: Date(2024, currentMonth, currentDay) }\n *\n * @example\n * // Incomplete input - allow continued typing\n * validateAndParseDateInput(\"25/12\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: false } (no parsedValue, allows user to continue typing)\n */\nconst validateAndParseDateInput = (\n inputValue: string,\n isRange: boolean,\n format?: string,\n options?: {\n excludeDate?: (date: Date) => boolean;\n minDate?: Date;\n maxDate?: Date;\n },\n): {\n shouldBlock: boolean;\n error?: string;\n parsedValue?: Date | null | [Date | null, Date | null];\n} => {\n // Allow empty input - user hasn't started typing yet\n if (!inputValue?.trim()) return { shouldBlock: false };\n\n // Handle special single date formats (MMM, MMMM, YYYY) - skip normal validation\n if (!isRange && format) {\n const specialParse = parseSpecialSingleFormat(inputValue, format);\n if (specialParse.isSpecialFormat && !specialParse.shouldBlock) {\n return { shouldBlock: false, parsedValue: specialParse.parsedDate || null };\n } else if (specialParse.shouldBlock) {\n return { shouldBlock: true, error: 'Please enter a valid date' };\n }\n }\n\n if (isRange) {\n // Split range input on en dash separator (e.g., \"25/12/2024 – 31/12/2024\")\n const parts = inputValue.split(/\\s*–\\s*/);\n\n // Enhanced: Block incomplete input with partial validation\n if (\n (parts[0]?.trim() && parts[0].trim().length < 10) ||\n (parts[1]?.trim() && parts[1].trim().length < 10)\n ) {\n // Check start date part if it exists and has content\n if (parts[0]?.trim()) {\n const startPartialValidation = validatePartialDateSimple(parts[0].trim());\n if (!startPartialValidation.isValid) {\n return { shouldBlock: true, error: `Start date: ${startPartialValidation.error}` };\n }\n }\n\n // Check end date part if it exists and has content\n if (parts[1]?.trim()) {\n const endPartialValidation = validatePartialDateSimple(parts[1].trim());\n if (!endPartialValidation.isValid) {\n return { shouldBlock: true, error: `End date: ${endPartialValidation.error}` };\n }\n }\n\n // If partial validation passes, allow continued typing\n return { shouldBlock: false };\n }\n\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n // Validate and parse start date if it looks complete (10+ chars = DD/MM/YYYY)\n if (parts[0]?.trim() && parts[0].trim().length >= 10) {\n const startValidation = validateDateComponents(parts[0].trim());\n if (!startValidation.isValid) {\n return { shouldBlock: true, error: `Start date: ${startValidation.error}` };\n }\n // Use the already-parsed date from validation to avoid double parsing\n startDate = startValidation.parsedDate || null;\n }\n\n // Validate and parse end date if it looks complete\n if (parts[1]?.trim() && parts[1].trim().length >= 10) {\n const endValidation = validateDateComponents(parts[1].trim());\n if (!endValidation.isValid) {\n return { shouldBlock: true, error: `End date: ${endValidation.error}` };\n }\n // Use the already-parsed date from validation to avoid double parsing\n endDate = endValidation.parsedDate || null;\n }\n\n // Business logic: start date cannot be after end date\n if (startDate && endDate && startDate > endDate) {\n return { shouldBlock: true, error: 'Start date cannot be greater than end date' };\n }\n\n // Additional validation for date range constraints\n if (options) {\n if (startDate && options.minDate && dayjs(startDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'Start date is before the minimum allowed date' };\n }\n if (startDate && options.maxDate && dayjs(startDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'Start date is after the maximum allowed date' };\n }\n if (endDate && options.minDate && dayjs(endDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'End date is before the minimum allowed date' };\n }\n if (endDate && options.maxDate && dayjs(endDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'End date is after the maximum allowed date' };\n }\n }\n\n // Return parsed dates ready for setControlledValue\n return { shouldBlock: false, parsedValue: [startDate, endDate] };\n } else if (inputValue.length >= 10) {\n // Single date: validate and parse if it looks complete\n const validation = validateDateComponents(inputValue);\n if (!validation.isValid) {\n return { shouldBlock: true, error: validation.error };\n }\n\n const parsedDate = validation.parsedDate;\n\n // Additional validation for single date constraints\n if (options && parsedDate) {\n if (options.excludeDate?.(parsedDate)) {\n return { shouldBlock: true, error: 'This date is not available for selection' };\n }\n if (options.minDate && dayjs(parsedDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'Date is before the minimum allowed date' };\n }\n if (options.maxDate && dayjs(parsedDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'Date is after the maximum allowed date' };\n }\n }\n\n // Return parsed date ready for setControlledValue\n return { shouldBlock: false, parsedValue: parsedDate || null };\n } else {\n // Partial validation for incomplete single date\n const partialValidation = validatePartialDateSimple(inputValue);\n if (!partialValidation.isValid) {\n return { shouldBlock: true, error: partialValidation.error };\n }\n\n // If partial validation passes, allow continued typing\n return { shouldBlock: false };\n }\n\n // This line should not be reached, but keeping for safety\n return { shouldBlock: false };\n};\n\n/**\n * Simple partial date validation using / splitting\n * Since special formats (MMM, MMMM, YYYY) are handled before this function\n *\n * @param input - The partial date input to validate\n * @returns Object with validation result and optional error message\n *\n * @example\n * // Valid partial input\n * validatePartialDateSimple(\"15\")\n * // → { isValid: true }\n *\n * @example\n * // Invalid day\n * validatePartialDateSimple(\"35\")\n * // → { isValid: false, error: \"Day cannot be greater than 31\" }\n *\n * @example\n * // Invalid month\n * validatePartialDateSimple(\"15/13\")\n * // → { isValid: false, error: \"Month cannot be greater than 12\" }\n *\n * @example\n * // Invalid day-month combination\n * validatePartialDateSimple(\"30/02\")\n * // → { isValid: false, error: \"February cannot have more than 29 days\" }\n */\nfunction validatePartialDateSimple(input: string): { isValid: boolean; error?: string } {\n // Don't validate empty input - let user start typing\n if (!input?.trim()) {\n return { isValid: true };\n }\n\n // Split by / to get day, month parts\n const parts = input.split('/');\n\n // Validate day part (first part)\n if (parts[0]?.length >= 2) {\n const dayStr = parts[0].trim();\n if (dayStr.length > 0) {\n const day = parseInt(dayStr, 10);\n\n // Day must be valid number\n if (isNaN(day)) {\n return { isValid: false, error: 'Please enter a valid day (01-31)' };\n }\n\n // Day cannot be greater than 31\n if (day > 31) {\n return { isValid: false, error: 'Day cannot be greater than 31' };\n }\n\n // Day cannot be 00\n if (day === 0) {\n return { isValid: false, error: 'Day cannot be 00, please enter 01-31' };\n }\n }\n }\n\n // Validate month part (second part)\n if (parts[1]?.length >= 2) {\n const monthStr = parts[1].trim();\n if (monthStr.length > 0) {\n const month = parseInt(monthStr, 10);\n\n // Month must be valid number\n if (isNaN(month)) {\n return { isValid: false, error: 'Please enter a valid month (01-12)' };\n }\n\n // Month cannot be greater than 12\n if (month > 12) {\n return { isValid: false, error: 'Month cannot be greater than 12' };\n }\n\n // Month cannot be 00\n if (month === 0) {\n return { isValid: false, error: 'Month cannot be 00, please enter 01-12' };\n }\n\n // Basic day-month validation (no DayJS needed)\n const day = parts[0]?.trim() ? parseInt(parts[0].trim(), 10) : NaN;\n if (!isNaN(day)) {\n // February cannot have more than 29 days\n if (month === 2 && day > 29) {\n return { isValid: false, error: 'February cannot have more than 29 days' };\n }\n\n // Months with 30 days: April(4), June(6), September(9), November(11)\n if ([4, 6, 9, 11].includes(month) && day > 30) {\n return {\n isValid: false,\n error: `${MONTH_NAMES[month - 1]} cannot have more than 30 days`,\n };\n }\n }\n }\n }\n\n // If we get here, partial input is valid\n return { isValid: true };\n}\n\n/**\n * Removes date delimiters (slashes) from formatted date strings for internal processing\n * Used to convert external formatted values to internal state for easier validation and length checks\n *\n * @param str - The date string with delimiters\n * @returns String without delimiters, or empty string if input is null/undefined\n *\n * @example\n * // Remove slashes from single date\n * stripDelimiters(\"25/12/2024\")\n * // → \"25122024\"\n *\n * @example\n * // Handle null/undefined input\n * stripDelimiters(undefined)\n * // → \"\"\n *\n * @example\n * // Used for internal state conversion\n * stripDelimiters(\"31/12/2024\")\n * // → \"31122024\" (easier for length checks: inputValue.length === 8)\n */\nconst stripDelimiters = (str?: string): string => str?.replace(/\\//g, '') ?? '';\n\n/**\n * Formats a date / date-range into a humanised, easy-to-read format used by the\n * `displayFormat=\"compact\"` mode (e.g. \"7 Jun 2026\", \"1-23 Jun 2026\", or \"7 Jun - 12 Jul 2026\").\n *\n * - Same month & year: only the day is repeated on the start date, e.g. \"1-23 Jun 2026\".\n * - Same year, different month: the year is only repeated on the end date, e.g. \"7 Jun - 12 Jul 2026\".\n * - Different years: the year is repeated on both dates, e.g. \"28 Dec 2025 - 3 Jan 2026\".\n * This intentionally uses a fixed `D MMM YYYY` format (locale-aware) since it is only\n * used for the read-only compact display and not for editable input parsing.\n */\nconst getHumanizedDate = ({\n date,\n locale,\n selectionType,\n}: {\n date: Date | [Date | null, Date | null] | null;\n locale: string;\n selectionType: 'single' | 'range';\n}): string => {\n if (!date) return '';\n\n const withYear = (value: Date): string => dayjs(value).locale(locale).format('D MMM YYYY');\n const withoutYear = (value: Date): string => dayjs(value).locale(locale).format('D MMM');\n const dayOnly = (value: Date): string => dayjs(value).locale(locale).format('D');\n const monthYear = (value: Date): string => dayjs(value).locale(locale).format('MMM YYYY');\n\n if (selectionType === 'single' && date instanceof Date) {\n return withYear(date);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate && endDate) {\n const start = dayjs(startDate);\n const end = dayjs(endDate);\n const isSameYear = start.year() === end.year();\n const isSameMonth = isSameYear && start.month() === end.month();\n\n if (isSameMonth) {\n return `${dayOnly(startDate)}-${dayOnly(endDate)} ${monthYear(endDate)}`;\n }\n\n return `${isSameYear ? withoutYear(startDate) : withYear(startDate)} - ${withYear(endDate)}`;\n }\n if (startDate) {\n return withYear(startDate);\n }\n }\n\n return '';\n};\n\nexport {\n convertIntlToDayjsLocale,\n loadScript,\n getFormattedDate,\n getHumanizedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateDateComponents,\n validateAndParseDateInput,\n validatePartialDateSimple,\n stripDelimiters,\n};\n"],"names":["dayjs","extend","customParseFormat","dayjs_locales","MONTH_NAMES","patchLocale","locale","includes","convertIntlToDayjsLocale","lang","toLowerCase","split","concat","isScriptLoaded","src","Boolean","document","querySelector","loadScript","callback","localeScript","createElement","async","onload","head","appendChild","defaultDateFormatter","_ref","type","date","format","labelSeparator","formatDate","value","Array","isArray","getFormattedDate","_ref2","formatter","others","_objectWithoutProperties","_excluded","rangeFormattedValue","startValue","endValue","rangeInputPlaceHolder","placeholder","finalInputFormat","getTextInputFormat","formatStr","isRangeInput","replace","validateDateComponents","dateStr","trim","isValid","parsed","error","year","parsedDate","toDate","parseSpecialSingleFormat","inputValue","isSpecialFormat","shouldBlock","trimmedInput","today","Date","test","parseInt","getMonth","getDate","length","monthDate","getFullYear","month","validateAndParseDateInput","isRange","options","specialParse","parsedValue","_parts$","_parts$2","_parts$5","_parts$6","parts","_parts$3","_parts$4","startPartialValidation","validatePartialDateSimple","endPartialValidation","startDate","endDate","startValidation","endValidation","minDate","isBefore","maxDate","isAfter","validation","_options$excludeDate","excludeDate","call","partialValidation","input","_parts$7","_parts$8","dayStr","day","isNaN","monthStr","_parts$9","NaN","stripDelimiters","str","_str$replace","getHumanizedDate","_ref3","selectionType","withYear","withoutYear","dayOnly","monthYear","_date","_slicedToArray","start","end","isSameYear","isSameMonth"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\ndayjs.extend(customParseFormat);\n\nconst dayjs_locales = [\n 'af',\n 'ar',\n 'ar-dz',\n 'ar-kw',\n 'ar-ly',\n 'ar-ma',\n 'ar-sa',\n 'ar-tn',\n 'az',\n 'be',\n 'bg',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'cs',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'de-at',\n 'de-ch',\n 'dv',\n 'el',\n 'en',\n 'en-au',\n 'en-ca',\n 'en-gb',\n 'en-ie',\n 'en-il',\n 'en-nz',\n 'en-SG',\n 'eo',\n 'es',\n 'es-do',\n 'es-us',\n 'et',\n 'eu',\n 'fa',\n 'fi',\n 'fo',\n 'fr',\n 'fr-ca',\n 'fr-ch',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gom-latn',\n 'gu',\n 'he',\n 'hi',\n 'hr',\n 'hu',\n 'hy-am',\n 'id',\n 'is',\n 'it',\n 'it-ch',\n 'ja',\n 'jv',\n 'ka',\n 'kk',\n 'km',\n 'kn',\n 'ko',\n 'ku',\n 'ky',\n 'lb',\n 'lo',\n 'lt',\n 'lv',\n 'me',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'ms-my',\n 'mt',\n 'my',\n 'nb',\n 'ne',\n 'nl',\n 'nl-be',\n 'nn',\n 'oc-lnc',\n 'pa-in',\n 'pl',\n 'pt',\n 'pt-br',\n 'ro',\n 'ru',\n 'sd',\n 'se',\n 'si',\n 'sk',\n 'sl',\n 'sq',\n 'sr',\n 'sr-cyrl',\n 'ss',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tet',\n 'tg',\n 'th',\n 'tl-ph',\n 'tlh',\n 'tr',\n 'tzl',\n 'tzm',\n 'tzm-latn',\n 'ug-cn',\n 'uk',\n 'ur',\n 'uz',\n 'uz-latn',\n 'vi',\n 'x-pseudo',\n 'yo',\n 'zh-cn',\n 'zh-hk',\n 'zh-tw',\n];\n\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\n// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261\nfunction patchLocale(locale: string): string | boolean {\n if (['en', 'en-us'].includes(locale)) return 'en';\n if (locale === 'zn') return 'zh-cn';\n if (locale === 'no') return 'nb';\n if (dayjs_locales.includes(locale)) return locale;\n return false;\n}\n\nfunction convertIntlToDayjsLocale(lang: string): string {\n lang = lang.toLowerCase();\n const locale = patchLocale(lang) || (lang.includes('-') && patchLocale(lang.split('-')[0]));\n if (!locale) return 'en';\n\n return `${locale}`;\n}\n\nfunction isScriptLoaded(src: string): boolean {\n return Boolean(document.querySelector(`script[src=\"${src}\"]`));\n}\n\n/**\n * Used to dynamically load a script\n */\nfunction loadScript(src: string, callback?: () => void): void {\n if (isScriptLoaded(src)) {\n callback?.();\n return;\n }\n const localeScript = document.createElement('script');\n localeScript.async = true;\n localeScript.src = src;\n localeScript.onload = () => callback?.();\n document.head.appendChild(localeScript);\n}\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\ntype DateFormatter = (input: DateFormatterInput) => string;\n\nfunction defaultDateFormatter({ type, date, locale, format, labelSeparator }: DateFormatterInput) {\n const formatDate = (value: Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as Date);\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nfunction getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n\nconst rangeFormattedValue = (startValue: string, endValue: string) => {\n // Both values exist\n if (startValue && endValue) {\n if (startValue === endValue) {\n return startValue; // Same date, show single value\n }\n return `${startValue} – ${endValue}`; // Different dates, show range\n }\n\n // Only start value exists\n if (startValue) {\n return `${startValue} – `;\n }\n\n // Only end value exists\n if (endValue) {\n return ` – ${endValue}`;\n }\n\n // No values\n return '';\n};\n\nconst rangeInputPlaceHolder = (placeholder: string | undefined, format: string) => {\n if (placeholder) {\n return `${placeholder} – ${placeholder}`;\n }\n return `${format} – ${format}`;\n};\n\nconst finalInputFormat = (startValue: string, endValue: string, format: string | undefined) => {\n // For case: when start and end are the same, return the format\n if (startValue === endValue && (startValue || endValue)) {\n return format;\n }\n return `${format} – ${format}`;\n};\n\n/**\n * Converts date format string to TextInput pattern for masking.\n * TextInput format only recognizes # as input placeholder, so we replace\n * date characters (Y,M,D) with # while preserving delimiters.\n *\n * @example \"DD/MM/YYYY\" – \"##/##/####\"\n * @example \"MMMM\" – \"################\" (longest month: \"September\")\n * @example \"MMM\" – \"###\"\n */\nconst getTextInputFormat = (formatStr?: string, isRangeInput?: boolean): string => {\n if (!formatStr) {\n return isRangeInput ? '##/##/#### – ##/##/####' : '##/##/####';\n } else if (formatStr === 'MMMM') {\n return formatStr.replace(/MMMM/g, '#########');\n }\n return formatStr.replace(/[YMD]/g, '#');\n};\n\n/**\n * Validates date string using DayJS strict parsing and business rules\n *\n * @param dateStr - The date string to validate in DD/MM/YYYY format\n * @returns Object with validation result, error message if invalid, and parsed Date if valid\n *\n * @example\n * // Valid date\n * validateDateComponents(\"25/12/2024\")\n * // → { isValid: true, parsedDate: Date(2024, 11, 25) }\n *\n * @example\n * // Invalid date (non-existent)\n * validateDateComponents(\"31/02/2024\")\n * // → { isValid: false, error: \"Please enter a valid date\" }\n *\n * @example\n * // Invalid year range\n * validateDateComponents(\"25/12/999\")\n * // → { isValid: false, error: \"Year must be between 1000 and 3000\" }\n *\n * @example\n * // Empty input\n * validateDateComponents(\"\")\n * // → { isValid: true }\n */\nconst validateDateComponents = (\n dateStr: string,\n): {\n isValid: boolean;\n error?: string;\n parsedDate?: Date;\n} => {\n // Empty strings are considered valid (user hasn't started typing)\n if (!dateStr?.trim()) {\n return { isValid: true };\n }\n\n // Use DayJS strict parsing to validate DD/MM/YYYY format and date existence\n const parsed = dayjs(dateStr, 'DD/MM/YYYY', true);\n\n // DayJS strict mode catches invalid days/months and non-existent dates (e.g., Feb 30th)\n if (!parsed.isValid()) {\n return { isValid: false, error: 'Please enter a valid date' };\n }\n\n // Business rule: restrict year range to reasonable values for most applications\n const year = parsed.year();\n if (year < 1000 || year > 3000) {\n return { isValid: false, error: 'Year must be between 1000 and 3000' };\n }\n\n // Return both validation result AND parsed date to avoid double parsing\n return { isValid: true, parsedDate: parsed.toDate() };\n};\n\n/**\n * Detects and parses special single date formats (MMM, MMMM, YYYY)\n * These formats preserve current date/month/year and only change the specified component\n *\n * @param inputValue - The input string to parse\n * @param format - The expected format ('MMM', 'MMMM', or 'YYYY')\n * @returns Object with special format detection, parsed date, and validation result\n *\n * @example\n * // Year format - preserves current month/day, changes year\n * parseSpecialSingleFormat(\"2024\", \"YYYY\")\n * // → { isSpecialFormat: true, parsedDate: Date(2024, currentMonth, currentDay), shouldBlock: false }\n *\n * @example\n * // Short month format - preserves current day/year, changes month\n * parseSpecialSingleFormat(\"Aug\", \"MMM\")\n * // → { isSpecialFormat: true, parsedDate: Date(currentYear, 7, currentDay), shouldBlock: false }\n *\n * @example\n * // Full month format - preserves current day/year, changes month\n * parseSpecialSingleFormat(\"August\", \"MMMM\")\n * // → { isSpecialFormat: true, parsedDate: Date(currentYear, 7, currentDay), shouldBlock: false }\n *\n * @example\n * // Invalid year\n * parseSpecialSingleFormat(\"999\", \"YYYY\")\n * // → { isSpecialFormat: true, shouldBlock: true }\n *\n * @example\n * // Not a special format\n * parseSpecialSingleFormat(\"25/12/2024\", \"DD/MM/YYYY\")\n * // → { isSpecialFormat: false, shouldBlock: false }\n */\nconst parseSpecialSingleFormat = (\n inputValue: string,\n format?: string,\n): { isSpecialFormat: boolean; parsedDate?: Date; shouldBlock: boolean } => {\n if (!format) return { isSpecialFormat: false, shouldBlock: false };\n\n const trimmedInput = inputValue.trim();\n const today = new Date();\n\n // Handle year-only format (YYYY) - keep current month and day, change year\n if (format === 'YYYY' && /^\\d{4}$/.test(trimmedInput)) {\n const year = parseInt(trimmedInput, 10);\n if (year >= 1000 && year <= 3000) {\n return {\n isSpecialFormat: true,\n parsedDate: new Date(year, today.getMonth(), today.getDate()),\n shouldBlock: false,\n };\n } else {\n return {\n isSpecialFormat: true,\n shouldBlock: true,\n };\n }\n }\n\n // Handle month formats (MMM, MMMM) - keep current day and year, change month\n if ((format === 'MMM' || format === 'MMMM') && trimmedInput.length >= 3) {\n // Using DayJS to parse month names (handles both short \"Aug\" and full \"August\")\n const monthDate = dayjs(trimmedInput, format === 'MMM' ? 'MMM' : 'MMMM', true);\n\n if (!monthDate.isValid()) {\n return {\n isSpecialFormat: true,\n shouldBlock: true,\n };\n }\n return {\n isSpecialFormat: true,\n parsedDate: new Date(today.getFullYear(), monthDate.month(), today.getDate()),\n shouldBlock: false,\n };\n }\n\n return { isSpecialFormat: false, shouldBlock: false };\n};\n\n/**\n * Validates and parses date input with comprehensive error handling and constraint checking\n * Combines validation + parsing to avoid redundant operations and supports both single dates and ranges\n *\n * @param inputValue - The input string to validate and parse\n * @param isRange - Whether this is a range input (true) or single date (false)\n * @param format - The expected date format ('DD/MM/YYYY', 'MMM', 'MMMM', 'YYYY')\n * @param options - Additional validation constraints\n * @param options.excludeDate - Function to exclude specific dates (single dates only)\n * @param options.minDate - Minimum allowed date\n * @param options.maxDate - Maximum allowed date\n * @returns Object with shouldBlock flag, optional error message, and parsed values if valid\n *\n * @example\n * // Valid single date\n * validateAndParseDateInput(\"25/12/2024\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: false, parsedValue: Date(2024, 11, 25) }\n *\n * @example\n * // Valid range input\n * validateAndParseDateInput(\"25/12/2024 – 31/12/2024\", true, \"DD/MM/YYYY\")\n * // → { shouldBlock: false, parsedValue: [Date(2024, 11, 25), Date(2024, 11, 31)] }\n *\n * @example\n * // Invalid date with error\n * validateAndParseDateInput(\"31/02/2024\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: true, error: \"Please enter a valid date in DD/MM/YYYY format\" }\n *\n * @example\n * // Date excluded by constraint\n * validateAndParseDateInput(\"25/12/2024\", false, \"DD/MM/YYYY\", {\n * excludeDate: (date) => date.getDay() === 0 // No Sundays\n * })\n * // → { shouldBlock: true, error: \"This date is not available for selection\" }\n *\n * @example\n * // Special format - year only\n * validateAndParseDateInput(\"2024\", false, \"YYYY\")\n * // → { shouldBlock: false, parsedValue: Date(2024, currentMonth, currentDay) }\n *\n * @example\n * // Incomplete input - allow continued typing\n * validateAndParseDateInput(\"25/12\", false, \"DD/MM/YYYY\")\n * // → { shouldBlock: false } (no parsedValue, allows user to continue typing)\n */\nconst validateAndParseDateInput = (\n inputValue: string,\n isRange: boolean,\n format?: string,\n options?: {\n excludeDate?: (date: Date) => boolean;\n minDate?: Date;\n maxDate?: Date;\n },\n): {\n shouldBlock: boolean;\n error?: string;\n parsedValue?: Date | null | [Date | null, Date | null];\n} => {\n // Allow empty input - user hasn't started typing yet\n if (!inputValue?.trim()) return { shouldBlock: false };\n\n // Handle special single date formats (MMM, MMMM, YYYY) - skip normal validation\n if (!isRange && format) {\n const specialParse = parseSpecialSingleFormat(inputValue, format);\n if (specialParse.isSpecialFormat && !specialParse.shouldBlock) {\n return { shouldBlock: false, parsedValue: specialParse.parsedDate || null };\n } else if (specialParse.shouldBlock) {\n return { shouldBlock: true, error: 'Please enter a valid date' };\n }\n }\n\n if (isRange) {\n // Split range input on en dash separator (e.g., \"25/12/2024 – 31/12/2024\")\n const parts = inputValue.split(/\\s*–\\s*/);\n\n // Enhanced: Block incomplete input with partial validation\n if (\n (parts[0]?.trim() && parts[0].trim().length < 10) ||\n (parts[1]?.trim() && parts[1].trim().length < 10)\n ) {\n // Check start date part if it exists and has content\n if (parts[0]?.trim()) {\n const startPartialValidation = validatePartialDateSimple(parts[0].trim());\n if (!startPartialValidation.isValid) {\n return { shouldBlock: true, error: `Start date: ${startPartialValidation.error}` };\n }\n }\n\n // Check end date part if it exists and has content\n if (parts[1]?.trim()) {\n const endPartialValidation = validatePartialDateSimple(parts[1].trim());\n if (!endPartialValidation.isValid) {\n return { shouldBlock: true, error: `End date: ${endPartialValidation.error}` };\n }\n }\n\n // If partial validation passes, allow continued typing\n return { shouldBlock: false };\n }\n\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n\n // Validate and parse start date if it looks complete (10+ chars = DD/MM/YYYY)\n if (parts[0]?.trim() && parts[0].trim().length >= 10) {\n const startValidation = validateDateComponents(parts[0].trim());\n if (!startValidation.isValid) {\n return { shouldBlock: true, error: `Start date: ${startValidation.error}` };\n }\n // Use the already-parsed date from validation to avoid double parsing\n startDate = startValidation.parsedDate || null;\n }\n\n // Validate and parse end date if it looks complete\n if (parts[1]?.trim() && parts[1].trim().length >= 10) {\n const endValidation = validateDateComponents(parts[1].trim());\n if (!endValidation.isValid) {\n return { shouldBlock: true, error: `End date: ${endValidation.error}` };\n }\n // Use the already-parsed date from validation to avoid double parsing\n endDate = endValidation.parsedDate || null;\n }\n\n // Business logic: start date cannot be after end date\n if (startDate && endDate && startDate > endDate) {\n return { shouldBlock: true, error: 'Start date cannot be greater than end date' };\n }\n\n // Additional validation for date range constraints\n if (options) {\n if (startDate && options.minDate && dayjs(startDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'Start date is before the minimum allowed date' };\n }\n if (startDate && options.maxDate && dayjs(startDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'Start date is after the maximum allowed date' };\n }\n if (endDate && options.minDate && dayjs(endDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'End date is before the minimum allowed date' };\n }\n if (endDate && options.maxDate && dayjs(endDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'End date is after the maximum allowed date' };\n }\n }\n\n // Return parsed dates ready for setControlledValue\n return { shouldBlock: false, parsedValue: [startDate, endDate] };\n } else if (inputValue.length >= 10) {\n // Single date: validate and parse if it looks complete\n const validation = validateDateComponents(inputValue);\n if (!validation.isValid) {\n return { shouldBlock: true, error: validation.error };\n }\n\n const parsedDate = validation.parsedDate;\n\n // Additional validation for single date constraints\n if (options && parsedDate) {\n if (options.excludeDate?.(parsedDate)) {\n return { shouldBlock: true, error: 'This date is not available for selection' };\n }\n if (options.minDate && dayjs(parsedDate).isBefore(dayjs(options.minDate))) {\n return { shouldBlock: true, error: 'Date is before the minimum allowed date' };\n }\n if (options.maxDate && dayjs(parsedDate).isAfter(dayjs(options.maxDate))) {\n return { shouldBlock: true, error: 'Date is after the maximum allowed date' };\n }\n }\n\n // Return parsed date ready for setControlledValue\n return { shouldBlock: false, parsedValue: parsedDate || null };\n } else {\n // Partial validation for incomplete single date\n const partialValidation = validatePartialDateSimple(inputValue);\n if (!partialValidation.isValid) {\n return { shouldBlock: true, error: partialValidation.error };\n }\n\n // If partial validation passes, allow continued typing\n return { shouldBlock: false };\n }\n\n // This line should not be reached, but keeping for safety\n return { shouldBlock: false };\n};\n\n/**\n * Simple partial date validation using / splitting\n * Since special formats (MMM, MMMM, YYYY) are handled before this function\n *\n * @param input - The partial date input to validate\n * @returns Object with validation result and optional error message\n *\n * @example\n * // Valid partial input\n * validatePartialDateSimple(\"15\")\n * // → { isValid: true }\n *\n * @example\n * // Invalid day\n * validatePartialDateSimple(\"35\")\n * // → { isValid: false, error: \"Day cannot be greater than 31\" }\n *\n * @example\n * // Invalid month\n * validatePartialDateSimple(\"15/13\")\n * // → { isValid: false, error: \"Month cannot be greater than 12\" }\n *\n * @example\n * // Invalid day-month combination\n * validatePartialDateSimple(\"30/02\")\n * // → { isValid: false, error: \"February cannot have more than 29 days\" }\n */\nfunction validatePartialDateSimple(input: string): { isValid: boolean; error?: string } {\n // Don't validate empty input - let user start typing\n if (!input?.trim()) {\n return { isValid: true };\n }\n\n // Split by / to get day, month parts\n const parts = input.split('/');\n\n // Validate day part (first part)\n if (parts[0]?.length >= 2) {\n const dayStr = parts[0].trim();\n if (dayStr.length > 0) {\n const day = parseInt(dayStr, 10);\n\n // Day must be valid number\n if (isNaN(day)) {\n return { isValid: false, error: 'Please enter a valid day (01-31)' };\n }\n\n // Day cannot be greater than 31\n if (day > 31) {\n return { isValid: false, error: 'Day cannot be greater than 31' };\n }\n\n // Day cannot be 00\n if (day === 0) {\n return { isValid: false, error: 'Day cannot be 00, please enter 01-31' };\n }\n }\n }\n\n // Validate month part (second part)\n if (parts[1]?.length >= 2) {\n const monthStr = parts[1].trim();\n if (monthStr.length > 0) {\n const month = parseInt(monthStr, 10);\n\n // Month must be valid number\n if (isNaN(month)) {\n return { isValid: false, error: 'Please enter a valid month (01-12)' };\n }\n\n // Month cannot be greater than 12\n if (month > 12) {\n return { isValid: false, error: 'Month cannot be greater than 12' };\n }\n\n // Month cannot be 00\n if (month === 0) {\n return { isValid: false, error: 'Month cannot be 00, please enter 01-12' };\n }\n\n // Basic day-month validation (no DayJS needed)\n const day = parts[0]?.trim() ? parseInt(parts[0].trim(), 10) : NaN;\n if (!isNaN(day)) {\n // February cannot have more than 29 days\n if (month === 2 && day > 29) {\n return { isValid: false, error: 'February cannot have more than 29 days' };\n }\n\n // Months with 30 days: April(4), June(6), September(9), November(11)\n if ([4, 6, 9, 11].includes(month) && day > 30) {\n return {\n isValid: false,\n error: `${MONTH_NAMES[month - 1]} cannot have more than 30 days`,\n };\n }\n }\n }\n }\n\n // If we get here, partial input is valid\n return { isValid: true };\n}\n\n/**\n * Removes date delimiters (slashes) from formatted date strings for internal processing\n * Used to convert external formatted values to internal state for easier validation and length checks\n *\n * @param str - The date string with delimiters\n * @returns String without delimiters, or empty string if input is null/undefined\n *\n * @example\n * // Remove slashes from single date\n * stripDelimiters(\"25/12/2024\")\n * // → \"25122024\"\n *\n * @example\n * // Handle null/undefined input\n * stripDelimiters(undefined)\n * // → \"\"\n *\n * @example\n * // Used for internal state conversion\n * stripDelimiters(\"31/12/2024\")\n * // → \"31122024\" (easier for length checks: inputValue.length === 8)\n */\nconst stripDelimiters = (str?: string): string => str?.replace(/\\//g, '') ?? '';\n\n/**\n * Formats a date / date-range into a humanised, easy-to-read format used by the\n * `displayFormat=\"compact\"` mode (e.g. \"7 Jun 2026\", \"1-23 Jun 2026\", or \"7 Jun - 12 Jul 2026\").\n *\n * - Same month & year: only the day is repeated on the start date, e.g. \"1-23 Jun 2026\".\n * - Same year, different month: the year is only repeated on the end date, e.g. \"7 Jun - 12 Jul 2026\".\n * - Different years: the year is repeated on both dates, e.g. \"28 Dec 2025 - 3 Jan 2026\".\n * This intentionally uses a fixed `D MMM YYYY` format (locale-aware) since it is only\n * used for the read-only compact display and not for editable input parsing.\n */\nconst getHumanizedDate = ({\n date,\n locale,\n selectionType,\n}: {\n date: Date | [Date | null, Date | null] | null;\n locale: string;\n selectionType: 'single' | 'range';\n}): string => {\n if (!date) return '';\n\n const withYear = (value: Date): string => dayjs(value).locale(locale).format('D MMM YYYY');\n const withoutYear = (value: Date): string => dayjs(value).locale(locale).format('D MMM');\n const dayOnly = (value: Date): string => dayjs(value).locale(locale).format('D');\n const monthYear = (value: Date): string => dayjs(value).locale(locale).format('MMM YYYY');\n\n if (selectionType === 'single' && date instanceof Date) {\n return withYear(date);\n }\n\n if (Array.isArray(date)) {\n const [startDate, endDate] = date;\n if (startDate && endDate) {\n const start = dayjs(startDate);\n const end = dayjs(endDate);\n const isSameYear = start.year() === end.year();\n const isSameMonth = isSameYear && start.month() === end.month();\n\n if (isSameMonth) {\n return `${dayOnly(startDate)}-${dayOnly(endDate)} ${monthYear(endDate)}`;\n }\n\n return `${isSameYear ? withoutYear(startDate) : withYear(startDate)} - ${withYear(endDate)}`;\n }\n if (startDate) {\n return withYear(startDate);\n }\n }\n\n return '';\n};\n\n/**\n * Clamps a date into the `[minDate, maxDate]` range so the calendar opens on a month\n * that actually contains selectable dates. When the anchor (usually today) is after\n * `maxDate`, the last selectable date (`maxDate`) is returned; when it is before\n * `minDate`, the first selectable date (`minDate`) is returned. Otherwise the anchor is\n * returned unchanged. `excludeDate` gaps are intentionally not considered here.\n */\nconst clampDateToRange = ({\n date,\n minDate,\n maxDate,\n}: {\n date: Date;\n minDate?: Date;\n maxDate?: Date;\n}): Date => {\n if (maxDate && dayjs(date).isAfter(dayjs(maxDate), 'day')) {\n return maxDate;\n }\n if (minDate && dayjs(date).isBefore(dayjs(minDate), 'day')) {\n return minDate;\n }\n return date;\n};\n\nexport {\n convertIntlToDayjsLocale,\n loadScript,\n clampDateToRange,\n getFormattedDate,\n getHumanizedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateDateComponents,\n validateAndParseDateInput,\n validatePartialDateSimple,\n stripDelimiters,\n};\n"],"names":["dayjs","extend","customParseFormat","dayjs_locales","MONTH_NAMES","patchLocale","locale","includes","convertIntlToDayjsLocale","lang","toLowerCase","split","concat","isScriptLoaded","src","Boolean","document","querySelector","loadScript","callback","localeScript","createElement","async","onload","head","appendChild","defaultDateFormatter","_ref","type","date","format","labelSeparator","formatDate","value","Array","isArray","getFormattedDate","_ref2","formatter","others","_objectWithoutProperties","_excluded","rangeFormattedValue","startValue","endValue","rangeInputPlaceHolder","placeholder","finalInputFormat","getTextInputFormat","formatStr","isRangeInput","replace","validateDateComponents","dateStr","trim","isValid","parsed","error","year","parsedDate","toDate","parseSpecialSingleFormat","inputValue","isSpecialFormat","shouldBlock","trimmedInput","today","Date","test","parseInt","getMonth","getDate","length","monthDate","getFullYear","month","validateAndParseDateInput","isRange","options","specialParse","parsedValue","_parts$","_parts$2","_parts$5","_parts$6","parts","_parts$3","_parts$4","startPartialValidation","validatePartialDateSimple","endPartialValidation","startDate","endDate","startValidation","endValidation","minDate","isBefore","maxDate","isAfter","validation","_options$excludeDate","excludeDate","call","partialValidation","input","_parts$7","_parts$8","dayStr","day","isNaN","monthStr","_parts$9","NaN","stripDelimiters","str","_str$replace","getHumanizedDate","_ref3","selectionType","withYear","withoutYear","dayOnly","monthYear","_date","_slicedToArray","start","end","isSameYear","isSameMonth","clampDateToRange","_ref4"],"mappings":"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"}
@@ -141,6 +141,8 @@ var _Dropdown = function _Dropdown(_ref, ref) {
141
141
  value: 0
142
142
  });
143
143
  var dropdownContainerRef = React__default.useRef(null);
144
+ // set by TreeView when it is the overlay content; stays null for every other content
145
+ var treeViewControllerRef = React__default.useRef(null);
144
146
  var dropdownBaseId = useId('dropdown');
145
147
  var isDropdownOpenRef = React__default.useRef(isOpenControlled);
146
148
  var _useControllableState = useControllableState({
@@ -237,7 +239,8 @@ var _Dropdown = function _Dropdown(_ref, ref) {
237
239
  setChangeCallbackTriggerer: setChangeCallbackTriggerer,
238
240
  isControlled: isControlled,
239
241
  setIsControlled: setIsControlled,
240
- isTagDismissedRef: isTagDismissedRef
242
+ isTagDismissedRef: isTagDismissedRef,
243
+ treeViewControllerRef: treeViewControllerRef
241
244
  };
242
245
  },
243
246
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useButtonGroupContext } from '~components/ButtonGroup/ButtonGroupContext';\nimport { isReactNative } from '~utils';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownIconButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n dropdownComponentIds.triggers.FilterChipSelectInput,\n dropdownComponentIds.triggers.InputDropdownButton,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [hasAutoCompleteInHeader, setHasAutoCompleteInHeader] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const headerAutoCompleteRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {\n dropdownTriggerer.current = 'DropdownIconButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.FilterChipSelectInput)) {\n dropdownTriggerer.current = 'FilterChipSelectInput';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.InputDropdownButton)) {\n dropdownTriggerer.current = 'InputDropdownButton';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n headerAutoCompleteRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInHeader,\n setHasAutoCompleteInHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInHeader, isDropdownOpen, close]);\n\n // Inside ButtonGroup (split-button), `height: 100%` resolves against the\n // Storybook/screen parent on React Native and stretches the whole group\n // into a tall vertical strip. Keep content-sized height in that case.\n const buttonGroupProps = useButtonGroupContext();\n const isInsideButtonGroup = Boolean(buttonGroupProps.isInsideButtonGroup);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox\n position=\"relative\"\n textAlign={'left' as never}\n {...(isReactNative() && isInsideButtonGroup ? {} : { height: '100%' })}\n >\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownIconButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","FilterChipSelectInput","InputDropdownButton","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState0","activeIndex","setActiveIndex","_React$useState1","_React$useState10","activeTagIndex","setActiveTagIndex","_React$useState11","_React$useState12","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState13","_React$useState14","hasFooterAction","setHasFooterAction","_React$useState15","_React$useState16","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","_React$useState17","_React$useState18","isKeydownPressed","setIsKeydownPressed","_React$useState19","_React$useState20","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState21","_React$useState22","isControlled","setIsControlled","_React$useState23","_React$useState24","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","headerAutoCompleteRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","buttonGroupProps","useButtonGroupContext","isInsideButtonGroup","Boolean","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","isReactNative","height","assignWithoutSideEffects","forwardRef","componentId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAMA,qBAAqB,GAAG;AAC5B;AACAC,oBAAoB,CAACC,OAAO,EAC5BD,oBAAoB,CAACE,QAAQ,CAACC,WAAW,EACzCH,oBAAoB,CAACE,QAAQ,CAACE,WAAW,EACzCJ,oBAAoB,CAACE,QAAQ,CAACG,cAAc,EAC5CL,oBAAoB,CAACE,QAAQ,CAACI,kBAAkB,EAChDN,oBAAoB,CAACE,QAAQ,CAACK,YAAY,EAC1CP,oBAAoB,CAACQ,eAAe,EACpCR,oBAAoB,CAACE,QAAQ,CAACO,YAAY,EAC1CC,YAAuB,CAACC,WAAW,EACnCX,oBAAoB,CAACE,QAAQ,CAACU,qBAAqB,EACnDZ,oBAAoB,CAACE,QAAQ,CAACW,mBAAmB,CAClD,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA,EAUbC,GAA+B,EACR;AAAA,EAAA,IATrBC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACAC,gBAAgB,GAAAH,IAAA,CAAxBI,MAAM;IACNC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IAAAC,kBAAA,GAAAN,IAAA,CACZO,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,kBAAA;IACxBE,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,MAAM,GAAAT,IAAA,CAANS,MAAM;AACHC,IAAAA,IAAI,GAAAC,wBAAA,CAAAX,IAAA,EAAAY,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,eAAA,GAA8BC,cAAK,CAACC,QAAQ,CAAiC,EAAE,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAAzEK,IAAAA,OAAO,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,UAAU,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAAI,gBAAA,GAA4CN,cAAK,CAACC,QAAQ,CAAW,EAAE,CAAC;IAAAM,gBAAA,GAAAJ,cAAA,CAAAG,gBAAA,EAAA,CAAA,CAAA;AAAjEE,IAAAA,cAAc,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,gBAAA,GAA8CV,cAAK,CAACC,QAAQ,CAE1D,EAAE,CAAC;IAAAU,gBAAA,GAAAR,cAAA,CAAAO,gBAAA,EAAA,CAAA,CAAA;AAFEE,IAAAA,eAAe,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAG1C,EAAA,IAAAG,gBAAA,GAA4Dd,cAAK,CAACC,QAAQ,CAExE,EAAE,CAAC;IAAAc,gBAAA,GAAAZ,cAAA,CAAAW,gBAAA,EAAA,CAAA,CAAA;AAFEE,IAAAA,sBAAsB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;EAGxD,IAAAG,gBAAA,GAAsClB,cAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAAkB,gBAAA,GAAAhB,cAAA,CAAAe,gBAAA,EAAA,CAAA,CAAA;AAAjDE,IAAAA,WAAW,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;EAClC,IAAAG,gBAAA,GAA4CtB,cAAK,CAACC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAAsB,iBAAA,GAAApB,cAAA,CAAAmB,gBAAA,EAAA,CAAA,CAAA;AAAvDE,IAAAA,cAAc,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAG,iBAAA,GAAkE1B,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA0B,iBAAA,GAAAxB,cAAA,CAAAuB,iBAAA,EAAA,CAAA,CAAA;AAAhFE,IAAAA,yBAAyB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,4BAA4B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC9D,EAAA,IAAAG,iBAAA,GAA8C9B,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA8B,iBAAA,GAAA5B,cAAA,CAAA2B,iBAAA,EAAA,CAAA,CAAA;AAA5DE,IAAAA,eAAe,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAAG,iBAAA,GAA8DlC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAkC,iBAAA,GAAAhC,cAAA,CAAA+B,iBAAA,EAAA,CAAA,CAAA;AAA5EE,IAAAA,uBAAuB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,0BAA0B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC1D,EAAA,IAAAG,iBAAA,GAAgDtC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAsC,iBAAA,GAAApC,cAAA,CAAAmC,iBAAA,EAAA,CAAA,CAAA;AAA9DE,IAAAA,gBAAgB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,mBAAmB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAG,iBAAA,GAA8D1C,cAAK,CAACC,QAAQ,CAE1E,CAAC,CAAC;IAAA0C,iBAAA,GAAAxC,cAAA,CAAAuC,iBAAA,EAAA,CAAA,CAAA;AAFGE,IAAAA,uBAAuB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,0BAA0B,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AAG1D,EAAA,IAAAG,iBAAA,GAAwC9C,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAA8C,iBAAA,GAAA5C,cAAA,CAAA2C,iBAAA,EAAA,CAAA,CAAA;AAAtDE,IAAAA,YAAY,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;AACpC;AACA,EAAA,IAAAG,iBAAA,GAA4DlD,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;IAAAkD,iBAAA,GAAAhD,cAAA,CAAA+C,iBAAA,EAAA,CAAA,CAAA;AAA1EE,IAAAA,sBAAsB,GAAAD,iBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,yBAAyB,GAAAF,iBAAA,CAAA,CAAA,CAAA,CAAA;;AAExD;AACF;AACA;AACA;AACE,EAAA,IAAMG,mBAAmB,GAAGtD,cAAK,CAACuD,MAAM,CAAuB,IAAI,CAAC,CAAA;AACpE,EAAA,IAAMC,YAAY,GAAGxD,cAAK,CAACuD,MAAM,CAAoB,IAAI,CAAC,CAAA;AAC1D,EAAA,IAAME,qBAAqB,GAAGzD,cAAK,CAACuD,MAAM,CAAoB,IAAI,CAAC,CAAA;AACnE,EAAA,IAAMG,iBAAiB,GAAG1D,cAAK,CAACuD,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC5D,EAAA,IAAMI,iBAAiB,GAAG3D,cAAK,CAACuD,MAAM,EAA4C,CAAA;AAClF,EAAA,IAAMK,iBAAiB,GAAG5D,cAAK,CAACuD,MAAM,CAA4B;AAAEM,IAAAA,KAAK,EAAE,KAAA;AAAM,GAAC,CAAC,CAAA;AACnF,EAAA,IAAMC,mBAAmB,GAAG9D,cAAK,CAACuD,MAAM,CAAoB;AAAEM,IAAAA,KAAK,EAAE,CAAA;AAAE,GAAC,CAAC,CAAA;AACzE,EAAA,IAAME,oBAAoB,GAAG/D,cAAK,CAACuD,MAAM,CAAiB,IAAI,CAAC,CAAA;AAE/D,EAAA,IAAMS,cAAc,GAAGC,KAAK,CAAC,UAAU,CAAC,CAAA;AACxC,EAAA,IAAMC,iBAAiB,GAAGlE,cAAK,CAACuD,MAAM,CAAClE,gBAAgB,CAAC,CAAA;EAExD,IAAA8E,qBAAA,GAA4CC,oBAAoB,CAAC;AAC/DP,MAAAA,KAAK,EAAExE,gBAAgB;AACvBgF,MAAAA,YAAY,EAAE,KAAK;AACnBC,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGC,qBAAqB,EAAK;QACnCL,iBAAiB,CAACM,OAAO,GAAGD,qBAAqB,CAAA;AACjDhF,QAAAA,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,IAAZA,YAAY,CAAGgF,qBAAqB,CAAC,CAAA;AACvC,OAAA;AACF,KAAC,CAAC;IAAAE,sBAAA,GAAAtE,cAAA,CAAAgE,qBAAA,EAAA,CAAA,CAAA;AAPKO,IAAAA,cAAc,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;EASxCP,iBAAiB,CAACM,OAAO,GAAGE,cAAc,CAAA;AAE1C,EAAA,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAIC,WAAoB,EAAW;IAChDX,iBAAiB,CAACM,OAAO,GAAGK,WAAW,CAAA;AACvCF,IAAAA,iBAAiB,CAAC,YAAA;AAAA,MAAA,OAAME,WAAW,CAAA;KAAC,CAAA,CAAA;GACrC,CAAA;AAED,EAAA,IAAMC,KAAK,GAAG9E,cAAK,CAAC+E,WAAW,CAAC,YAAM;IACpCtD,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrBmD,SAAS,CAAC,KAAK,CAAC,CAAA;AAChB;GACD,EAAE,EAAE,CAAC,CAAA;EAEN5E,cAAK,CAACgF,QAAQ,CAACC,GAAG,CAAC7F,QAAQ,EAAE,UAAC8F,KAAK,EAAK;AACtC,IAAA,iBAAIlF,cAAK,CAACmF,cAAc,CAACD,KAAK,CAAC,EAAE;AAC/B,MAAA,IAAI,KAAO,EAAE;AAAA,QAAA,IAAAE,eAAA,CAAA;AACX,QAAA,IAAI,CAAClH,qBAAqB,CAACmH,QAAQ,CAAAD,CAAAA,eAAA,GAACE,cAAc,CAACJ,KAAK,CAAC,cAAAE,eAAA,KAAA,KAAA,CAAA,GAAAA,eAAA,GAAI,EAAE,CAAC,EAAE;AAChEG,UAAAA,eAAe,CAAC;YACdC,OAAO,EAAA,sEAAA,CAAAC,MAAA,CAAyEvH,qBAAqB,CAACwH,IAAI,CACxG,IACF,CAAC,EAA8E,8EAAA,CAAA;AAC/EC,YAAAA,UAAU,EAAE,UAAA;AACd,WAAC,CAAC,CAAA;AACJ,SAAA;AACF,OAAA;MAEA,IAAIC,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACC,WAAW,CAAC,EAAE;QAC5EqF,iBAAiB,CAACa,OAAO,GAAG,aAAa,CAAA;AAC3C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACE,WAAW,CAAC,EAAE;QAC5EoF,iBAAiB,CAACa,OAAO,GAAG,aAAa,CAAA;AAC3C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACG,cAAc,CAAC,EAAE;QAC/EmF,iBAAiB,CAACa,OAAO,GAAG,gBAAgB,CAAA;AAC9C,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACI,kBAAkB,CAAC,EAAE;QACnFkF,iBAAiB,CAACa,OAAO,GAAG,oBAAoB,CAAA;AAClD,OAAA;MAEA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACO,YAAY,CAAC,EAAE;QAC7E+E,iBAAiB,CAACa,OAAO,GAAG,cAAc,CAAA;AAC5C,OAAA;MACA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACU,qBAAqB,CAAC,EAAE;QACtF4E,iBAAiB,CAACa,OAAO,GAAG,uBAAuB,CAAA;AACrD,OAAA;MACA,IAAIoB,sBAAsB,CAACV,KAAK,EAAE/G,oBAAoB,CAACE,QAAQ,CAACW,mBAAmB,CAAC,EAAE;QACpF2E,iBAAiB,CAACa,OAAO,GAAG,qBAAqB,CAAA;AACnD,OAAA;AACF,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMqB,YAAY,GAAG7F,cAAK,CAAC8F,OAAO,CAChC,YAAA;IAAA,OAAO;AACLxG,MAAAA,MAAM,EAAEoF,cAAc;AACtBE,MAAAA,SAAS,EAATA,SAAS;AACTE,MAAAA,KAAK,EAALA,KAAK;AACLlE,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBG,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBb,MAAAA,OAAO,EAAPA,OAAO;AACPC,MAAAA,UAAU,EAAVA,UAAU;AACVG,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBW,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,cAAc,EAAdA,cAAc;AACdG,MAAAA,cAAc,EAAdA,cAAc;AACdC,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBqC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBlC,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBC,MAAAA,4BAA4B,EAA5BA,4BAA4B;AAC5BW,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBuB,MAAAA,cAAc,EAAdA,cAAc;AACdR,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,qBAAqB,EAArBA,qBAAqB;AACrBH,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBI,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBjE,MAAAA,aAAa,EAAbA,aAAa;AACbuC,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBG,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBC,MAAAA,0BAA0B,EAA1BA,0BAA0B;MAC1BsB,iBAAiB,EAAEA,iBAAiB,CAACa,OAAO;AAC5C5B,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBC,MAAAA,0BAA0B,EAA1BA,0BAA0B;AAC1BG,MAAAA,YAAY,EAAZA,YAAY;AACZC,MAAAA,eAAe,EAAfA,eAAe;AACfW,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD,CAAA;GAAC;AACF;AACA,EAAA,CACEc,cAAc,EACdrF,gBAAgB,EAChBuB,eAAe,EACfI,sBAAsB,EACtBZ,OAAO,EACPI,cAAc,EACdY,WAAW,EACXI,cAAc,EACdI,yBAAyB,EACzBnC,aAAa,EACbuC,eAAe,EACfQ,gBAAgB,EAChBI,uBAAuB,EACvBI,YAAY,CAEhB,CAAC,CAAA;AAED,EAAA,IAAM+C,sCAAsC,GAAG/F,cAAK,CAAC8F,OAAO,CAAC,YAAyC;IACpG,OAAO;AACLxG,MAAAA,MAAM,EAAEoF,cAAc;AACtBtB,MAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBhB,MAAAA,uBAAuB,EAAvBA,uBAAuB;AACvBiB,MAAAA,yBAAyB,EAAzBA,yBAAyB;AACzB;AACA;AACA2C,MAAAA,oBAAoB,EAAElB,KAAAA;KACvB,CAAA;GACF,EAAE,CAAC1B,sBAAsB,EAAEhB,uBAAuB,EAAEsC,cAAc,EAAEI,KAAK,CAAC,CAAC,CAAA;;AAE5E;AACA;AACA;AACA,EAAA,IAAMmB,gBAAgB,GAAGC,qBAAqB,EAAE,CAAA;AAChD,EAAA,IAAMC,mBAAmB,GAAGC,OAAO,CAACH,gBAAgB,CAACE,mBAAmB,CAAC,CAAA;AAEzE,EAAA,oBACEE,GAAA,CAACC,iCAAiC,CAACC,QAAQ,EAAA;AAAC1C,IAAAA,KAAK,EAAEkC,sCAAuC;AAAA3G,IAAAA,QAAA,eACxFiH,GAAA,CAACG,eAAe,CAACD,QAAQ,EAAA;AAAC1C,MAAAA,KAAK,EAAEgC,YAAa;MAAAzG,QAAA,eAC5CiH,GAAA,CAACjI,OAAAA;AACC;AAAA,QAAAqI,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACAtH,QAAAA,GAAG,EAAEuH,SAAS,CAACvH,GAAG,EAAE4E,oBAA2B,CAAA;AAAE,OAAA,EAC7C4C,aAAa,CAAC;QAAEC,IAAI,EAAEC,aAAa,CAACC,QAAQ;AAAEpH,QAAAA,MAAM,EAANA,MAAAA;OAAQ,CAAC,CACvDqH,EAAAA,cAAc,CAACnH,IAAI,CAAC,CACpBoH,EAAAA,sBAAsB,CAACpH,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;AAChCqH,QAAAA,KAAK,EAAEtH,MAAO;AAAAP,QAAAA,QAAA,eAEdiH,GAAA,CAACjI,OAAO,EAAAqI,aAAA,CAAAA,aAAA,CAAA;AACNS,UAAAA,QAAQ,EAAC,UAAU;AACnBC,UAAAA,SAAS,EAAE,MAAA;SACNC,EAAAA,aAAa,EAAE,IAAIjB,mBAAmB,GAAG,EAAE,GAAG;AAAEkB,UAAAA,MAAM,EAAE,MAAA;SAAQ,CAAA,EAAA,EAAA,EAAA;AAAAjI,UAAAA,QAAA,EAEpEA,QAAAA;SACM,CAAA,CAAA;OACF,CAAA,CAAA;KACe,CAAA;AAAC,GACe,CAAC,CAAA;AAEjD,CAAC,CAAA;AAEK0H,IAAAA,QAAQ,gBAAGQ,wBAAwB,cAACtH,cAAK,CAACuH,UAAU,CAACtI,SAAS,CAAC,EAAE;EACrEuI,WAAW,EAAErJ,oBAAoB,CAAC2I,QAAAA;AACpC,CAAC;;;;"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { useButtonGroupContext } from '~components/ButtonGroup/ButtonGroupContext';\nimport { isReactNative } from '~utils';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownIconButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n dropdownComponentIds.triggers.FilterChipSelectInput,\n dropdownComponentIds.triggers.InputDropdownButton,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [hasAutoCompleteInHeader, setHasAutoCompleteInHeader] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const headerAutoCompleteRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n // set by TreeView when it is the overlay content; stays null for every other content\n const treeViewControllerRef = React.useRef<\n DropdownContextType['treeViewControllerRef']['current']\n >(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {\n dropdownTriggerer.current = 'DropdownIconButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.FilterChipSelectInput)) {\n dropdownTriggerer.current = 'FilterChipSelectInput';\n }\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.InputDropdownButton)) {\n dropdownTriggerer.current = 'InputDropdownButton';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n headerAutoCompleteRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInHeader,\n setHasAutoCompleteInHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n treeViewControllerRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInHeader, isDropdownOpen, close]);\n\n // Inside ButtonGroup (split-button), `height: 100%` resolves against the\n // Storybook/screen parent on React Native and stretches the whole group\n // into a tall vertical strip. Keep content-sized height in that case.\n const buttonGroupProps = useButtonGroupContext();\n const isInsideButtonGroup = Boolean(buttonGroupProps.isInsideButtonGroup);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox\n position=\"relative\"\n textAlign={'left' as never}\n {...(isReactNative() && isInsideButtonGroup ? {} : { height: '100%' })}\n >\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownIconButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","FilterChipSelectInput","InputDropdownButton","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState0","activeIndex","setActiveIndex","_React$useState1","_React$useState10","activeTagIndex","setActiveTagIndex","_React$useState11","_React$useState12","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState13","_React$useState14","hasFooterAction","setHasFooterAction","_React$useState15","_React$useState16","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","_React$useState17","_React$useState18","isKeydownPressed","setIsKeydownPressed","_React$useState19","_React$useState20","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState21","_React$useState22","isControlled","setIsControlled","_React$useState23","_React$useState24","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","headerAutoCompleteRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","treeViewControllerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","buttonGroupProps","useButtonGroupContext","isInsideButtonGroup","Boolean","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","isReactNative","height","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}