@wpmoo/ui 1.0.0-rc.2 → 1.0.0-rc.3

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.
@@ -144,6 +144,11 @@
144
144
  --moo-sidebar-foreground: var(--moo-foreground);
145
145
  --moo-sidebar-accent: var(--moo-muted-surface);
146
146
  --moo-sidebar-border: var(--moo-border);
147
+ --moo-chart-1: #52525b;
148
+ --moo-chart-2: #71717a;
149
+ --moo-chart-3: #a1a1aa;
150
+ --moo-chart-4: #3f3f46;
151
+ --moo-chart-5: #27272a;
147
152
  color-scheme: light;
148
153
  color: var(--bs-body-color);
149
154
  background-color: var(--bs-body-bg);
@@ -735,7 +740,7 @@
735
740
  line-height: 1.42857;
736
741
  color: var(--bs-body-color);
737
742
  appearance: none;
738
- background-color: transparent;
743
+ background-color: var(--moo-input-bg, transparent);
739
744
  background-clip: padding-box;
740
745
  border: var(--bs-border-width) solid var(--moo-border);
741
746
  border-radius: 0.625rem;
@@ -754,7 +759,7 @@
754
759
  }
755
760
  .form-control:focus {
756
761
  color: var(--bs-body-color);
757
- background-color: transparent;
762
+ background-color: var(--moo-input-bg, transparent);
758
763
  border-color: #8b8b8b;
759
764
  outline: 0;
760
765
  box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.25);
@@ -885,7 +890,7 @@
885
890
  line-height: 1.42857;
886
891
  color: var(--bs-body-color);
887
892
  appearance: none;
888
- background-color: transparent;
893
+ background-color: var(--moo-input-bg, transparent);
889
894
  background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
890
895
  background-repeat: no-repeat;
891
896
  background-position: right 0.625rem center;
@@ -956,7 +961,7 @@
956
961
  margin-left: 0;
957
962
  }
958
963
  .form-check-input {
959
- --bs-form-check-bg: transparent;
964
+ --bs-form-check-bg: var(--moo-input-bg, transparent);
960
965
  flex-shrink: 0;
961
966
  width: 1rem;
962
967
  height: 1rem;
@@ -986,8 +991,8 @@
986
991
  box-shadow: 0 0 0 var(--bs-focus-ring-width) color-mix(in srgb, var(--moo-ring) 50%, transparent);
987
992
  }
988
993
  .form-check-input:checked {
989
- background-color: #171717;
990
- border-color: #171717;
994
+ background-color: var(--moo-primary);
995
+ border-color: var(--moo-primary);
991
996
  }
992
997
  .form-check-input:checked[type="checkbox"] {
993
998
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
@@ -996,8 +1001,8 @@
996
1001
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
997
1002
  }
998
1003
  .form-check-input[type="checkbox"]:indeterminate {
999
- background-color: #171717;
1000
- border-color: #171717;
1004
+ background-color: var(--moo-primary);
1005
+ border-color: var(--moo-primary);
1001
1006
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
1002
1007
  }
1003
1008
  .form-check-input:disabled {
@@ -1092,7 +1097,7 @@
1092
1097
  color: var(--bs-body-color);
1093
1098
  text-align: center;
1094
1099
  white-space: nowrap;
1095
- background-color: var(--bs-tertiary-bg);
1100
+ background-color: var(--moo-input-bg, transparent);
1096
1101
  border: var(--bs-border-width) solid var(--moo-border);
1097
1102
  border-radius: 0.625rem;
1098
1103
  }
@@ -4100,6 +4105,9 @@
4100
4105
  .form-control {
4101
4106
  min-height: 2rem;
4102
4107
  }
4108
+ .form-control:not(textarea):not([type="file"]):not(.form-control-sm, .form-control-lg) {
4109
+ min-height: calc(2rem + var(--bs-border-width) * 2);
4110
+ }
4103
4111
  .form-control:disabled,
