@ngb-bootstrap/core 0.0.0 → 0.1.0-next.0

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 (76) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +18 -0
  3. package/README.md +26 -0
  4. package/fesm2022/ngb-bootstrap-core-alert.mjs +154 -0
  5. package/fesm2022/ngb-bootstrap-core-alert.mjs.map +1 -0
  6. package/fesm2022/ngb-bootstrap-core-badge.mjs +100 -0
  7. package/fesm2022/ngb-bootstrap-core-badge.mjs.map +1 -0
  8. package/fesm2022/ngb-bootstrap-core-breadcrumb.mjs +135 -0
  9. package/fesm2022/ngb-bootstrap-core-breadcrumb.mjs.map +1 -0
  10. package/fesm2022/ngb-bootstrap-core-button.mjs +513 -0
  11. package/fesm2022/ngb-bootstrap-core-button.mjs.map +1 -0
  12. package/fesm2022/ngb-bootstrap-core-card.mjs +540 -0
  13. package/fesm2022/ngb-bootstrap-core-card.mjs.map +1 -0
  14. package/fesm2022/ngb-bootstrap-core-cdk.mjs +282 -0
  15. package/fesm2022/ngb-bootstrap-core-cdk.mjs.map +1 -0
  16. package/fesm2022/ngb-bootstrap-core-checkbox.mjs +165 -0
  17. package/fesm2022/ngb-bootstrap-core-checkbox.mjs.map +1 -0
  18. package/fesm2022/ngb-bootstrap-core-chips.mjs +512 -0
  19. package/fesm2022/ngb-bootstrap-core-chips.mjs.map +1 -0
  20. package/fesm2022/ngb-bootstrap-core-floating-label.mjs +83 -0
  21. package/fesm2022/ngb-bootstrap-core-floating-label.mjs.map +1 -0
  22. package/fesm2022/ngb-bootstrap-core-footer.mjs +48 -0
  23. package/fesm2022/ngb-bootstrap-core-footer.mjs.map +1 -0
  24. package/fesm2022/ngb-bootstrap-core-icon.mjs +243 -0
  25. package/fesm2022/ngb-bootstrap-core-icon.mjs.map +1 -0
  26. package/fesm2022/ngb-bootstrap-core-input.mjs +540 -0
  27. package/fesm2022/ngb-bootstrap-core-input.mjs.map +1 -0
  28. package/fesm2022/ngb-bootstrap-core-layout.mjs +272 -0
  29. package/fesm2022/ngb-bootstrap-core-layout.mjs.map +1 -0
  30. package/fesm2022/ngb-bootstrap-core-navbar.mjs +150 -0
  31. package/fesm2022/ngb-bootstrap-core-navbar.mjs.map +1 -0
  32. package/fesm2022/ngb-bootstrap-core-radio.mjs +279 -0
  33. package/fesm2022/ngb-bootstrap-core-radio.mjs.map +1 -0
  34. package/fesm2022/ngb-bootstrap-core-sidebar.mjs +425 -0
  35. package/fesm2022/ngb-bootstrap-core-sidebar.mjs.map +1 -0
  36. package/fesm2022/ngb-bootstrap-core-spinner.mjs +126 -0
  37. package/fesm2022/ngb-bootstrap-core-spinner.mjs.map +1 -0
  38. package/fesm2022/ngb-bootstrap-core-switch.mjs +147 -0
  39. package/fesm2022/ngb-bootstrap-core-switch.mjs.map +1 -0
  40. package/fesm2022/ngb-bootstrap-core.mjs +69 -0
  41. package/fesm2022/ngb-bootstrap-core.mjs.map +1 -0
  42. package/ngb-bootstrap.css +827 -0
  43. package/package.json +118 -4
  44. package/styles/_breadcrumb.scss +9 -0
  45. package/styles/_button.scss +14 -0
  46. package/styles/_card.scss +86 -0
  47. package/styles/_chip.scss +10 -0
  48. package/styles/_choice.scss +14 -0
  49. package/styles/_contrast.scss +23 -0
  50. package/styles/_icon.scss +62 -0
  51. package/styles/_index.scss +33 -0
  52. package/styles/_input.scss +9 -0
  53. package/styles/_layout.scss +602 -0
  54. package/styles/_overlay.scss +14 -0
  55. package/styles/_tokens.scss +29 -0
  56. package/styles/_typography.scss +77 -0
  57. package/styles/ngb-bootstrap.scss +2 -0
  58. package/types/ngb-bootstrap-core-alert.d.ts +65 -0
  59. package/types/ngb-bootstrap-core-badge.d.ts +38 -0
  60. package/types/ngb-bootstrap-core-breadcrumb.d.ts +32 -0
  61. package/types/ngb-bootstrap-core-button.d.ts +177 -0
  62. package/types/ngb-bootstrap-core-card.d.ts +154 -0
  63. package/types/ngb-bootstrap-core-cdk.d.ts +165 -0
  64. package/types/ngb-bootstrap-core-checkbox.d.ts +53 -0
  65. package/types/ngb-bootstrap-core-chips.d.ts +170 -0
  66. package/types/ngb-bootstrap-core-floating-label.d.ts +22 -0
  67. package/types/ngb-bootstrap-core-footer.d.ts +16 -0
  68. package/types/ngb-bootstrap-core-icon.d.ts +99 -0
  69. package/types/ngb-bootstrap-core-input.d.ts +208 -0
  70. package/types/ngb-bootstrap-core-layout.d.ts +102 -0
  71. package/types/ngb-bootstrap-core-navbar.d.ts +33 -0
  72. package/types/ngb-bootstrap-core-radio.d.ts +96 -0
  73. package/types/ngb-bootstrap-core-sidebar.d.ts +62 -0
  74. package/types/ngb-bootstrap-core-spinner.d.ts +49 -0
  75. package/types/ngb-bootstrap-core-switch.d.ts +44 -0
  76. package/types/ngb-bootstrap-core.d.ts +82 -0
