@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
@@ -0,0 +1,195 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import React__default, { useMemo, isValidElement, useState, useLayoutEffect } from 'react';
3
+ import getIn from '../../../utils/lodashButBetter/get.js';
4
+ import '../../BladeProvider/index.js';
5
+ import '../../../utils/isValidAllowedChildren/index.js';
6
+ import { componentId, REFERENCE_BAND_DEFAULT_COLOR, REFERENCE_BAND_LOWER_CLASS, REFERENCE_BAND_UPPER_CLASS, REFERENCE_BAND_LAYER_CLASS, REFERENCE_BAND_FILL_OPACITY } from '../CommonChartComponents/tokens.js';
7
+ import { parsePathAnchors } from '../utils/nullBridgeUtils.js';
8
+ import { perLineBandClass, buildBandAreaPath } from '../utils/referenceBandUtils.js';
9
+ import { componentIds } from './componentIds.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+ import useTheme from '../../BladeProvider/useTheme.js';
12
+ import { getComponentId } from '../../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
13
+
14
+ var geomsEqual = function geomsEqual(a, b) {
15
+ return a.length === b.length && a.every(function (item, index) {
16
+ var other = b[index];
17
+ return item.id === other.id && item.d === other.d && item.fillColor === other.fillColor;
18
+ });
19
+ };
20
+
21
+ /**
22
+ * Manages the web-only reference-band rendering pipeline for `ChartLineWrapper`. Collects every band
23
+ * source — the standalone `<ChartReferenceBand>` plus each `<ChartLine>` that declares a range — and,
24
+ * after Recharts lays out the invisible bound lines, reads their pixel anchors from the rendered SVG
25
+ * and fills the area between each pair (via `buildBandAreaPath`), recomputing on DOM/resize changes.
26
+ * Per-line bands are color-matched to their line via `dataColorMapping`. This mirrors the null-bridge
27
+ * approach because Recharts v3 doesn't expose axis scales to `<Customized>`.
28
+ */
29
+ var useReferenceBand = function useReferenceBand(children, data, containerRef, dataColorMapping) {
30
+ var _useTheme = useTheme(),
31
+ theme = _useTheme.theme;
32
+ var bandSources = useMemo(function () {
33
+ var sources = [];
34
+ React__default.Children.forEach(children, function (child) {
35
+ if (! /*#__PURE__*/isValidElement(child)) return;
36
+ var id = getComponentId(child);
37
+
38
+ // Standalone <ChartReferenceBand> (single band not tied to a specific line).
39
+ if (id === componentId.chartReferenceBand) {
40
+ var _props$color, _props$name, _props$showLegend;
41
+ var props = child.props;
42
+ var colorToken = (_props$color = props.color) !== null && _props$color !== void 0 ? _props$color : REFERENCE_BAND_DEFAULT_COLOR;
43
+ sources.push({
44
+ id: 'standalone',
45
+ lowerClass: REFERENCE_BAND_LOWER_CLASS,
46
+ upperClass: REFERENCE_BAND_UPPER_CLASS,
47
+ name: (_props$name = props.name) !== null && _props$name !== void 0 ? _props$name : 'Reference band',
48
+ colorToken: colorToken,
49
+ fillColor: getIn(theme.colors, colorToken),
50
+ showLegend: (_props$showLegend = props.showLegend) !== null && _props$showLegend !== void 0 ? _props$showLegend : true
51
+ });
52
+ return;
53
+ }
54
+
55
+ // Per-line band: a <ChartLine> that declares both range bounds.
56
+ if (id === componentIds.ChartLine) {
57
+ var _ref, _props$rangeColor, _dataColorMapping$dat, _props$rangeName, _ref2, _props$showRangeLegen;
58
+ var _props = child.props;
59
+ var dataKey = _props.dataKey;
60
+ if (!dataKey || !_props.rangeLowerDataKey || !_props.rangeUpperDataKey) return;
61
+ // Color-match to the line: explicit rangeColor wins, else the line's resolved color.
62
+ var _colorToken = (_ref = (_props$rangeColor = _props.rangeColor) !== null && _props$rangeColor !== void 0 ? _props$rangeColor : (_dataColorMapping$dat = dataColorMapping[dataKey]) === null || _dataColorMapping$dat === void 0 ? void 0 : _dataColorMapping$dat.colorToken) !== null && _ref !== void 0 ? _ref : REFERENCE_BAND_DEFAULT_COLOR;
63
+ sources.push({
64
+ id: dataKey,
65
+ lowerClass: perLineBandClass(dataKey, 'lower'),
66
+ upperClass: perLineBandClass(dataKey, 'upper'),
67
+ name: (_props$rangeName = _props.rangeName) !== null && _props$rangeName !== void 0 ? _props$rangeName : 'Industry range',
68
+ colorToken: _colorToken,
69
+ fillColor: getIn(theme.colors, _colorToken),
70
+ showLegend: (_ref2 = (_props$showRangeLegen = _props.showRangeLegend) !== null && _props$showRangeLegen !== void 0 ? _props$showRangeLegen : _props.showLegend) !== null && _ref2 !== void 0 ? _ref2 : true
71
+ });
72
+ }
73
+ });
74
+ return sources;
75
+ }, [children, theme, dataColorMapping]);
76
+ var hasReferenceBand = bandSources.length > 0;
77
+ var _useState = useState([]),
78
+ _useState2 = _slicedToArray(_useState, 2),
79
+ bandGeoms = _useState2[0],
80
+ setBandGeoms = _useState2[1];
81
+
82
+ // Stable key of the sources' identity so the effect re-runs when bands are added/removed/recolored.
83
+ var sourceSignature = useMemo(function () {
84
+ return bandSources.map(function (s) {
85
+ return "".concat(s.id, ":").concat(s.fillColor);
86
+ }).join('|');
87
+ }, [bandSources]);
88
+ useLayoutEffect(function () {
89
+ var container = containerRef.current;
90
+ if (!container || !hasReferenceBand) {
91
+ setBandGeoms(function (prev) {
92
+ return prev.length === 0 ? prev : [];
93
+ });
94
+ return undefined;
95
+ }
96
+ var computeBands = function computeBands() {
97
+ var surface = container.querySelector('svg.recharts-surface');
98
+ if (!surface) return;
99
+ var next = [];
100
+ bandSources.forEach(function (source) {
101
+ var _upperCurve$getAttrib, _lowerCurve$getAttrib;
102
+ var upperCurve = surface.querySelector(".".concat(source.upperClass, " .recharts-line-curve"));
103
+ var lowerCurve = surface.querySelector(".".concat(source.lowerClass, " .recharts-line-curve"));
104
+ if (!upperCurve || !lowerCurve) return;
105
+ var upperAnchors = parsePathAnchors((_upperCurve$getAttrib = upperCurve.getAttribute('d')) !== null && _upperCurve$getAttrib !== void 0 ? _upperCurve$getAttrib : '');
106
+ var lowerAnchors = parsePathAnchors((_lowerCurve$getAttrib = lowerCurve.getAttribute('d')) !== null && _lowerCurve$getAttrib !== void 0 ? _lowerCurve$getAttrib : '');
107
+ var d = buildBandAreaPath(upperAnchors, lowerAnchors);
108
+ if (!d) return;
109
+ next.push({
110
+ id: source.id,
111
+ d: d,
112
+ fillColor: source.fillColor
113
+ });
114
+ });
115
+ setBandGeoms(function (prev) {
116
+ return geomsEqual(prev, next) ? prev : next;
117
+ });
118
+ };
119
+ computeBands();
120
+ var cleanups = [];
121
+ if (typeof MutationObserver !== 'undefined') {
122
+ var rafId = null;
123
+ var mutationObserver = new MutationObserver(function (mutations) {
124
+ // Ignore mutations from our own band layer to avoid a re-entrant loop.
125
+ var isBandMutation = mutations.some(function (m) {
126
+ return m.target instanceof Element && m.target.closest(".".concat(REFERENCE_BAND_LAYER_CLASS));
127
+ });
128
+ if (isBandMutation) return;
129
+ if (rafId !== null) cancelAnimationFrame(rafId);
130
+ rafId = requestAnimationFrame(function () {
131
+ rafId = null;
132
+ computeBands();
133
+ });
134
+ });
135
+ mutationObserver.observe(container, {
136
+ childList: true,
137
+ subtree: true,
138
+ attributes: true,
139
+ attributeFilter: ['d']
140
+ });
141
+ cleanups.push(function () {
142
+ mutationObserver.disconnect();
143
+ if (rafId !== null) cancelAnimationFrame(rafId);
144
+ });
145
+ }
146
+ if (typeof ResizeObserver !== 'undefined') {
147
+ var resizeObserver = new ResizeObserver(function () {
148
+ return computeBands();
149
+ });
150
+ resizeObserver.observe(container);
151
+ cleanups.push(function () {
152
+ return resizeObserver.disconnect();
153
+ });
154
+ }
155
+ return function () {
156
+ return cleanups.forEach(function (cleanup) {
157
+ return cleanup();
158
+ });
159
+ };
160
+ // eslint-disable-next-line react-hooks/exhaustive-deps
161
+ }, [data, hasReferenceBand, sourceSignature]);
162
+ var renderReferenceBands = function renderReferenceBands() {
163
+ if (!hasReferenceBand || bandGeoms.length === 0) return null;
164
+ return /*#__PURE__*/jsx("g", {
165
+ className: REFERENCE_BAND_LAYER_CLASS,
166
+ children: bandGeoms.map(function (band) {
167
+ return /*#__PURE__*/jsx("path", {
168
+ d: band.d,
169
+ fill: band.fillColor,
170
+ fillOpacity: REFERENCE_BAND_FILL_OPACITY,
171
+ stroke: "none"
172
+ }, "reference-band-".concat(band.id));
173
+ })
174
+ });
175
+ };
176
+ var referenceBandLegendInfos = useMemo(function () {
177
+ return bandSources.filter(function (source) {
178
+ return source.showLegend;
179
+ }).map(function (source) {
180
+ return {
181
+ name: source.name,
182
+ color: source.colorToken,
183
+ fillOpacity: REFERENCE_BAND_FILL_OPACITY
184
+ };
185
+ });
186
+ }, [bandSources]);
187
+ return {
188
+ hasReferenceBand: hasReferenceBand,
189
+ renderReferenceBands: renderReferenceBands,
190
+ referenceBandLegendInfos: referenceBandLegendInfos
191
+ };
192
+ };
193
+
194
+ export { useReferenceBand };
195
+ //# sourceMappingURL=useReferenceBand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReferenceBand.js","sources":["../../../../../../../src/components/Charts/LineChart/useReferenceBand.tsx"],"sourcesContent":["import React, { useState, useMemo, useLayoutEffect, isValidElement } from 'react';\nimport getIn from '~utils/lodashButBetter/get';\nimport { useTheme } from '~components/BladeProvider';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport type {\n ChartReferenceBandProps,\n ReferenceBandLegendInfo,\n DataColorMapping,\n} from '../CommonChartComponents/types';\nimport {\n componentId as commonComponentIds,\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} from '../CommonChartComponents/tokens';\nimport { parsePathAnchors } from '../utils/nullBridgeUtils';\nimport { buildBandAreaPath, perLineBandClass } from '../utils/referenceBandUtils';\nimport { componentIds } from './componentIds';\nimport type { ChartLineProps } from './types';\n\ntype ChartData = { [key: string]: unknown };\n\n/**\n * A single band to be drawn — either the standalone `<ChartReferenceBand>` or one derived from a\n * `<ChartLine>` that declares `rangeLowerDataKey` / `rangeUpperDataKey`. `lowerClass` / `upperClass`\n * are the classNames of the invisible bound lines whose rendered geometry we read.\n */\ntype BandSource = {\n id: string;\n lowerClass: string;\n upperClass: string;\n name: string;\n colorToken: ReferenceBandLegendInfo['color'];\n fillColor: string;\n showLegend: boolean;\n};\n\ntype BandGeometry = {\n id: string;\n d: string;\n fillColor: string;\n};\n\ntype UseReferenceBandResult = {\n hasReferenceBand: boolean;\n renderReferenceBands: () => React.ReactElement | null;\n referenceBandLegendInfos: ReferenceBandLegendInfo[];\n};\n\nconst geomsEqual = (a: BandGeometry[], b: BandGeometry[]): boolean =>\n a.length === b.length &&\n a.every((item, index) => {\n const other = b[index];\n return item.id === other.id && item.d === other.d && item.fillColor === other.fillColor;\n });\n\n/**\n * Manages the web-only reference-band rendering pipeline for `ChartLineWrapper`. Collects every band\n * source — the standalone `<ChartReferenceBand>` plus each `<ChartLine>` that declares a range — and,\n * after Recharts lays out the invisible bound lines, reads their pixel anchors from the rendered SVG\n * and fills the area between each pair (via `buildBandAreaPath`), recomputing on DOM/resize changes.\n * Per-line bands are color-matched to their line via `dataColorMapping`. This mirrors the null-bridge\n * approach because Recharts v3 doesn't expose axis scales to `<Customized>`.\n */\nconst useReferenceBand = (\n children: React.ReactNode,\n data: ChartData[],\n containerRef: React.RefObject<HTMLDivElement | null>,\n dataColorMapping: DataColorMapping,\n): UseReferenceBandResult => {\n const { theme } = useTheme();\n\n const bandSources = useMemo<BandSource[]>(() => {\n const sources: BandSource[] = [];\n\n React.Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n const id = getComponentId(child);\n\n // Standalone <ChartReferenceBand> (single band not tied to a specific line).\n if (id === commonComponentIds.chartReferenceBand) {\n const props = child.props as ChartReferenceBandProps;\n const colorToken =\n props.color ?? (REFERENCE_BAND_DEFAULT_COLOR as ReferenceBandLegendInfo['color']);\n sources.push({\n id: 'standalone',\n lowerClass: REFERENCE_BAND_LOWER_CLASS,\n upperClass: REFERENCE_BAND_UPPER_CLASS,\n name: props.name ?? 'Reference band',\n colorToken,\n fillColor: getIn(theme.colors, colorToken),\n showLegend: props.showLegend ?? true,\n });\n return;\n }\n\n // Per-line band: a <ChartLine> that declares both range bounds.\n if (id === componentIds.ChartLine) {\n const props = child.props as ChartLineProps;\n const dataKey = props.dataKey as string;\n if (!dataKey || !props.rangeLowerDataKey || !props.rangeUpperDataKey) return;\n // Color-match to the line: explicit rangeColor wins, else the line's resolved color.\n const colorToken =\n props.rangeColor ??\n dataColorMapping[dataKey]?.colorToken ??\n (REFERENCE_BAND_DEFAULT_COLOR as ReferenceBandLegendInfo['color']);\n sources.push({\n id: dataKey,\n lowerClass: perLineBandClass(dataKey, 'lower'),\n upperClass: perLineBandClass(dataKey, 'upper'),\n name: props.rangeName ?? 'Industry range',\n colorToken,\n fillColor: getIn(theme.colors, colorToken),\n showLegend: props.showRangeLegend ?? props.showLegend ?? true,\n });\n }\n });\n\n return sources;\n }, [children, theme, dataColorMapping]);\n\n const hasReferenceBand = bandSources.length > 0;\n\n const [bandGeoms, setBandGeoms] = useState<BandGeometry[]>([]);\n\n // Stable key of the sources' identity so the effect re-runs when bands are added/removed/recolored.\n const sourceSignature = useMemo(\n () => bandSources.map((s) => `${s.id}:${s.fillColor}`).join('|'),\n [bandSources],\n );\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container || !hasReferenceBand) {\n setBandGeoms((prev) => (prev.length === 0 ? prev : []));\n return undefined;\n }\n\n const computeBands = (): void => {\n const surface = container.querySelector('svg.recharts-surface');\n if (!surface) return;\n const next: BandGeometry[] = [];\n bandSources.forEach((source) => {\n const upperCurve = surface.querySelector<SVGPathElement>(\n `.${source.upperClass} .recharts-line-curve`,\n );\n const lowerCurve = surface.querySelector<SVGPathElement>(\n `.${source.lowerClass} .recharts-line-curve`,\n );\n if (!upperCurve || !lowerCurve) return;\n const upperAnchors = parsePathAnchors(upperCurve.getAttribute('d') ?? '');\n const lowerAnchors = parsePathAnchors(lowerCurve.getAttribute('d') ?? '');\n const d = buildBandAreaPath(upperAnchors, lowerAnchors);\n if (!d) return;\n next.push({\n id: source.id,\n d,\n fillColor: source.fillColor,\n });\n });\n setBandGeoms((prev) => (geomsEqual(prev, next) ? prev : next));\n };\n\n computeBands();\n\n const cleanups: Array<() => void> = [];\n if (typeof MutationObserver !== 'undefined') {\n let rafId: number | null = null;\n const mutationObserver = new MutationObserver((mutations) => {\n // Ignore mutations from our own band layer to avoid a re-entrant loop.\n const isBandMutation = mutations.some(\n (m) => m.target instanceof Element && m.target.closest(`.${REFERENCE_BAND_LAYER_CLASS}`),\n );\n if (isBandMutation) return;\n if (rafId !== null) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n rafId = null;\n computeBands();\n });\n });\n mutationObserver.observe(container, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['d'],\n });\n cleanups.push(() => {\n mutationObserver.disconnect();\n if (rafId !== null) cancelAnimationFrame(rafId);\n });\n }\n if (typeof ResizeObserver !== 'undefined') {\n const resizeObserver = new ResizeObserver(() => computeBands());\n resizeObserver.observe(container);\n cleanups.push(() => resizeObserver.disconnect());\n }\n return () => cleanups.forEach((cleanup) => cleanup());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data, hasReferenceBand, sourceSignature]);\n\n const renderReferenceBands = (): React.ReactElement | null => {\n if (!hasReferenceBand || bandGeoms.length === 0) return null;\n return (\n <g className={REFERENCE_BAND_LAYER_CLASS}>\n {bandGeoms.map((band) => (\n <path\n key={`reference-band-${band.id}`}\n d={band.d}\n fill={band.fillColor}\n fillOpacity={REFERENCE_BAND_FILL_OPACITY}\n stroke=\"none\"\n />\n ))}\n </g>\n );\n };\n\n const referenceBandLegendInfos = useMemo<ReferenceBandLegendInfo[]>(\n () =>\n bandSources\n .filter((source) => source.showLegend)\n .map((source) => ({\n name: source.name,\n color: source.colorToken,\n fillOpacity: REFERENCE_BAND_FILL_OPACITY,\n })),\n [bandSources],\n );\n\n return { hasReferenceBand, renderReferenceBands, referenceBandLegendInfos };\n};\n\nexport { useReferenceBand };\nexport type { UseReferenceBandResult, BandSource, BandGeometry };\n"],"names":["geomsEqual","a","b","length","every","item","index","other","id","d","fillColor","useReferenceBand","children","data","containerRef","dataColorMapping","_useTheme","useTheme","theme","bandSources","useMemo","sources","React","Children","forEach","child","isValidElement","getComponentId","commonComponentIds","chartReferenceBand","_props$color","_props$name","_props$showLegend","props","colorToken","color","REFERENCE_BAND_DEFAULT_COLOR","push","lowerClass","REFERENCE_BAND_LOWER_CLASS","upperClass","REFERENCE_BAND_UPPER_CLASS","name","getIn","colors","showLegend","componentIds","ChartLine","_ref","_props$rangeColor","_dataColorMapping$dat","_props$rangeName","_ref2","_props$showRangeLegen","dataKey","rangeLowerDataKey","rangeUpperDataKey","rangeColor","perLineBandClass","rangeName","showRangeLegend","hasReferenceBand","_useState","useState","_useState2","_slicedToArray","bandGeoms","setBandGeoms","sourceSignature","map","s","concat","join","useLayoutEffect","container","current","prev","undefined","computeBands","surface","querySelector","next","source","_upperCurve$getAttrib","_lowerCurve$getAttrib","upperCurve","lowerCurve","upperAnchors","parsePathAnchors","getAttribute","lowerAnchors","buildBandAreaPath","cleanups","MutationObserver","rafId","mutationObserver","mutations","isBandMutation","some","m","target","Element","closest","REFERENCE_BAND_LAYER_CLASS","cancelAnimationFrame","requestAnimationFrame","observe","childList","subtree","attributes","attributeFilter","disconnect","ResizeObserver","resizeObserver","cleanup","renderReferenceBands","_jsx","className","band","fill","fillOpacity","REFERENCE_BAND_FILL_OPACITY","stroke","referenceBandLegendInfos","filter"],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import _typeof from '@babel/runtime/helpers/typeof';
2
+
3
+ // A dataKey can be a string (possibly dot-nested, e.g. `metrics.sales`), a number,
4
+ // or a function — but the bridge utilities only handle the string/number form, which
5
+ // is what Recharts' path rendering uses. Keeping this local avoids coupling the shared
6
+ // utility to any specific chart component's types.
7
+
8
+ /**
9
+ * Monotone cubic interpolation using a weighted-harmonic tangent formula
10
+ * (`3(dx₁+dx₂) / ((dx₁+2dx₂)/m₁ + (2dx₁+dx₂)/m₂)`). Given the defined points
11
+ * `(xs[i], ys[i])` (xs ascending), it returns the interpolated `y` at `xq`. Used to densely
12
+ * sample the null-bridge onto the real curve so the dashed bridge follows a monotone curve
13
+ * across the gap instead of a straight chord.
14
+ *
15
+ * **Note on curve parity:** this shares its formula with `buildMonotonePath` (native
16
+ * LineChart), so on native LineChart the bridge follows the same curve as the solid line.
17
+ * It is *not* pixel-identical to d3-shape's `curveMonotoneX` (Steffen `slope3`, which Recharts
18
+ * uses on web) nor to `buildMonotone` (native AreaChart, arithmetic-mean + Fritsch–Carlson
19
+ * clip). The bridge endpoints always coincide with the solid anchors, so junctions are
20
+ * continuous; only the interior curvature of the dashed span can differ slightly on web and
21
+ * native AreaChart. Unifying all renderers on d3 `curveMonotoneX` is tracked as a follow-up.
22
+ */
23
+ var monotoneInterpolate = function monotoneInterpolate(xs, ys, xq) {
24
+ var n = xs.length;
25
+ if (n === 0) return 0;
26
+ if (n === 1) return ys[0];
27
+ var slope = [];
28
+ for (var i = 0; i < n - 1; i++) {
29
+ var dx = xs[i + 1] - xs[i];
30
+ slope[i] = dx === 0 ? 0 : (ys[i + 1] - ys[i]) / dx;
31
+ }
32
+
33
+ // Tangents at each point — weighted-harmonic formula, matching buildMonotonePath (native
34
+ // LineChart) so the dashed bridge follows the same curve as the solid line on that renderer.
35
+ // (Close to, but not pixel-identical to, d3's curveMonotoneX / Recharts on web.)
36
+ var tangent = new Array(n);
37
+ tangent[0] = slope[0];
38
+ tangent[n - 1] = slope[n - 2];
39
+ for (var _i = 1; _i < n - 1; _i++) {
40
+ var m1 = slope[_i - 1];
41
+ var m2 = slope[_i];
42
+ if (m1 * m2 <= 0) {
43
+ tangent[_i] = 0;
44
+ } else {
45
+ var dx1 = xs[_i] - xs[_i - 1];
46
+ var dx2 = xs[_i + 1] - xs[_i];
47
+ var common = dx1 + dx2;
48
+ tangent[_i] = 3 * common / ((common + dx2) / m1 + (common + dx1) / m2);
49
+ }
50
+ }
51
+
52
+ // Locate the interval containing xq and evaluate the Hermite basis.
53
+ var k = 0;
54
+ while (k < n - 2 && xq > xs[k + 1]) k++;
55
+ var h = xs[k + 1] - xs[k];
56
+ var t = h === 0 ? 0 : (xq - xs[k]) / h;
57
+ var t2 = t * t;
58
+ var t3 = t2 * t;
59
+ var h00 = 2 * t3 - 3 * t2 + 1;
60
+ var h10 = t3 - 2 * t2 + t;
61
+ var h01 = -2 * t3 + 3 * t2;
62
+ var h11 = t3 - t2;
63
+ return h00 * ys[k] + h10 * h * tangent[k] + h01 * ys[k + 1] + h11 * h * tangent[k + 1];
64
+ };
65
+
66
+ // Resolve a (possibly nested, e.g. `metrics.sales`) dataKey from a data row.
67
+ var resolveDataKeyValue = function resolveDataKeyValue(row, dataKey) {
68
+ var path = String(dataKey);
69
+ if (!path) return undefined;
70
+ return path.split('.').reduce(function (accumulator, key) {
71
+ if (accumulator && _typeof(accumulator) === 'object') {
72
+ return accumulator[key];
73
+ }
74
+ return undefined;
75
+ }, row);
76
+ };
77
+ // Extract the indices + numeric values of the non-null points for a dataKey.
78
+ var getDefinedNumericPoints = function getDefinedNumericPoints(data, dataKey) {
79
+ var indices = [];
80
+ var values = [];
81
+ data.forEach(function (row, index) {
82
+ var raw = resolveDataKeyValue(row, dataKey);
83
+ var numeric = raw === null || raw === undefined ? null : Number(raw);
84
+ if (numeric !== null && !Number.isNaN(numeric)) {
85
+ indices.push(index);
86
+ values.push(numeric);
87
+ }
88
+ });
89
+ return {
90
+ indices: indices,
91
+ values: values
92
+ };
93
+ };
94
+
95
+ // Positions (into the defined-points array) of adjacent defined points that have at least one null
96
+ // point between them, i.e. an interior gap that a null-bridge should span.
97
+ var getInteriorGaps = function getInteriorGaps(indices) {
98
+ var gaps = [];
99
+ for (var i = 0; i < indices.length - 1; i++) {
100
+ if (indices[i + 1] - indices[i] > 1) {
101
+ gaps.push({
102
+ from: i,
103
+ to: i + 1
104
+ });
105
+ }
106
+ }
107
+ return gaps;
108
+ };
109
+
110
+ /**
111
+ * Build a dashed null-bridge `d` path (dense polyline) across a single interior gap, sampling the
112
+ * monotone spline through the line's defined anchor points (in pixel space) so the bridge follows
113
+ * the same curve Recharts draws for a solid connect instead of a straight chord.
114
+ */
115
+ var buildBridgePathData = function buildBridgePathData(anchors, from, to) {
116
+ var xs = anchors.map(function (point) {
117
+ return point.x;
118
+ });
119
+ var ys = anchors.map(function (point) {
120
+ return point.y;
121
+ });
122
+ var start = anchors[from];
123
+ var end = anchors[to];
124
+ var sampleCount = Math.max(2, Math.round(Math.abs(end.x - start.x) / 3));
125
+ var pathData = '';
126
+ for (var step = 0; step <= sampleCount; step++) {
127
+ var t = step / sampleCount;
128
+ var x = start.x + (end.x - start.x) * t;
129
+ var y = monotoneInterpolate(xs, ys, x);
130
+ pathData += "".concat(step === 0 ? 'M' : 'L').concat(x, ",").concat(y, " ");
131
+ }
132
+ return pathData.trim();
133
+ };
134
+ /**
135
+ * Parse the anchor (data) points out of an SVG path `d` string as rendered by Recharts for a line.
136
+ * Handles `M`/`L` (linear) and `C` (monotone/natural cubic) commands — for a cubic the anchor is the
137
+ * final control pair. Restart commands (`M`, from a gapped/`connectNulls={false}` line) contribute
138
+ * their point too, so the result is the ordered list of the line's *defined* data points in pixel
139
+ * space. Used to derive the null-bridge geometry from Recharts' own computed coordinates.
140
+ *
141
+ * **Limitation:** This parser only handles `M`, `L`, and `C` SVG commands. For step-type curves
142
+ * (`type="step"`, `"stepBefore"`, `"stepAfter"`), d3-shape generates extra `L` commands for
143
+ * intermediate step points (e.g. `curveStepAfter` produces 2n-1 `L`/`M` commands for n defined
144
+ * data points). The anchor count will not match the defined data point count, so the
145
+ * `anchors.length !== indices.length` guard in the calling code will bail out and the dashed
146
+ * bridge will not render. `connectNullsStyle="dashed"` is therefore only supported for
147
+ * `type="monotone"` and `type="linear"`. For step-type lines, use `connectNullsStyle="solid"`
148
+ * (which uses Recharts' native `connectNulls` and is unaffected by this limitation).
149
+ */
150
+ var parsePathAnchors = function parsePathAnchors(pathData) {
151
+ var anchors = [];
152
+ var commandPattern = /([MLC])([^MLC]*)/g;
153
+ var match = commandPattern.exec(pathData);
154
+ while (match !== null) {
155
+ var _match$2$match;
156
+ var command = match[1];
157
+ var numbers = ((_match$2$match = match[2].match(/-?[\d.]+(?:e-?\d+)?/g)) !== null && _match$2$match !== void 0 ? _match$2$match : []).map(Number);
158
+ if (command === 'M' || command === 'L') {
159
+ if (numbers.length >= 2) anchors.push({
160
+ x: numbers[0],
161
+ y: numbers[1]
162
+ });
163
+ } else if (command === 'C') {
164
+ if (numbers.length >= 6) anchors.push({
165
+ x: numbers[4],
166
+ y: numbers[5]
167
+ });
168
+ }
169
+ match = commandPattern.exec(pathData);
170
+ }
171
+ return anchors;
172
+ };
173
+
174
+ export { buildBridgePathData, getDefinedNumericPoints, getInteriorGaps, monotoneInterpolate, parsePathAnchors, resolveDataKeyValue };
175
+ //# sourceMappingURL=nullBridgeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullBridgeUtils.js","sources":["../../../../../../../src/components/Charts/utils/nullBridgeUtils.ts"],"sourcesContent":["// A dataKey can be a string (possibly dot-nested, e.g. `metrics.sales`), a number,\n// or a function — but the bridge utilities only handle the string/number form, which\n// is what Recharts' path rendering uses. Keeping this local avoids coupling the shared\n// utility to any specific chart component's types.\ntype DataKey = string | number | ((row: Record<string, unknown>) => unknown);\n\n/**\n * Monotone cubic interpolation using a weighted-harmonic tangent formula\n * (`3(dx₁+dx₂) / ((dx₁+2dx₂)/m₁ + (2dx₁+dx₂)/m₂)`). Given the defined points\n * `(xs[i], ys[i])` (xs ascending), it returns the interpolated `y` at `xq`. Used to densely\n * sample the null-bridge onto the real curve so the dashed bridge follows a monotone curve\n * across the gap instead of a straight chord.\n *\n * **Note on curve parity:** this shares its formula with `buildMonotonePath` (native\n * LineChart), so on native LineChart the bridge follows the same curve as the solid line.\n * It is *not* pixel-identical to d3-shape's `curveMonotoneX` (Steffen `slope3`, which Recharts\n * uses on web) nor to `buildMonotone` (native AreaChart, arithmetic-mean + Fritsch–Carlson\n * clip). The bridge endpoints always coincide with the solid anchors, so junctions are\n * continuous; only the interior curvature of the dashed span can differ slightly on web and\n * native AreaChart. Unifying all renderers on d3 `curveMonotoneX` is tracked as a follow-up.\n */\nconst monotoneInterpolate = (xs: number[], ys: number[], xq: number): number => {\n const n = xs.length;\n if (n === 0) return 0;\n if (n === 1) return ys[0];\n\n const slope: number[] = [];\n for (let i = 0; i < n - 1; i++) {\n const dx = xs[i + 1] - xs[i];\n slope[i] = dx === 0 ? 0 : (ys[i + 1] - ys[i]) / dx;\n }\n\n // Tangents at each point — weighted-harmonic formula, matching buildMonotonePath (native\n // LineChart) so the dashed bridge follows the same curve as the solid line on that renderer.\n // (Close to, but not pixel-identical to, d3's curveMonotoneX / Recharts on web.)\n const tangent: number[] = new Array(n);\n tangent[0] = slope[0];\n tangent[n - 1] = slope[n - 2];\n for (let i = 1; i < n - 1; i++) {\n const m1 = slope[i - 1];\n const m2 = slope[i];\n if (m1 * m2 <= 0) {\n tangent[i] = 0;\n } else {\n const dx1 = xs[i] - xs[i - 1];\n const dx2 = xs[i + 1] - xs[i];\n const common = dx1 + dx2;\n tangent[i] = (3 * common) / ((common + dx2) / m1 + (common + dx1) / m2);\n }\n }\n\n // Locate the interval containing xq and evaluate the Hermite basis.\n let k = 0;\n while (k < n - 2 && xq > xs[k + 1]) k++;\n const h = xs[k + 1] - xs[k];\n const t = h === 0 ? 0 : (xq - xs[k]) / h;\n const t2 = t * t;\n const t3 = t2 * t;\n const h00 = 2 * t3 - 3 * t2 + 1;\n const h10 = t3 - 2 * t2 + t;\n const h01 = -2 * t3 + 3 * t2;\n const h11 = t3 - t2;\n\n return h00 * ys[k] + h10 * h * tangent[k] + h01 * ys[k + 1] + h11 * h * tangent[k + 1];\n};\n\n// Resolve a (possibly nested, e.g. `metrics.sales`) dataKey from a data row.\nconst resolveDataKeyValue = (row: Record<string, unknown>, dataKey: DataKey): unknown => {\n const path = String(dataKey);\n if (!path) return undefined;\n return path.split('.').reduce<unknown>((accumulator, key) => {\n if (accumulator && typeof accumulator === 'object') {\n return (accumulator as Record<string, unknown>)[key];\n }\n return undefined;\n }, row);\n};\n\ntype DefinedPoints = { indices: number[]; values: number[] };\n\n// Extract the indices + numeric values of the non-null points for a dataKey.\nconst getDefinedNumericPoints = (\n data: Array<Record<string, unknown>>,\n dataKey: DataKey,\n): DefinedPoints => {\n const indices: number[] = [];\n const values: number[] = [];\n data.forEach((row, index) => {\n const raw = resolveDataKeyValue(row, dataKey);\n const numeric = raw === null || raw === undefined ? null : Number(raw);\n if (numeric !== null && !Number.isNaN(numeric)) {\n indices.push(index);\n values.push(numeric);\n }\n });\n return { indices, values };\n};\n\n// Positions (into the defined-points array) of adjacent defined points that have at least one null\n// point between them, i.e. an interior gap that a null-bridge should span.\nconst getInteriorGaps = (indices: number[]): Array<{ from: number; to: number }> => {\n const gaps: Array<{ from: number; to: number }> = [];\n for (let i = 0; i < indices.length - 1; i++) {\n if (indices[i + 1] - indices[i] > 1) {\n gaps.push({ from: i, to: i + 1 });\n }\n }\n return gaps;\n};\n\n/**\n * Build a dashed null-bridge `d` path (dense polyline) across a single interior gap, sampling the\n * monotone spline through the line's defined anchor points (in pixel space) so the bridge follows\n * the same curve Recharts draws for a solid connect instead of a straight chord.\n */\nconst buildBridgePathData = (anchors: PixelPoint[], from: number, to: number): string => {\n const xs = anchors.map((point) => point.x);\n const ys = anchors.map((point) => point.y);\n const start = anchors[from];\n const end = anchors[to];\n const sampleCount = Math.max(2, Math.round(Math.abs(end.x - start.x) / 3));\n let pathData = '';\n for (let step = 0; step <= sampleCount; step++) {\n const t = step / sampleCount;\n const x = start.x + (end.x - start.x) * t;\n const y = monotoneInterpolate(xs, ys, x);\n pathData += `${step === 0 ? 'M' : 'L'}${x},${y} `;\n }\n return pathData.trim();\n};\n\ntype PixelPoint = { x: number; y: number };\n\n/**\n * Parse the anchor (data) points out of an SVG path `d` string as rendered by Recharts for a line.\n * Handles `M`/`L` (linear) and `C` (monotone/natural cubic) commands — for a cubic the anchor is the\n * final control pair. Restart commands (`M`, from a gapped/`connectNulls={false}` line) contribute\n * their point too, so the result is the ordered list of the line's *defined* data points in pixel\n * space. Used to derive the null-bridge geometry from Recharts' own computed coordinates.\n *\n * **Limitation:** This parser only handles `M`, `L`, and `C` SVG commands. For step-type curves\n * (`type=\"step\"`, `\"stepBefore\"`, `\"stepAfter\"`), d3-shape generates extra `L` commands for\n * intermediate step points (e.g. `curveStepAfter` produces 2n-1 `L`/`M` commands for n defined\n * data points). The anchor count will not match the defined data point count, so the\n * `anchors.length !== indices.length` guard in the calling code will bail out and the dashed\n * bridge will not render. `connectNullsStyle=\"dashed\"` is therefore only supported for\n * `type=\"monotone\"` and `type=\"linear\"`. For step-type lines, use `connectNullsStyle=\"solid\"`\n * (which uses Recharts' native `connectNulls` and is unaffected by this limitation).\n */\nconst parsePathAnchors = (pathData: string): PixelPoint[] => {\n const anchors: PixelPoint[] = [];\n const commandPattern = /([MLC])([^MLC]*)/g;\n let match: RegExpExecArray | null = commandPattern.exec(pathData);\n while (match !== null) {\n const command = match[1];\n const numbers = (match[2].match(/-?[\\d.]+(?:e-?\\d+)?/g) ?? []).map(Number);\n if (command === 'M' || command === 'L') {\n if (numbers.length >= 2) anchors.push({ x: numbers[0], y: numbers[1] });\n } else if (command === 'C') {\n if (numbers.length >= 6) anchors.push({ x: numbers[4], y: numbers[5] });\n }\n match = commandPattern.exec(pathData);\n }\n return anchors;\n};\n\nexport {\n monotoneInterpolate,\n resolveDataKeyValue,\n getDefinedNumericPoints,\n getInteriorGaps,\n parsePathAnchors,\n buildBridgePathData,\n};\nexport type { DefinedPoints, PixelPoint, DataKey };\n"],"names":["monotoneInterpolate","xs","ys","xq","n","length","slope","i","dx","tangent","Array","m1","m2","dx1","dx2","common","k","h","t","t2","t3","h00","h10","h01","h11","resolveDataKeyValue","row","dataKey","path","String","undefined","split","reduce","accumulator","key","_typeof","getDefinedNumericPoints","data","indices","values","forEach","index","raw","numeric","Number","isNaN","push","getInteriorGaps","gaps","from","to","buildBridgePathData","anchors","map","point","x","y","start","end","sampleCount","Math","max","round","abs","pathData","step","concat","trim","parsePathAnchors","commandPattern","match","exec","_match$2$match","command","numbers"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { monotoneInterpolate } from './nullBridgeUtils.js';
2
+
3
+ /**
4
+ * Build a closed SVG `d` path for a reference band, given the upper and lower bound points in
5
+ * pixel space (both ordered left→right, x ascending). The top edge is sampled left→right and the
6
+ * bottom edge right→left along the monotone spline through each bound's anchors, so the band's
7
+ * edges follow the same curve the trend line does instead of straight chords, then closed with `Z`.
8
+ *
9
+ * Shared by web (anchors parsed from Recharts' rendered bound curves via `parsePathAnchors`) and
10
+ * native (points computed directly from the chart scales), so the band geometry matches on both.
11
+ */
12
+ var buildBandAreaPath = function buildBandAreaPath(upper, lower) {
13
+ if (upper.length < 2 || lower.length < 2) return '';
14
+ var upperXs = upper.map(function (point) {
15
+ return point.x;
16
+ });
17
+ var upperYs = upper.map(function (point) {
18
+ return point.y;
19
+ });
20
+ var lowerXs = lower.map(function (point) {
21
+ return point.x;
22
+ });
23
+ var lowerYs = lower.map(function (point) {
24
+ return point.y;
25
+ });
26
+ var startX = upper[0].x;
27
+ var endX = upper[upper.length - 1].x;
28
+ var sampleCount = Math.max(2, Math.round(Math.abs(endX - startX) / 3));
29
+ var pathData = '';
30
+ // Top edge: left → right along the upper bound.
31
+ for (var step = 0; step <= sampleCount; step++) {
32
+ var t = step / sampleCount;
33
+ var x = startX + (endX - startX) * t;
34
+ var y = monotoneInterpolate(upperXs, upperYs, x);
35
+ pathData += "".concat(step === 0 ? 'M' : 'L').concat(x, ",").concat(y, " ");
36
+ }
37
+ // Bottom edge: right → left along the lower bound, then close.
38
+ for (var _step = sampleCount; _step >= 0; _step--) {
39
+ var _t = _step / sampleCount;
40
+ var _x = startX + (endX - startX) * _t;
41
+ var _y = monotoneInterpolate(lowerXs, lowerYs, _x);
42
+ pathData += "L".concat(_x, ",").concat(_y, " ");
43
+ }
44
+ pathData += 'Z';
45
+ return pathData.trim();
46
+ };
47
+
48
+ /**
49
+ * Sanitize a dataKey into a CSS-class-safe token (nested keys like `metrics.sales` contain dots,
50
+ * which are invalid in a single className). Shared by the ChartLine bound-line renderer and the
51
+ * reference-band hook so both derive the same className for a given line.
52
+ */
53
+ var sanitizeBandKey = function sanitizeBandKey(dataKey) {
54
+ return dataKey.replace(/[^a-zA-Z0-9_-]/g, '-');
55
+ };
56
+
57
+ /**
58
+ * className applied to a per-line band's invisible lower/upper bound line, so the reference-band
59
+ * hook can locate the rendered curve in the SVG. Kept in sync between the renderer and the reader.
60
+ */
61
+ var perLineBandClass = function perLineBandClass(dataKey, edge) {
62
+ return "blade-reference-band-".concat(sanitizeBandKey(dataKey), "-").concat(edge);
63
+ };
64
+
65
+ export { buildBandAreaPath, perLineBandClass, sanitizeBandKey };
66
+ //# sourceMappingURL=referenceBandUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referenceBandUtils.js","sources":["../../../../../../../src/components/Charts/utils/referenceBandUtils.ts"],"sourcesContent":["import { monotoneInterpolate } from './nullBridgeUtils';\nimport type { PixelPoint } from './nullBridgeUtils';\n\n/**\n * Build a closed SVG `d` path for a reference band, given the upper and lower bound points in\n * pixel space (both ordered left→right, x ascending). The top edge is sampled left→right and the\n * bottom edge right→left along the monotone spline through each bound's anchors, so the band's\n * edges follow the same curve the trend line does instead of straight chords, then closed with `Z`.\n *\n * Shared by web (anchors parsed from Recharts' rendered bound curves via `parsePathAnchors`) and\n * native (points computed directly from the chart scales), so the band geometry matches on both.\n */\nconst buildBandAreaPath = (upper: PixelPoint[], lower: PixelPoint[]): string => {\n if (upper.length < 2 || lower.length < 2) return '';\n\n const upperXs = upper.map((point) => point.x);\n const upperYs = upper.map((point) => point.y);\n const lowerXs = lower.map((point) => point.x);\n const lowerYs = lower.map((point) => point.y);\n\n const startX = upper[0].x;\n const endX = upper[upper.length - 1].x;\n const sampleCount = Math.max(2, Math.round(Math.abs(endX - startX) / 3));\n\n let pathData = '';\n // Top edge: left → right along the upper bound.\n for (let step = 0; step <= sampleCount; step++) {\n const t = step / sampleCount;\n const x = startX + (endX - startX) * t;\n const y = monotoneInterpolate(upperXs, upperYs, x);\n pathData += `${step === 0 ? 'M' : 'L'}${x},${y} `;\n }\n // Bottom edge: right → left along the lower bound, then close.\n for (let step = sampleCount; step >= 0; step--) {\n const t = step / sampleCount;\n const x = startX + (endX - startX) * t;\n const y = monotoneInterpolate(lowerXs, lowerYs, x);\n pathData += `L${x},${y} `;\n }\n pathData += 'Z';\n return pathData.trim();\n};\n\n/**\n * Sanitize a dataKey into a CSS-class-safe token (nested keys like `metrics.sales` contain dots,\n * which are invalid in a single className). Shared by the ChartLine bound-line renderer and the\n * reference-band hook so both derive the same className for a given line.\n */\nconst sanitizeBandKey = (dataKey: string): string => dataKey.replace(/[^a-zA-Z0-9_-]/g, '-');\n\n/**\n * className applied to a per-line band's invisible lower/upper bound line, so the reference-band\n * hook can locate the rendered curve in the SVG. Kept in sync between the renderer and the reader.\n */\nconst perLineBandClass = (dataKey: string, edge: 'lower' | 'upper'): string =>\n `blade-reference-band-${sanitizeBandKey(dataKey)}-${edge}`;\n\nexport { buildBandAreaPath, sanitizeBandKey, perLineBandClass };\n"],"names":["buildBandAreaPath","upper","lower","length","upperXs","map","point","x","upperYs","y","lowerXs","lowerYs","startX","endX","sampleCount","Math","max","round","abs","pathData","step","t","monotoneInterpolate","concat","trim","sanitizeBandKey","dataKey","replace","perLineBandClass","edge"],"mappings":"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"}
@@ -3,10 +3,11 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
4
  import React__default, { useState, useRef, useEffect, useCallback } from 'react';
