@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 +58 -0
- package/dist/components/index.d.ts +74 -0
- package/dist/components/index.js +615 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index-D2nWoFGI.d.ts +1973 -0
- package/dist/index.d.ts +72 -0
- package/dist/index.js +1322 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +4 -0
- package/dist/schemas/index.js +591 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/shared/index.d.ts +54 -0
- package/dist/shared/index.js +63 -0
- package/dist/shared/index.js.map +1 -0
- package/package.json +109 -0
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 };
|