@mdxui/services 0.1.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/README.md ADDED
@@ -0,0 +1,58 @@
1
+ # @mdxui/services
2
+
3
+ The **Services dialect** of the `@mdxui` template family ([ADR 0003](https://github.com/dot-do/startup-sites/blob/main/docs/adr/0003-template-dialects-and-per-archetype-packages.md) §3).
4
+
5
+ Higher-order, **outcome-led** landing components that expose Services-semantic
6
+ props and compose `@mdxui/neo`'s design language — **not** thin neo re-exports.
7
+ A probate valuation has no SDK, no `npm install`, no MCP nav; this dialect speaks
8
+ the Services grammar (eyebrow → headline → outcome predicate, a Defensibility
9
+ two-up, "per report, no subscription" pricing, an intake funnel) instead of
10
+ neo's dev-first rulebook.
11
+
12
+ Extracted from [carriage](https://github.com/dot-do/carriage)'s battle-tested
13
+ `src/chassis/` — proven across 7 products + 4 example services + 26 snapshot
14
+ baselines. The Zod schemas in `./schemas` **are** the dialect's prop contract;
15
+ they were authored in carriage's `mdxui-bridge/extensions` and promoted here
16
+ verbatim (every `upstream-proposal` comment documents why the Services shape
17
+ differs from neo/mdxui's).
18
+
19
+ ## Usage
20
+
21
+ ```tsx
22
+ import { ServicesLandingView } from '@mdxui/services'
23
+
24
+ // The host keeps its derive layer; the package owns the narrative arc.
25
+ const content = deriveCatalog(svc) // → ServicesLandingContent
26
+ return <ServicesLandingView content={content} />
27
+ ```
28
+
29
+ `ServicesLandingView` renders the full arc from one validated content bag:
30
+
31
+ ```
32
+ masthead → hero → problem → what-you-get → how-it-works → defensibility
33
+ → pricing → faq → final-cta → footer
34
+ ```
35
+
36
+ Individual blocks (`Hero`/`ServiceHero`, `Problem`, `WhatYouGet`, `HowItWorks`,
37
+ `Defensibility`, `Pricing`/`ReportPricing`, `Faq`, `FinalCta`, `Masthead`,
38
+ `Footer`, `ScrollHeader`) are exported from `./components` for bespoke layouts.
39
+
40
+ ## Subpath exports
41
+
42
+ - `@mdxui/services` — the view + all components + `parseProps` + `schemas`
43
+ - `@mdxui/services/components` — the higher-order Services blocks
44
+ - `@mdxui/services/schemas` — the Zod prop contract (no runtime/React imports)
45
+ - `@mdxui/services/shared` — `ScrollReveal`, `SectionEyebrow`, `SvgInline`
46
+
47
+ ## Theming
48
+
49
+ Components read the same CSS-variable contract `@mdxui/themes` emits
50
+ (`--ink`/`--accent`/`--cta-*`/`--font-*`, the Tailwind tokens `text-ink`,
51
+ `bg-cta`, `border-line`, …), so a host's per-service theme propagates unchanged.
52
+
53
+ ## Endpoints stay in the host
54
+
55
+ The package ships UI + the prop contract. Checkout/upload/connect endpoints
56
+ (`/api/checkout`, `/api/upload-logo`, `/api/connect/*`) are platform concerns —
57
+ the form components accept them as props/callbacks so the package deploys in any
58
+ host.
@@ -0,0 +1,74 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { H as HeroPropsExtended, e as SiteAction, P as ProblemProps$1, f as ProblemItem$1, W as WhatYouGetProps$1, g as WhatYouGetItem$1, a as HowItWorksProps$1, h as HowItWorksStep$1, D as DefensibilityPropsFromSchema, j as DefensibilityColumnFromSchema, k as PriceTier$1, b as PricingPropsExtended, c as Pricing$1, F as FaqPropsExtended, l as FaqItem$1, d as FinalCtaProps$1, M as MastheadProps$1, S as SiteFooterProps, m as SiteFooterLink } from '../index-D2nWoFGI.js';
3
+ import 'zod/v4/core';
4
+ import 'zod';
5
+ import 'react';
6
+
7
+ /** Inline call-to-action. Sourced from the schema — `SiteActionSchema`. */
8
+ type HeroAction = SiteAction;
9
+ /** Hero component props. Sourced from the schema (`HeroPropsExtendedSchema`).
10
+ * The schema is the canonical shape; this component reads `variant`,
11
+ * `showGlyph`, `glyphOnMobile`, `illustration` from it. */
12
+ type HeroProps = HeroPropsExtended;
13
+ declare function HeroSplit({ eyebrow, headline, body, primary, secondary, showGlyph, glyphOnMobile, illustration, }: HeroProps): react_jsx_runtime.JSX.Element;
14
+ declare function PrimaryAction({ action }: {
15
+ action: HeroAction;
16
+ }): react_jsx_runtime.JSX.Element;
17
+ declare function SecondaryAction({ action }: {
18
+ action: HeroAction;
19
+ }): react_jsx_runtime.JSX.Element;
20
+
21
+ declare function Hero(props: HeroProps): react_jsx_runtime.JSX.Element;
22
+
23
+ declare function HeroStacked({ eyebrow, headline, body, primary, secondary, illustration, }: HeroProps): react_jsx_runtime.JSX.Element;
24
+
25
+ type ProblemItem = ProblemItem$1;
26
+ type ProblemProps = ProblemProps$1;
27
+ declare function Problem({ eyebrow, heading, items }: ProblemProps): react_jsx_runtime.JSX.Element;
28
+
29
+ type WhatYouGetItem = WhatYouGetItem$1;
30
+ type WhatYouGetProps = WhatYouGetProps$1;
31
+ declare function WhatYouGet({ eyebrow, heading, sections }: WhatYouGetProps): react_jsx_runtime.JSX.Element | null;
32
+
33
+ type HowItWorksStep = HowItWorksStep$1;
34
+ /** HowItWorks component props. Sourced from `HowItWorksPropsSchema`, which
35
+ * includes the opt-in `stepIllustrations` field. */
36
+ type HowItWorksProps = HowItWorksProps$1;
37
+ declare function HowItWorks({ eyebrow, heading, steps, stepIllustrations, }: HowItWorksProps): react_jsx_runtime.JSX.Element | null;
38
+
39
+ type DefensibilityColumn = DefensibilityColumnFromSchema;
40
+ type DefensibilityProps = DefensibilityPropsFromSchema;
41
+ declare function Defensibility({ eyebrow, heading, columns, caveat, }: DefensibilityProps): react_jsx_runtime.JSX.Element;
42
+
43
+ type PriceTier = PriceTier$1;
44
+ /** Legacy tiered-only props shape (omits `kind` + `currency`). The component
45
+ * accepts EITHER this OR the wider discriminated `Pricing` union. */
46
+ type PricingProps = PricingPropsExtended;
47
+ /** The canonical discriminated `Pricing` union (carries `kind: 'unit'`). */
48
+ type PricingData = Pricing$1;
49
+ /** Component-level accepted props: the legacy tiered-only shape OR the
50
+ * discriminated `Pricing` union. The component branches on `kind` internally. */
51
+ type PricingComponentProps = PricingProps | PricingData;
52
+ declare function Pricing(props: PricingComponentProps): react_jsx_runtime.JSX.Element;
53
+
54
+ type FaqItem = FaqItem$1;
55
+ type FaqProps = FaqPropsExtended;
56
+ declare function Faq({ eyebrow, heading, items }: FaqProps): react_jsx_runtime.JSX.Element | null;
57
+
58
+ type FinalCtaProps = FinalCtaProps$1;
59
+ declare function FinalCta({ eyebrow, headline, primary, secondary, }: FinalCtaProps): react_jsx_runtime.JSX.Element;
60
+
61
+ type MastheadProps = MastheadProps$1;
62
+ declare function Masthead({ brand, cta, eyebrow, narrow }: MastheadProps): react_jsx_runtime.JSX.Element;
63
+
64
+ type FooterLink = SiteFooterLink;
65
+ type FooterProps = SiteFooterProps;
66
+ declare function Footer({ text, links }: FooterProps): react_jsx_runtime.JSX.Element;
67
+
68
+ interface ScrollHeaderProps extends MastheadProps {
69
+ /** Pixels of scrollY before the header reveals. Default 480. */
70
+ threshold?: number;
71
+ }
72
+ declare function ScrollHeader({ threshold, ...mastheadProps }: ScrollHeaderProps): react_jsx_runtime.JSX.Element;
73
+
74
+ export { Defensibility, type DefensibilityColumn, type DefensibilityProps, Faq, type FaqItem, type FaqProps, FinalCta, type FinalCtaProps, Footer, type FooterLink, type FooterProps, Hero, type HeroAction, type HeroProps, HeroSplit, HeroStacked, HowItWorks, type HowItWorksProps, type HowItWorksStep, Masthead, type MastheadProps, type PriceTier, Pricing, type PricingComponentProps, type PricingData, type PricingProps, PrimaryAction, Problem, type ProblemItem, type ProblemProps, Pricing as ReportPricing, ScrollHeader, type ScrollHeaderProps, SecondaryAction, Hero as ServiceHero, WhatYouGet, type WhatYouGetItem, type WhatYouGetProps };