5
5
  import styled from 'styled-components';
6
- import { StyledCounterInput } from './StyledCounterInput.js';
7
- import { COUNTER_INPUT_TOKEN, COUNTER_INPUT_ICON_SIZE_MAP } from './token.js';
6
+ import { StyledCounterInput, StyledNumberWrapper } from './StyledCounterInput.js';
7
+ import { COUNTER_INPUT_TOKEN, COUNTER_INPUT_SIZE_TO_TEXT_SIZE, COUNTER_INPUT_ICON_SIZE_MAP } from './token.js';
8
8
  import { CounterInputProvider } from './CounterInputContext.js';
9
9
  import '../Input/BaseInput/index.js';
10
+ import { baseInputCounterInputPaddingTokens } from '../Input/BaseInput/baseInputTokens.js';
10
11
  import '../../utils/metaAttribute/index.js';
11
12
  import '../Box/styledProps/index.js';
12
13
  import '../../utils/assignWithoutSideEffects/index.js';
@@ -24,6 +25,7 @@ import '../ProgressBar/index.js';
24
25
  import getIn from '../../utils/lodashButBetter/get.js';
25
26
  import { mergeRefs } from '../../utils/useMergeRefs.js';
26
27
  import '../../utils/getFocusRingStyles/index.js';
28
+ import { getTextProps } from '../Typography/Text/Text.js';
27
29
  import { jsx, jsxs } from 'react/jsx-runtime';
