Commit Graph

45 Commits

Author SHA1 Message Date
Aaron Powell
fb4fb59625 fix: improve dropdown text visibility in dark/light modes
and ensure dropdown background and text colors properly use CSS variables
in both dark and light themes.
2026-02-03 11:39:28 +11:00
Aaron Powell
f4c2e0b0e0 Add commit SHA and build date to website footer
- Display short commit SHA with link to GitHub commit
- Show build date in YYYY-MM-DD format
- Use GITHUB_SHA env var in CI, fallback to git command locally
- Add subtle styling for build info text
2026-02-03 10:38:16 +11:00
Aaron Powell
a1da290d10 Refactor code for consistency and readability
- Standardized string quotes to double quotes across multiple files.
- Improved formatting and indentation for better readability.
- Added a function to format multiline text in tools rendering.
- Enhanced dropdown and action button handlers for better event management.
- Updated the theme application logic to initialize on page load.
- Refactored utility functions for consistency and clarity.
- Improved error handling and user feedback in download and share functionalities.
2026-02-02 16:42:22 +11:00
copilot-swe-agent[bot]
9e44173f94 Improve comment clarity for string escaping fix
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
2026-02-02 05:07:06 +00:00
copilot-swe-agent[bot]
fb5f22a6b2 fix(website): properly escape backslashes and quotes in file paths
The previous implementation only escaped single quotes, which could allow
backslashes in file paths to break out of the JavaScript string context.
Now we escape backslashes first (\ -> \\), then single quotes (' -> \'),
preventing potential security issues.

Fixes CodeQL alert #26 for incomplete string escaping.

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
2026-02-02 05:05:42 +00:00
Aaron Powell
611474f980 fix(website): resolve TypeScript errors in samples.ts
- Remove SearchableRecipe interface that conflicted with SearchableItem
- Use proper type casting for search results
- Fix FuzzySearch generic type usage
2026-02-02 15:42:34 +11:00
Aaron Powell
f8d9322f01 these are generated, shouldn't be committed 2026-02-02 15:36:32 +11:00
Aaron Powell
a64f4e78b9 Fixing some whitespace 2026-02-02 15:33:04 +11:00
Aaron Powell
3a7c8ccf1a feat(website): add Nerd Fonts for programming language icons
- Add Monaspace Argon NF font for dev icons
- Update cookbook.yml with unicode codepoints for language icons:
  - TypeScript: \uE628
  - Python: \uE73C
  - C#/.NET: \uF81A
  - Go: \uE626
- Style .lang-tab and .lang-indicator with Nerd Font family
2026-02-02 15:26:24 +11:00
Aaron Powell
9eab4ec6e7 fix(website): use Choices.js wrapper for samples tag filter
Use the same createChoices/getChoicesValues helpers as other pages
for consistent multi-select behavior.
2026-02-02 15:14:45 +11:00
Aaron Powell
b8d93a0344 feat(website): add samples/cookbook page with recipe browser
Integrates the cookbook/ folder into the website's Samples page:

Data Structure:
- Add cookbook/cookbook.yml manifest defining cookbooks and recipes
- Add .schemas/cookbook.schema.json for validation
- Add COOKBOOK_DIR constant to eng/constants.mjs

Build Integration:
- Add generateSamplesData() to generate samples.json from cookbook.yml
- Include recipe variants with file paths for each language
- Add samples count to manifest.json

Website UI:
- Create samples.ts with FuzzySearch, language/tag filtering
- Replace placeholder samples.astro with functional recipe browser
- Recipe cards with language indicators and action buttons
- Language tabs for switching between implementations
- View Recipe/View Example buttons open modal
- GitHub link for each recipe

Features:
- Search recipes by name/description
- Filter by programming language (Node.js, Python, .NET, Go)
- Filter by tags (multi-select with Choices.js)
- 5 recipes across 4 languages = 20 recipe variants
2026-02-02 15:11:12 +11:00
Aaron Powell
2f9c59444b fix(website): update button styles and fix dropdown z-index
- Change primary buttons from gradient to solid Copilot Purple (#8534F3)
- Add position:relative and z-index:10 to .filters-bar to fix
  Choices.js dropdown appearing behind resource list items
2026-02-02 13:46:39 +11:00
Aaron Powell
94a395dbe0 feat(website): add comprehensive accessibility improvements
Phase 1 - Screen Reader Critical:
- Add aria-label to main navigation
- Add accessible names to icon-only buttons (GitHub, theme toggle, close)
- Add aria-hidden to decorative SVGs and emoji icons
- Add role=dialog, aria-modal, aria-labelledby to modal
- Add skip link with visible focus state

Phase 2 - Keyboard Navigation:
- Implement focus trap in modal (Tab/Shift+Tab cycles)
- Return focus to trigger element on modal close
- Replace outline:none with visible focus rings
- Add keyboard navigation to install dropdown (arrows, escape)
- Add aria-expanded to dropdown toggles

Phase 3 - Dynamic Content:
- Add aria-live=polite to results counts and loading states
- Add role=listbox to search results
- Add role=list to resource lists
- Add role=menu/menuitem to dropdown menus

Phase 4 - Forms & Labels:
- Add .sr-only utility class for screen reader text
- Add visually hidden labels to all search inputs
- Add aria-label to filter dropdowns

Files modified:
- BaseLayout.astro, Modal.astro (ARIA attributes)
- modal.ts (focus trap, keyboard navigation)
- global.css (sr-only, skip-link, focus styles)
- All page files (labels, live regions, roles)
2026-02-02 11:52:31 +11:00
Aaron Powell
f99c99a5d4 fixing overflow 2026-02-02 10:36:16 +11:00
Aaron Powell
4318aa547f Remove unused src/styles/global.css
The site uses public/styles/global.css via direct link in BaseLayout.
The src/styles version was outdated and never imported.
2026-02-02 10:34:36 +11:00
Aaron Powell
0cabb88035 Enable source maps for JavaScript and CSS
- Add vite.build.sourcemap for production builds
- Add vite.css.devSourcemap for CSS in development
2026-02-02 10:31:19 +11:00
Aaron Powell
b1b3ab377d Fix search results dropdown z-index on home page
Add z-index to .hero-search container so dropdown appears above cards
2026-02-02 10:14:35 +11:00
Aaron Powell
e3894a0b1b Merge resource counts into home page cards
- Remove separate hero-stats section
- Add card-count element to each resource card
- Update JS to populate counts from manifest
- Add card-with-count CSS for layout with count badge
- Reduces vertical space on home page
2026-02-02 10:09:36 +11:00
Aaron Powell
c8d342cc62 Add tools catalog with YAML schema and website page
- Create website/data/tools.yml with 6 tools:
  - Awesome Copilot MCP Server
  - Awesome GitHub Copilot Browser (VS Code extension)
  - APM - Agent Package Manager (CLI)
  - Workspace Architect (npm CLI)
  - Prompt Registry (VS Code extension)
  - GitHub Node for Visual Studio

- Add .schemas/tools.schema.json for YAML validation
- Update eng/generate-website-data.mjs to generate tools.json
- Add parseYamlFile() to eng/yaml-parser.mjs
- Refactor tools.astro to use external TypeScript module
- Create website/src/scripts/pages/tools.ts with:
  - FuzzySearch integration for search
  - Category filtering
  - Copy configuration functionality
2026-01-29 13:48:42 +11:00
Aaron Powell
1388d0847a flattening the base url 2026-01-29 13:15:21 +11:00
Aaron Powell
0c6ccf3908 feat: use official GitHub Copilot logo in header
- Add Copilot_Icon_White.svg and Copilot_Icon_Black.svg
- Switch between white/black logos based on theme
- Update favicon to use Copilot icon
2026-01-29 10:49:36 +11:00
Aaron Powell
43a1ca1844 style: update colors to GitHub Copilot brand palette
Use official Copilot colors from brand.github.com:
- Primary purple: #8534F3
- Purple variants: #C898FD, #B870FF, #43179E, #26115F
- Orange accents: #FE4C25, #F08A3A, #C53211
- Updated gradients to use purple-to-orange blend
2026-01-29 10:45:39 +11:00
Aaron Powell
10e42f4bed style: fix collection modal spacing and make items more compact 2026-01-29 10:39:41 +11:00
Aaron Powell
3bb799616a feat: show collections as item list in modal instead of raw YAML
- Display collection name, description, and tags
- Show clickable list of items in the collection
- Each item shows icon, filename, usage hint, and type badge
- Clicking an item opens that file in the modal
- Hide copy/download buttons for collections (they don't apply)
2026-01-29 10:37:55 +11:00
Aaron Powell
9da53a279e feat: add deep linking support for file modal
- Update URL hash when opening/closing modal (#file=path)
- Handle browser back/forward navigation
- Open modal on page load if hash is present
- Share button now copies deep link URL instead of GitHub URL
2026-01-29 10:34:06 +11:00
Aaron Powell
c052ec05b5 style: remove gradient from page header text for readability 2026-01-29 10:28:23 +11:00
Aaron Powell
82accb2cd6 Some more ts updates 2026-01-29 10:26:03 +11:00
Aaron Powell
d46210b2de fix: make FuzzySearch generic to support typed items
- Add SearchableItem base interface for minimum required fields
- Make FuzzySearch class generic with type parameter
- Update all page scripts to use typed FuzzySearch instances
- Fix type casting in calculateScore method
2026-01-29 09:56:20 +11:00
Aaron Powell
63fb276a6c Tweaking a label set 2026-01-29 09:53:29 +11:00
Aaron Powell
d450d7d3d5 feat: add download and share buttons to list view and modal
- Add Download button to download file as .md file
- Add Share button to copy GitHub link to clipboard
- Both buttons appear in modal header and list view actions
- Use icon-only buttons in list view for cleaner UI
2026-01-29 09:44:31 +11:00
Aaron Powell
009c6c72f8 style: remove VS Code icons from dropdown menu items 2026-01-29 09:37:32 +11:00
Aaron Powell
c378488ceb style: remove icon from install button 2026-01-29 09:35:41 +11:00
Aaron Powell
7e7b5c8610 feat: implement split button dropdown for install options
- Replace separate VS Code/Insiders buttons with single Install dropdown
- Primary 'Install' button opens in VS Code, dropdown chevron reveals options
- Dropdown shows 'VS Code' and 'VS Code Insiders' choices
- Add CSS for split button styling with glassmorphism dropdown
- Apply to modal and all list views (agents, prompts, instructions)
2026-01-29 09:33:49 +11:00
Aaron Powell
1887d9ba56 feat: add VS Code install buttons to list views
- Add VS Code and VS Code Insiders install buttons to agent, prompt, and instruction list items
- Use smaller button style for list view
- Include VS Code icon for visual identification
2026-01-28 19:51:35 +11:00
Aaron Powell
d0bcc226ba feat: add VS Code and VS Code Insiders install buttons
- Fix VS Code install URL format to match README links
- Add separate buttons for VS Code and VS Code Insiders
- Support install links for agents, prompts, and instructions
- Add VS Code icon SVG to buttons
2026-01-28 19:45:22 +11:00
Aaron Powell
63f2080694 fix: allow search result descriptions to wrap fully 2026-01-28 17:08:52 +11:00
Aaron Powell
4411eea562 fix: improve homepage search results dropdown styling
- Left-align search results content
- Add proper icon container with background
- Improve spacing and padding
- Add highlight styling for search matches
- Add empty state styling
- Support both .search-result and .search-result-item classes
2026-01-28 17:07:20 +11:00
Aaron Powell
57edb2a34b style: modernize website design with gradients and glassmorphism
- Add gradient backgrounds and accents using purple/pink/cyan palette
- Implement glassmorphism effects on header, cards, and filters
- Add gradient text for headings and stats
- Improve card hover effects with glow shadows and gradient borders
- Update buttons with gradient primary style
- Add subtle pattern overlay on hero section
- Increase spacing and border radius for modern feel
- Update tags with gradient backgrounds
- Add left accent border animation on resource items
- Improve modal with blur backdrop and rounded corners
- Update color palette for both light and dark themes
2026-01-28 17:03:20 +11:00
Aaron Powell
f76f63866a fix: parse featured field from display.featured in collections
The collection YAML files have featured nested under display object,
not at the top level. Updated generate-website-data.mjs to check both
data.featured and data.display?.featured.
2026-01-28 16:56:41 +11:00
Aaron Powell
fbb92dc8aa chore: clean up package.json scripts
- Remove old website:build-old and website:serve-old scripts
- Rename website:build-data to website:data
- Update paths from website-astro to website
- Simplify website:dev and website:build scripts
2026-01-28 16:49:13 +11:00
Aaron Powell
aa42998e29 chore: rename website-astro to website, update gitignore
- Rename website-astro/ to website/
- Add website/dist/ and website/.astro/ to gitignore
- Update generate-website-data.mjs output path
2026-01-28 16:42:32 +11:00
Aaron Powell
4b3bd3d0ad chore: remove old vanilla website implementation
The Astro-based website in website-astro/ replaces the old vanilla
HTML/JS implementation. The old website/ directory is no longer needed.
2026-01-28 16:39:05 +11:00
Aaron Powell
6bcb6ffc37 refactor(website): convert to ES modules with TypeScript
- Replace all inline scripts with TypeScript modules
- Create page-specific modules for agents, prompts, instructions, skills, collections, index
- Create core modules: utils.ts, search.ts, modal.ts, choices.ts, jszip.ts, theme.ts
- Remove window global exports, use proper ES module imports
- Add type interfaces for all data structures
- Use data-base-path attribute on body for base URL handling
- Bundle Choices.js and JSZip via npm instead of CDN
- Astro pages now just have single script import each
2026-01-28 16:38:49 +11:00
Aaron Powell
875219812e Add multi-select filters, light/dark theme, and skill ZIP downloads
- Add multi-select dropdown component for all filter fields
- Implement light/dark theme toggle with system preference detection
- Add client-side ZIP download for skills using JSZip
- Include file lists in skills metadata for download feature
- Add title tooltips to multi-select options for long values
- Update all pages with consistent theme toggle in header
2026-01-28 14:59:19 +11:00
Aaron Powell
f8829be835 feat: Add GitHub Pages website for browsing resources
- Add static website with pages for agents, prompts, instructions, skills, and collections
- Implement client-side fuzzy search across all resources
- Add file viewer modal with copy-to-clipboard and install-to-editor functionality
- Add Tools page for MCP server and future tools
- Add Samples page placeholder for copilot-sdk cookbook migration
- Add metadata JSON generation script (eng/generate-website-data.mjs)
- Add GitHub Actions workflow for automated Pages deployment
- Update package.json with website build scripts
2026-01-28 13:43:41 +11:00