@juspay/blend-design-system 0.0.37-beta.6 → 0.0.37-beta.8

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 (92) hide show
  1. package/dist/components/CodeEditor/types.d.ts +22 -2
  2. package/dist/components/CodeEditorV2/CodeEditorV2.d.ts +1 -1
  3. package/dist/components/CodeEditorV2/codeEditorV2.types.d.ts +23 -2
  4. package/dist/components/DataTable/TableBody/types.d.ts +1 -0
  5. package/dist/components/DataTable/TableCell/types.d.ts +1 -0
  6. package/dist/components/DataTable/columnTypes.d.ts +5 -3
  7. package/dist/components/DataTable/dataTable.tokens.d.ts +4 -0
  8. package/dist/components/DataTable/types.d.ts +20 -2
  9. package/dist/components/DataTable/utils.d.ts +4 -3
  10. package/dist/components/MenuV2/MenuV2Content.d.ts +1 -0
  11. package/dist/components/MenuV2/menuV2.types.d.ts +5 -0
  12. package/dist/components/MenuV2/menuV2.utils.d.ts +10 -2
  13. package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
  14. package/dist/components/MultiSelect/MultiSelectMenu.d.ts +1 -1
  15. package/dist/components/MultiSelect/types.d.ts +2 -0
  16. package/dist/components/MultiSelectV2/MultiSelectV2.d.ts +1 -1
  17. package/dist/components/MultiSelectV2/MultiSelectV2Menu.d.ts +1 -1
  18. package/dist/components/MultiSelectV2/multiSelectV2.types.d.ts +2 -0
  19. package/dist/components/SingleSelect/SingleSelect.d.ts +1 -1
  20. package/dist/components/SingleSelect/SingleSelectMenu.d.ts +2 -1
  21. package/dist/components/SingleSelect/types.d.ts +1 -0
  22. package/dist/components/SingleSelectV2/SingleSelectV2.d.ts +1 -1
  23. package/dist/components/SingleSelectV2/SingleSelectV2Menu.d.ts +1 -1
  24. package/dist/components/SingleSelectV2/singleSelectV2.tokens.types.d.ts +8 -0
  25. package/dist/components/SingleSelectV2/singleSelectV2.types.d.ts +2 -0
  26. package/dist/components/Skeleton/hooks/useSkeletonBase.d.ts +7 -11
  27. package/dist/components/Snackbar/Snackbar.d.ts +1 -1
  28. package/dist/components/Snackbar/snackbar.tokens.d.ts +1 -0
  29. package/dist/components/Snackbar/types.d.ts +2 -0
  30. package/dist/components/StatCardV2/StatCardV2.d.ts +1 -0
  31. package/dist/components/StatCardV2/StatCardV2NoData.d.ts +2 -2
  32. package/dist/components/StatCardV2/statcardV2.types.d.ts +1 -0
  33. package/dist/components/TabsV2/tabsV2.tokens.types.d.ts +3 -0
  34. package/dist/global-utils/GlobalUtils.d.ts +2 -1
  35. package/dist/main.js +27446 -27271
  36. package/dist/{node-CJ_Tft0g.js → node-CovJEwot.js} +65 -25
  37. package/dist/node.js +1 -1
  38. package/dist/{tokens.js → token-engine.js} +1 -1
  39. package/lib/components/Card/Card.tsx +1 -0
  40. package/lib/components/Charts/ChartHeader.tsx +4 -1
  41. package/lib/components/CodeBlock/CodeBlock.tsx +8 -4
  42. package/lib/components/CodeEditor/MonacoEditorWrapper.tsx +6 -2
  43. package/lib/components/CodeEditor/types.ts +52 -2
  44. package/lib/components/CodeEditorV2/MonacoEditor/MonacoEditorWrapper.tsx +6 -2
  45. package/lib/components/CodeEditorV2/codeEditorV2.types.ts +44 -5
  46. package/lib/components/DataTable/DataTable.tsx +2 -0
  47. package/lib/components/DataTable/TableBody/index.tsx +2 -0
  48. package/lib/components/DataTable/TableBody/types.ts +1 -0
  49. package/lib/components/DataTable/TableCell/index.tsx +45 -20
  50. package/lib/components/DataTable/TableCell/types.ts +1 -0
  51. package/lib/components/DataTable/columnTypes.ts +5 -3
  52. package/lib/components/DataTable/dataTable.tokens.ts +15 -0
  53. package/lib/components/DataTable/types.ts +33 -2
  54. package/lib/components/DataTable/utils.ts +91 -5
  55. package/lib/components/DateRangePicker/CalendarGrid.tsx +3 -0
  56. package/lib/components/DateRangePicker/DateRangePicker.tsx +5 -1
  57. package/lib/components/MenuV2/MenuV2.tsx +9 -2
  58. package/lib/components/MenuV2/MenuV2Content.tsx +6 -0
  59. package/lib/components/MenuV2/MenuV2SubMenu.tsx +16 -2
  60. package/lib/components/MenuV2/menuV2.types.ts +11 -0
  61. package/lib/components/MenuV2/menuV2.utils.ts +45 -3
  62. package/lib/components/MultiSelect/MultiSelect.tsx +2 -0
  63. package/lib/components/MultiSelect/MultiSelectMenu.tsx +8 -0
  64. package/lib/components/MultiSelect/types.ts +2 -0
  65. package/lib/components/MultiSelectV2/MultiSelectV2.tsx +2 -0
  66. package/lib/components/MultiSelectV2/MultiSelectV2Menu.tsx +8 -0
  67. package/lib/components/MultiSelectV2/multiSelectV2.types.ts +2 -0
  68. package/lib/components/SingleSelect/SingleSelect.tsx +2 -0
  69. package/lib/components/SingleSelect/SingleSelectMenu.tsx +171 -138
  70. package/lib/components/SingleSelect/types.ts +1 -0
  71. package/lib/components/SingleSelectV2/SingleSelectV2.tsx +2 -0
  72. package/lib/components/SingleSelectV2/SingleSelectV2Menu.tsx +84 -58
  73. package/lib/components/SingleSelectV2/SingleSelectV2Search.tsx +1 -0
  74. package/lib/components/SingleSelectV2/singleSelectV2.dark.tokens.ts +8 -0
  75. package/lib/components/SingleSelectV2/singleSelectV2.light.tokens.ts +8 -0
  76. package/lib/components/SingleSelectV2/singleSelectV2.tokens.types.ts +8 -0
  77. package/lib/components/SingleSelectV2/singleSelectV2.types.ts +2 -0
  78. package/lib/components/Skeleton/hooks/useSkeletonBase.ts +11 -1
  79. package/lib/components/Snackbar/Snackbar.tsx +18 -8
  80. package/lib/components/Snackbar/snackbar.tokens.ts +6 -0
  81. package/lib/components/Snackbar/types.ts +2 -0
  82. package/lib/components/StatCard/StatCard.tsx +39 -2
  83. package/lib/components/StatCardV2/StatCardV2.tsx +8 -6
  84. package/lib/components/StatCardV2/StatCardV2NoData.tsx +8 -6
  85. package/lib/components/StatCardV2/statcardV2.types.ts +1 -0
  86. package/lib/components/TabsV2/TabsV2List.tsx +5 -1
  87. package/lib/components/TabsV2/tabsV2.dark.tokens.ts +12 -0
  88. package/lib/components/TabsV2/tabsV2.light.tokens.ts +12 -0
  89. package/lib/components/TabsV2/tabsV2.tokens.types.ts +3 -0
  90. package/lib/global-utils/GlobalUtils.ts +10 -1
  91. package/package.json +5 -4
  92. package/dist/tokens.d.ts +0 -2