28
30
  import { makeBorderSize } from '../../utils/makeBorderSize/makeBorderSize.js';
29
31
  import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
@@ -32,6 +34,7 @@ import { makeMotionTime } from '../../utils/makeMotionTime/makeMotionTime.web.js
32
34
  import { getFocusRingStyles } from '../../utils/getFocusRingStyles/getFocusRingStyles.web.js';
33
35
  import useTheme from '../BladeProvider/useTheme.js';
34
36
  import { useBreakpoint } from '../../utils/useBreakpoint/useBreakpoint.js';
37
+ import { makeTypographySize } from '../../utils/makeTypographySize/makeTypographySize.web.js';
35
38
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
36
39
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
37
40
  import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
@@ -142,6 +145,22 @@ var _CounterInput = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref)
142
145
  var lastActionRef = useRef(null);
143
146
  var previousValueRef = useRef(internalValue);
144
147
  var containerRef = useRef(null);
148
+ var rawCounterValue = internalValue !== null && internalValue !== void 0 ? internalValue : min;
149
+ var counterValueDigitCount = Math.max(2, String(Math.abs(rawCounterValue)).length) + (rawCounterValue < 0 ? 1 : 0);
150
+ var _getTextProps = getTextProps({
151
+ variant: 'body',
152
+ size: COUNTER_INPUT_SIZE_TO_TEXT_SIZE[size],
153
+ weight: 'semibold'
154
+ }),
155
+ _getTextProps$fontSiz = _getTextProps.fontSize,
156
+ counterInputFontSizeToken = _getTextProps$fontSiz === void 0 ? 100 : _getTextProps$fontSiz;
157
+ var counterInputHorizontalPadding = theme.spacing[baseInputCounterInputPaddingTokens.left[size]] + theme.spacing[baseInputCounterInputPaddingTokens.right[size]];
158
+ var counterInputFieldWidth = "calc(".concat(counterValueDigitCount, "ch + ").concat(counterInputHorizontalPadding, "px)");
159
+ var counterInputTextStyle = {
160
+ fontFamily: theme.typography.fonts.family.text,
161
+ fontSize: makeTypographySize(theme.typography.fonts.size[counterInputFontSizeToken]),
162
+ fontWeight: theme.typography.fonts.weight.semibold
163
+ };
145
164
 
