@wpmoo/ui 0.1.1 → 0.2.1

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.
@@ -147,6 +147,10 @@
147
147
  --moo-ring: #18181b;
148
148
  --moo-destructive: #dc2626;
149
149
  --moo-destructive-foreground: #fff;
150
+ --moo-overlay-backdrop-opacity: 1;
151
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
152
+ --moo-overlay-backdrop-filter: blur(8px);
153
+ --moo-input-group-border-radius: var(--bs-border-radius-lg);
150
154
  --moo-sidebar: #fafafa;
151
155
  --moo-sidebar-foreground: var(--moo-foreground);
152
156
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -217,6 +221,10 @@
217
221
  --moo-ring: #fafafa;
218
222
  --moo-destructive: #f87171;
219
223
  --moo-destructive-foreground: #18181b;
224
+ --moo-overlay-backdrop-opacity: 1;
225
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
226
+ --moo-overlay-backdrop-filter: blur(8px);
227
+ --moo-input-group-border-radius: var(--bs-border-radius-lg);
220
228
  --moo-sidebar: #1c1c1f;
221
229
  --moo-sidebar-foreground: var(--moo-foreground);
222
230
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -287,6 +295,10 @@
287
295
  --moo-ring: #18181b;
288
296
  --moo-destructive: #dc2626;
289
297
  --moo-destructive-foreground: #fff;
298
+ --moo-overlay-backdrop-opacity: 1;
299
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
300
+ --moo-overlay-backdrop-filter: blur(8px);
301
+ --moo-input-group-border-radius: var(--bs-border-radius-lg);
290
302
  --moo-sidebar: #fafafa;
291
303
  --moo-sidebar-foreground: var(--moo-foreground);
292
304
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -357,6 +369,10 @@
357
369
  --moo-ring: #fafafa;
358
370
  --moo-destructive: #f87171;
359
371
  --moo-destructive-foreground: #18181b;
372
+ --moo-overlay-backdrop-opacity: 1;
373
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
374
+ --moo-overlay-backdrop-filter: blur(8px);
375
+ --moo-input-group-border-radius: var(--bs-border-radius-lg);
360
376
  --moo-sidebar: #1c1c1f;
361
377
  --moo-sidebar-foreground: var(--moo-foreground);
362
378
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -705,7 +721,7 @@
705
721
  opacity: 1;
706
722
  }
707
723
  .form-control:disabled {
708
- background-color: var(--bs-secondary-bg);
724
+ background-color: color-mix(in srgb, var(--moo-border) 40%, transparent);
709
725
  opacity: 1;
710
726
  }
711
727
  .form-control::file-selector-button {
@@ -728,7 +744,7 @@
728
744
  }
729
745
  }
730
746
  .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
731
- background-color: var(--bs-secondary-bg);
747
+ background-color: var(--moo-border);
732
748
  }
733
749
  .form-control-plaintext {
734
750
  display: block;
@@ -840,7 +856,7 @@
840
856
  background-image: none;
841
857
  }
842
858
  .form-select:disabled {
843
- background-color: var(--bs-secondary-bg);
859
+ background-color: color-mix(in srgb, var(--moo-border) 40%, transparent);
844
860
  }
845
861
  .form-select:-moz-focusring {
846
862
  color: transparent;
@@ -2462,7 +2478,7 @@
2462
2478
  float: left;
2463
2479
  padding-right: var(--bs-breadcrumb-item-padding-x);
2464
2480
  color: var(--bs-breadcrumb-divider-color);
2465
- content: var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */;
2481
+ content: var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, "<") */;
2466
2482
  }
2467
2483
  .breadcrumb-item.active {
2468
2484
  color: var(--bs-breadcrumb-item-active-color);
@@ -2560,7 +2576,7 @@
2560
2576
  --bs-badge-padding-x: 0.65em;
2561
2577
  --bs-badge-padding-y: 0.35em;
2562
2578
  --bs-badge-font-size: 0.75em;
2563
- --bs-badge-font-weight: 700;
2579
+ --bs-badge-font-weight: 500;
2564
2580
  --bs-badge-color: #fff;
2565
2581
  --bs-badge-border-radius: var(--bs-border-radius);
2566
2582
  display: inline-block;
@@ -3824,6 +3840,11 @@
3824
3840
  outline-offset: var(--bs-focus-ring-width);
3825
3841
  box-shadow: none;
3826
3842
  }
