ui-soxo-bootstrap-core 2.6.1-dev.1 → 2.6.1-dev.10

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 (51) hide show
  1. package/core/components/extra-info/extra-info-details.js +2 -2
  2. package/core/lib/Store.js +3 -3
  3. package/core/lib/components/global-header/global-header.js +2 -2
  4. package/core/lib/components/sidemenu/sidemenu.js +19 -13
  5. package/core/lib/elements/basic/country-phone-input/country-phone-input.js +14 -8
  6. package/core/lib/elements/basic/dragabble-wrapper/draggable-wrapper.js +1 -1
  7. package/core/lib/elements/basic/menu-tree/menu-tree.js +26 -13
  8. package/core/lib/models/forms/components/form-creator/form-creator.scss +5 -4
  9. package/core/lib/models/menus/components/menu-list/menu-list.js +424 -467
  10. package/core/lib/pages/change-password/change-password.js +17 -24
  11. package/core/lib/pages/change-password/change-password.scss +45 -48
  12. package/core/lib/pages/login/commnication-mode-selection.js +46 -0
  13. package/core/lib/pages/login/communication-mode-selection.scss +60 -0
  14. package/core/lib/pages/login/login.js +126 -22
  15. package/core/lib/pages/login/login.scss +229 -334
  16. package/core/lib/pages/login/reset-password.js +124 -0
  17. package/core/lib/pages/login/reset-password.scss +31 -0
  18. package/core/lib/pages/profile/themes.json +4 -4
  19. package/core/lib/utils/api/api.utils.js +30 -18
  20. package/core/lib/utils/common/common.utils.js +85 -0
  21. package/core/lib/utils/http/http.utils.js +1 -0
  22. package/core/lib/utils/index.js +4 -1
  23. package/core/models/base/base.js +7 -3
  24. package/core/models/core-scripts/core-scripts.js +9 -0
  25. package/core/models/doctor/components/doctor-add/doctor-add.js +9 -4
  26. package/core/models/menus/components/menu-add/menu-add.js +1 -1
  27. package/core/models/menus/components/menu-lists/menu-lists.js +5 -9
  28. package/core/models/menus/menus.js +21 -2
  29. package/core/models/roles/components/role-add/role-add.js +92 -59
  30. package/core/models/roles/components/role-list/role-list.js +1 -1
  31. package/core/models/staff/components/staff-add/staff-add.js +20 -32
  32. package/core/models/users/components/assign-role/assign-role.js +145 -50
  33. package/core/models/users/components/assign-role/assign-role.scss +209 -45
  34. package/core/models/users/components/assign-role/avatar-props.js +45 -0
  35. package/core/models/users/components/user-add/user-add.js +46 -55
  36. package/core/models/users/components/user-add/user-edit.js +25 -4
  37. package/core/models/users/users.js +16 -1
  38. package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.js +1 -1
  39. package/core/modules/reporting/components/reporting-dashboard/README.md +316 -0
  40. package/core/modules/reporting/components/reporting-dashboard/adavance-search/advance-search.js +120 -0
  41. package/core/modules/reporting/components/reporting-dashboard/display-columns/build-display-columns.js +75 -0
  42. package/core/modules/reporting/components/reporting-dashboard/display-columns/build-display-columns.test.js +74 -0
  43. package/core/modules/reporting/components/reporting-dashboard/display-columns/display-cell-renderer.js +252 -0
  44. package/core/modules/reporting/components/reporting-dashboard/display-columns/display-cell-renderer.test.js +126 -0
  45. package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.js +210 -395
  46. package/core/modules/steps/action-buttons.js +42 -44
  47. package/core/modules/steps/action-buttons.scss +35 -6
  48. package/core/modules/steps/steps.js +12 -10
  49. package/core/modules/steps/steps.scss +229 -31
  50. package/core/modules/steps/timeline.js +21 -19
  51. package/package.json +2 -1
@@ -29,52 +29,50 @@ export default function ActionButtons({
29
29
  }, [steps]);
30
30
 
