@donotdev/ui 0.0.8 → 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/dist/components/auth/AuthHeader.d.ts +1 -1
- package/dist/components/auth/AuthHeader.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.d.ts +2 -1
- package/dist/components/auth/AuthMenu.d.ts.map +1 -1
- package/dist/components/auth/AuthMenu.js +1 -1
- 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.js +1 -1
- package/dist/components/common/TechBento.d.ts.map +1 -1
- package/dist/components/common/TechBento.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 +0 -1
- 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 +3 -2
- 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 +401 -84
- 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/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/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.map +1 -1
- package/dist/internal/layout/config/presets/admin.js +7 -2
- 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/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.js +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/useGoTo.d.ts.map +1 -1
- package/dist/styles/index.css +401 -84
- 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 +9 -6
- 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 +3 -6
- package/package.json +1 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview Shared Error Fallback Component
|
|
3
|
-
* @description A single error UI that takes full viewport and adapts recovery actions based on the context (global vs route errors). Uses only native HTML elements and emojis to avoid component dependencies.
|
|
4
|
-
* it's not using anything to make sure it doesnt crash.
|
|
5
|
-
*
|
|
6
|
-
* @version 0.0.1
|
|
7
|
-
* @since 0.0.1
|
|
8
|
-
* @author AMBROISE PARK Consulting
|
|
9
|
-
*/
|
|
10
|
-
import { type ComponentType } from 'react';
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
11
2
|
interface ErrorFallbackProps {
|
|
12
3
|
error: unknown;
|
|
13
4
|
resetError: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorFallback.d.ts","sourceRoot":"","sources":["../../../src/internal/common/ErrorFallback.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ErrorFallback.d.ts","sourceRoot":"","sources":["../../../src/internal/common/ErrorFallback.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,UAAU,kBAAkB;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,aAAa,EAAE,aAAa,CAAC,kBAAkB,CA0TpD,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview GlobalErrorFallback component
|
|
3
|
-
* @description Global error boundary fallback for application-level errors
|
|
4
|
-
*
|
|
5
|
-
* @version 0.0.1
|
|
6
|
-
* @since 0.0.1
|
|
7
|
-
* @author AMBROISE PARK Consulting
|
|
8
|
-
*/
|
|
9
|
-
import { type ComponentType } from 'react';
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
10
2
|
interface SentryFallbackProps {
|
|
11
3
|
error: unknown;
|
|
12
4
|
resetError: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalErrorFallback.d.ts","sourceRoot":"","sources":["../../../src/internal/common/GlobalErrorFallback.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GlobalErrorFallback.d.ts","sourceRoot":"","sources":["../../../src/internal/common/GlobalErrorFallback.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB,EAAE,aAAa,CAAC,mBAAmB,CAuC3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -13,9 +13,9 @@ import { AlertTriangle, Home, ArrowLeft, RotateCw, Copy, Check, } from 'lucide-r
|
|
|
13
13
|
import { useEffect, useState } from 'react';
|
|
14
14
|
import { Button, BUTTON_VARIANT, Card, CARD_VARIANT, Alert, ALERT_VARIANT, Stack, } from '@donotdev/components';
|
|
15
15
|
import { handleError, useTranslation } from '@donotdev/core';
|
|
16
|
+
import { useLocation, useBack } from '@donotdev/ui/routing/hooks';
|
|
16
17
|
import { PageContainer } from '../../components/layout/PageContainer';
|
|
17
18
|
// Platform-specific hooks via conditional exports
|
|
18
|
-
import { useLocation, useBack } from '@donotdev/ui/routing/hooks';
|
|
19
19
|
import { Link } from '../../routing/Link';
|
|
20
20
|
/**
|
|
21
21
|
* Professional Route Error Fallback Component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugDialog.d.ts","sourceRoot":"","sources":["../../../../src/internal/devtools/components/DebugDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DebugDialog.d.ts","sourceRoot":"","sources":["../../../../src/internal/devtools/components/DebugDialog.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,WAAW,+CAiFvB,CAAC"}
|
|
@@ -12,13 +12,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
12
12
|
import { PanelRight } from 'lucide-react';
|
|
13
13
|
import { useState } from 'react';
|
|
14
14
|
import { Button, BUTTON_VARIANT, Sheet, Tabs, Stack, ScrollArea, } from '@donotdev/components';
|
|
15
|
+
import { useTranslation } from '@donotdev/core';
|
|
15
16
|
import { ConfigTab } from './ConfigTab';
|
|
16
17
|
import { CookieTab } from './CookieTab';
|
|
17
18
|
import { DesignTab } from './DesignTab';
|
|
18
19
|
import { StoresTab } from './StoresTab';
|
|
19
20
|
export const DebugDialog = () => {
|
|
21
|
+
const { t } = useTranslation('dndev');
|
|
20
22
|
const [open, setOpen] = useState(false);
|
|
21
|
-
return (_jsx(Sheet, { open: open, onOpenChange: setOpen, trigger: _jsx(Button, { icon: PanelRight, iconEnd: true, variant: BUTTON_VARIANT.OUTLINE, className: "dndev-flex-1 dndev-justify-center dndev-items-center", title: "Open debug panel", "aria-label": "Debug panel", children: "\uD83D\uDC1B Debug Tools" }), side: "top", showOverlay: false, title:
|
|
23
|
+
return (_jsx(Sheet, { open: open, onOpenChange: setOpen, trigger: _jsx(Button, { icon: PanelRight, iconEnd: true, variant: BUTTON_VARIANT.OUTLINE, className: "dndev-flex-1 dndev-justify-center dndev-items-center", title: "Open debug panel", "aria-label": "Debug panel", children: "\uD83D\uDC1B Debug Tools" }), side: "top", showOverlay: false, title: t('sheet.debugPanel', { defaultValue: 'Debug Panel' }), className: "dndev-h-[80vh] dndev-max-h-[80vh]", "data-dndev-devtools": "true", children: _jsx(Stack, { flex: "1", className: "dndev-h-full dndev-min-h-0", style: { padding: 0, overflow: 'hidden', height: '100%' }, children: _jsx(Tabs, { defaultValue: "config", className: "dndev-flex-1 dndev-min-h-0 dndev-flex dndev-flex-col dndev-h-full", items: [
|
|
22
24
|
{
|
|
23
25
|
value: 'config',
|
|
24
26
|
label: 'Config',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskedValue.d.ts","sourceRoot":"","sources":["../../../../src/internal/devtools/components/MaskedValue.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaskedValue.d.ts","sourceRoot":"","sources":["../../../../src/internal/devtools/components/MaskedValue.tsx"],"names":[],"mappings":"AAgCA,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IAEjE,OAAO,EAAE,MAAM,CAAC;IAEhB,4EAA4E;IAE5E,KAAK,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAE3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IAEtC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IAEpD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,GAAI,wDAUzB,gBAAgB,4CA2ElB,CAAC"}
|
|
@@ -16,9 +16,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
16
16
|
* @author AMBROISE PARK Consulting
|
|
17
17
|
|
|
18
18
|
*/
|
|
19
|
+
import { Eye, EyeOff } from 'lucide-react';
|
|
19
20
|
import { useState } from 'react';
|
|
20
21
|
import { Stack, Text, Button, BUTTON_VARIANT, CopyToClipboard, } from '@donotdev/components';
|
|
21
|
-
import { Eye, EyeOff } from 'lucide-react';
|
|
22
22
|
import { shouldMaskValue, maskSensitiveValue } from '../utils/maskSensitive';
|
|
23
23
|
/**
|
|
24
24
|
|
|
@@ -9,9 +9,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
* @since 0.0.1
|
|
10
10
|
* @author AMBROISE PARK Consulting
|
|
11
11
|
*/
|
|
12
|
+
import { RefreshCw } from 'lucide-react';
|
|
12
13
|
import { useState, useEffect, useCallback } from 'react';
|
|
13
14
|
import { Stack, Card, Accordion, ScrollArea, JsonViewer, Text, Badge, BADGE_VARIANT, Button, BUTTON_VARIANT, } from '@donotdev/components';
|
|
14
|
-
import { RefreshCw } from 'lucide-react';
|
|
15
15
|
const STORE_NAMES = {
|
|
16
16
|
'theme-store': 'Theme',
|
|
17
17
|
'consent-store': 'Consent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseStoresInitializer.d.ts","sourceRoot":"","sources":["../../../src/internal/initializers/BaseStoresInitializer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseStoresInitializer.d.ts","sourceRoot":"","sources":["../../../src/internal/initializers/BaseStoresInitializer.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA4DvC;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyGD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,QAAQ,EACR,YAAiB,EACjB,aAAqB,EACrB,aAAa,GACd,EAAE,0BAA0B,kDAgJ5B"}
|
|
@@ -10,7 +10,7 @@ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
|
10
10
|
* @author AMBROISE PARK Consulting
|
|
11
11
|
*/
|
|
12
12
|
import { useEffect, useLayoutEffect, useRef } from 'react';
|
|
13
|
-
import { useThemeStore, useNavigationStore,
|
|
13
|
+
import { useThemeStore, useNavigationStore, useOverlayStore, useNetworkStore, useAbortControllerStore, useConsentStore, useConsentReady, useThemeReady, getPlatformEnvVar, } from '@donotdev/core';
|
|
14
14
|
import { useI18nReady } from '@donotdev/core';
|
|
15
15
|
import { handleError, isClient, getDndevConfig, globalEmitter, } from '@donotdev/core';
|
|
16
16
|
import { useAppConfig } from '@donotdev/core';
|
|
@@ -65,7 +65,6 @@ function removeShellLoader(options) {
|
|
|
65
65
|
const STORE_CONFIG = [
|
|
66
66
|
{ name: 'consent', type: 'critical', store: useConsentStore },
|
|
67
67
|
{ name: 'theme', type: 'critical', store: useThemeStore },
|
|
68
|
-
{ name: 'loading', type: 'regular', store: useLoadingStore },
|
|
69
68
|
{ name: 'overlay', type: 'regular', store: useOverlayStore },
|
|
70
69
|
{ name: 'network', type: 'regular', store: useNetworkStore },
|
|
71
70
|
{ name: 'abort', type: 'regular', store: useAbortControllerStore },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextJsStoresInitializer.d.ts","sourceRoot":"","sources":["../../../src/internal/initializers/NextJsStoresInitializer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NextJsStoresInitializer.d.ts","sourceRoot":"","sources":["../../../src/internal/initializers/NextJsStoresInitializer.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAOxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,GACd,EAAE,4BAA4B,kDA2D9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDevLayout.d.ts","sourceRoot":"","sources":["../../../src/internal/layout/DnDevLayout.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DnDevLayout.d.ts","sourceRoot":"","sources":["../../../src/internal/layout/DnDevLayout.tsx"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAIV,YAAY,EACb,MAAM,gBAAgB,CAAC;AA0CxB,UAAU,yBAAyB;IACjC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,GAAI,kCAIzB,yBAAyB,4CA2T3B,CAAC"}
|
|
@@ -11,18 +11,17 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
11
11
|
* @author AMBROISE PARK Consulting
|
|
12
12
|
*/
|
|
13
13
|
import { useLayoutEffect, useEffect, useRef, useMemo, Suspense, startTransition, lazy, } from 'react';
|
|
14
|
-
import { Outlet } from 'react-router-dom';
|
|
15
14
|
import { cn, Stack } from '@donotdev/components';
|
|
16
15
|
import { isClient, isNextJs, isDev, useBreakpoint } from '@donotdev/core';
|
|
17
16
|
import { useLayout } from '@donotdev/core';
|
|
18
17
|
import { useTranslation } from '@donotdev/core';
|
|
19
18
|
import { useAppConfig } from '@donotdev/core';
|
|
20
19
|
import { LAYOUT_PRESET, DENSITY } from '@donotdev/core';
|
|
20
|
+
import { useLocation } from '@donotdev/ui/routing/hooks';
|
|
21
21
|
import Breadcrumbs from '../../components/layout/components/Breadcrumbs';
|
|
22
22
|
import { GoToWrapper } from '../../routing';
|
|
23
|
-
import { useLocation } from '@donotdev/ui/routing/hooks';
|
|
24
|
-
import { presetRegistry } from './config/presets';
|
|
25
23
|
import { DEFAULT_SLOTS } from './config/defaults';
|
|
24
|
+
import { presetRegistry } from './config/presets';
|
|
26
25
|
import { DnDevHeader, DnDevSidebar, DnDevFooter, DnDevMergedBar, } from './zones';
|
|
27
26
|
const DebugTools = lazy(() => {
|
|
28
27
|
return import('../devtools')
|
|
@@ -74,7 +73,7 @@ export const DnDevLayout = ({ children, layout, className, }) => {
|
|
|
74
73
|
const pathname = location.pathname;
|
|
75
74
|
const mainRef = useRef(null);
|
|
76
75
|
// Platform content handling
|
|
77
|
-
const content =
|
|
76
|
+
const content = children;
|
|
78
77
|
// Get effective preset from store (always use store, never layout prop)
|
|
79
78
|
const effectivePreset = useMemo(() => {
|
|
80
79
|
return preset || 'landing';
|
|
@@ -247,5 +246,5 @@ export const DnDevLayout = ({ children, layout, className, }) => {
|
|
|
247
246
|
};
|
|
248
247
|
startTransition(updateDOM);
|
|
249
248
|
}, [effectivePreset]);
|
|
250
|
-
return (_jsxs("div", { className: cn('dndev-layout', className), children: [resolvedHeader, resolvedSidebar, _jsxs("main", { ref: mainRef, role: "main", className: "main", children: [breadcrumbs !== 'never' && (_jsx("div", { className: "breadcrumbs-container", children: _jsx(Breadcrumbs, { variant: breadcrumbs === 'always' ? 'default' : 'smart' }) })), isDev() && (_jsx(Suspense, { fallback: null, children: _jsx(DebugTools, {}) })), _jsx(Stack, { flex: "1", className: "dndev-min-h-0", children: content }, pathname)] }), resolvedFooter, resolvedMergedBar, _jsx(GoToWrapper, {})] }));
|
|
249
|
+
return (_jsxs("div", { className: cn('dndev-layout', className), children: [resolvedHeader, resolvedSidebar, _jsxs("main", { ref: mainRef, role: "main", className: "main", children: [breadcrumbs !== 'never' && (_jsx("div", { className: "breadcrumbs-container", children: _jsx(Breadcrumbs, { variant: breadcrumbs === 'always' ? 'default' : 'smart' }) })), isDev() && (_jsx(Suspense, { fallback: null, children: _jsx(DebugTools, {}) })), _jsx(Stack, { flex: "1", className: "dndev-min-h-0", children: content }, pathname), resolvedFooter && (_jsx("div", { className: "footer-mobile", children: resolvedFooter }))] }), resolvedFooter && _jsx("div", { className: "footer-desktop", children: resolvedFooter }), resolvedMergedBar, _jsx(GoToWrapper, {})] }));
|
|
251
250
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoMetaTags.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/components/AutoMetaTags.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AutoMetaTags.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/components/AutoMetaTags.tsx"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAwC3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,aAoN1B,CAAC;AAEF;;;GAGG;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -10,9 +10,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
10
10
|
*/
|
|
11
11
|
import { Stack } from '@donotdev/components';
|
|
12
12
|
import { useTranslation, maybeTranslate, useAppConfig } from '@donotdev/core';
|
|
13
|
-
import { Link } from '../../../../routing/Link';
|
|
14
|
-
import { useLegalLinks } from './useLegalLinks';
|
|
15
13
|
import { FooterBranding } from './FooterBranding';
|
|
14
|
+
import { useLegalLinks } from './useLegalLinks';
|
|
15
|
+
import { Link } from '../../../../routing/Link';
|
|
16
16
|
/**
|
|
17
17
|
* FooterLegalLinks - Legal links component
|
|
18
18
|
*
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Slot Defaults
|
|
3
|
-
* @description Default slot functions for zone components.
|
|
4
|
-
* All slots are functions that return ReactNode (never null in defaults).
|
|
5
|
-
* Zones use these unless preset overrides.
|
|
6
|
-
*
|
|
7
|
-
* @version 0.0.1
|
|
8
|
-
* @since 0.0.1
|
|
9
|
-
* @author AMBROISE PARK Consulting
|
|
10
|
-
*/
|
|
11
1
|
import type { ReactNode } from 'react';
|
|
12
2
|
/**
|
|
13
3
|
* Default slot functions - zones use these unless preset overrides
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/config/defaults.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/config/defaults.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;QAEtB,2DAA2D;qBAChD,SAAS;QAEpB,+DAA+D;sBACnD,SAAS;QAErB,+CAA+C;mBACtC,SAAS;;;QAWlB,4DAA4D;mBACnD,SAAS;QAElB,uCAAuC;uBAC1B,SAAS;QAItB,4CAA4C;sBAChC,SAAS;QAQrB,yBAAyB;;;;;;;YAQvB,mCAAmC;2BACtB,SAAS;YAEtB,4DAA4D;uBACnD,SAAS;YAElB,gEAAgE;2BACnD,SAAS;YAEtB,8DAA8D;0BAClD,SAAS;;;CAG1B,CAAC"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// packages/ui/src/internal/layout/config/defaults.tsx
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Slot Defaults
|
|
5
|
+
* @description Default slot functions for zone components.
|
|
6
|
+
* All slots are functions that return ReactNode (never null in defaults).
|
|
7
|
+
* Zones use these unless preset overrides.
|
|
8
|
+
*
|
|
9
|
+
* @version 0.0.1
|
|
10
|
+
* @since 0.0.1
|
|
11
|
+
* @author AMBROISE PARK Consulting
|
|
12
|
+
*/
|
|
2
13
|
import { DISPLAY } from '@donotdev/components';
|
|
3
14
|
import { LanguageSelector } from '@donotdev/core';
|
|
4
15
|
import { AuthHeader } from '../../../components/auth';
|
|
5
16
|
import { AppBranding, ThemeToggle, } from '../../../components/layout/components';
|
|
6
|
-
import { GoTo } from '../../../routing/GoTo';
|
|
7
17
|
import { DnDevNavigationMenu } from '../../../routing';
|
|
18
|
+
import { GoTo } from '../../../routing/GoTo';
|
|
8
19
|
/**
|
|
9
20
|
* Default slot functions - zones use these unless preset overrides
|
|
10
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/admin.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/admin.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,EAAE,YAsBzB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// packages/ui/src/internal/layout/config/presets/admin.tsx
|
|
2
|
+
import { DEFAULT_SLOTS } from '../defaults';
|
|
2
3
|
/**
|
|
3
4
|
* Admin preset - admin panel layout
|
|
4
5
|
*
|
|
@@ -23,8 +24,12 @@ export const adminPreset = {
|
|
|
23
24
|
mobile: {
|
|
24
25
|
mergedBar: {
|
|
25
26
|
position: 'top',
|
|
26
|
-
height: '
|
|
27
|
-
//
|
|
27
|
+
height: 'var(--header-height)',
|
|
28
|
+
// Desktop → Mobile mapping:
|
|
29
|
+
trigger: DEFAULT_SLOTS.header.start, // header.start → trigger (AppBranding)
|
|
30
|
+
top: DEFAULT_SLOTS.header.center, // header.center → top (null)
|
|
31
|
+
content: DEFAULT_SLOTS.sidebar.content, // sidebar.content → content (NavigationMenu)
|
|
32
|
+
bottom: DEFAULT_SLOTS.header.end, // header.end → bottom (GoTo, Auth, Language, Theme)
|
|
28
33
|
},
|
|
29
34
|
},
|
|
30
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/blog.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/blog.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,EAAE,YAkBxB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// packages/ui/src/internal/layout/config/presets/blog.tsx
|
|
2
|
+
import { DEFAULT_SLOTS } from '../defaults';
|
|
2
3
|
/**
|
|
3
4
|
* Blog preset - content-focused layout
|
|
4
5
|
*
|
|
@@ -19,7 +20,12 @@ export const blogPreset = {
|
|
|
19
20
|
mobile: {
|
|
20
21
|
mergedBar: {
|
|
21
22
|
position: 'bottom',
|
|
22
|
-
//
|
|
23
|
+
// Desktop → Mobile mapping:
|
|
24
|
+
trigger: DEFAULT_SLOTS.header.start, // header.start → trigger (AppBranding)
|
|
25
|
+
top: DEFAULT_SLOTS.header.center, // header.center → top (null)
|
|
26
|
+
content: DEFAULT_SLOTS.sidebar.content, // sidebar.content → content (NavigationMenu)
|
|
27
|
+
bottom: DEFAULT_SLOTS.header.end, // header.end → bottom (GoTo, Auth, Language, Theme)
|
|
28
|
+
// Note: sidebar.bottom also has Auth+Lang+Theme, but header.end includes GoTo, so use header.end
|
|
23
29
|
},
|
|
24
30
|
},
|
|
25
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/docs.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/docs.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,YA8BxB,CAAC"}
|
|
@@ -12,6 +12,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
12
12
|
import { DISPLAY } from '@donotdev/components';
|
|
13
13
|
import { AppBranding } from '../../../../components/layout/components';
|
|
14
14
|
import { GoTo } from '../../../../routing/GoTo';
|
|
15
|
+
import { DEFAULT_SLOTS } from '../defaults';
|
|
15
16
|
/**
|
|
16
17
|
* Docs preset - documentation layout
|
|
17
18
|
*
|
|
@@ -39,11 +40,12 @@ export const docsPreset = {
|
|
|
39
40
|
mobile: {
|
|
40
41
|
mergedBar: {
|
|
41
42
|
position: 'top',
|
|
42
|
-
height: '
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
43
|
+
height: 'var(--header-height)',
|
|
44
|
+
// Desktop → Mobile mapping:
|
|
45
|
+
trigger: () => _jsx(AppBranding, { display: DISPLAY.AUTO }), // sidebar.top (AppBranding) → trigger
|
|
46
|
+
top: () => _jsx(GoTo, { display: DISPLAY.AUTO }), // sidebar.top (GoTo) → top
|
|
47
|
+
content: DEFAULT_SLOTS.sidebar.content, // sidebar.content → content (NavigationMenu)
|
|
48
|
+
bottom: DEFAULT_SLOTS.sidebar.bottom, // sidebar.bottom → bottom (Auth, Language, Theme)
|
|
47
49
|
},
|
|
48
50
|
},
|
|
49
51
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/game.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASnD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/game.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AASnD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,EAAE,YAkCxB,CAAC"}
|
|
@@ -36,8 +36,13 @@ export const gamePreset = {
|
|
|
36
36
|
mobile: {
|
|
37
37
|
mergedBar: {
|
|
38
38
|
position: 'top',
|
|
39
|
-
|
|
40
|
-
//
|
|
39
|
+
// Desktop → Mobile mapping:
|
|
40
|
+
trigger: () => _jsx(GameTitle, {}), // header.center → trigger (GameTitle, since header.start is null)
|
|
41
|
+
top: () => _jsx(GameTitle, {}), // header.center → top (GameTitle)
|
|
42
|
+
content: () => null, // No sidebar → content is null
|
|
43
|
+
bottom: () => (
|
|
44
|
+
// header.end → bottom (Auth, Language, Theme)
|
|
45
|
+
_jsxs(_Fragment, { children: [_jsx(AuthHeader, { display: DISPLAY.AUTO }), _jsx(LanguageSelector, { display: DISPLAY.AUTO }), _jsx(ThemeToggle, { display: DISPLAY.AUTO })] })),
|
|
41
46
|
},
|
|
42
47
|
},
|
|
43
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moolti.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/moolti.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUnD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"moolti.d.ts","sourceRoot":"","sources":["../../../../../src/internal/layout/config/presets/moolti.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAUnD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,YAgD1B,CAAC"}
|
|
@@ -13,8 +13,8 @@ import { DISPLAY, Stack } from '@donotdev/components';
|
|
|
13
13
|
import { LanguageSelector } from '@donotdev/core';
|
|
14
14
|
import { AuthHeader } from '../../../../components/auth';
|
|
15
15
|
import { AppBranding, ThemeToggle, } from '../../../../components/layout/components';
|
|
16
|
-
import { FooterCopyright } from '../../components';
|
|
17
16
|
import { DnDevNavigationMenu, GoTo } from '../../../../routing';
|
|
17
|
+
import { FooterCopyright } from '../../components';
|
|
18
18
|
/**
|
|
19
19
|
* Moolti preset - SaaS app layout
|
|
20
20
|
*
|
|
@@ -40,8 +40,15 @@ export const mooltiPreset = {
|
|
|
40
40
|
mobile: {
|
|
41
41
|
mergedBar: {
|
|
42
42
|
position: 'top',
|
|
43
|
-
|
|
44
|
-
// top
|
|
43
|
+
// Desktop → Mobile mapping:
|
|
44
|
+
trigger: () => _jsx(AppBranding, { display: DISPLAY.AUTO }), // sidebar.top → trigger (AppBranding)
|
|
45
|
+
top: () => null, // No header.center → top is null
|
|
46
|
+
content: () => (
|
|
47
|
+
// sidebar.content → content (GoTo + NavigationMenu)
|
|
48
|
+
_jsxs(_Fragment, { children: [_jsx(GoTo, { display: DISPLAY.AUTO }), _jsx(DnDevNavigationMenu, { vertical: true, display: DISPLAY.AUTO })] })),
|
|
49
|
+
bottom: () => (
|
|
50
|
+
// sidebar.bottom → bottom (Auth, Language, Theme, Footer)
|
|
51
|
+
_jsxs(Stack, { direction: "column", gap: "tight", align: "stretch", children: [_jsx(AuthHeader, { display: DISPLAY.AUTO }), _jsx(LanguageSelector, { display: DISPLAY.AUTO }), _jsx(ThemeToggle, { display: DISPLAY.AUTO }), _jsx(FooterCopyright, { size: "xs" })] })),
|
|
45
52
|
},
|
|
46
53
|
},
|
|
47
54
|
};
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview DnDevFooter Zone Component
|
|
3
|
-
* @description Footer zone with smart defaults.
|
|
4
|
-
*
|
|
5
|
-
* Default layout: Stack(FooterCopyright, FooterLegalLinks, FooterBranding)
|
|
6
|
-
* - Desktop: 2-zone [Copyright] | [Links + Branding]
|
|
7
|
-
* - Mobile: 2-line stacked, centered
|
|
8
|
-
*
|
|
9
|
-
* @version 0.0.1
|
|
10
|
-
* @since 0.0.1
|
|
11
|
-
* @author AMBROISE PARK Consulting
|
|
12
|
-
*/
|
|
13
|
-
import { type ReactNode } from 'react';
|
|
14
1
|
import type { AppMetadata } from '@donotdev/core';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
15
3
|
export interface DnDevFooterProps {
|
|
16
4
|
/** App metadata for copyright/links */
|
|
17
5
|
app?: AppMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDevFooter.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevFooter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDevFooter.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevFooter.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAUlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,iBAAS,oBAAoB,CAAC,EAAE,GAAQ,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAsEvE;AAED,eAAO,MAAM,WAAW,kEAA6B,CAAC"}
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview DnDevHeader Zone Component
|
|
3
|
-
* @description Header zone with smart defaults.
|
|
4
|
-
*
|
|
5
|
-
* Layout: start (start-aligned) | center (absolutely centered) | end (end-aligned)
|
|
6
|
-
* - start: [AppIcon, AppTitle] - start-aligned
|
|
7
|
-
* - center: null - absolutely centered overlay (regardless of start/end content)
|
|
8
|
-
* - end: [GoTo, Auth, Language, Theme] - end-aligned
|
|
9
|
-
*
|
|
10
|
-
* @version 0.0.1
|
|
11
|
-
* @since 0.0.1
|
|
12
|
-
* @author AMBROISE PARK Consulting
|
|
13
|
-
*/
|
|
14
|
-
import { type ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
15
2
|
export interface DnDevHeaderProps {
|
|
16
3
|
/** Start slot - ReactNode from preset or consumer override */
|
|
17
4
|
start?: ReactNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDevHeader.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevHeader.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDevHeader.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevHeader.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED;;;;;GAKG;AACH,iBAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,GAAG,GACJ,EAAE,gBAAgB,GAAG,SAAS,CAgB9B;AAED,eAAO,MAAM,WAAW,kEAA6B,CAAC"}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview DnDevMergedBar Zone Component
|
|
3
|
-
* @description Mobile navigation bar with Sheet trigger.
|
|
4
|
-
*
|
|
5
|
-
* Position: fixed (top or bottom)
|
|
6
|
-
* Slots: trigger (visible bar) + top/content/bottom (Sheet content)
|
|
7
|
-
* CSS: display:none on desktop, display:flex on mobile
|
|
8
|
-
*
|
|
9
|
-
* @version 0.0.1
|
|
10
|
-
* @since 0.0.1
|
|
11
|
-
* @author AMBROISE PARK Consulting
|
|
12
|
-
*/
|
|
13
|
-
import { type ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
14
2
|
export interface DnDevMergedBarProps {
|
|
15
3
|
/** Bar position */
|
|
16
4
|
position: 'top' | 'bottom';
|
|
17
|
-
/** Bar height (default:
|
|
5
|
+
/** Bar height (default: CSS uses var(--header-height) for top, 48px for bottom) */
|
|
18
6
|
height?: string;
|
|
19
7
|
/** Trigger slot - ReactNode from preset or consumer override */
|
|
20
8
|
trigger?: ReactNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDevMergedBar.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevMergedBar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDevMergedBar.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevMergedBar.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,iBAAS,uBAAuB,CAAC,EAC/B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,GAAG,EACH,OAAO,EACP,MAAM,GACP,EAAE,mBAAmB,GAAG,SAAS,CA8DjC;AAED,eAAO,MAAM,cAAc,qEAAgC,CAAC"}
|
|
@@ -12,9 +12,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
12
12
|
* @since 0.0.1
|
|
13
13
|
* @author AMBROISE PARK Consulting
|
|
14
14
|
*/
|
|
15
|
-
import { memo } from 'react';
|
|
16
15
|
import { ChevronUp, Menu } from 'lucide-react';
|
|
16
|
+
import { memo, useState, useEffect } from 'react';
|
|
17
17
|
import { Stack, Button, Sheet, BUTTON_VARIANT, Separator, SEPARATOR_VARIANT, } from '@donotdev/components';
|
|
18
|
+
import { useTranslation } from '@donotdev/core';
|
|
19
|
+
import { useLocation } from '@donotdev/ui/routing/hooks';
|
|
18
20
|
/**
|
|
19
21
|
* DnDevMergedBar - Mobile navigation zone
|
|
20
22
|
*
|
|
@@ -24,12 +26,18 @@ import { Stack, Button, Sheet, BUTTON_VARIANT, Separator, SEPARATOR_VARIANT, } f
|
|
|
24
26
|
* - top/content/bottom: Sheet content (default: derived from sidebar)
|
|
25
27
|
*/
|
|
26
28
|
function DnDevMergedBarComponent({ position, height, trigger, top, content, bottom, }) {
|
|
27
|
-
const
|
|
29
|
+
const { t } = useTranslation('dndev');
|
|
28
30
|
const Icon = position === 'top' ? Menu : ChevronUp;
|
|
29
31
|
const sheetSide = position === 'top' ? 'left' : position;
|
|
32
|
+
const [open, setOpen] = useState(false);
|
|
33
|
+
const location = useLocation();
|
|
34
|
+
// Close sheet when route changes
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
setOpen(false);
|
|
37
|
+
}, [location.pathname]);
|
|
30
38
|
// Build sheet content
|
|
31
39
|
const sheetNode = (_jsxs(Stack, { direction: "column", gap: "medium", className: "merged-bar-sheet-content", children: [top && (_jsxs(_Fragment, { children: [top, _jsx(Separator, { variant: SEPARATOR_VARIANT.MUTED })] })), content && _jsx("div", { className: "merged-bar-sheet-scroll", children: content }), bottom && (_jsxs(_Fragment, { children: [_jsx(Separator, { variant: SEPARATOR_VARIANT.MUTED }), bottom] }))] }));
|
|
32
40
|
const triggerButton = (_jsx(Button, { variant: BUTTON_VARIANT.GHOST, icon: Icon, "aria-label": "Open navigation" }));
|
|
33
|
-
return (_jsx("div", { className: "merged-bar", "data-position": position, children: _jsxs(Stack, { direction: "row", align: "center", justify: "between", className: "merged-bar-trigger", children: [trigger, _jsx(Sheet, { trigger: triggerButton, side: sheetSide, children: sheetNode })] }) }));
|
|
41
|
+
return (_jsx("div", { className: "merged-bar", "data-position": position, children: _jsxs(Stack, { direction: "row", align: "center", justify: "between", className: "merged-bar-trigger", children: [trigger, _jsx(Sheet, { trigger: triggerButton, side: sheetSide, open: open, onOpenChange: setOpen, title: t('sheet.navigation', { defaultValue: 'Navigation' }), children: sheetNode })] }) }));
|
|
34
42
|
}
|
|
35
43
|
export const DnDevMergedBar = memo(DnDevMergedBarComponent);
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* @fileoverview DnDevSidebar Zone Component
|
|
3
|
-
* @description Flat sidebar zone with resize mechanics built-in.
|
|
4
|
-
*
|
|
5
|
-
* Structure: aside > nav + resize-handle
|
|
6
|
-
* No nesting. Resize logic on aside directly.
|
|
7
|
-
*
|
|
8
|
-
* Slots: top | content | bottom
|
|
9
|
-
*
|
|
10
|
-
* @version 0.0.1
|
|
11
|
-
* @since 0.0.1
|
|
12
|
-
* @author AMBROISE PARK Consulting
|
|
13
|
-
*/
|
|
14
|
-
import { type ReactNode } from 'react';
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
15
2
|
export interface DnDevSidebarProps {
|
|
16
3
|
/** Top slot - ReactNode from preset or consumer override */
|
|
17
4
|
top?: ReactNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDevSidebar.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevSidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDevSidebar.d.ts","sourceRoot":"","sources":["../../../../src/internal/layout/zones/DnDevSidebar.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,iBAAS,qBAAqB,CAAC,EAC7B,GAAG,EACH,OAAO,EACP,MAAM,EACN,YAAiD,EACjD,QAAyC,EACzC,QAAyC,GAC1C,EAAE,iBAAiB,GAAG,SAAS,CAiM/B;AAED,eAAO,MAAM,YAAY,mEAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthGuard.d.ts","sourceRoot":"","sources":["../../src/routing/AuthGuard.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthGuard.d.ts","sourceRoot":"","sources":["../../src/routing/AuthGuard.tsx"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,EAGL,UAAU,EACV,kBAAkB,EAClB,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AAaxB;;GAEG;AACH,UAAU,cAAc;IACtB,wCAAwC;IACxC,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAC;IACvB,wCAAwC;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,EACR,QAAQ,EAAE,QAAiB,GAC5B,EAAE,cAAc,2CA2HhB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,uBAAiB,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,WAAW,IACvB,OAAO,UAAU,CAAC,KAAK,GACvB,OAAO,UAAU,CAAC,IAAI,GACtB,OAAO,UAAU,CAAC,KAAK,CAS1B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EACA,OAAO,UAAU,CAAC,KAAK,GACvB,OAAO,UAAU,CAAC,IAAI,GACtB,OAAO,UAAU,CAAC,KAAK,GAC1B,OAAO,CAIT;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY;;;;;;EAW3B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EACvC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,EAC3B,IAAI,EAAE,QAAQ,GAAG,KAAK,WAEW,CAAC,6CAOnC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;IAC3B,iCAAiC;kBACrB,KAAK;IAEjB,oCAAoC;oBACtB,QAAQ;IAEtB,yCAAyC;gBAC/B,QAAQ;IAKlB,uDAAuD;iBAC5C,QAAQ;IAKnB,gCAAgC;iBAExB,CAAC,OAAO,kBAAkB,EAAE,MAAM,OAAO,kBAAkB,CAAC,KACjE,QAAQ;IAKX,eAAe;eACN,QAAQ;IAKjB,mBAAmB;mBACN,QAAQ;IAKrB,sCAAsC;oBACxB,QAAQ;IAMtB,wBAAwB;uBACL,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,KAAG,QAAQ;CAItE,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
package/dist/routing/GoTo.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export interface GoToProps {
|
|
|
7
7
|
display?: (typeof DISPLAY)[keyof typeof DISPLAY];
|
|
8
8
|
/** Additional CSS class */
|
|
9
9
|
className?: string;
|
|
10
|
+
/** Optional callback called after opening command dialog (e.g., to close parent dropdown) */
|
|
11
|
+
onOpen?: () => void;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* GoTo - Command palette trigger button
|
|
@@ -14,6 +16,6 @@ export interface GoToProps {
|
|
|
14
16
|
* Simple button: Search icon + "Go to" label + keyboard shortcut.
|
|
15
17
|
* Opens command dialog on click.
|
|
16
18
|
*/
|
|
17
|
-
export declare const GoTo: ({ display, className }: GoToProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare const GoTo: ({ display, className, onOpen }: GoToProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
20
|
export default GoTo;
|
|
19
21
|
//# sourceMappingURL=GoTo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoTo.d.ts","sourceRoot":"","sources":["../../src/routing/GoTo.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA0B,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;IACjD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"GoTo.d.ts","sourceRoot":"","sources":["../../src/routing/GoTo.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA0B,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGvE,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;IACjD,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,gCAA+C,SAAS,4CAsC5E,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/routing/GoTo.js
CHANGED
|
@@ -17,14 +17,18 @@ import { useOverlayStore, useTranslation } from '@donotdev/core';
|
|
|
17
17
|
* Simple button: Search icon + "Go to" label + keyboard shortcut.
|
|
18
18
|
* Opens command dialog on click.
|
|
19
19
|
*/
|
|
20
|
-
export const GoTo = ({ display = DISPLAY.AUTO, className }) => {
|
|
20
|
+
export const GoTo = ({ display = DISPLAY.AUTO, className, onOpen }) => {
|
|
21
21
|
const { t } = useTranslation('dndev');
|
|
22
22
|
const openCommandDialog = useOverlayStore((state) => state.openCommandDialog);
|
|
23
23
|
// Platform-aware shortcut (Mac: ⌘K, others: Ctrl+K)
|
|
24
24
|
const isMac = typeof navigator !== 'undefined' &&
|
|
25
25
|
/Mac|iPhone|iPad/.test(navigator.platform);
|
|
26
26
|
const shortcut = isMac ? '⌘K' : 'Ctrl+K';
|
|
27
|
-
|
|
27
|
+
const handleClick = () => {
|
|
28
|
+
openCommandDialog();
|
|
29
|
+
onOpen?.(); // Call optional callback (e.g., to close parent dropdown)
|
|
30
|
+
};
|
|
31
|
+
return (_jsxs(Button, { variant: BUTTON_VARIANT.OUTLINE, display: display, icon: Search, onClick: handleClick, className: className, "aria-label": t('goTo.ariaLabel', 'Go to page'), children: [t('goTo.label', 'Go to'), _jsx("kbd", { style: {
|
|
28
32
|
marginInlineStart: 'var(--gap-sm)',
|
|
29
33
|
padding: '0.125rem 0.375rem',
|
|
30
34
|
fontSize: 'var(--font-size-xs)',
|