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.
- package/dist/components/footer/Disclosure.d.ts +3 -2
- package/dist/components/footer/DisclosureToggleOpen.d.ts +13 -0
- package/dist/components/footer/LegalLinks.d.ts +16 -0
- package/dist/components/footer/LinksAndSocial.d.ts +25 -0
- package/dist/components/general/AccordionBlock.d.ts +15 -0
- package/dist/components/general/AllBlogsPostBlock.d.ts +21 -0
- package/dist/components/general/BackgroundColorBlock.d.ts +12 -0
- package/dist/components/general/BasicContentBlock.d.ts +18 -0
- package/dist/components/general/BodyTextCopyBlock.d.ts +12 -0
- package/dist/components/general/ContentImageBlock.d.ts +15 -0
- package/dist/components/general/CrossSellCardBlock.d.ts +18 -0
- package/dist/components/general/DecorativeListBlock.d.ts +13 -0
- package/dist/components/general/EmailCalloutBlock.d.ts +14 -0
- package/dist/components/general/EmbeddedVideoBlock.d.ts +15 -0
- package/dist/components/general/FullSizeImageWithHighlightBox.d.ts +21 -0
- package/dist/components/general/HorizontalRule.d.ts +13 -0
- package/dist/components/general/HotJobsBlock.d.ts +21 -0
- package/dist/components/general/InlineMessage.d.ts +14 -0
- package/dist/components/general/LastChanceBlock.d.ts +15 -0
- package/dist/components/general/MultiStepLeadForm.d.ts +19 -0
- package/dist/components/general/MultiTestimonial.d.ts +19 -0
- package/dist/components/general/OptIn.d.ts +16 -0
- package/dist/components/general/ProductBlock.d.ts +17 -0
- package/dist/components/general/PullQuote.d.ts +12 -0
- package/dist/components/general/RTBDescriptive.d.ts +18 -0
- package/dist/components/general/RTBDynamic.d.ts +21 -0
- package/dist/components/general/RTBHighlight.d.ts +18 -0
- package/dist/components/general/RecentBlogPostsBlock.d.ts +22 -0
- package/dist/components/general/ResourceSpotlight.d.ts +18 -0
- package/dist/components/general/SideMenuExplorer.d.ts +16 -0
- package/dist/components/general/SimpleCTABlock.d.ts +15 -0
- package/dist/components/general/SpacingBlock.d.ts +12 -0
- package/dist/components/general/SpeedBump.d.ts +16 -0
- package/dist/components/general/TableBlock.d.ts +13 -0
- package/dist/components/general/WAHFU.d.ts +15 -0
- package/dist/components/header/HeaderCTA.d.ts +9 -0
- package/dist/components/header/HeaderLogo.d.ts +10 -0
- package/dist/components/header/HeaderProduct.d.ts +10 -0
- package/dist/components/header/HeaderSectionNavigation.d.ts +12 -0
- package/dist/components/header/HeaderSectionTitle.d.ts +8 -0
- package/dist/components/header/HeaderUnderwriter.d.ts +9 -0
- package/dist/components/header/TopLevelNavigation.d.ts +13 -0
- package/dist/components/hero/CTAHeroBlock.d.ts +24 -0
- package/dist/components/hero/HeroBlock.d.ts +18 -0
- package/dist/components/hero/MultiHero.d.ts +25 -0
- package/dist/components/hero/NotAvailableHeroBlock.d.ts +22 -0
- package/dist/index.d.ts +92 -2
- package/dist/lion-make.js +1855 -545
- package/dist/lion-make.umd.cjs +10 -10
- package/guidelines/Guidelines.md +46 -50
- package/guidelines/composition/constraints.md +40 -8
- package/guidelines/composition/zones.md +49 -11
- package/guidelines/content-types/footer/anklet.md +62 -0
- package/guidelines/content-types/footer/compliance.md +49 -0
- package/guidelines/content-types/footer/disclaimers.md +48 -0
- package/guidelines/content-types/footer/disclosure-toggle-open.md +51 -0
- package/guidelines/content-types/footer/disclosures.md +50 -0
- package/guidelines/content-types/footer/legal-links.md +59 -0
- package/guidelines/content-types/footer/links-and-social.md +94 -0
- package/guidelines/content-types/footer/overview.md +73 -16
- package/guidelines/content-types/general/accordion-block.md +42 -0
- package/guidelines/content-types/general/all-blogs-post-block.md +52 -0
- package/guidelines/content-types/general/background-color-block.md +42 -0
- package/guidelines/content-types/general/basic-content-block.md +43 -0
- package/guidelines/content-types/general/body-text-copy-block.md +38 -0
- package/guidelines/content-types/general/content-image-block.md +37 -0
- package/guidelines/content-types/general/cross-sell-card-block.md +45 -0
- package/guidelines/content-types/general/decorative-list-block.md +40 -0
- package/guidelines/content-types/general/email-callout-block.md +38 -0
- package/guidelines/content-types/general/embedded-video-block.md +36 -0
- package/guidelines/content-types/general/full-size-image-with-highlight-box.md +52 -0
- package/guidelines/content-types/general/horizontal-rule.md +35 -0
- package/guidelines/content-types/general/hot-jobs-block.md +52 -0
- package/guidelines/content-types/general/inline-message.md +36 -0
- package/guidelines/content-types/general/last-chance-block.md +40 -0
- package/guidelines/content-types/general/multi-step-lead-form.md +60 -0
- package/guidelines/content-types/general/multi-testimonial.md +49 -0
- package/guidelines/content-types/general/opt-in.md +42 -0
- package/guidelines/content-types/general/overview.md +134 -24
- package/guidelines/content-types/general/product-block.md +43 -0
- package/guidelines/content-types/general/pull-quote.md +36 -0
- package/guidelines/content-types/general/recent-blog-posts-block.md +48 -0
- package/guidelines/content-types/general/resource-spotlight.md +44 -0
- package/guidelines/content-types/general/rtb-descriptive.md +53 -0
- package/guidelines/content-types/general/rtb-dynamic.md +55 -0
- package/guidelines/content-types/general/rtb-highlight.md +50 -0
- package/guidelines/content-types/general/side-menu-explorer.md +62 -0
- package/guidelines/content-types/general/simple-cta-block.md +44 -0
- package/guidelines/content-types/general/spacing-block.md +40 -0
- package/guidelines/content-types/general/speed-bump.md +45 -0
- package/guidelines/content-types/general/table-block.md +55 -0
- package/guidelines/content-types/general/wahfu.md +66 -0
- package/guidelines/content-types/header/header-cta.md +41 -0
- package/guidelines/content-types/header/header-logo.md +45 -0
- package/guidelines/content-types/header/header-product.md +45 -0
- package/guidelines/content-types/header/header-section-navigation.md +55 -0
- package/guidelines/content-types/header/header-section-title.md +43 -0
- package/guidelines/content-types/header/header-underwriter.md +46 -0
- package/guidelines/content-types/header/overview.md +61 -15
- package/guidelines/content-types/header/top-level-navigation.md +70 -0
- package/guidelines/content-types/hero/cta-hero-block.md +70 -0
- package/guidelines/content-types/hero/hero-block.md +56 -0
- package/guidelines/content-types/hero/multi-hero.md +78 -0
- package/guidelines/content-types/hero/not-available-hero-block.md +64 -0
- package/guidelines/content-types/hero/overview.md +53 -18
- package/guidelines/content-types/overview.md +86 -29
- package/guidelines/discovery.md +158 -0
- package/guidelines/setup.md +90 -16
- 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 |
|
|
7
|
+
| Zone | Template | Allowed Content Types | Components |
|
|
8
8
|
|---|---|---|---|
|
|
9
|
-
| **Header** | Both |
|
|
10
|
-
| **Hero** | Both |
|
|
11
|
-
| **Primary Column** | Both |
|
|
12
|
-
| **Sideburn** | Sideburn only |
|
|
13
|
-
| **Outro** | Sideburn only |
|
|
14
|
-
| **Anklet** | Both |
|
|
15
|
-
| **Footer** | Both |
|
|
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
|
|
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.
|
|
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
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Content Types
|
|
8
8
|
|
|
9
|
-
|
|
|
9
|
+
| Content type | Component | Zone | Order in page |
|
|
10
10
|
|---|---|---|---|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
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 {
|
|
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
|
-
<
|
|
22
|
-
|
|
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="
|
|
27
|
-
content="
|
|
28
|
-
materialId="
|
|
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)`
|