nicegui-bootstrap-components 0.1.0__py3-none-any.whl

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 (103) hide show
  1. nicegui_bootstrap_components/__init__.py +7 -0
  2. nicegui_bootstrap_components/_base.py +590 -0
  3. nicegui_bootstrap_components/_host.py +259 -0
  4. nicegui_bootstrap_components/assets.py +371 -0
  5. nicegui_bootstrap_components/bs/__init__.py +267 -0
  6. nicegui_bootstrap_components/bs/_actions.py +232 -0
  7. nicegui_bootstrap_components/bs/_alert_spinner.py +423 -0
  8. nicegui_bootstrap_components/bs/_carousel.py +312 -0
  9. nicegui_bootstrap_components/bs/_choices.py +779 -0
  10. nicegui_bootstrap_components/bs/_content.py +1343 -0
  11. nicegui_bootstrap_components/bs/_forms.py +378 -0
  12. nicegui_bootstrap_components/bs/_inputs.py +560 -0
  13. nicegui_bootstrap_components/bs/_layout.py +341 -0
  14. nicegui_bootstrap_components/bs/_nav.py +650 -0
  15. nicegui_bootstrap_components/bs/_navbar.py +445 -0
  16. nicegui_bootstrap_components/bs/_overlay_root.py +73 -0
  17. nicegui_bootstrap_components/bs/_overlays.py +2633 -0
  18. nicegui_bootstrap_components/bs/_scope.py +28 -0
  19. nicegui_bootstrap_components/bs/_tabs.py +605 -0
  20. nicegui_bootstrap_components/bs/_toast.py +137 -0
  21. nicegui_bootstrap_components/bs/_tooltip_popover.py +537 -0
  22. nicegui_bootstrap_components/contracts/dbc-2.0.4.json +16811 -0
  23. nicegui_bootstrap_components/dbc/__init__.py +108 -0
  24. nicegui_bootstrap_components/icons.py +29 -0
  25. nicegui_bootstrap_components/persist.py +201 -0
  26. nicegui_bootstrap_components/py.typed +0 -0
  27. nicegui_bootstrap_components/static/dist/fonts/bootstrap-icons.woff +0 -0
  28. nicegui_bootstrap_components/static/dist/fonts/bootstrap-icons.woff2 +0 -0
  29. nicegui_bootstrap_components/static/dist/ngbs-bootstrap-unscoped.css +12047 -0
  30. nicegui_bootstrap_components/static/dist/ngbs-bootstrap.css +12057 -0
  31. nicegui_bootstrap_components/static/dist/ngbs-cerulean-unscoped.css +12338 -0
  32. nicegui_bootstrap_components/static/dist/ngbs-cerulean.css +12348 -0
  33. nicegui_bootstrap_components/static/dist/ngbs-compat-unscoped.css +12 -0
  34. nicegui_bootstrap_components/static/dist/ngbs-compat.css +12 -0
  35. nicegui_bootstrap_components/static/dist/ngbs-cosmo-unscoped.css +11825 -0
  36. nicegui_bootstrap_components/static/dist/ngbs-cosmo.css +11835 -0
  37. nicegui_bootstrap_components/static/dist/ngbs-cyborg-unscoped.css +12213 -0
  38. nicegui_bootstrap_components/static/dist/ngbs-cyborg.css +12223 -0
  39. nicegui_bootstrap_components/static/dist/ngbs-darkly-unscoped.css +12143 -0
  40. nicegui_bootstrap_components/static/dist/ngbs-darkly.css +12153 -0
  41. nicegui_bootstrap_components/static/dist/ngbs-flatly-unscoped.css +12129 -0
  42. nicegui_bootstrap_components/static/dist/ngbs-flatly.css +12139 -0
  43. nicegui_bootstrap_components/static/dist/ngbs-grid-unscoped.css +4084 -0
  44. nicegui_bootstrap_components/static/dist/ngbs-grid.css +4094 -0
  45. nicegui_bootstrap_components/static/dist/ngbs-host-unscoped.css +9 -0
  46. nicegui_bootstrap_components/static/dist/ngbs-host.css +9 -0
  47. nicegui_bootstrap_components/static/dist/ngbs-icons-bootstrap.css +5 -0
  48. nicegui_bootstrap_components/static/dist/ngbs-icons-fontawesome.css +9 -0
  49. nicegui_bootstrap_components/static/dist/ngbs-journal-unscoped.css +12112 -0
  50. nicegui_bootstrap_components/static/dist/ngbs-journal.css +12122 -0
  51. nicegui_bootstrap_components/static/dist/ngbs-litera-unscoped.css +12214 -0
  52. nicegui_bootstrap_components/static/dist/ngbs-litera.css +12224 -0
  53. nicegui_bootstrap_components/static/dist/ngbs-lumen-unscoped.css +12377 -0
  54. nicegui_bootstrap_components/static/dist/ngbs-lumen.css +12387 -0
  55. nicegui_bootstrap_components/static/dist/ngbs-lux-unscoped.css +12048 -0
  56. nicegui_bootstrap_components/static/dist/ngbs-lux.css +12058 -0
  57. nicegui_bootstrap_components/static/dist/ngbs-materia-unscoped.css +13197 -0
  58. nicegui_bootstrap_components/static/dist/ngbs-materia.css +13207 -0
  59. nicegui_bootstrap_components/static/dist/ngbs-minty-unscoped.css +12184 -0
  60. nicegui_bootstrap_components/static/dist/ngbs-minty.css +12194 -0
  61. nicegui_bootstrap_components/static/dist/ngbs-morph-unscoped.css +12829 -0
  62. nicegui_bootstrap_components/static/dist/ngbs-morph.css +12839 -0
  63. nicegui_bootstrap_components/static/dist/ngbs-pulse-unscoped.css +11901 -0
  64. nicegui_bootstrap_components/static/dist/ngbs-pulse.css +11911 -0
  65. nicegui_bootstrap_components/static/dist/ngbs-quartz-unscoped.css +12625 -0
  66. nicegui_bootstrap_components/static/dist/ngbs-quartz.css +12635 -0
  67. nicegui_bootstrap_components/static/dist/ngbs-sandstone-unscoped.css +12214 -0
  68. nicegui_bootstrap_components/static/dist/ngbs-sandstone.css +12224 -0
  69. nicegui_bootstrap_components/static/dist/ngbs-simplex-unscoped.css +12199 -0
  70. nicegui_bootstrap_components/static/dist/ngbs-simplex.css +12209 -0
  71. nicegui_bootstrap_components/static/dist/ngbs-sketchy-unscoped.css +12518 -0
  72. nicegui_bootstrap_components/static/dist/ngbs-sketchy.css +12528 -0
  73. nicegui_bootstrap_components/static/dist/ngbs-slate-unscoped.css +12527 -0
  74. nicegui_bootstrap_components/static/dist/ngbs-slate.css +12537 -0
  75. nicegui_bootstrap_components/static/dist/ngbs-solar-unscoped.css +12152 -0
  76. nicegui_bootstrap_components/static/dist/ngbs-solar.css +12162 -0
  77. nicegui_bootstrap_components/static/dist/ngbs-spacelab-unscoped.css +12279 -0
  78. nicegui_bootstrap_components/static/dist/ngbs-spacelab.css +12289 -0
  79. nicegui_bootstrap_components/static/dist/ngbs-superhero-unscoped.css +12223 -0
  80. nicegui_bootstrap_components/static/dist/ngbs-superhero.css +12233 -0
  81. nicegui_bootstrap_components/static/dist/ngbs-united-unscoped.css +12090 -0
  82. nicegui_bootstrap_components/static/dist/ngbs-united.css +12100 -0
  83. nicegui_bootstrap_components/static/dist/ngbs-vapor-unscoped.css +12556 -0
  84. nicegui_bootstrap_components/static/dist/ngbs-vapor.css +12566 -0
  85. nicegui_bootstrap_components/static/dist/ngbs-yeti-unscoped.css +12333 -0
  86. nicegui_bootstrap_components/static/dist/ngbs-yeti.css +12343 -0
  87. nicegui_bootstrap_components/static/dist/ngbs-zephyr-unscoped.css +12296 -0
  88. nicegui_bootstrap_components/static/dist/ngbs-zephyr.css +12306 -0
  89. nicegui_bootstrap_components/static/prototype-ngbs.css +541 -0
  90. nicegui_bootstrap_components/static/webfonts/fa-brands-400.ttf +0 -0
  91. nicegui_bootstrap_components/static/webfonts/fa-brands-400.woff2 +0 -0
  92. nicegui_bootstrap_components/static/webfonts/fa-regular-400.ttf +0 -0
  93. nicegui_bootstrap_components/static/webfonts/fa-regular-400.woff2 +0 -0
  94. nicegui_bootstrap_components/static/webfonts/fa-solid-900.ttf +0 -0
  95. nicegui_bootstrap_components/static/webfonts/fa-solid-900.woff2 +0 -0
  96. nicegui_bootstrap_components/static/webfonts/fa-v4compatibility.ttf +0 -0
  97. nicegui_bootstrap_components/static/webfonts/fa-v4compatibility.woff2 +0 -0
  98. nicegui_bootstrap_components/theme.py +238 -0
  99. nicegui_bootstrap_components/themes.py +131 -0
  100. nicegui_bootstrap_components-0.1.0.dist-info/METADATA +234 -0
  101. nicegui_bootstrap_components-0.1.0.dist-info/RECORD +103 -0
  102. nicegui_bootstrap_components-0.1.0.dist-info/WHEEL +4 -0
  103. nicegui_bootstrap_components-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,541 @@
