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
@@ -4,24 +4,62 @@ This is the authoritative placement table for the lion-make design system. Every
4
4
 
5
5
  ## Zone Placement Table
6
6
 
7
- | Zone | Template | Subsections | Allowed Content Types |
7
+ | Zone | Template | Allowed Content Types | Components |
8
8
  |---|---|---|---|
9
- | **Header** | Both | Corporate Universal Header, Global Header Bar, Navigation (Underwriter, Product, Top Nav) | Header content types only |
10
- | **Hero** | Both | | Hero content types only |
11
- | **Primary Column** | Both | | General content types |
12
- | **Sideburn** | Sideburn only | | General content types (subset) |
13
- | **Outro** | Sideburn only | | General content types (subset) |
14
- | **Anklet** | Both | — | Quick links only (fixed structure) |
15
- | **Footer** | Both | Disclaimer, Disclosure, Compliance | Footer content types only |
9
+ | **Header** | Both | Call to Action, Logo, Product, Section Navigation, Section Title, Top Level Navigation, Underwriter | `HeaderCTA`, `HeaderLogo`, `HeaderProduct`, `HeaderSectionNavigation`, `HeaderSectionTitle`, `TopLevelNavigation`, `HeaderUnderwriter` |
10
+ | **Hero** | Both | CTA Hero Block, Hero Block, Multi Hero, Not Available Hero Block | `CTAHeroBlock`, `HeroBlock`, `MultiHero`, `NotAvailableHeroBlock` |
11
+ | **Primary Column** | Both | All 37 general content types | see [general/overview.md](../content-types/general/overview.md) |
12
+ | **Sideburn** | Sideburn only | Subset of general content types | see [general/overview.md](../content-types/general/overview.md) |
13
+ | **Outro** | Sideburn only | Subset of general content types | see [general/overview.md](../content-types/general/overview.md) |
14
+ | **Anklet** | Both | Quick links only | `Anklet` |
15
+ | **Footer** | Both | Links & Social, Disclaimers, Disclosures, Disclosure Toggle Open, Compliance, Legal Links | `LinksAndSocial`, `Disclaimer`, `Disclosure`, `DisclosureToggleOpen`, `ComplianceBlock`, `LegalLinks` |
16
+
17
+ ## Header Zone Detail
18
+
19
+ The Header zone uses two structural bars as containers. Content types are placed inside them:
20
+
21
+ | Structural bar | Accepts |
22
+ |---|---|
23
+ | `CorporateUniversalHeader` | `HeaderLogo`, `HeaderUnderwriter` |
24
+ | `GlobalHeaderBar` | `TopLevelNavigation`, `HeaderCTA`, `HeaderProduct`, `HeaderSectionTitle` |
25
+ | Below `GlobalHeaderBar` | `HeaderSectionNavigation` |
26
+
27
+ Structural bars (`CorporateUniversalHeader`, `GlobalHeaderBar`) are not content types — they are layout containers for the Header zone.
28
+
29
+ ## Hero Zone Detail
30
+
31
+ | Content type | Component | When to use |
32
+ |---|---|---|
33
+ | CTA Hero Block | `CTAHeroBlock` | Primary conversion goal (product DLPs, campaigns) |
34
+ | Hero Block | `HeroBlock` | Informational (section hubs, About, resource pages) |
35
+ | Multi Hero | `MultiHero` | Multiple products/messages (home page, category hubs) |
36
+ | Not Available Hero Block | `NotAvailableHeroBlock` | Product unavailable in user's state (facet-triggered) |
37
+
38
+ Only one hero content type per page. Do not stack multiple hero types.
39
+
40
+ ## Footer Zone Detail
41
+
42
+ Footer content types have a mandatory render order:
43
+
44
+ | Order | Content type | Component | Notes |
45
+ |---|---|---|---|
46
+ | 1 | Links & Social | `LinksAndSocial` | Nav columns + social icons; first in footer |
47
+ | 2 | Disclaimers | `Disclaimer` | Static legal copy; always visible |
48
+ | 3 | Disclosures | `Disclosure` | Toggle starts collapsed |
49
+ | 3 | Disclosure Toggle Open | `DisclosureToggleOpen` | Toggle starts expanded (required-visible) |
50
+ | 4 | Compliance | `ComplianceBlock` | Item Number / Material ID |
51
+ | 5 | Legal Links | `LegalLinks` | Privacy, Terms, Copyright; last in footer |
52
+
53
+ **Anklet** sits in its own zone between General Content and Footer — it is not inside `<Section zone="footer">`.
16
54
 