146
165
  // Track Tab navigation to show focus ring only on keyboard navigation (not mouse clicks)
147
166
  // Note: :focus-visible doesn't work for text inputs - shows ring on both Tab and click
@@ -251,7 +270,8 @@ var _CounterInput = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref)
251
270
  alignItems: "center",
252
271
  flexDirection: "column",
253
272
  backgroundColor: isLoading || isDisabled ? emphasisTokens.loadingOrDisabledBgColor : emphasisTokens.backgroundColor,
254
- width: "".concat(COUNTER_INPUT_TOKEN.width[size], "px"),
273
+ width: "fit-content",
274
+ minWidth: "".concat(COUNTER_INPUT_TOKEN.width[size], "px"),
255
275
  height: "".concat(COUNTER_INPUT_TOKEN.height[size], "px"),
256
276
  borderRadius: COUNTER_INPUT_TOKEN.containerBorderRadius[size],
257
277
  borderWidth: "thin",
@@ -276,8 +296,12 @@ var _CounterInput = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref)
276
296
  size: COUNTER_INPUT_ICON_SIZE_MAP[size],
277
297
  color: "currentColor"
278
298
  })
279
- }), /*#__PURE__*/jsx(BaseBox, {
280
- className: animationClass,
299
+ }), /*#__PURE__*/jsx(StyledNumberWrapper, {
300
+ className: "__blade-counter-input-number-wrapper ".concat(animationClass).trim(),
301
+ $width: counterInputFieldWidth,
302
+ $fontFamily: counterInputTextStyle.fontFamily,
303
+ $fontSize: counterInputTextStyle.fontSize,
304
+ $fontWeight: counterInputTextStyle.fontWeight,
281
305
  children: /*#__PURE__*/jsx(BaseInput, {
282
306
  ref: ref,
283
307
  id: inputId,