@juspay/blend-design-system 0.0.19 → 0.0.20

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 (86) hide show
  1. package/dist/components/Accordion/accordion.tokens.d.ts +39 -20
  2. package/dist/components/Alert/alert.tokens.d.ts +63 -4
  3. package/dist/components/Avatar/avatar.tokens.d.ts +64 -53
  4. package/dist/components/Avatar/types.d.ts +1 -0
  5. package/dist/components/AvatarGroup/avatarGroup.tokens.d.ts +41 -67
  6. package/dist/components/Breadcrumb/breadcrumb.tokens.d.ts +26 -16
  7. package/dist/components/Button/Button.d.ts +2 -1
  8. package/dist/components/Button/button.tokens.d.ts +38 -13
  9. package/dist/components/Button/types.d.ts +8 -1
  10. package/dist/components/ButtonGroup/ButtonGroup.d.ts +2 -2
  11. package/dist/components/ButtonGroup/types.d.ts +2 -2
  12. package/dist/components/Card/card.tokens.d.ts +80 -56
  13. package/dist/components/Card/types.d.ts +3 -3
  14. package/dist/components/Card/utils.d.ts +21 -24
  15. package/dist/components/Charts/ChartUtils.d.ts +92 -5
  16. package/dist/components/Charts/DateTimeFormatter.d.ts +151 -0
  17. package/dist/components/Charts/chart.tokens.d.ts +24 -82
  18. package/dist/components/Charts/types.d.ts +14 -5
  19. package/dist/components/Checkbox/checkbox.token.d.ts +41 -68
  20. package/dist/components/DataTable/TableCell/types.d.ts +1 -0
  21. package/dist/components/DateRangePicker/QuickRangeSelector.d.ts +2 -0
  22. package/dist/components/DateRangePicker/TimeSelector.d.ts +2 -0
  23. package/dist/components/DateRangePicker/components/mobile.tokens.d.ts +77 -0
  24. package/dist/components/DateRangePicker/dateRangePicker.tokens.d.ts +132 -249
  25. package/dist/components/DateRangePicker/utils.d.ts +9 -1
  26. package/dist/components/Drawer/drawer.tokens.d.ts +43 -44
  27. package/dist/components/Drawer/types.d.ts +3 -3
  28. package/dist/components/Inputs/DropdownInput/DropdownInput.d.ts +1 -1
  29. package/dist/components/Inputs/DropdownInput/dropdownInput.tokens.d.ts +55 -16
  30. package/dist/components/Inputs/DropdownInput/types.d.ts +3 -1
  31. package/dist/components/Inputs/MultiValueInput/multiValueInput.tokens.d.ts +55 -12
  32. package/dist/components/Inputs/NumberInput/numberInput.tokens.d.ts +74 -21
  33. package/dist/components/Inputs/OTPInput/otpInput.tokens.d.ts +48 -12
  34. package/dist/components/Inputs/SearchInput/searchInput.tokens.d.ts +52 -27
  35. package/dist/components/Inputs/TextArea/textarea.token.d.ts +58 -17
  36. package/dist/components/Inputs/TextInput/textInput.tokens.d.ts +54 -14
  37. package/dist/components/Inputs/UnitInput/unitInput.tokens.d.ts +72 -16
  38. package/dist/components/Inputs/utils/InputFooter/InputFooter.d.ts +17 -1
  39. package/dist/components/Inputs/utils/InputLabels/InputLabels.d.ts +31 -2
  40. package/dist/components/Menu/Menu.d.ts +2 -2
  41. package/dist/components/Menu/MenuItem.d.ts +2 -2
  42. package/dist/components/Menu/SubMenu.d.ts +2 -2
  43. package/dist/components/Menu/menu.tokens.d.ts +46 -26
  44. package/dist/components/Menu/types.d.ts +14 -10
  45. package/dist/components/Menu/utils.d.ts +3 -3
  46. package/dist/components/Modal/modal.tokens.d.ts +59 -33
  47. package/dist/components/Modal/types.d.ts +2 -2
  48. package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
  49. package/dist/components/MultiSelect/MultiSelectMenu.d.ts +1 -1
  50. package/dist/components/MultiSelect/multiSelect.tokens.d.ts +72 -28
  51. package/dist/components/MultiSelect/types.d.ts +16 -0
  52. package/dist/components/Popover/PopoverFooter.d.ts +1 -1
  53. package/dist/components/Popover/popover.tokens.d.ts +49 -13
  54. package/dist/components/Popover/types.d.ts +2 -2
  55. package/dist/components/ProgressBar/index.d.ts +0 -1
  56. package/dist/components/ProgressBar/progressbar.tokens.d.ts +54 -41
  57. package/dist/components/Radio/radio.token.d.ts +21 -24
  58. package/dist/components/Sidebar/sidebar.tokens.d.ts +77 -0
  59. package/dist/components/Sidebar/utils.d.ts +3 -2
  60. package/dist/components/SingleSelect/SingleSelect.d.ts +1 -1
  61. package/dist/components/SingleSelect/SingleSelectMenu.d.ts +11 -1
  62. package/dist/components/SingleSelect/singleSelect.tokens.d.ts +67 -23
  63. package/dist/components/SingleSelect/types.d.ts +7 -0
  64. package/dist/components/Snackbar/snackbar.tokens.d.ts +51 -25
  65. package/dist/components/StatCard/StatCard.d.ts +1 -1
  66. package/dist/components/StatCard/statcard.tokens.d.ts +51 -66
  67. package/dist/components/StatCard/types.d.ts +10 -3
  68. package/dist/components/Switch/switch.token.d.ts +57 -74
  69. package/dist/components/Tabs/tabs.token.d.ts +62 -40
  70. package/dist/components/Tags/tag.tokens.d.ts +35 -36
  71. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  72. package/dist/components/Tooltip/tooltip.tokens.d.ts +24 -10
  73. package/dist/components/Tooltip/types.d.ts +1 -0
  74. package/dist/components/VirtualList/VirtualList.d.ts +13 -0
  75. package/dist/components/VirtualList/index.d.ts +2 -0
  76. package/dist/components/VirtualList/types.d.ts +27 -0
  77. package/dist/components/VirtualList/utils.d.ts +39 -0
  78. package/dist/context/ThemeContext.d.ts +18 -12
  79. package/dist/context/useComponentToken.d.ts +11 -8
  80. package/dist/main.d.ts +1 -0
  81. package/dist/main.js +31316 -27358
  82. package/dist/tokens/unit.tokens.d.ts +3 -0
  83. package/package.json +1 -1
  84. package/dist/components/Menu/MenuPlayground.d.ts +0 -3
  85. package/dist/components/Menu/MenuPlaygroundComprehensive.d.ts +0 -3
  86. package/dist/components/ProgressBar/utils.d.ts +0 -7