17
55
  ## Zone Rules
18
56
 
19
57
  - A **header content type** can only be placed in the Header zone.
20
- - A **hero content type** can only be placed in the Hero zone.
58
+ - A **hero content type** can only be placed in the Hero zone. Only one hero per page.
21
59
  - A **general content type** can only be placed in the Primary Column, Sideburn, or Outro zones.
22
- - The **Anklet** zone accepts only the Anklet quick-links structure — no other content types.
60
+ - The **Anklet** zone accepts only the `Anklet` component — no other content types.
23
61
  - A **footer content type** can only be placed in the Footer zone.
24
- - The **Sideburn** and **Outro** zones only exist in the Sideburn template. They are not available in the Forehead template.
62
+ - The **Sideburn** and **Outro** zones only exist in the Sideburn template.
25
63
 
26
64
  ## Template-to-Zone Availability
27
65
 
@@ -0,0 +1,62 @@
1
+ # Anklet
2
+
3
+ **Zone:** Anklet — its own dedicated zone directly above the Footer zone. Not part of the Footer zone itself.
4
+
5
+ > **Note on placement:** Mondrian documents the Anklet under the "Footer" section of the guide, but architecturally it occupies its own zone (`data-zone="anklet"`) between General Content and the Footer. It is not nested inside a `Section zone="footer"`.
6
+
7
+ ## Description
8
+
9
+ A full-width quick-links bar anchored between the General Content zone and the Footer. Provides fast access to high-priority destinations — typically product lines, service links, or audience entry points — without requiring the user to navigate through the footer columns.
10
+
11
+ The Anklet structure is fixed: a horizontal list of text links. No headings, no columns, no icons.
12
+
13
+ ## Component
14
+
15
+ `Anklet` — located in `src/components/layout/` (not footer), exported from `lion-make`.
16
+
17
+ ## Props
18
+
19
+ | Prop | Type | Required | Description |
20
+ |---|---|---|---|
21
+ | `links` | `AnkletLink[]` | Yes | Quick link items |
22
+ | `className` | `string` | No | Additional CSS class |
23
+
24
+ ### AnkletLink
25
+
26
+ | Prop | Type | Description |
27
+ |---|---|---|
28
+ | `label` | `string` | Link text |
29
+ | `href` | `string` | Destination URL |
30
+
31
+ ## Usage
32
+
33
+ ```tsx
34
+ import { Anklet } from 'lion-make'
35
+
36
+ <Anklet
37
+ links={[
38
+ { label: 'Life Insurance', href: '/life' },
39
+ { label: 'Medicare', href: '/medicare' },
40
+ { label: 'Supplemental Health', href: '/supplemental' },
41
+ { label: 'Dental & Vision', href: '/dental-vision' },
42
+ { label: 'Find an Agent', href: '/agent-finder' },
43
+ ]}
44
+ />
45
+ ```
46
+
47
+ ## Page Structure Position
48
+
49
+ ```
50
+ <Section zone="header"> … </Section>
51
+ <Section zone="hero"> … </Section>
52
+ [General Content zone]
53
+ <Anklet links={…} /> ← here, outside any Section
54
+ <Section zone="footer"> … </Section>
55
+ ```
56
+
57
+ ## Design Tokens
58
+
59
+ - Background: `var(--color-gray-lightest)` or `var(--color-brand)`
60
+ - Link: `var(--h5-font-size)`, `var(--font-weight-400)`, `var(--color-text)` or `var(--color-white)`
61
+ - Border top: `var(--border-width-thin)` solid `var(--color-line)`
62
+ - Padding: `var(--padding-base-vertical)` vertical, `var(--edge-padding)` horizontal
@@ -0,0 +1,49 @@
1
+ # Compliance
2
+
3
+ **Zone:** Footer only — Compliance subsection.
4
+
5
+ ## Description
6
+
7
+ Displays required compliance identifiers and associated legal copy. This is distinct from the `Disclaimers` content type (which contains free-text legal statements) — `Compliance` is specifically for structured identifiers: Item Numbers and Material IDs as mandated by regulatory and compliance teams.
8
+
9
+ Required on all regulated product pages (life, Medicare, supplemental health). The exact identifiers and surrounding copy are determined by the compliance team and the product's filing jurisdiction.
10
+
11
+ ## Component
12
+
13
+ `ComplianceBlock`
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Description |
18
+ |---|---|---|---|
19
+ | `itemNumber` | `string` | No | Compliance Item Number (e.g., `'M37594_XXXXXX'`) |
20
+ | `materialId` | `string` | No | Material ID (primarily used for Medicare Advantage / PDP) |
21
+ | `text` | `string` | No | Required legal copy accompanying the identifiers |
22
+ | `className` | `string` | No | Additional CSS class |
23
+
24
+ At least one of `itemNumber`, `materialId`, or `text` must be present.
25
+
26
+ ## Usage
27
+
28
+ ```tsx
29
+ import { Section, ComplianceBlock } from 'lion-make'
30
+
31
+ <Section zone="footer">
32
+ <ComplianceBlock
33
+ itemNumber="M37594_0524"
34
+ text="For more information about Mutual of Omaha's privacy practices, visit mutualofomaha.com/privacy."
35
+ />
36
+ </Section>
37
+ ```
38
+
39
+ ## Placement Rules
40
+
41
+ - Footer zone only, always last in the footer — below `Disclaimers` and `Disclosures`.
42
+ - Consult compliance team for required identifiers per product and per state.
43
+ - Do not place on pages without a regulated product.
44
+
45
+ ## Design Tokens
46
+
47
+ - Text: `var(--h6-font-size)`, `var(--color-gray-dark)`, `var(--h6-line-height)`
48
+ - Label (`dt`): `var(--font-weight-600)`
49
+ - Value (`dd`): `var(--font-weight-400)`
@@ -0,0 +1,48 @@
1
+ # Disclaimers
2
+
3
+ **Zone:** Footer only — Disclaimers subsection.
4
+
5
+ ## Description
6
+
7
+ Static legal statements displayed in the footer. Unlike `Disclosures` (which are toggled open/closed by the user), Disclaimers are always visible — no toggle, no expand/collapse. Use for brief legal copy that must be persistently visible: asterisk footnotes, rate qualifications, "not available in all states" statements, and similar.
8
+
9
+ One `Disclaimer` per legal statement. Stack multiple instances for multiple statements — do not concatenate them into a single prop.
10
+
11
+ ## Component
12
+
13
+ `Disclaimer`
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Description |
18
+ |---|---|---|---|
19
+ | `text` | `string` | Yes | The disclaimer copy |
20
+ | `itemNumber` | `string` | No | Compliance Item Number displayed alongside the text |
21
+ | `className` | `string` | No | Additional CSS class |
22
+
23
+ ## Usage
24
+
25
+ ```tsx
26
+ import { Section, Disclaimer } from 'lion-make'
27
+
28
+ <Section zone="footer">
29
+ <Disclaimer
30
+ text="*Rates based on a 35-year-old non-smoker in excellent health. Individual rates may vary."
31
+ itemNumber="M37594_0524"
32
+ />
33
+ <Disclaimer
34
+ text="Products and availability may vary by state. Not available in all states."
35
+ />
36
+ </Section>
37
+ ```
38
+
39
+ ## Placement Rules
40
+
41
+ - Footer zone only, in the Disclaimers subsection.
42
+ - Place above `Disclosures` and `Compliance`.
43
+ - Always visible — do not use when a toggle is desired (use `Disclosures` instead).
44
+
45
+ ## Design Tokens
46
+
47
+ - Text: `var(--h6-font-size)`, `var(--color-gray-dark)`, `var(--h6-line-height)`
48
+ - Item number: same size, `var(--font-weight-400)`, rendered inline after the text
@@ -0,0 +1,51 @@
1
+ # Disclosure Toggle Open
2
+
3
+ **Zone:** Footer only — Disclosures subsection.
4
+
5
+ ## Description
6
+
7
+ A toggleable legal disclosure that **starts in the expanded (open) state**. The user can collapse it. Use when regulatory requirements mandate that the disclosure text is visible on page load without requiring user interaction.
8
+
9
+ Functionally identical to `Disclosures` except for the initial state. Both use the same `Disclosure` component under the hood — the distinction is the `defaultOpen` prop.
10
+
11
+ ## Component
12
+
13
+ `DisclosureToggleOpen` (thin wrapper around `Disclosure` with `defaultOpen={true}`)
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Description |
18
+ |---|---|---|---|
19
+ | `triggerLabel` | `string` | Yes | Toggle button label (e.g., "Product Disclosure Statement") |
20
+ | `content` | `string` | Yes | Full legal disclosure text, shown on load |
21
+ | `materialId` | `string` | No | Material ID displayed inline with the content |
22
+ | `className` | `string` | No | Additional CSS class |
23
+
24
+ ## Usage
25
+
26
+ ```tsx
27
+ import { Section, DisclosureToggleOpen } from 'lion-make'
28
+
29
+ <Section zone="footer">
30
+ <DisclosureToggleOpen
31
+ triggerLabel="Medicare Supplement Insurance Disclosure"
32
+ content="Medicare Supplement insurance plans are not connected with or endorsed by the U.S. Government or the federal Medicare program. This is a solicitation of insurance."
33
+ materialId="MSO-DISC-001"
34
+ />
35
+ </Section>
36
+ ```
37
+
38
+ ## When to use vs Disclosures
39
+
40
+ | | Disclosures | Disclosure Toggle Open |
41
+ |---|---|---|
42
+ | Initial state | Collapsed | **Expanded** |
43
+ | User can toggle | Yes | Yes |
44
+ | Regulatory use | Standard product disclosures | Required-visible disclosures |
45
+
46
+ ## Design Tokens
47
+
48
+ Same as `Disclosures`:
49
+ - Trigger: `var(--color-link)`, `var(--h6-font-size)`, no border
50
+ - Content: `var(--h6-font-size)`, `var(--color-gray-dark)`
51
+ - Material ID: inline, same size
@@ -0,0 +1,50 @@
1
+ # Disclosures
2
+
3
+ **Zone:** Footer only — Disclosures subsection.
4
+
5
+ ## Description
6
+
7
+ A toggleable legal disclosure that **starts collapsed**. The user clicks a trigger link to expand and read the full content. Use for standard product disclosures, fine print, and supplementary legal text that doesn't need to be immediately visible.
8
+
9
+ When the disclosure must be visible on page load, use `Disclosure Toggle Open` instead.
10
+
11
+ ## Component
12
+
13
+ `Disclosure`
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Default | Description |
18
+ |---|---|---|---|---|
19
+ | `triggerLabel` | `string` | Yes | — | Toggle button label |
20
+ | `content` | `string` | Yes | — | Full disclosure text, revealed on expand |
21
+ | `materialId` | `string` | No | — | Material ID shown inline within the content |
22
+ | `defaultOpen` | `boolean` | No | `false` | Set `true` to start expanded (equivalent to `DisclosureToggleOpen`) |
23
+ | `className` | `string` | No | — | Additional CSS class |
24
+
25
+ ## Usage
26
+
27
+ ```tsx
28
+ import { Section, Disclosure } from 'lion-make'
29
+
30
+ <Section zone="footer">
31
+ <Disclosure
32
+ triggerLabel="Term Life Insurance — Product Disclosure"
33
+ content="Term life insurance coverage is issued by Mutual of Omaha Insurance Company, Omaha, NE. Policy Form ICC22L-TERM. Not available in all states."
34
+ materialId="L-TERM-DISC-0524"
35
+ />
36
+ </Section>
37
+ ```
38
+
39
+ ## Placement Rules
40
+
41
+ - Footer zone only.
42
+ - Place below `Disclaimers` and above `Compliance`.
43
+ - Stack multiple `Disclosure` instances for multiple product disclosures — do not merge into one.
44
+ - If the disclosure must be pre-expanded, use `DisclosureToggleOpen` instead.
45
+
46
+ ## Design Tokens
47
+
48
+ - Trigger: `var(--color-link)`, `var(--h6-font-size)`, no border, cursor pointer
49
+ - Content: `var(--h6-font-size)`, `var(--color-gray-dark)`
50
+ - Material ID: inline, appended after the content text
@@ -0,0 +1,59 @@
1
+ # Legal Links
2
+
3
+ **Zone:** Footer only — Legal Links subsection.
4
+
5
+ ## Description
6
+
7
+ A horizontal bar of links to legal and policy pages — Privacy Policy, Terms of Use, Accessibility Statement, Cookie Preferences, Site Map, and similar. Optionally includes a copyright notice. Typically the bottommost element in the footer, below all disclosures and compliance blocks.
8
+
9
+ Separate from `Links & Social` (which handles the main footer nav columns) — Legal Links is a dedicated subsection for purely legal/regulatory destinations.
10
+
11
+ ## Component
12
+
13
+ `LegalLinks`
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Description |
18
+ |---|---|---|---|
19
+ | `links` | `LegalLink[]` | Yes | Legal page links |
20
+ | `copyrightText` | `string` | No | Copyright line (e.g., `'© 2025 Mutual of Omaha Insurance Company'`) |
21
+ | `className` | `string` | No | Additional CSS class |
22
+
23
+ ### LegalLink
24
+
25
+ | Prop | Type | Description |
26
+ |---|---|---|
27
+ | `label` | `string` | Link text |
28
+ | `href` | `string` | Destination URL |
29
+
30
+ ## Usage
31
+
32
+ ```tsx
33
+ import { Section, LegalLinks } from 'lion-make'
34
+
35
+ <Section zone="footer">
36
+ <LegalLinks
37
+ copyrightText="© 2025 Mutual of Omaha Insurance Company. All rights reserved."
38
+ links={[
39
+ { label: 'Privacy Policy', href: '/privacy' },
40
+ { label: 'Terms of Use', href: '/terms' },
41
+ { label: 'Accessibility', href: '/accessibility' },
42
+ { label: 'Cookie Preferences', href: '/cookies' },
43
+ { label: 'Site Map', href: '/sitemap' },
44
+ ]}
45
+ />
46
+ </Section>
47
+ ```
48
+
49
+ ## Placement Rules
50
+
51
+ - Footer zone only. Always the last element in the footer.
52
+ - Must be below `Compliance` block.
53
+ - Render on every page — legal links are sitewide requirements.
54
+
55
+ ## Design Tokens
56
+
57
+ - Copyright: `var(--h6-font-size)`, `var(--color-gray-dark)`
58
+ - Links: `var(--h6-font-size)`, `var(--color-link)`, pipe separator between items
59
+ - Background inherits from footer: `var(--color-gray-darkest)`
@@ -0,0 +1,94 @@
1
+ # Links & Social
2
+
3
+ **Zone:** Footer only — Links & Social subsection.
4
+
5
+ ## Description
6
+
7
+ The primary footer navigation block. Renders multiple columns of site links (product lines, services, company info, etc.) alongside social media icon links. Always the first content type in the footer, immediately below the Anklet zone.
8
+
9
+ Footer nav columns help users discover content they didn't find in the main navigation. Social links build brand presence. Both are optional individually but the component requires at least one column.
10
+
11
+ ## Component
12
+
13
+ `LinksAndSocial`
14
+
15
+ ## Props
16
+
17
+ | Prop | Type | Required | Description |
18
+ |---|---|---|---|
19
+ | `columns` | `FooterNavColumn[]` | Yes | Navigation columns (min 1, typically 3–5) |
20
+ | `socialLinks` | `SocialLink[]` | No | Social media links (rendered as icon links) |
21
+ | `className` | `string` | No | Additional CSS class |
22
+
23
+ ### FooterNavColumn
24
+
25
+ | Prop | Type | Description |
26
+ |---|---|---|
27
+ | `heading` | `string` | Column heading |
28
+ | `links` | `Array<{ label: string; href: string }>` | Column links |
29
+
30
+ ### SocialLink
31
+
32
+ | Prop | Type | Description |
33
+ |---|---|---|
34
+ | `platform` | `'facebook' \| 'twitter' \| 'linkedin' \| 'youtube' \| 'instagram' \| 'x'` | Platform identifier (controls icon class) |
35
+ | `href` | `string` | Profile URL |
36
+ | `label` | `string` (optional) | Accessible label (defaults to platform name) |
37
+
38
+ ## Usage
39
+
40
+ ```tsx
41
+ import { Section, LinksAndSocial } from 'lion-make'
42
+
43
+ <Section zone="footer">
44
+ <LinksAndSocial
45
+ columns={[
46
+ {
47
+ heading: 'Insurance',
48
+ links: [
49
+ { label: 'Life Insurance', href: '/life' },
50
+ { label: 'Medicare', href: '/medicare' },
51
+ { label: 'Supplemental Health', href: '/supplemental' },
52
+ { label: 'Dental & Vision', href: '/dental-vision' },
53
+ ],
54
+ },
55
+ {
56
+ heading: 'Company',
57
+ links: [
58
+ { label: 'About Us', href: '/about' },
59
+ { label: 'Careers', href: '/careers' },
60
+ { label: 'Newsroom', href: '/news' },
61
+ { label: 'Community', href: '/community' },
62
+ ],
63
+ },
64
+ {
65
+ heading: 'Support',
66
+ links: [
67
+ { label: 'Contact Us', href: '/contact' },
68
+ { label: 'Find an Agent', href: '/agent-finder' },
69
+ { label: 'File a Claim', href: '/claims' },
70
+ { label: 'Customer Login', href: '/login' },
71
+ ],
72
+ },
73
+ ]}
74
+ socialLinks={[
75
+ { platform: 'facebook', href: 'https://facebook.com/mutualofomaha' },
76
+ { platform: 'linkedin', href: 'https://linkedin.com/company/mutual-of-omaha' },
77
+ { platform: 'youtube', href: 'https://youtube.com/mutualofomaha' },
78
+ ]}
79
+ />
80
+ </Section>
81
+ ```
82
+
83
+ ## Placement Rules
84
+
85
+ - Footer zone only. Always the first content type in the footer.
86
+ - Social link targets must use `rel="noopener noreferrer"` and `target="_blank"`.
87
+ - Column headings use `<h3>` — do not skip heading levels.
88
+
89
+ ## Design Tokens
90
+
91
+ - Background: `var(--color-gray-darkest)` (dark footer)
92
+ - Column heading: `var(--h5-font-size)`, `var(--font-weight-600)`, `var(--color-white)`
93
+ - Column links: `var(--h6-font-size)`, `var(--color-white-opaque)`, no underline
94
+ - Social icons: 24×24px, `var(--color-white-opaque)`, hover `var(--color-white)`
@@ -1,38 +1,95 @@
1
1
  # Footer Zone Content Types
