@razorpay/blade 12.63.0 → 12.65.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 (204) hide show
  1. package/build/lib/native/components/Badge/Badge.js +1 -1
  2. package/build/lib/native/components/Badge/Badge.js.map +1 -1
  3. package/build/lib/native/components/Badge/badgeTokens.js +1 -1
  4. package/build/lib/native/components/Badge/badgeTokens.js.map +1 -1
  5. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +6 -0
  6. package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
  7. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +4 -0
  8. package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -0
  9. package/build/lib/native/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  10. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  11. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  12. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  13. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +1 -1
  14. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  15. package/build/lib/native/components/QuickFilters/QuickFilter.js +1 -1
  16. package/build/lib/native/components/QuickFilters/QuickFilter.js.map +1 -1
  17. package/build/lib/native/components/Radio/Radio.js +1 -1
  18. package/build/lib/native/components/Radio/Radio.js.map +1 -1
  19. package/build/lib/native/components/Table/TableContext.js +1 -1
  20. package/build/lib/native/components/Table/TableContext.js.map +1 -1
  21. package/build/lib/native/components/Table/tokens.js +1 -1
  22. package/build/lib/native/components/Table/tokens.js.map +1 -1
  23. package/build/lib/native/components/index.js +2 -0
  24. package/build/lib/native/components/index.js.map +1 -1
  25. package/build/lib/native/tokens/global/colors.js +1 -1
  26. package/build/lib/native/tokens/global/colors.js.map +1 -1
  27. package/build/lib/native/tokens/global/size.js +1 -1
  28. package/build/lib/native/tokens/global/size.js.map +1 -1
  29. package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
  30. package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
  31. package/build/lib/native/tokens/theme/theme.js.map +1 -1
  32. package/build/lib/web/development/components/Badge/Badge.js +4 -0
  33. package/build/lib/web/development/components/Badge/Badge.js.map +1 -1
  34. package/build/lib/web/development/components/Badge/badgeTokens.js +4 -0
  35. package/build/lib/web/development/components/Badge/badgeTokens.js.map +1 -1
  36. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +140 -38
  37. package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  38. package/build/lib/web/development/components/Charts/BarChart/BarChart.web.js +121 -57
  39. package/build/lib/web/development/components/Charts/BarChart/BarChart.web.js.map +1 -1
  40. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +145 -92
  41. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  42. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +15 -0
  43. package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
  44. package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +2 -0
  45. package/build/lib/web/development/components/Charts/CommonChartComponents/index.js.map +1 -1
  46. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +2 -1
  47. package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  48. package/build/lib/web/development/components/Charts/DonutChart/DonutChart.web.js +202 -69
  49. package/build/lib/web/development/components/Charts/DonutChart/DonutChart.web.js.map +1 -1
  50. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +84 -32
  51. package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
  52. package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js +33 -0
  53. package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js.map +1 -0
  54. package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/index.js +2 -0
  55. package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/index.js.map +1 -0
  56. package/build/lib/web/development/components/Charts/utils/getHighestColorInRange.js +53 -0
  57. package/build/lib/web/development/components/Charts/utils/getHighestColorInRange.js.map +1 -0
  58. package/build/lib/web/development/components/Charts/utils/index.js +5 -0
  59. package/build/lib/web/development/components/Charts/utils/index.js.map +1 -1
  60. package/build/lib/web/development/components/Charts/utils/isSequentialColor.js +35 -0
  61. package/build/lib/web/development/components/Charts/utils/isSequentialColor.js.map +1 -0
  62. package/build/lib/web/development/components/Charts/utils/sanitizeString/index.js +2 -0
  63. package/build/lib/web/development/components/Charts/utils/sanitizeString/index.js.map +1 -0
  64. package/build/lib/web/development/components/Charts/utils/sanitizeString/sanitizeString.js +30 -0
  65. package/build/lib/web/development/components/Charts/utils/sanitizeString/sanitizeString.js.map +1 -0
  66. package/build/lib/web/development/components/Charts/utils/tokens.js +7 -0
  67. package/build/lib/web/development/components/Charts/utils/tokens.js.map +1 -0
  68. package/build/lib/web/development/components/Charts/utils/useColorTheme.js +32 -11
  69. package/build/lib/web/development/components/Charts/utils/useColorTheme.js.map +1 -1
  70. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +3 -1
  71. package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  72. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +8 -9
  73. package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  74. package/build/lib/web/development/components/FilterChip/tokens.js +1 -1
  75. package/build/lib/web/development/components/FilterChip/tokens.js.map +1 -1
  76. package/build/lib/web/development/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  77. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  78. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +2 -0
  79. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  80. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +11 -0
  81. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  82. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js +1 -0
  83. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  84. package/build/lib/web/development/components/ListView/ListViewFilters.web.js +13 -102
  85. package/build/lib/web/development/components/ListView/ListViewFilters.web.js.map +1 -1
  86. package/build/lib/web/development/components/QuickFilters/QuickFilter.js +2 -1
  87. package/build/lib/web/development/components/QuickFilters/QuickFilter.js.map +1 -1
  88. package/build/lib/web/development/components/Radio/Radio.js +4 -2
  89. package/build/lib/web/development/components/Radio/Radio.js.map +1 -1
  90. package/build/lib/web/development/components/Table/Table.web.js +3 -1
  91. package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
  92. package/build/lib/web/development/components/Table/TableBody.web.js +2 -1
  93. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  94. package/build/lib/web/development/components/Table/TableContext.js +2 -1
  95. package/build/lib/web/development/components/Table/TableContext.js.map +1 -1
  96. package/build/lib/web/development/components/Table/TableFooter.web.js +2 -1
  97. package/build/lib/web/development/components/Table/TableFooter.web.js.map +1 -1
  98. package/build/lib/web/development/components/Table/TableHeader.web.js +78 -68
  99. package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
  100. package/build/lib/web/development/components/Table/TablePagination.web.js +5 -2
  101. package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
  102. package/build/lib/web/development/components/Table/TableToolbar.web.js +15 -13
  103. package/build/lib/web/development/components/Table/TableToolbar.web.js.map +1 -1
  104. package/build/lib/web/development/components/Table/tokens.js +11 -8
  105. package/build/lib/web/development/components/Table/tokens.js.map +1 -1
  106. package/build/lib/web/development/components/index.js +2 -0
  107. package/build/lib/web/development/components/index.js.map +1 -1
  108. package/build/lib/web/development/tokens/global/colors.js +48 -48
  109. package/build/lib/web/development/tokens/global/colors.js.map +1 -1
  110. package/build/lib/web/development/tokens/global/size.js +2 -0
  111. package/build/lib/web/development/tokens/global/size.js.map +1 -1
  112. package/build/lib/web/development/tokens/theme/bladeTheme.js +139 -111
  113. package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
  114. package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
  115. package/build/lib/web/production/components/Badge/Badge.js +4 -0
  116. package/build/lib/web/production/components/Badge/Badge.js.map +1 -1
  117. package/build/lib/web/production/components/Badge/badgeTokens.js +4 -0
  118. package/build/lib/web/production/components/Badge/badgeTokens.js.map +1 -1
  119. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +140 -38
  120. package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
  121. package/build/lib/web/production/components/Charts/BarChart/BarChart.web.js +121 -57
  122. package/build/lib/web/production/components/Charts/BarChart/BarChart.web.js.map +1 -1
  123. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +145 -92
  124. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
  125. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +15 -0
  126. package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
  127. package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +2 -0
  128. package/build/lib/web/production/components/Charts/CommonChartComponents/index.js.map +1 -1
  129. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +2 -1
  130. package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
  131. package/build/lib/web/production/components/Charts/DonutChart/DonutChart.web.js +202 -69
  132. package/build/lib/web/production/components/Charts/DonutChart/DonutChart.web.js.map +1 -1
  133. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +84 -32
  134. package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
  135. package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js +33 -0
  136. package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js.map +1 -0
  137. package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/index.js +2 -0
  138. package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/index.js.map +1 -0
  139. package/build/lib/web/production/components/Charts/utils/getHighestColorInRange.js +53 -0
  140. package/build/lib/web/production/components/Charts/utils/getHighestColorInRange.js.map +1 -0
  141. package/build/lib/web/production/components/Charts/utils/index.js +5 -0
  142. package/build/lib/web/production/components/Charts/utils/index.js.map +1 -1
  143. package/build/lib/web/production/components/Charts/utils/isSequentialColor.js +35 -0
  144. package/build/lib/web/production/components/Charts/utils/isSequentialColor.js.map +1 -0
  145. package/build/lib/web/production/components/Charts/utils/sanitizeString/index.js +2 -0
  146. package/build/lib/web/production/components/Charts/utils/sanitizeString/index.js.map +1 -0
  147. package/build/lib/web/production/components/Charts/utils/sanitizeString/sanitizeString.js +30 -0
  148. package/build/lib/web/production/components/Charts/utils/sanitizeString/sanitizeString.js.map +1 -0
  149. package/build/lib/web/production/components/Charts/utils/tokens.js +7 -0
  150. package/build/lib/web/production/components/Charts/utils/tokens.js.map +1 -0
  151. package/build/lib/web/production/components/Charts/utils/useColorTheme.js +32 -11
  152. package/build/lib/web/production/components/Charts/utils/useColorTheme.js.map +1 -1
  153. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +3 -1
  154. package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
  155. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +8 -9
  156. package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
  157. package/build/lib/web/production/components/FilterChip/tokens.js +1 -1
  158. package/build/lib/web/production/components/FilterChip/tokens.js.map +1 -1
  159. package/build/lib/web/production/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
  160. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  161. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +2 -0
  162. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  163. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +11 -0
  164. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  165. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js +1 -0
  166. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  167. package/build/lib/web/production/components/ListView/ListViewFilters.web.js +13 -102
  168. package/build/lib/web/production/components/ListView/ListViewFilters.web.js.map +1 -1
  169. package/build/lib/web/production/components/QuickFilters/QuickFilter.js +2 -1
  170. package/build/lib/web/production/components/QuickFilters/QuickFilter.js.map +1 -1
  171. package/build/lib/web/production/components/Radio/Radio.js +4 -2
  172. package/build/lib/web/production/components/Radio/Radio.js.map +1 -1
  173. package/build/lib/web/production/components/Table/Table.web.js +3 -1
  174. package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
  175. package/build/lib/web/production/components/Table/TableBody.web.js +2 -1
  176. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  177. package/build/lib/web/production/components/Table/TableContext.js +2 -1
  178. package/build/lib/web/production/components/Table/TableContext.js.map +1 -1
  179. package/build/lib/web/production/components/Table/TableFooter.web.js +2 -1
  180. package/build/lib/web/production/components/Table/TableFooter.web.js.map +1 -1
  181. package/build/lib/web/production/components/Table/TableHeader.web.js +78 -68
  182. package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
  183. package/build/lib/web/production/components/Table/TablePagination.web.js +5 -2
  184. package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
  185. package/build/lib/web/production/components/Table/TableToolbar.web.js +15 -13
  186. package/build/lib/web/production/components/Table/TableToolbar.web.js.map +1 -1
  187. package/build/lib/web/production/components/Table/tokens.js +11 -8
  188. package/build/lib/web/production/components/Table/tokens.js.map +1 -1
  189. package/build/lib/web/production/components/index.js +2 -0
  190. package/build/lib/web/production/components/index.js.map +1 -1
  191. package/build/lib/web/production/tokens/global/colors.js +48 -48
  192. package/build/lib/web/production/tokens/global/colors.js.map +1 -1
  193. package/build/lib/web/production/tokens/global/size.js +2 -0
  194. package/build/lib/web/production/tokens/global/size.js.map +1 -1
  195. package/build/lib/web/production/tokens/theme/bladeTheme.js +139 -111
  196. package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
  197. package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
  198. package/build/types/components/index.d.ts +109 -23
  199. package/build/types/components/index.native.d.ts +106 -20
  200. package/build/types/tokens/index.d.ts +8 -6
  201. package/build/types/tokens/index.native.d.ts +8 -6
  202. package/build/types/utils/index.d.ts +29 -6
  203. package/build/types/utils/index.native.d.ts +29 -6
  204. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sources":["../../../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import React from 'react';\nimport type { ReactElement } from 'react';\nimport type { StyledBadgeProps } from './types';\nimport { StyledBadge } from './StyledBadge';\nimport { iconPadding, iconSize, horizontalPadding, badgeHeight } from './badgeTokens';\nimport type { IconComponent, IconProps } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { FeedbackColors, SubtleOrIntense } from '~tokens/theme/theme';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport { Text } from '~components/Typography';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type {\n DataAnalyticsAttribute,\n BladeElementRef,\n StringChildrenType,\n TestID,\n} from '~utils/types';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { isReactNative, makeSize } from '~utils';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BadgeProps = {\n /**\n * Sets the label for the badge.\n *\n */\n children: StringChildrenType;\n /**\n * Sets the color of the badge.\n *\n * @default 'neutral'\n */\n color?: FeedbackColors | 'primary';\n /**\n * Sets the contrast of the badge.\n *\n * @default 'subtle'\n */\n emphasis?: SubtleOrIntense;\n /**\n * Sets the size of the badge.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n /**\n * Icon to be displayed in the badge.\n * Accepts a component of type `IconComponent` from Blade.\n *\n */\n icon?: IconComponent;\n} & TestID &\n StyledPropsBlade &\n DataAnalyticsAttribute;\n\ntype ColorProps = {\n iconColor: IconProps['color'];\n textColor: BaseTextProps['color'];\n backgroundColor: StyledBadgeProps['backgroundColor'];\n};\n\nconst getColorProps = ({\n color,\n emphasis,\n}: {\n color: NonNullable<BadgeProps['color']>;\n emphasis: NonNullable<BadgeProps['emphasis']>;\n}): ColorProps => {\n const props: ColorProps = {\n iconColor: 'feedback.icon.neutral.intense',\n textColor: 'feedback.text.neutral.intense',\n backgroundColor: 'feedback.background.neutral.subtle',\n };\n\n if (color === 'primary') {\n // primary color badge\n props.textColor =\n emphasis === 'intense' ? `surface.text.staticWhite.normal` : `surface.text.primary.normal`;\n props.iconColor =\n emphasis === 'intense' ? `surface.icon.staticWhite.normal` : `surface.icon.primary.normal`;\n props.backgroundColor = `surface.background.primary.${emphasis}`;\n } else {\n // feedback colors badge\n props.textColor =\n emphasis === 'intense' ? `surface.text.staticWhite.normal` : `feedback.text.${color}.intense`;\n props.iconColor =\n emphasis === 'intense' ? `surface.icon.staticWhite.normal` : `feedback.icon.${color}.intense`;\n props.backgroundColor = `feedback.background.${color}.${emphasis}`;\n }\n\n return props;\n};\n\nconst _Badge = (\n {\n children,\n emphasis = 'subtle',\n icon: Icon,\n size = 'medium',\n color = 'neutral',\n testID,\n ...props\n }: BadgeProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const childrenString = getStringFromReactText(children);\n if (__DEV__) {\n if (!childrenString?.trim()) {\n throwBladeError({\n message: 'Text as children is required for Badge.',\n moduleName: 'Badge',\n });\n }\n }\n\n const { backgroundColor, iconColor, textColor } = getColorProps({\n color,\n emphasis,\n });\n\n const badgeTextSizes = {\n small: {\n variant: 'body',\n size: 'xsmall',\n },\n medium: {\n variant: 'body',\n size: 'small',\n },\n large: {\n variant: 'body',\n size: 'small',\n },\n } as const;\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative() ? 'flex' : 'inline-flex') as never}\n {...metaAttribute({ name: MetaConstants.Badge, testID })}\n {...getStyledProps(props)}\n {...makeAnalyticsAttribute(props)}\n >\n <StyledBadge\n height={makeSize(badgeHeight[size])}\n backgroundColor={backgroundColor}\n size={size}\n textAlign={'left' as never}\n >\n <BaseBox\n paddingX={horizontalPadding[size]}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n overflow=\"hidden\"\n >\n {Icon ? (\n <BaseBox paddingRight={Boolean(Icon) ? iconPadding[size] : 'spacing.0'} display=\"flex\">\n <Icon color={iconColor} size={iconSize[size]} />\n </BaseBox>\n ) : null}\n <Text {...badgeTextSizes[size]} weight=\"medium\" truncateAfterLines={1} color={textColor}>\n {children}\n </Text>\n </BaseBox>\n </StyledBadge>\n </BaseBox>\n );\n};\n\nconst Badge = assignWithoutSideEffects(React.forwardRef(_Badge), {\n displayName: 'Badge',\n componentId: 'Badge',\n});\n\nexport type { BadgeProps };\nexport { Badge };\n"],"names":["getColorProps","_ref","color","emphasis","props","iconColor","textColor","backgroundColor","concat","_Badge","_ref2","ref","children","_ref2$emphasis","Icon","icon","_ref2$size","size","_ref2$color","testID","_objectWithoutProperties","_excluded","childrenString","getStringFromReactText","trim","throwBladeError","message","moduleName","_getColorProps","badgeTextSizes","small","variant","medium","large","_jsx","BaseBox","_objectSpread","display","isReactNative","metaAttribute","name","MetaConstants","Badge","getStyledProps","makeAnalyticsAttribute","StyledBadge","height","makeSize","badgeHeight","textAlign","_jsxs","paddingX","horizontalPadding","flexDirection","justifyContent","alignItems","overflow","paddingRight","Boolean","iconPadding","iconSize","Text","weight","truncateAfterLines","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"Badge.js","sources":["../../../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import React from 'react';\nimport type { ReactElement } from 'react';\nimport type { StyledBadgeProps } from './types';\nimport { StyledBadge } from './StyledBadge';\nimport { iconPadding, iconSize, horizontalPadding, badgeHeight } from './badgeTokens';\nimport type { IconComponent, IconProps } from '~components/Icons';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { FeedbackColors, SubtleOrIntense } from '~tokens/theme/theme';\nimport type { BaseTextProps } from '~components/Typography/BaseText/types';\nimport { Text } from '~components/Typography';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport type {\n DataAnalyticsAttribute,\n BladeElementRef,\n StringChildrenType,\n TestID,\n} from '~utils/types';\nimport { getStringFromReactText } from '~src/utils/getStringChildren';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { isReactNative, makeSize } from '~utils';\nimport { throwBladeError } from '~utils/logger';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype BadgeProps = {\n /**\n * Sets the label for the badge.\n *\n */\n children: StringChildrenType;\n /**\n * Sets the color of the badge.\n *\n * @default 'neutral'\n */\n color?: FeedbackColors | 'primary';\n /**\n * Sets the contrast of the badge.\n *\n * @default 'subtle'\n */\n emphasis?: SubtleOrIntense;\n /**\n * Sets the size of the badge.\n *\n * @default 'medium'\n */\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n /**\n * Icon to be displayed in the badge.\n * Accepts a component of type `IconComponent` from Blade.\n *\n */\n icon?: IconComponent;\n} & TestID &\n StyledPropsBlade &\n DataAnalyticsAttribute;\n\ntype ColorProps = {\n iconColor: IconProps['color'];\n textColor: BaseTextProps['color'];\n backgroundColor: StyledBadgeProps['backgroundColor'];\n};\n\nconst getColorProps = ({\n color,\n emphasis,\n}: {\n color: NonNullable<BadgeProps['color']>;\n emphasis: NonNullable<BadgeProps['emphasis']>;\n}): ColorProps => {\n const props: ColorProps = {\n iconColor: 'feedback.icon.neutral.intense',\n textColor: 'feedback.text.neutral.intense',\n backgroundColor: 'feedback.background.neutral.subtle',\n };\n\n if (color === 'primary') {\n // primary color badge\n props.textColor =\n emphasis === 'intense' ? `surface.text.staticWhite.normal` : `surface.text.primary.normal`;\n props.iconColor =\n emphasis === 'intense' ? `surface.icon.staticWhite.normal` : `surface.icon.primary.normal`;\n props.backgroundColor = `surface.background.primary.${emphasis}`;\n } else {\n // feedback colors badge\n props.textColor =\n emphasis === 'intense' ? `surface.text.staticWhite.normal` : `feedback.text.${color}.intense`;\n props.iconColor =\n emphasis === 'intense' ? `surface.icon.staticWhite.normal` : `feedback.icon.${color}.intense`;\n props.backgroundColor = `feedback.background.${color}.${emphasis}`;\n }\n\n return props;\n};\n\nconst _Badge = (\n {\n children,\n emphasis = 'subtle',\n icon: Icon,\n size = 'medium',\n color = 'neutral',\n testID,\n ...props\n }: BadgeProps,\n ref: React.Ref<BladeElementRef>,\n): ReactElement => {\n const childrenString = getStringFromReactText(children);\n if (__DEV__) {\n if (!childrenString?.trim()) {\n throwBladeError({\n message: 'Text as children is required for Badge.',\n moduleName: 'Badge',\n });\n }\n }\n\n const { backgroundColor, iconColor, textColor } = getColorProps({\n color,\n emphasis,\n });\n\n const badgeTextSizes = {\n xsmall: {\n variant: 'body',\n size: 'xsmall',\n },\n small: {\n variant: 'body',\n size: 'xsmall',\n },\n medium: {\n variant: 'body',\n size: 'small',\n },\n large: {\n variant: 'body',\n size: 'small',\n },\n } as const;\n\n return (\n <BaseBox\n ref={ref as never}\n display={(isReactNative() ? 'flex' : 'inline-flex') as never}\n {...metaAttribute({ name: MetaConstants.Badge, testID })}\n {...getStyledProps(props)}\n {...makeAnalyticsAttribute(props)}\n >\n <StyledBadge\n height={makeSize(badgeHeight[size])}\n backgroundColor={backgroundColor}\n size={size}\n textAlign={'left' as never}\n >\n <BaseBox\n paddingX={horizontalPadding[size]}\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"center\"\n alignItems=\"center\"\n overflow=\"hidden\"\n >\n {Icon ? (\n <BaseBox paddingRight={Boolean(Icon) ? iconPadding[size] : 'spacing.0'} display=\"flex\">\n <Icon color={iconColor} size={iconSize[size]} />\n </BaseBox>\n ) : null}\n <Text {...badgeTextSizes[size]} weight=\"medium\" truncateAfterLines={1} color={textColor}>\n {children}\n </Text>\n </BaseBox>\n </StyledBadge>\n </BaseBox>\n );\n};\n\nconst Badge = assignWithoutSideEffects(React.forwardRef(_Badge), {\n displayName: 'Badge',\n componentId: 'Badge',\n});\n\nexport type { BadgeProps };\nexport { Badge };\n"],"names":["getColorProps","_ref","color","emphasis","props","iconColor","textColor","backgroundColor","concat","_Badge","_ref2","ref","children","_ref2$emphasis","Icon","icon","_ref2$size","size","_ref2$color","testID","_objectWithoutProperties","_excluded","childrenString","getStringFromReactText","trim","throwBladeError","message","moduleName","_getColorProps","badgeTextSizes","xsmall","variant","small","medium","large","_jsx","BaseBox","_objectSpread","display","isReactNative","metaAttribute","name","MetaConstants","Badge","getStyledProps","makeAnalyticsAttribute","StyledBadge","height","makeSize","badgeHeight","textAlign","_jsxs","paddingX","horizontalPadding","flexDirection","justifyContent","alignItems","overflow","paddingRight","Boolean","iconPadding","iconSize","Text","weight","truncateAfterLines","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -1,21 +1,25 @@
1
1
  import { size } from '../../tokens/global/size.js';
2
2
 
3
3
  var badgeHeight = {
4
+ xsmall: size[14],
4
5
  small: size[16],
5
6
  medium: size[20],
6
7
  large: size[24]
7
8
  };
8
9
  var horizontalPadding = {
10
+ xsmall: 'spacing.2',
9
11
  small: 'spacing.3',
10
12
  medium: 'spacing.3',
11
13
  large: 'spacing.4'
12
14
  };
13
15
  var iconPadding = {
16
+ xsmall: 'spacing.1',
14
17
  small: 'spacing.1',
15
18
  medium: 'spacing.2',
16
19
  large: 'spacing.2'
17
20
  };
18
21
  var iconSize = {
22
+ xsmall: 'xsmall',
19
23
  small: 'xsmall',
20
24
  medium: 'small',
21
25
  large: 'small'
@@ -1 +1 @@
1
- {"version":3,"file":"badgeTokens.js","sources":["../../../../../../src/components/Badge/badgeTokens.ts"],"sourcesContent":["import type { BadgeProps } from './Badge';\nimport type { DotNotationSpacingStringToken } from '~utils/types';\nimport type { IconProps } from '~components/Icons';\nimport { size } from '~tokens/global/size';\n\nconst badgeHeight: Record<NonNullable<BadgeProps['size']>, number> = {\n small: size[16],\n medium: size[20],\n large: size[24],\n};\n\nconst horizontalPadding: Record<NonNullable<BadgeProps['size']>, DotNotationSpacingStringToken> = {\n small: 'spacing.3',\n medium: 'spacing.3',\n large: 'spacing.4',\n};\n\nconst iconPadding: Record<NonNullable<BadgeProps['size']>, DotNotationSpacingStringToken> = {\n small: 'spacing.1',\n medium: 'spacing.2',\n large: 'spacing.2',\n};\n\nconst iconSize: Record<NonNullable<BadgeProps['size']>, IconProps['size']> = {\n small: 'xsmall',\n medium: 'small',\n large: 'small',\n};\n\nexport { badgeHeight, horizontalPadding, iconPadding, iconSize };\n"],"names":["badgeHeight","small","size","medium","large","horizontalPadding","iconPadding","iconSize"],"mappings":";;AAKA,IAAMA,WAA4D,GAAG;AACnEC,EAAAA,KAAK,EAAEC,IAAI,CAAC,EAAE,CAAC;AACfC,EAAAA,MAAM,EAAED,IAAI,CAAC,EAAE,CAAC;EAChBE,KAAK,EAAEF,IAAI,CAAC,EAAE,CAAA;AAChB,EAAC;AAED,IAAMG,iBAAyF,GAAG;AAChGJ,EAAAA,KAAK,EAAE,WAAW;AAClBE,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAME,WAAmF,GAAG;AAC1FL,EAAAA,KAAK,EAAE,WAAW;AAClBE,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAMG,QAAoE,GAAG;AAC3EN,EAAAA,KAAK,EAAE,QAAQ;AACfE,EAAAA,MAAM,EAAE,OAAO;AACfC,EAAAA,KAAK,EAAE,OAAA;AACT;;;;"}
1
+ {"version":3,"file":"badgeTokens.js","sources":["../../../../../../src/components/Badge/badgeTokens.ts"],"sourcesContent":["import type { BadgeProps } from './Badge';\nimport type { DotNotationSpacingStringToken } from '~utils/types';\nimport type { IconProps } from '~components/Icons';\nimport { size } from '~tokens/global/size';\n\nconst badgeHeight: Record<NonNullable<BadgeProps['size']>, number> = {\n xsmall: size[14],\n small: size[16],\n medium: size[20],\n large: size[24],\n};\n\nconst horizontalPadding: Record<NonNullable<BadgeProps['size']>, DotNotationSpacingStringToken> = {\n xsmall: 'spacing.2',\n small: 'spacing.3',\n medium: 'spacing.3',\n large: 'spacing.4',\n};\n\nconst iconPadding: Record<NonNullable<BadgeProps['size']>, DotNotationSpacingStringToken> = {\n xsmall: 'spacing.1',\n small: 'spacing.1',\n medium: 'spacing.2',\n large: 'spacing.2',\n};\n\nconst iconSize: Record<NonNullable<BadgeProps['size']>, IconProps['size']> = {\n xsmall: 'xsmall',\n small: 'xsmall',\n medium: 'small',\n large: 'small',\n};\n\nexport { badgeHeight, horizontalPadding, iconPadding, iconSize };\n"],"names":["badgeHeight","xsmall","size","small","medium","large","horizontalPadding","iconPadding","iconSize"],"mappings":";;AAKA,IAAMA,WAA4D,GAAG;AACnEC,EAAAA,MAAM,EAAEC,IAAI,CAAC,EAAE,CAAC;AAChBC,EAAAA,KAAK,EAAED,IAAI,CAAC,EAAE,CAAC;AACfE,EAAAA,MAAM,EAAEF,IAAI,CAAC,EAAE,CAAC;EAChBG,KAAK,EAAEH,IAAI,CAAC,EAAE,CAAA;AAChB,EAAC;AAED,IAAMI,iBAAyF,GAAG;AAChGL,EAAAA,MAAM,EAAE,WAAW;AACnBE,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAME,WAAmF,GAAG;AAC1FN,EAAAA,MAAM,EAAE,WAAW;AACnBE,EAAAA,KAAK,EAAE,WAAW;AAClBC,EAAAA,MAAM,EAAE,WAAW;AACnBC,EAAAA,KAAK,EAAE,WAAA;AACT,EAAC;AAED,IAAMG,QAAoE,GAAG;AAC3EP,EAAAA,MAAM,EAAE,QAAQ;AAChBE,EAAAA,KAAK,EAAE,QAAQ;AACfC,EAAAA,MAAM,EAAE,OAAO;AACfC,EAAAA,KAAK,EAAE,OAAA;AACT;;;;"}
@@ -3,6 +3,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
3
3
  import React__default from 'react';
4
4
  import { Area as Area$1, ResponsiveContainer, AreaChart } from 'recharts';
5
5
  import '../utils/index.js';
6
+ import '../CommonChartComponents/index.js';
6
7
  import { componentIds } from './componentIds.js';
7
8
  import '../../../utils/makeAnalyticsAttribute/index.js';
8
9
  import '../../BladeProvider/index.js';
@@ -10,15 +11,20 @@ import '../../../utils/metaAttribute/index.js';
10
11
  import '../../Box/BaseBox/index.js';
11
12
  import getIn from '../../../utils/lodashButBetter/get.js';
12
13
  import '../../../utils/assignWithoutSideEffects/index.js';
13
- import { jsx } from 'react/jsx-runtime';
14
+ import '../../../utils/isValidAllowedChildren/index.js';
15
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
16
  import useTheme from '../../BladeProvider/useTheme.js';
15
17
  import useChartsColorTheme from '../utils/useColorTheme.js';
18
+ import { getHighestColorInRange } from '../utils/getHighestColorInRange.js';
16
19
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
20
+ import { getComponentId } from '../../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
21
+ import { assignDataColorMapping } from '../utils/assignDataColorMapping/assignDataColorMapping.js';
22
+ import { CommonChartComponentsContext } from '../CommonChartComponents/CommonChartComponentsContext.js';
17
23
  import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
18
24
  import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js';
19
25
  import { makeAnalyticsAttribute } from '../../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
20
26
 
21
- var _excluded = ["color", "type", "connectNulls", "showLegend", "stackId", "dot", "activeDot", "_index", "_colorTheme"],
27
+ var _excluded = ["color", "type", "connectNulls", "showLegend", "stackId", "dot", "activeDot", "_index", "_colorTheme", "_totalAreas", "dataKey", "name"],
22
28
  _excluded2 = ["data", "children", "testID", "colorTheme"];
23
29
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
30
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -38,23 +44,32 @@ var Area = function Area(_ref) {
38
44
  activeDot = _ref$activeDot === void 0 ? true : _ref$activeDot,
39
45
  _index = _ref._index,
40
46
  _colorTheme = _ref._colorTheme,
47
+ _totalAreas = _ref._totalAreas,
48
+ dataKey = _ref.dataKey,
49
+ name = _ref.name,
41
50
  props = _objectWithoutProperties(_ref, _excluded);
42
51
  var _useTheme = useTheme(),
43
52
  theme = _useTheme.theme;
44
53
  var themeColors = useChartsColorTheme({
45
- colorTheme: _colorTheme
54
+ colorTheme: _colorTheme,
55
+ chartName: 'area',
56
+ chartDataIndicators: _totalAreas
46
57
  });
47
- var colorToken = color ? getIn(theme.colors, color) : themeColors[_index !== null && _index !== void 0 ? _index : 0];
58
+ var colorToken = getIn(theme.colors, color ? getHighestColorInRange({
59
+ colorToken: color
60
+ }) : themeColors[_index !== null && _index !== void 0 ? _index : 0]);
48
61
  var animationBegin = theme.motion.delay.gentle;
49
62
  var animationDuration = theme.motion.duration.xgentle;
50
63
  return /*#__PURE__*/jsx(Area$1, _objectSpread(_objectSpread({}, props), {}, {
51
- fill: colorToken,
64
+ fill: "url(#color-".concat(_index, "-").concat(dataKey, ")"),
65
+ dataKey: dataKey,
66
+ name: name,
52
67
  stroke: colorToken,
53
- fillOpacity: 0.09,
68
+ fillOpacity: 0.5,
54
69
  type: type,
55
70
  connectNulls: connectNulls,
56
71
  legendType: showLegend ? 'rect' : 'none',
57
- strokeWidth: 3,
72
+ strokeWidth: 1.5,
58
73
  dot: dot,
59
74
  stackId: stackId,
60
75
  activeDot: activeDot,
@@ -65,40 +80,127 @@ var Area = function Area(_ref) {
65
80
  var ChartArea = /*#__PURE__*/assignWithoutSideEffects(Area, {
66
81
  componentId: componentIds.ChartArea
67
82
  });
83
+ var ChartColorGradient = function ChartColorGradient(_ref2) {
84
+ var index = _ref2.index,
85
+ color = _ref2.color,
86
+ totalAreaChartChildren = _ref2.totalAreaChartChildren,
87
+ id = _ref2.id;
88
+ var _useTheme2 = useTheme(),
89
+ colorScheme = _useTheme2.colorScheme,
90
+ theme = _useTheme2.theme;
91
+ var isDarkMode = colorScheme === 'dark';
92
+ var themeColors = useChartsColorTheme({
93
+ colorTheme: 'categorical',
94
+ chartName: 'area',
95
+ chartDataIndicators: totalAreaChartChildren
96
+ });
97
+ var colorToken = getIn(theme.colors, getHighestColorInRange({
98
+ colorToken: color !== null && color !== void 0 ? color : themeColors[index],
99
+ followIntensityMapping: true
100
+ }));
101
+ return /*#__PURE__*/jsxs("linearGradient", {
102
+ id: id,
103
+ x1: "0",
104
+ y1: "0",
105
+ x2: "0",
106
+ y2: "1",
107
+ children: [/*#__PURE__*/jsx("stop", {
108
+ offset: "5%",
109
+ stopColor: colorToken,
110
+ stopOpacity: isDarkMode ? 0.28 : 1
111
+ }), /*#__PURE__*/jsx("stop", {
112
+ offset: "95%",
113
+ stopColor: colorToken,
114
+ stopOpacity: isDarkMode ? 0.12 : 0.32
115
+ })]
116
+ }, id);
117
+ };
68
118
 
69
119
  // Main components
70
- var ChartAreaWrapper = function ChartAreaWrapper(_ref2) {
71
- var data = _ref2.data,
72
- children = _ref2.children,
73
- testID = _ref2.testID,
74
- _ref2$colorTheme = _ref2.colorTheme,
75
- colorTheme = _ref2$colorTheme === void 0 ? 'default' : _ref2$colorTheme,
76
- restProps = _objectWithoutProperties(_ref2, _excluded2);
77
- var modifiedChildren = React__default.useMemo(function () {
78
- var AreaChartIndex = 0;
79
- return React__default.Children.map(children, function (child) {
80
- if (/*#__PURE__*/React__default.isValidElement(child) && child.type === componentIds.ChartArea) {
81
- return /*#__PURE__*/React__default.cloneElement(child, {
82
- _index: AreaChartIndex++,
83
- _colorTheme: colorTheme
84
- });
85
- }
86
- return child;
87
- });
88
- }, [children, colorTheme]);
89
- return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
90
- name: 'chart-area-container',
91
- testID: testID
92
- })), makeAnalyticsAttribute(restProps)), restProps), {}, {
93
- width: "100%",
94
- height: "100%",
95
- children: /*#__PURE__*/jsx(ResponsiveContainer, {
96
- children: /*#__PURE__*/jsx(AreaChart, {
97
- data: data,
98
- children: modifiedChildren
120
+ var ChartAreaWrapper = function ChartAreaWrapper(_ref3) {
121
+ var data = _ref3.data,
122
+ children = _ref3.children,
123
+ testID = _ref3.testID,
124
+ _ref3$colorTheme = _ref3.colorTheme,
125
+ colorTheme = _ref3$colorTheme === void 0 ? 'categorical' : _ref3$colorTheme,
126
+ restProps = _objectWithoutProperties(_ref3, _excluded2);
127
+ var themeColors = useChartsColorTheme({
128
+ colorTheme: colorTheme,
129
+ chartName: 'area'
130
+ });
131
+ var _React$useMemo = React__default.useMemo(function () {
132
+ var childrenArray = React__default.Children.toArray(children);
133
+ var dataColorMapping = {};
134
+
135
+ // Count ChartLine components
136
+ var totalAreas = childrenArray.filter(function (child) {
137
+ return /*#__PURE__*/React__default.isValidElement(child) && getComponentId(child) === componentIds.ChartArea;
138
+ }).length;
139
+ var AreaChartIndex = 0;
140
+ /**
141
+ * We need to check child of ChartAreaWrapper. if they have any custom color we store that.
142
+ * We need these mapping because colors of tooltip & legend is determine based on this
143
+ * recharts do provide a color but it is hex code and we need blade color token .
144
+ */
145
+ var modifiedChildren = React__default.Children.map(children, function (child) {
146
+ if (/*#__PURE__*/React__default.isValidElement(child) && getComponentId(child) === componentIds.ChartArea) {
147
+ var _child$props, _child$props2;
148
+ var childColor = child === null || child === void 0 || (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.color;
149
+ var dataKey = child === null || child === void 0 || (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.dataKey;
150
+ if (dataKey) {
151
+ // assign colors to the dataColorMapping, if no color is assigned we assign color in `assignDataColorMapping`
152
+
153
+ dataColorMapping[dataKey] = {
154
+ colorToken: childColor,
155
+ isCustomColor: Boolean(childColor)
156
+ };
157
+ }
158
+ return /*#__PURE__*/React__default.cloneElement(child, {
159
+ _index: AreaChartIndex++,
160
+ _colorTheme: colorTheme,
161
+ _totalAreas: totalAreas
162
+ });
163
+ }
164
+ return child;
165
+ });
166
+ assignDataColorMapping(dataColorMapping, themeColors);
167
+ return {
168
+ modifiedChildren: modifiedChildren,
169
+ totalAreaChartChildren: AreaChartIndex,
170
+ dataColorMapping: dataColorMapping
171
+ };
172
+ }, [children, colorTheme, themeColors]),
173
+ modifiedChildren = _React$useMemo.modifiedChildren,
174
+ totalAreaChartChildren = _React$useMemo.totalAreaChartChildren,
175
+ dataColorMapping = _React$useMemo.dataColorMapping;
176
+ return /*#__PURE__*/jsx(CommonChartComponentsContext.Provider, {
177
+ value: {
178
+ chartName: 'area',
179
+ dataColorMapping: dataColorMapping
180
+ },
181
+ children: /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
182
+ name: 'chart-area-container',
183
+ testID: testID
184
+ })), makeAnalyticsAttribute(restProps)), restProps), {}, {
185
+ width: "100%",
186
+ height: "100%",
187
+ children: /*#__PURE__*/jsx(ResponsiveContainer, {
188
+ children: /*#__PURE__*/jsxs(AreaChart, {
189
+ data: data,
190
+ children: [/*#__PURE__*/jsx("defs", {
191
+ children: Object.keys(dataColorMapping).map(function (dataKey, index) {
192
+ return /*#__PURE__*/jsx(ChartColorGradient, {
193
+ id: "color-".concat(index, "-").concat(dataKey),
194
+ index: index,
195
+ color: dataColorMapping[dataKey].colorToken,
196
+ totalAreaChartChildren: totalAreaChartChildren
197
+ }, "color-".concat(index, "-").concat(dataKey));
198
+ })
199
+ }), modifiedChildren]
200
+ })
99
201
  })
100
- })
101
- }));
202
+ }))
203
+ });
102
204
  };
