Merge version_5 into main #19

Merged
bender merged 51 commits from version_5 into main 2026-03-04 19:07:59 +00:00
17 changed files with 36 additions and 36 deletions

View File

@@ -6,14 +6,14 @@
"textRules": {
"copyrightText": {
"required": false,
"example": "© 2025 | AstroSec",
"example": "© 2025 | ASTROSEC",
"minChars": 5,
"maxChars": 100,
"note": "Copyright text displayed at bottom left"
},
"logoText": {
"required": false,
"example": "AstroSec",
"example": "ASTROSEC",
"minChars": 2,
"maxChars": 30,
"note": "Text used for h2 heading"
@@ -34,9 +34,9 @@
}
},
"propsSchema": {
"logoText?": "string (default: 'AstroSec')",
"logoText?": "string (default: 'ASTROSEC')",
"columns": "Array<{ title: string, items: Array<{ label: string, href: string }> }> - Footer navigation columns (required)",
"copyrightText?": "string (default: '© 2025 | AstroSec')",
"copyrightText?": "string (default: '© 2025 | ASTROSEC')",
"onPrivacyClick?": "() => void",
"ariaLabel?": "string (default: 'Site footer')",
"className?": "string",
@@ -51,7 +51,7 @@
"copyrightTextClassName?": "string",
"privacyButtonClassName?": "string"
},
"usageExample": "<FooterBaseCard columns={[{ title: 'Product', items: [{ label: 'Features', href: '/features' }, { label: 'Pricing', href: '/pricing' }] }, { title: 'Company', items: [{ label: 'About', href: '/about' }, { label: 'Blog', href: '/blog' }] }]} logoText=\"AstroSec\" copyrightText=\"© 2025 | AstroSec\" onPrivacyClick={() => console.log('Privacy clicked')} />",
"usageExample": "<FooterBaseCard columns={[{ title: 'Product', items: [{ label: 'Features', href: '/features' }, { label: 'Pricing', href: '/pricing' }] }, { title: 'Company', items: [{ label: 'About', href: '/about' }, { label: 'Blog', href: '/blog' }] }]} logoText=\"ASTROSEC\" copyrightText=\"© 2025 | ASTROSEC\" onPrivacyClick={() => console.log('Privacy clicked')} />",
"do": [
"Use for general use",
"Requires columns[]"

View File

@@ -6,14 +6,14 @@
"textRules": {
"copyrightText": {
"required": false,
"example": "© 2025 | AstroSec",
"example": "© 2025 | ASTROSEC",
"minChars": 5,
"maxChars": 100,
"note": "Copyright text displayed at bottom left"
},
"logoText": {
"required": false,
"example": "AstroSec",
"example": "ASTROSEC",
"minChars": 2,
"maxChars": 30,
"note": "Text used for SVG logo"
@@ -33,8 +33,8 @@
}
},
"propsSchema": {
"logoText?": "string (default: 'AstroSec')",
"copyrightText?": "string (default: '© 2025 | AstroSec')",
"logoText?": "string (default: 'ASTROSEC')",
"copyrightText?": "string (default: '© 2025 | ASTROSEC')",
"socialLinks?": "Array<{ icon: LucideIcon, href: string, ariaLabel: string }> - Social media links",
"ariaLabel?": "string (default: 'Site footer')",
"className?": "string",
@@ -47,7 +47,7 @@
"socialContainerClassName?": "string",
"socialIconClassName?": "string"
},
"usageExample": "<FooterCard logoText=\"AstroSec\" copyrightText=\"© 2025 | AstroSec\" socialLinks={[{ icon: Twitter, href: 'https://twitter.com/webild', ariaLabel: 'Twitter' }, { icon: Linkedin, href: 'https://linkedin.com/company/webild', ariaLabel: 'LinkedIn' }]} />",
"usageExample": "<FooterCard logoText=\"ASTROSEC\" copyrightText=\"© 2025 | ASTROSEC\" socialLinks={[{ icon: Twitter, href: 'https://twitter.com/webild', ariaLabel: 'Twitter' }, { icon: Linkedin, href: 'https://linkedin.com/company/webild', ariaLabel: 'LinkedIn' }]} />",
"do": [
"Use for general use",
"Requires socialLinks?[]"

View File

@@ -6,7 +6,7 @@
"textRules": {
"logoText": {
"required": false,
"example": "AstroSec",
"example": "ASTROSEC",
"minChars": 2,
"maxChars": 30,
"note": "Text used for SVG logo"
@@ -20,7 +20,7 @@
}
},
"propsSchema": {
"logoText?": "string (default: 'AstroSec')",
"logoText?": "string (default: 'ASTROSEC')",
"leftLink": "{ text: string, onClick?: () => void, href?: string } (required)",
"rightLink": "{ text: string, onClick?: () => void, href?: string } (required)",
"ariaLabel?": "string (default: 'Site footer')",
@@ -30,7 +30,7 @@
"logoClassName?": "string",
"linkClassName?": "string"
},
"usageExample": "<FooterLogoReveal logoText=\"AstroSec\" leftLink={{ text: 'Privacy Policy', href: '/privacy' }} rightLink={{ text: 'Terms of Service', href: '/terms' }} />",
"usageExample": "<FooterLogoReveal logoText=\"ASTROSEC\" leftLink={{ text: 'Privacy Policy', href: '/privacy' }} rightLink={{ text: 'Terms of Service', href: '/terms' }} />",
"do": [
"Use for general use"
],

View File

@@ -12,7 +12,7 @@
},
"bottomRightText": {
"required": true,
"example": "Made with AstroSec",
"example": "Made with ASTROSEC",
"minChars": 2,
"maxChars": 50
},
@@ -63,7 +63,7 @@
"bottomLeftTextClassName?": "string",
"bottomRightTextClassName?": "string"
},
"usageExample": "<FooterSimple columns={[{ title: 'Navigate', items: [{ label: 'Home', href: '#' }, { label: 'About', href: '#' }] }, { title: 'Resources', items: [{ label: 'Blog', href: '#' }, { label: 'FAQ', href: '#' }] }, { title: 'Legal', items: [{ label: 'Privacy', href: '#' }, { label: 'Terms', href: '#' }] }]} bottomLeftText=\"© 2025 Company. All rights reserved.\" bottomRightText=\"Made with AstroSec\" />",
"usageExample": "<FooterSimple columns={[{ title: 'Navigate', items: [{ label: 'Home', href: '#' }, { label: 'About', href: '#' }] }, { title: 'Resources', items: [{ label: 'Blog', href: '#' }, { label: 'FAQ', href: '#' }] }, { title: 'Legal', items: [{ label: 'Privacy', href: '#' }, { label: 'Terms', href: '#' }] }]} bottomLeftText=\"© 2025 Company. All rights reserved.\" bottomRightText=\"Made with ASTROSEC\" />",
"do": [
"Use for feature showcases",
"Use for capability displays",

View File

@@ -3,7 +3,7 @@
"propsSchema": {
"navItems": "Array<{name: string, id: string}>",
"className?": "string",
"brandName?": "string (default: 'AstroSec')",
"brandName?": "string (default: 'ASTROSEC')",
"button": "{text: string, onClick?: () => void, href?: string}",
"buttonClassName?": "string (default: '')",
"buttonTextClassName?": "string (default: '')"

View File

@@ -2,6 +2,6 @@
"name": "NavbarStyleApple",
"propsSchema": {
"navItems": "Array<{name: string, id: string}>",
"brandName?": "string (default: 'AstroSec')"
"brandName?": "string (default: 'ASTROSEC')"
}
}

View File

@@ -4,7 +4,7 @@
"navItems": "Array<{name: string, id: string}>",
"button": "{text: string, onClick?: () => void, href?: string}",
"topBarButton?": "{text: string, onClick?: () => void, href?: string}",
"brandName?": "string (default: 'AstroSec')",
"brandName?": "string (default: 'ASTROSEC')",
"className?": "string (default: '')"
}
}

