@mdxui/named 6.3.2 → 7.0.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/components/index.d.ts +1 -51
- package/dist/components/index.js +43 -463
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +59 -334
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +2 -10
- package/dist/schemas/index.js +1 -72
- package/dist/schemas/index.js.map +1 -1
- package/dist/styles.css +319 -0
- package/dist/view/index.d.ts +3 -55
- package/dist/view/index.js +22 -499
- package/dist/view/index.js.map +1 -1
- package/package.json +8 -5
- package/dist/problem-B2-XszSB.d.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schemas/index.ts"],"sourcesContent":["/**\n * Pure-Zod schemas for @mdxui/named section components.\n *\n * This subpath has NO React, no @mdxui/primitives, and no next/* imports —\n * consumers (e.g. dot-do/named-agents) can validate prop data at runtime\n * without pulling Radix, React, or the rest of the UI tree into their build.\n *\n * Each `XxxPropsSchema` is annotated as `z.ZodType<XxxProps>` and cast back\n * (annotate-and-cast pattern) so any future drift between the TS interface\n * and the Zod schema is caught at typecheck — without triggering the\n * variance issues that `satisfies` raises on function / ReactNode fields.\n *\n * Authoring reference: `packages/mdxui/src/zod.ts`.\n * Function / ReactNode handling reference: `packages/mdxui/src/ui/shell/shell.ts`.\n */\nimport { z } from 'zod'\nimport type { IconType } from 'react-icons'\n\n// Re-export the existing interfaces type-only — type-only erases at build,\n// so this entry stays runtime-clean (only `zod` survives in the JS output).\nexport type { HeroProps } from '../components/hero/hero'\nexport type { FAQItem, FAQProps } from '../components/faq/faq'\nexport type { FeatureItem, Feature, FeaturesProps } from '../components/features/features'\nexport type { PricingFeature, PricingProps } from '../components/pricing/pricing'\nexport type { PricingTierFeature, PricingTier, PricingTiersProps } from '../components/pricing/pricing-tiers'\nexport type { CTAButton, CTAProps } from '../components/cta/cta'\nexport type { FormField, ContactProps } from '../components/contact/contact'\nexport type { WorkflowItem, ProblemProps } from '../components/problem/problem'\nexport type { IntegrationNode, AnimationConfig, IntegrationProps } from '../components/integration/integration'\nexport type { NavLink, NavigationProps } from '../components/navigation/navigation'\nexport type { SocialLink, QuickLink, FooterProps } from '../components/footer/footer'\n\n// Import types for the annotate-and-cast assertions below.\nimport type { HeroProps } from '../components/hero/hero'\nimport type { FAQItem, FAQProps } from '../components/faq/faq'\nimport type { FeatureItem, Feature, FeaturesProps } from '../components/features/features'\nimport type { PricingFeature, PricingProps } from '../components/pricing/pricing'\nimport type { PricingTierFeature, PricingTier, PricingTiersProps } from '../components/pricing/pricing-tiers'\nimport type { CTAButton, CTAProps } from '../components/cta/cta'\nimport type { FormField, ContactProps } from '../components/contact/contact'\nimport type { WorkflowItem, ProblemProps } from '../components/problem/problem'\nimport type { IntegrationNode, AnimationConfig, IntegrationProps } from '../components/integration/integration'\nimport type { NavLink, NavigationProps } from '../components/navigation/navigation'\nimport type { SocialLink, QuickLink, FooterProps } from '../components/footer/footer'\n\n// =============================================================================\n// Hero\n// =============================================================================\n\nexport const HeroPropsSchema: z.ZodType<HeroProps> = z.object({\n badgeEmoji: z.string().optional(),\n badgeText: z.string().optional(),\n badgeHref: z.string().optional(),\n heading: z.string().optional(),\n description: z.string().optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n ctaVariant: z.enum(['default', 'secondary', 'outline', 'ghost']).optional(),\n rightImageSrc: z.string().optional(),\n rightImageAlt: z.string().optional(),\n rightImageSizes: z.string().optional(),\n showIconOverlay: z.boolean().optional(),\n marqueeTitle: z.string().optional(),\n marqueeImages: z.array(z.string()).optional(),\n className: z.string().optional(),\n}).describe('Hero section props') as z.ZodType<HeroProps>\n\n// =============================================================================\n// FAQ\n// =============================================================================\n\nexport const FAQItemSchema: z.ZodType<FAQItem> = z.object({\n question: z.string(),\n answer: z.string(),\n}).describe('FAQ item') as z.ZodType<FAQItem>\n\nexport const FAQPropsSchema: z.ZodType<FAQProps> = z.object({\n heading: z.string().optional(),\n faqs: z.array(FAQItemSchema).optional(),\n backgroundColor: z.string().optional(),\n className: z.string().optional(),\n}).describe('FAQ section props') as z.ZodType<FAQProps>\n\n// =============================================================================\n// Features\n// =============================================================================\n\nexport const FeatureItemSchema: z.ZodType<FeatureItem> = z.object({\n text: z.string(),\n}).describe('Feature item (bullet)') as z.ZodType<FeatureItem>\n\nexport const FeatureSchema: z.ZodType<Feature> = z.object({\n title: z.string(),\n description: z.string(),\n items: z.array(FeatureItemSchema),\n code: z.string(),\n badge: z.string(),\n}).describe('Feature card') as z.ZodType<Feature>\n\nexport const FeaturesPropsSchema: z.ZodType<FeaturesProps> = z.object({\n heading: z.string().optional(),\n description: z.string().optional(),\n features: z.array(FeatureSchema).optional(),\n className: z.string().optional(),\n}).describe('Features section props') as z.ZodType<FeaturesProps>\n\n// =============================================================================\n// Pricing (single-tier)\n// =============================================================================\n\nexport const PricingFeatureSchema: z.ZodType<PricingFeature> = z.object({\n text: z.string(),\n}).describe('Pricing feature bullet') as z.ZodType<PricingFeature>\n\nexport const PricingPropsSchema: z.ZodType<PricingProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n price: z.string().optional(),\n priceUnit: z.string().optional(),\n trialText: z.string().optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n featuresHeading: z.string().optional(),\n features: z.array(PricingFeatureSchema).optional(),\n backgroundColor: z.string().optional(),\n securityNote: z.string().optional(),\n className: z.string().optional(),\n}).describe('Single-tier pricing section props') as z.ZodType<PricingProps>\n\n// =============================================================================\n// PricingTiers (multi-tier)\n// =============================================================================\n\nexport const PricingTierFeatureSchema: z.ZodType<PricingTierFeature> = z.object({\n text: z.string(),\n}).describe('Pricing tier feature bullet') as z.ZodType<PricingTierFeature>\n\nexport const PricingTierSchema: z.ZodType<PricingTier> = z.object({\n title: z.string(),\n description: z.string(),\n price: z.string(),\n priceUnit: z.string(),\n ctaText: z.string(),\n ctaVariant: z.enum(['primary', 'secondary']).optional(),\n ctaHref: z.string().optional(),\n features: z.array(PricingTierFeatureSchema),\n image: z.string().optional(),\n imageAlt: z.string().optional(),\n featured: z.boolean().optional(),\n}).describe('Pricing tier card') as z.ZodType<PricingTier>\n\nexport const PricingTiersPropsSchema: z.ZodType<PricingTiersProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n tiers: z.array(PricingTierSchema).optional(),\n backgroundColor: z.string().optional(),\n securityNote: z.string().optional(),\n className: z.string().optional(),\n}).describe('Multi-tier pricing section props') as z.ZodType<PricingTiersProps>\n\n// Backwards-friendly aliases matching the issue's vocabulary.\nexport const Pricing1PropsSchema = PricingPropsSchema\nexport const Pricing2PropsSchema = PricingTiersPropsSchema\n\n// =============================================================================\n// CTA\n// =============================================================================\n\nexport const CTAButtonSchema: z.ZodType<CTAButton> = z.object({\n text: z.string(),\n href: z.string(),\n variant: z.enum(['primary', 'secondary']).optional(),\n showArrow: z.boolean().optional(),\n}).describe('CTA button') as z.ZodType<CTAButton>\n\nexport const CTAPropsSchema: z.ZodType<CTAProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n buttons: z.array(CTAButtonSchema).optional(),\n backgroundColor: z.enum(['light', 'blue', 'green', 'purple', 'orange']).optional(),\n className: z.string().optional(),\n}).describe('CTA section props') as z.ZodType<CTAProps>\n\n// =============================================================================\n// Contact\n// =============================================================================\n\nexport const FormFieldSchema: z.ZodType<FormField> = z.object({\n id: z.string(),\n label: z.string(),\n type: z.enum(['text', 'email', 'tel', 'textarea']),\n placeholder: z.string().optional(),\n required: z.boolean().optional(),\n}).describe('Contact form field') as z.ZodType<FormField>\n\nexport const ContactPropsSchema: z.ZodType<ContactProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n fields: z.array(FormFieldSchema).optional(),\n submitButtonText: z.string().optional(),\n successMessage: z.string().optional(),\n errorMessage: z.string().optional(),\n // Non-translating: function fields are accepted but not deeply validated.\n onSubmit: z.function().optional(),\n backgroundColor: z.string().optional(),\n className: z.string().optional(),\n}).describe('Contact section props') as z.ZodType<ContactProps>\n\n// =============================================================================\n// Problem\n// =============================================================================\n\nexport const WorkflowItemSchema: z.ZodType<WorkflowItem> = z.object({\n // Non-translating: react-icons IconType is a function — round-trip via z.custom.\n icon: z.custom<IconType>((v) => typeof v === 'function'),\n label: z.string(),\n}).describe('Workflow chip') as z.ZodType<WorkflowItem>\n\nexport const ProblemPropsSchema: z.ZodType<ProblemProps> = z.object({\n heading: z.string().optional(),\n headingHighlight: z.string().optional(),\n workflows: z.array(WorkflowItemSchema).optional(),\n subheading: z.string().optional(),\n subheadingHighlight: z.string().optional(),\n highlightColor: z.string().optional(),\n marqueeDuration: z.string().optional(),\n marqueeGap: z.string().optional(),\n backgroundColor: z.string().optional(),\n className: z.string().optional(),\n}).describe('Problem section props') as z.ZodType<ProblemProps>\n\n// =============================================================================\n// Integration\n// =============================================================================\n\nexport const IntegrationNodeSchema: z.ZodType<IntegrationNode> = z.object({\n type: z.enum(['image', 'icon', 'component']),\n // Non-translating: string | React.ReactNode — accept anything, runtime user decides.\n content: z.union([z.string(), z.any()]),\n alt: z.string().optional(),\n className: z.string().optional(),\n}).describe('Integration node (left/right of the beam)') as z.ZodType<IntegrationNode>\n\nexport const AnimationConfigSchema: z.ZodType<AnimationConfig> = z.object({\n startYOffset: z.number().optional(),\n endYOffset: z.number().optional(),\n curvature: z.number().optional(),\n duration: z.number().optional(),\n reverse: z.boolean().optional(),\n}).describe('AnimatedBeam configuration') as z.ZodType<AnimationConfig>\n\nexport const IntegrationPropsSchema: z.ZodType<IntegrationProps> = z.object({\n title: z.string().optional(),\n description: z.string().optional(),\n buttonText: z.string().optional(),\n buttonHref: z.string().optional(),\n leftNode: IntegrationNodeSchema,\n rightNode: IntegrationNodeSchema,\n beamAnimations: z.array(AnimationConfigSchema).optional(),\n gridPatternWidth: z.number().optional(),\n gridPatternHeight: z.number().optional(),\n maxWidth: z.enum(['sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', '7xl']).optional(),\n className: z.string().optional(),\n contentOrder: z.enum(['left', 'right']).optional(),\n}).describe('Integration section props') as z.ZodType<IntegrationProps>\n\n// =============================================================================\n// Navigation\n// =============================================================================\n\nexport const NavLinkSchema: z.ZodType<NavLink> = z.object({\n label: z.string(),\n href: z.string(),\n}).describe('Nav link') as z.ZodType<NavLink>\n\nexport const NavigationPropsSchema: z.ZodType<NavigationProps> = z.object({\n // Non-translating: string | React.ReactNode.\n logo: z.union([z.string(), z.any()]).optional(),\n logoHref: z.string().optional(),\n links: z.array(NavLinkSchema).optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n ctaVariant: z.enum(['default', 'secondary', 'outline', 'ghost', 'link', 'destructive']).optional(),\n className: z.string().optional(),\n maxWidth: z.enum(['sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', '7xl', 'full']).optional(),\n sticky: z.boolean().optional(),\n showScrollEffect: z.boolean().optional(),\n}).describe('Navigation section props') as z.ZodType<NavigationProps>\n\n// =============================================================================\n// Footer\n// =============================================================================\n\nexport const SocialLinkSchema: z.ZodType<SocialLink> = z.object({\n href: z.string(),\n // Non-translating: react-icons IconType is a function — round-trip via z.custom.\n icon: z.custom<IconType>((v) => typeof v === 'function'),\n label: z.string(),\n}).describe('Social link') as z.ZodType<SocialLink>\n\nexport const QuickLinkSchema: z.ZodType<QuickLink> = z.object({\n href: z.string(),\n label: z.string(),\n}).describe('Footer quick link') as z.ZodType<QuickLink>\n\nexport const FooterPropsSchema: z.ZodType<FooterProps> = z.object({\n logo: z.string().optional(),\n description: z.string().optional(),\n socialLinks: z.array(SocialLinkSchema).optional(),\n quickLinks: z.array(QuickLinkSchema).optional(),\n contactTitle: z.string().optional(),\n emailPlaceholder: z.string().optional(),\n // Non-translating: function field.\n onEmailSubmit: z.function().optional(),\n copyrightText: z.string().optional(),\n showThemeToggle: z.boolean().optional(),\n className: z.string().optional(),\n}).describe('Footer section props') as z.ZodType<FooterProps>\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/schemas/index.ts"],"sourcesContent":["/**\n * Pure-Zod schemas for @mdxui/named section components.\n *\n * This subpath has NO React, no @mdxui/primitives, and no next/* imports —\n * consumers (e.g. dot-do/named-agents) can validate prop data at runtime\n * without pulling Radix, React, or the rest of the UI tree into their build.\n *\n * Each `XxxPropsSchema` is annotated as `z.ZodType<XxxProps>` and cast back\n * (annotate-and-cast pattern) so any future drift between the TS interface\n * and the Zod schema is caught at typecheck — without triggering the\n * variance issues that `satisfies` raises on function / ReactNode fields.\n *\n * Authoring reference: `packages/mdxui/src/zod.ts`.\n * Function / ReactNode handling reference: `packages/mdxui/src/ui/shell/shell.ts`.\n */\nimport { z } from 'zod'\nimport type { IconType } from 'react-icons'\n\n// Re-export the existing interfaces type-only — type-only erases at build,\n// so this entry stays runtime-clean (only `zod` survives in the JS output).\nexport type { HeroProps } from '../components/hero/hero'\nexport type { FAQItem, FAQProps } from '../components/faq/faq'\nexport type { FeatureItem, Feature, FeaturesProps } from '../components/features/features'\nexport type { PricingFeature, PricingProps } from '../components/pricing/pricing'\nexport type { PricingTierFeature, PricingTier, PricingTiersProps } from '../components/pricing/pricing-tiers'\nexport type { CTAButton, CTAProps } from '../components/cta/cta'\nexport type { NavLink, NavigationProps } from '../components/navigation/navigation'\nexport type { SocialLink, QuickLink, FooterProps } from '../components/footer/footer'\n\n// Import types for the annotate-and-cast assertions below.\nimport type { HeroProps } from '../components/hero/hero'\nimport type { FAQItem, FAQProps } from '../components/faq/faq'\nimport type { FeatureItem, Feature, FeaturesProps } from '../components/features/features'\nimport type { PricingFeature, PricingProps } from '../components/pricing/pricing'\nimport type { PricingTierFeature, PricingTier, PricingTiersProps } from '../components/pricing/pricing-tiers'\nimport type { CTAButton, CTAProps } from '../components/cta/cta'\nimport type { NavLink, NavigationProps } from '../components/navigation/navigation'\nimport type { SocialLink, QuickLink, FooterProps } from '../components/footer/footer'\n\n// =============================================================================\n// Hero\n// =============================================================================\n\nexport const HeroPropsSchema: z.ZodType<HeroProps> = z.object({\n badgeEmoji: z.string().optional(),\n badgeText: z.string().optional(),\n badgeHref: z.string().optional(),\n heading: z.string().optional(),\n description: z.string().optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n ctaVariant: z.enum(['default', 'secondary', 'outline', 'ghost']).optional(),\n rightImageSrc: z.string().optional(),\n rightImageAlt: z.string().optional(),\n rightImageSizes: z.string().optional(),\n showIconOverlay: z.boolean().optional(),\n marqueeTitle: z.string().optional(),\n marqueeImages: z.array(z.string()).optional(),\n className: z.string().optional(),\n}).describe('Hero section props') as z.ZodType<HeroProps>\n\n// =============================================================================\n// FAQ\n// =============================================================================\n\nexport const FAQItemSchema: z.ZodType<FAQItem> = z.object({\n question: z.string(),\n answer: z.string(),\n}).describe('FAQ item') as z.ZodType<FAQItem>\n\nexport const FAQPropsSchema: z.ZodType<FAQProps> = z.object({\n heading: z.string().optional(),\n faqs: z.array(FAQItemSchema).optional(),\n backgroundColor: z.string().optional(),\n className: z.string().optional(),\n}).describe('FAQ section props') as z.ZodType<FAQProps>\n\n// =============================================================================\n// Features\n// =============================================================================\n\nexport const FeatureItemSchema: z.ZodType<FeatureItem> = z.object({\n text: z.string(),\n}).describe('Feature item (bullet)') as z.ZodType<FeatureItem>\n\nexport const FeatureSchema: z.ZodType<Feature> = z.object({\n title: z.string(),\n description: z.string(),\n items: z.array(FeatureItemSchema),\n code: z.string(),\n badge: z.string(),\n}).describe('Feature card') as z.ZodType<Feature>\n\nexport const FeaturesPropsSchema: z.ZodType<FeaturesProps> = z.object({\n heading: z.string().optional(),\n description: z.string().optional(),\n features: z.array(FeatureSchema).optional(),\n className: z.string().optional(),\n}).describe('Features section props') as z.ZodType<FeaturesProps>\n\n// =============================================================================\n// Pricing (single-tier)\n// =============================================================================\n\nexport const PricingFeatureSchema: z.ZodType<PricingFeature> = z.object({\n text: z.string(),\n}).describe('Pricing feature bullet') as z.ZodType<PricingFeature>\n\nexport const PricingPropsSchema: z.ZodType<PricingProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n price: z.string().optional(),\n priceUnit: z.string().optional(),\n trialText: z.string().optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n featuresHeading: z.string().optional(),\n features: z.array(PricingFeatureSchema).optional(),\n backgroundColor: z.string().optional(),\n securityNote: z.string().optional(),\n className: z.string().optional(),\n}).describe('Single-tier pricing section props') as z.ZodType<PricingProps>\n\n// =============================================================================\n// PricingTiers (multi-tier)\n// =============================================================================\n\nexport const PricingTierFeatureSchema: z.ZodType<PricingTierFeature> = z.object({\n text: z.string(),\n}).describe('Pricing tier feature bullet') as z.ZodType<PricingTierFeature>\n\nexport const PricingTierSchema: z.ZodType<PricingTier> = z.object({\n title: z.string(),\n description: z.string(),\n price: z.string(),\n priceUnit: z.string(),\n ctaText: z.string(),\n ctaVariant: z.enum(['primary', 'secondary']).optional(),\n ctaHref: z.string().optional(),\n features: z.array(PricingTierFeatureSchema),\n image: z.string().optional(),\n imageAlt: z.string().optional(),\n featured: z.boolean().optional(),\n}).describe('Pricing tier card') as z.ZodType<PricingTier>\n\nexport const PricingTiersPropsSchema: z.ZodType<PricingTiersProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n tiers: z.array(PricingTierSchema).optional(),\n backgroundColor: z.string().optional(),\n securityNote: z.string().optional(),\n className: z.string().optional(),\n}).describe('Multi-tier pricing section props') as z.ZodType<PricingTiersProps>\n\n// Backwards-friendly aliases matching the issue's vocabulary.\nexport const Pricing1PropsSchema = PricingPropsSchema\nexport const Pricing2PropsSchema = PricingTiersPropsSchema\n\n// =============================================================================\n// CTA\n// =============================================================================\n\nexport const CTAButtonSchema: z.ZodType<CTAButton> = z.object({\n text: z.string(),\n href: z.string(),\n variant: z.enum(['primary', 'secondary']).optional(),\n showArrow: z.boolean().optional(),\n}).describe('CTA button') as z.ZodType<CTAButton>\n\nexport const CTAPropsSchema: z.ZodType<CTAProps> = z.object({\n heading: z.string().optional(),\n subheading: z.string().optional(),\n buttons: z.array(CTAButtonSchema).optional(),\n backgroundColor: z.enum(['light', 'blue', 'green', 'purple', 'orange']).optional(),\n className: z.string().optional(),\n}).describe('CTA section props') as z.ZodType<CTAProps>\n\n// =============================================================================\n// Navigation\n// =============================================================================\n\nexport const NavLinkSchema: z.ZodType<NavLink> = z.object({\n label: z.string(),\n href: z.string(),\n}).describe('Nav link') as z.ZodType<NavLink>\n\nexport const NavigationPropsSchema: z.ZodType<NavigationProps> = z.object({\n // Non-translating: string | React.ReactNode.\n logo: z.union([z.string(), z.any()]).optional(),\n logoHref: z.string().optional(),\n links: z.array(NavLinkSchema).optional(),\n ctaText: z.string().optional(),\n ctaHref: z.string().optional(),\n ctaVariant: z.enum(['default', 'secondary', 'outline', 'ghost', 'link', 'destructive']).optional(),\n className: z.string().optional(),\n maxWidth: z.enum(['sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', '7xl', 'full']).optional(),\n sticky: z.boolean().optional(),\n showScrollEffect: z.boolean().optional(),\n}).describe('Navigation section props') as z.ZodType<NavigationProps>\n\n// =============================================================================\n// Footer\n// =============================================================================\n\nexport const SocialLinkSchema: z.ZodType<SocialLink> = z.object({\n href: z.string(),\n // Non-translating: react-icons IconType is a function — round-trip via z.custom.\n icon: z.custom<IconType>((v) => typeof v === 'function'),\n label: z.string(),\n}).describe('Social link') as z.ZodType<SocialLink>\n\nexport const QuickLinkSchema: z.ZodType<QuickLink> = z.object({\n href: z.string(),\n label: z.string(),\n}).describe('Footer quick link') as z.ZodType<QuickLink>\n\nexport const FooterPropsSchema: z.ZodType<FooterProps> = z.object({\n logo: z.string().optional(),\n description: z.string().optional(),\n socialLinks: z.array(SocialLinkSchema).optional(),\n quickLinks: z.array(QuickLinkSchema).optional(),\n contactTitle: z.string().optional(),\n emailPlaceholder: z.string().optional(),\n // Non-translating: function field.\n onEmailSubmit: z.function().optional(),\n copyrightText: z.string().optional(),\n showThemeToggle: z.boolean().optional(),\n className: z.string().optional(),\n}).describe('Footer section props') as z.ZodType<FooterProps>\n"],"mappings":"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","names":[]}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @mdxui/named — named-agents theme envelope
|
|
3
|
+
* ============================================================================
|
|
4
|
+
*
|
|
5
|
+
* The named-agents baseline (https://named-agents.vercel.app, source on
|
|
6
|
+
* origin/main, Bryant's 2026-05-27 token + radii + mobile-padding polish) is a
|
|
7
|
+
* distinctive LIGHT design: cream surfaces, warm-ink text, a serif display face
|
|
8
|
+
* (Halant), a persimmon accent, and photographic hero artwork on large
|
|
9
|
+
* `--radius-image` masks.
|
|
10
|
+
*
|
|
11
|
+
* When the named dialect was packaged into @mdxui, its components were
|
|
12
|
+
* reimplemented against @mdxui/neo's GENERIC token vocabulary (`bg-background`,
|
|
13
|
+
* `text-foreground`, `text-muted-foreground`, `bg-card`, `border-border`,
|
|
14
|
+
* `var(--card)`, …) and shipped JSX-only. With no theme CSS the named subtree
|
|
15
|
+
* inherits whatever neo theme the host pins — typically a dark-neo surface — so
|
|
16
|
+
* the cream-serif baseline is lost.
|
|
17
|
+
*
|
|
18
|
+
* This file ships the token DEFINITIONS so the markup the package emits actually
|
|
19
|
+
* renders as the light baseline designed.
|
|
20
|
+
*
|
|
21
|
+
* Consume it from your Tailwind v4 entry (e.g. app/globals.css):
|
|
22
|
+
*
|
|
23
|
+
* @import "@mdxui/named/styles.css";
|
|
24
|
+
*
|
|
25
|
+
* SCOPING (critical)
|
|
26
|
+
* ------------------
|
|
27
|
+
* Everything is scoped under `[data-dialect="named"]` — the wrapper
|
|
28
|
+
* `NamedAgentView` renders around the whole named arc. The named components
|
|
29
|
+
* reference neo's SHARED token names (`--background`, `--card`, `--foreground`,
|
|
30
|
+
* `--muted-foreground`, `--primary`, `--border`, …). The host pins those names
|
|
31
|
+
* globally for its OTHER dialects, and uses `@theme inline`, which can BAKE the
|
|
32
|
+
* value into the generated utility — a CSS-var swap alone may not retarget it.
|
|
33
|
+
* So this envelope does BOTH, defensively:
|
|
34
|
+
*
|
|
35
|
+
* 1. re-points the neo CSS vars inside the scope (covers var()-reading utils
|
|
36
|
+
* + inline `var(--background)` / `var(--card)` styles the markup uses), and
|
|
37
|
+
* 2. ships the neo utilities the named markup references as explicit, SCOPED
|
|
38
|
+
* class rules (`[data-dialect="named"] .bg-background { … }`). They win
|
|
39
|
+
* inside the named subtree by selector specificity, are host-agnostic, and
|
|
40
|
+
* leave every other archetype untouched.
|
|
41
|
+
*
|
|
42
|
+
* It also restores the two things a CSS envelope alone cannot: the Halant serif
|
|
43
|
+
* `.font-halant` display face (loaded via @font-face) and the baseline
|
|
44
|
+
* `--radius-section` / `--radius-image` radii.
|
|
45
|
+
*
|
|
46
|
+
* This is shipped as raw CSS (not precompiled). The @font-face rules and the
|
|
47
|
+
* plain class rules need no Tailwind processing; the consumer can `@import` it
|
|
48
|
+
* directly into its `@import "tailwindcss"` entry.
|
|
49
|
+
*
|
|
50
|
+
* Provenance: named-agents app/globals.css + app/layout.tsx + lib/persona.ts on
|
|
51
|
+
* origin/main (commits 51ee081 color-token-system v2, 62d6f04 tokenized radii,
|
|
52
|
+
* 87268fa mobile padding).
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/* ──────────────────────────────────────────────────────────────────
|
|
56
|
+
FONTS — Halant (serif display) + Atkinson Hyperlegible, self-contained.
|
|
57
|
+
The baseline loads Halant via next/font and Atkinson via @font-face. The
|
|
58
|
+
package can't rely on the host loading either, so the envelope ships both via
|
|
59
|
+
@font-face (Google Fonts woff2). @font-face has no ordering constraint
|
|
60
|
+
(unlike @import url()), so it is safe to drop anywhere in the consumer's entry.
|
|
61
|
+
────────────────────────────────────────────────────────────────── */
|
|
62
|
+
@font-face {
|
|
63
|
+
font-family: 'Halant';
|
|
64
|
+
font-style: normal;
|
|
65
|
+
font-weight: 300;
|
|
66
|
+
font-display: swap;
|
|
67
|
+
src: url('https://fonts.gstatic.com/s/halant/v18/u-490qauQGQXz7Yu63LtNVk.woff2')
|
|
68
|
+
format('woff2');
|
|
69
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
70
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
|
|
71
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
72
|
+
}
|
|
73
|
+
@font-face {
|
|
74
|
+
font-family: 'Halant';
|
|
75
|
+
font-style: normal;
|
|
76
|
+
font-weight: 400;
|
|
77
|
+
font-display: swap;
|
|
78
|
+
src: url('https://fonts.gstatic.com/s/halant/v18/u-4-0qauQGQXz7Yu.woff2')
|
|
79
|
+
format('woff2');
|
|
80
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
81
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
|
|
82
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
83
|
+
}
|
|
84
|
+
@font-face {
|
|
85
|
+
font-family: 'Halant';
|
|
86
|
+
font-style: normal;
|
|
87
|
+
font-weight: 500;
|
|
88
|
+
font-display: swap;
|
|
89
|
+
src: url('https://fonts.gstatic.com/s/halant/v18/u-490qauQGQXz7Yu62vtNVk.woff2')
|
|
90
|
+
format('woff2');
|
|
91
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
92
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
|
|
93
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
94
|
+
}
|
|
95
|
+
@font-face {
|
|
96
|
+
font-family: 'Halant';
|
|
97
|
+
font-style: normal;
|
|
98
|
+
font-weight: 600;
|
|
99
|
+
font-display: swap;
|
|
100
|
+
src: url('https://fonts.gstatic.com/s/halant/v18/u-490qauQGQXz7Yu6yPsNVk.woff2')
|
|
101
|
+
format('woff2');
|
|
102
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
103
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
|
|
104
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
105
|
+
}
|
|
106
|
+
@font-face {
|
|
107
|
+
font-family: 'Halant';
|
|
108
|
+
font-style: normal;
|
|
109
|
+
font-weight: 700;
|
|
110
|
+
font-display: swap;
|
|
111
|
+
src: url('https://fonts.gstatic.com/s/halant/v18/u-490qauQGQXz7Yu6098NVk.woff2')
|
|
112
|
+
format('woff2');
|
|
113
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
114
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,
|
|
115
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
116
|
+
}
|
|
117
|
+
@font-face {
|
|
118
|
+
font-family: 'Atkinson Hyperlegible';
|
|
119
|
+
font-style: normal;
|
|
120
|
+
font-weight: 400 700;
|
|
121
|
+
font-display: swap;
|
|
122
|
+
src: url('https://fonts.gstatic.com/s/atkinsonhyperlegiblenext/v7/NaPNcYPdHfdVxJw0IfIP0lvYFqijb-UxCtm5_wdGseiJn3o.woff2')
|
|
123
|
+
format('woff2');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* ──────────────────────────────────────────────────────────────────
|
|
127
|
+
SCOPE ROOT — baseline tokens, applied ONLY to the named subtree.
|
|
128
|
+
`NamedAgentView` renders `<div data-dialect="named">` around the whole arc;
|
|
129
|
+
these cascade to every section without touching the host page.
|
|
130
|
+
|
|
131
|
+
Two layers:
|
|
132
|
+
• neo SHARED tokens the named markup actually references, RE-POINTED to the
|
|
133
|
+
cream baseline values. This retargets every neo util that reads the var
|
|
134
|
+
and the inline `var(--background)` / `var(--card)` hero/marquee styles.
|
|
135
|
+
• the baseline's own semantic + hue-library + radius tokens, a faithful
|
|
136
|
+
copy of named-agents app/globals.css :root (LIGHT / cream).
|
|
137
|
+
────────────────────────────────────────────────────────────────── */
|
|
138
|
+
[data-dialect='named'] {
|
|
139
|
+
/* ---- neo shared tokens, re-pointed to the cream baseline ----------- */
|
|
140
|
+
/* surfaces */
|
|
141
|
+
--background: oklch(0.945 0.01 95); /* baseline --color-surface */
|
|
142
|
+
--foreground: oklch(0.18 0.008 80); /* baseline --color-fg */
|
|
143
|
+
--card: oklch(0.975 0.005 95); /* baseline --color-surface-raised */
|
|
144
|
+
--card-foreground: oklch(0.18 0.008 80);
|
|
145
|
+
--popover: oklch(0.975 0.005 95);
|
|
146
|
+
--popover-foreground: oklch(0.18 0.008 80);
|
|
147
|
+
--muted: oklch(0.91 0.012 95); /* baseline --color-surface-sunken */
|
|
148
|
+
--muted-foreground: oklch(0.46 0.012 80); /* baseline --color-fg-muted */
|
|
149
|
+
/* primary CTA — neutral ink gradient endpoints collapse to the dark end */
|
|
150
|
+
--primary: oklch(0.06 0 0); /* baseline --color-btn-primary-to */
|
|
151
|
+
--primary-foreground: oklch(0.995 0.005 80); /* --color-btn-primary-fg */
|
|
152
|
+
--secondary: oklch(0.975 0.005 95);
|
|
153
|
+
--secondary-foreground: oklch(0.18 0.008 80);
|
|
154
|
+
--accent: oklch(0.81 0.11 45); /* baseline persimmon --color-accent */
|
|
155
|
+
--accent-foreground: oklch(0.18 0.008 80);
|
|
156
|
+
--border: oklch(0.18 0.008 80 / 0.1); /* baseline --color-border */
|
|
157
|
+
--input: oklch(0.18 0.008 80 / 0.1);
|
|
158
|
+
--ring: oklch(0.18 0.008 80 / 0.35); /* baseline --color-ring */
|
|
159
|
+
--destructive: oklch(0.58 0.18 25);
|
|
160
|
+
--destructive-foreground: oklch(0.995 0.005 80);
|
|
161
|
+
|
|
162
|
+
/* ---- baseline semantic layer (verbatim from globals.css :root) ----- */
|
|
163
|
+
--color-surface: oklch(0.945 0.01 95);
|
|
164
|
+
--color-surface-raised: oklch(0.975 0.005 95);
|
|
165
|
+
--color-surface-sunken: oklch(0.91 0.012 95);
|
|
166
|
+
|
|
167
|
+
--color-fg: oklch(0.18 0.008 80);
|
|
168
|
+
--color-fg-soft: oklch(0.32 0.01 80);
|
|
169
|
+
--color-fg-muted: oklch(0.46 0.012 80);
|
|
170
|
+
|
|
171
|
+
--color-border: oklch(0.18 0.008 80 / 0.1);
|
|
172
|
+
--color-border-strong: oklch(0.18 0.008 80 / 0.25);
|
|
173
|
+
--color-ring: oklch(0.18 0.008 80 / 0.35);
|
|
174
|
+
--color-hover: oklch(0.18 0.008 80 / 0.06);
|
|
175
|
+
|
|
176
|
+
--color-btn-primary-from: oklch(0.315 0.008 250);
|
|
177
|
+
--color-btn-primary-to: oklch(0.06 0 0);
|
|
178
|
+
--color-btn-primary-fg: oklch(0.995 0.005 80);
|
|
179
|
+
|
|
180
|
+
--color-destructive: oklch(0.58 0.18 25);
|
|
181
|
+
--color-destructive-fg: oklch(0.995 0.005 80);
|
|
182
|
+
|
|
183
|
+
/* ---- baseline hue library + persona accent (Priya = persimmon) ----- */
|
|
184
|
+
--hue-teal-soft: oklch(0.95 0.04 210);
|
|
185
|
+
--hue-teal-medium: oklch(0.84 0.095 210);
|
|
186
|
+
--hue-teal-strong: oklch(0.585 0.09 210);
|
|
187
|
+
|
|
188
|
+
--hue-orange-soft: oklch(0.92 0.045 48);
|
|
189
|
+
--hue-orange-medium: oklch(0.81 0.11 45);
|
|
190
|
+
--hue-orange-strong: oklch(0.64 0.165 42);
|
|
191
|
+
|
|
192
|
+
--hue-green-soft: oklch(0.905 0.048 134);
|
|
193
|
+
--hue-green-medium: oklch(0.865 0.07 134);
|
|
194
|
+
--hue-green-strong: oklch(0.635 0.107 134);
|
|
195
|
+
|
|
196
|
+
--hue-sky-blue-soft: oklch(0.95 0.025 235);
|
|
197
|
+
--hue-sky-blue-medium: oklch(0.825 0.1 235);
|
|
198
|
+
--hue-sky-blue-strong: oklch(0.585 0.14 235);
|
|
199
|
+
|
|
200
|
+
--hue-purple-soft: oklch(0.91 0.022 314);
|
|
201
|
+
--hue-purple-medium: oklch(0.86 0.045 314);
|
|
202
|
+
--hue-purple-strong: oklch(0.63 0.065 314);
|
|
203
|
+
|
|
204
|
+
--color-accent-soft: var(--hue-orange-soft);
|
|
205
|
+
--color-accent: var(--hue-orange-medium);
|
|
206
|
+
--color-accent-strong: var(--hue-orange-strong);
|
|
207
|
+
--color-accent-fg: oklch(0.18 0.008 80);
|
|
208
|
+
|
|
209
|
+
/* ---- baseline radii (62d6f04) ------------------------------------- */
|
|
210
|
+
--radius-section: 36px; /* large section containers */
|
|
211
|
+
--radius-image: 64px; /* hero artwork mask */
|
|
212
|
+
|
|
213
|
+
/* ---- fonts — Halant display, Atkinson/Inter body ------------------ */
|
|
214
|
+
--font-halant: 'Halant', ui-serif, Georgia, serif;
|
|
215
|
+
--font-inter: var(--font-inter, 'Atkinson Hyperlegible', system-ui, sans-serif);
|
|
216
|
+
|
|
217
|
+
/* Paint the named surface cream + warm ink, independent of the host's
|
|
218
|
+
dark page, so the editorial sections read on cream. */
|
|
219
|
+
background: var(--color-surface);
|
|
220
|
+
color: var(--color-fg);
|
|
221
|
+
font-family: 'Atkinson Hyperlegible', var(--font-inter), system-ui, sans-serif;
|
|
222
|
+
-webkit-font-smoothing: antialiased;
|
|
223
|
+
-moz-osx-font-smoothing: grayscale;
|
|
224
|
+
text-rendering: optimizeLegibility;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* ════════════════════════════════════════════════════════════════════
|
|
228
|
+
NEO UTILITIES — scoped class rules.
|
|
229
|
+
Every neo utility the named markup references, defined under the subtree so
|
|
230
|
+
it wins by specificity and is host-agnostic (and tree-shake-proof). Mapped to
|
|
231
|
+
the cream baseline values.
|
|
232
|
+
════════════════════════════════════════════════════════════════════ */
|
|
233
|
+
|
|
234
|
+
/* —— Serif display face (baseline `font-halant`) ——————————————————— */
|
|
235
|
+
[data-dialect='named'] .font-halant {
|
|
236
|
+
font-family: var(--font-halant);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* —— Backgrounds —————————————————————————————————————————————————— */
|
|
240
|
+
[data-dialect='named'] .bg-background {
|
|
241
|
+
background-color: var(--color-surface);
|
|
242
|
+
}
|
|
243
|
+
[data-dialect='named'] .bg-card {
|
|
244
|
+
background-color: var(--color-surface-raised);
|
|
245
|
+
}
|
|
246
|
+
[data-dialect='named'] .bg-muted {
|
|
247
|
+
background-color: var(--color-surface-sunken);
|
|
248
|
+
}
|
|
249
|
+
[data-dialect='named'] .bg-primary {
|
|
250
|
+
background-color: var(--color-btn-primary-to);
|
|
251
|
+
}
|
|
252
|
+
[data-dialect='named'] .bg-primary\/10 {
|
|
253
|
+
background-color: oklch(0.06 0 0 / 0.1);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* —— Text colors —————————————————————————————————————————————————— */
|
|
257
|
+
[data-dialect='named'] .text-foreground {
|
|
258
|
+
color: var(--color-fg);
|
|
259
|
+
}
|
|
260
|
+
[data-dialect='named'] .text-foreground\/70 {
|
|
261
|
+
color: oklch(0.18 0.008 80 / 0.7);
|
|
262
|
+
}
|
|
263
|
+
[data-dialect='named'] .text-foreground\/60 {
|
|
264
|
+
color: oklch(0.18 0.008 80 / 0.6);
|
|
265
|
+
}
|
|
266
|
+
[data-dialect='named'] .text-muted-foreground {
|
|
267
|
+
color: var(--color-fg-muted);
|
|
268
|
+
}
|
|
269
|
+
[data-dialect='named'] .text-card-foreground {
|
|
270
|
+
color: var(--color-fg);
|
|
271
|
+
}
|
|
272
|
+
[data-dialect='named'] .text-primary {
|
|
273
|
+
color: var(--color-fg);
|
|
274
|
+
}
|
|
275
|
+
[data-dialect='named'] .text-destructive {
|
|
276
|
+
color: var(--color-destructive);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* —— Borders ——————————————————————————————————————————————————————— */
|
|
280
|
+
[data-dialect='named'] .border-border {
|
|
281
|
+
border-color: var(--color-border);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* —— Fills / strokes (svg accents that read muted-foreground) ———————— */
|
|
285
|
+
[data-dialect='named'] .fill-muted-foreground\/20 {
|
|
286
|
+
fill: oklch(0.46 0.012 80 / 0.2);
|
|
287
|
+
}
|
|
288
|
+
[data-dialect='named'] .stroke-muted-foreground\/20 {
|
|
289
|
+
stroke: oklch(0.46 0.012 80 / 0.2);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* —— Custom utilities the baseline markup relies on ———————————————— */
|
|
293
|
+
[data-dialect='named'] .card-shadow {
|
|
294
|
+
box-shadow: 0px 0.602px 0.602px -1.25px rgba(0, 0, 0, 0.36),
|
|
295
|
+
0px 2.289px 2.289px -2.5px rgba(0, 0, 0, 0.32),
|
|
296
|
+
0px 10px 10px -3.75px rgba(0, 0, 0, 0.13);
|
|
297
|
+
}
|
|
298
|
+
[data-dialect='named'] .feature-card-shadow {
|
|
299
|
+
box-shadow: rgba(0, 0, 0, 0.05) 0px 10px 40px -14px;
|
|
300
|
+
}
|
|
301
|
+
[data-dialect='named'] .integration-square-shadow {
|
|
302
|
+
box-shadow: 0px 0px 0px 1px var(--color-border),
|
|
303
|
+
0px 1px 3px 0px rgba(13, 17, 27, 0.12);
|
|
304
|
+
}
|
|
305
|
+
/* Features section overlay — soft fade from surface-raised to transparent. */
|
|
306
|
+
[data-dialect='named'] .features-gradient {
|
|
307
|
+
background: linear-gradient(
|
|
308
|
+
color-mix(in oklch, var(--color-surface-raised) 54%, transparent) 0%,
|
|
309
|
+
transparent 89.4895%
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
/* Pricing section overlay — surface-raised glow. */
|
|
313
|
+
[data-dialect='named'] .pricing-gradient {
|
|
314
|
+
background: linear-gradient(
|
|
315
|
+
180deg,
|
|
316
|
+
var(--color-surface-raised) 0%,
|
|
317
|
+
transparent 83.55%
|
|
318
|
+
);
|
|
319
|
+
}
|
package/dist/view/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { DialectViewProps } from '@mdxui/dialect';
|
|
3
|
-
import { IconType } from 'react-icons';
|
|
4
|
-
import { W as WorkflowItem } from '../problem-B2-XszSB.js';
|
|
5
3
|
|
|
6
4
|
/** Single FAQ item. */
|
|
7
5
|
type NamedAgentFaqItem = {
|
|
@@ -27,19 +25,6 @@ type NamedAgentHero = {
|
|
|
27
25
|
marqueeTitle?: string;
|
|
28
26
|
marqueeImages?: string[];
|
|
29
27
|
};
|
|
30
|
-
/** Problem — workflow chips + dual-line headline. `icon` is a free-form hint
|
|
31
|
-
* string (the wire can't carry a React component); the mapper resolves it to
|
|
32
|
-
* a react-icons glyph, falling back to a neutral dot. */
|
|
33
|
-
type NamedAgentWorkflow = {
|
|
34
|
-
icon: string;
|
|
35
|
-
label: string;
|
|
36
|
-
};
|
|
37
|
-
type NamedAgentProblem = {
|
|
38
|
-
heading: string;
|
|
39
|
-
workflows: NamedAgentWorkflow[];
|
|
40
|
-
subheading: string;
|
|
41
|
-
subheadingHighlight: string;
|
|
42
|
-
};
|
|
43
28
|
/** Features — numbered cards (title + description + bullet items + code window). */
|
|
44
29
|
type NamedAgentFeature = {
|
|
45
30
|
title: string;
|
|
@@ -107,54 +92,17 @@ type NamedAgentCta = {
|
|
|
107
92
|
subheading?: string;
|
|
108
93
|
buttons: NamedAgentCtaButton[];
|
|
109
94
|
};
|
|
110
|
-
/**
|
|
111
|
-
* (
|
|
112
|
-
type NamedAgentIntegrationNode = {
|
|
113
|
-
type: 'image' | 'icon' | 'component';
|
|
114
|
-
content: string;
|
|
115
|
-
alt?: string;
|
|
116
|
-
};
|
|
117
|
-
type NamedAgentIntegration = {
|
|
118
|
-
title: string;
|
|
119
|
-
description: string;
|
|
120
|
-
buttonText?: string;
|
|
121
|
-
buttonHref?: string;
|
|
122
|
-
leftNode: NamedAgentIntegrationNode;
|
|
123
|
-
rightNode: NamedAgentIntegrationNode;
|
|
124
|
-
};
|
|
125
|
-
/** Contact — presentation-only form (no submit handler on the wire). */
|
|
126
|
-
type NamedAgentContactField = {
|
|
127
|
-
id: string;
|
|
128
|
-
label: string;
|
|
129
|
-
type: 'text' | 'email' | 'tel' | 'textarea';
|
|
130
|
-
placeholder?: string;
|
|
131
|
-
required?: boolean;
|
|
132
|
-
};
|
|
133
|
-
type NamedAgentContact = {
|
|
134
|
-
heading: string;
|
|
135
|
-
subheading?: string;
|
|
136
|
-
fields: NamedAgentContactField[];
|
|
137
|
-
submitButtonText: string;
|
|
138
|
-
};
|
|
139
|
-
/** Full named-agent landing content. */
|
|
95
|
+
/** Full named-agent landing content — the trimmed 5-section design
|
|
96
|
+
* (Hero → Features → Pricing → FAQ → CTA). */
|
|
140
97
|
type NamedAgentLandingContent = {
|
|
141
98
|
hero: NamedAgentHero;
|
|
142
|
-
problem: NamedAgentProblem;
|
|
143
99
|
features: NamedAgentFeatures;
|
|
144
|
-
integration?: NamedAgentIntegration;
|
|
145
100
|
pricing: NamedAgentPricing;
|
|
146
101
|
faq: NamedAgentFaq;
|
|
147
102
|
cta: NamedAgentCta;
|
|
148
|
-
contact?: NamedAgentContact;
|
|
149
103
|
};
|
|
150
104
|
|
|
151
105
|
type NamedAgentViewProps = DialectViewProps<NamedAgentLandingContent>;
|
|
152
106
|
declare function NamedAgentView({ content, theme, mode, brandName, hostname }: NamedAgentViewProps): react_jsx_runtime.JSX.Element;
|
|
153
107
|
|
|
154
|
-
|
|
155
|
-
declare function resolveWorkflowIcon(hint: string): IconType;
|
|
156
|
-
/** Map wire workflows ({ icon: hint, label }) → named Problem `WorkflowItem[]`
|
|
157
|
-
* ({ icon: IconType, label }). */
|
|
158
|
-
declare function mapWorkflows(workflows: NamedAgentWorkflow[]): WorkflowItem[];
|
|
159
|
-
|
|
160
|
-
export { type NamedAgentContact, type NamedAgentContactField, type NamedAgentCta, type NamedAgentCtaButton, type NamedAgentFaq, type NamedAgentFaqItem, type NamedAgentFeature, type NamedAgentFeatures, type NamedAgentHero, type NamedAgentIntegration, type NamedAgentIntegrationNode, type NamedAgentLandingContent, type NamedAgentPricing, type NamedAgentPricingFeature, type NamedAgentPricingTier, type NamedAgentProblem, NamedAgentView, type NamedAgentViewProps, type NamedAgentWorkflow, NamedAgentView as default, mapWorkflows, resolveWorkflowIcon };
|
|
108
|
+
export { type NamedAgentCta, type NamedAgentCtaButton, type NamedAgentFaq, type NamedAgentFaqItem, type NamedAgentFeature, type NamedAgentFeatures, type NamedAgentHero, type NamedAgentLandingContent, type NamedAgentPricing, type NamedAgentPricingFeature, type NamedAgentPricingTier, NamedAgentView, type NamedAgentViewProps, NamedAgentView as default };
|