@donotdev/ui 0.0.7 → 0.0.9
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 -1
- package/dist/components/auth/AuthMenu.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.js +3 -3
- package/dist/components/common/AppLoading.d.ts +1 -1
- package/dist/components/common/AppLoading.d.ts.map +1 -1
- package/dist/components/common/AppLoading.js +0 -1
- package/dist/components/common/Loader.d.ts +4 -4
- package/dist/components/common/Loader.d.ts.map +1 -1
- package/dist/components/common/Loader.js +11 -12
- package/dist/components/common/LoadingMessage.d.ts +1 -9
- package/dist/components/common/LoadingMessage.d.ts.map +1 -1
- package/dist/components/common/LoadingMessage.js +0 -1
- package/dist/components/common/LoadingScreen.d.ts +1 -9
- package/dist/components/common/LoadingScreen.d.ts.map +1 -1
- package/dist/components/common/LoadingScreen.js +0 -1
- 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/TechBento.d.ts.map +1 -1
- package/dist/components/common/TechBento.js +1 -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/FloatingLanguageSwitcher.d.ts +1 -9
- package/dist/components/layout/components/FloatingLanguageSwitcher.d.ts.map +1 -1
- package/dist/components/layout/components/FloatingLanguageSwitcher.js +0 -1
- package/dist/components/layout/components/header/CacheSettings.d.ts.map +1 -1
- package/dist/components/layout/components/header/HeaderMenu.d.ts.map +1 -1
- package/dist/components/layout/components/header/SettingsMenu.d.ts.map +1 -1
- package/dist/components/layout/components/header/SettingsMenu.js +1 -2
- package/dist/components/layout/components/header/ThemeToggle.d.ts +1 -1
- package/dist/components/layout/components/header/ThemeToggle.d.ts.map +1 -1
- package/dist/components/layout/components/header/ThemeToggle.js +5 -4
- package/dist/crud/components/DisplayFieldRenderer.d.ts +3 -11
- package/dist/crud/components/DisplayFieldRenderer.d.ts.map +1 -1
- package/dist/crud/components/DisplayFieldRenderer.js +4 -3
- package/dist/crud/components/EntityDisplayRenderer.d.ts +2 -2
- package/dist/crud/components/fields/display/AvatarFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/BadgeFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/ButtonFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/CheckboxFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/DateFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/DateFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/DateFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/DropdownDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/FileFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/GeoPointFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/HiddenFieldDisplay.d.ts +3 -3
- package/dist/crud/components/fields/display/HiddenFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/HiddenFieldDisplay.js +0 -9
- package/dist/crud/components/fields/display/ImageFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/ImageFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/ImageFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/LinkFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/LinkFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/LinkFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/MapFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/MapFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/MapFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/MultiDropdownDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/MultiDropdownDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/MultiDropdownDisplay.js +0 -1
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/MultiInputTextFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/NumberFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/NumberFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/NumberFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/PasswordFieldDisplay.d.ts +3 -3
- package/dist/crud/components/fields/display/PasswordFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/PasswordFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/PhoneNumberDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/PhoneNumberDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/PhoneNumberDisplay.js +0 -1
- package/dist/crud/components/fields/display/RadioFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/RadioFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/RadioFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/RangeFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/RangeFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/RangeFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/ReferenceFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/RichTextDisplay.d.ts +25 -0
- package/dist/crud/components/fields/display/RichTextDisplay.d.ts.map +1 -0
- package/dist/crud/components/fields/display/RichTextDisplay.js +104 -0
- package/dist/crud/components/fields/display/TextAreaDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/TextAreaDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/TextAreaDisplay.js +0 -1
- package/dist/crud/components/fields/display/TextFieldDisplay.d.ts +2 -2
- package/dist/crud/components/fields/display/TimestampFieldDisplay.d.ts +3 -11
- package/dist/crud/components/fields/display/TimestampFieldDisplay.d.ts.map +1 -1
- package/dist/crud/components/fields/display/TimestampFieldDisplay.js +0 -1
- package/dist/crud/components/fields/display/index.d.ts +1 -0
- package/dist/crud/components/fields/display/index.d.ts.map +1 -1
- package/dist/crud/components/fields/display/index.js +1 -0
- package/dist/dndev.css +827 -126
- package/dist/index.js +64 -4
- package/dist/internal/common/ErrorFallback.d.ts +1 -10
- package/dist/internal/common/ErrorFallback.d.ts.map +1 -1
- package/dist/internal/common/GlobalErrorFallback.d.ts +1 -9
- package/dist/internal/common/GlobalErrorFallback.d.ts.map +1 -1
- package/dist/internal/common/RouteErrorFallback.js +1 -1
- package/dist/internal/devtools/components/DebugDialog.d.ts.map +1 -1
- package/dist/internal/devtools/components/DebugDialog.js +3 -1
- package/dist/internal/devtools/components/DesignTab.d.ts.map +1 -1
- package/dist/internal/devtools/components/DesignTab.js +25 -3
- package/dist/internal/devtools/components/MaskedValue.d.ts.map +1 -1
- package/dist/internal/devtools/components/MaskedValue.js +1 -1
- package/dist/internal/devtools/components/StoresTab.js +1 -1
- package/dist/internal/initializers/BaseStoresInitializer.d.ts.map +1 -1
- package/dist/internal/initializers/BaseStoresInitializer.js +1 -2
- package/dist/internal/initializers/NextJsStoresInitializer.d.ts.map +1 -1
- package/dist/internal/layout/DnDevLayout.d.ts.map +1 -1
- package/dist/internal/layout/DnDevLayout.js +4 -5
- package/dist/internal/layout/components/AutoMetaTags.d.ts.map +1 -1
- package/dist/internal/layout/components/PerformanceHints.d.ts.map +1 -1
- package/dist/internal/layout/components/PerformanceHints.js +3 -2
- package/dist/internal/layout/components/footer/FooterLegalLinks.js +2 -2
- package/dist/internal/layout/config/defaults.d.ts +0 -10
- package/dist/internal/layout/config/defaults.d.ts.map +1 -1
- package/dist/internal/layout/config/defaults.js +12 -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 +15 -6
- package/dist/internal/layout/config/presets/blog.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/blog.js +7 -1
- package/dist/internal/layout/config/presets/docs.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/docs.js +7 -5
- package/dist/internal/layout/config/presets/game.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/game.js +7 -2
- package/dist/internal/layout/config/presets/moolti.d.ts.map +1 -1
- package/dist/internal/layout/config/presets/moolti.js +10 -3
- package/dist/internal/layout/zones/DnDevFooter.d.ts +1 -13
- package/dist/internal/layout/zones/DnDevFooter.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevHeader.d.ts +1 -14
- package/dist/internal/layout/zones/DnDevHeader.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevMergedBar.d.ts +2 -14
- package/dist/internal/layout/zones/DnDevMergedBar.d.ts.map +1 -1
- package/dist/internal/layout/zones/DnDevMergedBar.js +11 -3
- package/dist/internal/layout/zones/DnDevSidebar.d.ts +1 -14
- package/dist/internal/layout/zones/DnDevSidebar.d.ts.map +1 -1
- package/dist/providers/NextJsAppProviders.d.ts.map +1 -1
- package/dist/providers/NextJsAppProviders.js +4 -1
- package/dist/routing/AuthGuard.d.ts.map +1 -1
- package/dist/routing/GoTo.d.ts +3 -1
- package/dist/routing/GoTo.d.ts.map +1 -1
- package/dist/routing/GoTo.js +6 -2
- package/dist/routing/GoToDialog.d.ts +1 -1
- package/dist/routing/GoToDialog.d.ts.map +1 -1
- package/dist/routing/GoToDialog.js +3 -5
- package/dist/routing/NavigationItem.d.ts +1 -1
- package/dist/routing/NavigationItem.d.ts.map +1 -1
- package/dist/routing/NavigationItem.js +0 -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/useNavigate.next.d.ts.map +1 -1
- package/dist/routing/hooks/useNavigate.next.js +1 -1
- package/dist/routing/hooks/useNavigate.vite.d.ts.map +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.map +1 -1
- package/dist/styles/index.css +823 -122
- package/dist/utils/assetResolver.d.ts +1 -1
- package/dist/utils/assetResolver.d.ts.map +1 -1
- package/dist/utils/assetResolver.js +1 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/tList.d.ts +1 -1
- package/dist/utils/tList.d.ts.map +1 -1
- package/dist/utils/useAuthSafe.d.ts +0 -33
- package/dist/utils/useAuthSafe.d.ts.map +1 -1
- package/dist/utils/useAuthSafe.js +34 -1
- package/dist/utils/useCrudSafe.d.ts +12 -6
- package/dist/utils/useCrudSafe.d.ts.map +1 -1
- package/dist/utils/useCrudSafe.js +11 -7
- package/dist/utils/useOAuthSafe.d.ts.map +1 -1
- package/dist/utils/useStripeBillingSafe.d.ts +1 -34
- package/dist/utils/useStripeBillingSafe.d.ts.map +1 -1
- package/dist/utils/useStripeBillingSafe.js +34 -1
- package/dist/vite-routing/AppRoutes.d.ts +1 -1
- package/dist/vite-routing/AppRoutes.d.ts.map +1 -1
- package/dist/vite-routing/AppRoutes.js +0 -1
- package/dist/vite-routing/RootLayout.d.ts.map +1 -1
- package/dist/vite-routing/RootLayout.js +6 -6
- package/package.json +9 -9
package/dist/styles/index.css
CHANGED
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
--font-headline: var(--font-sans);
|
|
154
154
|
|
|
155
155
|
--font-mono:
|
|
156
|
-
ui-monospace, 'SF Mono', 'Cascadia Code',
|
|
156
|
+
ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, Monaco,
|
|
157
157
|
'Liberation Mono', monospace;
|
|
158
158
|
|
|
159
159
|
/* Typography Scale - Musical Scale System (STANDARD density defaults - Major Third 1.25×) */
|
|
@@ -710,6 +710,16 @@ em {
|
|
|
710
710
|
|
|
711
711
|
/* packages/components/src/styles/patterns.css */
|
|
712
712
|
|
|
713
|
+
/* Menu scroll area pattern - shared by DropdownMenu, Select, Combobox */
|
|
714
|
+
|
|
715
|
+
.dndev-menu-scroll-area {
|
|
716
|
+
max-height: 50dvh;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
.dndev-menu-scroll-area .dndev-scroll-area-viewport {
|
|
720
|
+
max-height: 50dvh;
|
|
721
|
+
}
|
|
722
|
+
|
|
713
723
|
/* ===========================
|
|
714
724
|
FORM COMPONENTS (BASE)
|
|
715
725
|
=========================== */
|
|
@@ -904,6 +914,9 @@ em {
|
|
|
904
914
|
border-radius: var(--radius-surface);
|
|
905
915
|
box-shadow: var(--shadow-md);
|
|
906
916
|
padding: var(--gap-md); /* 1rem / 16px default */
|
|
917
|
+
padding-block-start: calc(
|
|
918
|
+
var(--gap-md) + var(--gap-sm)
|
|
919
|
+
); /* Extra top padding for FloatingLabels */
|
|
907
920
|
position: relative;
|
|
908
921
|
overflow: hidden;
|
|
909
922
|
contain: layout style;
|
|
@@ -1154,6 +1167,9 @@ em {
|
|
|
1154
1167
|
border-radius: var(--radius-floating);
|
|
1155
1168
|
box-shadow: var(--shadow-md);
|
|
1156
1169
|
padding: var(--gap-md); /* 1rem / 16px default */
|
|
1170
|
+
padding-block-start: calc(
|
|
1171
|
+
var(--gap-md) + var(--gap-sm)
|
|
1172
|
+
); /* Extra top padding for FloatingLabels */
|
|
1157
1173
|
position: relative;
|
|
1158
1174
|
overflow: hidden;
|
|
1159
1175
|
contain: layout style;
|
|
@@ -2084,8 +2100,9 @@ em {
|
|
|
2084
2100
|
display: flex;
|
|
2085
2101
|
flex-direction: column;
|
|
2086
2102
|
overflow-y: auto;
|
|
2087
|
-
overflow-x:
|
|
2103
|
+
overflow-x: visible;
|
|
2088
2104
|
min-height: 0;
|
|
2105
|
+
padding-block-start: var(--gap-sm);
|
|
2089
2106
|
}
|
|
2090
2107
|
|
|
2091
2108
|
.dndev-modal-title {
|
|
@@ -2144,6 +2161,60 @@ em {
|
|
|
2144
2161
|
flex-direction: column;
|
|
2145
2162
|
}
|
|
2146
2163
|
|
|
2164
|
+
/* ===========================
|
|
2165
|
+
AUTH FORM PATTERNS
|
|
2166
|
+
=========================== */
|
|
2167
|
+
|
|
2168
|
+
/* Auth form step indicator */
|
|
2169
|
+
|
|
2170
|
+
.dndev-auth-step {
|
|
2171
|
+
display: inline-flex;
|
|
2172
|
+
align-items: center;
|
|
2173
|
+
justify-content: center;
|
|
2174
|
+
min-width: 1.5em;
|
|
2175
|
+
padding: var(--gap-sm);
|
|
2176
|
+
border-radius: var(--radius-sm);
|
|
2177
|
+
font-weight: var(--font-weight-semibold);
|
|
2178
|
+
transition: all var(--dur-fast) var(--ease-in-out);
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
.dndev-auth-step[data-state='active'] {
|
|
2182
|
+
background-color: var(--primary);
|
|
2183
|
+
color: var(--primary-foreground);
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.dndev-auth-step[data-state='pending'] {
|
|
2187
|
+
background-color: var(--muted);
|
|
2188
|
+
color: var(--muted-foreground);
|
|
2189
|
+
}
|
|
2190
|
+
|
|
2191
|
+
.dndev-auth-step[data-state='completed'] {
|
|
2192
|
+
background-color: var(--success);
|
|
2193
|
+
color: var(--success-foreground);
|
|
2194
|
+
}
|
|
2195
|
+
|
|
2196
|
+
/* Opacity data attribute */
|
|
2197
|
+
|
|
2198
|
+
[data-opacity='50'] {
|
|
2199
|
+
opacity: 0.5;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
[data-opacity='70'] {
|
|
2203
|
+
opacity: 0.7;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
/* Inset data attribute - indent content */
|
|
2207
|
+
|
|
2208
|
+
[data-inset='true'] {
|
|
2209
|
+
padding-inline-start: var(--gap-md);
|
|
2210
|
+
}
|
|
2211
|
+
|
|
2212
|
+
/* Password strength bar height override */
|
|
2213
|
+
|
|
2214
|
+
.dndev-password-strength-bar {
|
|
2215
|
+
height: 4px;
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2147
2218
|
/* 5. Individual Component Styles */
|
|
2148
2219
|
|
|
2149
2220
|
/* packages/components/src/atomic/Accordion/Accordion.css */
|
|
@@ -2190,21 +2261,46 @@ em {
|
|
|
2190
2261
|
flex-shrink: 0;
|
|
2191
2262
|
width: var(--icon-md);
|
|
2192
2263
|
height: var(--icon-md);
|
|
2193
|
-
transition: transform var(--dur-
|
|
2264
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
2194
2265
|
}
|
|
2195
2266
|
|
|
2196
2267
|
.dndev-accordion-content {
|
|
2197
2268
|
overflow: hidden;
|
|
2198
2269
|
font-size: var(--font-size-base);
|
|
2199
|
-
transition: all var(--dur-fast) var(--ease-in-out);
|
|
2200
2270
|
width: 100%;
|
|
2201
2271
|
min-width: 0;
|
|
2202
2272
|
text-align: start;
|
|
2203
2273
|
}
|
|
2204
2274
|
|
|
2275
|
+
.dndev-accordion-content[data-state='open'] {
|
|
2276
|
+
animation: slideDown var(--dur-normal) var(--ease-in-out);
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2205
2279
|
.dndev-accordion-content[data-state='closed'] {
|
|
2206
|
-
|
|
2280
|
+
animation: slideUp var(--dur-normal) var(--ease-in-out);
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
@keyframes slideDown {
|
|
2284
|
+
from {
|
|
2285
|
+
height: 0;
|
|
2286
|
+
opacity: 0;
|
|
2287
|
+
}
|
|
2288
|
+
to {
|
|
2289
|
+
height: var(--radix-collapsible-content-height);
|
|
2290
|
+
opacity: 1;
|
|
2291
|
+
}
|
|
2292
|
+
}
|
|
2293
|
+
|
|
2294
|
+
@keyframes slideUp {
|
|
2295
|
+
from {
|
|
2296
|
+
height: var(--radix-collapsible-content-height);
|
|
2297
|
+
opacity: 1;
|
|
2298
|
+
}
|
|
2299
|
+
to {
|
|
2300
|
+
height: 0;
|
|
2301
|
+
opacity: 0;
|
|
2207
2302
|
}
|
|
2303
|
+
}
|
|
2208
2304
|
|
|
2209
2305
|
.dndev-accordion-content-inner {
|
|
2210
2306
|
padding-bottom: var(--gap-md);
|
|
@@ -2628,6 +2724,34 @@ em {
|
|
|
2628
2724
|
|
|
2629
2725
|
/* Label styling moved to patterns.css (.dndev-interactive-label) */
|
|
2630
2726
|
|
|
2727
|
+
/* Loading state */
|
|
2728
|
+
|
|
2729
|
+
[data-loading] {
|
|
2730
|
+
cursor: wait;
|
|
2731
|
+
pointer-events: none;
|
|
2732
|
+
}
|
|
2733
|
+
|
|
2734
|
+
/* Button spinner - inherits size from button font-size */
|
|
2735
|
+
|
|
2736
|
+
.dndev-button-spinner {
|
|
2737
|
+
flex-shrink: 0;
|
|
2738
|
+
}
|
|
2739
|
+
|
|
2740
|
+
/* Progress ring for upload percentage */
|
|
2741
|
+
|
|
2742
|
+
.dndev-button-progress {
|
|
2743
|
+
display: inline-flex;
|
|
2744
|
+
align-items: center;
|
|
2745
|
+
justify-content: center;
|
|
2746
|
+
flex-shrink: 0;
|
|
2747
|
+
}
|
|
2748
|
+
|
|
2749
|
+
.dndev-progress-ring {
|
|
2750
|
+
width: 1em;
|
|
2751
|
+
height: 1em;
|
|
2752
|
+
transform: rotate(-90deg);
|
|
2753
|
+
}
|
|
2754
|
+
|
|
2631
2755
|
/* packages/components/src/atomic/Calendar/Calendar.css */
|
|
2632
2756
|
|
|
2633
2757
|
/**
|
|
@@ -3195,21 +3319,58 @@ em {
|
|
|
3195
3319
|
@keyframes slideDown {
|
|
3196
3320
|
from {
|
|
3197
3321
|
height: 0;
|
|
3322
|
+
opacity: 0;
|
|
3198
3323
|
}
|
|
3199
3324
|
to {
|
|
3200
3325
|
height: var(--radix-collapsible-content-height);
|
|
3326
|
+
opacity: 1;
|
|
3201
3327
|
}
|
|
3202
3328
|
}
|
|
3203
3329
|
|
|
3204
3330
|
@keyframes slideUp {
|
|
3205
3331
|
from {
|
|
3206
3332
|
height: var(--radix-collapsible-content-height);
|
|
3333
|
+
opacity: 1;
|
|
3207
3334
|
}
|
|
3208
3335
|
to {
|
|
3209
3336
|
height: 0;
|
|
3337
|
+
opacity: 0;
|
|
3210
3338
|
}
|
|
3211
3339
|
}
|
|
3212
3340
|
|
|
3341
|
+
.dndev-collapsible-trigger {
|
|
3342
|
+
width: 100%;
|
|
3343
|
+
cursor: pointer;
|
|
3344
|
+
transition: opacity var(--dur-fast) var(--ease-in-out);
|
|
3345
|
+
}
|
|
3346
|
+
|
|
3347
|
+
.dndev-collapsible-trigger:hover {
|
|
3348
|
+
opacity: var(--opacity-strong);
|
|
3349
|
+
}
|
|
3350
|
+
|
|
3351
|
+
.dndev-collapsible-trigger:focus-visible {
|
|
3352
|
+
outline: 2px solid var(--ring);
|
|
3353
|
+
outline-offset: 2px;
|
|
3354
|
+
border-radius: var(--radius-interactive);
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
.dndev-collapsible-icon {
|
|
3358
|
+
width: var(--size-md);
|
|
3359
|
+
height: var(--size-md);
|
|
3360
|
+
flex-shrink: 0;
|
|
3361
|
+
color: var(--accent);
|
|
3362
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
3363
|
+
}
|
|
3364
|
+
|
|
3365
|
+
.dndev-collapsible-chevron {
|
|
3366
|
+
transform: rotate(0deg);
|
|
3367
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
3368
|
+
}
|
|
3369
|
+
|
|
3370
|
+
.dndev-collapsible[data-state='open'] .dndev-collapsible-chevron {
|
|
3371
|
+
transform: rotate(180deg);
|
|
3372
|
+
}
|
|
3373
|
+
|
|
3213
3374
|
/* packages/components/src/atomic/Combobox/Combobox.css */
|
|
3214
3375
|
|
|
3215
3376
|
.dndev-combobox-trigger {
|
|
@@ -3289,7 +3450,7 @@ em {
|
|
|
3289
3450
|
.dndev-combobox-content {
|
|
3290
3451
|
width: var(--radix-popover-trigger-width);
|
|
3291
3452
|
min-width: var(--radix-popover-trigger-width);
|
|
3292
|
-
max-
|
|
3453
|
+
max-width: var(--radix-popover-trigger-width);
|
|
3293
3454
|
display: flex;
|
|
3294
3455
|
flex-direction: column;
|
|
3295
3456
|
padding: 0;
|
|
@@ -3304,14 +3465,6 @@ em {
|
|
|
3304
3465
|
width: 100%;
|
|
3305
3466
|
}
|
|
3306
3467
|
|
|
3307
|
-
.dndev-combobox-list {
|
|
3308
|
-
overflow-y: auto;
|
|
3309
|
-
padding: var(--gap-tight);
|
|
3310
|
-
display: flex;
|
|
3311
|
-
flex-direction: column;
|
|
3312
|
-
gap: var(--gap-none);
|
|
3313
|
-
}
|
|
3314
|
-
|
|
3315
3468
|
.dndev-combobox-option {
|
|
3316
3469
|
all: unset;
|
|
3317
3470
|
display: flex;
|
|
@@ -3368,6 +3521,30 @@ em {
|
|
|
3368
3521
|
color: var(--muted-foreground);
|
|
3369
3522
|
}
|
|
3370
3523
|
|
|
3524
|
+
/* Creatable option styling */
|
|
3525
|
+
|
|
3526
|
+
.dndev-combobox-option-create {
|
|
3527
|
+
color: var(--primary);
|
|
3528
|
+
font-style: italic;
|
|
3529
|
+
}
|
|
3530
|
+
|
|
3531
|
+
.dndev-combobox-option-create-icon {
|
|
3532
|
+
width: var(--icon-md);
|
|
3533
|
+
height: var(--icon-md);
|
|
3534
|
+
margin-inline-end: var(--gap-sm);
|
|
3535
|
+
flex-shrink: 0;
|
|
3536
|
+
}
|
|
3537
|
+
|
|
3538
|
+
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon svg,
|
|
3539
|
+
.dndev-combobox-open .dndev-input-with-trailing-icon .dndev-input-icon > * {
|
|
3540
|
+
transform: rotate(180deg);
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3543
|
+
.dndev-input-with-trailing-icon .dndev-input-icon svg,
|
|
3544
|
+
.dndev-input-with-trailing-icon .dndev-input-icon > * {
|
|
3545
|
+
transition: transform var(--dur-fast) var(--ease-in-out);
|
|
3546
|
+
}
|
|
3547
|
+
|
|
3371
3548
|
/* packages/components/src/atomic/DualCard/DualCard.css */
|
|
3372
3549
|
|
|
3373
3550
|
.dndev-dual-card {
|
|
@@ -3554,13 +3731,15 @@ em {
|
|
|
3554
3731
|
text-align: start;
|
|
3555
3732
|
display: block;
|
|
3556
3733
|
line-height: 1.5; /* Match line numbers */
|
|
3734
|
+
font-size: var(--font-size-sm); /* Explicit match with line numbers */
|
|
3557
3735
|
}
|
|
3558
3736
|
|
|
3559
|
-
/* Ensure shiki-generated code respects line-height */
|
|
3737
|
+
/* Ensure shiki-generated code respects line-height AND font-size */
|
|
3560
3738
|
|
|
3561
3739
|
.dndev-code-code pre,
|
|
3562
3740
|
.dndev-code-code code {
|
|
3563
3741
|
line-height: inherit;
|
|
3742
|
+
font-size: inherit; /* Match parent font-size */
|
|
3564
3743
|
}
|
|
3565
3744
|
|
|
3566
3745
|
/* packages/components/src/atomic/Command/Command.css */
|
|
@@ -3938,16 +4117,6 @@ em {
|
|
|
3938
4117
|
padding: var(--gap-sm);
|
|
3939
4118
|
}
|
|
3940
4119
|
|
|
3941
|
-
/* Dropdown scroll area - constrain height to 50dvh */
|
|
3942
|
-
|
|
3943
|
-
.dndev-dropdown-scroll-area {
|
|
3944
|
-
max-height: 50dvh;
|
|
3945
|
-
}
|
|
3946
|
-
|
|
3947
|
-
.dndev-dropdown-scroll-area .dndev-scroll-area-viewport {
|
|
3948
|
-
max-height: 50dvh;
|
|
3949
|
-
}
|
|
3950
|
-
|
|
3951
4120
|
/* Checked state styling */
|
|
3952
4121
|
|
|
3953
4122
|
.dndev-interactive[data-role='menu-item'][data-state='checked'] {
|
|
@@ -4471,6 +4640,81 @@ em {
|
|
|
4471
4640
|
margin-inline-start: var(--gap-sm);
|
|
4472
4641
|
}
|
|
4473
4642
|
|
|
4643
|
+
/* Floating Fieldset - native border-cutting via legend */
|
|
4644
|
+
|
|
4645
|
+
.dndev-floating-fieldset {
|
|
4646
|
+
position: relative;
|
|
4647
|
+
border: var(--border-hairline) solid var(--line-2);
|
|
4648
|
+
border-radius: var(--radius-interactive);
|
|
4649
|
+
margin: 0;
|
|
4650
|
+
padding: 0;
|
|
4651
|
+
background-color: transparent;
|
|
4652
|
+
transition: all var(--dur-normal) var(--ease-in-out);
|
|
4653
|
+
text-align: start;
|
|
4654
|
+
}
|
|
4655
|
+
|
|
4656
|
+
.dndev-floating-fieldset:hover {
|
|
4657
|
+
border-color: var(--ring);
|
|
4658
|
+
}
|
|
4659
|
+
|
|
4660
|
+
.dndev-floating-fieldset:focus-within {
|
|
4661
|
+
border-color: var(--ring);
|
|
4662
|
+
box-shadow: 0 0 0 2px var(--ring);
|
|
4663
|
+
}
|
|
4664
|
+
|
|
4665
|
+
.dndev-floating-fieldset[data-disabled='true'] {
|
|
4666
|
+
opacity: var(--opacity-muted);
|
|
4667
|
+
cursor: not-allowed;
|
|
4668
|
+
}
|
|
4669
|
+
|
|
4670
|
+
/* Legend sits on border - browser natively cuts border */
|
|
4671
|
+
|
|
4672
|
+
.dndev-floating-legend {
|
|
4673
|
+
margin-inline-start: var(--gap-sm);
|
|
4674
|
+
padding: 0 var(--gap-sm);
|
|
4675
|
+
font-size: var(--font-size-xs);
|
|
4676
|
+
font-weight: 500;
|
|
4677
|
+
line-height: 1;
|
|
4678
|
+
color: var(--foreground);
|
|
4679
|
+
}
|
|
4680
|
+
|
|
4681
|
+
.dndev-floating-legend label {
|
|
4682
|
+
cursor: default;
|
|
4683
|
+
display: inline-flex;
|
|
4684
|
+
align-items: center;
|
|
4685
|
+
gap: var(--gap-tight);
|
|
4686
|
+
}
|
|
4687
|
+
|
|
4688
|
+
.dndev-floating-fieldset[data-disabled='true'] .dndev-floating-legend {
|
|
4689
|
+
color: var(--muted-foreground);
|
|
4690
|
+
}
|
|
4691
|
+
|
|
4692
|
+
.dndev-floating-legend[data-truncate='true'] {
|
|
4693
|
+
max-width: calc(100% - var(--gap-md) * 2);
|
|
4694
|
+
overflow: hidden;
|
|
4695
|
+
text-overflow: ellipsis;
|
|
4696
|
+
white-space: nowrap;
|
|
4697
|
+
}
|
|
4698
|
+
|
|
4699
|
+
/* Remove border from inner input since fieldset has it */
|
|
4700
|
+
|
|
4701
|
+
.dndev-floating-fieldset .dndev-input {
|
|
4702
|
+
border: none;
|
|
4703
|
+
border-radius: var(--radius-interactive);
|
|
4704
|
+
box-shadow: none;
|
|
4705
|
+
}
|
|
4706
|
+
|
|
4707
|
+
.dndev-floating-fieldset .dndev-input:hover {
|
|
4708
|
+
border-color: transparent;
|
|
4709
|
+
}
|
|
4710
|
+
|
|
4711
|
+
.dndev-floating-fieldset .dndev-input:focus,
|
|
4712
|
+
.dndev-floating-fieldset .dndev-input:focus-visible {
|
|
4713
|
+
border-color: transparent;
|
|
4714
|
+
box-shadow: none;
|
|
4715
|
+
outline: none;
|
|
4716
|
+
}
|
|
4717
|
+
|
|
4474
4718
|
/* packages/components/src/atomic/List/List.css */
|
|
4475
4719
|
|
|
4476
4720
|
.dndev-list {
|
|
@@ -4779,20 +5023,41 @@ em {
|
|
|
4779
5023
|
/* packages/components/src/atomic/PasswordInput/PasswordInput.css */
|
|
4780
5024
|
|
|
4781
5025
|
.dndev-password-input-with-toggle {
|
|
4782
|
-
padding-inline-end: var(--gap-
|
|
5026
|
+
padding-inline-end: calc(var(--gap-xl) + var(--gap-md)) !important;
|
|
4783
5027
|
}
|
|
4784
5028
|
|
|
5029
|
+
/* Eye icon toggle - ALWAYS at end, cannot be overridden */
|
|
5030
|
+
|
|
4785
5031
|
.dndev-password-toggle-button {
|
|
4786
|
-
position: absolute;
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
5032
|
+
position: absolute !important;
|
|
5033
|
+
top: 50% !important;
|
|
5034
|
+
transform: translateY(-50%) !important;
|
|
5035
|
+
inset-inline-end: var(--gap-sm) !important;
|
|
5036
|
+
inset-inline-start: unset !important;
|
|
5037
|
+
background: none !important;
|
|
5038
|
+
border: none !important;
|
|
5039
|
+
cursor: pointer !important;
|
|
5040
|
+
padding: var(--gap-tight) !important;
|
|
5041
|
+
display: flex !important;
|
|
5042
|
+
align-items: center !important;
|
|
5043
|
+
opacity: var(--opacity-muted) !important;
|
|
5044
|
+
transition: opacity var(--dur-fast) var(--ease-in-out) !important;
|
|
5045
|
+
-webkit-user-select: none !important;
|
|
5046
|
+
-moz-user-select: none !important;
|
|
5047
|
+
user-select: none !important;
|
|
5048
|
+
z-index: 1 !important;
|
|
5049
|
+
}
|
|
5050
|
+
|
|
5051
|
+
.dndev-password-toggle-button:hover,
|
|
5052
|
+
.dndev-password-toggle-button:focus {
|
|
5053
|
+
opacity: 1 !important;
|
|
5054
|
+
outline: none !important;
|
|
4792
5055
|
}
|
|
4793
5056
|
|
|
4794
5057
|
.dndev-password-toggle-icon {
|
|
4795
5058
|
color: var(--muted-foreground);
|
|
5059
|
+
width: var(--icon-sm);
|
|
5060
|
+
height: var(--icon-sm);
|
|
4796
5061
|
}
|
|
4797
5062
|
|
|
4798
5063
|
/* packages/components/src/atomic/Pagination/Pagination.css */
|
|
@@ -4884,9 +5149,32 @@ em {
|
|
|
4884
5149
|
height: 100%;
|
|
4885
5150
|
width: 100%;
|
|
4886
5151
|
flex: 1;
|
|
5152
|
+
background-color: var(--primary);
|
|
4887
5153
|
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
5154
|
+
|
|
5155
|
+
/* Variant colors */
|
|
4888
5156
|
}
|
|
4889
5157
|
|
|
5158
|
+
[data-variant='default']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5159
|
+
background-color: var(--primary);
|
|
5160
|
+
}
|
|
5161
|
+
|
|
5162
|
+
[data-variant='accent']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5163
|
+
background-color: var(--accent);
|
|
5164
|
+
}
|
|
5165
|
+
|
|
5166
|
+
[data-variant='success']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5167
|
+
background-color: var(--success);
|
|
5168
|
+
}
|
|
5169
|
+
|
|
5170
|
+
[data-variant='warning']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5171
|
+
background-color: var(--warning);
|
|
5172
|
+
}
|
|
5173
|
+
|
|
5174
|
+
[data-variant='destructive']:is(.dndev-progress [data-radix-progress-indicator]) {
|
|
5175
|
+
background-color: var(--destructive);
|
|
5176
|
+
}
|
|
5177
|
+
|
|
4890
5178
|
/* packages/components/src/atomic/RadioGroup/RadioGroup.css */
|
|
4891
5179
|
|
|
4892
5180
|
/* Uses shared .dndev-control-group pattern from patterns.css */
|
|
@@ -5092,7 +5380,6 @@ em {
|
|
|
5092
5380
|
display: flex;
|
|
5093
5381
|
flex-direction: column;
|
|
5094
5382
|
padding: 0;
|
|
5095
|
-
overflow-y: auto;
|
|
5096
5383
|
}
|
|
5097
5384
|
|
|
5098
5385
|
.dndev-interactive[data-radix-select-item] {
|
|
@@ -5214,6 +5501,7 @@ em {
|
|
|
5214
5501
|
letter-spacing: 0.2em;
|
|
5215
5502
|
color: var(--accent) !important;
|
|
5216
5503
|
margin-block-end: var(--gap-md);
|
|
5504
|
+
text-align: center; /* DEFAULT - works without attribute selector */
|
|
5217
5505
|
}
|
|
5218
5506
|
|
|
5219
5507
|
.dndev-section-full-width[data-text-align='start'] .dndev-section-title {
|
|
@@ -5228,26 +5516,71 @@ em {
|
|
|
5228
5516
|
text-align: end;
|
|
5229
5517
|
}
|
|
5230
5518
|
|
|
5231
|
-
/*
|
|
5519
|
+
/* Collapsible title trigger */
|
|
5232
5520
|
|
|
5233
|
-
.dndev-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5521
|
+
.dndev-section-title-trigger {
|
|
5522
|
+
width: 100%;
|
|
5523
|
+
cursor: pointer;
|
|
5524
|
+
transition: opacity var(--dur-fast) var(--ease-in-out);
|
|
5525
|
+
margin-block-end: var(--gap-md);
|
|
5237
5526
|
}
|
|
5238
5527
|
|
|
5239
|
-
.dndev-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
/* Inside Section: cap to content width */
|
|
5244
|
-
}
|
|
5528
|
+
.dndev-section-title-trigger .dndev-section-title {
|
|
5529
|
+
margin-block-end: 0;
|
|
5530
|
+
}
|
|
5245
5531
|
|
|
5246
|
-
.dndev-section
|
|
5247
|
-
|
|
5248
|
-
|
|
5532
|
+
.dndev-section-title-trigger:hover {
|
|
5533
|
+
opacity: var(--opacity-strong);
|
|
5534
|
+
}
|
|
5249
5535
|
|
|
5250
|
-
.dndev-
|
|
5536
|
+
.dndev-section-title-trigger:focus-visible {
|
|
5537
|
+
outline: 2px solid var(--ring);
|
|
5538
|
+
outline-offset: 2px;
|
|
5539
|
+
border-radius: var(--radius-interactive);
|
|
5540
|
+
}
|
|
5541
|
+
|
|
5542
|
+
.dndev-section-icon {
|
|
5543
|
+
width: var(--size-md);
|
|
5544
|
+
height: var(--size-md);
|
|
5545
|
+
flex-shrink: 0;
|
|
5546
|
+
color: var(--accent);
|
|
5547
|
+
transition: transform var(--dur-normal) var(--ease-in-out);
|
|
5548
|
+
}
|
|
5549
|
+
|
|
5550
|
+
.dndev-section-full-width[data-text-align='start']
|
|
5551
|
+
.dndev-section-title-trigger {
|
|
5552
|
+
justify-content: flex-start;
|
|
5553
|
+
}
|
|
5554
|
+
|
|
5555
|
+
.dndev-section-full-width[data-text-align='center']
|
|
5556
|
+
.dndev-section-title-trigger {
|
|
5557
|
+
justify-content: center;
|
|
5558
|
+
}
|
|
5559
|
+
|
|
5560
|
+
.dndev-section-full-width[data-text-align='end'] .dndev-section-title-trigger {
|
|
5561
|
+
justify-content: flex-end;
|
|
5562
|
+
}
|
|
5563
|
+
|
|
5564
|
+
/* packages/components/src/atomic/Separator/Separator.css */
|
|
5565
|
+
|
|
5566
|
+
.dndev-separator {
|
|
5567
|
+
flex-shrink: 0;
|
|
5568
|
+
background-color: var(--line-2);
|
|
5569
|
+
margin-inline: auto;
|
|
5570
|
+
}
|
|
5571
|
+
|
|
5572
|
+
.dndev-separator[data-orientation='horizontal'] {
|
|
5573
|
+
height: 2px;
|
|
5574
|
+
width: 80%;
|
|
5575
|
+
|
|
5576
|
+
/* Inside Section: cap to content width */
|
|
5577
|
+
}
|
|
5578
|
+
|
|
5579
|
+
.dndev-section .dndev-separator[data-orientation='horizontal'] {
|
|
5580
|
+
max-width: calc(var(--content-width) * 0.8);
|
|
5581
|
+
}
|
|
5582
|
+
|
|
5583
|
+
.dndev-separator[data-orientation='vertical'] {
|
|
5251
5584
|
width: 1px;
|
|
5252
5585
|
height: 100%;
|
|
5253
5586
|
}
|
|
@@ -5369,50 +5702,210 @@ em {
|
|
|
5369
5702
|
display: flex;
|
|
5370
5703
|
flex-direction: column;
|
|
5371
5704
|
z-index: var(--z-modal);
|
|
5372
|
-
|
|
5705
|
+
background: var(--card);
|
|
5706
|
+
/* Ensure background is opaque */
|
|
5707
|
+
color: var(--card-foreground);
|
|
5708
|
+
box-shadow: var(--shadow-xl);
|
|
5709
|
+
/* Focus Tunnel: Deep elevation */
|
|
5710
|
+
overflow: hidden;
|
|
5711
|
+
/* Scroll Trap: Container clips overflow */
|
|
5712
|
+
|
|
5713
|
+
/* Motion Physics: Base state */
|
|
5714
|
+
will-change: transform, opacity;
|
|
5373
5715
|
|
|
5374
|
-
/*
|
|
5716
|
+
/* Open state animation - "Heavy" ease for premium feel */
|
|
5375
5717
|
}
|
|
5376
5718
|
|
|
5719
|
+
.dndev-sheet-content[data-state='open'] {
|
|
5720
|
+
animation: sheet-slide-in var(--dur-heavy) var(--ease-heavy);
|
|
5721
|
+
}
|
|
5722
|
+
|
|
5723
|
+
/* Closed state animation */
|
|
5724
|
+
|
|
5725
|
+
.dndev-sheet-content[data-state='closed'] {
|
|
5726
|
+
animation: sheet-slide-out var(--dur-normal) var(--ease-in-out);
|
|
5727
|
+
}
|
|
5728
|
+
|
|
5729
|
+
/* Sheet positioning by side - SPATIAL METAPHOR */
|
|
5730
|
+
|
|
5731
|
+
/* RIGHT / LEFT (Desktop Panels) */
|
|
5732
|
+
|
|
5377
5733
|
.dndev-sheet-content[data-side='right'],.dndev-sheet-content[data-side='left'] {
|
|
5378
5734
|
top: 0;
|
|
5379
5735
|
bottom: 0;
|
|
5380
5736
|
width: 80%;
|
|
5381
5737
|
max-width: 56rem;
|
|
5738
|
+
/* Standard panel width */
|
|
5739
|
+
height: 100%;
|
|
5740
|
+
/* Full height */
|
|
5741
|
+
border-radius: 0;
|
|
5742
|
+
/* Square edges for panel metaphor */
|
|
5382
5743
|
}
|
|
5383
5744
|
|
|
5384
5745
|
.dndev-sheet-content[data-side='right'] {
|
|
5746
|
+
/* Physical positioning: right edge */
|
|
5385
5747
|
right: 0;
|
|
5748
|
+
left: auto;
|
|
5749
|
+
/* Border on logical start (left in LTR, right in RTL) */
|
|
5750
|
+
border-inline-start: var(--border-hairline) solid var(--line-1);
|
|
5386
5751
|
}
|
|
5387
5752
|
|
|
5388
5753
|
.dndev-sheet-content[data-side='left'] {
|
|
5754
|
+
/* Physical positioning: left edge */
|
|
5389
5755
|
left: 0;
|
|
5756
|
+
right: auto;
|
|
5757
|
+
/* Border on logical end (right in LTR, left in RTL) */
|
|
5758
|
+
border-inline-end: var(--border-hairline) solid var(--line-1);
|
|
5390
5759
|
}
|
|
5391
5760
|
|
|
5761
|
+
/* TOP / BOTTOM (Mobile Cards) */
|
|
5762
|
+
|
|
5392
5763
|
.dndev-sheet-content[data-side='top'],.dndev-sheet-content[data-side='bottom'] {
|
|
5393
5764
|
left: 0;
|
|
5394
5765
|
right: 0;
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5766
|
+
/* Card metaphor: Detached from opposite edge */
|
|
5767
|
+
height: auto;
|
|
5768
|
+
max-height: 92dvh;
|
|
5769
|
+
/* Never touch top edge */
|
|
5770
|
+
width: 100%;
|
|
5771
|
+
margin-left: auto;
|
|
5772
|
+
margin-right: auto;
|
|
5773
|
+
|
|
5774
|
+
/* On larger screens, constrain width */
|
|
5398
5775
|
}
|
|
5399
5776
|
|
|
5777
|
+
@media (width >=768px) {
|
|
5778
|
+
|
|
5779
|
+
.dndev-sheet-content[data-side='top'],.dndev-sheet-content[data-side='bottom'] {
|
|
5780
|
+
max-width: 56rem;
|
|
5781
|
+
width: 90%;
|
|
5782
|
+
border-radius: var(--radius-lg);
|
|
5783
|
+
/* Fully rounded card on desktop */
|
|
5784
|
+
}
|
|
5785
|
+
}
|
|
5786
|
+
|
|
5400
5787
|
.dndev-sheet-content[data-side='top'] {
|
|
5401
5788
|
top: 0;
|
|
5789
|
+
border-bottom: var(--border-hairline) solid var(--line-1);
|
|
5790
|
+
/* Rounded bottom corners only */
|
|
5791
|
+
border-bottom-left-radius: var(--radius-lg);
|
|
5792
|
+
border-bottom-right-radius: var(--radius-lg);
|
|
5402
5793
|
}
|
|
5403
5794
|
|
|
5404
5795
|
.dndev-sheet-content[data-side='bottom'] {
|
|
5405
5796
|
bottom: 0;
|
|
5797
|
+
border-top: var(--border-hairline) solid var(--line-1);
|
|
5798
|
+
/* Rounded top corners only */
|
|
5799
|
+
border-top-left-radius: var(--radius-lg);
|
|
5800
|
+
border-top-right-radius: var(--radius-lg);
|
|
5801
|
+
}
|
|
5802
|
+
|
|
5803
|
+
/* DRAG HANDLE PILL - Visual affordance for draggable sheets */
|
|
5804
|
+
|
|
5805
|
+
.dndev-sheet-drag-handle {
|
|
5806
|
+
width: 2.5rem;
|
|
5807
|
+
height: 0.25rem;
|
|
5808
|
+
background: var(--line-2);
|
|
5809
|
+
border-radius: var(--radius-full);
|
|
5810
|
+
margin: var(--gap-sm) auto 0;
|
|
5811
|
+
flex-shrink: 0;
|
|
5812
|
+
cursor: grab;
|
|
5813
|
+
transition: background-color var(--dur-fast) var(--ease-in-out);
|
|
5814
|
+
}
|
|
5815
|
+
|
|
5816
|
+
.dndev-sheet-drag-handle:active {
|
|
5817
|
+
cursor: grabbing;
|
|
5406
5818
|
}
|
|
5407
5819
|
|
|
5820
|
+
/* Positioning for bottom sheets */
|
|
5821
|
+
|
|
5822
|
+
.dndev-sheet-content[data-side='bottom'] > .dndev-sheet-drag-handle {
|
|
5823
|
+
margin-top: var(--gap-sm);
|
|
5824
|
+
margin-bottom: 0;
|
|
5825
|
+
}
|
|
5826
|
+
|
|
5827
|
+
/* Positioning for top sheets */
|
|
5828
|
+
|
|
5829
|
+
.dndev-sheet-content[data-side='top'] > .dndev-sheet-drag-handle {
|
|
5830
|
+
margin-top: max(var(--gap-sm), env(safe-area-inset-top));
|
|
5831
|
+
margin-bottom: 0;
|
|
5832
|
+
}
|
|
5833
|
+
|
|
5834
|
+
/* HEADER - Pinned, No Padding (Tight Layout) */
|
|
5835
|
+
|
|
5836
|
+
/* Industry standard: Title always on start, X always on end (consistent across all sides) */
|
|
5837
|
+
|
|
5408
5838
|
.dndev-sheet-header {
|
|
5409
5839
|
display: flex;
|
|
5410
5840
|
align-items: center;
|
|
5411
5841
|
justify-content: space-between;
|
|
5412
5842
|
gap: var(--gap-md);
|
|
5413
5843
|
flex-shrink: 0;
|
|
5844
|
+
/* Never shrink */
|
|
5414
5845
|
min-height: var(--touch-target);
|
|
5415
|
-
|
|
5846
|
+
/* No padding - tight layout: [ Title X ] */
|
|
5847
|
+
padding-block: 0;
|
|
5848
|
+
/* RTL-aware: padding on logical start only */
|
|
5849
|
+
padding-inline-start: var(--gap-md);
|
|
5850
|
+
padding-inline-end: 0; /* X button has its own spacing */
|
|
5851
|
+
border-bottom: var(--border-hairline) solid var(--line-1);
|
|
5852
|
+
/* Separator */
|
|
5853
|
+
|
|
5854
|
+
/* Thumb Ergonomics: Top Safe Area (only for top sheets) */
|
|
5855
|
+
}
|
|
5856
|
+
|
|
5857
|
+
.dndev-sheet-content[data-side='top'] .dndev-sheet-header {
|
|
5858
|
+
padding-top: max(0, env(safe-area-inset-top));
|
|
5859
|
+
}
|
|
5860
|
+
|
|
5861
|
+
/* Adjust header padding when drag handle is present (sibling selector) */
|
|
5862
|
+
|
|
5863
|
+
.dndev-sheet-content[data-side='bottom'] .dndev-sheet-drag-handle ~ .dndev-sheet-header,
|
|
5864
|
+
.dndev-sheet-content[data-side='top'] .dndev-sheet-drag-handle ~ .dndev-sheet-header {
|
|
5865
|
+
padding-top: 0;
|
|
5866
|
+
}
|
|
5867
|
+
|
|
5868
|
+
/* BODY - Scrollable */
|
|
5869
|
+
|
|
5870
|
+
.dndev-sheet-body {
|
|
5871
|
+
flex: 1;
|
|
5872
|
+
/* Consumes available space */
|
|
5873
|
+
overflow-y: auto;
|
|
5874
|
+
/* Independent scroll */
|
|
5875
|
+
overflow-x: hidden;
|
|
5876
|
+
padding: var(--gap-md);
|
|
5877
|
+
overscroll-behavior: contain;
|
|
5878
|
+
/* Prevent body scroll chaining */
|
|
5879
|
+
}
|
|
5880
|
+
|
|
5881
|
+
/* FOOTER - Pinned */
|
|
5882
|
+
|
|
5883
|
+
.dndev-sheet-footer {
|
|
5884
|
+
flex-shrink: 0;
|
|
5885
|
+
/* Never shrink */
|
|
5886
|
+
padding: var(--gap-md);
|
|
5887
|
+
border-top: var(--border-hairline) solid var(--line-1);
|
|
5888
|
+
/* Separator */
|
|
5889
|
+
display: flex;
|
|
5890
|
+
flex-direction: column-reverse;
|
|
5891
|
+
/* Mobile-first stacking */
|
|
5892
|
+
gap: var(--gap-sm);
|
|
5893
|
+
|
|
5894
|
+
/* Desktop: Row layout */
|
|
5895
|
+
}
|
|
5896
|
+
|
|
5897
|
+
@media (width >=640px) {
|
|
5898
|
+
|
|
5899
|
+
.dndev-sheet-footer {
|
|
5900
|
+
flex-direction: row;
|
|
5901
|
+
justify-content: flex-end;
|
|
5902
|
+
}
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5905
|
+
.dndev-sheet-footer {
|
|
5906
|
+
|
|
5907
|
+
/* Thumb Ergonomics: Bottom Safe Area (Home Indicator) */
|
|
5908
|
+
padding-bottom: max(var(--gap-md), env(safe-area-inset-bottom));
|
|
5416
5909
|
}
|
|
5417
5910
|
|
|
5418
5911
|
.dndev-sheet-title {
|
|
@@ -5422,19 +5915,72 @@ em {
|
|
|
5422
5915
|
}
|
|
5423
5916
|
|
|
5424
5917
|
.dndev-sheet-close {
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5918
|
+
/* Position relative - flex handles alignment */
|
|
5919
|
+
position: relative;
|
|
5920
|
+
margin-inline-start: auto;
|
|
5921
|
+
/* Push to end (RTL-aware: end = right in LTR, left in RTL) */
|
|
5428
5922
|
opacity: var(--opacity-muted);
|
|
5923
|
+
/* No padding - tight spacing */
|
|
5924
|
+
padding: 0;
|
|
5925
|
+
/* RTL-aware: padding on logical end only */
|
|
5926
|
+
padding-inline-end: var(--gap-md);
|
|
5927
|
+
padding-inline-start: 0;
|
|
5429
5928
|
}
|
|
5430
5929
|
|
|
5431
5930
|
.dndev-sheet-close:hover {
|
|
5432
5931
|
opacity: 1;
|
|
5433
5932
|
}
|
|
5434
5933
|
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5934
|
+
/* ===========================
|
|
5935
|
+
ANIMATIONS (Motion Physics)
|
|
5936
|
+
=========================== */
|
|
5937
|
+
|
|
5938
|
+
/* Slide In/Out Keyframes - Context Aware */
|
|
5939
|
+
|
|
5940
|
+
@keyframes sheet-slide-in {
|
|
5941
|
+
from {
|
|
5942
|
+
opacity: 0;
|
|
5943
|
+
transform: var(--slide-enter-transform);
|
|
5944
|
+
}
|
|
5945
|
+
|
|
5946
|
+
to {
|
|
5947
|
+
opacity: 1;
|
|
5948
|
+
transform: translate(0, 0);
|
|
5949
|
+
}
|
|
5950
|
+
}
|
|
5951
|
+
|
|
5952
|
+
@keyframes sheet-slide-out {
|
|
5953
|
+
from {
|
|
5954
|
+
opacity: 1;
|
|
5955
|
+
transform: translate(0, 0);
|
|
5956
|
+
}
|
|
5957
|
+
|
|
5958
|
+
to {
|
|
5959
|
+
opacity: 0;
|
|
5960
|
+
transform: var(--slide-exit-transform);
|
|
5961
|
+
}
|
|
5962
|
+
}
|
|
5963
|
+
|
|
5964
|
+
/* Define Transforms based on Side */
|
|
5965
|
+
|
|
5966
|
+
.dndev-sheet-content[data-side='right'] {
|
|
5967
|
+
--slide-enter-transform: translateX(100%);
|
|
5968
|
+
--slide-exit-transform: translateX(100%);
|
|
5969
|
+
}
|
|
5970
|
+
|
|
5971
|
+
.dndev-sheet-content[data-side='left'] {
|
|
5972
|
+
--slide-enter-transform: translateX(-100%);
|
|
5973
|
+
--slide-exit-transform: translateX(-100%);
|
|
5974
|
+
}
|
|
5975
|
+
|
|
5976
|
+
.dndev-sheet-content[data-side='bottom'] {
|
|
5977
|
+
--slide-enter-transform: translateY(100%);
|
|
5978
|
+
--slide-exit-transform: translateY(100%);
|
|
5979
|
+
}
|
|
5980
|
+
|
|
5981
|
+
.dndev-sheet-content[data-side='top'] {
|
|
5982
|
+
--slide-enter-transform: translateY(-100%);
|
|
5983
|
+
--slide-exit-transform: translateY(-100%);
|
|
5438
5984
|
}
|
|
5439
5985
|
|
|
5440
5986
|
/* packages/components/src/atomic/Skeleton/Skeleton.css */
|
|
@@ -6090,6 +6636,61 @@ em {
|
|
|
6090
6636
|
transform: translateX(calc(2.75rem - 1.25rem - 0.125rem));
|
|
6091
6637
|
}
|
|
6092
6638
|
|
|
6639
|
+
/* Switch with labels container */
|
|
6640
|
+
|
|
6641
|
+
.dndev-switch-with-labels {
|
|
6642
|
+
display: inline-flex;
|
|
6643
|
+
align-items: center;
|
|
6644
|
+
gap: var(--gap-sm);
|
|
6645
|
+
flex-wrap: wrap;
|
|
6646
|
+
}
|
|
6647
|
+
|
|
6648
|
+
/* Labels - keep switch and its labels on one line when possible */
|
|
6649
|
+
|
|
6650
|
+
.dndev-switch-with-labels > .dndev-switch {
|
|
6651
|
+
flex-shrink: 0;
|
|
6652
|
+
}
|
|
6653
|
+
|
|
6654
|
+
.dndev-switch-label {
|
|
6655
|
+
font-size: var(--font-size-sm);
|
|
6656
|
+
transition:
|
|
6657
|
+
color var(--dur-normal) var(--ease-in-out),
|
|
6658
|
+
font-weight var(--dur-normal) var(--ease-in-out);
|
|
6659
|
+
white-space: nowrap;
|
|
6660
|
+
}
|
|
6661
|
+
|
|
6662
|
+
/* Unchecked label - active when switch is unchecked */
|
|
6663
|
+
|
|
6664
|
+
.dndev-switch-with-labels:not(:has(.dndev-switch[data-state='checked']))
|
|
6665
|
+
.dndev-switch-label-unchecked,
|
|
6666
|
+
.dndev-switch-with-labels[data-checked='false'] .dndev-switch-label-unchecked {
|
|
6667
|
+
color: var(--foreground);
|
|
6668
|
+
font-weight: var(--font-weight-medium);
|
|
6669
|
+
}
|
|
6670
|
+
|
|
6671
|
+
.dndev-switch-with-labels:has(.dndev-switch[data-state='checked'])
|
|
6672
|
+
.dndev-switch-label-unchecked,
|
|
6673
|
+
.dndev-switch-with-labels[data-checked='true'] .dndev-switch-label-unchecked {
|
|
6674
|
+
color: var(--muted-foreground);
|
|
6675
|
+
font-weight: var(--font-weight-normal);
|
|
6676
|
+
}
|
|
6677
|
+
|
|
6678
|
+
/* Checked label - active when switch is checked */
|
|
6679
|
+
|
|
6680
|
+
.dndev-switch-with-labels:has(.dndev-switch[data-state='checked'])
|
|
6681
|
+
.dndev-switch-label-checked,
|
|
6682
|
+
.dndev-switch-with-labels[data-checked='true'] .dndev-switch-label-checked {
|
|
6683
|
+
color: var(--foreground);
|
|
6684
|
+
font-weight: var(--font-weight-medium);
|
|
6685
|
+
}
|
|
6686
|
+
|
|
6687
|
+
.dndev-switch-with-labels:not(:has(.dndev-switch[data-state='checked']))
|
|
6688
|
+
.dndev-switch-label-checked,
|
|
6689
|
+
.dndev-switch-with-labels[data-checked='false'] .dndev-switch-label-checked {
|
|
6690
|
+
color: var(--muted-foreground);
|
|
6691
|
+
font-weight: var(--font-weight-normal);
|
|
6692
|
+
}
|
|
6693
|
+
|
|
6093
6694
|
/* packages/components/src/atomic/Table/Table.css */
|
|
6094
6695
|
|
|
6095
6696
|
.dndev-table-wrapper {
|
|
@@ -6126,6 +6727,12 @@ em {
|
|
|
6126
6727
|
background-color: color-mix(in oklab, var(--accent) 15%, transparent);
|
|
6127
6728
|
}
|
|
6128
6729
|
|
|
6730
|
+
/* Cursor pointer for clickable rows */
|
|
6731
|
+
|
|
6732
|
+
.dndev-table-row.dndev-cursor-pointer {
|
|
6733
|
+
cursor: pointer;
|
|
6734
|
+
}
|
|
6735
|
+
|
|
6129
6736
|
/* Zebra striping for data tables */
|
|
6130
6737
|
|
|
6131
6738
|
.dndev-table-body .dndev-table-row:nth-child(even) {
|
|
@@ -6155,7 +6762,7 @@ em {
|
|
|
6155
6762
|
/* Table head (th) styles */
|
|
6156
6763
|
|
|
6157
6764
|
.dndev-table-head {
|
|
6158
|
-
text-align:
|
|
6765
|
+
text-align: start;
|
|
6159
6766
|
vertical-align: middle;
|
|
6160
6767
|
font-weight: 500;
|
|
6161
6768
|
color: var(--muted-foreground);
|
|
@@ -6172,12 +6779,12 @@ em {
|
|
|
6172
6779
|
text-align: center;
|
|
6173
6780
|
}
|
|
6174
6781
|
|
|
6175
|
-
.dndev-table-head[data-align='
|
|
6176
|
-
text-align:
|
|
6782
|
+
.dndev-table-head[data-align='end'] {
|
|
6783
|
+
text-align: end;
|
|
6177
6784
|
}
|
|
6178
6785
|
|
|
6179
|
-
.dndev-table-head[data-align='
|
|
6180
|
-
text-align:
|
|
6786
|
+
.dndev-table-head[data-align='start'] {
|
|
6787
|
+
text-align: start;
|
|
6181
6788
|
}
|
|
6182
6789
|
|
|
6183
6790
|
/* Table cell (td) styles */
|
|
@@ -6193,14 +6800,48 @@ em {
|
|
|
6193
6800
|
text-align: center;
|
|
6194
6801
|
}
|
|
6195
6802
|
|
|
6196
|
-
.dndev-table-cell[data-align='
|
|
6197
|
-
text-align:
|
|
6803
|
+
.dndev-table-cell[data-align='end'] {
|
|
6804
|
+
text-align: end;
|
|
6198
6805
|
}
|
|
6199
6806
|
|
|
6200
|
-
.dndev-table-cell[data-align='
|
|
6201
|
-
text-align:
|
|
6807
|
+
.dndev-table-cell[data-align='start'] {
|
|
6808
|
+
text-align: start;
|
|
6202
6809
|
}
|
|
6203
6810
|
|
|
6811
|
+
/* Excel-like grid lines variant */
|
|
6812
|
+
|
|
6813
|
+
.dndev-table-grid .dndev-table-head,
|
|
6814
|
+
.dndev-table-grid .dndev-table-cell {
|
|
6815
|
+
border: 1px solid var(--border);
|
|
6816
|
+
padding: 0;
|
|
6817
|
+
}
|
|
6818
|
+
|
|
6819
|
+
.dndev-table-grid .dndev-table-row {
|
|
6820
|
+
border-bottom: 1px solid var(--border);
|
|
6821
|
+
}
|
|
6822
|
+
|
|
6823
|
+
.dndev-table-grid .dndev-table-row:last-child {
|
|
6824
|
+
border-bottom: 1px solid var(--border);
|
|
6825
|
+
}
|
|
6826
|
+
|
|
6827
|
+
/* Input components inside grid cells should be borderless and fit snugly */
|
|
6828
|
+
|
|
6829
|
+
.dndev-table-grid .dndev-table-cell .dndev-input,
|
|
6830
|
+
.dndev-table-grid .dndev-table-cell input[type='text'],
|
|
6831
|
+
.dndev-table-grid .dndev-table-cell input[type='number'] {
|
|
6832
|
+
border: none;
|
|
6833
|
+
background: transparent;
|
|
6834
|
+
width: 100%;
|
|
6835
|
+
height: 100%;
|
|
6836
|
+
box-shadow: none;
|
|
6837
|
+
}
|
|
6838
|
+
|
|
6839
|
+
.dndev-table-grid .dndev-table-cell .dndev-input:focus,
|
|
6840
|
+
.dndev-table-grid .dndev-table-cell input:focus {
|
|
6841
|
+
outline: 2px solid var(--primary);
|
|
6842
|
+
outline-offset: -2px;
|
|
6843
|
+
}
|
|
6844
|
+
|
|
6204
6845
|
/* Table caption styles */
|
|
6205
6846
|
|
|
6206
6847
|
.dndev-table-caption {
|
|
@@ -6217,7 +6858,7 @@ em {
|
|
|
6217
6858
|
|
|
6218
6859
|
.dndev-table-search-icon {
|
|
6219
6860
|
position: absolute;
|
|
6220
|
-
|
|
6861
|
+
inset-inline-start: var(--gap-md);
|
|
6221
6862
|
top: 50%;
|
|
6222
6863
|
transform: translateY(-50%);
|
|
6223
6864
|
width: var(--icon-md);
|
|
@@ -6384,7 +7025,7 @@ em {
|
|
|
6384
7025
|
.dndev-tag {
|
|
6385
7026
|
display: inline-flex;
|
|
6386
7027
|
align-items: center;
|
|
6387
|
-
gap: var(--gap-
|
|
7028
|
+
gap: var(--gap-sm);
|
|
6388
7029
|
border-radius: var(--radius-full);
|
|
6389
7030
|
border: 1px solid transparent;
|
|
6390
7031
|
font-size: var(--font-size-sm);
|
|
@@ -6514,8 +7155,18 @@ em {
|
|
|
6514
7155
|
font-weight: var(--font-weight-medium);
|
|
6515
7156
|
line-height: var(--line-height);
|
|
6516
7157
|
background-color: transparent; /* Text never has background, only color changes */
|
|
7158
|
+
|
|
7159
|
+
/* Respect semantic HTML elements */
|
|
6517
7160
|
}
|
|
6518
7161
|
|
|
7162
|
+
.dndev-text-base:is(strong) {
|
|
7163
|
+
font-weight: var(--font-weight-semibold);
|
|
7164
|
+
}
|
|
7165
|
+
|
|
7166
|
+
.dndev-text-base:is(em) {
|
|
7167
|
+
font-style: italic;
|
|
7168
|
+
}
|
|
7169
|
+
|
|
6519
7170
|
.dndev-text-base[data-variant='default'] {
|
|
6520
7171
|
color: inherit;
|
|
6521
7172
|
}
|
|
@@ -7463,7 +8114,7 @@ em {
|
|
|
7463
8114
|
align-items: stretch;
|
|
7464
8115
|
}
|
|
7465
8116
|
|
|
7466
|
-
@media (width <=
|
|
8117
|
+
@media (width <=699px) {
|
|
7467
8118
|
|
|
7468
8119
|
[data-cols='2'] {
|
|
7469
8120
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7475,14 +8126,14 @@ em {
|
|
|
7475
8126
|
align-items: stretch;
|
|
7476
8127
|
}
|
|
7477
8128
|
|
|
7478
|
-
@media (width <=
|
|
8129
|
+
@media (width <=1049px) {
|
|
7479
8130
|
|
|
7480
8131
|
[data-cols='3'] {
|
|
7481
8132
|
grid-template-columns: repeat(2, minmax(350px, 1fr));
|
|
7482
8133
|
}
|
|
7483
8134
|
}
|
|
7484
8135
|
|
|
7485
|
-
@media (width <=
|
|
8136
|
+
@media (width <=699px) {
|
|
7486
8137
|
|
|
7487
8138
|
[data-cols='3'] {
|
|
7488
8139
|
grid-template-columns: repeat(1, minmax(350px, 1fr));
|
|
@@ -7496,21 +8147,21 @@ em {
|
|
|
7496
8147
|
/* Responsive: reduce columns when container is narrow */
|
|
7497
8148
|
}
|
|
7498
8149
|
|
|
7499
|
-
@media (width <=
|
|
8150
|
+
@media (width <=1399px) {
|
|
7500
8151
|
|
|
7501
8152
|
[data-cols='4'] {
|
|
7502
8153
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
7503
8154
|
}
|
|
7504
8155
|
}
|
|
7505
8156
|
|
|
7506
|
-
@media (width <=
|
|
8157
|
+
@media (width <=1049px) {
|
|
7507
8158
|
|
|
7508
8159
|
[data-cols='4'] {
|
|
7509
8160
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
7510
8161
|
}
|
|
7511
8162
|
}
|
|
7512
8163
|
|
|
7513
|
-
@media (width <=
|
|
8164
|
+
@media (width <=699px) {
|
|
7514
8165
|
|
|
7515
8166
|
[data-cols='4'] {
|
|
7516
8167
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
@@ -7577,18 +8228,22 @@ em {
|
|
|
7577
8228
|
|
|
7578
8229
|
code {
|
|
7579
8230
|
font-family: var(--font-mono);
|
|
7580
|
-
font-size: inherit;
|
|
7581
|
-
|
|
8231
|
+
font-size: inherit;
|
|
8232
|
+
/* Inherit parent size */
|
|
8233
|
+
font-weight: inherit;
|
|
8234
|
+
/* Inherit parent weight */
|
|
7582
8235
|
line-height: inherit;
|
|
7583
8236
|
color: inherit;
|
|
7584
|
-
background: transparent;
|
|
8237
|
+
background: transparent;
|
|
8238
|
+
/* No background by default */
|
|
7585
8239
|
}
|
|
7586
8240
|
|
|
7587
8241
|
/* Code variant - visual styling (background, padding, can apply to any element) */
|
|
7588
8242
|
|
|
7589
8243
|
[data-variant='code'] {
|
|
7590
8244
|
font-family: var(--font-mono);
|
|
7591
|
-
font-size: var(--font-size-sm);
|
|
8245
|
+
font-size: var(--font-size-sm);
|
|
8246
|
+
/* Default small size */
|
|
7592
8247
|
background: var(--muted);
|
|
7593
8248
|
color: var(--muted-foreground);
|
|
7594
8249
|
padding: var(--gap-sm) var(--gap-md);
|
|
@@ -7683,7 +8338,8 @@ h4[data-variant='code'] {
|
|
|
7683
8338
|
|
|
7684
8339
|
.dndev-relative {
|
|
7685
8340
|
position: relative;
|
|
7686
|
-
min-width: 0;
|
|
8341
|
+
min-width: 0;
|
|
8342
|
+
/* Allow flex items to shrink below content size */
|
|
7687
8343
|
}
|
|
7688
8344
|
|
|
7689
8345
|
.dndev-absolute {
|
|
@@ -7775,6 +8431,10 @@ h4[data-variant='code'] {
|
|
|
7775
8431
|
pointer-events: auto;
|
|
7776
8432
|
}
|
|
7777
8433
|
|
|
8434
|
+
.dndev-cursor-pointer {
|
|
8435
|
+
cursor: pointer;
|
|
8436
|
+
}
|
|
8437
|
+
|
|
7778
8438
|
.dndev-aspect-video {
|
|
7779
8439
|
aspect-ratio: 16 / 9;
|
|
7780
8440
|
}
|
|
@@ -7788,7 +8448,7 @@ h4[data-variant='code'] {
|
|
|
7788
8448
|
RESPONSIVE DISPLAY
|
|
7789
8449
|
=========================== */
|
|
7790
8450
|
|
|
7791
|
-
@media (width >=
|
|
8451
|
+
@media (width >=768px) {
|
|
7792
8452
|
.dndev-md\:block {
|
|
7793
8453
|
display: block;
|
|
7794
8454
|
}
|
|
@@ -7814,7 +8474,7 @@ h4[data-variant='code'] {
|
|
|
7814
8474
|
}
|
|
7815
8475
|
}
|
|
7816
8476
|
|
|
7817
|
-
@media (width >=
|
|
8477
|
+
@media (width >=1024px) {
|
|
7818
8478
|
.dndev-lg\:block {
|
|
7819
8479
|
display: block;
|
|
7820
8480
|
}
|
|
@@ -7874,6 +8534,10 @@ h4[data-variant='code'] {
|
|
|
7874
8534
|
Components are unaffected - they own their own spacing
|
|
7875
8535
|
=========================== */
|
|
7876
8536
|
|
|
8537
|
+
.prose {
|
|
8538
|
+
text-align: start;
|
|
8539
|
+
}
|
|
8540
|
+
|
|
7877
8541
|
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
|
|
7878
8542
|
margin-block: var(--gap-md);
|
|
7879
8543
|
}
|
|
@@ -8337,10 +9001,7 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8337
9001
|
max-height: 100dvh;
|
|
8338
9002
|
overflow: hidden;
|
|
8339
9003
|
display: grid;
|
|
8340
|
-
/*
|
|
8341
|
-
/* Footer starts at sidebar edge (column 2) - when sidebar-width is 0px, footer starts at left edge */
|
|
8342
|
-
/* Footer grows with content wrapping. For pixel-perfect calc() accuracy when footer wraps,
|
|
8343
|
-
implement ResizeObserver to update --footer-height dynamically. */
|
|
9004
|
+
/* Grid structure: 3 rows, 2 columns */
|
|
8344
9005
|
grid-template-areas:
|
|
8345
9006
|
'header header'
|
|
8346
9007
|
'sidebar main'
|
|
@@ -8351,15 +9012,61 @@ main[role='main'][data-routing-animation='none'] {
|
|
|
8351
9012
|
);
|
|
8352
9013
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
8353
9014
|
|
|
8354
|
-
/*
|
|
9015
|
+
/* Mobile: No footer grid row - footer is inside main */
|
|
9016
|
+
/* When mergedBar is shown, header is hidden but grid still needs space for mergedBar */
|
|
9017
|
+
}
|
|
9018
|
+
|
|
9019
|
+
@media (width <= 1023px) {
|
|
9020
|
+
|
|
9021
|
+
.dndev-layout {
|
|
9022
|
+
grid-template-areas:
|
|
9023
|
+
'header header'
|
|
9024
|
+
'sidebar main';
|
|
9025
|
+
grid-template-rows: var(--header-height) 1fr;
|
|
9026
|
+
|
|
9027
|
+
/* Presets with mergedBar: header is hidden, but grid still allocates space for mergedBar */
|
|
9028
|
+
/* No extra padding needed - grid spacing is sufficient */
|
|
9029
|
+
}
|
|
9030
|
+
.dndev-layout[data-layout='admin'],.dndev-layout[data-layout='moolti'],.dndev-layout[data-layout='game'],.dndev-layout[data-layout='docs'] {
|
|
9031
|
+
/* Grid already accounts for header-height, mergedBar is fixed and doesn't need extra padding */
|
|
9032
|
+
}
|
|
9033
|
+
}
|
|
9034
|
+
|
|
9035
|
+
/* Footer containers: show/hide based on breakpoint */
|
|
9036
|
+
|
|
9037
|
+
.footer-mobile {
|
|
9038
|
+
display: none;
|
|
9039
|
+
/* No margin-top: auto - footer scrolls with content on mobile */
|
|
9040
|
+
/* No flex-shrink: 0 - footer is in normal flow, not stuck at bottom */
|
|
8355
9041
|
}
|
|
8356
9042
|
|
|
8357
|
-
|
|
8358
|
-
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
|
|
9043
|
+
.footer-desktop {
|
|
9044
|
+
display: contents; /* Children (footer element) participate in grid */
|
|
9045
|
+
}
|
|
9046
|
+
|
|
9047
|
+
@media (width <= 1023px) {
|
|
9048
|
+
.footer-mobile {
|
|
9049
|
+
display: block;
|
|
9050
|
+
}
|
|
9051
|
+
|
|
9052
|
+
.footer-desktop {
|
|
9053
|
+
display: none;
|
|
9054
|
+
}
|
|
9055
|
+
|
|
9056
|
+
/* Game: No mobile footer - navigation in MergedBar */
|
|
9057
|
+
[data-layout='game'] .footer-mobile {
|
|
9058
|
+
display: none;
|
|
8362
9059
|
}
|
|
9060
|
+
}
|
|
9061
|
+
|
|
9062
|
+
/* Presets with no footer at all */
|
|
9063
|
+
|
|
9064
|
+
[data-layout='moolti'] .footer-mobile,
|
|
9065
|
+
[data-layout='moolti'] .footer-desktop,
|
|
9066
|
+
[data-layout='plain'] .footer-mobile,
|
|
9067
|
+
[data-layout='plain'] .footer-desktop {
|
|
9068
|
+
display: none;
|
|
9069
|
+
}
|
|
8363
9070
|
|
|
8364
9071
|
/* ===========================
|
|
8365
9072
|
LAYOUT ZONE POSITIONING RULES
|
|
@@ -8374,6 +9081,8 @@ header[role='banner'] {
|
|
|
8374
9081
|
grid-area: header;
|
|
8375
9082
|
box-sizing: border-box;
|
|
8376
9083
|
height: var(--header-height);
|
|
9084
|
+
min-height: var(--header-height);
|
|
9085
|
+
max-height: var(--header-height);
|
|
8377
9086
|
position: relative;
|
|
8378
9087
|
z-index: var(--z-header);
|
|
8379
9088
|
contain: layout style;
|
|
@@ -8400,7 +9109,9 @@ header[role='banner'] {
|
|
|
8400
9109
|
align-items: center;
|
|
8401
9110
|
flex-shrink: 0;
|
|
8402
9111
|
height: 100%;
|
|
9112
|
+
max-height: 100%;
|
|
8403
9113
|
gap: var(--gap-sm);
|
|
9114
|
+
overflow: hidden;
|
|
8404
9115
|
}
|
|
8405
9116
|
|
|
8406
9117
|
.header-end {
|
|
@@ -8408,8 +9119,11 @@ header[role='banner'] {
|
|
|
8408
9119
|
align-items: center;
|
|
8409
9120
|
justify-content: flex-end;
|
|
8410
9121
|
flex-shrink: 0;
|
|
9122
|
+
height: 100%;
|
|
9123
|
+
max-height: 100%;
|
|
8411
9124
|
margin-inline-start: auto;
|
|
8412
9125
|
gap: var(--gap-sm);
|
|
9126
|
+
overflow: hidden;
|
|
8413
9127
|
}
|
|
8414
9128
|
|
|
8415
9129
|
/* Viewport-centered center content - absolutely positioned overlay */
|
|
@@ -8701,11 +9415,17 @@ main[role='main'] > *:not(.breadcrumbs-container):first-of-type,main[role='main'
|
|
|
8701
9415
|
/* Page content grows */
|
|
8702
9416
|
}
|
|
8703
9417
|
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
9418
|
+
/* Desktop: Footer stays at bottom of viewport */
|
|
9419
|
+
|
|
9420
|
+
@media (width > 1023px) {
|
|
9421
|
+
main[role='main'] > *:last-child {
|
|
9422
|
+
flex-shrink: 0;
|
|
9423
|
+
/* Footer stays at bottom */
|
|
9424
|
+
}
|
|
8707
9425
|
}
|
|
8708
9426
|
|
|
9427
|
+
/* Mobile: Footer scrolls with content (no flex-shrink needed) */
|
|
9428
|
+
|
|
8709
9429
|
/* Footer: Full width by default, app presets start after sidebar */
|
|
8710
9430
|
|
|
8711
9431
|
/* box-sizing: border-box ensures borders are included in height */
|
|
@@ -8738,26 +9458,6 @@ footer[role='contentinfo'] > * {
|
|
|
8738
9458
|
padding-inline-end: var(--content-padding);
|
|
8739
9459
|
}
|
|
8740
9460
|
|
|
8741
|
-
/* Game: Hide footer on tablet/mobile - merged into GameMergedBar */
|
|
8742
|
-
|
|
8743
|
-
@media (width <= 1023px) {
|
|
8744
|
-
[data-layout='game']:root footer[role='contentinfo'] {
|
|
8745
|
-
display: none;
|
|
8746
|
-
}
|
|
8747
|
-
}
|
|
8748
|
-
|
|
8749
|
-
/* Moolti: No footer (built into sidebar) */
|
|
8750
|
-
|
|
8751
|
-
[data-layout='moolti']:root footer[role='contentinfo'] {
|
|
8752
|
-
display: none;
|
|
8753
|
-
}
|
|
8754
|
-
|
|
8755
|
-
/* Plain: No footer (full-screen apps) */
|
|
8756
|
-
|
|
8757
|
-
[data-layout='plain']:root footer[role='contentinfo'] {
|
|
8758
|
-
display: none;
|
|
8759
|
-
}
|
|
8760
|
-
|
|
8761
9461
|
/* Footer text styles */
|
|
8762
9462
|
|
|
8763
9463
|
footer[role='contentinfo'] .footer-copyright {
|
|
@@ -8802,7 +9502,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
8802
9502
|
|
|
8803
9503
|
.merged-bar[data-position='top'] {
|
|
8804
9504
|
top: 0;
|
|
8805
|
-
height:
|
|
9505
|
+
height: var(--header-height);
|
|
8806
9506
|
border-bottom: 2px solid var(--border);
|
|
8807
9507
|
padding-top: env(safe-area-inset-top);
|
|
8808
9508
|
}
|
|
@@ -8830,7 +9530,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
8830
9530
|
min-height: 0;
|
|
8831
9531
|
}
|
|
8832
9532
|
|
|
8833
|
-
/* Mobile (<1024px): Show merged-bar, hide zones
|
|
9533
|
+
/* Mobile (<1024px): Show merged-bar, hide zones */
|
|
8834
9534
|
|
|
8835
9535
|
@media (width <= 1023px) {
|
|
8836
9536
|
/* Presets with mergedBar: top (admin, moolti, game, docs) */
|
|
@@ -8845,7 +9545,8 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
8845
9545
|
[data-layout='moolti'] .dndev-layout,
|
|
8846
9546
|
[data-layout='game'] .dndev-layout,
|
|
8847
9547
|
[data-layout='docs'] .dndev-layout {
|
|
8848
|
-
padding-top
|
|
9548
|
+
/* Remove padding-top - grid already accounts for header-height, mergedBar is fixed and doesn't affect grid flow */
|
|
9549
|
+
/* Content won't go under mergedBar because grid positions main after header row */
|
|
8849
9550
|
}
|
|
8850
9551
|
|
|
8851
9552
|
[data-layout='admin'] header[role='banner'],
|
|
@@ -9077,7 +9778,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9077
9778
|
.breadcrumb-item {
|
|
9078
9779
|
display: inline-flex;
|
|
9079
9780
|
align-items: center;
|
|
9080
|
-
gap: var(--gap-
|
|
9781
|
+
gap: var(--gap-sm);
|
|
9081
9782
|
}
|
|
9082
9783
|
|
|
9083
9784
|
.breadcrumbs .separator,
|
|
@@ -9154,7 +9855,7 @@ footer[role='contentinfo'] a:not(.dndev-interactive):hover {
|
|
|
9154
9855
|
min-height: 0;
|
|
9155
9856
|
display: flex;
|
|
9156
9857
|
flex-direction: column;
|
|
9157
|
-
justify-content:
|
|
9858
|
+
justify-content: flex-start;
|
|
9158
9859
|
gap: var(--gap-lg);
|
|
9159
9860
|
/* Controlled by density system */
|
|
9160
9861
|
/* Default: centered */
|