@@ -1,9 +1,29 @@
1
1
  import { ReactNode } from 'react';
2
- import { SupportedLanguage } from '../CodeBlock/types';
3
2
  export declare enum CodeEditorVariant {
4
3
  DEFAULT = "default",
5
4
  NO_GUTTER = "no-gutter"
6
5
  }
6
+ /**
7
+ * Common Monaco language IDs, provided purely for IDE autocomplete on the
8
+ * `language` prop — NOT a runtime constraint. Every entry is verified against
9
+ * the language IDs monaco-editor actually registers (Monaco does not export a
10
+ * static union of its built-in IDs; they are only enumerable at runtime via
11
+ * `monaco.languages.getLanguages()`). Note Monaco's plain-text ID is
12
+ * `plaintext` and shell scripts are `shell` (there is no `bash` ID). Monaco
13
+ * also has no distinct `jsx`/`tsx` IDs — those still work through the open
14
+ * string arm of {@link CodeEditorLanguage}: the editor maps them onto the
15
+ * `javascript`/`typescript` tokenizers.
16
+ */
17
+ export type KnownCodeEditorLanguage = 'javascript' | 'typescript' | 'json' | 'css' | 'scss' | 'less' | 'html' | 'xml' | 'markdown' | 'yaml' | 'ini' | 'graphql' | 'sql' | 'python' | 'rust' | 'go' | 'java' | 'kotlin' | 'swift' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'shell' | 'powershell' | 'dockerfile' | 'plaintext';
18
+ /**
19
+ * Language accepted by {@link CodeEditorProps.language}: autocomplete for
20
+ * {@link KnownCodeEditorLanguage}, while `(string & {})` keeps the prop open
21
+ * to every other Monaco language ID (the component forwards to Monaco, whose
22
+ * own `language` option is a plain `string`). Decoupled from `CodeBlock`'s
23
+ * `SupportedLanguage`, which is scoped to CodeBlock's hand-rolled tokenizer
24
+ * rather than Monaco.
25
+ */
26
+ export type CodeEditorLanguage = KnownCodeEditorLanguage | (string & {});
7
27
  export type CodeEditorProps = {
8
28
  value: string;
9
29
  onChange?: (value: string) => void;
@@ -28,7 +48,7 @@ export type CodeEditorProps = {
28
48
  */
29
49
  showLeftIcon?: boolean;
30
50
  showCopyButton?: boolean;
31
- language?: SupportedLanguage;
51
+ language?: CodeEditorLanguage;
32
52
  placeholder?: string;
33
53
  readOnly?: boolean;
34
54
  disabled?: boolean;
@@ -11,7 +11,7 @@ declare const CodeEditorV2: import('react').ForwardRefExoticComponent<{
11
11
  rightSlot?: import('react').ReactNode;
12
12
  showCopyButton?: boolean;
13
13
  };
14
- language?: import('./codeEditorV2.types').CodeEditorV2SupportedLanguage;
14
+ language?: import('./codeEditorV2.types').CodeEditorV2Language;
15
15
  placeholder?: string;
16
16
  readOnly?: boolean;
17
17
  disabled?: boolean;
@@ -15,7 +15,28 @@ export type CodeEditorV2DiffLine = {
15
15
  content: string;
16
16
  type: CodeEditorV2DiffLineType;
17
17
  };
18
- export type CodeEditorV2SupportedLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | 'json' | 'css' | 'html' | 'markdown' | 'yaml' | 'python' | 'rust' | 'haskell';
18
+ /**
19
+ * Common Monaco language IDs, provided purely for IDE autocomplete on the
20
+ * `language` prop — NOT a runtime constraint. Every entry is verified against
21
+ * the language IDs monaco-editor actually registers (Monaco does not export a
22
+ * static union of its built-in IDs; they are only enumerable at runtime via
23
+ * `monaco.languages.getLanguages()`). Note Monaco's plain-text ID is
24
+ * `plaintext` and shell scripts are `shell` (there is no `bash` ID). Monaco
25
+ * also has no distinct `jsx`/`tsx` IDs — those still work through the open
26
+ * string arm of {@link CodeEditorV2Language}: the editor maps them onto the
27
+ * `javascript`/`typescript` tokenizers.
28
+ */
29
+ export type KnownCodeEditorV2Language = 'javascript' | 'typescript' | 'json' | 'css' | 'scss' | 'less' | 'html' | 'xml' | 'markdown' | 'yaml' | 'ini' | 'graphql' | 'sql' | 'python' | 'rust' | 'go' | 'java' | 'kotlin' | 'swift' | 'c' | 'cpp' | 'csharp' | 'php' | 'ruby' | 'shell' | 'powershell' | 'dockerfile' | 'plaintext';
30
+ /**
31
+ * Language accepted by {@link CodeEditorV2Props.language}: autocomplete for
32
+ * {@link KnownCodeEditorV2Language}, while `(string & {})` keeps the prop open
33
+ * to every other Monaco language ID (matching the internal
34
+ * `MonacoEditorWrapper`'s `language: string` — Monaco itself types the option
35
+ * as a plain `string`).
36
+ */
37
+ export type CodeEditorV2Language = KnownCodeEditorV2Language | (string & {});
38
+ /** @deprecated Use {@link CodeEditorV2Language} instead. */
39
+ export type CodeEditorV2SupportedLanguage = CodeEditorV2Language;
19
40
  export type CodeEditorV2Dimensions = {
20
41
  width?: CSSObject['width'];
21
42
  maxWidth?: CSSObject['maxWidth'];
@@ -37,7 +58,7 @@ export type CodeEditorV2Props = {
37
58
  rightSlot?: ReactNode;
38
59
  showCopyButton?: boolean;
39
60
  };
40
- language?: CodeEditorV2SupportedLanguage;
61
+ language?: CodeEditorV2Language;
41
62
  placeholder?: string;
42
63
  readOnly?: boolean;
43
64
  disabled?: boolean;
@@ -46,6 +46,7 @@ export type TableBodyProps<T extends Record<string, unknown>> = {
46
46
  getColumnWidth: (column: ColumnDefinition<T>, index: number) => React.CSSProperties;
47
47
  getRowStyle?: (row: T, index: number) => React.CSSProperties;
48
48
  getDisplayValue?: (value: unknown, column: ColumnDefinition<T>) => unknown;
49
+ dateLabel?: string;
49
50
  isLoading?: boolean;
50
51
  showSkeleton?: boolean;
51
52
  skeletonVariant?: SkeletonVariant;
@@ -14,6 +14,7 @@ export type TableCellProps<T extends Record<string, unknown>> = {
14
14
  hasCustomBackground?: boolean;
15
15
  onFieldChange: (value: unknown) => void;
16
16
  getDisplayValue?: (value: unknown, column: ColumnDefinition<T>) => unknown;
17
+ dateLabel?: string;
17
18
  'data-row-index'?: number;
18
19
  'data-col-index'?: number;
19
20
  tabIndex?: number;
@@ -1,4 +1,4 @@
1
- import { FilterType, ColumnType } from './types';
1
+ import { FilterType, ColumnType, DateFormat } from './types';
2
2
  export type ColumnFilterOption = {
3
3
  id: string;
4
4
  label: string;
@@ -36,12 +36,14 @@ export type MultiSelectData = {
36
36
  };
37
37
  export type DateData = {
38
38
  date: Date | string;
39
- format?: string;
39
+ format?: DateFormat;
40
+ dateLabel?: string;
40
41
  };
41
42
  export type DateRangeData = {
42
43
  startDate: Date | string;
43
44
  endDate: Date | string;
44
- format?: string;
45
+ format?: DateFormat;
46
+ dateLabel?: string;
45
47
  };
46
48
  export type ColumnDataTypeMap = {
47
49
  [ColumnType.TEXT]: string | number;
@@ -194,6 +194,10 @@ export type TableTokenType = BasicCSSProps & {
194
194
  color: CSSObject['color'];
195
195
  fontSize: CSSObject['fontSize'];
196
196
  borderTop: CSSObject['borderTop'];
197
+ dateLabel: {
198
+ fontSize: CSSObject['fontSize'];
199
+ color: CSSObject['color'];
200
+ };
197
201
  expandable: {
198
202
  padding: CSSObject['padding'];
199
203
  borderTop: CSSObject['borderTop'];
@@ -73,10 +73,18 @@ export type DropdownColumnProps = {
73
73
  placeholder?: string;
74
74
  onSelect?: (value: unknown) => void;
75
75
  };
76
+ /**
77
+ * Format string for date display in DataTable DATE columns.
78
+ * @example 'DD MMM YYYY' → "24 Jun 2026"
79
+ * @example 'DD/MM/YYYY' → "24/06/2026"
80
+ * @example 'DD MMM YYYY, hh:mm A' → "24 Jun 2026, 10:30 AM"
81
+ */
82
+ export type DateFormat = 'DD MMM YYYY' | 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY-MM-DD' | 'DD MMM YYYY, hh:mm A' | 'DD MMM YYYY, HH:mm' | 'MMM DD, YYYY' | 'YYYY/MM/DD HH:mm' | 'HH:mm:ss' | (string & {});
76
83
  export type DateColumnProps = {
77
84
  date: Date | string;
78
- format?: string;
85
+ format?: DateFormat;
79
86
  showTime?: boolean;
87
+ dateLabel?: string;
80
88
  };
81
89
  export type SliderColumnProps = {
82
90
  min: number;
@@ -204,8 +212,13 @@ export type ColumnDefinition<T> = (BaseColumnDefinition<T> & {
204
212
  }) | (BaseColumnDefinition<T> & {
205
213
  type: ColumnType.DATE;
206
214
  renderCell?: (value: DateColumnProps, row: T, index: number) => ReactNode;
207
- dateFormat?: string;
215
+ dateFormat?: DateFormat;
208
216
  showTime?: boolean;
217
+ /**
218
+ * Optional label appended after the formatted date, e.g. "(IST)".
219
+ * Column-level value can be overridden per-cell via DateColumnProps.dateLabel.
220
+ */
221
+ dateLabel?: string;
209
222
  }) | (BaseColumnDefinition<T> & {
210
223
  type: ColumnType.SLIDER;
211
224
  renderCell?: (value: number, row: T, index: number) => ReactNode;
@@ -365,6 +378,11 @@ export type DataTableProps<T extends Record<string, unknown>> = {
365
378
  getRowStyle?: (row: T, index: number) => React.CSSProperties;
366
379
  tableBodyHeight?: string | number;
367
380
  mobileColumnsToShow?: number;
381
+ /**
382
+ * Optional label appended after formatted dates in DATE columns,
383
+ * e.g. "(IST)". Can be overridden per-column or per-cell.
384
+ */
385
+ dateLabel?: string;
368
386
  enablePivotTable?: boolean;
369
387
  pivotTableConfig?: {
370
388
  triggerButton?: ReactNode;
@@ -1,4 +1,4 @@
1
- import { SortConfig, ColumnFilter, SearchConfig, FilterType, ColumnDefinition, PivotAggregationType } from './types';
1
+ import { SortConfig, ColumnFilter, SearchConfig, FilterType, ColumnDefinition, PivotAggregationType, DateFormat } from './types';
2
2
  import { AvatarData, TagData, SelectData, MultiSelectData, DateData, DateRangeData } from './columnTypes';
3
3
  export declare const isDateOnlyString: (value: string) => boolean;
4
4
  /**
@@ -20,6 +20,7 @@ export declare const getDefaultColumnWidth: <T extends Record<string, unknown>>(
20
20
  };
21
21
  export declare const getColumnStyles: <T extends Record<string, unknown>>(column: ColumnDefinition<T>) => React.CSSProperties;
22
22
  export declare const formatDate: (dateString: string) => string;
23
+ export declare const formatDateString: (date: Date, format: string) => string;
23
24
  export declare const updateColumnFilter: (currentFilters: ColumnFilter[], field: keyof Record<string, unknown>, type: FilterType, value: string | string[] | {
24
25
  min: number;
25
26
  max: number;
@@ -48,8 +49,8 @@ export declare const createSelectData: (value: string, options?: {
48
49
  disabled?: boolean;
49
50
  }) => SelectData;
50
51
  export declare const createMultiSelectData: (values: string[], labels?: string[]) => MultiSelectData;
51
- export declare const createDateData: (date: Date | string, format?: string) => DateData;
52
- export declare const createDateRangeData: (startDate: Date | string, endDate: Date | string, format?: string) => DateRangeData;
52
+ export declare const createDateData: (date: Date | string, format?: DateFormat) => DateData;
53
+ export declare const createDateRangeData: (startDate: Date | string, endDate: Date | string, format?: DateFormat) => DateRangeData;
53
54
  export declare const validateDataForColumnType: <T extends Record<string, unknown>>(data: T, columns: ColumnDefinition<T>[]) => {
54
55
  isValid: boolean;
55
56
  errors: string[];
@@ -9,6 +9,7 @@ export type MenuV2ContentProps = {
9
9
  searchPlaceholder: string;
10
10
  searchText: string;
11
11
  onSearchTextChange: (value: string) => void;
12
+ onEnter?: () => void;
12
13
  maxHeight?: CSSObject['maxHeight'];
13
14
  minHeight?: CSSObject['minHeight'];
14
15
  minWidth?: CSSObject['minWidth'];
@@ -32,6 +32,7 @@ export type MenuV2ItemLabel = {
32
32
  text: string;
33
33
  leftSlot?: React.ReactElement;
34
34
  };
35
+ export type MenuV2SearchSortFn = (items: MenuV2ItemType[], searchText: string) => MenuV2ItemType[];
35
36
  export type MenuV2ItemType = {
36
37
  id?: string;
37
38
  label: MenuV2ItemLabel;
@@ -43,6 +44,8 @@ export type MenuV2ItemType = {
43
44
  subMenu?: MenuV2ItemType[];
44
45
  enableSubMenuSearch?: boolean;
45
46
  subMenuSearchPlaceholder?: string;
47
+ subMenuSearchSortFn?: MenuV2SearchSortFn;
48
+ onSubMenuSearchEnter?: (searchText: string, filteredResults: MenuV2ItemType[]) => void;
46
49
  tooltip?: string | ReactNode;
47
50
  tooltipProps?: MenuV2ItemTooltipProps;
48
51
  };
@@ -72,6 +75,8 @@ export type MenuV2Props = {
72
75
  dimensions?: MenuV2Dimensions;
73
76
  enableSearch?: boolean;
74
77
  searchPlaceholder?: string;
78
+ searchSortFn?: MenuV2SearchSortFn;
79
+ onEnter?: (searchText: string, filteredGroups: MenuV2GroupType[]) => void;
75
80
  enableVirtualScrolling?: boolean;
76
81
  virtualScrolling?: MenuV2VirtualScrollingConfig;
77
82
  open?: boolean;
@@ -1,8 +1,16 @@
1
1
  import { ReactNode } from 'react';
2
- import { MenuV2GroupType, MenuV2ItemType } from './menuV2.types';
2
+ import { MenuV2GroupType, MenuV2ItemType, MenuV2SearchSortFn } from './menuV2.types';
3
3
  import { MenuV2TokensType, MenuV2ItemStates } from './menuV2.tokens';
4
4
  type MenuV2ItemTokens = MenuV2TokensType['group']['item'];
5
5
  export declare const getItemSlots: (item: MenuV2ItemType) => [ReactNode?];
6
+ export declare enum MenuV2MatchRank {
7
+ EXACT = 0,
8
+ PREFIX = 1,
9
+ SUBSTRING = 2,
10
+ NONE = 3
11
+ }
12
+ export declare const getItemMatchRank: (item: MenuV2ItemType, lower: string) => MenuV2MatchRank;
13
+ export declare const defaultSearchSortFn: MenuV2SearchSortFn;
6
14
  export declare const filterMenuV2Item: (item: MenuV2ItemType, lower: string) => MenuV2ItemType | null;
7
15
  export declare const getMenuItemBackgroundColor: (state: MenuV2ItemStates, itemTokens: MenuV2ItemTokens, item: MenuV2ItemType) => string | undefined;
8
16
  export declare const getMenuItemOptionColor: (state: MenuV2ItemStates, itemTokens: MenuV2ItemTokens, item: MenuV2ItemType) => string | undefined;
@@ -22,5 +30,5 @@ export type MenuV2FlatRow = {
22
30
  itemIndex: number;
23
31
  };
24
32
  export declare const flattenMenuV2Groups: (groups: MenuV2GroupType[]) => MenuV2FlatRow[];
25
- export declare const filterMenuV2Groups: (groups: MenuV2GroupType[], searchText: string) => MenuV2GroupType[];
33
+ export declare const filterMenuV2Groups: (groups: MenuV2GroupType[], searchText: string, searchSortFn?: MenuV2SearchSortFn) => MenuV2GroupType[];
26
34
  export {};
@@ -1,3 +1,3 @@
1
1
  import { MultiSelectProps } from './types';
2
- declare const MultiSelect: ({ selectedValues, onChange, items, label, sublabel, disabled, helpIconHintText, name, required, variant, selectionTagType, slot, hintText, placeholder, size, enableSearch, searchPlaceholder, enableSelectAll, selectAllText, maxSelections, customTrigger, useDrawerOnMobile, minMenuWidth, maxMenuWidth, maxMenuHeight, alignment, side, sideOffset, alignOffset, inline, error, errorMessage, showActionButtons, primaryAction, secondaryAction, showItemDividers, showHeaderBorder, fullWidth, enableVirtualization, virtualListItemHeight, virtualListOverscan, itemsToRender, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, maxTriggerWidth, minTriggerWidth, allowCustomValue, customValueLabel, showClearButton, onClearAllClick, onOpenChange, multiSelectGroupPosition, ...rest }: MultiSelectProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const MultiSelect: ({ selectedValues, onChange, items, label, sublabel, disabled, helpIconHintText, name, required, variant, selectionTagType, slot, hintText, placeholder, size, enableSearch, searchPlaceholder, enableSelectAll, selectAllText, maxSelections, customTrigger, useDrawerOnMobile, minMenuWidth, maxMenuWidth, maxMenuHeight, alignment, side, sideOffset, alignOffset, inline, error, errorMessage, showActionButtons, primaryAction, secondaryAction, showItemDividers, showHeaderBorder, fullWidth, enableVirtualization, virtualListItemHeight, virtualListOverscan, itemsToRender, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, maxTriggerWidth, minTriggerWidth, allowCustomValue, customValueLabel, showClearButton, onClearAllClick, onOpenChange, multiSelectGroupPosition, menuFooter, ...rest }: MultiSelectProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default MultiSelect;
@@ -1,3 +1,3 @@
1
1
  import { MultiSelectMenuProps } from './types';
2
- declare const MultiSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, disabled, enableSearch, searchPlaceholder, enableSelectAll, selectAllText, maxSelections, onSelectAll, alignment, side, sideOffset, alignOffset, collisionBoundary, open, onOpenChange, showActionButtons, primaryAction, secondaryAction, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, size, variant, allowCustomValue, customValueLabel, menuId, }: MultiSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const MultiSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, disabled, enableSearch, searchPlaceholder, enableSelectAll, selectAllText, maxSelections, onSelectAll, alignment, side, sideOffset, alignOffset, collisionBoundary, open, onOpenChange, showActionButtons, primaryAction, secondaryAction, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, size, variant, allowCustomValue, customValueLabel, menuId, menuFooter, }: MultiSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default MultiSelectMenu;
@@ -126,6 +126,7 @@ export type MultiSelectProps = {
126
126
  showClearButton?: boolean;
127
127
  onClearAllClick?: () => void;
128
128
  multiSelectGroupPosition?: 'center' | 'left' | 'right';
129
+ menuFooter?: React.ReactNode;
129
130
  } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'slot' | 'onChange'>;
130
131
  export type MultiSelectMenuProps = {
131
132
  items: MultiSelectMenuGroupType[];
@@ -176,4 +177,5 @@ export type MultiSelectMenuProps = {
176
177
  customValueLabel?: string;
177
178
  menuId?: string;
178
179
  collisionBoundary?: Element | null | Array<Element | null>;
180
+ menuFooter?: React.ReactNode;
179
181
  };
@@ -1,6 +1,6 @@
1
1
  import { MultiSelectV2Props } from './multiSelectV2.types';
2
2
  declare const MultiSelectV2: {
3
- ({ selectedValues, onChange, items, label, subLabel, helpIconText, required, variant, selectionTagType, slot, hintText, placeholder, size, search, enableSelectAll, selectAllText, maxSelections, customTrigger, usePanelOnMobile, triggerDimensions, menuDimensions, menuPosition, inline, error, showActionButtons, primaryAction, secondaryAction, showItemDividers, showHeaderBorder, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, showClearButton, onClearAllClick, onOpenChange, multiSelectGroupPosition, ...rest }: MultiSelectV2Props): import("react/jsx-runtime").JSX.Element;
3
+ ({ selectedValues, onChange, items, label, subLabel, helpIconText, required, variant, selectionTagType, slot, hintText, placeholder, size, search, enableSelectAll, selectAllText, maxSelections, customTrigger, usePanelOnMobile, triggerDimensions, menuDimensions, menuPosition, inline, error, showActionButtons, primaryAction, secondaryAction, showItemDividers, showHeaderBorder, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, showClearButton, onClearAllClick, onOpenChange, multiSelectGroupPosition, menuFooter, ...rest }: MultiSelectV2Props): import("react/jsx-runtime").JSX.Element;
4
4
  displayName: string;
5
5
  };
6
6
  export default MultiSelectV2;
@@ -1,6 +1,6 @@
1
1
  import { MultiSelectV2MenuProps } from './multiSelectV2.types';
2
2
  declare const MultiSelectV2Menu: {
3
- ({ items, selected, onSelect, trigger, menuDimensions, disabled, search, enableSelectAll, selectAllText, maxSelections, onSelectAll, menuPosition, collisionBoundary, open, onOpenChange, showActionButtons, primaryAction, secondaryAction, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, size, variant, allowCustomValue, customValueLabel, menuId, }: MultiSelectV2MenuProps): import("react/jsx-runtime").JSX.Element;
3
+ ({ items, selected, onSelect, trigger, menuDimensions, disabled, search, enableSelectAll, selectAllText, maxSelections, onSelectAll, menuPosition, collisionBoundary, open, onOpenChange, showActionButtons, primaryAction, secondaryAction, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, size, variant, allowCustomValue, customValueLabel, menuId, menuFooter, }: MultiSelectV2MenuProps): import("react/jsx-runtime").JSX.Element;
4
4
  displayName: string;
5
5
  };
6
6
  export default MultiSelectV2Menu;
@@ -61,6 +61,7 @@ export type MultiSelectV2MenuProps = {
61
61
  allowCustomValue?: boolean;
62
62
  customValueLabel?: string;
63
63
  menuId?: string;
64
+ menuFooter?: ReactNode;
64
65
  };
65
66
  export type MultiSelectV2MenuRootProps = SelectV2MenuRootPropsBase & {
66
67
  onInteractOutside?: (e: Event) => void;
@@ -121,4 +122,5 @@ export type MultiSelectV2Props = Omit<ButtonHTMLAttributes<HTMLButtonElement>, '
121
122
  showClearButton?: boolean;
122
123
  onClearAllClick?: () => void;
123
124
  multiSelectGroupPosition?: 'center' | 'left' | 'right';
125
+ menuFooter?: ReactNode;
124
126
  };
@@ -1,3 +1,3 @@
1
1
  import { SingleSelectProps } from './types';
2
- declare const SingleSelect: ({ label, subLabel, hintText, required, helpIconText, placeholder, error, errorMessage, size, items, name, variant, disabled, selected, onSelect, enableSearch, searchPlaceholder, slot, customTrigger, useDrawerOnMobile, alignment, side, sideOffset, alignOffset, minMenuWidth, maxMenuWidth, maxMenuHeight, inline, fullWidth, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, maxTriggerWidth, minTriggerWidth, allowCustomValue, customValueLabel, singleSelectGroupPosition, allowDeselect, ...rest }: SingleSelectProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const SingleSelect: ({ label, subLabel, hintText, required, helpIconText, placeholder, error, errorMessage, size, items, name, variant, disabled, selected, onSelect, enableSearch, searchPlaceholder, slot, customTrigger, useDrawerOnMobile, alignment, side, sideOffset, alignOffset, minMenuWidth, maxMenuWidth, maxMenuHeight, inline, fullWidth, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, maxTriggerWidth, minTriggerWidth, allowCustomValue, customValueLabel, singleSelectGroupPosition, allowDeselect, menuFooter, ...rest }: SingleSelectProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default SingleSelect;
@@ -32,6 +32,7 @@ type SingleSelectMenuProps = {
32
32
  allowCustomValue?: boolean;
33
33
  customValueLabel?: string;
34
34
  menuId?: string;
35
+ menuFooter?: React.ReactNode;
35
36
  };
36
- declare const SingleSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, enableSearch, searchPlaceholder, disabled, alignment, side, sideOffset, alignOffset, collisionBoundary, open, onOpenChange, size, variant, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, allowCustomValue, customValueLabel, }: SingleSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
37
+ declare const SingleSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, enableSearch, searchPlaceholder, disabled, alignment, side, sideOffset, alignOffset, collisionBoundary, open, onOpenChange, size, variant, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, skeleton, allowCustomValue, customValueLabel, menuFooter, }: SingleSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
37
38
  export default SingleSelectMenu;
@@ -114,4 +114,5 @@ export type SingleSelectProps = {
114
114
  customValueLabel?: string;
115
115
  singleSelectGroupPosition?: 'center' | 'left' | 'right';
116
116
  allowDeselect?: boolean;
117
+ menuFooter?: React.ReactNode;
117
118
  } & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'slot' | 'onSelect'>;
@@ -1,6 +1,6 @@
1
1
  import { SingleSelectV2Props } from './singleSelectV2.types';
2
2
  declare const SingleSelectV2: {
3
- ({ label, subLabel, hintText, required, helpIconText, placeholder, error, size, items, variant, open: controlledOpen, onOpenChange: onControlledOpenChange, selected, onSelect, search, slot, customTrigger, usePanelOnMobile, menuPosition, menuDimensions, triggerDimensions, inline, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, singleSelectGroupPosition, ...rest }: SingleSelectV2Props): import("react/jsx-runtime").JSX.Element;
3
+ ({ label, subLabel, hintText, required, helpIconText, placeholder, error, size, items, variant, open: controlledOpen, onOpenChange: onControlledOpenChange, selected, onSelect, search, slot, customTrigger, usePanelOnMobile, menuPosition, menuDimensions, triggerDimensions, inline, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, singleSelectGroupPosition, menuFooter, ...rest }: SingleSelectV2Props): import("react/jsx-runtime").JSX.Element;
4
4
  displayName: string;
5
5
  };
6
6
  export default SingleSelectV2;
@@ -1,6 +1,6 @@
1
1
  import { SingleSelectV2MenuProps } from './singleSelectV2.types';
2
2
  declare const SingleSelectV2Menu: {
3
- ({ items, selected, onSelect, trigger, menuDimensions, search, disabled, menuPosition, collisionBoundary, open, onOpenChange, size, variant, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, menuId, }: SingleSelectV2MenuProps): import("react/jsx-runtime").JSX.Element;
3
+ ({ items, selected, onSelect, trigger, menuDimensions, search, disabled, menuPosition, collisionBoundary, open, onOpenChange, size, variant, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, skeleton, allowCustomValue, customValueLabel, menuId, menuFooter, }: SingleSelectV2MenuProps): import("react/jsx-runtime").JSX.Element;
4
4
  displayName: string;
5
5
  };
6
6
  export default SingleSelectV2Menu;
@@ -141,6 +141,14 @@ export type SingleSelectV2TokensType = {
141
141
  };
142
142
  iconColor: CSSObject['color'];
143
143
  };
144
+ footer: {
145
+ paddingTop: CSSObject['paddingTop'];
146
+ paddingRight: CSSObject['paddingRight'];
147
+ paddingBottom: CSSObject['paddingBottom'];
148
+ paddingLeft: CSSObject['paddingLeft'];
149
+ backgroundColor: CSSObject['backgroundColor'];
150
+ borderTop: CSSObject['borderTop'];
151
+ };
144
152
  };
145
153
  mobilePanel: {
146
154
  header: {
@@ -103,6 +103,7 @@ export type SingleSelectV2MenuProps = {
103
103
  allowCustomValue?: boolean;
104
104
  customValueLabel?: string;
105
105
  menuId?: string;
106
+ menuFooter?: ReactNode;
106
107
  };
107
108
  export type SingleSelectV2PropsBase = {
108
109
  label?: string;
@@ -138,5 +139,6 @@ export type SingleSelectV2PropsBase = {
138
139
  allowCustomValue?: boolean;
139
140
  customValueLabel?: string;
140
141
  singleSelectGroupPosition?: 'center' | 'left' | 'right';
142
+ menuFooter?: ReactNode;
141
143
  };
142
144
  export type SingleSelectV2Props = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style' | 'className' | 'onSelect' | 'slot'> & SingleSelectV2PropsBase;
@@ -1,17 +1,13 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { SkeletonTokensType } from '../skeleton.tokens';
3
+ export type UseSkeletonBaseResult = {
4
+ shouldRender: boolean;
5
+ fallback: ReactNode | null;
6
+ tokens: SkeletonTokensType | null;
7
+ prefersReducedMotion: boolean;
8
+ };
3
9
  /**
4
10
  * Shared hook for all skeleton components to eliminate code duplication
5
11
  * Handles token fetching, loading state, and motion preferences
6
12
  */
7
- export declare const useSkeletonBase: (loading: boolean, children?: ReactNode) => {
8
- shouldRender: boolean;
9
- fallback: string | number | bigint | true | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null;
10
- tokens: null;
11
- prefersReducedMotion: boolean;
12
- } | {
13
- shouldRender: boolean;
14
- fallback: null;
15
- tokens: SkeletonTokensType;
16
- prefersReducedMotion: boolean;
17
- };
13
+ export declare const useSkeletonBase: (loading: boolean, children?: ReactNode) => UseSkeletonBaseResult;
@@ -1,6 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { AddToastOptions, CustomToastProps, SnackbarProps } from './types';
3
3
  export declare const StyledToast: React.FC<CustomToastProps>;
4
- export declare const addSnackbar: ({ header, description, variant, onClose, actionButton, duration, position, }: AddToastOptions) => string | number;
4
+ export declare const addSnackbar: ({ header, description, variant, onClose, actionButton, duration, position, wrap, }: AddToastOptions) => string | number;
5
5
  declare const Snackbar: React.FC<SnackbarProps>;
6
6
  export default Snackbar;
@@ -45,6 +45,7 @@ export type SnackbarTokens = Readonly<{
45
45
  };
46
46
  fontSize: CSSObject['fontSize'];
47
47
  fontWeight: CSSObject['fontWeight'];
48
+ lineHeight: CSSObject['lineHeight'];
48
49
  };
49
50
  description: {
50
51
  color: {
@@ -24,6 +24,7 @@ export type AddToastOptions = {
24
24
  };
25
25
  duration?: number;
26
26
  position?: SnackbarPosition;
27
+ wrap?: boolean;
27
28
  };
28
29
  export type CustomToastProps = {
29
30
  header: string;
@@ -36,6 +37,7 @@ export type CustomToastProps = {
36
37
  autoDismiss?: boolean;
37
38
  };
38
39
  toastId?: string | number;
40
+ wrap?: boolean;
39
41
  };
40
42
  export type SnackbarProps = {
41
43
  position?: SnackbarPosition;
@@ -13,5 +13,6 @@ declare const StatCardV2: import('react').ForwardRefExoticComponent<{
13
13
  options?: import('../ChartsV2').ChartV2Options;
14
14
  skeleton?: import('./statcardV2.types').StatCardV2SkeletonProps;
15
15
  dropdownProps?: import('../SingleSelect').SingleSelectProps;
16
+ showBorder?: boolean;
16
17
  } & import('react').HTMLAttributes<HTMLDivElement> & import('./statcardV2.types').StatCardV2Dimensions & import('react').RefAttributes<HTMLDivElement>>;
17
18
  export default StatCardV2;
@@ -1,10 +1,10 @@
1
1
  import { default as React } from 'react';
2
2
  import { StatCardV2Props } from './statcardV2.types';
3
3
  import { StatCardV2TokensType } from './statcardV2.tokens';
4
- type StatCardV2NoDataProps = Pick<StatCardV2Props, 'title' | 'titleIcon' | 'helpIconText' | 'subtitle' | 'dropdownProps' | 'maxWidth' | 'minWidth' | 'width' | 'height'> & {
4
+ type StatCardV2NoDataProps = Pick<StatCardV2Props, 'title' | 'titleIcon' | 'helpIconText' | 'subtitle' | 'dropdownProps' | 'maxWidth' | 'minWidth' | 'width' | 'height' | 'showBorder'> & {
5
5
  tokens: StatCardV2TokensType;
6
6
  isSmallScreen: boolean;
7
7
  filteredProps: React.ComponentProps<'div'>;
8
8
  };
9
- declare const StatCardV2NoData: ({ title, titleIcon, helpIconText, subtitle, dropdownProps, maxWidth, minWidth, width, height, tokens, isSmallScreen, filteredProps, }: StatCardV2NoDataProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const StatCardV2NoData: ({ title, titleIcon, helpIconText, subtitle, dropdownProps, maxWidth, minWidth, width, height, showBorder, tokens, isSmallScreen, filteredProps, }: StatCardV2NoDataProps) => import("react/jsx-runtime").JSX.Element;
10
10
  export default StatCardV2NoData;
@@ -70,4 +70,5 @@ export type StatCardV2Props = {
70
70
  options?: ChartV2Options;
71
71
  skeleton?: StatCardV2SkeletonProps;
72
72
  dropdownProps?: SingleSelectProps;
73
+ showBorder?: boolean;
73
74
  } & HTMLAttributes<HTMLDivElement> & StatCardV2Dimensions;
@@ -24,6 +24,9 @@ export type TabsV2TokensType = {
24
24
  };
25
25
  };
26
26
  };
27
+ borderBottom: {
28
+ [key in TabsV2Variant]: CSSObject['borderBottom'];
29
+ };
27
30
  activeIndicator: {
28
31
  height: CSSObject['height'];
29
32
  color: CSSObject['color'];
@@ -1,11 +1,12 @@
1
1
  import { default as React, ReactNode } from 'react';
2
2
  export declare const toPixels: (value: string | number | undefined) => number;
3
3
  export declare const capitalizeFirstLetter: (string: string) => string;
4
- export declare const getTruncatedText: (text: string, limit?: number) => {
4
+ export type TruncatedTextResult = {
5
5
  truncatedValue: string;
6
6
  fullValue: string;
7
7
  isTruncated: boolean;
8
8
  };
9
+ export declare const getTruncatedText: (text: string, limit?: number) => TruncatedTextResult;
9
10
  export declare const formatTextWithLineBreaks: (content: ReactNode | string) => ReactNode;
10
11
  /**
11
12
  * Composes multiple refs (forwarded ref + trigger's ref) so both receive the same DOM instance.