@@ -3,29 +3,62 @@ import { MultiSelectMenuSize, MultiSelectSelectionTagType, MultiSelectVariant }
3
3
  import { FoundationTokenType } from '../../tokens/theme.token';
4
4
  import { BreakpointType } from '../../breakpoints/breakPoints';
5
5
  type TriggerStates = 'open' | 'closed' | 'hover' | 'focus' | 'error';
6
- export type SingleSelectItemStates = 'default' | 'hover' | 'active' | 'focus' | 'focusVisible' | 'disabled' | 'selected';
6
+ export type MultiSelectItemStates = 'default' | 'hover' | 'active' | 'focus' | 'focusVisible' | 'disabled' | 'selected';
7
7
  export type MultiSelectTokensType = {
8
+ gap: CSSObject['gap'];
9
+ label: {
10
+ fontSize: CSSObject['fontSize'];
11
+ fontWeight: CSSObject['fontWeight'];
12
+ color: {
13
+ [key in MultiSelectItemStates]: CSSObject['color'];
14
+ };
15
+ };
16
+ subLabel: {
17
+ fontSize: CSSObject['fontSize'];
18
+ fontWeight: CSSObject['fontWeight'];
19
+ color: {
20
+ [key in MultiSelectItemStates]: CSSObject['color'];
21
+ };
22
+ };
23
+ hintText: {
24
+ fontSize: CSSObject['fontSize'];
25
+ fontWeight: CSSObject['fontWeight'];
26
+ color: {
27
+ [key in MultiSelectItemStates]: CSSObject['color'];
28
+ };
29
+ };
30
+ errorMessage: {
31
+ fontSize: CSSObject['fontSize'];
32
+ fontWeight: CSSObject['fontWeight'];
33
+ color: CSSObject['color'];
34
+ };
35
+ required: {
36
+ color: CSSObject['color'];
37
+ };
8
38
  trigger: {
9
39
  height: {
10
- [key in MultiSelectMenuSize]: CSSObject['height'];
11
- };
12
- paddingX: {
13
- [key in MultiSelectMenuSize]: CSSObject['padding'];
40
+ [key in MultiSelectMenuSize]: {
41
+ [key in MultiSelectVariant]: CSSObject['height'];
42
+ };
14
43
  };
15
- paddingY: {
16
- [key in MultiSelectMenuSize]: CSSObject['padding'];
44
+ padding: {
45
+ [key in MultiSelectMenuSize]: {
46
+ [key in MultiSelectVariant]: {
47
+ x: CSSObject['padding'];
48
+ y: CSSObject['padding'];
49
+ };
50
+ };
17
51
  };
18
52
  borderRadius: {
19
- [key in MultiSelectMenuSize]: CSSObject['borderRadius'];
53
+ [key in MultiSelectMenuSize]: {
54
+ [key in MultiSelectVariant]: CSSObject['borderRadius'];
55
+ };
20
56
  };
21
57
  boxShadow: {
22
58
  [key in MultiSelectVariant]: CSSObject['boxShadow'];
23
59
  };
24
60
  backgroundColor: {
25
- container: {
26
- [key in TriggerStates]: CSSObject['backgroundColor'];
27
- };
28
- 'no-container': {
61
+ [key in MultiSelectVariant]: {
29
62
  [key in TriggerStates]: CSSObject['backgroundColor'];
30
63
  };
31
64
  };
@@ -35,7 +68,7 @@ export type MultiSelectTokensType = {
35
68
  };
36
69
  };
37
70
  selectionTag: {
38
- container: {
71
+ [key in MultiSelectVariant]: {
39
72
  [key in MultiSelectSelectionTagType]: {
40
73
  color: CSSObject['color'];
41
74
  backgroundColor: CSSObject['backgroundColor'];
@@ -44,41 +77,52 @@ export type MultiSelectTokensType = {
44
77
  };
45
78
  };
46
79
  };
47
- dropdown: {
48
- shadow: CSSObject['boxShadow'];
80
+ menu: {
49
81
  backgroundColor: CSSObject['backgroundColor'];
50
- paddingTop: CSSObject['paddingTop'];
51
- paddingBottom: CSSObject['paddingBottom'];
52
82
  border: CSSObject['border'];
53
- outline: CSSObject['outline'];
54
83
  borderRadius: CSSObject['borderRadius'];
84
+ padding: {
85
+ [key in MultiSelectMenuSize]: {
86
+ [key in MultiSelectVariant]: {
87
+ x: CSSObject['padding'];
88
+ y: CSSObject['padding'];
89
+ };
90
+ };
91
+ };
55
92
  item: {
56
93
  padding: CSSObject['padding'];
57
94
  margin: CSSObject['margin'];
58
95
  borderRadius: CSSObject['borderRadius'];
59
96
  gap: CSSObject['gap'];
60
97
  backgroundColor: {
61
- [key in SingleSelectItemStates]: CSSObject['backgroundColor'];
98
+ [key in MultiSelectItemStates]: CSSObject['backgroundColor'];
62
99
  };
63
- label: {
100
+ optionsLabel: {
64
101
  fontSize: CSSObject['fontSize'];
65
102
  fontWeight: CSSObject['fontWeight'];
66
103
  color: {
67
- [key in SingleSelectItemStates]: CSSObject['color'];
104
+ [key in MultiSelectItemStates]: CSSObject['color'];
68
105
  };
69
106
  };
70
- subLabel: {
107
+ option: {
71
108
  fontSize: CSSObject['fontSize'];
72
109
  fontWeight: CSSObject['fontWeight'];
73
110
  color: {
74
- [key in SingleSelectItemStates]: CSSObject['color'];
111
+ [key in MultiSelectItemStates]: CSSObject['color'];
75
112
  };
76
113
  };
77
- };
78
- seperator: {
79
- color: CSSObject['color'];
80
- height: CSSObject['height'];
81
- margin: CSSObject['margin'];
114
+ description: {
115
+ fontSize: CSSObject['fontSize'];
116
+ fontWeight: CSSObject['fontWeight'];
117
+ color: {
118
+ [key in MultiSelectItemStates]: CSSObject['color'];
119
+ };
120
+ };
121
+ seperator: {
122
+ color: CSSObject['color'];
123
+ height: CSSObject['height'];
124
+ margin: CSSObject['margin'];
125
+ };
82
126
  };
83
127
  };
84
128
  drawer: {
@@ -104,6 +104,14 @@ export type MultiSelectProps = {
104
104
  showItemDividers?: boolean;
105
105
  showHeaderBorder?: boolean;
106
106
  fullWidth?: boolean;
107
+ enableVirtualization?: boolean;
108
+ virtualListItemHeight?: number;
109
+ virtualListOverscan?: number;
110
+ itemsToRender?: number;
111
+ onEndReached?: () => void;
112
+ endReachedThreshold?: number;
113
+ hasMore?: boolean;
114
+ loadingComponent?: React.ReactNode;
107
115
  };
108
116
  export type MultiSelectMenuProps = {
109
117
  items: MultiSelectMenuGroupType[];
@@ -139,4 +147,12 @@ export type MultiSelectMenuProps = {
139
147
  disabled?: boolean;
140
148
  loading?: boolean;
141
149
  };
150
+ enableVirtualization?: boolean;
151
+ virtualListItemHeight?: number;
152
+ virtualListOverscan?: number;
153
+ itemsToRender?: number;
154
+ onEndReached?: () => void;
155
+ endReachedThreshold?: number;
156
+ hasMore?: boolean;
157
+ loadingComponent?: React.ReactNode;
142
158
  };
@@ -1,6 +1,6 @@
1
1
  import { PopoverProps } from './types';
2
2
  declare const PopoverFooter: {
3
- ({ primaryAction, secondaryAction, }: Pick<PopoverProps, "primaryAction" | "secondaryAction">): import("react/jsx-runtime").JSX.Element | null;
3
+ ({ primaryAction, secondaryAction, size, }: Pick<PopoverProps, "primaryAction" | "secondaryAction" | "size">): import("react/jsx-runtime").JSX.Element | null;
4
4
  displayName: string;
5
5
  };
6
6
  export default PopoverFooter;
@@ -1,45 +1,81 @@
1
1
  import { CSSObject } from 'styled-components';
2
2
  import { PopoverSize } from './types';
3
3
  import { FoundationTokenType } from '../../tokens/theme.token';
4
+ import { BreakpointType } from '../../breakpoints/breakPoints';
5
+ /**
6
+ * Popover Tokens following the pattern: [target].CSSProp.[size]
7
+ *
8
+ * Structure:
9
+ * - target: container | headerContainer.heading | headerContainer.description | footer
10
+ * - CSSProp:
11
+ * - container: background | border | shadow | gap | zIndex | borderRadius | padding.left | padding.right | padding.top | padding.bottom
12
+ * - headerContainer.heading: color | fontSize | fontWeight | lineHeight
13
+ * - headerContainer.description: color | fontSize | fontWeight | lineHeight
14
+ * - footer: gap
15
+ * - size: small | medium (popover size)
16
+ *
17
+ * Notes:
18
+ * - Size-independent properties: background, border, shadow, zIndex, header/description color
19
+ * - Size-dependent properties: gap, borderRadius, all padding sides, heading/description fontSize/fontWeight/lineHeight, footer.gap
20
+ */
4
21
  export type PopoverTokenType = {
5
22
  background: CSSObject['backgroundColor'];
6
23
  border: CSSObject['border'];
7
24
  shadow: FoundationTokenType['shadows'];
8
- gap: CSSObject['gap'];
25
+ gap: {
26
+ [key in PopoverSize]: CSSObject['gap'];
27
+ };
9
28
  zIndex: CSSObject['zIndex'];
10
- borderRadius: CSSObject['borderRadius'];
29
+ borderRadius: {
30
+ [key in PopoverSize]: CSSObject['borderRadius'];
31
+ };
11
32
  padding: {
12
- horizontal: CSSObject['paddingLeft'];
13
- top: CSSObject['paddingTop'];
14
- bottom: CSSObject['paddingBottom'];
33
+ left: {
34
+ [key in PopoverSize]: CSSObject['paddingLeft'];
35
+ };
36
+ right: {
37
+ [key in PopoverSize]: CSSObject['paddingRight'];
38
+ };
39
+ top: {
40
+ [key in PopoverSize]: CSSObject['paddingTop'];
41
+ };
42
+ bottom: {
43
+ [key in PopoverSize]: CSSObject['paddingBottom'];
44
+ };
15
45
  };
16
46
  headerContainer: {
17
47
  heading: {
48
+ color: CSSObject['color'];
18
49
  fontSize: {
19
50
  [key in PopoverSize]: CSSObject['fontSize'];
20
51
  };
21
52
  fontWeight: {
22
53
  [key in PopoverSize]: CSSObject['fontWeight'];
23
54
  };
24
- color: {
25
- [key in PopoverSize]: CSSObject['color'];
55
+ lineHeight: {
56
+ [key in PopoverSize]: CSSObject['lineHeight'];
26
57
  };
27
58
  };
28
59
  description: {
60
+ color: CSSObject['color'];
29
61
  fontSize: {
30
62
  [key in PopoverSize]: CSSObject['fontSize'];
31
63
  };
32
- color: {
33
- [key in PopoverSize]: CSSObject['color'];
34
- };
35
64
  fontWeight: {
36
65
  [key in PopoverSize]: CSSObject['fontWeight'];
37
66
  };
67
+ lineHeight: {
68
+ [key in PopoverSize]: CSSObject['lineHeight'];
69
+ };
38
70
  };
39
71
  };
40
72
  footer: {
41
- justifyContent: CSSObject['justifyContent'];
42
- gap: CSSObject['gap'];
73
+ gap: {
74
+ [key in PopoverSize]: CSSObject['gap'];
75
+ };
43
76
  };
44
77
  };
45
- export declare const getPopoverTokens: (foundationTokens: FoundationTokenType) => PopoverTokenType;
78
+ export type ResponsivePopoverTokens = {
79
+ [key in keyof BreakpointType]: PopoverTokenType;
80
+ };
81
+ export declare const getPopoverTokens: (foundationTokens: FoundationTokenType) => ResponsivePopoverTokens;
@@ -1,5 +1,5 @@
1
- import { ButtonV2Props } from '../Button';
2
- export type PopoverActionType = Omit<ButtonV2Props, 'buttonGroupPosition' | 'subType'>;
1
+ import { ButtonProps } from '../Button';
2
+ export type PopoverActionType = Omit<ButtonProps, 'buttonGroupPosition' | 'subType'>;
3
3
  export declare enum PopoverSize {
4
4
  SMALL = "small",
5
5
  MEDIUM = "medium"
@@ -1,3 +1,2 @@
1
1
  export { default as ProgressBar } from './ProgressBar';
2
2
  export * from './types';
3
- export * from './utils';
@@ -1,55 +1,66 @@
1
- import { ProgressBarSize } from './types';
1
+ import { BreakpointType } from '../../breakpoints/breakPoints';
2
+ import { FoundationTokenType } from '../../tokens/theme.token';
3
+ import { ProgressBarSize, ProgressBarVariant, ProgressBarType } from './types';
2
4
  import { CSSObject } from 'styled-components';
5
+ /**
6
+ * ProgressBar Tokens following the pattern: [target].CSSProp.[size].[variant].[type]
7
+ *
8
+ * Structure:
9
+ * - target: container | linear | circular | label (defines what element the token applies to)
10
+ * - CSSProp: overflow | borderRadius | height | backgroundColor | stroke | etc.
11
+ * - size: small | medium | large (only for size-dependent properties)
12
+ * - variant: solid | segmented (for linear progress bars)
13
+ * - type: solid | segmented (for circular progress bars)
14
+ *
15
+ * Size-independent properties: overflow, backgroundColor, backgroundImage, stroke, color
16
+ * Size-dependent properties: height, size, strokeWidth
17
+ */
3
18
  export type ProgressBarTokenType = {
4
- container: {
5
- borderRadius: string;
6
- overflow: string;
7
- };
8
- height: {
9
- [ProgressBarSize.SMALL]: CSSObject['height'];
10
- [ProgressBarSize.MEDIUM]: CSSObject['height'];
11
- [ProgressBarSize.LARGE]: CSSObject['height'];
12
- };
13
- fill: {
14
- solid: {
15
- backgroundColor: CSSObject['backgroundColor'];
16
- borderRadius: CSSObject['borderRadius'];
19
+ linear: {
20
+ height: {
21
+ [key in ProgressBarSize]: CSSObject['height'];
17
22
  };
18
- segmented: {
19
- backgroundColor: CSSObject['backgroundColor'];
20
- borderRadius: CSSObject['borderRadius'];
23
+ fill: {
24
+ backgroundColor: {
25
+ [key in Exclude<ProgressBarVariant, 'circular'>]: CSSObject['backgroundColor'];
26
+ };
27
+ borderRadius: {
28
+ [key in Exclude<ProgressBarVariant, 'circular'>]: CSSObject['borderRadius'];
29
+ };
21
30
  };
22
- };
23
- empty: {
24
- solid: {
25
- backgroundColor: CSSObject['backgroundColor'];
31
+ empty: {
32
+ backgroundColor: {
33
+ [key in Exclude<ProgressBarVariant, 'circular'>]: CSSObject['backgroundColor'];
34
+ };
35
+ backgroundImage: {
36
+ segmented: CSSObject['backgroundImage'];
37
+ };
38
+ backgroundSize: {
39
+ segmented: CSSObject['backgroundSize'];
40
+ };
26
41
  };
27
- segmented: {
28
- backgroundColor: CSSObject['backgroundColor'];
29
- backgroundImage: CSSObject['backgroundImage'];
30
- backgroundSize: CSSObject['backgroundSize'];
42
+ borderRadius: {
43
+ [key in Exclude<ProgressBarVariant, 'circular'>]: CSSObject['borderRadius'];
31
44
  };
32
45
  };
33
46
  circular: {
34
47
  size: {
35
- [ProgressBarSize.SMALL]: CSSObject['width'];
36
- [ProgressBarSize.MEDIUM]: CSSObject['width'];
37
- [ProgressBarSize.LARGE]: CSSObject['width'];
48
+ [key in ProgressBarSize]: CSSObject['width'];
38
49
  };
39
50
  strokeWidth: {
40
- [ProgressBarSize.SMALL]: number;
41
- [ProgressBarSize.MEDIUM]: number;
42
- [ProgressBarSize.LARGE]: number;
51
+ [key in ProgressBarSize]: number;
43
52
  };
44
- solid: {
45
- stroke: CSSObject['stroke'];
46
- background: CSSObject['stroke'];
53
+ stroke: {
54
+ [key in ProgressBarType]: CSSObject['stroke'];
47
55
  };
48
- segmented: {
49
- stroke: CSSObject['stroke'];
50
- background: CSSObject['stroke'];
51
- dashArray: string;
52
- dashOffset: string;
56
+ background: {
57
+ [key in ProgressBarType]: CSSObject['stroke'];
58
+ };
59
+ dashArray: {
60
+ [key in ProgressBarType]: string;
61
+ };
62
+ dashOffset: {
63
+ [key in ProgressBarType]: string;
53
64
  };
54
65
  };
55
66
  label: {
@@ -59,5 +70,7 @@ export type ProgressBarTokenType = {
59
70
  };
60
71
  transition: string;
61
72
  };
62
- declare const progressBarTokens: ProgressBarTokenType;
63
- export default progressBarTokens;
73
+ export type ResponsiveProgressBarTokens = {
74
+ [key in keyof BreakpointType]: ProgressBarTokenType;
75
+ };
76
+ export declare const getProgressBarTokens: (foundationToken: FoundationTokenType) => ResponsiveProgressBarTokens;
@@ -6,46 +6,48 @@ export type RadioState = 'default' | 'hover' | 'disabled' | 'error';
6
6
  export type RadioIndicatorState = 'active' | 'inactive';
7
7
  export type RadioTokensType = Readonly<{
8
8
  gap: CSSObject['gap'];
9
- slotGap: CSSObject['gap'];
10
- groupGap: CSSObject['gap'];
9
+ group: {
10
+ gap: CSSObject['gap'];
11
+ };
11
12
  indicator: {
12
13
  [key in RadioIndicatorState]: {
13
- background: {
14
- [key in Exclude<RadioState, 'error'>]: CSSObject['backgroundColor'];
14
+ backgroundColor: {
15
+ [key in RadioState]: CSSObject['backgroundColor'];
15
16
  };
16
- border: {
17
- [key in Exclude<RadioState, 'error'>]: CSSObject['borderColor'];
17
+ borderColor: {
18
+ [key in RadioState]: CSSObject['borderColor'];
18
19
  };
19
20
  };
20
21
  };
21
22
  activeIndicator: {
22
23
  active: {
23
- background: {
24
+ backgroundColor: {
24
25
  [key in Exclude<RadioState, 'hover' | 'error'>]: CSSObject['backgroundColor'];
25
26
  };
26
27
  };
27
28
  };
28
29
  content: {
29
30
  label: {
31
+ gap: CSSObject['gap'];
30
32
  color: {
31
33
  [key in RadioState]: CSSObject['color'];
32
34
  };
33
- font: {
34
- [key in RadioSize]: {
35
- fontSize: CSSObject['fontSize'];
36
- fontWeight: CSSObject['fontWeight'];
37
- };
35
+ fontSize: {
36
+ [key in RadioSize]: CSSObject['fontSize'];
37
+ };
38
+ fontWeight: {
39
+ [key in RadioSize]: CSSObject['fontWeight'];
38
40
  };
39
41
  };
40
42
  sublabel: {
41
43
  color: {
42
44
  [key in RadioState]: CSSObject['color'];
43
45
  };
44
- font: {
45
- [key in RadioSize]: {
46
- fontSize: CSSObject['fontSize'];
47
- fontWeight: CSSObject['fontWeight'];
48
- };
46
+ fontSize: {
47
+ [key in RadioSize]: CSSObject['fontSize'];
48
+ };
49
+ fontWeight: {
50
+ [key in RadioSize]: CSSObject['fontWeight'];
49
51
  };
50
52
  };
51
53
  };
@@ -54,22 +56,17 @@ export type RadioTokensType = Readonly<{
54
56
  };
55
57
  borderWidth: {
56
58
  [key in RadioIndicatorState]: {
57
- [key in Exclude<RadioState, 'error'>]: number;
59
+ [key in RadioState]: number;
58
60
  };
59
61
  };
60
62
  slot: {
61
- size: {
62
- [key in RadioSize]: CSSObject['width'];
63
- };
63
+ [key in RadioSize]: CSSObject['width'];
64
64
  };
65
65
  required: {
66
66
  color: CSSObject['color'];
67
- spacing: CSSObject['marginLeft'];
68
67
  };
69
68
  }>;
70
69
  export type ResponsiveRadioTokens = {
71
70
  [key in keyof BreakpointType]: RadioTokensType;
72
71
  };
73
72
  export declare const getRadioTokens: (foundationToken: ThemeType) => ResponsiveRadioTokens;
74
- declare const radioTokens: ResponsiveRadioTokens;
75
- export default radioTokens;
@@ -0,0 +1,77 @@
1
+ import { CSSObject } from 'styled-components';
2
+ import { FoundationTokenType } from '../../tokens/theme.token';
3
+ import { BreakpointType } from '../../breakpoints/breakPoints';
4
+ export type SidebarState = 'default' | 'hover' | 'active';
5
+ export type SidebarVariant = 'expanded' | 'collapsed';
6
+ /**
7
+ * Sidebar Tokens following the pattern: [target].CSSProp.[variant].[state]
8
+ *
9
+ * Structure matches Card pattern for consistency:
10
+ * - Base properties: maxWidth, borderRadius, zIndex, transition, backgroundColor.[state]
11
+ * - Target sections: leftPanel.*, header.*, body.*, footer.*, mainContent.*
12
+ * - Each target has: backgroundColor, padding, border, gap, specific properties
13
+ * - Interactive elements have state-based styling: [state] = default | hover | active
14
+ *
15
+ * Pattern examples:
16
+ * - maxWidth.[variant] (sidebar's maximum width based on state)
17
+ * - backgroundColor.[state] (sidebar background with states)
18
+ * - leftPanel.backgroundColor (tenant panel background)
19
+ * - header.toggleButton.backgroundColor.[state] (interactive toggle button)
20
+ * - body.padding (directory content area spacing)
21
+ * - footer.height (footer section height)
22
+ * - mainContent.topbar.transition (topbar auto-hide animation)
23
+ */
24
+ export type SidebarTokenType = {
25
+ maxWidth: {
26
+ withLeftPanel: CSSObject['maxWidth'];
27
+ withoutLeftPanel: CSSObject['maxWidth'];
28
+ };
29
+ backgroundColor: CSSObject['backgroundColor'];
30
+ borderRight: CSSObject['border'];
31
+ leftPanel: {
32
+ width: CSSObject['width'];
33
+ backgroundColor: CSSObject['backgroundColor'];
34
+ borderRight: CSSObject['border'];
35
+ padding: {
36
+ x: CSSObject['padding'];
37
+ y: CSSObject['padding'];
38
+ };
39
+ gap: CSSObject['gap'];
40
+ item: {
41
+ width: CSSObject['width'];
42
+ borderRadius: CSSObject['borderTopLeftRadius'];
43
+ border: {
44
+ [key in SidebarState]: CSSObject['border'];
45
+ };
46
+ backgroundColor: {
47
+ [key in SidebarState]: CSSObject['backgroundColor'];
48
+ };
49
+ };
50
+ };
51
+ header: {
52
+ backgroundColor: CSSObject['backgroundColor'];
53
+ padding: {
54
+ x: CSSObject['padding'];
55
+ y: CSSObject['padding'];
56
+ };
57
+ gap: CSSObject['gap'];
58
+ borderBottom: CSSObject['border'];
59
+ toggleButton: {
60
+ backgroundColor: {
61
+ [key in SidebarState]: CSSObject['backgroundColor'];
62
+ };
63
+ };
64
+ };
65
+ footer: {
66
+ backgroundColor: CSSObject['backgroundColor'];
67
+ padding: {
68
+ x: CSSObject['padding'];
69
+ y: CSSObject['padding'];
70
+ };
71
+ borderTop: CSSObject['border'];
72
+ };
73
+ };
74
+ export type ResponsiveSidebarTokens = {
75
+ [key in keyof BreakpointType]: SidebarTokenType;
76
+ };
77
+ export declare const getSidebarTokens: (foundationToken: FoundationTokenType) => ResponsiveSidebarTokens;
@@ -1,11 +1,12 @@
1
1
  import { TenantItem } from './types';
2
+ import { SidebarTokenType } from './sidebar.tokens';
2
3
  export declare const arrangeTenants: (tenants: TenantItem[], selectedLabel: string, maxVisible: number) => {
3
4
  visibleTenants: TenantItem[];
4
5
  hiddenTenants: TenantItem[];
5
6
  hasMoreTenants: boolean;
6
7
  };
7
- export declare const getSidebarWidth: (isExpanded: boolean, isHovering: boolean, hasLeftPanel: boolean) => string;
8
- export declare const getSidebarBorder: (isExpanded: boolean, isHovering: boolean) => string;
8
+ export declare const getSidebarWidth: (isExpanded: boolean, isHovering: boolean, hasLeftPanel: boolean, tokens: SidebarTokenType) => string;
9
+ export declare const getSidebarBorder: (isExpanded: boolean, isHovering: boolean, tokens: SidebarTokenType) => string;
9
10
  export declare const getTopbarStyles: (enableAutoHide: boolean, showTopbar: boolean) => {
10
11
  transform?: undefined;
11
12
  transition?: undefined;
@@ -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, onBlur, onFocus, inline, fullWidth, }: 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, onBlur, onFocus, inline, fullWidth, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, loadingComponent, }: SingleSelectProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default SingleSelect;
@@ -1,5 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { SelectMenuAlignment, SelectMenuSide, SelectMenuGroupType } from '../Select';
3
+ import { SelectMenuSize, SelectMenuVariant } from './types';
3
4
  type SingleSelectMenuProps = {
4
5
  items: SelectMenuGroupType[];
5
6
  selected: string;
@@ -17,6 +18,15 @@ type SingleSelectMenuProps = {
17
18
  alignOffset?: number;
18
19
  open: boolean;
19
20
  onOpenChange: (open: boolean) => void;
21
+ size?: SelectMenuSize;
22
+ variant?: SelectMenuVariant;
23
+ enableVirtualization?: boolean;
24
+ virtualListItemHeight?: number;
25
+ virtualListOverscan?: number;
26
+ onEndReached?: () => void;
27
+ endReachedThreshold?: number;
28
+ hasMore?: boolean;
29
+ loadingComponent?: React.ReactNode;
20
30
  };
21
- declare const SingleSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, enableSearch, searchPlaceholder, disabled, alignment, side, sideOffset, alignOffset, open, onOpenChange, }: SingleSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
31
+ declare const SingleSelectMenu: ({ items, selected, onSelect, trigger, minMenuWidth, maxMenuWidth, maxMenuHeight, enableSearch, searchPlaceholder, disabled, alignment, side, sideOffset, alignOffset, open, onOpenChange, size, variant, enableVirtualization, virtualListItemHeight, virtualListOverscan, onEndReached, endReachedThreshold, hasMore, }: SingleSelectMenuProps) => import("react/jsx-runtime").JSX.Element;
22
32
  export default SingleSelectMenu;