31
31
  return (
32
- <>
33
- <div style={{ minHeight: 300 }}>{loading ? <Skeleton active /> : renderDynamicComponent()}</div>
34
- <>
35
- <div className="action-buttons-container">
36
- {/* Back button */}
37
- <Button disabled={activeStep === 0} onClick={handlePrevious}>
38
- Back
32
+ <div className="action-buttons-layout">
33
+ <div className="action-buttons-content">{loading ? <Skeleton active /> : renderDynamicComponent()}</div>
34
+ <div className="action-buttons-container">
35
+ {/* Back button */}
36
+ <Button disabled={activeStep === 0} onClick={handlePrevious}>
37
+ Back
38
+ </Button>
39
+
40
+ {/* Skip button */}
41
+ {steps.length > 0 && steps[activeStep]?.allow_skip === 'Y' && (
42
+ <Button type="default" onClick={handleSkip} disabled={activeStep === steps.length - 1}>
43
+ Skip
39
44
  </Button>
45
+ )}
40
46
 
41
- {/* Skip button */}
42
- {steps.length > 0 && steps[activeStep]?.allow_skip === 'Y' && (
43
- <Button type="default" onClick={handleSkip} disabled={activeStep === steps.length - 1}>
44
- Skip
45
- </Button>
46
- )}
47
+ {/* Next / Finish / Start Next */}
48
+ {steps[activeStep]?.order_seqtype === 'E' ? (
49
+ <>
50
+ {!showNextProcess && (
51
+ <Button
52
+ type="primary"
53
+ onClick={async () => {
54
+ const success = await handleFinish();
55
+ if (success && nextProcessId?.next_process_id) {
56
+ setShowNextProcess(true);
57
+ }
58
+ }}
59
+ >
60
+ Finish
61
+ </Button>
62
+ )}
47
63
 
48
- {/* Next / Finish / Start Next */}
49
- {steps[activeStep]?.order_seqtype === 'E' ? (
50
- <>
51
- {!showNextProcess && (
52
- <Button
53
- type="primary"
54
- onClick={async () => {
55
- const success = await handleFinish();
56
- if (success && nextProcessId?.next_process_id) {
57
- setShowNextProcess(true);
58
- }
59
- }}
60
- >
61
- Finish
62
- </Button>
63
- )}
64
-
65
- {showNextProcess && nextProcessId?.next_process_id && (
66
- <Button type="primary" onClick={handleStartNextProcess}>
67
- Start {nextProcessId.next_process_name}
68
- </Button>
69
- )}
70
- </>
71
- ) : (
72
- <Button type="primary" disabled={activeStep === steps.length - 1 || !isStepCompleted} onClick={handleNext}>
73
- Next →
74
- </Button>
75
- )}
76
- </div>
77
- </>
78
- </>
64
+ {showNextProcess && nextProcessId?.next_process_id && (
65
+ <Button type="primary" onClick={handleStartNextProcess}>
66
+ Start {nextProcessId.next_process_name}
67
+ </Button>
68
+ )}
69
+ </>
70
+ ) : (
71
+ <Button type="primary" disabled={activeStep === steps.length - 1 || !isStepCompleted} onClick={handleNext}>
72
+ Next
73
+ </Button>
74
+ )}
75
+ </div>
76
+ </div>
79
77
  );
80
78
  }
