ui-soxo-bootstrap-core 2.6.1-dev.20 → 2.6.1-dev.22

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.
@@ -10,11 +10,11 @@
10
10
 
11
11
  import React, { useState, useEffect, useContext } from 'react';
12
12
 
13
- import { motion, useReducedMotion } from 'framer-motion';
13
+ import { animationControls, motion, useAnimation } from 'framer-motion';
14
14
 
15
15
  import { GlobalContext } from './../../Store';
16
16
 
17
- import { Menu, message, Popover } from 'antd';
17
+ import { Menu, message, Skeleton, Space, Popover } from 'antd';
18
18
 
19
19
  import FirebaseUtils from './../../utils/firebase.utils';
20
20
 
@@ -24,15 +24,6 @@ import { useTranslation, Trans } from 'react-i18next';
24
24
 
25
25
  import { Menus } from '../../models';
26
26
 
27
- import {
28
- sidebarGroupVariants,
29
- sidebarIntroVariants,
30
- sidebarItemRevealVariants,
31
- sidebarLoaderContainerVariants,
32
- sidebarLoaderRowVariants,
33
- sidebarMenuSurfaceVariants,
34
- } from './animations';
35
-
36
27
  import './sidemenu.scss';
37
28
 
38
29
  const { SubMenu } = Menu;
