@donotdev/ui 0.0.6 → 0.0.8
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/assets/fonts/fonts.css +4 -4
- package/dist/components/auth/AuthHeader.d.ts +5 -0
- package/dist/components/auth/AuthHeader.d.ts.map +1 -1
- package/dist/components/auth/AuthHeader.js +22 -8
- package/dist/components/auth/AuthMenu.d.ts +6 -2
- package/dist/components/auth/AuthMenu.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.js +2 -2
- package/dist/components/common/RedirectOverlay.d.ts +37 -0
- package/dist/components/common/RedirectOverlay.d.ts.map +1 -0
- package/dist/components/common/RedirectOverlay.js +243 -0
- package/dist/components/common/index.d.ts +1 -0
- package/dist/components/common/index.d.ts.map +1 -1
- package/dist/components/common/index.js +1 -0
- package/dist/components/layout/components/header/SettingsMenu.d.ts.map +1 -1
- package/dist/components/layout/components/header/SettingsMenu.js +1 -1
- package/dist/crud/components/DisplayFieldRenderer.js +1 -1
- package/dist/dndev.css +517 -90
- package/dist/index.js +4 -4
- package/dist/internal/devtools/components/DesignTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/DesignTab.js +25 -3
- package/dist/internal/layout/components/PerformanceHints.d.ts +64 -0
- package/dist/internal/layout/components/PerformanceHints.d.ts.map +1 -0
- package/dist/internal/layout/components/PerformanceHints.js +88 -0
- package/dist/internal/layout/components/footer/FooterBranding.js +1 -1
- package/dist/internal/layout/config/presets/admin.d.ts +2 -2
- package/dist/internal/layout/config/presets/admin.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/admin.js +8 -4
- package/dist/providers/NextJsAppProviders.d.ts.map +1 -1
- package/dist/providers/NextJsAppProviders.js +5 -1
- package/dist/providers/ViteAppProviders.d.ts.map +1 -1
- package/dist/providers/ViteAppProviders.js +4 -1
- package/dist/routing/hooks/hooks.next.d.ts +1 -0
- package/dist/routing/hooks/hooks.next.d.ts.map +1 -1
- package/dist/routing/hooks/hooks.next.js +1 -1
- package/dist/routing/hooks/hooks.vite.d.ts +1 -0
- package/dist/routing/hooks/hooks.vite.d.ts.map +1 -1
- package/dist/routing/hooks/hooks.vite.js +1 -1
- package/dist/routing/hooks/useRouteParam.next.d.ts +18 -0
- package/dist/routing/hooks/useRouteParam.next.d.ts.map +1 -0
- package/dist/routing/hooks/useRouteParam.next.js +38 -0
- package/dist/routing/hooks/useRouteParam.vite.d.ts +18 -0
- package/dist/routing/hooks/useRouteParam.vite.d.ts.map +1 -0
- package/dist/routing/hooks/useRouteParam.vite.js +38 -0
- package/dist/routing/index.d.ts +1 -1
- package/dist/routing/index.d.ts.map +1 -1
- package/dist/routing/index.js +1 -1
- package/dist/routing/useGoTo.d.ts +3 -4
- package/dist/routing/useGoTo.d.ts.map +1 -1
- package/dist/routing/useGoTo.js +16 -23
- package/dist/styles/index.css +513 -86
- package/dist/utils/useCrudSafe.d.ts.map +1 -1
- package/dist/utils/useCrudSafe.js +2 -1
- package/dist/vite-routing/RootLayout.d.ts.map +1 -1
- package/dist/vite-routing/RootLayout.js +4 -1
- package/package.json +10 -11
package/dist/dndev.css
CHANGED
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
Used by: CSS @media queries, JavaScript hooks, responsive components
|
|
23
23
|
Note: CSS variables don't work in @media, so we use hardcoded px values
|
|
24
24
|
=========================== */
|
|
25
|
-
--breakpoint-mobile: 768px;
|
|
26
|
-
--breakpoint-tablet: 1024px;
|
|
27
|
-
--breakpoint-laptop: 1440px;
|
|
25
|
+
--breakpoint-mobile: 768px; /* < 768 = mobile */
|
|
26
|
+
--breakpoint-tablet: 1024px; /* 768-1023 = tablet */
|
|
27
|
+
--breakpoint-laptop: 1440px; /* 1024-1439 = laptop (key layout split) */
|
|
28
28
|
--breakpoint-desktop: 1920px; /* 1440+ = desktop */
|
|
29
29
|
|
|
30
30
|
/* ===========================
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
--font-headline: var(--font-sans);
|
|
158
158
|
|
|
159
159
|
--font-mono:
|
|
160
|
-
ui-monospace, 'SF Mono', 'Cascadia Code',
|
|
160
|
+
ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, Monaco,
|
|
161
161
|
'Liberation Mono', monospace;
|
|
162
162
|
|
|
163
163
|
/* Typography Scale - Musical Scale System (STANDARD density defaults - Major Third 1.25×) */
|
|
@@ -291,23 +291,39 @@
|
|
|
291
291
|
|
|
292
292
|
[data-density='compact'] {
|
|
293
293
|
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
294
|
-
--font-size-base: clamp(
|
|
295
|
-
|
|
296
|
-
|
|
294
|
+
--font-size-base: clamp(
|
|
295
|
+
0.875rem,
|
|
296
|
+
0.8125rem + 0.25vw,
|
|
297
|
+
0.9375rem
|
|
298
|
+
); /* 14-15px fluid */
|
|
299
|
+
--font-size-lg: clamp(
|
|
300
|
+
1.05rem,
|
|
301
|
+
0.9375rem + 0.5vw,
|
|
302
|
+
1.125rem
|
|
303
|
+
); /* 17-18px fluid */
|
|
304
|
+
--font-size-xl: clamp(
|
|
305
|
+
1.26rem,
|
|
306
|
+
1.125rem + 0.75vw,
|
|
307
|
+
1.375rem
|
|
308
|
+
); /* 20-22px fluid */
|
|
297
309
|
/* Display sizes: Musical scale + fluid responsiveness */
|
|
298
310
|
--font-size-2xl: clamp(
|
|
299
311
|
1.512rem,
|
|
300
312
|
1.375rem + 0.75vw,
|
|
301
313
|
1.625rem
|
|
302
314
|
); /* 24-26px fluid */
|
|
303
|
-
--font-size-3xl: clamp(
|
|
304
|
-
1.814rem,
|
|
305
|
-
1.625rem + 1vw,
|
|
306
|
-
2rem
|
|
307
|
-
); /* 29-32px fluid */
|
|
315
|
+
--font-size-3xl: clamp(1.814rem, 1.625rem + 1vw, 2rem); /* 29-32px fluid */
|
|
308
316
|
--gap-sm: clamp(0.375rem, 0.3125rem + 0.25vw, 0.5rem); /* 6-8px fluid */
|
|
309
|
-
--gap-md: clamp(
|
|
310
|
-
|
|
317
|
+
--gap-md: clamp(
|
|
318
|
+
0.75rem,
|
|
319
|
+
0.625rem + 0.5vw,
|
|
320
|
+
0.875rem
|
|
321
|
+
); /* 12-14px fluid, zoom-safe */
|
|
322
|
+
--gap-lg: clamp(
|
|
323
|
+
1.5rem,
|
|
324
|
+
1.25rem + 1vw,
|
|
325
|
+
1.75rem
|
|
326
|
+
); /* 24-28px fluid, zoom-safe */
|
|
311
327
|
--line-height: 1.2; /* Minor Third - All text */
|
|
312
328
|
}
|
|
313
329
|
|
|
@@ -315,22 +331,34 @@
|
|
|
315
331
|
|
|
316
332
|
[data-density='standard'] {
|
|
317
333
|
/* Base sizes: Fluid responsiveness for all text, zoom-safe */
|
|
318
|
-
--font-size-base: clamp(
|
|
319
|
-
|
|
320
|
-
|
|
334
|
+
--font-size-base: clamp(
|
|
335
|
+
1rem,
|
|
336
|
+
0.9375rem + 0.25vw,
|
|
337
|
+
1.0625rem
|
|
338
|
+
); /* 16-17px fluid */
|
|
339
|
+
--font-size-lg: clamp(
|
|
340
|
+
1.25rem,
|
|
341
|
+
1.125rem + 0.5vw,
|
|
342
|
+
1.375rem
|
|
343
|
+
); /* 20-22px fluid */
|
|
344
|
+
--font-size-xl: clamp(
|
|
345
|
+
1.563rem,
|
|
346
|
+
1.375rem + 0.75vw,
|
|
347
|
+
1.75rem
|
|
348
|
+
); /* 25-28px fluid */
|
|
321
349
|
/* Display sizes: Musical scale + fluid responsiveness */
|
|
322
|
-
--font-size-2xl: clamp(
|
|
323
|
-
1.953rem,
|
|
324
|
-
1.75rem + 1vw,
|
|
325
|
-
2.25rem
|
|
326
|
-
); /* 31-36px fluid */
|
|
350
|
+
--font-size-2xl: clamp(1.953rem, 1.75rem + 1vw, 2.25rem); /* 31-36px fluid */
|
|
327
351
|
--font-size-3xl: clamp(
|
|
328
352
|
2.441rem,
|
|
329
353
|
2rem + 1.5vw,
|
|
330
354
|
3rem
|
|
331
355
|
); /* 39-48px fluid - hero text */
|
|
332
356
|
--gap-sm: clamp(0.5rem, 0.4375rem + 0.25vw, 0.625rem); /* 8-10px fluid */
|
|
333
|
-
--gap-md: clamp(
|
|
357
|
+
--gap-md: clamp(
|
|
358
|
+
1rem,
|
|
359
|
+
0.875rem + 0.5vw,
|
|
360
|
+
1.25rem
|
|
361
|
+
); /* 16-20px fluid, zoom-safe */
|
|
334
362
|
--gap-lg: clamp(2rem, 1.75rem + 1vw, 2.5rem); /* 32-40px fluid, zoom-safe */
|
|
335
363
|
--line-height: 1.25; /* Major Third - All text */
|
|
336
364
|
}
|
|
@@ -585,6 +613,7 @@ h6 {
|
|
|
585
613
|
line-height: var(--line-height);
|
|
586
614
|
color: var(--foreground);
|
|
587
615
|
background: transparent;
|
|
616
|
+
text-wrap: balance; /* Equalize line lengths, prevent orphans */
|
|
588
617
|
}
|
|
589
618
|
|
|
590
619
|
h1 {
|
|
@@ -622,6 +651,7 @@ p {
|
|
|
622
651
|
line-height: var(--line-height);
|
|
623
652
|
color: var(--foreground);
|
|
624
653
|
background: transparent;
|
|
654
|
+
text-wrap: pretty; /* Optimize last line, avoid orphans */
|
|
625
655
|
}
|
|
626
656
|
|
|
627
657
|
ul,
|
|
@@ -631,6 +661,7 @@ ol {
|
|
|
631
661
|
color: var(--foreground);
|
|
632
662
|
background: transparent;
|
|
633
663
|
list-style-position: outside;
|
|
664
|
+
text-wrap: pretty;
|
|
634
665
|
}
|
|
635
666
|
|
|
636
667
|
ul {
|
|
@@ -683,6 +714,16 @@ em {
|
|
|
683
714
|
|
|
684
715
|
/* packages/components/src/styles/patterns.css */
|
|
685
716
|
|
|
717
|
+
/* Menu scroll area pattern - shared by DropdownMenu, Select, Combobox */
|
|
718
|
+
|
|
719
|
+
.dndev-menu-scroll-area {
|
|
720
|
+
max-height: 50dvh;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
.dndev-menu-scroll-area .dndev-scroll-area-viewport {
|
|
724
|
+
max-height: 50dvh;
|
|
725
|
+
}
|
|
726
|
+
|
|
686
727
|
/* ===========================
|
|
687
728
|
FORM COMPONENTS (BASE)
|
|
688
729
|
=========================== */
|
|
@@ -877,6 +918,9 @@ em {
|
|
|
877
918
|
border-radius: var(--radius-surface);
|
|
878
919
|
box-shadow: var(--shadow-md);
|
|
879
920
|
padding: var(--gap-md); /* 1rem / 16px default */
|
|
921
|
+
padding-block-start: calc(
|
|
922
|
+
var(--gap-md) + var(--gap-sm)
|
|
923
|
+
); /* Extra top padding for FloatingLabels */
|
|
880
924
|
position: relative;
|
|
881
925
|
overflow: hidden;
|
|
882
926
|
contain: layout style;
|
|
@@ -1074,8 +1118,10 @@ em {
|
|
|
1074
1118
|
-webkit-backdrop-filter: blur(20px) saturate(180%);
|
|
1075
1119
|
border: var(--border-hairline) solid
|
|
1076
1120
|
color-mix(in oklab, var(--card-foreground) 25%, transparent);
|
|
1077
|
-
box-shadow:
|
|
1078
|
-
|
|
1121
|
+
box-shadow:
|
|
1122
|
+
var(--shadow-lg),
|
|
1123
|
+
inset 0 1px 0 0
|
|
1124
|
+
color-mix(in oklab, var(--card-foreground) 10%, transparent);
|
|
1079
1125
|
}
|
|
1080
1126
|
|
|
1081
1127
|
/* Separator style */
|
|
@@ -1125,6 +1171,9 @@ em {
|
|
|
1125
1171
|
border-radius: var(--radius-floating);
|
|
1126
1172
|
box-shadow: var(--shadow-md);
|
|
1127
1173
|
padding: var(--gap-md); /* 1rem / 16px default */
|
|
1174
|
+
padding-block-start: calc(
|
|
1175
|
+
var(--gap-md) + var(--gap-sm)
|
|
1176
|
+
); /* Extra top padding for FloatingLabels */
|
|
1128
1177
|
position: relative;
|
|
1129
1178
|
overflow: hidden;
|
|
1130
1179
|
contain: layout style;
|
|
@@ -2055,8 +2104,9 @@ em {
|
|
|
2055
2104
|
display: flex;
|
|
2056
2105
|
flex-direction: column;
|
|
2057
2106
|
overflow-y: auto;
|
|
2058
|
-
overflow-x:
|
|
2107
|
+
overflow-x: visible;
|
|
2059
2108
|
min-height: 0;
|
|
2109
|
+
padding-block-start: var(--gap-sm);
|
|
2060
2110
|
}
|
|
2061
2111
|
|
|
2062
2112
|
.dndev-modal-title {
|
|
@@ -2115,6 +2165,60 @@ em {
|
|
|
2115
2165
|
flex-direction: column;
|
|
2116
2166
|
}
|
|
2117
2167
|
|
|
2168
|
+
/* ===========================
|
|
2169
|
+
AUTH FORM PATTERNS
|
|
2170
|
+
=========================== */
|
|
2171
|
+
|
|
2172
|
+
/* Auth form step indicator */
|
|
2173
|
+
|
|
2174
|
+
.dndev-auth-step {
|
|
2175
|
+
display: inline-flex;
|
|
2176
|
+
align-items: center;
|
|
2177
|
+
justify-content: center;
|
|
2178
|
+
min-width: 1.5em;
|
|
2179
|
+
padding: var(--gap-sm);
|
|
2180
|
+
border-radius: var(--radius-sm);
|
|
2181
|
+
font-weight: var(--font-weight-semibold);
|
|
2182
|
+
transition: all var(--dur-fast) var(--ease-in-out);
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
.dndev-auth-step[data-state='active'] {
|
|
2186
|
+
background-color: var(--primary);
|
|
2187
|
+
color: var(--primary-foreground);
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
.dndev-auth-step[data-state='pending'] {
|
|
2191
|
+
background-color: var(--muted);
|
|
2192
|
+
color: var(--muted-foreground);
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
.dndev-auth-step[data-state='completed'] {
|
|
2196
|
+
background-color: var(--success);
|
|
2197
|
+
color: var(--success-foreground);
|
|
2198
|
+
}
|
|
2199
|
+
|
|
2200
|
+
/* Opacity data attribute */
|
|
2201
|
+
|
|
2202
|
+
[data-opacity='50'] {
|
|
2203
|
+
opacity: 0.5;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
[data-opacity='70'] {
|
|
2207
|
+
opacity: 0.7;
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
/* Inset data attribute - indent content */
|
|
2211
|
+
|
|
2212
|
+
[data-inset='true'] {
|
|
2213
|
+
padding-inline-start: var(--gap-md);
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
/* Password strength bar height override */
|
|
2217
|
+
|
|
2218
|
+
.dndev-password-strength-bar {
|
|
2219
|
+
height: 4px;
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2118
2222
|
/* 5. Individual Component Styles */
|
|
2119
2223
|
|
|
2120
2224
|
/* packages/components/src/atomic/Accordion/Accordion.css */
|
|
@@ -2161,21 +2265,46 @@ em {
|
|
|
2161
2265
|
flex-shrink: 0;
|
|
2162
2266
|
width: var(--icon-md);
|
|
2163
2267
|
height: var(--icon-md);
|
|
2164
|
-
transition: transform var(--dur-
|
|
2268
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
2165
2269
|
}
|
|
2166
2270
|
|
|
2167
2271
|
.dndev-accordion-content {
|
|
2168
2272
|
overflow: hidden;
|
|
2169
2273
|
font-size: var(--font-size-base);
|
|
2170
|
-
transition: all var(--dur-fast) var(--ease-in-out);
|
|
2171
2274
|
width: 100%;
|
|
2172
2275
|
min-width: 0;
|
|
2173
2276
|
text-align: start;
|
|
2174
2277
|
}
|
|
2175
2278
|
|
|
2279
|
+
.dndev-accordion-content[data-state='open'] {
|
|
2280
|
+
animation: slideDown var(--dur-normal) var(--ease-in-out);
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2176
2283
|
.dndev-accordion-content[data-state='closed'] {
|
|
2177
|
-
|
|
2284
|
+
animation: slideUp var(--dur-normal) var(--ease-in-out);
|
|
2285
|
+
}
|
|
2286
|
+
|
|
2287
|
+
@keyframes slideDown {
|
|
2288
|
+
from {
|
|
2289
|
+
height: 0;
|
|
2290
|
+
opacity: 0;
|
|
2178
2291
|
}
|
|
2292
|
+
to {
|
|
2293
|
+
height: var(--radix-collapsible-content-height);
|
|
2294
|
+
opacity: 1;
|
|
2295
|
+
}
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
@keyframes slideUp {
|
|
2299
|
+
from {
|
|
2300
|
+
height: var(--radix-collapsible-content-height);
|
|
2301
|
+
opacity: 1;
|
|
2302
|
+
}
|
|
2303
|
+
to {
|
|
2304
|
+
height: 0;
|
|
2305
|
+
opacity: 0;
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2179
2308
|
|
|
2180
2309
|
.dndev-accordion-content-inner {
|
|
2181
2310
|
padding-bottom: var(--gap-md);
|
|
@@ -3166,21 +3295,58 @@ em {
|
|
|
3166
3295
|
@keyframes slideDown {
|
|
3167
3296
|
from {
|
|
3168
3297
|
height: 0;
|
|
3298
|
+
opacity: 0;
|
|
3169
3299
|
}
|
|
3170
3300
|
to {
|
|
3171
3301
|
height: var(--radix-collapsible-content-height);
|
|
3302
|
+
opacity: 1;
|
|
3172
3303
|
}
|
|
3173
3304
|
}
|
|
3174
3305
|
|
|
3175
3306
|
@keyframes slideUp {
|
|
3176
3307
|
from {
|
|
3177
3308
|
height: var(--radix-collapsible-content-height);
|
|
3309
|
+
opacity: 1;
|
|
3178
3310
|
}
|
|
3179
3311
|
to {
|
|
3180
3312
|
height: 0;
|
|
3313
|
+
opacity: 0;
|
|
3181
3314
|
}
|
|
3182
3315
|
}
|
|
3183
3316
|
|
|
3317
|
+
.dndev-collapsible-trigger {
|
|
3318
|
+
width: 100%;
|
|
3319
|
+
cursor: pointer;
|
|
3320
|
+
transition: opacity var(--dur-fast) var(--ease-in-out);
|
|
3321
|
+
}
|
|
3322
|
+
|
|
3323
|
+
.dndev-collapsible-trigger:hover {
|
|
3324
|
+
opacity: var(--opacity-strong);
|
|
3325
|
+
}
|
|
3326
|
+
|
|
3327
|
+
.dndev-collapsible-trigger:focus-visible {
|
|
3328
|
+
outline: 2px solid var(--ring);
|
|
3329
|
+
outline-offset: 2px;
|
|
3330
|
+
border-radius: var(--radius-interactive);
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3333
|
+
.dndev-collapsible-icon {
|
|
3334
|
+
width: var(--size-md);
|
|
3335
|
+
height: var(--size-md);
|
|
3336
|
+
flex-shrink: 0;
|
|
3337
|
+
color: var(--accent);
|
|
3338
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
3339
|
+
}
|
|
3340
|
+
|
|
3341
|
+
.dndev-collapsible-chevron {
|
|
3342
|
+
transform: rotate(0deg);
|
|
3343
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
3344
|
+
}
|
|
3345
|
+
|
|
3346
|
+
.dndev-collapsible[data-state='open'] .dndev-collapsible-chevron {
|
|
3347
|
+
transform: rotate(180deg);
|
|
3348
|
+
}
|
|
3349
|
+
|
|
3184
3350
|
/* packages/components/src/atomic/Combobox/Combobox.css */
|
|
3185
3351
|
|
|
3186
3352
|
.dndev-combobox-trigger {
|
|
@@ -3260,7 +3426,7 @@ em {
|
|
|
3260
3426
|
.dndev-combobox-content {
|
|
3261
3427
|
width: var(--radix-popover-trigger-width);
|
|
3262
3428
|
min-width: var(--radix-popover-trigger-width);
|
|
3263
|
-
max-
|
|
3429
|
+
max-width: var(--radix-popover-trigger-width);
|
|
3264
3430
|
display: flex;
|
|
3265
3431
|
flex-direction: column;
|
|
3266
3432
|
padding: 0;
|
|
@@ -3275,14 +3441,6 @@ em {
|
|
|
3275
3441
|
width: 100%;
|
|
3276
3442
|
}
|
|
3277
3443
|
|
|
3278
|
-
.dndev-combobox-list {
|
|
3279
|
-
overflow-y: auto;
|
|
3280
|
-
padding: var(--gap-tight);
|
|
3281
|
-
display: flex;
|
|
3282
|
-
flex-direction: column;
|
|
3283
|
-
gap: var(--gap-none);
|
|
3284
|
-
}
|
|
3285
|
-
|
|
3286
3444
|
.dndev-combobox-option {
|
|
3287
3445
|
all: unset;
|
|
3288
3446
|
display: flex;
|
|
@@ -3339,6 +3497,30 @@ em {
|
|
|
3339
3497
|
color: var(--muted-foreground);
|
|
3340
3498
|
}
|
|
3341
3499
|
|
|
3500
|
+
/* Creatable option styling */
|
|
3501
|
+
|
|
3502
|
+
.dndev-combobox-option-create {
|
|
3503
|
+
color: var(--primary);
|
|
3504
|
+
font-style: italic;
|
|
3505
|
+
}
|
|
3506
|
+
|
|
3507
|
+
.dndev-combobox-option-create-icon {
|
|
3508
|
+
width: var(--icon-md);
|
|
3509
|
+
height: var(--icon-md);
|
|
3510
|
+
margin-inline-end: var(--gap-sm);
|
|
3511
|
+
flex-shrink: 0;
|
|
3512
|
+
}
|
|
3513
|
+
|
|
3514
|
+
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon svg,
|
|
3515
|
+
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon > * {
|
|
3516
|
+
transform: rotate(180deg);
|
|
3517
|
+
}
|
|
3518
|
+
|
|
3519
|
+
.dndev-input-with-trailing-icon .dndev-input-icon svg,
|
|
3520
|
+
.dndev-input-with-trailing-icon .dndev-input-icon > * {
|
|
3521
|
+
transition: transform var(--dur-fast) var(--ease-in-out);
|
|
3522
|
+
}
|
|
3523
|
+
|
|
3342
3524
|
/* packages/components/src/atomic/DualCard/DualCard.css */
|
|
3343
3525
|
|
|
3344
3526
|
.dndev-dual-card {
|
|
@@ -3525,13 +3707,15 @@ em {
|
|
|
3525
3707
|
text-align: start;
|
|
3526
3708
|
display: block;
|
|
3527
3709
|
line-height: 1.5; /* Match line numbers */
|
|
3710
|
+
font-size: var(--font-size-sm); /* Explicit match with line numbers */
|
|
3528
3711
|
}
|
|
3529
3712
|
|
|
3530
|
-
/* Ensure shiki-generated code respects line-height */
|
|
3713
|
+
/* Ensure shiki-generated code respects line-height AND font-size */
|
|
3531
3714
|
|
|
3532
3715
|
.dndev-code-code pre,
|
|
3533
3716
|
.dndev-code-code code {
|
|
3534
3717
|
line-height: inherit;
|
|
3718
|
+
font-size: inherit; /* Match parent font-size */
|
|
3535
3719
|
}
|
|
3536
3720
|
|
|
3537
3721
|
/* packages/components/src/atomic/Command/Command.css */
|
|
@@ -3909,16 +4093,6 @@ em {
|
|
|
3909
4093
|
padding: var(--gap-sm);
|
|
3910
4094
|
}
|
|
3911
4095
|
|
|
3912
|
-
/* Dropdown scroll area - constrain height to 50dvh */
|
|
3913
|
-
|
|
3914
|
-
.dndev-dropdown-scroll-area {
|
|
3915
|
-
max-height: 50dvh;
|
|
3916
|
-
}
|
|
3917
|
-
|
|
3918
|
-
.dndev-dropdown-scroll-area .dndev-scroll-area-viewport {
|
|
3919
|
-
max-height: 50dvh;
|
|
3920
|
-
}
|
|
3921
|
-
|
|
3922
4096
|
/* Checked state styling */
|
|
3923
4097
|
|
|
3924
4098
|
.dndev-interactive[data-role='menu-item'][data-state='checked'] {
|
|
@@ -4442,6 +4616,49 @@ em {
|
|
|
4442
4616
|
margin-inline-start: var(--gap-sm);
|
|
4443
4617
|
}
|
|
4444
4618
|
|
|
4619
|
+
/* Floating Label - positioned absolutely at top of input fields */
|
|
4620
|
+
|
|
4621
|
+
.dndev-floating-label {
|
|
4622
|
+
position: absolute;
|
|
4623
|
+
inset-inline-start: var(--gap-md);
|
|
4624
|
+
top: calc(-1 * var(--font-size-xs) / 2 - 1px);
|
|
4625
|
+
font-size: var(--font-size-xs);
|
|
4626
|
+
font-weight: 500;
|
|
4627
|
+
pointer-events: none;
|
|
4628
|
+
z-index: 1;
|
|
4629
|
+
background-color: var(--background);
|
|
4630
|
+
padding: 0 var(--gap-sm);
|
|
4631
|
+
line-height: 1;
|
|
4632
|
+
color: var(--foreground);
|
|
4633
|
+
}
|
|
4634
|
+
|
|
4635
|
+
/* Inherit background when inside floating containers (dropdowns, menus, popovers) */
|
|
4636
|
+
|
|
4637
|
+
.dndev-floating .dndev-floating-label,
|
|
4638
|
+
.dndev-menu-content .dndev-floating-label,
|
|
4639
|
+
[class*='dndev-dropdown'] .dndev-floating-label,
|
|
4640
|
+
[class*='dndev-navigation'] .dndev-floating-label {
|
|
4641
|
+
background-color: var(--popover);
|
|
4642
|
+
color: var(--popover-foreground);
|
|
4643
|
+
}
|
|
4644
|
+
|
|
4645
|
+
/* When floating container has blank glow, use solid popover background */
|
|
4646
|
+
|
|
4647
|
+
.dndev-floating[data-glow='blank'] .dndev-floating-label {
|
|
4648
|
+
background-color: var(--popover);
|
|
4649
|
+
}
|
|
4650
|
+
|
|
4651
|
+
.dndev-floating-label[data-disabled='true'] {
|
|
4652
|
+
color: var(--muted-foreground);
|
|
4653
|
+
}
|
|
4654
|
+
|
|
4655
|
+
.dndev-floating-label[data-truncate='true'] {
|
|
4656
|
+
max-width: calc(100% - var(--gap-md) * 2);
|
|
4657
|
+
overflow: hidden;
|
|
4658
|
+
text-overflow: ellipsis;
|
|
4659
|
+
white-space: nowrap;
|
|
4660
|
+
}
|
|
4661
|
+
|
|
4445
4662
|
/* packages/components/src/atomic/List/List.css */
|
|
4446
4663
|
|
|
4447
4664
|
.dndev-list {
|
|
@@ -4750,20 +4967,41 @@ em {
|
|
|
4750
4967
|
/* packages/components/src/atomic/PasswordInput/PasswordInput.css */
|
|
4751
4968
|
|
|
4752
4969
|
.dndev-password-input-with-toggle {
|
|
4753
|
-
padding-inline-end: var(--gap-
|
|
4970
|
+
padding-inline-end: calc(var(--gap-xl) + var(--gap-md)) !important;
|
|
4754
4971
|
}
|
|
4755
4972
|
|
|
4973
|
+
/* Eye icon toggle - ALWAYS at end, cannot be overridden */
|
|
4974
|
+
|
|
4756
4975
|
.dndev-password-toggle-button {
|
|
4757
|
-
position: absolute;
|
|
4758
|
-
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
4976
|
+
position: absolute !important;
|
|
4977
|
+
top: 50% !important;
|
|
4978
|
+
transform: translateY(-50%) !important;
|
|
4979
|
+
inset-inline-end: var(--gap-sm) !important;
|
|
4980
|
+
inset-inline-start: unset !important;
|
|
4981
|
+
background: none !important;
|
|
4982
|
+
border: none !important;
|
|
4983
|
+
cursor: pointer !important;
|
|
4984
|
+
padding: var(--gap-tight) !important;
|
|
4985
|
+
display: flex !important;
|
|
4986
|
+
align-items: center !important;
|
|
4987
|
+
opacity: var(--opacity-muted) !important;
|
|
4988
|
+
transition: opacity var(--dur-fast) var(--ease-in-out) !important;
|
|
4989
|
+
-webkit-user-select: none !important;
|
|
4990
|
+
-moz-user-select: none !important;
|
|
4991
|
+
user-select: none !important;
|
|
4992
|
+
z-index: 1 !important;
|
|
4993
|
+
}
|
|
4994
|
+
|
|
4995
|
+
.dndev-password-toggle-button:hover,
|
|
4996
|
+
.dndev-password-toggle-button:focus {
|
|
4997
|
+
opacity: 1 !important;
|
|
4998
|
+
outline: none !important;
|
|
4763
4999
|
}
|
|
4764
5000
|
|
|
4765
5001
|
.dndev-password-toggle-icon {
|
|
4766
5002
|
color: var(--muted-foreground);
|
|
5003
|
+
width: var(--icon-sm);
|
|
5004
|
+
height: var(--icon-sm);
|
|
4767
5005
|
}
|
|
4768
5006
|
|
|
4769
5007
|
/* packages/components/src/atomic/Pagination/Pagination.css */
|
|
@@ -4855,9 +5093,32 @@ em {
|
|
|
4855
5093
|
height: 100%;
|
|
4856
5094
|
width: 100%;
|
|
4857
5095
|
flex: 1;
|
|
5096
|
+
background-color: var(--primary);
|
|
4858
5097
|
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
5098
|
+
|
|
5099
|
+
/* Variant colors */
|
|
4859
5100
|
}
|
|
4860
5101
|
|
|
5102
|
+
[data-variant='default']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5103
|
+
background-color: var(--primary);
|
|
5104
|
+
}
|
|
5105
|
+
|
|
5106
|
+
[data-variant='accent']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5107
|
+
background-color: var(--accent);
|
|
5108
|
+
}
|
|
5109
|
+
|
|
5110
|
+
[data-variant='success']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5111
|
+
background-color: var(--success);
|
|
5112
|
+
}
|
|
5113
|
+
|
|
5114
|
+
[data-variant='warning']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5115
|
+
background-color: var(--warning);
|
|
5116
|
+
}
|
|
5117
|
+
|
|
5118
|
+
[data-variant='destructive']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5119
|
+
background-color: var(--destructive);
|
|
5120
|
+
}
|
|
5121
|
+
|
|
4861
5122
|
/* packages/components/src/atomic/RadioGroup/RadioGroup.css */
|
|
4862
5123
|
|
|
4863
5124
|
/* Uses shared .dndev-control-group pattern from patterns.css */
|
|
@@ -5063,7 +5324,6 @@ em {
|
|
|
5063
5324
|
display: flex;
|
|
5064
5325
|
flex-direction: column;
|
|
5065
5326
|
padding: 0;
|
|
5066
|
-
overflow-y: auto;
|
|
5067
5327
|
}
|
|
5068
5328
|
|
|
5069
5329
|
.dndev-interactive[data-radix-select-item] {
|
|
@@ -5185,6 +5445,7 @@ em {
|
|
|
5185
5445
|
letter-spacing: 0.2em;
|
|
5186
5446
|
color: var(--accent) !important;
|
|
5187
5447
|
margin-block-end: var(--gap-md);
|
|
5448
|
+
text-align: center; /* DEFAULT - works without attribute selector */
|
|
5188
5449
|
}
|
|
5189
5450
|
|
|
5190
5451
|
.dndev-section-full-width[data-text-align='start'] .dndev-section-title {
|
|
@@ -5199,6 +5460,51 @@ em {
|
|
|
5199
5460
|
text-align: end;
|
|
5200
5461
|
}
|
|
5201
5462
|
|
|
5463
|
+
/* Collapsible title trigger */
|
|
5464
|
+
|
|
5465
|
+
.dndev-section-title-trigger {
|
|
5466
|
+
width: 100%;
|
|
5467
|
+
cursor: pointer;
|
|
5468
|
+
transition: opacity var(--dur-fast) var(--ease-in-out);
|
|
5469
|
+
margin-block-end: var(--gap-md);
|
|
5470
|
+
}
|
|
5471
|
+
|
|
5472
|
+
.dndev-section-title-trigger .dndev-section-title {
|
|
5473
|
+
margin-block-end: 0;
|
|
5474
|
+
}
|
|
5475
|
+
|
|
5476
|
+
.dndev-section-title-trigger:hover {
|
|
5477
|
+
opacity: var(--opacity-strong);
|
|
5478
|
+
}
|
|
5479
|
+
|
|
5480
|
+
.dndev-section-title-trigger:focus-visible {
|
|
5481
|
+
outline: 2px solid var(--ring);
|
|
5482
|
+
outline-offset: 2px;
|
|
5483
|
+
border-radius: var(--radius-interactive);
|
|
5484
|
+
}
|
|
5485
|
+
|
|
5486
|
+
.dndev-section-icon {
|
|
5487
|
+
width: var(--size-md);
|
|
5488
|
+
height: var(--size-md);
|
|
5489
|
+
flex-shrink: 0;
|
|
5490
|
+
color: var(--accent);
|
|
5491
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
5492
|
+
}
|
|
5493
|
+
|
|
5494
|
+
.dndev-section-full-width[data-text-align='start']
|
|
5495
|
+
.dndev-section-title-trigger {
|
|
5496
|
+
justify-content: flex-start;
|
|
5497
|
+
}
|
|
5498
|
+
|
|
5499
|
+
.dndev-section-full-width[data-text-align='center']
|
|
5500
|
+
.dndev-section-title-trigger {
|
|
5501
|
+
justify-content: center;
|
|
5502
|
+
}
|
|
5503
|
+
|
|
5504
|
+
.dndev-section-full-width[data-text-align='end'] .dndev-section-title-trigger {
|
|
5505
|
+
justify-content: flex-end;
|
|
5506
|
+
}
|
|
5507
|
+
|
|
5202
5508
|
/* packages/components/src/atomic/Separator/Separator.css */
|
|
5203
5509
|
|
|
5204
5510
|
.dndev-separator {
|
|
@@ -6061,6 +6367,64 @@ em {
|
|
|
6061
6367
|
transform: translateX(calc(2.75rem - 1.25rem - 0.125rem));
|
|
6062
6368
|
}
|
|
6063
6369
|
|
|
6370
|
+
/* Switch with labels container */
|
|
6371
|
+
|
|
6372
|
+
.dndev-switch-with-labels {
|
|
6373
|
+
display: inline-flex;
|
|
6374
|
+
align-items: center;
|
|
6375
|
+
gap: var(--gap-sm);
|
|
6376
|
+
flex-wrap: wrap;
|
|
6377
|
+
}
|
|
6378
|
+
|
|
6379
|
+
/* Labels - keep switch and its labels on one line when possible */
|
|
6380
|
+
|
|
6381
|
+
.dndev-switch-with-labels > .dndev-switch {
|
|
6382
|
+
flex-shrink: 0;
|
|
6383
|
+
}
|
|
6384
|
+
|
|
6385
|
+
.dndev-switch-label {
|
|
6386
|
+
font-size: var(--font-size-sm);
|
|
6387
|
+
transition: color var(--dur-normal) var(--ease-in-out),
|
|
6388
|
+
font-weight var(--dur-normal) var(--ease-in-out);
|
|
6389
|
+
white-space: nowrap;
|
|
6390
|
+
}
|
|
6391
|
+
|
|
6392
|
+
/* Unchecked label - active when switch is unchecked */
|
|
6393
|
+
|
|
6394
|
+
.dndev-switch-with-labels:not(:has(.dndev-switch[data-state='checked']))
|
|
6395
|
+
.dndev-switch-label-unchecked,
|
|
6396
|
+
.dndev-switch-with-labels[data-checked='false']
|
|
6397
|
+
.dndev-switch-label-unchecked {
|
|
6398
|
+
color: var(--foreground);
|
|
6399
|
+
font-weight: var(--font-weight-medium);
|
|
6400
|
+
}
|
|
6401
|
+
|
|
6402
|
+
.dndev-switch-with-labels:has(.dndev-switch[data-state='checked'])
|
|
6403
|
+
.dndev-switch-label-unchecked,
|
|
6404
|
+
.dndev-switch-with-labels[data-checked='true']
|
|
6405
|
+
.dndev-switch-label-unchecked {
|
|
6406
|
+
color: var(--muted-foreground);
|
|
6407
|
+
font-weight: var(--font-weight-normal);
|
|
6408
|
+
}
|
|
6409
|
+
|
|
6410
|
+
/* Checked label - active when switch is checked */
|
|
6411
|
+
|
|
6412
|
+
.dndev-switch-with-labels:has(.dndev-switch[data-state='checked'])
|
|
6413
|
+
.dndev-switch-label-checked,
|
|
6414
|
+
.dndev-switch-with-labels[data-checked='true']
|
|
6415
|
+
.dndev-switch-label-checked {
|
|
6416
|
+
color: var(--foreground);
|
|
6417
|
+
font-weight: var(--font-weight-medium);
|
|
6418
|
+
}
|
|
6419
|
+
|
|
6420
|
+
.dndev-switch-with-labels:not(:has(.dndev-switch[data-state='checked']))
|
|
6421
|
+
.dndev-switch-label-checked,
|
|
6422
|
+
.dndev-switch-with-labels[data-checked='false']
|
|
6423
|
+
.dndev-switch-label-checked {
|
|
6424
|
+
color: var(--muted-foreground);
|
|
6425
|
+
font-weight: var(--font-weight-normal);
|
|
6426
|
+
}
|
|
6427
|
+
|
|
6064
6428
|
/* packages/components/src/atomic/Table/Table.css */
|
|
6065
6429
|
|
|
6066
6430
|
.dndev-table-wrapper {
|
|
@@ -6126,7 +6490,7 @@ em {
|
|
|
6126
6490
|
/* Table head (th) styles */
|
|
6127
6491
|
|
|
6128
6492
|
.dndev-table-head {
|
|
6129
|
-
text-align:
|
|
6493
|
+
text-align: start;
|
|
6130
6494
|
vertical-align: middle;
|
|
6131
6495
|
font-weight: 500;
|
|
6132
6496
|
color: var(--muted-foreground);
|
|
@@ -6143,12 +6507,12 @@ em {
|
|
|
6143
6507
|
text-align: center;
|
|
6144
6508
|
}
|
|
6145
6509
|
|
|
6146
|
-
.dndev-table-head[data-align='
|
|
6147
|
-
text-align:
|
|
6510
|
+
.dndev-table-head[data-align='end'] {
|
|
6511
|
+
text-align: end;
|
|
6148
6512
|
}
|
|
6149
6513
|
|
|
6150
|
-
.dndev-table-head[data-align='
|
|
6151
|
-
text-align:
|
|
6514
|
+
.dndev-table-head[data-align='start'] {
|
|
6515
|
+
text-align: start;
|
|
6152
6516
|
}
|
|
6153
6517
|
|
|
6154
6518
|
/* Table cell (td) styles */
|
|
@@ -6164,14 +6528,48 @@ em {
|
|
|
6164
6528
|
text-align: center;
|
|
6165
6529
|
}
|
|
6166
6530
|
|
|
6167
|
-
.dndev-table-cell[data-align='
|
|
6168
|
-
text-align:
|
|
6531
|
+
.dndev-table-cell[data-align='end'] {
|
|
6532
|
+
text-align: end;
|
|
6169
6533
|
}
|
|
6170
6534
|
|
|
6171
|
-
.dndev-table-cell[data-align='
|
|
6172
|
-
text-align:
|
|
6535
|
+
.dndev-table-cell[data-align='start'] {
|
|
6536
|
+
text-align: start;
|
|
6173
6537
|
}
|
|
6174
6538
|
|
|
6539
|
+
/* Excel-like grid lines variant */
|
|
6540
|
+
|
|
6541
|
+
.dndev-table-grid .dndev-table-head,
|
|
6542
|
+
.dndev-table-grid .dndev-table-cell {
|
|
6543
|
+
border: 1px solid var(--border);
|
|
6544
|
+
padding: 0;
|
|
6545
|
+
}
|
|
6546
|
+
|
|
6547
|
+
.dndev-table-grid .dndev-table-row {
|
|
6548
|
+
border-bottom: 1px solid var(--border);
|
|
6549
|
+
}
|
|
6550
|
+
|
|
6551
|
+
.dndev-table-grid .dndev-table-row:last-child {
|
|
6552
|
+
border-bottom: 1px solid var(--border);
|
|
6553
|
+
}
|
|
6554
|
+
|
|
6555
|
+
/* Input components inside grid cells should be borderless and fit snugly */
|
|
6556
|
+
|
|
6557
|
+
.dndev-table-grid .dndev-table-cell .dndev-input,
|
|
6558
|
+
.dndev-table-grid .dndev-table-cell input[type="text"],
|
|
6559
|
+
.dndev-table-grid .dndev-table-cell input[type="number"] {
|
|
6560
|
+
border: none;
|
|
6561
|
+
background: transparent;
|
|
6562
|
+
width: 100%;
|
|
6563
|
+
height: 100%;
|
|
6564
|
+
box-shadow: none;
|
|
6565
|
+
}
|
|
6566
|
+
|
|
6567
|
+
.dndev-table-grid .dndev-table-cell .dndev-input:focus,
|
|
6568
|
+
.dndev-table-grid .dndev-table-cell input:focus {
|
|
6569
|
+
outline: 2px solid var(--primary);
|
|
6570
|
+
outline-offset: -2px;
|
|
6571
|
+
}
|
|
6572
|
+
|
|
6175
6573
|
/* Table caption styles */
|
|
6176
6574
|
|
|
6177
6575
|
.dndev-table-caption {
|
|
@@ -6188,7 +6586,7 @@ em {
|
|
|
6188
6586
|
|
|
6189
6587
|
.dndev-table-search-icon {
|
|
6190
6588
|
position: absolute;
|
|
6191
|
-
|
|
6589
|
+
inset-inline-start: var(--gap-md);
|
|
6192
6590
|
top: 50%;
|
|
6193
6591
|
transform: translateY(-50%);
|
|
6194
6592
|
width: var(--icon-md);
|
|
@@ -6355,7 +6753,7 @@ em {
|
|
|
6355
6753
|
.dndev-tag {
|
|
6356
6754
|
display: inline-flex;
|
|
6357
6755
|
align-items: center;
|
|
6358
|
-
gap: var(--gap-
|
|
6756
|
+
gap: var(--gap-sm);
|
|
6359
6757
|
border-radius: var(--radius-full);
|
|
6360
6758
|
border: 1px solid transparent;
|
|
6361
6759
|
font-size: var(--font-size-sm);
|
|
@@ -6485,8 +6883,18 @@ em {
|
|
|
6485
6883
|
font-weight: var(--font-weight-medium);
|
|
6486
6884
|
line-height: var(--line-height);
|
|
6487
6885
|
background-color: transparent; /* Text never has background, only color changes */
|
|
6886
|
+
|
|
6887
|
+
/* Respect semantic HTML elements */
|
|
6488
6888
|
}
|
|
6489
6889
|
|
|
6890
|
+
.dndev-text-base:is(strong) {
|
|
6891
|
+
font-weight: var(--font-weight-semibold);
|
|
6892
|
+
}
|
|
6893
|
+
|
|
6894
|
+
.dndev-text-base:is(em) {
|
|
6895
|
+
font-style: italic;
|
|
6896
|
+
}
|
|
6897
|
+
|
|
6490
6898
|
.dndev-text-base[data-variant='default'] {
|
|
6491
6899
|
color: inherit;
|
|
6492
6900
|
}
|
|
@@ -7434,7 +7842,7 @@ em {
|
|
|
7434
7842
|
align-items: stretch;
|
|
7435
7843
|
}
|
|
7436
7844
|
|
|
7437
|
-
@media (width <=
|
|
7845
|
+
@media (width <=699px) {
|
|
7438
7846
|
|
|
7439
7847
|
[data-cols='2'] {
|
|
7440
7848
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7446,14 +7854,14 @@ em {
|
|
|
7446
7854
|
align-items: stretch;
|
|
7447
7855
|
}
|
|
7448
7856
|
|
|
7449
|
-
@media (width <=
|
|
7857
|
+
@media (width <=1049px) {
|
|
7450
7858
|
|
|
7451
7859
|
[data-cols='3'] {
|
|
7452
7860
|
grid-template-columns: repeat(2, minmax(350px, 1fr));
|
|
7453
7861
|
}
|
|
7454
7862
|
}
|
|
7455
7863
|
|
|
7456
|
-
@media (width <=
|
|
7864
|
+
@media (width <=699px) {
|
|
7457
7865
|
|
|
7458
7866
|
[data-cols='3'] {
|
|
7459
7867
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7467,21 +7875,21 @@ em {
|
|
|
7467
7875
|
/* Responsive: reduce columns when container is narrow */
|
|
7468
7876
|
}
|
|
7469
7877
|
|
|
7470
|
-
@media (width <=
|
|
7878
|
+
@media (width <=1399px) {
|
|
7471
7879
|
|
|
7472
7880
|
[data-cols='4'] {
|
|
7473
7881
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
7474
7882
|
}
|
|
7475
7883
|
}
|
|
7476
7884
|
|
|
7477
|
-
@media (width <=
|
|
7885
|
+
@media (width <=1049px) {
|
|
7478
7886
|
|
|
7479
7887
|
[data-cols='4'] {
|
|
7480
7888
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
7481
7889
|
}
|
|
7482
7890
|
}
|
|
7483
7891
|
|
|
7484
|
-
@media (width <=
|
|
7892
|
+
@media (width <=699px) {
|
|
7485
7893
|
|
|
7486
7894
|
[data-cols='4'] {
|
|
7487
7895
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
@@ -7548,18 +7956,22 @@ em {
|
|
|
7548
7956
|
|
|
7549
7957
|
code {
|
|
7550
7958
|
font-family: var(--font-mono);
|
|
7551
|
-
font-size: inherit;
|
|
7552
|
-
|
|
7959
|
+
font-size: inherit;
|
|
7960
|
+
/* Inherit parent size */
|
|
7961
|
+
font-weight: inherit;
|
|
7962
|
+
/* Inherit parent weight */
|
|
7553
7963
|
line-height: inherit;
|
|
7554
7964
|
color: inherit;
|
|
7555
|
-
background: transparent;
|
|
7965
|
+
background: transparent;
|
|
7966
|
+
/* No background by default */
|
|
7556
7967
|
}
|
|
7557
7968
|
|
|
7558
7969
|
/* Code variant - visual styling (background, padding, can apply to any element) */
|
|
7559
7970
|
|
|
7560
7971
|
[data-variant='code'] {
|
|
7561
7972
|
font-family: var(--font-mono);
|
|
7562
|
-
font-size: var(--font-size-sm);
|
|
7973
|
+
font-size: var(--font-size-sm);
|
|
7974
|
+
/* Default small size */
|
|
7563
7975
|
background: var(--muted);
|
|
7564
7976
|
color: var(--muted-foreground);
|
|
7565
7977
|
padding: var(--gap-sm) var(--gap-md);
|
|
@@ -7654,7 +8066,8 @@ h4[data-variant='code'] {
|
|
|
7654
8066
|
|
|
7655
8067
|
.dndev-relative {
|
|
7656
8068
|
position: relative;
|
|
7657
|
-
min-width: 0;
|
|
8069
|
+
min-width: 0;
|
|
8070
|
+
/* Allow flex items to shrink below content size */
|
|
7658
8071
|
}
|
|
7659
8072
|
|
|
7660
8073
|
.dndev-absolute {
|
|
@@ -7759,7 +8172,7 @@ h4[data-variant='code'] {
|
|
|
7759
8172
|
RESPONSIVE DISPLAY
|
|
7760
8173
|
=========================== */
|
|
7761
8174
|
|
|
7762
|
-
@media (width >=
|
|
8175
|
+
@media (width >=768px) {
|
|
7763
8176
|
.dndev-md\:block {
|
|
7764
8177
|
display: block;
|
|
7765
8178
|
}
|
|
@@ -7785,7 +8198,7 @@ h4[data-variant='code'] {
|
|
|
7785
8198
|
}
|
|
7786
8199
|
}
|
|
7787
8200
|
|
|
7788
|
-
@media (width >=
|
|
8201
|
+
@media (width >=1024px) {
|
|
7789
8202
|
.dndev-lg\:block {
|
|
7790
8203
|
display: block;
|
|
7791
8204
|
}
|
|
@@ -7845,6 +8258,10 @@ h4[data-variant='code'] {
|
|
|
7845
8258
|
Components are unaffected - they own their own spacing
|
|
7846
8259
|
=========================== */
|
|
7847
8260
|
|
|
8261
|
+
.prose {
|
|
8262
|
+
text-align: start;
|
|
8263
|
+
}
|
|
8264
|
+
|
|
7848
8265
|
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
|
|
7849
8266
|
margin-block: var(--gap-md);
|
|
7850
8267
|
}
|
|
@@ -8316,14 +8733,20 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8316
8733
|
'header header'
|
|
8317
8734
|
'sidebar main'
|
|
8318
8735
|
'footer footer';
|
|
8319
|
-
grid-template-rows: var(--header-height) 1fr minmax(
|
|
8736
|
+
grid-template-rows: var(--header-height) 1fr minmax(
|
|
8737
|
+
var(--footer-height),
|
|
8738
|
+
auto
|
|
8739
|
+
);
|
|
8320
8740
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
8321
8741
|
|
|
8322
8742
|
/* Game layout: Grid rows adjust based on breakpoint (footer hidden on tablet/mobile) */
|
|
8323
8743
|
}
|
|
8324
8744
|
|
|
8325
8745
|
[data-layout='game']:root .dndev-layout {
|
|
8326
|
-
grid-template-rows: var(--header-height) 1fr minmax(
|
|
8746
|
+
grid-template-rows: var(--header-height) 1fr minmax(
|
|
8747
|
+
var(--footer-height),
|
|
8748
|
+
auto
|
|
8749
|
+
);
|
|
8327
8750
|
}
|
|
8328
8751
|
|
|
8329
8752
|
/* ===========================
|
|
@@ -8579,10 +9002,14 @@ aside[role='navigation'].sidebar[data-collapsed='true'] .dndev-interactive kbd {
|
|
|
8579
9002
|
|
|
8580
9003
|
/* Force sidebar children to shrink - no blocking resize */
|
|
8581
9004
|
|
|
8582
|
-
aside.sidebar[role='navigation'] .sidebar-
|
|
9005
|
+
aside.sidebar[role='navigation'] .sidebar-top,aside.sidebar[role='navigation'] .sidebar-bottom {
|
|
8583
9006
|
overflow: hidden;
|
|
8584
9007
|
}
|
|
8585
9008
|
|
|
9009
|
+
aside.sidebar[role='navigation'] .sidebar-content {
|
|
9010
|
+
overflow-x: hidden; /* Prevent horizontal scroll, allow vertical */
|
|
9011
|
+
}
|
|
9012
|
+
|
|
8586
9013
|
aside.sidebar[role='navigation'] .dndev-interactive {
|
|
8587
9014
|
overflow: hidden;
|
|
8588
9015
|
}
|
|
@@ -9038,7 +9465,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9038
9465
|
.breadcrumb-item {
|
|
9039
9466
|
display: inline-flex;
|
|
9040
9467
|
align-items: center;
|
|
9041
|
-
gap: var(--gap-
|
|
9468
|
+
gap: var(--gap-sm);
|
|
9042
9469
|
}
|
|
9043
9470
|
|
|
9044
9471
|
.breadcrumbs .separator,
|
|
@@ -9115,7 +9542,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9115
9542
|
min-height: 0;
|
|
9116
9543
|
display: flex;
|
|
9117
9544
|
flex-direction: column;
|
|
9118
|
-
justify-content:
|
|
9545
|
+
justify-content: flex-start;
|
|
9119
9546
|
gap: var(--gap-lg);
|
|
9120
9547
|
/* Controlled by density system */
|
|
9121
9548
|
/* Default: centered */
|
|
@@ -9402,7 +9829,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9402
9829
|
font-family: Roboto;
|
|
9403
9830
|
font-style: normal;
|
|
9404
9831
|
font-weight: 400;
|
|
9405
|
-
font-display:
|
|
9832
|
+
font-display: swap;
|
|
9406
9833
|
src: url('/fonts/Roboto-400-latin.woff2') format('woff2');
|
|
9407
9834
|
unicode-range: U+0000-00FF; /* Basic Latin - loads first for performance */
|
|
9408
9835
|
}
|
|
@@ -9411,7 +9838,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9411
9838
|
font-family: Roboto;
|
|
9412
9839
|
font-style: normal;
|
|
9413
9840
|
font-weight: 700;
|
|
9414
|
-
font-display:
|
|
9841
|
+
font-display: swap;
|
|
9415
9842
|
src: url('/fonts/Roboto-700-latin.woff2') format('woff2');
|
|
9416
9843
|
unicode-range: U+0000-00FF; /* Basic Latin - loads first for performance */
|
|
9417
9844
|
}
|
|
@@ -9559,7 +9986,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9559
9986
|
font-family: Inter;
|
|
9560
9987
|
font-style: normal;
|
|
9561
9988
|
font-weight: 400 700;
|
|
9562
|
-
font-display: optional
|
|
9989
|
+
font-display: swap; /* Changed from optional to swap - we preload this font */
|
|
9563
9990
|
src: url('/fonts/Inter-latin.woff2') format('woff2');
|
|
9564
9991
|
unicode-range:
|
|
9565
9992
|
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
|
|
@@ -9592,7 +10019,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9592
10019
|
font-family: 'Playfair Display';
|
|
9593
10020
|
font-style: normal;
|
|
9594
10021
|
font-weight: 400 700;
|
|
9595
|
-
font-display:
|
|
10022
|
+
font-display: swap;
|
|
9596
10023
|
src: url('/fonts/PlayfairDisplay-latin.woff2') format('woff2');
|
|
9597
10024
|
unicode-range:
|
|
9598
10025
|
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
|