@razorpay/blade 12.111.0 → 12.120.0

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 (352) 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/Button/BaseButton/BaseButton.js +3 -3
  4. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  5. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  6. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  7. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js +2 -1
  8. package/build/lib/native/components/Charts/AreaChart/AreaChart.native.js.map +1 -1
  9. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js +2 -2
  10. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponents.native.js.map +1 -1
  11. package/build/lib/native/components/Charts/CommonChartComponents/index.js +1 -1
  12. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +2 -2
  13. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  14. package/build/lib/native/components/Charts/LineChart/LineChart.native.js +4 -2
  15. package/build/lib/native/components/Charts/LineChart/LineChart.native.js.map +1 -1
  16. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js +4 -0
  17. package/build/lib/native/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  18. package/build/lib/native/components/Charts/utils/referenceBandUtils.js +6 -0
  19. package/build/lib/native/components/Charts/utils/referenceBandUtils.js.map +1 -0
  20. package/build/lib/native/components/CounterInput/CounterInput.native.js +3 -2
  21. package/build/lib/native/components/CounterInput/CounterInput.native.js.map +1 -1
  22. package/build/lib/native/components/CounterInput/token.js +2 -2
  23. package/build/lib/native/components/CounterInput/token.js.map +1 -1
  24. package/build/lib/native/components/DatePicker/Calendar.native.js +2 -2
  25. package/build/lib/native/components/DatePicker/Calendar.native.js.map +1 -1
  26. package/build/lib/native/components/DatePicker/utils.js +2 -2
  27. package/build/lib/native/components/DatePicker/utils.js.map +1 -1
  28. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  29. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  30. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js +1 -1
  31. package/build/lib/native/components/Dropdown/FilterChipSelectInput.native.js.map +1 -1
  32. package/build/lib/native/components/Dropdown/dropdownUtils.js +1 -1
  33. package/build/lib/native/components/Dropdown/dropdownUtils.js.map +1 -1
  34. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js +1 -1
  35. package/build/lib/native/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
  36. package/build/lib/native/components/Dropdown/useDropdown.js +1 -1
  37. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  38. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js +14 -0
  39. package/build/lib/native/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  40. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js +20 -0
  41. package/build/lib/native/components/FloatingActionButton/FloatingActionButtonContainer.native.js.map +1 -0
  42. package/build/lib/native/components/FloatingActionButton/index.js +2 -0
  43. package/build/lib/native/components/FloatingActionButton/index.js.map +1 -0
  44. package/build/lib/native/components/GenUI/GenUIContext.native.js +2 -2
  45. package/build/lib/native/components/GenUI/GenUIContext.native.js.map +1 -1
  46. package/build/lib/native/components/GenUI/index.js +1 -1
  47. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +14 -0
  48. package/build/lib/native/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  49. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js +2 -0
  50. package/build/lib/native/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  51. package/build/lib/native/components/Icons/index.js +1 -0
  52. package/build/lib/native/components/Icons/index.js.map +1 -1
  53. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js +1 -1
  54. package/build/lib/native/components/Input/BaseInput/StyledBaseInput.native.js.map +1 -1
  55. package/build/lib/native/components/Input/OTPInput/OTPInput.js +1 -1
  56. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  57. package/build/lib/native/components/Spark/RzpGlass/utils.native.js +1 -1
  58. package/build/lib/native/components/Spark/RzpGlass/utils.native.js.map +1 -1
  59. package/build/lib/native/components/TreeView/TreeView.native.js +4 -0
  60. package/build/lib/native/components/TreeView/TreeView.native.js.map +1 -0
  61. package/build/lib/native/components/TreeView/index.native.js +2 -0
  62. package/build/lib/native/components/TreeView/index.native.js.map +1 -0
  63. package/build/lib/native/components/index.js +7 -2
  64. package/build/lib/native/components/index.js.map +1 -1
  65. package/build/lib/native/tokens/global/colors.js +1 -1
  66. package/build/lib/native/tokens/global/colors.js.map +1 -1
  67. package/build/lib/native/tokens/index.js +1 -0
  68. package/build/lib/native/tokens/index.js.map +1 -1
  69. package/build/lib/native/tokens/theme/bladeNeutralTheme.js +15 -0
  70. package/build/lib/native/tokens/theme/bladeNeutralTheme.js.map +1 -0
  71. package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
  72. package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
  73. package/build/lib/native/tokens/theme/index.js +1 -0
  74. package/build/lib/native/tokens/theme/index.js.map +1 -1
  75. package/build/lib/native/tokens/theme/theme.js.map +1 -1
  76. package/build/lib/native/utils/componentZIndices.js +1 -1
  77. package/build/lib/native/utils/componentZIndices.js.map +1 -1
  78. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  79. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  80. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +1 -1
  81. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  82. package/build/lib/web/development/_virtual/cloneDeep.js +1 -1
  83. package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
  84. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +124 -73
  85. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  86. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +68 -2
  87. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  88. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +206 -18
  89. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  90. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  91. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  92. package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +1 -1
  93. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +15 -2
  94. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  95. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +272 -15
  96. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
  97. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js +195 -0
  98. package/build/lib/web/development/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  99. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js +175 -0
  100. package/build/lib/web/development/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  101. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js +66 -0
  102. package/build/lib/web/development/components/Charts/utils/referenceBandUtils.js.map +1 -0
  103. package/build/lib/web/development/components/CounterInput/CounterInput.web.js +29 -5
  104. package/build/lib/web/development/components/CounterInput/CounterInput.web.js.map +1 -1
  105. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js +20 -4
  106. package/build/lib/web/development/components/CounterInput/StyledCounterInput.js.map +1 -1
  107. package/build/lib/web/development/components/CounterInput/token.js +6 -1
  108. package/build/lib/web/development/components/CounterInput/token.js.map +1 -1
  109. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +20 -0
  110. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  111. package/build/lib/web/development/components/DatePicker/Calendar.web.js +9 -2
  112. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
  113. package/build/lib/web/development/components/DatePicker/utils.js +21 -1
  114. package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
  115. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  116. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  117. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +20 -12
  118. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  119. package/build/lib/web/development/components/Dropdown/dropdownUtils.js +28 -2
  120. package/build/lib/web/development/components/Dropdown/dropdownUtils.js.map +1 -1
  121. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js +15 -1
  122. package/build/lib/web/development/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
  123. package/build/lib/web/development/components/Dropdown/useDropdown.js +91 -5
  124. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  125. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js +126 -0
  126. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  127. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  128. package/build/lib/web/development/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  129. package/build/lib/web/development/components/FloatingActionButton/index.js +2 -0
  130. package/build/lib/web/development/components/FloatingActionButton/index.js.map +1 -0
  131. package/build/lib/web/development/components/GenUI/GenUIComponents.web.js.map +1 -1
  132. package/build/lib/web/development/components/GenUI/GenUIContext.web.js +9 -1
  133. package/build/lib/web/development/components/GenUI/GenUIContext.web.js.map +1 -1
  134. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js +17 -0
  135. package/build/lib/web/development/components/GenUI/GenUIProvider.web.js.map +1 -1
  136. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  137. package/build/lib/web/development/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  138. package/build/lib/web/development/components/GenUI/index.js +1 -1
  139. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  140. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  141. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js +2 -0
  142. package/build/lib/web/development/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  143. package/build/lib/web/development/components/Icons/index.js +1 -0
  144. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  145. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js +3 -0
  146. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  147. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js +7 -1
  148. package/build/lib/web/development/components/PopupArrow/PopupArrow.web.js.map +1 -1
  149. package/build/lib/web/development/components/RollingText/RollingText.web.js +27 -20
  150. package/build/lib/web/development/components/RollingText/RollingText.web.js.map +1 -1
  151. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +16 -7
  152. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  153. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  154. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  155. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +30 -1
  156. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
  157. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  158. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  159. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +26 -10
  160. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
  161. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js +31 -18
  162. package/build/lib/web/development/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  163. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  164. package/build/lib/web/development/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  165. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  166. package/build/lib/web/development/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  167. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js +58 -1
  168. package/build/lib/web/development/components/SpotlightPopoverTour/utils.js.map +1 -1
  169. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js +41 -0
  170. package/build/lib/web/development/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  171. package/build/lib/web/development/components/TreeView/TreeView.web.js +696 -0
  172. package/build/lib/web/development/components/TreeView/TreeView.web.js.map +1 -0
  173. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js +184 -0
  174. package/build/lib/web/development/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  175. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js +73 -0
  176. package/build/lib/web/development/components/TreeView/TreeViewChevron.web.js.map +1 -0
  177. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js +295 -0
  178. package/build/lib/web/development/components/TreeView/TreeViewItem.web.js.map +1 -0
  179. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js +173 -0
  180. package/build/lib/web/development/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  181. package/build/lib/web/development/components/TreeView/componentIds.js +8 -0
  182. package/build/lib/web/development/components/TreeView/componentIds.js.map +1 -0
  183. package/build/lib/web/development/components/TreeView/index.web.js +4 -0
  184. package/build/lib/web/development/components/TreeView/index.web.js.map +1 -0
  185. package/build/lib/web/development/components/TreeView/treeViewUtils.js +475 -0
  186. package/build/lib/web/development/components/TreeView/treeViewUtils.js.map +1 -0
  187. package/build/lib/web/development/components/TreeView/useTreeView.js +24 -0
  188. package/build/lib/web/development/components/TreeView/useTreeView.js.map +1 -0
  189. package/build/lib/web/development/components/index.js +9 -2
  190. package/build/lib/web/development/components/index.js.map +1 -1
  191. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  192. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  193. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  194. package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  195. package/build/lib/web/development/tokens/global/colors.js +2 -2
  196. package/build/lib/web/development/tokens/global/colors.js.map +1 -1
  197. package/build/lib/web/development/tokens/index.js +1 -0
  198. package/build/lib/web/development/tokens/index.js.map +1 -1
  199. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js +1439 -0
  200. package/build/lib/web/development/tokens/theme/bladeNeutralTheme.js.map +1 -0
  201. package/build/lib/web/development/tokens/theme/bladeTheme.js +48 -12
  202. package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
  203. package/build/lib/web/development/tokens/theme/index.js +1 -0
  204. package/build/lib/web/development/tokens/theme/index.js.map +1 -1
  205. package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
  206. package/build/lib/web/development/utils/componentZIndices.js +2 -0
  207. package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
  208. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +4 -0
  209. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  210. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  211. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  212. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  213. package/build/lib/web/development/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  214. package/build/lib/web/production/_virtual/flatten.js +1 -1
  215. package/build/lib/web/production/_virtual/flatten3.js +1 -1
  216. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +124 -73
  217. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  218. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +68 -2
  219. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  220. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +206 -18
  221. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  222. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +159 -43
  223. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  224. package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +1 -1
  225. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +15 -2
  226. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  227. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +272 -15
  228. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
  229. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js +195 -0
  230. package/build/lib/web/production/components/Charts/LineChart/useReferenceBand.js.map +1 -0
  231. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js +175 -0
  232. package/build/lib/web/production/components/Charts/utils/nullBridgeUtils.js.map +1 -0
  233. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js +66 -0
  234. package/build/lib/web/production/components/Charts/utils/referenceBandUtils.js.map +1 -0
  235. package/build/lib/web/production/components/CounterInput/CounterInput.web.js +29 -5
  236. package/build/lib/web/production/components/CounterInput/CounterInput.web.js.map +1 -1
  237. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js +20 -4
  238. package/build/lib/web/production/components/CounterInput/StyledCounterInput.js.map +1 -1
  239. package/build/lib/web/production/components/CounterInput/token.js +6 -1
  240. package/build/lib/web/production/components/CounterInput/token.js.map +1 -1
  241. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +20 -0
  242. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  243. package/build/lib/web/production/components/DatePicker/Calendar.web.js +9 -2
  244. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
  245. package/build/lib/web/production/components/DatePicker/utils.js +21 -1
  246. package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
  247. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  248. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  249. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +20 -12
  250. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  251. package/build/lib/web/production/components/Dropdown/dropdownUtils.js +28 -2
  252. package/build/lib/web/production/components/Dropdown/dropdownUtils.js.map +1 -1
  253. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js +15 -1
  254. package/build/lib/web/production/components/Dropdown/filterChipSelectInputUtils.js.map +1 -1
  255. package/build/lib/web/production/components/Dropdown/useDropdown.js +91 -5
  256. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  257. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js +126 -0
  258. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  259. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js +45 -0
  260. package/build/lib/web/production/components/FloatingActionButton/FloatingActionButtonContainer.web.js.map +1 -0
  261. package/build/lib/web/production/components/FloatingActionButton/index.js +2 -0
  262. package/build/lib/web/production/components/FloatingActionButton/index.js.map +1 -0
  263. package/build/lib/web/production/components/GenUI/GenUIComponents.web.js.map +1 -1
  264. package/build/lib/web/production/components/GenUI/GenUIContext.web.js +9 -1
  265. package/build/lib/web/production/components/GenUI/GenUIContext.web.js.map +1 -1
  266. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js +17 -0
  267. package/build/lib/web/production/components/GenUI/GenUIProvider.web.js.map +1 -1
  268. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js +31 -6
  269. package/build/lib/web/production/components/GenUI/GenUISchemaRenderer.web.js.map +1 -1
  270. package/build/lib/web/production/components/GenUI/index.js +1 -1
  271. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js +44 -0
  272. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/BookmarkFilledIcon.js.map +1 -0
  273. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js +2 -0
  274. package/build/lib/web/production/components/Icons/BookmarkFilledIcon/index.js.map +1 -0
  275. package/build/lib/web/production/components/Icons/index.js +1 -0
  276. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  277. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js +3 -0
  278. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  279. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js +7 -1
  280. package/build/lib/web/production/components/PopupArrow/PopupArrow.web.js.map +1 -1
  281. package/build/lib/web/production/components/RollingText/RollingText.web.js +27 -20
  282. package/build/lib/web/production/components/RollingText/RollingText.web.js.map +1 -1
  283. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +16 -7
  284. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  285. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +24 -6
  286. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  287. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +30 -1
  288. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
  289. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  290. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  291. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +26 -10
  292. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
  293. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js +31 -18
  294. package/build/lib/web/production/components/SpotlightPopoverTour/Tour.web.js.map +1 -1
  295. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js +14 -3
  296. package/build/lib/web/production/components/SpotlightPopoverTour/TourMask.web.js.map +1 -1
  297. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js +23 -4
  298. package/build/lib/web/production/components/SpotlightPopoverTour/TourPopover.web.js.map +1 -1
  299. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js +58 -1
  300. package/build/lib/web/production/components/SpotlightPopoverTour/utils.js.map +1 -1
  301. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js +41 -0
  302. package/build/lib/web/production/components/TreeView/StyledTreeViewRow.web.js.map +1 -0
  303. package/build/lib/web/production/components/TreeView/TreeView.web.js +696 -0
  304. package/build/lib/web/production/components/TreeView/TreeView.web.js.map +1 -0
  305. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js +184 -0
  306. package/build/lib/web/production/components/TreeView/TreeViewAnimator.web.js.map +1 -0
  307. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js +73 -0
  308. package/build/lib/web/production/components/TreeView/TreeViewChevron.web.js.map +1 -0
  309. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js +295 -0
  310. package/build/lib/web/production/components/TreeView/TreeViewItem.web.js.map +1 -0
  311. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js +173 -0
  312. package/build/lib/web/production/components/TreeView/TreeViewLoadMore.web.js.map +1 -0
  313. package/build/lib/web/production/components/TreeView/componentIds.js +8 -0
  314. package/build/lib/web/production/components/TreeView/componentIds.js.map +1 -0
  315. package/build/lib/web/production/components/TreeView/index.web.js +4 -0
  316. package/build/lib/web/production/components/TreeView/index.web.js.map +1 -0
  317. package/build/lib/web/production/components/TreeView/treeViewUtils.js +475 -0
  318. package/build/lib/web/production/components/TreeView/treeViewUtils.js.map +1 -0
  319. package/build/lib/web/production/components/TreeView/useTreeView.js +24 -0
  320. package/build/lib/web/production/components/TreeView/useTreeView.js.map +1 -0
  321. package/build/lib/web/production/components/index.js +9 -2
  322. package/build/lib/web/production/components/index.js.map +1 -1
  323. package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  324. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  325. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  326. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  327. package/build/lib/web/production/tokens/global/colors.js +2 -2
  328. package/build/lib/web/production/tokens/global/colors.js.map +1 -1
  329. package/build/lib/web/production/tokens/index.js +1 -0
  330. package/build/lib/web/production/tokens/index.js.map +1 -1
  331. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js +1439 -0
  332. package/build/lib/web/production/tokens/theme/bladeNeutralTheme.js.map +1 -0
  333. package/build/lib/web/production/tokens/theme/bladeTheme.js +48 -12
  334. package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
  335. package/build/lib/web/production/tokens/theme/index.js +1 -0
  336. package/build/lib/web/production/tokens/theme/index.js.map +1 -1
  337. package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
  338. package/build/lib/web/production/utils/componentZIndices.js +2 -0
  339. package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
  340. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +4 -0
  341. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  342. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +12 -4
  343. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -1
  344. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js +2 -2
  345. package/build/lib/web/production/utils/useTruncationTitle/useTruncationTitle.web.js.map +1 -1
  346. package/build/types/components/index.d.ts +557 -18
  347. package/build/types/components/index.native.d.ts +463 -16
  348. package/build/types/tokens/index.d.ts +11 -4
  349. package/build/types/tokens/index.native.d.ts +11 -4
  350. package/build/types/utils/index.d.ts +8 -3
  351. package/build/types/utils/index.native.d.ts +8 -3
  352. package/package.json +2 -2