@@ -48,8 +39,7 @@ function CollapsedIconMenu({ menu, collapsed, icon, caption }) {
48
39
  // Import t and i18n from useTranslation
49
40
  const { t, i18n } = useTranslation();
50
41
  const { state } = useContext(GlobalContext);
51
- const [isMobile, setIsMobile] = useState(false);
52
- const [iconImageFailed, setIconImageFailed] = useState(false);
42
+ const [isMobile, setIsMobile] = useState(false);
53
43
 
54
44
  useEffect(() => {
55
45
  const handleResize = () => {
@@ -62,110 +52,39 @@ function CollapsedIconMenu({ menu, collapsed, icon, caption }) {
62
52
  return () => window.removeEventListener('resize', handleResize);
63
53
  }, []);
64
54
 
65
- useEffect(() => {
66
- setIconImageFailed(false);
67
- }, [menu?.image_path]);
68
-
69
- const normalizeIconClass = (iconValue) => {
70
- const raw = (iconValue || 'fa-user').trim();
71
- const tokens = (raw || 'fa-user').split(/\s+/).filter(Boolean);
72
- const tokenSet = new Set(tokens);
73
-
74
- const modernToLegacyStyleMap = {
75
- 'fa-solid': 'fas',
76
- 'fa-regular': 'far',
77
- 'fa-light': 'fal',
78
- 'fa-brands': 'fab',
79
- };
80
- const fa6ToFa5IconMap = {
81
- 'fa-house': 'fa-home',
82
- 'fa-house-user': 'fa-home',
83
- 'fa-gauge': 'fa-tachometer-alt',
84
- 'fa-location-dot': 'fa-map-marker-alt',
85
- };
86
- const styleTokens = ['fa', 'fas', 'far', 'fal', 'fab', 'fa-solid', 'fa-regular', 'fa-light', 'fa-brands'];
87
-
88
- const iconTokens = tokens.filter((token) => token.startsWith('fa-') && !styleTokens.includes(token));
89
- const hasAnyStyleToken = tokens.some((token) => styleTokens.includes(token));
90
-
91
- tokenSet.add('fa');
92
-
93
- tokens.forEach((token) => {
94
- if (modernToLegacyStyleMap[token]) {
95
- tokenSet.add(modernToLegacyStyleMap[token]);
96
- }
97
- });
98
-
99
- if (!hasAnyStyleToken) {
100
- tokenSet.add('fas');
101
- }
102
-
103
- if (!iconTokens.length) {
104
- const normalizedName = raw && !raw.includes(' ') ? (raw.startsWith('fa-') ? raw : `fa-${raw}`) : 'fa-user';
105
- tokenSet.add(fa6ToFa5IconMap[normalizedName] || normalizedName);
106
- } else {
107
- iconTokens.forEach((token) => {
108
- const mapped = fa6ToFa5IconMap[token];
109
- if (mapped) {
110
- tokenSet.add(mapped);
111
- }
112
- });
113
- }
114
-
115
- return Array.from(tokenSet).join(' ');
116
- };
117
-
118
- const renderMenuGlyph = () => {
119
- if (menu && menu.image_path && !iconImageFailed) {
120
- return (
121
- <img
122
- className="menu-image-icon"
123
- src={menu.image_path}
124
- alt={menu?.caption || caption || 'menu-icon'}
125
- onError={() => setIconImageFailed(true)}
126
- loading="lazy"
127
- />
128
- );
129
- }
130
-
131
- return <i className={normalizeIconClass(icon)} aria-hidden="true" />;
132
- };
133
-
134
55
  const menuText = t(caption);
135
56
  const menuContent = (
136
- <motion.div variants={sidebarItemRevealVariants} className="menu-collapsed">
57
+ <>
137
58
  {/* If value of collapsed is false show caption & icon else hiding caption and showing only icon*/}
138
59
  {!collapsed ? (
139
- <>
140
- <div className="menu-icon-wrap">
141
- {renderMenuGlyph()}
60
+ <div className="menu-collapsed">
61
+ <div>
62
+ {menu && menu.image_path ? <img style={{ width: '25px' }} src={menu.image_path}></img> : <i className={`fa-solid fas ${icon}`} />}
142
63
  </div>
143
64
 
144
- <div className="menu-label-wrap" style={{ color: state.theme.colors.leftSectionColor }} title={menuText}>
145
- <span className="caption" title={menuText}>
65
+ <div style={{ color: state.theme.colors.leftSectionColor }}>
66
+ <span className="caption">
146
67
  {/* {caption} */}
147
68
  {/* <Trans i18nKey="Appointments"></Trans> */}
148
69
  {t(`${caption}`)}
149
70
  </span>
150
71
  </div>
151
- </>
72
+ </div>
152
73
  ) : (
153
- <>
154
- <span className="anticon menu-icon-wrap">
155
- {renderMenuGlyph()}
74
+ <div className="menu-collapsed">
75
+ <span className="anticon">
76
+ {menu && menu.image_path ? <img style={{ width: '25px' }} src={menu.image_path}></img> : <i className={`fa-solid fas ${icon}`} />}
156
77
  </span>
157
78
 
158
- <span className="menu-label-wrap" style={{ color: state.theme.colors.colorPrimaryText, paddingLeft: '6px' }} title={menuText}>
79
+ <span style={{ color: state.theme.colors.colorPrimaryText, paddingLeft: '6px' }}>
159
80
  {/* <>{caption}</> */}
160
81
  {t(`${caption}`)}
161
82
  </span>
162
- </>
83
+ </div>
163
84
  )}
164
- </motion.div>
85
+ </>
165
86
  );
166
87
 
167
- // Show tooltip labels on desktop collapsed mode, hide on mobile / expanded mode.
168
- // return isMobile || !collapsed ? menuContent : <Popover content={menuText} placement="right">{menuContent}</Popover>;
169
88
  // On mobile, or when the menu is collapsed (based on original logic), don't show the popover tooltip.
170
89
  return isMobile || collapsed ? (
171
90
  menuContent
@@ -348,31 +267,17 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
348
267
  }, [state.theme]);
349
268
 
350
269
  const rootSubmenuKeys = Menus.screenMenus(modules, 'order').map((m) => m.id || m.path || m.caption);
351
- const prefersReducedMotion = useReducedMotion();
352
- const shouldAnimate = !prefersReducedMotion;
353
- const loaderRows = collapsed ? 5 : 7;
354
270
 
355
271
  return (
356
272
  <div className="sidemenu">
357
273
  {loading ? (
358
- <motion.div
359
- className="side-loader-shell"
360
- variants={sidebarLoaderContainerVariants}
361
- initial={shouldAnimate ? 'hidden' : false}
362
- animate={shouldAnimate ? 'visible' : false}
363
- >
364
- {[...Array(4)].map((_, index) => (
365
- <motion.div key={`intro-loader-${index}`} className="side-loader-chip" variants={sidebarLoaderRowVariants}>
366
- <span className="side-loader-dot" />
367
- <span className="side-loader-line" />
368
- </motion.div>
369
- ))}
370
- </motion.div>
274
+ <Space className="side-loader">
275
+ <Skeleton.Avatar />
276
+ <Skeleton.Button />
277
+ {/* <Skeleton.Input /> */}
278
+ </Space>
371
279
  ) : (
372
- <motion.div
373
- variants={sidebarIntroVariants}
374
- initial={shouldAnimate ? 'hidden' : false}
375
- animate={shouldAnimate ? 'visible' : false}
280
+ <div
376
281
  className="intro"
377
282
  style={{ backgroundColor: state.theme.colors.leftSectionBackground, borderBottom: `2px solid ${state.theme.colors.borderColor}` }}
378
283
  >
@@ -407,7 +312,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
407
312
  {/* If value of collapsed is true render header else not rendering */}
408
313
 
409
314
  {!collapsed ? renderCustomHeader() : ''}
410
- </motion.div>
315
+ </div>
411
316
  )}
412
317
 
413
318
  {/* Intro Component */}
@@ -424,49 +329,25 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
424
329
 
425
330
  {/* Search for Queries Ends */}
426
331
 
427
- <motion.div
428
- className={`menu-item ${!collapsed ? 'open' : 'close'}`}
429
- style={{ backgroundColor: state.theme.colors.leftSectionBackground }}
430
- variants={sidebarMenuSurfaceVariants}
431
- initial={shouldAnimate ? 'hidden' : false}
432
- animate={shouldAnimate ? 'visible' : false}
433
- >
332
+ <div className={`menu-item ${!collapsed ? 'open' : 'close'}`} style={{ backgroundColor: state.theme.colors.leftSectionBackground }}>
434
333
  {loading ? (
435
- <motion.div
436
- className="side-loader-list"
437
- variants={sidebarLoaderContainerVariants}
438
- initial={shouldAnimate ? 'hidden' : false}
439
- animate={shouldAnimate ? 'visible' : false}
440
- >
441
- {[...Array(loaderRows)].map((_, rowIndex) => (
442
- <motion.div key={`menu-loader-${rowIndex}`} className="side-loader-row" variants={sidebarLoaderRowVariants}>
443
- <span className="side-loader-dot" />
444
- <span className="side-loader-line" />
445
- </motion.div>
446
- ))}
447
- </motion.div>
334
+ <></>
448
335
  ) : (
449
- <motion.div
450
- className="menu-motion-shell"
451
- variants={sidebarGroupVariants}
452
- initial={shouldAnimate ? 'hidden' : false}
453
- animate={shouldAnimate ? 'visible' : false}
336
+ <Menu
337
+ // selectedKeys={[selected]}
338
+ // style={{ width: 256 }}
339
+ // defaultSelectedKeys={selected}
340
+ // defaultOpenKeys={['']}
341
+ inlineCollapsed={collapsed}
342
+ mode="inline"
343
+ theme={process.env.REACT_APP_THEME}
344
+ selectedKeys={selectedKeys}
345
+ openKeys={openKeys}
346
+ onOpenChange={onOpenChange}
347
+ style={{ backgroundColor: state.theme.colors.leftSectionBackground, color: state.theme.colors.leftSectionColor }}
348
+ // theme={''}
454
349
  >
455
- <Menu
456
- // selectedKeys={[selected]}
457
- // style={{ width: 256 }}
458
- // defaultSelectedKeys={selected}
459
- // defaultOpenKeys={['']}
460
- inlineCollapsed={collapsed}
461
- mode="inline"
462
- theme={process.env.REACT_APP_THEME}
463
- selectedKeys={selectedKeys}
464
- openKeys={openKeys}
465
- onOpenChange={onOpenChange}
466
- style={{ backgroundColor: state.theme.colors.leftSectionBackground, color: state.theme.colors.leftSectionColor }}
467
- // theme={''}
468
- >
469
- {/* <Menu.Item
350
+ {/* <Menu.Item
470
351
  onClick={() => {
471
352
  setSelected([1]);
472
353
  history.push("/");
@@ -531,7 +412,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
531
412
  <CollapsedIconMenu
532
413
  menu={menu}
533
414
  caption={menu.caption}
534
- icon={menu.icon_name || 'fa-user'}
415
+ icon={menu.icon_name || 'fa-solid fas fa-user'}
535
416
  collapsed={collapsed}
536
417
  />
537
418
  </>
@@ -552,9 +433,9 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
552
433
  title={
553
434
  <span>
554
435
  <CollapsedIconMenu
555
- menu={submenu}
436
+ menu={menu}
556
437
  caption={submenu.caption}
557
- icon={submenu.icon_name || 'fa-user'}
438
+ icon={submenu.icon_name || 'fa-solid fas fa-user'}
558
439
  collapsed={collapsed}
559
440
  />
560
441
  </span>
@@ -578,7 +459,7 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
578
459
  <CollapsedIconMenu
579
460
  menu={menu}
580
461
  caption={menu.caption}
581
- icon={menu.icon_name || 'fa-user'}
462
+ icon={menu.icon_name || 'fa-solid fas fa-user'}
582
463
  collapsed={collapsed}
583
464
  />
584
465
  </Menu.Item>
@@ -601,9 +482,9 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
601
482
  key={submenu.path || submenu.caption}
602
483
  >
603
484
  <CollapsedIconMenu
604
- menu={submenu}
485
+ menu={menu}
605
486
  caption={submenu.caption}
606
- icon={submenu.icon_name || 'fa-user'}
487
+ icon={submenu.icon_name || 'fa-solid fas fa-user'}
607
488
  collapsed={collapsed}
608
489
  />
609
490
  </Menu.Item>
@@ -627,27 +508,26 @@ export default function SideMenu({ loading, modules = [], callback, appSettings,
627
508
  // key={`${menu.id}-${randomIndex}`}
628
509
  key={menu.path || menu.caption}
629
510
  >
630
- <CollapsedIconMenu menu={menu} caption={menu.caption} icon={menu.icon_name || 'fa-user'} collapsed={collapsed} />
511
+ <CollapsedIconMenu menu={menu} caption={menu.caption} icon={menu.icon_name || 'fa-solid fas fa-user'} collapsed={collapsed} />
631
512
  </Menu.Item>
632
513
  );
633
514
  }
634
515
  })}
635
516
 
636
- {loading ? (
637
- <div className="skeleton-wrapper"></div>
638
- ) : (
639
- <Menu.Item onClick={handleLogout} key="logout-button">
640
- <CollapsedIconMenu caption="Logout" icon="fa-user" collapsed={collapsed} />
641
- </Menu.Item>
642
- )}
643
- </Menu>
644
- </motion.div>
517
+ {loading ? (
518
+ <div class="skeleton-wrapper"></div>
519
+ ) : (
520
+ <Menu.Item onClick={handleLogout} key="logout-button">
521
+ <CollapsedIconMenu caption="Logout" icon="fa-solid fas fa-user" collapsed={collapsed} />
522
+ </Menu.Item>
523
+ )}
524
+ </Menu>
645
525
  )}
646
526
 
647
527
  {/* Footer Logo */}
648
528
  {/* {renderFooter(footerLogo)} */}
649
529
  {/* Footer Logo Ends */}
650
- </motion.div>
530
+ </div>
651
531
  </div>
652
532
  );
653
533
  }
@@ -1,52 +1,4 @@
1
1
  .sidemenu {
2
- .side-loader-shell {
3
- margin: 14px 12px 10px;
4
- padding: 10px;
5
- border-radius: 14px;
6
- border: 1px solid rgba(222, 229, 239, 0.9);
7
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 250, 255, 0.95) 100%);
8
- box-shadow: 0 8px 18px rgba(16, 24, 40, 0.05);
9
- display: grid;
10
- gap: 8px;
11
- }
12
-
13
- .side-loader-chip,
14
- .side-loader-row {
15
- display: flex;
16
- align-items: center;
17
- gap: 10px;
18
- min-height: 30px;
19
- }
20
-
21
- .side-loader-dot {
22
- width: 14px;
23
- height: 14px;
24
- border-radius: 999px;
25
- background: linear-gradient(90deg, #eef1f5 0%, #f7f8fb 50%, #eef1f5 100%);
26
- background-size: 220% 100%;
27
- animation: side-shimmer 1.4s linear infinite;
28
- flex: 0 0 auto;
29
- }
30
-
31
- .side-loader-line {
32
- height: 10px;
33
- border-radius: 999px;
34
- width: 100%;
35
- background: linear-gradient(90deg, #edf0f4 0%, #f8f9fb 50%, #edf0f4 100%);
36
- background-size: 220% 100%;
37
- animation: side-shimmer 1.4s linear infinite;
38
- }
39
-
40
- .side-loader-list {
41
- margin: 8px;
42
- padding: 8px 6px 18px;
43
- border-radius: 14px;
44
- border: 1px solid rgba(229, 234, 242, 0.85);
45
- background: rgba(255, 255, 255, 0.88);
46
- display: grid;
47
- gap: 4px;
48
- }
49
-
50
2
  .intro {
51
3
  .logo-wrapper {
52
4
  border-bottom: none;
@@ -88,26 +40,18 @@
88
40
  padding: 5px 16px;
89
41
  position: fixed;
90
42
  z-index: 1000;
91
- // width: 17%;
92
- background: rgba(255, 255, 255, 0.95);
93
- backdrop-filter: blur(10px);
43
+ width: 17%;
44
+ background: #fff;
94
45
  // border-bottom: 1.5px solid #24aeb8;
95
46
  &.close {
96
47
  width: 6% !important;
97
48
  }
98
49
 
99
50
  .logo-wrapper {
100
- display: flex;
101
- align-items: center;
102
- justify-content: space-between;
103
- gap: 8px;
104
51
  // height: 15px;
105
52
  // border-bottom: 1px solid #eaeaea;
106
53
 
107
54
  .sidemenu-brand-logo {
108
- transition:
109
- transform 220ms ease,
110
- filter 220ms ease;
111
55
  // width: 50%;
112
56
  // margin: 10px;
113
57
  // width: 200px;
@@ -131,11 +75,6 @@
131
75
  }
132
76
 
133
77
  cursor: pointer;
134
-
135
- &:hover {
136
- transform: translateY(-1px) scale(1.01);
137
- filter: saturate(1.05);
138
- }
139
78
  }
140
79
  }
141
80
 
@@ -155,22 +94,20 @@
155
94
  }
156
95
 
157
96
  .menu-item {
158
- padding-top: 8px;
97
+ padding-top: 10px;
159
98
  // height: calc(100vh - 48px); /* Adjust height */
160
99
  height: 100vh;
161
100
  margin-top: 0px;
162
101
  width: 256px;
163
102
  top: 48px;
164
- border-right: 1px solid rgba(226, 231, 239, 0.9);
165
- border-bottom: 1px solid rgba(240, 243, 248, 0.8);
103
+ border-bottom: 1px solid #f0f0f0;
166
104
  position: fixed;
167
105
  height: 100vh;
168
106
  margin-top: 0;
169
107
  overflow-y: scroll;
170
108
  overflow-x: hidden;
171
109
  width: 211px;
172
- padding-bottom: 24px;
173
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.97) 0%, rgba(249, 250, 252, 0.98) 100%);
110
+ padding-bottom: 50px;
174
111
 
175
112
  /* Custom Scrollbar like macOS */
176
113
  scrollbar-width: thin; /* For Firefox */
@@ -205,57 +142,18 @@
205
142
  margin: 80px;
206
143
  }
207
144
 
208
- .menu-motion-shell {
209
- padding: 6px 6px 14px;
210
- }
211
-
212
145
  .ant-menu-inline {
213
146
  border: none !important;
214
147
  }
215
148
 
216
149
  .menu-collapsed {
217
- width: 100%;
218
- min-width: 0;
150
+ width: 81px;
219
151
  display: flex;
220
152
  align-items: center;
221
153
  gap: 8px;
222
154
  cursor: pointer;
223
155
  }
224
156
 
225
- .menu-icon-wrap {
226
- width: 24px;
227
- height: 24px;
228
- min-width: 24px;
229
- border-radius: 8px;
230
- display: inline-flex;
231
- align-items: center;
232
- justify-content: center;
233
- color: inherit;
234
- transition:
235
- background-color 220ms ease,
236
- transform 220ms ease;
237
- }
238
-
239
- .menu-image-icon {
240
- width: 18px;
241
- height: 18px;
242
- object-fit: contain;
243
- display: block;
244
- }
245
-
246
- .menu-label-wrap {
247
- min-width: 0;
248
- display: inline-flex;
249
- align-items: center;
250
- }
251
-
252
- .caption,
253
- .menu-label-wrap {
254
- overflow: hidden;
255
- text-overflow: ellipsis;
256
- white-space: nowrap;
257
- }
258
-
259
157
  .menu-collapsed .anticon {
260
158
  margin-right: 8px;
261
159
  }
@@ -280,102 +178,6 @@
280
178
  /* Style selected item */
281
179
  .ant-menu {
282
180
  background-color: transparent !important;
283
- padding: 4px 0 28px;
284
- }
285
-
286
- .ant-menu-item,
287
- .ant-menu-submenu-title {
288
- width: calc(100% - 12px) !important;
289
- margin: 3px 6px !important;
290
- padding-right: 10px !important;
291
- border-radius: 12px;
292
- height: 40px !important;
293
- line-height: 40px !important;
294
- transition:
295
- background-color 180ms ease,
296
- box-shadow 180ms ease,
297
- transform 180ms ease;
298
- border: 1px solid transparent;
299
- }
300
-
301
- .ant-menu-item::after,
302
- .ant-menu-submenu-title::after {
303
- display: none !important;
304
- }
305
-
306
- .ant-menu-submenu-arrow {
307
- transition:
308
- transform 200ms ease,
309
- opacity 200ms ease;
310
- }
311
-
312
- .ant-menu-item:hover,
313
- .ant-menu-submenu-title:hover {
314
- background: linear-gradient(180deg, rgba(247, 248, 251, 0.98) 0%, rgba(242, 244, 248, 0.98) 100%) !important;
315
- border-color: rgba(224, 229, 238, 0.95);
316
- transform: translateX(1px);
317
- }
318
-
319
- .ant-menu-item:hover .menu-icon-wrap,
320
- .ant-menu-submenu-title:hover .menu-icon-wrap {
321
- background: rgba(100, 116, 139, 0.1);
322
- transform: scale(1.03);
323
- }
324
-
325
- .ant-menu-item-selected,
326
- .ant-menu-submenu-selected > .ant-menu-submenu-title {
327
- background: linear-gradient(180deg, rgba(244, 247, 251, 0.98) 0%, rgba(238, 242, 247, 0.98) 100%) !important;
328
- border-color: rgba(214, 222, 233, 0.95) !important;
329
- box-shadow:
330
- inset 0 1px 0 rgba(255, 255, 255, 0.7),
331
- 0 2px 8px rgba(71, 85, 105, 0.08);
332
- }
333
-
334
- .ant-menu-item-selected::before,
335
- .ant-menu-submenu-selected > .ant-menu-submenu-title::before {
336
- content: '';
337
- position: absolute;
338
- left: 6px;
339
- top: 8px;
340
- bottom: 8px;
341
- width: 3px;
342
- border-radius: 999px;
343
- background: linear-gradient(180deg, #64748b 0%, #475569 100%);
344
- opacity: 0.95;
345
- }
346
-
347
- .ant-menu-sub.ant-menu-inline {
348
- background: transparent !important;
349
- padding-top: 2px;
350
- }
351
-
352
- .ant-menu-sub.ant-menu-inline > .ant-menu-item {
353
- height: 36px !important;
354
- line-height: 36px !important;
355
- border-radius: 10px;
356
- margin-left: 18px !important;
357
- width: calc(100% - 24px) !important;
358
- }
359
-
360
- .ant-menu-inline-collapsed > .ant-menu-item,
361
- .ant-menu-inline-collapsed > .ant-menu-submenu > .ant-menu-submenu-title {
362
- padding-inline: calc(50% - 12px) !important;
363
- width: calc(100% - 12px) !important;
364
- margin: 4px 6px !important;
365
- }
366
-
367
- .ant-menu-inline-collapsed .menu-collapsed {
368
- justify-content: center;
369
- gap: 0;
370
- }
371
-
372
- .ant-menu-inline-collapsed .menu-label-wrap {
373
- display: none !important;
374
- }
375
-
376
- .ant-menu-inline-collapsed .menu-icon-wrap,
377
- .ant-menu-inline-collapsed .menu-collapsed .anticon {
378
- margin-right: 0 !important;
379
181
  }
380
182
  // .ant-menu-inline .ant-menu-item::after{
381
183
  // border-right: none;
@@ -430,15 +232,6 @@
430
232
  }
431
233
  }
432
234
  }
