@donotdev/ui 0.0.7 → 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 +447 -63
- 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.map +1 -1
- package/dist/internal/layout/components/PerformanceHints.js +3 -2
- 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 +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/styles/index.css +443 -59
- 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 +9 -9
package/dist/dndev.css
CHANGED
|
@@ -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×) */
|
|
@@ -714,6 +714,16 @@ em {
|
|
|
714
714
|
|
|
715
715
|
/* packages/components/src/styles/patterns.css */
|
|
716
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
|
+
|
|
717
727
|
/* ===========================
|
|
718
728
|
FORM COMPONENTS (BASE)
|
|
719
729
|
=========================== */
|
|
@@ -908,6 +918,9 @@ em {
|
|
|
908
918
|
border-radius: var(--radius-surface);
|
|
909
919
|
box-shadow: var(--shadow-md);
|
|
910
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 */
|
|
911
924
|
position: relative;
|
|
912
925
|
overflow: hidden;
|
|
913
926
|
contain: layout style;
|
|
@@ -1158,6 +1171,9 @@ em {
|
|
|
1158
1171
|
border-radius: var(--radius-floating);
|
|
1159
1172
|
box-shadow: var(--shadow-md);
|
|
1160
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 */
|
|
1161
1177
|
position: relative;
|
|
1162
1178
|
overflow: hidden;
|
|
1163
1179
|
contain: layout style;
|
|
@@ -2088,8 +2104,9 @@ em {
|
|
|
2088
2104
|
display: flex;
|
|
2089
2105
|
flex-direction: column;
|
|
2090
2106
|
overflow-y: auto;
|
|
2091
|
-
overflow-x:
|
|
2107
|
+
overflow-x: visible;
|
|
2092
2108
|
min-height: 0;
|
|
2109
|
+
padding-block-start: var(--gap-sm);
|
|
2093
2110
|
}
|
|
2094
2111
|
|
|
2095
2112
|
.dndev-modal-title {
|
|
@@ -2148,6 +2165,60 @@ em {
|
|
|
2148
2165
|
flex-direction: column;
|
|
2149
2166
|
}
|
|
2150
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
|
+
|
|
2151
2222
|
/* 5. Individual Component Styles */
|
|
2152
2223
|
|
|
2153
2224
|
/* packages/components/src/atomic/Accordion/Accordion.css */
|
|
@@ -2194,21 +2265,46 @@ em {
|
|
|
2194
2265
|
flex-shrink: 0;
|
|
2195
2266
|
width: var(--icon-md);
|
|
2196
2267
|
height: var(--icon-md);
|
|
2197
|
-
transition: transform var(--dur-
|
|
2268
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
2198
2269
|
}
|
|
2199
2270
|
|
|
2200
2271
|
.dndev-accordion-content {
|
|
2201
2272
|
overflow: hidden;
|
|
2202
2273
|
font-size: var(--font-size-base);
|
|
2203
|
-
transition: all var(--dur-fast) var(--ease-in-out);
|
|
2204
2274
|
width: 100%;
|
|
2205
2275
|
min-width: 0;
|
|
2206
2276
|
text-align: start;
|
|
2207
2277
|
}
|
|
2208
2278
|
|
|
2279
|
+
.dndev-accordion-content[data-state='open'] {
|
|
2280
|
+
animation: slideDown var(--dur-normal) var(--ease-in-out);
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2209
2283
|
.dndev-accordion-content[data-state='closed'] {
|
|
2210
|
-
|
|
2284
|
+
animation: slideUp var(--dur-normal) var(--ease-in-out);
|
|
2285
|
+
}
|
|
2286
|
+
|
|
2287
|
+
@keyframes slideDown {
|
|
2288
|
+
from {
|
|
2289
|
+
height: 0;
|
|
2290
|
+
opacity: 0;
|
|
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;
|
|
2211
2302
|
}
|
|
2303
|
+
to {
|
|
2304
|
+
height: 0;
|
|
2305
|
+
opacity: 0;
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2212
2308
|
|
|
2213
2309
|
.dndev-accordion-content-inner {
|
|
2214
2310
|
padding-bottom: var(--gap-md);
|
|
@@ -3199,21 +3295,58 @@ em {
|
|
|
3199
3295
|
@keyframes slideDown {
|
|
3200
3296
|
from {
|
|
3201
3297
|
height: 0;
|
|
3298
|
+
opacity: 0;
|
|
3202
3299
|
}
|
|
3203
3300
|
to {
|
|
3204
3301
|
height: var(--radix-collapsible-content-height);
|
|
3302
|
+
opacity: 1;
|
|
3205
3303
|
}
|
|
3206
3304
|
}
|
|
3207
3305
|
|
|
3208
3306
|
@keyframes slideUp {
|
|
3209
3307
|
from {
|
|
3210
3308
|
height: var(--radix-collapsible-content-height);
|
|
3309
|
+
opacity: 1;
|
|
3211
3310
|
}
|
|
3212
3311
|
to {
|
|
3213
3312
|
height: 0;
|
|
3313
|
+
opacity: 0;
|
|
3214
3314
|
}
|
|
3215
3315
|
}
|
|
3216
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
|
+
|
|
3217
3350
|
/* packages/components/src/atomic/Combobox/Combobox.css */
|
|
3218
3351
|
|
|
3219
3352
|
.dndev-combobox-trigger {
|
|
@@ -3293,7 +3426,7 @@ em {
|
|
|
3293
3426
|
.dndev-combobox-content {
|
|
3294
3427
|
width: var(--radix-popover-trigger-width);
|
|
3295
3428
|
min-width: var(--radix-popover-trigger-width);
|
|
3296
|
-
max-
|
|
3429
|
+
max-width: var(--radix-popover-trigger-width);
|
|
3297
3430
|
display: flex;
|
|
3298
3431
|
flex-direction: column;
|
|
3299
3432
|
padding: 0;
|
|
@@ -3308,14 +3441,6 @@ em {
|
|
|
3308
3441
|
width: 100%;
|
|
3309
3442
|
}
|
|
3310
3443
|
|
|
3311
|
-
.dndev-combobox-list {
|
|
3312
|
-
overflow-y: auto;
|
|
3313
|
-
padding: var(--gap-tight);
|
|
3314
|
-
display: flex;
|
|
3315
|
-
flex-direction: column;
|
|
3316
|
-
gap: var(--gap-none);
|
|
3317
|
-
}
|
|
3318
|
-
|
|
3319
3444
|
.dndev-combobox-option {
|
|
3320
3445
|
all: unset;
|
|
3321
3446
|
display: flex;
|
|
@@ -3372,6 +3497,30 @@ em {
|
|
|
3372
3497
|
color: var(--muted-foreground);
|
|
3373
3498
|
}
|
|
3374
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
|
+
|
|
3375
3524
|
/* packages/components/src/atomic/DualCard/DualCard.css */
|
|
3376
3525
|
|
|
3377
3526
|
.dndev-dual-card {
|
|
@@ -3558,13 +3707,15 @@ em {
|
|
|
3558
3707
|
text-align: start;
|
|
3559
3708
|
display: block;
|
|
3560
3709
|
line-height: 1.5; /* Match line numbers */
|
|
3710
|
+
font-size: var(--font-size-sm); /* Explicit match with line numbers */
|
|
3561
3711
|
}
|
|
3562
3712
|
|
|
3563
|
-
/* Ensure shiki-generated code respects line-height */
|
|
3713
|
+
/* Ensure shiki-generated code respects line-height AND font-size */
|
|
3564
3714
|
|
|
3565
3715
|
.dndev-code-code pre,
|
|
3566
3716
|
.dndev-code-code code {
|
|
3567
3717
|
line-height: inherit;
|
|
3718
|
+
font-size: inherit; /* Match parent font-size */
|
|
3568
3719
|
}
|
|
3569
3720
|
|
|
3570
3721
|
/* packages/components/src/atomic/Command/Command.css */
|
|
@@ -3942,16 +4093,6 @@ em {
|
|
|
3942
4093
|
padding: var(--gap-sm);
|
|
3943
4094
|
}
|
|
3944
4095
|
|
|
3945
|
-
/* Dropdown scroll area - constrain height to 50dvh */
|
|
3946
|
-
|
|
3947
|
-
.dndev-dropdown-scroll-area {
|
|
3948
|
-
max-height: 50dvh;
|
|
3949
|
-
}
|
|
3950
|
-
|
|
3951
|
-
.dndev-dropdown-scroll-area .dndev-scroll-area-viewport {
|
|
3952
|
-
max-height: 50dvh;
|
|
3953
|
-
}
|
|
3954
|
-
|
|
3955
4096
|
/* Checked state styling */
|
|
3956
4097
|
|
|
3957
4098
|
.dndev-interactive[data-role='menu-item'][data-state='checked'] {
|
|
@@ -4475,6 +4616,49 @@ em {
|
|
|
4475
4616
|
margin-inline-start: var(--gap-sm);
|
|
4476
4617
|
}
|
|
4477
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
|
+
|
|
4478
4662
|
/* packages/components/src/atomic/List/List.css */
|
|
4479
4663
|
|
|
4480
4664
|
.dndev-list {
|
|
@@ -4783,20 +4967,41 @@ em {
|
|
|
4783
4967
|
/* packages/components/src/atomic/PasswordInput/PasswordInput.css */
|
|
4784
4968
|
|
|
4785
4969
|
.dndev-password-input-with-toggle {
|
|
4786
|
-
padding-inline-end: var(--gap-
|
|
4970
|
+
padding-inline-end: calc(var(--gap-xl) + var(--gap-md)) !important;
|
|
4787
4971
|
}
|
|
4788
4972
|
|
|
4973
|
+
/* Eye icon toggle - ALWAYS at end, cannot be overridden */
|
|
4974
|
+
|
|
4789
4975
|
.dndev-password-toggle-button {
|
|
4790
|
-
position: absolute;
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
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;
|
|
4796
4999
|
}
|
|
4797
5000
|
|
|
4798
5001
|
.dndev-password-toggle-icon {
|
|
4799
5002
|
color: var(--muted-foreground);
|
|
5003
|
+
width: var(--icon-sm);
|
|
5004
|
+
height: var(--icon-sm);
|
|
4800
5005
|
}
|
|
4801
5006
|
|
|
4802
5007
|
/* packages/components/src/atomic/Pagination/Pagination.css */
|
|
@@ -4888,9 +5093,32 @@ em {
|
|
|
4888
5093
|
height: 100%;
|
|
4889
5094
|
width: 100%;
|
|
4890
5095
|
flex: 1;
|
|
5096
|
+
background-color: var(--primary);
|
|
4891
5097
|
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
5098
|
+
|
|
5099
|
+
/* Variant colors */
|
|
4892
5100
|
}
|
|
4893
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
|
+
|
|
4894
5122
|
/* packages/components/src/atomic/RadioGroup/RadioGroup.css */
|
|
4895
5123
|
|
|
4896
5124
|
/* Uses shared .dndev-control-group pattern from patterns.css */
|
|
@@ -5096,7 +5324,6 @@ em {
|
|
|
5096
5324
|
display: flex;
|
|
5097
5325
|
flex-direction: column;
|
|
5098
5326
|
padding: 0;
|
|
5099
|
-
overflow-y: auto;
|
|
5100
5327
|
}
|
|
5101
5328
|
|
|
5102
5329
|
.dndev-interactive[data-radix-select-item] {
|
|
@@ -5218,6 +5445,7 @@ em {
|
|
|
5218
5445
|
letter-spacing: 0.2em;
|
|
5219
5446
|
color: var(--accent) !important;
|
|
5220
5447
|
margin-block-end: var(--gap-md);
|
|
5448
|
+
text-align: center; /* DEFAULT - works without attribute selector */
|
|
5221
5449
|
}
|
|
5222
5450
|
|
|
5223
5451
|
.dndev-section-full-width[data-text-align='start'] .dndev-section-title {
|
|
@@ -5232,6 +5460,51 @@ em {
|
|
|
5232
5460
|
text-align: end;
|
|
5233
5461
|
}
|
|
5234
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
|
+
|
|
5235
5508
|
/* packages/components/src/atomic/Separator/Separator.css */
|
|
5236
5509
|
|
|
5237
5510
|
.dndev-separator {
|
|
@@ -6094,6 +6367,64 @@ em {
|
|
|
6094
6367
|
transform: translateX(calc(2.75rem - 1.25rem - 0.125rem));
|
|
6095
6368
|
}
|
|
6096
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
|
+
|
|
6097
6428
|
/* packages/components/src/atomic/Table/Table.css */
|
|
6098
6429
|
|
|
6099
6430
|
.dndev-table-wrapper {
|
|
@@ -6159,7 +6490,7 @@ em {
|
|
|
6159
6490
|
/* Table head (th) styles */
|
|
6160
6491
|
|
|
6161
6492
|
.dndev-table-head {
|
|
6162
|
-
text-align:
|
|
6493
|
+
text-align: start;
|
|
6163
6494
|
vertical-align: middle;
|
|
6164
6495
|
font-weight: 500;
|
|
6165
6496
|
color: var(--muted-foreground);
|
|
@@ -6176,12 +6507,12 @@ em {
|
|
|
6176
6507
|
text-align: center;
|
|
6177
6508
|
}
|
|
6178
6509
|
|
|
6179
|
-
.dndev-table-head[data-align='
|
|
6180
|
-
text-align:
|
|
6510
|
+
.dndev-table-head[data-align='end'] {
|
|
6511
|
+
text-align: end;
|
|
6181
6512
|
}
|
|
6182
6513
|
|
|
6183
|
-
.dndev-table-head[data-align='
|
|
6184
|
-
text-align:
|
|
6514
|
+
.dndev-table-head[data-align='start'] {
|
|
6515
|
+
text-align: start;
|
|
6185
6516
|
}
|
|
6186
6517
|
|
|
6187
6518
|
/* Table cell (td) styles */
|
|
@@ -6197,14 +6528,48 @@ em {
|
|
|
6197
6528
|
text-align: center;
|
|
6198
6529
|
}
|
|
6199
6530
|
|
|
6200
|
-
.dndev-table-cell[data-align='
|
|
6201
|
-
text-align:
|
|
6531
|
+
.dndev-table-cell[data-align='end'] {
|
|
6532
|
+
text-align: end;
|
|
6202
6533
|
}
|
|
6203
6534
|
|
|
6204
|
-
.dndev-table-cell[data-align='
|
|
6205
|
-
text-align:
|
|
6535
|
+
.dndev-table-cell[data-align='start'] {
|
|
6536
|
+
text-align: start;
|
|
6206
6537
|
}
|
|
6207
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
|
+
|
|
6208
6573
|
/* Table caption styles */
|
|
6209
6574
|
|
|
6210
6575
|
.dndev-table-caption {
|
|
@@ -6221,7 +6586,7 @@ em {
|
|
|
6221
6586
|
|
|
6222
6587
|
.dndev-table-search-icon {
|
|
6223
6588
|
position: absolute;
|
|
6224
|
-
|
|
6589
|
+
inset-inline-start: var(--gap-md);
|
|
6225
6590
|
top: 50%;
|
|
6226
6591
|
transform: translateY(-50%);
|
|
6227
6592
|
width: var(--icon-md);
|
|
@@ -6388,7 +6753,7 @@ em {
|
|
|
6388
6753
|
.dndev-tag {
|
|
6389
6754
|
display: inline-flex;
|
|
6390
6755
|
align-items: center;
|
|
6391
|
-
gap: var(--gap-
|
|
6756
|
+
gap: var(--gap-sm);
|
|
6392
6757
|
border-radius: var(--radius-full);
|
|
6393
6758
|
border: 1px solid transparent;
|
|
6394
6759
|
font-size: var(--font-size-sm);
|
|
@@ -6518,8 +6883,18 @@ em {
|
|
|
6518
6883
|
font-weight: var(--font-weight-medium);
|
|
6519
6884
|
line-height: var(--line-height);
|
|
6520
6885
|
background-color: transparent; /* Text never has background, only color changes */
|
|
6886
|
+
|
|
6887
|
+
/* Respect semantic HTML elements */
|
|
6521
6888
|
}
|
|
6522
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
|
+
|
|
6523
6898
|
.dndev-text-base[data-variant='default'] {
|
|
6524
6899
|
color: inherit;
|
|
6525
6900
|
}
|
|
@@ -7467,7 +7842,7 @@ em {
|
|
|
7467
7842
|
align-items: stretch;
|
|
7468
7843
|
}
|
|
7469
7844
|
|
|
7470
|
-
@media (width <=
|
|
7845
|
+
@media (width <=699px) {
|
|
7471
7846
|
|
|
7472
7847
|
[data-cols='2'] {
|
|
7473
7848
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7479,14 +7854,14 @@ em {
|
|
|
7479
7854
|
align-items: stretch;
|
|
7480
7855
|
}
|
|
7481
7856
|
|
|
7482
|
-
@media (width <=
|
|
7857
|
+
@media (width <=1049px) {
|
|
7483
7858
|
|
|
7484
7859
|
[data-cols='3'] {
|
|
7485
7860
|
grid-template-columns: repeat(2, minmax(350px, 1fr));
|
|
7486
7861
|
}
|
|
7487
7862
|
}
|
|
7488
7863
|
|
|
7489
|
-
@media (width <=
|
|
7864
|
+
@media (width <=699px) {
|
|
7490
7865
|
|
|
7491
7866
|
[data-cols='3'] {
|
|
7492
7867
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7500,21 +7875,21 @@ em {
|
|
|
7500
7875
|
/* Responsive: reduce columns when container is narrow */
|
|
7501
7876
|
}
|
|
7502
7877
|
|
|
7503
|
-
@media (width <=
|
|
7878
|
+
@media (width <=1399px) {
|
|
7504
7879
|
|
|
7505
7880
|
[data-cols='4'] {
|
|
7506
7881
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
7507
7882
|
}
|
|
7508
7883
|
}
|
|
7509
7884
|
|
|
7510
|
-
@media (width <=
|
|
7885
|
+
@media (width <=1049px) {
|
|
7511
7886
|
|
|
7512
7887
|
[data-cols='4'] {
|
|
7513
7888
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
7514
7889
|
}
|
|
7515
7890
|
}
|
|
7516
7891
|
|
|
7517
|
-
@media (width <=
|
|
7892
|
+
@media (width <=699px) {
|
|
7518
7893
|
|
|
7519
7894
|
[data-cols='4'] {
|
|
7520
7895
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
@@ -7581,18 +7956,22 @@ em {
|
|
|
7581
7956
|
|
|
7582
7957
|
code {
|
|
7583
7958
|
font-family: var(--font-mono);
|
|
7584
|
-
font-size: inherit;
|
|
7585
|
-
|
|
7959
|
+
font-size: inherit;
|
|
7960
|
+
/* Inherit parent size */
|
|
7961
|
+
font-weight: inherit;
|
|
7962
|
+
/* Inherit parent weight */
|
|
7586
7963
|
line-height: inherit;
|
|
7587
7964
|
color: inherit;
|
|
7588
|
-
background: transparent;
|
|
7965
|
+
background: transparent;
|
|
7966
|
+
/* No background by default */
|
|
7589
7967
|
}
|
|
7590
7968
|
|
|
7591
7969
|
/* Code variant - visual styling (background, padding, can apply to any element) */
|
|
7592
7970
|
|
|
7593
7971
|
[data-variant='code'] {
|
|
7594
7972
|
font-family: var(--font-mono);
|
|
7595
|
-
font-size: var(--font-size-sm);
|
|
7973
|
+
font-size: var(--font-size-sm);
|
|
7974
|
+
/* Default small size */
|
|
7596
7975
|
background: var(--muted);
|
|
7597
7976
|
color: var(--muted-foreground);
|
|
7598
7977
|
padding: var(--gap-sm) var(--gap-md);
|
|
@@ -7687,7 +8066,8 @@ h4[data-variant='code'] {
|
|
|
7687
8066
|
|
|
7688
8067
|
.dndev-relative {
|
|
7689
8068
|
position: relative;
|
|
7690
|
-
min-width: 0;
|
|
8069
|
+
min-width: 0;
|
|
8070
|
+
/* Allow flex items to shrink below content size */
|
|
7691
8071
|
}
|
|
7692
8072
|
|
|
7693
8073
|
.dndev-absolute {
|
|
@@ -7792,7 +8172,7 @@ h4[data-variant='code'] {
|
|
|
7792
8172
|
RESPONSIVE DISPLAY
|
|
7793
8173
|
=========================== */
|
|
7794
8174
|
|
|
7795
|
-
@media (width >=
|
|
8175
|
+
@media (width >=768px) {
|
|
7796
8176
|
.dndev-md\:block {
|
|
7797
8177
|
display: block;
|
|
7798
8178
|
}
|
|
@@ -7818,7 +8198,7 @@ h4[data-variant='code'] {
|
|
|
7818
8198
|
}
|
|
7819
8199
|
}
|
|
7820
8200
|
|
|
7821
|
-
@media (width >=
|
|
8201
|
+
@media (width >=1024px) {
|
|
7822
8202
|
.dndev-lg\:block {
|
|
7823
8203
|
display: block;
|
|
7824
8204
|
}
|
|
@@ -7878,6 +8258,10 @@ h4[data-variant='code'] {
|
|
|
7878
8258
|
Components are unaffected - they own their own spacing
|
|
7879
8259
|
=========================== */
|
|
7880
8260
|
|
|
8261
|
+
.prose {
|
|
8262
|
+
text-align: start;
|
|
8263
|
+
}
|
|
8264
|
+
|
|
7881
8265
|
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
|
|
7882
8266
|
margin-block: var(--gap-md);
|
|
7883
8267
|
}
|
|
@@ -9081,7 +9465,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9081
9465
|
.breadcrumb-item {
|
|
9082
9466
|
display: inline-flex;
|
|
9083
9467
|
align-items: center;
|
|
9084
|
-
gap: var(--gap-
|
|
9468
|
+
gap: var(--gap-sm);
|
|
9085
9469
|
}
|
|
9086
9470
|
|
|
9087
9471
|
.breadcrumbs .separator,
|
|
@@ -9158,7 +9542,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9158
9542
|
min-height: 0;
|
|
9159
9543
|
display: flex;
|
|
9160
9544
|
flex-direction: column;
|
|
9161
|
-
justify-content:
|
|
9545
|
+
justify-content: flex-start;
|
|
9162
9546
|
gap: var(--gap-lg);
|
|
9163
9547
|
/* Controlled by density system */
|
|
9164
9548
|
/* Default: centered */
|
|
@@ -9445,7 +9829,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9445
9829
|
font-family: Roboto;
|
|
9446
9830
|
font-style: normal;
|
|
9447
9831
|
font-weight: 400;
|
|
9448
|
-
font-display:
|
|
9832
|
+
font-display: swap;
|
|
9449
9833
|
src: url('/fonts/Roboto-400-latin.woff2') format('woff2');
|
|
9450
9834
|
unicode-range: U+0000-00FF; /* Basic Latin - loads first for performance */
|
|
9451
9835
|
}
|
|
@@ -9454,7 +9838,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9454
9838
|
font-family: Roboto;
|
|
9455
9839
|
font-style: normal;
|
|
9456
9840
|
font-weight: 700;
|
|
9457
|
-
font-display:
|
|
9841
|
+
font-display: swap;
|
|
9458
9842
|
src: url('/fonts/Roboto-700-latin.woff2') format('woff2');
|
|
9459
9843
|
unicode-range: U+0000-00FF; /* Basic Latin - loads first for performance */
|
|
9460
9844
|
}
|
|
@@ -9602,7 +9986,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9602
9986
|
font-family: Inter;
|
|
9603
9987
|
font-style: normal;
|
|
9604
9988
|
font-weight: 400 700;
|
|
9605
|
-
font-display: optional
|
|
9989
|
+
font-display: swap; /* Changed from optional to swap - we preload this font */
|
|
9606
9990
|
src: url('/fonts/Inter-latin.woff2') format('woff2');
|
|
9607
9991
|
unicode-range:
|
|
9608
9992
|
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
|
|
@@ -9635,7 +10019,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9635
10019
|
font-family: 'Playfair Display';
|
|
9636
10020
|
font-style: normal;
|
|
9637
10021
|
font-weight: 400 700;
|
|
9638
|
-
font-display:
|
|
10022
|
+
font-display: swap;
|
|
9639
10023
|
src: url('/fonts/PlayfairDisplay-latin.woff2') format('woff2');
|
|
9640
10024
|
unicode-range:
|
|
9641
10025
|
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
|