@wpmoo/ui 0.1.1 → 0.2.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.
@@ -147,6 +147,9 @@
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);
150
153
  --moo-sidebar: #fafafa;
151
154
  --moo-sidebar-foreground: var(--moo-foreground);
152
155
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -217,6 +220,9 @@
217
220
  --moo-ring: #fafafa;
218
221
  --moo-destructive: #f87171;
219
222
  --moo-destructive-foreground: #18181b;
223
+ --moo-overlay-backdrop-opacity: 1;
224
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
225
+ --moo-overlay-backdrop-filter: blur(8px);
220
226
  --moo-sidebar: #1c1c1f;
221
227
  --moo-sidebar-foreground: var(--moo-foreground);
222
228
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -287,6 +293,9 @@
287
293
  --moo-ring: #18181b;
288
294
  --moo-destructive: #dc2626;
289
295
  --moo-destructive-foreground: #fff;
296
+ --moo-overlay-backdrop-opacity: 1;
297
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
298
+ --moo-overlay-backdrop-filter: blur(8px);
290
299
  --moo-sidebar: #fafafa;
291
300
  --moo-sidebar-foreground: var(--moo-foreground);
292
301
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -357,6 +366,9 @@
357
366
  --moo-ring: #fafafa;
358
367
  --moo-destructive: #f87171;
359
368
  --moo-destructive-foreground: #18181b;
369
+ --moo-overlay-backdrop-opacity: 1;
370
+ --moo-overlay-backdrop-bg: color-mix(in srgb, var(--bs-black) 10%, transparent);
371
+ --moo-overlay-backdrop-filter: blur(8px);
360
372
  --moo-sidebar: #1c1c1f;
361
373
  --moo-sidebar-foreground: var(--moo-foreground);
362
374
  --moo-sidebar-accent: var(--moo-muted-surface);
@@ -2462,7 +2474,7 @@
2462
2474
  float: left;
2463
2475
  padding-right: var(--bs-breadcrumb-item-padding-x);
2464
2476
  color: var(--bs-breadcrumb-divider-color);
2465
- content: var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */;
2477
+ content: var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, "<") */;
2466
2478
  }
2467
2479
  .breadcrumb-item.active {
2468
2480
  color: var(--bs-breadcrumb-item-active-color);
@@ -3824,6 +3836,11 @@
3824
3836
  outline-offset: var(--bs-focus-ring-width);
3825
3837
  box-shadow: none;
3826
3838
  }
3839
+ .btn-check:focus-visible + .btn {
3840
+ outline: var(--bs-focus-ring-width) solid var(--moo-ring);
3841
+ outline-offset: var(--bs-focus-ring-width);
3842
+ box-shadow: none;
3843
+ }
3827
3844
  .input-group > .dropdown-toggle[aria-expanded="true"]:focus-visible {
3828
3845
  outline: 0;
3829
3846
  }
@@ -4199,6 +4216,8 @@ label.btn {
4199
4216
  --bs-btn-bg: transparent;
4200
4217
  --bs-btn-hover-bg: var(--moo-muted-surface);
4201
4218
  --bs-btn-hover-border-color: transparent;
4219
+ --bs-btn-active-bg: var(--bs-btn-hover-bg);
4220
+ --bs-btn-active-color: var(--bs-btn-color);
4202
4221
  --bs-btn-active-border-color: transparent;
4203
4222
  }
4204
4223
  .btn-danger {
@@ -4241,6 +4260,11 @@ label.btn {
4241
4260
  gap: 0.375rem;
4242
4261
  border-bottom: 0;
4243
4262
  }
4263
+ .card-header,
4264
+ .card-body,
4265
+ .card-footer {
4266
+ padding-block: 0;
4267
+ }
4244
4268
  .card-footer {
4245
4269
  display: flex;
4246
4270
  align-items: center;
@@ -4315,26 +4339,101 @@ label.btn {
4315
4339
  transform: none !important;
4316
4340
  }
4317
4341
  }
4342
+ .menubar {
4343
+ gap: 0.125rem;
4344
+ padding: 0.1875rem;
4345
+ }
4346
+ .menubar .dropdown-menu {
4347
+ z-index: 1000;
4348
+ }
4349
+ .menubar [data-bs-toggle="dropdown"].show,
4350
+ .menubar .dropdown-toggle.show {
4351
+ --bs-btn-color: var(--moo-foreground);
4352
+ color: var(--bs-btn-color);
4353
+ font-weight: 500;
4354
+ }
4318
4355
  .avatar {
4356
+ position: relative;
4319
4357
  display: inline-flex;
4320
4358
  align-items: center;
4321
4359
  justify-content: center;
4322
4360
  width: 2rem;
4323
4361
  height: 2rem;
4324
4362
  flex: 0 0 auto;
4325
- overflow: hidden;
4326
- border: var(--bs-border-width) solid var(--moo-border);
4363
+ overflow: visible;
4364
+ border: 0;
4327
4365
  border-radius: var(--bs-border-radius-pill);
4328
4366
  background-color: var(--moo-muted-surface);
4329
4367
  color: var(--moo-foreground);
4330
4368
  font-size: 0.875rem;
4331
4369
  font-weight: 500;
4332
4370
  line-height: 1;
4371
+ text-transform: uppercase;
4372
+ }
4373
+ .avatar::after {
4374
+ content: "";
4375
+ position: absolute;
4376
+ inset: 0;
4377
+ z-index: 1;
4378
+ border: var(--bs-border-width) solid var(--moo-border);
4379
+ border-radius: var(--bs-border-radius-pill);
4380
+ pointer-events: none;
4381
+ opacity: 0.8;
4333
4382
  }
4334
4383
  .avatar > img {
4335
4384
  width: 100%;
4336
4385
  height: 100%;
4337
4386
  object-fit: cover;
4387
+ border-radius: var(--bs-border-radius-pill);
4388
+ }
4389
+ .avatar-fallback {
4390
+ position: absolute;
4391
+ inset: 0;
4392
+ display: grid;
4393
+ place-items: center;
4394
+ text-align: center;
4395
+ padding: 0 0.15rem;
4396
+ }
4397
+ .avatar--has-image > .avatar-fallback {
4398
+ display: none;
4399
+ }
4400
+ .avatar-badge {
4401
+ position: absolute;
4402
+ inset-block-end: 0;
4403
+ inset-inline-end: 0;
4404
+ z-index: 2;
4405
+ display: inline-flex;
4406
+ align-items: center;
4407
+ justify-content: center;
4408
+ height: 0.9375rem;
4409
+ min-width: 0.9375rem;
4410
+ padding-inline: 0.2rem;
4411
+ border-radius: var(--bs-border-radius-pill);
4412
+ border: 2px solid var(--bs-body-bg);
4413
+ background-color: var(--moo-muted-surface);
4414
+ color: var(--moo-foreground);
4415
+ font-size: 0.625rem;
4416
+ font-weight: 500;
4417
+ line-height: 1;
4418
+ }
4419
+ .avatar-badge [data-icon] {
4420
+ width: 0.625rem;
4421
+ height: 0.625rem;
4422
+ }
4423
+ .avatar-badge--dot {
4424
+ height: 0.625rem;
4425
+ min-width: 0.625rem;
4426
+ padding-inline: 0;
4427
+ }
4428
+ .avatar-badge--icon {
4429
+ width: 0.75rem;
4430
+ height: 0.75rem;
4431
+ min-width: 0.75rem;
4432
+ padding-inline: 0;
4433
+ }
4434
+ .avatar-badge--icon [data-icon] {
4435
+ width: 0.375rem;
4436
+ height: 0.375rem;
4338
4437
  }
4339
4438
  .avatar-sm {
4340
4439
  width: 1.5rem;
@@ -4346,6 +4445,33 @@ label.btn {
4346
4445
  height: 2.5rem;
4347
4446
  font-size: 1rem;
4348
4447
  }
4448
+ .avatar-group {
4449
+ display: inline-flex;
4450
+ align-items: center;
4451
+ }
4452
+ .avatar-group > .avatar {
4453
+ z-index: 0;
4454
+ }
4455
+ .avatar-group .avatar + .avatar,
4456
+ .avatar-group .avatar + .avatar-count,
4457
+ .avatar-group .avatar-count + .avatar {
4458
+ margin-inline-start: -0.5rem;
4459
+ }
4460
+ .avatar-count {
4461
+ display: inline-flex;
4462
+ align-items: center;
4463
+ justify-content: center;
4464
+ width: 2rem;
4465
+ height: 2rem;
4466
+ flex: 0 0 auto;
4467
+ border-radius: var(--bs-border-radius-pill);
4468
+ font-size: 0.75rem;
4469
+ font-weight: 500;
4470
+ }
4471
+ .avatar-count::before {
4472
+ content: "+";
4473
+ margin-inline-end: -0.1rem;
4474
+ }
4349
4475
  .nav {
4350
4476
  --bs-nav-link-color: var(--moo-foreground);
4351
4477
  --bs-nav-link-hover-color: var(--moo-foreground);
@@ -4373,7 +4499,12 @@ label.btn {
4373
4499
  flex: 0 0 auto;
4374
4500
  }
4375
4501
  .skeleton {
4502
+ color: var(--moo-border);
4376
4503
  border-radius: var(--bs-border-radius);
4504
+ overflow: hidden;
4505
+ }
4506
+ .skeleton > .placeholder {
4507
+ display: block;
4377
4508
  }
4378
4509
  .sidebar-wrapper {
4379
4510
  --moo-sidebar-width: 16rem;
@@ -4981,6 +5112,18 @@ label.btn {
4981
5112
  .breadcrumb {
4982
5113
  --bs-breadcrumb-item-active-color: var(--moo-foreground);
4983
5114
  }
5115
+ :dir(rtl) .breadcrumb {
5116
+ --bs-breadcrumb-divider: "<";
5117
+ }
5118
+ :dir(rtl) .breadcrumb-item + .breadcrumb-item {
5119
+ padding-right: var(--bs-breadcrumb-item-padding-x);
5120
+ padding-left: 0;
5121
+ }
5122
+ :dir(rtl) .breadcrumb-item + .breadcrumb-item::before {
5123
+ float: right;
5124
+ padding-right: 0;
5125
+ padding-left: var(--bs-breadcrumb-item-padding-x);
5126
+ }
4984
5127
  .breadcrumb-item a {
4985
5128
  color: var(--moo-muted-foreground);
4986
5129
  text-decoration: none;
@@ -4990,6 +5133,30 @@ label.btn {
4990
5133
  color: var(--moo-foreground);
4991
5134
  text-decoration: none;
4992
5135
  }
5136
+ .breadcrumb-ellipsis {
5137
+ display: inline-flex;
5138
+ align-items: center;
5139
+ color: var(--moo-muted-foreground);
5140
+ }
5141
+ .breadcrumb-ellipsis [data-icon] {
5142
+ width: 1rem;
5143
+ height: 1rem;
5144
+ }
5145
+ .breadcrumb-dropdown-item {
5146
+ display: inline-flex;
5147
+ align-items: center;
5148
+ }
5149
+ .breadcrumb-dropdown-item button {
5150
+ padding: 0;
5151
+ border: 0;
5152
+ background-color: transparent;
5153
+ color: var(--moo-muted-foreground);
5154
+ text-decoration: none;
5155
+ }
5156
+ .breadcrumb-dropdown-item button:hover,
5157
+ .breadcrumb-dropdown-item button:focus {
5158
+ color: var(--moo-foreground);
5159
+ }
4993
5160
  .page-link {
4994
5161
  display: inline-flex;
4995
5162
  align-items: center;
@@ -5024,18 +5191,35 @@ label.btn {
5024
5191
  content: none;
5025
5192
  }
5026
5193
  .accordion-button [data-icon] {
5194
+ position: absolute;
5195
+ inset-inline-end: var(--bs-accordion-btn-padding-x);
5196
+ top: 50%;
5027
5197
  width: 1rem;
5028
5198
  height: 1rem;
5029
- margin-inline-start: auto;
5030
5199
  flex-shrink: 0;
5200
+ pointer-events: none;
5201
+ transform: translateY(-50%);
5031
5202
  transition: transform 0.2s ease-in-out;
5203
+ transform-origin: center;
5032
5204
  }
5033
5205
  .accordion-button:not(.collapsed) [data-icon] {
5034
- transform: rotate(-180deg);
5206
+ transform: translateY(-50%) rotate(-180deg);
5207
+ }
5208
+ .accordion-flush .accordion-button {
5209
+ text-align: start;
5035
5210
  }
5036
5211
  .accordion-button:hover {
5037
5212
  text-decoration: underline;
5038
5213
  }
5214
+ .accordion-flush {
5215
+ --bs-accordion-btn-padding-x: 0;
5216
+ --bs-accordion-btn-padding-y: 0.625rem;
5217
+ --bs-accordion-body-padding-x: 0;
5218
+ --bs-accordion-body-padding-y: 0.625rem;
5219
+ }
5220
+ .accordion-flush .accordion-button {
5221
+ font-weight: 500;
5222
+ }
5039
5223
  .tabs-list {
5040
5224
  display: inline-flex;
5041
5225
  gap: 0.125rem;
@@ -5066,30 +5250,66 @@ label.btn {
5066
5250
  }
5067
5251
  .tab-content {
5068
5252
  display: grid;
5253
+ width: 100%;
5254
+ max-width: 100%;
5255
+ min-width: 0;
5256
+ margin-top: 0.75rem;
5069
5257
  }
5070
5258
  .tab-content > .tab-pane {
5071
5259
  grid-area: 1 / 1;
5072
5260
  display: block;
5261
+ width: 100%;
5262
+ max-width: 100%;
5263
+ min-width: 0;
5264
+ opacity: 0;
5265
+ transform: translateY(0.25rem);
5073
5266
  visibility: hidden;
5267
+ pointer-events: none;
5268
+ transition: opacity 0.16s ease, transform 0.16s ease, visibility 0s linear 0.16s;
5074
5269
  }
5075
5270
  .tab-content > .active {
5271
+ opacity: 1;
5272
+ transform: none;
5076
5273
  visibility: visible;
5274
+ pointer-events: auto;
5275
+ transition-delay: 0s;
5276
+ }
5277
+ .collapsible {
5278
+ display: flex;
5279
+ flex-direction: column;
5280
+ gap: 0.5rem;
5281
+ width: 100%;
5282
+ max-width: 100%;
5283
+ min-width: 0;
5077
5284
  }
5078
5285
  .collapsible-header {
5079
5286
  display: flex;
5080
5287
  align-items: center;
5081
5288
  justify-content: space-between;
5082
- gap: 1rem;
5289
+ padding-inline: 0.5rem;
5290
+ gap: 0.5rem;
5083
5291
  }
5084
5292
  .collapsible-title {
5085
5293
  margin-bottom: 0;
5086
- font-size: 0.875rem;
5087
- font-weight: 600;
5294
+ font-size: 0.76562rem;
5295
+ font-weight: 500;
5296
+ color: var(--moo-foreground);
5297
+ }
5298
+ .collapsible .btn[data-bs-toggle='collapse'] {
5299
+ color: var(--moo-muted-foreground);
5300
+ line-height: 1;
5301
+ }
5302
+ .collapsible .btn[data-bs-toggle='collapse'] [data-icon] {
5303
+ width: 0.875rem;
5304
+ height: 0.875rem;
5088
5305
  }
5089
5306
  .collapsible-content {
5090
- padding-top: 0.5rem;
5091
- font-size: 0.875rem;
5307
+ padding: 0.5rem 0.75rem;
5308
+ border: var(--bs-border-width) solid var(--bs-border-color);
5309
+ border-radius: var(--bs-border-radius);
5310
+ font-size: 0.76562rem;
5092
5311
  color: var(--moo-muted-foreground);
5312
+ width: 100%;
5093
5313
  }
5094
5314
  .tooltip {
5095
5315
  --bs-tooltip-max-width: 20rem;
@@ -5153,15 +5373,31 @@ label.btn {
5153
5373
  font-size: 1rem;
5154
5374
  font-weight: 500;
5155
5375
  }
5376
+ .modal-header {
5377
+ gap: calc(var(--bs-modal-padding) * 0.75);
5378
+ }
5379
+ .modal--alert {
5380
+ --bs-modal-width: 24rem;
5381
+ --bs-modal-padding: 1rem;
5382
+ }
5383
+ .modal-header--alert {
5384
+ align-items: flex-start;
5385
+ padding: var(--bs-modal-padding);
5386
+ }
5387
+ .modal-header__content {
5388
+ min-width: 0;
5389
+ }
5390
+ .modal-description {
5391
+ margin-top: calc(var(--bs-modal-padding) * 0.375);
5392
+ margin-bottom: 0;
5393
+ color: var(--bs-secondary-color);
5394
+ }
5395
+ .modal--alert .modal-footer {
5396
+ padding: var(--bs-modal-padding);
5397
+ }
5156
5398
  .modal-footer {
5157
5399
  padding: 1rem;
5158
5400
  }
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
5401
  .offcanvas.sheet {
5166
5402
  --bs-offcanvas-width: 24rem;
5167
5403
  --bs-offcanvas-border-color: var(--moo-border);
@@ -5175,20 +5411,6 @@ label.btn {
5175
5411
  font-size: 1rem;
5176
5412
  font-weight: 500;
5177
5413
  }
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
5414
  .toast {
5193
5415
  --bs-toast-border-radius: var(--bs-border-radius-lg);
5194
5416
  --bs-toast-border-color: var(--moo-border);
@@ -5260,9 +5482,15 @@ label.btn {
5260
5482
  filter: var(--bs-btn-close-white-filter);
5261
5483
  }
5262
5484
 
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);
5485
+ .modal-backdrop,
5486
+ .offcanvas-backdrop {
5487
+ --bs-backdrop-opacity: var(--moo-overlay-backdrop-opacity, 1);
5488
+ background-color: var(--moo-overlay-backdrop-bg, color-mix(in srgb, var(--bs-black) 10%, transparent));
5489
+ -webkit-backdrop-filter: var(--moo-overlay-backdrop-filter, blur(8px));
5490
+ backdrop-filter: var(--moo-overlay-backdrop-filter, blur(8px));
5491
+ }
5492
+
5493
+ .modal-backdrop.show,
5494
+ .offcanvas-backdrop.show {
5495
+ opacity: var(--moo-overlay-backdrop-opacity, 1);
5268
5496
  }