@nanisoft/prism-ui 0.2.0 → 0.4.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/blocks/index.d.ts +2 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +2 -0
- package/dist/blocks/index.js.map +1 -1
- package/dist/blocks/site-footer/SiteFooter.d.ts +26 -0
- package/dist/blocks/site-footer/SiteFooter.d.ts.map +1 -0
- package/dist/blocks/site-footer/SiteFooter.js +10 -0
- package/dist/blocks/site-footer/SiteFooter.js.map +1 -0
- package/dist/blocks/site-footer/index.d.ts +2 -0
- package/dist/blocks/site-footer/index.d.ts.map +1 -0
- package/dist/blocks/site-footer/index.js +2 -0
- package/dist/blocks/site-footer/index.js.map +1 -0
- package/dist/blocks/site-header/SiteHeader.d.ts +19 -0
- package/dist/blocks/site-header/SiteHeader.d.ts.map +1 -0
- package/dist/blocks/site-header/SiteHeader.js +32 -0
- package/dist/blocks/site-header/SiteHeader.js.map +1 -0
- package/dist/blocks/site-header/index.d.ts +2 -0
- package/dist/blocks/site-header/index.d.ts.map +1 -0
- package/dist/blocks/site-header/index.js +2 -0
- package/dist/blocks/site-header/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/products/ProductDot.d.ts +7 -0
- package/dist/products/ProductDot.d.ts.map +1 -0
- package/dist/products/ProductDot.js +7 -0
- package/dist/products/ProductDot.js.map +1 -0
- package/dist/products/index.d.ts +22 -0
- package/dist/products/index.d.ts.map +1 -0
- package/dist/products/index.js +72 -0
- package/dist/products/index.js.map +1 -0
- package/dist/provider/PrismThemeMode.d.ts +17 -0
- package/dist/provider/PrismThemeMode.d.ts.map +1 -0
- package/dist/provider/PrismThemeMode.js +61 -0
- package/dist/provider/PrismThemeMode.js.map +1 -0
- package/dist/provider/index.d.ts +1 -0
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +1 -0
- package/dist/provider/index.js.map +1 -1
- package/dist/styles.css +300 -1
- package/dist/theming/bake.d.ts +24 -0
- package/dist/theming/bake.d.ts.map +1 -0
- package/dist/theming/bake.js +78 -0
- package/dist/theming/bake.js.map +1 -0
- package/dist/theming/bootScript.d.ts +9 -0
- package/dist/theming/bootScript.d.ts.map +1 -0
- package/dist/theming/bootScript.js +27 -0
- package/dist/theming/bootScript.js.map +1 -0
- package/dist/theming/index.d.ts +4 -0
- package/dist/theming/index.d.ts.map +1 -0
- package/dist/theming/index.js +8 -0
- package/dist/theming/index.js.map +1 -0
- package/dist/theming/storage.d.ts +5 -0
- package/dist/theming/storage.d.ts.map +1 -0
- package/dist/theming/storage.js +11 -0
- package/dist/theming/storage.js.map +1 -0
- package/dist/wrapped-registry.d.ts.map +1 -1
- package/dist/wrapped-registry.js +4 -0
- package/dist/wrapped-registry.js.map +1 -1
- package/package.json +11 -2
package/dist/blocks/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { ComponentDemo, type ComponentDemoProps } from './component-demo/index.js';
|
|
2
2
|
export { PageHeader, type PageHeaderProps } from './page-header/index.js';
|
|
3
|
+
export { SiteHeader, type SiteHeaderProps, type PrismNavLink } from './site-header/index.js';
|
|
4
|
+
export { SiteFooter, type SiteFooterProps, type SiteFooterColumn, type SiteFooterSocialLink, } from './site-footer/index.js';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC"}
|
package/dist/blocks/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// prism-ui blocks barrel — pre-composed components, npm-delivered, never copied.
|
|
2
2
|
export { ComponentDemo } from './component-demo/index.js';
|
|
3
3
|
export { PageHeader } from './page-header/index.js';
|
|
4
|
+
export { SiteHeader } from './site-header/index.js';
|
|
5
|
+
export { SiteFooter, } from './site-footer/index.js';
|
|
4
6
|
//# sourceMappingURL=index.js.map
|
package/dist/blocks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,aAAa,EAA2B,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAE,aAAa,EAA2B,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAwB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAA2C,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EACL,UAAU,GAIX,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type PrismProductId } from '../../products/index.js';
|
|
3
|
+
import type { PrismNavLink } from '../site-header/index.js';
|
|
4
|
+
export interface SiteFooterColumn {
|
|
5
|
+
title: string;
|
|
6
|
+
links: readonly PrismNavLink[];
|
|
7
|
+
}
|
|
8
|
+
export interface SiteFooterSocialLink {
|
|
9
|
+
label: string;
|
|
10
|
+
url: string;
|
|
11
|
+
/** App-supplied icon — take it from the @nanisoft/prism-ui/icons re-export. */
|
|
12
|
+
icon: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export interface SiteFooterProps {
|
|
15
|
+
/** The site's registry id — marks the current product in the grid. */
|
|
16
|
+
site: PrismProductId;
|
|
17
|
+
/** Site-declared link columns, rendered beside the product grid. */
|
|
18
|
+
columns?: readonly SiteFooterColumn[];
|
|
19
|
+
/** Social links with app-supplied icons. */
|
|
20
|
+
social?: readonly SiteFooterSocialLink[];
|
|
21
|
+
/** Overrides the default "© NaniSoft" line. */
|
|
22
|
+
legal?: ReactNode;
|
|
23
|
+
className?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function SiteFooter({ site, columns, social, legal, className }: SiteFooterProps): ReactNode;
|
|
26
|
+
//# sourceMappingURL=SiteFooter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteFooter.d.ts","sourceRoot":"","sources":["../../../src/blocks/site-footer/SiteFooter.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,IAAI,EAAE,cAAc,CAAC;IACrB,oEAAoE;IACpE,OAAO,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACtC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,SAAS,CAkElG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { prismProducts } from '../../products/index.js';
|
|
4
|
+
import { ProductDot } from '../../products/ProductDot.js';
|
|
5
|
+
import { usePrismLink } from '../../provider/index.js';
|
|
6
|
+
export function SiteFooter({ site, columns, social, legal, className }) {
|
|
7
|
+
const Link = usePrismLink();
|
|
8
|
+
return (_jsx("footer", { className: ['prism-site-footer', className].filter(Boolean).join(' '), "data-prism": "site-footer", children: _jsxs("div", { className: "prism-site-footer__inner", children: [_jsx("div", { className: "prism-site-footer__products", "data-prism": "site-footer-products", children: prismProducts.map((product) => (_jsx(Link, { href: product.url, children: _jsxs("span", { className: "prism-site-footer__product", "data-prism": "site-footer-product", "data-product": product.id, "data-current": product.id === site ? 'true' : undefined, children: [_jsxs("span", { className: "prism-site-footer__product-head", children: [_jsx(ProductDot, { product: product }), _jsx("span", { className: "prism-site-footer__product-name", children: product.name })] }), _jsx("span", { className: "prism-site-footer__product-tagline", children: product.tagline })] }) }, product.id))) }), columns?.length ? (_jsx("nav", { className: "prism-site-footer__columns", children: columns.map((column) => (_jsxs("div", { className: "prism-site-footer__column", children: [_jsx("h3", { className: "prism-site-footer__column-title", children: column.title }), column.links.map((link) => (_jsx(Link, { href: link.url, children: link.label }, link.url)))] }, column.title))) })) : null, _jsxs("div", { className: "prism-site-footer__base", children: [social?.length ? (_jsx("div", { className: "prism-site-footer__social", children: social.map((entry) => (_jsx(Link, { href: entry.url, children: _jsxs("span", { className: "prism-site-footer__social-link", title: entry.label, children: [_jsx("span", { "aria-hidden": "true", children: entry.icon }), _jsx("span", { className: "prism-visually-hidden", children: entry.label })] }) }, entry.url))) })) : null, _jsx("div", { className: "prism-site-footer__legal", children: legal ?? _jsx("span", { children: "\u00A9 NaniSoft" }) })] })] }) }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=SiteFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteFooter.js","sourceRoot":"","sources":["../../../src/blocks/site-footer/SiteFooter.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAWb,OAAO,EAAE,aAAa,EAAuB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA2BvD,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAmB;IACrF,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5B,OAAO,CACL,iBACE,SAAS,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAC1D,aAAa,YAExB,eAAK,SAAS,EAAC,0BAA0B,aACvC,cAAK,SAAS,EAAC,6BAA6B,gBAAY,sBAAsB,YAC3E,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAG9B,KAAC,IAAI,IAAkB,IAAI,EAAE,OAAO,CAAC,GAAG,YACtC,gBACE,SAAS,EAAC,4BAA4B,gBAC3B,qBAAqB,kBAClB,OAAO,CAAC,EAAE,kBACV,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,aAEtD,gBAAM,SAAS,EAAC,iCAAiC,aAC/C,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,GAAI,EAChC,eAAM,SAAS,EAAC,iCAAiC,YAAE,OAAO,CAAC,IAAI,GAAQ,IAClE,EACP,eAAM,SAAS,EAAC,oCAAoC,YAAE,OAAO,CAAC,OAAO,GAAQ,IACxE,IAZE,OAAO,CAAC,EAAE,CAad,CACR,CAAC,GACE,EAEL,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CACjB,cAAK,SAAS,EAAC,4BAA4B,YACxC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,eAAwB,SAAS,EAAC,2BAA2B,aAC3D,aAAI,SAAS,EAAC,iCAAiC,YAAE,MAAM,CAAC,KAAK,GAAM,EAClE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,KAAC,IAAI,IAAgB,IAAI,EAAE,IAAI,CAAC,GAAG,YAChC,IAAI,CAAC,KAAK,IADF,IAAI,CAAC,GAAG,CAEZ,CACR,CAAC,KANM,MAAM,CAAC,KAAK,CAOhB,CACP,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,yBAAyB,aACrC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAChB,cAAK,SAAS,EAAC,2BAA2B,YACvC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,IAAI,IAAiB,IAAI,EAAE,KAAK,CAAC,GAAG,YAInC,gBAAM,SAAS,EAAC,gCAAgC,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,aACjE,8BAAkB,MAAM,YAAE,KAAK,CAAC,IAAI,GAAQ,EAC5C,eAAM,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,KAAK,GAAQ,IACvD,IAPE,KAAK,CAAC,GAAG,CAQb,CACR,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,EACR,cAAK,SAAS,EAAC,0BAA0B,YAAE,KAAK,IAAI,6CAAuB,GAAO,IAC9E,IACF,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/site-footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/site-footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAIX,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PrismProductId } from '../../products/index.js';
|
|
3
|
+
export interface PrismNavLink {
|
|
4
|
+
label: string;
|
|
5
|
+
url: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SiteHeaderProps {
|
|
8
|
+
/** The site's registry id — identity is static and known at build time. */
|
|
9
|
+
site: PrismProductId;
|
|
10
|
+
/** Lean site nav, rendered between the brand and the actions. */
|
|
11
|
+
nav?: readonly PrismNavLink[];
|
|
12
|
+
/** Right-pinned call to action, before the switcher. */
|
|
13
|
+
cta?: ReactNode;
|
|
14
|
+
/** Sticky by default; pass false to pin the header static. */
|
|
15
|
+
sticky?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function SiteHeader({ site, nav, cta, sticky, className }: SiteHeaderProps): ReactNode;
|
|
19
|
+
//# sourceMappingURL=SiteHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteHeader.d.ts","sourceRoot":"","sources":["../../../src/blocks/site-header/SiteHeader.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,IAAI,EAAE,cAAc,CAAC;IACrB,iEAAiE;IACjE,GAAG,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC9B,wDAAwD;IACxD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAa,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,SAAS,CA+GnG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
// SiteHeader (ADR-0006 §1): the one header a site wears everywhere — landing
|
|
4
|
+
// and docs alike. Identity by registry id as a plain prop; nav is lean
|
|
5
|
+
// { label, url } through usePrismLink; optional right-pinned CTA; sticky by
|
|
6
|
+
// default. Built in and not prop-configurable: the product switcher, the
|
|
7
|
+
// theme-mode toggle, and the mobile drawer. One header, no variants.
|
|
8
|
+
import { AppstoreOutlined, DownOutlined, MenuOutlined, MoonOutlined, SunOutlined } from '@ant-design/icons';
|
|
9
|
+
import { Button, Drawer, Dropdown } from 'antd';
|
|
10
|
+
import { useState } from 'react';
|
|
11
|
+
import { prismProducts } from '../../products/index.js';
|
|
12
|
+
import { ProductDot } from '../../products/ProductDot.js';
|
|
13
|
+
import { usePrismLink, usePrismThemeMode } from '../../provider/index.js';
|
|
14
|
+
export function SiteHeader({ site, nav, cta, sticky = true, className }) {
|
|
15
|
+
const Link = usePrismLink();
|
|
16
|
+
const { mode, toggleMode } = usePrismThemeMode();
|
|
17
|
+
const [drawerOpen, setDrawerOpen] = useState(false);
|
|
18
|
+
const current = prismProducts.find((product) => product.id === site);
|
|
19
|
+
const switcherItems = prismProducts.map((product) => ({
|
|
20
|
+
key: product.id,
|
|
21
|
+
label: product.id === site ? (_jsxs("span", { className: "prism-site-header__switcher-current", "aria-current": "true", children: [_jsx(ProductDot, { product: product }), product.name] })) : (_jsxs(Link, { href: product.url, children: [_jsx(ProductDot, { product: product }), product.name] })),
|
|
22
|
+
}));
|
|
23
|
+
const nextMode = mode === 'dark' ? 'light' : 'beam-dark';
|
|
24
|
+
return (_jsxs("header", { className: ['prism-site-header', sticky ? null : 'prism-site-header--static', className]
|
|
25
|
+
.filter(Boolean)
|
|
26
|
+
.join(' '), "data-prism": "site-header", children: [_jsxs("div", { className: "prism-site-header__inner", children: [_jsx(Link, { href: "/", children: _jsxs("span", { className: "prism-site-header__brand", children: [_jsx(ProductDot, { product: current }), current.name] }) }), nav?.length ? (_jsx("nav", { className: "prism-site-header__nav", "aria-label": "Site", children: nav.map((entry) => (_jsx(Link, { href: entry.url, children: entry.label }, entry.url))) })) : null, _jsxs("div", { className: "prism-site-header__actions", children: [cta, _jsx(Button, { className: "prism-site-header__menu-button", type: "text", "aria-label": "Menu", icon: _jsx(MenuOutlined, {}), onClick: () => setDrawerOpen(true) }), _jsx(Dropdown, { trigger: ['click'], menu: {
|
|
27
|
+
items: switcherItems,
|
|
28
|
+
selectable: false,
|
|
29
|
+
className: 'prism-site-header__switcher',
|
|
30
|
+
}, children: _jsx(Button, { icon: _jsx(AppstoreOutlined, {}), "aria-label": "NaniSoft products", children: _jsxs("span", { className: "prism-site-header__switcher-trigger", children: [current.name, _jsx(DownOutlined, { className: "prism-site-header__switcher-caret" })] }) }) }), _jsx(Button, { type: "text", "aria-label": `Switch to ${nextMode} mode`, icon: mode === 'dark' ? _jsx(SunOutlined, {}) : _jsx(MoonOutlined, {}), onClick: toggleMode })] })] }), _jsx(Drawer, { open: drawerOpen, onClose: () => setDrawerOpen(false), title: current.name, placement: "left", className: "prism-site-header__drawer-root", children: _jsxs("div", { className: "prism-site-header__drawer", "data-prism": "site-drawer", children: [_jsx("nav", { className: "prism-site-header__drawer-nav", "aria-label": "Site", children: nav?.map((entry) => (_jsx(Link, { href: entry.url, children: entry.label }, entry.url))) }), _jsx("div", { className: "prism-site-header__drawer-products", children: prismProducts.map((product) => (_jsxs(Link, { href: product.url, children: [_jsx(ProductDot, { product: product }), product.name, product.id === site ? _jsx("span", { className: "prism-site-header__drawer-here", children: "here" }) : null] }, product.id))) })] }) })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=SiteHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SiteHeader.js","sourceRoot":"","sources":["../../../src/blocks/site-header/SiteHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/site-header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/site-header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAGX,MAAM,iBAAiB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export { PrismProvider, type PrismProviderProps } from './provider/index.js';
|
|
2
2
|
export { mergePrismTheme, toAntdTheme, isPrismTheme } from './provider/index.js';
|
|
3
3
|
export { usePrismLink, PrismLinkContextProvider, type PrismLinkContextValue } from './provider/index.js';
|
|
4
|
+
export { PrismThemeModeProvider, usePrismThemeMode, type PrismThemeModeProviderProps, type PrismThemeModeValue, } from './provider/index.js';
|
|
5
|
+
export { prismProducts, getPrismProduct, productDotBackground, type PrismProduct, type PrismProductId, } from './products/index.js';
|
|
6
|
+
export { ProductDot } from './products/ProductDot.js';
|
|
7
|
+
export { PRISM_THEME_MODE_STORAGE_KEY, parsePrismThemeMode } from './theming/storage.js';
|
|
8
|
+
export { prismThemeBootScript, type PrismThemeBootScriptOptions } from './theming/bootScript.js';
|
|
4
9
|
export * from './components/index.js';
|
|
5
10
|
export * from './blocks/index.js';
|
|
6
11
|
export * from './pages/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzG,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3H,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACjG,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3H,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,13 @@
|
|
|
6
6
|
export { PrismProvider } from './provider/index.js';
|
|
7
7
|
export { mergePrismTheme, toAntdTheme, isPrismTheme } from './provider/index.js';
|
|
8
8
|
export { usePrismLink, PrismLinkContextProvider } from './provider/index.js';
|
|
9
|
+
export { PrismThemeModeProvider, usePrismThemeMode, } from './provider/index.js';
|
|
10
|
+
export { prismProducts, getPrismProduct, productDotBackground, } from './products/index.js';
|
|
11
|
+
export { ProductDot } from './products/ProductDot.js';
|
|
12
|
+
// Mode mechanics — the runtime-safe half of ./theming. The bake helper stays on
|
|
13
|
+
// the ./theming subpath: it pulls the SSR extractor.
|
|
14
|
+
export { PRISM_THEME_MODE_STORAGE_KEY, parsePrismThemeMode } from './theming/storage.js';
|
|
15
|
+
export { prismThemeBootScript } from './theming/bootScript.js';
|
|
9
16
|
export * from './components/index.js';
|
|
10
17
|
export * from './blocks/index.js';
|
|
11
18
|
export * from './pages/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sEAAsE;AACtE,mCAAmC;AACnC,6EAA6E;AAC7E,iEAAiE;AAEjE,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA8B,MAAM,qBAAqB,CAAC;AACzG,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,sEAAsE;AACtE,mCAAmC;AACnC,6EAA6E;AAC7E,iEAAiE;AAEjE,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA8B,MAAM,qBAAqB,CAAC;AACzG,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,gFAAgF;AAChF,qDAAqD;AACrD,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAoC,MAAM,yBAAyB,CAAC;AACjG,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductDot.d.ts","sourceRoot":"","sources":["../../src/products/ProductDot.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAU3G"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { productDotBackground } from './index.js';
|
|
3
|
+
export function ProductDot({ product, className }) {
|
|
4
|
+
const style = { background: productDotBackground(product) };
|
|
5
|
+
return (_jsx("span", { className: ['prism-product-dot', className].filter(Boolean).join(' '), style: style, "aria-hidden": "true", "data-product": product.id }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=ProductDot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductDot.js","sourceRoot":"","sources":["../../src/products/ProductDot.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,oBAAoB,EAAqB,MAAM,YAAY,CAAC;AAErE,MAAM,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAiD;IAC9F,MAAM,KAAK,GAAkB,EAAE,UAAU,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3E,OAAO,CACL,eACE,SAAS,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EACrE,KAAK,EAAE,KAAK,iBACA,MAAM,kBACJ,OAAO,CAAC,EAAE,GACxB,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type PrismPackId } from '@nanisoft/prism-tokens';
|
|
2
|
+
export type PrismProductId = 'www' | 'nexus' | 'atlas' | 'alphalens' | 'prism';
|
|
3
|
+
export interface PrismProduct {
|
|
4
|
+
readonly id: PrismProductId;
|
|
5
|
+
readonly kind: 'company' | 'product';
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly tagline: string;
|
|
8
|
+
readonly url: string;
|
|
9
|
+
/** The product's brand pack. Null only for the company root (www), which wears all five. */
|
|
10
|
+
readonly pack: PrismPackId | null;
|
|
11
|
+
}
|
|
12
|
+
/** The registry in platform-story order: company root, then the products built on Nexus, then the language they wear. */
|
|
13
|
+
export declare const prismProducts: readonly PrismProduct[];
|
|
14
|
+
/** Registry lookup; misses return undefined so callers can branch on identity. */
|
|
15
|
+
export declare function getPrismProduct(id: PrismProductId): PrismProduct | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The pack-colour dot's CSS `background`: a product wears its own pack ink;
|
|
18
|
+
* www wears the five-pack spectrum (a conic sweep of every ink), because the
|
|
19
|
+
* company is the one entry that has no single colour.
|
|
20
|
+
*/
|
|
21
|
+
export declare function productDotBackground(product: PrismProduct): string;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/products/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAWD,yHAAyH;AACzH,eAAO,MAAM,aAAa,EAAE,SAAS,YAAY,EAkC/C,CAAC;AAEH,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAQlE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// The products registry (ADR-0006 §3): the closed five-entry list that
|
|
2
|
+
// SiteHeader's switcher and SiteFooter's product grid both render from — one
|
|
3
|
+
// list, so the two can never disagree. Subdomain URLs are hardcoded constants;
|
|
4
|
+
// the list is frozen, so "closed" is true by construction.
|
|
5
|
+
//
|
|
6
|
+
// Future Products is deliberately absent: it is a www landing node, not a
|
|
7
|
+
// site, and the chrome only ever links to real ones. www rides in as the
|
|
8
|
+
// company root (every product site's switcher needs the way back) and carries
|
|
9
|
+
// no single pack — it layers all five.
|
|
10
|
+
import { prismBrandPacks } from '@nanisoft/prism-tokens';
|
|
11
|
+
const WWW = Object.freeze({
|
|
12
|
+
id: 'www',
|
|
13
|
+
kind: 'company',
|
|
14
|
+
name: 'NaniSoft',
|
|
15
|
+
tagline: 'Software that builds software.',
|
|
16
|
+
url: 'https://www.nanisoft.com',
|
|
17
|
+
pack: null,
|
|
18
|
+
});
|
|
19
|
+
/** The registry in platform-story order: company root, then the products built on Nexus, then the language they wear. */
|
|
20
|
+
export const prismProducts = Object.freeze([
|
|
21
|
+
WWW,
|
|
22
|
+
Object.freeze({
|
|
23
|
+
id: 'nexus',
|
|
24
|
+
kind: 'product',
|
|
25
|
+
name: 'Nexus',
|
|
26
|
+
tagline: 'The Agent Factory — autonomous software creation.',
|
|
27
|
+
url: 'https://nexus.nanisoft.com',
|
|
28
|
+
pack: 'lavender',
|
|
29
|
+
}),
|
|
30
|
+
Object.freeze({
|
|
31
|
+
id: 'atlas',
|
|
32
|
+
kind: 'product',
|
|
33
|
+
name: 'Atlas',
|
|
34
|
+
tagline: 'The Digital Twin Platform — living models of real systems.',
|
|
35
|
+
url: 'https://atlas.nanisoft.com',
|
|
36
|
+
pack: 'green',
|
|
37
|
+
}),
|
|
38
|
+
Object.freeze({
|
|
39
|
+
id: 'alphalens',
|
|
40
|
+
kind: 'product',
|
|
41
|
+
name: 'AlphaLens',
|
|
42
|
+
tagline: 'Quantitative trading research for the Indian market.',
|
|
43
|
+
url: 'https://alphalens.nanisoft.com',
|
|
44
|
+
pack: 'rose',
|
|
45
|
+
}),
|
|
46
|
+
Object.freeze({
|
|
47
|
+
id: 'prism',
|
|
48
|
+
kind: 'product',
|
|
49
|
+
name: 'Prism',
|
|
50
|
+
tagline: 'One design language across every product.',
|
|
51
|
+
url: 'https://prism.nanisoft.com',
|
|
52
|
+
pack: 'blue',
|
|
53
|
+
}),
|
|
54
|
+
]);
|
|
55
|
+
/** Registry lookup; misses return undefined so callers can branch on identity. */
|
|
56
|
+
export function getPrismProduct(id) {
|
|
57
|
+
return prismProducts.find((product) => product.id === id);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The pack-colour dot's CSS `background`: a product wears its own pack ink;
|
|
61
|
+
* www wears the five-pack spectrum (a conic sweep of every ink), because the
|
|
62
|
+
* company is the one entry that has no single colour.
|
|
63
|
+
*/
|
|
64
|
+
export function productDotBackground(product) {
|
|
65
|
+
if (product.pack)
|
|
66
|
+
return prismBrandPacks[product.pack].ink.light;
|
|
67
|
+
// The five-pack spectrum in ADR-0005 order, closed back onto blue so the
|
|
68
|
+
// wheel is seamless at 0°.
|
|
69
|
+
const inks = ['blue', 'green', 'lavender', 'rose', 'peach', 'blue'].map((pack) => prismBrandPacks[pack].ink.light);
|
|
70
|
+
return `conic-gradient(${inks.join(', ')})`;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/products/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,+EAA+E;AAC/E,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,yEAAyE;AACzE,8EAA8E;AAC9E,uCAAuC;AAEvC,OAAO,EAAE,eAAe,EAAoB,MAAM,wBAAwB,CAAC;AAc3E,MAAM,GAAG,GAAiB,MAAM,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,gCAAgC;IACzC,GAAG,EAAE,0BAA0B;IAC/B,IAAI,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,yHAAyH;AACzH,MAAM,CAAC,MAAM,aAAa,GAA4B,MAAM,CAAC,MAAM,CAAC;IAClE,GAAG;IACH,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,mDAAmD;QAC5D,GAAG,EAAE,4BAA4B;QACjC,IAAI,EAAE,UAAU;KACjB,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,4DAA4D;QACrE,GAAG,EAAE,4BAA4B;QACjC,IAAI,EAAE,OAAO;KACd,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,sDAAsD;QAC/D,GAAG,EAAE,gCAAgC;QACrC,IAAI,EAAE,MAAM;KACb,CAAC;IACF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,2CAA2C;QACpD,GAAG,EAAE,4BAA4B;QACjC,IAAI,EAAE,MAAM;KACb,CAAC;CACH,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,EAAkB;IAChD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACjE,yEAAyE;IACzE,2BAA2B;IAC3B,MAAM,IAAI,GAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAW,CAAC,GAAG,CAChF,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAC1C,CAAC;IACF,OAAO,kBAAkB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PrismMode, type PrismPackId } from '@nanisoft/prism-tokens';
|
|
3
|
+
export interface PrismThemeModeValue {
|
|
4
|
+
readonly mode: PrismMode;
|
|
5
|
+
readonly setMode: (mode: PrismMode) => void;
|
|
6
|
+
readonly toggleMode: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface PrismThemeModeProviderProps {
|
|
9
|
+
/** The site's fixed pack — identity is static and known at build time. */
|
|
10
|
+
pack: PrismPackId;
|
|
11
|
+
/** The mode when nothing (valid) is stored. Defaults to beam-dark — the standing site default. */
|
|
12
|
+
defaultMode?: PrismMode;
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export declare function PrismThemeModeProvider({ pack, defaultMode, children, }: PrismThemeModeProviderProps): ReactNode;
|
|
16
|
+
export declare function usePrismThemeMode(): PrismThemeModeValue;
|
|
17
|
+
//# sourceMappingURL=PrismThemeMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrismThemeMode.d.ts","sourceRoot":"","sources":["../../src/provider/PrismThemeMode.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAwE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7G,OAAO,EAAiC,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAKzG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAaD,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,IAAI,EAAE,WAAW,CAAC;IAClB,kGAAkG;IAClG,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,WAAoB,EACpB,QAAQ,GACT,EAAE,2BAA2B,GAAG,SAAS,CAuCzC;AAED,wBAAgB,iBAAiB,IAAI,mBAAmB,CAIvD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
// PrismThemeModeProvider (ADR-0006 §4): the chrome's one context. Static
|
|
4
|
+
// identity travels as props (the pack is fixed per site — the chrome flips
|
|
5
|
+
// mode only); mode is the one stateful thing in the chrome, so it is the one
|
|
6
|
+
// context. It wraps PrismProvider with the theme for the current mode, swaps
|
|
7
|
+
// the pre-baked variable class on <html> (the same class the boot script set
|
|
8
|
+
// pre-paint, so toggle and boot can never disagree), and persists to the one
|
|
9
|
+
// shared storage key.
|
|
10
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
11
|
+
import { getPrismTheme, prismCssVarKey } from '@nanisoft/prism-tokens';
|
|
12
|
+
import { PRISM_THEME_MODE_STORAGE_KEY, parsePrismThemeMode } from '../theming/storage.js';
|
|
13
|
+
import { PrismProvider } from './PrismProvider.js';
|
|
14
|
+
const PrismThemeModeContext = createContext(undefined);
|
|
15
|
+
/** Swap the pre-baked variable class on <html> — colors come from the class, so the swap is the whole repaint. */
|
|
16
|
+
function applyModeClass(pack, mode) {
|
|
17
|
+
const el = document.documentElement;
|
|
18
|
+
for (const className of Array.from(el.classList)) {
|
|
19
|
+
if (className.startsWith('prism-'))
|
|
20
|
+
el.classList.remove(className);
|
|
21
|
+
}
|
|
22
|
+
el.classList.add(prismCssVarKey(pack, mode));
|
|
23
|
+
}
|
|
24
|
+
export function PrismThemeModeProvider({ pack, defaultMode = 'dark', children, }) {
|
|
25
|
+
const [mode, setModeState] = useState(defaultMode);
|
|
26
|
+
// SSR renders the default; the boot script may have restored a stored mode
|
|
27
|
+
// before paint — sync React onto it after mount (no visual impact: colors
|
|
28
|
+
// come from the class, not from React).
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
try {
|
|
31
|
+
const stored = parsePrismThemeMode(localStorage.getItem(PRISM_THEME_MODE_STORAGE_KEY));
|
|
32
|
+
if (stored)
|
|
33
|
+
setModeState(stored);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Blocked storage — keep the default.
|
|
37
|
+
}
|
|
38
|
+
}, []);
|
|
39
|
+
const setMode = useCallback((next) => {
|
|
40
|
+
applyModeClass(pack, next);
|
|
41
|
+
try {
|
|
42
|
+
localStorage.setItem(PRISM_THEME_MODE_STORAGE_KEY, next);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// Private mode / storage disabled — the session keeps the in-memory choice.
|
|
46
|
+
}
|
|
47
|
+
setModeState(next);
|
|
48
|
+
}, [pack]);
|
|
49
|
+
const toggleMode = useCallback(() => {
|
|
50
|
+
setMode(mode === 'dark' ? 'light' : 'dark');
|
|
51
|
+
}, [mode, setMode]);
|
|
52
|
+
const value = useMemo(() => ({ mode, setMode, toggleMode }), [mode, setMode, toggleMode]);
|
|
53
|
+
return (_jsx(PrismThemeModeContext.Provider, { value: value, children: _jsx(PrismProvider, { prismTheme: getPrismTheme(pack, mode), children: children }) }));
|
|
54
|
+
}
|
|
55
|
+
export function usePrismThemeMode() {
|
|
56
|
+
const value = useContext(PrismThemeModeContext);
|
|
57
|
+
if (!value)
|
|
58
|
+
throw new Error('usePrismThemeMode must be used inside <PrismThemeModeProvider>');
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=PrismThemeMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrismThemeMode.js","sourceRoot":"","sources":["../../src/provider/PrismThemeMode.tsx"],"names":[],"mappings":"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"}
|
package/dist/provider/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { PrismProvider, type PrismProviderProps } from './PrismProvider.js';
|
|
2
2
|
export { mergePrismTheme, toAntdTheme, isPrismTheme } from './mergePrismTheme.js';
|
|
3
3
|
export { usePrismLink, PrismLinkContextProvider, type PrismLinkContextValue } from './PrismLinkContext.js';
|
|
4
|
+
export { PrismThemeModeProvider, usePrismThemeMode, type PrismThemeModeProviderProps, type PrismThemeModeValue, } from './PrismThemeMode.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC"}
|
package/dist/provider/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { PrismProvider } from './PrismProvider.js';
|
|
2
2
|
export { mergePrismTheme, toAntdTheme, isPrismTheme } from './mergePrismTheme.js';
|
|
3
3
|
export { usePrismLink, PrismLinkContextProvider } from './PrismLinkContext.js';
|
|
4
|
+
export { PrismThemeModeProvider, usePrismThemeMode, } from './PrismThemeMode.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA8B,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAA8B,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC"}
|
package/dist/styles.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @nanisoft/prism-ui — styles.css
|
|
2
|
-
* Font faces, display width-axis, and
|
|
2
|
+
* Font faces, display width-axis, dither patterns, and the cross-site chrome.
|
|
3
3
|
* Imported by the app (never by PrismProvider), keeping sideEffects: [] honest.
|
|
4
4
|
*
|
|
5
5
|
* Fonts:
|
|
@@ -70,4 +70,303 @@
|
|
|
70
70
|
background-size: 4px 4px;
|
|
71
71
|
opacity: 0.04;
|
|
72
72
|
}
|
|
73
|
+
|
|
74
|
+
/* ---------- Cross-site chrome (ADR-0006) ----------
|
|
75
|
+
* SiteHeader / SiteFooter / the pack dot. Tokens resolve through the
|
|
76
|
+
* pre-baked `prism-<pack>-<mode>` class on <html> (the boot script's
|
|
77
|
+
* class-swap recipe); the fallbacks keep the chrome legible when it renders
|
|
78
|
+
* outside that recipe. Sites cap the chrome's measure with
|
|
79
|
+
* `--prism-chrome-max-width`.
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
.prism-visually-hidden {
|
|
83
|
+
position: absolute;
|
|
84
|
+
width: 1px;
|
|
85
|
+
height: 1px;
|
|
86
|
+
padding: 0;
|
|
87
|
+
margin: -1px;
|
|
88
|
+
overflow: hidden;
|
|
89
|
+
clip-path: inset(50%);
|
|
90
|
+
white-space: nowrap;
|
|
91
|
+
border: 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.prism-product-dot {
|
|
95
|
+
display: inline-block;
|
|
96
|
+
flex: none;
|
|
97
|
+
width: 10px;
|
|
98
|
+
height: 10px;
|
|
99
|
+
border-radius: 50%;
|
|
100
|
+
box-shadow: inset 0 0 0 1px var(--prism-color-border, rgb(0 0 0 / 0.15));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* ----- SiteHeader ----- */
|
|
104
|
+
|
|
105
|
+
.prism-site-header {
|
|
106
|
+
position: sticky;
|
|
107
|
+
top: 0;
|
|
108
|
+
z-index: 100;
|
|
109
|
+
background: var(--prism-color-bg-container, #fff);
|
|
110
|
+
border-bottom: 1px solid var(--prism-color-border-secondary, transparent);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.prism-site-header--static {
|
|
114
|
+
position: static;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.prism-site-header__inner {
|
|
118
|
+
display: flex;
|
|
119
|
+
gap: 24px;
|
|
120
|
+
align-items: center;
|
|
121
|
+
max-width: var(--prism-chrome-max-width, 1120px);
|
|
122
|
+
min-height: 64px;
|
|
123
|
+
margin-inline: auto;
|
|
124
|
+
padding-inline: 24px;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.prism-site-header a {
|
|
128
|
+
text-decoration: none;
|
|
129
|
+
color: inherit;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.prism-site-header__brand {
|
|
133
|
+
display: inline-flex;
|
|
134
|
+
gap: 8px;
|
|
135
|
+
align-items: center;
|
|
136
|
+
font-weight: 600;
|
|
137
|
+
font-variation-settings: 'wdth' 110;
|
|
138
|
+
color: var(--prism-color-text, rgb(0 0 0 / 0.88));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.prism-site-header__nav {
|
|
142
|
+
display: flex;
|
|
143
|
+
gap: 4px;
|
|
144
|
+
align-items: center;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.prism-site-header__nav a {
|
|
148
|
+
padding: 6px 10px;
|
|
149
|
+
border-radius: var(--prism-border-radius, 4px);
|
|
150
|
+
color: var(--prism-color-text-secondary, rgb(0 0 0 / 0.65));
|
|
151
|
+
transition:
|
|
152
|
+
color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1)),
|
|
153
|
+
background-color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.prism-site-header__nav a:hover {
|
|
157
|
+
background: var(--prism-color-primary-bg, transparent);
|
|
158
|
+
color: var(--prism-color-primary, inherit);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.prism-site-header__actions {
|
|
162
|
+
display: flex;
|
|
163
|
+
gap: 8px;
|
|
164
|
+
align-items: center;
|
|
165
|
+
margin-left: auto;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.prism-site-header__switcher-trigger {
|
|
169
|
+
display: inline-flex;
|
|
170
|
+
gap: 6px;
|
|
171
|
+
align-items: center;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.prism-site-header__switcher-caret {
|
|
175
|
+
font-size: 10px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.prism-site-header__switcher a,
|
|
179
|
+
.prism-site-header__switcher [aria-current] {
|
|
180
|
+
display: inline-flex;
|
|
181
|
+
gap: 8px;
|
|
182
|
+
align-items: center;
|
|
183
|
+
text-decoration: none;
|
|
184
|
+
color: inherit;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.prism-site-header__switcher [aria-current] {
|
|
188
|
+
font-weight: 600;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.prism-site-header__menu-button {
|
|
192
|
+
display: none;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.prism-site-header__drawer {
|
|
196
|
+
display: flex;
|
|
197
|
+
flex-direction: column;
|
|
198
|
+
gap: 24px;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.prism-site-header__drawer a {
|
|
202
|
+
display: flex;
|
|
203
|
+
gap: 8px;
|
|
204
|
+
align-items: center;
|
|
205
|
+
padding: 8px 4px;
|
|
206
|
+
border-radius: var(--prism-border-radius, 4px);
|
|
207
|
+
text-decoration: none;
|
|
208
|
+
color: var(--prism-color-text, inherit);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.prism-site-header__drawer a:hover {
|
|
212
|
+
background: var(--prism-color-primary-bg, transparent);
|
|
213
|
+
color: var(--prism-color-primary, inherit);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.prism-site-header__drawer-nav {
|
|
217
|
+
display: flex;
|
|
218
|
+
flex-direction: column;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.prism-site-header__drawer-products {
|
|
222
|
+
display: flex;
|
|
223
|
+
flex-direction: column;
|
|
224
|
+
padding-top: 16px;
|
|
225
|
+
border-top: 1px solid var(--prism-color-border-secondary, transparent);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.prism-site-header__drawer-here {
|
|
229
|
+
margin-left: auto;
|
|
230
|
+
font-size: 12px;
|
|
231
|
+
color: var(--prism-color-text-quaternary, rgb(0 0 0 / 0.45));
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
@media (max-width: 767.98px) {
|
|
235
|
+
.prism-site-header__inner {
|
|
236
|
+
gap: 16px;
|
|
237
|
+
padding-inline: 16px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.prism-site-header__nav,
|
|
241
|
+
.prism-site-header__switcher-trigger {
|
|
242
|
+
display: none;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.prism-site-header__menu-button {
|
|
246
|
+
display: inline-flex;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* ----- SiteFooter ----- */
|
|
251
|
+
|
|
252
|
+
.prism-site-footer {
|
|
253
|
+
background: var(--prism-color-bg-layout, transparent);
|
|
254
|
+
border-top: 1px solid var(--prism-color-border-secondary, transparent);
|
|
255
|
+
color: var(--prism-color-text, rgb(0 0 0 / 0.88));
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.prism-site-footer__inner {
|
|
259
|
+
display: flex;
|
|
260
|
+
flex-direction: column;
|
|
261
|
+
gap: 32px;
|
|
262
|
+
max-width: var(--prism-chrome-max-width, 1120px);
|
|
263
|
+
margin-inline: auto;
|
|
264
|
+
padding: 48px 24px 32px;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.prism-site-footer a {
|
|
268
|
+
text-decoration: none;
|
|
269
|
+
color: inherit;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.prism-site-footer__products {
|
|
273
|
+
display: grid;
|
|
274
|
+
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
|
|
275
|
+
gap: 16px;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.prism-site-footer__product {
|
|
279
|
+
display: flex;
|
|
280
|
+
flex-direction: column;
|
|
281
|
+
gap: 8px;
|
|
282
|
+
height: 100%;
|
|
283
|
+
padding: 16px;
|
|
284
|
+
background: var(--prism-color-bg-container, #fff);
|
|
285
|
+
border: 1px solid var(--prism-color-border-secondary, transparent);
|
|
286
|
+
border-radius: var(--prism-border-radius, 4px);
|
|
287
|
+
transition: border-color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1));
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.prism-site-footer__products a:hover .prism-site-footer__product,
|
|
291
|
+
.prism-site-footer__product[data-current='true'] {
|
|
292
|
+
border-color: var(--prism-color-primary-border, var(--prism-color-border, transparent));
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.prism-site-footer__product-head {
|
|
296
|
+
display: flex;
|
|
297
|
+
gap: 8px;
|
|
298
|
+
align-items: center;
|
|
299
|
+
font-weight: 600;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.prism-site-footer__product-tagline {
|
|
303
|
+
font-size: 13px;
|
|
304
|
+
color: var(--prism-color-text-secondary, rgb(0 0 0 / 0.65));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.prism-site-footer__columns {
|
|
308
|
+
display: grid;
|
|
309
|
+
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
|
|
310
|
+
gap: 24px;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.prism-site-footer__column {
|
|
314
|
+
display: flex;
|
|
315
|
+
flex-direction: column;
|
|
316
|
+
gap: 8px;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
.prism-site-footer__column-title {
|
|
320
|
+
margin: 0;
|
|
321
|
+
font-size: 13px;
|
|
322
|
+
font-weight: 600;
|
|
323
|
+
color: var(--prism-color-text-secondary, rgb(0 0 0 / 0.65));
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.prism-site-footer__column a {
|
|
327
|
+
color: var(--prism-color-text-secondary, rgb(0 0 0 / 0.65));
|
|
328
|
+
transition: color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1));
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.prism-site-footer__column a:hover {
|
|
332
|
+
color: var(--prism-color-primary, inherit);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.prism-site-footer__base {
|
|
336
|
+
display: flex;
|
|
337
|
+
flex-wrap: wrap;
|
|
338
|
+
gap: 16px;
|
|
339
|
+
align-items: center;
|
|
340
|
+
justify-content: space-between;
|
|
341
|
+
padding-top: 24px;
|
|
342
|
+
border-top: 1px solid var(--prism-color-border-secondary, transparent);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.prism-site-footer__social {
|
|
346
|
+
display: flex;
|
|
347
|
+
gap: 8px;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.prism-site-footer__social-link {
|
|
351
|
+
display: inline-flex;
|
|
352
|
+
align-items: center;
|
|
353
|
+
justify-content: center;
|
|
354
|
+
width: 32px;
|
|
355
|
+
height: 32px;
|
|
356
|
+
border-radius: var(--prism-border-radius, 4px);
|
|
357
|
+
color: var(--prism-color-text-secondary, rgb(0 0 0 / 0.65));
|
|
358
|
+
transition:
|
|
359
|
+
color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1)),
|
|
360
|
+
background-color var(--prism-motion-duration-mid, 160ms) var(--prism-motion-ease-out, cubic-bezier(0.25, 1, 0.5, 1));
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.prism-site-footer__social-link:hover {
|
|
364
|
+
background: var(--prism-color-primary-bg, transparent);
|
|
365
|
+
color: var(--prism-color-primary, inherit);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.prism-site-footer__legal {
|
|
369
|
+
font-size: 13px;
|
|
370
|
+
color: var(--prism-color-text-tertiary, rgb(0 0 0 / 0.45));
|
|
371
|
+
}
|
|
73
372
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type PrismMode, type PrismPackId, type PrismTheme } from '@nanisoft/prism-tokens';
|
|
2
|
+
/**
|
|
3
|
+
* Keep only the rules scoped to `key`'s variable class — the bare token
|
|
4
|
+
* ruleset and the component-level `.{key}.ant-*-css-var` rulesets. The
|
|
5
|
+
* theme-agnostic component styles that make up the rest of the extraction are
|
|
6
|
+
* baked into every page by AntdRegistry at prerender; duplicating them here
|
|
7
|
+
* would multiply the payload for nothing. At-rules are recursed and kept only
|
|
8
|
+
* when something inside survives.
|
|
9
|
+
*/
|
|
10
|
+
export declare function keepThemeVariableRules(css: string, key: string): string;
|
|
11
|
+
export interface BakePrismThemeRulesOptions {
|
|
12
|
+
/** The theme to bake — pass `getPrismTheme(pack, mode)` or a `createPrismTheme()` result (overrides bake too). */
|
|
13
|
+
theme: PrismTheme;
|
|
14
|
+
}
|
|
15
|
+
/** Extract and filter one theme's variable ruleset. Throws when extraction yields nothing. */
|
|
16
|
+
export declare function bakePrismThemeRules({ theme }: BakePrismThemeRulesOptions): string;
|
|
17
|
+
export interface BakePrismThemeCssOptions {
|
|
18
|
+
pack: PrismPackId;
|
|
19
|
+
/** Defaults to both — a site ships exactly two pre-baked rulesets. */
|
|
20
|
+
modes?: readonly PrismMode[];
|
|
21
|
+
}
|
|
22
|
+
/** The standard bake: one labelled variable ruleset per mode, ready for a site's build to write out. */
|
|
23
|
+
export declare function bakePrismThemeCss({ pack, modes }: BakePrismThemeCssOptions): string;
|
|
24
|
+
//# sourceMappingURL=bake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bake.d.ts","sourceRoot":"","sources":["../../src/theming/bake.ts"],"names":[],"mappings":"AAaA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAI1G;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA6BvE;AAED,MAAM,WAAW,0BAA0B;IACzC,kHAAkH;IAClH,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,0BAA0B,GAAG,MAAM,CASjF;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,WAAW,CAAC;IAClB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAC9B;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAyB,EAAE,EAAE,wBAAwB,GAAG,MAAM,CAOvG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// The build-time bake helper (ADR-0006 §4): library-owned flash-free recipe.
|
|
2
|
+
// With `cssVar: { key: 'prism-<pack>-<mode>' }` + `hashed: false`, a theme's
|
|
3
|
+
// identity collapses into one ruleset per key — the bare token ruleset plus
|
|
4
|
+
// the component-level `.{key}.ant-*-css-var` variable rulesets. Component
|
|
5
|
+
// *styles* are theme-agnostic (they reference `var(--prism-*)`), so those
|
|
6
|
+
// variable rulesets are all a site needs pre-baked: the boot script swaps the
|
|
7
|
+
// class on <html> and the whole page re-themes without a flash.
|
|
8
|
+
//
|
|
9
|
+
// Node/build-time only: it pulls the SSR extractor. The package ships it on
|
|
10
|
+
// the ./theming subpath, never the root barrel.
|
|
11
|
+
import { extractStyle } from '@ant-design/static-style-extract';
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { getPrismTheme } from '@nanisoft/prism-tokens';
|
|
14
|
+
import { PrismProvider } from '../provider/PrismProvider.js';
|
|
15
|
+
/**
|
|
16
|
+
* Keep only the rules scoped to `key`'s variable class — the bare token
|
|
17
|
+
* ruleset and the component-level `.{key}.ant-*-css-var` rulesets. The
|
|
18
|
+
* theme-agnostic component styles that make up the rest of the extraction are
|
|
19
|
+
* baked into every page by AntdRegistry at prerender; duplicating them here
|
|
20
|
+
* would multiply the payload for nothing. At-rules are recursed and kept only
|
|
21
|
+
* when something inside survives.
|
|
22
|
+
*/
|
|
23
|
+
export function keepThemeVariableRules(css, key) {
|
|
24
|
+
const keep = (selector) => selector === `.${key}` || selector.startsWith(`.${key}.`);
|
|
25
|
+
const walk = (text) => {
|
|
26
|
+
const out = [];
|
|
27
|
+
let i = 0;
|
|
28
|
+
while (i < text.length) {
|
|
29
|
+
const brace = text.indexOf('{', i);
|
|
30
|
+
if (brace === -1)
|
|
31
|
+
break;
|
|
32
|
+
const selector = text.slice(i, brace).trim();
|
|
33
|
+
let depth = 1;
|
|
34
|
+
let j = brace + 1;
|
|
35
|
+
while (j < text.length && depth > 0) {
|
|
36
|
+
const ch = text[j];
|
|
37
|
+
if (ch === '{')
|
|
38
|
+
depth += 1;
|
|
39
|
+
else if (ch === '}')
|
|
40
|
+
depth -= 1;
|
|
41
|
+
j += 1;
|
|
42
|
+
}
|
|
43
|
+
const body = text.slice(brace + 1, j - 1);
|
|
44
|
+
if (selector.startsWith('@') && depth === 0) {
|
|
45
|
+
const inner = walk(body);
|
|
46
|
+
if (inner)
|
|
47
|
+
out.push(`${selector}{${inner}}`);
|
|
48
|
+
}
|
|
49
|
+
else if (keep(selector)) {
|
|
50
|
+
out.push(`${selector}{${body}}`);
|
|
51
|
+
}
|
|
52
|
+
i = j;
|
|
53
|
+
}
|
|
54
|
+
return out.join('');
|
|
55
|
+
};
|
|
56
|
+
return walk(css);
|
|
57
|
+
}
|
|
58
|
+
/** Extract and filter one theme's variable ruleset. Throws when extraction yields nothing. */
|
|
59
|
+
export function bakePrismThemeRules({ theme }) {
|
|
60
|
+
const full = extractStyle({
|
|
61
|
+
customTheme: (node) => React.createElement(PrismProvider, { prismTheme: theme }, node),
|
|
62
|
+
});
|
|
63
|
+
const rules = keepThemeVariableRules(full, theme.cssVarKey);
|
|
64
|
+
if (!rules.includes('--prism-color-primary')) {
|
|
65
|
+
throw new Error(`bakePrismThemeRules: no theme variables extracted for ${theme.pack}/${theme.mode}`);
|
|
66
|
+
}
|
|
67
|
+
return rules;
|
|
68
|
+
}
|
|
69
|
+
/** The standard bake: one labelled variable ruleset per mode, ready for a site's build to write out. */
|
|
70
|
+
export function bakePrismThemeCss({ pack, modes = ['light', 'dark'] }) {
|
|
71
|
+
const chunks = [];
|
|
72
|
+
for (const mode of modes) {
|
|
73
|
+
const theme = getPrismTheme(pack, mode);
|
|
74
|
+
chunks.push(`/* ${theme.pack} · ${theme.mode} (${theme.cssVarKey}) */\n${bakePrismThemeRules({ theme })}\n`);
|
|
75
|
+
}
|
|
76
|
+
return chunks.join('\n');
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=bake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bake.js","sourceRoot":"","sources":["../../src/theming/bake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PrismMode, PrismPackId } from '@nanisoft/prism-tokens';
|
|
2
|
+
export interface PrismThemeBootScriptOptions {
|
|
3
|
+
/** The site's fixed pack — the chrome flips mode only, never pack. */
|
|
4
|
+
pack: PrismPackId;
|
|
5
|
+
/** The mode when nothing (valid) is stored. Defaults to beam-dark — the standing site default. */
|
|
6
|
+
defaultMode?: PrismMode;
|
|
7
|
+
}
|
|
8
|
+
export declare function prismThemeBootScript({ pack, defaultMode }: PrismThemeBootScriptOptions): string;
|
|
9
|
+
//# sourceMappingURL=bootScript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootScript.d.ts","sourceRoot":"","sources":["../../src/theming/bootScript.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrE,MAAM,WAAW,2BAA2B;IAC1C,sEAAsE;IACtE,IAAI,EAAE,WAAW,CAAC;IAClB,kGAAkG;IAClG,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,EAAE,2BAA2B,GAAG,MAAM,CAkBxG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// The flash-free boot (ADR-0006 §4): `prismThemeBootScript({ pack, defaultMode })`
|
|
2
|
+
// returns the inline script string a site drops into its root layout's <head>.
|
|
3
|
+
// It applies the stored-or-default `prism-<pack>-<mode>` class to <html>
|
|
4
|
+
// before first paint — the exact class that carries the pre-baked variable
|
|
5
|
+
// rulesets (the bake helper) and antd's cssVar key. Dependency-free by
|
|
6
|
+
// construction: it must never wait on the bundle.
|
|
7
|
+
import { PRISM_THEME_MODE_STORAGE_KEY } from './storage.js';
|
|
8
|
+
export function prismThemeBootScript({ pack, defaultMode = 'dark' }) {
|
|
9
|
+
// The mode-class prefix is prismCssVarKey(pack, mode) minus the mode; the
|
|
10
|
+
// theming test pins the emitted class to prismCssVarKey itself.
|
|
11
|
+
const classPrefix = JSON.stringify(`prism-${pack}-`);
|
|
12
|
+
return [
|
|
13
|
+
'(()=>{',
|
|
14
|
+
`let m=${JSON.stringify(defaultMode)};`,
|
|
15
|
+
'try{',
|
|
16
|
+
`const s=localStorage.getItem(${JSON.stringify(PRISM_THEME_MODE_STORAGE_KEY)});`,
|
|
17
|
+
'if(s==="light"||s==="dark")m=s;',
|
|
18
|
+
'}catch(e){}',
|
|
19
|
+
'try{',
|
|
20
|
+
'const el=document.documentElement;',
|
|
21
|
+
'for(const c of Array.from(el.classList))if(c.indexOf("prism-")===0)el.classList.remove(c);',
|
|
22
|
+
`el.classList.add(${classPrefix}+m);`,
|
|
23
|
+
'}catch(e){}',
|
|
24
|
+
'})();',
|
|
25
|
+
].join('');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=bootScript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootScript.js","sourceRoot":"","sources":["../../src/theming/bootScript.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,+EAA+E;AAC/E,yEAAyE;AACzE,2EAA2E;AAC3E,uEAAuE;AACvE,kDAAkD;AAIlD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAS5D,MAAM,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,EAA+B;IAC9F,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IACrD,OAAO;QACL,QAAQ;QACR,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;QACvC,MAAM;QACN,gCAAgC,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,IAAI;QAChF,iCAAiC;QACjC,aAAa;QACb,MAAM;QACN,oCAAoC;QACpC,4FAA4F;QAC5F,oBAAoB,WAAW,MAAM;QACrC,aAAa;QACb,OAAO;KACR,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { PRISM_THEME_MODE_STORAGE_KEY, parsePrismThemeMode } from './storage.js';
|
|
2
|
+
export { prismThemeBootScript, type PrismThemeBootScriptOptions } from './bootScript.js';
|
|
3
|
+
export { bakePrismThemeCss, bakePrismThemeRules, keepThemeVariableRules, type BakePrismThemeCssOptions, type BakePrismThemeRulesOptions, } from './bake.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theming/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// prism-ui theming module (ADR-0006 §4): the chrome's mode mechanics. This
|
|
2
|
+
// subpath is also the build-time surface — bake pulls the SSR extractor, so
|
|
3
|
+
// the root barrel deliberately re-exports only storage + bootScript directly,
|
|
4
|
+
// never this index.
|
|
5
|
+
export { PRISM_THEME_MODE_STORAGE_KEY, parsePrismThemeMode } from './storage.js';
|
|
6
|
+
export { prismThemeBootScript } from './bootScript.js';
|
|
7
|
+
export { bakePrismThemeCss, bakePrismThemeRules, keepThemeVariableRules, } from './bake.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theming/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,8EAA8E;AAC9E,oBAAoB;AAEpB,OAAO,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAoC,MAAM,iBAAiB,CAAC;AACzF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,GAGvB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PrismMode } from '@nanisoft/prism-tokens';
|
|
2
|
+
export declare const PRISM_THEME_MODE_STORAGE_KEY = "prism-theme-mode";
|
|
3
|
+
/** Parse a stored value; anything but the two exact mode strings is garbage. */
|
|
4
|
+
export declare function parsePrismThemeMode(value: string | null | undefined): PrismMode | undefined;
|
|
5
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/theming/storage.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAE/D,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAE3F"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// The chrome's one storage slot (ADR-0006 §4): the shared key the mode
|
|
2
|
+
// provider writes and the boot script reads, so the toggle and the boot can
|
|
3
|
+
// never disagree. The value is the mode only — the pack is fixed per site —
|
|
4
|
+
// which makes a visitor's light/beam-dark choice travel across all five
|
|
5
|
+
// NaniSoft sites.
|
|
6
|
+
export const PRISM_THEME_MODE_STORAGE_KEY = 'prism-theme-mode';
|
|
7
|
+
/** Parse a stored value; anything but the two exact mode strings is garbage. */
|
|
8
|
+
export function parsePrismThemeMode(value) {
|
|
9
|
+
return value === 'light' || value === 'dark' ? value : undefined;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/theming/storage.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,kBAAkB;AAIlB,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,KAAgC;IAClE,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapped-registry.d.ts","sourceRoot":"","sources":["../src/wrapped-registry.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;uBAEhB,kBAAkB;yBAChB,cAAc;;4BAEX,gBAAgB;EAEa,CAAC;AAEjD,eAAO,MAAM,YAAY,GAA2B,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,cAAc,YAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAU,CAAC;AAErH,wFAAwF;AACxF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"wrapped-registry.d.ts","sourceRoot":"","sources":["../src/wrapped-registry.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,eAAe,GAAG,WAAW,GAAG,cAAc,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;CACrC;AAED,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;uBAEhB,kBAAkB;yBAChB,cAAc;;4BAEX,gBAAgB;EAEa,CAAC;AAEjD,eAAO,MAAM,YAAY,GAA2B,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,cAAc,YAAI,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAU,CAAC;AAErH,wFAAwF;AACxF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqFvE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,wIAAwI;IACxI,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAcD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,GAAG,YAAY,EAAE,CA6BrF"}
|
package/dist/wrapped-registry.js
CHANGED
|
@@ -103,12 +103,16 @@ export const componentCategories = {
|
|
|
103
103
|
// Prism group — blocks and pages
|
|
104
104
|
ComponentDemo: 'prism',
|
|
105
105
|
PageHeader: 'prism',
|
|
106
|
+
SiteHeader: 'prism',
|
|
107
|
+
SiteFooter: 'prism',
|
|
106
108
|
DocsShell: 'prism',
|
|
107
109
|
BlogLayout: 'prism',
|
|
108
110
|
};
|
|
109
111
|
const BLOCKS = [
|
|
110
112
|
{ name: 'ComponentDemo', id: 'component-demo' },
|
|
111
113
|
{ name: 'PageHeader', id: 'page-header' },
|
|
114
|
+
{ name: 'SiteHeader', id: 'site-header' },
|
|
115
|
+
{ name: 'SiteFooter', id: 'site-footer' },
|
|
112
116
|
];
|
|
113
117
|
const PAGES = [
|
|
114
118
|
{ name: 'DocsShell', id: 'docs-shell' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapped-registry.js","sourceRoot":"","sources":["../src/wrapped-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrapped-registry.js","sourceRoot":"","sources":["../src/wrapped-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanisoft/prism-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Prism's React surface — components, blocks, and pages over Ant Design v6. Apps import from here, never from antd directly.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -41,6 +41,14 @@
|
|
|
41
41
|
"types": "./dist/pages/*/index.d.ts",
|
|
42
42
|
"import": "./dist/pages/*/index.js"
|
|
43
43
|
},
|
|
44
|
+
"./products": {
|
|
45
|
+
"types": "./dist/products/index.d.ts",
|
|
46
|
+
"import": "./dist/products/index.js"
|
|
47
|
+
},
|
|
48
|
+
"./theming": {
|
|
49
|
+
"types": "./dist/theming/index.d.ts",
|
|
50
|
+
"import": "./dist/theming/index.js"
|
|
51
|
+
},
|
|
44
52
|
"./icons": {
|
|
45
53
|
"types": "./dist/generated/icons.d.ts",
|
|
46
54
|
"import": "./dist/generated/icons.js"
|
|
@@ -81,8 +89,9 @@
|
|
|
81
89
|
},
|
|
82
90
|
"dependencies": {
|
|
83
91
|
"@ant-design/icons": "^6.3.4",
|
|
92
|
+
"@ant-design/static-style-extract": "^2.1.0",
|
|
84
93
|
"antd": "^6.6.4",
|
|
85
|
-
"@nanisoft/prism-tokens": "0.
|
|
94
|
+
"@nanisoft/prism-tokens": "0.3.0"
|
|
86
95
|
},
|
|
87
96
|
"author": "NaniSoft",
|
|
88
97
|
"homepage": "https://prism.nanisoft.com",
|