@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/styles/index.css
CHANGED
|
@@ -2209,6 +2209,20 @@ em {
|
|
|
2209
2209
|
padding-inline-start: var(--gap-md);
|
|
2210
2210
|
}
|
|
2211
2211
|
|
|
2212
|
+
/* Bare mode - no visual chrome, used inside FloatingLabel or custom wrappers */
|
|
2213
|
+
|
|
2214
|
+
[data-bare] {
|
|
2215
|
+
border: none !important;
|
|
2216
|
+
box-shadow: none !important;
|
|
2217
|
+
background: transparent !important;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
[data-bare]:hover,[data-bare]:focus,[data-bare]:focus-visible {
|
|
2221
|
+
border-color: transparent !important;
|
|
2222
|
+
box-shadow: none !important;
|
|
2223
|
+
outline: none !important;
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2212
2226
|
/* Password strength bar height override */
|
|
2213
2227
|
|
|
2214
2228
|
.dndev-password-strength-bar {
|
|
@@ -3310,6 +3324,7 @@ em {
|
|
|
3310
3324
|
|
|
3311
3325
|
.dndev-collapsible-content[data-state='open'] {
|
|
3312
3326
|
animation: slideDown var(--dur-normal) var(--ease-in-out);
|
|
3327
|
+
overflow: visible; /* Allow dropdowns/overlays to escape when open */
|
|
3313
3328
|
}
|
|
3314
3329
|
|
|
3315
3330
|
.dndev-collapsible-content[data-state='closed'] {
|
|
@@ -4440,8 +4455,181 @@ em {
|
|
|
4440
4455
|
padding-block: var(--gap-lg);
|
|
4441
4456
|
}
|
|
4442
4457
|
|
|
4458
|
+
/* packages/components/src/advanced/ImageGallery/ImageGallery.css */
|
|
4459
|
+
|
|
4460
|
+
.image-gallery {
|
|
4461
|
+
display: flex;
|
|
4462
|
+
flex-direction: column;
|
|
4463
|
+
gap: var(--gap-md);
|
|
4464
|
+
outline: none;
|
|
4465
|
+
}
|
|
4466
|
+
|
|
4467
|
+
.image-gallery:focus-visible {
|
|
4468
|
+
outline: 2px solid var(--primary);
|
|
4469
|
+
outline-offset: 2px;
|
|
4470
|
+
border-radius: var(--radius-lg);
|
|
4471
|
+
}
|
|
4472
|
+
|
|
4473
|
+
/* Empty state */
|
|
4474
|
+
|
|
4475
|
+
.image-gallery--empty {
|
|
4476
|
+
display: flex;
|
|
4477
|
+
align-items: center;
|
|
4478
|
+
justify-content: center;
|
|
4479
|
+
background-color: var(--muted);
|
|
4480
|
+
border-radius: var(--radius-lg);
|
|
4481
|
+
}
|
|
4482
|
+
|
|
4483
|
+
.image-gallery__placeholder {
|
|
4484
|
+
color: var(--muted-foreground);
|
|
4485
|
+
font-size: var(--font-size-sm);
|
|
4486
|
+
}
|
|
4487
|
+
|
|
4488
|
+
/* Main image container */
|
|
4489
|
+
|
|
4490
|
+
.image-gallery__main {
|
|
4491
|
+
position: relative;
|
|
4492
|
+
width: 100%;
|
|
4493
|
+
overflow: hidden;
|
|
4494
|
+
border-radius: var(--radius-surface);
|
|
4495
|
+
background-color: var(--muted);
|
|
4496
|
+
}
|
|
4497
|
+
|
|
4498
|
+
.image-gallery__main-image {
|
|
4499
|
+
width: 100%;
|
|
4500
|
+
height: 100%;
|
|
4501
|
+
-o-object-fit: cover;
|
|
4502
|
+
object-fit: cover;
|
|
4503
|
+
display: block;
|
|
4504
|
+
position: relative;
|
|
4505
|
+
}
|
|
4506
|
+
|
|
4507
|
+
/* Navigation arrows */
|
|
4508
|
+
|
|
4509
|
+
.image-gallery__nav {
|
|
4510
|
+
position: absolute;
|
|
4511
|
+
top: 50%;
|
|
4512
|
+
transform: translateY(-50%);
|
|
4513
|
+
display: flex;
|
|
4514
|
+
align-items: center;
|
|
4515
|
+
justify-content: center;
|
|
4516
|
+
width: 44px;
|
|
4517
|
+
height: 44px;
|
|
4518
|
+
border: none;
|
|
4519
|
+
border-radius: var(--radius-full);
|
|
4520
|
+
background-color: var(--background);
|
|
4521
|
+
color: var(--foreground);
|
|
4522
|
+
cursor: pointer;
|
|
4523
|
+
opacity: 0;
|
|
4524
|
+
transition:
|
|
4525
|
+
opacity 0.2s ease,
|
|
4526
|
+
background-color 0.2s ease;
|
|
4527
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
4528
|
+
z-index: 2;
|
|
4529
|
+
}
|
|
4530
|
+
|
|
4531
|
+
.image-gallery__main:hover .image-gallery__nav,
|
|
4532
|
+
.image-gallery:focus-within .image-gallery__nav {
|
|
4533
|
+
opacity: 1;
|
|
4534
|
+
}
|
|
4535
|
+
|
|
4536
|
+
.image-gallery__nav:hover {
|
|
4537
|
+
background-color: var(--primary);
|
|
4538
|
+
color: var(--primary-foreground);
|
|
4539
|
+
}
|
|
4540
|
+
|
|
4541
|
+
.image-gallery__nav:focus-visible {
|
|
4542
|
+
opacity: 1;
|
|
4543
|
+
outline: 2px solid var(--primary);
|
|
4544
|
+
outline-offset: 2px;
|
|
4545
|
+
}
|
|
4546
|
+
|
|
4547
|
+
.image-gallery__nav--prev {
|
|
4548
|
+
inset-inline-start: var(--gap-md);
|
|
4549
|
+
}
|
|
4550
|
+
|
|
4551
|
+
.image-gallery__nav--next {
|
|
4552
|
+
inset-inline-end: var(--gap-md);
|
|
4553
|
+
}
|
|
4554
|
+
|
|
4555
|
+
/* Thumbnails */
|
|
4556
|
+
|
|
4557
|
+
.image-gallery__thumbnails {
|
|
4558
|
+
display: flex;
|
|
4559
|
+
flex-wrap: wrap;
|
|
4560
|
+
gap: var(--gap-sm);
|
|
4561
|
+
}
|
|
4562
|
+
|
|
4563
|
+
.image-gallery__thumbnail {
|
|
4564
|
+
flex: 0 0 auto;
|
|
4565
|
+
width: 80px;
|
|
4566
|
+
height: 60px;
|
|
4567
|
+
padding: 0;
|
|
4568
|
+
border: 2px solid transparent;
|
|
4569
|
+
border-radius: var(--radius-surface);
|
|
4570
|
+
overflow: hidden;
|
|
4571
|
+
cursor: pointer;
|
|
4572
|
+
background: none;
|
|
4573
|
+
transition:
|
|
4574
|
+
border-color 0.2s ease,
|
|
4575
|
+
transform 0.2s ease;
|
|
4576
|
+
}
|
|
4577
|
+
|
|
4578
|
+
.image-gallery__thumbnail:hover {
|
|
4579
|
+
border-color: var(--muted-foreground);
|
|
4580
|
+
}
|
|
4581
|
+
|
|
4582
|
+
.image-gallery__thumbnail:focus-visible {
|
|
4583
|
+
outline: 2px solid var(--primary);
|
|
4584
|
+
outline-offset: 2px;
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4587
|
+
.image-gallery__thumbnail--selected {
|
|
4588
|
+
border-color: var(--primary);
|
|
4589
|
+
}
|
|
4590
|
+
|
|
4591
|
+
.image-gallery__thumbnail-image {
|
|
4592
|
+
width: 100%;
|
|
4593
|
+
height: 100%;
|
|
4594
|
+
-o-object-fit: cover;
|
|
4595
|
+
object-fit: cover;
|
|
4596
|
+
display: block;
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
/* Responsive adjustments */
|
|
4600
|
+
|
|
4601
|
+
@media (max-width: 640px) {
|
|
4602
|
+
.image-gallery__thumbnail {
|
|
4603
|
+
width: 60px;
|
|
4604
|
+
height: 45px;
|
|
4605
|
+
}
|
|
4606
|
+
|
|
4607
|
+
.image-gallery__nav {
|
|
4608
|
+
width: 36px;
|
|
4609
|
+
height: 36px;
|
|
4610
|
+
opacity: 0.8;
|
|
4611
|
+
}
|
|
4612
|
+
|
|
4613
|
+
.image-gallery__nav svg {
|
|
4614
|
+
width: 20px;
|
|
4615
|
+
height: 20px;
|
|
4616
|
+
}
|
|
4617
|
+
}
|
|
4618
|
+
|
|
4443
4619
|
/* packages/components/src/atomic/Input/Input.css */
|
|
4444
4620
|
|
|
4621
|
+
/* Hide number input spinners - cleaner UI for price/range inputs */
|
|
4622
|
+
|
|
4623
|
+
input[type='number']::-webkit-inner-spin-button,
|
|
4624
|
+
input[type='number']::-webkit-outer-spin-button {
|
|
4625
|
+
-webkit-appearance: none;
|
|
4626
|
+
margin: 0;
|
|
4627
|
+
}
|
|
4628
|
+
|
|
4629
|
+
input[type='number'] {
|
|
4630
|
+
-moz-appearance: textfield;
|
|
4631
|
+
}
|
|
4632
|
+
|
|
4445
4633
|
/* Input with leading icon (search, etc.) */
|
|
4446
4634
|
|
|
4447
4635
|
.dndev-input-with-leading-icon {
|
|
@@ -4651,6 +4839,9 @@ em {
|
|
|
4651
4839
|
background-color: transparent;
|
|
4652
4840
|
transition: all var(--dur-normal) var(--ease-in-out);
|
|
4653
4841
|
text-align: start;
|
|
4842
|
+
/* Flex-aware: allow fieldset to shrink in flex containers */
|
|
4843
|
+
min-width: 0;
|
|
4844
|
+
width: 100%;
|
|
4654
4845
|
}
|
|
4655
4846
|
|
|
4656
4847
|
.dndev-floating-fieldset:hover {
|
|
@@ -4659,7 +4850,6 @@ em {
|
|
|
4659
4850
|
|
|
4660
4851
|
.dndev-floating-fieldset:focus-within {
|
|
4661
4852
|
border-color: var(--ring);
|
|
4662
|
-
box-shadow: 0 0 0 2px var(--ring);
|
|
4663
4853
|
}
|
|
4664
4854
|
|
|
4665
4855
|
.dndev-floating-fieldset[data-disabled='true'] {
|
|
@@ -4676,6 +4866,11 @@ em {
|
|
|
4676
4866
|
font-weight: 500;
|
|
4677
4867
|
line-height: 1;
|
|
4678
4868
|
color: var(--foreground);
|
|
4869
|
+
/* Ellipsis by default */
|
|
4870
|
+
max-width: 100%;
|
|
4871
|
+
overflow: hidden;
|
|
4872
|
+
text-overflow: ellipsis;
|
|
4873
|
+
white-space: nowrap;
|
|
4679
4874
|
}
|
|
4680
4875
|
|
|
4681
4876
|
.dndev-floating-legend label {
|
|
@@ -4689,30 +4884,23 @@ em {
|
|
|
4689
4884
|
color: var(--muted-foreground);
|
|
4690
4885
|
}
|
|
4691
4886
|
|
|
4692
|
-
|
|
4693
|
-
max-width: calc(100% - var(--gap-md) * 2);
|
|
4694
|
-
overflow: hidden;
|
|
4695
|
-
text-overflow: ellipsis;
|
|
4696
|
-
white-space: nowrap;
|
|
4697
|
-
}
|
|
4698
|
-
|
|
4699
|
-
/* Remove border from inner input since fieldset has it */
|
|
4887
|
+
/* Disable truncation when explicitly set to false */
|
|
4700
4888
|
|
|
4701
|
-
.dndev-floating-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4889
|
+
.dndev-floating-legend[data-truncate='false'] {
|
|
4890
|
+
max-width: none;
|
|
4891
|
+
overflow: visible;
|
|
4892
|
+
text-overflow: clip;
|
|
4893
|
+
white-space: normal;
|
|
4705
4894
|
}
|
|
4706
4895
|
|
|
4707
|
-
|
|
4708
|
-
border-color: transparent;
|
|
4709
|
-
}
|
|
4896
|
+
/* Input inside fieldset uses bare mode via data-bare attribute (set by Input component) */
|
|
4710
4897
|
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4898
|
+
/* This rule is kept for non-Input children that might need border removal */
|
|
4899
|
+
|
|
4900
|
+
.dndev-floating-fieldset > .dndev-input:not([data-bare]) {
|
|
4901
|
+
border: none;
|
|
4714
4902
|
box-shadow: none;
|
|
4715
|
-
|
|
4903
|
+
background: transparent;
|
|
4716
4904
|
}
|
|
4717
4905
|
|
|
4718
4906
|
/* packages/components/src/atomic/List/List.css */
|
|
@@ -5063,11 +5251,33 @@ em {
|
|
|
5063
5251
|
/* packages/components/src/atomic/Pagination/Pagination.css */
|
|
5064
5252
|
|
|
5065
5253
|
.dndev-pagination {
|
|
5254
|
+
display: flex;
|
|
5255
|
+
flex-direction: row;
|
|
5256
|
+
align-items: center;
|
|
5257
|
+
justify-content: space-between;
|
|
5258
|
+
gap: var(--gap-md);
|
|
5259
|
+
width: 100%;
|
|
5260
|
+
}
|
|
5261
|
+
|
|
5262
|
+
.dndev-pagination-info {
|
|
5263
|
+
display: none;
|
|
5264
|
+
}
|
|
5265
|
+
|
|
5266
|
+
.dndev-pagination-size {
|
|
5267
|
+
display: flex;
|
|
5268
|
+
align-items: center;
|
|
5269
|
+
}
|
|
5270
|
+
|
|
5271
|
+
.dndev-pagination-size-label {
|
|
5272
|
+
display: none;
|
|
5273
|
+
}
|
|
5274
|
+
|
|
5275
|
+
.dndev-pagination-nav {
|
|
5066
5276
|
display: flex;
|
|
5067
5277
|
align-items: center;
|
|
5068
5278
|
justify-content: center;
|
|
5069
5279
|
gap: var(--gap-sm);
|
|
5070
|
-
|
|
5280
|
+
width: 100%;
|
|
5071
5281
|
}
|
|
5072
5282
|
|
|
5073
5283
|
.dndev-pagination-list {
|
|
@@ -5079,57 +5289,36 @@ em {
|
|
|
5079
5289
|
margin: 0;
|
|
5080
5290
|
}
|
|
5081
5291
|
|
|
5082
|
-
.dndev-pagination-item {
|
|
5083
|
-
display: flex;
|
|
5084
|
-
align-items: center;
|
|
5085
|
-
justify-content: center;
|
|
5086
|
-
}
|
|
5087
|
-
|
|
5088
5292
|
.dndev-pagination-button {
|
|
5089
|
-
|
|
5293
|
+
width: var(--touch-target);
|
|
5090
5294
|
height: var(--touch-target);
|
|
5091
|
-
|
|
5295
|
+
padding: 0;
|
|
5296
|
+
flex-shrink: 0;
|
|
5297
|
+
display: inline-flex;
|
|
5092
5298
|
align-items: center;
|
|
5093
5299
|
justify-content: center;
|
|
5094
|
-
gap: var(--gap-sm);
|
|
5095
|
-
border-radius: var(--radius-interactive);
|
|
5096
|
-
font-weight: 500;
|
|
5097
|
-
transition: var(--transition-fast);
|
|
5098
|
-
cursor: pointer;
|
|
5099
|
-
border: var(--border-hairline) solid var(--line-2);
|
|
5100
|
-
background: transparent;
|
|
5101
|
-
color: var(--foreground);
|
|
5102
|
-
padding: var(--gap-sm) var(--gap-md);
|
|
5103
5300
|
}
|
|
5104
5301
|
|
|
5105
|
-
|
|
5106
|
-
background: var(--accent);
|
|
5107
|
-
color: var(--accent-foreground);
|
|
5108
|
-
}
|
|
5302
|
+
/* Desktop: Show all elements in one row */
|
|
5109
5303
|
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5304
|
+
@media (min-width: 768px) {
|
|
5305
|
+
.dndev-pagination-info,
|
|
5306
|
+
.dndev-pagination-size {
|
|
5307
|
+
display: flex;
|
|
5308
|
+
align-items: center;
|
|
5309
|
+
white-space: nowrap;
|
|
5113
5310
|
}
|
|
5114
5311
|
|
|
5115
|
-
.dndev-pagination-
|
|
5116
|
-
|
|
5117
|
-
cursor: not-allowed;
|
|
5312
|
+
.dndev-pagination-size-label {
|
|
5313
|
+
margin-right: var(--gap-sm);
|
|
5118
5314
|
}
|
|
5119
5315
|
|
|
5120
|
-
.dndev-pagination-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5316
|
+
.dndev-pagination-nav {
|
|
5317
|
+
justify-content: flex-end;
|
|
5318
|
+
width: auto;
|
|
5319
|
+
margin-left: auto;
|
|
5320
|
+
/* Push to right */
|
|
5124
5321
|
}
|
|
5125
|
-
|
|
5126
|
-
.dndev-pagination-ellipsis {
|
|
5127
|
-
display: flex;
|
|
5128
|
-
align-items: center;
|
|
5129
|
-
justify-content: center;
|
|
5130
|
-
width: var(--touch-target);
|
|
5131
|
-
height: var(--touch-target);
|
|
5132
|
-
color: var(--muted-foreground);
|
|
5133
5322
|
}
|
|
5134
5323
|
|
|
5135
5324
|
/* packages/components/src/atomic/Popover/Popover.css */
|
|
@@ -5860,8 +6049,12 @@ em {
|
|
|
5860
6049
|
|
|
5861
6050
|
/* Adjust header padding when drag handle is present (sibling selector) */
|
|
5862
6051
|
|
|
5863
|
-
.dndev-sheet-content[data-side='bottom']
|
|
5864
|
-
.dndev-sheet-
|
|
6052
|
+
.dndev-sheet-content[data-side='bottom']
|
|
6053
|
+
.dndev-sheet-drag-handle
|
|
6054
|
+
~ .dndev-sheet-header,
|
|
6055
|
+
.dndev-sheet-content[data-side='top']
|
|
6056
|
+
.dndev-sheet-drag-handle
|
|
6057
|
+
~ .dndev-sheet-header {
|
|
5865
6058
|
padding-top: 0;
|
|
5866
6059
|
}
|
|
5867
6060
|
|
|
@@ -5919,12 +6112,9 @@ em {
|
|
|
5919
6112
|
position: relative;
|
|
5920
6113
|
margin-inline-start: auto;
|
|
5921
6114
|
/* Push to end (RTL-aware: end = right in LTR, left in RTL) */
|
|
6115
|
+
margin-inline-end: var(--gap-sm);
|
|
6116
|
+
/* Spacing from edge - use margin not padding to keep icon centered */
|
|
5922
6117
|
opacity: var(--opacity-muted);
|
|
5923
|
-
/* No padding - tight spacing */
|
|
5924
|
-
padding: 0;
|
|
5925
|
-
/* RTL-aware: padding on logical end only */
|
|
5926
|
-
padding-inline-end: var(--gap-md);
|
|
5927
|
-
padding-inline-start: 0;
|
|
5928
6118
|
}
|
|
5929
6119
|
|
|
5930
6120
|
.dndev-sheet-close:hover {
|
|
@@ -6709,7 +6899,21 @@ em {
|
|
|
6709
6899
|
}
|
|
6710
6900
|
|
|
6711
6901
|
.dndev-table-header {
|
|
6712
|
-
|
|
6902
|
+
background-color: var(--accent);
|
|
6903
|
+
}
|
|
6904
|
+
|
|
6905
|
+
/* Filter row above header */
|
|
6906
|
+
|
|
6907
|
+
.dndev-table-filter-row {
|
|
6908
|
+
border: 1px solid var(--border);
|
|
6909
|
+
border-bottom: none;
|
|
6910
|
+
}
|
|
6911
|
+
|
|
6912
|
+
.dndev-table-filter-row .dndev-table-head {
|
|
6913
|
+
background-color: var(--muted);
|
|
6914
|
+
padding: var(--gap-xs);
|
|
6915
|
+
height: auto;
|
|
6916
|
+
min-height: auto;
|
|
6713
6917
|
}
|
|
6714
6918
|
|
|
6715
6919
|
.dndev-table-body {
|
|
@@ -6771,22 +6975,34 @@ em {
|
|
|
6771
6975
|
padding-block: var(--gap-sm);
|
|
6772
6976
|
}
|
|
6773
6977
|
|
|
6774
|
-
|
|
6978
|
+
/* Header cells use accent foreground for contrast */
|
|
6979
|
+
|
|
6980
|
+
.dndev-table-header .dndev-table-head {
|
|
6981
|
+
color: var(--accent-foreground);
|
|
6982
|
+
}
|
|
6983
|
+
|
|
6984
|
+
[data-sortable='true']:is(.dndev-table-header .dndev-table-head) {
|
|
6775
6985
|
cursor: pointer;
|
|
6776
6986
|
}
|
|
6777
6987
|
|
|
6778
|
-
|
|
6988
|
+
[data-align='center']:is(.dndev-table-header .dndev-table-head) {
|
|
6779
6989
|
text-align: center;
|
|
6780
6990
|
}
|
|
6781
6991
|
|
|
6782
|
-
|
|
6992
|
+
[data-align='end']:is(.dndev-table-header .dndev-table-head) {
|
|
6783
6993
|
text-align: end;
|
|
6784
6994
|
}
|
|
6785
6995
|
|
|
6786
|
-
|
|
6996
|
+
[data-align='start']:is(.dndev-table-header .dndev-table-head) {
|
|
6787
6997
|
text-align: start;
|
|
6788
6998
|
}
|
|
6789
6999
|
|
|
7000
|
+
/* Active filter indicator */
|
|
7001
|
+
|
|
7002
|
+
.dndev-table-filter-active {
|
|
7003
|
+
color: var(--primary);
|
|
7004
|
+
}
|
|
7005
|
+
|
|
6790
7006
|
/* Table cell (td) styles */
|
|
6791
7007
|
|
|
6792
7008
|
.dndev-table-cell {
|
|
@@ -6794,6 +7010,7 @@ em {
|
|
|
6794
7010
|
padding-inline: var(--gap-md);
|
|
6795
7011
|
padding-block: var(--gap-sm);
|
|
6796
7012
|
min-height: var(--touch-target);
|
|
7013
|
+
line-height: 1.5; /* Ensure consistent line height for empty cells */
|
|
6797
7014
|
}
|
|
6798
7015
|
|
|
6799
7016
|
.dndev-table-cell[data-align='center'] {
|
|
@@ -6872,6 +7089,64 @@ em {
|
|
|
6872
7089
|
padding-inline-start: calc(var(--gap-md) + var(--icon-md) + var(--gap-sm));
|
|
6873
7090
|
}
|
|
6874
7091
|
|
|
7092
|
+
/* Skeleton rows - apply standard skeleton pulse animation to entire rows */
|
|
7093
|
+
|
|
7094
|
+
/* Keep existing background colors (zebra striping) - just add opacity pulse */
|
|
7095
|
+
|
|
7096
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row {
|
|
7097
|
+
animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
7098
|
+
pointer-events: none;
|
|
7099
|
+
|
|
7100
|
+
/* Keep hover state but disabled (pointer-events: none prevents hover) */
|
|
7101
|
+
}
|
|
7102
|
+
|
|
7103
|
+
:is(.dndev-table-body .dndev-table-row.dndev-skeleton-row):hover {
|
|
7104
|
+
/* Inherit from parent .dndev-table-row hover styles */
|
|
7105
|
+
}
|
|
7106
|
+
|
|
7107
|
+
/* Even rows keep their var(--muted) background, just pulse */
|
|
7108
|
+
|
|
7109
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even) {
|
|
7110
|
+
animation: dndev-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
7111
|
+
}
|
|
7112
|
+
|
|
7113
|
+
:is(.dndev-table-body .dndev-table-row.dndev-skeleton-row:nth-child(even)):hover {
|
|
7114
|
+
/* Inherit from parent .dndev-table-row:nth-child(even) hover styles */
|
|
7115
|
+
}
|
|
7116
|
+
|
|
7117
|
+
/* Skeleton bars inside cells - adapt to row background for visibility */
|
|
7118
|
+
|
|
7119
|
+
/* Odd rows (transparent background): use default var(--muted) skeleton */
|
|
7120
|
+
|
|
7121
|
+
/* Even rows (var(--muted) background): use lighter skeleton for contrast */
|
|
7122
|
+
|
|
7123
|
+
.dndev-table-body .dndev-table-row.dndev-skeleton-row .dndev-skeleton {
|
|
7124
|
+
background-color: var(--muted);
|
|
7125
|
+
}
|
|
7126
|
+
|
|
7127
|
+
.dndev-table-body
|
|
7128
|
+
.dndev-table-row.dndev-skeleton-row:nth-child(even)
|
|
7129
|
+
.dndev-skeleton {
|
|
7130
|
+
/* Even rows have var(--muted) background, so skeleton should be lighter for contrast */
|
|
7131
|
+
background-color: color-mix(
|
|
7132
|
+
in oklab,
|
|
7133
|
+
var(--muted) 60%,
|
|
7134
|
+
var(--foreground) 40%
|
|
7135
|
+
);
|
|
7136
|
+
}
|
|
7137
|
+
|
|
7138
|
+
/* Use the same pulse animation as standard skeleton (from Skeleton.css) */
|
|
7139
|
+
|
|
7140
|
+
@keyframes dndev-pulse {
|
|
7141
|
+
0%,
|
|
7142
|
+
100% {
|
|
7143
|
+
opacity: 1;
|
|
7144
|
+
}
|
|
7145
|
+
50% {
|
|
7146
|
+
opacity: var(--opacity-muted);
|
|
7147
|
+
}
|
|
7148
|
+
}
|
|
7149
|
+
|
|
6875
7150
|
/* packages/components/src/atomic/Tabs/Tabs.css */
|
|
6876
7151
|
|
|
6877
7152
|
/* Tabs list: use flexbox for natural wrapping, not grid */
|
|
@@ -7242,6 +7517,24 @@ em {
|
|
|
7242
7517
|
font-size: var(--font-size-sm);
|
|
7243
7518
|
}
|
|
7244
7519
|
|
|
7520
|
+
/* Font weight overrides (after level rules, so weight prop overrides level defaults) */
|
|
7521
|
+
|
|
7522
|
+
.dndev-text-base[data-font-weight='normal'] {
|
|
7523
|
+
font-weight: var(--font-weight-normal);
|
|
7524
|
+
}
|
|
7525
|
+
|
|
7526
|
+
.dndev-text-base[data-font-weight='medium'] {
|
|
7527
|
+
font-weight: var(--font-weight-medium);
|
|
7528
|
+
}
|
|
7529
|
+
|
|
7530
|
+
.dndev-text-base[data-font-weight='semibold'] {
|
|
7531
|
+
font-weight: var(--font-weight-semibold);
|
|
7532
|
+
}
|
|
7533
|
+
|
|
7534
|
+
.dndev-text-base[data-font-weight='bold'] {
|
|
7535
|
+
font-weight: var(--font-weight-bold);
|
|
7536
|
+
}
|
|
7537
|
+
|
|
7245
7538
|
/* packages/components/src/atomic/Toaster/Toaster.css */
|
|
7246
7539
|
|
|
7247
7540
|
.dndev-toast-viewport {
|
|
@@ -8811,6 +9104,7 @@ h4[data-variant='code'] {
|
|
|
8811
9104
|
from {
|
|
8812
9105
|
opacity: 1;
|
|
8813
9106
|
}
|
|
9107
|
+
|
|
8814
9108
|
to {
|
|
8815
9109
|
opacity: 0;
|
|
8816
9110
|
}
|
|
@@ -8820,6 +9114,7 @@ h4[data-variant='code'] {
|
|
|
8820
9114
|
from {
|
|
8821
9115
|
opacity: 0;
|
|
8822
9116
|
}
|
|
9117
|
+
|
|
8823
9118
|
to {
|
|
8824
9119
|
opacity: 1;
|
|
8825
9120
|
}
|
|
@@ -8832,6 +9127,7 @@ h4[data-variant='code'] {
|
|
|
8832
9127
|
opacity: 1;
|
|
8833
9128
|
transform: translateX(0);
|
|
8834
9129
|
}
|
|
9130
|
+
|
|
8835
9131
|
to {
|
|
8836
9132
|
opacity: 0;
|
|
8837
9133
|
transform: translateX(-100%);
|
|
@@ -8843,6 +9139,7 @@ h4[data-variant='code'] {
|
|
|
8843
9139
|
opacity: 0;
|
|
8844
9140
|
transform: translateX(100%);
|
|
8845
9141
|
}
|
|
9142
|
+
|
|
8846
9143
|
to {
|
|
8847
9144
|
opacity: 1;
|
|
8848
9145
|
transform: translateX(0);
|
|
@@ -8917,7 +9214,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8917
9214
|
|
|
8918
9215
|
/* Tablet (768px - 1023px) */
|
|
8919
9216
|
|
|
8920
|
-
@media (width >=
|
|
9217
|
+
@media (width >=768px) and (width <=1023px) {
|
|
8921
9218
|
main[role='main'][data-routing-animation='fade'] {
|
|
8922
9219
|
animation: routeFadeIn
|
|
8923
9220
|
var(--routing-tablet-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8933,7 +9230,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8933
9230
|
|
|
8934
9231
|
/* Desktop (1024px - 1439px) */
|
|
8935
9232
|
|
|
8936
|
-
@media (width >=
|
|
9233
|
+
@media (width >=1024px) and (width <=1439px) {
|
|
8937
9234
|
main[role='main'][data-routing-animation='fade'] {
|
|
8938
9235
|
animation: routeFadeIn
|
|
8939
9236
|
var(--routing-desktop-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8949,7 +9246,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8949
9246
|
|
|
8950
9247
|
/* Wide (>= 1440px) */
|
|
8951
9248
|
|
|
8952
|
-
@media (width >=
|
|
9249
|
+
@media (width >=1440px) {
|
|
8953
9250
|
main[role='main'][data-routing-animation='fade'] {
|
|
8954
9251
|
animation: routeFadeIn
|
|
8955
9252
|
var(--routing-wide-duration, var(--routing-default-duration, 300ms))
|
|
@@ -8982,7 +9279,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8982
9279
|
|
|
8983
9280
|
/* Mobile/Tablet: Hide sidebars - WCAG & Lighthouse best practices */
|
|
8984
9281
|
|
|
8985
|
-
@media (width <=
|
|
9282
|
+
@media (width <=1023px) {
|
|
8986
9283
|
.dndev-layout aside[role='navigation'].sidebar,
|
|
8987
9284
|
aside[role='navigation'].sidebar {
|
|
8988
9285
|
display: none !important;
|
|
@@ -9012,59 +9309,55 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9012
9309
|
);
|
|
9013
9310
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
9014
9311
|
|
|
9015
|
-
/* Mobile:
|
|
9016
|
-
/* When mergedBar is shown, header is hidden but grid still needs space for mergedBar */
|
|
9312
|
+
/* Mobile: Grid scrolls instead of main - footer scrolls with content */
|
|
9017
9313
|
}
|
|
9018
9314
|
|
|
9019
|
-
@media (width <=
|
|
9315
|
+
@media (width <=1023px) {
|
|
9020
9316
|
|
|
9021
9317
|
.dndev-layout {
|
|
9318
|
+
overflow-y: auto;
|
|
9319
|
+
overflow-x: hidden;
|
|
9320
|
+
/* Keep footer row - grid scrolls so footer scrolls with content */
|
|
9022
9321
|
grid-template-areas:
|
|
9023
9322
|
'header header'
|
|
9024
|
-
'sidebar main'
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
/* Presets with mergedBar: header is hidden, but grid still allocates space for mergedBar */
|
|
9028
|
-
/* No extra padding needed - grid spacing is sufficient */
|
|
9323
|
+
'sidebar main'
|
|
9324
|
+
'footer footer';
|
|
9325
|
+
grid-template-rows: var(--header-height) min-content auto;
|
|
9029
9326
|
}
|
|
9030
|
-
.dndev-layout[data-layout='admin'],.dndev-layout[data-layout='moolti'],.dndev-layout[data-layout='game'],.dndev-layout[data-layout='docs'] {
|
|
9031
|
-
/* Grid already accounts for header-height, mergedBar is fixed and doesn't need extra padding */
|
|
9032
|
-
}
|
|
9033
9327
|
}
|
|
9034
9328
|
|
|
9035
|
-
/* Footer
|
|
9329
|
+
/* Footer scroll mode - grid scrolls, footer scrolls with content (opt-in for desktop) */
|
|
9036
9330
|
|
|
9037
|
-
.footer-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9331
|
+
.dndev-layout[data-footer-mode='scroll'] {
|
|
9332
|
+
overflow-y: auto;
|
|
9333
|
+
overflow-x: hidden;
|
|
9334
|
+
grid-template-rows: var(--header-height) min-content auto;
|
|
9041
9335
|
}
|
|
9042
9336
|
|
|
9043
|
-
.footer-
|
|
9044
|
-
|
|
9337
|
+
.dndev-layout[data-footer-mode='scroll'] header[role='banner'] {
|
|
9338
|
+
position: sticky;
|
|
9339
|
+
top: 0;
|
|
9045
9340
|
}
|
|
9046
9341
|
|
|
9047
|
-
|
|
9048
|
-
|
|
9049
|
-
|
|
9050
|
-
|
|
9342
|
+
.dndev-layout[data-footer-mode='scroll'] main[role='main'] {
|
|
9343
|
+
overflow: visible;
|
|
9344
|
+
min-height: -moz-min-content;
|
|
9345
|
+
min-height: min-content;
|
|
9346
|
+
}
|
|
9051
9347
|
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9348
|
+
.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo'] {
|
|
9349
|
+
height: auto;
|
|
9350
|
+
}
|
|
9055
9351
|
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9352
|
+
:is(.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo']) > * {
|
|
9353
|
+
height: auto;
|
|
9354
|
+
min-height: var(--footer-height);
|
|
9059
9355
|
}
|
|
9060
|
-
}
|
|
9061
9356
|
|
|
9062
9357
|
/* Presets with no footer at all */
|
|
9063
9358
|
|
|
9064
|
-
[data-layout='moolti']
|
|
9065
|
-
[data-layout='
|
|
9066
|
-
[data-layout='plain'] .footer-mobile,
|
|
9067
|
-
[data-layout='plain'] .footer-desktop {
|
|
9359
|
+
[data-layout='moolti'] footer[role='contentinfo'],
|
|
9360
|
+
[data-layout='plain'] footer[role='contentinfo'] {
|
|
9068
9361
|
display: none;
|
|
9069
9362
|
}
|
|
9070
9363
|
|
|
@@ -9102,8 +9395,18 @@ header[role='banner'] {
|
|
|
9102
9395
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
9103
9396
|
background: var(--background);
|
|
9104
9397
|
border-bottom: var(--border-hairline) solid var(--border);
|
|
9398
|
+
|
|
9399
|
+
/* Mobile: Sticky header (for presets that keep header visible) */
|
|
9105
9400
|
}
|
|
9106
9401
|
|
|
9402
|
+
@media (width <=1023px) {
|
|
9403
|
+
|
|
9404
|
+
header[role='banner'] {
|
|
9405
|
+
position: sticky;
|
|
9406
|
+
top: 0;
|
|
9407
|
+
}
|
|
9408
|
+
}
|
|
9409
|
+
|
|
9107
9410
|
.header-start {
|
|
9108
9411
|
display: flex;
|
|
9109
9412
|
align-items: center;
|
|
@@ -9157,19 +9460,20 @@ header[role='banner'] .header-center {
|
|
|
9157
9460
|
aside[role='navigation'].sidebar {
|
|
9158
9461
|
grid-area: sidebar;
|
|
9159
9462
|
box-sizing: border-box;
|
|
9160
|
-
min-width: calc(
|
|
9161
|
-
|
|
9162
|
-
|
|
9163
|
-
|
|
9164
|
-
var(--sidebar-resize-handle-width) + 400px
|
|
9165
|
-
); /* Max: 400px content + 6px handle = 406px */
|
|
9463
|
+
min-width: calc(var(--sidebar-resize-handle-width) + 48px);
|
|
9464
|
+
/* Min: 48px content + 6px handle = 54px */
|
|
9465
|
+
max-width: calc(var(--sidebar-resize-handle-width) + 400px);
|
|
9466
|
+
/* Max: 400px content + 6px handle = 406px */
|
|
9166
9467
|
z-index: var(--z-sidebar);
|
|
9167
|
-
overflow: none;
|
|
9468
|
+
overflow: none;
|
|
9469
|
+
/* No clipping needed - handle is in grid */
|
|
9168
9470
|
contain: layout style;
|
|
9169
9471
|
padding: 0;
|
|
9170
9472
|
display: grid;
|
|
9171
|
-
grid-template-columns: auto var(--sidebar-resize-handle-width);
|
|
9172
|
-
|
|
9473
|
+
grid-template-columns: auto var(--sidebar-resize-handle-width);
|
|
9474
|
+
/* Content | Handle - column 1 width set inline */
|
|
9475
|
+
grid-template-rows: auto 1fr auto;
|
|
9476
|
+
/* Top | Content | Bottom */
|
|
9173
9477
|
height: 100%;
|
|
9174
9478
|
|
|
9175
9479
|
/* Theme-aware styling - 100% controlled by theme system */
|
|
@@ -9224,7 +9528,8 @@ aside[role='navigation'].sidebar[data-dragging='true']
|
|
|
9224
9528
|
|
|
9225
9529
|
@media (hover: none) {
|
|
9226
9530
|
aside[role='navigation'].sidebar .dndev-sidebar-resize-handle {
|
|
9227
|
-
width: calc(var(--sidebar-resize-handle-width) * 2);
|
|
9531
|
+
width: calc(var(--sidebar-resize-handle-width) * 2);
|
|
9532
|
+
/* 12px for touch */
|
|
9228
9533
|
}
|
|
9229
9534
|
}
|
|
9230
9535
|
|
|
@@ -9293,7 +9598,8 @@ aside[role='navigation'].sidebar[data-dragging='true']
|
|
|
9293
9598
|
.sidebar-content .dndev-interactive[data-role='menu-item'],.sidebar-content .dndev-interactive[data-role='nav-trigger'] {
|
|
9294
9599
|
height: var(--touch-target);
|
|
9295
9600
|
min-height: var(--touch-target);
|
|
9296
|
-
padding-block: 0;
|
|
9601
|
+
padding-block: 0;
|
|
9602
|
+
/* No vertical padding - buttons fill exact 48px */
|
|
9297
9603
|
}
|
|
9298
9604
|
|
|
9299
9605
|
/* Other interactive elements (not menu items) - consistent padding */
|
|
@@ -9333,7 +9639,8 @@ aside.sidebar[role='navigation'] .sidebar-top,aside.sidebar[role='navigation'] .
|
|
|
9333
9639
|
}
|
|
9334
9640
|
|
|
9335
9641
|
aside.sidebar[role='navigation'] .sidebar-content {
|
|
9336
|
-
overflow-x: hidden;
|
|
9642
|
+
overflow-x: hidden;
|
|
9643
|
+
/* Prevent horizontal scroll, allow vertical */
|
|
9337
9644
|
}
|
|
9338
9645
|
|
|
9339
9646
|
aside.sidebar[role='navigation'] .dndev-interactive {
|
|
@@ -9398,12 +9705,9 @@ aside.sidebar[role='navigation'][data-collapsed='true'] .app-branding {
|
|
|
9398
9705
|
main[role='main'] {
|
|
9399
9706
|
grid-area: main;
|
|
9400
9707
|
overflow-y: auto;
|
|
9401
|
-
/* Default: allow scrolling */
|
|
9402
9708
|
overflow-x: hidden;
|
|
9403
|
-
/* Prevent horizontal scroll from breakthrough components */
|
|
9404
9709
|
display: flex;
|
|
9405
9710
|
flex-direction: column;
|
|
9406
|
-
/* No automatic padding; spacing handled by gaps */
|
|
9407
9711
|
padding: 0;
|
|
9408
9712
|
contain: layout style;
|
|
9409
9713
|
|
|
@@ -9412,19 +9716,18 @@ main[role='main'] {
|
|
|
9412
9716
|
|
|
9413
9717
|
main[role='main'] > *:not(.breadcrumbs-container):first-of-type,main[role='main'] > .breadcrumbs-container + * {
|
|
9414
9718
|
flex: 1 1 auto;
|
|
9415
|
-
/* Page content grows */
|
|
9416
9719
|
}
|
|
9417
9720
|
|
|
9418
|
-
/*
|
|
9721
|
+
/* Mobile: Grid scrolls, main doesn't */
|
|
9419
9722
|
|
|
9420
|
-
@media (width
|
|
9421
|
-
main[role='main'] > *:last-child {
|
|
9422
|
-
flex-shrink: 0;
|
|
9423
|
-
/* Footer stays at bottom */
|
|
9424
|
-
}
|
|
9425
|
-
}
|
|
9723
|
+
@media (width <=1023px) {
|
|
9426
9724
|
|
|
9427
|
-
|
|
9725
|
+
main[role='main'] {
|
|
9726
|
+
overflow: visible;
|
|
9727
|
+
min-height: -moz-min-content;
|
|
9728
|
+
min-height: min-content;
|
|
9729
|
+
}
|
|
9730
|
+
}
|
|
9428
9731
|
|
|
9429
9732
|
/* Footer: Full width by default, app presets start after sidebar */
|
|
9430
9733
|
|
|
@@ -9458,11 +9761,25 @@ footer[role='contentinfo'] > * {
|
|
|
9458
9761
|
padding-inline-end: var(--content-padding);
|
|
9459
9762
|
}
|
|
9460
9763
|
|
|
9764
|
+
/* Mobile: Allow footer to grow when content wraps */
|
|
9765
|
+
|
|
9766
|
+
@media (width <=1023px) {
|
|
9767
|
+
|
|
9768
|
+
footer[role='contentinfo'] {
|
|
9769
|
+
height: auto;
|
|
9770
|
+
}
|
|
9771
|
+
|
|
9772
|
+
footer[role='contentinfo'] > * {
|
|
9773
|
+
height: auto;
|
|
9774
|
+
min-height: var(--footer-height);
|
|
9775
|
+
}
|
|
9776
|
+
}
|
|
9777
|
+
|
|
9461
9778
|
/* Footer text styles */
|
|
9462
9779
|
|
|
9463
9780
|
footer[role='contentinfo'] .footer-copyright {
|
|
9464
9781
|
color: var(--muted-foreground);
|
|
9465
|
-
font-size: var(--font-size-
|
|
9782
|
+
font-size: var(--font-size-xs);
|
|
9466
9783
|
}
|
|
9467
9784
|
|
|
9468
9785
|
footer[role='contentinfo'] a:not(.dndev-interactive) {
|
|
@@ -9532,7 +9849,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9532
9849
|
|
|
9533
9850
|
/* Mobile (<1024px): Show merged-bar, hide zones */
|
|
9534
9851
|
|
|
9535
|
-
@media (width <=
|
|
9852
|
+
@media (width <=1023px) {
|
|
9536
9853
|
/* Presets with mergedBar: top (admin, moolti, game, docs) */
|
|
9537
9854
|
[data-layout='admin'] .merged-bar[data-position='top'],
|
|
9538
9855
|
[data-layout='moolti'] .merged-bar[data-position='top'],
|
|
@@ -9572,7 +9889,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9572
9889
|
|
|
9573
9890
|
/* Desktop (>=1024px): Always hide merged-bar */
|
|
9574
9891
|
|
|
9575
|
-
@media (width >=
|
|
9892
|
+
@media (width >=1024px) {
|
|
9576
9893
|
.merged-bar {
|
|
9577
9894
|
display: none !important;
|
|
9578
9895
|
}
|
|
@@ -9596,7 +9913,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9596
9913
|
/* Admin: Mobile/Tablet (<1024px) - only overrides */
|
|
9597
9914
|
}
|
|
9598
9915
|
|
|
9599
|
-
@media (width <=
|
|
9916
|
+
@media (width <=1023px) {
|
|
9600
9917
|
|
|
9601
9918
|
[data-layout='admin'] {
|
|
9602
9919
|
--sidebar-width: 0px;
|
|
@@ -9627,7 +9944,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9627
9944
|
|
|
9628
9945
|
/* Moolti: Mobile/Tablet (<1024px) - only overrides */
|
|
9629
9946
|
|
|
9630
|
-
@media (width <=
|
|
9947
|
+
@media (width <=1023px) {
|
|
9631
9948
|
|
|
9632
9949
|
[data-layout='moolti'] {
|
|
9633
9950
|
--header-height: 62px;
|
|
@@ -9654,7 +9971,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9654
9971
|
|
|
9655
9972
|
/* Docs: Mobile/Tablet (<1024px) - only overrides */
|
|
9656
9973
|
|
|
9657
|
-
@media (width <=
|
|
9974
|
+
@media (width <=1023px) {
|
|
9658
9975
|
|
|
9659
9976
|
[data-layout='docs'] {
|
|
9660
9977
|
--sidebar-width: 0px;
|
|
@@ -9680,7 +9997,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9680
9997
|
/* Blog: Mobile/Tablet (<1024px) - only overrides */
|
|
9681
9998
|
}
|
|
9682
9999
|
|
|
9683
|
-
@media (width <=
|
|
10000
|
+
@media (width <=1023px) {
|
|
9684
10001
|
|
|
9685
10002
|
[data-layout='blog'] {
|
|
9686
10003
|
--header-height: 0px;
|
|
@@ -9730,7 +10047,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9730
10047
|
/* Game: Mobile/Tablet (<1024px) - only overrides */
|
|
9731
10048
|
}
|
|
9732
10049
|
|
|
9733
|
-
@media (width <=
|
|
10050
|
+
@media (width <=1023px) {
|
|
9734
10051
|
|
|
9735
10052
|
[data-layout='game'] {
|
|
9736
10053
|
--footer-height: 0px;
|
|
@@ -9851,7 +10168,14 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9851
10168
|
padding-top: var(--gap-lg);
|
|
9852
10169
|
}
|
|
9853
10170
|
|
|
10171
|
+
/* First Section child gets gap-md spacing from top */
|
|
10172
|
+
|
|
10173
|
+
.dndev-container > .dndev-section-full-width:first-child {
|
|
10174
|
+
margin-top: var(--gap-md);
|
|
10175
|
+
}
|
|
10176
|
+
|
|
9854
10177
|
.dndev-container {
|
|
10178
|
+
|
|
9855
10179
|
min-height: 0;
|
|
9856
10180
|
display: flex;
|
|
9857
10181
|
flex-direction: column;
|
|
@@ -9886,7 +10210,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9886
10210
|
--max-content-width: 100%;
|
|
9887
10211
|
}
|
|
9888
10212
|
|
|
9889
|
-
@media (width >=
|
|
10213
|
+
@media (width >=1024px) {
|
|
9890
10214
|
|
|
9891
10215
|
.dndev-container[data-variant='standard'] {
|
|
9892
10216
|
--max-content-width: 87.5rem;
|
|
@@ -9901,7 +10225,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9901
10225
|
--max-content-width: 100%;
|
|
9902
10226
|
}
|
|
9903
10227
|
|
|
9904
|
-
@media (width >=
|
|
10228
|
+
@media (width >=1024px) {
|
|
9905
10229
|
|
|
9906
10230
|
.dndev-container[data-variant='docs'] {
|
|
9907
10231
|
--max-content-width: 56.25rem;
|