1
+ /* Reboot */
2
+ .ngbs {
3
+ --bs-blue: #0d6efd;
4
+ --bs-indigo: #6610f2;
5
+ --bs-purple: #6f42c1;
6
+ --bs-pink: #d63384;
7
+ --bs-red: #dc3545;
8
+ --bs-orange: #fd7e14;
9
+ --bs-yellow: #ffc107;
10
+ --bs-green: #198754;
11
+ --bs-teal: #20c997;
12
+ --bs-cyan: #0dcaf0;
13
+ --bs-black: #000;
14
+ --bs-white: #fff;
15
+ --bs-gray: #6c757d;
16
+ --bs-gray-dark: #343a40;
17
+ --bs-gray-100: #f8f9fa;
18
+ --bs-gray-200: #e9ecef;
19
+ --bs-gray-300: #dee2e6;
20
+ --bs-gray-600: #6c757d;
21
+ --bs-gray-900: #212529;
22
+ --bs-primary: #0d6efd;
23
+ --bs-secondary: #6c757d;
24
+ --bs-success: #198754;
25
+ --bs-info: #0dcaf0;
26
+ --bs-warning: #ffc107;
27
+ --bs-danger: #dc3545;
28
+ --bs-light: #f8f9fa;
29
+ --bs-dark: #212529;
30
+ --bs-primary-rgb: 13, 110, 253;
31
+ --bs-secondary-rgb: 108, 117, 125;
32
+ --bs-success-rgb: 25, 135, 84;
33
+ --bs-info-rgb: 13, 202, 240;
34
+ --bs-warning-rgb: 255, 193, 7;
35
+ --bs-danger-rgb: 220, 53, 69;
36
+ --bs-light-rgb: 248, 249, 250;
37
+ --bs-dark-rgb: 33, 37, 41;
38
+ --bs-primary-text-emphasis: #052c65;
39
+ --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
40
+ --bs-body-font-family: var(--bs-font-sans-serif);
41
+ --bs-body-font-size: 1rem;
42
+ --bs-body-font-weight: 400;
43
+ --bs-body-line-height: 1.5;
44
+ --bs-body-color: #212529;
45
+ --bs-body-color-rgb: 33, 37, 41;
46
+ --bs-body-bg: #fff;
47
+ --bs-body-bg-rgb: 255, 255, 255;
48
+ --bs-border-width: 1px;
49
+ --bs-border-style: solid;
50
+ --bs-border-color: #dee2e6;
51
+ --bs-border-radius: 0.375rem;
52
+ --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
53
+ --bs-gutter-x: 1.5rem;
54
+ --bs-gutter-y: 0;
55
+ --bs-emphasis-color: #000;
56
+ --bs-tertiary-bg: #f8f9fa;
57
+ box-sizing: border-box;
58
+ font-family: var(--bs-body-font-family);
59
+ font-size: var(--bs-body-font-size);
60
+ font-weight: var(--bs-body-font-weight);
61
+ line-height: var(--bs-body-line-height);
62
+ background-color: var(--bs-body-bg);
63
+ color: var(--bs-body-color);
64
+ margin: 0;
65
+ }
66
+ .ngbs[data-bs-theme="dark"] {
67
+ --bs-body-color: #dee2e6;
68
+ --bs-body-color-rgb: 222, 226, 230;
69
+ --bs-body-bg: #212529;
70
+ --bs-body-bg-rgb: 33, 37, 41;
71
+ --bs-border-color: #495057;
72
+ --bs-emphasis-color: #fff;
73
+ --bs-tertiary-bg: #2b3035;
74
+ color: var(--bs-body-color);
75
+ background-color: var(--bs-body-bg);
76
+ }
77
+ .ngbs *,
78
+ .ngbs *::before,
79
+ .ngbs *::after {
80
+ box-sizing: border-box;
81
+ }
82
+
83
+ /* Grid */
84
+ .ngbs .container,
85
+ .ngbs .container-fluid {
86
+ width: 100%;
87
+ padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
88
+ padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
89
+ margin-right: auto;
90
+ margin-left: auto;
91
+ gap: 0;
92
+ }
93
+ @media (min-width: 576px) {
94
+ .ngbs .container { max-width: 540px; }
95
+ }
96
+ @media (min-width: 768px) {
97
+ .ngbs .container { max-width: 720px; }
98
+ }
99
+ @media (min-width: 992px) {
100
+ .ngbs .container { max-width: 960px; }
101
+ }
102
+ @media (min-width: 1200px) {
103
+ .ngbs .container { max-width: 1140px; }
104
+ }
105
+ @media (min-width: 1400px) {
106
+ .ngbs .container { max-width: 1320px; }
107
+ }
108
+ .ngbs .row {
109
+ display: flex;
110
+ flex-wrap: wrap;
111
+ margin-top: calc(-1 * var(--bs-gutter-y, 0));
112
+ margin-right: calc(-0.5 * var(--bs-gutter-x, 1.5rem));
113
+ margin-left: calc(-0.5 * var(--bs-gutter-x, 1.5rem));
114
+ gap: 0;
115
+ }
116
+ .ngbs .row > * {
117
+ flex-shrink: 0;
118
+ width: 100%;
119
+ max-width: 100%;
120
+ padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
121
+ padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
122
+ margin-top: var(--bs-gutter-y, 0);
123
+ gap: 0;
124
+ }
125
+ .ngbs .col {
126
+ flex: 1 0 0%;
127
+ }
128
+ .ngbs .col-auto {
129
+ flex: 0 0 auto;
130
+ width: auto;
131
+ }
132
+ .ngbs .col-1 { flex: 0 0 auto; width: 8.33333333%; }
133
+ .ngbs .col-2 { flex: 0 0 auto; width: 16.66666667%; }
134
+ .ngbs .col-3 { flex: 0 0 auto; width: 25%; }
135
+ .ngbs .col-4 { flex: 0 0 auto; width: 33.33333333%; }
136
+ .ngbs .col-5 { flex: 0 0 auto; width: 41.66666667%; }
137
+ .ngbs .col-6 { flex: 0 0 auto; width: 50%; }
138
+ .ngbs .col-7 { flex: 0 0 auto; width: 58.33333333%; }
139
+ .ngbs .col-8 { flex: 0 0 auto; width: 66.66666667%; }
140
+ .ngbs .col-9 { flex: 0 0 auto; width: 75%; }
141
+ .ngbs .col-10 { flex: 0 0 auto; width: 83.33333333%; }
142
+ .ngbs .col-11 { flex: 0 0 auto; width: 91.66666667%; }
143
+ .ngbs .col-12 { flex: 0 0 auto; width: 100%; }
144
+ @media (min-width: 576px) {
145
+ .ngbs .col-sm { flex: 1 0 0%; }
146
+ .ngbs .col-sm-auto { flex: 0 0 auto; width: auto; }
147
+ .ngbs .col-sm-6 { flex: 0 0 auto; width: 50%; }
148
+ .ngbs .col-sm-12 { flex: 0 0 auto; width: 100%; }
149
+ }
150
+ @media (min-width: 768px) {
151
+ .ngbs .col-md { flex: 1 0 0%; }
152
+ .ngbs .col-md-auto { flex: 0 0 auto; width: auto; }
153
+ .ngbs .col-md-1 { flex: 0 0 auto; width: 8.33333333%; }
154
+ .ngbs .col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
155
+ .ngbs .col-md-3 { flex: 0 0 auto; width: 25%; }
156
+ .ngbs .col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
157
+ .ngbs .col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
158
+ .ngbs .col-md-6 { flex: 0 0 auto; width: 50%; }
159
+ .ngbs .col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
160
+ .ngbs .col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
161
+ .ngbs .col-md-9 { flex: 0 0 auto; width: 75%; }
162
+ .ngbs .col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
163
+ .ngbs .col-md-11 { flex: 0 0 auto; width: 91.66666667%; }
164
+ .ngbs .col-md-12 { flex: 0 0 auto; width: 100%; }
165
+ }
166
+ @media (min-width: 992px) {
167
+ .ngbs .col-lg-6 { flex: 0 0 auto; width: 50%; }
168
+ .ngbs .col-lg-12 { flex: 0 0 auto; width: 100%; }
169
+ }
170
+ @media (min-width: 1200px) {
171
+ .ngbs .col-xl-6 { flex: 0 0 auto; width: 50%; }
172
+ .ngbs .col-xl-12 { flex: 0 0 auto; width: 100%; }
173
+ }
174
+ @media (min-width: 1400px) {
175
+ .ngbs .col-xxl-6 { flex: 0 0 auto; width: 50%; }
176
+ .ngbs .col-xxl-12 { flex: 0 0 auto; width: 100%; }
177
+ }
178
+
179
+ /* Buttons */
180
+ .ngbs .btn {
181
+ display: inline-block;
182
+ font-family: inherit !important;
183
+ font-size: var(--bs-body-font-size, 1rem);
184
+ font-weight: 400;
185
+ line-height: 1.5;
186
+ text-align: center;
187
+ text-decoration: none;
188
+ vertical-align: middle;
189
+ cursor: pointer;
190
+ user-select: none;
191
+ border: var(--bs-border-width, 1px) solid transparent;
192
+ border-radius: var(--bs-border-radius, 0.375rem);
193
+ padding: 0.375rem 0.75rem;
194
+ color: var(--bs-body-color);
195
+ background-color: transparent;
196
+ }
197
+ .ngbs .btn-primary {
198
+ color: #fff;
199
+ background-color: #0d6efd;
200
+ border-color: #0d6efd;
201
+ }
202
+ .ngbs .btn-outline-primary {
203
+ color: #0d6efd;
204
+ background-color: transparent;
205
+ border-color: #0d6efd;
206
+ }
207
+ .ngbs .btn-outline-secondary {
208
+ color: #6c757d;
209
+ background-color: transparent;
210
+ border-color: #6c757d;
211
+ }
212
+ .ngbs .btn-outline-success {
213
+ color: #198754;
214
+ background-color: transparent;
215
+ border-color: #198754;
216
+ }
217
+ .ngbs .btn-outline-danger {
218
+ color: #dc3545;
219
+ background-color: transparent;
220
+ border-color: #dc3545;
221
+ }
222
+ .ngbs .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.875rem; }
223
+ .ngbs .btn-lg { padding: 0.5rem 1rem; font-size: 1.25rem; }
224
+
225
+ /* Forms */
226
+ .ngbs .form-control {
227
+ display: block;
228
+ width: 100%;
229
+ padding: 0.375rem 0.75rem;
230
+ font-family: inherit !important;
231
+ font-size: 1rem;
232
+ font-weight: 400;
233
+ line-height: 1.5;
234
+ color: var(--bs-body-color);
235
+ background-color: var(--bs-body-bg);
236
+ background-clip: padding-box;
237
+ border: var(--bs-border-width, 1px) solid var(--bs-border-color, #dee2e6);
238
+ border-radius: var(--bs-border-radius, 0.375rem);
239
+ appearance: none;
240
+ }
241
+ .ngbs .form-control-sm { min-height: calc(1.5em + 0.5rem + 2px); padding: 0.25rem 0.5rem; font-size: 0.875rem; }
242
+ .ngbs .form-control-lg { min-height: calc(1.5em + 1rem + 2px); padding: 0.5rem 1rem; font-size: 1.25rem; }
243
+ .ngbs .form-control-plaintext {
244
+ display: block;
245
+ width: 100%;
246
+ padding: 0.375rem 0;
247
+ font-family: inherit !important;
248
+ color: var(--bs-body-color);
249
+ background-color: transparent;
250
+ border: solid transparent;
251
+ border-width: 1px 0;
252
+ }
253
+ .ngbs .form-range {
254
+ width: 100%;
255
+ height: 1.5rem;
256
+ padding: 0;
257
+ appearance: none;
258
+ background-color: transparent;
259
+ }
260
+
261
+ /* Utilities */
262
+ .ngbs .text-primary {
263
+ color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity, 1)) !important;
264
+ }
265
+
266
+ /* Collapse */
267
+ .ngbs .collapse:not(.show) {
268
+ visibility: visible !important;
269
+ display: none !important;
270
+ }
271
+ .ngbs .collapse.show {
272
+ visibility: visible !important;
273
+ display: block !important;
274
+ }
275
+ .ngbs .collapsing {
276
+ visibility: visible !important;
277
+ height: 0;
278
+ overflow: hidden;
279
+ }
280
+
281
+ /* Modal */
282
+ .ngbs .modal {
283
+ position: fixed;
284
+ top: 0;
285
+ left: 0;
286
+ display: none;
287
+ width: 100%;
288
+ height: 100%;
289
+ overflow-x: hidden;
290
+ overflow-y: auto;
291
+ outline: 0;
292
+ z-index: 5000;
293
+ }
294
+ .ngbs .modal.show { display: block !important; }
295
+ .ngbs .modal-dialog {
296
+ position: relative;
297
+ width: auto;
298
+ margin: 1.75rem auto;
299
+ pointer-events: none;
300
+ max-width: 500px;
301
+ }
302
+ .ngbs .modal-dialog-centered {
303
+ display: flex;
304
+ align-items: center;
305
+ min-height: calc(100% - 3.5rem);
306
+ }
307
+ .ngbs .modal-dialog-scrollable { height: calc(100% - 3.5rem); }
308
+ .ngbs .modal-dialog-scrollable .modal-content { max-height: 100%; overflow: hidden; }
309
+ .ngbs .modal-dialog-scrollable .modal-body { overflow-y: auto; }
310
+ .ngbs .modal-sm { max-width: 300px; }
311
+ .ngbs .modal-lg { max-width: 800px; }
312
+ .ngbs .modal-xl { max-width: 1140px; }
313
+ .ngbs .modal-content {
314
+ position: relative;
315
+ display: flex;
316
+ flex-direction: column;
317
+ width: 100%;
318
+ pointer-events: auto;
319
+ background-color: var(--bs-body-bg, #fff);
320
+ background-clip: padding-box;
321
+ border: 1px solid rgba(0, 0, 0, 0.2);
322
+ border-radius: var(--bs-border-radius, 0.375rem);
323
+ outline: 0;
324
+ }
325
+ .ngbs .modal-header {
326
+ display: flex;
327
+ flex-shrink: 0;
328
+ align-items: center;
329
+ justify-content: space-between;
330
+ padding: 1rem;
331
+ border-bottom: 1px solid var(--bs-border-color, #dee2e6);
332
+ }
333
+ .ngbs .modal-title { margin: 0; line-height: 1.5; font-size: 1.25rem; }
334
+ .ngbs .modal-body { position: relative; flex: 1 1 auto; padding: 1rem; }
335
+ .ngbs .modal-footer {
336
+ display: flex;
337
+ flex-shrink: 0;
338
+ flex-wrap: wrap;
339
+ align-items: center;
340
+ justify-content: flex-end;
341
+ padding: 0.75rem;
342
+ border-top: 1px solid var(--bs-border-color, #dee2e6);
343
+ }
344
+ .ngbs .modal-backdrop,
345
+ .ngbs-overlay .modal-backdrop {
346
+ position: fixed;
347
+ top: 0;
348
+ left: 0;
349
+ width: 100vw;
350
+ height: 100vh;
351
+ background-color: #000;
352
+ opacity: 0.5;
353
+ z-index: 5000;
354
+ }
355
+ .ngbs .btn-close {
356
+ box-sizing: content-box;
357
+ width: 1em;
358
+ height: 1em;
359
+ padding: 0.25em;
360
+ color: #000;
361
+ background: transparent;
362
+ border: 0;
363
+ border-radius: 0.375rem;
364
+ opacity: 0.5;
365
+ cursor: pointer;
366
+ }
367
+
368
+ /* Offcanvas */
369
+ .ngbs .offcanvas {
370
+ position: fixed;
371
+ bottom: 0;
372
+ display: flex;
373
+ flex-direction: column;
374
+ max-width: 100%;
375
+ visibility: hidden;
376
+ background-color: var(--bs-body-bg, #fff);
377
+ background-clip: padding-box;
378
+ outline: 0;
379
+ transition: transform 0.3s ease-in-out;
380
+ z-index: 5000;
381
+ }
382
+ .ngbs .offcanvas.show {
383
+ visibility: visible;
384
+ transform: none;
385
+ }
386
+ .ngbs .offcanvas-start {
387
+ top: 0;
388
+ left: 0;
389
+ width: 400px;
390
+ height: 100vh;
391
+ transform: translateX(-100%);
392
+ border-right: 1px solid var(--bs-border-color, #dee2e6);
393
+ }
394
+ .ngbs .offcanvas-end {
395
+ top: 0;
396
+ right: 0;
397
+ width: 400px;
398
+ height: 100vh;
399
+ transform: translateX(100%);
400
+ border-left: 1px solid var(--bs-border-color, #dee2e6);
401
+ }
402
+ .ngbs .offcanvas-top {
403
+ top: 0;
404
+ right: 0;
405
+ left: 0;
406
+ height: 30vh;
407
+ max-height: 100%;
408
+ transform: translateY(-100%);
409
+ border-bottom: 1px solid var(--bs-border-color, #dee2e6);
410
+ }
411
+ .ngbs .offcanvas-bottom {
412
+ right: 0;
413
+ left: 0;
414
+ height: 30vh;
415
+ max-height: 100%;
416
+ transform: translateY(100%);
417
+ border-top: 1px solid var(--bs-border-color, #dee2e6);
418
+ }
419
+ .ngbs .offcanvas-header {
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: space-between;
423
+ padding: 1rem;
424
+ }
425
+ .ngbs .offcanvas-title { margin: 0; font-size: 1.25rem; }
426
+ .ngbs .offcanvas-body { flex-grow: 1; padding: 1rem; overflow-y: auto; }
427
+ .ngbs .offcanvas-backdrop,
428
+ .ngbs-overlay .offcanvas-backdrop {
429
+ position: fixed;
430
+ top: 0;
431
+ left: 0;
432
+ width: 100vw;
433
+ height: 100vh;
434
+ background-color: #000;
435
+ opacity: 0.5;
436
+ z-index: 5000;
437
+ }
438
+
439
+ /* Dropdown */
440
+ .ngbs .dropdown { position: relative; }
441
+ .ngbs .dropdown-menu {
442
+ position: absolute;
443
+ display: none;
444
+ left: 0;
445
+ z-index: 5000;
446
+ min-width: 10rem;
447
+ padding: 0.5rem 0;
448
+ margin: 0;
449
+ font-size: 1rem;
450
+ color: var(--bs-body-color);
451
+ text-align: left;
452
+ list-style: none;
453
+ background-color: var(--bs-body-bg, #fff);
454
+ background-clip: padding-box;
455
+ border: 1px solid rgba(0, 0, 0, 0.15);
456
+ border-radius: var(--bs-border-radius, 0.375rem);
457
+ }
458
+ .ngbs .dropdown-menu.show { display: block; }
459
+ .ngbs .dropdown-item {
460
+ display: block;
461
+ width: 100%;
462
+ padding: 0.25rem 1rem;
463
+ clear: both;
464
+ color: var(--bs-body-color);
465
+ text-align: inherit;
466
+ text-decoration: none;
467
+ background-color: transparent;
468
+ border: 0;
469
+ }
470
+
471
+ /* Toast */
472
+ .ngbs .toast {
473
+ width: 350px;
474
+ max-width: 100%;
475
+ font-size: 0.875rem;
476
+ pointer-events: auto;
477
+ background-color: rgba(var(--bs-body-bg-rgb, 255, 255, 255), 0.85);
478
+ background-clip: padding-box;
479
+ border: 1px solid rgba(0, 0, 0, 0.1);
480
+ border-radius: var(--bs-border-radius, 0.375rem);
481
+ box-shadow: var(--bs-box-shadow);
482
+ z-index: 5000;
483
+ }
484
+ .ngbs .toast:not(.show) { display: none; }
485
+ .ngbs .toast.show { display: block; }
486
+ .ngbs .toast-header {
487
+ display: flex;
488
+ align-items: center;
489
+ padding: 0.5rem 0.75rem;
490
+ background-color: rgba(var(--bs-body-bg-rgb, 255, 255, 255), 0.85);
491
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
492
+ }
493
+ .ngbs .toast-body { padding: 0.75rem; word-wrap: break-word; }
494
+ .ngbs .toast-container { position: absolute; z-index: 5000; pointer-events: none; }
495
+
496
+ /* Tooltip */
497
+ .ngbs .tooltip {
498
+ position: absolute;
499
+ display: block;
500
+ margin: 0;
501
+ font-family: inherit;
502
+ font-size: 0.875rem;
503
+ word-wrap: break-word;
504
+ opacity: 0;
505
+ z-index: 5000;
506
+ }
507
+ .ngbs .tooltip.show { opacity: 0.9; }
508
+ .ngbs .tooltip-inner {
509
+ max-width: 200px;
510
+ padding: 0.25rem 0.5rem;
511
+ color: #fff;
512
+ text-align: center;
513
+ background-color: #000;
514
+ border-radius: var(--bs-border-radius, 0.375rem);
515
+ }
516
+ .ngbs .tooltip-arrow {
517
+ position: absolute;
518
+ display: block;
519
+ width: 0.8rem;
520
+ height: 0.4rem;
521
+ }
522
+
523
+ /* z-index (Mode B: 5000, below Quasar 6000 — pick-one-overlay-system) */
524
+ #ngbs-overlay-root,
525
+ .ngbs-overlay {
526
+ position: relative;
527
+ z-index: 5000;
528
+ }
529
+ #ngbs-overlay-root .modal-backdrop,
530
+ #ngbs-overlay-root .offcanvas-backdrop {
531
+ z-index: 5040;
532
+ }
533
+ #ngbs-overlay-root .modal,
534
+ #ngbs-overlay-root .offcanvas {
535
+ z-index: 5055;
536
+ }
537
+ #ngbs-overlay-root .dropdown-menu,
538
+ #ngbs-overlay-root .tooltip,
539
+ #ngbs-overlay-root .toast {
540
+ z-index: 5090;
541
+ }