View File

@@ -2,7 +2,7 @@
"name": "NavbarStyleFullscreen",
"propsSchema": {
"navItems": "Array<{name: string, id: string}>",
"brandName?": "string (default: 'AstroSec')",
"brandName?": "string (default: 'ASTROSEC')",
"bottomLeftText?": "string (default: 'Global Community')",
"bottomRightText?": "string (default: 'hello@example.com')",
"topBarClassName?": "string (default: '')"

View File

@@ -7,7 +7,7 @@ import "./styles/base.css";
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "AstroSec - Cybersecurity & AI Solutions", description: "Next-generation security and AI solutions for enterprises"
title: "ASTROSEC - Cybersecurity & AI Solutions", description: "Next-generation security and AI solutions for enterprises"
};
export default function RootLayout({
@@ -573,7 +573,7 @@ export default function RootLayout({
selection.addRange(range);
}
} catch (e) {
console.warn('[AstroSec] Could not set caret position:', e);
console.warn('[ASTROSEC] Could not set caret position:', e);
}
}
};
@@ -1098,13 +1098,13 @@ export default function RootLayout({
}
}
} catch (err) {
console.warn('[AstroSec] Failed to revert change:', err);
console.warn('[ASTROSEC] Failed to revert change:', err);
}
});
}
clearLocalChanges();
} catch (error) {
console.error('[AstroSec] Failed to cancel changes:', error);
console.error('[ASTROSEC] Failed to cancel changes:', error);
}
return;
}
@@ -1121,7 +1121,7 @@ export default function RootLayout({
try {
element = document.querySelector(selector);
} catch (err) {
console.warn('[AstroSec] Invalid selector:', selector);
console.warn('[ASTROSEC] Invalid selector:', selector);
}
}
@@ -1186,7 +1186,7 @@ export default function RootLayout({
}
}
} catch (error) {
console.error('[AstroSec] Invalid selector for button update:', selector, error);
console.error('[ASTROSEC] Invalid selector for button update:', selector, error);
}
return;
}