@@ -1,14 +1,43 @@
1
+ .action-buttons-layout {
2
+ display: grid;
3
+ grid-template-rows: minmax(0, 1fr) auto;
4
+ flex: 1;
5
+ min-height: 0;
6
+ overflow: hidden;
7
+ }
8
+
9
+ .action-buttons-content {
10
+ min-height: 0;
11
+ overflow-y: auto;
12
+ overflow-x: hidden;
13
+ overscroll-behavior: contain;
14
+ padding-bottom: 8px;
15
+ }
16
+
1
17
  .action-buttons-container {
2
- margin-top: 38px;
3
- display: flex;
18
+ margin-top: 0;
19
+ flex-shrink: 0;
20
+ // display: flex;
4
21
  justify-content: flex-start;
5
22
  gap: 10px;
6
- position: sticky;
7
- bottom: 0;
8
- z-index: 1000;
23
+ // position: relative;
24
+ z-index: 2;
9
25
  background: #fff;
10
- padding: 10px 0;
26
+ padding: 12px 0 10px;
11
27
  border-top: 1px solid #f0f0f0;
28
+ box-shadow: 0 -2px 10px rgba(15, 23, 42, 0.04);
29
+
30
+
31
+ width: 61%;
32
+ padding: 10px;
33
+ position: fixed;
34
+ bottom: 10px;
35
+ border: 1px solid #f1f1f1;
36
+ margin: flx;
37
+ display: flex;
38
+ border-radius: 4px;
39
+ box-shadow: -1px -4px 10px 2px #f7f7f76e;
40
+
12
41
 
13
42
  .ant-btn {
14
43
  border-radius: 4px;
@@ -21,6 +21,7 @@ import TimelinePanel from './timeline';
21
21
  import { ExternalWindow } from '../../components';
22
22
 
23
23
  export default function ProcessStepsPage({ match, CustomComponents = {}, ...props }) {
24
+
24
25
  const allComponents = { ...genericComponents, ...CustomComponents };
25
26
 
26
27
  const [loading, setLoading] = useState(false);
@@ -32,7 +33,7 @@ export default function ProcessStepsPage({ match, CustomComponents = {}, ...prop
32
33
  const [stepStartTime, setStepStartTime] = useState(null);
33
34
  const [processStartTime, setProcessStartTime] = useState(null);
34
35
  const [processTimings, setProcessTimings] = useState([]);
35
- const [timelineCollapsed, setTimelineCollapsed] = useState(true);
36
+ const [timelineCollapsed, setTimelineCollapsed] = useState(false);
36
37
  const [showExternalWindow, setShowExternalWindow] = useState(false);
37
38
  const [externalWin, setExternalWin] = useState(null);
38
39
 
@@ -276,10 +277,10 @@ export default function ProcessStepsPage({ match, CustomComponents = {}, ...prop
276
277
  * and external window view.
277
278
  */
278
279
  const renderContent = () => (
279
- <div>
280
- <Card>
281
- <Row gutter={20}>
282
- <Col xs={24} sm={24} lg={timelineCollapsed ? 2 : 6}>
280
+ <div className="process-steps-page">
281
+ <Card className="process-steps-card">
282
+ <Row gutter={20} className="process-steps-row" align="stretch">
283
+ <Col xs={24} sm={24} lg={timelineCollapsed ? 2 : 6} className="process-steps-timeline-col">
283
284
  <TimelinePanel
284
285
  loading={loading}
285
286
  steps={steps}
@@ -290,12 +291,13 @@ export default function ProcessStepsPage({ match, CustomComponents = {}, ...prop
290
291
  />
291
292
  </Col>
292
293
 
293
- <Col xs={24} sm={24} lg={timelineCollapsed ? 21 : 18}>
294
- <div style={{ marginBottom: 20 }}>
295
- <h2 style={{ margin: 0, fontSize: 16, fontWeight: 600 }}>{steps[activeStep]?.step_name}</h2>
296
- <p style={{ margin: 0, color: '#666' }}>{steps[activeStep]?.step_description}</p>
297
- </div>
294
+ <Col xs={24} sm={24} lg={timelineCollapsed ? 21 : 18} className="process-steps-content-col">
295
+ {/* <div className="process-step-header">
296
+ <h2 className="process-step-title">{steps[activeStep]?.step_name}</h2>
297
+ <p className="process-step-description">{steps[activeStep]?.step_description}</p>
298
+ </div> */}
298
299
  <ActionButtons
300
+ className="process-step-action-buttons"
299
301
  loading={loading}
300
302
  steps={steps}
301
303
  activeStep={activeStep}
@@ -1,44 +1,169 @@
1
+ .process-steps-page {
2
+ height: 100dvh;
3
+ display: flex;
4
+ flex-direction: column;
5
+ overflow: hidden;
6
+ }
7
+
8
+ .process-steps-card {
9
+ flex: 1;
10
+ height: 100%;
11
+ overflow: hidden;
12
+
13
+ .ant-card-body {
14
+ height: 100%;
15
+ display: flex;
16
+ flex-direction: column;
17
+ overflow: hidden;
18
+ }
19
+ }
20
+
21
+ .process-steps-row {
22
+ flex: 1;
23
+ min-height: 0;
24
+ overflow: hidden;
25
+ }
26
+
27
+ .process-steps-timeline-col,
28
+ .process-steps-content-col {
29
+ display: flex;
30
+ flex-direction: column;
31
+ min-height: 0;
32
+ box-sizing: border-box;
33
+ }
34
+
35
+ .process-steps-timeline-col {
36
+ position: sticky;
37
+ top: 0;
38
+ align-self: flex-start;
39
+ height: 100%;
40
+ max-height: 100%;
41
+ }
42
+
43
+ .process-steps-timeline-col .timeline-card {
44
+ height: 100%;
45
+ width: 100%;
46
+ }
47
+
48
+ .process-steps-content-col {
49
+ flex: 1;
50
+ max-height: 100%;
51
+ overflow: hidden;
52
+ background: #fff;
53
+ border: 1px solid #e5ebf3;
54
+ border-radius: 14px;
55
+ box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
56
+ padding: 14px 16px;
57
+ position: relative;
58
+ z-index: 2;
59
+ }
60
+
61
+ .process-steps-content-col > .action-buttons-layout {
62
+ flex: 1;
63
+ min-height: 0;
64
+ height: 100%;
65
+ }
66
+
67
+ .process-step-header {
68
+ margin-bottom: 20px;
69
+ flex-shrink: 0;
70
+ }
71
+
72
+ .process-step-title {
73
+ margin: 0;
74
+ font-size: 16px;
75
+ font-weight: 600;
76
+ }
77
+
78
+ .process-step-description {
79
+ margin: 0;
80
+ color: #666;
81
+ }
82
+
83
+ .timeline-card {
84
+ height: 100%;
85
+ border: none !important;
86
+ border-radius: 12px;
87
+ background: linear-gradient(180deg, #f4f7fc 0%, #edf2f9 100%);
88
+ box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.8), inset 0 8px 16px rgba(15, 23, 42, 0.08), inset 0 -2px 8px rgba(15, 23, 42, 0.04);
89
+ }
90
+
1
91
  .timeline-card .ant-card-body {
2
- // padding: 20px;
92
+ padding: 8px;
3
93
  border: none;
4
- min-height: 400px;
5
- // position: fixed; /* For positioning the arrow */
94
+ min-height: 100%;
95
+ position: relative;
96
+ overflow: visible;
97
+ }
98
+
99
+ .timeline-sidebar-wrap {
100
+ height: 100%;
101
+ position: relative;
6
102
  }
7
103
 
8
104
  .timeline-sidebar {
9
105
  display: flex;
10
106
  flex-direction: column;
11
- gap: 20px;
107
+ gap: 10px;
12
108
  transition: all 0.3s ease;
109
+ height: 100%;
110
+ overflow-y: auto;
111
+ padding-right: 4px;
13
112
  }
14
113
 
15
114
  .timeline-step {
16
115
  display: flex;
116
+ align-items: flex-start;
17
117
  cursor: pointer;
118
+ border: 1px solid #e4eaf3;
119
+ border-radius: 10px;
120
+ background: #fff;
121
+ padding: 10px 12px;
122
+ transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
123
+ }
124
+
125
+ .timeline-step:hover {
126
+ border-color: #b7c8ea;
127
+ box-shadow: 0 2px 8px rgba(24, 45, 84, 0.08);
128
+ transform: translateY(-1px);
18
129
  }
19
130
 
20
131
  .timeline-step.active .step-number {
21
- background: #3b82f6;
132
+ background: #1f6fe5;
133
+ border-color: #1f6fe5;
22
134
  color: white;
23
135
  }
24
136
 
25
137
  .timeline-step.completed .step-number {
26
- background: #22c55e;
138
+ background: #2fa857;
139
+ border-color: #2fa857;
27
140
  color: white;
28
141
  }
29
142
 
143
+ .timeline-step.active {
144
+ border-color: #96b9f7;
145
+ box-shadow: 0 0 0 1px rgba(31, 111, 229, 0.2);
146
+ }
147
+
148
+ .timeline-step.completed {
149
+ border-color: #cfead9;
150
+ }
151
+
30
152
  .step-marker {
31
153
  display: flex;
32
154
  flex-direction: column;
33
155
  align-items: center;
34
- margin-right: 14px;
156
+ margin-right: 12px;
157
+ min-width: 34px;
35
158
  }
36
159
 
37
160
  .step-number {
38
- width: 28px;
39
- height: 28px;
161
+ width: 34px;
162
+ height: 34px;
40
163
  border-radius: 50%;
41
- background: #d9d9d9;
164
+ border: 2px solid #d4dde9;
165
+ background: #fff;
166
+ color: #5b6678;
42
167
  display: flex;
43
168
  align-items: center;
44
169
  justify-content: center;
@@ -47,49 +172,95 @@
47
172
 
48
173
  .vertical-line {
49
174
  width: 2px;
50
- height: 20px;
51
- background: #d9d9d9;
175
+ min-height: 14px;
176
+ flex: 1;
177
+ margin-top: 6px;
178
+ background: #d5deea;
179
+ }
180
+
181
+ .timeline-step.completed .vertical-line {
182
+ background: #2fa857;
52
183
  }
53
184
 
54
185
  .step-info {
55
186
  display: flex;
56
187
  flex-direction: column;
57
188
  justify-content: center;
189
+ min-width: 0;
58
190
  }
59
191
 
60
192
  .step-title {
61
193
  font-size: 13px;
62
194
  font-weight: 500;
195
+ line-height: 1.2;
196
+ color: #6b7280;
197
+ margin-bottom: 2px;
63
198
  }
64
199
 
65
200
  .step-main {
66
- font-size: 15px;
201
+ font-size: 16px;
67
202
  font-weight: 600;
203
+ color: #1f2937;
204
+ line-height: 1.2;
205
+ margin-bottom: 2px;
206
+ }
207
+
208
+ .step-desc {
209
+ font-size: 13px;
210
+ color: #7a8495;
211
+ line-height: 1.2;
212
+ overflow: hidden;
213
+ text-overflow: ellipsis;
214
+ display: -webkit-box;
215
+ -webkit-line-clamp: 2;
216
+ -webkit-box-orient: vertical;
68
217
  }
69
218
 
70
219
  .toggle-arrow {
71
220
  position: absolute;
72
221
  top: 50%;
73
- right: -12px; /* Position it just outside the card body padding */
222
+ right: -12px;
74
223
  transform: translateY(-50%);
75
- width: 24px;
76
- height: 24px;
224
+ width: 30px;
225
+ height: 30px;
77
226
  background: #fff;
78
- border: 1px solid #f0f0f0;
227
+ border: 1px solid #b8c9e4;
79
228
  border-radius: 50%;
80
229
  display: flex;
81
230
  align-items: center;
82
231
  justify-content: center;
83
232
  cursor: pointer;
84
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
85
- z-index: 10;
86
- transition: all 0.3s ease;
233
+ color: #1f3f74;
234
+ box-shadow: 0 6px 14px rgba(15, 23, 42, 0.2);
235
+ z-index: 40;
236
+ transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
87
237
 
88
238
  &:hover {
89
- background: #f5f5f5;
239
+ background: #f0f6ff;
240
+ border-color: #90abd1;
241
+ box-shadow: 0 8px 16px rgba(15, 23, 42, 0.24);
242
+ }
243
+
244
+ &:active {
245
+ transform: translateY(-50%) scale(0.96);
90
246
  }
91
247
  }
92
248
 
249
+ .timeline-sidebar.collapsed {
250
+ align-items: center;
251
+ }
252
+
253
+ .timeline-sidebar.collapsed .timeline-step {
254
+ padding: 6px 4px;
255
+ border: none;
256
+ background: transparent;
257
+ box-shadow: none;
258
+ }
259
+
260
+ .timeline-sidebar.collapsed .step-marker {
261
+ margin-right: 0;
262
+ }
263
+
93
264
  /* ============================
94
265
  MOBILE & TABLET VIEW FIXES
95
266
  ============================ */
@@ -97,30 +268,58 @@
97
268
 
98
269
 
99
270
  @media (max-width: 992px) { // iPad & tablets
271
+ .process-steps-page,
272
+ .process-steps-row {
273
+ min-height: auto;
274
+ height: auto;
275
+ overflow: visible;
276
+ }
277
+
278
+ .process-steps-card,
279
+ .process-steps-card .ant-card-body,
280
+ .process-steps-content-col {
281
+ overflow: visible;
282
+ }
283
+
284
+ .process-steps-content-col {
285
+ padding: 12px;
286
+ border-radius: 12px;
287
+ box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
288
+ }
289
+
290
+ .process-steps-timeline-col {
291
+ position: static;
292
+ top: auto;
293
+ align-self: stretch;
294
+ height: auto;
295
+ max-height: none;
296
+ }
297
+
100
298
  .timeline-card .ant-card-body {
101
299
  padding: 12px;
102
300
  min-height: auto;
301
+ overflow: visible;
103
302
  }
104
303
 
105
304
  .timeline-sidebar {
106
305
  flex-direction: row !important;
107
306
  overflow-x: auto;
108
- gap: 12px;
307
+ overflow-y: visible;
308
+ gap: 10px;
109
309
  padding-bottom: 10px;
110
310
  border-bottom: 1px solid #eee;
111
311
  }
112
312
 
113
313
  .timeline-step {
114
- flex-direction: column;
115
- align-items: center;
314
+ min-width: 190px;
116
315
  }
117
316
 
118
317
  .step-marker {
119
- margin-right: 0;
318
+ margin-right: 10px;
120
319
  }
121
320
 
122
- .step-info {
123
- text-align: center;
321
+ .vertical-line {
322
+ display: none;
124
323
  }
125
324
 
126
325
  .toggle-arrow {
@@ -144,11 +343,11 @@
144
343
  }
145
344
 
146
345
  .step-main {
147
- font-size: 13px;
346
+ font-size: 14px;
148
347
  }
149
348
 
150
- .vertical-line {
151
- display: none;
349
+ .step-desc {
350
+ font-size: 12px;
152
351
  }
153
352
 
154
353
  /* Card layout full width */
@@ -156,4 +355,3 @@
156
355
  padding: 10px;
157
356
  }
158
357
  }
159
-
@@ -21,29 +21,31 @@ export default function TimelinePanel({ loading, steps, activeStep, timelineColl
21
21
  {loading ? (
22
22
  <Skeleton active />
23
23
  ) : (
24
- <div className={`timeline-sidebar ${timelineCollapsed ? 'collapsed' : ''}`}>
25
- {steps.map((step, index) => (
26
- <div
27
- key={step.step_id}
28
- className={`timeline-step
24
+ <div className="timeline-sidebar-wrap">
25
+ <div className={`timeline-sidebar ${timelineCollapsed ? 'collapsed' : ''}`}>
26
+ {steps.map((step, index) => (
27
+ <div
28
+ key={step.step_id}
29
+ className={`timeline-step
29
30
  ${index === activeStep ? 'active' : ''}
30
31
  ${index < activeStep ? 'completed' : ''}`}
31
- onClick={() => handleTimelineClick(index)}
32
- >
33
- <div className="step-marker">
34
- <div className="step-number">{index + 1}</div>
35
- {index < steps.length - 1 && <div className="vertical-line"></div>}
36
- </div>
37
-
38
- {!timelineCollapsed && (
39
- <div className="step-info">
40
- <div className="step-title">Step {index + 1}</div>
41
- <div className="step-main">{step.step_name}</div>
32
+ onClick={() => handleTimelineClick(index)}
33
+ >
34
+ <div className="step-marker">
35
+ <div className="step-number">{index + 1}</div>
36
+ {index < steps.length - 1 && <div className="vertical-line"></div>}
42
37
  </div>
43
- )}
44
- </div>
45
- ))}
46
38
 
39
+ {!timelineCollapsed && (
40
+ <div className="step-info">
41
+ <div className="step-title">Step {index + 1}</div>
42
+ <div className="step-main">{step.step_name}</div>
43
+ <div className="step-desc">{step.step_description || ''}</div>
44
+ </div>
45
+ )}
46
+ </div>
47
+ ))}
48
+ </div>
47
49
  <div className="toggle-arrow" onClick={() => setTimelineCollapsed(!timelineCollapsed)}>
48
50
  {timelineCollapsed ? <RightOutlined /> : <LeftOutlined />}
49
51
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ui-soxo-bootstrap-core",
3
- "version": "2.6.1-dev.1",
3
+ "version": "2.6.1-dev.10",
4
4
  "description": "All the Core Components for you to start",
5
5
  "keywords": [
6
6
  "all in one"
@@ -48,6 +48,7 @@
48
48
  "i18next": "^22.4.15",
49
49
  "i18next-browser-languagedetector": "^7.0.1",
50
50
  "jquery": "^3.6.0",
51
+ "libphonenumber-js": "^1.12.39",
51
52
  "lint-staged": "^12.3.2",
52
53
  "moment-timezone": "^0.5.34",
53
54
  "otp-input-react": "^0.3.0",