@@ -0,0 +1,827 @@
1
+ :root {
2
+ --bs-body-font-family: Manrope, system-ui, sans-serif;
3
+ --bs-heading-font-weight: var(--bs-font-weight-bold);
4
+ --bs-fg-body: light-dark(#1b1f3b, #fff);
5
+ --bs-fg-2: light-dark(rgb(27 31 59 / 65%), rgb(255 255 255 / 72%));
6
+ --bs-fg-3: light-dark(rgb(27 31 59 / 40%), rgb(255 255 255 / 60%));
7
+ --bs-link-color: light-dark(#4c66c3, #6788ff);
8
+ --bs-link-hover-color: light-dark(#6c86e2, #526ed3);
9
+ --bs-link-decoration: none;
10
+ --bs-font-mono: monospace;
11
+ --bs-code-font-size: 0.75rem;
12
+ --ngb-h1-font-size: 3.125rem;
13
+ --ngb-h1-line-height: 3.5rem;
14
+ --ngb-h2-font-size: 2.75rem;
15
+ --ngb-h2-line-height: 3rem;
16
+ --ngb-h3-font-size: 2.25rem;
17
+ --ngb-h3-line-height: 2.5rem;
18
+ --ngb-h4-font-size: 1.75rem;
19
+ --ngb-h4-line-height: 2rem;
20
+ --ngb-h5-font-size: 1.5rem;
21
+ --ngb-h5-line-height: 1.75rem;
22
+ --ngb-h6-font-size: 1.25rem;
23
+ --ngb-h6-line-height: 1.5rem;
24
+ --ngb-small-line-height: 1.25rem;
25
+ --ngb-code-font-weight: 500;
26
+ --ngb-code-line-height: 1.125rem;
27
+ --ngb-code-bg: light-dark(rgb(0 0 0 / 4%), rgb(255 255 255 / 8%));
28
+ --ngb-pre-font-size: 0.875rem;
29
+ }
30
+
31
+ @layer components {
32
+ h1,
33
+ .h1 {
34
+ font-size: var(--ngb-h1-font-size);
35
+ line-height: var(--ngb-h1-line-height);
36
+ }
37
+ h2,
38
+ .h2 {
39
+ font-size: var(--ngb-h2-font-size);
40
+ line-height: var(--ngb-h2-line-height);
41
+ }
42
+ h3,
43
+ .h3 {
44
+ font-size: var(--ngb-h3-font-size);
45
+ line-height: var(--ngb-h3-line-height);
46
+ }
47
+ h4,
48
+ .h4 {
49
+ font-size: var(--ngb-h4-font-size);
50
+ line-height: var(--ngb-h4-line-height);
51
+ }
52
+ h5,
53
+ .h5 {
54
+ font-size: var(--ngb-h5-font-size);
55
+ line-height: var(--ngb-h5-line-height);
56
+ }
57
+ h6,
58
+ .h6 {
59
+ font-size: var(--ngb-h6-font-size);
60
+ line-height: var(--ngb-h6-line-height);
61
+ }
62
+ small,
63
+ .small {
64
+ line-height: var(--ngb-small-line-height);
65
+ }
66
+ code {
67
+ padding: 0.0625rem 0.25rem;
68
+ font-weight: var(--ngb-code-font-weight);
69
+ line-height: var(--ngb-code-line-height);
70
+ background-color: var(--ngb-code-bg);
71
+ border-radius: var(--bs-radius-3);
72
+ }
73
+ pre {
74
+ font-size: var(--ngb-pre-font-size);
75
+ line-height: 1.5;
76
+ }
77
+ pre code {
78
+ padding: 0;
79
+ font-weight: inherit;
80
+ line-height: inherit;
81
+ background: none;
82
+ }
83
+ }
84
+ :root {
85
+ --bs-primary-bg: var(--bs-blue-600);
86
+ --bs-success-bg: var(--bs-green-700);
87
+ --bs-danger-bg: var(--bs-red-600);
88
+ --bs-primary-fg: light-dark(var(--bs-blue-700), var(--bs-blue-400));
89
+ --bs-success-fg: light-dark(var(--bs-green-700), var(--bs-green-400));
90
+ --bs-info-fg: light-dark(var(--bs-cyan-700), var(--bs-cyan-400));
91
+ --bs-warning-fg: light-dark(var(--bs-yellow-800), var(--bs-yellow-400));
92
+ }
93
+
94
+ @layer components {
95
+ .ngb-icon {
96
+ --ngb-icon-fill-1-resolved: var(--ngb-icon-fill-1, currentColor);
97
+ --ngb-icon-fill-2-resolved: var(--ngb-icon-fill-2, var(--bs-primary-bg));
98
+ --ngb-icon-fill-3-resolved: var(--ngb-icon-fill-3, var(--bs-bg-body));
99
+ --ngb-icon-fill-4-resolved: var(--ngb-icon-fill-4, var(--bs-info-bg));
100
+ display: inline-block;
101
+ flex-shrink: 0;
102
+ inline-size: var(--ngb-icon-size, 1em);
103
+ block-size: var(--ngb-icon-size, 1em);
104
+ line-height: 0;
105
+ vertical-align: -0.125em;
106
+ }
107
+ .ngb-icon > svg {
108
+ display: block;
109
+ inline-size: 100%;
110
+ block-size: 100%;
111
+ }
112
+ .ngb-icon-outline {
113
+ --ngb-icon-color-1: var(--ngb-icon-fill-1-resolved);
114
+ --ngb-icon-color-2: none;
115
+ --ngb-icon-color-3: var(--ngb-icon-fill-1-resolved);
116
+ --ngb-icon-color-4: none;
117
+ }
118
+ .ngb-icon-filled {
119
+ --ngb-icon-color-1: var(--ngb-icon-fill-1-resolved);
120
+ --ngb-icon-color-2: var(--ngb-icon-fill-1-resolved);
121
+ --ngb-icon-color-3: var(--ngb-icon-fill-3-resolved);
122
+ --ngb-icon-color-4: var(--ngb-icon-fill-3-resolved);
123
+ }
124
+ .ngb-icon-two-tone {
125
+ --ngb-icon-color-1: var(--ngb-icon-fill-1-resolved);
126
+ --ngb-icon-color-2: var(--ngb-icon-fill-2-resolved);
127
+ --ngb-icon-color-3: var(--ngb-icon-fill-1-resolved);
128
+ --ngb-icon-color-4: var(--ngb-icon-fill-2-resolved);
129
+ }
130
+ .ngb-icon-multi-color {
131
+ --ngb-icon-color-1: var(--ngb-icon-fill-1-resolved);
132
+ --ngb-icon-color-2: var(--ngb-icon-fill-2-resolved);
133
+ --ngb-icon-color-3: var(--ngb-icon-fill-3-resolved);
134
+ --ngb-icon-color-4: var(--ngb-icon-fill-4-resolved);
135
+ }
136
+ .ngb-icon-rtl:dir(rtl) {
137
+ transform: scaleX(-1);
138
+ }
139
+ }
140
+ @layer components {
141
+ .breadcrumb {
142
+ --bs-breadcrumb-link-color: var(--bs-fg-2);
143
+ --bs-breadcrumb-link-hover-color: var(--bs-fg-body);
144
+ }
145
+ }
146
+ @layer components {
147
+ .btn-icon {
148
+ inline-size: var(--bs-btn-min-height);
149
+ block-size: var(--bs-btn-min-height);
150
+ }
151
+ .btn-icon > .ngb-icon {
152
+ --ngb-icon-size: 1.25em;
153
+ }
154
+ }
155
+ @layer components {
156
+ .ngb-choice-group {
157
+ display: grid;
158
+ gap: 0.5rem;
159
+ }
160
+ .ngb-choice-group-inline {
161
+ display: flex;
162
+ flex-wrap: wrap;
163
+ gap: 0.5rem 1.5rem;
164
+ }
165
+ }
166
+ @layer components {
167
+ .chip-group {
168
+ display: flex;
169
+ flex-wrap: wrap;
170
+ gap: calc(var(--bs-chip-gap, 0.3125rem) * 1.5);
171
+ }
172
+ }
173
+ @layer components {
174
+ .ngb-textfield-clear {
175
+ padding-inline: 0.5rem;
176
+ background-color: var(--bs-btn-input-bg);
177
+ }
178
+ }
179
+ @layer components {
180
+ .ngb-collapsible-card {
181
+ --bs-card-border-width: 0;
182
+ --bs-card-border-radius: calc(var(--bs-radius-9) * 1.5);
183
+ --bs-card-inner-border-radius: var(--bs-card-border-radius);
184
+ --bs-card-box-shadow: 0 0.0625rem 0.25rem oklch(0 0 0 / 0.04);
185
+ --bs-card-bg: light-dark(var(--bs-bg-body), var(--bs-bg-2));
186
+ --bs-collapsible-peek-bg: var(--bs-bg-3);
187
+ --bs-collapsible-peek-height: 0.75rem;
188
+ --bs-collapsible-peek-inset: var(--bs-card-spacer-x);
189
+ padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
190
+ margin-block-end: var(--bs-collapsible-peek-height);
191
+ }
192
+ .ngb-collapsible-card:not(.ngb-collapsible-expanded)::after {
193
+ position: absolute;
194
+ inset-block-start: 100%;
195
+ inset-inline: var(--bs-collapsible-peek-inset);
196
+ height: var(--bs-collapsible-peek-height);
197
+ pointer-events: none;
198
+ content: "";
199
+ background-color: var(--bs-collapsible-peek-bg);
200
+ border-end-start-radius: var(--bs-radius-7);
201
+ border-end-end-radius: var(--bs-radius-7);
202
+ }
203
+ .ngb-collapsible-region {
204
+ display: grid;
205
+ grid-template-rows: 0fr;
206
+ visibility: hidden;
207
+ transition: grid-template-rows 0.3s cubic-bezier(0.2, 0, 0.4, 0.9), visibility 0s linear 0.3s;
208
+ }
209
+ .ngb-collapsible-expanded > .ngb-collapsible-region {
210
+ grid-template-rows: 1fr;
211
+ visibility: visible;
212
+ transition-delay: 0s;
213
+ }
214
+ .ngb-collapsible-region-inner {
215
+ min-height: 0;
216
+ overflow: hidden;
217
+ }
218
+ .ngb-collapsible-region-content {
219
+ padding-block-start: var(--bs-card-spacer-y);
220
+ }
221
+ .ngb-collapsible-toggle {
222
+ --ngb-icon-fill-1: var(--bs-primary-fg);
223
+ }
224
+ .ngb-collapsible-toggle > ngb-icon {
225
+ transition: transform 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
226
+ }
227
+ .ngb-collapsible-expanded .ngb-collapsible-toggle > ngb-icon {
228
+ transform: rotate(180deg);
229
+ }
230
+ .ngb-collapsible-static .ngb-collapsible-region,
231
+ .ngb-collapsible-static .ngb-collapsible-toggle > ngb-icon {
232
+ transition: none;
233
+ }
234
+ @media (prefers-reduced-motion: reduce) {
235
+ .ngb-collapsible-region,
236
+ .ngb-collapsible-toggle > ngb-icon {
237
+ transition: none;
238
+ }
239
+ }
240
+ }
241
+ @layer components {
242
+ .ngb-layout {
243
+ --ngb-layout-sidebar-size: var(--ngb-sidebar-width);
244
+ --ngb-layout-frame-corner: var(--ngb-layout-frame-radius);
245
+ --ngb-layout-seam-corner: var(--ngb-layout-seam-radius);
246
+ display: block;
247
+ min-height: 100dvh;
248
+ padding-top: var(--ngb-navbar-height);
249
+ background-color: var(--ngb-layout-panel-bg);
250
+ }
251
+ .ngb-layout::before {
252
+ position: fixed;
253
+ inset: calc(var(--ngb-navbar-height) - var(--ngb-layout-frame-width)) 0 0;
254
+ z-index: 1030;
255
+ pointer-events: none;
256
+ content: "";
257
+ border: var(--ngb-layout-frame-width) solid var(--ngb-layout-frame-bg);
258
+ border-radius: var(--ngb-layout-frame-corner);
259
+ box-shadow: -5rem 0 0 var(--ngb-layout-frame-bg), 5rem 0 0 var(--ngb-layout-frame-bg);
260
+ }
261
+ @media (width >= 768px) {
262
+ .ngb-layout {
263
+ --ngb-layout-content-padding: 2rem;
264
+ --ngb-navbar-padding-x: 1.5rem;
265
+ }
266
+ }
267
+ @media (width >= 1024px) {
268
+ .ngb-layout {
269
+ --ngb-layout-content-padding: 3rem;
270
+ }
271
+ }
272
+ .ngb-layout-square {
273
+ --ngb-layout-frame-corner: 0;
274
+ --ngb-layout-seam-corner: 0;
275
+ }
276
+ @media (width >= 1024px) {
277
+ .ngb-layout-sidebar-collapsed {
278
+ --ngb-layout-sidebar-size: var(--ngb-sidebar-collapsed-width);
279
+ }
280
+ .ngb-layout-full-sidebar::before {
281
+ content: none;
282
+ }
283
+ .ngb-layout-full-sidebar > .ngb-navbar {
284
+ inset-inline-start: var(--ngb-layout-sidebar-size);
285
+ transition: inset-inline-start 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
286
+ }
287
+ .ngb-layout-full-sidebar > .container-fluid > .row > .ngb-sidebar {
288
+ inset-block-start: 0;
289
+ }
290
+ .ngb-layout-full-sidebar > .container-fluid > .row > .ngb-sidebar::before {
291
+ inset-block: 0;
292
+ border-width: 0;
293
+ border-inline-end-width: var(--ngb-layout-seam-width);
294
+ border-radius: 0;
295
+ }
296
+ .ngb-layout-full-sidebar > .container-fluid > .row > .ngb-sidebar::after {
297
+ top: calc(var(--ngb-navbar-height) - var(--ngb-layout-seam-width));
298
+ bottom: calc(var(--ngb-layout-seam-width) * -1);
299
+ }
300
+ .ngb-layout-full-sidebar > .container-fluid > .row > .ngb-layout-content {
301
+ padding-inline-end: 0;
302
+ }
303
+ .ngb-layout-full-sidebar > .container-fluid > .row > .ngb-layout-content > .ngb-footer {
304
+ margin-bottom: 0;
305
+ }
306
+ }
307
+ @media (width >= 1024px) and (prefers-reduced-motion: reduce) {
308
+ .ngb-layout-full-sidebar > .ngb-navbar {
309
+ transition: none;
310
+ }
311
+ }
312
+ :root:has(.ngb-layout) {
313
+ background-color: var(--ngb-layout-frame-bg);
314
+ }
315
+ .ngb-layout-content {
316
+ display: flex;
317
+ flex-direction: column;
318
+ row-gap: var(--ngb-layout-seam-width);
319
+ min-width: 0;
320
+ min-height: calc(100dvh - var(--ngb-navbar-height));
321
+ padding-inline: var(--ngb-layout-frame-width);
322
+ background-color: var(--ngb-layout-frame-bg);
323
+ }
324
+ @media (width >= 1024px) {
325
+ .ngb-layout-content {
326
+ padding-inline-start: 0;
327
+ }
328
+ }
329
+ .ngb-layout-main {
330
+ flex-grow: 1;
331
+ padding: var(--ngb-layout-content-padding);
332
+ background-color: var(--ngb-layout-panel-bg);
333
+ }
334
+ .ngb-navbar {
335
+ --bs-navbar-min-height: var(--ngb-navbar-height);
336
+ --bs-navbar-padding-x: var(--ngb-navbar-padding-x);
337
+ --bs-navbar-padding-y: 0;
338
+ --bs-navbar-bg: var(--ngb-layout-frame-bg);
339
+ position: fixed;
340
+ inset: 0 0 auto;
341
+ z-index: 1031;
342
+ flex-wrap: nowrap;
343
+ gap: 0.75rem;
344
+ height: var(--ngb-navbar-height);
345
+ font-size: var(--bs-font-size-sm);
346
+ }
347
+ .ngb-navbar-start,
348
+ .ngb-navbar-end,
349
+ .ngb-navbar-brand,
350
+ .ngb-sidebar-brand {
351
+ display: flex;
352
+ gap: 0.75rem;
353
+ align-items: center;
354
+ min-width: 0;
355
+ }
356
+ .ngb-navbar-start {
357
+ flex: 1 1 0;
358
+ }
359
+ .ngb-navbar-end {
360
+ flex: 1 1 0;
361
+ justify-content: flex-end;
362
+ }
363
+ .ngb-navbar-center {
364
+ display: flex;
365
+ flex: 0 1 auto;
366
+ justify-content: center;
367
+ min-width: 0;
368
+ }
369
+ .ngb-navbar-center:empty {
370
+ display: none;
371
+ }
372
+ @media (width < 1024px) {
373
+ .ngb-navbar-center {
374
+ order: 2;
375
+ }
376
+ }
377
+ @media (width < 1024px) {
378
+ .ngb-navbar-end {
379
+ flex: 0 0 auto;
380
+ order: 1;
381
+ }
382
+ }
383
+ .ngb-navbar-menu {
384
+ --bs-btn-color: currentcolor;
385
+ --bs-btn-hover-bg: var(--ngb-layout-divider-color);
386
+ flex-shrink: 0;
387
+ margin-inline-start: -0.5rem;
388
+ }
389
+ @media (width >= 1024px) {
390
+ .ngb-layout:not(.ngb-layout-collapsible) > .ngb-navbar .ngb-navbar-menu {
391
+ display: none;
392
+ }
393
+ }
394
+ .ngb-sidebar {
395
+ display: contents;
396
+ }
397
+ @media (width >= 1024px) {
398
+ .ngb-sidebar {
399
+ position: fixed;
400
+ inset-block: var(--ngb-navbar-height) 0;
401
+ inset-inline-start: 0;
402
+ z-index: 1;
403
+ display: block;
404
+ width: var(--ngb-layout-sidebar-size);
405
+ background-color: var(--ngb-layout-panel-bg);
406
+ transition: width 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
407
+ }
408
+ .ngb-sidebar ~ .ngb-layout-content {
409
+ margin-inline-start: var(--ngb-layout-sidebar-size);
410
+ transition: margin-inline-start 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
411
+ }
412
+ .ngb-sidebar::before, .ngb-sidebar::after {
413
+ position: absolute;
414
+ top: calc(var(--ngb-layout-seam-width) * -1);
415
+ bottom: var(--ngb-layout-seam-width);
416
+ pointer-events: none;
417
+ content: "";
418
+ border: var(--ngb-layout-seam-width) solid var(--ngb-layout-frame-bg);
419
+ border-radius: var(--ngb-layout-seam-corner);
420
+ }
421
+ .ngb-sidebar::before {
422
+ inset-inline: 0;
423
+ }
424
+ .ngb-sidebar::after {
425
+ inset-inline-start: 100%;
426
+ width: 100vw;
427
+ margin-inline-start: calc(var(--ngb-layout-seam-width) * -1);
428
+ }
429
+ }
430
+ .ngb-sidebar-brand {
431
+ display: none;
432
+ }
433
+ @media (width >= 1024px) {
434
+ .ngb-layout-full-sidebar:not(.ngb-layout-sidebar-collapsed) > .ngb-navbar .ngb-navbar-brand {
435
+ display: none;
436
+ }
437
+ .ngb-layout-full-sidebar:not(.ngb-layout-sidebar-collapsed) > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-brand {
438
+ display: flex;
439
+ flex: none;
440
+ gap: 0.5rem;
441
+ height: var(--ngb-navbar-height);
442
+ padding-inline: 0.5rem;
443
+ margin: var(--bs-spacer-3);
444
+ margin-block-end: 0;
445
+ margin-inline-end: calc(var(--bs-spacer-3) + var(--ngb-layout-seam-width));
446
+ overflow: hidden;
447
+ background-color: var(--ngb-sidebar-brand-bg);
448
+ border-radius: var(--ngb-layout-seam-corner);
449
+ font-size: var(--bs-font-size-sm);
450
+ }
451
+ }
452
+ .ngb-sidebar-nav {
453
+ padding-block: 0.75rem;
454
+ }
455
+ @media (width < 1024px) {
456
+ .ngb-sidebar-nav {
457
+ margin-inline-start: -0.25rem;
458
+ }
459
+ }
460
+ @media (width >= 1024px) {
461
+ .ngb-layout-collapsible > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-nav {
462
+ width: var(--ngb-sidebar-width);
463
+ }
464
+ }
465
+ @media (prefers-reduced-motion: reduce) {
466
+ .ngb-sidebar,
467
+ .ngb-sidebar ~ .ngb-layout-content {
468
+ transition: none;
469
+ }
470
+ }
471
+ @media (width >= 1024px) {
472
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-nav {
473
+ width: auto;
474
+ }
475
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-nav > :not(.ngb-sidebar-list) {
476
+ display: none;
477
+ }
478
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-label {
479
+ position: absolute;
480
+ width: 1px;
481
+ height: 1px;
482
+ overflow: hidden;
483
+ white-space: nowrap;
484
+ clip-path: inset(50%);
485
+ }
486
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-icon {
487
+ margin-inline-end: 0;
488
+ }
489
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-chevron,
490
+ .ngb-layout-sidebar-collapsed > .container-fluid > .row > .ngb-sidebar .ngb-sidebar-collapse {
491
+ display: none;
492
+ }
493
+ }
494
+ .ngb-sidebar-close:not(:focus-visible) {
495
+ position: absolute !important;
496
+ width: 1px !important;
497
+ height: 1px !important;
498
+ overflow: hidden !important;
499
+ clip-path: inset(50%) !important;
500
+ }
501
+ .ngb-sidebar-close:focus-visible {
502
+ position: absolute;
503
+ inset-block-start: 0.75rem;
504
+ inset-inline-end: 0.75rem;
505
+ z-index: 1;
506
+ }
507
+ @media (width >= 1024px) {
508
+ .ngb-sidebar-close {
509
+ display: none;
510
+ }
511
+ }
512
+ .ngb-sidebar-list {
513
+ padding: 0;
514
+ margin: 0;
515
+ list-style: none;
516
+ }
517
+ .ngb-sidebar-link {
518
+ --ngb-sidebar-text-x: 3.5625rem;
519
+ --ngb-sidebar-line-x: 2.125rem;
520
+ position: relative;
521
+ display: flex;
522
+ gap: 0.25rem;
523
+ align-items: center;
524
+ width: 100%;
525
+ min-height: 2.25rem;
526
+ padding: 0.5rem 1rem 0.5rem var(--ngb-sidebar-text-x);
527
+ font: inherit;
528
+ font-size: var(--bs-font-size-sm);
529
+ line-height: 1.25rem;
530
+ color: var(--bs-fg-2);
531
+ text-align: start;
532
+ text-decoration: none;
533
+ cursor: pointer;
534
+ background: none;
535
+ border: 0;
536
+ border-radius: var(--bs-radius-1);
537
+ transition: color 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
538
+ }
539
+ .ngb-sidebar-link:hover, .ngb-sidebar-link:focus-visible {
540
+ color: var(--bs-fg-body);
541
+ }
542
+ .ngb-sidebar-link:focus-visible {
543
+ outline: var(--bs-focus-ring);
544
+ outline-offset: -2px;
545
+ }
546
+ .ngb-sidebar-link::before {
547
+ position: absolute;
548
+ inset-block: 0;
549
+ inset-inline-start: var(--ngb-sidebar-line-x);
550
+ width: 1px;
551
+ content: "";
552
+ background-color: var(--ngb-layout-divider-color);
553
+ }
554
+ .ngb-sidebar-link.active {
555
+ font-weight: var(--bs-font-weight-bold);
556
+ color: var(--bs-fg-body);
557
+ }
558
+ .ngb-sidebar-link.active::after {
559
+ position: absolute;
560
+ inset-block: 0.5rem;
561
+ inset-inline-start: calc(var(--ngb-sidebar-line-x) - 1px);
562
+ width: 3px;
563
+ content: "";
564
+ background-color: currentcolor;
565
+ border-radius: 1rem;
566
+ }
567
+ .ngb-sidebar-link[data-level="2"] {
568
+ --ngb-sidebar-text-x: 4.75rem;
569
+ --ngb-sidebar-line-x: 3.75rem;
570
+ }
571
+ .ngb-sidebar-link[data-level="3"] {
572
+ --ngb-sidebar-text-x: 6.375rem;
573
+ --ngb-sidebar-line-x: 5.375rem;
574
+ }
575
+ .ngb-sidebar-link[data-level="0"] {
576
+ gap: 0;
577
+ min-height: 2.5rem;
578
+ padding-block: 0.625rem;
579
+ padding-inline-start: 1.6875rem;
580
+ margin-bottom: -1px;
581
+ font-weight: var(--bs-font-weight-bold);
582
+ color: var(--bs-fg-body);
583
+ }
584
+ .ngb-sidebar-link[data-level="0"]::before, .ngb-sidebar-link[data-level="0"]::after {
585
+ display: none;
586
+ }
587
+ .ngb-sidebar-icon {
588
+ margin-inline-end: 0.875rem;
589
+ }
590
+ .ngb-sidebar-collapse {
591
+ display: grid;
592
+ grid-template-rows: 0fr;
593
+ transition: grid-template-rows 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
594
+ }
595
+ .ngb-sidebar-collapse-inner {
596
+ min-height: 0;
597
+ overflow: hidden;
598
+ opacity: 0;
599
+ transition: opacity 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
600
+ }
601
+ .ngb-sidebar-collapse-open {
602
+ grid-template-rows: 1fr;
603
+ }
604
+ .ngb-sidebar-collapse-open > .ngb-sidebar-collapse-inner {
605
+ opacity: 1;
606
+ }
607
+ @media (prefers-reduced-motion: reduce) {
608
+ .ngb-sidebar-collapse,
609
+ .ngb-sidebar-collapse-inner,
610
+ .ngb-sidebar-chevron {
611
+ transition: none;
612
+ }
613
+ }
614
+ .ngb-sidebar-chevron {
615
+ flex-shrink: 0;
616
+ margin-inline-start: auto;
617
+ transition: transform 0.3s cubic-bezier(0.2, 0, 0.4, 0.9);
618
+ }
619
+ [aria-expanded=true] > .ngb-sidebar-chevron {
620
+ transform: rotate(90deg);
621
+ }
622
+ .ngb-footer {
623
+ display: flex;
624
+ flex-wrap: wrap;
625
+ gap: 0.5rem 1.5rem;
626
+ align-items: center;
627
+ justify-content: space-between;
628
+ padding: 1.5rem var(--ngb-layout-content-padding);
629
+ font-size: var(--bs-font-size-sm);
630
+ line-height: 1.25rem;
631
+ color: var(--bs-fg-2);
632
+ border-top: 1px solid var(--ngb-layout-divider-color);
633
+ }
634
+ .ngb-layout-content > .ngb-footer {
635
+ margin-bottom: var(--ngb-layout-frame-width);
636
+ background-color: var(--ngb-layout-panel-bg);
637
+ border-top: 0;
638
+ }
639
+ .ngb-footer a {
640
+ color: inherit;
641
+ text-decoration: none;
642
+ }
643
+ .ngb-footer a:hover {
644
+ color: var(--bs-fg-body);
645
+ }
646
+ }
647
+ .ngb-sidebar-drawer {
648
+ --bs-drawer-width: min(17.25rem, calc(100vw - 3rem));
649
+ --bs-drawer-inset: 0px;
650
+ --bs-drawer-border-width: 0;
651
+ --bs-drawer-border-radius: 0;
652
+ --bs-drawer-box-shadow: none;
653
+ --bs-drawer-bg: var(--ngb-layout-panel-bg);
654
+ --bs-drawer-backdrop-bg: rgb(0 0 0 / 50%);
655
+ --bs-drawer-backdrop-blur: 0;
656
+ }
657
+ .ngb-sidebar-drawer .drawer-body {
658
+ padding: 0;
659
+ }
660
+ @media (width < 1024px) {
661
+ .ngb-sidebar-drawer {
662
+ --bs-drawer-transition-property: transform, visibility, overlay;
663
+ transition-behavior: allow-discrete;
664
+ }
665
+ .ngb-sidebar-drawer:not([open])::backdrop {
666
+ background-color: transparent;
667
+ }
668
+ }
669
+ @media (width >= 1024px) {
670
+ .ngb-sidebar-drawer {
671
+ flex-direction: column;
672
+ max-height: 100%;
673
+ overflow: hidden;
674
+ }
675
+ .ngb-sidebar-drawer .drawer-body {
676
+ flex: 1 1 auto;
677
+ flex-direction: column;
678
+ min-height: 0;
679
+ overflow-y: auto;
680
+ overflow-x: hidden;
681
+ overscroll-behavior: contain;
682
+ scrollbar-width: thin;
683
+ }
684
+ }
685
+
686
+ :root:has(.ngb-layout) {
687
+ scrollbar-gutter: auto;
688
+ scrollbar-width: thin;
689
+ scrollbar-color: var(--bs-fg-3) transparent;
690
+ }
691
+
692
+ @layer components {
693
+ .cdk-overlay-container, .cdk-global-overlay-wrapper {
694
+ pointer-events: none;
695
+ top: 0;
696
+ left: 0;
697
+ height: 100%;
698
+ width: 100%;
699
+ }
700
+ .cdk-overlay-container {
701
+ position: fixed;
702
+ z-index: 1000;
703
+ }
704
+ .cdk-overlay-container:empty {
705
+ display: none;
706
+ }
707
+ .cdk-global-overlay-wrapper {
708
+ display: flex;
709
+ position: absolute;
710
+ z-index: 1000;
711
+ }
712
+ .cdk-overlay-pane {
713
+ position: absolute;
714
+ pointer-events: auto;
715
+ box-sizing: border-box;
716
+ display: flex;
717
+ max-width: 100%;
718
+ max-height: 100%;
719
+ z-index: 1000;
720
+ }
721
+ .cdk-overlay-backdrop {
722
+ position: absolute;
723
+ top: 0;
724
+ bottom: 0;
725
+ left: 0;
726
+ right: 0;
727
+ pointer-events: auto;
728
+ -webkit-tap-highlight-color: transparent;
729
+ opacity: 0;
730
+ touch-action: manipulation;
731
+ z-index: 1000;
732
+ transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
733
+ }
734
+ @media (prefers-reduced-motion) {
735
+ .cdk-overlay-backdrop {
736
+ transition-duration: 1ms;
737
+ }
738
+ }
739
+ .cdk-overlay-backdrop-showing {
740
+ opacity: 1;
741
+ }
742
+ @media (forced-colors: active) {
743
+ .cdk-overlay-backdrop-showing {
744
+ opacity: 0.6;
745
+ }
746
+ }
747
+ .cdk-overlay-dark-backdrop {
748
+ background: rgba(0, 0, 0, 0.32);
749
+ }
750
+ .cdk-overlay-transparent-backdrop {
751
+ transition: visibility 1ms linear, opacity 1ms linear;
752
+ visibility: hidden;
753
+ opacity: 1;
754
+ }
755
+ .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing, .cdk-high-contrast-active .cdk-overlay-transparent-backdrop {
756
+ opacity: 0;
757
+ visibility: visible;
758
+ }
759
+ .cdk-overlay-backdrop-noop-animation {
760
+ transition: none;
761
+ }
762
+ .cdk-overlay-connected-position-bounding-box {
763
+ position: absolute;
764
+ display: flex;
765
+ flex-direction: column;
766
+ min-width: 1px;
767
+ min-height: 1px;
768
+ z-index: 1000;
769
+ }
770
+ .cdk-global-scrollblock {
771
+ position: fixed;
772
+ width: 100%;
773
+ overflow-y: scroll;
774
+ }
775
+ .cdk-overlay-popover {
776
+ background: none;
777
+ border: none;
778
+ padding: 0;
779
+ outline: 0;
780
+ overflow: visible;
781
+ position: fixed;
782
+ pointer-events: none;
783
+ white-space: normal;
784
+ color: inherit;
785
+ text-decoration: none;
786
+ width: 100%;
787
+ height: 100%;
788
+ inset: auto;
789
+ top: 0;
790
+ left: 0;
791
+ }
792
+ .cdk-overlay-popover::backdrop {
793
+ display: none;
794
+ }
795
+ .cdk-overlay-popover .cdk-overlay-backdrop {
796
+ position: fixed;
797
+ z-index: auto;
798
+ }
799
+ .cdk-overlay-container,
800
+ .cdk-global-overlay-wrapper {
801
+ z-index: var(--bs-z-toast, 1070);
802
+ }
803
+ }
804
+ @layer components {
805
+ :root {
806
+ --ngb-transition-duration: 0.2s;
807
+ --ngb-focus-outline-offset: 2px;
808
+ --ngb-layout-frame-bg: light-dark(#f6f6f6, #2f2f2f);
809
+ --ngb-layout-panel-bg: light-dark(#fff, #222);
810
+ --ngb-layout-frame-width: 0.5rem;
811
+ --ngb-layout-frame-radius: 1.5rem;
812
+ --ngb-layout-seam-width: 0.25rem;
813
+ --ngb-layout-seam-radius: 0.625rem;
814
+ --ngb-layout-divider-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.14));
815
+ --ngb-layout-content-padding: 1rem;
816
+ --ngb-navbar-height: 4.125rem;
817
+ --ngb-navbar-padding-x: 1rem;
818
+ --ngb-sidebar-width: 16.5rem;
819
+ --ngb-sidebar-collapsed-width: 4.375rem;
820
+ --ngb-sidebar-brand-bg: var(--ngb-layout-frame-bg);
821
+ }
822
+ @media (prefers-reduced-motion: reduce) {
823
+ :root {
824
+ --ngb-transition-duration: 0s;
825
+ }
826
+ }
827
+ }