2
2
 
3
- **Zone rule:** These content types can only be placed in the Footer zone. Never use them in Header, Hero, or General zones.
3
+ **Zone rule:** These content types can only be placed in the Footer zone (or the adjacent Anklet zone). Never use them in Header, Hero, or General zones.
4
4
 
5
- The Footer zone is divided into subsections for legal content: Disclaimer, Disclosure, and Compliance. Each subsection accepts specific content types.
5
+ ---
6
6
 
7
- ## Footer Subsections
7
+ ## Content Types
8
8
 
9
- | Subsection | Content type | Component | Description |
9
+ | Content type | Component | Zone | Order in page |
10
10
  |---|---|---|---|
11
- | Disclaimer | Disclaimer | `Disclaimer` | Static legal text, displayed above disclosures |
12
- | Disclosure | Disclosure | `Disclosure` | Toggleable legal product information |
13
- | Compliance | Compliance Block | `ComplianceBlock` | Item numbers and material IDs for compliance tracking |
11
+ | Anklet | `Anklet` | Anklet (own zone, above footer) | 1 — above footer |
12
+ | Links & Social | `LinksAndSocial` | Footer | 2 first in footer |
13
+ | Disclaimers | `Disclaimer` | Footer | 3 |
14
+ | Disclosures | `Disclosure` | Footer | 4 |
15
+ | Disclosure Toggle Open | `DisclosureToggleOpen` | Footer | 4 (alongside Disclosures) |
16
+ | Compliance | `ComplianceBlock` | Footer | 5 |
17
+ | Legal Links | `LegalLinks` | Footer | 6 — last in footer |
18
+
19
+ ---
20
+
21
+ ## Footer Structure
22
+
23
+ ```
24
+ <Anklet /> ← own zone; quick-links bar above the footer
25
+
26
+ <Section zone="footer">
27
+ <LinksAndSocial … /> ← nav columns + social icons
28
+ <Disclaimer … /> ← static legal copy (always visible)
29
+ <Disclosure … /> ← legal toggle, starts collapsed
30
+ <DisclosureToggleOpen … /> ← legal toggle, starts expanded
31
+ <ComplianceBlock … /> ← Item Number / Material ID
32
+ <LegalLinks … /> ← Privacy, Terms, Accessibility, Copyright
33
+ </Section>
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Key Distinctions
39
+
40
+ | Comparison | Use |
41
+ |---|---|
42
+ | Disclaimers vs Disclosures | Disclaimers are always visible; Disclosures toggle open/closed |
43
+ | Disclosures vs Disclosure Toggle Open | Both toggle; Toggle Open starts expanded (for required-visible disclosures) |
44
+ | Compliance vs Disclaimers | Compliance is for structured IDs (Item #, Material ID); Disclaimers are free-text legal statements |
45
+ | Anklet vs Legal Links | Anklet links are product/service navigation; Legal Links are policy/legal destinations |
46
+
47
+ ---
14
48
 
15
49
  ## Placement Example
16
50
 
17
51
  ```tsx
