@flamingo-stack/openframe-frontend-core 0.0.303-snapshot.20260622160827 → 0.0.303
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/{chunk-RNF2E736.cjs → chunk-3GYV6RP7.cjs} +10 -11
- package/dist/chunk-3GYV6RP7.cjs.map +1 -0
- package/dist/{chunk-BMNGBMSN.cjs → chunk-4JK3ZFMD.cjs} +26 -26
- package/dist/{chunk-BMNGBMSN.cjs.map → chunk-4JK3ZFMD.cjs.map} +1 -1
- package/dist/{chunk-A25ZI7HO.cjs → chunk-6D53QFBF.cjs} +12 -12
- package/dist/{chunk-A25ZI7HO.cjs.map → chunk-6D53QFBF.cjs.map} +1 -1
- package/dist/{chunk-INZOAK77.js → chunk-FG4XA6NA.js} +2 -2
- package/dist/{chunk-X5N6ANEO.js → chunk-JEHWEKWA.js} +3 -4
- package/dist/{chunk-X5N6ANEO.js.map → chunk-JEHWEKWA.js.map} +1 -1
- package/dist/{chunk-7KTSRZI4.cjs → chunk-KZGSVTRP.cjs} +543 -475
- package/dist/chunk-KZGSVTRP.cjs.map +1 -0
- package/dist/{chunk-UAJAJFI6.cjs → chunk-LTDGGKOW.cjs} +50 -44
- package/dist/chunk-LTDGGKOW.cjs.map +1 -0
- package/dist/{chunk-YV73VRRY.js → chunk-OFLTDHC2.js} +2 -2
- package/dist/{chunk-JO6EUJGU.js → chunk-OZSU6S6U.js} +27 -21
- package/dist/chunk-OZSU6S6U.js.map +1 -0
- package/dist/{chunk-2X4HTRQ4.js → chunk-R2NVJUOB.js} +22 -10
- package/dist/chunk-R2NVJUOB.js.map +1 -0
- package/dist/{chunk-Y2D2RJQX.js → chunk-SLRDPGGS.js} +2762 -2694
- package/dist/chunk-SLRDPGGS.js.map +1 -0
- package/dist/{chunk-O4TIFKDG.cjs → chunk-SYTHAQRP.cjs} +7 -7
- package/dist/{chunk-O4TIFKDG.cjs.map → chunk-SYTHAQRP.cjs.map} +1 -1
- package/dist/{chunk-45DC5AJC.js → chunk-UMYWG5C3.js} +2 -2
- package/dist/{chunk-MZRNARMO.cjs → chunk-UNWVMS3E.cjs} +37 -37
- package/dist/{chunk-MZRNARMO.cjs.map → chunk-UNWVMS3E.cjs.map} +1 -1
- package/dist/{chunk-DOYOOBP4.js → chunk-VAH46QQO.js} +2 -2
- package/dist/{chunk-FVLEE7YZ.cjs → chunk-YKP7UXWT.cjs} +35 -23
- package/dist/chunk-YKP7UXWT.cjs.map +1 -0
- package/dist/{chunk-Z7322A4A.cjs → chunk-ZCXABON3.cjs} +5 -5
- package/dist/{chunk-Z7322A4A.cjs.map → chunk-ZCXABON3.cjs.map} +1 -1
- package/dist/{chunk-ZXIM2DJM.js → chunk-ZRSS67EY.js} +2 -2
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/hooks/use-chat-identity.d.ts +1 -7
- package/dist/components/chat/hooks/use-chat-identity.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-empty-state-config.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/doc-viewer.d.ts +4 -3
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -1
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/index.cjs +178 -172
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +14 -8
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-header.d.ts +78 -0
- package/dist/components/layout/page-header.d.ts.map +1 -0
- package/dist/components/layout/page-layout.d.ts +10 -1
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/page-with-header.d.ts +67 -0
- package/dist/components/layout/page-with-header.d.ts.map +1 -0
- package/dist/components/layout/title-block.d.ts +17 -1
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +23 -23
- package/dist/components/onboarding-guides/index.js +3 -3
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
- package/dist/components/shared/dev-section/index.d.ts +1 -1
- package/dist/components/shared/dev-section/index.d.ts.map +1 -1
- package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +60 -60
- package/dist/components/tickets/index.js +3 -3
- package/dist/components/ui/index.cjs +6 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +5 -1
- package/dist/index.cjs +6 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5 -1
- package/package.json +1 -1
- package/src/components/chat/embeddable-chat.tsx +3 -25
- package/src/components/chat/hooks/use-chat-identity.ts +2 -13
- package/src/components/chat/hooks/use-empty-state-config.ts +16 -30
- package/src/components/chat/hooks/use-slash-commands.ts +8 -24
- package/src/components/docs/doc-viewer.tsx +22 -25
- package/src/components/docs/use-docs-resolve-link.ts +1 -2
- package/src/components/docs/use-document-tree.ts +2 -3
- package/src/components/layout/page-header.tsx +182 -0
- package/src/components/layout/page-layout.tsx +14 -28
- package/src/components/layout/page-with-header.tsx +110 -0
- package/src/components/layout/title-block.tsx +40 -86
- package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
- package/src/components/shared/dev-section/index.ts +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +1 -2
- package/src/components/ui/index.ts +1 -0
- package/dist/chunk-2X4HTRQ4.js.map +0 -1
- package/dist/chunk-7KTSRZI4.cjs.map +0 -1
- package/dist/chunk-FVLEE7YZ.cjs.map +0 -1
- package/dist/chunk-JO6EUJGU.js.map +0 -1
- package/dist/chunk-RNF2E736.cjs.map +0 -1
- package/dist/chunk-UAJAJFI6.cjs.map +0 -1
- package/dist/chunk-Y2D2RJQX.js.map +0 -1
- /package/dist/{chunk-INZOAK77.js.map → chunk-FG4XA6NA.js.map} +0 -0
- /package/dist/{chunk-YV73VRRY.js.map → chunk-OFLTDHC2.js.map} +0 -0
- /package/dist/{chunk-45DC5AJC.js.map → chunk-UMYWG5C3.js.map} +0 -0
- /package/dist/{chunk-DOYOOBP4.js.map → chunk-VAH46QQO.js.map} +0 -0
- /package/dist/{chunk-ZXIM2DJM.js.map → chunk-ZRSS67EY.js.map} +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Page-header primitive — the canonical "back-button + title + subtitle
|
|
4
|
+
* + (optional) image / actions" chrome every lib page uses.
|
|
5
|
+
*
|
|
6
|
+
* Owns the SSOT for the page-header DOM/CSS that the rest of the lib
|
|
7
|
+
* was duplicating: pre-`mb` top padding, h1 typography (`text-h2`), h6
|
|
8
|
+
* subtitle (`text-h6`), the gap between the back button and the title
|
|
9
|
+
* block, and the right-side actions slot. Consumers either render this
|
|
10
|
+
* directly (e.g. `<DocViewer>` / `<DocsHubPage>`) or compose it through
|
|
11
|
+
* the `<TitleBlock>` adapter which adds the `PageActions` /
|
|
12
|
+
* `ActionsMenu` / selector wiring on top.
|
|
13
|
+
*
|
|
14
|
+
* Why this exists: knowledge-hub vs releases sat at different vertical
|
|
15
|
+
* rhythms (px-perfect mismatch on title baseline + subtitle offset)
|
|
16
|
+
* because the docs surface hand-rolled its own chrome instead of going
|
|
17
|
+
* through `TitleBlock`. Centralizing the layout here means every
|
|
18
|
+
* embeddable lib page (DocViewer, DevSectionPage, LegalDocumentPage,
|
|
19
|
+
* OnboardingGuideDetailView) renders pixel-identical title/subtitle/
|
|
20
|
+
* back-button typography + spacing — and a future spacing/typography
|
|
21
|
+
* tweak is one file.
|
|
22
|
+
*/
|
|
23
|
+
export interface PageHeaderProps {
|
|
24
|
+
/** Page title (h1). Plain string — ReactNode is intentionally not
|
|
25
|
+
* supported here so every consumer renders the same typography. */
|
|
26
|
+
title?: string;
|
|
27
|
+
/** Optional icon rendered inline before the title text (e.g. the
|
|
28
|
+
* rocket emoji on /releases, the docs icon on /knowledge-base).
|
|
29
|
+
* Same `flex items-center gap-3` row as `<DevSectionView>`'s hero. */
|
|
30
|
+
titleIcon?: React.ReactNode;
|
|
31
|
+
/** Page subtitle (description paragraph). */
|
|
32
|
+
subtitle?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Render a yellow accent dot (`.`) after the title. Mirrors the
|
|
35
|
+
* hub's legacy `<AdminPageHeader accentDot>` flag — now lib-wide so
|
|
36
|
+
* surfaces like `/knowledge-base` keep their existing accent styling
|
|
37
|
+
* after the migration.
|
|
38
|
+
*/
|
|
39
|
+
accentDot?: boolean;
|
|
40
|
+
/** Optional thumbnail / hero image rendered to the left of the
|
|
41
|
+
* title block. Used by entity-image-style headers (onboarding
|
|
42
|
+
* guides, knowledge-base entries). */
|
|
43
|
+
image?: {
|
|
44
|
+
src: string;
|
|
45
|
+
alt?: string;
|
|
46
|
+
};
|
|
47
|
+
/** Back-button shown above the title block. Hidden on mobile (matches
|
|
48
|
+
* the existing TitleBlock + DocViewer behavior). */
|
|
49
|
+
backButton?: {
|
|
50
|
+
label?: string;
|
|
51
|
+
onClick: () => void;
|
|
52
|
+
};
|
|
53
|
+
/** Right-side actions slot (action buttons / menu / tab selector).
|
|
54
|
+
* Composed externally (e.g. `<TitleBlock>` builds `PageActions` + menu
|
|
55
|
+
* + selector and passes the result here). */
|
|
56
|
+
actions?: React.ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Visual variant.
|
|
59
|
+
* - `plain` (default): transparent background, no border.
|
|
60
|
+
* - `card`: card background, border, and padding on mobile only —
|
|
61
|
+
* collapses to plain on md+ (legacy `TitleBlock` variant — kept so
|
|
62
|
+
* surfaces that depend on the card affordance don't regress).
|
|
63
|
+
*/
|
|
64
|
+
variant?: 'plain' | 'card';
|
|
65
|
+
/** When the consumer wraps `<PageHeader>` in its OWN spacing container
|
|
66
|
+
* (e.g. `<DevSectionView>`'s `gap-10 flex-col`), the default `mb-l`
|
|
67
|
+
* bottom margin doubles up. Pass `noBottomMargin` to opt out. */
|
|
68
|
+
noBottomMargin?: boolean;
|
|
69
|
+
/** Same as `noBottomMargin` for the default `pt-l` top padding. Set
|
|
70
|
+
* this when PageHeader is nested INSIDE another layout that already
|
|
71
|
+
* provides top spacing (e.g. `<DevSectionView>`'s hero, which sits
|
|
72
|
+
* inside `<PageLayout>`'s children flow). */
|
|
73
|
+
noTopPadding?: boolean;
|
|
74
|
+
className?: string;
|
|
75
|
+
}
|
|
76
|
+
export declare function PageHeader({ title, titleIcon, subtitle, accentDot, image, backButton, actions, variant, noBottomMargin, noTopPadding, className, }: PageHeaderProps): React.JSX.Element;
|
|
77
|
+
export default PageHeader;
|
|
78
|
+
//# sourceMappingURL=page-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B;wEACoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;2EAEuE;IACvE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;2CAEuC;IACvC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC;yDACqD;IACrD,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD;;kDAE8C;IAC9C,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B;;sEAEkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;kDAG8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmBD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,OAAiB,EACjB,cAAsB,EACtB,YAAoB,EACpB,SAAS,GACV,EAAE,eAAe,qBA0EjB;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -5,6 +5,11 @@ export interface PageLayoutProps {
|
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
title?: string;
|
|
7
7
|
subtitle?: string;
|
|
8
|
+
/** Inline icon rendered before the title text — forwarded to
|
|
9
|
+
* TitleBlock/PageHeader. Same shape as DevSectionPage's hero icon. */
|
|
10
|
+
titleIcon?: React.ReactNode;
|
|
11
|
+
/** Yellow accent dot after the title — forwarded to TitleBlock/PageHeader. */
|
|
12
|
+
accentDot?: boolean;
|
|
8
13
|
image?: {
|
|
9
14
|
src: string;
|
|
10
15
|
alt?: string;
|
|
@@ -29,9 +34,13 @@ export interface PageLayoutProps {
|
|
|
29
34
|
*
|
|
30
35
|
* Uses `--spacing-system-l` as the gap between sections.
|
|
31
36
|
*/
|
|
32
|
-
export declare function PageLayout({ children, title, subtitle, image, backButton, actions, actionsVariant, menuActions, selector, headerVariant, className, contentClassName, showHeader, }: PageLayoutProps): React.JSX.Element;
|
|
37
|
+
export declare function PageLayout({ children, title, subtitle, titleIcon, accentDot, image, backButton, actions, actionsVariant, menuActions, selector, headerVariant, className, contentClassName, showHeader, }: PageLayoutProps): React.JSX.Element;
|
|
33
38
|
export type { PageActionButton } from '../ui/page-actions';
|
|
34
39
|
export { TitleBlock } from './title-block';
|
|
35
40
|
export type { TitleBlockProps } from './title-block';
|
|
41
|
+
export { PageHeader } from './page-header';
|
|
42
|
+
export type { PageHeaderProps } from './page-header';
|
|
43
|
+
export { PageWithHeader } from './page-with-header';
|
|
44
|
+
export type { PageWithHeaderProps } from './page-with-header';
|
|
36
45
|
export default PageLayout;
|
|
37
46
|
//# sourceMappingURL=page-layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-layout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;2EACuE;IACvE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,UAAiB,GAClB,EAAE,eAAe,qBA4BjB;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PageHeaderProps } from './page-header';
|
|
3
|
+
/**
|
|
4
|
+
* `<PageWithHeader>` — the canonical 4-layer unified-chrome wrapper that
|
|
5
|
+
* every public lib/hub page now uses (Knowledge Hub, Roadmap, FAQs,
|
|
6
|
+
* Authors, Blog, Vendors, Case Studies, Interviews, Investor Updates,
|
|
7
|
+
* /webinars-/podcasts-/events, hub admin-but-public pages, …).
|
|
8
|
+
*
|
|
9
|
+
* Renders the same JSX tree every consumer was hand-rolling individually
|
|
10
|
+
* before this helper landed:
|
|
11
|
+
*
|
|
12
|
+
* PageShell ← bg-ods-bg, max-w-[1920px],
|
|
13
|
+
* page-shell-px/pt/pb gutters
|
|
14
|
+
* PageLayout backButton ← TitleBlock → PageHeader #1 (back-btn row
|
|
15
|
+
* only, pt-l + mb-l)
|
|
16
|
+
* div.w-full.flex-col.gap-10 ← matches DevSectionView's hero container
|
|
17
|
+
* PageHeader title/subtitle ← PageHeader #2 (noTopPadding +
|
|
18
|
+
* titleIcon accentDot noBottomMargin so PageLayout's gap-l owns
|
|
19
|
+
* noTopPadding the spacing between #1 and #2)
|
|
20
|
+
* noBottomMargin
|
|
21
|
+
* children ← page-specific body (search, lists, forms)
|
|
22
|
+
*
|
|
23
|
+
* Why this exists: 15+ pages copy-pasted the EXACT same nesting + the
|
|
24
|
+
* EXACT same `noTopPadding + noBottomMargin + accentDot` triplet on the
|
|
25
|
+
* inner `<PageHeader>`. Forgetting one of those flags collapsed the gap
|
|
26
|
+
* to ~8px (the FAQs-vs-Onboarding-Guides bug). Centralizing the chain
|
|
27
|
+
* here makes the spacing invariant compiler-enforced — consumers can't
|
|
28
|
+
* pick the wrong combination.
|
|
29
|
+
*
|
|
30
|
+
* **Back button is config-driven by default.** Consumers don't have to
|
|
31
|
+
* thread `useRouter()` + `() => router.push('/')` themselves anymore —
|
|
32
|
+
* the helper supplies a sane default (`{ label: 'Back to home', href: '/' }`).
|
|
33
|
+
* Hosts whose `/` lives elsewhere should pass their own `href`. Pass
|
|
34
|
+
* `backButton={false}` to suppress entirely (the lib's own
|
|
35
|
+
* `<DocsHubPage>` does this on the platform-home docs landing).
|
|
36
|
+
*/
|
|
37
|
+
export interface PageWithHeaderProps {
|
|
38
|
+
/** Title — passed straight to inner `<PageHeader>`. */
|
|
39
|
+
title?: string;
|
|
40
|
+
/** Inline icon rendered before the title (lucide / SVG node). Wrap with
|
|
41
|
+
* `SECTION_HERO_ICON_CLASS` at the call site, or use the lib's
|
|
42
|
+
* `<PageHeader>`'s `titleIcon` ReactNode signature directly. */
|
|
43
|
+
titleIcon?: PageHeaderProps['titleIcon'];
|
|
44
|
+
/** Subtitle (1-2 lines, auto-clamped to 2 + min-h-[56px]). */
|
|
45
|
+
subtitle?: string;
|
|
46
|
+
/** Render yellow accent dot after the title (default true — matches every
|
|
47
|
+
* unified surface). Pass `false` to opt out. */
|
|
48
|
+
accentDot?: boolean;
|
|
49
|
+
/** Back-button config. Defaults to `{ label: 'Back to home', href: '/' }`.
|
|
50
|
+
* Pass `false` to hide entirely (platform-home docs landings). */
|
|
51
|
+
backButton?: {
|
|
52
|
+
label?: string;
|
|
53
|
+
href?: string;
|
|
54
|
+
} | false;
|
|
55
|
+
/** Optional image (entity-image-style — onboarding guides etc.). */
|
|
56
|
+
image?: PageHeaderProps['image'];
|
|
57
|
+
/** Optional actions slot (right side of header). */
|
|
58
|
+
actions?: React.ReactNode;
|
|
59
|
+
/** Page body — search bars, lists, forms, sections. Rendered INSIDE the
|
|
60
|
+
* gap-10 flex column so it shares gutters + vertical rhythm with the
|
|
61
|
+
* header. */
|
|
62
|
+
children: React.ReactNode;
|
|
63
|
+
/** Extra class applied to the gap-10 content wrapper. */
|
|
64
|
+
contentClassName?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare function PageWithHeader({ title, titleIcon, subtitle, accentDot, backButton, image, actions, children, contentClassName, }: PageWithHeaderProps): React.JSX.Element;
|
|
67
|
+
//# sourceMappingURL=page-with-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-with-header.d.ts","sourceRoot":"","sources":["../../../src/components/layout/page-with-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;qEAEiE;IACjE,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;qDACiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;uEACmE;IACnE,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAA;IACtD,oEAAoE;IACpE,KAAK,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAChC,oDAAoD;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;kBAEc;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAgB,EAChB,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,GACjB,EAAE,mBAAmB,qBA8BrB"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ActionsMenuGroup } from '../ui/actions-menu';
|
|
3
3
|
import { type PageActionButton } from '../ui/page-actions';
|
|
4
|
+
/**
|
|
5
|
+
* `<TitleBlock>` — thin adapter over `<PageHeader>` that turns the
|
|
6
|
+
* `actions: PageActionButton[]` / `menuActions` / `selector` API into
|
|
7
|
+
* a `ReactNode` slot that PageHeader can render. Kept as a separate
|
|
8
|
+
* component for backwards compatibility (`PageLayout` consumes it,
|
|
9
|
+
* external callers may too) — all the DOM/CSS lives in PageHeader.
|
|
10
|
+
*
|
|
11
|
+
* If a new consumer doesn't need the `PageActions` wiring, prefer
|
|
12
|
+
* `<PageHeader>` directly.
|
|
13
|
+
*/
|
|
4
14
|
export interface TitleBlockProps {
|
|
5
15
|
title?: string;
|
|
6
16
|
subtitle?: string;
|
|
17
|
+
/** Inline icon rendered before the title text (e.g. HelpCircle on /faqs,
|
|
18
|
+
* BookOpen on /knowledge-base, Map on /roadmap). Forwarded verbatim to
|
|
19
|
+
* `<PageHeader>`. */
|
|
20
|
+
titleIcon?: React.ReactNode;
|
|
21
|
+
/** Yellow accent dot after the title — same flag as PageHeader. */
|
|
22
|
+
accentDot?: boolean;
|
|
7
23
|
image?: {
|
|
8
24
|
src: string;
|
|
9
25
|
alt?: string;
|
|
@@ -25,6 +41,6 @@ export interface TitleBlockProps {
|
|
|
25
41
|
variant?: 'plain' | 'card';
|
|
26
42
|
className?: string;
|
|
27
43
|
}
|
|
28
|
-
export declare function TitleBlock({ title, subtitle, image, backButton, actions, actionsVariant, menuActions, selector, variant, className, }: TitleBlockProps): React.JSX.Element;
|
|
44
|
+
export declare function TitleBlock({ title, subtitle, titleIcon, accentDot, image, backButton, actions, actionsVariant, menuActions, selector, variant, className, }: TitleBlockProps): React.JSX.Element;
|
|
29
45
|
export default TitleBlock;
|
|
30
46
|
//# sourceMappingURL=title-block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title-block.d.ts","sourceRoot":"","sources":["../../../src/components/layout/title-block.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"title-block.d.ts","sourceRoot":"","sources":["../../../src/components/layout/title-block.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGvE;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;0BAEsB;IACtB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACpD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,cAAc,CAAC,EAAE,cAAc,GAAG,iBAAiB,GAAG,cAAc,CAAA;IACpE,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,cAA+B,EAC/B,WAAW,EACX,QAAQ,EACR,OAAiB,EACjB,SAAS,GACV,EAAE,eAAe,qBA2BjB;AAED,eAAe,UAAU,CAAA"}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
var
|
|
31
|
+
var _chunkKZGSVTRPcjs = require('../../chunk-KZGSVTRP.cjs');
|
|
32
32
|
require('../../chunk-G56GYN7Z.cjs');
|
|
33
33
|
require('../../chunk-N2DVKXN4.cjs');
|
|
34
34
|
require('../../chunk-BZFW3FOF.cjs');
|
|
@@ -71,5 +71,5 @@ require('../../chunk-VRHGVLSL.cjs');
|
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
exports.AppHeader =
|
|
74
|
+
exports.AppHeader = _chunkKZGSVTRPcjs.AppHeader; exports.AppLayout = _chunkKZGSVTRPcjs.AppLayout; exports.AppLayoutDrawer = _chunkKZGSVTRPcjs.AppLayoutDrawerRoot; exports.AppLayoutDrawerBody = _chunkKZGSVTRPcjs.AppLayoutDrawerBody; exports.AppLayoutDrawerClose = _chunkKZGSVTRPcjs.AppLayoutDrawerClose; exports.AppLayoutDrawerContent = _chunkKZGSVTRPcjs.AppLayoutDrawerContent; exports.AppLayoutDrawerDescription = _chunkKZGSVTRPcjs.AppLayoutDrawerDescription; exports.AppLayoutDrawerFooter = _chunkKZGSVTRPcjs.AppLayoutDrawerFooter; exports.AppLayoutDrawerHeader = _chunkKZGSVTRPcjs.AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = _chunkKZGSVTRPcjs.AppLayoutDrawerTitle; exports.AppLayoutDrawerTrigger = _chunkKZGSVTRPcjs.AppLayoutDrawerTrigger; exports.ClientOnlyHeader = _chunkKZGSVTRPcjs.ClientOnlyHeader; exports.Header = _chunkKZGSVTRPcjs.Header; exports.HeaderButton = _chunkKZGSVTRPcjs.HeaderButton; exports.HeaderGlobalSearch = _chunkKZGSVTRPcjs.HeaderGlobalSearch; exports.HeaderMingoButton = _chunkKZGSVTRPcjs.HeaderMingoButton; exports.HeaderOrganizationFilter = _chunkKZGSVTRPcjs.HeaderOrganizationFilter; exports.HeaderSkeleton = _chunkKZGSVTRPcjs.HeaderSkeleton; exports.MobileBurgerMenu = _chunkKZGSVTRPcjs.MobileBurgerMenu; exports.MobileNavPanel = _chunkKZGSVTRPcjs.MobileNavPanel; exports.MobileNavigationDropdown = _chunkKZGSVTRPcjs.MobileNavigationDropdown; exports.MultiLevelNavigation = _chunkKZGSVTRPcjs.MultiLevelNavigation; exports.NavigationSidebar = _chunkKZGSVTRPcjs.NavigationSidebar; exports.SlidingSidebar = _chunkKZGSVTRPcjs.SlidingSidebar; exports.StickySectionNav = _chunkKZGSVTRPcjs.StickySectionNav; exports.useAppLayoutDrawerContainer = _chunkKZGSVTRPcjs.useAppLayoutDrawerContainer; exports.useSectionNavigation = _chunkKZGSVTRPcjs.useSectionNavigation;
|
|
75
75
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
StickySectionNav,
|
|
29
29
|
useAppLayoutDrawerContainer,
|
|
30
30
|
useSectionNavigation
|
|
31
|
-
} from "../../chunk-
|
|
31
|
+
} from "../../chunk-SLRDPGGS.js";
|
|
32
32
|
import "../../chunk-JQ2EYXWR.js";
|
|
33
33
|
import "../../chunk-2FI3USTC.js";
|
|
34
34
|
import "../../chunk-EL5YVPD5.js";
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkZCXABON3cjs = require('../../chunk-ZCXABON3.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunk3GYV6RP7cjs = require('../../chunk-3GYV6RP7.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunk2ZHDP22Rcjs = require('../../chunk-2ZHDP22R.cjs');
|
|
@@ -26,7 +26,7 @@ require('../../chunk-VFKQMAUF.cjs');
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkKZGSVTRPcjs = require('../../chunk-KZGSVTRP.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
var _chunkG56GYN7Zcjs = require('../../chunk-G56GYN7Z.cjs');
|
|
@@ -75,7 +75,7 @@ function OnboardingGuidesCatalogSkeleton() {
|
|
|
75
75
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-6 w-40 bg-ods-border/70 rounded" }),
|
|
76
76
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "h-5 w-8 bg-ods-text-secondary/20 rounded-full" })
|
|
77
77
|
] }),
|
|
78
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
78
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "flex flex-col gap-4", children: Array.from({ length: cardCount }).map((_, cardIdx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.OnboardingGuideCardSkeleton, { size: "catalog" }) }, cardIdx)) })
|
|
79
79
|
] }, sectionIdx)) })
|
|
80
80
|
] });
|
|
81
81
|
}
|
|
@@ -144,21 +144,21 @@ function OnboardingGuidesCatalogView({
|
|
|
144
144
|
});
|
|
145
145
|
};
|
|
146
146
|
const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _4 => _4.source]), () => ( "openframe"));
|
|
147
|
-
const docSearch =
|
|
147
|
+
const docSearch = _chunk3GYV6RP7cjs.useDocSearch.call(void 0, {
|
|
148
148
|
source,
|
|
149
149
|
baseRoute: basePath,
|
|
150
150
|
onNavigate: (path) => router.push(path),
|
|
151
151
|
tableIds: ["onboarding-guides"]
|
|
152
152
|
});
|
|
153
153
|
const defaultRenderCard = (guide) => {
|
|
154
|
-
const cta =
|
|
154
|
+
const cta = _chunkKZGSVTRPcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _5 => _5.composeContentUrl]), {
|
|
155
155
|
type: "onboarding_guide",
|
|
156
156
|
slug: guide.slug,
|
|
157
157
|
basePath,
|
|
158
158
|
platforms: guide.onboarding_guide_platforms
|
|
159
159
|
});
|
|
160
160
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
161
|
-
|
|
161
|
+
_chunkKZGSVTRPcjs.OnboardingGuideCard,
|
|
162
162
|
{
|
|
163
163
|
guide,
|
|
164
164
|
href: cta.href,
|
|
@@ -170,7 +170,7 @@ function OnboardingGuidesCatalogView({
|
|
|
170
170
|
const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
|
|
171
171
|
const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
172
172
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
173
|
-
|
|
173
|
+
_chunk3GYV6RP7cjs.DocSearchBar,
|
|
174
174
|
{
|
|
175
175
|
placeholder: "Search onboarding guides, releases, case studies\u2026",
|
|
176
176
|
query: docSearch.query,
|
|
@@ -182,7 +182,7 @@ function OnboardingGuidesCatalogView({
|
|
|
182
182
|
}
|
|
183
183
|
),
|
|
184
184
|
sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
185
|
-
|
|
185
|
+
_chunkKZGSVTRPcjs.FilterPillRow,
|
|
186
186
|
{
|
|
187
187
|
label: "Section",
|
|
188
188
|
selectedValue: activeSection,
|
|
@@ -192,7 +192,7 @@ function OnboardingGuidesCatalogView({
|
|
|
192
192
|
)
|
|
193
193
|
] });
|
|
194
194
|
if (selfFetch && guidesRes.error) {
|
|
195
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
195
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
|
|
196
196
|
}
|
|
197
197
|
if (selfFetch && guidesRes.data == null && isLoading) {
|
|
198
198
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
|
|
@@ -223,7 +223,7 @@ function OnboardingGuideDetailView({
|
|
|
223
223
|
slug,
|
|
224
224
|
guideEndpoint,
|
|
225
225
|
related = [],
|
|
226
|
-
MarkdownRenderer =
|
|
226
|
+
MarkdownRenderer = _chunkKZGSVTRPcjs.RichMarkdownRenderer,
|
|
227
227
|
renderRelatedCard,
|
|
228
228
|
backHref,
|
|
229
229
|
backLabel = "Back to Getting Started",
|
|
@@ -234,35 +234,35 @@ function OnboardingGuideDetailView({
|
|
|
234
234
|
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
235
235
|
const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
|
|
236
236
|
const { data: guide, isLoading, error, reload } = _chunk2ZHDP22Rcjs.useSelfFetch.call(void 0, url, { initialData });
|
|
237
|
-
const { ref: videoWarmupRef } =
|
|
237
|
+
const { ref: videoWarmupRef } = _chunkKZGSVTRPcjs.useVideoWarmup.call(void 0, {
|
|
238
238
|
videoUrl: _optionalChain([guide, 'optionalAccess', _6 => _6.main_video_url]),
|
|
239
239
|
supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _7 => _7.endpoints, 'access', _8 => _8.supabaseStorageOrigin])
|
|
240
240
|
});
|
|
241
241
|
if (error || !guide && !isLoading) {
|
|
242
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
242
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.LoadError, { message: "Guide not found.", onRetry: reload }) });
|
|
243
243
|
}
|
|
244
244
|
if (!guide) {
|
|
245
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
245
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZCXABON3cjs.DetailPageSkeleton, { bare: true, showImageGallery: false }) }) });
|
|
246
246
|
}
|
|
247
|
-
const captionsUrl =
|
|
247
|
+
const captionsUrl = _chunkKZGSVTRPcjs.getCaptionsUrl.call(void 0, "onboarding_guide", guide.id, guide.srt_content);
|
|
248
248
|
const videoPoster = guide.main_video_thumbnail || guide.featured_image || guide.og_image_url || // `buildOgPlaceholderUrl` always returns a usable string (relative route at
|
|
249
249
|
// worst), so it's the terminal fallback — no trailing `|| undefined` needed.
|
|
250
250
|
_chunkG56GYN7Zcjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints]), guide.title, { aspect: "wide" });
|
|
251
251
|
const defaultRenderRelatedCard = (g) => {
|
|
252
|
-
const cta =
|
|
252
|
+
const cta = _chunkKZGSVTRPcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _10 => _10.composeContentUrl]), {
|
|
253
253
|
type: "onboarding_guide",
|
|
254
254
|
slug: g.slug,
|
|
255
255
|
basePath,
|
|
256
256
|
platforms: g.onboarding_guide_platforms
|
|
257
257
|
});
|
|
258
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
258
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.OnboardingGuideCard, { guide: g, href: cta.href, targetPlatform: cta.targetPlatform });
|
|
259
259
|
};
|
|
260
260
|
const renderRelatedCardFn = _nullishCoalesce(renderRelatedCard, () => ( defaultRenderRelatedCard));
|
|
261
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
261
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkKZGSVTRPcjs.PageLayout, { backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) }, children: [
|
|
262
262
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: guide.title }),
|
|
263
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
263
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkKZGSVTRPcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
|
|
264
264
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
265
|
-
|
|
265
|
+
_chunkKZGSVTRPcjs.EntityAuthorCard,
|
|
266
266
|
{
|
|
267
267
|
author: guide.author,
|
|
268
268
|
authorHref,
|
|
@@ -277,7 +277,7 @@ function OnboardingGuideDetailView({
|
|
|
277
277
|
}
|
|
278
278
|
),
|
|
279
279
|
(guide.main_video_url || guide.youtube_url) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: videoWarmupRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
280
|
-
|
|
280
|
+
_chunkKZGSVTRPcjs.EntityVideoSection,
|
|
281
281
|
{
|
|
282
282
|
mainVideoUrl: guide.main_video_url,
|
|
283
283
|
youtubeUrl: guide.youtube_url || void 0,
|
|
@@ -294,7 +294,7 @@ function OnboardingGuideDetailView({
|
|
|
294
294
|
) }),
|
|
295
295
|
guide.content && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownRenderer, { content: guide.content }) }),
|
|
296
296
|
guide.video_bites && guide.video_bites.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
297
|
-
|
|
297
|
+
_chunkKZGSVTRPcjs.VideoBitesDisplay,
|
|
298
298
|
{
|
|
299
299
|
bites: guide.video_bites,
|
|
300
300
|
filterPublished: true,
|
|
@@ -302,7 +302,7 @@ function OnboardingGuideDetailView({
|
|
|
302
302
|
}
|
|
303
303
|
),
|
|
304
304
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
305
|
-
|
|
305
|
+
_chunkZCXABON3cjs.ArticleAuthorByline,
|
|
306
306
|
{
|
|
307
307
|
author: _nullishCoalesce(_optionalChain([guide, 'access', _11 => _11.author, 'optionalAccess', _12 => _12.full_name]), () => ( null)),
|
|
308
308
|
avatar: _optionalChain([guide, 'access', _13 => _13.author, 'optionalAccess', _14 => _14.avatar_url]),
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
ArticleAuthorByline,
|
|
4
4
|
DetailPageSkeleton
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-VAH46QQO.js";
|
|
6
6
|
import {
|
|
7
7
|
DocSearchBar,
|
|
8
8
|
useDocSearch
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-JEHWEKWA.js";
|
|
10
10
|
import {
|
|
11
11
|
useSelfFetch
|
|
12
12
|
} from "../../chunk-JQLC2FVM.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
getCaptionsUrl,
|
|
27
27
|
resolveContentHref,
|
|
28
28
|
useVideoWarmup
|
|
29
|
-
} from "../../chunk-
|
|
29
|
+
} from "../../chunk-SLRDPGGS.js";
|
|
30
30
|
import {
|
|
31
31
|
buildOgPlaceholderUrl
|
|
32
32
|
} from "../../chunk-JQ2EYXWR.js";
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkUNWVMS3Ecjs = require('../../chunk-UNWVMS3E.cjs');
|
|
6
6
|
require('../../chunk-2ZHDP22R.cjs');
|
|
7
|
-
require('../../chunk-
|
|
7
|
+
require('../../chunk-KZGSVTRP.cjs');
|
|
8
8
|
require('../../chunk-G56GYN7Z.cjs');
|
|
9
9
|
require('../../chunk-N2DVKXN4.cjs');
|
|
10
10
|
require('../../chunk-BZFW3FOF.cjs');
|
|
@@ -22,5 +22,5 @@ require('../../chunk-VRHGVLSL.cjs');
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
exports.GROUP_PAGE_SIZE =
|
|
25
|
+
exports.GROUP_PAGE_SIZE = _chunkUNWVMS3Ecjs.GROUP_PAGE_SIZE; exports.RelatedContentSection = _chunkUNWVMS3Ecjs.RelatedContentSection;
|
|
26
26
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
GROUP_PAGE_SIZE,
|
|
4
4
|
RelatedContentSection
|
|
5
|
-
} from "../../chunk-
|
|
5
|
+
} from "../../chunk-ZRSS67EY.js";
|
|
6
6
|
import "../../chunk-JQLC2FVM.js";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-SLRDPGGS.js";
|
|
8
8
|
import "../../chunk-JQ2EYXWR.js";
|
|
9
9
|
import "../../chunk-2FI3USTC.js";
|
|
10
10
|
import "../../chunk-EL5YVPD5.js";
|
|
@@ -15,6 +15,15 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { ReactNode } from 'react';
|
|
17
17
|
import { type OpenframeDevSectionKey } from '../../../utils/dev-sections/openframe-dev-sections';
|
|
18
|
+
/** Re-export the constant so existing dev-section call sites keep their
|
|
19
|
+
* old import path. The canonical home is `src/utils/page-header-constants.ts`
|
|
20
|
+
* (NOT a `'use client'` module) so server modules can import it without
|
|
21
|
+
* Next.js turning it into a client reference proxy — that proxy is what
|
|
22
|
+
* blew up lucide's `mergeClasses().trim()` when used as
|
|
23
|
+
* `<Icon className={SECTION_HERO_ICON_CLASS} />` inside a hub
|
|
24
|
+
* server-component preset. */
|
|
25
|
+
import { SECTION_HERO_ICON_CLASS } from '../../../utils/page-header-constants';
|
|
26
|
+
export { SECTION_HERO_ICON_CLASS };
|
|
18
27
|
export interface DevSectionPageProps {
|
|
19
28
|
sectionKey: OpenframeDevSectionKey;
|
|
20
29
|
/** The page-specific list body (e.g. `<RoadmapList />`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-section-page.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/dev-section-page.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-section-page.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/dev-section-page.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oDAAoD,CAAC;AAE5D;;;;;;+BAM+B;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,sBAAsB,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,EAAE,SAAS,CAAC;IACpB;;;0CAGsC;IACtC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;iFAG6E;IAC7E,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;IACvD;;6CAEyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,KAAK,EACL,QAAQ,GACT,EAAE,mBAAmB,+BAkCrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-section-view.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/dev-section-view.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-section-view.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/dev-section-view.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oDAAoD,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC;4DACwD;IACxD,UAAU,EAAE,sBAAsB,CAAC;IACnC;oDACgD;IAChD,IAAI,CAAC,EAAE;QACL;;8DAEsD;QACtD,IAAI,EAAE,SAAS,CAAC;QAChB;;iDAEyC;QACzC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;;;uEAKmE;IACnE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;mDAC+C;IAC/C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,mBAAmB,+BA0F9F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { DevSectionView, type DevSectionViewProps } from './dev-section-view';
|
|
2
|
-
export { DevSectionPage, type DevSectionPageProps } from './dev-section-page';
|
|
2
|
+
export { DevSectionPage, type DevSectionPageProps, SECTION_HERO_ICON_CLASS } from './dev-section-page';
|
|
3
3
|
export { DevCardRowContent, DevCardRowSkeleton, DevCardRowSkeletonList, type DevCardRowContentProps, } from './dev-card-row';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/dev-section/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-doc-search.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/doc-search/use-doc-search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-doc-search.d.ts","sourceRoot":"","sources":["../../../../src/components/shared/doc-search/use-doc-search.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAUzD,MAAM,WAAW,kBAAkB;IACjC;;iCAE6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd;;;yBAGqB;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB;;uEAEmE;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;wBAGoB;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB;;;;+CAI2C;IAC3C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACxC;;6BAEyB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB;;;;;iCAqFzC,YAAY,cACR;QACV,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB;;EAmGN"}
|