@capillarytech/blaze-ui 0.1.6-alpha.40 → 0.1.6-alpha.41

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.
package/.DS_Store ADDED
Binary file
@@ -1,9 +1,10 @@
1
1
  // Enhanced CapUnifiedSelect supporting 4 scenarios with advanced features in a single TreeSelect
2
- import React, { useState, useEffect } from 'react';
2
+ import React, { useState, useEffect, useMemo, useCallback, memo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classnames from 'classnames';
5
5
  import { TreeSelect, Tooltip, Input, Button } from 'antd-v5';
6
6
  import styled from 'styled-components';
7
+ import * as styledVars from '../styled/variables';
7
8
  import uploadIcon from '../assets/upload.svg';
8
9
 
9
10
  import { InfoCircleOutlined, SearchOutlined, WarningFilled, DownOutlined } from '@ant-design/icons';
@@ -55,14 +56,14 @@ const CapUnifiedSelect = ({
55
56
  listItemHeight: 32,
56
57
  };
57
58
 
58
- const NoResult = ({ noResultText, className }) => (
59
+ const NoResult = memo(({ noResultText, className }) => (
59
60
  <div className={classnames(className, "cap-unified-select-no-result")}>
60
61
  <WarningFilled className="cap-unified-select-no-result-icon" />
61
62
  <div className="cap-unified-select-no-result-text">{noResultText}</div>
62
63
  </div>
63
- );
64
+ ));
64
65
 
65
- const getFilteredTreeData = (data, search) => {
66
+ const getFilteredTreeData = useCallback((data, search) => {
66
67
  if (!search) return data;
67
68
 
68
69
  const filterNode = node => {
@@ -73,7 +74,6 @@ const CapUnifiedSelect = ({
73
74
  const keyText = String(node.key || '').toLowerCase();
74
75
  return keyText.includes(search.toLowerCase());
75
76
  } else {
76
- // Default case, fall back to label
77
77
  const labelText = node.label?.toLowerCase() || '';
78
78
  return labelText.includes(search.toLowerCase());
79
79
  }
@@ -89,69 +89,70 @@ const CapUnifiedSelect = ({
89
89
  }).filter(Boolean);
90
90
 
91
91
  return loop(data);
92
- };
92
+ }, [searchBasedOn]);
93
93
 
94
- const flattenLeafValues = nodes =>
95
- nodes?.flatMap(node => node.children ? flattenLeafValues(node.children) : [node.value]) || [];
94
+ const flattenLeafValues = useCallback(nodes =>
95
+ nodes?.flatMap(node => node.children ? flattenLeafValues(node.children) : [node.value]) || [], []);
96
96
 
97
- const isMulti = type === 'multiSelect' || type === 'multiTreeSelect';
98
- const isTree = type === 'treeSelect' || type === 'multiTreeSelect';
97
+ const isMulti = useMemo(() => type === 'multiSelect' || type === 'multiTreeSelect', [type]);
98
+ const isTree = useMemo(() => type === 'treeSelect' || type === 'multiTreeSelect', [type]);
99
99
 
100
- const dataSource = isTree ? options : options.map(opt => ({ title: opt.label, value: opt.value, key: opt.key || opt.value }));
100
+ const dataSource = useMemo(() => {
101
+ return isTree ? options : options.map(opt => ({ title: opt.label, value: opt.value, key: opt.key || opt.value }));
102
+ }, [isTree, options]);
101
103
 
102
- const filteredTree = getFilteredTreeData(dataSource, searchText);
103
- const leafValues = flattenLeafValues(filteredTree);
104
+ const filteredTree = useMemo(() => getFilteredTreeData(dataSource, searchText), [dataSource, searchText]);
105
+ const leafValues = useMemo(() => flattenLeafValues(filteredTree), [filteredTree]);
104
106
 
105
- const handleSelectAll = () => {
107
+ const handleSelectAll = useCallback(() => {
106
108
  const availableValues = leafValues;
107
109
  if (allSelected) {
108
- // If currently all selected, then unselect all
109
110
  setTempValue([]);
110
111
  setAllSelected(false);
111
112
  } else {
112
- // Otherwise select all available options
113
113
  setTempValue(availableValues);
114
114
  setAllSelected(true);
115
115
  }
116
- };
116
+ }, [allSelected, leafValues]);
117
117
 
118
118
  useEffect(() => {
119
119
  if (isMulti && Array.isArray(tempValue)) {
120
- setAllSelected(tempValue.length > 0 && tempValue.length === leafValues.length);
120
+ const allItemsSelected = tempValue.length > 0 && leafValues.length > 0 && tempValue.length === leafValues.length;
121
+ setAllSelected(allItemsSelected);
121
122
  }
122
123
  }, [tempValue, leafValues, isMulti]);
123
124
 
124
- const handleConfirm = () => {
125
- console.log('Confirm clicked');
125
+ const handleConfirm = useCallback(() => {
126
126
  if (onChange) onChange(tempValue);
127
- };
127
+ }, [onChange, tempValue]);
128
128
 
129
- const handleCancel = () => {
130
- console.log('Cancel clicked');
129
+ const handleCancel = useCallback(() => {
131
130
  setTempValue(value);
132
- };
131
+ }, [value]);
133
132
 
134
- const handleTempChange = newValue => {
133
+ const handleTempChange = useCallback(newValue => {
135
134
  setTempValue(newValue);
136
- };
135
+ }, []);
137
136
 
138
- const suffix = isMulti && Array.isArray(value) && value?.length > 1 ? (
139
- <>
140
- <span>+{value.length - 1} more <DownOutlined /></span>
141
- </>
142
- ) : (
143
- <DownOutlined />
144
- );
137
+ const suffix = useMemo(() => {
138
+ return isMulti && Array.isArray(value) && value?.length > 1 ? (
139
+ <>
140
+ <span>+{value.length - 1} more <DownOutlined /></span>
141
+ </>
142
+ ) : (
143
+ <DownOutlined />
144
+ );
145
+ }, [isMulti, value]);
145
146
 
146
- const prefix = () => {
147
+ const prefix = useMemo(() => {
147
148
  if (isMulti && Array.isArray(value) && value?.length > 0) {
148
149
  const selectedLabels = options.filter(opt => value.includes(opt.value)).map(opt => opt.label);
149
150
  return selectedLabels[0];
150
151
  }
151
152
  return null;
152
- };
153
+ }, [isMulti, value, options]);
153
154
 
154
- const renderHeader = () => {
155
+ const renderHeader = useCallback(() => {
155
156
  if (!headerLabel && !tooltip) return null;
156
157
  return (
157
158
  <>
@@ -168,7 +169,7 @@ const CapUnifiedSelect = ({
168
169
  </div>
169
170
  </>
170
171
  );
171
- };
172
+ }, [headerLabel, tooltip, bylineText, disabled]);
172
173
 
173
174
  const renderDropdown = () => {
174
175
  const currentItems = filteredTree;
@@ -184,9 +185,9 @@ const CapUnifiedSelect = ({
184
185
  return (
185
186
  <div className={classnames(popupClassName, `${type}-popup-container`)}>
186
187
  {showSearch && (
187
- <div style={{ borderBottom: '1px solid #f0f0f0' }}>
188
+ <div className={classnames("cap-unified-select-search-container")}>
188
189
  <Input
189
- prefix={<SearchOutlined style={{ color: '#B3BAC5' }} />}
190
+ prefix={<SearchOutlined style={{ color: styledVars.CAP_G06 }} />}
190
191
  placeholder="Search"
191
192
  variant="borderless"
192
193
  value={searchText}
@@ -196,40 +197,33 @@ const CapUnifiedSelect = ({
196
197
  </div>
197
198
  )}
198
199
  {isMulti && showUpload && (
199
- <div style={{ cursor: 'pointer', display: 'flex', alignItems: 'center', borderBottom: '1px solid #f0f0f0' , height: '36px'}}>
200
+ <div className={classnames("cap-unified-select-upload-container")}>
200
201
  <Button
201
202
  type="link"
202
- icon={<img src={uploadIcon} alt="upload" style={{ width: "16px", height: "20px" }} />}
203
+ icon={<img src={uploadIcon} alt="upload" />}
203
204
  onClick={() => {}}
204
- style={{
205
- color: '#2466EA', // AntD primary blue
206
- display: 'flex',
207
- alignItems: 'center',
208
- fontSize: '14px',
209
- fontWeight: '400',
210
- lineHeight: '20px',
211
- }}
205
+ className={classnames("cap-unified-select-upload-button")}
212
206
  >
213
207
  Upload
214
208
  </Button>
215
209
  </div>
216
210
  )}
217
211
  {isMulti && currentItems.length > 0 && (
218
- <div style={{ padding: '8px 12px', cursor: 'pointer', display: 'flex', alignItems: 'center', borderBottom: '1px solid #f0f0f0' }} onClick={e => { e.stopPropagation(); handleSelectAll(); }}>
219
- <input type="checkbox" checked={allSelected} readOnly style={{ cursor: 'pointer' }} onClick={e => e.stopPropagation()} />
220
- <label style={{ marginLeft: 8, cursor: 'pointer' }}>Select all</label>
212
+ <div className={classnames("cap-unified-select-select-all-container")} onClick={e => { e.stopPropagation(); handleSelectAll(); }}>
213
+ <input type="checkbox" checked={allSelected} className={classnames("cap-unified-select-select-all-checkbox")} onClick={e => e.stopPropagation()} />
214
+ <label className={classnames("cap-unified-select-select-all-label")}>Select all</label>
221
215
  </div>
222
216
  )}
223
217
 
224
218
  {currentItems.length === 0 ? <NoResult noResultText={noResultText} className={classnames(className, "cap-unified-select-no-result")}/> : menu}
225
219
 
226
220
  {currentItems.length > 0 && isMulti && (
227
- <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '8px 12px', borderTop: '1px solid #f0f0f0' }}>
221
+ <div className={classnames("cap-unified-select-confirm-container")}>
228
222
  <div>
229
- <Button type="primary" size="small" style={{ marginRight: 8 }} onClick={e => { e.stopPropagation(); handleConfirm(); }}>Confirm</Button>
223
+ <Button type="primary" size="small" className={classnames("cap-unified-select-confirm-button")} onClick={e => { e.stopPropagation(); handleConfirm(); }}>Confirm</Button>
230
224
  <Button type="text" size="small" onClick={e => { e.stopPropagation(); handleCancel(); }}>Cancel</Button>
231
225
  </div>
232
- {selectedCount > 0 && <span style={{ color: '#8c8c8c', fontSize: '14px' }}>{selectedCount} selected</span>}
226
+ {selectedCount > 0 && <span className={classnames("cap-unified-select-selected-count")}>{selectedCount} selected</span>}
233
227
  </div>
234
228
  )}
235
229
  </div>
@@ -245,9 +239,10 @@ const CapUnifiedSelect = ({
245
239
  value={customPopupRender ? tempValue : value}
246
240
  onChange={customPopupRender ? handleTempChange : onChange}
247
241
  placeholder={placeholder}
242
+ showSearch={false}
248
243
  maxTagCount={0}
249
244
  maxTagPlaceholder={() => null}
250
- prefix={isMulti && value.length > 0 && prefix()}
245
+ prefix={isMulti && value.length > 0 && prefix}
251
246
  suffixIcon={suffix}
252
247
  className={classnames(`cap-unified-tree-select ${className || ''}`)}
253
248
  style={style}
@@ -262,7 +257,7 @@ const CapUnifiedSelect = ({
262
257
  {...treeSelectVirtualizationProps}
263
258
  popupRender={renderCustomDropdown}
264
259
  />
265
- {isError && <div style={{ color: '#E83135' }} className="cap-unified-select-status">{errorMessage}</div>}
260
+ {isError && <div className={classnames("cap-unified-select-status")}>{errorMessage}</div>}
266
261
  </>
267
262
  );
268
263
  };
@@ -300,12 +295,18 @@ CapUnifiedSelect.propTypes = {
300
295
 
301
296
  CapUnifiedSelect.defaultProps = {
302
297
  type: 'select',
298
+ options: [],
299
+ placeholder: 'Select an option',
303
300
  allowClear: false,
304
- customPopupRender: false,
301
+ customPopupRender: true,
305
302
  showSearch: true,
306
303
  searchBasedOn: 'label',
307
304
  className: '',
308
305
  popupClassName: '',
306
+ disabled: false,
307
+ showUpload: false,
308
+ isError: false,
309
+ noResultText: 'No results found'
309
310
  };
310
311
 
311
312
  export default withStyles(CapUnifiedSelect, selectStyles);
@@ -95,10 +95,33 @@ export const StyledInfoIcon = styled.span`
95
95
 
96
96
  export const selectStyles = css`
97
97
  &.cap-unified-select-container {
98
+ .ant-tree-select-dropdown{
99
+ padding: 0px !important;
100
+ }
98
101
  .cap-unified-tree-select{
99
- height: 32px !important;
102
+ height: 40px !important;
100
103
  width: 340px !important;
101
104
  }
105
+ .cap-unified-select-upload-container{
106
+ cursor: pointer !important;
107
+ display: flex !important;
108
+ align-items: center !important;
109
+ border-bottom: 1px solid #f0f0f0 !important;
110
+ height: 40px !important;
111
+ }
112
+ .cap-unified-select-select-all-container{
113
+ padding: 8px 12px !important;
114
+ cursor: pointer !important;
115
+ display: flex !important;
116
+ align-items: center !important;
117
+ border-bottom: 1px solid #f0f0f0 !important;
118
+ height: 40px !important;
119
+ }
120
+ .ant-select-dropdown{
121
+ margin-top: -5px !important;
122
+ border-radius: 4px !important;
123
+ box-shadow: 0px 4px 8px -2px #091E4240, 0px 0px 1px 0px #091E424F !important;
124
+ }
102
125
  .ant-select-prefix{
103
126
  font-size: 14px !important;
104
127
  font-weight: 400 !important;
@@ -115,7 +138,7 @@ export const selectStyles = css`
115
138
  .cap-unified-select-header-tooltip{
116
139
  width: 16px !important;
117
140
  height: 16px !important;
118
- color: #B3BAC5 !important;
141
+ color: ${styledVars.CAP_G06} !important;
119
142
  }
120
143
  .cap-unified-select-header-byline-text{
121
144
  font-family: ${styledVars.FONT_FAMILY} !important;
@@ -135,6 +158,10 @@ export const selectStyles = css`
135
158
  .ant-tree-select-dropdown .treeSelect-popup-container .ant-select-tree .ant-select-tree-treenode{
136
159
  margin: 0px !important;
137
160
  }
161
+ .ant-tree-select-dropdown .ant-select-tree .ant-select-tree-treenode{
162
+ line-height: 40px !important;
163
+ margin-bottom: 0px !important;
164
+ }
138
165
  .cap-unified-tree-select .multiSelect-popup-container .ant-tree-select-dropdown .ant-select-tree .ant-select-tree-treenode{
139
166
  margin-left: 10px !important;
140
167
  }
@@ -158,312 +185,43 @@ export const selectStyles = css`
158
185
  .cap-unified-select-no-result-text{
159
186
  font-weight: 500;
160
187
  }
161
- }
162
- &.cap-unified-select {
163
- width: 100%;
164
- font-family: ${styledVars.FONT_FAMILY};
165
-
166
- .ant-select-selector {
167
- border-radius: ${styledVars.RADIUS_04};
168
- transition: ${styledVars.TRANSITION_ALL};
169
- padding: 0 12px;
170
- min-height: 32px;
171
- display: flex;
172
- align-items: center;
173
-
174
- &:hover {
175
- border-color: ${styledVars.CAP_G11};
176
- }
177
- }
178
-
179
- /* Right slot content styles */
180
- .cap-unified-select-right-slot {
181
- display: flex;
182
- align-items: center;
183
- gap: 8px;
184
- margin-left: 8px;
185
- }
186
-
187
- &.ant-select-focused {
188
- .ant-select-selector {
189
- border-color: ${styledVars.CAP_G01} !important;
190
- box-shadow: none !important;
191
- }
192
- }
193
-
194
- /* Error state */
195
- &.ant-select-status-error {
196
- .ant-select-selector {
197
- border-color: ${styledVars.CAP_RED};
198
- }
199
- }
200
-
201
- /* Disabled state */
202
- &.ant-select-disabled {
203
- .ant-select-selector {
204
- background-color: ${styledVars.CAP_G08};
205
- cursor: not-allowed;
206
- }
207
- }
208
-
209
- /* Dropdown styles */
210
- .ant-select-dropdown,
211
- &.ant-select-dropdown,
212
- &.ant-select-dropdown-placement-bottomLeft {
213
- padding: 0;
214
- border-radius: 12px !important;
215
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
216
- overflow: hidden;
217
-
218
- /* Option base style - no background */
219
- .ant-select-item-option {
220
- padding: 10px 16px;
221
- font-size: 14px;
222
- color: #1c2530;
223
- font-weight: 500;
224
- background-color: transparent !important;
225
-
226
- /* Hover state only */
227
- &:not(.ant-select-item-option-disabled):hover {
228
- background-color: #fffbe6 !important;
229
- border-radius: 4px;
230
- color: #1c2530 !important;
231
- }
232
-
233
- /* Ensure unselected hover has proper background even after removal */
234
- &:hover:not(.ant-select-item-option-disabled):not(.ant-select-item-option-selected) {
235
- background-color: #fffbe6 !important;
236
- color: #1c2530 !important;
237
- border-radius: 4px;
238
- }
239
-
240
- /* Selected state */
241
- &-selected:not(.ant-select-item-option-disabled) {
242
- background-color: #e9f0fe !important;
243
- color: #1c2530 !important;
244
- font-weight: 500;
245
- }
246
-
247
- /* Remove active state background unless hovered */
248
- &-active:not(:hover):not(.ant-select-item-option-disabled) {
249
- background-color: transparent !important;
250
- }
251
- }
252
-
253
- /* Search input styles */
254
- .ant-select-dropdown-search,
255
- .ant-select-search {
256
- padding: 8px 12px;
257
- border-bottom: 1px solid #f0f0f0;
258
-
259
- input {
260
- border-radius: ${styledVars.RADIUS_04};
261
- transition: ${styledVars.TRANSITION_ALL};
262
-
263
- &:focus {
264
- border-color: ${styledVars.CAP_G01};
265
- box-shadow: none;
266
- }
267
- }
268
- }
269
-
270
- /* Scrollbar */
271
- .rc-virtual-list-scrollbar-thumb {
272
- background-color: #dcdcdc;
273
- border-radius: 4px;
274
- }
275
-
276
- /* Divider */
277
- .ant-divider-horizontal {
278
- margin: 0;
279
- }
280
-
281
- /* No result UI */
282
- .no-result {
283
- display: flex;
284
- flex-direction: column;
285
- align-items: center;
286
- justify-content: center;
287
- height: 200px;
288
- color: #8c8c8c;
289
- font-size: 14px;
290
- }
291
-
292
- /* Dropdown search inside custom popup */
293
- .dropdown-search {
294
- padding: 8px;
295
- border-bottom: 1px solid #f0f0f0;
296
- }
297
-
298
- /* Select all checkbox */
299
- .select-all-checkbox {
300
- display: flex;
301
- align-items: center;
302
- padding: 8px 12px;
303
- cursor: pointer;
304
- font-weight: 500;
305
- border-bottom: 1px solid #f0f0f0;
306
- user-select: none;
307
-
308
- input[type="checkbox"] {
309
- cursor: pointer;
310
- }
311
- }
312
-
313
- /* Footer buttons */
314
- .dropdown-footer {
315
- display: flex;
316
- justify-content: space-between;
317
- align-items: center;
318
- padding: 8px;
319
- border-top: 1px solid #f0f0f0;
320
- }
321
-
322
- /* Selected counter */
323
- .selected-count {
324
- color: #8c8c8c;
325
- font-size: 12px;
326
- }
327
-
328
- /* Unchecked border color */
329
- .ant-checkbox-inner {
330
- border-color: #42b040; /* Your desired border color */
331
- }
332
-
333
- /* When checked - change background and border */
334
- .ant-checkbox-checked .ant-checkbox-inner {
335
- background-color: #42b040; /* Fill color when checked */
336
- border-color: #42b040;
337
- }
338
-
339
- /* Checkmark color */
340
- .ant-checkbox-checked .ant-checkbox-inner::after {
341
- border-color: #42b040; /* The checkmark tick color */
342
- }
188
+ .ant-tree-select:hover .ant-select-selector {
189
+ border-color: #7A869A !important;
343
190
  }
344
-
345
- /* Multiple selection styles */
346
- &.ant-select-multiple {
347
- .ant-select-selection-item {
348
- background-color: #e9f0fe !important;
349
- border: none;
350
- border-radius: ${styledVars.RADIUS_04};
351
- color: #1c2530;
352
- font-weight: 500;
353
- margin: 2px 4px 2px 0;
354
- padding: 0 8px;
355
- height: 24px;
356
- line-height: 22px;
357
-
358
- &-remove {
359
- color: ${styledVars.CAP_PRIMARY.base};
360
-
361
- &:hover {
362
- color: ${styledVars.CAP_PRIMARY.hover};
363
- }
364
- }
365
- }
366
-
367
- .ant-select-selection-overflow {
368
- flex-wrap: wrap;
369
- gap: 4px;
370
- }
191
+ .ant-tree-select-focused .ant-select-selector,
192
+ .ant-tree-select-open .ant-select-selector {
193
+ border-color: #7A869A !important;
194
+ box-shadow: none !important;
195
+ outline: none !important; /* remove blue outline */
371
196
  }
372
-
373
- /* Tree select styles */
374
- .ant-select-tree {
375
- padding: 4px 0;
376
-
377
- .ant-select-tree-node-content-wrapper {
378
- padding: 4px 8px;
379
- border-radius: ${styledVars.RADIUS_04};
380
- background-color: transparent !important;
381
- transition: background 0.3s;
382
-
383
- &:hover {
384
- background-color: #fffbe6 !important;
385
- color: #1c2530 !important;
386
- border-radius: 4px;
387
- }
388
-
389
- &.ant-select-tree-node-selected {
390
- color: #1c2530;
391
- font-weight: 500;
392
- }
393
- }
394
-
395
- .ant-select-tree-switcher {
396
- width: 24px;
397
- height: 24px;
398
- line-height: 24px;
399
- }
400
-
401
- .ant-select-tree-checkbox {
402
- margin: 4px 8px 4px 0;
403
- }
404
-
405
- .ant-select-tree-treenode {
406
- padding: 2px 0;
407
-
408
- &:hover {
409
- background-color: transparent;
410
- }
411
- }
412
-
413
- .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner {
414
- background-color: #42b040;
415
- border-color: #42b040;
416
- }
417
-
418
- .ant-select-tree-checkbox-checked .ant-select-tree-node-content-wrapper {
419
- background-color: #e9f0fe !important;
420
- color: #1c2530 !important;
421
- font-weight: 500;
422
- }
197
+ .cap-unified-select-search-container{
198
+ border-bottom: 1px solid #EBECF0 !important;
199
+ line-height: 40px !important;
423
200
  }
424
-
425
- /* Size variations */
426
- &.ant-select-lg {
427
- .ant-select-selector {
428
- height: 40px;
429
- padding: 0 16px;
430
- }
431
-
432
- .ant-select-selection-item {
433
- height: 28px;
434
- line-height: 26px;
435
- }
201
+ .cap-unified-select-upload-button{
202
+ color: ${styledVars.CAP_BLUE01} !important;
203
+ display: flex !important;
204
+ align-items: center !important;
205
+ font-size: 14px !important;
206
+ font-weight: 400 !important;
207
+ line-height: 20px !important;
436
208
  }
437
-
438
- &.ant-select-sm {
439
- .ant-select-selector {
440
- height: 24px;
441
- padding: 0 8px;
442
- }
443
-
444
- .ant-select-selection-item {
445
- height: 20px;
446
- line-height: 18px;
447
- }
209
+ .cap-unified-select-confirm-container{
210
+ display: flex !important;
211
+ justify-content: space-between !important;
212
+ align-items: center !important;
213
+ padding: 8px 12px !important;
214
+ border-top: 1px solid #f0f0f0 !important;
448
215
  }
449
-
450
- /* Loading state */
451
- &.ant-select-loading {
452
- .ant-select-arrow {
453
- .anticon-loading {
454
- color: ${styledVars.CAP_PRIMARY.base};
455
- }
456
- }
216
+ .cap-unified-select-confirm-button{
217
+ margin-right: 8px !important;
457
218
  }
458
-
459
- &.cap-unified-tree-select .ant-select-selection-overflow {
460
- display: none; /* hides pill wrapper */
219
+ .cap-unified-select-selected-count{
220
+ color: ${styledVars.CAP_G05} !important;
221
+ font-size: 14px !important;
461
222
  }
462
-
463
- &.cap-unified-tree-select .suffix-counter {
464
- color: #1c2530;
465
- font-weight: 500;
466
- margin-right: 12px; /* optional, adjust spacing */
223
+ .cap-unified-select-status{
224
+ color: #E83135 !important;
467
225
  }
468
226
  }
469
227
  `;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/blaze-ui",
3
3
  "author": "Capillary Technologies",
4
- "version": "0.1.6-alpha.40",
4
+ "version": "0.1.6-alpha.41",
5
5
  "description": "Capillary UI component library with Ant Design v5",
6
6
  "main": "./index.js",
7
7
  "sideEffects": [