@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
@@ -13,9 +13,20 @@ import { isReactNative } from '../../utils/platform/isReactNative.js';
13
13
  var _excluded = ["isOpen", "setIsOpen", "close", "selectedIndices", "setSelectedIndices", "activeIndex", "setActiveIndex", "activeTagIndex", "setActiveTagIndex", "visibleTagsCountRef", "isKeydownPressed", "setIsKeydownPressed", "options", "selectionType", "changeCallbackTriggerer", "setChangeCallbackTriggerer", "isControlled", "setControlledValueIndices", "filteredValues", "dropdownTriggerer"];
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
19
 
17
20
  // eslint-disable-next-line @typescript-eslint/no-empty-function
18
21
  var noop = function noop() {};
22
+
23
+ /**
24
+ * Controller published by TreeView when it is rendered as Dropdown overlay content.
25
+ *
26
+ * All tree-specific behaviour inside Dropdown is gated on this being present, so
27
+ * ActionList (and any other overlay content) paths stay behaviourally identical
28
+ */
29
+
19
30
  var DropdownContext = /*#__PURE__*/React__default.createContext({
20
31
  isOpen: false,
21
32
  setIsOpen: noop,
@@ -62,6 +73,9 @@ var DropdownContext = /*#__PURE__*/React__default.createContext({
62
73
  },
63
74
  triggererWrapperRef: {
64
75
  current: null
76
+ },
77
+ treeViewControllerRef: {
78
+ current: null
65
79
  }
66
80
  });
67
81
  var searchTimeout;
@@ -73,6 +87,7 @@ var searchString = '';
73
87
  *
74
88
  */
75
89
  var useDropdown = function useDropdown() {
90
+ var _rest$treeViewControl6;
76
91
  var _React$useContext = React__default.useContext(DropdownContext),
77
92
  isOpen = _React$useContext.isOpen,
78
93
  setIsOpen = _React$useContext.setIsOpen,
@@ -149,6 +164,44 @@ var useDropdown = function useDropdown() {
149
164
  return isSelected;
150
165
  };
151
166
 
167
+ /**
168
+ * Marks multiple indices as selected / deselected in a single state update and
169
+ * bumps the change callback triggerer exactly once.
170
+ *
171
+ * Used by TreeView for branch cascade toggles (one branch toggle mutates many leaf
172
+ * indices but must fire a single `onChange`). Routes through the same controlled /
173
+ * uncontrolled fork as `selectOption`. ActionList does not use this
174
+ */
175
+ var selectOptionsBatch = function selectOptionsBatch(indices, action) {
176
+ if (indices.length === 0) {
177
+ return;
178
+ }
179
+ var updatedIndices;
180
+ if (action === 'select') {
181
+ updatedIndices = _toConsumableArray(selectedIndices);
182
+ var _iterator = _createForOfIteratorHelper(indices),
183
+ _step;
184
+ try {
185
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
186
+ var _index = _step.value;
187
+ if (_index >= 0 && _index <= options.length - 1 && !updatedIndices.includes(_index)) {
188
+ updatedIndices.push(_index);
189
+ }
190
+ }
191
+ } catch (err) {
192
+ _iterator.e(err);
193
+ } finally {
194
+ _iterator.f();
195
+ }
196
+ } else {
197
+ updatedIndices = selectedIndices.filter(function (selectedIndex) {
198
+ return !indices.includes(selectedIndex);
199
+ });
200
+ }
201
+ setIndices(updatedIndices);
202
+ setChangeCallbackTriggerer(changeCallbackTriggerer + 1);
203
+ };
204
+
152
205
  /**
153
206
  * Click listener for combobox (or any triggerer of the dropdown)
154
207
  */
@@ -164,11 +217,23 @@ var useDropdown = function useDropdown() {
164
217
  * Function that we call when we want to move focus from one option to other
165
218
  */
166
219
  var onOptionChange = function onOptionChange(actionType, index) {
220
+ var _rest$treeViewControl;
167
221
  setActiveTagIndex(-1);
168
222
  var newIndex = index !== null && index !== void 0 ? index : activeIndex;
169
223
  var updatedIndex;
170
224
  var hasAutoComplete = rest.hasAutoCompleteInHeader || dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;
171
- if (hasAutoComplete && filteredValues.length > 0) {
225
+ var treeViewController = (_rest$treeViewControl = rest.treeViewControllerRef) === null || _rest$treeViewControl === void 0 ? void 0 : _rest$treeViewControl.current;
226
+ if (treeViewController) {
227
+ var _visibleIndexes$getUp;
228
+ // When overlay content is a TreeView, traversal skips rows hidden under collapsed
229
+ // branches (indices stay stable across expand / collapse, only traversal changes)
230
+ var visibleIndexes = treeViewController.getVisibleOptionIndices();
231
+ updatedIndex = (_visibleIndexes$getUp = visibleIndexes[getUpdatedIndex({
232
+ currentIndex: visibleIndexes.indexOf(newIndex),
233
+ maxIndex: visibleIndexes.length - 1,
234
+ actionType: actionType
235
+ })]) !== null && _visibleIndexes$getUp !== void 0 ? _visibleIndexes$getUp : newIndex;
236
+ } else if (hasAutoComplete && filteredValues.length > 0) {
172
237
  // When its autocomplete, we don't loop over all options. We only loop on filtered options
173
238
 
174
239
  var filteredIndexes = filteredValues.map(function (filteredValue) {
@@ -274,23 +339,43 @@ var useDropdown = function useDropdown() {
274
339
  }
275
340
  var actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);
276
341
  if (actionType) {
342
+ var _rest$treeViewControl3;
277
343
  performAction(actionType, e, {
278
344
  setIsOpen: setIsOpen,
279
345
  close: close,
280
346
  onOptionChange: onOptionChange,
281
347
  onComboType: onComboType,
282
- selectCurrentOption: function selectCurrentOption() {
283
- var _options$activeIndex$, _options$activeIndex;
348
+ selectCurrentOption: function selectCurrentOption(event) {
349
+ var _rest$treeViewControl2, _options$activeIndex$, _options$activeIndex;
284
350
  if (activeIndex < 0) {
285
351
  return;
286
352
  }
353
+
354
+ // TreeView handles branch cascade toggles and load-more rows itself
355
+ var treeViewController = (_rest$treeViewControl2 = rest.treeViewControllerRef) === null || _rest$treeViewControl2 === void 0 ? void 0 : _rest$treeViewControl2.current;
356
+ if (treeViewController !== null && treeViewController !== void 0 && treeViewController.handleOptionSelect(activeIndex, {
357
+ key: event === null || event === void 0 ? void 0 : event.key
358
+ })) {
359
+ return;
360
+ }
287
361
  var isSelected = selectOption(activeIndex);
288
362
  if (rest.hasFooterAction && !isReactNative()) {
289
363
  var _rest$triggererRef$cu2;
290
364
  (_rest$triggererRef$cu2 = rest.triggererRef.current) === null || _rest$triggererRef$cu2 === void 0 || _rest$triggererRef$cu2.focus();
291
365
  }
292
366
  (_options$activeIndex$ = (_options$activeIndex = options[activeIndex]).onClickTrigger) === null || _options$activeIndex$ === void 0 || _options$activeIndex$.call(_options$activeIndex, isSelected);
293
- }
367
+ },
368
+ // present only when overlay content is a TreeView; undefined keeps
369
+ // ArrowLeft / ArrowRight behaviour unchanged for every other content
370
+ onTreeExpandCollapse: (_rest$treeViewControl3 = rest.treeViewControllerRef) !== null && _rest$treeViewControl3 !== void 0 && _rest$treeViewControl3.current ? function (action) {
371
+ if (action === 'Expand') {
372
+ var _rest$treeViewControl4;
373
+ (_rest$treeViewControl4 = rest.treeViewControllerRef.current) === null || _rest$treeViewControl4 === void 0 || _rest$treeViewControl4.onArrowRightKeydown(activeIndex);
374
+ } else {
375
+ var _rest$treeViewControl5;
376
+ (_rest$treeViewControl5 = rest.treeViewControllerRef.current) === null || _rest$treeViewControl5 === void 0 || _rest$treeViewControl5.onArrowLeftKeydown(activeIndex);
377
+ }
378
+ } : undefined
294
379
  });
295
380
  }
296
381
  };
@@ -302,6 +387,7 @@ var useDropdown = function useDropdown() {
302
387
  setSelectedIndices: setSelectedIndices,
303
388
  filteredValues: filteredValues,
304
389
  removeOption: removeOption,
390
+ selectOptionsBatch: selectOptionsBatch,
305
391
  setControlledValueIndices: setControlledValueIndices,
306
392
  onTriggerClick: onTriggerClick,
307
393
  onTriggerKeydown: onTriggerKeydown,
@@ -318,7 +404,7 @@ var useDropdown = function useDropdown() {
318
404
  isControlled: isControlled,
319
405
  options: options,
320
406
  value: makeInputValue(selectedIndices, options),
321
- displayValue: makeInputDisplayValue(selectedIndices, options),
407
+ displayValue: makeInputDisplayValue(selectedIndices, options, (_rest$treeViewControl6 = rest.treeViewControllerRef) === null || _rest$treeViewControl6 === void 0 || (_rest$treeViewControl6 = _rest$treeViewControl6.current) === null || _rest$treeViewControl6 === void 0 ? void 0 : _rest$treeViewControl6.getDisplayOverride(selectedIndices)),
322
408
  selectionType: selectionType,
323
409
  dropdownTriggerer: dropdownTriggerer
324
410
  }, rest);
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput'\n | 'FilterChipSelectInput'\n | 'InputDropdownButton';\n\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n headerAutoCompleteRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheetHeader and DropdownHeader, the trigger can be Select but they can also have autocomplete inside of header\n */\n hasAutoCompleteInHeader: boolean;\n setHasAutoCompleteInHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInHeader: false,\n setHasAutoCompleteInHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n headerAutoCompleteRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n setIsKeydownPressed(false);\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n\n if (!isReactNative()) {\n if (rest.hasAutoCompleteInHeader) {\n // move focus to autocomplete\n rest.headerAutoCompleteRef.current?.focus();\n } else {\n rest.triggererRef.current?.focus();\n }\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","headerAutoCompleteRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$headerAutoCompl","focus","_rest$triggererRef$cu","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\n/**\n * Controller published by TreeView when it is rendered as Dropdown overlay content.\n *\n * All tree-specific behaviour inside Dropdown is gated on this being present, so\n * ActionList (and any other overlay content) paths stay behaviourally identical\n */\ntype TreeViewDropdownControllerType = {\n /**\n * Option indices of rows that are currently traversable (not hidden under a collapsed branch).\n * Used for visibility-aware keyboard traversal (same idea as AutoComplete's filteredValues)\n */\n getVisibleOptionIndices: () => number[];\n /**\n * ArrowRight: expand the active collapsed branch, or move to its first child\n */\n onArrowRightKeydown: (activeIndex: number) => void;\n /**\n * ArrowLeft: collapse the active expanded branch, or move to its parent\n */\n onArrowLeftKeydown: (activeIndex: number) => void;\n /**\n * Returns true when the tree handled the selection itself\n * (branch cascade toggle in multiple selection / load-more activation).\n * Returning false falls through to the default selectOption path\n */\n handleOptionSelect: (index: number, properties?: { key?: string }) => boolean;\n /**\n * Values of the topmost fully-selected branches, included in the trigger's onChange payload\n */\n getSelectedGroups: (selectedIndices: number[]) => string[];\n /**\n * Smallest describing set for the trigger display (D5)\n */\n getDisplayOverride: (selectedIndices: number[]) => { label: string; count: number } | undefined;\n};\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput'\n | 'FilterChipSelectInput'\n | 'InputDropdownButton';\n\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n headerAutoCompleteRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheetHeader and DropdownHeader, the trigger can be Select but they can also have autocomplete inside of header\n */\n hasAutoCompleteInHeader: boolean;\n setHasAutoCompleteInHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n\n /**\n * Set by TreeView when it is rendered as the overlay content. null for every other\n * overlay content (ActionList, Menu, custom slots)\n */\n treeViewControllerRef: React.MutableRefObject<TreeViewDropdownControllerType | null>;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInHeader: false,\n setHasAutoCompleteInHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n headerAutoCompleteRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n treeViewControllerRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * Selects / deselects multiple options in one state update with a single onChange.\n * Used by TreeView branch cascade toggles\n */\n selectOptionsBatch: (indices: number[], action: 'select' | 'deselect') => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Marks multiple indices as selected / deselected in a single state update and\n * bumps the change callback triggerer exactly once.\n *\n * Used by TreeView for branch cascade toggles (one branch toggle mutates many leaf\n * indices but must fire a single `onChange`). Routes through the same controlled /\n * uncontrolled fork as `selectOption`. ActionList does not use this\n */\n const selectOptionsBatch = (indices: number[], action: 'select' | 'deselect'): void => {\n if (indices.length === 0) {\n return;\n }\n\n let updatedIndices: number[];\n if (action === 'select') {\n updatedIndices = [...selectedIndices];\n for (const index of indices) {\n if (index >= 0 && index <= options.length - 1 && !updatedIndices.includes(index)) {\n updatedIndices.push(index);\n }\n }\n } else {\n updatedIndices = selectedIndices.filter((selectedIndex) => !indices.includes(selectedIndex));\n }\n\n setIndices(updatedIndices);\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n const treeViewController = rest.treeViewControllerRef?.current;\n if (treeViewController) {\n // When overlay content is a TreeView, traversal skips rows hidden under collapsed\n // branches (indices stay stable across expand / collapse, only traversal changes)\n const visibleIndexes = treeViewController.getVisibleOptionIndices();\n updatedIndex =\n visibleIndexes[\n getUpdatedIndex({\n currentIndex: visibleIndexes.indexOf(newIndex),\n maxIndex: visibleIndexes.length - 1,\n actionType,\n })\n ] ?? newIndex;\n } else if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n setIsKeydownPressed(false);\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n\n if (!isReactNative()) {\n if (rest.hasAutoCompleteInHeader) {\n // move focus to autocomplete\n rest.headerAutoCompleteRef.current?.focus();\n } else {\n rest.triggererRef.current?.focus();\n }\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: (event) => {\n if (activeIndex < 0) {\n return;\n }\n\n // TreeView handles branch cascade toggles and load-more rows itself\n const treeViewController = rest.treeViewControllerRef?.current;\n if (treeViewController?.handleOptionSelect(activeIndex, { key: event?.key })) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n // present only when overlay content is a TreeView; undefined keeps\n // ArrowLeft / ArrowRight behaviour unchanged for every other content\n onTreeExpandCollapse: rest.treeViewControllerRef?.current\n ? (action) => {\n if (action === 'Expand') {\n rest.treeViewControllerRef.current?.onArrowRightKeydown(activeIndex);\n } else {\n rest.treeViewControllerRef.current?.onArrowLeftKeydown(activeIndex);\n }\n }\n : undefined,\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n selectOptionsBatch,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(\n selectedIndices,\n options,\n rest.treeViewControllerRef?.current?.getDisplayOverride(selectedIndices),\n ),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType, TreeViewDropdownControllerType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInHeader","setHasAutoCompleteInHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","headerAutoCompleteRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","treeViewControllerRef","searchTimeout","searchString","useDropdown","_rest$treeViewControl6","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","selectOptionsBatch","action","updatedIndices","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","push","err","e","f","filter","selectedIndex","onTriggerClick","onOptionChange","actionType","_rest$treeViewControl","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","treeViewController","_visibleIndexes$getUp","visibleIndexes","getVisibleOptionIndices","getUpdatedIndex","currentIndex","maxIndex","filteredIndexes","map","filteredValue","findIndex","option","sort","a","b","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","getActionFromKey","isReactNative","_rest$headerAutoCompl","focus","_rest$triggererRef$cu","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","_rest$treeViewControl3","performAction","selectCurrentOption","_rest$treeViewControl2","_options$activeIndex$","_options$activeIndex","handleOptionSelect","_rest$triggererRef$cu2","onClickTrigger","call","onTreeExpandCollapse","_rest$treeViewControl4","onArrowRightKeydown","_rest$treeViewControl5","onArrowLeftKeydown","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue","getDisplayOverride"],"mappings":"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"}
@@ -21,9 +21,9 @@ import { getFocusRingStyles } from '../../utils/getFocusRingStyles/getFocusRingS
21
21
  import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
22
22
  import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
23
23
  import { makeBorderSize } from '../../utils/makeBorderSize/makeBorderSize.js';
24
+ import { Text } from '../Typography/Text/Text.js';
24
25
  import { Box } from '../Box/Box.js';
25
26
  import { Counter } from '../Counter/Counter.js';
26
- import { Text } from '../Typography/Text/Text.js';
27
27
  import { makeAccessible } from '../../utils/makeAccessible/makeAccessible.web.js';
28
28
  import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
29
29
  import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
@@ -34,7 +34,7 @@ import CloseIcon from '../Icons/CloseIcon/CloseIcon.js';
34
34
  import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
35
35
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
36
36
 
37
- var _excluded = ["value", "onClearButtonClick", "label", "isDisabled", "selectionType", "onClick", "onKeyDown", "accessibilityProps", "id"];
37
+ var _excluded = ["value", "onClearButtonClick", "label", "isDisabled", "selectionType", "showClearButton", "onClick", "onKeyDown", "accessibilityProps", "id"];
38
38
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
39
39
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
40
40
  var getInteractiveFilterItemStyles = function getInteractiveFilterItemStyles(_ref) {
@@ -83,15 +83,17 @@ var StyledFilterTrigger = /*#__PURE__*/styled.button.withConfig({
83
83
  componentId: "sc-7fl0tf-1"
84
84
  })(function (_ref3) {
85
85
  var theme = _ref3.theme,
86
- $isSelected = _ref3.$isSelected;
86
+ $hasClearButton = _ref3.$hasClearButton;
87
87
  var spacing = theme.spacing;
88
88
  return _objectSpread({
89
89
  backgroundColor: theme.colors.transparent,
90
- borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.small,
90
+ // When a clear button follows the trigger its right corners butt against the divider,
91
+ // so they're squared off. Without a clear button the trigger is a self-contained pill.
92
+ borderRadius: $hasClearButton ? theme.border.radius.none : theme.border.radius.small,
91
93
  borderTopLeftRadius: theme.border.radius.small,
92
94
  borderBottomLeftRadius: theme.border.radius.small,
93
95
  paddingLeft: makeSpace(spacing[4]),
94
- paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),
96
+ paddingRight: $hasClearButton ? makeSpace(spacing[2]) : makeSpace(spacing[3]),
95
97
  gap: makeSpace(spacing[2])
96
98
  }, getInteractiveFilterItemStyles({
97
99
  theme: theme
@@ -115,12 +117,31 @@ var StyledFilterCloseButton = /*#__PURE__*/styled.button.withConfig({
115
117
  }));
116
118
  });
117
119
  var renderValue = function renderValue(selectionType, value, isDisabled) {
118
- if (selectionType === 'multiple' && Array.isArray(value)) {
120
+ var valueColor = isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal';
121
+
122
+ // For multiple selection: when a single option is selected we show its name (no redundant
123
+ // "1" counter); once more than one is selected we collapse to a compact counter.
124
+ // Use an explicit type guard so a non-array value (e.g. a plain string returned by
125
+ // getFilterChipDisplayValue) never enters the array branch where .length would be
126
+ // misinterpreted as character count.
127
+ if (selectionType === 'multiple') {
128
+ var valueArray = Array.isArray(value) ? value : value != null ? [value] : [];
129
+ if (valueArray.length === 1) {
130
+ var _valueArray$;
131
+ return /*#__PURE__*/jsx(Text, {
132
+ as: "span",
133
+ size: "small",
134
+ weight: "medium",
135
+ color: valueColor,
136
+ truncateAfterLines: 1,
137
+ children: String((_valueArray$ = valueArray[0]) !== null && _valueArray$ !== void 0 ? _valueArray$ : '')
138
+ });
139
+ }
119
140
  return /*#__PURE__*/jsx(Box, {
120
141
  display: "flex",
121
142
  alignItems: "center",
122
143
  children: /*#__PURE__*/jsx(Counter, {
123
- value: value.length,
144
+ value: valueArray.length,
124
145
  color: "neutral",
125
146
  size: "small"
126
147
  })
@@ -130,8 +151,8 @@ var renderValue = function renderValue(selectionType, value, isDisabled) {
130
151
  as: "span",
131
152
  size: "small",
132
153
  weight: "medium",
133
- color: isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal',
134
- children: value
154
+ color: valueColor,
155
+ children: value != null ? String(value) : ''
135
156
  });
136
157
  };
137
158
  var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
@@ -142,18 +163,21 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
142
163
  isDisabled = _ref5.isDisabled,
143
164
  _ref5$selectionType = _ref5.selectionType,
144
165
  selectionType = _ref5$selectionType === void 0 ? 'single' : _ref5$selectionType,
166
+ _ref5$showClearButton = _ref5.showClearButton,
167
+ showClearButton = _ref5$showClearButton === void 0 ? true : _ref5$showClearButton,
145
168
  _onClick = _ref5.onClick,
146
169
  _onKeyDown = _ref5.onKeyDown,
147
170
  accessibilityProps = _ref5.accessibilityProps,
148
171
  id = _ref5.id,
149
172
  rest = _objectWithoutProperties(_ref5, _excluded);
150
173
  var isSelected = selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;
174
+ var shouldShowClearButton = isSelected && showClearButton;
151
175
  return /*#__PURE__*/jsxs(StyledFilterChip, {
152
176
  $isDisabled: isDisabled,
153
177
  $isSelected: isSelected,
154
178
  ref: ref,
155
179
  children: [/*#__PURE__*/jsxs(StyledFilterTrigger, _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
156
- $isSelected: isSelected,
180
+ $hasClearButton: shouldShowClearButton,
157
181
  disabled: isDisabled,
158
182
  id: id,
159
183
  onClick: function onClick(e) {
@@ -191,7 +215,7 @@ var _BaseFilterChip = function _BaseFilterChip(_ref5, ref) {
191
215
  color: "interactive.icon.gray.muted"
192
216
  })
193
217
  })]
194
- })), isSelected ? /*#__PURE__*/jsxs(Fragment, {
218
+ })), shouldShowClearButton ? /*#__PURE__*/jsxs(Fragment, {
195
219
  children: [/*#__PURE__*/jsx(Divider, {
196
220
  orientation: "vertical",
197
221
  variant: isDisabled ? 'muted' : 'subtle'
@@ -1 +1 @@
1
- {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport type { Theme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'faded'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.small,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'muted'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $isSelected?: boolean }>(({ theme, $isSelected }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n borderRadius: $isSelected ? theme.border.radius.none : theme.border.radius.small,\n borderTopLeftRadius: theme.border.radius.small,\n borderBottomLeftRadius: theme.border.radius.small,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $isSelected ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.small,\n borderBottomRightRadius: theme.border.radius.small,\n paddingLeft: makeSpace(theme.spacing[2] + theme.spacing[1]),\n paddingRight: makeSpace(theme.spacing[2] + theme.spacing[1]),\n justifyContent: 'center',\n alignItems: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n if (selectionType === 'multiple' && Array.isArray(value)) {\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={value.length} color=\"neutral\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text\n as=\"span\"\n size=\"small\"\n weight=\"medium\"\n color={isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal'}\n >\n {value}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $isSelected={isSelected}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: 'filter-chip-trigger', testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\" alignItems=\"center\">\n <Text\n size=\"small\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {isSelected ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n {...metaAttribute({ name: 'filter-chip-close-button' })}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","small","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","Array","isArray","_jsx","Box","children","Counter","length","size","Text","as","weight","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","name","testID","whiteSpace","truncateAfterLines","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}
1
+ {"version":3,"file":"BaseFilterChip.web.js","sources":["../../../../../../src/components/FilterChip/BaseFilterChip.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport { FILTER_CHIP_HEIGHT } from './tokens';\nimport type { BaseFilterChipProps } from './types';\nimport { makeBorderSize, makeSpace } from '~utils';\nimport type { Theme } from '~components/BladeProvider';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Counter } from '~components/Counter';\nimport { Divider } from '~components/Divider';\nimport { ChevronDownIcon, CloseIcon } from '~components/Icons';\nimport { Text } from '~components/Typography';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getInteractiveFilterItemStyles = ({ theme }: { theme: Theme }): CSSObject => {\n return {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n color: 'currentcolor',\n '&:not([disabled]):hover': {\n backgroundColor: theme.colors.interactive.background.gray.faded,\n },\n '&[disabled]': {\n cursor: 'not-allowed',\n },\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n outlineOffset: makeSpace(theme.spacing[1]),\n },\n };\n};\n\nconst StyledFilterChip = styled(BaseBox)<{ $isSelected?: boolean; $isDisabled?: boolean }>(\n ({ theme, $isDisabled, $isSelected }) => {\n return {\n borderWidth: makeBorderSize(theme.border.width.thin),\n borderColor: theme.colors.interactive.border.gray[$isDisabled ? 'disabled' : 'faded'],\n height: FILTER_CHIP_HEIGHT,\n borderRadius: theme.border.radius.small,\n display: 'flex',\n borderStyle: $isSelected ? 'solid' : 'dashed',\n backgroundColor: theme.colors.surface.background.gray.intense,\n color: theme.colors.interactive.text.gray[$isDisabled ? 'disabled' : 'muted'],\n width: 'fit-content',\n };\n },\n);\n\nconst StyledFilterTrigger = styled.button<{ $hasClearButton?: boolean }>(\n ({ theme, $hasClearButton }) => {\n const { spacing } = theme;\n return {\n backgroundColor: theme.colors.transparent,\n // When a clear button follows the trigger its right corners butt against the divider,\n // so they're squared off. Without a clear button the trigger is a self-contained pill.\n borderRadius: $hasClearButton ? theme.border.radius.none : theme.border.radius.small,\n borderTopLeftRadius: theme.border.radius.small,\n borderBottomLeftRadius: theme.border.radius.small,\n paddingLeft: makeSpace(spacing[4]),\n paddingRight: $hasClearButton ? makeSpace(spacing[2]) : makeSpace(spacing[3]),\n gap: makeSpace(spacing[2]),\n ...getInteractiveFilterItemStyles({ theme }),\n };\n },\n);\n\nconst StyledFilterCloseButton = styled.button(({ theme }) => {\n return {\n backgroundColor: theme.colors.transparent,\n borderTopRightRadius: theme.border.radius.small,\n borderBottomRightRadius: theme.border.radius.small,\n paddingLeft: makeSpace(theme.spacing[2] + theme.spacing[1]),\n paddingRight: makeSpace(theme.spacing[2] + theme.spacing[1]),\n justifyContent: 'center',\n alignItems: 'center',\n ...getInteractiveFilterItemStyles({ theme }),\n };\n});\n\nconst renderValue = (\n selectionType: BaseFilterChipProps['selectionType'],\n value: BaseFilterChipProps['value'],\n isDisabled?: boolean,\n): React.ReactElement => {\n const valueColor = isDisabled ? 'interactive.text.gray.disabled' : 'interactive.text.gray.normal';\n\n // For multiple selection: when a single option is selected we show its name (no redundant\n // \"1\" counter); once more than one is selected we collapse to a compact counter.\n // Use an explicit type guard so a non-array value (e.g. a plain string returned by\n // getFilterChipDisplayValue) never enters the array branch where .length would be\n // misinterpreted as character count.\n if (selectionType === 'multiple') {\n const valueArray = Array.isArray(value) ? value : value != null ? [value] : [];\n if (valueArray.length === 1) {\n return (\n <Text as=\"span\" size=\"small\" weight=\"medium\" color={valueColor} truncateAfterLines={1}>\n {String(valueArray[0] ?? '')}\n </Text>\n );\n }\n return (\n <Box display=\"flex\" alignItems=\"center\">\n <Counter value={valueArray.length} color=\"neutral\" size=\"small\" />\n </Box>\n );\n }\n\n return (\n <Text as=\"span\" size=\"small\" weight=\"medium\" color={valueColor}>\n {value != null ? String(value) : ''}\n </Text>\n );\n};\n\nconst _BaseFilterChip: React.ForwardRefRenderFunction<BladeElementRef, BaseFilterChipProps> = (\n {\n value,\n onClearButtonClick,\n label,\n isDisabled,\n selectionType = 'single',\n showClearButton = true,\n onClick,\n onKeyDown,\n accessibilityProps,\n id,\n ...rest\n }: BaseFilterChipProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const isSelected =\n selectionType === 'multiple' ? Array.isArray(value) && value.length > 0 : !!value;\n const shouldShowClearButton = isSelected && showClearButton;\n\n return (\n <StyledFilterChip\n $isDisabled={isDisabled}\n $isSelected={isSelected}\n ref={ref as React.Ref<HTMLDivElement>}\n >\n <StyledFilterTrigger\n $hasClearButton={shouldShowClearButton}\n disabled={isDisabled}\n id={id}\n onClick={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n {...makeAccessible({\n ...accessibilityProps,\n role: accessibilityProps?.role ?? 'button',\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n {...metaAttribute({ name: 'filter-chip-trigger', testID: rest.testID })}\n >\n <Box display=\"flex\" gap=\"spacing.2\" whiteSpace=\"nowrap\" alignItems=\"center\">\n <Text\n size=\"small\"\n weight=\"medium\"\n color=\"interactive.text.gray.subtle\"\n truncateAfterLines={1}\n >\n {label}\n {isSelected ? ':' : null}\n </Text>\n {isSelected ? renderValue(selectionType, value, isDisabled) : null}\n </Box>\n <Box display=\"flex\" alignItems=\"center\" paddingRight=\"spacing.1\">\n <ChevronDownIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </Box>\n </StyledFilterTrigger>\n {shouldShowClearButton ? (\n <>\n <Divider orientation=\"vertical\" variant={isDisabled ? 'muted' : 'subtle'} />\n <StyledFilterCloseButton\n aria-label={`Clear ${label} value`}\n // value can never be undefined because when it's undefined the button itself doesn't render/\n onClick={() => onClearButtonClick?.({ value: value ?? '' })}\n disabled={isDisabled}\n {...metaAttribute({ name: 'filter-chip-close-button' })}\n >\n <CloseIcon size=\"small\" color=\"interactive.icon.gray.muted\" />\n </StyledFilterCloseButton>\n </>\n ) : null}\n </StyledFilterChip>\n );\n};\n\nconst BaseFilterChip = assignWithoutSideEffects(React.forwardRef(_BaseFilterChip), {\n componentId: MetaConstants.BaseFilterChip,\n});\n\nexport { BaseFilterChip };\n"],"names":["getInteractiveFilterItemStyles","_ref","theme","display","height","alignItems","border","cursor","color","backgroundColor","colors","interactive","background","gray","faded","_objectSpread","getFocusRingStyles","outlineOffset","makeSpace","spacing","StyledFilterChip","styled","BaseBox","withConfig","displayName","componentId","_ref2","$isDisabled","$isSelected","borderWidth","makeBorderSize","width","thin","borderColor","FILTER_CHIP_HEIGHT","borderRadius","radius","small","borderStyle","surface","intense","text","StyledFilterTrigger","button","_ref3","$hasClearButton","transparent","none","borderTopLeftRadius","borderBottomLeftRadius","paddingLeft","paddingRight","gap","StyledFilterCloseButton","_ref4","borderTopRightRadius","borderBottomRightRadius","justifyContent","renderValue","selectionType","value","isDisabled","valueColor","valueArray","Array","isArray","length","_valueArray$","_jsx","Text","as","size","weight","truncateAfterLines","children","String","Box","Counter","_BaseFilterChip","_ref5","ref","_accessibilityProps$r","onClearButtonClick","label","_ref5$selectionType","_ref5$showClearButton","showClearButton","onClick","onKeyDown","accessibilityProps","id","rest","_objectWithoutProperties","_excluded","isSelected","shouldShowClearButton","_jsxs","disabled","e","makeAccessible","role","getStyledProps","makeAnalyticsAttribute","metaAttribute","name","testID","whiteSpace","ChevronDownIcon","_Fragment","Divider","orientation","variant","concat","CloseIcon","BaseFilterChip","assignWithoutSideEffects","React","forwardRef","MetaConstants"],"mappings":"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"}