View File

@@ -279,7 +279,7 @@ export default function LandingPage() {
],
},
]}
bottomLeftText="© 2025 AstroSec. All rights reserved."
bottomLeftText="© 2025 ASTROSEC. All rights reserved."
bottomRightText="Securing Tomorrow, Today"
/>
</div>

View File

@@ -18,7 +18,7 @@ interface LogoProps {
const Logo = ({
// logoSrc,
// logoAlt = "",
brandName = "AstroSec",
brandName = "ASTROSEC",
// className = "",
// imageClassName = "",
textClassName = "",

View File

@@ -23,7 +23,7 @@ interface NavbarLayoutFloatingInlineProps {
const NavbarLayoutFloatingInline = ({
navItems,
brandName = "AstroSec",
brandName = "ASTROSEC",
button,
animateOnLoad = true,
className = "",

View File

@@ -28,7 +28,7 @@ const NavbarLayoutFloatingOverlay = ({
// logoSrc,
// logoAlt = "",
className = "",
brandName = "AstroSec",
brandName = "ASTROSEC",
button,
buttonClassName = "",
buttonTextClassName = "",

View File

@@ -57,7 +57,7 @@ const NavbarStyleCentered = ({
topBarButton,
// logoSrc,
// logoAlt = "",
brandName = "AstroSec",
brandName = "ASTROSEC",
className = "",
}: NavbarStyleCenteredProps) => {
const [isActive, setIsActive] = useState(false);

View File

@@ -30,11 +30,11 @@ interface FooterBaseProps {
const FooterBase = ({
// logoSrc = "/brand/logowhite.svg",
logoText = "AstroSec",
logoText = "ASTROSEC",
// logoWidth = 120,
// logoHeight = 40,
columns,
copyrightText = `© 2025 | AstroSec`,
copyrightText = `© 2025 | ASTROSEC`,
onPrivacyClick,
ariaLabel = "Site footer",
className = "",

View File

@@ -26,8 +26,8 @@ interface FooterCardProps {
const FooterCard = ({
// logoSrc,
// logoAlt = "Logo",
logoText = "AstroSec",
copyrightText = `© 2025 | AstroSec`,
logoText = "ASTROSEC",
copyrightText = `© 2025 | ASTROSEC`,
socialLinks,
ariaLabel = "Site footer",
className = "",

View File

@@ -51,11 +51,11 @@ const FooterMedia = ({
imageAlt = "",
videoAriaLabel = "Footer video",
// logoSrc = "/brand/logowhite.svg",
logoText = "AstroSec",
logoText = "ASTROSEC",
// logoWidth = 120,
// logoHeight = 40,
columns,
copyrightText = `© 2025 | AstroSec`,
copyrightText = `© 2025 | ASTROSEC`,
onPrivacyClick,
ariaLabel = "Site footer",
className = "",