@donotdev/ui 0.0.10 → 0.0.12
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/components/layout/GameContainer.d.ts +3 -1
- package/dist/components/layout/GameContainer.d.ts.map +1 -1
- package/dist/components/layout/GameContainer.js +3 -2
- package/dist/components/layout/PageContainer.d.ts +1 -1
- package/dist/components/layout/PageContainer.d.ts.map +1 -1
- 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 +286 -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 +203 -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 +287 -123
- package/dist/index.js +4 -64
- 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.js +2 -2
- package/dist/internal/layout/config/presets/game.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/game.js +10 -5
- package/dist/styles/index.css +287 -123
- package/package.json +13 -13
- 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 -41
- 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 -48
- 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 -28
- 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 -25
- 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
|
@@ -3140,9 +3140,10 @@ em {
|
|
|
3140
3140
|
|
|
3141
3141
|
.dndev-cta-actions {
|
|
3142
3142
|
display: flex;
|
|
3143
|
-
flex-direction:
|
|
3143
|
+
flex-direction: row;
|
|
3144
3144
|
gap: var(--gap-md);
|
|
3145
3145
|
justify-content: center;
|
|
3146
|
+
|
|
3146
3147
|
}
|
|
3147
3148
|
|
|
3148
3149
|
.dndev-cta-actions .dndev-interactive {
|
|
@@ -3175,13 +3176,6 @@ em {
|
|
|
3175
3176
|
border-color: var(--foreground);
|
|
3176
3177
|
}
|
|
3177
3178
|
|
|
3178
|
-
@media (width >= 768px) {
|
|
3179
|
-
|
|
3180
|
-
.dndev-cta-actions {
|
|
3181
|
-
flex-direction: row;
|
|
3182
|
-
}
|
|
3183
|
-
}
|
|
3184
|
-
|
|
3185
3179
|
/* packages/components/src/atomic/Card/Card.css */
|
|
3186
3180
|
|
|
3187
3181
|
/* Card layout - grid with gap */
|
|
@@ -3631,12 +3625,10 @@ em {
|
|
|
3631
3625
|
/* Code-specific overrides: background color, text color, and layout */
|
|
3632
3626
|
display: flex;
|
|
3633
3627
|
flex-direction: column;
|
|
3634
|
-
background: var(
|
|
3635
|
-
|
|
3636
|
-
);
|
|
3637
|
-
color
|
|
3638
|
-
--muted-foreground
|
|
3639
|
-
); /* Override surface text color for dark background */
|
|
3628
|
+
background: var(--muted);
|
|
3629
|
+
/* Override surface gradient with code-specific dark background */
|
|
3630
|
+
color: var(--muted-foreground);
|
|
3631
|
+
/* Override surface text color for dark background */
|
|
3640
3632
|
overflow: hidden;
|
|
3641
3633
|
font-family: var(--font-mono);
|
|
3642
3634
|
font-size: var(--font-size-sm);
|
|
@@ -3710,8 +3702,6 @@ em {
|
|
|
3710
3702
|
white-space: pre;
|
|
3711
3703
|
overflow-x: auto;
|
|
3712
3704
|
overflow-y: visible;
|
|
3713
|
-
min-width: -moz-min-content;
|
|
3714
|
-
min-width: min-content;
|
|
3715
3705
|
}
|
|
3716
3706
|
|
|
3717
3707
|
.dndev-code-pre[data-compact='true'] {
|
|
@@ -3728,16 +3718,19 @@ em {
|
|
|
3728
3718
|
user-select: none;
|
|
3729
3719
|
padding-inline-end: var(--gap-md);
|
|
3730
3720
|
text-align: end;
|
|
3731
|
-
font-size: inherit;
|
|
3721
|
+
font-size: inherit;
|
|
3722
|
+
/* Match parent code font-size */
|
|
3732
3723
|
opacity: var(--opacity-muted);
|
|
3733
3724
|
width: 3rem;
|
|
3734
3725
|
flex-shrink: 0;
|
|
3735
3726
|
color: var(--muted-foreground);
|
|
3736
|
-
line-height: 1.5;
|
|
3727
|
+
line-height: 1.5;
|
|
3728
|
+
/* Consistent line height */
|
|
3737
3729
|
}
|
|
3738
3730
|
|
|
3739
3731
|
.dndev-code-line-number {
|
|
3740
|
-
line-height: inherit;
|
|
3732
|
+
line-height: inherit;
|
|
3733
|
+
/* Inherit from parent */
|
|
3741
3734
|
}
|
|
3742
3735
|
|
|
3743
3736
|
.dndev-code-code {
|
|
@@ -3745,8 +3738,10 @@ em {
|
|
|
3745
3738
|
min-width: 0;
|
|
3746
3739
|
text-align: start;
|
|
3747
3740
|
display: block;
|
|
3748
|
-
line-height: 1.5;
|
|
3749
|
-
|
|
3741
|
+
line-height: 1.5;
|
|
3742
|
+
/* Match line numbers */
|
|
3743
|
+
font-size: var(--font-size-sm);
|
|
3744
|
+
/* Explicit match with line numbers */
|
|
3750
3745
|
}
|
|
3751
3746
|
|
|
3752
3747
|
/* Ensure shiki-generated code respects line-height AND font-size */
|
|
@@ -3754,7 +3749,8 @@ em {
|
|
|
3754
3749
|
.dndev-code-code pre,
|
|
3755
3750
|
.dndev-code-code code {
|
|
3756
3751
|
line-height: inherit;
|
|
3757
|
-
font-size: inherit;
|
|
3752
|
+
font-size: inherit;
|
|
3753
|
+
/* Match parent font-size */
|
|
3758
3754
|
}
|
|
3759
3755
|
|
|
3760
3756
|
/* packages/components/src/atomic/Command/Command.css */
|
|
@@ -4455,6 +4451,167 @@ em {
|
|
|
4455
4451
|
padding-block: var(--gap-lg);
|
|
4456
4452
|
}
|
|
4457
4453
|
|
|
4454
|
+
/* packages/components/src/advanced/ImageGallery/ImageGallery.css */
|
|
4455
|
+
|
|
4456
|
+
.image-gallery {
|
|
4457
|
+
display: flex;
|
|
4458
|
+
flex-direction: column;
|
|
4459
|
+
gap: var(--gap-md);
|
|
4460
|
+
outline: none;
|
|
4461
|
+
}
|
|
4462
|
+
|
|
4463
|
+
.image-gallery:focus-visible {
|
|
4464
|
+
outline: 2px solid var(--primary);
|
|
4465
|
+
outline-offset: 2px;
|
|
4466
|
+
border-radius: var(--radius-lg);
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4469
|
+
/* Empty state */
|
|
4470
|
+
|
|
4471
|
+
.image-gallery--empty {
|
|
4472
|
+
display: flex;
|
|
4473
|
+
align-items: center;
|
|
4474
|
+
justify-content: center;
|
|
4475
|
+
background-color: var(--muted);
|
|
4476
|
+
border-radius: var(--radius-lg);
|
|
4477
|
+
}
|
|
4478
|
+
|
|
4479
|
+
.image-gallery__placeholder {
|
|
4480
|
+
color: var(--muted-foreground);
|
|
4481
|
+
font-size: var(--font-size-sm);
|
|
4482
|
+
}
|
|
4483
|
+
|
|
4484
|
+
/* Main image container */
|
|
4485
|
+
|
|
4486
|
+
.image-gallery__main {
|
|
4487
|
+
position: relative;
|
|
4488
|
+
width: 100%;
|
|
4489
|
+
overflow: hidden;
|
|
4490
|
+
border-radius: var(--radius-surface);
|
|
4491
|
+
background-color: var(--muted);
|
|
4492
|
+
}
|
|
4493
|
+
|
|
4494
|
+
.image-gallery__main-image {
|
|
4495
|
+
width: 100%;
|
|
4496
|
+
height: 100%;
|
|
4497
|
+
-o-object-fit: cover;
|
|
4498
|
+
object-fit: cover;
|
|
4499
|
+
display: block;
|
|
4500
|
+
position: relative;
|
|
4501
|
+
}
|
|
4502
|
+
|
|
4503
|
+
/* Navigation arrows */
|
|
4504
|
+
|
|
4505
|
+
.image-gallery__nav {
|
|
4506
|
+
position: absolute;
|
|
4507
|
+
top: 50%;
|
|
4508
|
+
transform: translateY(-50%);
|
|
4509
|
+
display: flex;
|
|
4510
|
+
align-items: center;
|
|
4511
|
+
justify-content: center;
|
|
4512
|
+
width: 44px;
|
|
4513
|
+
height: 44px;
|
|
4514
|
+
border: none;
|
|
4515
|
+
border-radius: var(--radius-full);
|
|
4516
|
+
background-color: var(--background);
|
|
4517
|
+
color: var(--foreground);
|
|
4518
|
+
cursor: pointer;
|
|
4519
|
+
opacity: 0;
|
|
4520
|
+
transition:
|
|
4521
|
+
opacity 0.2s ease,
|
|
4522
|
+
background-color 0.2s ease;
|
|
4523
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
|
4524
|
+
z-index: 2;
|
|
4525
|
+
}
|
|
4526
|
+
|
|
4527
|
+
.image-gallery__main:hover .image-gallery__nav,
|
|
4528
|
+
.image-gallery:focus-within .image-gallery__nav {
|
|
4529
|
+
opacity: 1;
|
|
4530
|
+
}
|
|
4531
|
+
|
|
4532
|
+
.image-gallery__nav:hover {
|
|
4533
|
+
background-color: var(--primary);
|
|
4534
|
+
color: var(--primary-foreground);
|
|
4535
|
+
}
|
|
4536
|
+
|
|
4537
|
+
.image-gallery__nav:focus-visible {
|
|
4538
|
+
opacity: 1;
|
|
4539
|
+
outline: 2px solid var(--primary);
|
|
4540
|
+
outline-offset: 2px;
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
.image-gallery__nav--prev {
|
|
4544
|
+
inset-inline-start: var(--gap-md);
|
|
4545
|
+
}
|
|
4546
|
+
|
|
4547
|
+
.image-gallery__nav--next {
|
|
4548
|
+
inset-inline-end: var(--gap-md);
|
|
4549
|
+
}
|
|
4550
|
+
|
|
4551
|
+
/* Thumbnails */
|
|
4552
|
+
|
|
4553
|
+
.image-gallery__thumbnails {
|
|
4554
|
+
display: flex;
|
|
4555
|
+
flex-wrap: wrap;
|
|
4556
|
+
gap: var(--gap-sm);
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
.image-gallery__thumbnail {
|
|
4560
|
+
flex: 0 0 auto;
|
|
4561
|
+
width: 80px;
|
|
4562
|
+
height: 60px;
|
|
4563
|
+
padding: 0;
|
|
4564
|
+
border: 2px solid transparent;
|
|
4565
|
+
border-radius: var(--radius-surface);
|
|
4566
|
+
overflow: hidden;
|
|
4567
|
+
cursor: pointer;
|
|
4568
|
+
background: none;
|
|
4569
|
+
transition:
|
|
4570
|
+
border-color 0.2s ease,
|
|
4571
|
+
transform 0.2s ease;
|
|
4572
|
+
}
|
|
4573
|
+
|
|
4574
|
+
.image-gallery__thumbnail:hover {
|
|
4575
|
+
border-color: var(--muted-foreground);
|
|
4576
|
+
}
|
|
4577
|
+
|
|
4578
|
+
.image-gallery__thumbnail:focus-visible {
|
|
4579
|
+
outline: 2px solid var(--primary);
|
|
4580
|
+
outline-offset: 2px;
|
|
4581
|
+
}
|
|
4582
|
+
|
|
4583
|
+
.image-gallery__thumbnail--selected {
|
|
4584
|
+
border-color: var(--primary);
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4587
|
+
.image-gallery__thumbnail-image {
|
|
4588
|
+
width: 100%;
|
|
4589
|
+
height: 100%;
|
|
4590
|
+
-o-object-fit: cover;
|
|
4591
|
+
object-fit: cover;
|
|
4592
|
+
display: block;
|
|
4593
|
+
}
|
|
4594
|
+
|
|
4595
|
+
/* Responsive adjustments */
|
|
4596
|
+
|
|
4597
|
+
@media (max-width: 640px) {
|
|
4598
|
+
.image-gallery__thumbnail {
|
|
4599
|
+
width: 60px;
|
|
4600
|
+
height: 45px;
|
|
4601
|
+
}
|
|
4602
|
+
|
|
4603
|
+
.image-gallery__nav {
|
|
4604
|
+
width: 36px;
|
|
4605
|
+
height: 36px;
|
|
4606
|
+
opacity: 0.8;
|
|
4607
|
+
}
|
|
4608
|
+
|
|
4609
|
+
.image-gallery__nav svg {
|
|
4610
|
+
width: 20px;
|
|
4611
|
+
height: 20px;
|
|
4612
|
+
}
|
|
4613
|
+
}
|
|
4614
|
+
|
|
4458
4615
|
/* packages/components/src/atomic/Input/Input.css */
|
|
4459
4616
|
|
|
4460
4617
|
/* Hide number input spinners - cleaner UI for price/range inputs */
|
|
@@ -7356,6 +7513,24 @@ input[type='number'] {
|
|
|
7356
7513
|
font-size: var(--font-size-sm);
|
|
7357
7514
|
}
|
|
7358
7515
|
|
|
7516
|
+
/* Font weight overrides (after level rules, so weight prop overrides level defaults) */
|
|
7517
|
+
|
|
7518
|
+
.dndev-text-base[data-font-weight='normal'] {
|
|
7519
|
+
font-weight: var(--font-weight-normal);
|
|
7520
|
+
}
|
|
7521
|
+
|
|
7522
|
+
.dndev-text-base[data-font-weight='medium'] {
|
|
7523
|
+
font-weight: var(--font-weight-medium);
|
|
7524
|
+
}
|
|
7525
|
+
|
|
7526
|
+
.dndev-text-base[data-font-weight='semibold'] {
|
|
7527
|
+
font-weight: var(--font-weight-semibold);
|
|
7528
|
+
}
|
|
7529
|
+
|
|
7530
|
+
.dndev-text-base[data-font-weight='bold'] {
|
|
7531
|
+
font-weight: var(--font-weight-bold);
|
|
7532
|
+
}
|
|
7533
|
+
|
|
7359
7534
|
/* packages/components/src/atomic/Toaster/Toaster.css */
|
|
7360
7535
|
|
|
7361
7536
|
.dndev-toast-viewport {
|
|
@@ -8894,9 +9069,14 @@ h4[data-variant='code'] {
|
|
|
8894
9069
|
--sidebar-resize-handle-width: 6px;
|
|
8895
9070
|
|
|
8896
9071
|
/* Content width - max constraint only, grid handles sidebar space */
|
|
8897
|
-
/* PageContainer sets --max-content-width
|
|
9072
|
+
/* PageContainer sets --max-content-width per variant, components use --content-width */
|
|
9073
|
+
--max-content-width: 100%;
|
|
8898
9074
|
--content-width: var(--max-content-width, 100%);
|
|
8899
9075
|
|
|
9076
|
+
/* Narrow content (mobile-first PWA, app-like single column) - single source of truth */
|
|
9077
|
+
--narrow-content-max: 37.5rem;
|
|
9078
|
+
/* 600px */
|
|
9079
|
+
|
|
8900
9080
|
/* Content Area Calculations */
|
|
8901
9081
|
/* Header content area (excludes sidebar on some presets) */
|
|
8902
9082
|
--header-content-width: 100%;
|
|
@@ -9006,8 +9186,7 @@ main[role='main'][data-routing-animation='fade'] {
|
|
|
9006
9186
|
/* Slide animation - keyframes handle opacity 0→1 */
|
|
9007
9187
|
|
|
9008
9188
|
main[role='main'][data-routing-animation='slide'] {
|
|
9009
|
-
animation: routeSlideIn var(--routing-default-duration, 300ms) ease-in
|
|
9010
|
-
forwards;
|
|
9189
|
+
animation: routeSlideIn var(--routing-default-duration, 300ms) ease-in forwards;
|
|
9011
9190
|
}
|
|
9012
9191
|
|
|
9013
9192
|
/* No animation - already visible by default, explicit for clarity */
|
|
@@ -9021,15 +9200,11 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9021
9200
|
|
|
9022
9201
|
@media (width < 768px) {
|
|
9023
9202
|
main[role='main'][data-routing-animation='fade'] {
|
|
9024
|
-
animation: routeFadeIn
|
|
9025
|
-
var(--routing-mobile-duration, var(--routing-default-duration, 300ms))
|
|
9026
|
-
ease-in forwards;
|
|
9203
|
+
animation: routeFadeIn var(--routing-mobile-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9027
9204
|
}
|
|
9028
9205
|
|
|
9029
9206
|
main[role='main'][data-routing-animation='slide'] {
|
|
9030
|
-
animation: routeSlideIn
|
|
9031
|
-
var(--routing-mobile-duration, var(--routing-default-duration, 300ms))
|
|
9032
|
-
ease-in forwards;
|
|
9207
|
+
animation: routeSlideIn var(--routing-mobile-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9033
9208
|
}
|
|
9034
9209
|
}
|
|
9035
9210
|
|
|
@@ -9037,15 +9212,11 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9037
9212
|
|
|
9038
9213
|
@media (width >=768px) and (width <=1023px) {
|
|
9039
9214
|
main[role='main'][data-routing-animation='fade'] {
|
|
9040
|
-
animation: routeFadeIn
|
|
9041
|
-
var(--routing-tablet-duration, var(--routing-default-duration, 300ms))
|
|
9042
|
-
ease-in forwards;
|
|
9215
|
+
animation: routeFadeIn var(--routing-tablet-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9043
9216
|
}
|
|
9044
9217
|
|
|
9045
9218
|
main[role='main'][data-routing-animation='slide'] {
|
|
9046
|
-
animation: routeSlideIn
|
|
9047
|
-
var(--routing-tablet-duration, var(--routing-default-duration, 300ms))
|
|
9048
|
-
ease-in forwards;
|
|
9219
|
+
animation: routeSlideIn var(--routing-tablet-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9049
9220
|
}
|
|
9050
9221
|
}
|
|
9051
9222
|
|
|
@@ -9053,15 +9224,11 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9053
9224
|
|
|
9054
9225
|
@media (width >=1024px) and (width <=1439px) {
|
|
9055
9226
|
main[role='main'][data-routing-animation='fade'] {
|
|
9056
|
-
animation: routeFadeIn
|
|
9057
|
-
var(--routing-desktop-duration, var(--routing-default-duration, 300ms))
|
|
9058
|
-
ease-in forwards;
|
|
9227
|
+
animation: routeFadeIn var(--routing-desktop-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9059
9228
|
}
|
|
9060
9229
|
|
|
9061
9230
|
main[role='main'][data-routing-animation='slide'] {
|
|
9062
|
-
animation: routeSlideIn
|
|
9063
|
-
var(--routing-desktop-duration, var(--routing-default-duration, 300ms))
|
|
9064
|
-
ease-in forwards;
|
|
9231
|
+
animation: routeSlideIn var(--routing-desktop-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9065
9232
|
}
|
|
9066
9233
|
}
|
|
9067
9234
|
|
|
@@ -9069,15 +9236,11 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9069
9236
|
|
|
9070
9237
|
@media (width >=1440px) {
|
|
9071
9238
|
main[role='main'][data-routing-animation='fade'] {
|
|
9072
|
-
animation: routeFadeIn
|
|
9073
|
-
var(--routing-wide-duration, var(--routing-default-duration, 300ms))
|
|
9074
|
-
ease-in forwards;
|
|
9239
|
+
animation: routeFadeIn var(--routing-wide-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9075
9240
|
}
|
|
9076
9241
|
|
|
9077
9242
|
main[role='main'][data-routing-animation='slide'] {
|
|
9078
|
-
animation: routeSlideIn
|
|
9079
|
-
var(--routing-wide-duration, var(--routing-default-duration, 300ms))
|
|
9080
|
-
ease-in forwards;
|
|
9243
|
+
animation: routeSlideIn var(--routing-wide-duration, var(--routing-default-duration, 300ms)) ease-in forwards;
|
|
9081
9244
|
}
|
|
9082
9245
|
}
|
|
9083
9246
|
|
|
@@ -9101,6 +9264,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9101
9264
|
/* Mobile/Tablet: Hide sidebars - WCAG & Lighthouse best practices */
|
|
9102
9265
|
|
|
9103
9266
|
@media (width <=1023px) {
|
|
9267
|
+
|
|
9104
9268
|
.dndev-layout aside[role='navigation'].sidebar,
|
|
9105
9269
|
aside[role='navigation'].sidebar {
|
|
9106
9270
|
display: none !important;
|
|
@@ -9124,57 +9288,59 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9124
9288
|
'header header'
|
|
9125
9289
|
'sidebar main'
|
|
9126
9290
|
'footer footer';
|
|
9127
|
-
grid-template-rows: var(--header-height) 1fr minmax(
|
|
9128
|
-
|
|
9129
|
-
auto
|
|
9130
|
-
);
|
|
9291
|
+
grid-template-rows: var(--header-height) 1fr minmax(var(--footer-height),
|
|
9292
|
+
auto);
|
|
9131
9293
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
9132
|
-
|
|
9133
|
-
/* Mobile: Grid scrolls instead of main - footer scrolls with content */
|
|
9134
9294
|
}
|
|
9135
9295
|
|
|
9136
|
-
|
|
9137
|
-
|
|
9138
|
-
.dndev-layout {
|
|
9139
|
-
overflow-y: auto;
|
|
9140
|
-
overflow-x: hidden;
|
|
9141
|
-
/* Keep footer row - grid scrolls so footer scrolls with content */
|
|
9142
|
-
grid-template-areas:
|
|
9143
|
-
'header header'
|
|
9144
|
-
'sidebar main'
|
|
9145
|
-
'footer footer';
|
|
9146
|
-
grid-template-rows: var(--header-height) min-content auto;
|
|
9147
|
-
}
|
|
9148
|
-
}
|
|
9296
|
+
/* Footer scroll mode: grid scrolls, footer scrolls with content */
|
|
9149
9297
|
|
|
9150
|
-
/*
|
|
9298
|
+
/* Desktop: opt-in via data-footer-mode="scroll" */
|
|
9151
9299
|
|
|
9152
9300
|
.dndev-layout[data-footer-mode='scroll'] {
|
|
9153
9301
|
overflow-y: auto;
|
|
9154
9302
|
overflow-x: hidden;
|
|
9155
|
-
grid-template-rows: var(--header-height)
|
|
9303
|
+
grid-template-rows: var(--header-height) 1fr auto;
|
|
9156
9304
|
}
|
|
9157
9305
|
|
|
9158
|
-
.dndev-layout[data-footer-mode='scroll'] header[role='banner'] {
|
|
9159
|
-
position: sticky;
|
|
9160
|
-
top: 0;
|
|
9161
|
-
}
|
|
9306
|
+
.dndev-layout[data-footer-mode='scroll'] header[role='banner'] { position: sticky; top: 0; }
|
|
9162
9307
|
|
|
9163
|
-
.dndev-layout[data-footer-mode='scroll']
|
|
9164
|
-
|
|
9165
|
-
|
|
9166
|
-
|
|
9167
|
-
|
|
9308
|
+
.dndev-layout[data-footer-mode='scroll'] aside.sidebar[role='navigation'] {
|
|
9309
|
+
position: sticky;
|
|
9310
|
+
top: var(--header-height);
|
|
9311
|
+
height: calc(100dvh - var(--header-height));
|
|
9312
|
+
align-self: start;
|
|
9313
|
+
}
|
|
9168
9314
|
|
|
9169
|
-
.dndev-layout[data-footer-mode='scroll']
|
|
9170
|
-
height: auto;
|
|
9171
|
-
}
|
|
9315
|
+
.dndev-layout[data-footer-mode='scroll'] main[role='main'] { overflow-y: visible; overflow-x: hidden; }
|
|
9172
9316
|
|
|
9173
|
-
|
|
9317
|
+
.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo'] {
|
|
9318
|
+
grid-column: 2 / -1;
|
|
9174
9319
|
height: auto;
|
|
9175
|
-
min-height: var(--footer-height);
|
|
9176
9320
|
}
|
|
9177
9321
|
|
|
9322
|
+
:is(.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo']) > * { height: auto; min-height: var(--footer-height); }
|
|
9323
|
+
|
|
9324
|
+
/* Mobile: footer scroll mode ON by default (same rules) */
|
|
9325
|
+
|
|
9326
|
+
@media (width <=1023px) {
|
|
9327
|
+
.dndev-layout {
|
|
9328
|
+
overflow-y: auto;
|
|
9329
|
+
overflow-x: hidden;
|
|
9330
|
+
grid-template-rows: var(--header-height) 1fr auto;
|
|
9331
|
+
}
|
|
9332
|
+
|
|
9333
|
+
.dndev-layout header[role='banner'] { position: sticky; top: 0; }
|
|
9334
|
+
|
|
9335
|
+
.dndev-layout main[role='main'] { overflow-y: visible; overflow-x: hidden; }
|
|
9336
|
+
|
|
9337
|
+
.dndev-layout footer[role='contentinfo'] {
|
|
9338
|
+
height: auto;
|
|
9339
|
+
}
|
|
9340
|
+
|
|
9341
|
+
:is(.dndev-layout footer[role='contentinfo']) > * { height: auto; min-height: var(--footer-height); }
|
|
9342
|
+
}
|
|
9343
|
+
|
|
9178
9344
|
/* Presets with no footer at all */
|
|
9179
9345
|
|
|
9180
9346
|
[data-layout='moolti'] footer[role='contentinfo'],
|
|
@@ -9340,8 +9506,7 @@ aside[role='navigation'].sidebar .dndev-sidebar-resize-handle:focus-visible {
|
|
|
9340
9506
|
|
|
9341
9507
|
/* Active drag state */
|
|
9342
9508
|
|
|
9343
|
-
aside[role='navigation'].sidebar[data-dragging='true']
|
|
9344
|
-
.dndev-sidebar-resize-handle {
|
|
9509
|
+
aside[role='navigation'].sidebar[data-dragging='true'] .dndev-sidebar-resize-handle {
|
|
9345
9510
|
background: var(--primary);
|
|
9346
9511
|
}
|
|
9347
9512
|
|
|
@@ -9357,10 +9522,7 @@ aside[role='navigation'].sidebar[data-dragging='true']
|
|
|
9357
9522
|
/* Landing: AUTO display mode - compact below wide breakpoint (< 1440px) */
|
|
9358
9523
|
|
|
9359
9524
|
@media (width < 1440px) {
|
|
9360
|
-
[data-layout='landing']
|
|
9361
|
-
header[role='banner']
|
|
9362
|
-
[data-display='auto']
|
|
9363
|
-
.dndev-interactive-label {
|
|
9525
|
+
[data-layout='landing'] header[role='banner'] [data-display='auto'] .dndev-interactive-label {
|
|
9364
9526
|
display: none;
|
|
9365
9527
|
}
|
|
9366
9528
|
}
|
|
@@ -9533,23 +9695,13 @@ main[role='main'] {
|
|
|
9533
9695
|
contain: layout style;
|
|
9534
9696
|
|
|
9535
9697
|
/* First child after breadcrumbs grows to fill space */
|
|
9698
|
+
|
|
9536
9699
|
}
|
|
9537
9700
|
|
|
9538
9701
|
main[role='main'] > *:not(.breadcrumbs-container):first-of-type,main[role='main'] > .breadcrumbs-container + * {
|
|
9539
9702
|
flex: 1 1 auto;
|
|
9540
9703
|
}
|
|
9541
9704
|
|
|
9542
|
-
/* Mobile: Grid scrolls, main doesn't */
|
|
9543
|
-
|
|
9544
|
-
@media (width <=1023px) {
|
|
9545
|
-
|
|
9546
|
-
main[role='main'] {
|
|
9547
|
-
overflow: visible;
|
|
9548
|
-
min-height: -moz-min-content;
|
|
9549
|
-
min-height: min-content;
|
|
9550
|
-
}
|
|
9551
|
-
}
|
|
9552
|
-
|
|
9553
9705
|
/* Footer: Full width by default, app presets start after sidebar */
|
|
9554
9706
|
|
|
9555
9707
|
/* box-sizing: border-box ensures borders are included in height */
|
|
@@ -9671,6 +9823,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9671
9823
|
/* Mobile (<1024px): Show merged-bar, hide zones */
|
|
9672
9824
|
|
|
9673
9825
|
@media (width <=1023px) {
|
|
9826
|
+
|
|
9674
9827
|
/* Presets with mergedBar: top (admin, moolti, game, docs) */
|
|
9675
9828
|
[data-layout='admin'] .merged-bar[data-position='top'],
|
|
9676
9829
|
[data-layout='moolti'] .merged-bar[data-position='top'],
|
|
@@ -10028,32 +10181,26 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10028
10181
|
/* Standard width - responsive */
|
|
10029
10182
|
|
|
10030
10183
|
.dndev-container[data-variant='standard'] {
|
|
10031
|
-
--max-content-width: 100
|
|
10184
|
+
--max-content-width: min(87.5rem, 100%);
|
|
10185
|
+
max-width: var(--content-width);
|
|
10186
|
+
/* 1480px max, but never exceeds container width */
|
|
10032
10187
|
}
|
|
10033
10188
|
|
|
10034
|
-
@media (width >=1024px) {
|
|
10035
|
-
|
|
10036
|
-
.dndev-container[data-variant='standard'] {
|
|
10037
|
-
--max-content-width: 87.5rem;
|
|
10038
|
-
/* 1480px */
|
|
10039
|
-
/* Padding stays: part of centering space when max-width applies */
|
|
10040
|
-
}
|
|
10041
|
-
}
|
|
10042
|
-
|
|
10043
10189
|
/* Docs width - responsive */
|
|
10044
10190
|
|
|
10045
10191
|
.dndev-container[data-variant='docs'] {
|
|
10046
|
-
--max-content-width: 100
|
|
10192
|
+
--max-content-width: min(56.25rem, 100%);
|
|
10193
|
+
max-width: var(--content-width);
|
|
10194
|
+
/* 900px max, but never exceeds container width */
|
|
10047
10195
|
}
|
|
10048
10196
|
|
|
10049
|
-
|
|
10197
|
+
/* Narrow width - mobile-first single column (PWA, app-like on every device) */
|
|
10050
10198
|
|
|
10051
|
-
.dndev-container[data-variant='
|
|
10052
|
-
|
|
10053
|
-
|
|
10054
|
-
|
|
10199
|
+
.dndev-container[data-variant='narrow'] {
|
|
10200
|
+
--max-content-width: min(var(--narrow-content-max), 100%);
|
|
10201
|
+
max-width: var(--content-width);
|
|
10202
|
+
/* 600px max, but never exceeds container width */
|
|
10055
10203
|
}
|
|
10056
|
-
}
|
|
10057
10204
|
|
|
10058
10205
|
/* Fixed frame - fills parent exactly, prevents parent scroll */
|
|
10059
10206
|
|
|
@@ -10099,10 +10246,10 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10099
10246
|
|
|
10100
10247
|
/* Breakthrough pattern: only applies inside PageContainer */
|
|
10101
10248
|
|
|
10102
|
-
.dndev-container
|
|
10103
|
-
.dndev-container
|
|
10104
|
-
.dndev-container
|
|
10105
|
-
.dndev-container
|
|
10249
|
+
.dndev-container>.dndev-section-full-width,
|
|
10250
|
+
.dndev-container>.dndev-cta,
|
|
10251
|
+
.dndev-container>.dndev-hero-section,
|
|
10252
|
+
.dndev-container>.dndev-tech-bento {
|
|
10106
10253
|
/* Break out of PageContainer padding and max-width constraint */
|
|
10107
10254
|
/* Account for sidebar: --sidebar-width is 0px for presets without sidebar */
|
|
10108
10255
|
width: calc(100dvw - var(--sidebar-width));
|
|
@@ -10182,12 +10329,29 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10182
10329
|
justify-content: space-between;
|
|
10183
10330
|
}
|
|
10184
10331
|
|
|
10185
|
-
/*
|
|
10332
|
+
/* Narrow content wrapper - constrained by --narrow-content-max (mobile-first PWA) */
|
|
10333
|
+
|
|
10334
|
+
.dndev-game-container__content-narrow {
|
|
10335
|
+
width: 100%;
|
|
10336
|
+
max-width: var(--narrow-content-max);
|
|
10337
|
+
margin-inline: auto;
|
|
10338
|
+
min-height: 0;
|
|
10339
|
+
flex: 1 1 auto;
|
|
10340
|
+
display: flex;
|
|
10341
|
+
flex-direction: column;
|
|
10342
|
+
}
|
|
10343
|
+
|
|
10344
|
+
.dndev-game-container__content-narrow .dndev-game-container__scroll {
|
|
10345
|
+
width: 100%;
|
|
10346
|
+
}
|
|
10347
|
+
|
|
10348
|
+
/* CTA Zone - Fixed at bottom; safe area for notched devices */
|
|
10186
10349
|
|
|
10187
10350
|
.dndev-game-container__cta {
|
|
10188
10351
|
display: flex;
|
|
10189
10352
|
flex-direction: column;
|
|
10190
10353
|
padding-top: var(--gap-md);
|
|
10354
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
10191
10355
|
border-top: 2px solid var(--border);
|
|
10192
10356
|
}
|
|
10193
10357
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@donotdev/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -49,22 +49,22 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@hookform/resolvers": "^5.2.2",
|
|
51
51
|
"react-helmet-async": "^2.0.5",
|
|
52
|
-
"react-hook-form": "^7.71.
|
|
52
|
+
"react-hook-form": "^7.71.1"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@donotdev/adv-comps": "^0.0.
|
|
56
|
-
"@donotdev/auth": "^0.0.
|
|
55
|
+
"@donotdev/adv-comps": "^0.0.9",
|
|
56
|
+
"@donotdev/auth": "^0.0.6",
|
|
57
57
|
"@donotdev/billing": "^0.0.5",
|
|
58
|
-
"@donotdev/components": "^0.0.
|
|
59
|
-
"@donotdev/core": "^0.0.
|
|
60
|
-
"@donotdev/crud": "^0.0.
|
|
61
|
-
"@donotdev/firebase": "^0.0.
|
|
58
|
+
"@donotdev/components": "^0.0.15",
|
|
59
|
+
"@donotdev/core": "^0.0.20",
|
|
60
|
+
"@donotdev/crud": "^0.0.11",
|
|
61
|
+
"@donotdev/firebase": "^0.0.9",
|
|
62
62
|
"@donotdev/oauth": "^0.0.5",
|
|
63
|
-
"firebase": "^12.
|
|
64
|
-
"lucide-react": "^0.
|
|
65
|
-
"react": "^19.2.
|
|
66
|
-
"react-dom": "^19.2.
|
|
67
|
-
"react-router-dom": "^7.
|
|
63
|
+
"firebase": "^12.8.0",
|
|
64
|
+
"lucide-react": "^0.563.0",
|
|
65
|
+
"react": "^19.2.4",
|
|
66
|
+
"react-dom": "^19.2.4",
|
|
67
|
+
"react-router-dom": "^7.13.0",
|
|
68
68
|
"valibot": "^1.2.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { EntityField, FieldType, ValueTypeForField } from '@donotdev/core';
|
|
2
|
-
import type { ReactElement } from 'react';
|
|
3
|
-
interface DisplayFieldRendererBaseProps<T extends FieldType = FieldType> {
|
|
4
|
-
/** Field identifier */
|
|
5
|
-
name: string;
|
|
6
|
-
/** Field configuration */
|
|
7
|
-
config: EntityField<T>;
|
|
8
|
-
/** Translation function */
|
|
9
|
-
t: (key: string, options?: Record<string, any>) => string;
|
|
10
|
-
/** Field value to display */
|
|
11
|
-
value: ValueTypeForField<T>;
|
|
12
|
-
/** Additional CSS classes */
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
export type DisplayFieldRendererProps<T extends FieldType> = DisplayFieldRendererBaseProps<T>;
|
|
16
|
-
/**
|
|
17
|
-
* DisplayFieldRenderer selects and renders the appropriate display component
|
|
18
|
-
* based on the field type for read-only display mode.
|
|
19
|
-
*
|
|
20
|
-
* @version 0.0.1
|
|
21
|
-
* @since 0.0.1
|
|
22
|
-
* @author AMBROISE PARK Consulting
|
|
23
|
-
*/
|
|
24
|
-
export declare function DisplayFieldRenderer<T extends FieldType>({ name, config, t, value, className, }: DisplayFieldRendererProps<T>): ReactElement;
|
|
25
|
-
export default DisplayFieldRenderer;
|
|
26
|
-
//# sourceMappingURL=DisplayFieldRenderer.d.ts.map
|