lion-make 0.1.0 → 0.3.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.
Files changed (109) hide show
  1. package/dist/components/footer/Disclosure.d.ts +3 -2
  2. package/dist/components/footer/DisclosureToggleOpen.d.ts +13 -0
  3. package/dist/components/footer/LegalLinks.d.ts +16 -0
  4. package/dist/components/footer/LinksAndSocial.d.ts +25 -0
  5. package/dist/components/general/AccordionBlock.d.ts +15 -0
  6. package/dist/components/general/AllBlogsPostBlock.d.ts +21 -0
  7. package/dist/components/general/BackgroundColorBlock.d.ts +12 -0
  8. package/dist/components/general/BasicContentBlock.d.ts +18 -0
  9. package/dist/components/general/BodyTextCopyBlock.d.ts +12 -0
  10. package/dist/components/general/ContentImageBlock.d.ts +15 -0
  11. package/dist/components/general/CrossSellCardBlock.d.ts +18 -0
  12. package/dist/components/general/DecorativeListBlock.d.ts +13 -0
  13. package/dist/components/general/EmailCalloutBlock.d.ts +14 -0
  14. package/dist/components/general/EmbeddedVideoBlock.d.ts +15 -0
  15. package/dist/components/general/FullSizeImageWithHighlightBox.d.ts +21 -0
  16. package/dist/components/general/HorizontalRule.d.ts +13 -0
  17. package/dist/components/general/HotJobsBlock.d.ts +21 -0
  18. package/dist/components/general/InlineMessage.d.ts +14 -0
  19. package/dist/components/general/LastChanceBlock.d.ts +15 -0
  20. package/dist/components/general/MultiStepLeadForm.d.ts +19 -0
  21. package/dist/components/general/MultiTestimonial.d.ts +19 -0
  22. package/dist/components/general/OptIn.d.ts +16 -0
  23. package/dist/components/general/ProductBlock.d.ts +17 -0
  24. package/dist/components/general/PullQuote.d.ts +12 -0
  25. package/dist/components/general/RTBDescriptive.d.ts +18 -0
  26. package/dist/components/general/RTBDynamic.d.ts +21 -0
  27. package/dist/components/general/RTBHighlight.d.ts +18 -0
  28. package/dist/components/general/RecentBlogPostsBlock.d.ts +22 -0
  29. package/dist/components/general/ResourceSpotlight.d.ts +18 -0
  30. package/dist/components/general/SideMenuExplorer.d.ts +16 -0
  31. package/dist/components/general/SimpleCTABlock.d.ts +15 -0
  32. package/dist/components/general/SpacingBlock.d.ts +12 -0
  33. package/dist/components/general/SpeedBump.d.ts +16 -0
  34. package/dist/components/general/TableBlock.d.ts +13 -0
  35. package/dist/components/general/WAHFU.d.ts +15 -0
  36. package/dist/components/header/HeaderCTA.d.ts +9 -0
  37. package/dist/components/header/HeaderLogo.d.ts +10 -0
  38. package/dist/components/header/HeaderProduct.d.ts +10 -0
  39. package/dist/components/header/HeaderSectionNavigation.d.ts +12 -0
  40. package/dist/components/header/HeaderSectionTitle.d.ts +8 -0
  41. package/dist/components/header/HeaderUnderwriter.d.ts +9 -0
  42. package/dist/components/header/TopLevelNavigation.d.ts +13 -0
  43. package/dist/components/hero/CTAHeroBlock.d.ts +24 -0
  44. package/dist/components/hero/HeroBlock.d.ts +18 -0
  45. package/dist/components/hero/MultiHero.d.ts +25 -0
  46. package/dist/components/hero/NotAvailableHeroBlock.d.ts +22 -0
  47. package/dist/index.d.ts +92 -2
  48. package/dist/lion-make.js +1855 -545
  49. package/dist/lion-make.umd.cjs +10 -10
  50. package/guidelines/Guidelines.md +46 -50
  51. package/guidelines/composition/constraints.md +40 -8
  52. package/guidelines/composition/zones.md +49 -11
  53. package/guidelines/content-types/footer/anklet.md +62 -0
  54. package/guidelines/content-types/footer/compliance.md +49 -0
  55. package/guidelines/content-types/footer/disclaimers.md +48 -0
  56. package/guidelines/content-types/footer/disclosure-toggle-open.md +51 -0
  57. package/guidelines/content-types/footer/disclosures.md +50 -0
  58. package/guidelines/content-types/footer/legal-links.md +59 -0
  59. package/guidelines/content-types/footer/links-and-social.md +94 -0
  60. package/guidelines/content-types/footer/overview.md +73 -16
  61. package/guidelines/content-types/general/accordion-block.md +42 -0
  62. package/guidelines/content-types/general/all-blogs-post-block.md +52 -0
  63. package/guidelines/content-types/general/background-color-block.md +42 -0
  64. package/guidelines/content-types/general/basic-content-block.md +43 -0
  65. package/guidelines/content-types/general/body-text-copy-block.md +38 -0
  66. package/guidelines/content-types/general/content-image-block.md +37 -0
  67. package/guidelines/content-types/general/cross-sell-card-block.md +45 -0
  68. package/guidelines/content-types/general/decorative-list-block.md +40 -0
  69. package/guidelines/content-types/general/email-callout-block.md +38 -0
  70. package/guidelines/content-types/general/embedded-video-block.md +36 -0
  71. package/guidelines/content-types/general/full-size-image-with-highlight-box.md +52 -0
  72. package/guidelines/content-types/general/horizontal-rule.md +35 -0
  73. package/guidelines/content-types/general/hot-jobs-block.md +52 -0
  74. package/guidelines/content-types/general/inline-message.md +36 -0
  75. package/guidelines/content-types/general/last-chance-block.md +40 -0
  76. package/guidelines/content-types/general/multi-step-lead-form.md +60 -0
  77. package/guidelines/content-types/general/multi-testimonial.md +49 -0
  78. package/guidelines/content-types/general/opt-in.md +42 -0
  79. package/guidelines/content-types/general/overview.md +134 -24
  80. package/guidelines/content-types/general/product-block.md +43 -0
  81. package/guidelines/content-types/general/pull-quote.md +36 -0
  82. package/guidelines/content-types/general/recent-blog-posts-block.md +48 -0
  83. package/guidelines/content-types/general/resource-spotlight.md +44 -0
  84. package/guidelines/content-types/general/rtb-descriptive.md +53 -0
  85. package/guidelines/content-types/general/rtb-dynamic.md +55 -0
  86. package/guidelines/content-types/general/rtb-highlight.md +50 -0
  87. package/guidelines/content-types/general/side-menu-explorer.md +62 -0
  88. package/guidelines/content-types/general/simple-cta-block.md +44 -0
  89. package/guidelines/content-types/general/spacing-block.md +40 -0
  90. package/guidelines/content-types/general/speed-bump.md +45 -0
  91. package/guidelines/content-types/general/table-block.md +55 -0
  92. package/guidelines/content-types/general/wahfu.md +66 -0
  93. package/guidelines/content-types/header/header-cta.md +41 -0
  94. package/guidelines/content-types/header/header-logo.md +45 -0
  95. package/guidelines/content-types/header/header-product.md +45 -0
  96. package/guidelines/content-types/header/header-section-navigation.md +55 -0
  97. package/guidelines/content-types/header/header-section-title.md +43 -0
  98. package/guidelines/content-types/header/header-underwriter.md +46 -0
  99. package/guidelines/content-types/header/overview.md +61 -15
  100. package/guidelines/content-types/header/top-level-navigation.md +70 -0
  101. package/guidelines/content-types/hero/cta-hero-block.md +70 -0
  102. package/guidelines/content-types/hero/hero-block.md +56 -0
  103. package/guidelines/content-types/hero/multi-hero.md +78 -0
  104. package/guidelines/content-types/hero/not-available-hero-block.md +64 -0
  105. package/guidelines/content-types/hero/overview.md +53 -18
  106. package/guidelines/content-types/overview.md +86 -29
  107. package/guidelines/discovery.md +158 -0
  108. package/guidelines/setup.md +90 -16
  109. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ # Simple CTA Block
