@unopsitg/ux 21.0.2

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 (77) hide show
  1. package/README.md +56 -0
  2. package/assets/_animations.scss +47 -0
  3. package/assets/_breadcrumb.scss +71 -0
  4. package/assets/_card.scss +11 -0
  5. package/assets/_config.scss +95 -0
  6. package/assets/_content.scss +55 -0
  7. package/assets/_fonts.scss +1 -0
  8. package/assets/_footer.scss +17 -0
  9. package/assets/_main.scss +38 -0
  10. package/assets/_mask.scss +7 -0
  11. package/assets/_paginator.scss +16 -0
  12. package/assets/_responsive.scss +203 -0
  13. package/assets/_sass_variables.scss +2 -0
  14. package/assets/_search.scss +35 -0
  15. package/assets/_tags.scss +90 -0
  16. package/assets/_topbar.scss +250 -0
  17. package/assets/_utils.scss +19 -0
  18. package/assets/fonts/InterDisplay-Black.otf +0 -0
  19. package/assets/fonts/InterDisplay-BlackItalic.otf +0 -0
  20. package/assets/fonts/InterDisplay-Bold.otf +0 -0
  21. package/assets/fonts/InterDisplay-BoldItalic.otf +0 -0
  22. package/assets/fonts/InterDisplay-ExtraBold.otf +0 -0
  23. package/assets/fonts/InterDisplay-ExtraBoldItalic.otf +0 -0
  24. package/assets/fonts/InterDisplay-ExtraLight.otf +0 -0
  25. package/assets/fonts/InterDisplay-ExtraLightItalic.otf +0 -0
  26. package/assets/fonts/InterDisplay-Italic.otf +0 -0
  27. package/assets/fonts/InterDisplay-Light.otf +0 -0
  28. package/assets/fonts/InterDisplay-LightItalic.otf +0 -0
  29. package/assets/fonts/InterDisplay-Medium.otf +0 -0
  30. package/assets/fonts/InterDisplay-MediumItalic.otf +0 -0
  31. package/assets/fonts/InterDisplay-Regular.otf +0 -0
  32. package/assets/fonts/InterDisplay-SemiBold.otf +0 -0
  33. package/assets/fonts/InterDisplay-SemiBoldItalic.otf +0 -0
  34. package/assets/fonts/InterDisplay-Thin.otf +0 -0
  35. package/assets/fonts/InterDisplay-ThinItalic.otf +0 -0
  36. package/assets/layout.scss +20 -0
  37. package/assets/opp/AppLogo/AppLogo-onDark_H.svg +55 -0
  38. package/assets/opp/AppLogo/AppLogo-onDark_V.svg +55 -0
  39. package/assets/opp/AppLogo/AppLogo-onDark_compact.svg +48 -0
  40. package/assets/opp/AppLogo/AppLogo-onLight_H.svg +55 -0
  41. package/assets/opp/AppLogo/AppLogo-onLight_V.svg +55 -0
  42. package/assets/opp/AppLogo-dark-vertical.svg +55 -0
  43. package/assets/opp/drive-download-20260421T141232Z-3-001.zip +0 -0
  44. package/assets/opp/favicon/apple-touch-icon.png +0 -0
  45. package/assets/opp/favicon/favicon-96x96.png +0 -0
  46. package/assets/opp/favicon/favicon.ico +0 -0
  47. package/assets/opp/favicon/favicon.svg +17 -0
  48. package/assets/opp/favicon/web-app-manifest-192x192.png +0 -0
  49. package/assets/opp/favicon/web-app-manifest-512x512.png +0 -0
  50. package/assets/opp/logo-dark-horizontal.svg +55 -0
  51. package/assets/opp/logo-light-horizontal.svg +55 -0
  52. package/assets/opp/unops-logo/UNOPS logo_vertical_RGB.png +0 -0
  53. package/assets/opp/unops-logo/UNOPS logo_vertical_RGB_black.png +0 -0
  54. package/assets/opp/unops-logo/UNOPS logo_vertical_RGB_white.png +0 -0
  55. package/assets/opp/unops-logo/unops-logo_ondark.svg +19 -0
  56. package/assets/opp/unops-logo/unops-logo_onlight.svg +10 -0
  57. package/assets/sidebar/_sidebar.scss +7 -0
  58. package/assets/sidebar/_sidebar_compact.scss +176 -0
  59. package/assets/sidebar/_sidebar_drawer.scss +200 -0
  60. package/assets/sidebar/_sidebar_horizontal.scss +220 -0
  61. package/assets/sidebar/_sidebar_reveal.scss +176 -0
  62. package/assets/sidebar/_sidebar_slim.scss +117 -0
  63. package/assets/sidebar/_sidebar_theme_core.scss +147 -0
  64. package/assets/sidebar/_sidebar_themes.scss +4 -0
  65. package/assets/sidebar/_sidebar_vertical.scss +392 -0
  66. package/assets/sidebar/themes/_dark.scss +31 -0
  67. package/assets/sidebar/themes/_light.scss +16 -0
  68. package/assets/sidebar/themes/_primary.scss +41 -0
  69. package/assets/styles.scss +1 -0
  70. package/assets/tailwind.css +679 -0
  71. package/assets/variables/_common.scss +21 -0
  72. package/assets/variables/_dark.scss +13 -0
  73. package/assets/variables/_light.scss +13 -0
  74. package/fesm2022/unopsitg-ux.mjs +2596 -0
  75. package/fesm2022/unopsitg-ux.mjs.map +1 -0
  76. package/package.json +46 -0
  77. package/types/unopsitg-ux.d.ts +878 -0
