@asteby/metacore-app-providers 0.2.0 → 0.5.0
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/metacore-app-shell.d.ts +22 -0
- package/dist/metacore-app-shell.d.ts.map +1 -0
- package/dist/metacore-app-shell.js +66 -0
- package/dist/metacore-app-shell.js.map +1 -0
- package/dist/platform-config-provider.d.ts +40 -0
- package/dist/platform-config-provider.d.ts.map +1 -0
- package/dist/platform-config-provider.js +178 -0
- package/dist/platform-config-provider.js.map +1 -0
- package/package.json +23 -4
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,6 @@ export { FontProvider, useFont, type FontProviderProps } from './font-provider';
|
|
|
3
3
|
export { LayoutProvider, useLayout, type Collapsible, type Variant, } from './layout-provider';
|
|
4
4
|
export { SearchProvider, useSearch, type SearchProviderProps } from './search-provider';
|
|
5
5
|
export { getCookie, setCookie, removeCookie } from './cookies';
|
|
6
|
+
export { PlatformConfigProvider, usePlatformConfig, applyBranding, applyCachedBranding, FALLBACK_BRANDING, type PlatformBranding, type BrandingFetcher, type PlatformConfigProviderProps, } from './platform-config-provider';
|
|
7
|
+
export { MetacoreAppShell, type MetacoreAppShellProps, } from './metacore-app-shell';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,cAAc,EACd,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,OAAO,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,cAAc,EACd,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,OAAO,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,2BAA2B,GACjC,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,4 +3,6 @@ export { FontProvider, useFont } from './font-provider';
|
|
|
3
3
|
export { LayoutProvider, useLayout, } from './layout-provider';
|
|
4
4
|
export { SearchProvider, useSearch } from './search-provider';
|
|
5
5
|
export { getCookie, setCookie, removeCookie } from './cookies';
|
|
6
|
+
export { PlatformConfigProvider, usePlatformConfig, applyBranding, applyCachedBranding, FALLBACK_BRANDING, } from './platform-config-provider';
|
|
7
|
+
export { MetacoreAppShell, } from './metacore-app-shell';
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,OAAO,EAA0B,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,cAAc,EACd,SAAS,GAGV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,SAAS,EAA4B,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAkB,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,OAAO,EAA0B,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EACL,cAAc,EACd,SAAS,GAGV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,SAAS,EAA4B,MAAM,mBAAmB,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAIlB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,gBAAgB,GAEjB,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface MetacoreAppShellProps {
|
|
3
|
+
/** Axios-compatible API client used by ApiProvider + PWAProvider. */
|
|
4
|
+
api: any;
|
|
5
|
+
/** TanStack QueryClient instance. Optional — skipped if not supplied. */
|
|
6
|
+
queryClient?: any;
|
|
7
|
+
/** Hide the bundled <Toaster /> (e.g. when the app already mounts one). */
|
|
8
|
+
hideToaster?: boolean;
|
|
9
|
+
/** Hide the PWA install prompt button. */
|
|
10
|
+
hidePWAInstall?: boolean;
|
|
11
|
+
/** Hide the PWA update prompt button (banner that opens on a new SW). */
|
|
12
|
+
hidePWAUpdate?: boolean;
|
|
13
|
+
/** Hide the offline indicator. */
|
|
14
|
+
hideOfflineIndicator?: boolean;
|
|
15
|
+
/** Disable the metadata-cache invalidation that fires on SW updates. */
|
|
16
|
+
disableMetadataInvalidate?: boolean;
|
|
17
|
+
/** Toaster position; passed straight to sonner. */
|
|
18
|
+
toasterPosition?: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
|
|
19
|
+
children: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export declare function MetacoreAppShell({ api, queryClient, hideToaster, hidePWAInstall, hidePWAUpdate, hideOfflineIndicator, disableMetadataInvalidate, toasterPosition, children, }: MetacoreAppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=metacore-app-shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metacore-app-shell.d.ts","sourceRoot":"","sources":["../src/metacore-app-shell.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,GAAG,EAAE,GAAG,CAAA;IACR,yEAAyE;IACzE,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,wEAAwE;IACxE,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,mDAAmD;IACnD,eAAe,CAAC,EACZ,UAAU,GACV,WAAW,GACX,YAAY,GACZ,aAAa,GACb,cAAc,GACd,eAAe,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AA+BD,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,eAA6B,EAC7B,QAAQ,GACT,EAAE,qBAAqB,2CAoBvB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// MetacoreAppShell — single-line wiring of every provider an app needs to
|
|
3
|
+
// run on the metacore platform: API context, query client, PWA install +
|
|
4
|
+
// update prompts, offline indicator, toasts, and stale-while-revalidate
|
|
5
|
+
// metadata cache invalidation when a service-worker update is applied.
|
|
6
|
+
//
|
|
7
|
+
// Apps mount it once and forget about the wedding-cake of providers:
|
|
8
|
+
//
|
|
9
|
+
// import { MetacoreAppShell } from '@asteby/metacore-app-providers'
|
|
10
|
+
// import { api } from './lib/api'
|
|
11
|
+
//
|
|
12
|
+
// ReactDOM.createRoot(...).render(
|
|
13
|
+
// <MetacoreAppShell api={api} queryClient={queryClient}>
|
|
14
|
+
// <RouterProvider router={router} />
|
|
15
|
+
// </MetacoreAppShell>
|
|
16
|
+
// )
|
|
17
|
+
//
|
|
18
|
+
// Peer deps (`@asteby/metacore-pwa`, `@asteby/metacore-runtime-react`,
|
|
19
|
+
// `@asteby/metacore-ui`) are required — the shell is the full kit. Apps that
|
|
20
|
+
// want a subset wire providers directly and skip the shell.
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
import { QueryClientProvider } from '@tanstack/react-query';
|
|
23
|
+
import { ApiProvider, useMetadataCache } from '@asteby/metacore-runtime-react';
|
|
24
|
+
import { PWAProvider, PWAInstallPrompt, PWAUpdatePrompt, OfflineIndicator, usePWAContext, } from '@asteby/metacore-pwa';
|
|
25
|
+
import { Toaster } from '@asteby/metacore-ui/primitives';
|
|
26
|
+
/**
|
|
27
|
+
* Drops every cached table/modal metadata entry the moment the PWA layer
|
|
28
|
+
* tells us a new service worker has finished installing. The next mount of
|
|
29
|
+
* <DynamicTable> hits the network instead of replaying yesterday's
|
|
30
|
+
* column / filter / actions definitions.
|
|
31
|
+
*/
|
|
32
|
+
function MetadataInvalidator({ disabled }) {
|
|
33
|
+
const { needRefresh } = usePWAContext();
|
|
34
|
+
React.useEffect(() => {
|
|
35
|
+
if (disabled)
|
|
36
|
+
return;
|
|
37
|
+
if (!needRefresh)
|
|
38
|
+
return;
|
|
39
|
+
try {
|
|
40
|
+
const state = useMetadataCache.getState();
|
|
41
|
+
if (state?.cache) {
|
|
42
|
+
for (const key of Object.keys(state.cache))
|
|
43
|
+
delete state.cache[key];
|
|
44
|
+
}
|
|
45
|
+
if (state?.modalCache) {
|
|
46
|
+
for (const key of Object.keys(state.modalCache))
|
|
47
|
+
delete state.modalCache[key];
|
|
48
|
+
}
|
|
49
|
+
if (typeof state?.set === 'function') {
|
|
50
|
+
state.set({ prefetched: false });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* best-effort */
|
|
55
|
+
}
|
|
56
|
+
}, [disabled, needRefresh]);
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
export function MetacoreAppShell({ api, queryClient, hideToaster, hidePWAInstall, hidePWAUpdate, hideOfflineIndicator, disableMetadataInvalidate, toasterPosition = 'top-right', children, }) {
|
|
60
|
+
const inner = (_jsxs(ApiProvider, { client: api, children: [_jsxs(PWAProvider, { api: api, children: [children, _jsx(MetadataInvalidator, { disabled: !!disableMetadataInvalidate }), !hidePWAInstall && _jsx(PWAInstallPrompt, {}), !hidePWAUpdate && _jsx(PWAUpdatePrompt, {}), !hideOfflineIndicator && _jsx(OfflineIndicator, {})] }), !hideToaster && (_jsx(Toaster, { position: toasterPosition, richColors: true, theme: 'light' }))] }));
|
|
61
|
+
if (queryClient) {
|
|
62
|
+
return _jsx(QueryClientProvider, { client: queryClient, children: inner });
|
|
63
|
+
}
|
|
64
|
+
return inner;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=metacore-app-shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metacore-app-shell.js","sourceRoot":"","sources":["../src/metacore-app-shell.tsx"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,qEAAqE;AACrE,EAAE;AACF,sEAAsE;AACtE,oCAAoC;AACpC,EAAE;AACF,qCAAqC;AACrC,6DAA6D;AAC7D,2CAA2C;AAC3C,0BAA0B;AAC1B,MAAM;AACN,EAAE;AACF,uEAAuE;AACvE,6EAA6E;AAC7E,4DAA4D;AAC5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AA4BxD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAyB;IAC9D,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,EAAE,CAAA;IACvC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,OAAM;QACpB,IAAI,CAAC,WAAW;YAAE,OAAM;QACxB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,EAAS,CAAA;YAChD,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;gBACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACrE,CAAC;YACD,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;gBACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;oBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAC/E,CAAC;YACD,IAAI,OAAO,KAAK,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;gBACrC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,GAAG,EACH,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,GAAG,WAAW,EAC7B,QAAQ,GACc;IACtB,MAAM,KAAK,GAAG,CACZ,MAAC,WAAW,IAAC,MAAM,EAAE,GAAG,aACtB,MAAC,WAAW,IAAC,GAAG,EAAE,GAAG,aAClB,QAAQ,EACT,KAAC,mBAAmB,IAAC,QAAQ,EAAE,CAAC,CAAC,yBAAyB,GAAI,EAC7D,CAAC,cAAc,IAAI,KAAC,gBAAgB,KAAG,EACvC,CAAC,aAAa,IAAI,KAAC,eAAe,KAAG,EACrC,CAAC,oBAAoB,IAAI,KAAC,gBAAgB,KAAG,IAClC,EACb,CAAC,WAAW,IAAI,CACf,KAAC,OAAO,IAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,QAAC,KAAK,EAAC,OAAO,GAAG,CAChE,IACW,CACf,CAAA;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,KAAK,GAAuB,CAAA;IAChF,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface PlatformBranding {
|
|
3
|
+
platform_name: string;
|
|
4
|
+
platform_logo: string;
|
|
5
|
+
primary_color: string;
|
|
6
|
+
accent_color: string;
|
|
7
|
+
favicon_url: string;
|
|
8
|
+
support_email: string;
|
|
9
|
+
support_url: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const FALLBACK_BRANDING: PlatformBranding;
|
|
12
|
+
interface PlatformConfigContextType extends PlatformBranding {
|
|
13
|
+
refetch: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function applyBranding(data: Partial<PlatformBranding>, defaults?: PlatformBranding): void;
|
|
16
|
+
export declare function applyCachedBranding(storageKey?: string): void;
|
|
17
|
+
export type BrandingFetcher = () => Promise<Partial<PlatformBranding>>;
|
|
18
|
+
export interface PlatformConfigProviderProps {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Fetches the current tenant's branding. Apps wire their own transport
|
|
22
|
+
* (axios, fetch, ofetch). Resolve to a partial — the provider merges over
|
|
23
|
+
* `defaults`. Reject to fall back to defaults.
|
|
24
|
+
*/
|
|
25
|
+
fetcher: BrandingFetcher;
|
|
26
|
+
/**
|
|
27
|
+
* Defaults applied when the fetcher hasn't resolved yet OR when it returns
|
|
28
|
+
* empty fields. Apps pass their static brand (name, primary color) as the
|
|
29
|
+
* baseline so the UI never paints with FALLBACK_BRANDING's empty name.
|
|
30
|
+
*/
|
|
31
|
+
defaults?: PlatformBranding;
|
|
32
|
+
/** TanStack Query staleTime, defaults to 5 minutes. */
|
|
33
|
+
staleTime?: number;
|
|
34
|
+
/** localStorage key for the persisted branding cache. */
|
|
35
|
+
storageKey?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function PlatformConfigProvider({ children, fetcher, defaults, staleTime, storageKey, }: PlatformConfigProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export declare function usePlatformConfig(): PlatformConfigContextType;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=platform-config-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-config-provider.d.ts","sourceRoot":"","sources":["../src/platform-config-provider.tsx"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAGd,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,gBAQ/B,CAAA;AAED,UAAU,yBAA0B,SAAQ,gBAAgB;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAiGD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAC/B,QAAQ,GAAE,gBAAoC,QAqB/C;AAOD,wBAAgB,mBAAmB,CAAC,UAAU,GAAE,MAAoB,QAQnE;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;AAEtE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;OAIG;IACH,OAAO,EAAE,eAAe,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,OAAO,EACP,QAA4B,EAC5B,SAAyB,EACzB,UAAwB,GACzB,EAAE,2BAA2B,2CA8C7B;AAED,wBAAgB,iBAAiB,8BAEhC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Centralized branding/theming for any metacore app. Apps fetch their tenant
|
|
3
|
+
// branding (name, logo, primary color) from a backend endpoint they own; this
|
|
4
|
+
// provider caches it, applies CSS variables to <html>, persists in
|
|
5
|
+
// localStorage so subsequent loads paint the right brand pre-React, and
|
|
6
|
+
// re-applies on dark/light toggles.
|
|
7
|
+
//
|
|
8
|
+
// Decoupled from the app: callers pass a `fetcher` (any async function returning
|
|
9
|
+
// a partial branding payload). No axios/api imports here — apps wire whatever
|
|
10
|
+
// transport they already use (axios, fetch, ofetch, etc.).
|
|
11
|
+
import { createContext, useContext, useEffect, } from 'react';
|
|
12
|
+
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
13
|
+
export const FALLBACK_BRANDING = {
|
|
14
|
+
platform_name: '',
|
|
15
|
+
platform_logo: '',
|
|
16
|
+
primary_color: '#6366f1',
|
|
17
|
+
accent_color: '#8b5cf6',
|
|
18
|
+
favicon_url: '',
|
|
19
|
+
support_email: '',
|
|
20
|
+
support_url: '',
|
|
21
|
+
};
|
|
22
|
+
const PlatformConfigContext = createContext({
|
|
23
|
+
...FALLBACK_BRANDING,
|
|
24
|
+
refetch: () => { },
|
|
25
|
+
});
|
|
26
|
+
// sRGB hex (#rrggbb) → CSS oklch() string. Returns null on bad input.
|
|
27
|
+
function hexToOklch(hex) {
|
|
28
|
+
if (!hex || !hex.startsWith('#'))
|
|
29
|
+
return null;
|
|
30
|
+
const r = parseInt(hex.slice(1, 3), 16) / 255;
|
|
31
|
+
const g = parseInt(hex.slice(3, 5), 16) / 255;
|
|
32
|
+
const b = parseInt(hex.slice(5, 7), 16) / 255;
|
|
33
|
+
const toLinear = (c) => c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
|
|
34
|
+
const lr = toLinear(r), lg = toLinear(g), lb = toLinear(b);
|
|
35
|
+
const l_ = 0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb;
|
|
36
|
+
const m_ = 0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb;
|
|
37
|
+
const s_ = 0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb;
|
|
38
|
+
const l = Math.cbrt(l_), m = Math.cbrt(m_), s = Math.cbrt(s_);
|
|
39
|
+
const L = 0.2104542553 * l + 0.7936177850 * m - 0.0040720468 * s;
|
|
40
|
+
const a = 1.9779984951 * l - 2.4285922050 * m + 0.4505937099 * s;
|
|
41
|
+
const bOk = 0.0259040371 * l + 0.7827717662 * m - 0.8086757660 * s;
|
|
42
|
+
const C = Math.sqrt(a * a + bOk * bOk);
|
|
43
|
+
let h = Math.atan2(bOk, a) * (180 / Math.PI);
|
|
44
|
+
if (h < 0)
|
|
45
|
+
h += 360;
|
|
46
|
+
return `oklch(${L.toFixed(4)} ${C.toFixed(4)} ${h.toFixed(4)})`;
|
|
47
|
+
}
|
|
48
|
+
function generateThemeVars(primaryHex, accentHex) {
|
|
49
|
+
const primary = hexToOklch(primaryHex);
|
|
50
|
+
const accent = hexToOklch(accentHex);
|
|
51
|
+
if (!primary || !accent)
|
|
52
|
+
return null;
|
|
53
|
+
const parseOklch = (s) => {
|
|
54
|
+
const m = s.match(/oklch\(([\d.]+)\s+([\d.]+)\s+([\d.]+)\)/);
|
|
55
|
+
if (!m || !m[1] || !m[2] || !m[3])
|
|
56
|
+
return null;
|
|
57
|
+
return { l: parseFloat(m[1]), c: parseFloat(m[2]), h: parseFloat(m[3]) };
|
|
58
|
+
};
|
|
59
|
+
const p = parseOklch(primary);
|
|
60
|
+
if (!p)
|
|
61
|
+
return null;
|
|
62
|
+
const isDark = document.documentElement.classList.contains('dark');
|
|
63
|
+
const vars = {};
|
|
64
|
+
if (isDark) {
|
|
65
|
+
vars['--primary'] = `oklch(${(p.l + 0.05).toFixed(4)} ${p.c.toFixed(4)} ${p.h.toFixed(4)})`;
|
|
66
|
+
vars['--ring'] = vars['--primary'];
|
|
67
|
+
vars['--sidebar-primary'] = vars['--primary'];
|
|
68
|
+
vars['--sidebar-accent-foreground'] = vars['--primary'];
|
|
69
|
+
vars['--sidebar-ring'] = vars['--primary'];
|
|
70
|
+
vars['--chart-2'] = vars['--primary'];
|
|
71
|
+
vars['--secondary'] = `oklch(0.29 0.02 ${p.h.toFixed(4)})`;
|
|
72
|
+
vars['--muted'] = `oklch(0.29 0.02 ${p.h.toFixed(4)})`;
|
|
73
|
+
vars['--accent'] = `oklch(0.28 0.05 ${p.h.toFixed(4)})`;
|
|
74
|
+
vars['--accent-foreground'] = `oklch(0.80 0.10 ${p.h.toFixed(4)})`;
|
|
75
|
+
vars['--border'] = `oklch(0.33 0.02 ${p.h.toFixed(4)})`;
|
|
76
|
+
vars['--input'] = `oklch(0.33 0.02 ${p.h.toFixed(4)})`;
|
|
77
|
+
vars['--background'] = `oklch(0.22 0.01 ${p.h.toFixed(4)})`;
|
|
78
|
+
vars['--card'] = `oklch(0.24 0.01 ${p.h.toFixed(4)})`;
|
|
79
|
+
vars['--popover'] = `oklch(0.24 0.01 ${p.h.toFixed(4)})`;
|
|
80
|
+
vars['--sidebar'] = `oklch(0.20 0.01 ${p.h.toFixed(4)})`;
|
|
81
|
+
vars['--sidebar-accent'] = `oklch(0.29 0.02 ${p.h.toFixed(4)})`;
|
|
82
|
+
vars['--sidebar-border'] = `oklch(0.33 0.02 ${p.h.toFixed(4)})`;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
vars['--primary'] = primary;
|
|
86
|
+
vars['--ring'] = `oklch(0 0 0)`;
|
|
87
|
+
vars['--sidebar-primary'] = `oklch(0 0 0)`;
|
|
88
|
+
vars['--chart-2'] = primary;
|
|
89
|
+
vars['--secondary'] = `oklch(0.9540 0.0063 ${p.h.toFixed(4)})`;
|
|
90
|
+
vars['--accent'] = `oklch(0.94 0.03 ${p.h.toFixed(4)})`;
|
|
91
|
+
vars['--accent-foreground'] = `oklch(0.5445 0.1903 ${p.h.toFixed(4)})`;
|
|
92
|
+
vars['--border'] = `oklch(0.9300 0.0094 ${p.h.toFixed(4)})`;
|
|
93
|
+
vars['--sidebar'] = `oklch(0.9777 0.0051 ${p.h.toFixed(4)})`;
|
|
94
|
+
}
|
|
95
|
+
return vars;
|
|
96
|
+
}
|
|
97
|
+
function applyThemeVars(vars) {
|
|
98
|
+
const root = document.documentElement;
|
|
99
|
+
for (const [key, value] of Object.entries(vars)) {
|
|
100
|
+
root.style.setProperty(key, value);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export function applyBranding(data, defaults = FALLBACK_BRANDING) {
|
|
104
|
+
if (data.primary_color || data.accent_color) {
|
|
105
|
+
const vars = generateThemeVars(data.primary_color || defaults.primary_color, data.accent_color || defaults.accent_color);
|
|
106
|
+
if (vars)
|
|
107
|
+
applyThemeVars(vars);
|
|
108
|
+
}
|
|
109
|
+
if (data.platform_name) {
|
|
110
|
+
document.title = data.platform_name;
|
|
111
|
+
}
|
|
112
|
+
const root = document.documentElement;
|
|
113
|
+
if (data.primary_color) {
|
|
114
|
+
root.style.setProperty('--brand-primary', data.primary_color);
|
|
115
|
+
}
|
|
116
|
+
if (data.accent_color) {
|
|
117
|
+
root.style.setProperty('--brand-accent', data.accent_color);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const STORAGE_KEY = 'platform-branding';
|
|
121
|
+
// Paint cached branding before React mounts so the initial frame matches the
|
|
122
|
+
// tenant theme. Safe to call on module import — guarded by try/catch and
|
|
123
|
+
// browser-only checks.
|
|
124
|
+
export function applyCachedBranding(storageKey = STORAGE_KEY) {
|
|
125
|
+
if (typeof window === 'undefined')
|
|
126
|
+
return;
|
|
127
|
+
try {
|
|
128
|
+
const cached = window.localStorage.getItem(storageKey);
|
|
129
|
+
if (cached)
|
|
130
|
+
applyBranding(JSON.parse(cached));
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// ignore — corrupted JSON or quota errors aren't fatal
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export function PlatformConfigProvider({ children, fetcher, defaults = FALLBACK_BRANDING, staleTime = 5 * 60 * 1000, storageKey = STORAGE_KEY, }) {
|
|
137
|
+
const queryClient = useQueryClient();
|
|
138
|
+
const { data: branding } = useQuery({
|
|
139
|
+
queryKey: ['platform-branding', storageKey],
|
|
140
|
+
queryFn: async () => {
|
|
141
|
+
const res = await fetcher();
|
|
142
|
+
return { ...defaults, ...res };
|
|
143
|
+
},
|
|
144
|
+
staleTime,
|
|
145
|
+
retry: 1,
|
|
146
|
+
});
|
|
147
|
+
const current = branding || defaults;
|
|
148
|
+
useEffect(() => {
|
|
149
|
+
if (branding) {
|
|
150
|
+
applyBranding(branding, defaults);
|
|
151
|
+
try {
|
|
152
|
+
window.localStorage.setItem(storageKey, JSON.stringify(branding));
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// ignore quota errors
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}, [branding, defaults, storageKey]);
|
|
159
|
+
useEffect(() => {
|
|
160
|
+
const observer = new MutationObserver(() => {
|
|
161
|
+
if (current.primary_color)
|
|
162
|
+
applyBranding(current, defaults);
|
|
163
|
+
});
|
|
164
|
+
observer.observe(document.documentElement, {
|
|
165
|
+
attributes: true,
|
|
166
|
+
attributeFilter: ['class'],
|
|
167
|
+
});
|
|
168
|
+
return () => observer.disconnect();
|
|
169
|
+
}, [current, defaults]);
|
|
170
|
+
const refetch = () => {
|
|
171
|
+
queryClient.invalidateQueries({ queryKey: ['platform-branding', storageKey] });
|
|
172
|
+
};
|
|
173
|
+
return (_jsx(PlatformConfigContext, { value: { ...current, refetch }, children: children }));
|
|
174
|
+
}
|
|
175
|
+
export function usePlatformConfig() {
|
|
176
|
+
return useContext(PlatformConfigContext);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=platform-config-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-config-provider.js","sourceRoot":"","sources":["../src/platform-config-provider.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@asteby/metacore-app-providers",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Providers genéricos reutilizables para apps metacore (direction, font, layout, search)",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Providers genéricos reutilizables para apps metacore (direction, font, layout, search, platform-config)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -23,16 +23,35 @@
|
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@radix-ui/react-direction": "^1.1.0",
|
|
26
|
+
"@tanstack/react-query": ">=5",
|
|
26
27
|
"react": ">=18",
|
|
27
|
-
"react-dom": ">=18"
|
|
28
|
+
"react-dom": ">=18",
|
|
29
|
+
"@asteby/metacore-pwa": ">=0.3.1",
|
|
30
|
+
"@asteby/metacore-runtime-react": ">=7.1.5",
|
|
31
|
+
"@asteby/metacore-ui": ">=0.7"
|
|
32
|
+
},
|
|
33
|
+
"peerDependenciesMeta": {
|
|
34
|
+
"@asteby/metacore-pwa": {
|
|
35
|
+
"optional": true
|
|
36
|
+
},
|
|
37
|
+
"@asteby/metacore-runtime-react": {
|
|
38
|
+
"optional": true
|
|
39
|
+
},
|
|
40
|
+
"@asteby/metacore-ui": {
|
|
41
|
+
"optional": true
|
|
42
|
+
}
|
|
28
43
|
},
|
|
29
44
|
"devDependencies": {
|
|
30
45
|
"@radix-ui/react-direction": "^1.1.1",
|
|
46
|
+
"@tanstack/react-query": "^5.59.0",
|
|
31
47
|
"@types/react": "^19.0.0",
|
|
32
48
|
"@types/react-dom": "^19.0.0",
|
|
33
49
|
"react": "^19.2.4",
|
|
34
50
|
"react-dom": "^19.2.4",
|
|
35
|
-
"typescript": "^5.6.0"
|
|
51
|
+
"typescript": "^5.6.0",
|
|
52
|
+
"@asteby/metacore-pwa": "0.3.1",
|
|
53
|
+
"@asteby/metacore-runtime-react": "7.1.5",
|
|
54
|
+
"@asteby/metacore-ui": "0.7.0"
|
|
36
55
|
},
|
|
37
56
|
"publishConfig": {
|
|
38
57
|
"access": "public"
|