2
+
3
+ **Zone:** General — Primary Column, Sideburn, Outro.
4
+
5
+ ## Description
6
+
7
+ A lightweight call-to-action block with a headline, optional subtext, and a single primary button. Distinct from `CTA` (the inline CTA element) — `SimpleCTABlock` is a standalone section block with its own container and background treatment.
8
+
9
+ Use for mid-page conversion nudges that don't need the full weight of a Hero.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `heading` | `string` | Yes | — | Block headline |
16
+ | `subtext` | `string` | No | — | Supporting copy, displayed below the heading |
17
+ | `ctaLabel` | `string` | Yes | — | Button text |
18
+ | `ctaHref` | `string` | Yes | — | Button destination |
19
+ | `ctaVariant` | `'primary' \| 'secondary'` | No | `'primary'` | Button style |
20
+ | `background` | `'white' \| 'gray' \| 'brand'` | No | `'white'` | Block background color |
21
+ | `alignment` | `'left' \| 'center'` | No | `'center'` | Text alignment |
22
+ | `className` | `string` | No | — | Additional CSS class |
23
+
24
+ ## Usage
25
+
26
+ ```tsx
27
+ import { SimpleCTABlock } from 'lion-make'
28
+
29
+ <SimpleCTABlock
30
+ heading="Ready to protect your family?"
31
+ subtext="Takes less than 5 minutes. No medical exam required."
32
+ ctaLabel="Get a free quote"
33
+ ctaHref="/quote"
34
+ background="gray"
35
+ />
36
+ ```
37
+
38
+ ## Design Tokens
39
+
40
+ - Background `gray`: `var(--color-gray-lightest)`
41
+ - Background `brand`: `var(--color-brand)`, text `var(--color-white)`
42
+ - Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
43
+ - Subtext: `var(--body-font-size)`, `var(--font-weight-400)`
44
+ - Padding: `var(--padding-large-v)` vertical
@@ -0,0 +1,40 @@
1
+ # Spacing Block
2
+
3
+ **Zone:** General — Primary Column, Sideburn, Outro.
4
+
5
+ ## Description
6
+
7
+ An invisible structural block that inserts vertical whitespace between other content types. Use to control rhythm and breathing room without wrapping content in a full Container.
8
+
9
+ Renders as an empty `<div>` with a configurable height — no visible output.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | No | `'md'` | Vertical height of the space |
16
+ | `className` | `string` | No | — | Additional CSS class |
17
+
18
+ ## Size Reference
19
+
20
+ | Size | Rendered height |
21
+ |---|---|
22
+ | `xs` | `var(--spacing-xs)` — 0.8rem |
23
+ | `sm` | `var(--spacing-sm)` — 1.6rem |
24
+ | `md` | `var(--spacing-md)` — 3.2rem |
25
+ | `lg` | `var(--spacing-lg)` — 6.4rem |
26
+ | `xl` | `var(--spacing-xl)` — 9.6rem |
27
+
28
+ ## Usage
29
+
30
+ ```tsx
31
+ import { SpacingBlock } from 'lion-make'
32
+
33
+ <SpacingBlock size="lg" />
34
+ ```
35
+
36
+ ## When to use vs Container padding
37
+
38
+ - Use `SpacingBlock` between two sibling content types that each render in their own Container.
39
+ - Use Container `padding` props when you need to control space inside a single Container's top/bottom.
40
+ - Do not use `SpacingBlock` inside a Container — that creates double-spacing artifacts.
@@ -0,0 +1,45 @@
1
+ # Speed Bump
2
+
3
+ **Zone:** General — Primary Column, Outro only. Not valid in Sideburn.
4
+
5
+ ## Description
6
+
7
+ A full-width interstitial block used to interrupt content flow and redirect user attention before they continue scrolling. Typically presents a single focused question or confirmation step — "Before you go, are you sure you're covered?" — with one or two action paths.
8
+
9
+ Use sparingly: no more than one Speed Bump per page, and only when the user decision is significant.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `heading` | `string` | Yes | — | Primary question or statement |
16
+ | `subtext` | `string` | No | — | Supporting copy |
17
+ | `primaryCtaLabel` | `string` | Yes | — | Primary action label |
18
+ | `primaryCtaHref` | `string` | Yes | — | Primary action destination |
19
+ | `secondaryCtaLabel` | `string` | No | — | Secondary/dismiss action label |
20
+ | `secondaryCtaHref` | `string` | No | — | Secondary action destination (if omitted, acts as dismiss) |
21
+ | `background` | `'brand' \| 'dark' \| 'light'` | No | `'brand'` | Block background treatment |
22
+ | `className` | `string` | No | — | Additional CSS class |
23
+
24
+ ## Usage
25
+
26
+ ```tsx
27
+ import { SpeedBump } from 'lion-make'
28
+
29
+ <SpeedBump
30
+ heading="Not sure which plan is right for you?"
31
+ subtext="Talk to an agent — no sales pressure, just answers."
32
+ primaryCtaLabel="Chat with an agent"
33
+ primaryCtaHref="/contact/chat"
34
+ secondaryCtaLabel="Continue browsing"
35
+ background="brand"
36
+ />
37
+ ```
38
+
39
+ ## Design Tokens
40
+
41
+ - Background `brand`: `var(--color-brand)`, all text `var(--color-white)`
42
+ - Background `dark`: `var(--color-gray-darkest)`, all text `var(--color-white)`
43
+ - Background `light`: `var(--color-gray-lightest)`, text `var(--color-text)`
44
+ - Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
45
+ - Padding: `var(--padding-large-v)` vertical, `var(--edge-padding)` horizontal
@@ -0,0 +1,55 @@
1
+ # Table Block
2
+
3
+ **Zone:** General — Primary Column, Outro only. Not valid in Sideburn (column too narrow).
4
+
5
+ ## Description
6
+
7
+ A structured data table for comparing products, coverage levels, or feature matrices. Supports column highlighting, sticky header, and optional footnote row. Renders as a semantic `<table>` with accessible markup.
8
+
9
+ ## Props
10
+
11
+ | Prop | Type | Required | Default | Description |
12
+ |---|---|---|---|---|
13
+ | `headers` | `string[]` | Yes | — | Column header labels |
14
+ | `rows` | `TableRow[]` | Yes | — | Data rows |
15
+ | `caption` | `string` | No | — | Accessible `<caption>` (also used as visible heading if `showCaption` is true) |
16
+ | `showCaption` | `boolean` | No | `false` | Render caption visibly above the table |
17
+ | `highlightColumn` | `number` | No | — | Zero-based index of a column to visually highlight |
18
+ | `stickyHeader` | `boolean` | No | `false` | Fix the header row on scroll |
19
+ | `footnote` | `string` | No | — | Legal or explanatory note below the table |
20
+ | `className` | `string` | No | — | Additional CSS class |
21
+
22
+ ### TableRow
23
+
24
+ | Prop | Type | Description |
25
+ |---|---|---|
26
+ | `label` | `string` | Row header (first column) |
27
+ | `cells` | `(string \| React.ReactNode)[]` | Values for remaining columns |
28
+
29
+ ## Usage
30
+
31
+ ```tsx
32
+ import { TableBlock } from 'lion-make'
33
+
34
+ <TableBlock
35
+ caption="Term life coverage comparison"
36
+ showCaption
37
+ headers={['Feature', '10-Year Term', '20-Year Term', '30-Year Term']}
38
+ highlightColumn={2}
39
+ rows={[
40
+ { label: 'Starting premium', cells: ['$12/mo', '$18/mo', '$26/mo'] },
41
+ { label: 'Coverage amount', cells: ['$250k–$1M', '$250k–$1M', '$250k–$1M'] },
42
+ { label: 'Premium changes', cells: ['Never', 'Never', 'Never'] },
43
+ { label: 'Medical exam required', cells: ['No', 'No', 'Varies'] },
44
+ ]}
45
+ footnote="Premiums shown are illustrative. Actual rates depend on age, health, and coverage selected."
46
+ />
47
+ ```
48
+
49
+ ## Design Tokens
50
+
51
+ - Header row: `var(--color-brand)` background, `var(--color-white)` text, `var(--font-weight-600)`
52
+ - Highlighted column header: `var(--color-teal)` background
53
+ - Row border: `var(--border-width-thin)` solid `var(--color-line)`
54
+ - Alternating rows: `var(--color-gray-lightest)` on odd rows
55
+ - Footnote: `var(--h6-font-size)`, `var(--color-gray)`
@@ -0,0 +1,66 @@
1
+ # WAHFU (We Are Here For You)
2
+
3
+ **Zone:** General — Primary Column, Outro only. Not valid in Sideburn.
4
+
5
+ ## Description
6
+
7
+ An empathy and support block for sensitive pages (claims, bereavement, illness). Acknowledges the user's situation and surfaces human support options (phone, chat, agent finder). The tone is warm and non-transactional.
8
+
9
+ "WAHFU" is the internal shorthand — do not expose this acronym in UI copy.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `heading` | `string` | No | `'We're here for you'` | Block headline |
16
+ | `body` | `string` | No | — | Empathy statement (1–2 sentences) |
17
+ | `channels` | `WAHFUChannel[]` | Yes | — | List of support contact options |
18
+ | `background` | `'white' \| 'teal' \| 'brand'` | No | `'teal'` | Block background |
19
+ | `className` | `string` | No | — | Additional CSS class |
20
+
21
+ ### WAHFUChannel
22
+
23
+ | Prop | Type | Required | Description |
24
+ |---|---|---|---|
25
+ | `type` | `'phone' \| 'chat' \| 'agent' \| 'email'` | Yes | Channel category (controls icon) |
26
+ | `label` | `string` | Yes | Display label |
27
+ | `href` | `string` | Yes | Link destination |
28
+ | `detail` | `string` | No | Hours of availability or context (e.g., "Mon–Fri 8am–8pm CT") |
29
+
30
+ ## Usage
31
+
32
+ ```tsx
33
+ import { WAHFU } from 'lion-make'
34
+
35
+ <WAHFU
36
+ heading="We're here when you need us most"
37
+ body="Filing a claim during a difficult time shouldn't add stress. Our team is ready to help."
38
+ background="teal"
39
+ channels={[
40
+ {
41
+ type: 'phone',
42
+ label: 'Call us',
43
+ href: 'tel:18006952654',
44
+ detail: 'Mon–Fri 7am–7pm CT',
45
+ },
46
+ {
47
+ type: 'chat',
48
+ label: 'Chat with us',
49
+ href: '/chat',
50
+ },
51
+ {
52
+ type: 'agent',
53
+ label: 'Find a local agent',
54
+ href: '/agent-finder',
55
+ },
56
+ ]}
57
+ />
58
+ ```
59
+
60
+ ## Design Tokens
61
+
62
+ - Background `teal`: `var(--color-teal)`, text `var(--color-white)`
63
+ - Background `brand`: `var(--color-brand)`, text `var(--color-white)`
64
+ - Heading: `var(--h2-font-size)`, `var(--font-weight-700)`
65
+ - Channel label: `var(--h5-font-size)`, `var(--font-weight-600)`
66
+ - Detail: `var(--h6-font-size)`, `var(--font-weight-400)`
@@ -0,0 +1,41 @@
1
+ # Header — Call to Action
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ A CTA element placed within the header bar — typically "Get a Quote", "Log In", or "Chat with us". Distinct from the general zone `CTA` and `SimpleCTABlock` components, which live in the page body.
8
+
9
+ The header CTA renders as a styled anchor. Use `variant="button"` for primary conversion actions and `variant="link"` for secondary utility links (e.g., log in).
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `label` | `string` | Yes | — | Button or link text |
16
+ | `href` | `string` | Yes | — | Destination URL |
17
+ | `variant` | `'button' \| 'link' \| 'phone'` | No | `'button'` | Visual treatment |
18
+ | `className` | `string` | No | — | Additional CSS class |
19
+
20
+ ## Usage
21
+
22
+ ```tsx
23
+ import { Section, HeaderCTA } from 'lion-make'
24
+
25
+ <Section zone="header">
26
+ <HeaderCTA label="Get a quote" href="/quote" variant="button" />
27
+ <HeaderCTA label="Log in" href="/login" variant="link" />
28
+ </Section>
29
+ ```
30
+
31
+ ## Placement Rules
32
+
33
+ - Header zone only. Never place in Hero, General, or Footer zones.
34
+ - Typically placed inside a `GlobalHeaderBar` alongside `TopLevelNavigation`.
35
+ - Limit to 1–2 CTAs per header to avoid visual clutter.
36
+
37
+ ## Design Tokens
38
+
39
+ - Button variant: `var(--color-brand)` background, `var(--color-white)` text
40
+ - Link variant: `var(--color-white)` text, underline on hover
41
+ - Font: `var(--h5-font-size)`, `var(--font-weight-600)`
@@ -0,0 +1,45 @@
1
+ # Header — Logo
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ The brand or product logo displayed in the header bar. Renders as a linked image that navigates to the homepage (or a specified destination). Every page must have exactly one `HeaderLogo`.
8
+
9
+ ## Props
10
+
11
+ | Prop | Type | Required | Default | Description |
12
+ |---|---|---|---|---|
13
+ | `src` | `string` | Yes | — | Image URL |
14
+ | `alt` | `string` | Yes | — | Alt text (use the brand name, e.g., "Mutual of Omaha") |
15
+ | `href` | `string` | No | `'/'` | Link destination |
16
+ | `width` | `number` | No | — | Explicit image width (px) |
17
+ | `height` | `number` | No | — | Explicit image height (px) |
18
+ | `className` | `string` | No | — | Additional CSS class |
19
+
20
+ ## Usage
21
+
22
+ ```tsx
23
+ import { Section, HeaderLogo } from 'lion-make'
24
+
25
+ <Section zone="header">
26
+ <HeaderLogo
27
+ src="/img/logo-mutual.svg"
28
+ alt="Mutual of Omaha"
29
+ href="/"
30
+ width={180}
31
+ height={40}
32
+ />
33
+ </Section>
34
+ ```
35
+
36
+ ## Placement Rules
37
+
38
+ - Header zone only.
39
+ - One per page — do not render multiple `HeaderLogo` instances.
40
+ - Typically the leftmost element inside `CorporateUniversalHeader` or `GlobalHeaderBar`.
41
+
42
+ ## Design Tokens
43
+
44
+ - No background — logo file must include sufficient padding or transparent background.
45
+ - Wrapper link outline: `var(--color-brand)` on focus (keyboard navigation).
@@ -0,0 +1,45 @@
1
+ # Header — Product
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ Displays the name (and optionally the logo and tagline) of the specific product line being featured on the page. Used on product DLPs (detail landing pages) where the header needs to identify which product the user is exploring.
8
+
9
+ Distinct from `HeaderLogo` (which is always the master brand) — `HeaderProduct` is the product-level identity layer within the same header.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `name` | `string` | Yes | — | Product name (e.g., "Term Life Insurance") |
16
+ | `logoSrc` | `string` | No | — | Product-specific logo or lockup |
17
+ | `logoAlt` | `string` | No | `''` | Logo alt text |
18
+ | `href` | `string` | No | — | Link destination (e.g., product overview page) |
19
+ | `tagline` | `string` | No | — | Short descriptor below the product name |
20
+ | `className` | `string` | No | — | Additional CSS class |
21
+
22
+ ## Usage
23
+
24
+ ```tsx
25
+ import { Section, HeaderProduct } from 'lion-make'
26
+
27
+ <Section zone="header">
28
+ <HeaderProduct
29
+ name="Term Life Insurance"
30
+ tagline="Affordable coverage, guaranteed premiums"
31
+ href="/term-life"
32
+ />
33
+ </Section>
34
+ ```
35
+
36
+ ## Placement Rules
37
+
38
+ - Header zone only.
39
+ - Use on product DLPs. Not required on general marketing or homepage.
40
+ - Appears inside `GlobalHeaderBar`, typically between `HeaderLogo` and `TopLevelNavigation`.
41
+
42
+ ## Design Tokens
43
+
44
+ - Name: `var(--h4-font-size)`, `var(--font-weight-700)`, `var(--color-white)`
45
+ - Tagline: `var(--h6-font-size)`, `var(--font-weight-400)`, `var(--color-white-opaque)`
@@ -0,0 +1,55 @@
1
+ # Header — Section Navigation
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ A secondary navigation bar that lists the sub-sections of the current page or product area. Renders as a horizontal link list with an active state indicator for the current page. Used on section hubs and multi-page product areas to give users a persistent orientation layer.
8
+
9
+ Distinct from `TopLevelNavigation` (global, across all products) — Section Navigation is scoped to the current section or product.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `items` | `SectionNavItem[]` | Yes | — | Navigation links |
16
+ | `ariaLabel` | `string` | No | `'Section navigation'` | Accessible label for the `<nav>` element |
17
+ | `className` | `string` | No | — | Additional CSS class |
18
+
19
+ ### SectionNavItem
20
+
21
+ | Prop | Type | Required | Description |
22
+ |---|---|---|---|
23
+ | `label` | `string` | Yes | Link text |
24
+ | `href` | `string` | Yes | Destination URL |
25
+ | `isActive` | `boolean` | No | Marks the current page link |
26
+
27
+ ## Usage
28
+
29
+ ```tsx
30
+ import { Section, HeaderSectionNavigation } from 'lion-make'
31
+
32
+ <Section zone="header">
33
+ <HeaderSectionNavigation
34
+ ariaLabel="Life insurance navigation"
35
+ items={[
36
+ { label: 'Term Life', href: '/life/term', isActive: true },
37
+ { label: 'Whole Life', href: '/life/whole' },
38
+ { label: 'Universal Life', href: '/life/universal' },
39
+ { label: 'Compare plans', href: '/life/compare' },
40
+ ]}
41
+ />
42
+ </Section>
43
+ ```
44
+
45
+ ## Placement Rules
46
+
47
+ - Header zone only. Renders below `GlobalHeaderBar` when used.
48
+ - Optional — only include when the page belongs to a multi-page section.
49
+ - Active link should match the current page URL exactly.
50
+
51
+ ## Design Tokens
52
+
53
+ - Background: `var(--color-gray-lightest)` or transparent over header background
54
+ - Link: `var(--h5-font-size)`, `var(--font-weight-400)`, `var(--color-text)`
55
+ - Active link: `var(--font-weight-600)`, bottom border `var(--border-width-thick)` solid `var(--color-brand)`
@@ -0,0 +1,43 @@
1
+ # Header — Section Title
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ Displays the title of the current section or page within the header area. Used on section index pages or campaign pages where the header itself needs to carry a clear identity heading (separate from the Hero).
8
+
9
+ Not a substitute for a `Hero` — `HeaderSectionTitle` is a compact, inline header element; the Hero is the full-width content zone below the header.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `title` | `string` | Yes | — | Section or page title |
16
+ | `subtitle` | `string` | No | — | Short supporting line |
17
+ | `as` | `'h1' \| 'h2' \| 'p'` | No | `'h1'` | Semantic heading level |
18
+ | `className` | `string` | No | — | Additional CSS class |
19
+
20
+ ## Usage
21
+
22
+ ```tsx
23
+ import { Section, HeaderSectionTitle } from 'lion-make'
24
+
25
+ <Section zone="header">
26
+ <HeaderSectionTitle
27
+ title="Life Insurance"
28
+ subtitle="Coverage that protects what matters most"
29
+ as="h1"
30
+ />
31
+ </Section>
32
+ ```
33
+
34
+ ## Placement Rules
35
+
36
+ - Header zone only.
37
+ - Use `as="h1"` when no other `<h1>` exists on the page (no Hero with an `<h1>`).
38
+ - If a Hero is present and carries the `<h1>`, use `as="h2"` or `as="p"` here.
39
+
40
+ ## Design Tokens
41
+
42
+ - Title: `var(--h3-font-size)`, `var(--font-weight-700)`, `var(--color-white)`
43
+ - Subtitle: `var(--h5-font-size)`, `var(--font-weight-400)`, `var(--color-white-opaque)`
@@ -0,0 +1,46 @@
1
+ # Header — Underwriter
2
+
3
+ **Zone:** Header only.
4
+
5
+ ## Description
6
+
7
+ Displays the underwriting company attribution — e.g., "Underwritten by United of Omaha Life Insurance Company." Required on product pages where insurance regulatory compliance mandates that the underwriter is disclosed at the page level.
8
+
9
+ Renders as a small text strip (optionally linked and optionally with a logo). Not the same as the `ComplianceBlock` in the footer — the footer compliance block handles Item Numbers and Material IDs; this is the brand-level underwriter identity.
10
+
11
+ ## Props
12
+
13
+ | Prop | Type | Required | Default | Description |
14
+ |---|---|---|---|---|
15
+ | `text` | `string` | Yes | — | Underwriter attribution text |
16
+ | `logoSrc` | `string` | No | — | Underwriter logo URL |
17
+ | `logoAlt` | `string` | No | `''` | Logo alt text |
18
+ | `href` | `string` | No | — | Optional link (e.g., to underwriter's About page) |
19
+ | `className` | `string` | No | — | Additional CSS class |
20
+
21
+ ## Usage
22
+
23
+ ```tsx
24
+ import { Section, HeaderUnderwriter } from 'lion-make'
25
+
26
+ <Section zone="header">
27
+ <HeaderUnderwriter
28
+ text="Underwritten by United of Omaha Life Insurance Company"
29
+ logoSrc="/img/logo-united-of-omaha.svg"
30
+ logoAlt="United of Omaha Life Insurance Company"
31
+ />
32
+ </Section>
33
+ ```
34
+
35
+ ## Placement Rules
36
+
37
+ - Header zone only.
38
+ - Typically placed inside `CorporateUniversalHeader` (the top thin bar).
39
+ - Required on all product DLPs where a specific underwriting entity applies.
40
+ - Consult legal/compliance for exact required phrasing per product line.
41
+
42
+ ## Design Tokens
43
+
44
+ - Text: `var(--h6-font-size)`, `var(--font-weight-400)`, `var(--color-white)`
45
+ - Logo height: 24px max within the bar
46
+ - Background inherits from `CorporateUniversalHeader`: `var(--color-blue-dark)`
@@ -2,33 +2,79 @@
2
2
 
3
3
  **Zone rule:** These content types can only be placed in the Header zone. Never use them in Hero, General, or Footer zones.
4
4
 
5
- The Header zone is subdivided into subsections. Each subsection accepts a specific content type.
5
+ The Header zone is composed of two structural bars (`CorporateUniversalHeader` and `GlobalHeaderBar`) that act as containers. The 7 header content types are the individual elements placed inside those bars.
6
6
 
7
- ## Header Subsections
7
+ ---
8
8
 
9
- | Subsection | Content type | Component |
10
- |---|---|---|
11
- | Corporate Universal Header | Corporate Universal Header | `CorporateUniversalHeader` |
12
- | Global Header Bar | Global Header Bar | `GlobalHeaderBar` |
13
- | Navigation | Top Nav, Product Nav, Underwriter Nav | *(coming)* |
9
+ ## Content Types
10
+
11
+ | Content type | Component | Required | Typical bar |
12
+ |---|---|---|---|
13
+ | Call to Action | `HeaderCTA` | No | GlobalHeaderBar |
14
+ | Logo | `HeaderLogo` | Yes — one per page | CorporateUniversalHeader or GlobalHeaderBar |
15
+ | Product | `HeaderProduct` | No — product DLPs only | GlobalHeaderBar |
16
+ | Section Navigation | `HeaderSectionNavigation` | No | Below GlobalHeaderBar |
17
+ | Section Title | `HeaderSectionTitle` | No | GlobalHeaderBar |
18
+ | Top Level Navigation | `TopLevelNavigation` | Yes — one per page | GlobalHeaderBar |
19
+ | Underwriter | `HeaderUnderwriter` | Varies — required by compliance on product pages | CorporateUniversalHeader |
20
+
21
+ ---
22
+
23
+ ## Header Structure
24
+
25
+ ```
26
+ Header zone
27
+ ├── CorporateUniversalHeader ← thin top bar
28
+ │ ├── HeaderLogo (brand logo)
29
+ │ └── HeaderUnderwriter (underwriter attribution, if required)
30
+ └── GlobalHeaderBar ← main nav bar
31
+ ├── HeaderLogo (or HeaderProduct on product DLPs)
32
+ ├── TopLevelNavigation (global nav with optional dropdowns)
33
+ ├── HeaderSectionTitle (if applicable)
34
+ ├── HeaderCTA (1–2 CTAs, e.g. "Get a quote", "Log in")
35
+ └── HeaderSectionNavigation (below the bar, on section hubs)
36
+ ```
37
+
38
+ ---
14
39
 
15
40
  ## Placement Example
16
41
 
17
42
  ```tsx
18
- import { Section, CorporateUniversalHeader, GlobalHeaderBar } from 'lion-make'
43
+ import {
44
+ Section,
45
+ CorporateUniversalHeader,
46
+ GlobalHeaderBar,
47
+ HeaderLogo,
48
+ HeaderUnderwriter,
49
+ TopLevelNavigation,
50
+ HeaderCTA,
51
+ } from 'lion-make'
19
52
 
20
53
  <Section zone="header">
21
- <CorporateUniversalHeader logoSrc="/logo.svg" logoAlt="Company" selectedState="NE" />
22
- <GlobalHeaderBar
23
- logoSrc="/logo-full.svg"
24
- logoAlt="Company"
25
- underwriterInfo="Underwritten by Mutual of Omaha"
26
- ctas={[{ label: 'Get a Quote', href: '/quote', type: 'button' }]}
27
- />
54
+ <CorporateUniversalHeader>
55
+ <HeaderLogo src="/img/logo.svg" alt="Mutual of Omaha" href="/" />
56
+ <HeaderUnderwriter text="Underwritten by United of Omaha Life Insurance Company" />
57
+ </CorporateUniversalHeader>
58
+ <GlobalHeaderBar>
59
+ <TopLevelNavigation items={navItems} />
60
+ <HeaderCTA label="Get a quote" href="/quote" variant="button" />
61
+ <HeaderCTA label="Log in" href="/login" variant="link" />
62
+ </GlobalHeaderBar>
28
63
  </Section>
29
64
  ```
30
65
 
66
+ ---
67
+
31
68
  ## Files in This Section
32
69
 
70
+ - [header-cta.md](./header-cta.md)
71
+ - [header-logo.md](./header-logo.md)
72
+ - [header-product.md](./header-product.md)
73
+ - [header-section-navigation.md](./header-section-navigation.md)
74
+ - [header-section-title.md](./header-section-title.md)
75
+ - [top-level-navigation.md](./top-level-navigation.md)
76
+ - [header-underwriter.md](./header-underwriter.md)
77
+
78
+ Legacy structural components (bars, not content types):
33
79
  - [corporate-universal-header.md](./corporate-universal-header.md)
34
80
  - [global-header-bar.md](./global-header-bar.md)