4104
4112
  .form-select:disabled {
4105
4113
  opacity: var(--moo-disabled-control-opacity);
@@ -4118,6 +4126,10 @@
4118
4126
  .input-group:not(:has(> .form-control[type="file"])) {
4119
4127
  border: var(--bs-border-width) solid var(--moo-border);
4120
4128
  border-radius: var(--moo-input-group-border-radius);
4129
+ background-color: var(--moo-input-bg, transparent);
4130
+ }
4131
+ .input-group:not(:has(> .form-control[type="file"])):not(:has(> .dropdown-menu)) {
4132
+ overflow: hidden;
4121
4133
  }
4122
4134
  .input-group.rounded-pill:not(:has(> .form-control[type="file"])) {
4123
4135
  --moo-input-group-border-radius: var(--bs-border-radius-pill);
@@ -4174,10 +4186,10 @@
4174
4186
  color: var(--bs-btn-active-color);
4175
4187
  }
4176
4188
  .input-group > .btn-ghost[aria-pressed="true"] {
4177
- color: var(--bs-primary);
4189
+ color: var(--bs-btn-active-color);
4178
4190
  }
4179
4191
  .input-group > .btn-ghost[aria-pressed="true"]::before {
4180
- opacity: 0;
4192
+ opacity: 1;
4181
4193
  }
4182
4194
  .input-group > .btn:not(:disabled):not(.disabled):not([aria-disabled="true"]):active {
4183
4195
  transform: none;
@@ -4189,7 +4201,6 @@
4189
4201
  }
4190
4202
  .input-group > .input-group-text {
4191
4203
  color: var(--bs-secondary-color);
4192
- background-color: transparent;
4193
4204
  }
4194
4205
  .input-group > .input-group-text:first-child {
4195
4206
  padding-inline-end: 0;
@@ -4487,6 +4498,11 @@ label.btn {
4487
4498
  .toggle-group > .btn:not(:disabled):not(.disabled):not([aria-disabled="true"]):active {
4488
4499
  transform: none;
4489
4500
  }
4501
+ .toggle-group > .btn-check:checked + .btn {
4502
+ --bs-btn-active-color: var(--moo-primary-foreground);
4503
+ --bs-btn-active-bg: var(--moo-primary);
4504
+ --bs-btn-active-border-color: var(--moo-primary);
4505
+ }
4490
4506
  .toggle-group > .btn-check:focus-visible + .btn,
4491
4507
  .toggle-group > .btn-check:checked:focus-visible + .btn {
4492
4508
  border-color: var(--moo-ring);
@@ -4711,7 +4727,7 @@ label.btn {
4711
4727
  }
4712
4728
  }
4713
4729
  @media (min-width: 992px) {
4714
- [data-slot="sidebar-header"] [data-moo-sidebar-dropdown-positioned] > .dropdown-menu {
4730
+ [data-slot="sidebar-header"] [data-sidebar-dropdown-positioned] > .dropdown-menu {
4715
4731
  position: fixed !important;
4716
4732
  z-index: 1000;
4717
4733
  inset-block-start: var(--moo-sidebar-dropdown-block-start) !important;
@@ -4940,11 +4956,11 @@ label.btn {
4940
4956
  height: calc(100% - 1rem);
4941
4957
  max-height: calc(100% - 1rem);
4942
4958
  }
4943
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] {
4959
+ .sidebar-wrapper[data-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] {
4944
4960
  flex-basis: calc(var(--moo-sidebar-width-icon) + 1rem);
4945
4961
  width: calc(var(--moo-sidebar-width-icon) + 1rem);
4946
4962
  }
4947
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] .sidebar-inner {
4963
+ .sidebar-wrapper[data-sidebar-state="collapsed"] .sidebar[data-variant="floating"][data-collapsible="icon"] .sidebar-inner {
4948
4964
  box-shadow: var(--bs-box-shadow);
4949
4965
  }
4950
4966
  }
@@ -5089,6 +5105,10 @@ label.btn {
5089
5105
  font-weight: 500;
5090
5106
  background: var(--moo-sidebar-accent);
5091
5107
  }
5108
+ .sidebar-content:has(.sidebar-menu:is(:hover, :focus-within)) .sidebar-menu-button[aria-current="page"]:not(:hover):not(:focus-visible),
5109
+ .sidebar-content:has(.sidebar-menu-button:not([aria-current="page"]):is(:hover, :focus-visible)) .sidebar-menu-button[aria-current="page"]:not(:hover):not(:focus-visible) {
5110
+ background: transparent;
5111
+ }
5092
5112
  .sidebar-menu-button--lg {
5093
5113
  height: 3rem;
5094
5114
  padding: 0.5rem;
@@ -5298,14 +5318,14 @@ label.btn {
5298
5318
  border-radius: var(--bs-border-radius-xl);
5299
5319
  box-shadow: var(--bs-box-shadow-sm);
5300
5320
  }
5301
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"]:has(.sidebar[data-variant="inset"]) .sidebar-inset {
5321
+ .sidebar-wrapper[data-sidebar-state="collapsed"]:has(.sidebar[data-variant="inset"]) .sidebar-inset {
5302
5322
  margin-inline-start: 0.5rem;
5303
5323
  }
5304
5324
  .sidebar-wrapper:has(.sidebar[data-variant="inset"][data-side="right"]) .sidebar-inset {
5305
5325
  margin-inline-start: 0.5rem;
5306
5326
  margin-inline-end: 0;
5307
5327
  }
5308
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"]:has(.sidebar[data-variant="inset"][data-side="right"]) .sidebar-inset {
5328
+ .sidebar-wrapper[data-sidebar-state="collapsed"]:has(.sidebar[data-variant="inset"][data-side="right"]) .sidebar-inset {
5309
5329
  margin-inline-end: 0.5rem;
5310
5330
  }
5311
5331
  }
@@ -5340,27 +5360,27 @@ label.btn {
5340
5360
  .sidebar {
5341
5361
  position: relative;
5342
5362
  }
5343
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] {
5363
+ .sidebar-wrapper[data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] {
5344
5364
  flex-basis: var(--moo-sidebar-width-icon);
5345
5365
  width: var(--moo-sidebar-width-icon);
5346
5366
  }
5347
- .sidebar-wrapper[data-moo-sidebar-state="collapsed"] .sidebar-inset {
5367
+ .sidebar-wrapper[data-sidebar-state="collapsed"] .sidebar-inset {
5348
5368
  position: relative;
5349
5369
  z-index: 0;
5350
5370
  }
5351
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-group-label,
5352
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__text,
5353
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__subtitle,
5354
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__end {
5371
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-group-label,
5372
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__text,
5373
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__subtitle,
5374
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button__end {
5355
5375
  display: none;
5356
5376
  }
5357
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-sub,
5358
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-action,
5359
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-group-action,
5360
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-badge {
5377
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-sub,
5378
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-action,
5379
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-group-action,
5380
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-badge {
5361
5381
  display: none !important;
5362
5382
  }
5363
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"]:has(.sidebar-menu-button[data-bs-toggle="dropdown"][aria-expanded="true"]) {
5383
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"]:has(.sidebar-menu-button[data-bs-toggle="dropdown"][aria-expanded="true"]) {
5364
5384
  z-index: 1000;
5365
5385
  }
5366
5386
  .sidebar-menu-flyout {
@@ -5394,48 +5414,48 @@ label.btn {
5394
5414
  .sidebar-menu-flyout .sidebar-menu-badge {
5395
5415
  display: flex !important;
5396
5416
  }
5397
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button {
5417
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button {
5398
5418
  justify-content: center;
5399
5419
  padding-inline: 0;
5400
5420
  }
5401
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace:hover {
5421
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace:hover {
5402
5422
  background: transparent;
5403
5423
  }
5404
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace[aria-expanded="true"] {
5424
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace[aria-expanded="true"] {
5405
5425
  background: transparent;
5406
5426
  outline: 0;
5407
5427
  box-shadow: none;
5408
5428
  }
5409
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace:focus-visible {
5429
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--workspace:focus-visible {
5410
5430
  background: transparent;
5411
5431
  outline: 0;
5412
5432
  box-shadow: none;
5413
5433
  }
5414
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account {
5434
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account {
5415
5435
  padding: 0;
5416
5436
  overflow: visible;
5417
5437
  }
5418
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account:hover {
5438
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account:hover {
5419
5439
  background: transparent;
5420
5440
  }
5421
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account[aria-expanded="true"] {
5441
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account[aria-expanded="true"] {
5422
5442
  background: transparent;
5423
5443
  outline: 0;
5424
5444
  box-shadow: none;
5425
5445
  }
5426
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account:focus-visible {
5446
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-item--account > .sidebar-menu-button--account:focus-visible {
5427
5447
  background: transparent;
5428
5448
  outline: 0;
5429
5449
  box-shadow: none;
5430
5450
  }
5431
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--lg {
5451
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-button--lg {
5432
5452
  height: 2rem;
5433
5453
  padding: 0;
5434
5454
  }
5435
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-skeleton {
5455
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-skeleton {
5436
5456
  justify-content: center;
5437
5457
  }
5438
- [data-moo-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-skeleton__line {
5458
+ [data-sidebar-state="collapsed"] .sidebar[data-collapsible="icon"] .sidebar-menu-skeleton__line {
5439
5459
  display: none;
5440
5460
  }
5441
5461
  }
@@ -5476,14 +5496,15 @@ label.btn {
5476
5496
  padding-right: 0;
5477
5497
  padding-left: 0;
5478
5498
  padding-inline-start: var(--bs-alert-padding-x);
5479
- padding-inline-end: calc(var(--bs-alert-padding-x) + 1.5rem);
5499
+ padding-inline-end: calc(var(--bs-alert-padding-x) + 1.9375rem);
5480
5500
  }
5481
5501
  .alert-dismissible .btn-close {
5482
5502
  top: auto;
5483
5503
  right: auto;
5484
- inset-block-start: var(--bs-alert-padding-y);
5504
+ inset-block-start: 50%;
5485
5505
  inset-inline-end: var(--bs-alert-padding-x);
5486
5506
  padding: 0.34375rem 0.34375rem;
5507
+ transform: translateY(-50%);
5487
5508
  }
5488
5509
  .alert-danger {
5489
5510
  --bs-alert-bg: transparent;
@@ -5702,7 +5723,180 @@ label.btn {
5702
5723
  color: var(--moo-foreground) !important;
5703
5724
  }
5704
5725
  .progress {
5705
- --bs-progress-bar-bg: var(--moo-foreground);
5726
+ --bs-progress-bar-color: var(--moo-primary-foreground);
5727
+ --bs-progress-bar-bg: var(--moo-primary);
5728
+ }
5729
+ .slider {
5730
+ display: grid;
5731
+ gap: 0.5rem;
5732
+ width: 100%;
5733
+ }
5734
+ .slider-track {
5735
+ position: relative;
5736
+ display: flex;
5737
+ align-items: center;
5738
+ width: 100%;
5739
+ height: 0.75rem;
5740
+ cursor: pointer;
5741
+ touch-action: none;
5742
+ }
5743
+ .slider-track::before,
5744
+ .slider-range {
5745
+ position: absolute;
5746
+ inset-block-start: 50%;
5747
+ height: 0.25rem;
5748
+ border-radius: var(--bs-border-radius-pill);
5749
+ transform: translateY(-50%);
5750
+ pointer-events: none;
5751
+ }
5752
+ .slider-track::before {
5753
+ content: "";
5754
+ inset-inline: 0;
5755
+ background-color: var(--bs-secondary-bg);
5756
+ box-shadow: var(--bs-box-shadow-inset);
5757
+ }
5758
+ .slider-range {
5759
+ inset-inline-start: var(--moo-slider-start, 0%);
5760
+ inset-inline-end: calc(100% - var(--moo-slider-end, 0%));
5761
+ background-color: var(--moo-primary);
5762
+ }
5763
+ .slider-input {
5764
+ position: absolute;
5765
+ inset: 0;
5766
+ margin: 0;
5767
+ width: 100%;
5768
+ height: 100%;
5769
+ pointer-events: none;
5770
+ }
5771
+ .slider-input::-webkit-slider-runnable-track {
5772
+ height: 0.25rem;
5773
+ background-color: transparent;
5774
+ box-shadow: none;
5775
+ }
5776
+ .slider-input::-moz-range-track {
5777
+ height: 0.25rem;
5778
+ background-color: transparent;
5779
+ box-shadow: none;
5780
+ }
5781
+ .slider-input::-webkit-slider-thumb {
5782
+ position: relative;
5783
+ z-index: 1;
5784
+ width: 0.75rem;
5785
+ height: 0.75rem;
5786
+ margin-top: -0.25rem;
5787
+ background-color: var(--bs-body-bg);
5788
+ border-width: var(--bs-border-width);
5789
+ border-style: solid;
5790
+ border-color: var(--moo-primary);
5791
+ box-shadow: var(--bs-box-shadow-sm);
5792
+ pointer-events: auto;
5793
+ }
5794
+ .slider-input::-moz-range-thumb {
5795
+ position: relative;
5796
+ z-index: 1;
5797
+ width: 0.75rem;
5798
+ height: 0.75rem;
5799
+ background-color: var(--bs-body-bg);
5800
+ border-width: var(--bs-border-width);
5801
+ border-style: solid;
5802
+ border-color: var(--moo-primary);
5803
+ box-shadow: var(--bs-box-shadow-sm);
5804
+ pointer-events: auto;
5805
+ }
5806
+ .slider-input::-webkit-slider-thumb:active {
5807
+ background-color: var(--bs-body-bg);
5808
+ border-color: var(--moo-primary);
5809
+ }
5810
+ .slider-input::-moz-range-thumb:active {
5811
+ background-color: var(--bs-body-bg);
5812
+ border-color: var(--moo-primary);
5813
+ }
5814
+ .slider-input:focus-visible::-webkit-slider-thumb {
5815
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5816
+ }
5817
+ .slider-input:focus-visible::-moz-range-thumb {
5818
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5819
+ }
5820
+ .slider[data-slider-dragging] .slider-input::-webkit-slider-thumb {
5821
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5822
+ }
5823
+ .slider[data-slider-dragging] .slider-input::-moz-range-thumb {
5824
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
5825
+ }
5826
+ .slider[data-slider-pointer-focus]:not([data-slider-dragging]) .slider-input:focus::-webkit-slider-thumb {
5827
+ box-shadow: var(--bs-box-shadow-sm);
5828
+ }
5829
+ .slider[data-slider-pointer-focus]:not([data-slider-dragging]) .slider-input:focus::-moz-range-thumb {
5830
+ box-shadow: var(--bs-box-shadow-sm);
5831
+ }
5832
+ .slider-input:disabled {
5833
+ opacity: 1;
5834
+ }
5835
+ .slider-input:disabled::-webkit-slider-thumb {
5836
+ background-color: var(--moo-muted-surface);
5837
+ border-color: var(--moo-disabled-foreground);
5838
+ box-shadow: none;
5839
+ cursor: default;
5840
+ }
5841
+ .slider-input:disabled::-moz-range-thumb {
5842
+ background-color: var(--moo-muted-surface);
5843
+ border-color: var(--moo-disabled-foreground);
5844
+ box-shadow: none;
5845
+ cursor: default;
5846
+ }
5847
+ .slider-input:disabled:focus-visible::-webkit-slider-thumb,
5848
+ .slider[data-slider-dragging] .slider-input:disabled::-webkit-slider-thumb,
5849
+ .slider[data-slider-pointer-focus] .slider-input:disabled:focus-visible::-webkit-slider-thumb {
5850
+ background-color: var(--moo-muted-surface);
5851
+ border-color: var(--moo-disabled-foreground);
5852
+ box-shadow: none;
5853
+ }
5854
+ .slider-input:disabled:focus-visible::-moz-range-thumb,
5855
+ .slider[data-slider-dragging] .slider-input:disabled::-moz-range-thumb,
5856
+ .slider[data-slider-pointer-focus] .slider-input:disabled:focus-visible::-moz-range-thumb {
5857
+ background-color: var(--moo-muted-surface);
5858
+ border-color: var(--moo-disabled-foreground);
5859
+ box-shadow: none;
5860
+ }
5861
+ .slider:has(.slider-input:disabled) .slider-track {
5862
+ cursor: default;
5863
+ }
5864
+ .slider:has(.slider-input:disabled) .slider-range {
5865
+ background-color: var(--moo-disabled-foreground);
5866
+ }
5867
+ .slider--range .slider-input--upper {
5868
+ z-index: 2;
5869
+ }
5870
+ .slider--vertical {
5871
+ width: max-content;
5872
+ }
5873
+ .slider--vertical .slider-track {
5874
+ justify-content: center;
5875
+ justify-self: center;
5876
+ width: 0.75rem;
5877
+ height: 8rem;
5878
+ }
5879
+ .slider--vertical .slider-track::before {
5880
+ inset-block: 0;
5881
+ inset-inline: auto;
5882
+ width: 0.25rem;
5883
+ height: auto;
5884
+ transform: none;
5885
+ }
5886
+ .slider--vertical .slider-range {
5887
+ inset-block-start: calc(100% - var(--moo-slider-end, 0%));
5888
+ inset-block-end: var(--moo-slider-start, 0%);
5889
+ inset-inline-start: 50%;
5890
+ inset-inline-end: auto;
5891
+ width: 0.25rem;
5892
+ height: auto;
5893
+ transform: translateX(-50%);
5894
+ }
5895
+ .slider--vertical .slider-input {
5896
+ width: 100%;
5897
+ height: 100%;
5898
+ writing-mode: vertical-lr;
5899
+ direction: rtl;
5706
5900
  }
5707
5901
  hr {
5708
5902
  opacity: 1;
@@ -5712,12 +5906,35 @@ label.btn {
5712
5906
  opacity: 1;
5713
5907
  background-color: var(--moo-border);
5714
5908
  }
5715
- [data-bs-theme="dark"] .form-check-input:is(:checked, :indeterminate):not([role="switch"]) {
5716
- filter: invert(1);
5717
- }
5718
5909
  .form-check-input {
5719
5910
  margin-top: 0.125rem;
5720
5911
  }
5912
+ .form-check-input[type="checkbox"]:checked:not([role="switch"]) {
5913
+ --bs-form-check-bg-image: none;
5914
+ position: relative;
5915
+ overflow: hidden;
5916
+ }
5917
+ .form-check-input[type="checkbox"]:checked:not([role="switch"])::after {
5918
+ position: absolute;
5919
+ top: 45%;
5920
+ left: 50%;
5921
+ width: 0.32em;
5922
+ height: 0.58em;
5923
+ border-color: var(--moo-primary-foreground);
5924
+ border-style: solid;
5925
+ border-width: 0 0.14em 0.14em 0;
5926
+ content: "";
5927
+ transform: translate(-50%, -55%) rotate(45deg);
5928
+ transform-origin: center;
5929
+ }
5930
+ .form-check-input[type="checkbox"]:indeterminate:not([role="switch"]) {
5931
+ --bs-form-check-bg-image: linear-gradient(var(--moo-primary-foreground), var(--moo-primary-foreground));
5932
+ background-size: 62% 14%;
5933
+ background-position: center;
5934
+ }
5935
+ .form-check-input[type="radio"]:checked {
5936
+ --bs-form-check-bg-image: radial-gradient(circle at center, var(--moo-primary-foreground) 0 34%, transparent 36%);
5937
+ }
5721
5938
  .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:active,
5722
5939
  .form-check-input:is([type="checkbox"], [type="radio"]):not(.is-invalid):focus:not(:focus-visible) {
5723
5940
  border-color: var(--bs-border-color);
@@ -5725,11 +5942,11 @@ label.btn {
5725
5942
  }
5726
5943
  .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:active,
5727
5944
  .form-check-input:is([type="checkbox"], [type="radio"]):checked:not(.is-invalid):focus:not(:focus-visible) {
5728
- border-color: #171717;
5945
+ border-color: var(--moo-primary);
5729
5946
  }
5730
5947
  .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:active,
5731
5948
  .form-check-input[type="checkbox"]:not(.is-invalid):indeterminate:focus:not(:focus-visible) {
5732
- border-color: #171717;
5949
+ border-color: var(--moo-primary);
5733
5950
  }
5734
5951
  .form-check-input.is-invalid {
5735
5952
  box-shadow: 0 0 0 3px var(--moo-form-invalid-ring-color);
@@ -5749,8 +5966,8 @@ label.btn {
5749
5966
  .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked,
5750
5967
  .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:active,
5751
5968
  .form-check-input:is([type="checkbox"], [type="radio"]):not([role="switch"]).is-invalid:checked:focus:not(:focus-visible) {
5752
- border-color: var(--bs-primary);
5753
- background-color: var(--bs-primary);
5969
+ border-color: var(--moo-primary);
5970
+ background-color: var(--moo-primary);
5754
5971
  }
5755
5972
  .radio-group legend.form-label {
5756
5973
  font-size: inherit;
@@ -5760,8 +5977,8 @@ label.btn {
5760
5977
  }
5761
5978
  :where([data-bs-theme="dark"]) .form-switch .form-check-input:checked {
5762
5979
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2318181b'/%3e%3c/svg%3e");
5763
- background-color: var(--moo-foreground);
5764
- border-color: var(--moo-foreground);
5980
+ background-color: var(--moo-primary);
5981
+ border-color: var(--moo-primary);
5765
5982
  filter: none;
5766
5983
  }
5767
5984
  .form-switch .form-check-input:focus:active:not(:checked),
@@ -6110,6 +6327,83 @@ label.btn {
6110
6327
  .toast-header strong {
6111
6328
  font-weight: 500;
6112
6329
  }
6330
+ .toast-status-icon {
6331
+ display: inline-flex;
6332
+ flex: 0 0 auto;
6333
+ margin-inline-end: 0.5rem;
6334
+ color: var(--bs-secondary-color);
6335
+ }
6336
+ .toast-status-icon [data-icon] {
6337
+ width: 1rem;
6338
+ height: 1rem;
6339
+ }
6340
+ .toast[data-toast-variant="success"] .toast-status-icon {
6341
+ color: var(--moo-success);
6342
+ }
6343
+ .toast[data-toast-variant="info"] .toast-status-icon {
6344
+ color: var(--moo-info);
6345
+ }
6346
+ .toast[data-toast-variant="warning"] .toast-status-icon {
6347
+ color: var(--moo-warning);
6348
+ }
6349
+ .toast[data-toast-variant="destructive"] .toast-status-icon {
6350
+ color: var(--moo-destructive);
6351
+ }
6352
+ .toast[data-toast-variant="loading"] .toast-status-icon [data-icon] {
6353
+ animation: moo-spinner-rotate 0.75s linear infinite;
6354
+ }
6355
+ .toast-container--stacked[data-toast-stack="deck"] {
6356
+ --moo-toast-stack-gap: 0.75rem;
6357
+ --moo-toast-stack-peek: 0.75rem;
6358
+ --moo-toast-stack-scale-step: 0.1;
6359
+ --moo-toast-stack-min-scale: 0.5;
6360
+ --moo-toast-stack-enter-y: 150%;
6361
+ }
6362
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active] {
6363
+ bottom: 1rem !important;
6364
+ inset-inline-end: 1rem !important;
6365
+ height: 0;
6366
+ max-width: calc(100vw - 2rem);
6367
+ padding: 0 !important;
6368
+ width: min(24rem, calc(100vw - 2rem));
6369
+ }
6370
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active] > .toast[data-toast-stack-index] {
6371
+ inset-block-end: 0;
6372
+ inset-inline-end: 0;
6373
+ max-width: none;
6374
+ margin-bottom: 0;
6375
+ position: absolute;
6376
+ width: 100%;
6377
+ transform: translateY(var(--moo-toast-stack-collapsed-y, 0px)) scale(var(--moo-toast-stack-scale, 1));
6378
+ transform-origin: bottom center;
6379
+ z-index: var(--moo-toast-stack-z, 1);
6380
+ transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.5s ease, height 0.15s ease;
6381
+ }
6382
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active] > .toast[data-toast-stack-entering] {
6383
+ transform: translateY(calc(var(--moo-toast-stack-collapsed-y, 0px) + var(--moo-toast-stack-enter-y, 150%))) scale(var(--moo-toast-stack-scale, 1));
6384
+ }
6385
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active] > .toast[data-toast-stack-limited] {
6386
+ opacity: 0;
6387
+ pointer-events: none;
6388
+ }
6389
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active]:hover > .toast[data-toast-stack-index],
6390
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active]:focus-within > .toast[data-toast-stack-index],
6391
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active][data-toast-stack-hovering] > .toast[data-toast-stack-index] {
6392
+ transform: translateY(var(--moo-toast-stack-expanded-y, 0px)) scale(1);
6393
+ }
6394
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active]:hover > .toast[data-toast-stack-entering],
6395
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active]:focus-within > .toast[data-toast-stack-entering],
6396
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active][data-toast-stack-hovering] > .toast[data-toast-stack-entering] {
6397
+ transform: translateY(calc(var(--moo-toast-stack-collapsed-y, 0px) + var(--moo-toast-stack-enter-y, 150%))) scale(var(--moo-toast-stack-scale, 1));
6398
+ }
6399
+ @media (prefers-reduced-motion: reduce) {
6400
+ .toast[data-toast-variant="loading"] .toast-status-icon [data-icon] {
6401
+ animation: none;
6402
+ }
6403
+ .toast-container--stacked[data-toast-stack="deck"][data-toast-stack-active] > .toast[data-toast-stack-index] {
6404
+ transition: none;
6405
+ }
6406
+ }
6113
6407
  .field {
6114
6408
  display: flex;
6115
6409
  flex-direction: column;
@@ -6181,6 +6475,206 @@ label.btn {
6181
6475
  .field-fieldset + hr {
6182
6476
  opacity: 0.1;
6183
6477
  }
6478
+ .moo-datepicker {
6479
+ --moo-datepicker-width: 17.5rem;
6480
+ --moo-datepicker-popover-offset: 0.375rem;
6481
+ position: relative;
6482
+ width: 100%;
6483
+ max-width: var(--moo-datepicker-width);
6484
+ }
6485
+ .moo-datepicker__trigger {
6486
+ width: 100%;
6487
+ justify-content: flex-start;
6488
+ text-align: start;
6489
+ }
6490
+ .moo-datepicker__trigger [data-datepicker-label] {
6491
+ min-width: 0;
6492
+ overflow: hidden;
6493
+ text-overflow: ellipsis;
6494
+ }
6495
+ .moo-datepicker__trigger.is-invalid {
6496
+ border-color: var(--bs-form-invalid-border-color);
6497
+ color: var(--bs-form-invalid-color);
6498
+ }
6499
+ .moo-datepicker-time-row {
6500
+ display: flex;
6501
+ flex-wrap: wrap;
6502
+ align-items: flex-end;
6503
+ gap: 0.75rem;
6504
+ width: 100%;
6505
+ }
6506
+ .moo-datepicker-time-row .moo-datepicker {
6507
+ flex: 1 1 12rem;
6508
+ width: auto;
6509
+ }
6510
+ .moo-datepicker-time {
6511
+ flex: 0 0 auto;
6512
+ width: calc(17.5rem / 2);
6513
+ max-width: 9rem;
6514
+ }
6515
+ .moo-datepicker__popover {
6516
+ position: absolute;
6517
+ inset-block-start: calc(100% + var(--moo-datepicker-popover-offset));
6518
+ inset-inline-start: 0;
6519
+ z-index: 1000;
6520
+ width: max-content;
6521
+ max-width: calc(100vw - 1rem);
6522
+ padding: 0.75rem;
6523
+ border: var(--bs-border-width) solid var(--bs-border-color);
6524
+ border-radius: var(--bs-border-radius-lg);
6525
+ background: var(--bs-body-bg);
6526
+ color: var(--bs-body-color);
6527
+ box-shadow: var(--bs-box-shadow-lg);
6528
+ }
6529
+ .moo-datepicker__popover[hidden] {
6530
+ display: none !important;
6531
+ }
6532
+ .moo-datepicker__popover.show {
6533
+ display: block;
6534
+ }
6535
+ .moo-datepicker__popover[data-datepicker-placement] {
6536
+ inset: auto;
6537
+ }
6538
+ .moo-calendar {
6539
+ --moo-datepicker-day-size: 2rem;
6540
+ --moo-datepicker-gap: 0.25rem;
6541
+ --moo-datepicker-padding: 0.75rem;
6542
+ --moo-datepicker-preset-gap: 0.375rem;
6543
+ --moo-datepicker-day-border-radius: var(--bs-border-radius-sm);
6544
+ --moo-datepicker-day-range-joined-border-radius: 0;
6545
+ width: calc(var(--moo-datepicker-day-size) * 7 + var(--moo-datepicker-gap) * 6);
6546
+ max-width: 100%;
6547
+ color: var(--bs-body-color);
6548
+ }
6549
+ .moo-calendar__header {
6550
+ display: grid;
6551
+ grid-template-columns: var(--moo-datepicker-day-size) minmax(0, 1fr) var(--moo-datepicker-day-size);
6552
+ align-items: center;
6553
+ gap: var(--moo-datepicker-gap);
6554
+ margin-bottom: 0.75rem;
6555
+ }
6556
+ .moo-calendar__caption {
6557
+ display: inline-flex;
6558
+ min-width: 0;
6559
+ align-items: center;
6560
+ justify-content: center;
6561
+ gap: var(--moo-datepicker-gap);
6562
+ font-weight: 500;
6563
+ }
6564
+ .moo-calendar__select {
6565
+ min-width: 0;
6566
+ height: calc(1.42857em + 0.5rem + calc(var(--bs-border-width) * 2));
6567
+ padding: 0 0.375rem;
6568
+ border: var(--bs-border-width) solid var(--bs-border-color);
6569
+ border-radius: var(--bs-border-radius-sm);
6570
+ background: var(--bs-body-bg);
6571
+ color: var(--bs-body-color);
6572
+ font: inherit;
6573
+ }
6574
+ .moo-calendar__nav {
6575
+ color: var(--bs-secondary-color);
6576
+ }
6577
+ .moo-calendar__nav:hover,
6578
+ .moo-calendar__nav:focus-visible {
6579
+ color: var(--bs-body-color);
6580
+ }
6581
+ .moo-calendar__nav-icon {
6582
+ font-size: 1.09375rem;
6583
+ line-height: 1;
6584
+ }
6585
+ .moo-calendar__weekdays,
6586
+ .moo-calendar__week {
6587
+ display: grid;
6588
+ grid-template-columns: repeat(7, var(--moo-datepicker-day-size));
6589
+ gap: var(--moo-datepicker-gap);
6590
+ }
6591
+ .moo-calendar__week + .moo-calendar__week {
6592
+ margin-top: var(--moo-datepicker-gap);
6593
+ }
6594
+ .moo-calendar__weekdays {
6595
+ margin-bottom: var(--moo-datepicker-gap);
6596
+ }
6597
+ .moo-calendar__weekday {
6598
+ display: inline-flex;
6599
+ align-items: center;
6600
+ justify-content: center;
6601
+ width: var(--moo-datepicker-day-size);
6602
+ height: 1.5rem;
6603
+ color: var(--bs-secondary-color);
6604
+ font-size: 0.76562rem;
6605
+ font-weight: 500;
6606
+ }
6607
+ .moo-calendar__cell {
6608
+ position: relative;
6609
+ width: var(--moo-datepicker-day-size);
6610
+ height: var(--moo-datepicker-day-size);
6611
+ }
6612
+ .moo-calendar__day {
6613
+ position: relative;
6614
+ display: inline-flex;
6615
+ width: var(--moo-datepicker-day-size);
6616
+ height: var(--moo-datepicker-day-size);
6617
+ align-items: center;
6618
+ justify-content: center;
6619
+ padding: 0;
6620
+ border: 0;
6621
+ border-radius: var(--moo-datepicker-day-border-radius);
6622
+ background: transparent;
6623
+ color: var(--bs-body-color);
6624
+ font: inherit;
6625
+ line-height: 1;
6626
+ }
6627
+ .moo-calendar__day:hover:not(:disabled),
6628
+ .moo-calendar__day:focus-visible {
6629
+ background: var(--moo-muted-surface);
6630
+ outline: 0;
6631
+ }
6632
+ .moo-calendar__day:focus-visible {
6633
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--moo-ring) 50%, transparent);
6634
+ }
6635
+ .moo-calendar__day[data-calendar-selected="true"] {
6636
+ background: var(--moo-primary);
6637
+ color: var(--moo-primary-foreground);
6638
+ }
6639
+ .moo-calendar__day[data-calendar-selected="true"]:hover:not(:disabled),
6640
+ .moo-calendar__day[data-calendar-selected="true"]:focus-visible {
6641
+ background: var(--moo-primary);
6642
+ color: var(--moo-primary-foreground);
6643
+ }
6644
+ .moo-calendar__day[data-calendar-range="middle"] {
6645
+ border-radius: var(--moo-datepicker-day-range-joined-border-radius);
6646
+ background: color-mix(in srgb, var(--moo-primary) 14%, transparent);
6647
+ color: var(--bs-body-color);
6648
+ }
6649
+ .moo-calendar__day[data-calendar-range="start"] {
6650
+ border-start-end-radius: var(--moo-datepicker-day-range-joined-border-radius);
6651
+ border-end-end-radius: var(--moo-datepicker-day-range-joined-border-radius);
6652
+ }
6653
+ .moo-calendar__day[data-calendar-range="end"] {
6654
+ border-start-start-radius: var(--moo-datepicker-day-range-joined-border-radius);
6655
+ border-end-start-radius: var(--moo-datepicker-day-range-joined-border-radius);
6656
+ }
6657
+ .moo-calendar__day[data-calendar-outside="true"] {
6658
+ color: var(--bs-secondary-color);
6659
+ }
6660
+ .moo-calendar__day[data-calendar-today="true"]:not([data-calendar-selected="true"]) {
6661
+ outline: var(--bs-border-width) solid var(--bs-border-color);
6662
+ outline-offset: calc(-1 * var(--bs-border-width));
6663
+ }
6664
+ .moo-calendar__day:disabled {
6665
+ color: var(--moo-disabled-foreground);
6666
+ cursor: default;
6667
+ opacity: var(--moo-disabled-control-opacity);
6668
+ }
6669
+ .moo-calendar__presets {
6670
+ display: flex;
6671
+ flex-wrap: wrap;
6672
+ gap: var(--moo-datepicker-preset-gap);
6673
+ margin-top: 0.75rem;
6674
+ }
6675
+ .moo-calendar__preset {
6676
+ flex: 0 0 auto;
6677
+ }
6184
6678
  .combobox {
6185
6679
  --moo-combobox-width: 12.5rem;
6186
6680
  --moo-combobox-multiple-width: 20rem;
@@ -6412,6 +6906,7 @@ label.btn {
6412
6906
  --moo-datatable-search-filter-menu-width: 12.5rem;
6413
6907
  --moo-datatable-search-filter-options-menu-width: 17rem;
6414
6908
  --moo-datatable-scrollbar-size: 0.375rem;
6909
+ --moo-datatable-bulk-actions-bottom: 1rem;
6415
6910
  }
6416
6911
  .datatable-table {
6417
6912
  table-layout: fixed;
@@ -7114,7 +7609,7 @@ label.btn {
7114
7609
  --moo-datatable-bulk-actions-backdrop-blur: 8px;
7115
7610
  position: fixed;
7116
7611
  inset-inline-start: 50%;
7117
- inset-block-end: 1rem;
7612
+ inset-block-end: var(--moo-datatable-bulk-actions-bottom);
7118
7613
  transform: translateX(-50%) scale(1);
7119
7614
  transition: transform 0.15s ease-out;
7120
7615
  z-index: var(--bs-zindex-fixed, 1030);
@@ -7270,8 +7765,8 @@ label.btn {
7270
7765
  :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-switch .form-check-input:checked,
7271
7766
  .moo-ui[data-bs-theme="dark"] .form-switch .form-check-input:checked {
7272
7767
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2318181b'/%3e%3c/svg%3e");
7273
- background-color: var(--moo-foreground);
7274
- border-color: var(--moo-foreground);
7768
+ background-color: var(--moo-primary);
7769
+ border-color: var(--moo-primary);
7275
7770
  filter: none;
7276
7771
  }
7277
7772
 
@@ -7282,11 +7777,6 @@ label.btn {
7282
7777
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
7283
7778
  }
7284
7779
 
7285
- :where(html, body)[data-bs-theme="dark"] .moo-ui:not([data-bs-theme]) .form-check-input:checked:not([role="switch"]),
7286
- .moo-ui[data-bs-theme="dark"] .form-check-input:checked:not([role="switch"]) {
7287
- filter: invert(1);
7288
- }
7289
-
7290
7780
  .modal-backdrop,
7291
7781
  .offcanvas-backdrop {
7292
7782
  --bs-backdrop-opacity: var(--moo-overlay-backdrop-opacity, 1);