@@ -1,14 +1,17 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import React__default, { useState, useEffect, useCallback, useMemo, isValidElement, cloneElement } from 'react';
4
+ import React__default, { useState, useEffect, useCallback, useMemo, isValidElement, cloneElement, useRef, useLayoutEffect } from 'react';
5
5
  import '../../../node_modules/recharts/es6/index.js';
6
6
  import { animate } from 'framer-motion';
7
7
  import '../utils/index.js';
8
8
  import '../CommonChartComponents/index.js';
9
9
  import { componentId } from '../CommonChartComponents/tokens.js';
10
10
  import { componentIds } from './componentIds.js';
11
+ import { parsePathAnchors, getDefinedNumericPoints, getInteriorGaps, buildBridgePathData } from '../utils/nullBridgeUtils.js';
12
+ import { perLineBandClass } from '../utils/referenceBandUtils.js';
11
13
  import { useLineChartContext, LineChartContext } from './LineChartContext.js';
14
+ import { useReferenceBand } from './useReferenceBand.js';
12
15
  import getIn from '../../../utils/lodashButBetter/get.js';
13
16
  import '../../../utils/makeAnalyticsAttribute/index.js';
14
17
  import '../../../utils/metaAttribute/index.js';
@@ -29,14 +32,21 @@ import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js
29
32
  import { makeAnalyticsAttribute } from '../../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