3843
+ .btn-check:focus-visible + .btn {
3844
+ outline: var(--bs-focus-ring-width) solid var(--moo-ring);
3845
+ outline-offset: var(--bs-focus-ring-width);
3846
+ box-shadow: none;
3847
+ }
3827
3848
  .input-group > .dropdown-toggle[aria-expanded="true"]:focus-visible {
3828
3849
  outline: 0;
3829
3850
  }
@@ -3985,30 +4006,78 @@
3985
4006
  textarea.form-control:not(.form-control-sm, .form-control-lg) {
3986
4007
  padding: 0.5rem 0.75rem;
3987
4008
  }
3988
- .input-group {
4009
+ .input-group:not(:has(> .form-control[type="file"])) {
3989
4010
  border: var(--bs-border-width) solid var(--moo-border);
3990
- border-radius: 0.625rem;
4011
+ border-radius: var(--moo-input-group-border-radius);
3991
4012
  }
3992
- .input-group:not(:has(textarea)) {
3993
- align-items: center;
3994
- height: 2rem;
4013
+ .input-group.rounded-pill:not(:has(> .form-control[type="file"])) {
4014
+ --moo-input-group-border-radius: var(--bs-border-radius-pill);
3995
4015
  }
3996
- .input-group:not(:has(textarea)) > .form-control {
4016
+ .input-group:not(:has(textarea)):not(:has(> .form-control[type="file"])) {
4017
+ height: calc(2rem + var(--bs-border-width) * 2);
4018
+ }
4019
+ .input-group:not(:has(textarea)):not(:has(> .form-control[type="file"])) > .form-control {
3997
4020
  min-height: 0;
3998
4021
  }
3999
4022
  .input-group > textarea.form-control {
4000
4023
  resize: none;
4001
4024
  }
4002
- .input-group > :not(:first-child):not([class~="dropdown-menu"]):not([class~="valid-tooltip"]):not([class~="valid-feedback"]):not([class~="invalid-tooltip"]):not([class~="invalid-feedback"]) {
4025
+ .input-group:not(:has(> .form-control[type="file"])) > :not(:first-child):not([class~="dropdown-menu"]):not([class~="valid-tooltip"]):not([class~="valid-feedback"]):not([class~="invalid-tooltip"]):not([class~="invalid-feedback"]) {
4003
4026
  margin: 0;
4004
4027
  }
4005
- .input-group > :not(ul) {
4028
+ .input-group:not(:has(> .form-control[type="file"])) > :not(ul) {
4006
4029
  border: 0;
4007
4030
  border-radius: 0;
4008
4031
  }
4032
+ .input-group:not(:has(> .form-control[type="file"])) > :first-child:not(ul) {
4033
+ border-start-start-radius: var(--moo-input-group-border-radius);
4034
+ border-end-start-radius: var(--moo-input-group-border-radius);
4035
+ }
4036
+ .input-group:not(:has(> .form-control[type="file"])) > :is(:last-child, :nth-last-child(2):has(+ .dropdown-menu)):not(ul) {
4037
+ border-start-end-radius: var(--moo-input-group-border-radius);
4038
+ border-end-end-radius: var(--moo-input-group-border-radius);
4039
+ }
4009
4040
  .input-group > :is(button, a) {
4010
4041
  border: var(--bs-btn-border-width) var(--bs-border-style) var(--bs-btn-border-color);
4011
4042
  }
4043
+ .input-group > .btn-ghost {
4044
+ --bs-btn-hover-bg: transparent;
4045
+ --bs-btn-active-bg: transparent;
4046
+ position: relative;
4047
+ isolation: isolate;
4048
+ border-radius: var(--moo-input-group-border-radius) !important;
4049
+ }
4050
+ .input-group > .btn-ghost::before {
4051
+ position: absolute;
4052
+ inset: 0.25rem;
4053
+ z-index: -1;
4054
+ content: "";
4055
+ border-radius: var(--moo-input-group-border-radius);
4056
+ background-color: var(--moo-muted-surface);
4057
+ opacity: 0;
4058
+ transition: opacity opacity 0.15s linear;
4059
+ }
4060
+ .input-group > .btn-ghost:hover::before,
4061
+ .input-group > .btn-ghost:is(.show, [aria-expanded="true"])::before {
4062
+ opacity: 1;
4063
+ }
4064
+ .input-group > .btn-ghost:is(.show, [aria-expanded="true"]) {
4065
+ color: var(--bs-btn-active-color);
4066
+ }
4067
+ .input-group > .btn-ghost[aria-pressed="true"] {
4068
+ color: var(--bs-primary);
4069
+ }
4070
+ .input-group > .btn-ghost[aria-pressed="true"]::before {
4071
+ opacity: 0;
4072
+ }
4073
+ .input-group > .btn:not(:disabled):not(.disabled):not([aria-disabled="true"]):active {
4074
+ transform: none;
4075
+ }
4076
+ .input-group > :is(.btn-xs, .btn-icon-xs) {
4077
+ --bs-btn-padding-y: 0.125rem;
4078
+ --bs-btn-padding-x: 0.375rem;
4079
+ --bs-btn-line-height: 0.875rem;
4080
+ }
4012
4081
  .input-group > .input-group-text {
4013
4082
  color: var(--bs-secondary-color);
4014
4083
  background-color: transparent;
@@ -4050,11 +4119,11 @@
4050
4119
  border: 0;
4051
4120
  background-color: transparent;
4052
4121
  }
4053
- .input-group:has(> .form-control:focus) {
4122
+ .input-group:has(> .form-control:focus):not(:has(> .form-control[type="file"])) {
4054
4123
  border-color: #8b8b8b;
4055
4124
  box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
4056
4125
  }
4057
- .input-group > :focus {
4126
+ .input-group:not(:has(> .form-control[type="file"])) > :focus {
4058
4127
  outline: 0;
4059
4128
  box-shadow: none;
4060
4129
  }
@@ -4199,6 +4268,8 @@ label.btn {
4199
4268
  --bs-btn-bg: transparent;
4200
4269
  --bs-btn-hover-bg: var(--moo-muted-surface);
4201
4270
  --bs-btn-hover-border-color: transparent;
4271
+ --bs-btn-active-bg: var(--bs-btn-hover-bg);
4272
+ --bs-btn-active-color: var(--bs-btn-color);
4202
4273
  --bs-btn-active-border-color: transparent;
4203
4274
  }
4204
4275
  .btn-danger {
@@ -4241,6 +4312,11 @@ label.btn {
4241
4312
  gap: 0.375rem;
4242
4313
  border-bottom: 0;
4243
4314
  }
4315
+ .card-header,
4316
+ .card-body,
4317
+ .card-footer {
4318
+ padding-block: 0;
4319
+ }
4244
4320
  .card-footer {
4245
4321
  display: flex;
4246
4322
  align-items: center;
@@ -4315,26 +4391,101 @@ label.btn {
4315
4391
  transform: none !important;
4316
4392
  }
4317
4393
  }
4394
+ .menubar {
4395
+ gap: 0.125rem;
4396
+ padding: 0.1875rem;
4397
+ }
4398
+ .menubar .dropdown-menu {
4399
+ z-index: 1000;
4400
+ }
4401
+ .menubar [data-bs-toggle="dropdown"].show,
4402
+ .menubar .dropdown-toggle.show {
4403
+ --bs-btn-color: var(--moo-foreground);
4404
+ color: var(--bs-btn-color);
4405
+ font-weight: 500;
4406
+ }
4318
4407
  .avatar {
4408
+ position: relative;
4319
4409
  display: inline-flex;
4320
4410
  align-items: center;
4321
4411
  justify-content: center;
4322
4412
  width: 2rem;
4323
4413
  height: 2rem;
4324
4414
  flex: 0 0 auto;
4325
- overflow: hidden;
4326
- border: var(--bs-border-width) solid var(--moo-border);
4415
+ overflow: visible;
4416
+ border: 0;
4327
4417
  border-radius: var(--bs-border-radius-pill);
4328
4418
  background-color: var(--moo-muted-surface);
4329
4419
  color: var(--moo-foreground);
4330
4420
  font-size: 0.875rem;
4331
4421
  font-weight: 500;
4332
4422
  line-height: 1;
4423
+ text-transform: uppercase;
4424
+ }
4425
+ .avatar::after {
4426
+ content: "";
4427
+ position: absolute;
4428
+ inset: 0;
4429
+ z-index: 1;
4430
+ border: var(--bs-border-width) solid var(--moo-border);
4431
+ border-radius: var(--bs-border-radius-pill);
4432
+ pointer-events: none;
4433
+ opacity: 0.8;
4333
4434
  }
4334
4435
  .avatar > img {
4335
4436
  width: 100%;
4336
4437
  height: 100%;
4337
4438
  object-fit: cover;
4439
+ border-radius: var(--bs-border-radius-pill);
4440
+ }
4441
+ .avatar-fallback {
4442
+ position: absolute;
4443
+ inset: 0;
4444
+ display: grid;
4445
+ place-items: center;
4446
+ text-align: center;
4447
+ padding: 0 0.15rem;
4448
+ }
4449
+ .avatar--has-image > .avatar-fallback {
4450
+ display: none;
4451
+ }
4452
+ .avatar-badge {
4453
+ position: absolute;
4454
+ inset-block-end: 0;
4455
+ inset-inline-end: 0;
4456
+ z-index: 2;
4457
+ display: inline-flex;
4458
+ align-items: center;
4459
+ justify-content: center;
4460
+ height: 0.9375rem;
4461
+ min-width: 0.9375rem;
4462
+ padding-inline: 0.2rem;
4463
+ border-radius: var(--bs-border-radius-pill);
4464
+ border: 2px solid var(--bs-body-bg);
4465
+ background-color: var(--moo-muted-surface);
4466
+ color: var(--moo-foreground);
4467
+ font-size: 0.625rem;
4468
+ font-weight: 500;
4469
+ line-height: 1;
4470
+ }
4471
+ .avatar-badge [data-icon] {
4472
+ width: 0.625rem;
4473
+ height: 0.625rem;
4474
+ }
4475
+ .avatar-badge--dot {
4476
+ height: 0.625rem;
4477
+ min-width: 0.625rem;
4478
+ padding-inline: 0;
4479
+ }
4480
+ .avatar-badge--icon {
4481
+ width: 0.75rem;
4482
+ height: 0.75rem;
4483
+ min-width: 0.75rem;
4484
+ padding-inline: 0;
4485
+ }
4486
+ .avatar-badge--icon [data-icon] {
4487
+ width: 0.375rem;
4488
+ height: 0.375rem;
4338
4489
  }
4339
4490
  .avatar-sm {
4340
4491
  width: 1.5rem;
@@ -4346,6 +4497,33 @@ label.btn {
4346
4497
  height: 2.5rem;
4347
4498
  font-size: 1rem;
4348
4499
  }
4500
+ .avatar-group {
4501
+ display: inline-flex;
4502
+ align-items: center;
4503
+ }
4504
+ .avatar-group > .avatar {
4505
+ z-index: 0;
4506
+ }
4507
+ .avatar-group .avatar + .avatar,
4508
+ .avatar-group .avatar + .avatar-count,
4509
+ .avatar-group .avatar-count + .avatar {
4510
+ margin-inline-start: -0.5rem;
4511
+ }
4512
+ .avatar-count {
4513
+ display: inline-flex;
4514
+ align-items: center;
4515
+ justify-content: center;
4516
+ width: 2rem;
4517
+ height: 2rem;
4518
+ flex: 0 0 auto;
4519
+ border-radius: var(--bs-border-radius-pill);
4520
+ font-size: 0.75rem;
4521
+ font-weight: 500;
4522
+ }
4523
+ .avatar-count::before {
4524
+ content: "+";
4525
+ margin-inline-end: -0.1rem;
4526
+ }
4349
4527
  .nav {
4350
4528
  --bs-nav-link-color: var(--moo-foreground);
4351
4529
  --bs-nav-link-hover-color: var(--moo-foreground);
@@ -4373,7 +4551,12 @@ label.btn {
4373
4551
  flex: 0 0 auto;
4374
4552
  }
4375
4553
  .skeleton {
4554
+ color: var(--moo-border);
4376
4555
  border-radius: var(--bs-border-radius);
4556
+ overflow: hidden;
4557
+ }
4558
+ .skeleton > .placeholder {
4559
+ display: block;
4377
4560
  }
4378
4561
  .sidebar-wrapper {
4379
4562
  --moo-sidebar-width: 16rem;
@@ -4981,6 +5164,18 @@ label.btn {
4981
5164
  .breadcrumb {
4982
5165
  --bs-breadcrumb-item-active-color: var(--moo-foreground);
4983
5166
  }
5167
+ :dir(rtl) .breadcrumb {
5168
+ --bs-breadcrumb-divider: "<";
5169
+ }
5170
+ :dir(rtl) .breadcrumb-item + .breadcrumb-item {
5171
+ padding-right: var(--bs-breadcrumb-item-padding-x);
5172
+ padding-left: 0;
5173
+ }
5174
+ :dir(rtl) .breadcrumb-item + .breadcrumb-item::before {
5175
+ float: right;
5176
+ padding-right: 0;
5177
+ padding-left: var(--bs-breadcrumb-item-padding-x);
5178
+ }
4984
5179
  .breadcrumb-item a {
4985
5180
  color: var(--moo-muted-foreground);
4986
5181
  text-decoration: none;
@@ -4990,6 +5185,30 @@ label.btn {
4990
5185
  color: var(--moo-foreground);
4991
5186
  text-decoration: none;
4992
5187
  }
5188
+ .breadcrumb-ellipsis {
5189
+ display: inline-flex;
5190
+ align-items: center;
5191
+ color: var(--moo-muted-foreground);
5192
+ }
5193
+ .breadcrumb-ellipsis [data-icon] {
5194
+ width: 1rem;
5195
+ height: 1rem;
5196
+ }
5197
+ .breadcrumb-dropdown-item {
5198
+ display: inline-flex;
5199
+ align-items: center;
5200
+ }
5201
+ .breadcrumb-dropdown-item button {
5202
+ padding: 0;
5203
+ border: 0;
5204
+ background-color: transparent;
5205
+ color: var(--moo-muted-foreground);
5206
+ text-decoration: none;
5207
+ }
5208
+ .breadcrumb-dropdown-item button:hover,
5209
+ .breadcrumb-dropdown-item button:focus {
5210
+ color: var(--moo-foreground);
5211
+ }
4993
5212
  .page-link {
4994
5213
  display: inline-flex;
4995
5214
  align-items: center;
@@ -5024,18 +5243,35 @@ label.btn {
5024
5243
  content: none;
5025
5244
  }
5026
5245
  .accordion-button [data-icon] {
5246
+ position: absolute;
5247
+ inset-inline-end: var(--bs-accordion-btn-padding-x);
5248
+ top: 50%;
5027
5249
  width: 1rem;
5028
5250
  height: 1rem;
5029
- margin-inline-start: auto;
5030
5251
  flex-shrink: 0;
5252
+ pointer-events: none;
5253
+ transform: translateY(-50%);
5031
5254
  transition: transform 0.2s ease-in-out;
5255
+ transform-origin: center;
5032
5256
  }
5033
5257
  .accordion-button:not(.collapsed) [data-icon] {
5034
- transform: rotate(-180deg);
5258
+ transform: translateY(-50%) rotate(-180deg);
5259
+ }
5260
+ .accordion-flush .accordion-button {
5261
+ text-align: start;
5035
5262
  }
5036
5263
  .accordion-button:hover {
5037
5264
  text-decoration: underline;
5038
5265
  }
5266
+ .accordion-flush {
5267
+ --bs-accordion-btn-padding-x: 0;
5268
+ --bs-accordion-btn-padding-y: 0.625rem;
5269
+ --bs-accordion-body-padding-x: 0;
5270
+ --bs-accordion-body-padding-y: 0.625rem;
5271
+ }
5272
+ .accordion-flush .accordion-button {
5273
+ font-weight: 500;
5274
+ }
5039
5275
  .tabs-list {
5040
5276
  display: inline-flex;
5041
5277
  gap: 0.125rem;
@@ -5066,30 +5302,66 @@ label.btn {
5066
5302
  }
5067
5303
  .tab-content {
5068
5304
  display: grid;
5305
+ width: 100%;
5306
+ max-width: 100%;
5307
+ min-width: 0;
5308
+ margin-top: 0.75rem;
5069
5309
  }
5070
5310
  .tab-content > .tab-pane {
5071
5311
  grid-area: 1 / 1;
5072
5312
  display: block;
5313
+ width: 100%;
5314
+ max-width: 100%;
5315
+ min-width: 0;
5316
+ opacity: 0;
5317
+ transform: translateY(0.25rem);
5073
5318
  visibility: hidden;
5319
+ pointer-events: none;
5320
+ transition: opacity 0.16s ease, transform 0.16s ease, visibility 0s linear 0.16s;
5074
5321
  }
5075
5322
  .tab-content > .active {
5323
+ opacity: 1;
5324
+ transform: none;
5076
5325
  visibility: visible;
5326
+ pointer-events: auto;
5327
+ transition-delay: 0s;
5328
+ }
5329
+ .collapsible {
5330
+ display: flex;
5331
+ flex-direction: column;
5332
+ gap: 0.5rem;
5333
+ width: 100%;
5334
+ max-width: 100%;
5335
+ min-width: 0;
5077
5336
  }
5078
5337
  .collapsible-header {
5079
5338
  display: flex;
5080
5339
  align-items: center;
5081
5340
  justify-content: space-between;
5082
- gap: 1rem;
5341
+ padding-inline: 0.5rem;
5342
+ gap: 0.5rem;
5083
5343
  }
5084
5344
  .collapsible-title {
5085
5345
  margin-bottom: 0;
5086
- font-size: 0.875rem;
5087
- font-weight: 600;
5346
+ font-size: 0.76562rem;
5347
+ font-weight: 500;
5348
+ color: var(--moo-foreground);
5349
+ }
5350
+ .collapsible .btn[data-bs-toggle='collapse'] {
5351
+ color: var(--moo-muted-foreground);
5352
+ line-height: 1;
5353
+ }
5354
+ .collapsible .btn[data-bs-toggle='collapse'] [data-icon] {
5355
+ width: 0.875rem;
5356
+ height: 0.875rem;
5088
5357
  }
5089
5358
  .collapsible-content {
5090
- padding-top: 0.5rem;
5091
- font-size: 0.875rem;
5359
+ padding: 0.5rem 0.75rem;
5360
+ border: var(--bs-border-width) solid var(--bs-border-color);
5361
+ border-radius: var(--bs-border-radius);
5362
+ font-size: 0.76562rem;
5092
5363
  color: var(--moo-muted-foreground);
5364
+ width: 100%;
5093
5365
  }
5094
5366
  .tooltip {
5095
5367
  --bs-tooltip-max-width: 20rem;
@@ -5153,15 +5425,31 @@ label.btn {
5153
5425
  font-size: 1rem;
5154
5426
  font-weight: 500;
5155
5427
  }
5428
+ .modal-header {
5429
+ gap: calc(var(--bs-modal-padding) * 0.75);
5430
+ }
5431
+ .modal--alert {
5432
+ --bs-modal-width: 24rem;
5433
+ --bs-modal-padding: 1rem;
5434
+ }
5435
+ .modal-header--alert {
5436
+ align-items: flex-start;
5437
+ padding: var(--bs-modal-padding);
5438
+ }
5439
+ .modal-header__content {
5440
+ min-width: 0;
5441
+ }
5442
+ .modal-description {
5443
+ margin-top: calc(var(--bs-modal-padding) * 0.375);
5444
+ margin-bottom: 0;
5445
+ color: var(--bs-secondary-color);
5446
+ }
5447
+ .modal--alert .modal-footer {
5448
+ padding: var(--bs-modal-padding);
5449
+ }
5156
5450
  .modal-footer {
5157
5451
  padding: 1rem;
5158
5452
  }
5159
- body:has(.modal.show) > .modal-backdrop {
5160
- --bs-backdrop-opacity: 1;
5161
- background-color: color-mix(in srgb, var(--bs-black) 10%, transparent);
5162
- -webkit-backdrop-filter: blur(4px);
5163
- backdrop-filter: blur(4px);
5164
- }
5165
5453
  .offcanvas.sheet {
5166
5454
  --bs-offcanvas-width: 24rem;
5167
5455
  --bs-offcanvas-border-color: var(--moo-border);
@@ -5175,20 +5463,6 @@ label.btn {
5175
5463
  font-size: 1rem;
5176
5464
  font-weight: 500;
5177
5465
  }
5178
- :has(> .offcanvas.sheet:is(.showing, .show, .hiding)) > .offcanvas-backdrop {
5179
- background-color: color-mix(in srgb, var(--bs-black) 10%, transparent);
5180
- transition: opacity 0.3s ease-in-out, -webkit-backdrop-filter 0.3s ease-in-out, backdrop-filter 0.3s ease-in-out;
5181
- }
5182
- :has(> .offcanvas.sheet:is(.showing, .show)) > .offcanvas-backdrop {
5183
- opacity: 1;
5184
- -webkit-backdrop-filter: blur(4px);
5185
- backdrop-filter: blur(4px);
5186
- }
5187
- :has(> .offcanvas.sheet.hiding) > .offcanvas-backdrop {
5188
- opacity: 0;
5189
- -webkit-backdrop-filter: blur(0);
5190
- backdrop-filter: blur(0);
5191
- }
5192
5466
  .toast {
5193
5467
  --bs-toast-border-radius: var(--bs-border-radius-lg);
5194
5468
  --bs-toast-border-color: var(--moo-border);
@@ -5207,6 +5481,9 @@ label.btn {
5207
5481
  margin-bottom: 0;
5208
5482
  font-weight: 500;
5209
5483
  }
5484
+ .field:has(> .is-invalid) > .form-label {
5485
+ color: var(--bs-danger);
5486
+ }
5210
5487
  .field-description,
5211
5488
  .field-error {
5212
5489
  margin-top: 0;
@@ -5260,9 +5537,15 @@ label.btn {
5260
5537
  filter: var(--bs-btn-close-white-filter);
5261
5538
  }
5262
5539
 
5263
- body:has(.moo-ui .modal.show) > .modal-backdrop {
5264
- --bs-backdrop-opacity: 1;
5265
- background-color: color-mix(in srgb, var(--bs-black) 10%, transparent);
5266
- -webkit-backdrop-filter: blur(4px);
5267
- backdrop-filter: blur(4px);
5540
+ .modal-backdrop,
5541
+ .offcanvas-backdrop {
5542
+ --bs-backdrop-opacity: var(--moo-overlay-backdrop-opacity, 1);
5543
+ background-color: var(--moo-overlay-backdrop-bg, color-mix(in srgb, var(--bs-black) 10%, transparent));
5544
+ -webkit-backdrop-filter: var(--moo-overlay-backdrop-filter, blur(8px));
5545
+ backdrop-filter: var(--moo-overlay-backdrop-filter, blur(8px));
5546
+ }
5547
+
5548
+ .modal-backdrop.show,
5549
+ .offcanvas-backdrop.show {
5550
+ opacity: var(--moo-overlay-backdrop-opacity, 1);
5268
5551
  }