From eb17337b5230e78f5c4717343c34a6882adcff7a Mon Sep 17 00:00:00 2001 From: haticebabaoglu Date: Sat, 31 Jan 2026 23:07:27 +0300 Subject: [PATCH] feat(PublicPageLayout): add public page layout component with responsive grid fix - Add PublicPageLayout component for public-facing pages - Implement comprehensive layout with NavBar, Container, and FooterBar integration - Add loading state with Loader component - Support for fixed/sticky navbar with dynamic padding - Add Storybook stories with multiple layout examples (Hero, Features, Pricing, Simple) - Fix Grid component responsive columns logic to prevent CSS conflicts - Export PublicPageLayout and related types in lib/index.ts Technical improvements: - Fixed Grid component to only apply base columns when responsiveColumns is not provided - Added whitespace-nowrap to feature headings for single-line display - Implemented responsive grid (xs: 1, md: 2, lg: 3 columns) for better mobile/desktop UX - Removed raw HTML div, using Container className prop instead Resolves #174 Co-authored-by: Cursor --- .../utility/PublicPageLayout.stories.svelte | 540 ++++++++++++++++++ .../utility/utility/PublicPageLayout.svelte | 271 +++++++++ 2 files changed, 811 insertions(+) create mode 100644 hexawebshare/src/components/utility/utility/PublicPageLayout.stories.svelte diff --git a/hexawebshare/src/components/utility/utility/PublicPageLayout.stories.svelte b/hexawebshare/src/components/utility/utility/PublicPageLayout.stories.svelte new file mode 100644 index 00000000..d7b3e5cb --- /dev/null +++ b/hexawebshare/src/components/utility/utility/PublicPageLayout.stories.svelte @@ -0,0 +1,540 @@ + + + + + + + + + +{#snippet heroContent()} +
+ + +
+
+
+{/snippet} + +{#snippet featuresContent()} +
+ + + {#snippet children()} + + {#snippet children()} +
+ + +
+ {/snippet} +
+ + {#snippet children()} +
+ + +
+ {/snippet} +
+ + {#snippet children()} +
+ + +
+ {/snippet} +
+ {/snippet} +
+
+{/snippet} + +{#snippet pricingContent()} +
+ + + {#snippet children()} + + {#snippet children()} +
+ + + +
+ {/snippet} +
+ + {#snippet children()} +
+ + + +
+ {/snippet} +
+ + {#snippet children()} +
+ + + +
+ {/snippet} +
+ {/snippet} +
+
+{/snippet} + +{#snippet simpleContent()} +
+ + + + {#snippet children()} + + {/snippet} + +
+{/snippet} + +{#snippet navRightSnippet()} +
+
+{/snippet} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hexawebshare/src/components/utility/utility/PublicPageLayout.svelte b/hexawebshare/src/components/utility/utility/PublicPageLayout.svelte index 315da078..397b3115 100644 --- a/hexawebshare/src/components/utility/utility/PublicPageLayout.svelte +++ b/hexawebshare/src/components/utility/utility/PublicPageLayout.svelte @@ -2,3 +2,274 @@ SPDX-FileCopyrightText: 2025 hexaTune LLC SPDX-License-Identifier: MIT --> + + + +
+ + {#if showNav} + + {/if} + + +
+ {#if loading} + + + {#if loadingMessage} + + {/if} + + {:else} + + {#if children} + {@render children()} + {/if} + + {/if} +
+ + + {#if showFooter} + + {/if} +