Rustelo/resources/nickel/footer/contracts.ncl
Jesús Pérez f1010e9d07
chore: update
2026-07-18 20:16:16 +01:00

97 lines
1.7 KiB
Text

# Footer Configuration Contracts
#
# Type contracts for footer configuration with multilingual support.
# Single source of truth for footer content, menu items, and social links.
{
# Bilingual text fields
BilingualText = {
en
| String
| doc "English text",
es
| String
| doc "Spanish text",
},
# Footer menu item (subset of main menu contract)
FooterMenuItem = {
id
| String
| doc "Unique identifier",
routes
| { en | String, es | String, .. }
| doc "Routes for each language",
labels
| BilingualText
| doc "Display labels for each language",
icon
| String
| optional,
priority
| Number
| doc "Display priority (negative for footer-only items)"
| default = 0,
is_external
| Bool
| default = false,
enabled
| Bool
| default = true,
..
},
# Social media link
SocialLink = {
name
| String
| doc "Social network name (e.g., 'LinkedIn', 'GitHub')",
url
| String
| doc "Full URL to social profile",
icon_class
| String
| doc "Icon class (e.g., 'fab fa-linkedin')",
enabled
| Bool
| default = true,
..
},
# Root footer configuration
FooterFile = {
title
| String
| doc "Footer title (same for all languages)",
company_desc
| BilingualText
| doc "Company description for each language",
copyright_text
| BilingualText
| doc "Copyright notice for each language",
menu
| Array FooterMenuItem
| doc "Footer-specific menu items (e.g., Privacy, Legal)",
social_links
| Array SocialLink
| doc "Social media links",
..
},
}