30
33
  import { ResponsiveContainer } from '../../../node_modules/recharts/es6/component/ResponsiveContainer.js';
31
34
  import { LineChart } from '../../../node_modules/recharts/es6/chart/LineChart.js';
35
+ import { Customized } from '../../../node_modules/recharts/es6/component/Customized.js';
32
36
 
33
- var _excluded = ["color", "strokeStyle", "type", "dot", "activeDot", "showLegend", "_index", "_colorTheme", "_totalLines", "hide", "dataKey"],
37
+ var _excluded = ["color", "strokeStyle", "type", "dot", "activeDot", "showLegend", "connectNulls", "connectNullsStyle", "_index", "_colorTheme", "_totalLines", "hide", "dataKey", "rangeLowerDataKey", "rangeUpperDataKey", "rangeName", "rangeColor", "showRangeLegend"],
34
38
  _excluded2 = ["children", "colorTheme", "testID", "data"];
35
39
  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; } } }; }
36
40
  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; } }
37
41
  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; }
38
42
  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
43
  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; }
44
+ var getStrokeDasharray = function getStrokeDasharray(style) {
45
+ return style === 'dashed' ? '5 5' : style === 'dotted' ? '2 2' : undefined;
46
+ };
47
+
48
+ // Dash pattern used for the bridge drawn across null points when `connectNulls` is enabled.
49
+ var NULL_BRIDGE_DASHARRAY = '5 5';
40
50
  var Line = function Line(_ref) {
41
51
  var color = _ref.color,
42
52
  _ref$strokeStyle = _ref.strokeStyle,
@@ -49,11 +59,20 @@ var Line = function Line(_ref) {
49
59
  activeDot = _ref$activeDot === void 0 ? true : _ref$activeDot,
50
60
  _ref$showLegend = _ref.showLegend,
51
61
  showLegend = _ref$showLegend === void 0 ? true : _ref$showLegend,
62
+ _ref$connectNulls = _ref.connectNulls,
63
+ connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls,
64
+ _ref$connectNullsStyl = _ref.connectNullsStyle,
65
+ connectNullsStyle = _ref$connectNullsStyl === void 0 ? 'solid' : _ref$connectNullsStyl,
52
66
  _index = _ref._index,
53
67
  _colorTheme = _ref._colorTheme,
54
68
  _totalLines = _ref._totalLines,
55
69
  hide = _ref.hide,
56
70
  dataKey = _ref.dataKey,
71
+ rangeLowerDataKey = _ref.rangeLowerDataKey,
72
+ rangeUpperDataKey = _ref.rangeUpperDataKey,
73
+ rangeName = _ref.rangeName,
74
+ rangeColor = _ref.rangeColor,
75
+ showRangeLegend = _ref.showRangeLegend,
57
76
  props = _objectWithoutProperties(_ref, _excluded);
58
77
  var _useTheme = useTheme(),
59
78
  theme = _useTheme.theme;
@@ -67,7 +86,11 @@ var Line = function Line(_ref) {
67
86
  });
68
87
  var isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;
69
88
  var colorToken = getIn(theme.colors, color !== null && color !== void 0 ? color : themeColors[_index !== null && _index !== void 0 ? _index : 0]);
70
- var strokeDasharray = strokeStyle === 'dashed' ? '5 5' : strokeStyle === 'dotted' ? '2 2' : undefined;
89
+ var strokeDasharray = getStrokeDasharray(strokeStyle);
90
+
91
+ // A solid bridge just uses Recharts' native connectNulls on the main line. A dashed bridge keeps
92
+ // the main line gapped (connectNulls off) and is drawn separately by NullBridgeLayer.
93
+ var isSolidBridge = connectNulls && connectNullsStyle === 'solid';
71
94
  var isLineDotted = strokeStyle === 'dashed';
72
95
  var animationBegin = isLineDotted ? theme.motion.delay.gentle + theme.motion.duration.xgentle : theme.motion.delay.gentle;
73
96
  var animationDuration = theme.motion.duration.xgentle;
@@ -113,8 +136,41 @@ var Line = function Line(_ref) {
113
136
  }
114
137
  } : false;
115
138
  }, [activeDot, dataKey, updateHoveredDataKey]);
