@juspay/blend-design-system 0.0.37-beta.3 → 0.0.37-beta.5

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 (225) hide show
  1. package/dist/components/AccordionV2/index.d.ts +3 -0
  2. package/dist/components/AvatarV2/avatarV2.utils.d.ts +1 -1
  3. package/dist/components/AvatarV2/index.d.ts +1 -2
  4. package/dist/components/Breadcrumb/Breadcrumb.d.ts +2 -5
  5. package/dist/components/Breadcrumb/types.d.ts +6 -0
  6. package/dist/components/BreadcrumbV2/index.d.ts +10 -0
  7. package/dist/components/ButtonV2/ButtonGroupV2/index.d.ts +1 -0
  8. package/dist/components/ButtonV2/buttonV2.types.d.ts +0 -4
  9. package/dist/components/ButtonV2/index.d.ts +3 -0
  10. package/dist/components/ButtonV2/utils.d.ts +1 -1
  11. package/dist/components/Charts/ChartUtils.d.ts +2 -0
  12. package/dist/components/Charts/types.d.ts +2 -2
  13. package/dist/components/ChartsV2/index.d.ts +5 -0
  14. package/dist/components/CodeEditorV2/CodeEditorV2.d.ts +1 -1
  15. package/dist/components/CodeEditorV2/codeEditorV2.tokens.d.ts +5 -5
  16. package/dist/components/CodeEditorV2/codeEditorV2.types.d.ts +5 -5
  17. package/dist/components/CodeEditorV2/index.d.ts +2 -0
  18. package/dist/components/CodeEditorV2/utils.d.ts +1 -1
  19. package/dist/components/DataTable/DataTable.d.ts +2 -1
  20. package/dist/components/DataTable/PivotTableModal/PivotPreviewPanel.d.ts +3 -0
  21. package/dist/components/DataTable/PivotTableModal/PivotTableIllustration.d.ts +7 -0
  22. package/dist/components/DataTable/PivotTableModal/index.d.ts +3 -0
  23. package/dist/components/DataTable/PivotTableModal/pivotModalStyleTokens.d.ts +123 -0
  24. package/dist/components/DataTable/PivotTableModal/types.d.ts +62 -0
  25. package/dist/components/DataTable/PivotTableModal/utils.d.ts +32 -0
  26. package/dist/components/DataTable/TableBody/types.d.ts +2 -0
  27. package/dist/components/DataTable/TableHeader/types.d.ts +1 -0
  28. package/dist/components/DataTable/index.d.ts +2 -0
  29. package/dist/components/DataTable/types.d.ts +56 -0
  30. package/dist/components/DataTable/utils.d.ts +19 -1
  31. package/dist/components/DateRangePicker/types.d.ts +1 -1
  32. package/dist/components/DateRangePicker/utils.d.ts +2 -0
  33. package/dist/components/Directory/Directory.d.ts +1 -1
  34. package/dist/components/Directory/types.d.ts +1 -1
  35. package/dist/components/Directory/utils.d.ts +2 -0
  36. package/dist/components/InputsV2/ChatInputV2/AttachmentDropdown.d.ts +3 -3
  37. package/dist/components/InputsV2/ChatInputV2/ChatInputTagV2.d.ts +2 -2
  38. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.d.ts +4 -4
  39. package/dist/components/InputsV2/ChatInputV2/ChatInputV2.types.d.ts +8 -8
  40. package/dist/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.d.ts +3 -3
  41. package/dist/components/InputsV2/ChatInputV2/MobileChatInputV2.d.ts +2 -2
  42. package/dist/components/InputsV2/ChatInputV2/utils.d.ts +4 -4
  43. package/dist/components/InputsV2/SearchInputV2/utils.d.ts +39 -0
  44. package/dist/components/InputsV2/TextInputV2/TextInputV2.types.d.ts +2 -2
  45. package/dist/components/InputsV2/TextInputV2/index.d.ts +2 -0
  46. package/dist/components/InputsV2/utils/utils.d.ts +1 -1
  47. package/dist/components/KeyValuePairV2/KeyValuePairV2.d.ts +1 -1
  48. package/dist/components/KeyValuePairV2/ResponsiveText.d.ts +2 -2
  49. package/dist/components/KeyValuePairV2/index.d.ts +3 -0
  50. package/dist/components/KeyValuePairV2/keyValuePairV2.types.d.ts +2 -2
  51. package/dist/components/KeyValuePairV2/responsiveTextStyles.d.ts +3 -3
  52. package/dist/components/KeyValuePairV2/utils.d.ts +2 -2
  53. package/dist/components/MenuV2/index.d.ts +1 -0
  54. package/dist/components/MenuV2/menuV2.utils.d.ts +2 -2
  55. package/dist/components/MultiSelectV2/index.d.ts +3 -0
  56. package/dist/components/MultiSelectV2/multiSelectV2.types.d.ts +1 -1
  57. package/dist/components/MultiSelectV2/utils.d.ts +2 -2
  58. package/dist/components/ProgressBarV2/index.d.ts +3 -0
  59. package/dist/components/ProgressBarV2/utils.d.ts +1 -1
  60. package/dist/components/Radio/StyledRadio.d.ts +0 -1
  61. package/dist/components/SelectV2/index.d.ts +1 -0
  62. package/dist/components/SelectorV2/CheckboxV2/index.d.ts +4 -0
  63. package/dist/components/SelectorV2/CheckboxV2/utils.d.ts +1 -1
  64. package/dist/components/SelectorV2/RadioV2/index.d.ts +3 -0
  65. package/dist/components/SelectorV2/SwitchV2/index.d.ts +1 -0
  66. package/dist/components/Sidebar/SidebarContent.d.ts +1 -1
  67. package/dist/components/Sidebar/types.d.ts +10 -1
  68. package/dist/components/Sidebar/utils.d.ts +1 -1
  69. package/dist/components/SidebarV2/SidebarV2Panel.d.ts +1 -1
  70. package/dist/components/SidebarV2/index.d.ts +6 -1
  71. package/dist/components/SidebarV2/types.d.ts +3 -0
  72. package/dist/components/SingleSelectV2/SingleSelectV2VirtualList.d.ts +2 -2
  73. package/dist/components/SingleSelectV2/index.d.ts +3 -0
  74. package/dist/components/SingleSelectV2/singleSelectV2.types.d.ts +2 -2
  75. package/dist/components/SingleSelectV2/utils.d.ts +6 -6
  76. package/dist/components/StatCardV2/index.d.ts +10 -1
  77. package/dist/components/Stepper/types.d.ts +2 -0
  78. package/dist/components/StepperV2/index.d.ts +3 -1
  79. package/dist/components/StepperV2/stepperV2.types.d.ts +2 -2
  80. package/dist/components/TabsV2/index.d.ts +3 -1
  81. package/dist/components/TagV2/index.d.ts +3 -0
  82. package/dist/components/TooltipV2/index.d.ts +1 -0
  83. package/dist/components/common/index.d.ts +1 -1
  84. package/dist/main.d.ts +30 -70
  85. package/dist/main.js +91851 -89103
  86. package/dist/{node-CRWdZOVN.js → node-C2uf3sNA.js} +1303 -1300
  87. package/dist/node.js +1 -1
  88. package/dist/tokens.js +17 -16
  89. package/lib/components/AccordionV2/index.ts +3 -0
  90. package/lib/components/Avatar/Avatar.tsx +6 -1
  91. package/lib/components/AvatarGroup/AvatarGroup.tsx +1 -1
  92. package/lib/components/AvatarV2/AvatarV2.tsx +12 -3
  93. package/lib/components/AvatarV2/avatarV2.utils.ts +1 -1
  94. package/lib/components/AvatarV2/index.ts +1 -12
  95. package/lib/components/Breadcrumb/Breadcrumb.tsx +9 -8
  96. package/lib/components/Breadcrumb/types.ts +12 -0
  97. package/lib/components/BreadcrumbV2/index.ts +10 -0
  98. package/lib/components/Button/ButtonBase.tsx +1 -1
  99. package/lib/components/ButtonV2/ButtonGroupV2/index.ts +1 -0
  100. package/lib/components/ButtonV2/ButtonV2.tsx +2 -2
  101. package/lib/components/ButtonV2/LinkButton.tsx +2 -2
  102. package/lib/components/ButtonV2/buttonV2.types.ts +0 -6
  103. package/lib/components/ButtonV2/index.ts +3 -0
  104. package/lib/components/ButtonV2/utils.ts +2 -2
  105. package/lib/components/Card/CardComponents.tsx +52 -17
  106. package/lib/components/Charts/BlendChart.tsx +1 -1
  107. package/lib/components/Charts/ChartUtils.tsx +7 -0
  108. package/lib/components/Charts/Charts.tsx +4 -2
  109. package/lib/components/Charts/CoreChart.tsx +4 -2
  110. package/lib/components/Charts/types.tsx +2 -2
  111. package/lib/components/ChartsV2/ChartV2.tsx +4 -3
  112. package/lib/components/ChartsV2/index.ts +5 -0
  113. package/lib/components/Checkbox/Checkbox.tsx +29 -7
  114. package/lib/components/CodeBlock/CodeBlock.tsx +47 -1
  115. package/lib/components/CodeBlock/codeBlock.token.ts +5 -5
  116. package/lib/components/CodeEditor/CodeEditor.tsx +26 -4
  117. package/lib/components/CodeEditor/MonacoEditorWrapper.tsx +13 -1
  118. package/lib/components/CodeEditorV2/CodeEditorV2.tsx +2 -2
  119. package/lib/components/CodeEditorV2/codeEditorV2.dark.tokens.ts +37 -25
  120. package/lib/components/CodeEditorV2/codeEditorV2.light.token.ts +37 -25
  121. package/lib/components/CodeEditorV2/codeEditorV2.tokens.ts +5 -5
  122. package/lib/components/CodeEditorV2/codeEditorV2.types.ts +5 -5
  123. package/lib/components/CodeEditorV2/index.ts +2 -0
  124. package/lib/components/CodeEditorV2/utils.ts +1 -1
  125. package/lib/components/DataTable/DataTable.tsx +156 -4
  126. package/lib/components/DataTable/PivotTableModal/PivotPreviewPanel.tsx +174 -0
  127. package/lib/components/DataTable/PivotTableModal/PivotTableIllustration.tsx +28 -0
  128. package/lib/components/DataTable/PivotTableModal/index.tsx +859 -0
  129. package/lib/components/DataTable/PivotTableModal/pivot-table-illustration.png +0 -0
  130. package/lib/components/DataTable/PivotTableModal/pivotModal.styled.ts +13 -0
  131. package/lib/components/DataTable/PivotTableModal/pivotModalStyleTokens.ts +250 -0
  132. package/lib/components/DataTable/PivotTableModal/types.ts +69 -0
  133. package/lib/components/DataTable/PivotTableModal/utils.ts +360 -0
  134. package/lib/components/DataTable/TableBody/index.tsx +16 -5
  135. package/lib/components/DataTable/TableBody/types.ts +2 -0
  136. package/lib/components/DataTable/TableHeader/FilterComponents.tsx +4 -0
  137. package/lib/components/DataTable/TableHeader/index.tsx +6 -3
  138. package/lib/components/DataTable/TableHeader/types.ts +1 -0
  139. package/lib/components/DataTable/index.ts +4 -0
  140. package/lib/components/DataTable/types.ts +57 -0
  141. package/lib/components/DataTable/utils.ts +197 -0
  142. package/lib/components/DateRangePicker/DateRangePicker.tsx +34 -17
  143. package/lib/components/DateRangePicker/types.ts +5 -5
  144. package/lib/components/DateRangePicker/utils.ts +5 -0
  145. package/lib/components/Directory/Directory.tsx +3 -2
  146. package/lib/components/Directory/types.ts +1 -1
  147. package/lib/components/Directory/utils.ts +6 -0
  148. package/lib/components/Drawer/components/DrawerBase.tsx +16 -0
  149. package/lib/components/Drawer/components/NestedSelectDrawer.tsx +13 -1
  150. package/lib/components/Drawer/components/SelectDrawer.tsx +9 -1
  151. package/lib/components/Inputs/OTPInput/OTPInput.tsx +5 -3
  152. package/lib/components/InputsV2/ChatInputV2/AttachmentDropdown.tsx +3 -3
  153. package/lib/components/InputsV2/ChatInputV2/ChatInputTagV2.tsx +3 -3
  154. package/lib/components/InputsV2/ChatInputV2/ChatInputV2.types.ts +8 -8
  155. package/lib/components/InputsV2/ChatInputV2/ChatInputV2AttachmentRow.tsx +7 -7
  156. package/lib/components/InputsV2/ChatInputV2/utils.ts +8 -8
  157. package/lib/components/InputsV2/SearchInputV2/utils.ts +14 -1
  158. package/lib/components/InputsV2/TextInputV2/TextInputV2.tsx +3 -3
  159. package/lib/components/InputsV2/TextInputV2/TextInputV2.types.ts +2 -2
  160. package/lib/components/InputsV2/TextInputV2/index.ts +2 -0
  161. package/lib/components/KeyValuePairV2/KeyValuePairV2.tsx +6 -2
  162. package/lib/components/KeyValuePairV2/ResponsiveText.tsx +2 -2
  163. package/lib/components/KeyValuePairV2/index.ts +3 -0
  164. package/lib/components/KeyValuePairV2/keyValuePairV2.types.ts +2 -2
  165. package/lib/components/KeyValuePairV2/responsiveTextStyles.ts +3 -3
  166. package/lib/components/KeyValuePairV2/utils.ts +3 -3
  167. package/lib/components/Menu/Menu.tsx +9 -1
  168. package/lib/components/MenuV2/MenuV2.tsx +2 -2
  169. package/lib/components/MenuV2/MenuV2SubMenu.tsx +2 -2
  170. package/lib/components/MenuV2/index.ts +1 -0
  171. package/lib/components/MenuV2/menuV2.utils.ts +4 -4
  172. package/lib/components/Modal/useModal.ts +7 -0
  173. package/lib/components/MultiSelectV2/MultiSelectV2.tsx +2 -2
  174. package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +5 -2
  175. package/lib/components/MultiSelectV2/index.ts +3 -0
  176. package/lib/components/MultiSelectV2/mobile/MobileMultiSelectV2.tsx +7 -4
  177. package/lib/components/MultiSelectV2/multiSelectV2.types.ts +1 -1
  178. package/lib/components/MultiSelectV2/utils.ts +2 -2
  179. package/lib/components/ProgressBarV2/ProgressBarV2.tsx +5 -2
  180. package/lib/components/ProgressBarV2/index.ts +3 -0
  181. package/lib/components/ProgressBarV2/utils.ts +1 -1
  182. package/lib/components/Radio/Radio.tsx +12 -5
  183. package/lib/components/Radio/StyledRadio.tsx +33 -17
  184. package/lib/components/SelectV2/index.ts +1 -0
  185. package/lib/components/SelectorV2/CheckboxV2/CheckboxV2.tsx +2 -2
  186. package/lib/components/SelectorV2/CheckboxV2/index.ts +4 -0
  187. package/lib/components/SelectorV2/CheckboxV2/utils.ts +1 -1
  188. package/lib/components/SelectorV2/RadioV2/index.ts +3 -0
  189. package/lib/components/SelectorV2/SwitchV2/index.ts +1 -0
  190. package/lib/components/Sidebar/Sidebar.tsx +18 -3
  191. package/lib/components/Sidebar/SidebarContent.tsx +5 -2
  192. package/lib/components/Sidebar/TenantPanel.tsx +52 -34
  193. package/lib/components/Sidebar/types.ts +11 -1
  194. package/lib/components/Sidebar/utils.ts +1 -1
  195. package/lib/components/SidebarV2/SecondarySidebar.tsx +86 -44
  196. package/lib/components/SidebarV2/SidebarV2Panel.tsx +4 -2
  197. package/lib/components/SidebarV2/index.ts +6 -0
  198. package/lib/components/SidebarV2/types.ts +4 -0
  199. package/lib/components/SingleSelectV2/MobileSingleSelectV2.tsx +2 -2
  200. package/lib/components/SingleSelectV2/SingleSelectV2.tsx +10 -3
  201. package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +4 -2
  202. package/lib/components/SingleSelectV2/SingleSelectV2VirtualList.tsx +5 -2
  203. package/lib/components/SingleSelectV2/index.ts +7 -0
  204. package/lib/components/SingleSelectV2/singleSelectV2.types.ts +2 -2
  205. package/lib/components/SingleSelectV2/utils.ts +10 -10
  206. package/lib/components/StatCard/statcard.tokens.ts +1 -1
  207. package/lib/components/StatCardV2/index.ts +13 -1
  208. package/lib/components/Stepper/VerticalStepper.tsx +209 -171
  209. package/lib/components/Stepper/types.ts +2 -0
  210. package/lib/components/StepperV2/Stepper/Steps.tsx +15 -1
  211. package/lib/components/StepperV2/index.ts +3 -1
  212. package/lib/components/StepperV2/stepperV2.types.ts +2 -2
  213. package/lib/components/TabsV2/index.ts +13 -1
  214. package/lib/components/TagV2/index.ts +3 -0
  215. package/lib/components/Text/Text.tsx +1 -0
  216. package/lib/components/TooltipV2/index.ts +1 -0
  217. package/lib/components/Upload/Upload.tsx +6 -0
  218. package/lib/components/Upload/components/FileListDisplay.tsx +159 -16
  219. package/lib/components/Upload/utils.ts +10 -2
  220. package/lib/components/common/index.ts +1 -1
  221. package/lib/context/ThemeProvider.tsx +19 -8
  222. package/lib/hooks/useDebounce.ts +9 -1
  223. package/lib/main.ts +34 -258
  224. package/lib/types/assets.d.ts +24 -0
  225. package/package.json +2 -1
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- import { F as a, T as o, y as t, x as T, w as n, v as g, z as k, u as V, t as r, s as i, r as l, q as c, g as b, p as d, o as u, n as S, m as p, a as h, l as m, j as v, i as x, k as A, h as C, f as M, e as B, d as E, c as N, b as P } from "./node-CRWdZOVN.js";
1
+ import { F as a, T as o, y as t, x as T, w as n, v as g, z as k, u as V, t as r, s as i, r as l, q as c, g as b, p as d, o as u, n as S, m as p, a as h, l as m, j as v, i as x, k as A, h as C, f as M, e as B, d as E, c as N, b as P } from "./node-C2uf3sNA.js";
2
2
  export {
3
3
  a as FOUNDATION_THEME,
4
4
  o as Theme,
package/dist/tokens.js CHANGED
@@ -1,5 +1,5 @@
1
- import { F as u, T as d, g as k, a as E, b as V, c as g, d as v, e as S, f as p, h, i as R, j as A, k as y, l as C, m as N, n as I, o as P, p as _, q as m, r as B, s as L, t as M, u as w, v as j, w as U, x as D, y as G, z as H } from "./node-CRWdZOVN.js";
2
- import { BRANCH_COLLECTION as ie, BRANCH_ID_PATTERN as ae, PRESETS as ce, PRESET_BLEND_DEFAULT as fe, PRESET_GREEN as le, PRESET_JUSPAY as Te, PRESET_ORANGE as ue, PRESET_PURPLE as de, RADIUS_PRESETS as Oe, SNAPSHOT_SUBCOLLECTION as ke, STORAGE_KEYS as Ee, TEAM_ROLE_PERMISSIONS as Ve, VERSION_PATTERN as ge, VERSION_SUBCOLLECTION as ve, analyzeContrast as Se, canUserPerformAction as pe, diffBrandConfigs as he, extractOverridePaths as Re, generateBranchId as Ae, generateColorScale as ye, getContrastRatio as Ce, getContrastRatioHex as Ne, getDefaultOnboardingState as Ie, getDefaultPreferences as Pe, getPreset as _e, hexToRgb as me, incrementVersion as Be, isValidHexColor as Le, listPresets as Me, meetsWCAG as we, parseBranchId as je, relativeLuminance as Ue, resolveWithInheritance as De, snapshotsPath as Ge, suggestForeground as He, validateAgainstLocks as xe, validateBranchId as Ke, validateBrandConfig as Fe, validatePaletteContrast as Je, validateVersion as $e, versionsPath as Ye } from "./tokens-server.js";
1
+ import { F as u, T as d, g as k, a as E, b as V, c as g, d as v, e as p, f as S, h, i as R, j as A, k as y, l as C, m as N, n as I, o as P, p as m, q as _, r as B, s as L, t as w, u as M, v as j, w as U, x as D, y as G, z as H } from "./node-C2uf3sNA.js";
2
+ import { BRANCH_COLLECTION as ie, BRANCH_ID_PATTERN as ae, PRESETS as ce, PRESET_BLEND_DEFAULT as fe, PRESET_GREEN as le, PRESET_JUSPAY as Te, PRESET_ORANGE as ue, PRESET_PURPLE as de, RADIUS_PRESETS as Oe, SNAPSHOT_SUBCOLLECTION as ke, STORAGE_KEYS as Ee, TEAM_ROLE_PERMISSIONS as Ve, VERSION_PATTERN as ge, VERSION_SUBCOLLECTION as ve, analyzeContrast as pe, canUserPerformAction as Se, diffBrandConfigs as he, extractOverridePaths as Re, generateBranchId as Ae, generateColorScale as ye, getContrastRatio as Ce, getContrastRatioHex as Ne, getDefaultOnboardingState as Ie, getDefaultPreferences as Pe, getPreset as me, hexToRgb as _e, incrementVersion as Be, isValidHexColor as Le, listPresets as we, meetsWCAG as Me, parseBranchId as je, relativeLuminance as Ue, resolveWithInheritance as De, snapshotsPath as Ge, suggestForeground as He, validateAgainstLocks as xe, validateBranchId as Ke, validateBrandConfig as Fe, validatePaletteContrast as Je, validateVersion as $e, versionsPath as Ye } from "./tokens-server.js";
3
3
  function O(e) {
4
4
  const o = typeof structuredClone == "function" ? structuredClone(u) : JSON.parse(JSON.stringify(u));
5
5
  return x(o, e), K(o, e), F(o, e), J(o, e), o;
@@ -30,8 +30,9 @@ function F(e, o) {
30
30
  function J(e, o) {
31
31
  if (o.font) {
32
32
  if (o.font.family) {
33
- const t = e.font;
34
- "family" in t && (t.family = o.font.family);
33
+ const t = e.font.family, n = o.font.family.trim(), s = n.toLowerCase() === "system ui" ? "system-ui, sans-serif" : n;
34
+ for (const r of Object.keys(t))
35
+ r !== "mono" && (t[r] = s);
35
36
  }
36
37
  if (o.font.weight) {
37
38
  const t = e.font.weight;
@@ -46,12 +47,12 @@ const l = {
46
47
  ALERTV2: D,
47
48
  AVATARV2: U,
48
49
  BREADCRUMBV2: j,
49
- CHARTSV2: w,
50
- CHECKBOXV2: M,
50
+ CHARTSV2: M,
51
+ CHECKBOXV2: w,
51
52
  CODEEDITORV2: L,
52
53
  KEYVALUEPAIRV2: B,
53
- MENU_V2: m,
54
- MULTI_SELECT_V2: _,
54
+ MENU_V2: _,
55
+ MULTI_SELECT_V2: m,
55
56
  POPOVERV2: P,
56
57
  PROGRESS_BARV2: I,
57
58
  RADIOV2: N,
@@ -60,8 +61,8 @@ const l = {
60
61
  SNACKBARV2: A,
61
62
  STATCARDV2: R,
62
63
  TABSV2: h,
63
- TAGV2: p,
64
- TEXT_INPUTV2: S,
64
+ TAGV2: S,
65
+ TEXT_INPUTV2: p,
65
66
  TIMELINE: v,
66
67
  TOOLTIPV2: g,
67
68
  TOPBARV2: V,
@@ -198,9 +199,9 @@ export {
198
199
  te as V2_COMPONENT_KEYS,
199
200
  ge as VERSION_PATTERN,
200
201
  ve as VERSION_SUBCOLLECTION,
201
- Se as analyzeContrast,
202
+ pe as analyzeContrast,
202
203
  O as buildBrandFoundation,
203
- pe as canUserPerformAction,
204
+ Se as canUserPerformAction,
204
205
  z as clearTokenCache,
205
206
  he as diffBrandConfigs,
206
207
  Re as extractOverridePaths,
@@ -210,12 +211,12 @@ export {
210
211
  Ne as getContrastRatioHex,
211
212
  Ie as getDefaultOnboardingState,
212
213
  Pe as getDefaultPreferences,
213
- _e as getPreset,
214
- me as hexToRgb,
214
+ me as getPreset,
215
+ _e as hexToRgb,
215
216
  Be as incrementVersion,
216
217
  Le as isValidHexColor,
217
- Me as listPresets,
218
- we as meetsWCAG,
218
+ we as listPresets,
219
+ Me as meetsWCAG,
219
220
  je as parseBranchId,
220
221
  oe as registerResolver,
221
222
  Ue as relativeLuminance,
@@ -1,4 +1,7 @@
1
1
  export { default as AccordionV2 } from './AccordionV2'
2
2
  export { AccordionV2Item } from './AccordionV2Item'
3
+ export { AccordionV2Chevron } from './AccordionV2Chevron'
4
+ export { AccordionV2TriggerContent } from './AccordionV2TriggerContent'
5
+ export * from './accordionV2.animations'
3
6
  export * from './accordionV2.tokens'
4
7
  export * from './accordionV2.types'
@@ -1,4 +1,4 @@
1
- import { forwardRef, useState } from 'react'
1
+ import { forwardRef, useEffect, useState } from 'react'
2
2
  import {
3
3
  type AvatarProps,
4
4
  AvatarSize,
@@ -33,6 +33,11 @@ const Avatar = forwardRef<HTMLDivElement, AvatarProps>(
33
33
  ref
34
34
  ) => {
35
35
  const [imageError, setImageError] = useState(false)
36
+
37
+ useEffect(() => {
38
+ setImageError(false)
39
+ }, [src])
40
+
36
41
  const hasImage = src && !imageError
37
42
  const shouldShowSkeleton = skeleton?.show
38
43
  const variant = hasImage ? 'withImage' : 'withoutImage'
@@ -17,7 +17,7 @@ import { AvatarTokensType } from '../Avatar/avatar.tokens'
17
17
  const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(
18
18
  (
19
19
  {
20
- avatars,
20
+ avatars = [],
21
21
  maxCount = 5,
22
22
  size = AvatarSize.MD,
23
23
  shape = AvatarShape.CIRCULAR,
@@ -1,4 +1,9 @@
1
- import React, { forwardRef, useState, type ReactElement } from 'react'
1
+ import React, {
2
+ forwardRef,
3
+ useEffect,
4
+ useState,
5
+ type ReactElement,
6
+ } from 'react'
2
7
  import {
3
8
  AvatarV2Props,
4
9
  AvatarV2Size,
@@ -21,7 +26,7 @@ import {
21
26
  getAriaLiveValue,
22
27
  getStatusPositionStyles,
23
28
  renderFallbackContent,
24
- createKeyboardHandler,
29
+ createAvatarKeyboardHandler,
25
30
  isInteractive,
26
31
  } from './avatarV2.utils'
27
32
 
@@ -176,6 +181,10 @@ const AvatarV2 = forwardRef<HTMLDivElement, AvatarV2Props>(
176
181
  ) => {
177
182
  const [imageError, setImageError] = useState(false)
178
183
 
184
+ useEffect(() => {
185
+ setImageError(false)
186
+ }, [src])
187
+
179
188
  const tokens = useResponsiveTokens<AvatarV2TokensType>('AVATARV2')
180
189
 
181
190
  const hasImage = src && !imageError
@@ -209,7 +218,7 @@ const AvatarV2 = forwardRef<HTMLDivElement, AvatarV2Props>(
209
218
  onImageLoad?.()
210
219
  }
211
220
 
212
- const keyboardHandler = createKeyboardHandler(rest.onClick)
221
+ const keyboardHandler = createAvatarKeyboardHandler(rest.onClick)
213
222
  const filteredProps = filterBlockedProps(rest)
214
223
 
215
224
  const renderAvatarContent = () => {
@@ -174,7 +174,7 @@ export function getStatusPositionStyles(
174
174
  return { top, right }
175
175
  }
176
176
  }
177
- export function createKeyboardHandler(
177
+ export function createAvatarKeyboardHandler(
178
178
  onClick: ((event: React.MouseEvent<HTMLDivElement>) => void) | undefined
179
179
  ) {
180
180
  if (!onClick) {
@@ -1,15 +1,4 @@
1
1
  export { default as AvatarV2 } from './AvatarV2'
2
- export type {
3
- AvatarV2Props,
4
- AvatarV2SkeletonConfig,
5
- AvatarV2StatusConfig,
6
- } from './avatarV2.types'
7
- export {
8
- AvatarV2Size,
9
- AvatarV2Shape,
10
- AvatarV2Status,
11
- AvatarV2StatusPosition,
12
- AvatarV2Variant,
13
- } from './avatarV2.types'
2
+ export * from './avatarV2.types'
14
3
  export * from './avatarV2.tokens'
15
4
  export * from './avatarV2.utils'
@@ -5,7 +5,12 @@ import PrimitiveButton from '../Primitives/PrimitiveButton/PrimitiveButton'
5
5
  import PrimitiveText from '../Primitives/PrimitiveText/PrimitiveText'
6
6
  import { FOUNDATION_THEME } from '../../tokens'
7
7
  import type { BreadcrumbTokenType } from './breadcrumb.tokens'
8
- import type { BreadcrumbItemType, BreadcrumbSkeletonProps } from './types'
8
+ import type {
9
+ BreadcrumbItemType,
10
+ BreadcrumbProps,
11
+ BreadcrumbSkeletonProps,
12
+ } from './types'
13
+ import { normalizeBreadcrumbItems } from './types'
9
14
  import { useResponsiveTokens } from '../../hooks/useResponsiveTokens'
10
15
  import { SkeletonVariant } from '../Skeleton'
11
16
  import BreadcrumbSkeleton from './BreadcrumbSkeleton'
@@ -111,13 +116,9 @@ const BreadcrumbItem = ({
111
116
  )
112
117
  }
113
118
 
114
- const Breadcrumb = ({
115
- items,
116
- skeleton,
117
- }: {
118
- items: BreadcrumbItemType[]
119
- skeleton?: BreadcrumbSkeletonProps
120
- }) => {
119
+ const Breadcrumb = ({ items: itemsProp, skeleton }: BreadcrumbProps) => {
120
+ const items = normalizeBreadcrumbItems(itemsProp)
121
+
121
122
  const breadcrumbTokens =
122
123
  useResponsiveTokens<BreadcrumbTokenType>('BREADCRUMB')
123
124
  if (items.length === 0) return null
@@ -5,6 +5,18 @@ export type BreadcrumbSkeletonProps = {
5
5
  variant: SkeletonVariant
6
6
  }
7
7
 
8
+ /** Replace null, undefined, or non-array `items` with `[]`. */
9
+ export function normalizeBreadcrumbItems(
10
+ items: BreadcrumbItemType[] | null | undefined
11
+ ): BreadcrumbItemType[] {
12
+ return Array.isArray(items) ? items : []
13
+ }
14
+
15
+ export type BreadcrumbProps = {
16
+ items: BreadcrumbItemType[] | null
17
+ skeleton?: BreadcrumbSkeletonProps
18
+ }
19
+
8
20
  export type BreadcrumbItemType = {
9
21
  leftSlot?: React.ReactNode
10
22
  rightSlot?: React.ReactNode
@@ -1,3 +1,13 @@
1
1
  export { default as BreadcrumbV2 } from './BreadcrumbV2'
2
+ export { default as BreadcrumbV2Icon } from './BreadcrumbV2Icon'
3
+ export { default as BreadcrumbV2Item } from './BreadcrumbV2Item'
4
+ export { default as BreadcrumbV2List } from './BreadcrumbV2List'
5
+ export type { BreadcrumbV2ListProps } from './BreadcrumbV2List'
6
+ export { default as BreadcrumbV2OverflowMenu } from './BreadcrumbV2OverflowMenu'
7
+ export type { BreadcrumbV2OverflowMenuProps } from './BreadcrumbV2OverflowMenu'
8
+ export { default as BreadcrumbV2Page } from './BreadcrumbV2Page'
9
+ export type { BreadcrumbV2PageProps } from './BreadcrumbV2Page'
10
+ export { default as BreadcrumbV2Separator } from './BreadcrumbV2Separator'
2
11
  export * from './breadcrumbV2.tokens'
3
12
  export * from './breadcrumbV2.types'
13
+ export * from './utils'
@@ -11,7 +11,7 @@ import type { ButtonTokensType } from './button.tokens'
11
11
  import { LoaderCircle } from 'lucide-react'
12
12
  import { useResponsiveTokens } from '../../hooks/useResponsiveTokens'
13
13
  import { FOUNDATION_THEME } from '../../tokens'
14
- const StyledButtonText = styled(Text)`
14
+ const StyledButtonText = styled.span`
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: center;
@@ -4,3 +4,4 @@ export type {
4
4
  ButtonGroupPosition,
5
5
  } from './buttonGroupV2.types'
6
6
  export * from './buttonGroupV2.types'
7
+ export * from './utils'
@@ -15,7 +15,7 @@ import Skeleton from '../Skeleton/Skeleton'
15
15
  import PrimitiveButton from '../Primitives/PrimitiveButton/PrimitiveButton'
16
16
  import { VisuallyHidden } from './VisuallyHidden'
17
17
  import {
18
- getBorderRadius,
18
+ getButtonV2BorderRadius,
19
19
  getButtonHeight,
20
20
  getButtonStatus,
21
21
  getButtonTabIndex,
@@ -208,7 +208,7 @@ const ButtonV2 = forwardRef<HTMLButtonElement, ButtonV2Props>(
208
208
  onClick?.(event)
209
209
  }
210
210
 
211
- const borderRadius = getBorderRadius(
211
+ const borderRadius = getButtonV2BorderRadius(
212
212
  size,
213
213
  buttonType,
214
214
  subType,
@@ -12,7 +12,7 @@ import { useResponsiveTokens } from '../../hooks/useResponsiveTokens'
12
12
  import Skeleton from '../Skeleton/Skeleton'
13
13
  import { renderButtonContent } from './ButtonV2'
14
14
  import {
15
- getBorderRadius,
15
+ getButtonV2BorderRadius,
16
16
  getButtonHeight,
17
17
  getButtonStatus,
18
18
  getSkeletonBorderRadius,
@@ -60,7 +60,7 @@ const LinkButton = forwardRef<HTMLAnchorElement, LinkButtonProps>(
60
60
  )
61
61
  const buttonStatus = getButtonStatus(isLoading, isDisabled)
62
62
 
63
- const borderRadius = getBorderRadius(
63
+ const borderRadius = getButtonV2BorderRadius(
64
64
  size,
65
65
  buttonType,
66
66
  subType,
@@ -34,12 +34,6 @@ export enum PaddingDirection {
34
34
  LEFT = 'left',
35
35
  }
36
36
 
37
- // Legacy exports for backward compatibility
38
- export const ButtonType = ButtonV2Type
39
- export const ButtonSize = ButtonV2Size
40
- export const ButtonSubType = ButtonV2SubType
41
- export const ButtonState = ButtonV2State
42
-
43
37
  export type ButtonSlot = {
44
38
  slot: React.ReactNode
45
39
  maxHeight?: string | number
@@ -1,4 +1,5 @@
1
1
  export { default as ButtonV2 } from './ButtonV2'
2
+ export { renderButtonContent } from './ButtonV2'
2
3
  export { default as IconButton } from './IconButton'
3
4
  export { default as LinkButton } from './LinkButton'
4
5
  export { ButtonGroupV2 } from './ButtonGroupV2'
@@ -6,3 +7,5 @@ export type { ButtonV2Props, LinkButtonProps } from './buttonV2.types'
6
7
  export type { IconButtonProps } from './IconButton'
7
8
  export type { ButtonGroupV2Props, ButtonGroupPosition } from './ButtonGroupV2'
8
9
  export * from './buttonV2.types'
10
+ export * from './buttonV2.tokens'
11
+ export * from './utils'
@@ -10,7 +10,7 @@ import {
10
10
  import type { ButtonV2TokensType } from './buttonV2.tokens'
11
11
  import { FOUNDATION_THEME } from '../../tokens'
12
12
 
13
- export function getBorderRadius(
13
+ export function getButtonV2BorderRadius(
14
14
  size: ButtonV2Size,
15
15
  buttonType: ButtonV2Type,
16
16
  subType: ButtonV2SubType,
@@ -101,7 +101,7 @@ export function getSkeletonBorderRadius(
101
101
  buttonGroupPosition: 'center' | 'left' | 'right' | undefined,
102
102
  tokens: ButtonV2TokensType
103
103
  ): string {
104
- return getBorderRadius(
104
+ return getButtonV2BorderRadius(
105
105
  size,
106
106
  buttonType,
107
107
  subType,
@@ -44,6 +44,37 @@ type CustomCardComponentProps = {
44
44
  baseId?: string
45
45
  }
46
46
 
47
+ const isPlainTextContent = (content: React.ReactNode) =>
48
+ typeof content === 'string' || typeof content === 'number'
49
+
50
+ const CardBodyContent = ({
51
+ content,
52
+ contentId,
53
+ cardToken,
54
+ describedBy,
55
+ }: {
56
+ content: React.ReactNode
57
+ contentId: string
58
+ cardToken: CardTokenType
59
+ describedBy?: string
60
+ }) => {
61
+ const sharedProps = {
62
+ id: contentId,
63
+ style: getBodyContentStyles(cardToken),
64
+ 'aria-describedby': describedBy,
65
+ }
66
+
67
+ if (isPlainTextContent(content)) {
68
+ return (
69
+ <Text as="p" {...sharedProps}>
70
+ {content}
71
+ </Text>
72
+ )
73
+ }
74
+
75
+ return <Block {...sharedProps}>{content}</Block>
76
+ }
77
+
47
78
  export const DefaultCard: React.FC<CardComponentProps> = ({
48
79
  props,
49
80
  cardToken,
@@ -80,6 +111,9 @@ export const DefaultCard: React.FC<CardComponentProps> = ({
80
111
  const subHeaderId = `${baseId}-subheader`
81
112
  const bodyTitleId = `${baseId}-body-title`
82
113
  const contentId = `${baseId}-content`
114
+ const contentDataId = isPlainTextContent(content)
115
+ ? String(content)
116
+ : undefined
83
117
 
84
118
  return (
85
119
  <>
@@ -228,22 +262,20 @@ export const DefaultCard: React.FC<CardComponentProps> = ({
228
262
  ),
229
263
  }}
230
264
  data-element="card-body-content"
231
- data-id={content}
265
+ data-id={contentDataId}
232
266
  >
233
- <Text
234
- as="p"
235
- id={contentId}
236
- style={getBodyContentStyles(cardToken)}
237
- aria-describedby={
267
+ <CardBodyContent
268
+ content={content}
269
+ contentId={contentId}
270
+ cardToken={cardToken}
271
+ describedBy={
238
272
  bodyTitle
239
273
  ? bodyTitleId
240
274
  : headerTitle
241
275
  ? headerTitleId
242
276
  : undefined
243
277
  }
244
- >
245
- {content}
246
- </Text>
278
+ />
247
279
  </Block>
248
280
  )}
249
281
 
@@ -461,20 +493,18 @@ const CardContent: React.FC<{
461
493
  }
462
494
  >
463
495
  {hasContent && (
464
- <Text
465
- as="p"
466
- id={contentId}
467
- style={getBodyContentStyles(cardToken)}
468
- aria-describedby={
496
+ <CardBodyContent
497
+ content={content}
498
+ contentId={contentId}
499
+ cardToken={cardToken}
500
+ describedBy={
469
501
  bodyTitle
470
502
  ? bodyTitleId
471
503
  : headerTitle
472
504
  ? headerTitleId
473
505
  : undefined
474
506
  }
475
- >
476
- {content}
477
- </Text>
507
+ />
478
508
  )}
479
509
 
480
510
  {hasActionButton && (
@@ -612,7 +642,12 @@ export const CustomCard: React.FC<CustomCardComponentProps> = ({
612
642
 
613
643
  return (
614
644
  <Block
645
+ display="flex"
646
+ flexDirection="column"
647
+ flexGrow={1}
615
648
  style={{
649
+ minHeight: 0,
650
+ width: '100%',
616
651
  ...(maxHeight && {
617
652
  overflowY: 'auto',
618
653
  overflowX: 'hidden',
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
 
3
- import HighchartsReact from 'highcharts-react-official'
3
+ import { HighchartsReact } from 'highcharts-react-official'
4
4
  import Highcharts from 'highcharts'
5
5
  import 'highcharts/modules/xrange'
6
6
  import { forwardRef, useRef } from 'react'
@@ -6,6 +6,13 @@ import {
6
6
  } from './types'
7
7
  import { parseTimestamp, dateFormat } from './DateTimeFormatter'
8
8
 
9
+ /** Replace null, undefined, or non-array `data` with `[]` (empty / no-data state). */
10
+ export function normalizeChartData(
11
+ data: NewNestedDataPoint[] | null | undefined
12
+ ): NewNestedDataPoint[] {
13
+ return Array.isArray(data) ? data : []
14
+ }
15
+
9
16
  export function transformNestedData(
10
17
  data: NewNestedDataPoint[],
11
18
  selectedKeys: string[] = []
@@ -5,7 +5,7 @@ import ChartHeader from './ChartHeader'
5
5
  import ChartLegends from './ChartLegend'
6
6
  import { useRef, useState, useEffect, useCallback, useId, useMemo } from 'react'
7
7
  import { renderChart } from './renderChart'
8
- import { transformNestedData } from './ChartUtils'
8
+ import { normalizeChartData, transformNestedData } from './ChartUtils'
9
9
  import Block from '../../components/Primitives/Block/Block'
10
10
  import { ChartTokensType } from './chart.tokens'
11
11
  import { FOUNDATION_THEME } from '../../tokens'
@@ -20,7 +20,7 @@ import ChartsSkeleton from './ChartsSkeleton'
20
20
 
21
21
  const Charts: React.FC<ChartsProps> = ({
22
22
  chartType = ChartType.LINE,
23
- data,
23
+ data: dataProp,
24
24
  colors,
25
25
  slot1,
26
26
  slot2,
@@ -46,6 +46,8 @@ const Charts: React.FC<ChartsProps> = ({
46
46
  lineSeriesKeys,
47
47
  ...props
48
48
  }) => {
49
+ const data = normalizeChartData(dataProp)
50
+
49
51
  const { breakPointLabel } = useBreakpoints(BREAKPOINTS)
50
52
  const isSmallScreen = breakPointLabel === 'sm'
51
53
  const chartTokens = useResponsiveTokens<ChartTokensType>('CHARTS')
@@ -3,11 +3,11 @@ import { ResponsiveContainer } from 'recharts'
3
3
  import { ChartType, CoreChartProps } from './types'
4
4
  import { DEFAULT_COLORS } from './utils'
5
5
  import { renderChart } from './renderChart'
6
- import { transformNestedData } from './ChartUtils'
6
+ import { normalizeChartData, transformNestedData } from './ChartUtils'
7
7
 
8
8
  export const CoreChart: React.FC<CoreChartProps> = ({
9
9
  chartType = ChartType.LINE,
10
- data,
10
+ data: dataProp,
11
11
  colors = DEFAULT_COLORS,
12
12
  barsize,
13
13
  xAxis,
@@ -22,6 +22,8 @@ export const CoreChart: React.FC<CoreChartProps> = ({
22
22
  enableHover = false,
23
23
  lineSeriesKeys,
24
24
  }) => {
25
+ const data = normalizeChartData(dataProp)
26
+
25
27
  const [internalHoveredKey, setInternalHoveredKey] = useState<string | null>(
26
28
  null
27
29
  )
@@ -151,7 +151,7 @@ export type RenderChartProps = {
151
151
 
152
152
  export type CoreChartProps = {
153
153
  chartType?: ChartType
154
- data: NewNestedDataPoint[]
154
+ data?: NewNestedDataPoint[] | null
155
155
  colors?: { key: string; color: string }[]
156
156
  barsize?: number
157
157
  xAxis?: XAxisConfig
@@ -175,7 +175,7 @@ export type ChartsSkeletonProps = {
175
175
 
176
176
  export type ChartsProps = {
177
177
  chartType?: ChartType
178
- data: NewNestedDataPoint[]
178
+ data?: NewNestedDataPoint[] | null
179
179
  colors?: { key: string; color: string }[]
180
180
  slot1?: ReactNode
181
181
  slot2?: ReactNode
@@ -5,8 +5,9 @@ import {
5
5
  ChartV2SeriesOptionsType,
6
6
  } from './chartV2.types'
7
7
  import Highcharts from 'highcharts'
8
- import HighchartsReact, {
9
- HighchartsReactProps,
8
+ import {
9
+ HighchartsReact,
10
+ type HighchartsReactProps,
10
11
  } from 'highcharts-react-official'
11
12
  import { useResponsiveTokens } from '../../hooks/useResponsiveTokens'
12
13
  import { ChartV2TokensType } from './chartV2.tokens'
@@ -31,7 +32,7 @@ const ChartV2 = forwardRef<ChartV2ReactRefObject, ChartV2Props>(
31
32
  ref
32
33
  ) => {
33
34
  const tokens = useResponsiveTokens<ChartV2TokensType>('CHARTSV2')
34
- const { options, ...restProps } = props
35
+ const { options = {}, ...restProps } = props
35
36
 
36
37
  const hasSeriesData =
37
38
  (options.series as ChartV2SeriesOptionsType[] | undefined)?.some(
@@ -7,3 +7,8 @@ export { default as ChartV2Skeleton } from './ChartV2Skeleton'
7
7
  export { default as ChartV2NoData } from './ChartV2NoData'
8
8
  export * from './chartV2.tokens'
9
9
  export * from './chartV2.types'
10
+ export { useChartLegend } from './useChartLegend'
11
+ export { useChartLegendHover } from './useChartLegendHover'
12
+ export { default as useChartRefs } from './useChartRefs'
13
+ export { getLegendItems, applyHoverState } from './utils'
14
+ export { mergeChartOptions } from './chartV2Options'