18
- import { Section, Disclaimer, Disclosure, ComplianceBlock } from 'lion-make'
52
+ import {
53
+ Anklet,
54
+ Section,
55
+ LinksAndSocial,
56
+ Disclaimer,
57
+ Disclosure,
58
+ ComplianceBlock,
59
+ LegalLinks,
60
+ } from 'lion-make'
61
+
62
+ <Anklet links={ankletLinks} />
19
63
 
20
64
  <Section zone="footer">
21
- <Disclaimer
22
- text="Products underwritten by Mutual of Omaha Insurance Company, Omaha, Nebraska."
23
- itemNumber="ICC20-TERM"
24
- />
65
+ <LinksAndSocial columns={navColumns} socialLinks={socialLinks} />
66
+ <Disclaimer text="*Rates may vary based on health history and state of residence." />
25
67
  <Disclosure
26
- triggerLabel="Important Disclosure"
27
- content="This policy has exclusions, limitations, and reductions of benefits..."
28
- materialId="M28354"
68
+ triggerLabel="Term Life Insurance Disclosure"
69
+ content="Policy Form ICC22L-TERM. Issued by Mutual of Omaha Insurance Company."
70
+ materialId="L-TERM-0524"
71
+ />
72
+ <ComplianceBlock itemNumber="M37594_0524" />
73
+ <LegalLinks
74
+ copyrightText="© 2025 Mutual of Omaha Insurance Company"
75
+ links={legalLinks}
29
76
  />