139
+
140
+ // When this line declares a range, render two invisible bound lines so Recharts computes their
141
+ // geometry and folds them into the y-domain. ChartLineWrapper's reference-band layer reads these
142
+ // curves (by className) and paints the shaded band between them, color-matched to this line.
143
+ var hasRange = Boolean(rangeLowerDataKey && rangeUpperDataKey);
116
144
  return /*#__PURE__*/jsxs(Fragment, {
117
- children: [/*#__PURE__*/jsx(Line$1, {
145
+ children: [hasRange ? /*#__PURE__*/jsxs(Fragment, {
146
+ children: [/*#__PURE__*/jsx(Line$1, {
147
+ className: perLineBandClass(dataKey, 'lower'),
148
+ type: "monotone",
149
+ dataKey: rangeLowerDataKey,
150
+ stroke: "transparent",
151
+ strokeWidth: 1,
152
+ dot: false,
153
+ activeDot: false,
154
+ connectNulls: true,
155
+ legendType: "none",
156
+ tooltipType: "none",
157
+ isAnimationActive: false,
158
+ hide: hide
159
+ }, "band-".concat(dataKey, "-lower")), /*#__PURE__*/jsx(Line$1, {
160
+ className: perLineBandClass(dataKey, 'upper'),
161
+ type: "monotone",
162
+ dataKey: rangeUpperDataKey,
163
+ stroke: "transparent",
164
+ strokeWidth: 1,
165
+ dot: false,
166
+ activeDot: false,
167
+ connectNulls: true,
168
+ legendType: "none",
169
+ tooltipType: "none",
170
+ isAnimationActive: false,
171
+ hide: hide
172
+ }, "band-".concat(dataKey, "-upper"))]
173
+ }) : null, /*#__PURE__*/jsx(Line$1, {
118
174
  type: "monotone",
119
175
  dataKey: dataKey,
120
176
  stroke: "transparent",
@@ -135,6 +191,7 @@ var Line = function Line(_ref) {
135
191
  dataKey: dataKey,
136
192
  activeDot: isOtherLineHovered ? false : activeDotConfig,
137
193
  dot: dot,
194
+ connectNulls: isSolidBridge,
138
195
  legendType: showLegend ? 'line' : 'none',
139
196
  animationBegin: animationBegin,
140
197
  animationDuration: animationDuration,
@@ -248,6 +305,193 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
248
305
  lineChartModifiedChildrens = _useMemo.lineChartModifiedChildrens,
249
306
  secondaryDataKey = _useMemo.secondaryDataKey;
250
307
 
308
+ // Ordered ChartLine children (matching Recharts' render order) and which of them bridge nulls with
309
+ // a dashed stroke. Used to map each rendered line curve back to its dataKey when drawing bridges.
310
+ var chartLineOrder = useMemo(function () {
311
+ var lines = [];
312
+ React__default.Children.forEach(children, function (child) {
313
+ if (/*#__PURE__*/isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {
314
+ var childProps = child.props;
315
+ var dataKey = childProps.dataKey;
316
+ if (dataKey) {
317
+ lines.push({
318
+ dataKey: dataKey,
319
+ isDashedBridge: childProps.connectNulls === true && childProps.connectNullsStyle === 'dashed'
320
+ });
321
+ }
322
+ }
323
+ });
324
+ return lines;
325
+ }, [children]);
326
+ var hasDashedBridge = chartLineOrder.some(function (line) {
327
+ return line.isDashedBridge;
328
+ });
329
+
330
+ /**
331
+ * The dashed bridges are drawn as curved paths derived from Recharts' own rendered geometry:
332
+ * after layout we parse each visible line's pixel anchor points from its SVG path and densely
333
+ * sample the monotone spline through them across each interior null run. This matches the solid
334
+ * line's curve exactly (Recharts v3 doesn't expose the axis scales to <Customized>) while spanning
335
+ * only the no-data stretch, so nulls read as "no data" rather than a measured value.
336
+ */
337
+ var containerRef = useRef(null);
338
+ var _useReferenceBand = useReferenceBand(children, data, containerRef, dataColorMapping),
339
+ hasReferenceBand = _useReferenceBand.hasReferenceBand,
340
+ renderReferenceBands = _useReferenceBand.renderReferenceBands,
341
+ referenceBandLegendInfos = _useReferenceBand.referenceBandLegendInfos;
342
+
343
+ // Map of line dataKey -> its range keys, so the tooltip can show the industry range per series.
344
+ var rangeMap = useMemo(function () {
345
+ var map = {};
346
+ React__default.Children.forEach(children, function (child) {
347
+ if (/*#__PURE__*/isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {
348
+ var props = child.props;
349
+ var dataKey = props.dataKey;
350
+ if (dataKey && props.rangeLowerDataKey && props.rangeUpperDataKey) {
351
+ map[dataKey] = {
352
+ rangeLowerDataKey: props.rangeLowerDataKey,
353
+ rangeUpperDataKey: props.rangeUpperDataKey,
354
+ rangeName: props.rangeName
355
+ };
356
+ }
357
+ }
358
+ });
359
+ return map;
360
+ }, [children]);
361
+ var _useState7 = useState([]),
362
+ _useState8 = _slicedToArray(_useState7, 2),
363
+ bridgePaths = _useState8[0],
364
+ setBridgePaths = _useState8[1];
365
+ useLayoutEffect(function () {
366
+ var container = containerRef.current;
367
+ if (!container || !hasDashedBridge) {
368
+ setBridgePaths(function (prev) {
369
+ return prev.length === 0 ? prev : [];
370
+ });
371
+ return undefined;
372
+ }
373
+ var computeBridges = function computeBridges() {
374
+ var surface = container.querySelector('svg.recharts-surface');
375
+ if (!surface) return;
376
+ // Visible lines, in render order, and the coloured curves Recharts drew for them. Each
377
+ // ChartLine also renders a transparent hover-target curve, which we filter out. Hidden lines
378
+ // render nothing, so both lists stay aligned only when their counts match.
379
+ var visibleLines = chartLineOrder.filter(function (line) {
380
+ return selectedDataKeys ? selectedDataKeys.includes(line.dataKey) : true;
381
+ });
382
+ var colouredCurves = Array.from(surface.querySelectorAll('.recharts-line-curve')).filter(function (curve) {
383
+ var _curve$getAttribute;
384
+ var stroke = ((_curve$getAttribute = curve.getAttribute('stroke')) !== null && _curve$getAttribute !== void 0 ? _curve$getAttribute : '').toLowerCase();
385
+ return stroke !== '' && stroke !== 'transparent' && stroke !== 'none';
386
+ });
387
+ if (colouredCurves.length !== visibleLines.length) return;
388
+ var nextPaths = [];
389
+ visibleLines.forEach(function (line, position) {
390
+ var _curve$getAttribute2, _curve$getAttribute3;
391
+ if (!line.isDashedBridge) return;
392
+ var curve = colouredCurves[position];
393
+ var stroke = (_curve$getAttribute2 = curve.getAttribute('stroke')) !== null && _curve$getAttribute2 !== void 0 ? _curve$getAttribute2 : '';
394
+ var anchors = parsePathAnchors((_curve$getAttribute3 = curve.getAttribute('d')) !== null && _curve$getAttribute3 !== void 0 ? _curve$getAttribute3 : '');
395
+ var _getDefinedNumericPoi = getDefinedNumericPoints(data, line.dataKey),
396
+ indices = _getDefinedNumericPoi.indices;
397
+ // Anchors must line up 1:1 with the defined data points for the sampling to be meaningful.
398
+ if (anchors.length !== indices.length) return;
399
+ getInteriorGaps(indices).forEach(function (_ref3) {
400
+ var from = _ref3.from,
401
+ to = _ref3.to;
402
+ nextPaths.push({
403
+ id: "null-bridge-".concat(line.dataKey, "-").concat(indices[from]),
404
+ dataKey: line.dataKey,
405
+ d: buildBridgePathData(anchors, from, to),
406
+ stroke: stroke
407
+ });
408
+ });
409
+ });
410
+ setBridgePaths(function (previous) {
411
+ var isSame = previous.length === nextPaths.length && previous.every(function (item, index) {
412
+ return item.id === nextPaths[index].id && item.d === nextPaths[index].d && item.stroke === nextPaths[index].stroke;
413
+ });
414
+ return isSame ? previous : nextPaths;
415
+ });
416
+ };
417
+ computeBridges();
418
+
419
+ // The line geometry isn't available synchronously (ResponsiveContainer renders the chart in a
420
+ // later commit) and it keeps changing while the line's draw-in animation runs, so we recompute
421
+ // whenever the chart's DOM or the line paths (`d`) mutate, and on resize.
422
+ var cleanups = [];
423
+ if (typeof MutationObserver !== 'undefined') {
424
+ var rafId = null;
425
+ var mutationObserver = new MutationObserver(function (mutations) {
426
+ // Skip mutations that originate from our own bridge layer (the dashed paths we render),
427
+ // which would otherwise cause re-entrant computeBridges calls on every bridge update.
428
+ var isBridgeMutation = mutations.some(function (m) {
429
+ return m.target instanceof Element && m.target.closest('.blade-null-bridge-layer');
430
+ });
431
+ if (isBridgeMutation) return;
432
+ // Debounce: coalesce multiple mutations in a single animation frame so that hover-related
433
+ // DOM changes (tooltips, active dots, crosshair) don't each trigger a separate computation.
434
+ if (rafId !== null) cancelAnimationFrame(rafId);
435
+ rafId = requestAnimationFrame(function () {
436
+ rafId = null;
437
+ computeBridges();
438
+ });
439
+ });
440
+ mutationObserver.observe(container, {
441
+ childList: true,
442
+ subtree: true,
443
+ attributes: true,
444
+ attributeFilter: ['d']
445
+ });
446
+ cleanups.push(function () {
447
+ mutationObserver.disconnect();
448
+ if (rafId !== null) cancelAnimationFrame(rafId);
449
+ });
450
+ }
451
+ if (typeof ResizeObserver !== 'undefined') {
452
+ var resizeObserver = new ResizeObserver(function () {
453
+ return computeBridges();
454
+ });
455
+ resizeObserver.observe(container);
456
+ cleanups.push(function () {
457
+ return resizeObserver.disconnect();
458
+ });
459
+ }
460
+ return function () {
461
+ return cleanups.forEach(function (cleanup) {
462
+ return cleanup();
463
+ });
464
+ };
465
+ }, [data, chartLineOrder, hasDashedBridge, selectedDataKeys]);
466
+ var renderNullBridges = function renderNullBridges() {
467
+ if (bridgePaths.length === 0) return null;
468
+ return /*#__PURE__*/jsx("g", {
469
+ className: "blade-null-bridge-layer",
470
+ children: bridgePaths.map(function (_ref4) {
471
+ var id = _ref4.id,
472
+ dataKey = _ref4.dataKey,
473
+ d = _ref4.d,
474
+ stroke = _ref4.stroke;
475
+ var isHidden = selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false;
476
+ if (isHidden) return null;
477
+ var isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;
478
+ return /*#__PURE__*/jsx("path", {
479
+ d: d,
480
+ fill: "none",
481
+ stroke: stroke,
482
+ strokeWidth: 1.5,
483
+ strokeDasharray: NULL_BRIDGE_DASHARRAY,
484
+ strokeLinecap: "round",
485
+ strokeLinejoin: "round",
486
+ strokeOpacity: isOtherLineHovered ? 0.2 : 1,
487
+ style: {
488
+ transition: 'stroke-opacity 0.5s ease-in-out'
489
+ }
490
+ }, id);
491
+ })
492
+ });
493
+ };
494
+
251
495
  // Build secondary label map internally from ChartXAxis's secondaryDataKey prop
252
496
  var secondaryLabelMap = useMemo(function () {
253
497
  if (!secondaryDataKey || !data) return undefined;
@@ -272,9 +516,11 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
272
516
  selectedDataKeys: selectedDataKeys,
273
517
  setSelectedDataKeys: setSelectedDataKeys,
274
518
  secondaryLabelMap: secondaryLabelMap,
275
- dataLength: data === null || data === void 0 ? void 0 : data.length
519
+ dataLength: data === null || data === void 0 ? void 0 : data.length,
520
+ referenceBands: referenceBandLegendInfos,
521
+ rangeMap: rangeMap
276
522
  };
277
- }, [dataColorMapping, selectedDataKeys, secondaryLabelMap, data === null || data === void 0 ? void 0 : data.length]);
523
+ }, [dataColorMapping, selectedDataKeys, secondaryLabelMap, data === null || data === void 0 ? void 0 : data.length, referenceBandLegendInfos, rangeMap]);
278
524
  return /*#__PURE__*/jsx(LineChartContext.Provider, {
279
525
  value: lineChartContextValue,
280
526
  children: /*#__PURE__*/jsx(CommonChartComponentsContext.Provider, {
@@ -286,15 +532,26 @@ var ChartLineWrapper = function ChartLineWrapper(_ref2) {
286
532
  width: "100%",
287
533
  height: "100%"
288
534
  }, restProps), {}, {
289
- children: /*#__PURE__*/jsx(ResponsiveContainer, {
290
- width: "100%",
291
- height: "100%",
292
- children: /*#__PURE__*/jsx(LineChart, {
293
- data: data,
294
- onMouseLeave: function onMouseLeave() {
295
- return setHoveredDataKey(null);
296
- },
297
- children: lineChartModifiedChildrens
535
+ children: /*#__PURE__*/jsx("div", {
536
+ ref: containerRef,
537
+ style: {
538
+ width: '100%',
539
+ height: '100%'
540
+ },
541
+ children: /*#__PURE__*/jsx(ResponsiveContainer, {
542
+ width: "100%",
543
+ height: "100%",
544
+ children: /*#__PURE__*/jsxs(LineChart, {
545
+ data: data,
546
+ onMouseLeave: function onMouseLeave() {
547
+ return setHoveredDataKey(null);
548
+ },
549
+ children: [hasReferenceBand ? /*#__PURE__*/jsx(Customized, {
550
+ component: renderReferenceBands
551
+ }) : null, lineChartModifiedChildrens, hasDashedBridge ? /*#__PURE__*/jsx(Customized, {
552
+ component: renderNullBridges
553
+ }) : null]
554
+ })
298
555
  })
299
556
  })
300
557
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.web.js","sources":["../../../../../../../src/components/Charts/LineChart/LineChart.web.tsx"],"sourcesContent":["import React, {\n useState,\n useMemo,\n useEffect,\n useCallback,\n isValidElement,\n cloneElement,\n} from 'react';\nimport {\n LineChart as RechartsLineChart,\n Line as RechartsLine,\n ResponsiveContainer as RechartsResponsiveContainer,\n} from 'recharts';\nimport { animate } from 'framer-motion';\nimport { useChartsColorTheme, assignDataColorMapping } from '../utils';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type {\n DataColorMapping,\n SecondaryLabelMap,\n ChartXAxisProps,\n} from '../CommonChartComponents/types';\nimport { componentId as commonComponentIds } from '../CommonChartComponents/tokens';\nimport type { ChartLineProps, ChartLineWrapperProps } from './types';\nimport { componentIds } from './componentIds';\nimport { LineChartContext, useLineChartContext } from './LineChartContext';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst Line: React.FC<ChartLineProps> = ({\n color,\n strokeStyle = 'solid',\n type = 'monotone',\n dot = false,\n activeDot = true,\n showLegend = true,\n _index,\n _colorTheme,\n _totalLines,\n hide,\n dataKey,\n ...props\n}) => {\n const { theme } = useTheme();\n const { hoveredDataKey, setHoveredDataKey } = useLineChartContext();\n\n const themeColors = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'line',\n chartDataIndicators: _totalLines,\n });\n\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n const colorToken = getIn(theme.colors, color ?? themeColors[_index ?? 0]);\n\n const strokeDasharray =\n strokeStyle === 'dashed' ? '5 5' : strokeStyle === 'dotted' ? '2 2' : undefined;\n\n const isLineDotted = strokeStyle === 'dashed';\n const animationBegin = isLineDotted\n ? theme.motion.delay.gentle + theme.motion.duration.xgentle\n : theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n // Animated opacity using framer-motion\n const targetOpacity = isOtherLineHovered ? 0.2 : 1;\n const [animatedOpacity, setAnimatedOpacity] = useState(targetOpacity);\n\n useEffect(() => {\n const controls = animate(animatedOpacity, targetOpacity, {\n duration: 0.5,\n ease: 'easeInOut',\n onUpdate: (latest) => setAnimatedOpacity(latest),\n });\n\n return () => controls.stop();\n }, [targetOpacity]);\n\n const updateHoveredDataKey = useCallback(\n (key: string | null) => {\n if (!hide) {\n setHoveredDataKey?.(key);\n }\n },\n [hide, setHoveredDataKey],\n );\n\n const handleMouseEnter = useCallback(() => {\n updateHoveredDataKey(dataKey as string);\n }, [dataKey, updateHoveredDataKey]);\n\n const handleMouseLeave = useCallback(() => {\n updateHoveredDataKey(null);\n }, [updateHoveredDataKey]);\n\n // activeDot config with hover handlers\n const activeDotConfig = useMemo(\n () =>\n activeDot\n ? {\n onMouseEnter: () => updateHoveredDataKey(dataKey as string),\n onMouseLeave: () => updateHoveredDataKey(null),\n }\n : false,\n [activeDot, dataKey, updateHoveredDataKey],\n );\n\n return (\n <>\n <RechartsLine\n key={`line-${dataKey}-background`}\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"transparent\"\n strokeWidth={15}\n dot={false}\n activeDot={false}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n hide={hide}\n />\n <RechartsLine\n key={`line-${dataKey}-main`}\n stroke={colorToken}\n strokeWidth={1.5}\n strokeDasharray={strokeDasharray}\n type={type}\n dataKey={dataKey}\n activeDot={isOtherLineHovered ? false : activeDotConfig}\n dot={dot}\n legendType={showLegend ? 'line' : 'none'}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n hide={hide}\n // Animated opacity using framer-motion\n strokeOpacity={animatedOpacity}\n isAnimationActive={true}\n {...props}\n />\n </>\n );\n};\n\nconst ChartLine = assignWithoutSideEffects(Line, {\n componentId: componentIds.ChartLine,\n});\n\n// Main components\nconst ChartLineWrapper: React.FC<ChartLineWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n testID,\n data,\n ...restProps\n}) => {\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'line',\n });\n\n // State to track which line is currently hovered\n const [hoveredDataKey, setHoveredDataKey] = useState<string | null>(null);\n const [selectedDataKeys, setSelectedDataKeys] = useState<string[] | undefined>(undefined);\n\n /**\n * We need to check child of CharLineWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n\n const { dataColorMapping, lineChartModifiedChildrens, secondaryDataKey } = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n // Count ChartLine components\n const totalLines = childrenArray.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && getComponentId(child) === componentIds.ChartLine,\n ).length;\n\n // Find ChartXAxis and extract secondaryDataKey\n let secondaryDataKey: string | undefined;\n for (const child of childrenArray) {\n if (React.isValidElement(child) && getComponentId(child) === commonComponentIds.chartXAxis) {\n secondaryDataKey = (child.props as ChartXAxisProps)?.secondaryDataKey;\n break;\n }\n }\n\n let LineChartIndex = 0;\n const lineChartModifiedChildrens = React.Children.map(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartLineProps)?.dataKey as string;\n if (dataKey) {\n /**\n * if we have custom color given by user we use that other wise we just\n * assign theme colors to the dataColorMapping, in `assignDataColorMapping`\n */\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n // Pass hide prop based on whether this line's dataKey is NOT in selectedDataKeys\n // If selectedDataKeys is undefined, show all lines (default behavior)\n return cloneElement(child, {\n _index: LineChartIndex++,\n _colorTheme: colorTheme,\n _totalLines: totalLines,\n hide: selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false,\n } as Partial<ChartLineProps>);\n }\n return child;\n });\n assignDataColorMapping(dataColorMapping, themeColors);\n\n return { dataColorMapping, lineChartModifiedChildrens, totalLines, secondaryDataKey };\n }, [children, colorTheme, themeColors, selectedDataKeys]);\n\n // Build secondary label map internally from ChartXAxis's secondaryDataKey prop\n const secondaryLabelMap = useMemo<SecondaryLabelMap | undefined>(() => {\n if (!secondaryDataKey || !data) return undefined;\n const map: SecondaryLabelMap = {};\n data.forEach((item, index) => {\n map[index] = item[secondaryDataKey] as string | number | undefined;\n });\n return map;\n }, [data, secondaryDataKey]);\n\n // Memoize context values to prevent unnecessary re-renders of consumers\n const lineChartContextValue = useMemo(() => ({ hoveredDataKey, setHoveredDataKey }), [\n hoveredDataKey,\n ]);\n\n const commonChartContextValue = useMemo(\n () => ({\n chartName: 'line' as const,\n dataColorMapping,\n selectedDataKeys,\n setSelectedDataKeys,\n secondaryLabelMap,\n dataLength: data?.length,\n }),\n [dataColorMapping, selectedDataKeys, secondaryLabelMap, data?.length],\n );\n\n return (\n <LineChartContext.Provider value={lineChartContextValue}>\n <CommonChartComponentsContext.Provider value={commonChartContextValue}>\n <BaseBox\n {...metaAttribute({ name: 'line-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} onMouseLeave={() => setHoveredDataKey(null)}>\n {lineChartModifiedChildrens}\n </RechartsLineChart>\n </RechartsResponsiveContainer>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n </LineChartContext.Provider>\n );\n};\n\nexport { ChartLine, ChartLineWrapper };\n"],"names":["Line","_ref","color","_ref$strokeStyle","strokeStyle","_ref$type","type","_ref$dot","dot","_ref$activeDot","activeDot","_ref$showLegend","showLegend","_index","_colorTheme","_totalLines","hide","dataKey","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useLineChartContext","useLineChartContext","hoveredDataKey","setHoveredDataKey","themeColors","useChartsColorTheme","colorTheme","chartName","chartDataIndicators","isOtherLineHovered","colorToken","getIn","colors","strokeDasharray","undefined","isLineDotted","animationBegin","motion","delay","gentle","duration","xgentle","animationDuration","targetOpacity","_useState","useState","_useState2","_slicedToArray","animatedOpacity","setAnimatedOpacity","useEffect","controls","animate","ease","onUpdate","latest","stop","updateHoveredDataKey","useCallback","key","handleMouseEnter","handleMouseLeave","activeDotConfig","useMemo","onMouseEnter","onMouseLeave","_jsxs","_Fragment","children","_jsx","RechartsLine","stroke","strokeWidth","connectNulls","legendType","tooltipType","concat","_objectSpread","strokeLinecap","strokeLinejoin","strokeOpacity","isAnimationActive","ChartLine","assignWithoutSideEffects","componentId","componentIds","ChartLineWrapper","_ref2","_ref2$colorTheme","testID","data","restProps","_excluded2","_useState3","_useState4","_useState5","_useState6","selectedDataKeys","setSelectedDataKeys","_useMemo","childrenArray","React","Children","toArray","dataColorMapping","totalLines","filter","child","isValidElement","getComponentId","length","secondaryDataKey","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","commonComponentIds","chartXAxis","_child$props3","err","e","f","LineChartIndex","lineChartModifiedChildrens","map","_child$props","_child$props2","childColor","isCustomColor","Boolean","cloneElement","includes","assignDataColorMapping","secondaryLabelMap","forEach","item","index","lineChartContextValue","commonChartContextValue","dataLength","LineChartContext","Provider","CommonChartComponentsContext","BaseBox","metaAttribute","name","makeAnalyticsAttribute","width","height","RechartsResponsiveContainer","RechartsLineChart"],"mappings":"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"}
1
+ {"version":3,"file":"LineChart.web.js","sources":["../../../../../../../src/components/Charts/LineChart/LineChart.web.tsx"],"sourcesContent":["import React, {\n useState,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n useCallback,\n isValidElement,\n cloneElement,\n} from 'react';\nimport {\n LineChart as RechartsLineChart,\n Line as RechartsLine,\n ResponsiveContainer as RechartsResponsiveContainer,\n Customized as RechartsCustomized,\n} from 'recharts';\nimport { animate } from 'framer-motion';\nimport { useChartsColorTheme, assignDataColorMapping } from '../utils';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type {\n DataColorMapping,\n SecondaryLabelMap,\n ChartXAxisProps,\n RangeMap,\n} from '../CommonChartComponents/types';\nimport { componentId as commonComponentIds } from '../CommonChartComponents/tokens';\nimport type { ChartLineProps, ChartLineWrapperProps } from './types';\nimport { componentIds } from './componentIds';\nimport {\n getDefinedNumericPoints,\n getInteriorGaps,\n parsePathAnchors,\n buildBridgePathData,\n} from '../utils/nullBridgeUtils';\nimport { perLineBandClass } from '../utils/referenceBandUtils';\nimport { LineChartContext, useLineChartContext } from './LineChartContext';\nimport { useReferenceBand } from './useReferenceBand';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst getStrokeDasharray = (style?: ChartLineProps['strokeStyle']): string | undefined =>\n style === 'dashed' ? '5 5' : style === 'dotted' ? '2 2' : undefined;\n\n// Dash pattern used for the bridge drawn across null points when `connectNulls` is enabled.\nconst NULL_BRIDGE_DASHARRAY = '5 5';\n\nconst Line: React.FC<ChartLineProps> = ({\n color,\n strokeStyle = 'solid',\n type = 'monotone',\n dot = false,\n activeDot = true,\n showLegend = true,\n connectNulls = false,\n connectNullsStyle = 'solid',\n _index,\n _colorTheme,\n _totalLines,\n hide,\n dataKey,\n // `rangeLowerDataKey` / `rangeUpperDataKey` drive this line's invisible bound lines below. The\n // remaining range-* props are consumed by ChartLineWrapper's band layer / tooltip / legend; they\n // must be destructured out here so they don't leak onto the underlying Recharts <Line>.\n rangeLowerDataKey,\n rangeUpperDataKey,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n rangeName,\n rangeColor,\n showRangeLegend,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n}) => {\n const { theme } = useTheme();\n const { hoveredDataKey, setHoveredDataKey } = useLineChartContext();\n\n const themeColors = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'line',\n chartDataIndicators: _totalLines,\n });\n\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n const colorToken = getIn(theme.colors, color ?? themeColors[_index ?? 0]);\n\n const strokeDasharray = getStrokeDasharray(strokeStyle);\n\n // A solid bridge just uses Recharts' native connectNulls on the main line. A dashed bridge keeps\n // the main line gapped (connectNulls off) and is drawn separately by NullBridgeLayer.\n const isSolidBridge = connectNulls && connectNullsStyle === 'solid';\n\n const isLineDotted = strokeStyle === 'dashed';\n const animationBegin = isLineDotted\n ? theme.motion.delay.gentle + theme.motion.duration.xgentle\n : theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n // Animated opacity using framer-motion\n const targetOpacity = isOtherLineHovered ? 0.2 : 1;\n const [animatedOpacity, setAnimatedOpacity] = useState(targetOpacity);\n\n useEffect(() => {\n const controls = animate(animatedOpacity, targetOpacity, {\n duration: 0.5,\n ease: 'easeInOut',\n onUpdate: (latest) => setAnimatedOpacity(latest),\n });\n\n return () => controls.stop();\n }, [targetOpacity]);\n\n const updateHoveredDataKey = useCallback(\n (key: string | null) => {\n if (!hide) {\n setHoveredDataKey?.(key);\n }\n },\n [hide, setHoveredDataKey],\n );\n\n const handleMouseEnter = useCallback(() => {\n updateHoveredDataKey(dataKey as string);\n }, [dataKey, updateHoveredDataKey]);\n\n const handleMouseLeave = useCallback(() => {\n updateHoveredDataKey(null);\n }, [updateHoveredDataKey]);\n\n // activeDot config with hover handlers\n const activeDotConfig = useMemo(\n () =>\n activeDot\n ? {\n onMouseEnter: () => updateHoveredDataKey(dataKey as string),\n onMouseLeave: () => updateHoveredDataKey(null),\n }\n : false,\n [activeDot, dataKey, updateHoveredDataKey],\n );\n\n // When this line declares a range, render two invisible bound lines so Recharts computes their\n // geometry and folds them into the y-domain. ChartLineWrapper's reference-band layer reads these\n // curves (by className) and paints the shaded band between them, color-matched to this line.\n const hasRange = Boolean(rangeLowerDataKey && rangeUpperDataKey);\n\n return (\n <>\n {hasRange ? (\n <>\n <RechartsLine\n key={`band-${dataKey}-lower`}\n className={perLineBandClass(dataKey as string, 'lower')}\n type=\"monotone\"\n dataKey={rangeLowerDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n hide={hide}\n />\n <RechartsLine\n key={`band-${dataKey}-upper`}\n className={perLineBandClass(dataKey as string, 'upper')}\n type=\"monotone\"\n dataKey={rangeUpperDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n hide={hide}\n />\n </>\n ) : null}\n <RechartsLine\n key={`line-${dataKey}-background`}\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"transparent\"\n strokeWidth={15}\n dot={false}\n activeDot={false}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n hide={hide}\n />\n {/*\n * The dashed bridge across null points is rendered by ChartLineWrapper's <Customized> layer\n * (NullBridgeLayer) as a curved path following the monotone spline, so it can span only the\n * no-data stretch while matching the solid line's curve.\n */}\n <RechartsLine\n key={`line-${dataKey}-main`}\n stroke={colorToken}\n strokeWidth={1.5}\n strokeDasharray={strokeDasharray}\n type={type}\n dataKey={dataKey}\n activeDot={isOtherLineHovered ? false : activeDotConfig}\n dot={dot}\n connectNulls={isSolidBridge}\n legendType={showLegend ? 'line' : 'none'}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n hide={hide}\n // Animated opacity using framer-motion\n strokeOpacity={animatedOpacity}\n isAnimationActive={true}\n {...props}\n />\n </>\n );\n};\n\nconst ChartLine = assignWithoutSideEffects(Line, {\n componentId: componentIds.ChartLine,\n});\n\n// Main components\nconst ChartLineWrapper: React.FC<ChartLineWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n testID,\n data,\n ...restProps\n}) => {\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'line',\n });\n\n // State to track which line is currently hovered\n const [hoveredDataKey, setHoveredDataKey] = useState<string | null>(null);\n const [selectedDataKeys, setSelectedDataKeys] = useState<string[] | undefined>(undefined);\n\n /**\n * We need to check child of CharLineWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n\n const { dataColorMapping, lineChartModifiedChildrens, secondaryDataKey } = useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n // Count ChartLine components\n const totalLines = childrenArray.filter(\n (child): child is React.ReactElement =>\n isValidElement(child) && getComponentId(child) === componentIds.ChartLine,\n ).length;\n\n // Find ChartXAxis and extract secondaryDataKey\n let secondaryDataKey: string | undefined;\n for (const child of childrenArray) {\n if (React.isValidElement(child) && getComponentId(child) === commonComponentIds.chartXAxis) {\n secondaryDataKey = (child.props as ChartXAxisProps)?.secondaryDataKey;\n break;\n }\n }\n\n let LineChartIndex = 0;\n const lineChartModifiedChildrens = React.Children.map(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartLineProps)?.dataKey as string;\n if (dataKey) {\n /**\n * if we have custom color given by user we use that other wise we just\n * assign theme colors to the dataColorMapping, in `assignDataColorMapping`\n */\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n // Pass hide prop based on whether this line's dataKey is NOT in selectedDataKeys\n // If selectedDataKeys is undefined, show all lines (default behavior)\n return cloneElement(child, {\n _index: LineChartIndex++,\n _colorTheme: colorTheme,\n _totalLines: totalLines,\n hide: selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false,\n } as Partial<ChartLineProps>);\n }\n return child;\n });\n assignDataColorMapping(dataColorMapping, themeColors);\n\n return { dataColorMapping, lineChartModifiedChildrens, totalLines, secondaryDataKey };\n }, [children, colorTheme, themeColors, selectedDataKeys]);\n\n // Ordered ChartLine children (matching Recharts' render order) and which of them bridge nulls with\n // a dashed stroke. Used to map each rendered line curve back to its dataKey when drawing bridges.\n const chartLineOrder = useMemo(() => {\n const lines: Array<{ dataKey: string; isDashedBridge: boolean }> = [];\n React.Children.forEach(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const childProps = child.props as ChartLineProps;\n const dataKey = childProps.dataKey as string;\n if (dataKey) {\n lines.push({\n dataKey,\n isDashedBridge:\n childProps.connectNulls === true && childProps.connectNullsStyle === 'dashed',\n });\n }\n }\n });\n return lines;\n }, [children]);\n\n const hasDashedBridge = chartLineOrder.some((line) => line.isDashedBridge);\n\n /**\n * The dashed bridges are drawn as curved paths derived from Recharts' own rendered geometry:\n * after layout we parse each visible line's pixel anchor points from its SVG path and densely\n * sample the monotone spline through them across each interior null run. This matches the solid\n * line's curve exactly (Recharts v3 doesn't expose the axis scales to <Customized>) while spanning\n * only the no-data stretch, so nulls read as \"no data\" rather than a measured value.\n */\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { hasReferenceBand, renderReferenceBands, referenceBandLegendInfos } = useReferenceBand(\n children,\n data,\n containerRef,\n dataColorMapping,\n );\n\n // Map of line dataKey -> its range keys, so the tooltip can show the industry range per series.\n const rangeMap = useMemo<RangeMap>(() => {\n const map: RangeMap = {};\n React.Children.forEach(children, (child) => {\n if (isValidElement(child) && getComponentId(child) === componentIds.ChartLine) {\n const props = child.props as ChartLineProps;\n const dataKey = props.dataKey as string;\n if (dataKey && props.rangeLowerDataKey && props.rangeUpperDataKey) {\n map[dataKey] = {\n rangeLowerDataKey: props.rangeLowerDataKey,\n rangeUpperDataKey: props.rangeUpperDataKey,\n rangeName: props.rangeName,\n };\n }\n }\n });\n return map;\n }, [children]);\n\n const [bridgePaths, setBridgePaths] = useState<\n Array<{ id: string; dataKey: string; d: string; stroke: string }>\n >([]);\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container || !hasDashedBridge) {\n setBridgePaths((prev) => (prev.length === 0 ? prev : []));\n return undefined;\n }\n\n const computeBridges = (): void => {\n const surface = container.querySelector('svg.recharts-surface');\n if (!surface) return;\n // Visible lines, in render order, and the coloured curves Recharts drew for them. Each\n // ChartLine also renders a transparent hover-target curve, which we filter out. Hidden lines\n // render nothing, so both lists stay aligned only when their counts match.\n const visibleLines = chartLineOrder.filter((line) =>\n selectedDataKeys ? selectedDataKeys.includes(line.dataKey) : true,\n );\n const colouredCurves = Array.from(\n surface.querySelectorAll<SVGPathElement>('.recharts-line-curve'),\n ).filter((curve) => {\n const stroke = (curve.getAttribute('stroke') ?? '').toLowerCase();\n return stroke !== '' && stroke !== 'transparent' && stroke !== 'none';\n });\n if (colouredCurves.length !== visibleLines.length) return;\n\n const nextPaths: Array<{ id: string; dataKey: string; d: string; stroke: string }> = [];\n visibleLines.forEach((line, position) => {\n if (!line.isDashedBridge) return;\n const curve = colouredCurves[position];\n const stroke = curve.getAttribute('stroke') ?? '';\n const anchors = parsePathAnchors(curve.getAttribute('d') ?? '');\n const { indices } = getDefinedNumericPoints(data, line.dataKey);\n // Anchors must line up 1:1 with the defined data points for the sampling to be meaningful.\n if (anchors.length !== indices.length) return;\n\n getInteriorGaps(indices).forEach(({ from, to }) => {\n nextPaths.push({\n id: `null-bridge-${line.dataKey}-${indices[from]}`,\n dataKey: line.dataKey,\n d: buildBridgePathData(anchors, from, to),\n stroke,\n });\n });\n });\n\n setBridgePaths((previous) => {\n const isSame =\n previous.length === nextPaths.length &&\n previous.every(\n (item, index) =>\n item.id === nextPaths[index].id &&\n item.d === nextPaths[index].d &&\n item.stroke === nextPaths[index].stroke,\n );\n return isSame ? previous : nextPaths;\n });\n };\n\n computeBridges();\n\n // The line geometry isn't available synchronously (ResponsiveContainer renders the chart in a\n // later commit) and it keeps changing while the line's draw-in animation runs, so we recompute\n // whenever the chart's DOM or the line paths (`d`) mutate, and on resize.\n const cleanups: Array<() => void> = [];\n if (typeof MutationObserver !== 'undefined') {\n let rafId: number | null = null;\n const mutationObserver = new MutationObserver((mutations) => {\n // Skip mutations that originate from our own bridge layer (the dashed paths we render),\n // which would otherwise cause re-entrant computeBridges calls on every bridge update.\n const isBridgeMutation = mutations.some(\n (m) => m.target instanceof Element && m.target.closest('.blade-null-bridge-layer'),\n );\n if (isBridgeMutation) return;\n // Debounce: coalesce multiple mutations in a single animation frame so that hover-related\n // DOM changes (tooltips, active dots, crosshair) don't each trigger a separate computation.\n if (rafId !== null) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n rafId = null;\n computeBridges();\n });\n });\n mutationObserver.observe(container, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['d'],\n });\n cleanups.push(() => {\n mutationObserver.disconnect();\n if (rafId !== null) cancelAnimationFrame(rafId);\n });\n }\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(() => computeBridges());\n resizeObserver.observe(container);\n cleanups.push(() => resizeObserver.disconnect());\n }\n return () => cleanups.forEach((cleanup) => cleanup());\n }, [data, chartLineOrder, hasDashedBridge, selectedDataKeys]);\n\n const renderNullBridges = (): React.ReactElement | null => {\n if (bridgePaths.length === 0) return null;\n return (\n <g className=\"blade-null-bridge-layer\">\n {bridgePaths.map(({ id, dataKey, d, stroke }) => {\n const isHidden = selectedDataKeys ? !selectedDataKeys.includes(dataKey) : false;\n if (isHidden) return null;\n const isOtherLineHovered = hoveredDataKey !== null && hoveredDataKey !== dataKey;\n return (\n <path\n key={id}\n d={d}\n fill=\"none\"\n stroke={stroke}\n strokeWidth={1.5}\n strokeDasharray={NULL_BRIDGE_DASHARRAY}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeOpacity={isOtherLineHovered ? 0.2 : 1}\n style={{ transition: 'stroke-opacity 0.5s ease-in-out' }}\n />\n );\n })}\n </g>\n );\n };\n\n // Build secondary label map internally from ChartXAxis's secondaryDataKey prop\n const secondaryLabelMap = useMemo<SecondaryLabelMap | undefined>(() => {\n if (!secondaryDataKey || !data) return undefined;\n const map: SecondaryLabelMap = {};\n data.forEach((item, index) => {\n map[index] = item[secondaryDataKey] as string | number | undefined;\n });\n return map;\n }, [data, secondaryDataKey]);\n\n // Memoize context values to prevent unnecessary re-renders of consumers\n const lineChartContextValue = useMemo(() => ({ hoveredDataKey, setHoveredDataKey }), [\n hoveredDataKey,\n ]);\n\n const commonChartContextValue = useMemo(\n () => ({\n chartName: 'line' as const,\n dataColorMapping,\n selectedDataKeys,\n setSelectedDataKeys,\n secondaryLabelMap,\n dataLength: data?.length,\n referenceBands: referenceBandLegendInfos,\n rangeMap,\n }),\n [\n dataColorMapping,\n selectedDataKeys,\n secondaryLabelMap,\n data?.length,\n referenceBandLegendInfos,\n rangeMap,\n ],\n );\n\n return (\n <LineChartContext.Provider value={lineChartContextValue}>\n <CommonChartComponentsContext.Provider value={commonChartContextValue}>\n <BaseBox\n {...metaAttribute({ name: 'line-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <div ref={containerRef} style={{ width: '100%', height: '100%' }}>\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsLineChart data={data} onMouseLeave={() => setHoveredDataKey(null)}>\n {/* Painted first so the shaded bands sit behind the trend lines. */}\n {hasReferenceBand ? <RechartsCustomized component={renderReferenceBands} /> : null}\n {lineChartModifiedChildrens}\n {hasDashedBridge ? <RechartsCustomized component={renderNullBridges} /> : null}\n </RechartsLineChart>\n </RechartsResponsiveContainer>\n </div>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n </LineChartContext.Provider>\n );\n};\n\nexport { ChartLine, ChartLineWrapper };\n"],"names":["getStrokeDasharray","style","undefined","NULL_BRIDGE_DASHARRAY","Line","_ref","color","_ref$strokeStyle","strokeStyle","_ref$type","type","_ref$dot","dot","_ref$activeDot","activeDot","_ref$showLegend","showLegend","_ref$connectNulls","connectNulls","_ref$connectNullsStyl","connectNullsStyle","_index","_colorTheme","_totalLines","hide","dataKey","rangeLowerDataKey","rangeUpperDataKey","rangeName","rangeColor","showRangeLegend","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useLineChartContext","useLineChartContext","hoveredDataKey","setHoveredDataKey","themeColors","useChartsColorTheme","colorTheme","chartName","chartDataIndicators","isOtherLineHovered","colorToken","getIn","colors","strokeDasharray","isSolidBridge","isLineDotted","animationBegin","motion","delay","gentle","duration","xgentle","animationDuration","targetOpacity","_useState","useState","_useState2","_slicedToArray","animatedOpacity","setAnimatedOpacity","useEffect","controls","animate","ease","onUpdate","latest","stop","updateHoveredDataKey","useCallback","key","handleMouseEnter","handleMouseLeave","activeDotConfig","useMemo","onMouseEnter","onMouseLeave","hasRange","Boolean","_jsxs","_Fragment","children","_jsx","RechartsLine","className","perLineBandClass","stroke","strokeWidth","legendType","tooltipType","isAnimationActive","concat","_objectSpread","strokeLinecap","strokeLinejoin","strokeOpacity","ChartLine","assignWithoutSideEffects","componentId","componentIds","ChartLineWrapper","_ref2","_ref2$colorTheme","testID","data","restProps","_excluded2","_useState3","_useState4","_useState5","_useState6","selectedDataKeys","setSelectedDataKeys","_useMemo","childrenArray","React","Children","toArray","dataColorMapping","totalLines","filter","child","isValidElement","getComponentId","length","secondaryDataKey","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","commonComponentIds","chartXAxis","_child$props3","err","e","f","LineChartIndex","lineChartModifiedChildrens","map","_child$props","_child$props2","childColor","isCustomColor","cloneElement","includes","assignDataColorMapping","chartLineOrder","lines","forEach","childProps","push","isDashedBridge","hasDashedBridge","some","line","containerRef","useRef","_useReferenceBand","useReferenceBand","hasReferenceBand","renderReferenceBands","referenceBandLegendInfos","rangeMap","_useState7","_useState8","bridgePaths","setBridgePaths","useLayoutEffect","container","current","prev","computeBridges","surface","querySelector","visibleLines","colouredCurves","Array","from","querySelectorAll","curve","_curve$getAttribute","getAttribute","toLowerCase","nextPaths","position","_curve$getAttribute2","_curve$getAttribute3","anchors","parsePathAnchors","_getDefinedNumericPoi","getDefinedNumericPoints","indices","getInteriorGaps","_ref3","to","id","d","buildBridgePathData","previous","isSame","every","item","index","cleanups","MutationObserver","rafId","mutationObserver","mutations","isBridgeMutation","m","target","Element","closest","cancelAnimationFrame","requestAnimationFrame","observe","childList","subtree","attributes","attributeFilter","disconnect","ResizeObserver","resizeObserver","cleanup","renderNullBridges","_ref4","isHidden","fill","transition","secondaryLabelMap","lineChartContextValue","commonChartContextValue","dataLength","referenceBands","LineChartContext","Provider","CommonChartComponentsContext","BaseBox","metaAttribute","name","makeAnalyticsAttribute","width","height","ref","RechartsResponsiveContainer","RechartsLineChart","RechartsCustomized","component"],"mappings":"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"}