Skip to content

feat(admin): implement AdminLayout component with strict mode and stories#473

Merged
husamettinarabaci merged 3 commits into
developfrom
feat/admin-layout-implementation
Jan 26, 2026
Merged

feat(admin): implement AdminLayout component with strict mode and stories#473
husamettinarabaci merged 3 commits into
developfrom
feat/admin-layout-implementation

Conversation

@krmlp

@krmlp krmlp commented Jan 26, 2026

Copy link
Copy Markdown
Contributor

Pull Request

📄 Summary

This PR introduces the AdminLayout component for the admin/layout module.

The component is implemented in Pioneer Strict Mode, serving as a reference layout that enforces the project's highest architectural standards: explicit configuration, composition-first design, and full i18n/a11y compliance.

  • Strict configuration: No default values. All visual and behavioral options (variants, loading state, widths) are required props.
  • No embedded strings: All user-facing and assistive text (ariaLabel, loadingLabel, sidebarAriaLabel) is passed explicitly for i18n.
  • Core components only: Built using Sidebar, Drawer, and Spinner.
  • Composition-first layout: Header, footer, and sidebar are injected via snippets to avoid layout-level coupling.
  • Svelte 5 runes: Uses $props, $derived, $derived.by, and $bindable.

🧩 Affected Module(s)

  • Source Code
  • Documentation
  • CI / Infra


✅ Checklist

  • My branch name follows format: feat/admin-layout-implementation
  • My PR title starts with one of the approved types listed above
  • My code is formatted using Prettier (pnpm format)
  • I ran static analysis (pnpm check) and resolved warnings
  • I linked related issues using keywords like Closes #219
  • I ensured this PR has no unrelated changes
  • This PR is ready for review and does not include unfinished work

🔗 Related Issues

Closes #219


krmlp added 3 commits January 26, 2026 13:21
…nd full a11y support

- Implement AdminLayout component with Pioneer/Strict mode standards
- Add zero-default props requirement (all behavioral props required)
- Integrate Spinner component instead of raw HTML loading indicator
- Add required accessibility props: ariaLabel, loadingLabel, sidebarAriaLabel
- Include mobile drawer support with Sidebar and Drawer components
- Add defensive checks for snippet rendering
- Create comprehensive Storybook stories (13 stories including Playground)
- Document structural HTML usage per AGENTS.md guidelines
- Export component from src/lib/index.ts

BREAKING CHANGE: All behavioral props are now required (no defaults)
- Separate desktop and mobile layouts to prevent drawer panel from showing on lg+ screens
- Desktop: Direct sidebar + main layout without Drawer wrapper
- Mobile: Drawer-based sidebar with proper content isolation
- Fixes visual bug where sidebar appeared twice on desktop viewports
- Remove default args from Storybook defineMeta configuration
- Fixes double sidebar rendering issue in all stories
- Snippet-based components should not use args for auto-render
@krmlp krmlp self-assigned this Jan 26, 2026
@github-actions github-actions Bot added the module:source Source Code label Jan 26, 2026
@github-project-automation github-project-automation Bot moved this to 📥 Inbox / Ideas in hexaTune Project Jan 26, 2026

@husamettinarabaci husamettinarabaci left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-project-automation github-project-automation Bot moved this from 📥 Inbox / Ideas to Done in hexaTune Project Jan 26, 2026
@husamettinarabaci husamettinarabaci merged commit e01e975 into develop Jan 26, 2026
8 checks passed
@husamettinarabaci husamettinarabaci deleted the feat/admin-layout-implementation branch January 26, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:source Source Code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants