@donotdev/ui 0.0.9 → 0.0.11
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.
- package/dist/crud/components/EntityCardList.d.ts +16 -0
- package/dist/crud/components/EntityCardList.d.ts.map +1 -0
- package/dist/crud/components/EntityCardList.js +175 -0
- package/dist/crud/components/EntityDisplayRenderer.d.ts +13 -21
- package/dist/crud/components/EntityDisplayRenderer.d.ts.map +1 -1
- package/dist/crud/components/EntityDisplayRenderer.js +138 -23
- package/dist/crud/components/EntityFormRenderer.d.ts +18 -0
- package/dist/crud/components/EntityFormRenderer.d.ts.map +1 -0
- package/dist/crud/components/EntityFormRenderer.js +275 -0
- package/dist/crud/components/EntityList.d.ts +14 -0
- package/dist/crud/components/EntityList.d.ts.map +1 -0
- package/dist/crud/components/EntityList.js +201 -0
- package/dist/crud/components/index.d.ts +7 -5
- package/dist/crud/components/index.d.ts.map +1 -1
- package/dist/crud/components/index.js +6 -5
- package/dist/dndev.css +467 -143
- package/dist/index.js +4 -64
- package/dist/internal/common/RouteErrorFallback.d.ts.map +1 -1
- package/dist/internal/common/RouteErrorFallback.js +1 -2
- package/dist/internal/layout/DnDevLayout.d.ts.map +1 -1
- package/dist/internal/layout/DnDevLayout.js +3 -2
- package/dist/internal/layout/components/AutoMetaTags.d.ts.map +1 -1
- package/dist/internal/layout/components/AutoMetaTags.js +36 -6
- package/dist/internal/layout/components/NextJsAutoMetaTags.d.ts.map +1 -1
- package/dist/internal/layout/components/NextJsAutoMetaTags.js +38 -10
- package/dist/internal/layout/components/footer/FooterBranding.d.ts +0 -2
- package/dist/internal/layout/components/footer/FooterBranding.d.ts.map +1 -1
- package/dist/internal/layout/components/footer/FooterBranding.js +4 -8
- package/dist/internal/layout/components/footer/FooterCopyright.d.ts +0 -2
- package/dist/internal/layout/components/footer/FooterCopyright.d.ts.map +1 -1
- package/dist/internal/layout/components/footer/FooterCopyright.js +2 -6
- package/dist/internal/layout/config/presets/moolti.js +2 -2
- package/dist/internal/layout/zones/DnDevFooter.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevFooter.js +2 -2
- package/dist/routing/GoTo.d.ts +1 -1
- package/dist/routing/GoTo.d.ts.map +1 -1
- package/dist/routing/GoTo.js +1 -1
- package/dist/routing/hooks/hooks.next.js +1 -1
- package/dist/routing/hooks/hooks.vite.js +1 -1
- package/dist/routing/hooks/useFormNavigationBlocker.d.ts +14 -0
- package/dist/routing/hooks/useFormNavigationBlocker.d.ts.map +1 -0
- package/dist/routing/hooks/useFormNavigationBlocker.js +42 -0
- package/dist/routing/hooks/useNavigate.next.d.ts +1 -1
- package/dist/routing/hooks/useNavigate.next.d.ts.map +1 -1
- package/dist/routing/hooks/useNavigate.next.js +7 -1
- package/dist/routing/hooks/useNavigate.vite.d.ts +1 -1
- package/dist/routing/hooks/useNavigate.vite.d.ts.map +1 -1
- package/dist/routing/hooks/useNavigate.vite.js +7 -1
- package/dist/styles/index.css +467 -143
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/useFormStoreSafe.d.ts +59 -0
- package/dist/utils/useFormStoreSafe.d.ts.map +1 -0
- package/dist/utils/useFormStoreSafe.js +115 -0
- package/package.json +12 -12
- package/dist/crud/components/DisplayFieldRenderer.d.ts +0 -26
- package/dist/crud/components/DisplayFieldRenderer.d.ts.map +0 -1
- package/dist/crud/components/DisplayFieldRenderer.js +0 -107
- package/dist/crud/components/fields/display/AvatarFieldDisplay.d.ts +0 -23
- package/dist/crud/components/fields/display/AvatarFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/AvatarFieldDisplay.js +0 -38
- package/dist/crud/components/fields/display/BadgeFieldDisplay.d.ts +0 -21
- package/dist/crud/components/fields/display/BadgeFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/BadgeFieldDisplay.js +0 -31
- package/dist/crud/components/fields/display/ButtonFieldDisplay.d.ts +0 -29
- package/dist/crud/components/fields/display/ButtonFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/ButtonFieldDisplay.js +0 -12
- package/dist/crud/components/fields/display/CheckboxFieldDisplay.d.ts +0 -21
- package/dist/crud/components/fields/display/CheckboxFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/CheckboxFieldDisplay.js +0 -27
- package/dist/crud/components/fields/display/DateFieldDisplay.d.ts +0 -24
- package/dist/crud/components/fields/display/DateFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/DateFieldDisplay.js +0 -42
- package/dist/crud/components/fields/display/DropdownDisplay.d.ts +0 -21
- package/dist/crud/components/fields/display/DropdownDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/DropdownDisplay.js +0 -25
- package/dist/crud/components/fields/display/FileFieldDisplay.d.ts +0 -21
- package/dist/crud/components/fields/display/FileFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/FileFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.d.ts +0 -25
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/HiddenFieldDisplay.d.ts +0 -30
- package/dist/crud/components/fields/display/HiddenFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/HiddenFieldDisplay.js +0 -12
- package/dist/crud/components/fields/display/ImageFieldDisplay.d.ts +0 -24
- package/dist/crud/components/fields/display/ImageFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/ImageFieldDisplay.js +0 -38
- package/dist/crud/components/fields/display/LinkFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/LinkFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/LinkFieldDisplay.js +0 -47
- package/dist/crud/components/fields/display/MapFieldDisplay.d.ts +0 -25
- package/dist/crud/components/fields/display/MapFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/MapFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/MultiDropdownDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/MultiDropdownDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/MultiDropdownDisplay.js +0 -25
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/NumberFieldDisplay.d.ts +0 -24
- package/dist/crud/components/fields/display/NumberFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/NumberFieldDisplay.js +0 -29
- package/dist/crud/components/fields/display/PasswordFieldDisplay.d.ts +0 -24
- package/dist/crud/components/fields/display/PasswordFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/PasswordFieldDisplay.js +0 -31
- package/dist/crud/components/fields/display/PhoneNumberDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/PhoneNumberDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/PhoneNumberDisplay.js +0 -26
- package/dist/crud/components/fields/display/RadioFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/RadioFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/RadioFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/RangeFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/RangeFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/RangeFieldDisplay.js +0 -25
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.js +0 -26
- package/dist/crud/components/fields/display/RichTextDisplay.d.ts +0 -25
- package/dist/crud/components/fields/display/RichTextDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/RichTextDisplay.js +0 -104
- package/dist/crud/components/fields/display/TextAreaDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/TextAreaDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/TextAreaDisplay.js +0 -25
- package/dist/crud/components/fields/display/TextFieldDisplay.d.ts +0 -42
- package/dist/crud/components/fields/display/TextFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/TextFieldDisplay.js +0 -97
- package/dist/crud/components/fields/display/TimestampFieldDisplay.d.ts +0 -22
- package/dist/crud/components/fields/display/TimestampFieldDisplay.d.ts.map +0 -1
- package/dist/crud/components/fields/display/TimestampFieldDisplay.js +0 -33
- package/dist/crud/components/fields/display/index.d.ts +0 -32
- package/dist/crud/components/fields/display/index.d.ts.map +0 -1
- package/dist/crud/components/fields/display/index.js +0 -32
package/dist/dndev.css
CHANGED
|
@@ -2213,6 +2213,20 @@ em {
|
|
|
2213
2213
|
padding-inline-start: var(--gap-md);
|
|
2214
2214
|
}
|
|
2215
2215
|
|
|
2216
|
+
/* Bare mode - no visual chrome, used inside FloatingLabel or custom wrappers */
|
|
2217
|
+
|
|
2218
|
+
[data-bare] {
|
|
2219
|
+
border: none !important;
|
|
2220
|
+
box-shadow: none !important;
|
|
2221
|
+
background: transparent !important;
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
[data-bare]:hover,[data-bare]:focus,[data-bare]:focus-visible {
|
|
2225
|
+
border-color: transparent !important;
|
|
2226
|
+
box-shadow: none !important;
|
|
2227
|
+
outline: none !important;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2216
2230
|
/* Password strength bar height override */
|
|
2217
2231
|
|
|
2218
2232
|
.dndev-password-strength-bar {
|
|
@@ -3314,6 +3328,7 @@ em {
|
|
|
3314
3328
|
|
|
3315
3329
|
.dndev-collapsible-content[data-state='open'] {
|
|
3316
3330
|
animation: slideDown var(--dur-normal) var(--ease-in-out);
|
|
3331
|
+
overflow: visible; /* Allow dropdowns/overlays to escape when open */
|
|
3317
3332
|
}
|
|
3318
3333
|
|
|
3319
3334
|
.dndev-collapsible-content[data-state='closed'] {
|
|
@@ -4444,8 +4459,181 @@ em {
|
|
|
4444
4459
|
padding-block: var(--gap-lg);
|
|
4445
4460
|
}
|
|
4446
4461
|
|
|
4462
|
+
/* packages/components/src/advanced/ImageGallery/ImageGallery.css */
|
|
4463
|
+
|
|
4464
|
+
.image-gallery {
|
|
4465
|
+
display: flex;
|
|
4466
|
+
flex-direction: column;
|
|
4467
|
+
gap: var(--gap-md);
|
|
4468
|
+
outline: none;
|
|
4469
|
+
}
|
|
4470
|
+
|
|
4471
|
+
.image-gallery:focus-visible {
|
|
4472
|
+
outline: 2px solid var(--primary);
|
|
4473
|
+
outline-offset: 2px;
|
|
4474
|
+
border-radius: var(--radius-lg);
|
|
4475
|
+
}
|
|
4476
|
+
|
|
4477
|
+
/* Empty state */
|
|
4478
|
+
|
|
4479
|
+
.image-gallery--empty {
|
|
4480
|
+
display: flex;
|
|
4481
|
+
align-items: center;
|
|
4482
|
+
justify-content: center;
|
|
4483
|
+
background-color: var(--muted);
|
|
4484
|
+
border-radius: var(--radius-lg);
|
|
4485
|
+
}
|
|
4486
|
+
|
|
4487
|
+
.image-gallery__placeholder {
|
|
4488
|
+
color: var(--muted-foreground);
|
|
4489
|
+
font-size: var(--font-size-sm);
|
|
4490
|
+
}
|
|
4491
|
+
|
|
4492
|
+
/* Main image container */
|
|
4493
|
+
|
|
4494
|
+
.image-gallery__main {
|
|
4495
|
+
position: relative;
|
|
4496
|
+
width: 100%;
|
|
4497
|
+
overflow: hidden;
|
|
4498
|
+
border-radius: var(--radius-surface);
|
|
4499
|
+
background-color: var(--muted);
|
|
4500
|
+
}
|
|
4501
|
+
|
|
4502
|
+
.image-gallery__main-image {
|
|
4503
|
+
width: 100%;
|
|
4504
|
+
height: 100%;
|
|
4505
|
+
-o-object-fit: cover;
|
|
4506
|
+
object-fit: cover;
|
|
4507
|
+
display: block;
|
|
4508
|
+
position: relative;
|
|
4509
|
+
}
|
|
4510
|
+
|
|
4511
|
+
/* Navigation arrows */
|
|
4512
|
+
|
|
4513
|
+
.image-gallery__nav {
|
|
4514
|
+
position: absolute;
|
|
4515
|
+
top: 50%;
|
|
4516
|
+
transform: translateY(-50%);
|
|
4517
|
+
display: flex;
|
|
4518
|
+
align-items: center;
|
|
4519
|
+
justify-content: center;
|
|
4520
|
+
width: 44px;
|
|
4521
|
+
height: 44px;
|
|
4522
|
+
border: none;
|
|
4523
|
+
border-radius: var(--radius-full);
|
|
4524
|
+
background-color: var(--background);
|
|
4525
|
+
color: var(--foreground);
|
|
4526
|
+
cursor: pointer;
|
|
4527
|
+
opacity: 0;
|
|
4528
|
+
transition:
|
|
4529
|
+
opacity 0.2s ease,
|
|
4530
|
+
background-color 0.2s ease;
|
|
4531
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
4532
|
+
z-index: 2;
|
|
4533
|
+
}
|
|
4534
|
+
|
|
4535
|
+
.image-gallery__main:hover .image-gallery__nav,
|
|
4536
|
+
.image-gallery:focus-within .image-gallery__nav {
|
|
4537
|
+
opacity: 1;
|
|
4538
|
+
}
|
|
4539
|
+
|
|
4540
|
+
.image-gallery__nav:hover {
|
|
4541
|
+
background-color: var(--primary);
|
|
4542
|
+
color: var(--primary-foreground);
|
|
4543
|
+
}
|
|
4544
|
+
|
|
4545
|
+
.image-gallery__nav:focus-visible {
|
|
4546
|
+
opacity: 1;
|
|
4547
|
+
outline: 2px solid var(--primary);
|
|
4548
|
+
outline-offset: 2px;
|
|
4549
|
+
}
|
|
4550
|
+
|
|
4551
|
+
.image-gallery__nav--prev {
|
|
4552
|
+
inset-inline-start: var(--gap-md);
|
|
4553
|
+
}
|
|
4554
|
+
|
|
4555
|
+
.image-gallery__nav--next {
|
|
4556
|
+
inset-inline-end: var(--gap-md);
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
/* Thumbnails */
|
|
4560
|
+
|
|
4561
|
+
.image-gallery__thumbnails {
|
|
4562
|
+
display: flex;
|
|
4563
|
+
flex-wrap: wrap;
|
|
4564
|
+
gap: var(--gap-sm);
|
|
4565
|
+
}
|
|
4566
|
+
|
|
4567
|
+
.image-gallery__thumbnail {
|
|
4568
|
+
flex: 0 0 auto;
|
|
4569
|
+
width: 80px;
|
|
4570
|
+
height: 60px;
|
|
4571
|
+
padding: 0;
|
|
4572
|
+
border: 2px solid transparent;
|
|
4573
|
+
border-radius: var(--radius-surface);
|
|
4574
|
+
overflow: hidden;
|
|
4575
|
+
cursor: pointer;
|
|
4576
|
+
background: none;
|
|
4577
|
+
transition:
|
|
4578
|
+
border-color 0.2s ease,
|
|
4579
|
+
transform 0.2s ease;
|
|
4580
|
+
}
|
|
4581
|
+
|
|
4582
|
+
.image-gallery__thumbnail:hover {
|
|
4583
|
+
border-color: var(--muted-foreground);
|
|
4584
|
+
}
|
|
4585
|
+
|
|
4586
|
+
.image-gallery__thumbnail:focus-visible {
|
|
4587
|
+
outline: 2px solid var(--primary);
|
|
4588
|
+
outline-offset: 2px;
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4591
|
+
.image-gallery__thumbnail--selected {
|
|
4592
|
+
border-color: var(--primary);
|
|
4593
|
+
}
|
|
4594
|
+
|
|
4595
|
+
.image-gallery__thumbnail-image {
|
|
4596
|
+
width: 100%;
|
|
4597
|
+
height: 100%;
|
|
4598
|
+
-o-object-fit: cover;
|
|
4599
|
+
object-fit: cover;
|
|
4600
|
+
display: block;
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
/* Responsive adjustments */
|
|
4604
|
+
|
|
4605
|
+
@media (max-width: 640px) {
|
|
4606
|
+
.image-gallery__thumbnail {
|
|
4607
|
+
width: 60px;
|
|
4608
|
+
height: 45px;
|
|
4609
|
+
}
|
|
4610
|
+
|
|
4611
|
+
.image-gallery__nav {
|
|
4612
|
+
width: 36px;
|
|
4613
|
+
height: 36px;
|
|
4614
|
+
opacity: 0.8;
|
|
4615
|
+
}
|
|
4616
|
+
|
|
4617
|
+
.image-gallery__nav svg {
|
|
4618
|
+
width: 20px;
|
|
4619
|
+
height: 20px;
|
|
4620
|
+
}
|
|
4621
|
+
}
|
|
4622
|
+
|
|
4447
4623
|
/* packages/components/src/atomic/Input/Input.css */
|
|
4448
4624
|
|
|
4625
|
+
/* Hide number input spinners - cleaner UI for price/range inputs */
|
|
4626
|
+
|
|
4627
|
+
input[type='number']::-webkit-inner-spin-button,
|
|
4628
|
+
input[type='number']::-webkit-outer-spin-button {
|
|
4629
|
+
-webkit-appearance: none;
|
|
4630
|
+
margin: 0;
|
|
4631
|
+
}
|
|
4632
|
+
|
|
4633
|
+
input[type='number'] {
|
|
4634
|
+
-moz-appearance: textfield;
|
|
4635
|
+
}
|
|
4636
|
+
|
|
4449
4637
|
/* Input with leading icon (search, etc.) */
|
|
4450
4638
|
|
|
4451
4639
|
.dndev-input-with-leading-icon {
|
|
@@ -4655,6 +4843,9 @@ em {
|
|
|
4655
4843
|
background-color: transparent;
|
|
4656
4844
|
transition: all var(--dur-normal) var(--ease-in-out);
|
|
4657
4845
|
text-align: start;
|
|
4846
|
+
/* Flex-aware: allow fieldset to shrink in flex containers */
|
|
4847
|
+
min-width: 0;
|
|
4848
|
+
width: 100%;
|
|
4658
4849
|
}
|
|
4659
4850
|
|
|
4660
4851
|
.dndev-floating-fieldset:hover {
|
|
@@ -4663,7 +4854,6 @@ em {
|
|
|
4663
4854
|
|
|
4664
4855
|
.dndev-floating-fieldset:focus-within {
|
|
4665
4856
|
border-color: var(--ring);
|
|
4666
|
-
box-shadow: 0 0 0 2px var(--ring);
|
|
4667
4857
|
}
|
|
4668
4858
|
|
|
4669
4859
|
.dndev-floating-fieldset[data-disabled='true'] {
|
|
@@ -4680,6 +4870,11 @@ em {
|
|
|
4680
4870
|
font-weight: 500;
|
|
4681
4871
|
line-height: 1;
|
|
4682
4872
|
color: var(--foreground);
|
|
4873
|
+
/* Ellipsis by default */
|
|
4874
|
+
max-width: 100%;
|
|
4875
|
+
overflow: hidden;
|
|
4876
|
+
text-overflow: ellipsis;
|
|
4877
|
+
white-space: nowrap;
|
|
4683
4878
|
}
|
|
4684
4879
|
|
|
4685
4880
|
.dndev-floating-legend label {
|
|
@@ -4693,30 +4888,23 @@ em {
|
|
|
4693
4888
|
color: var(--muted-foreground);
|
|
4694
4889
|
}
|
|
4695
4890
|
|
|
4696
|
-
|
|
4697
|
-
max-width: calc(100% - var(--gap-md) * 2);
|
|
4698
|
-
overflow: hidden;
|
|
4699
|
-
text-overflow: ellipsis;
|
|
4700
|
-
white-space: nowrap;
|
|
4701
|
-
}
|
|
4702
|
-
|
|
4703
|
-
/* Remove border from inner input since fieldset has it */
|
|
4891
|
+
/* Disable truncation when explicitly set to false */
|
|
4704
4892
|
|
|
4705
|
-
.dndev-floating-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4893
|
+
.dndev-floating-legend[data-truncate='false'] {
|
|
4894
|
+
max-width: none;
|
|
4895
|
+
overflow: visible;
|
|
4896
|
+
text-overflow: clip;
|
|
4897
|
+
white-space: normal;
|
|
4709
4898
|
}
|
|
4710
4899
|
|
|
4711
|
-
|
|
4712
|
-
border-color: transparent;
|
|
4713
|
-
}
|
|
4900
|
+
/* Input inside fieldset uses bare mode via data-bare attribute (set by Input component) */
|
|
4714
4901
|
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4902
|
+
/* This rule is kept for non-Input children that might need border removal */
|
|
4903
|
+
|
|
4904
|
+
.dndev-floating-fieldset > .dndev-input:not([data-bare]) {
|
|
4905
|
+
border: none;
|
|
4718
4906
|
box-shadow: none;
|
|
4719
|
-
|
|
4907
|
+
background: transparent;
|
|
4720
4908
|
}
|
|
4721
4909
|
|
|
4722
4910
|
/* packages/components/src/atomic/List/List.css */
|
|
@@ -5067,11 +5255,33 @@ em {
|
|
|
5067
5255
|
/* packages/components/src/atomic/Pagination/Pagination.css */
|
|
5068
5256
|
|
|
5069
5257
|
.dndev-pagination {
|
|
5258
|
+
display: flex;
|
|
5259
|
+
flex-direction: row;
|
|
5260
|
+
align-items: center;
|
|
5261
|
+
justify-content: space-between;
|
|
5262
|
+
gap: var(--gap-md);
|
|
5263
|
+
width: 100%;
|
|
5264
|
+
}
|
|
5265
|
+
|
|
5266
|
+
.dndev-pagination-info {
|
|
5267
|
+
display: none;
|
|
5268
|
+
}
|
|
5269
|
+
|
|
5270
|
+
.dndev-pagination-size {
|
|
5271
|
+
display: flex;
|
|
5272
|
+
align-items: center;
|
|
5273
|
+
}
|
|
5274
|
+
|
|
5275
|
+
.dndev-pagination-size-label {
|
|
5276
|
+
display: none;
|
|
5277
|
+
}
|
|
5278
|
+
|
|
5279
|
+
.dndev-pagination-nav {
|
|
5070
5280
|
display: flex;
|
|
5071
5281
|
align-items: center;
|
|
5072
5282
|
justify-content: center;
|
|
5073
5283
|
gap: var(--gap-sm);
|
|
5074
|
-
|
|
5284
|
+
width: 100%;
|
|
5075
5285
|
}
|
|
5076
5286
|
|
|
5077
5287
|
.dndev-pagination-list {
|
|
@@ -5083,57 +5293,36 @@ em {
|
|
|
5083
5293
|
margin: 0;
|
|
5084
5294
|
}
|
|
5085
5295
|
|
|
5086
|
-
.dndev-pagination-item {
|
|
5087
|
-
display: flex;
|
|
5088
|
-
align-items: center;
|
|
5089
|
-
justify-content: center;
|
|
5090
|
-
}
|
|
5091
|
-
|
|
5092
5296
|
.dndev-pagination-button {
|
|
5093
|
-
|
|
5297
|
+
width: var(--touch-target);
|
|
5094
5298
|
height: var(--touch-target);
|
|
5095
|
-
|
|
5299
|
+
padding: 0;
|
|
5300
|
+
flex-shrink: 0;
|
|
5301
|
+
display: inline-flex;
|
|
5096
5302
|
align-items: center;
|
|
5097
5303
|
justify-content: center;
|
|
5098
|
-
gap: var(--gap-sm);
|
|
5099
|
-
border-radius: var(--radius-interactive);
|
|
5100
|
-
font-weight: 500;
|
|
5101
|
-
transition: var(--transition-fast);
|
|
5102
|
-
cursor: pointer;
|
|
5103
|
-
border: var(--border-hairline) solid var(--line-2);
|
|
5104
|
-
background: transparent;
|
|
5105
|
-
color: var(--foreground);
|
|
5106
|
-
padding: var(--gap-sm) var(--gap-md);
|
|
5107
5304
|
}
|
|
5108
5305
|
|
|
5109
|
-
|
|
5110
|
-
background: var(--accent);
|
|
5111
|
-
color: var(--accent-foreground);
|
|
5112
|
-
}
|
|
5306
|
+
/* Desktop: Show all elements in one row */
|
|
5113
5307
|
|
|
5114
|
-
|
|
5115
|
-
|
|
5116
|
-
|
|
5308
|
+
@media (min-width: 768px) {
|
|
5309
|
+
.dndev-pagination-info,
|
|
5310
|
+
.dndev-pagination-size {
|
|
5311
|
+
display: flex;
|
|
5312
|
+
align-items: center;
|
|
5313
|
+
white-space: nowrap;
|
|
5117
5314
|
}
|
|
5118
5315
|
|
|
5119
|
-
.dndev-pagination-
|
|
5120
|
-
|
|
5121
|
-
cursor: not-allowed;
|
|
5316
|
+
.dndev-pagination-size-label {
|
|
5317
|
+
margin-right: var(--gap-sm);
|
|
5122
5318
|
}
|
|
5123
5319
|
|
|
5124
|
-
.dndev-pagination-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5320
|
+
.dndev-pagination-nav {
|
|
5321
|
+
justify-content: flex-end;
|
|
5322
|
+
width: auto;
|
|
5323
|
+
margin-left: auto;
|
|
5324
|
+
/* Push to right */
|
|
5128
5325
|
}
|
|
5129
|
-
|
|
5130
|
-
.dndev-pagination-ellipsis {
|
|
5131
|
-
display: flex;
|
|
5132
|
-
align-items: center;
|
|
5133
|
-
justify-content: center;
|
|
5134
|
-
width: var(--touch-target);
|
|
5135
|
-
height: var(--touch-target);
|
|
5136
|
-
color: var(--muted-foreground);
|
|
5137
5326
|
}
|
|
5138
5327
|
|
|
5139
5328
|
/* packages/components/src/atomic/Popover/Popover.css */
|
|
@@ -5864,8 +6053,12 @@ em {
|
|
|
5864
6053
|
|
|
5865
6054
|
/* Adjust header padding when drag handle is present (sibling selector) */
|
|
5866
6055
|
|
|
5867
|
-
.dndev-sheet-content[data-side='bottom']
|
|
5868
|
-
.dndev-sheet-
|
|
6056
|
+
.dndev-sheet-content[data-side='bottom']
|
|
6057
|
+
.dndev-sheet-drag-handle
|
|
6058
|
+
~ .dndev-sheet-header,
|
|
6059
|
+
.dndev-sheet-content[data-side='top']
|
|
6060
|
+
.dndev-sheet-drag-handle
|
|
6061
|
+
~ .dndev-sheet-header {
|
|
5869
6062
|
padding-top: 0;
|
|
5870
6063
|
}
|
|
5871
6064
|
|
|
@@ -5923,12 +6116,9 @@ em {
|
|
|
5923
6116
|
position: relative;
|
|
5924
6117
|
margin-inline-start: auto;
|
|
5925
6118
|
/* Push to end (RTL-aware: end = right in LTR, left in RTL) */
|
|
6119
|
+
margin-inline-end: var(--gap-sm);
|
|
6120
|
+
/* Spacing from edge - use margin not padding to keep icon centered */
|
|
5926
6121
|
opacity: var(--opacity-muted);
|
|
5927
|
-
/* No padding - tight spacing */
|
|
5928
|
-
padding: 0;
|
|
5929
|
-
/* RTL-aware: padding on logical end only */
|
|
5930
|
-
padding-inline-end: var(--gap-md);
|
|
5931
|
-
padding-inline-start: 0;
|
|
5932
6122
|
}
|
|
5933
6123
|
|
|
5934
6124
|
.dndev-sheet-close:hover {
|
|
@@ -6713,7 +6903,21 @@ em {
|
|
|
6713
6903
|
}
|
|
6714
6904
|
|
|
6715
6905
|
.dndev-table-header {
|
|
6716
|
-
|
|
6906
|
+
background-color: var(--accent);
|
|
6907
|
+
}
|
|
6908
|
+
|
|
6909
|
+
/* Filter row above header */
|
|
6910
|
+
|
|
6911
|
+
.dndev-table-filter-row {
|
|
6912
|
+
border: 1px solid var(--border);
|
|
6913
|
+
border-bottom: none;
|
|
6914
|
+
}
|
|
6915
|
+
|
|
6916
|
+
.dndev-table-filter-row .dndev-table-head {
|
|
6917
|
+
background-color: var(--muted);
|
|
6918
|
+
padding: var(--gap-xs);
|
|
6919
|
+
height: auto;
|
|
6920
|
+
min-height: auto;
|
|
6717
6921
|
}
|
|
6718
6922
|
|
|
6719
6923
|
.dndev-table-body {
|
|
@@ -6775,22 +6979,34 @@ em {
|
|
|
6775
6979
|
padding-block: var(--gap-sm);
|
|
6776
6980
|
}
|
|
6777
6981
|
|
|
6778
|
-
|
|
6982
|
+
/* Header cells use accent foreground for contrast */
|
|
6983
|
+
|
|
6984
|
+
.dndev-table-header .dndev-table-head {
|
|
6985
|
+
color: var(--accent-foreground);
|
|
6986
|
+
}
|
|
6987
|
+
|
|
6988
|
+
[data-sortable='true']:is(.dndev-table-header .dndev-table-head) {
|
|
6779
6989
|
cursor: pointer;
|
|
6780
6990
|
}
|
|
6781
6991
|
|
|
6782
|
-
|
|
6992
|
+
[data-align='center']:is(.dndev-table-header .dndev-table-head) {
|
|
6783
6993
|
text-align: center;
|
|
6784
6994
|
}
|
|
6785
6995
|
|
|
6786
|
-
|
|
6996
|
+
[data-align='end']:is(.dndev-table-header .dndev-table-head) {
|
|
6787
6997
|
text-align: end;
|
|
6788
6998
|
}
|
|
6789
6999
|
|
|
6790
|
-
|
|
7000
|
+
[data-align='start']:is(.dndev-table-header .dndev-table-head) {
|
|
6791
7001
|
text-align: start;
|
|
6792
7002
|
}
|
|
6793
7003
|
|
|
7004
|
+
/* Active filter indicator */
|
|
7005
|
+
|
|
7006
|
+
.dndev-table-filter-active {
|
|
7007
|
+
color: var(--primary);
|
|
7008
|
+
}
|
|
7009
|
+
|
|
6794
7010
|
/* Table cell (td) styles */
|
|
6795
7011
|
|
|
6796
7012
|
.dndev-table-cell {
|
|
@@ -6798,6 +7014,7 @@ em {
|
|
|
6798
7014
|
padding-inline: var(--gap-md);
|
|
6799
7015
|
padding-block: var(--gap-sm);
|
|
6800
7016
|
min-height: var(--touch-target);
|
|
7017
|
+
line-height: 1.5; /* Ensure consistent line height for empty cells */
|
|
6801
7018
|
}
|
|
6802
7019
|
|
|
6803
7020
|
.dndev-table-cell[data-align='center'] {
|
|
@@ -6876,6 +7093,64 @@ em {
|
|
|
6876
7093
|
padding-inline-start: calc(var(--gap-md) + var(--icon-md) + var(--gap-sm));
|
|
6877
7094
|
}
|
|
6878
7095
|
|
|
7096
|
+
/* Skeleton rows - apply standard skeleton pulse animation to entire rows */
|
|
7097
|
+
|
|
7098
|
+
/* Keep existing background colors (zebra striping) - just add opacity pulse */
|
|
7099
|
+
|
|
7100
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row {
|
|
7101
|
+
animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
7102
|
+
pointer-events: none;
|
|
7103
|
+
|
|
7104
|
+
/* Keep hover state but disabled (pointer-events: none prevents hover) */
|
|
7105
|
+
}
|
|
7106
|
+
|
|
7107
|
+
:is(.dndev-table-body .dndev-table-row.dndev-skeleton-row):hover {
|
|
7108
|
+
/* Inherit from parent .dndev-table-row hover styles */
|
|
7109
|
+
}
|
|
7110
|
+
|
|
7111
|
+
/* Even rows keep their var(--muted) background, just pulse */
|
|
7112
|
+
|
|
7113
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even) {
|
|
7114
|
+
animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
7115
|
+
}
|
|
7116
|
+
|
|
7117
|
+
:is(.dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even)):hover {
|
|
7118
|
+
/* Inherit from parent .dndev-table-row:nth-child(even) hover styles */
|
|
7119
|
+
}
|
|
7120
|
+
|
|
7121
|
+
/* Skeleton bars inside cells - adapt to row background for visibility */
|
|
7122
|
+
|
|
7123
|
+
/* Odd rows (transparent background): use default var(--muted) skeleton */
|
|
7124
|
+
|
|
7125
|
+
/* Even rows (var(--muted) background): use lighter skeleton for contrast */
|
|
7126
|
+
|
|
7127
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row .dndev-skeleton {
|
|
7128
|
+
background-color: var(--muted);
|
|
7129
|
+
}
|
|
7130
|
+
|
|
7131
|
+
.dndev-table-body
|
|
7132
|
+
.dndev-table-row.dndev-skeleton-row:nth-child(even)
|
|
7133
|
+
.dndev-skeleton {
|
|
7134
|
+
/* Even rows have var(--muted) background, so skeleton should be lighter for contrast */
|
|
7135
|
+
background-color: color-mix(
|
|
7136
|
+
in oklab,
|
|
7137
|
+
var(--muted) 60%,
|
|
7138
|
+
var(--foreground) 40%
|
|
7139
|
+
);
|
|
7140
|
+
}
|
|
7141
|
+
|
|
7142
|
+
/* Use the same pulse animation as standard skeleton (from Skeleton.css) */
|
|
7143
|
+
|
|
7144
|
+
@keyframes dndev-pulse {
|
|
7145
|
+
0%,
|
|
7146
|
+
100% {
|
|
7147
|
+
opacity: 1;
|
|
7148
|
+
}
|
|
7149
|
+
50% {
|
|
7150
|
+
opacity: var(--opacity-muted);
|
|
7151
|
+
}
|
|
7152
|
+
}
|
|
7153
|
+
|
|
6879
7154
|
/* packages/components/src/atomic/Tabs/Tabs.css */
|
|
6880
7155
|
|
|
6881
7156
|
/* Tabs list: use flexbox for natural wrapping, not grid */
|
|
@@ -7246,6 +7521,24 @@ em {
|
|
|
7246
7521
|
font-size: var(--font-size-sm);
|
|
7247
7522
|
}
|
|
7248
7523
|
|
|
7524
|
+
/* Font weight overrides (after level rules, so weight prop overrides level defaults) */
|
|
7525
|
+
|
|
7526
|
+
.dndev-text-base[data-font-weight='normal'] {
|
|
7527
|
+
font-weight: var(--font-weight-normal);
|
|
7528
|
+
}
|
|
7529
|
+
|
|
7530
|
+
.dndev-text-base[data-font-weight='medium'] {
|
|
7531
|
+
font-weight: var(--font-weight-medium);
|
|
7532
|
+
}
|
|
7533
|
+
|
|
7534
|
+
.dndev-text-base[data-font-weight='semibold'] {
|
|
7535
|
+
font-weight: var(--font-weight-semibold);
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7538
|
+
.dndev-text-base[data-font-weight='bold'] {
|
|
7539
|
+
font-weight: var(--font-weight-bold);
|
|
7540
|
+
}
|
|
7541
|
+
|
|
7249
7542
|
/* packages/components/src/atomic/Toaster/Toaster.css */
|
|
7250
7543
|
|
|
7251
7544
|
.dndev-toast-viewport {
|
|
@@ -8815,6 +9108,7 @@ h4[data-variant='code'] {
|
|
|
8815
9108
|
from {
|
|
8816
9109
|
opacity: 1;
|
|
8817
9110
|
}
|
|
9111
|
+
|
|
8818
9112
|
to {
|
|
8819
9113
|
opacity: 0;
|
|
8820
9114
|
}
|
|
@@ -8824,6 +9118,7 @@ h4[data-variant='code'] {
|
|
|
8824
9118
|
from {
|
|
8825
9119
|
opacity: 0;
|
|
8826
9120
|
}
|
|
9121
|
+
|
|
8827
9122
|
to {
|
|
8828
9123
|
opacity: 1;
|
|
8829
9124
|
}
|
|
@@ -8836,6 +9131,7 @@ h4[data-variant='code'] {
|
|
|
8836
9131
|
opacity: 1;
|
|
8837
9132
|
transform: translateX(0);
|
|
8838
9133
|
}
|
|
9134
|
+
|
|
8839
9135
|
to {
|
|
8840
9136
|
opacity: 0;
|
|
8841
9137
|
transform: translateX(-100%);
|
|
@@ -8847,6 +9143,7 @@ h4[data-variant='code'] {
|
|
|
8847
9143
|
opacity: 0;
|
|
8848
9144
|
transform: translateX(100%);
|
|
8849
9145
|
}
|
|
9146
|
+
|
|
8850
9147
|
to {
|
|
8851
9148
|
opacity: 1;
|
|
8852
9149
|
transform: translateX(0);
|
|
@@ -8921,7 +9218,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8921
9218
|
|
|
8922
9219
|
/* Tablet (768px - 1023px) */
|
|
8923
9220
|
|
|
8924
|
-
@media (width >=
|
|
9221
|
+
@media (width >=768px) and (width <=1023px) {
|
|
8925
9222
|
main[role='main'][data-routing-animation='fade'] {
|
|
8926
9223
|
animation: routeFadeIn
|
|
8927
9224
|
var(--routing-tablet-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8937,7 +9234,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8937
9234
|
|
|
8938
9235
|
/* Desktop (1024px - 1439px) */
|
|
8939
9236
|
|
|
8940
|
-
@media (width >=
|
|
9237
|
+
@media (width >=1024px) and (width <=1439px) {
|
|
8941
9238
|
main[role='main'][data-routing-animation='fade'] {
|
|
8942
9239
|
animation: routeFadeIn
|
|
8943
9240
|
var(--routing-desktop-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8953,7 +9250,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8953
9250
|
|
|
8954
9251
|
/* Wide (>= 1440px) */
|
|
8955
9252
|
|
|
8956
|
-
@media (width >=
|
|
9253
|
+
@media (width >=1440px) {
|
|
8957
9254
|
main[role='main'][data-routing-animation='fade'] {
|
|
8958
9255
|
animation: routeFadeIn
|
|
8959
9256
|
var(--routing-wide-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8986,7 +9283,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8986
9283
|
|
|
8987
9284
|
/* Mobile/Tablet: Hide sidebars - WCAG & Lighthouse best practices */
|
|
8988
9285
|
|
|
8989
|
-
@media (width <=
|
|
9286
|
+
@media (width <=1023px) {
|
|
8990
9287
|
.dndev-layout aside[role='navigation'].sidebar,
|
|
8991
9288
|
aside[role='navigation'].sidebar {
|
|
8992
9289
|
display: none !important;
|
|
@@ -9016,59 +9313,55 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9016
9313
|
);
|
|
9017
9314
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
9018
9315
|
|
|
9019
|
-
/* Mobile:
|
|
9020
|
-
/* When mergedBar is shown, header is hidden but grid still needs space for mergedBar */
|
|
9316
|
+
/* Mobile: Grid scrolls instead of main - footer scrolls with content */
|
|
9021
9317
|
}
|
|
9022
9318
|
|
|
9023
|
-
@media (width <=
|
|
9319
|
+
@media (width <=1023px) {
|
|
9024
9320
|
|
|
9025
9321
|
.dndev-layout {
|
|
9322
|
+
overflow-y: auto;
|
|
9323
|
+
overflow-x: hidden;
|
|
9324
|
+
/* Keep footer row - grid scrolls so footer scrolls with content */
|
|
9026
9325
|
grid-template-areas:
|
|
9027
9326
|
'header header'
|
|
9028
|
-
'sidebar main'
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
/* Presets with mergedBar: header is hidden, but grid still allocates space for mergedBar */
|
|
9032
|
-
/* No extra padding needed - grid spacing is sufficient */
|
|
9327
|
+
'sidebar main'
|
|
9328
|
+
'footer footer';
|
|
9329
|
+
grid-template-rows: var(--header-height) min-content auto;
|
|
9033
9330
|
}
|
|
9034
|
-
.dndev-layout[data-layout='admin'],.dndev-layout[data-layout='moolti'],.dndev-layout[data-layout='game'],.dndev-layout[data-layout='docs'] {
|
|
9035
|
-
/* Grid already accounts for header-height, mergedBar is fixed and doesn't need extra padding */
|
|
9036
|
-
}
|
|
9037
9331
|
}
|
|
9038
9332
|
|
|
9039
|
-
/* Footer
|
|
9333
|
+
/* Footer scroll mode - grid scrolls, footer scrolls with content (opt-in for desktop) */
|
|
9040
9334
|
|
|
9041
|
-
.footer-
|
|
9042
|
-
|
|
9043
|
-
|
|
9044
|
-
|
|
9335
|
+
.dndev-layout[data-footer-mode='scroll'] {
|
|
9336
|
+
overflow-y: auto;
|
|
9337
|
+
overflow-x: hidden;
|
|
9338
|
+
grid-template-rows: var(--header-height) min-content auto;
|
|
9045
9339
|
}
|
|
9046
9340
|
|
|
9047
|
-
.footer-
|
|
9048
|
-
|
|
9341
|
+
.dndev-layout[data-footer-mode='scroll'] header[role='banner'] {
|
|
9342
|
+
position: sticky;
|
|
9343
|
+
top: 0;
|
|
9049
9344
|
}
|
|
9050
9345
|
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9346
|
+
.dndev-layout[data-footer-mode='scroll'] main[role='main'] {
|
|
9347
|
+
overflow: visible;
|
|
9348
|
+
min-height: -moz-min-content;
|
|
9349
|
+
min-height: min-content;
|
|
9350
|
+
}
|
|
9055
9351
|
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9352
|
+
.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo'] {
|
|
9353
|
+
height: auto;
|
|
9354
|
+
}
|
|
9059
9355
|
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9356
|
+
:is(.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo']) > * {
|
|
9357
|
+
height: auto;
|
|
9358
|
+
min-height: var(--footer-height);
|
|
9063
9359
|
}
|
|
9064
|
-
}
|
|
9065
9360
|
|
|
9066
9361
|
/* Presets with no footer at all */
|
|
9067
9362
|
|
|
9068
|
-
[data-layout='moolti']
|
|
9069
|
-
[data-layout='
|
|
9070
|
-
[data-layout='plain'] .footer-mobile,
|
|
9071
|
-
[data-layout='plain'] .footer-desktop {
|
|
9363
|
+
[data-layout='moolti'] footer[role='contentinfo'],
|
|
9364
|
+
[data-layout='plain'] footer[role='contentinfo'] {
|
|
9072
9365
|
display: none;
|
|
9073
9366
|
}
|
|
9074
9367
|
|
|
@@ -9106,8 +9399,18 @@ header[role='banner'] {
|
|
|
9106
9399
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
9107
9400
|
background: var(--background);
|
|
9108
9401
|
border-bottom: var(--border-hairline) solid var(--border);
|
|
9402
|
+
|
|
9403
|
+
/* Mobile: Sticky header (for presets that keep header visible) */
|
|
9109
9404
|
}
|
|
9110
9405
|
|
|
9406
|
+
@media (width <=1023px) {
|
|
9407
|
+
|
|
9408
|
+
header[role='banner'] {
|
|
9409
|
+
position: sticky;
|
|
9410
|
+
top: 0;
|
|
9411
|
+
}
|
|
9412
|
+
}
|
|
9413
|
+
|
|
9111
9414
|
.header-start {
|
|
9112
9415
|
display: flex;
|
|
9113
9416
|
align-items: center;
|
|
@@ -9161,19 +9464,20 @@ header[role='banner'] .header-center {
|
|
|
9161
9464
|
aside[role='navigation'].sidebar {
|
|
9162
9465
|
grid-area: sidebar;
|
|
9163
9466
|
box-sizing: border-box;
|
|
9164
|
-
min-width: calc(
|
|
9165
|
-
|
|
9166
|
-
|
|
9167
|
-
|
|
9168
|
-
var(--sidebar-resize-handle-width) + 400px
|
|
9169
|
-
); /* Max: 400px content + 6px handle = 406px */
|
|
9467
|
+
min-width: calc(var(--sidebar-resize-handle-width) + 48px);
|
|
9468
|
+
/* Min: 48px content + 6px handle = 54px */
|
|
9469
|
+
max-width: calc(var(--sidebar-resize-handle-width) + 400px);
|
|
9470
|
+
/* Max: 400px content + 6px handle = 406px */
|
|
9170
9471
|
z-index: var(--z-sidebar);
|
|
9171
|
-
overflow: none;
|
|
9472
|
+
overflow: none;
|
|
9473
|
+
/* No clipping needed - handle is in grid */
|
|
9172
9474
|
contain: layout style;
|
|
9173
9475
|
padding: 0;
|
|
9174
9476
|
display: grid;
|
|
9175
|
-
grid-template-columns: auto var(--sidebar-resize-handle-width);
|
|
9176
|
-
|
|
9477
|
+
grid-template-columns: auto var(--sidebar-resize-handle-width);
|
|
9478
|
+
/* Content | Handle - column 1 width set inline */
|
|
9479
|
+
grid-template-rows: auto 1fr auto;
|
|
9480
|
+
/* Top | Content | Bottom */
|
|
9177
9481
|
height: 100%;
|
|
9178
9482
|
|
|
9179
9483
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
@@ -9228,7 +9532,8 @@ aside[role='navigation'].sidebar[data-dragging='true']
|
|
|
9228
9532
|
|
|
9229
9533
|
@media (hover: none) {
|
|
9230
9534
|
aside[role='navigation'].sidebar .dndev-sidebar-resize-handle {
|
|
9231
|
-
width: calc(var(--sidebar-resize-handle-width) * 2);
|
|
9535
|
+
width: calc(var(--sidebar-resize-handle-width) * 2);
|
|
9536
|
+
/* 12px for touch */
|
|
9232
9537
|
}
|
|
9233
9538
|
}
|
|
9234
9539
|
|
|
@@ -9297,7 +9602,8 @@ aside[role='navigation'].sidebar[data-dragging='true']
|
|
|
9297
9602
|
.sidebar-content .dndev-interactive[data-role='menu-item'],.sidebar-content .dndev-interactive[data-role='nav-trigger'] {
|
|
9298
9603
|
height: var(--touch-target);
|
|
9299
9604
|
min-height: var(--touch-target);
|
|
9300
|
-
padding-block: 0;
|
|
9605
|
+
padding-block: 0;
|
|
9606
|
+
/* No vertical padding - buttons fill exact 48px */
|
|
9301
9607
|
}
|
|
9302
9608
|
|
|
9303
9609
|
/* Other interactive elements (not menu items) - consistent padding */
|
|
@@ -9337,7 +9643,8 @@ aside.sidebar[role='navigation'] .sidebar-top,aside.sidebar[role='navigation'] .
|
|
|
9337
9643
|
}
|
|
9338
9644
|
|
|
9339
9645
|
aside.sidebar[role='navigation'] .sidebar-content {
|
|
9340
|
-
overflow-x: hidden;
|
|
9646
|
+
overflow-x: hidden;
|
|
9647
|
+
/* Prevent horizontal scroll, allow vertical */
|
|
9341
9648
|
}
|
|
9342
9649
|
|
|
9343
9650
|
aside.sidebar[role='navigation'] .dndev-interactive {
|
|
@@ -9402,12 +9709,9 @@ aside.sidebar[role='navigation'][data-collapsed='true'] .app-branding {
|
|
|
9402
9709
|
main[role='main'] {
|
|
9403
9710
|
grid-area: main;
|
|
9404
9711
|
overflow-y: auto;
|
|
9405
|
-
/* Default: allow scrolling */
|
|
9406
9712
|
overflow-x: hidden;
|
|
9407
|
-
/* Prevent horizontal scroll from breakthrough components */
|
|
9408
9713
|
display: flex;
|
|
9409
9714
|
flex-direction: column;
|
|
9410
|
-
/* No automatic padding; spacing handled by gaps */
|
|
9411
9715
|
padding: 0;
|
|
9412
9716
|
contain: layout style;
|
|
9413
9717
|
|
|
@@ -9416,19 +9720,18 @@ main[role='main'] {
|
|
|
9416
9720
|
|
|
9417
9721
|
main[role='main'] > *:not(.breadcrumbs-container):first-of-type,main[role='main'] > .breadcrumbs-container + * {
|
|
9418
9722
|
flex: 1 1 auto;
|
|
9419
|
-
/* Page content grows */
|
|
9420
9723
|
}
|
|
9421
9724
|
|
|
9422
|
-
/*
|
|
9725
|
+
/* Mobile: Grid scrolls, main doesn't */
|
|
9423
9726
|
|
|
9424
|
-
@media (width
|
|
9425
|
-
main[role='main'] > *:last-child {
|
|
9426
|
-
flex-shrink: 0;
|
|
9427
|
-
/* Footer stays at bottom */
|
|
9428
|
-
}
|
|
9429
|
-
}
|
|
9727
|
+
@media (width <=1023px) {
|
|
9430
9728
|
|
|
9431
|
-
|
|
9729
|
+
main[role='main'] {
|
|
9730
|
+
overflow: visible;
|
|
9731
|
+
min-height: -moz-min-content;
|
|
9732
|
+
min-height: min-content;
|
|
9733
|
+
}
|
|
9734
|
+
}
|
|
9432
9735
|
|
|
9433
9736
|
/* Footer: Full width by default, app presets start after sidebar */
|
|
9434
9737
|
|
|
@@ -9462,11 +9765,25 @@ footer[role='contentinfo'] > * {
|
|
|
9462
9765
|
padding-inline-end: var(--content-padding);
|
|
9463
9766
|
}
|
|
9464
9767
|
|
|
9768
|
+
/* Mobile: Allow footer to grow when content wraps */
|
|
9769
|
+
|
|
9770
|
+
@media (width <=1023px) {
|
|
9771
|
+
|
|
9772
|
+
footer[role='contentinfo'] {
|
|
9773
|
+
height: auto;
|
|
9774
|
+
}
|
|
9775
|
+
|
|
9776
|
+
footer[role='contentinfo'] > * {
|
|
9777
|
+
height: auto;
|
|
9778
|
+
min-height: var(--footer-height);
|
|
9779
|
+
}
|
|
9780
|
+
}
|
|
9781
|
+
|
|
9465
9782
|
/* Footer text styles */
|
|
9466
9783
|
|
|
9467
9784
|
footer[role='contentinfo'] .footer-copyright {
|
|
9468
9785
|
color: var(--muted-foreground);
|
|
9469
|
-
font-size: var(--font-size-
|
|
9786
|
+
font-size: var(--font-size-xs);
|
|
9470
9787
|
}
|
|
9471
9788
|
|
|
9472
9789
|
footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
@@ -9536,7 +9853,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9536
9853
|
|
|
9537
9854
|
/* Mobile (<1024px): Show merged-bar, hide zones */
|
|
9538
9855
|
|
|
9539
|
-
@media (width <=
|
|
9856
|
+
@media (width <=1023px) {
|
|
9540
9857
|
/* Presets with mergedBar: top (admin, moolti, game, docs) */
|
|
9541
9858
|
[data-layout='admin'] .merged-bar[data-position='top'],
|
|
9542
9859
|
[data-layout='moolti'] .merged-bar[data-position='top'],
|
|
@@ -9576,7 +9893,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9576
9893
|
|
|
9577
9894
|
/* Desktop (>=1024px): Always hide merged-bar */
|
|
9578
9895
|
|
|
9579
|
-
@media (width >=
|
|
9896
|
+
@media (width >=1024px) {
|
|
9580
9897
|
.merged-bar {
|
|
9581
9898
|
display: none !important;
|
|
9582
9899
|
}
|
|
@@ -9600,7 +9917,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9600
9917
|
/* Admin: Mobile/Tablet (<1024px) - only overrides */
|
|
9601
9918
|
}
|
|
9602
9919
|
|
|
9603
|
-
@media (width <=
|
|
9920
|
+
@media (width <=1023px) {
|
|
9604
9921
|
|
|
9605
9922
|
[data-layout='admin'] {
|
|
9606
9923
|
--sidebar-width: 0px;
|
|
@@ -9631,7 +9948,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9631
9948
|
|
|
9632
9949
|
/* Moolti: Mobile/Tablet (<1024px) - only overrides */
|
|
9633
9950
|
|
|
9634
|
-
@media (width <=
|
|
9951
|
+
@media (width <=1023px) {
|
|
9635
9952
|
|
|
9636
9953
|
[data-layout='moolti'] {
|
|
9637
9954
|
--header-height: 62px;
|
|
@@ -9658,7 +9975,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9658
9975
|
|
|
9659
9976
|
/* Docs: Mobile/Tablet (<1024px) - only overrides */
|
|
9660
9977
|
|
|
9661
|
-
@media (width <=
|
|
9978
|
+
@media (width <=1023px) {
|
|
9662
9979
|
|
|
9663
9980
|
[data-layout='docs'] {
|
|
9664
9981
|
--sidebar-width: 0px;
|
|
@@ -9684,7 +10001,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9684
10001
|
/* Blog: Mobile/Tablet (<1024px) - only overrides */
|
|
9685
10002
|
}
|
|
9686
10003
|
|
|
9687
|
-
@media (width <=
|
|
10004
|
+
@media (width <=1023px) {
|
|
9688
10005
|
|
|
9689
10006
|
[data-layout='blog'] {
|
|
9690
10007
|
--header-height: 0px;
|
|
@@ -9734,7 +10051,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9734
10051
|
/* Game: Mobile/Tablet (<1024px) - only overrides */
|
|
9735
10052
|
}
|
|
9736
10053
|
|
|
9737
|
-
@media (width <=
|
|
10054
|
+
@media (width <=1023px) {
|
|
9738
10055
|
|
|
9739
10056
|
[data-layout='game'] {
|
|
9740
10057
|
--footer-height: 0px;
|
|
@@ -9855,7 +10172,14 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9855
10172
|
padding-top: var(--gap-lg);
|
|
9856
10173
|
}
|
|
9857
10174
|
|
|
10175
|
+
/* First Section child gets gap-md spacing from top */
|
|
10176
|
+
|
|
10177
|
+
.dndev-container > .dndev-section-full-width:first-child {
|
|
10178
|
+
margin-top: var(--gap-md);
|
|
10179
|
+
}
|
|
10180
|
+
|
|
9858
10181
|
.dndev-container {
|
|
10182
|
+
|
|
9859
10183
|
min-height: 0;
|
|
9860
10184
|
display: flex;
|
|
9861
10185
|
flex-direction: column;
|
|
@@ -9890,7 +10214,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9890
10214
|
--max-content-width: 100%;
|
|
9891
10215
|
}
|
|
9892
10216
|
|
|
9893
|
-
@media (width >=
|
|
10217
|
+
@media (width >=1024px) {
|
|
9894
10218
|
|
|
9895
10219
|
.dndev-container[data-variant='standard'] {
|
|
9896
10220
|
--max-content-width: 87.5rem;
|
|
@@ -9905,7 +10229,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9905
10229
|
--max-content-width: 100%;
|
|
9906
10230
|
}
|
|
9907
10231
|
|
|
9908
|
-
@media (width >=
|
|
10232
|
+
@media (width >=1024px) {
|
|
9909
10233
|
|
|
9910
10234
|
.dndev-container[data-variant='docs'] {
|
|
9911
10235
|
--max-content-width: 56.25rem;
|