@donotdev/ui 0.0.13 → 0.0.15
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/auth/AuthMenu.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.js +19 -20
- package/dist/components/common/FeatureCard.d.ts +3 -1
- package/dist/components/common/FeatureCard.d.ts.map +1 -1
- package/dist/components/common/FeatureCard.js +2 -2
- package/dist/components/common/ProgressBar.js +2 -2
- package/dist/components/common/TechBento.d.ts +14 -2
- package/dist/components/common/TechBento.d.ts.map +1 -1
- package/dist/components/common/TechBento.js +8 -9
- package/dist/components/cookie-consent/CookieConsent.d.ts.map +1 -1
- package/dist/components/cookie-consent/CookieConsent.js +3 -4
- package/dist/components/layout/components/DropdownNavigation.d.ts.map +1 -1
- package/dist/components/layout/components/DropdownNavigation.js +3 -12
- package/dist/components/layout/components/FloatingLanguageSwitcher.js +1 -1
- package/dist/components/layout/components/Notifications.d.ts +1 -3
- package/dist/components/layout/components/Notifications.d.ts.map +1 -1
- package/dist/components/layout/components/Notifications.js +4 -2
- package/dist/components/layout/components/header/AppBranding.d.ts.map +1 -1
- package/dist/components/layout/components/header/AppBranding.js +2 -1
- package/dist/components/layout/components/header/AppIcon.d.ts.map +1 -1
- package/dist/components/layout/components/header/AppIcon.js +5 -2
- package/dist/components/layout/components/header/CacheSettings.d.ts.map +1 -1
- package/dist/components/layout/components/header/CacheSettings.js +3 -1
- package/dist/components/layout/components/header/HeaderNavigation.d.ts +6 -0
- package/dist/components/layout/components/header/HeaderNavigation.d.ts.map +1 -1
- package/dist/components/layout/components/header/HeaderNavigation.js +12 -2
- package/dist/components/layout/components/index.d.ts +3 -0
- package/dist/components/layout/components/index.d.ts.map +1 -1
- package/dist/components/layout/components/index.js +3 -0
- package/dist/components/license/LicenseWatermark.d.ts.map +1 -1
- package/dist/components/license/LicenseWatermark.js +3 -1
- package/dist/crud/components/CrudCardLink.d.ts +17 -0
- package/dist/crud/components/CrudCardLink.d.ts.map +1 -0
- package/dist/crud/components/CrudCardLink.js +17 -0
- package/dist/crud/components/EntityCardList.d.ts +1 -1
- package/dist/crud/components/EntityCardList.d.ts.map +1 -1
- package/dist/crud/components/EntityCardList.js +38 -90
- package/dist/crud/components/EntityDisplayRenderer.d.ts +1 -1
- package/dist/crud/components/EntityDisplayRenderer.d.ts.map +1 -1
- package/dist/crud/components/EntityDisplayRenderer.js +11 -3
- package/dist/crud/components/EntityFormRenderer.d.ts +1 -1
- package/dist/crud/components/EntityFormRenderer.d.ts.map +1 -1
- package/dist/crud/components/EntityFormRenderer.js +34 -40
- package/dist/crud/components/EntityList.d.ts +1 -1
- package/dist/crud/components/EntityList.d.ts.map +1 -1
- package/dist/crud/components/EntityList.js +1 -1
- package/dist/crud/components/EntityRecommendations.d.ts +29 -0
- package/dist/crud/components/EntityRecommendations.d.ts.map +1 -0
- package/dist/crud/components/EntityRecommendations.js +32 -0
- package/dist/crud/components/index.d.ts +2 -1
- package/dist/crud/components/index.d.ts.map +1 -1
- package/dist/crud/components/index.js +1 -0
- package/dist/dndev.css +1021 -196
- package/dist/index.js +4 -4
- package/dist/internal/common/RouteErrorFallback.d.ts.map +1 -1
- package/dist/internal/devtools/components/AuthDebugButton.js +1 -1
- package/dist/internal/devtools/components/DesignTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/DesignTab.js +3 -2
- package/dist/internal/devtools/components/LayoutReset.d.ts.map +1 -1
- package/dist/internal/devtools/components/LayoutReset.js +2 -0
- package/dist/internal/devtools/components/StoresTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/StoresTab.js +3 -0
- package/dist/internal/devtools/utils/envVarDiscovery.d.ts +1 -0
- package/dist/internal/devtools/utils/envVarDiscovery.d.ts.map +1 -1
- package/dist/internal/devtools/utils/envVarDiscovery.js +5 -0
- package/dist/internal/devtools/utils/virtualModuleInspector.d.ts.map +1 -1
- package/dist/internal/devtools/utils/virtualModuleInspector.js +27 -21
- package/dist/internal/initializers/BaseStoresInitializer.d.ts.map +1 -1
- package/dist/internal/initializers/BaseStoresInitializer.js +30 -6
- package/dist/internal/layout/components/AutoMetaTags.d.ts.map +1 -1
- package/dist/internal/layout/components/AutoMetaTags.js +10 -8
- package/dist/internal/layout/components/FontPreloadLinks.d.ts +16 -0
- package/dist/internal/layout/components/FontPreloadLinks.d.ts.map +1 -0
- package/dist/internal/layout/components/FontPreloadLinks.js +32 -0
- package/dist/internal/layout/components/PerformanceHints.d.ts +7 -12
- package/dist/internal/layout/components/PerformanceHints.d.ts.map +1 -1
- package/dist/internal/layout/components/PerformanceHints.js +8 -12
- package/dist/internal/layout/components/footer/useLegalLinks.d.ts +6 -5
- package/dist/internal/layout/components/footer/useLegalLinks.d.ts.map +1 -1
- package/dist/internal/layout/components/footer/useLegalLinks.js +6 -2
- package/dist/internal/layout/zones/DnDevFooter.d.ts +6 -0
- package/dist/internal/layout/zones/DnDevFooter.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevFooter.js +10 -4
- package/dist/internal/layout/zones/DnDevHeader.d.ts +7 -0
- package/dist/internal/layout/zones/DnDevHeader.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevHeader.js +7 -0
- package/dist/internal/layout/zones/DnDevMergedBar.d.ts +7 -0
- package/dist/internal/layout/zones/DnDevMergedBar.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevMergedBar.js +9 -0
- package/dist/internal/layout/zones/DnDevSidebar.d.ts +4 -0
- package/dist/internal/layout/zones/DnDevSidebar.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevSidebar.js +13 -1
- package/dist/internal/providers/NavigationProvider.d.ts.map +1 -1
- package/dist/internal/providers/NavigationProvider.js +3 -5
- package/dist/next.d.ts +1 -0
- package/dist/next.d.ts.map +1 -1
- package/dist/next.js +1 -0
- package/dist/providers/ViteAppProviders.d.ts.map +1 -1
- package/dist/providers/ViteAppProviders.js +3 -5
- package/dist/routing/AuthGuard.d.ts +1 -1
- package/dist/routing/AuthGuard.d.ts.map +1 -1
- package/dist/routing/AuthGuard.js +3 -1
- package/dist/routing/GoTo.d.ts.map +1 -1
- package/dist/routing/GoTo.js +3 -1
- package/dist/routing/GoToDialog.d.ts.map +1 -1
- package/dist/routing/GoToDialog.js +2 -7
- package/dist/routing/GoToInput.d.ts +0 -3
- package/dist/routing/GoToInput.d.ts.map +1 -1
- package/dist/routing/GoToInput.js +8 -7
- package/dist/routing/Link.js +1 -1
- package/dist/routing/NavigationItem.d.ts +29 -7
- package/dist/routing/NavigationItem.d.ts.map +1 -1
- package/dist/routing/NavigationItem.js +22 -6
- package/dist/routing/hooks/hooks.next.js +1 -1
- package/dist/routing/hooks/hooks.vite.js +1 -1
- 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 +1 -7
- 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 +1 -7
- package/dist/routing/hooks/useRedirectGuard.next.d.ts.map +1 -1
- package/dist/routing/hooks/useRedirectGuard.next.js +9 -8
- package/dist/routing/hooks/useRedirectGuard.vite.d.ts.map +1 -1
- package/dist/routing/hooks/useRedirectGuard.vite.js +9 -8
- package/dist/routing/hooks/useSearchParams.next.d.ts +18 -1
- package/dist/routing/hooks/useSearchParams.next.d.ts.map +1 -1
- package/dist/routing/hooks/useSearchParams.next.js +16 -0
- package/dist/routing/hooks/useSearchParams.vite.d.ts +16 -0
- package/dist/routing/hooks/useSearchParams.vite.d.ts.map +1 -1
- package/dist/routing/hooks/useSearchParams.vite.js +17 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +2 -0
- package/dist/routing/useNavigation.d.ts +30 -0
- package/dist/routing/useNavigation.d.ts.map +1 -1
- package/dist/routing/useNavigation.js +40 -3
- package/dist/routing/useRouteDiscovery.d.ts +6 -17
- package/dist/routing/useRouteDiscovery.d.ts.map +1 -1
- package/dist/routing/useRouteDiscovery.js +16 -9
- package/dist/styles/index.css +284 -88
- 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/sanitizeSvg.d.ts +13 -0
- package/dist/utils/sanitizeSvg.d.ts.map +1 -0
- package/dist/utils/sanitizeSvg.js +47 -0
- package/dist/utils/useBillingVisibility.d.ts.map +1 -1
- package/dist/utils/useBillingVisibility.js +0 -7
- package/dist/utils/useCrudSafe.d.ts +0 -2
- package/dist/utils/useCrudSafe.d.ts.map +1 -1
- package/dist/utils/useFormStoreSafe.d.ts +5 -16
- package/dist/utils/useFormStoreSafe.d.ts.map +1 -1
- package/dist/utils/useFormStoreSafe.js +6 -37
- package/dist/vite-routing/AppRoutes.d.ts +19 -8
- package/dist/vite-routing/AppRoutes.d.ts.map +1 -1
- package/dist/vite-routing/AppRoutes.js +0 -3
- package/dist/vite-routing/RootLayout.d.ts.map +1 -1
- package/dist/vite-routing/RootLayout.js +10 -15
- package/package.json +16 -12
- package/assets/fonts/fonts.css +0 -206
- package/dist/routing/Navigate.d.ts +0 -10
- package/dist/routing/Navigate.d.ts.map +0 -1
- package/dist/routing/Navigate.js +0 -10
package/dist/styles/index.css
CHANGED
|
@@ -121,6 +121,15 @@
|
|
|
121
121
|
--popover: var(--card);
|
|
122
122
|
--popover-foreground: var(--card-foreground);
|
|
123
123
|
|
|
124
|
+
/*
|
|
125
|
+
* Root card snapshot — computed once on :root from --card/--card-foreground,
|
|
126
|
+
* then inherited unchanged. Variant blocks (e.g. primary) override --card but
|
|
127
|
+
* never touch these, so data-variant='default' can reset --card back to the
|
|
128
|
+
* root value even when nested inside another variant.
|
|
129
|
+
*/
|
|
130
|
+
--card-base: var(--card);
|
|
131
|
+
--card-foreground-base: var(--card-foreground);
|
|
132
|
+
|
|
124
133
|
/* ===========================
|
|
125
134
|
BORDER RADIUS - 3 VALUES ONLY
|
|
126
135
|
=========================== */
|
|
@@ -216,6 +225,16 @@
|
|
|
216
225
|
-6px 12px 24px -6px var(--shadow-color),
|
|
217
226
|
-3px 6px 12px -3px var(--shadow-color-light);
|
|
218
227
|
|
|
228
|
+
/* Root shadow snapshots — same principle as --card-base (see above) */
|
|
229
|
+
--shadow-md-base: var(--shadow-md);
|
|
230
|
+
--shadow-xl-base: var(--shadow-xl);
|
|
231
|
+
|
|
232
|
+
/* Per-variant shadows — essences override these with different colors/shapes */
|
|
233
|
+
--shadow-primary: var(--shadow-md);
|
|
234
|
+
--shadow-primary-xl: var(--shadow-xl);
|
|
235
|
+
--shadow-secondary: var(--shadow-md);
|
|
236
|
+
--shadow-secondary-xl: var(--shadow-xl);
|
|
237
|
+
|
|
219
238
|
/* Interactive shadows */
|
|
220
239
|
--shadow-interactive: 0 0 0 3px
|
|
221
240
|
color-mix(in oklab, var(--ring) 20%, transparent);
|
|
@@ -519,7 +538,6 @@ body {
|
|
|
519
538
|
/* Reset and base styles */
|
|
520
539
|
|
|
521
540
|
:root {
|
|
522
|
-
font-family: var(--font-sans);
|
|
523
541
|
-webkit-font-smoothing: antialiased;
|
|
524
542
|
-moz-osx-font-smoothing: grayscale;
|
|
525
543
|
text-rendering: optimizeLegibility;
|
|
@@ -533,9 +551,10 @@ body {
|
|
|
533
551
|
box-sizing: border-box;
|
|
534
552
|
}
|
|
535
553
|
|
|
536
|
-
/* Set core body defaults */
|
|
554
|
+
/* Set core body defaults — font-family here so theme tokens on :root cascade cleanly */
|
|
537
555
|
|
|
538
556
|
body {
|
|
557
|
+
font-family: var(--font-family, var(--font-sans));
|
|
539
558
|
min-height: 100dvh;
|
|
540
559
|
line-height: var(--line-height);
|
|
541
560
|
text-rendering: optimizeSpeed;
|
|
@@ -610,17 +629,21 @@ h6 {
|
|
|
610
629
|
color: var(--foreground);
|
|
611
630
|
background: transparent;
|
|
612
631
|
text-wrap: balance; /* Equalize line lengths, prevent orphans */
|
|
632
|
+
text-transform: var(--text-transform-heading, none);
|
|
633
|
+
letter-spacing: var(--letter-spacing-heading, normal);
|
|
613
634
|
}
|
|
614
635
|
|
|
615
|
-
h1 {
|
|
636
|
+
:is(h1, h2, h3, h4, h5, h6) {
|
|
616
637
|
font-family: var(--font-headline);
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
h1 {
|
|
617
641
|
font-size: var(--font-size-3xl);
|
|
618
642
|
font-weight: var(--font-weight-bold);
|
|
619
643
|
letter-spacing: -0.02em;
|
|
620
644
|
}
|
|
621
645
|
|
|
622
646
|
h2 {
|
|
623
|
-
font-family: var(--font-headline);
|
|
624
647
|
font-size: var(--font-size-2xl);
|
|
625
648
|
font-weight: var(--font-weight-bold);
|
|
626
649
|
letter-spacing: -0.01em;
|
|
@@ -1051,10 +1074,20 @@ em {
|
|
|
1051
1074
|
* - accent: Highlighted/active state (--accent colors, sets context for children)
|
|
1052
1075
|
* - destructive: Error/danger state (--destructive colors)
|
|
1053
1076
|
*
|
|
1054
|
-
* Variants
|
|
1077
|
+
* Variants override --card and --card-foreground.
|
|
1078
|
+
* Primary/secondary also override --shadow-md/--shadow-xl for per-variant shadows.
|
|
1079
|
+
* Default resets --card from --card-base (root snapshot) so nested default cards
|
|
1080
|
+
* inside other variants get the root card color, not the parent's.
|
|
1055
1081
|
* Surface glow gradient is computed from --theme-is-dark flag and not affected by variants.
|
|
1056
1082
|
*/
|
|
1057
1083
|
|
|
1084
|
+
.dndev-surface[data-variant='default'] {
|
|
1085
|
+
--card: var(--card-base);
|
|
1086
|
+
--card-foreground: var(--card-foreground-base);
|
|
1087
|
+
--shadow-md: var(--shadow-md-base);
|
|
1088
|
+
--shadow-xl: var(--shadow-xl-base);
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1058
1091
|
.dndev-surface[data-variant='muted'] {
|
|
1059
1092
|
--card: var(--muted);
|
|
1060
1093
|
--card-foreground: var(--muted-foreground);
|
|
@@ -1064,12 +1097,16 @@ em {
|
|
|
1064
1097
|
.dndev-surface[data-variant='primary'] {
|
|
1065
1098
|
--card: var(--primary);
|
|
1066
1099
|
--card-foreground: var(--primary-foreground);
|
|
1100
|
+
--shadow-md: var(--shadow-primary);
|
|
1101
|
+
--shadow-xl: var(--shadow-primary-xl);
|
|
1067
1102
|
border-color: var(--primary);
|
|
1068
1103
|
}
|
|
1069
1104
|
|
|
1070
1105
|
.dndev-surface[data-variant='secondary'] {
|
|
1071
1106
|
--card: var(--secondary);
|
|
1072
1107
|
--card-foreground: var(--secondary-foreground);
|
|
1108
|
+
--shadow-md: var(--shadow-secondary);
|
|
1109
|
+
--shadow-xl: var(--shadow-secondary-xl);
|
|
1073
1110
|
border-color: var(--secondary);
|
|
1074
1111
|
}
|
|
1075
1112
|
|
|
@@ -1351,6 +1388,7 @@ em {
|
|
|
1351
1388
|
border-radius: var(--radius-interactive);
|
|
1352
1389
|
font-size: var(--font-size-base);
|
|
1353
1390
|
font-weight: var(--font-weight-medium);
|
|
1391
|
+
text-transform: var(--text-transform-button, none);
|
|
1354
1392
|
transition: var(--transition-fast);
|
|
1355
1393
|
cursor: pointer;
|
|
1356
1394
|
border: var(--border-hairline) solid transparent;
|
|
@@ -1641,6 +1679,7 @@ em {
|
|
|
1641
1679
|
overflow: hidden;
|
|
1642
1680
|
text-overflow: ellipsis;
|
|
1643
1681
|
white-space: nowrap;
|
|
1682
|
+
text-transform: var(--text-transform-label, none);
|
|
1644
1683
|
}
|
|
1645
1684
|
|
|
1646
1685
|
/* Compact mode - always hide label */
|
|
@@ -1706,7 +1745,8 @@ em {
|
|
|
1706
1745
|
|
|
1707
1746
|
.dndev-control[data-state='checked'],.dndev-control[data-state='on'],.dndev-control[data-pressed='true'] {
|
|
1708
1747
|
background-color: var(--control-border);
|
|
1709
|
-
|
|
1748
|
+
/* --card not --background: inverted text must be opaque (--background can be transparent in some themes) */
|
|
1749
|
+
color: var(--card);
|
|
1710
1750
|
}
|
|
1711
1751
|
|
|
1712
1752
|
/* CONTROL GROUP - Shared pattern for grouped controls (RadioGroup, Checkbox groups) */
|
|
@@ -2012,7 +2052,7 @@ em {
|
|
|
2012
2052
|
height: var(--icon-md);
|
|
2013
2053
|
border: 2px solid currentColor;
|
|
2014
2054
|
border-radius: var(--radius-full);
|
|
2015
|
-
border-
|
|
2055
|
+
border-inline-end-color: transparent;
|
|
2016
2056
|
animation: spin 1s linear infinite;
|
|
2017
2057
|
}
|
|
2018
2058
|
|
|
@@ -2352,7 +2392,6 @@ em {
|
|
|
2352
2392
|
flex-shrink: 0;
|
|
2353
2393
|
overflow: hidden;
|
|
2354
2394
|
border-radius: var(--radius-full);
|
|
2355
|
-
border: 1px solid var(--border);
|
|
2356
2395
|
}
|
|
2357
2396
|
|
|
2358
2397
|
.dndev-avatar-image {
|
|
@@ -2809,8 +2848,7 @@ em {
|
|
|
2809
2848
|
.dndev-calendar-nav {
|
|
2810
2849
|
position: absolute;
|
|
2811
2850
|
top: 0;
|
|
2812
|
-
|
|
2813
|
-
right: 0;
|
|
2851
|
+
inset-inline: 0;
|
|
2814
2852
|
height: var(--touch-target);
|
|
2815
2853
|
pointer-events: none;
|
|
2816
2854
|
z-index: 1;
|
|
@@ -2840,13 +2878,13 @@ em {
|
|
|
2840
2878
|
}
|
|
2841
2879
|
|
|
2842
2880
|
.dndev-calendar-nav-previous {
|
|
2843
|
-
|
|
2881
|
+
inset-inline-start: 0;
|
|
2844
2882
|
border-start-start-radius: 0;
|
|
2845
2883
|
border-end-start-radius: 0;
|
|
2846
2884
|
}
|
|
2847
2885
|
|
|
2848
2886
|
.dndev-calendar-nav-next {
|
|
2849
|
-
|
|
2887
|
+
inset-inline-end: 0;
|
|
2850
2888
|
border-start-end-radius: 0;
|
|
2851
2889
|
border-end-end-radius: 0;
|
|
2852
2890
|
}
|
|
@@ -3092,13 +3130,10 @@ em {
|
|
|
3092
3130
|
background: var(--muted);
|
|
3093
3131
|
}
|
|
3094
3132
|
|
|
3095
|
-
.dndev-cta[data-tone='elevated'] {
|
|
3096
|
-
background: var(--background);
|
|
3097
|
-
}
|
|
3098
|
-
|
|
3099
3133
|
.dndev-cta[data-tone='contrast'] {
|
|
3100
3134
|
background: var(--foreground);
|
|
3101
|
-
|
|
3135
|
+
/* --card not --background: inverted text must be opaque (--background can be transparent in some themes) */
|
|
3136
|
+
color: var(--card);
|
|
3102
3137
|
}
|
|
3103
3138
|
|
|
3104
3139
|
.dndev-cta[data-tone='accent'] {
|
|
@@ -3153,7 +3188,8 @@ em {
|
|
|
3153
3188
|
|
|
3154
3189
|
.dndev-cta-actions .dndev-interactive[data-variant='primary'] {
|
|
3155
3190
|
background: var(--foreground);
|
|
3156
|
-
|
|
3191
|
+
/* --card not --background: inverted text must be opaque */
|
|
3192
|
+
color: var(--card);
|
|
3157
3193
|
border-color: var(--foreground);
|
|
3158
3194
|
}
|
|
3159
3195
|
|
|
@@ -3171,7 +3207,8 @@ em {
|
|
|
3171
3207
|
|
|
3172
3208
|
:is(.dndev-cta-actions .dndev-interactive[data-variant='outline']):hover {
|
|
3173
3209
|
background: var(--foreground);
|
|
3174
|
-
|
|
3210
|
+
/* --card not --background: inverted text must be opaque */
|
|
3211
|
+
color: var(--card);
|
|
3175
3212
|
border-color: var(--foreground);
|
|
3176
3213
|
}
|
|
3177
3214
|
|
|
@@ -3386,7 +3423,7 @@ em {
|
|
|
3386
3423
|
justify-content: space-between;
|
|
3387
3424
|
align-items: center;
|
|
3388
3425
|
width: 100%;
|
|
3389
|
-
text-align:
|
|
3426
|
+
text-align: start;
|
|
3390
3427
|
}
|
|
3391
3428
|
|
|
3392
3429
|
.dndev-combobox-trigger button {
|
|
@@ -3543,6 +3580,10 @@ em {
|
|
|
3543
3580
|
flex-shrink: 0;
|
|
3544
3581
|
}
|
|
3545
3582
|
|
|
3583
|
+
.dndev-combobox-create-btn:hover {
|
|
3584
|
+
opacity: 0.8;
|
|
3585
|
+
}
|
|
3586
|
+
|
|
3546
3587
|
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon svg,
|
|
3547
3588
|
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon > * {
|
|
3548
3589
|
transform: rotate(180deg);
|
|
@@ -3728,8 +3769,9 @@ em {
|
|
|
3728
3769
|
}
|
|
3729
3770
|
|
|
3730
3771
|
.dndev-code-line-number {
|
|
3731
|
-
line-height:
|
|
3732
|
-
|
|
3772
|
+
line-height: 1.5;
|
|
3773
|
+
min-height: 1.5em;
|
|
3774
|
+
font-size: inherit;
|
|
3733
3775
|
}
|
|
3734
3776
|
|
|
3735
3777
|
.dndev-code-code {
|
|
@@ -3749,7 +3791,21 @@ em {
|
|
|
3749
3791
|
.dndev-code-code code {
|
|
3750
3792
|
line-height: inherit;
|
|
3751
3793
|
font-size: inherit;
|
|
3752
|
-
|
|
3794
|
+
}
|
|
3795
|
+
|
|
3796
|
+
/* Shiki wraps each line in <span class="line"> — force consistent sizing */
|
|
3797
|
+
|
|
3798
|
+
.dndev-code-code .line {
|
|
3799
|
+
display: block;
|
|
3800
|
+
line-height: 1.5;
|
|
3801
|
+
font-size: inherit;
|
|
3802
|
+
min-height: 1.5em;
|
|
3803
|
+
}
|
|
3804
|
+
|
|
3805
|
+
/* Empty Shiki lines still need height to stay in sync with line numbers */
|
|
3806
|
+
|
|
3807
|
+
.dndev-code-code .line:empty::after {
|
|
3808
|
+
content: '\00a0';
|
|
3753
3809
|
}
|
|
3754
3810
|
|
|
3755
3811
|
/* packages/components/src/atomic/Command/Command.css */
|
|
@@ -3913,7 +3969,7 @@ em {
|
|
|
3913
3969
|
order: 3;
|
|
3914
3970
|
font-size: var(--font-size-xs);
|
|
3915
3971
|
color: var(--muted-foreground);
|
|
3916
|
-
padding-
|
|
3972
|
+
padding-inline-start: calc(var(--icon-md) + var(--gap-sm));
|
|
3917
3973
|
}
|
|
3918
3974
|
|
|
3919
3975
|
.dndev-command-favorite-button {
|
|
@@ -4199,6 +4255,54 @@ em {
|
|
|
4199
4255
|
}
|
|
4200
4256
|
}
|
|
4201
4257
|
|
|
4258
|
+
/* Responsive templateColumns via custom properties */
|
|
4259
|
+
|
|
4260
|
+
.dndev-grid-component[data-responsive-tpl='true'] {
|
|
4261
|
+
grid-template-columns: var(--grid-tpl-mobile);
|
|
4262
|
+
}
|
|
4263
|
+
|
|
4264
|
+
@media (min-width: 768px) {
|
|
4265
|
+
.dndev-grid-component[data-responsive-tpl='true'] {
|
|
4266
|
+
grid-template-columns: var(--grid-tpl-tablet);
|
|
4267
|
+
}
|
|
4268
|
+
}
|
|
4269
|
+
|
|
4270
|
+
@media (min-width: 1024px) {
|
|
4271
|
+
.dndev-grid-component[data-responsive-tpl='true'] {
|
|
4272
|
+
grid-template-columns: var(--grid-tpl-laptop);
|
|
4273
|
+
}
|
|
4274
|
+
}
|
|
4275
|
+
|
|
4276
|
+
@media (min-width: 1440px) {
|
|
4277
|
+
.dndev-grid-component[data-responsive-tpl='true'] {
|
|
4278
|
+
grid-template-columns: var(--grid-tpl-desktop);
|
|
4279
|
+
}
|
|
4280
|
+
}
|
|
4281
|
+
|
|
4282
|
+
/* Responsive grid areas via custom properties */
|
|
4283
|
+
|
|
4284
|
+
.dndev-grid-component[data-responsive-areas='true'] {
|
|
4285
|
+
grid-template-areas: var(--grid-areas-mobile);
|
|
4286
|
+
}
|
|
4287
|
+
|
|
4288
|
+
@media (min-width: 768px) {
|
|
4289
|
+
.dndev-grid-component[data-responsive-areas='true'] {
|
|
4290
|
+
grid-template-areas: var(--grid-areas-tablet);
|
|
4291
|
+
}
|
|
4292
|
+
}
|
|
4293
|
+
|
|
4294
|
+
@media (min-width: 1024px) {
|
|
4295
|
+
.dndev-grid-component[data-responsive-areas='true'] {
|
|
4296
|
+
grid-template-areas: var(--grid-areas-laptop);
|
|
4297
|
+
}
|
|
4298
|
+
}
|
|
4299
|
+
|
|
4300
|
+
@media (min-width: 1440px) {
|
|
4301
|
+
.dndev-grid-component[data-responsive-areas='true'] {
|
|
4302
|
+
grid-template-areas: var(--grid-areas-desktop);
|
|
4303
|
+
}
|
|
4304
|
+
}
|
|
4305
|
+
|
|
4202
4306
|
/* Spacing from CSS variables */
|
|
4203
4307
|
|
|
4204
4308
|
.dndev-grid-component[data-gap='none'] {
|
|
@@ -4512,7 +4616,8 @@ em {
|
|
|
4512
4616
|
height: 44px;
|
|
4513
4617
|
border: none;
|
|
4514
4618
|
border-radius: var(--radius-full);
|
|
4515
|
-
background
|
|
4619
|
+
/* --card not --background: surface must be opaque */
|
|
4620
|
+
background-color: var(--card);
|
|
4516
4621
|
color: var(--foreground);
|
|
4517
4622
|
cursor: pointer;
|
|
4518
4623
|
opacity: 0;
|
|
@@ -5079,7 +5184,7 @@ input[type='number'] {
|
|
|
5079
5184
|
}
|
|
5080
5185
|
|
|
5081
5186
|
.dndev-nav-menu-content {
|
|
5082
|
-
|
|
5187
|
+
inset-inline-start: 0;
|
|
5083
5188
|
top: 0;
|
|
5084
5189
|
width: 100%;
|
|
5085
5190
|
}
|
|
@@ -5094,7 +5199,7 @@ input[type='number'] {
|
|
|
5094
5199
|
|
|
5095
5200
|
.dndev-nav-menu-viewport-wrapper {
|
|
5096
5201
|
position: absolute;
|
|
5097
|
-
|
|
5202
|
+
inset-inline-start: 0;
|
|
5098
5203
|
top: 100%;
|
|
5099
5204
|
display: flex;
|
|
5100
5205
|
justify-content: center;
|
|
@@ -5134,7 +5239,7 @@ input[type='number'] {
|
|
|
5134
5239
|
height: var(--gap-sm);
|
|
5135
5240
|
width: var(--gap-sm);
|
|
5136
5241
|
transform: rotate(45deg);
|
|
5137
|
-
border-
|
|
5242
|
+
border-start-start-radius: 2px;
|
|
5138
5243
|
background-color: var(--border);
|
|
5139
5244
|
box-shadow: var(--shadow-md);
|
|
5140
5245
|
}
|
|
@@ -5305,19 +5410,34 @@ input[type='number'] {
|
|
|
5305
5410
|
}
|
|
5306
5411
|
|
|
5307
5412
|
.dndev-pagination-size-label {
|
|
5308
|
-
margin-
|
|
5413
|
+
margin-inline-end: var(--gap-sm);
|
|
5309
5414
|
}
|
|
5310
5415
|
|
|
5311
5416
|
.dndev-pagination-nav {
|
|
5312
5417
|
justify-content: flex-end;
|
|
5313
5418
|
width: auto;
|
|
5314
|
-
margin-
|
|
5315
|
-
/* Push to
|
|
5419
|
+
margin-inline-start: auto;
|
|
5420
|
+
/* Push to end */
|
|
5316
5421
|
}
|
|
5317
5422
|
}
|
|
5318
5423
|
|
|
5319
5424
|
/* packages/components/src/atomic/Popover/Popover.css */
|
|
5320
5425
|
|
|
5426
|
+
/* Popover content width constraints and wrapping */
|
|
5427
|
+
|
|
5428
|
+
/* Targets Radix UI PopoverContent element */
|
|
5429
|
+
|
|
5430
|
+
[data-radix-popover-content],
|
|
5431
|
+
.dndev-floating[data-radix-popover-content] {
|
|
5432
|
+
max-width: min(90vw, 400px);
|
|
5433
|
+
width: -moz-max-content;
|
|
5434
|
+
width: max-content;
|
|
5435
|
+
min-width: 0;
|
|
5436
|
+
word-wrap: break-word;
|
|
5437
|
+
overflow-wrap: break-word;
|
|
5438
|
+
white-space: normal;
|
|
5439
|
+
}
|
|
5440
|
+
|
|
5321
5441
|
/* packages/components/src/atomic/Progress/Progress.css */
|
|
5322
5442
|
|
|
5323
5443
|
.dndev-progress {
|
|
@@ -5662,9 +5782,10 @@ input[type='number'] {
|
|
|
5662
5782
|
/* Content wrapper: constrained + centered + padded */
|
|
5663
5783
|
|
|
5664
5784
|
.dndev-section-content {
|
|
5665
|
-
/* Respects PageContainer's --content-width */
|
|
5785
|
+
/* Respects PageContainer's --content-width (passed through breakthrough root) */
|
|
5666
5786
|
max-width: var(--content-width);
|
|
5667
5787
|
margin-inline: auto;
|
|
5788
|
+
min-width: 0; /* Allow shrinking so max-width wins when content would force wider */
|
|
5668
5789
|
/* Padding with section background - responsive to match PageContainer */
|
|
5669
5790
|
padding-inline: var(--gap-md);
|
|
5670
5791
|
padding-top: var(--gap-lg);
|
|
@@ -5912,6 +6033,9 @@ input[type='number'] {
|
|
|
5912
6033
|
|
|
5913
6034
|
/* Sheet positioning by side - SPATIAL METAPHOR */
|
|
5914
6035
|
|
|
6036
|
+
/* Physical properties intentional: Sheet anchors to viewport edges regardless of text direction.
|
|
6037
|
+
Logical inset-inline would incorrectly swap sides in RTL for left/right sheet variants. */
|
|
6038
|
+
|
|
5915
6039
|
/* RIGHT / LEFT (Desktop Panels) */
|
|
5916
6040
|
|
|
5917
6041
|
.dndev-sheet-content[data-side='right'],.dndev-sheet-content[data-side='left'] {
|
|
@@ -5952,8 +6076,7 @@ input[type='number'] {
|
|
|
5952
6076
|
max-height: 92dvh;
|
|
5953
6077
|
/* Never touch top edge */
|
|
5954
6078
|
width: 100%;
|
|
5955
|
-
margin-
|
|
5956
|
-
margin-right: auto;
|
|
6079
|
+
margin-inline: auto;
|
|
5957
6080
|
|
|
5958
6081
|
/* On larger screens, constrain width */
|
|
5959
6082
|
}
|
|
@@ -5972,16 +6095,16 @@ input[type='number'] {
|
|
|
5972
6095
|
top: 0;
|
|
5973
6096
|
border-bottom: var(--border-hairline) solid var(--line-1);
|
|
5974
6097
|
/* Rounded bottom corners only */
|
|
5975
|
-
border-
|
|
5976
|
-
border-
|
|
6098
|
+
border-end-start-radius: var(--radius-lg);
|
|
6099
|
+
border-end-end-radius: var(--radius-lg);
|
|
5977
6100
|
}
|
|
5978
6101
|
|
|
5979
6102
|
.dndev-sheet-content[data-side='bottom'] {
|
|
5980
6103
|
bottom: 0;
|
|
5981
6104
|
border-top: var(--border-hairline) solid var(--line-1);
|
|
5982
6105
|
/* Rounded top corners only */
|
|
5983
|
-
border-
|
|
5984
|
-
border-
|
|
6106
|
+
border-start-start-radius: var(--radius-lg);
|
|
6107
|
+
border-start-end-radius: var(--radius-lg);
|
|
5985
6108
|
}
|
|
5986
6109
|
|
|
5987
6110
|
/* DRAG HANDLE PILL - Visual affordance for draggable sheets */
|
|
@@ -6300,7 +6423,8 @@ input[type='number'] {
|
|
|
6300
6423
|
min-width: 1.25rem;
|
|
6301
6424
|
min-height: 1.25rem;
|
|
6302
6425
|
border-radius: var(--radius-full);
|
|
6303
|
-
background
|
|
6426
|
+
/* --card not --background: surface must be opaque (--background can be transparent in some themes) */
|
|
6427
|
+
background-color: var(--card);
|
|
6304
6428
|
border: 2px solid var(--primary);
|
|
6305
6429
|
box-shadow: var(--shadow-md);
|
|
6306
6430
|
transition: all var(--dur-fast) var(--ease-in-out);
|
|
@@ -6371,7 +6495,8 @@ input[type='number'] {
|
|
|
6371
6495
|
font-size: var(--font-size-xs);
|
|
6372
6496
|
font-weight: var(--font-weight-medium);
|
|
6373
6497
|
color: var(--foreground);
|
|
6374
|
-
background
|
|
6498
|
+
/* --card not --background: surface must be opaque */
|
|
6499
|
+
background-color: var(--card);
|
|
6375
6500
|
padding: 0.125rem 0.375rem;
|
|
6376
6501
|
border-radius: var(--radius-interactive);
|
|
6377
6502
|
box-shadow: var(--shadow-sm);
|
|
@@ -6395,7 +6520,7 @@ input[type='number'] {
|
|
|
6395
6520
|
height: 1em;
|
|
6396
6521
|
border: 2px solid transparent;
|
|
6397
6522
|
border-top-color: var(--primary);
|
|
6398
|
-
border-
|
|
6523
|
+
border-inline-end-color: var(--primary);
|
|
6399
6524
|
border-radius: 50%;
|
|
6400
6525
|
animation: spin 0.6s linear infinite;
|
|
6401
6526
|
display: inline-block;
|
|
@@ -6405,42 +6530,42 @@ input[type='number'] {
|
|
|
6405
6530
|
|
|
6406
6531
|
.dndev-spinner[data-variant='default'] {
|
|
6407
6532
|
border-top-color: var(--foreground);
|
|
6408
|
-
border-
|
|
6533
|
+
border-inline-end-color: var(--foreground);
|
|
6409
6534
|
}
|
|
6410
6535
|
|
|
6411
6536
|
.dndev-spinner[data-variant='muted'] {
|
|
6412
6537
|
border-top-color: var(--muted-foreground);
|
|
6413
|
-
border-
|
|
6538
|
+
border-inline-end-color: var(--muted-foreground);
|
|
6414
6539
|
}
|
|
6415
6540
|
|
|
6416
6541
|
.dndev-spinner[data-variant='primary'] {
|
|
6417
6542
|
border-top-color: var(--primary);
|
|
6418
|
-
border-
|
|
6543
|
+
border-inline-end-color: var(--primary);
|
|
6419
6544
|
}
|
|
6420
6545
|
|
|
6421
6546
|
.dndev-spinner[data-variant='secondary'] {
|
|
6422
6547
|
border-top-color: var(--secondary);
|
|
6423
|
-
border-
|
|
6548
|
+
border-inline-end-color: var(--secondary);
|
|
6424
6549
|
}
|
|
6425
6550
|
|
|
6426
6551
|
.dndev-spinner[data-variant='accent'] {
|
|
6427
6552
|
border-top-color: var(--accent);
|
|
6428
|
-
border-
|
|
6553
|
+
border-inline-end-color: var(--accent);
|
|
6429
6554
|
}
|
|
6430
6555
|
|
|
6431
6556
|
.dndev-spinner[data-variant='success'] {
|
|
6432
6557
|
border-top-color: var(--success);
|
|
6433
|
-
border-
|
|
6558
|
+
border-inline-end-color: var(--success);
|
|
6434
6559
|
}
|
|
6435
6560
|
|
|
6436
6561
|
.dndev-spinner[data-variant='warning'] {
|
|
6437
6562
|
border-top-color: var(--warning);
|
|
6438
|
-
border-
|
|
6563
|
+
border-inline-end-color: var(--warning);
|
|
6439
6564
|
}
|
|
6440
6565
|
|
|
6441
6566
|
.dndev-spinner[data-variant='destructive'] {
|
|
6442
6567
|
border-top-color: var(--destructive);
|
|
6443
|
-
border-
|
|
6568
|
+
border-inline-end-color: var(--destructive);
|
|
6444
6569
|
}
|
|
6445
6570
|
|
|
6446
6571
|
/* Overlay variant - full-page loading */
|
|
@@ -6724,6 +6849,8 @@ input[type='number'] {
|
|
|
6724
6849
|
display: flex;
|
|
6725
6850
|
align-items: center;
|
|
6726
6851
|
justify-content: space-between;
|
|
6852
|
+
gap: var(--gap-md);
|
|
6853
|
+
margin-top: var(--gap-md);
|
|
6727
6854
|
}
|
|
6728
6855
|
|
|
6729
6856
|
.dndev-stepper-info {
|
|
@@ -7163,19 +7290,20 @@ input[type='number'] {
|
|
|
7163
7290
|
word-break: break-word;
|
|
7164
7291
|
border: var(--border-hairline) solid var(--line-2); /* Show clickable area */
|
|
7165
7292
|
|
|
7166
|
-
/* Fallback (no variant): inactive = primary, active = foreground/
|
|
7293
|
+
/* Fallback (no variant): inactive = primary, active = foreground/card */
|
|
7167
7294
|
background-color: var(--primary);
|
|
7168
7295
|
color: var(--primary-foreground);
|
|
7169
7296
|
}
|
|
7170
7297
|
|
|
7171
7298
|
.dndev-interactive[data-role='tab-trigger'][data-state='active'] {
|
|
7172
|
-
background
|
|
7299
|
+
/* --card not --background: active tab surface must be opaque (--background can be transparent in some themes) */
|
|
7300
|
+
background-color: var(--card);
|
|
7173
7301
|
color: var(--foreground);
|
|
7174
7302
|
box-shadow: var(--shadow-sm);
|
|
7175
7303
|
border-color: var(--primary);
|
|
7176
7304
|
}
|
|
7177
7305
|
|
|
7178
|
-
/* Default/Primary variant: inactive = primary, active = foreground/
|
|
7306
|
+
/* Default/Primary variant: inactive = primary, active = foreground/card */
|
|
7179
7307
|
|
|
7180
7308
|
.dndev-interactive[data-role='tab-trigger'][data-variant='default'],.dndev-interactive[data-role='tab-trigger'][data-variant='primary'] {
|
|
7181
7309
|
background-color: var(--primary);
|
|
@@ -7183,13 +7311,14 @@ input[type='number'] {
|
|
|
7183
7311
|
}
|
|
7184
7312
|
|
|
7185
7313
|
[data-state='active']:is(.dndev-interactive[data-role='tab-trigger'][data-variant='default'],.dndev-interactive[data-role='tab-trigger'][data-variant='primary']) {
|
|
7186
|
-
background
|
|
7314
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7315
|
+
background-color: var(--card);
|
|
7187
7316
|
color: var(--foreground);
|
|
7188
7317
|
box-shadow: var(--shadow-sm);
|
|
7189
7318
|
border-color: var(--primary);
|
|
7190
7319
|
}
|
|
7191
7320
|
|
|
7192
|
-
/* Secondary variant: inactive = secondary, active = foreground/
|
|
7321
|
+
/* Secondary variant: inactive = secondary, active = foreground/card */
|
|
7193
7322
|
|
|
7194
7323
|
.dndev-interactive[data-role='tab-trigger'][data-variant='secondary'] {
|
|
7195
7324
|
background-color: var(--secondary);
|
|
@@ -7197,13 +7326,14 @@ input[type='number'] {
|
|
|
7197
7326
|
}
|
|
7198
7327
|
|
|
7199
7328
|
.dndev-interactive[data-role='tab-trigger'][data-variant='secondary'][data-state='active'] {
|
|
7200
|
-
background
|
|
7329
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7330
|
+
background-color: var(--card);
|
|
7201
7331
|
color: var(--foreground);
|
|
7202
7332
|
box-shadow: var(--shadow-sm);
|
|
7203
7333
|
border-color: var(--secondary);
|
|
7204
7334
|
}
|
|
7205
7335
|
|
|
7206
|
-
/* Accent variant: inactive = accent, active = foreground/
|
|
7336
|
+
/* Accent variant: inactive = accent, active = foreground/card */
|
|
7207
7337
|
|
|
7208
7338
|
.dndev-interactive[data-role='tab-trigger'][data-variant='accent'] {
|
|
7209
7339
|
background-color: var(--accent);
|
|
@@ -7211,7 +7341,8 @@ input[type='number'] {
|
|
|
7211
7341
|
}
|
|
7212
7342
|
|
|
7213
7343
|
.dndev-interactive[data-role='tab-trigger'][data-variant='accent'][data-state='active'] {
|
|
7214
|
-
background
|
|
7344
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7345
|
+
background-color: var(--card);
|
|
7215
7346
|
color: var(--foreground);
|
|
7216
7347
|
box-shadow: var(--shadow-sm);
|
|
7217
7348
|
border-color: var(--accent);
|
|
@@ -7231,7 +7362,7 @@ input[type='number'] {
|
|
|
7231
7362
|
border-color: var(--primary);
|
|
7232
7363
|
}
|
|
7233
7364
|
|
|
7234
|
-
/* Warning variant: inactive = warning, active = foreground/
|
|
7365
|
+
/* Warning variant: inactive = warning, active = foreground/card */
|
|
7235
7366
|
|
|
7236
7367
|
.dndev-interactive[data-role='tab-trigger'][data-variant='warning'] {
|
|
7237
7368
|
background-color: var(--warning);
|
|
@@ -7239,13 +7370,14 @@ input[type='number'] {
|
|
|
7239
7370
|
}
|
|
7240
7371
|
|
|
7241
7372
|
.dndev-interactive[data-role='tab-trigger'][data-variant='warning'][data-state='active'] {
|
|
7242
|
-
background
|
|
7373
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7374
|
+
background-color: var(--card);
|
|
7243
7375
|
color: var(--foreground);
|
|
7244
7376
|
box-shadow: var(--shadow-sm);
|
|
7245
7377
|
border-color: var(--warning);
|
|
7246
7378
|
}
|
|
7247
7379
|
|
|
7248
|
-
/* Success variant: inactive = success, active = foreground/
|
|
7380
|
+
/* Success variant: inactive = success, active = foreground/card */
|
|
7249
7381
|
|
|
7250
7382
|
.dndev-interactive[data-role='tab-trigger'][data-variant='success'] {
|
|
7251
7383
|
background-color: var(--success);
|
|
@@ -7253,13 +7385,14 @@ input[type='number'] {
|
|
|
7253
7385
|
}
|
|
7254
7386
|
|
|
7255
7387
|
.dndev-interactive[data-role='tab-trigger'][data-variant='success'][data-state='active'] {
|
|
7256
|
-
background
|
|
7388
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7389
|
+
background-color: var(--card);
|
|
7257
7390
|
color: var(--foreground);
|
|
7258
7391
|
box-shadow: var(--shadow-sm);
|
|
7259
7392
|
border-color: var(--success);
|
|
7260
7393
|
}
|
|
7261
7394
|
|
|
7262
|
-
/* Destructive variant: inactive = destructive, active = foreground/
|
|
7395
|
+
/* Destructive variant: inactive = destructive, active = foreground/card */
|
|
7263
7396
|
|
|
7264
7397
|
.dndev-interactive[data-role='tab-trigger'][data-variant='destructive'] {
|
|
7265
7398
|
background-color: var(--destructive);
|
|
@@ -7267,7 +7400,8 @@ input[type='number'] {
|
|
|
7267
7400
|
}
|
|
7268
7401
|
|
|
7269
7402
|
.dndev-interactive[data-role='tab-trigger'][data-variant='destructive'][data-state='active'] {
|
|
7270
|
-
background
|
|
7403
|
+
/* --card not --background: active tab surface must be opaque */
|
|
7404
|
+
background-color: var(--card);
|
|
7271
7405
|
color: var(--foreground);
|
|
7272
7406
|
box-shadow: var(--shadow-sm);
|
|
7273
7407
|
border-color: var(--destructive);
|
|
@@ -7314,7 +7448,7 @@ input[type='number'] {
|
|
|
7314
7448
|
align-items: center;
|
|
7315
7449
|
justify-content: center;
|
|
7316
7450
|
padding: 0;
|
|
7317
|
-
margin-
|
|
7451
|
+
margin-inline-start: 2px;
|
|
7318
7452
|
background: transparent;
|
|
7319
7453
|
border: none;
|
|
7320
7454
|
cursor: pointer;
|
|
@@ -7477,7 +7611,11 @@ input[type='number'] {
|
|
|
7477
7611
|
border-radius: var(--radius-interactive);
|
|
7478
7612
|
}
|
|
7479
7613
|
|
|
7480
|
-
/* Level overrides */
|
|
7614
|
+
/* Level overrides — headline font for all heading levels */
|
|
7615
|
+
|
|
7616
|
+
.dndev-text-base[data-level^='h'] {
|
|
7617
|
+
font-family: var(--font-headline);
|
|
7618
|
+
}
|
|
7481
7619
|
|
|
7482
7620
|
.dndev-text-base[data-level='h1'] {
|
|
7483
7621
|
font-size: var(--font-size-3xl);
|
|
@@ -7827,7 +7965,8 @@ input[type='number'] {
|
|
|
7827
7965
|
z-index: var(--z-tooltip);
|
|
7828
7966
|
/* Inverted colors for high contrast - industry standard (Vercel, GitHub, Stripe) */
|
|
7829
7967
|
background: var(--foreground);
|
|
7830
|
-
|
|
7968
|
+
/* --card not --background: inverted text must be opaque (--background can be transparent in some themes) */
|
|
7969
|
+
color: var(--card);
|
|
7831
7970
|
box-shadow: var(--shadow-lg); /* Stronger shadow for visibility */
|
|
7832
7971
|
padding: 0.375rem 0.5rem; /* 6px 8px - industry standard */
|
|
7833
7972
|
font-size: var(--font-size-xs); /* 12px */
|
|
@@ -8467,6 +8606,12 @@ input[type='number'] {
|
|
|
8467
8606
|
|
|
8468
8607
|
/* Tone backgrounds - apply directly to section element (like CallToAction) */
|
|
8469
8608
|
|
|
8609
|
+
/* Ghost (default) - transparent, allows background images to show through */
|
|
8610
|
+
|
|
8611
|
+
.dndev-section-full-width[data-tone='ghost'],.dndev-section-full-width:not([data-tone]) {
|
|
8612
|
+
background: transparent;
|
|
8613
|
+
}
|
|
8614
|
+
|
|
8470
8615
|
.dndev-section-full-width[data-tone='base'] {
|
|
8471
8616
|
background: var(--background);
|
|
8472
8617
|
}
|
|
@@ -8475,16 +8620,37 @@ input[type='number'] {
|
|
|
8475
8620
|
background: var(--muted);
|
|
8476
8621
|
}
|
|
8477
8622
|
|
|
8478
|
-
.dndev-section-full-width[data-tone='
|
|
8623
|
+
.dndev-section-full-width[data-tone='contrast'] {
|
|
8479
8624
|
background: var(--background);
|
|
8625
|
+
color: var(--foreground);
|
|
8480
8626
|
}
|
|
8481
8627
|
|
|
8482
|
-
.dndev-section-full-width[data-tone='
|
|
8628
|
+
.dndev-section-full-width[data-tone='accent'] {
|
|
8629
|
+
background: color-mix(in oklab, var(--accent) 5%, transparent);
|
|
8630
|
+
}
|
|
8631
|
+
|
|
8632
|
+
/* HeroSection tone backgrounds - same system as Section/CallToAction */
|
|
8633
|
+
|
|
8634
|
+
/* Ghost (default) - transparent, allows background images to show through */
|
|
8635
|
+
|
|
8636
|
+
.dndev-hero-section[data-tone='ghost'],.dndev-hero-section:not([data-tone]) {
|
|
8637
|
+
background: transparent;
|
|
8638
|
+
}
|
|
8639
|
+
|
|
8640
|
+
.dndev-hero-section[data-tone='base'] {
|
|
8641
|
+
background: var(--background);
|
|
8642
|
+
}
|
|
8643
|
+
|
|
8644
|
+
.dndev-hero-section[data-tone='muted'] {
|
|
8645
|
+
background: var(--muted);
|
|
8646
|
+
}
|
|
8647
|
+
|
|
8648
|
+
.dndev-hero-section[data-tone='contrast'] {
|
|
8483
8649
|
background: var(--background);
|
|
8484
8650
|
color: var(--foreground);
|
|
8485
8651
|
}
|
|
8486
8652
|
|
|
8487
|
-
.dndev-section
|
|
8653
|
+
.dndev-hero-section[data-tone='accent'] {
|
|
8488
8654
|
background: color-mix(in oklab, var(--accent) 5%, transparent);
|
|
8489
8655
|
}
|
|
8490
8656
|
|
|
@@ -8697,10 +8863,7 @@ h4[data-variant='code'] {
|
|
|
8697
8863
|
}
|
|
8698
8864
|
|
|
8699
8865
|
.dndev-inset-0 {
|
|
8700
|
-
|
|
8701
|
-
right: 0;
|
|
8702
|
-
bottom: 0;
|
|
8703
|
-
left: 0;
|
|
8866
|
+
inset: 0;
|
|
8704
8867
|
}
|
|
8705
8868
|
|
|
8706
8869
|
.dndev-inset-y-0 {
|
|
@@ -8708,8 +8871,8 @@ h4[data-variant='code'] {
|
|
|
8708
8871
|
bottom: 0;
|
|
8709
8872
|
}
|
|
8710
8873
|
|
|
8711
|
-
.dndev-
|
|
8712
|
-
|
|
8874
|
+
.dndev-inset-inline-start-0 {
|
|
8875
|
+
inset-inline-start: 0;
|
|
8713
8876
|
}
|
|
8714
8877
|
|
|
8715
8878
|
.dndev-min-h-0 {
|
|
@@ -9326,9 +9489,12 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9326
9489
|
/* Desktop: opt-in via data-footer-mode="scroll" */
|
|
9327
9490
|
|
|
9328
9491
|
.dndev-layout[data-footer-mode='scroll'] {
|
|
9329
|
-
|
|
9492
|
+
height: auto;
|
|
9493
|
+
min-height: 100dvh;
|
|
9494
|
+
max-height: none;
|
|
9495
|
+
overflow-y: visible;
|
|
9330
9496
|
overflow-x: hidden;
|
|
9331
|
-
grid-template-rows: var(--header-height)
|
|
9497
|
+
grid-template-rows: var(--header-height) minmax(calc(100dvh - var(--header-height)), auto) auto;
|
|
9332
9498
|
}
|
|
9333
9499
|
|
|
9334
9500
|
.dndev-layout[data-footer-mode='scroll'] header[role='banner'] {
|
|
@@ -9346,11 +9512,13 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9346
9512
|
.dndev-layout[data-footer-mode='scroll'] main[role='main'] {
|
|
9347
9513
|
overflow-y: visible;
|
|
9348
9514
|
overflow-x: hidden;
|
|
9515
|
+
contain: style;
|
|
9349
9516
|
}
|
|
9350
9517
|
|
|
9351
9518
|
.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo'] {
|
|
9352
9519
|
grid-column: 2 / -1;
|
|
9353
9520
|
height: auto;
|
|
9521
|
+
margin-top: var(--gap-lg);
|
|
9354
9522
|
}
|
|
9355
9523
|
|
|
9356
9524
|
:is(.dndev-layout[data-footer-mode='scroll'] footer[role='contentinfo']) > * {
|
|
@@ -9362,9 +9530,12 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9362
9530
|
|
|
9363
9531
|
@media (width <=1023px) {
|
|
9364
9532
|
.dndev-layout {
|
|
9365
|
-
|
|
9533
|
+
height: auto;
|
|
9534
|
+
min-height: 100dvh;
|
|
9535
|
+
max-height: none;
|
|
9536
|
+
overflow-y: visible;
|
|
9366
9537
|
overflow-x: hidden;
|
|
9367
|
-
grid-template-rows: var(--header-height)
|
|
9538
|
+
grid-template-rows: var(--header-height) minmax(calc(100dvh - var(--header-height)), auto) auto;
|
|
9368
9539
|
}
|
|
9369
9540
|
|
|
9370
9541
|
.dndev-layout header[role='banner'] {
|
|
@@ -9375,10 +9546,12 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
9375
9546
|
.dndev-layout main[role='main'] {
|
|
9376
9547
|
overflow-y: visible;
|
|
9377
9548
|
overflow-x: hidden;
|
|
9549
|
+
contain: style;
|
|
9378
9550
|
}
|
|
9379
9551
|
|
|
9380
9552
|
.dndev-layout footer[role='contentinfo'] {
|
|
9381
9553
|
height: auto;
|
|
9554
|
+
margin-top: var(--gap-lg);
|
|
9382
9555
|
}
|
|
9383
9556
|
|
|
9384
9557
|
:is(.dndev-layout footer[role='contentinfo']) > * {
|
|
@@ -9412,6 +9585,7 @@ header[role='banner'] {
|
|
|
9412
9585
|
position: relative;
|
|
9413
9586
|
z-index: var(--z-header);
|
|
9414
9587
|
contain: layout style;
|
|
9588
|
+
overflow: visible; /* Allow absolutely positioned children's shadows to extend beyond bounds */
|
|
9415
9589
|
|
|
9416
9590
|
/* Container queries support for responsive components */
|
|
9417
9591
|
container-type: inline-size;
|
|
@@ -9425,7 +9599,6 @@ header[role='banner'] {
|
|
|
9425
9599
|
padding-inline-start: var(--content-padding);
|
|
9426
9600
|
padding-inline-end: var(--content-padding);
|
|
9427
9601
|
|
|
9428
|
-
/* Theme-aware styling - 100% controlled by theme system */
|
|
9429
9602
|
background: var(--background);
|
|
9430
9603
|
border-bottom: var(--border-hairline) solid var(--border);
|
|
9431
9604
|
|
|
@@ -9447,7 +9620,11 @@ header[role='banner'] {
|
|
|
9447
9620
|
height: 100%;
|
|
9448
9621
|
max-height: 100%;
|
|
9449
9622
|
gap: var(--gap-sm);
|
|
9450
|
-
overflow:
|
|
9623
|
+
overflow: visible; /* Allow shadows to show */
|
|
9624
|
+
/* Theme-controlled padding for shadows that extend beyond bounds (e.g., brutalist hard-offset shadows) */
|
|
9625
|
+
/* Shadows extend rightward, so only end padding needed */
|
|
9626
|
+
/* Defaults to 0 for themes with diffused shadows that don't extend beyond bounds */
|
|
9627
|
+
padding-inline-end: var(--header-shadow-padding, 0);
|
|
9451
9628
|
}
|
|
9452
9629
|
|
|
9453
9630
|
.header-end {
|
|
@@ -9459,7 +9636,11 @@ header[role='banner'] {
|
|
|
9459
9636
|
max-height: 100%;
|
|
9460
9637
|
margin-inline-start: auto;
|
|
9461
9638
|
gap: var(--gap-sm);
|
|
9462
|
-
overflow:
|
|
9639
|
+
overflow: visible; /* Allow shadows to show */
|
|
9640
|
+
/* Theme-controlled padding for shadows that extend beyond bounds (e.g., brutalist hard-offset shadows) */
|
|
9641
|
+
/* Shadows extend rightward, so only end padding needed */
|
|
9642
|
+
/* Defaults to 0 for themes with diffused shadows that don't extend beyond bounds */
|
|
9643
|
+
padding-inline-end: var(--header-shadow-padding, 0);
|
|
9463
9644
|
}
|
|
9464
9645
|
|
|
9465
9646
|
/* Viewport-centered center content - absolutely positioned overlay */
|
|
@@ -9472,6 +9653,10 @@ header[role='banner'] .header-center {
|
|
|
9472
9653
|
width: -moz-fit-content;
|
|
9473
9654
|
width: fit-content;
|
|
9474
9655
|
z-index: 1;
|
|
9656
|
+
/* Theme-controlled padding for shadows that extend beyond bounds (e.g., brutalist hard-offset shadows) */
|
|
9657
|
+
/* Shadows extend rightward, so only end padding needed */
|
|
9658
|
+
/* Defaults to 0 for themes with diffused shadows that don't extend beyond bounds */
|
|
9659
|
+
padding-inline-end: var(--header-shadow-padding, 0);
|
|
9475
9660
|
}
|
|
9476
9661
|
|
|
9477
9662
|
/* ===========================
|
|
@@ -9762,7 +9947,6 @@ footer[role='contentinfo'] {
|
|
|
9762
9947
|
min-height: var(--footer-height);
|
|
9763
9948
|
z-index: var(--z-footer);
|
|
9764
9949
|
|
|
9765
|
-
/* Theme-aware styling - 100% controlled by theme system */
|
|
9766
9950
|
background: var(--background);
|
|
9767
9951
|
border-top: var(--border-hairline) solid var(--border);
|
|
9768
9952
|
|
|
@@ -9825,8 +10009,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9825
10009
|
|
|
9826
10010
|
.merged-bar {
|
|
9827
10011
|
position: fixed;
|
|
9828
|
-
|
|
9829
|
-
right: 0;
|
|
10012
|
+
inset-inline: 0;
|
|
9830
10013
|
display: none;
|
|
9831
10014
|
/* Hidden by default - CSS shows on mobile */
|
|
9832
10015
|
align-items: center;
|
|
@@ -9835,8 +10018,8 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9835
10018
|
contain: layout style;
|
|
9836
10019
|
|
|
9837
10020
|
/* Safe area padding for notched devices */
|
|
9838
|
-
padding-
|
|
9839
|
-
padding-
|
|
10021
|
+
padding-inline-start: max(var(--content-padding), env(safe-area-inset-left));
|
|
10022
|
+
padding-inline-end: max(var(--content-padding), env(safe-area-inset-right));
|
|
9840
10023
|
}
|
|
9841
10024
|
|
|
9842
10025
|
.merged-bar[data-position='top'] {
|
|
@@ -10181,6 +10364,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10181
10364
|
.dndev-container {
|
|
10182
10365
|
width: 100%;
|
|
10183
10366
|
max-width: var(--content-width);
|
|
10367
|
+
min-width: 0; /* Allow shrinking in flex so max-width wins */
|
|
10184
10368
|
flex: 1 1 auto;
|
|
10185
10369
|
|
|
10186
10370
|
/* First child spacing when enabled */
|
|
@@ -10296,7 +10480,6 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10296
10480
|
|
|
10297
10481
|
.dndev-container > .dndev-section-full-width,
|
|
10298
10482
|
.dndev-container > .dndev-cta,
|
|
10299
|
-
.dndev-container > .dndev-hero-section,
|
|
10300
10483
|
.dndev-container > .dndev-tech-bento {
|
|
10301
10484
|
/* Break out of PageContainer padding and max-width constraint */
|
|
10302
10485
|
/* Account for sidebar: --sidebar-width is 0px for presets without sidebar */
|
|
@@ -10306,6 +10489,19 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
10306
10489
|
/* Eat gap BEFORE section only */
|
|
10307
10490
|
margin-top: calc(-1 * var(--gap-lg));
|
|
10308
10491
|
margin-bottom: 0;
|
|
10492
|
+
/* Pass through so inner content (e.g. .dndev-section-content) can use it */
|
|
10493
|
+
--content-width: var(--max-content-width, 100%);
|
|
10494
|
+
}
|
|
10495
|
+
|
|
10496
|
+
/* HeroSection: only breakthrough when it has fullHeight (needs full viewport background) */
|
|
10497
|
+
|
|
10498
|
+
.dndev-container > .dndev-hero-section[style*='height'] {
|
|
10499
|
+
width: calc(100dvw - var(--sidebar-width));
|
|
10500
|
+
max-width: calc(100dvw - var(--sidebar-width));
|
|
10501
|
+
margin-inline: calc((-50dvw + var(--sidebar-width) / 2) + 50%);
|
|
10502
|
+
margin-top: calc(-1 * var(--gap-lg));
|
|
10503
|
+
margin-bottom: 0;
|
|
10504
|
+
--content-width: var(--max-content-width, 100%);
|
|
10309
10505
|
}
|
|
10310
10506
|
|
|
10311
10507
|
.footer-mobile-button:hover {
|