@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 +1 @@
1
- {"version":3,"file":"CommonChartComponents.web.js","sources":["../../../../../../../src/components/Charts/CommonChartComponents/CommonChartComponents.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n XAxis as RechartsXAxis,\n YAxis as RechartsYAxis,\n CartesianGrid as RechartsCartesianGrid,\n Tooltip as RechartsTooltip,\n Legend as RechartsLegend,\n ReferenceLine as RechartsReferenceLine,\n} from 'recharts';\nimport {\n getHighestColorInRange,\n isSequentialColor,\n sanitizeString,\n totalChartColors,\n} from '../utils';\nimport type {\n ChartReferenceLineProps,\n ChartXAxisProps,\n ChartYAxisProps,\n ChartTooltipProps,\n ChartLegendProps,\n ChartCartesianGridProps,\n Layout,\n ChartColorToken,\n DataColorMapping,\n SecondaryLabelMap,\n} from './types';\nimport {\n RECT_HEIGHT,\n TEXT_BASELINE,\n PADDING_VERTICAL,\n PADDING_HORIZONTAL,\n X_AXIS_TICK_LINE_HEIGHT,\n X_AXIS_TICK_START_DY,\n X_AXIS_LABEL_GAP,\n X_AXIS_LABEL_OFFSET,\n X_AXIS_LABEL_HEIGHT,\n LEGEND_MARGIN_TOP,\n X_OFFSET,\n componentId,\n} from './tokens';\nimport { calculateTextWidth } from './utils';\nimport { useCommonChartComponentsContext } from './CommonChartComponentsContext';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Heading, Text } from '~components/Typography';\nimport { Box } from '~components/Box';\nimport { useTheme } from '~components/BladeProvider';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useControllableState } from '~utils/useControllable';\n\n/**\n * Helper function to get the appropriate color for chart elements (tooltip, legend)\n *\n * This function resolves the color token for chart elements based on the chart type and color mapping.\n * The logic varies by chart type:\n * - For line/area charts: Returns the mapped color directly if it's not a custom color.\n * If it is a custom color, it maps to the highest color in the range (unless it's sequential).\n * - For sequential colors: Returns the mapped color as-is\n * - For other cases: Uses getHighestColorInRange to get the highest intensity color from the range,\n * with special handling for donut charts when custom colors are used or when there are more\n * data points than the default color palette\n *\n * @param dataKey - The data key for the chart element\n * @param name - The name/value of the chart element\n * @param dataColorMapping - Color mapping object\n * @param chartName - Type of chart (line, area, donut, etc.)\n * @returns The resolved color token\n */\nconst getChartColor = (\n dataKey: string,\n name: string,\n dataColorMapping: DataColorMapping,\n chartName: string | undefined,\n): ChartColorToken => {\n const colorKey = chartName === 'donut' ? sanitizeString(name ?? '') : dataKey;\n const mappedColorData = dataColorMapping?.[colorKey ?? ''];\n\n // Handle case where mappedColorData is undefined (e.g., during dynamic nameKey changes)\n if (!mappedColorData) {\n return 'data.background.categorical.azure.faint' as ChartColorToken;\n }\n\n const mappedColor = mappedColorData.colorToken;\n const isCustomColor = mappedColorData.isCustomColor;\n\n if ((chartName === 'line' || chartName === 'area') && !isCustomColor) {\n return mappedColor;\n }\n\n if (mappedColor && isSequentialColor(mappedColor)) {\n return mappedColor ?? 'data.background.categorical.azure.faint';\n }\n return getHighestColorInRange({\n colorToken: mappedColor ?? ('data.background.categorical.azure.faint' as ChartColorToken),\n followIntensityMapping:\n chartName === 'donut' &&\n (isCustomColor || Object.keys(dataColorMapping).length > totalChartColors),\n });\n};\n\n/**\n * Wraps text to fit within a given pixel width, breaking at word boundaries.\n * Returns an array of lines that each fit within the max width.\n */\nconst wrapTextToFit = (text: string, maxWidthPx: number, fontSize: number): string[] => {\n // Approximate average character width (varies by font, but ~0.5-0.6 of font size is common)\n const avgCharWidth = fontSize * 0.55;\n const maxCharsPerLine = Math.max(1, Math.floor(maxWidthPx / avgCharWidth));\n\n // If text fits in one line, return as-is\n if (text.length <= maxCharsPerLine) {\n return [text];\n }\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n if (currentLine.length === 0) {\n currentLine = word;\n } else if (currentLine.length + 1 + word.length <= maxCharsPerLine) {\n currentLine += ` ${word}`;\n } else {\n lines.push(currentLine);\n currentLine = word;\n }\n }\n\n if (currentLine.length > 0) {\n lines.push(currentLine);\n }\n\n return lines;\n};\n\n/**\n * Reusable component for rendering wrapped text labels in SVG.\n * Handles multi-line text rendering with configurable positioning.\n */\nconst wrappedTextLabel = ({\n text,\n maxWidth,\n fontSize,\n lineHeight,\n startDy,\n textAnchor,\n fill,\n fontFamily,\n fontWeight,\n letterSpacing,\n yOffset = 0,\n}: {\n text: string;\n maxWidth: number;\n fontSize: number;\n lineHeight: number;\n startDy: number;\n textAnchor: 'start' | 'middle' | 'end';\n fill: string;\n fontFamily: string;\n fontWeight: number;\n letterSpacing: number;\n yOffset?: number;\n}): { element: JSX.Element; height: number } => {\n const lines = wrapTextToFit(text, maxWidth, fontSize);\n const totalHeight = lines.length * lineHeight;\n\n const element = (\n <text\n x={0}\n y={yOffset}\n textAnchor={textAnchor}\n fill={fill}\n fontSize={fontSize}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n style={{ letterSpacing }}\n >\n {lines.map((line, index) => (\n <tspan key={index} x={0} dy={index === 0 ? startDy : lineHeight}>\n {line}\n </tspan>\n ))}\n </text>\n );\n\n return { element, height: totalHeight };\n};\n\n/**\n * Custom tick component for X-axis with automatic text wrapping.\n * - Primary label: Automatically wraps long text to multiple lines based on available width\n * - Secondary label: Optional label from pre-computed secondaryLabelMap (shown below primary, also supports wrapping)\n * - Edge alignment: For line/area charts, first/last ticks align start/end to prevent clipping.\n * For bar charts, all labels are center-aligned since bars are centered on tick positions.\n * - Reports calculated height via onHeightCalculated callback for dynamic axis sizing\n */\nconst CustomXAxisTick = ({\n x,\n y,\n payload,\n secondaryLabelMap,\n theme,\n tickWidth,\n chartName,\n onHeightCalculated,\n lastTick,\n tickFormatter,\n}: {\n x: number;\n y: number;\n payload: { value: string; index: number };\n secondaryLabelMap?: SecondaryLabelMap;\n theme: ReturnType<typeof useTheme>['theme'];\n tickWidth?: number;\n chartName?: string;\n onHeightCalculated?: (height: number) => void;\n lastTick: number;\n tickFormatter?: (value: string, index: number) => string;\n}): JSX.Element => {\n const fontSize = theme.typography.fonts.size[75];\n const maxWidth = tickWidth ? tickWidth * 0.9 : Infinity;\n\n // For bar charts, always center align labels since bars are centered on ticks\n // For line/area charts, align first tick left and last tick right to prevent clipping\n const shouldUseEdgeAlignment = chartName === 'line' || chartName === 'area';\n const isFirstTick = shouldUseEdgeAlignment && payload.index === 0;\n const isLastTick = shouldUseEdgeAlignment && payload.index === lastTick;\n\n const getTextAnchor = (): 'start' | 'middle' | 'end' => {\n if (isFirstTick) return 'start';\n if (isLastTick) return 'end';\n return 'middle';\n };\n const textAnchor = getTextAnchor();\n\n // Common text style props\n const textStyleProps = {\n maxWidth,\n fontSize,\n lineHeight: X_AXIS_TICK_LINE_HEIGHT,\n startDy: X_AXIS_TICK_START_DY,\n textAnchor,\n fill: theme.colors.surface.text.gray.muted,\n fontFamily: theme.typography.fonts.family.text,\n fontWeight: theme.typography.fonts.weight.regular,\n letterSpacing: theme.typography.letterSpacings[100],\n } as const;\n\n // Apply tickFormatter if provided, otherwise use raw value\n const displayValue = tickFormatter\n ? tickFormatter(payload.value, payload.index)\n : String(payload.value);\n\n // Primary label\n const primaryLabel = wrappedTextLabel({\n ...textStyleProps,\n text: displayValue,\n });\n\n // Secondary label from pre-computed map\n const secondaryValue = secondaryLabelMap?.[payload.index];\n\n const secondaryLabel =\n secondaryValue !== undefined\n ? wrappedTextLabel({\n ...textStyleProps,\n text: String(secondaryValue),\n // primaryLabel.height gives us where primary ends (relative to its startDy)\n // X_AXIS_LABEL_GAP adds the desired spacing between labels\n yOffset: primaryLabel.height + X_AXIS_LABEL_GAP,\n })\n : null;\n\n // Calculate total tick height and report it\n const totalTickHeight =\n X_AXIS_TICK_START_DY +\n primaryLabel.height +\n (secondaryLabel ? X_AXIS_LABEL_GAP + secondaryLabel.height : 0);\n\n React.useEffect(() => {\n onHeightCalculated?.(totalTickHeight);\n }, [totalTickHeight, onHeightCalculated]);\n\n return (\n <g transform={`translate(${x},${y})`}>\n {primaryLabel.element}\n {secondaryLabel?.element}\n </g>\n );\n};\n\nconst _ChartXAxis: React.FC<ChartXAxisProps> = ({\n interval = 0,\n tickLine = false,\n label,\n dataKey,\n height,\n tickFormatter,\n ...props\n}) => {\n const { theme } = useTheme();\n const { secondaryLabelMap, chartName, dataLength } = useCommonChartComponentsContext();\n // We don't want to pass secondaryDataKey to recharts\n const { secondaryDataKey: _unusedsecondaryDataKey, ...restProps } = props;\n\n // Calculate tick count from dataLength\n const totalTickCount = dataLength ?? 1;\n\n // Calculate visible tick count based on interval\n // When interval is a number: 0 = show all, 1 = every 2nd, 2 = every 3rd, etc.\n const visibleTickCount =\n typeof interval === 'number' ? Math.ceil(totalTickCount / (interval + 1)) : totalTickCount; // For string intervals like 'preserveStart', use total as fallback\n\n const lastTick = totalTickCount - 1;\n\n // State to track the maximum tick height reported by CustomXAxisTick components\n const minHeight = secondaryLabelMap ? 20 : 10;\n const [maxTickHeight, setMaxTickHeight] = React.useState(minHeight);\n\n // Callback to update max height when ticks report their calculated height\n const handleHeightCalculated = React.useCallback((height: number) => {\n setMaxTickHeight((prev) => Math.max(prev, height));\n }, []);\n\n // Calculate total axis height:\n // - Tick labels height (dynamic)\n // - X-axis label height + offset, always reserved so the gap between the\n // axis and elements below it (e.g. legend) stays constant whether or not\n // the `label` prop is present\n const axisLabelSpace = X_AXIS_LABEL_OFFSET + X_AXIS_LABEL_HEIGHT;\n const baseHeight = Math.max(maxTickHeight) + axisLabelSpace;\n\n // Position for X-axis label: below tick labels with offset\n const axisLabelY = maxTickHeight + X_AXIS_LABEL_OFFSET + X_AXIS_LABEL_HEIGHT / 2;\n\n return (\n <RechartsXAxis\n {...restProps}\n height={baseHeight || height}\n interval={interval}\n tick={(tickProps: {\n x: string | number;\n y: string | number;\n payload: { value: string; index: number };\n width?: string | number;\n }) => {\n // Calculate available width per tick from the total chart width\n const tickWidth = Number(tickProps.width ?? 0) / visibleTickCount;\n return (\n <CustomXAxisTick\n x={Number(tickProps.x)}\n y={Number(tickProps.y)}\n payload={tickProps.payload}\n secondaryLabelMap={secondaryLabelMap}\n theme={theme}\n tickWidth={tickWidth}\n lastTick={lastTick}\n chartName={chartName}\n onHeightCalculated={handleHeightCalculated}\n tickFormatter={tickFormatter}\n />\n );\n }}\n tickLine={tickLine}\n stroke={theme.colors.surface.border.gray.muted}\n label={({ viewBox }: { viewBox: { x: number; y: number; width: number } }) => (\n <text\n x={viewBox.x + viewBox.width / 2 - X_OFFSET}\n y={viewBox.y + axisLabelY}\n textAnchor=\"middle\"\n fill={theme.colors.surface.text.gray.muted}\n fontSize={theme.typography.fonts.size[75]}\n fontFamily={theme.typography.fonts.family.text}\n fontWeight={theme.typography.fonts.weight.regular}\n letterSpacing={theme.typography.letterSpacings[100]}\n >\n {label}\n </text>\n )}\n dataKey={dataKey}\n />\n );\n};\n\nconst ChartXAxis = assignWithoutSideEffects(_ChartXAxis, {\n componentId: componentId.chartXAxis,\n});\n\nconst ChartYAxis: React.FC<ChartYAxisProps> = (props) => {\n const { theme } = useTheme();\n\n return (\n <RechartsYAxis\n {...props}\n tick={{\n fill: theme.colors.surface.text.gray.muted,\n fontSize: theme.typography.fonts.size[75],\n fontFamily: theme.typography.fonts.family.text,\n fontWeight: theme.typography.fonts.weight.regular,\n letterSpacing: theme.typography.letterSpacings[100],\n }}\n tickLine={false}\n stroke={theme.colors.surface.border.gray.muted}\n label={{\n value: props?.label,\n position: 'insideLeft',\n style: {\n textAnchor: 'middle',\n fill: theme.colors.surface.text.gray.muted,\n fontSize: theme.typography.fonts.size[75],\n fontWeight: theme.typography.fonts.weight.regular,\n fontFamily: theme.typography.fonts.family.text,\n letterSpacing: theme.typography.letterSpacings[100],\n lineHeight: theme.typography.lineHeights[500],\n },\n angle: -90,\n fill: theme.colors.surface.text.gray.subtle,\n }}\n dataKey={props?.dataKey}\n />\n );\n};\n\nconst ChartCartesianGrid: React.FC<ChartCartesianGridProps> = (props) => {\n const { theme } = useTheme();\n\n return (\n <RechartsCartesianGrid\n stroke={theme.colors.surface.border.gray.muted}\n vertical={false}\n {...props}\n />\n );\n};\n\nconst CustomTooltip = ({\n item,\n}: {\n item: {\n name: string;\n value: string;\n color: string;\n dataKey: string;\n payload: { fill: string };\n };\n}): JSX.Element => {\n const { theme } = useTheme();\n const { dataColorMapping, chartName } = useCommonChartComponentsContext();\n\n const toolTipColor = getChartColor(item.dataKey, item.name, dataColorMapping ?? {}, chartName);\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"spacing.4\"\n key={`tooltip-${item.name}`}\n >\n <Box display=\"flex\" gap=\"spacing.3\" alignItems=\"center\" justifyContent=\"center\">\n <div\n style={{\n width: theme.spacing[4],\n height: theme.spacing[4],\n backgroundColor: getIn(theme.colors, toolTipColor),\n borderRadius: theme.border.radius.small,\n }}\n />\n <Text size=\"small\" weight=\"regular\" color=\"surface.text.staticWhite.normal\">\n {item.name}\n </Text>\n </Box>\n <Text size=\"small\" weight=\"regular\" color=\"surface.text.staticWhite.normal\">\n {item.value}\n </Text>\n </Box>\n );\n};\n\nconst ChartTooltip: React.FC<ChartTooltipProps> = (props) => {\n const { theme } = useTheme();\n return (\n <RechartsTooltip\n content={({ payload, label }) => {\n const filteredPayLoad = payload.filter((item) => item.type !== 'none');\n return (\n <div\n style={{\n backgroundColor: theme.colors.surface.icon.staticBlack.normal,\n borderRadius: theme.border.radius.large,\n border: `1px solid ${theme.colors.surface.border.gray.muted}`,\n padding: theme.spacing[4],\n }}\n >\n <Heading size=\"small\" weight=\"semibold\" color=\"surface.text.staticWhite.normal\">\n {label}\n </Heading>\n <Box paddingTop={label ? 'spacing.4' : undefined}>\n {filteredPayLoad.map((item) => (\n <CustomTooltip item={item} key={item.name} />\n ))}\n </Box>\n </div>\n );\n }}\n cursor={{ fill: 'transparent', stroke: 'transparent' }}\n {...props}\n />\n );\n};\n\nconst StyledLegendWrapper = styled.button<{ $isHidden: boolean; $isClickable: boolean }>(\n ({ theme, $isHidden, $isClickable }) => ({\n display: 'flex',\n alignItems: 'center',\n cursor: $isClickable ? 'pointer' : 'default',\n opacity: $isHidden ? 0.4 : 1,\n background: 'none',\n border: 'none',\n padding: theme.spacing[2],\n '& p': {\n color: theme.colors.surface.text.gray.muted,\n textDecoration: $isHidden ? 'line-through' : 'none',\n transition: $isClickable\n ? `color ${theme.motion.duration.xquick}ms ${theme.motion.easing.linear}`\n : 'none',\n },\n '&:hover p': {\n color: $isClickable\n ? theme.colors.surface.text.gray.normal\n : theme.colors.surface.text.gray.muted,\n },\n }),\n);\n\nconst LegendItem = ({\n entry,\n index,\n isSelected,\n onClick,\n isClickable,\n}: {\n entry: { color: string; value: string; dataKey: string };\n index: number;\n isSelected: boolean;\n onClick: (dataKey: string) => void;\n isClickable: boolean;\n}): JSX.Element => {\n const { theme } = useTheme();\n const { dataColorMapping, chartName } = useCommonChartComponentsContext();\n\n const legendColor = getChartColor(entry.dataKey, entry.value, dataColorMapping ?? {}, chartName);\n\n // For donut charts, use sanitized value (name) as the key, for other charts use dataKey\n const legendKey = chartName === 'donut' ? sanitizeString(entry.value ?? '') : entry.dataKey;\n\n return (\n <StyledLegendWrapper\n key={`item-${index}`}\n $isHidden={!isSelected}\n $isClickable={isClickable}\n onClick={\n isClickable\n ? () => {\n onClick(legendKey);\n }\n : undefined\n }\n type=\"button\"\n >\n <Box display=\"flex\" gap=\"spacing.3\" justifyContent=\"center\" alignItems=\"center\">\n <span\n style={{\n backgroundColor: getIn(theme.colors, legendColor),\n width: theme.spacing[4],\n height: theme.spacing[4],\n display: 'inline-block',\n borderRadius: theme.border.radius['2xsmall'],\n }}\n />\n <Text size=\"medium\" color=\"surface.text.gray.muted\">\n {entry.value}\n </Text>\n </Box>\n </StyledLegendWrapper>\n );\n};\n\nconst CustomSquareLegend = (props: {\n payload?: Array<{\n payload: {\n legendType: 'none' | 'line';\n type: 'none' | 'line';\n };\n value: string;\n color: string;\n type: 'none' | 'line';\n dataKey: string;\n }>;\n layout: Layout;\n selectedDataKeys: string[];\n onClick: (dataKey: string) => void;\n}): JSX.Element | null => {\n const { payload, layout, selectedDataKeys, onClick } = props;\n const { chartName, dataColorMapping } = useCommonChartComponentsContext();\n\n /*\n This is a custom legend component that is used to display the legend for the chart.\n we need to show the legend only if the legendType is not none. (for example in line chart we don't want to show the legend for the reference line)\n so we are filtering the payload and then mapping over it to display the legend.\n \n For donut charts, we use dataColorMapping directly instead of payload because:\n - When legend items are clicked, the donut data gets filtered\n - This causes the payload to lose the filtered items\n - But we need all legend items to remain visible so users can toggle them back\n - dataColorMapping always contains all the original data keys\n */\n const isVerticalLayout = layout === 'vertical';\n const isClickable =\n chartName === 'line' || chartName === 'area' || chartName === 'bar' || chartName === 'donut';\n\n // For donut charts, generate legend entries from dataColorMapping (which has all keys)\n if (chartName === 'donut' && dataColorMapping) {\n const donutLegendEntries = Object.keys(dataColorMapping).map((key) => ({\n value: key, // The sanitized name\n dataKey: key,\n color: dataColorMapping[key].colorToken,\n }));\n\n if (donutLegendEntries.length === 0) {\n return null;\n }\n\n return (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n gap=\"spacing.5\"\n flexDirection={isVerticalLayout ? 'column' : 'row'}\n width={isVerticalLayout ? '100%' : 'auto'}\n flexWrap=\"wrap\"\n >\n {donutLegendEntries.map((entry, index) => (\n <LegendItem\n entry={entry}\n index={index}\n key={`item-${index}`}\n isSelected={selectedDataKeys.includes(entry.dataKey)}\n onClick={onClick}\n isClickable={isClickable}\n />\n ))}\n </Box>\n );\n }\n\n // For other chart types, use the payload from recharts\n if (!payload || payload.length === 0) {\n return null;\n }\n\n const filteredPayload = payload.filter(\n (entry) => entry?.payload?.legendType !== 'none' && entry?.type !== 'none',\n );\n\n return (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n gap=\"spacing.5\"\n flexDirection={isVerticalLayout ? 'column' : 'row'}\n width={isVerticalLayout ? '100%' : 'auto'}\n flexWrap=\"wrap\"\n >\n {filteredPayload.map((entry, index) => (\n <LegendItem\n entry={entry}\n index={index}\n key={`item-${index}`}\n isSelected={selectedDataKeys.includes(entry.dataKey)}\n onClick={onClick}\n isClickable={isClickable}\n />\n ))}\n </Box>\n );\n};\n\nconst _ChartLegend: React.FC<ChartLegendProps> = ({\n selectedDataKeys: selectedDataKeysProp,\n defaultSelectedDataKeys,\n onSelectedDataKeysChange,\n ...props\n}) => {\n const { theme } = useTheme();\n const { dataColorMapping, setSelectedDataKeys } = useCommonChartComponentsContext();\n const hasUserInteractedRef = React.useRef(false);\n const isControlled = selectedDataKeysProp !== undefined;\n const shouldAutoSelectAllDataKeys = !isControlled && defaultSelectedDataKeys === undefined;\n\n // Get all available dataKeys from the chart\n const allDataKeys = React.useMemo(() => Object.keys(dataColorMapping ?? {}), [dataColorMapping]);\n\n // Use controllable state for selected keys\n const [selectedKeysArray, setSelectedKeysArray] = useControllableState({\n value: selectedDataKeysProp,\n defaultValue: defaultSelectedDataKeys ?? allDataKeys,\n });\n\n React.useEffect(() => {\n if (!shouldAutoSelectAllDataKeys || hasUserInteractedRef.current || allDataKeys.length === 0) {\n return;\n }\n\n const isSelectedStateInSync =\n selectedKeysArray.length === allDataKeys.length &&\n allDataKeys.every((dataKey) => selectedKeysArray.includes(dataKey));\n\n if (!isSelectedStateInSync) {\n setSelectedKeysArray(() => [...allDataKeys], true);\n }\n }, [allDataKeys, selectedKeysArray, setSelectedKeysArray, shouldAutoSelectAllDataKeys]);\n\n // Reset selection when allDataKeys completely changes (e.g., when nameKey prop changes)\n // This detects when none of the currently selected keys exist in the new data keys\n React.useEffect(() => {\n if (allDataKeys.length > 0 && selectedKeysArray.length > 0) {\n const hasOverlap = selectedKeysArray.some((key) => allDataKeys.includes(key));\n if (!hasOverlap) {\n // The data keys have completely changed, reset to all keys\n setSelectedKeysArray(() => [...allDataKeys]);\n }\n }\n }, [allDataKeys, selectedKeysArray, setSelectedKeysArray]);\n\n // Sync selectedDataKeys to context's selectedDataKeys\n React.useEffect(() => {\n setSelectedDataKeys?.(selectedKeysArray);\n }, [selectedKeysArray, setSelectedDataKeys]);\n\n // Handle toggle\n const handleClick = React.useCallback(\n (dataKey: string) => {\n hasUserInteractedRef.current = true;\n const newSelectedKeys = selectedKeysArray.includes(dataKey)\n ? selectedKeysArray.filter((key) => key !== dataKey)\n : [...selectedKeysArray, dataKey];\n\n setSelectedKeysArray(() => newSelectedKeys);\n onSelectedDataKeysChange?.({ dataKey, selectedKeysArray: newSelectedKeys });\n },\n [setSelectedKeysArray, selectedKeysArray, onSelectedDataKeysChange],\n );\n\n return (\n <RechartsLegend\n wrapperStyle={{\n fontFamily: theme.typography.fonts.family.text,\n fontSize: theme.typography.fonts.size[100],\n color: theme.colors.surface.text.gray.normal,\n paddingTop: LEGEND_MARGIN_TOP,\n }}\n align=\"center\"\n verticalAlign={props.layout === 'vertical' ? 'middle' : 'bottom'}\n content={\n <CustomSquareLegend\n layout={props.layout ?? 'horizontal'}\n selectedDataKeys={selectedKeysArray}\n onClick={handleClick}\n />\n }\n {...props}\n />\n );\n};\n\nconst ChartLegend = assignWithoutSideEffects(_ChartLegend, {\n componentId: componentId.chartLegend,\n});\n\nconst CustomReferenceLabel = ({\n viewBox,\n value,\n isVertical,\n}: {\n viewBox?: { x: number; y: number; width: number };\n value: string | undefined;\n isVertical: boolean;\n}): JSX.Element => {\n // Extract viewBox coordinates with fallback values to prevent undefined errors.\n // viewBox contains the positioning information for the reference line label from Recharts.\n const { x, y, width } = viewBox ?? { x: 0, y: 0, width: 0 };\n const { theme } = useTheme();\n\n // Calculate dynamic text width to ensure the background rectangle fits the text perfectly.\n // This prevents text overflow for long labels and avoids unnecessarily large rectangles for short text.\n // The function also handles text truncation with ellipsis if the text exceeds the maximum width.\n const { width: RECT_WIDTH, displayText } = value\n ? calculateTextWidth(value, theme)\n : { width: 80, displayText: value ?? '' };\n\n const rect_x = isVertical ? x + width - RECT_WIDTH / 2 : x + width - RECT_WIDTH;\n const rect_y = isVertical ? y : y - TEXT_BASELINE;\n // Text position with padding inside the rectangle\n const text_x = rect_x + PADDING_HORIZONTAL + (RECT_WIDTH - PADDING_HORIZONTAL * 2) / 2;\n const text_y = rect_y + PADDING_VERTICAL + TEXT_BASELINE; // +15 for text baseline\n\n return (\n <g>\n <rect\n x={rect_x}\n y={rect_y}\n width={RECT_WIDTH}\n height={RECT_HEIGHT}\n rx={theme.border.radius.medium}\n fill={theme.colors.surface.background.gray.subtle}\n stroke={theme.colors.surface.border.gray.muted}\n strokeWidth=\"1\"\n />\n <text\n x={text_x}\n y={text_y}\n textAnchor=\"middle\"\n fill={theme.colors.surface.text.gray.normal}\n fontSize={theme.typography.fonts.size[50]}\n fontFamily={theme.typography.fonts.family.text}\n fontWeight={theme.typography.fonts.weight.medium}\n letterSpacing={theme.typography.letterSpacings[100]}\n >\n {displayText}\n </text>\n </g>\n );\n};\n\nconst ChartReferenceLine: React.FC<ChartReferenceLineProps> = ({ label, x, y }) => {\n const { theme } = useTheme();\n return (\n <RechartsReferenceLine\n stroke={theme.colors.data.background.categorical.gray.intense}\n strokeWidth={2}\n strokeDasharray=\"4 4\"\n label={<CustomReferenceLabel value={label} isVertical={Boolean(x)} />}\n x={x}\n y={y}\n />\n );\n};\n\nexport {\n ChartXAxis,\n ChartYAxis,\n ChartCartesianGrid,\n ChartLegend,\n ChartTooltip,\n ChartReferenceLine,\n};\n"],"names":["getChartColor","dataKey","name","dataColorMapping","chartName","colorKey","sanitizeString","mappedColorData","mappedColor","colorToken","isCustomColor","isSequentialColor","getHighestColorInRange","followIntensityMapping","Object","keys","length","totalChartColors","wrapTextToFit","text","maxWidthPx","fontSize","avgCharWidth","maxCharsPerLine","Math","max","floor","words","split","lines","currentLine","_iterator","_createForOfIteratorHelper","_step","s","n","done","word","value","concat","push","err","e","f","wrappedTextLabel","_ref","maxWidth","lineHeight","startDy","textAnchor","fill","fontFamily","fontWeight","letterSpacing","_ref$yOffset","yOffset","totalHeight","element","_jsx","x","y","style","children","map","line","index","dy","height","CustomXAxisTick","_ref2","payload","secondaryLabelMap","theme","tickWidth","onHeightCalculated","lastTick","tickFormatter","typography","fonts","size","Infinity","shouldUseEdgeAlignment","isFirstTick","isLastTick","getTextAnchor","textStyleProps","X_AXIS_TICK_LINE_HEIGHT","X_AXIS_TICK_START_DY","colors","surface","gray","muted","family","weight","regular","letterSpacings","displayValue","String","primaryLabel","_objectSpread","secondaryValue","secondaryLabel","undefined","X_AXIS_LABEL_GAP","totalTickHeight","React","useEffect","_jsxs","transform","_ChartXAxis","_ref3","_ref3$interval","interval","_ref3$tickLine","tickLine","label","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","_useCommonChartCompon","useCommonChartComponentsContext","dataLength","_unusedsecondaryDataKey","secondaryDataKey","restProps","_excluded2","totalTickCount","visibleTickCount","ceil","minHeight","_React$useState","useState","_React$useState2","_slicedToArray","maxTickHeight","setMaxTickHeight","handleHeightCalculated","useCallback","prev","axisLabelSpace","X_AXIS_LABEL_OFFSET","X_AXIS_LABEL_HEIGHT","baseHeight","axisLabelY","RechartsXAxis","tick","tickProps","_tickProps$width","Number","width","stroke","border","_ref4","viewBox","X_OFFSET","ChartXAxis","assignWithoutSideEffects","componentId","chartXAxis","ChartYAxis","_useTheme2","RechartsYAxis","position","lineHeights","angle","subtle","ChartCartesianGrid","_useTheme3","RechartsCartesianGrid","vertical","CustomTooltip","_ref5","item","_useTheme4","_useCommonChartCompon2","toolTipColor","Box","display","alignItems","justifyContent","gap","spacing","backgroundColor","getIn","borderRadius","radius","small","Text","color","ChartTooltip","_useTheme5","RechartsTooltip","content","_ref6","filteredPayLoad","filter","type","icon","staticBlack","normal","large","padding","Heading","paddingTop","cursor","StyledLegendWrapper","styled","button","withConfig","displayName","_ref7","$isHidden","$isClickable","opacity","background","textDecoration","transition","motion","duration","xquick","easing","linear","LegendItem","_ref8","_entry$value","entry","isSelected","onClick","isClickable","_useTheme6","_useCommonChartCompon3","legendColor","legendKey","CustomSquareLegend","layout","selectedDataKeys","_useCommonChartCompon4","isVerticalLayout","donutLegendEntries","key","flexDirection","flexWrap","includes","filteredPayload","_entry$payload","legendType","_ChartLegend","_ref9","_props$layout","selectedDataKeysProp","defaultSelectedDataKeys","onSelectedDataKeysChange","_excluded3","_useTheme7","_useCommonChartCompon5","setSelectedDataKeys","hasUserInteractedRef","useRef","isControlled","shouldAutoSelectAllDataKeys","allDataKeys","useMemo","_useControllableState","useControllableState","defaultValue","_useControllableState2","selectedKeysArray","setSelectedKeysArray","current","isSelectedStateInSync","every","_toConsumableArray","hasOverlap","some","handleClick","newSelectedKeys","RechartsLegend","wrapperStyle","LEGEND_MARGIN_TOP","align","verticalAlign","ChartLegend","chartLegend","CustomReferenceLabel","_ref0","isVertical","_ref1","_useTheme8","_ref10","calculateTextWidth","displayText","RECT_WIDTH","rect_x","rect_y","TEXT_BASELINE","text_x","PADDING_HORIZONTAL","text_y","PADDING_VERTICAL","RECT_HEIGHT","rx","medium","strokeWidth","ChartReferenceLine","_ref11","_useTheme9","RechartsReferenceLine","data","categorical","intense","strokeDasharray","Boolean"],"mappings":"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"}
1
+ {"version":3,"file":"CommonChartComponents.web.js","sources":["../../../../../../../src/components/Charts/CommonChartComponents/CommonChartComponents.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n XAxis as RechartsXAxis,\n YAxis as RechartsYAxis,\n CartesianGrid as RechartsCartesianGrid,\n Tooltip as RechartsTooltip,\n Legend as RechartsLegend,\n ReferenceLine as RechartsReferenceLine,\n Line as RechartsLine,\n} from 'recharts';\nimport {\n getHighestColorInRange,\n isSequentialColor,\n sanitizeString,\n totalChartColors,\n} from '../utils';\nimport type {\n ChartReferenceLineProps,\n ChartReferenceBandProps,\n ChartXAxisProps,\n ChartYAxisProps,\n ChartTooltipProps,\n ChartLegendProps,\n ChartCartesianGridProps,\n Layout,\n ChartColorToken,\n DataColorMapping,\n SecondaryLabelMap,\n} from './types';\nimport {\n RECT_HEIGHT,\n TEXT_BASELINE,\n PADDING_VERTICAL,\n PADDING_HORIZONTAL,\n X_AXIS_TICK_LINE_HEIGHT,\n X_AXIS_TICK_START_DY,\n X_AXIS_LABEL_GAP,\n X_AXIS_LABEL_OFFSET,\n X_AXIS_LABEL_HEIGHT,\n LEGEND_MARGIN_TOP,\n X_OFFSET,\n REFERENCE_BAND_LOWER_CLASS,\n REFERENCE_BAND_UPPER_CLASS,\n componentId,\n} from './tokens';\nimport { calculateTextWidth } from './utils';\nimport { useCommonChartComponentsContext } from './CommonChartComponentsContext';\nimport getIn from '~utils/lodashButBetter/get';\nimport { Heading, Text } from '~components/Typography';\nimport { Box } from '~components/Box';\nimport { useTheme } from '~components/BladeProvider';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useControllableState } from '~utils/useControllable';\n\n/**\n * Helper function to get the appropriate color for chart elements (tooltip, legend)\n *\n * This function resolves the color token for chart elements based on the chart type and color mapping.\n * The logic varies by chart type:\n * - For line/area charts: Returns the mapped color directly if it's not a custom color.\n * If it is a custom color, it maps to the highest color in the range (unless it's sequential).\n * - For sequential colors: Returns the mapped color as-is\n * - For other cases: Uses getHighestColorInRange to get the highest intensity color from the range,\n * with special handling for donut charts when custom colors are used or when there are more\n * data points than the default color palette\n *\n * @param dataKey - The data key for the chart element\n * @param name - The name/value of the chart element\n * @param dataColorMapping - Color mapping object\n * @param chartName - Type of chart (line, area, donut, etc.)\n * @returns The resolved color token\n */\nconst getChartColor = (\n dataKey: string,\n name: string,\n dataColorMapping: DataColorMapping,\n chartName: string | undefined,\n): ChartColorToken => {\n const colorKey = chartName === 'donut' ? sanitizeString(name ?? '') : dataKey;\n const mappedColorData = dataColorMapping?.[colorKey ?? ''];\n\n // Handle case where mappedColorData is undefined (e.g., during dynamic nameKey changes)\n if (!mappedColorData) {\n return 'data.background.categorical.azure.faint' as ChartColorToken;\n }\n\n const mappedColor = mappedColorData.colorToken;\n const isCustomColor = mappedColorData.isCustomColor;\n\n if ((chartName === 'line' || chartName === 'area') && !isCustomColor) {\n return mappedColor;\n }\n\n if (mappedColor && isSequentialColor(mappedColor)) {\n return mappedColor ?? 'data.background.categorical.azure.faint';\n }\n return getHighestColorInRange({\n colorToken: mappedColor ?? ('data.background.categorical.azure.faint' as ChartColorToken),\n followIntensityMapping:\n chartName === 'donut' &&\n (isCustomColor || Object.keys(dataColorMapping).length > totalChartColors),\n });\n};\n\n/**\n * Wraps text to fit within a given pixel width, breaking at word boundaries.\n * Returns an array of lines that each fit within the max width.\n */\nconst wrapTextToFit = (text: string, maxWidthPx: number, fontSize: number): string[] => {\n // Approximate average character width (varies by font, but ~0.5-0.6 of font size is common)\n const avgCharWidth = fontSize * 0.55;\n const maxCharsPerLine = Math.max(1, Math.floor(maxWidthPx / avgCharWidth));\n\n // If text fits in one line, return as-is\n if (text.length <= maxCharsPerLine) {\n return [text];\n }\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n if (currentLine.length === 0) {\n currentLine = word;\n } else if (currentLine.length + 1 + word.length <= maxCharsPerLine) {\n currentLine += ` ${word}`;\n } else {\n lines.push(currentLine);\n currentLine = word;\n }\n }\n\n if (currentLine.length > 0) {\n lines.push(currentLine);\n }\n\n return lines;\n};\n\n/**\n * Reusable component for rendering wrapped text labels in SVG.\n * Handles multi-line text rendering with configurable positioning.\n */\nconst wrappedTextLabel = ({\n text,\n maxWidth,\n fontSize,\n lineHeight,\n startDy,\n textAnchor,\n fill,\n fontFamily,\n fontWeight,\n letterSpacing,\n yOffset = 0,\n}: {\n text: string;\n maxWidth: number;\n fontSize: number;\n lineHeight: number;\n startDy: number;\n textAnchor: 'start' | 'middle' | 'end';\n fill: string;\n fontFamily: string;\n fontWeight: number;\n letterSpacing: number;\n yOffset?: number;\n}): { element: JSX.Element; height: number } => {\n const lines = wrapTextToFit(text, maxWidth, fontSize);\n const totalHeight = lines.length * lineHeight;\n\n const element = (\n <text\n x={0}\n y={yOffset}\n textAnchor={textAnchor}\n fill={fill}\n fontSize={fontSize}\n fontFamily={fontFamily}\n fontWeight={fontWeight}\n style={{ letterSpacing }}\n >\n {lines.map((line, index) => (\n <tspan key={index} x={0} dy={index === 0 ? startDy : lineHeight}>\n {line}\n </tspan>\n ))}\n </text>\n );\n\n return { element, height: totalHeight };\n};\n\n/**\n * Custom tick component for X-axis with automatic text wrapping.\n * - Primary label: Automatically wraps long text to multiple lines based on available width\n * - Secondary label: Optional label from pre-computed secondaryLabelMap (shown below primary, also supports wrapping)\n * - Edge alignment: For line/area charts, first/last ticks align start/end to prevent clipping.\n * For bar charts, all labels are center-aligned since bars are centered on tick positions.\n * - Reports calculated height via onHeightCalculated callback for dynamic axis sizing\n */\nconst CustomXAxisTick = ({\n x,\n y,\n payload,\n secondaryLabelMap,\n theme,\n tickWidth,\n chartName,\n onHeightCalculated,\n lastTick,\n tickFormatter,\n}: {\n x: number;\n y: number;\n payload: { value: string; index: number };\n secondaryLabelMap?: SecondaryLabelMap;\n theme: ReturnType<typeof useTheme>['theme'];\n tickWidth?: number;\n chartName?: string;\n onHeightCalculated?: (height: number) => void;\n lastTick: number;\n tickFormatter?: (value: string, index: number) => string;\n}): JSX.Element => {\n const fontSize = theme.typography.fonts.size[75];\n const maxWidth = tickWidth ? tickWidth * 0.9 : Infinity;\n\n // For bar charts, always center align labels since bars are centered on ticks\n // For line/area charts, align first tick left and last tick right to prevent clipping\n const shouldUseEdgeAlignment = chartName === 'line' || chartName === 'area';\n const isFirstTick = shouldUseEdgeAlignment && payload.index === 0;\n const isLastTick = shouldUseEdgeAlignment && payload.index === lastTick;\n\n const getTextAnchor = (): 'start' | 'middle' | 'end' => {\n if (isFirstTick) return 'start';\n if (isLastTick) return 'end';\n return 'middle';\n };\n const textAnchor = getTextAnchor();\n\n // Common text style props\n const textStyleProps = {\n maxWidth,\n fontSize,\n lineHeight: X_AXIS_TICK_LINE_HEIGHT,\n startDy: X_AXIS_TICK_START_DY,\n textAnchor,\n fill: theme.colors.surface.text.gray.muted,\n fontFamily: theme.typography.fonts.family.text,\n fontWeight: theme.typography.fonts.weight.regular,\n letterSpacing: theme.typography.letterSpacings[100],\n } as const;\n\n // Apply tickFormatter if provided, otherwise use raw value\n const displayValue = tickFormatter\n ? tickFormatter(payload.value, payload.index)\n : String(payload.value);\n\n // Primary label\n const primaryLabel = wrappedTextLabel({\n ...textStyleProps,\n text: displayValue,\n });\n\n // Secondary label from pre-computed map\n const secondaryValue = secondaryLabelMap?.[payload.index];\n\n const secondaryLabel =\n secondaryValue !== undefined\n ? wrappedTextLabel({\n ...textStyleProps,\n text: String(secondaryValue),\n // primaryLabel.height gives us where primary ends (relative to its startDy)\n // X_AXIS_LABEL_GAP adds the desired spacing between labels\n yOffset: primaryLabel.height + X_AXIS_LABEL_GAP,\n })\n : null;\n\n // Calculate total tick height and report it\n const totalTickHeight =\n X_AXIS_TICK_START_DY +\n primaryLabel.height +\n (secondaryLabel ? X_AXIS_LABEL_GAP + secondaryLabel.height : 0);\n\n React.useEffect(() => {\n onHeightCalculated?.(totalTickHeight);\n }, [totalTickHeight, onHeightCalculated]);\n\n return (\n <g transform={`translate(${x},${y})`}>\n {primaryLabel.element}\n {secondaryLabel?.element}\n </g>\n );\n};\n\nconst _ChartXAxis: React.FC<ChartXAxisProps> = ({\n interval = 0,\n tickLine = false,\n label,\n dataKey,\n height,\n tickFormatter,\n ...props\n}) => {\n const { theme } = useTheme();\n const { secondaryLabelMap, chartName, dataLength } = useCommonChartComponentsContext();\n // We don't want to pass secondaryDataKey to recharts\n const { secondaryDataKey: _unusedsecondaryDataKey, ...restProps } = props;\n\n // Calculate tick count from dataLength\n const totalTickCount = dataLength ?? 1;\n\n // Calculate visible tick count based on interval\n // When interval is a number: 0 = show all, 1 = every 2nd, 2 = every 3rd, etc.\n const visibleTickCount =\n typeof interval === 'number' ? Math.ceil(totalTickCount / (interval + 1)) : totalTickCount; // For string intervals like 'preserveStart', use total as fallback\n\n const lastTick = totalTickCount - 1;\n\n // State to track the maximum tick height reported by CustomXAxisTick components\n const minHeight = secondaryLabelMap ? 20 : 10;\n const [maxTickHeight, setMaxTickHeight] = React.useState(minHeight);\n\n // Callback to update max height when ticks report their calculated height\n const handleHeightCalculated = React.useCallback((height: number) => {\n setMaxTickHeight((prev) => Math.max(prev, height));\n }, []);\n\n // Calculate total axis height:\n // - Tick labels height (dynamic)\n // - X-axis label height + offset, always reserved so the gap between the\n // axis and elements below it (e.g. legend) stays constant whether or not\n // the `label` prop is present\n const axisLabelSpace = X_AXIS_LABEL_OFFSET + X_AXIS_LABEL_HEIGHT;\n const baseHeight = Math.max(maxTickHeight) + axisLabelSpace;\n\n // Position for X-axis label: below tick labels with offset\n const axisLabelY = maxTickHeight + X_AXIS_LABEL_OFFSET + X_AXIS_LABEL_HEIGHT / 2;\n\n return (\n <RechartsXAxis\n {...restProps}\n height={baseHeight || height}\n interval={interval}\n tick={(tickProps: {\n x: string | number;\n y: string | number;\n payload: { value: string; index: number };\n width?: string | number;\n }) => {\n // Calculate available width per tick from the total chart width\n const tickWidth = Number(tickProps.width ?? 0) / visibleTickCount;\n return (\n <CustomXAxisTick\n x={Number(tickProps.x)}\n y={Number(tickProps.y)}\n payload={tickProps.payload}\n secondaryLabelMap={secondaryLabelMap}\n theme={theme}\n tickWidth={tickWidth}\n lastTick={lastTick}\n chartName={chartName}\n onHeightCalculated={handleHeightCalculated}\n tickFormatter={tickFormatter}\n />\n );\n }}\n tickLine={tickLine}\n stroke={theme.colors.surface.border.gray.muted}\n label={({ viewBox }: { viewBox: { x: number; y: number; width: number } }) => (\n <text\n x={viewBox.x + viewBox.width / 2 - X_OFFSET}\n y={viewBox.y + axisLabelY}\n textAnchor=\"middle\"\n fill={theme.colors.surface.text.gray.muted}\n fontSize={theme.typography.fonts.size[75]}\n fontFamily={theme.typography.fonts.family.text}\n fontWeight={theme.typography.fonts.weight.regular}\n letterSpacing={theme.typography.letterSpacings[100]}\n >\n {label}\n </text>\n )}\n dataKey={dataKey}\n />\n );\n};\n\nconst ChartXAxis = assignWithoutSideEffects(_ChartXAxis, {\n componentId: componentId.chartXAxis,\n});\n\nconst ChartYAxis: React.FC<ChartYAxisProps> = (props) => {\n const { theme } = useTheme();\n\n return (\n <RechartsYAxis\n {...props}\n tick={{\n fill: theme.colors.surface.text.gray.muted,\n fontSize: theme.typography.fonts.size[75],\n fontFamily: theme.typography.fonts.family.text,\n fontWeight: theme.typography.fonts.weight.regular,\n letterSpacing: theme.typography.letterSpacings[100],\n }}\n tickLine={false}\n stroke={theme.colors.surface.border.gray.muted}\n label={{\n value: props?.label,\n position: 'insideLeft',\n style: {\n textAnchor: 'middle',\n fill: theme.colors.surface.text.gray.muted,\n fontSize: theme.typography.fonts.size[75],\n fontWeight: theme.typography.fonts.weight.regular,\n fontFamily: theme.typography.fonts.family.text,\n letterSpacing: theme.typography.letterSpacings[100],\n lineHeight: theme.typography.lineHeights[500],\n },\n angle: -90,\n fill: theme.colors.surface.text.gray.subtle,\n }}\n dataKey={props?.dataKey}\n />\n );\n};\n\nconst ChartCartesianGrid: React.FC<ChartCartesianGridProps> = (props) => {\n const { theme } = useTheme();\n\n return (\n <RechartsCartesianGrid\n stroke={theme.colors.surface.border.gray.muted}\n vertical={false}\n {...props}\n />\n );\n};\n\nconst CustomTooltip = ({\n item,\n}: {\n item: {\n name: string;\n value: string;\n color: string;\n dataKey: string;\n payload: Record<string, unknown>;\n };\n}): JSX.Element => {\n const { theme } = useTheme();\n const { dataColorMapping, chartName, rangeMap } = useCommonChartComponentsContext();\n\n const toolTipColor = getChartColor(item.dataKey, item.name, dataColorMapping ?? {}, chartName);\n\n // If this series has a reference band, show its industry range (low–high) beneath the value.\n const range = rangeMap?.[item.dataKey];\n const lowerValue = range ? item.payload?.[range.rangeLowerDataKey] : undefined;\n const upperValue = range ? item.payload?.[range.rangeUpperDataKey] : undefined;\n const hasRange =\n range &&\n lowerValue !== undefined &&\n lowerValue !== null &&\n upperValue !== undefined &&\n upperValue !== null;\n\n return (\n <Box key={`tooltip-${item.name}`} paddingY=\"spacing.1\">\n <Box display=\"flex\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"spacing.4\">\n <Box display=\"flex\" gap=\"spacing.3\" alignItems=\"center\" justifyContent=\"center\">\n <div\n style={{\n width: theme.spacing[4],\n height: theme.spacing[4],\n backgroundColor: getIn(theme.colors, toolTipColor),\n borderRadius: theme.border.radius.small,\n }}\n />\n <Text size=\"small\" weight=\"regular\" color=\"surface.text.staticWhite.normal\">\n {item.name}\n </Text>\n </Box>\n <Text size=\"small\" weight=\"regular\" color=\"surface.text.staticWhite.normal\">\n {item.value}\n </Text>\n </Box>\n {hasRange ? (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"spacing.4\"\n paddingLeft=\"spacing.5\"\n >\n <Text size=\"xsmall\" weight=\"regular\" color=\"surface.text.staticWhite.muted\">\n {range?.rangeName ?? 'Industry'}\n </Text>\n <Text size=\"xsmall\" weight=\"regular\" color=\"surface.text.staticWhite.muted\">\n {`${String(lowerValue)}–${String(upperValue)}`}\n </Text>\n </Box>\n ) : null}\n </Box>\n );\n};\n\nconst ChartTooltip: React.FC<ChartTooltipProps> = (props) => {\n const { theme } = useTheme();\n return (\n <RechartsTooltip\n content={({ payload, label }) => {\n const filteredPayLoad = payload.filter((item) => item.type !== 'none');\n return (\n <div\n style={{\n backgroundColor: theme.colors.surface.icon.staticBlack.normal,\n borderRadius: theme.border.radius.large,\n border: `1px solid ${theme.colors.surface.border.gray.muted}`,\n padding: theme.spacing[4],\n }}\n >\n <Heading size=\"small\" weight=\"semibold\" color=\"surface.text.staticWhite.normal\">\n {label}\n </Heading>\n <Box paddingTop={label ? 'spacing.4' : undefined}>\n {filteredPayLoad.map((item) => (\n <CustomTooltip item={item} key={item.name} />\n ))}\n </Box>\n </div>\n );\n }}\n cursor={{ fill: 'transparent', stroke: 'transparent' }}\n {...props}\n />\n );\n};\n\nconst StyledLegendWrapper = styled.button<{ $isHidden: boolean; $isClickable: boolean }>(\n ({ theme, $isHidden, $isClickable }) => ({\n display: 'flex',\n alignItems: 'center',\n cursor: $isClickable ? 'pointer' : 'default',\n opacity: $isHidden ? 0.4 : 1,\n background: 'none',\n border: 'none',\n padding: theme.spacing[2],\n '& p': {\n color: theme.colors.surface.text.gray.muted,\n textDecoration: $isHidden ? 'line-through' : 'none',\n transition: $isClickable\n ? `color ${theme.motion.duration.xquick}ms ${theme.motion.easing.linear}`\n : 'none',\n },\n '&:hover p': {\n color: $isClickable\n ? theme.colors.surface.text.gray.normal\n : theme.colors.surface.text.gray.muted,\n },\n }),\n);\n\nconst LegendItem = ({\n entry,\n index,\n isSelected,\n onClick,\n isClickable,\n}: {\n entry: { color: string; value: string; dataKey: string };\n index: number;\n isSelected: boolean;\n onClick: (dataKey: string) => void;\n isClickable: boolean;\n}): JSX.Element => {\n const { theme } = useTheme();\n const { dataColorMapping, chartName } = useCommonChartComponentsContext();\n\n const legendColor = getChartColor(entry.dataKey, entry.value, dataColorMapping ?? {}, chartName);\n\n // For donut charts, use sanitized value (name) as the key, for other charts use dataKey\n const legendKey = chartName === 'donut' ? sanitizeString(entry.value ?? '') : entry.dataKey;\n\n return (\n <StyledLegendWrapper\n key={`item-${index}`}\n $isHidden={!isSelected}\n $isClickable={isClickable}\n onClick={\n isClickable\n ? () => {\n onClick(legendKey);\n }\n : undefined\n }\n type=\"button\"\n >\n <Box display=\"flex\" gap=\"spacing.3\" justifyContent=\"center\" alignItems=\"center\">\n <span\n style={{\n backgroundColor: getIn(theme.colors, legendColor),\n width: theme.spacing[4],\n height: theme.spacing[4],\n display: 'inline-block',\n borderRadius: theme.border.radius['2xsmall'],\n }}\n />\n <Text size=\"medium\" color=\"surface.text.gray.muted\">\n {entry.value}\n </Text>\n </Box>\n </StyledLegendWrapper>\n );\n};\n\n/**\n * Informational (non-toggleable) legend entries for the reference band(s). Bands aren't selectable\n * series, so each renders a static square swatch in the band's fill colour + its label. One entry\n * per band (a per-line band or the standalone band).\n */\nconst ReferenceBandLegendSwatch = (): JSX.Element | null => {\n const { theme } = useTheme();\n const { referenceBands } = useCommonChartComponentsContext();\n if (!referenceBands || referenceBands.length === 0) return null;\n return (\n <>\n {referenceBands.map((band, index) => (\n <Box display=\"flex\" alignItems=\"center\" padding=\"spacing.2\" key={`reference-band-${index}`}>\n <Box display=\"flex\" gap=\"spacing.3\" justifyContent=\"center\" alignItems=\"center\">\n <span\n style={{\n backgroundColor: getIn(theme.colors, band.color),\n opacity: band.fillOpacity,\n width: theme.spacing[4],\n height: theme.spacing[4],\n display: 'inline-block',\n borderRadius: theme.border.radius['2xsmall'],\n }}\n />\n <Text size=\"medium\" color=\"surface.text.gray.muted\">\n {band.name}\n </Text>\n </Box>\n </Box>\n ))}\n </>\n );\n};\n\nconst CustomSquareLegend = (props: {\n payload?: Array<{\n payload: {\n legendType: 'none' | 'line';\n type: 'none' | 'line';\n };\n value: string;\n color: string;\n type: 'none' | 'line';\n dataKey: string;\n }>;\n layout: Layout;\n selectedDataKeys: string[];\n onClick: (dataKey: string) => void;\n}): JSX.Element | null => {\n const { payload, layout, selectedDataKeys, onClick } = props;\n const { chartName, dataColorMapping, referenceBands } = useCommonChartComponentsContext();\n\n /*\n This is a custom legend component that is used to display the legend for the chart.\n we need to show the legend only if the legendType is not none. (for example in line chart we don't want to show the legend for the reference line)\n so we are filtering the payload and then mapping over it to display the legend.\n \n For donut charts, we use dataColorMapping directly instead of payload because:\n - When legend items are clicked, the donut data gets filtered\n - This causes the payload to lose the filtered items\n - But we need all legend items to remain visible so users can toggle them back\n - dataColorMapping always contains all the original data keys\n */\n const isVerticalLayout = layout === 'vertical';\n const isClickable =\n chartName === 'line' || chartName === 'area' || chartName === 'bar' || chartName === 'donut';\n\n // For donut charts, generate legend entries from dataColorMapping (which has all keys)\n if (chartName === 'donut' && dataColorMapping) {\n const donutLegendEntries = Object.keys(dataColorMapping).map((key) => ({\n value: key, // The sanitized name\n dataKey: key,\n color: dataColorMapping[key].colorToken,\n }));\n\n if (donutLegendEntries.length === 0) {\n return null;\n }\n\n return (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n gap=\"spacing.5\"\n flexDirection={isVerticalLayout ? 'column' : 'row'}\n width={isVerticalLayout ? '100%' : 'auto'}\n flexWrap=\"wrap\"\n >\n {donutLegendEntries.map((entry, index) => (\n <LegendItem\n entry={entry}\n index={index}\n key={`item-${index}`}\n isSelected={selectedDataKeys.includes(entry.dataKey)}\n onClick={onClick}\n isClickable={isClickable}\n />\n ))}\n </Box>\n );\n }\n\n // For other chart types, use the payload from recharts\n const filteredPayload = (payload ?? []).filter(\n (entry) => entry?.payload?.legendType !== 'none' && entry?.type !== 'none',\n );\n\n // Nothing to render — no real series and no reference band(s).\n if (filteredPayload.length === 0 && (!referenceBands || referenceBands.length === 0)) {\n return null;\n }\n\n return (\n <Box\n display=\"flex\"\n justifyContent=\"center\"\n gap=\"spacing.5\"\n flexDirection={isVerticalLayout ? 'column' : 'row'}\n width={isVerticalLayout ? '100%' : 'auto'}\n flexWrap=\"wrap\"\n >\n {filteredPayload.map((entry, index) => (\n <LegendItem\n entry={entry}\n index={index}\n key={`item-${index}`}\n isSelected={selectedDataKeys.includes(entry.dataKey)}\n onClick={onClick}\n isClickable={isClickable}\n />\n ))}\n {/* Static swatch for the reference band (not a toggleable series). */}\n <ReferenceBandLegendSwatch />\n </Box>\n );\n};\n\nconst _ChartLegend: React.FC<ChartLegendProps> = ({\n selectedDataKeys: selectedDataKeysProp,\n defaultSelectedDataKeys,\n onSelectedDataKeysChange,\n ...props\n}) => {\n const { theme } = useTheme();\n const { dataColorMapping, setSelectedDataKeys } = useCommonChartComponentsContext();\n const hasUserInteractedRef = React.useRef(false);\n const isControlled = selectedDataKeysProp !== undefined;\n const shouldAutoSelectAllDataKeys = !isControlled && defaultSelectedDataKeys === undefined;\n\n // Get all available dataKeys from the chart\n const allDataKeys = React.useMemo(() => Object.keys(dataColorMapping ?? {}), [dataColorMapping]);\n\n // Use controllable state for selected keys\n const [selectedKeysArray, setSelectedKeysArray] = useControllableState({\n value: selectedDataKeysProp,\n defaultValue: defaultSelectedDataKeys ?? allDataKeys,\n });\n\n React.useEffect(() => {\n if (!shouldAutoSelectAllDataKeys || hasUserInteractedRef.current || allDataKeys.length === 0) {\n return;\n }\n\n const isSelectedStateInSync =\n selectedKeysArray.length === allDataKeys.length &&\n allDataKeys.every((dataKey) => selectedKeysArray.includes(dataKey));\n\n if (!isSelectedStateInSync) {\n setSelectedKeysArray(() => [...allDataKeys], true);\n }\n }, [allDataKeys, selectedKeysArray, setSelectedKeysArray, shouldAutoSelectAllDataKeys]);\n\n // Reset selection when allDataKeys completely changes (e.g., when nameKey prop changes)\n // This detects when none of the currently selected keys exist in the new data keys\n React.useEffect(() => {\n if (allDataKeys.length > 0 && selectedKeysArray.length > 0) {\n const hasOverlap = selectedKeysArray.some((key) => allDataKeys.includes(key));\n if (!hasOverlap) {\n // The data keys have completely changed, reset to all keys\n setSelectedKeysArray(() => [...allDataKeys]);\n }\n }\n }, [allDataKeys, selectedKeysArray, setSelectedKeysArray]);\n\n // Sync selectedDataKeys to context's selectedDataKeys\n React.useEffect(() => {\n setSelectedDataKeys?.(selectedKeysArray);\n }, [selectedKeysArray, setSelectedDataKeys]);\n\n // Handle toggle\n const handleClick = React.useCallback(\n (dataKey: string) => {\n hasUserInteractedRef.current = true;\n const newSelectedKeys = selectedKeysArray.includes(dataKey)\n ? selectedKeysArray.filter((key) => key !== dataKey)\n : [...selectedKeysArray, dataKey];\n\n setSelectedKeysArray(() => newSelectedKeys);\n onSelectedDataKeysChange?.({ dataKey, selectedKeysArray: newSelectedKeys });\n },\n [setSelectedKeysArray, selectedKeysArray, onSelectedDataKeysChange],\n );\n\n return (\n <RechartsLegend\n wrapperStyle={{\n fontFamily: theme.typography.fonts.family.text,\n fontSize: theme.typography.fonts.size[100],\n color: theme.colors.surface.text.gray.normal,\n paddingTop: LEGEND_MARGIN_TOP,\n }}\n align=\"center\"\n verticalAlign={props.layout === 'vertical' ? 'middle' : 'bottom'}\n content={\n <CustomSquareLegend\n layout={props.layout ?? 'horizontal'}\n selectedDataKeys={selectedKeysArray}\n onClick={handleClick}\n />\n }\n {...props}\n />\n );\n};\n\nconst ChartLegend = assignWithoutSideEffects(_ChartLegend, {\n componentId: componentId.chartLegend,\n});\n\nconst CustomReferenceLabel = ({\n viewBox,\n value,\n isVertical,\n}: {\n viewBox?: { x: number; y: number; width: number };\n value: string | undefined;\n isVertical: boolean;\n}): JSX.Element => {\n // Extract viewBox coordinates with fallback values to prevent undefined errors.\n // viewBox contains the positioning information for the reference line label from Recharts.\n const { x, y, width } = viewBox ?? { x: 0, y: 0, width: 0 };\n const { theme } = useTheme();\n\n // Calculate dynamic text width to ensure the background rectangle fits the text perfectly.\n // This prevents text overflow for long labels and avoids unnecessarily large rectangles for short text.\n // The function also handles text truncation with ellipsis if the text exceeds the maximum width.\n const { width: RECT_WIDTH, displayText } = value\n ? calculateTextWidth(value, theme)\n : { width: 80, displayText: value ?? '' };\n\n const rect_x = isVertical ? x + width - RECT_WIDTH / 2 : x + width - RECT_WIDTH;\n const rect_y = isVertical ? y : y - TEXT_BASELINE;\n // Text position with padding inside the rectangle\n const text_x = rect_x + PADDING_HORIZONTAL + (RECT_WIDTH - PADDING_HORIZONTAL * 2) / 2;\n const text_y = rect_y + PADDING_VERTICAL + TEXT_BASELINE; // +15 for text baseline\n\n return (\n <g>\n <rect\n x={rect_x}\n y={rect_y}\n width={RECT_WIDTH}\n height={RECT_HEIGHT}\n rx={theme.border.radius.medium}\n fill={theme.colors.surface.background.gray.subtle}\n stroke={theme.colors.surface.border.gray.muted}\n strokeWidth=\"1\"\n />\n <text\n x={text_x}\n y={text_y}\n textAnchor=\"middle\"\n fill={theme.colors.surface.text.gray.normal}\n fontSize={theme.typography.fonts.size[50]}\n fontFamily={theme.typography.fonts.family.text}\n fontWeight={theme.typography.fonts.weight.medium}\n letterSpacing={theme.typography.letterSpacings[100]}\n >\n {displayText}\n </text>\n </g>\n );\n};\n\nconst ChartReferenceLine: React.FC<ChartReferenceLineProps> = ({ label, x, y }) => {\n const { theme } = useTheme();\n return (\n <RechartsReferenceLine\n stroke={theme.colors.data.background.categorical.gray.intense}\n strokeWidth={2}\n strokeDasharray=\"4 4\"\n label={<CustomReferenceLabel value={label} isVertical={Boolean(x)} />}\n x={x}\n y={y}\n />\n );\n};\n\n/**\n * Reference band. Renders two invisible bound lines (`lowerDataKey` / `upperDataKey`) so\n * Recharts computes their geometry and folds them into the y-domain; ChartLineWrapper then reads\n * those curves and paints the shaded band between them (a data-driven range that varies per point,\n * unlike Recharts' fixed-rectangle `ReferenceArea`). The band's fill + legend swatch are handled by\n * the wrapper and the shared legend via context.\n */\nconst _ChartReferenceBand: React.FC<ChartReferenceBandProps> = ({ lowerDataKey, upperDataKey }) => {\n return (\n <>\n <RechartsLine\n className={REFERENCE_BAND_LOWER_CLASS}\n type=\"monotone\"\n dataKey={lowerDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n />\n <RechartsLine\n className={REFERENCE_BAND_UPPER_CLASS}\n type=\"monotone\"\n dataKey={upperDataKey}\n stroke=\"transparent\"\n strokeWidth={1}\n dot={false}\n activeDot={false}\n connectNulls\n legendType=\"none\"\n tooltipType=\"none\"\n isAnimationActive={false}\n />\n </>\n );\n};\n\nconst ChartReferenceBand = assignWithoutSideEffects(_ChartReferenceBand, {\n componentId: componentId.chartReferenceBand,\n});\n\nexport {\n ChartXAxis,\n ChartYAxis,\n ChartCartesianGrid,\n ChartLegend,\n ChartTooltip,\n ChartReferenceLine,\n ChartReferenceBand,\n};\n"],"names":["getChartColor","dataKey","name","dataColorMapping","chartName","colorKey","sanitizeString","mappedColorData","mappedColor","colorToken","isCustomColor","isSequentialColor","getHighestColorInRange","followIntensityMapping","Object","keys","length","totalChartColors","wrapTextToFit","text","maxWidthPx","fontSize","avgCharWidth","maxCharsPerLine","Math","max","floor","words","split","lines","currentLine","_iterator","_createForOfIteratorHelper","_step","s","n","done","word","value","concat","push","err","e","f","wrappedTextLabel","_ref","maxWidth","lineHeight","startDy","textAnchor","fill","fontFamily","fontWeight","letterSpacing","_ref$yOffset","yOffset","totalHeight","element","_jsx","x","y","style","children","map","line","index","dy","height","CustomXAxisTick","_ref2","payload","secondaryLabelMap","theme","tickWidth","onHeightCalculated","lastTick","tickFormatter","typography","fonts","size","Infinity","shouldUseEdgeAlignment","isFirstTick","isLastTick","getTextAnchor","textStyleProps","X_AXIS_TICK_LINE_HEIGHT","X_AXIS_TICK_START_DY","colors","surface","gray","muted","family","weight","regular","letterSpacings","displayValue","String","primaryLabel","_objectSpread","secondaryValue","secondaryLabel","undefined","X_AXIS_LABEL_GAP","totalTickHeight","React","useEffect","_jsxs","transform","_ChartXAxis","_ref3","_ref3$interval","interval","_ref3$tickLine","tickLine","label","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","_useCommonChartCompon","useCommonChartComponentsContext","dataLength","_unusedsecondaryDataKey","secondaryDataKey","restProps","_excluded2","totalTickCount","visibleTickCount","ceil","minHeight","_React$useState","useState","_React$useState2","_slicedToArray","maxTickHeight","setMaxTickHeight","handleHeightCalculated","useCallback","prev","axisLabelSpace","X_AXIS_LABEL_OFFSET","X_AXIS_LABEL_HEIGHT","baseHeight","axisLabelY","RechartsXAxis","tick","tickProps","_tickProps$width","Number","width","stroke","border","_ref4","viewBox","X_OFFSET","ChartXAxis","assignWithoutSideEffects","componentId","chartXAxis","ChartYAxis","_useTheme2","RechartsYAxis","position","lineHeights","angle","subtle","ChartCartesianGrid","_useTheme3","RechartsCartesianGrid","vertical","CustomTooltip","_ref5","_item$payload","_item$payload2","_range$rangeName","item","_useTheme4","_useCommonChartCompon2","rangeMap","toolTipColor","range","lowerValue","rangeLowerDataKey","upperValue","rangeUpperDataKey","hasRange","Box","paddingY","display","alignItems","justifyContent","gap","spacing","backgroundColor","getIn","borderRadius","radius","small","Text","color","paddingLeft","rangeName","ChartTooltip","_useTheme5","RechartsTooltip","content","_ref6","filteredPayLoad","filter","type","icon","staticBlack","normal","large","padding","Heading","paddingTop","cursor","StyledLegendWrapper","styled","button","withConfig","displayName","_ref7","$isHidden","$isClickable","opacity","background","textDecoration","transition","motion","duration","xquick","easing","linear","LegendItem","_ref8","_entry$value","entry","isSelected","onClick","isClickable","_useTheme6","_useCommonChartCompon3","legendColor","legendKey","ReferenceBandLegendSwatch","_useTheme7","_useCommonChartCompon4","referenceBands","_Fragment","band","fillOpacity","CustomSquareLegend","layout","selectedDataKeys","_useCommonChartCompon5","isVerticalLayout","donutLegendEntries","key","flexDirection","flexWrap","includes","filteredPayload","_entry$payload","legendType","_ChartLegend","_ref9","_props$layout","selectedDataKeysProp","defaultSelectedDataKeys","onSelectedDataKeysChange","_excluded3","_useTheme8","_useCommonChartCompon6","setSelectedDataKeys","hasUserInteractedRef","useRef","isControlled","shouldAutoSelectAllDataKeys","allDataKeys","useMemo","_useControllableState","useControllableState","defaultValue","_useControllableState2","selectedKeysArray","setSelectedKeysArray","current","isSelectedStateInSync","every","_toConsumableArray","hasOverlap","some","handleClick","newSelectedKeys","RechartsLegend","wrapperStyle","LEGEND_MARGIN_TOP","align","verticalAlign","ChartLegend","chartLegend","CustomReferenceLabel","_ref0","isVertical","_ref1","_useTheme9","_ref10","calculateTextWidth","displayText","RECT_WIDTH","rect_x","rect_y","TEXT_BASELINE","text_x","PADDING_HORIZONTAL","text_y","PADDING_VERTICAL","RECT_HEIGHT","rx","medium","strokeWidth","ChartReferenceLine","_ref11","_useTheme0","RechartsReferenceLine","data","categorical","intense","strokeDasharray","Boolean","_ChartReferenceBand","_ref12","lowerDataKey","upperDataKey","RechartsLine","className","REFERENCE_BAND_LOWER_CLASS","dot","activeDot","connectNulls","tooltipType","isAnimationActive","REFERENCE_BAND_UPPER_CLASS","ChartReferenceBand","chartReferenceBand"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { ChartCartesianGrid, ChartLegend, ChartReferenceLine, ChartTooltip, ChartXAxis, ChartYAxis } from './CommonChartComponents.web.js';
1
+ export { ChartCartesianGrid, ChartLegend, ChartReferenceBand, ChartReferenceLine, ChartTooltip, ChartXAxis, ChartYAxis } from './CommonChartComponents.web.js';
2
2
  export { CommonChartComponentsContext, useCommonChartComponentsContext } from './CommonChartComponentsContext.js';
3
3
  export { DEFAULT_COLOR, componentId } from './tokens.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -26,14 +26,27 @@ var LEGEND_MARGIN_TOP = 8;
26
26
  var MIN_WIDTH = RECT_WIDTH;
27
27
  var MAX_WIDTH = 200;
28
28
  var DEFAULT_COLOR = 'data.background.categorical.blue.moderate';
29
+
30
+ // Default fill colour + opacity for the reference band. A faint categorical blue rendered at a
31
+ // low opacity reads as a subtle shaded range behind the trend line (matches the Figma design).
32
+ var REFERENCE_BAND_DEFAULT_COLOR = 'data.background.categorical.blue.faint';
33
+ var REFERENCE_BAND_FILL_OPACITY = 0.5;
34
+
35
+ // Stable classNames applied to the band's invisible bound lines (web) so ChartLineWrapper can find
36
+ // their rendered curves and paint the filled band between them.
37
+ var REFERENCE_BAND_LOWER_CLASS = 'blade-reference-band-lower';
38
+ var REFERENCE_BAND_UPPER_CLASS = 'blade-reference-band-upper';
39
+ // className on the <g> layer that holds the painted band path.
40
+ var REFERENCE_BAND_LAYER_CLASS = 'blade-reference-band-layer';
29
41
  var componentId = {
30
42
  chartLegend: 'chart-legend',
31
43
  chartXAxis: 'chart-x-axis',
32
44
  chartYAxis: 'chart-y-axis',
33
45
  chartCartesianGrid: 'chart-cartesian-grid',
34
46
  chartTooltip: 'chart-tooltip',
35
- chartReferenceLine: 'chart-reference-line'
47
+ chartReferenceLine: 'chart-reference-line',
48
+ chartReferenceBand: 'chart-reference-band'
36
49
  };
37
50
 
38
- export { DEFAULT_COLOR, LEGEND_MARGIN_TOP, MAX_WIDTH, MIN_WIDTH, PADDING_HORIZONTAL, PADDING_VERTICAL, RECT_HEIGHT, RECT_WIDTH, TEXT_BASELINE, X_AXIS_BOTTOM_PADDING, X_AXIS_LABEL_GAP, X_AXIS_LABEL_HEIGHT, X_AXIS_LABEL_OFFSET, X_AXIS_TEXT_BASELINE, X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL, X_AXIS_TICK_LINE_HEIGHT, X_AXIS_TICK_START_DY, X_OFFSET, Y_OFFSET, componentId };
51
+ export { DEFAULT_COLOR, LEGEND_MARGIN_TOP, MAX_WIDTH, MIN_WIDTH, PADDING_HORIZONTAL, PADDING_VERTICAL, RECT_HEIGHT, RECT_WIDTH, REFERENCE_BAND_DEFAULT_COLOR, REFERENCE_BAND_FILL_OPACITY, REFERENCE_BAND_LAYER_CLASS, REFERENCE_BAND_LOWER_CLASS, REFERENCE_BAND_UPPER_CLASS, TEXT_BASELINE, X_AXIS_BOTTOM_PADDING, X_AXIS_LABEL_GAP, X_AXIS_LABEL_HEIGHT, X_AXIS_LABEL_OFFSET, X_AXIS_TEXT_BASELINE, X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL, X_AXIS_TICK_LINE_HEIGHT, X_AXIS_TICK_START_DY, X_OFFSET, Y_OFFSET, componentId };
39
52
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sources":["../../../../../../../src/components/Charts/CommonChartComponents/tokens.ts"],"sourcesContent":["const RECT_WIDTH = 80;\nconst RECT_HEIGHT = 30;\nconst TEXT_BASELINE = 15;\n\n// Padding for text inside the rectangle (4px vertical, 8px horizontal)\nconst PADDING_VERTICAL = 4;\nconst PADDING_HORIZONTAL = 8;\n\nconst X_OFFSET = 32;\nconst Y_OFFSET = 14.5;\nconst X_AXIS_TEXT_BASELINE = 24;\nconst X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL = 48;\n\n// X-axis tick label constants\nconst X_AXIS_TICK_LINE_HEIGHT = 14.5;\nconst X_AXIS_TICK_START_DY = 8;\nconst X_AXIS_LABEL_GAP = 4;\nconst X_AXIS_BOTTOM_PADDING = 8;\n\n// Gap between tick labels and X-axis label (e.g., \"Month\")\nconst X_AXIS_LABEL_OFFSET = 8;\n// Height of the X-axis label text\nconst X_AXIS_LABEL_HEIGHT = 16;\n\n// Legend spacing from X-axis label (or tick labels if no label)\nconst LEGEND_MARGIN_TOP = 8;\n\nconst MIN_WIDTH = RECT_WIDTH;\nconst MAX_WIDTH = 200;\n\nconst DEFAULT_COLOR = 'data.background.categorical.blue.moderate';\n\nconst componentId = {\n chartLegend: 'chart-legend',\n chartXAxis: 'chart-x-axis',\n chartYAxis: 'chart-y-axis',\n chartCartesianGrid: 'chart-cartesian-grid',\n chartTooltip: 'chart-tooltip',\n chartReferenceLine: 'chart-reference-line',\n};\n\nexport {\n componentId,\n RECT_WIDTH,\n RECT_HEIGHT,\n TEXT_BASELINE,\n PADDING_VERTICAL,\n PADDING_HORIZONTAL,\n X_OFFSET,\n Y_OFFSET,\n X_AXIS_TEXT_BASELINE,\n X_AXIS_TICK_LINE_HEIGHT,\n X_AXIS_TICK_START_DY,\n X_AXIS_LABEL_GAP,\n X_AXIS_BOTTOM_PADDING,\n X_AXIS_LABEL_OFFSET,\n X_AXIS_LABEL_HEIGHT,\n LEGEND_MARGIN_TOP,\n MIN_WIDTH,\n MAX_WIDTH,\n DEFAULT_COLOR,\n X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL,\n};\n"],"names":["RECT_WIDTH","RECT_HEIGHT","TEXT_BASELINE","PADDING_VERTICAL","PADDING_HORIZONTAL","X_OFFSET","Y_OFFSET","X_AXIS_TEXT_BASELINE","X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL","X_AXIS_TICK_LINE_HEIGHT","X_AXIS_TICK_START_DY","X_AXIS_LABEL_GAP","X_AXIS_BOTTOM_PADDING","X_AXIS_LABEL_OFFSET","X_AXIS_LABEL_HEIGHT","LEGEND_MARGIN_TOP","MIN_WIDTH","MAX_WIDTH","DEFAULT_COLOR","componentId","chartLegend","chartXAxis","chartYAxis","chartCartesianGrid","chartTooltip","chartReferenceLine"],"mappings":"AAAMA,IAAAA,UAAU,GAAG,GAAE;AACfC,IAAAA,WAAW,GAAG,GAAE;AAChBC,IAAAA,aAAa,GAAG,GAAE;;AAExB;AACMC,IAAAA,gBAAgB,GAAG,EAAC;AACpBC,IAAAA,kBAAkB,GAAG,EAAC;AAEtBC,IAAAA,QAAQ,GAAG,GAAE;AACbC,IAAAA,QAAQ,GAAG,KAAI;AACfC,IAAAA,oBAAoB,GAAG,GAAE;AACzBC,IAAAA,yCAAyC,GAAG,GAAE;;AAEpD;AACMC,IAAAA,uBAAuB,GAAG,KAAI;AAC9BC,IAAAA,oBAAoB,GAAG,EAAC;AACxBC,IAAAA,gBAAgB,GAAG,EAAC;AACpBC,IAAAA,qBAAqB,GAAG,EAAC;;AAE/B;AACMC,IAAAA,mBAAmB,GAAG,EAAC;AAC7B;AACMC,IAAAA,mBAAmB,GAAG,GAAE;;AAE9B;AACMC,IAAAA,iBAAiB,GAAG,EAAC;AAErBC,IAAAA,SAAS,GAAGhB,WAAU;AACtBiB,IAAAA,SAAS,GAAG,IAAG;AAEfC,IAAAA,aAAa,GAAG,4CAA2C;AAEjE,IAAMC,WAAW,GAAG;AAClBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,UAAU,EAAE,cAAc;AAC1BC,EAAAA,UAAU,EAAE,cAAc;AAC1BC,EAAAA,kBAAkB,EAAE,sBAAsB;AAC1CC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,kBAAkB,EAAE,sBAAA;AACtB;;;;"}
1
+ {"version":3,"file":"tokens.js","sources":["../../../../../../../src/components/Charts/CommonChartComponents/tokens.ts"],"sourcesContent":["const RECT_WIDTH = 80;\nconst RECT_HEIGHT = 30;\nconst TEXT_BASELINE = 15;\n\n// Padding for text inside the rectangle (4px vertical, 8px horizontal)\nconst PADDING_VERTICAL = 4;\nconst PADDING_HORIZONTAL = 8;\n\nconst X_OFFSET = 32;\nconst Y_OFFSET = 14.5;\nconst X_AXIS_TEXT_BASELINE = 24;\nconst X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL = 48;\n\n// X-axis tick label constants\nconst X_AXIS_TICK_LINE_HEIGHT = 14.5;\nconst X_AXIS_TICK_START_DY = 8;\nconst X_AXIS_LABEL_GAP = 4;\nconst X_AXIS_BOTTOM_PADDING = 8;\n\n// Gap between tick labels and X-axis label (e.g., \"Month\")\nconst X_AXIS_LABEL_OFFSET = 8;\n// Height of the X-axis label text\nconst X_AXIS_LABEL_HEIGHT = 16;\n\n// Legend spacing from X-axis label (or tick labels if no label)\nconst LEGEND_MARGIN_TOP = 8;\n\nconst MIN_WIDTH = RECT_WIDTH;\nconst MAX_WIDTH = 200;\n\nconst DEFAULT_COLOR = 'data.background.categorical.blue.moderate';\n\n// Default fill colour + opacity for the reference band. A faint categorical blue rendered at a\n// low opacity reads as a subtle shaded range behind the trend line (matches the Figma design).\nconst REFERENCE_BAND_DEFAULT_COLOR = 'data.background.categorical.blue.faint';\nconst REFERENCE_BAND_FILL_OPACITY = 0.5;\n\n// Stable classNames applied to the band's invisible bound lines (web) so ChartLineWrapper can find\n// their rendered curves and paint the filled band between them.\nconst REFERENCE_BAND_LOWER_CLASS = 'blade-reference-band-lower';\nconst REFERENCE_BAND_UPPER_CLASS = 'blade-reference-band-upper';\n// className on the <g> layer that holds the painted band path.\nconst REFERENCE_BAND_LAYER_CLASS = 'blade-reference-band-layer';\n\nconst componentId = {\n chartLegend: 'chart-legend',\n chartXAxis: 'chart-x-axis',\n chartYAxis: 'chart-y-axis',\n chartCartesianGrid: 'chart-cartesian-grid',\n chartTooltip: 'chart-tooltip',\n chartReferenceLine: 'chart-reference-line',\n chartReferenceBand: 'chart-reference-band',\n};\n\nexport {\n componentId,\n RECT_WIDTH,\n RECT_HEIGHT,\n TEXT_BASELINE,\n PADDING_VERTICAL,\n PADDING_HORIZONTAL,\n X_OFFSET,\n Y_OFFSET,\n X_AXIS_TEXT_BASELINE,\n X_AXIS_TICK_LINE_HEIGHT,\n X_AXIS_TICK_START_DY,\n X_AXIS_LABEL_GAP,\n X_AXIS_BOTTOM_PADDING,\n X_AXIS_LABEL_OFFSET,\n X_AXIS_LABEL_HEIGHT,\n LEGEND_MARGIN_TOP,\n MIN_WIDTH,\n MAX_WIDTH,\n DEFAULT_COLOR,\n REFERENCE_BAND_DEFAULT_COLOR,\n REFERENCE_BAND_FILL_OPACITY,\n REFERENCE_BAND_LOWER_CLASS,\n REFERENCE_BAND_UPPER_CLASS,\n REFERENCE_BAND_LAYER_CLASS,\n X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL,\n};\n"],"names":["RECT_WIDTH","RECT_HEIGHT","TEXT_BASELINE","PADDING_VERTICAL","PADDING_HORIZONTAL","X_OFFSET","Y_OFFSET","X_AXIS_TEXT_BASELINE","X_AXIS_TEXT_BASELINE_WITH_SECONDARY_LABEL","X_AXIS_TICK_LINE_HEIGHT","X_AXIS_TICK_START_DY","X_AXIS_LABEL_GAP","X_AXIS_BOTTOM_PADDING","X_AXIS_LABEL_OFFSET","X_AXIS_LABEL_HEIGHT","LEGEND_MARGIN_TOP","MIN_WIDTH","MAX_WIDTH","DEFAULT_COLOR","REFERENCE_BAND_DEFAULT_COLOR","REFERENCE_BAND_FILL_OPACITY","REFERENCE_BAND_LOWER_CLASS","REFERENCE_BAND_UPPER_CLASS","REFERENCE_BAND_LAYER_CLASS","componentId","chartLegend","chartXAxis","chartYAxis","chartCartesianGrid","chartTooltip","chartReferenceLine","chartReferenceBand"],"mappings":"AAAMA,IAAAA,UAAU,GAAG,GAAE;AACfC,IAAAA,WAAW,GAAG,GAAE;AAChBC,IAAAA,aAAa,GAAG,GAAE;;AAExB;AACMC,IAAAA,gBAAgB,GAAG,EAAC;AACpBC,IAAAA,kBAAkB,GAAG,EAAC;AAEtBC,IAAAA,QAAQ,GAAG,GAAE;AACbC,IAAAA,QAAQ,GAAG,KAAI;AACfC,IAAAA,oBAAoB,GAAG,GAAE;AACzBC,IAAAA,yCAAyC,GAAG,GAAE;;AAEpD;AACMC,IAAAA,uBAAuB,GAAG,KAAI;AAC9BC,IAAAA,oBAAoB,GAAG,EAAC;AACxBC,IAAAA,gBAAgB,GAAG,EAAC;AACpBC,IAAAA,qBAAqB,GAAG,EAAC;;AAE/B;AACMC,IAAAA,mBAAmB,GAAG,EAAC;AAC7B;AACMC,IAAAA,mBAAmB,GAAG,GAAE;;AAE9B;AACMC,IAAAA,iBAAiB,GAAG,EAAC;AAErBC,IAAAA,SAAS,GAAGhB,WAAU;AACtBiB,IAAAA,SAAS,GAAG,IAAG;AAEfC,IAAAA,aAAa,GAAG,4CAA2C;;AAEjE;AACA;AACMC,IAAAA,4BAA4B,GAAG,yCAAwC;AACvEC,IAAAA,2BAA2B,GAAG,IAAG;;AAEvC;AACA;AACMC,IAAAA,0BAA0B,GAAG,6BAA4B;AACzDC,IAAAA,0BAA0B,GAAG,6BAA4B;AAC/D;AACMC,IAAAA,0BAA0B,GAAG,6BAA4B;AAE/D,IAAMC,WAAW,GAAG;AAClBC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,UAAU,EAAE,cAAc;AAC1BC,EAAAA,UAAU,EAAE,cAAc;AAC1BC,EAAAA,kBAAkB,EAAE,sBAAsB;AAC1CC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,kBAAkB,EAAE,sBAAsB;AAC1CC,EAAAA,kBAAkB,EAAE,sBAAA;AACtB;;;;"}