30
- <ComplianceBlock itemNumber="ICC20-TERM" materialId="M28354" />
31
77
  </Section>
32
78
  ```
33
79
 
80
+ ---
81
+
34
82
  ## Files in This Section
35
83
 
84
+ - [anklet.md](./anklet.md)
85
+ - [links-and-social.md](./links-and-social.md)
86
+ - [disclaimers.md](./disclaimers.md)
87
+ - [disclosures.md](./disclosures.md)
88
+ - [disclosure-toggle-open.md](./disclosure-toggle-open.md)
89
+ - [compliance.md](./compliance.md)
90
+ - [legal-links.md](./legal-links.md)
91
+
92
+ Legacy docs (pre-Mondrian naming — kept for reference):
36
93
  - [disclaimer.md](./disclaimer.md)
37
94
  - [disclosure.md](./disclosure.md)
38
95
  - [compliance-block.md](./compliance-block.md)
@@ -0,0 +1,42 @@
1
+ # Accordion Block
2
+
3
+ **Zone:** General — Primary Column, Sideburn, Outro.
4
+
5
+ ## Description
6
+
7
+ Collapsible sections for Q&A, FAQs, or nested content. Reduces page length by hiding content until needed. One or multiple sections can be open at a time depending on configuration.
8
+
9
+ ## Props
10
+
11
+ | Prop | Type | Required | Default | Description |
12
+ |---|---|---|---|---|
13
+ | `items` | `AccordionItem[]` | Yes | — | Array of collapsible sections |
14
+ | `allowMultipleOpen` | `boolean` | No | `false` | Allow more than one section open at a time |
15
+ | `className` | `string` | No | — | Additional CSS class |
16
+
17
+ ### AccordionItem
18
+
19
+ | Prop | Type | Required | Description |
20
+ |---|---|---|---|
21
+ | `heading` | `string` | Yes | The clickable trigger label |
22
+ | `body` | `string` | Yes | Content revealed when expanded |
23
+
24
+ ## Usage
25
+
26
+ ```tsx
27
+ import { AccordionBlock } from 'lion-make'
28
+
29
+ <AccordionBlock
30
+ items={[
31
+ { heading: 'What is the waiting period?', body: 'Coverage begins on the first of the month after approval.' },
32
+ { heading: 'Can I cancel anytime?', body: 'Yes. Cancel with 30 days notice and receive a prorated refund.' },
33
+ { heading: 'Is there a medical exam?', body: 'No medical exam required for plans under $50,000.' },
34
+ ]}
35
+ />
36
+ ```
37
+
38
+ ## Design Tokens
39
+
40
+ - Trigger: `var(--font-size-base)`, `var(--font-weight-600)`, `var(--color-text)`
41
+ - Divider: `var(--border-width-thin)` solid `var(--color-line)`
42
+ - Body: `var(--font-size-base)`, `var(--line-height-base)`, `var(--color-text)`