433
-
434
- @keyframes side-shimmer {
435
- 0% {
436
- background-position: 200% 0;
437
- }
438
- 100% {
439
- background-position: -20% 0;
440
- }
441
- }
442
235
  @media only screen and (max-width: 768px) {
443
236
  .sidemenu {
444
237
  // width: 100% !important;
@@ -452,7 +245,7 @@
452
245
  .intro {
453
246
  width: 210px;
454
247
  height: 60px;
455
- padding: 6px 8px;
248
+ padding: 0px;
456
249
  // width: 100% !important;
457
250
  // padding: 10px 16px;
458
251
  }
@@ -460,7 +253,6 @@
460
253
  .menu-item {
461
254
  width: 100% !important;
462
255
  top: 62px;
463
- border-right: none;
464
256
  }
465
257
 
466
258
  .sidebar-footer {
@@ -469,16 +261,17 @@
469
261
  }
470
262
  }
471
263
 
264
+ .ant-menu-item:hover {
265
+ background-color: #e6f7ff !important;
266
+ color: #1a90ff9e !important;
267
+ }
268
+
472
269
  /* Tooltip styling if needed */
473
270
  .ant-tooltip-inner {
474
271
  max-width: 200px;
475
272
  white-space: nowrap;
476
273
  overflow: hidden;
477
274
  text-overflow: ellipsis;
478
- background-color: rgba(255, 255, 255, 0.98) !important;
479
- color: #111827 !important;
480
- border: 1px solid rgba(224, 229, 238, 0.95);
481
- box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
482
- border-radius: 10px;
483
- font-weight: 500;
275
+ background-color: #ffffff !important;
276
+ color: #000000 !important;
484
277
  }
@@ -26,7 +26,6 @@ export default function CountryPhoneInput({
26
26
  const hasInitializedRef = useRef(false); // IMPORTANT
27
27
 
28
28
  const [phone, setPhone] = useState('');
29
-
30
29
  /**
31
30
  * run ONLY ONCE when initial value has dial code
32
31
  */