103
205
 
104
206
  export { ChartArea, ChartAreaWrapper };
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.web.js","sources":["../../../../../../../src/components/Charts/AreaChart/AreaChart.web.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AreaChart as RechartsAreaChart,\n Area as RechartsArea,\n ResponsiveContainer,\n} from 'recharts';\nimport { useChartsColorTheme } from '../utils';\nimport type { ChartAreaProps, ChartAreaWrapperProps } from './types';\nimport { componentIds } from './componentIds';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport getIn from '~utils/lodashButBetter/get';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst Area: React.FC<ChartAreaProps> = ({\n color,\n type = 'monotone',\n connectNulls = false,\n showLegend = true,\n stackId = 1,\n dot = false,\n activeDot = true,\n _index,\n _colorTheme,\n ...props\n}) => {\n const { theme } = useTheme();\n const themeColors = useChartsColorTheme({ colorTheme: _colorTheme });\n const colorToken = color ? getIn(theme.colors, color) : themeColors[_index ?? 0];\n const animationBegin = theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n return (\n <RechartsArea\n {...props}\n fill={colorToken}\n stroke={colorToken}\n fillOpacity={0.09}\n type={type}\n connectNulls={connectNulls}\n legendType={showLegend ? 'rect' : 'none'}\n strokeWidth={3}\n dot={dot}\n stackId={stackId}\n activeDot={activeDot}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n />\n );\n};\n\nconst ChartArea = assignWithoutSideEffects(Area, {\n componentId: componentIds.ChartArea,\n});\n\n// Main components\nconst ChartAreaWrapper: React.FC<ChartAreaWrapperProps & TestID & DataAnalyticsAttribute> = ({\n data,\n children,\n testID,\n colorTheme = 'default',\n ...restProps\n}) => {\n const modifiedChildren = React.useMemo(() => {\n let AreaChartIndex = 0;\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === componentIds.ChartArea) {\n return React.cloneElement(child, {\n _index: AreaChartIndex++,\n _colorTheme: colorTheme,\n } as Partial<ChartAreaProps>);\n }\n return child;\n });\n }, [children, colorTheme]);\n\n return (\n <BaseBox\n {...metaAttribute({ name: 'chart-area-container', testID })}\n {...makeAnalyticsAttribute(restProps)}\n {...restProps}\n width=\"100%\"\n height=\"100%\"\n >\n <ResponsiveContainer>\n <RechartsAreaChart data={data}>{modifiedChildren}</RechartsAreaChart>\n </ResponsiveContainer>\n </BaseBox>\n );\n};\n\nexport type { ChartAreaWrapperProps, ChartAreaProps };\nexport { ChartAreaWrapper, ChartArea };\n"],"names":["Area","_ref","color","_ref$type","type","_ref$connectNulls","connectNulls","_ref$showLegend","showLegend","_ref$stackId","stackId","_ref$dot","dot","_ref$activeDot","activeDot","_index","_colorTheme","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","themeColors","useChartsColorTheme","colorTheme","colorToken","getIn","colors","animationBegin","motion","delay","gentle","animationDuration","duration","xgentle","_jsx","RechartsArea","_objectSpread","fill","stroke","fillOpacity","legendType","strokeWidth","ChartArea","assignWithoutSideEffects","componentId","componentIds","ChartAreaWrapper","_ref2","data","children","testID","_ref2$colorTheme","restProps","_excluded2","modifiedChildren","React","useMemo","AreaChartIndex","Children","map","child","isValidElement","cloneElement","BaseBox","metaAttribute","name","makeAnalyticsAttribute","width","height","ResponsiveContainer","RechartsAreaChart"],"mappings":"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"}
1
+ {"version":3,"file":"AreaChart.web.js","sources":["../../../../../../../src/components/Charts/AreaChart/AreaChart.web.tsx"],"sourcesContent":["import React from 'react';\nimport {\n AreaChart as RechartsAreaChart,\n Area as RechartsArea,\n ResponsiveContainer,\n} from 'recharts';\nimport { getHighestColorInRange, useChartsColorTheme, assignDataColorMapping } from '../utils';\nimport type { DataColorMapping } from '../CommonChartComponents';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type { ChartAreaProps, ChartAreaWrapperProps, ChartColorGradientProps } from './types';\nimport { componentIds } from './componentIds';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\nimport { useTheme } from '~components/BladeProvider';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport BaseBox from '~components/Box/BaseBox';\nimport getIn from '~utils/lodashButBetter/get';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\n\nconst Area: React.FC<ChartAreaProps> = ({\n color,\n type = 'monotone',\n connectNulls = false,\n showLegend = true,\n stackId = 1,\n dot = false,\n activeDot = true,\n _index,\n _colorTheme,\n _totalAreas,\n dataKey,\n name,\n ...props\n}) => {\n const { theme } = useTheme();\n const themeColors = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'area',\n chartDataIndicators: _totalAreas,\n });\n const colorToken = getIn(\n theme.colors,\n color ? getHighestColorInRange({ colorToken: color }) : themeColors[_index ?? 0],\n );\n const animationBegin = theme.motion.delay.gentle;\n const animationDuration = theme.motion.duration.xgentle;\n\n return (\n <RechartsArea\n {...props}\n fill={`url(#color-${_index}-${dataKey})`}\n dataKey={dataKey}\n name={name}\n stroke={colorToken}\n fillOpacity={0.5}\n type={type}\n connectNulls={connectNulls}\n legendType={showLegend ? 'rect' : 'none'}\n strokeWidth={1.5}\n dot={dot}\n stackId={stackId}\n activeDot={activeDot}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n />\n );\n};\n\nconst ChartArea = assignWithoutSideEffects(Area, {\n componentId: componentIds.ChartArea,\n});\n\nconst ChartColorGradient: React.FC<ChartColorGradientProps> = ({\n index,\n color,\n totalAreaChartChildren,\n id,\n}) => {\n const { colorScheme, theme } = useTheme();\n const isDarkMode = colorScheme === 'dark';\n const themeColors = useChartsColorTheme({\n colorTheme: 'categorical',\n chartName: 'area',\n chartDataIndicators: totalAreaChartChildren,\n });\n\n const colorToken = getIn(\n theme.colors,\n getHighestColorInRange({\n colorToken: color ?? themeColors[index],\n followIntensityMapping: true,\n }),\n );\n return (\n <linearGradient id={id} key={id} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor={colorToken} stopOpacity={isDarkMode ? 0.28 : 1} />\n <stop offset=\"95%\" stopColor={colorToken} stopOpacity={isDarkMode ? 0.12 : 0.32} />\n </linearGradient>\n );\n};\n\n// Main components\nconst ChartAreaWrapper: React.FC<ChartAreaWrapperProps & TestID & DataAnalyticsAttribute> = ({\n data,\n children,\n testID,\n colorTheme = 'categorical',\n ...restProps\n}) => {\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'area',\n });\n const { modifiedChildren, totalAreaChartChildren, dataColorMapping } = React.useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n\n // Count ChartLine components\n const totalAreas = childrenArray.filter(\n (child): child is React.ReactElement =>\n React.isValidElement(child) && getComponentId(child) === componentIds.ChartArea,\n ).length;\n\n let AreaChartIndex = 0;\n /**\n * We need to check child of ChartAreaWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n const modifiedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && getComponentId(child) === componentIds.ChartArea) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartAreaProps)?.dataKey as string;\n if (dataKey) {\n // assign colors to the dataColorMapping, if no color is assigned we assign color in `assignDataColorMapping`\n\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n return React.cloneElement(child, {\n _index: AreaChartIndex++,\n _colorTheme: colorTheme,\n _totalAreas: totalAreas,\n } as Partial<ChartAreaProps>);\n }\n return child;\n });\n\n assignDataColorMapping(dataColorMapping, themeColors);\n return {\n modifiedChildren,\n totalAreaChartChildren: AreaChartIndex,\n dataColorMapping,\n };\n }, [children, colorTheme, themeColors]);\n\n return (\n <CommonChartComponentsContext.Provider value={{ chartName: 'area', dataColorMapping }}>\n <BaseBox\n {...metaAttribute({ name: 'chart-area-container', testID })}\n {...makeAnalyticsAttribute(restProps)}\n {...restProps}\n width=\"100%\"\n height=\"100%\"\n >\n <ResponsiveContainer>\n <RechartsAreaChart data={data}>\n <defs>\n {Object.keys(dataColorMapping).map((dataKey, index) => (\n <ChartColorGradient\n key={`color-${index}-${dataKey}`}\n id={`color-${index}-${dataKey}`}\n index={index}\n color={dataColorMapping[dataKey].colorToken}\n totalAreaChartChildren={totalAreaChartChildren}\n />\n ))}\n </defs>\n\n {modifiedChildren}\n </RechartsAreaChart>\n </ResponsiveContainer>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n );\n};\n\nexport type { ChartAreaWrapperProps, ChartAreaProps };\nexport { ChartAreaWrapper, ChartArea };\n"],"names":["Area","_ref","color","_ref$type","type","_ref$connectNulls","connectNulls","_ref$showLegend","showLegend","_ref$stackId","stackId","_ref$dot","dot","_ref$activeDot","activeDot","_index","_colorTheme","_totalAreas","dataKey","name","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","themeColors","useChartsColorTheme","colorTheme","chartName","chartDataIndicators","colorToken","getIn","colors","getHighestColorInRange","animationBegin","motion","delay","gentle","animationDuration","duration","xgentle","_jsx","RechartsArea","_objectSpread","fill","concat","stroke","fillOpacity","legendType","strokeWidth","ChartArea","assignWithoutSideEffects","componentId","componentIds","ChartColorGradient","_ref2","index","totalAreaChartChildren","id","_useTheme2","colorScheme","isDarkMode","followIntensityMapping","_jsxs","x1","y1","x2","y2","children","offset","stopColor","stopOpacity","ChartAreaWrapper","_ref3","data","testID","_ref3$colorTheme","restProps","_excluded2","_React$useMemo","React","useMemo","childrenArray","Children","toArray","dataColorMapping","totalAreas","filter","child","isValidElement","getComponentId","length","AreaChartIndex","modifiedChildren","map","_child$props","_child$props2","childColor","isCustomColor","Boolean","cloneElement","assignDataColorMapping","CommonChartComponentsContext","Provider","value","BaseBox","metaAttribute","makeAnalyticsAttribute","width","height","ResponsiveContainer","RechartsAreaChart","Object","keys"],"mappings":"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"}