@@ -0,0 +1,392 @@
1
+ @use '../_sass_variables' as *;
2
+
3
+ .layout-sidebar {
4
+ margin-left: 0;
5
+ width: 16rem;
6
+ height: 100%;
7
+ border-radius: 0;
8
+ background: transparent;
9
+ overflow: hidden;
10
+ box-shadow: $sidebarShadow;
11
+ display: flex;
12
+ flex-direction: column;
13
+ user-select: none;
14
+ transition:
15
+ width 0.15s cubic-bezier(0.4, 0, 0.2, 1),
16
+ margin 0.15s cubic-bezier(0.4, 0, 0.2, 1),
17
+ transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
18
+ }
19
+
20
+ .layout-menu-container {
21
+ overflow: auto;
22
+ flex: 1;
23
+ padding: 0.5rem 0;
24
+ }
25
+
26
+ .layout-content {
27
+ .layout-breadcrumb {
28
+ display: none;
29
+ }
30
+ }
31
+ .layout-menu {
32
+ margin: 1rem 0rem;
33
+ padding: 0;
34
+ list-style-type: none;
35
+
36
+ .menu-separator {
37
+ margin: 1.5rem 0 0 0;
38
+ color: var(--p-primary-50);
39
+ z-index: 1000;
40
+ overflow: hidden;
41
+ max-height: 1.75rem;
42
+ background: var(--p-surface-100);
43
+ }
44
+
45
+ .layout-root-menuitem {
46
+ > .layout-menuitem-root-text {
47
+ font-size: var(--text-xs);
48
+ text-transform: uppercase;
49
+ letter-spacing: 0.05rem;
50
+ padding: 0 1.5rem 0.5rem 1rem;
51
+ margin-left: 1rem;
52
+ overflow: hidden;
53
+ white-space: nowrap;
54
+ max-height: 2.5rem;
55
+ opacity: 0.7;
56
+ transition: opacity 0.1s cubic-bezier(0.4, 0, 0.2, 1);
57
+ }
58
+
59
+ &:has(> .layout-menuitem-root-text) > a {
60
+ display: none;
61
+ }
62
+
63
+ &:not(:has(> .layout-menuitem-root-text)) > a {
64
+ display: flex;
65
+ align-items: center;
66
+ font-weight: 500 !important;
67
+ padding: 0.5rem 2rem;
68
+ border-radius: 1rem;
69
+ cursor: pointer;
70
+ transition: box-shadow var(--transition-duration);
71
+
72
+
73
+ .layout-menuitem-icon {
74
+ color: var(--d-menuitem-icon-color);
75
+ margin-right: 0.5rem;
76
+ flex-shrink: 0;
77
+ }
78
+
79
+ .layout-menuitem-text {
80
+ overflow: hidden;
81
+ color: var(--d-menuitem-text-color);
82
+ white-space: nowrap;
83
+ opacity: 1;
84
+ max-width: 12rem;
85
+ transform: translateX(0);
86
+ transition:
87
+ opacity 0.1s cubic-bezier(0.4, 0, 0.2, 1),
88
+ transform 0.1s cubic-bezier(0.4, 0, 0.2, 1),
89
+ max-width 0s 0.1s;
90
+ }
91
+ }
92
+
93
+ .layout-menu-tooltip {
94
+ display: none;
95
+ }
96
+ }
97
+
98
+ ul {
99
+ margin: 0;
100
+ padding: 0;
101
+ list-style-type: none;
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 0.5rem;
105
+ a {
106
+ display: flex;
107
+ align-items: center;
108
+ position: relative;
109
+ font-weight: 500 !important;
110
+ padding: 0.5rem 2rem;
111
+ border-radius: 1rem;
112
+
113
+
114
+ box-shadow: none !important;
115
+ cursor: pointer;
116
+ transition: box-shadow var(--transition-duration);
117
+
118
+ .layout-menuitem-icon {
119
+ color: var(--d-menuitem-icon-color);
120
+ margin-right: 0.5rem;
121
+ flex-shrink: 0;
122
+ }
123
+
124
+ .layout-menuitem-text {
125
+ overflow: hidden;
126
+ white-space: nowrap;
127
+ opacity: 1;
128
+ max-width: 12rem;
129
+ transform: translateX(0);
130
+ transition:
131
+ opacity 0.1s cubic-bezier(0.4, 0, 0.2, 1),
132
+ transform 0.1s cubic-bezier(0.4, 0, 0.2, 1),
133
+ max-width 0s 0.1s;
134
+ }
135
+
136
+ .layout-submenu-toggler {
137
+ color: var(--p-surface-400);
138
+ font-size: var(--text-sm);
139
+ margin-left: auto;
140
+ opacity: 1;
141
+ transition:
142
+ transform var(--transition-duration),
143
+ opacity 0.1s cubic-bezier(0.4, 0, 0.2, 1);
144
+ }
145
+ }
146
+
147
+ li {
148
+ &.active-menuitem {
149
+
150
+ > a {
151
+ .layout-submenu-toggler {
152
+ transform: rotate(-180deg);
153
+
154
+ }
155
+ }
156
+ > ul {
157
+ max-height: 1000px;
158
+ transition: max-height 0.15s cubic-bezier(0.4, 0, 0.2, 1);
159
+ padding-left: .5rem;
160
+
161
+ }
162
+ }
163
+ }
164
+
165
+ ul {
166
+ margin: 0;
167
+
168
+ list-style-type: none;
169
+ overflow: hidden;
170
+ max-height: 0;
171
+ transition: max-height 0.15s cubic-bezier(0.4, 0, 0.2, 1);
172
+
173
+
174
+ li {
175
+
176
+ a {
177
+ padding-left: 1rem;
178
+ }
179
+
180
+ li {
181
+ a {
182
+ padding-left: 1.5rem;
183
+ }
184
+
185
+ li {
186
+ a {
187
+ padding-left: 2.5rem;
188
+ }
189
+
190
+ li {
191
+ a {
192
+ padding-left: 3.5rem;
193
+ }
194
+
195
+ li {
196
+ a {
197
+ padding-left: 4.5rem;
198
+ }
199
+
200
+ li {
201
+ a {
202
+ padding-left: 5.5rem;
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ @media screen and (min-width: $breakpoint) {
215
+ .layout-sidebar-rail {
216
+ .layout-sidebar {
217
+ width: 5rem;
218
+ overflow: hidden;
219
+ transition: width 0.15s cubic-bezier(0.4, 0, 0.2, 1);
220
+ }
221
+
222
+ .layout-menu-container {
223
+ overflow: hidden;
224
+ padding: 0.5rem 0;
225
+
226
+ &::-webkit-scrollbar {
227
+ display: none;
228
+ }
229
+ }
230
+
231
+ .layout-menu {
232
+ padding: 0 0.5rem;
233
+ gap: 1rem;
234
+ display: flex;
235
+ flex-direction: column;
236
+
237
+ .menu-separator {
238
+ max-height: 0;
239
+ opacity: 0;
240
+ margin: 0;
241
+ }
242
+
243
+ .layout-root-menuitem {
244
+ > .layout-menuitem-root-text {
245
+ max-height: 0;
246
+ opacity: 0;
247
+ padding: 0;
248
+ }
249
+
250
+ > ul {
251
+ gap: 1rem;
252
+ }
253
+
254
+ &:not(:has(> .layout-menuitem-root-text)) > a {
255
+ justify-content: center;
256
+ padding: 0.45rem 0.75rem;
257
+ border-radius: 1rem;
258
+
259
+ .layout-menuitem-icon {
260
+ margin-right: 0;
261
+ }
262
+
263
+ .layout-menuitem-text {
264
+ opacity: 0;
265
+ max-width: 0;
266
+ overflow: hidden;
267
+ transform: translateX(-0.5rem);
268
+ }
269
+ }
270
+ }
271
+
272
+ ul li.active-menuitem {
273
+ padding: 0;
274
+ }
275
+
276
+ ul a {
277
+ justify-content: center;
278
+ padding: 0.45rem 0.75rem;
279
+
280
+ .layout-menuitem-text {
281
+ opacity: 0;
282
+ max-width: 0;
283
+ overflow: hidden;
284
+ transform: translateX(-0.5rem);
285
+ }
286
+
287
+ .layout-submenu-toggler {
288
+ opacity: 0;
289
+ max-width: 0;
290
+ overflow: hidden;
291
+ margin-left: 0;
292
+ }
293
+
294
+ .layout-menuitem-icon {
295
+ margin-right: 0;
296
+ }
297
+ }
298
+
299
+ ul ul {
300
+ max-height: 0;
301
+ gap: 0;
302
+ padding: 0;
303
+ transition: none;
304
+ }
305
+ }
306
+
307
+ &.layout-sidebar-expanded {
308
+ .layout-sidebar {
309
+ width: 16rem;
310
+ overflow: hidden;
311
+ }
312
+
313
+ .layout-menu-container {
314
+ overflow: auto;
315
+ padding: 0.5rem 0;
316
+ }
317
+
318
+ .layout-menu {
319
+ padding: 0 0.5rem;
320
+
321
+ .menu-separator {
322
+
323
+ opacity: 0.5;
324
+ transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s;
325
+ }
326
+
327
+ .layout-root-menuitem {
328
+ > .layout-menuitem-root-text {
329
+ max-height: 2.5rem;
330
+ opacity: 1;
331
+ padding: 0.5rem 0;
332
+ transition: opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s;
333
+ }
334
+
335
+ &:not(:has(> .layout-menuitem-root-text)) > a {
336
+ justify-content: flex-start;
337
+
338
+ .layout-menuitem-icon {
339
+ margin-right: 0.5rem;
340
+ }
341
+
342
+ .layout-menuitem-text {
343
+ opacity: 1;
344
+ max-width: 12rem;
345
+ transform: translateX(0);
346
+ transition:
347
+ opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
348
+ transform 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
349
+ max-width 0s;
350
+ }
351
+ }
352
+ }
353
+
354
+ ul li.active-menuitem {
355
+ padding: 0.5rem 0;
356
+ }
357
+
358
+ ul a {
359
+ justify-content: flex-start;
360
+
361
+ .layout-menuitem-text {
362
+ opacity: 1;
363
+ max-width: 12rem;
364
+ transform: translateX(0);
365
+ transition:
366
+ opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
367
+ transform 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s,
368
+ max-width 0s;
369
+ }
370
+
371
+ .layout-submenu-toggler {
372
+ opacity: 1;
373
+ max-width: 2rem;
374
+ margin-left: auto;
375
+ transition:
376
+ transform var(--transition-duration),
377
+ opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.05s;
378
+ }
379
+
380
+ .layout-menuitem-icon {
381
+ margin-right: 0.5rem;
382
+ }
383
+ }
384
+
385
+ ul ul {
386
+ max-height: 0;
387
+ gap: 1rem;
388
+ }
389
+ }
390
+ }
391
+ }
392
+ }
@@ -0,0 +1,31 @@
1
+ .layout-sidebar-dark {
2
+ --d-sidebar-bg-color: var(--p-surface-950);
3
+ --d-sidebar-bg-color-alt: var(--p-surface-950);
4
+ --d-sidebar-border: 1px solid transparent;
5
+ --d-app-name-color: var(--p-primary-800);
6
+ --d-menu-separator-border: 1px solid var(--surface-border);
7
+ --d-menuitem-root-text-color: var(--p-text-muted-color);
8
+ --d-menuitem-text-color: var(--p-text-color);
9
+ --d-menuitem-icon-color: var(--p-primary-700);
10
+ --d-menuitem-hover-bg: var(--surface-hover);
11
+ --d-menuitem-active-bg: rgba(0, 61, 114, 0.387);
12
+ --d-menuitem-active-text-color: var(--p-primary-600);
13
+ --d-menuitem-active-route-text-color: var(--p-primary-700);
14
+ --d-menuitem-active-border: 0.5px solid var(--surface-border);
15
+ --d-menuitem-focus-shadow: 0 0 0 0.2rem var(--p-primary-100);
16
+ }
17
+
18
+ .app-dark .layout-sidebar-dark {
19
+ --d-sidebar-border: 1px solid var(--p-surface-700);
20
+ --d-app-name-color: var(--p-surface-0);
21
+ --d-menu-separator-border: 1px solid rgba(255, 255, 255, 0.15);
22
+ --d-menuitem-root-text-color: var(--p-surface-0);
23
+ --d-menuitem-text-color: var(--p-surface-0);
24
+ --d-menuitem-icon-color: var(--color-ocean-300);
25
+ --d-menuitem-hover-bg: rgba(14, 114, 157, 0.3);
26
+ --d-menuitem-active-bg: rgba(0, 61, 114, 0.387);
27
+ --d-menuitem-active-text-color: var(--p-surface-0);
28
+ --d-menuitem-active-route-text-color: var(--p-surface-0);
29
+ --d-menuitem-active-border: 0.5px solid var(--p-surface-700);
30
+ --d-menuitem-focus-shadow: 0 0 0 0.2rem rgba(1, 26, 46, 0.45);
31
+ }
@@ -0,0 +1,16 @@
1
+ .layout-sidebar-light {
2
+ --d-sidebar-bg-color: var(--p-surface-0);
3
+ --d-sidebar-bg-color-alt: var(--color-ocean-100);
4
+ --d-sidebar-border: 1px solid var(--surface-border);
5
+ --d-app-name-color: var(--p-primary-800);
6
+ --d-menu-separator-border: 1px solid var(--surface-border);
7
+ --d-menuitem-root-text-color: var(--p-primary-700);
8
+ --d-menuitem-text-color: var(--p-primary-700);
9
+ --d-menuitem-icon-color: var(--p-primary-700);
10
+ --d-menuitem-hover-bg: var(--surface-hover);
11
+ --d-menuitem-active-bg: rgba(2, 44, 78, 0.177);
12
+ --d-menuitem-active-text-color: var(--p-primary-600);
13
+ --d-menuitem-active-route-text-color: var(--p-primary-700);
14
+ --d-menuitem-active-border: 0.5px solid var(--p-primary-200);
15
+ --d-menuitem-focus-shadow: 0 0 0 0.2rem rgba(90, 184, 255, 0.218);
16
+ }
@@ -0,0 +1,41 @@
1
+ .layout-sidebar-primary {
2
+ --d-sidebar-bg-color: var(--color-deepsea-500);
3
+ --d-sidebar-bg-color-alt: var(--color-deepsea-600);
4
+ --d-sidebar-border: 1px solid transparent;
5
+ --d-app-name-color: var(--p-surface-800);
6
+ --d-menu-separator-border: 1px solid var(--surface-border);
7
+ --d-menuitem-root-text-color: var(--p-surface-500);
8
+ --d-menuitem-text-color: var(--p-surface-700);
9
+ --d-menuitem-icon-color: var(--p-primary-700);
10
+ --d-menuitem-hover-bg: rgba(106, 208, 252, 0.3);
11
+ --d-menuitem-active-bg: rgba(106, 208, 252, 0.3);
12
+ --d-menuitem-active-text-color: var(--p-surface-900);
13
+ --d-menuitem-active-route-text-color: var(--p-surface-900);
14
+ --d-menuitem-active-border: 0.5px solid var(--p-primary-200);
15
+ --d-menuitem-focus-shadow: 0 0 0 0.2rem rgba(1, 26, 46, 0.45);
16
+ }
17
+
18
+ :root[class*='app-dark'] .layout-sidebar-primary {
19
+ --d-sidebar-bg-color: var(--color-blue-500);
20
+ --d-sidebar-bg-color-alt: var(--color-blue-600);
21
+ --d-sidebar-border: 1px solid transparent;
22
+ --d-app-name-color: var(--p-surface-0);
23
+ --d-menu-separator-border: 1px solid rgba(255, 255, 255, 0.15);
24
+ --d-menuitem-root-text-color: var(--p-primary-100);
25
+ --d-menuitem-text-color: var(--p-primary-50);
26
+ --d-menuitem-icon-color: var(--color-ocean-300);
27
+ --d-menuitem-hover-bg: rgba(0, 0, 0, 0.519);
28
+ --d-menuitem-active-bg: rgba(0, 61, 114, 0.387);
29
+ --d-menuitem-active-text-color: var(--p-surface-0);
30
+ --d-menuitem-active-route-text-color: var(--p-surface-0);
31
+ --d-menuitem-active-border: 0.5px solid var(--p-primary-500);
32
+ --d-menuitem-focus-shadow: 0 0 0 0.2rem rgba(1, 26, 46, 0.45);
33
+ }
34
+
35
+ @media screen and (min-width: 992px) {
36
+ :root .layout-sidebar-primary .layout-sidebar,
37
+ :root .layout-sidebar-dark .layout-sidebar,
38
+ :root .layout-sidebar-light .layout-sidebar {
39
+ background: transparent;
40
+ }
41
+ }
@@ -0,0 +1 @@
1
+ @use './layout.scss';