@admin-layout/tailwind-design-pro 12.2.3-alpha.2 → 12.2.3-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Layout/BasicLayout/index.d.ts +7 -0
- package/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
- package/lib/components/Layout/BasicLayout/index.js +59 -3
- package/lib/components/Layout/BasicLayout/index.js.map +1 -1
- package/lib/components/Layout/Breadcrumbs/breadcrumbUtils.d.ts +8 -0
- package/lib/components/Layout/Breadcrumbs/breadcrumbUtils.d.ts.map +1 -0
- package/lib/components/Layout/Breadcrumbs/breadcrumbUtils.js +48 -0
- package/lib/components/Layout/Breadcrumbs/breadcrumbUtils.js.map +1 -0
- package/package.json +5 -5
|
@@ -9,5 +9,12 @@ export declare function BasicLayout(props: BasicLayoutProps & GlobalHeaderProps
|
|
|
9
9
|
routeParams?: any;
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
routePattern?: string;
|
|
12
|
+
breadcrumbConfig?: {
|
|
13
|
+
homeLabel?: string;
|
|
14
|
+
homePath?: string;
|
|
15
|
+
projectRoutePattern?: string;
|
|
16
|
+
startSegment?: string;
|
|
17
|
+
orgContextSegments?: string[];
|
|
18
|
+
};
|
|
12
19
|
}): React.JSX.Element;
|
|
13
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAIhB,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAIhB,iBAAiB,EAEpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAA4D,MAAM,OAAO,CAAC;AAwBjF,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,gBAAgB,EAAE;;;;CAAA,qCA+B3F;AAwCD,wBAAgB,WAAW,CACvB,KAAK,EAAE,gBAAgB,GACnB,iBAAiB,GAAG;IAChB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;CACL,qBA4dR"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {getThemeColors,getMenuSeparation,useComponentSize}from'@admin-layout/client';import {Outlet}from'@remix-run/react';import {omit}from'lodash-es';import React__default,{useRef,useState,
|
|
1
|
+
import {getThemeColors,getMenuSeparation,useComponentSize}from'@admin-layout/client';import {useMatches,Link,Outlet}from'@remix-run/react';import {omit}from'lodash-es';import React__default,{useRef,useMemo,useState,useEffect,useCallback}from'react';import warning from'warning';import {config}from'../../../config/env-config.js';import'@react-icons/all-files/fa/FaMoon.js';import'@react-icons/all-files/fa/FaSun.js';import {useMediaQuery}from'../../../hooks/useMediaQuery.js';import {useScrollThreshold}from'../../../hooks/useScrollThreshold.js';import {SettingDrawer}from'../../SettingDrawer/SettingDrawer.js';import {getPageTitleInfo}from'../getPageTitle.js';import {MainHeader}from'../GlobalHeader/MainHeader.js';import'@remix-run/router';import'../../../helpers/DynamicIcon.js';import'@app/dialog/WrappedDialogsSwitch';import {GlobalHeader}from'../GlobalHeader/Header.js';import {MainSidebar}from'../Sidebar/MainSidebar.js';import {PerplexSidebar}from'../Sidebar/PerplexSidebar.js';import'@common-stack/components-pro';import {FooterSlot}from'../slot-fill/Footer.js';import'reflect-metadata';import'@admin-layout/client/lib/constants/layout.js';import {generateBreadcrumbRoutes}from'../Breadcrumbs/breadcrumbUtils.js';import {Breadcrumb,BreadcrumbList,BreadcrumbItem,BreadcrumbLink,BreadcrumbSeparator,BreadcrumbPage}from'@admin-layout/tailwind-ui/shardui/breadcrumb.js';//helper func
|
|
2
2
|
function useHorizontalScroll({
|
|
3
3
|
setScrolled,
|
|
4
4
|
setSearchOptionsShown,
|
|
@@ -81,7 +81,8 @@ function BasicLayout(props) {
|
|
|
81
81
|
primaryColor,
|
|
82
82
|
mainHeaderProps,
|
|
83
83
|
actor,
|
|
84
|
-
routePattern
|
|
84
|
+
routePattern,
|
|
85
|
+
breadcrumbConfig = {}
|
|
85
86
|
} = props;
|
|
86
87
|
// Refs
|
|
87
88
|
useRef(settings);
|
|
@@ -89,6 +90,49 @@ function BasicLayout(props) {
|
|
|
89
90
|
const {
|
|
90
91
|
isMobile
|
|
91
92
|
} = useMediaQuery();
|
|
93
|
+
const matches = useMatches();
|
|
94
|
+
const currentMatch = matches[matches.length - 1];
|
|
95
|
+
// Extract start segment dynamically from pathname
|
|
96
|
+
const dynamicStartSegment = useMemo(() => {
|
|
97
|
+
if (breadcrumbConfig?.startSegment) return breadcrumbConfig.startSegment;
|
|
98
|
+
if (location?.pathname) {
|
|
99
|
+
const segments = location.pathname.split('/').filter(Boolean);
|
|
100
|
+
const orgContextSegments = breadcrumbConfig?.orgContextSegments;
|
|
101
|
+
let skipIndex = 0;
|
|
102
|
+
// If orgContextSegments is provided, find where they end
|
|
103
|
+
if (orgContextSegments && orgContextSegments.length > 0) {
|
|
104
|
+
for (let i = 0; i < segments.length; i++) {
|
|
105
|
+
if (orgContextSegments.includes(segments[i])) {
|
|
106
|
+
skipIndex = i + 2; // Skip org marker and next segment
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
// Default: skip single-letter segments (typically org marker like 'o') and the next segment
|
|
112
|
+
for (let i = 0; i < segments.length; i++) {
|
|
113
|
+
if (segments[i].length === 1 && /^[a-z]$/.test(segments[i])) {
|
|
114
|
+
skipIndex = i + 2;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (skipIndex < segments.length) {
|
|
120
|
+
return segments[skipIndex];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}, [breadcrumbConfig?.startSegment, breadcrumbConfig?.orgContextSegments, location?.pathname]);
|
|
125
|
+
// Breadcrumb config - only use provided values or extracted values
|
|
126
|
+
const breadcrumbDefaults = useMemo(() => ({
|
|
127
|
+
homeLabel: breadcrumbConfig?.homeLabel,
|
|
128
|
+
homePath: breadcrumbConfig?.homePath,
|
|
129
|
+
projectRoutePattern: breadcrumbConfig?.projectRoutePattern || (dynamicStartSegment ? `${dynamicStartSegment}/:id` : null),
|
|
130
|
+
startSegment: dynamicStartSegment
|
|
131
|
+
}), [breadcrumbConfig, dynamicStartSegment]);
|
|
132
|
+
// Check if current route is a project-specific route (dynamic pattern)
|
|
133
|
+
const isProjectRoute = useMemo(() => {
|
|
134
|
+
return currentMatch?.params?.id && currentMatch?.id?.includes(breadcrumbDefaults.projectRoutePattern);
|
|
135
|
+
}, [currentMatch?.params?.id, currentMatch?.id, breadcrumbDefaults.projectRoutePattern]);
|
|
92
136
|
// State
|
|
93
137
|
const [scrolled, setScrolled] = useState(false);
|
|
94
138
|
const [collapsed, setCollapsed] = useState(false);
|
|
@@ -351,7 +395,19 @@ function BasicLayout(props) {
|
|
|
351
395
|
e.stopPropagation();
|
|
352
396
|
setSearchOptionsShown(false);
|
|
353
397
|
}
|
|
354
|
-
}),
|
|
398
|
+
}), location?.pathname && isProjectRoute && breadcrumbDefaults.startSegment && React__default.createElement("div", {
|
|
399
|
+
className: "mb-4"
|
|
400
|
+
}, React__default.createElement(Breadcrumb, null, React__default.createElement(BreadcrumbList, null, breadcrumbDefaults.homeLabel && breadcrumbDefaults.homePath && React__default.createElement(BreadcrumbItem, null, React__default.createElement(BreadcrumbLink, {
|
|
401
|
+
asChild: true
|
|
402
|
+
}, React__default.createElement(Link, {
|
|
403
|
+
to: breadcrumbDefaults.homePath
|
|
404
|
+
}, breadcrumbDefaults.homeLabel))), generateBreadcrumbRoutes(location.pathname, breadcrumbDefaults.startSegment).map((route, index) => React__default.createElement(React__default.Fragment, {
|
|
405
|
+
key: route.path
|
|
406
|
+
}, React__default.createElement(BreadcrumbSeparator, null), React__default.createElement(BreadcrumbItem, null, props.itemRender ? props.itemRender(route, {}, generateBreadcrumbRoutes(location.pathname, breadcrumbDefaults.startSegment), [route.path]) : index === generateBreadcrumbRoutes(location.pathname, breadcrumbDefaults.startSegment).length - 1 ? React__default.createElement(BreadcrumbPage, null, route.breadcrumbName) : React__default.createElement(BreadcrumbLink, {
|
|
407
|
+
asChild: true
|
|
408
|
+
}, React__default.createElement(Link, {
|
|
409
|
+
to: route.path
|
|
410
|
+
}, route.breadcrumbName)))))))), React__default.createElement(Outlet, null)), getOverrideValue('footer.showFooter') && React__default.createElement("div", {
|
|
355
411
|
ref: refFooter,
|
|
356
412
|
className: footerFixed ? 'fixed bottom-0 w-full' : ''
|
|
357
413
|
}, React__default.createElement(FooterSlot, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Layout/BasicLayout/index.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate breadcrumb routes from pathname
|
|
3
|
+
* Parses URL structure and creates semantic breadcrumb items
|
|
4
|
+
* @param pathname - The current pathname
|
|
5
|
+
* @param startSegment - The route segment where breadcrumbs should start displaying
|
|
6
|
+
*/
|
|
7
|
+
export declare const generateBreadcrumbRoutes: (pathname: string, startSegment: string) => any[];
|
|
8
|
+
//# sourceMappingURL=breadcrumbUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Breadcrumbs/breadcrumbUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,EAAE,cAAc,MAAM,KAAG,GAAG,EAoDpF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate breadcrumb routes from pathname
|
|
3
|
+
* Parses URL structure and creates semantic breadcrumb items
|
|
4
|
+
* @param pathname - The current pathname
|
|
5
|
+
* @param startSegment - The route segment where breadcrumbs should start displaying
|
|
6
|
+
*/
|
|
7
|
+
const generateBreadcrumbRoutes = (pathname, startSegment) => {
|
|
8
|
+
if (!pathname || pathname === '/') {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const segments = pathname.split('/').filter(Boolean);
|
|
12
|
+
const routes = [];
|
|
13
|
+
let fullPath = ''; // Track full path including org context
|
|
14
|
+
let displayStartIndex = 0; // Where to start building visible breadcrumbs
|
|
15
|
+
const isId = segment => {
|
|
16
|
+
// MongoDB ObjectId, UUID, numeric ID
|
|
17
|
+
return /^([0-9a-f]{24}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|\d+)$/i.test(segment);
|
|
18
|
+
};
|
|
19
|
+
// Find where the start segment begins
|
|
20
|
+
const startIndex = segments.findIndex(seg => seg === startSegment);
|
|
21
|
+
if (startIndex >= 0) {
|
|
22
|
+
displayStartIndex = startIndex;
|
|
23
|
+
}
|
|
24
|
+
// Build full path and breadcrumbs
|
|
25
|
+
for (let i = 0; i < segments.length; i++) {
|
|
26
|
+
const segment = segments[i];
|
|
27
|
+
fullPath += `/${segment}`;
|
|
28
|
+
// Only add breadcrumb items from start segment onwards
|
|
29
|
+
if (i < displayStartIndex) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
// Skip pure IDs in breadcrumb display, but continue building path
|
|
33
|
+
if (isId(segment)) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
// Format segment name: kebab-case to Title Case
|
|
37
|
+
const label = segment.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
|
38
|
+
// Add route if we have a label
|
|
39
|
+
if (label) {
|
|
40
|
+
routes.push({
|
|
41
|
+
path: fullPath,
|
|
42
|
+
// Use full path including org context
|
|
43
|
+
breadcrumbName: label
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return routes;
|
|
48
|
+
};export{generateBreadcrumbRoutes};//# sourceMappingURL=breadcrumbUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbUtils.js","sources":["../../../../src/components/Layout/Breadcrumbs/breadcrumbUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;MACU,wBAAwB,GAAG,CAAC,QAAgB,EAAE,YAAoB,KAAW;AACtF,EAAA,IAAA,CAAA,QAAK,IAAQ,aAAY,GAAK,EAAG;AAC7B,IAAA,OAAA,EAAA;;AAGJ,EAAA,MAAA,QAAM,GAAQ,QAAG,CAAA,KAAS,CAAA,GAAM,CAAA,CAAG,MAAE,CAAA,OAAO,CAAA;QAC5C,MAAM,GAAM,EAAU;AACtB,EAAA,IAAA,QAAI,GAAQ,EAAG,CAAA;AACf,EAAA,IAAA,iBAAI,GAAiB,CAAA,CAAG;AAExB,EAAA,MAAA,IAAM,GAAI,OAAI;;AAEV,IAAA,OAAA,yFAA4F,CAAA,OAAK,CAAA;AACrG,EAAA,CAAA;;AAGA,EAAA,MAAA,UAAM,GAAU,QAAG,CAAA,aAAoB,IAAG,GAAI,KAAI,YAAK,CAAA;AACvD,EAAA,IAAA,UAAI,IAAU,CAAA,EAAK;qBACf,GAAA;;;AAIJ,EAAA,KAAA,IAAK,CAAA,GAAK,CAAA,EAAI,IAAG,QAAG,CAAA,MAAS,EAAM,CAAA,EAAG,EAAE;AACpC,IAAA,MAAA,kBAAgB,CAAA,CAAA,CAAA;AAChB,IAAA,QAAA,IAAQ,CAAA,CAAA,EAAI,OAAI,CAAA,CAAA;;AAGhB,IAAA,IAAA,CAAA,GAAI,iBAAI,EAAA;;;;AAKR,IAAA,IAAA,IAAI,CAAA,OAAK,CAAA,EAAA;;;;UAKT,KAAM,GAAA,OAAQ,CAAA,KAAO,CAAA,GAAA,CAAA,CAAA,GAAA,CAAA,IAAA,IAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,WAAA,EAAA,GAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,GAAA,CAAA;;aAEhB,EAAA;aACA,IAAI,CAAC;QAEV,IAAA,EAAA,QAAA;;wBAEgB;;AAER,IAAA;AACH,EAAA;SACJ,MAAA;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-layout/tailwind-design-pro",
|
|
3
|
-
"version": "12.2.3-alpha.
|
|
3
|
+
"version": "12.2.3-alpha.8",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"watch": "yarn build:lib:watch"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@admin-layout/assets": "12.2.3-alpha.
|
|
25
|
-
"@admin-layout/client": "12.2.3-alpha.
|
|
26
|
-
"@admin-layout/tailwind-ui": "12.2.3-alpha.
|
|
24
|
+
"@admin-layout/assets": "12.2.3-alpha.8",
|
|
25
|
+
"@admin-layout/client": "12.2.3-alpha.8",
|
|
26
|
+
"@admin-layout/tailwind-ui": "12.2.3-alpha.8",
|
|
27
27
|
"react-favicon": "^0.0.23",
|
|
28
28
|
"react-intl": "^6.1.1",
|
|
29
29
|
"react-responsive": "^10.0.0"
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"typescript": {
|
|
54
54
|
"definition": "lib/index.d.ts"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "eb2e2cf5ddface688075d5182dec2090a492ccb0"
|
|
57
57
|
}
|