- Added a search icon to the search field for better UX.
- Refactored the search input and list to use the new PageCard component for improved code organization and maintainability.
- Updated styles for the search component to enhance visual consistency.
- Introduced author data files for multiple authors including Anton Stallbörger, Jace Attard, Raphael Salaja, and Russell Dare.
- Implemented a schema for author validation using Zod to ensure data integrity.
- Added functions to read and validate author data from JSON files.
feat(content): implement page formatting utilities
- Created utilities for formatting page data, including author resolution and published date formatting.
- Added functions to format a full Page object and an array of Page objects for consistent display.
feat(tts): add text-to-speech functionality
- Developed ElevenLabs integration for synthesizing speech with timestamps.
- Implemented caching mechanisms for audio and timestamp data.
- Added error handling for article retrieval and ElevenLabs API responses.
feat(views): implement article view tracking
- Added functionality to track and increment view counts for articles using Vercel KV.
- Created utility functions for formatting view counts for display.
feat(hierarchy): add documentation on designing hierarchy
- Created a new document outlining principles of design hierarchy, including spacing, contrast, scale, and weight.
- Provided guidelines for designing flows and attention diagnostics.
Removed multiple empty <code-changes> sections from the changes log to improve readability and maintainability of the codebase. This helps in keeping the change history concise and focused on actual modifications.
- Add a new search editor component with support for filtering by author, tag, and sorting options.
- Introduce operator tokens and value tokens for enhanced query input.
- Implement suggestion menus for operators and values to improve user experience.
- Style the search editor and results for better visual presentation.
This feature enhances the search capabilities of the application, allowing users to perform more complex queries efficiently.
- Consolidate operator and value suggestion logic into a single menu.
- Remove floating suggestion components and related code.
- Refactor operator detection and value insertion logic for clarity.
- Update styles for improved UI consistency and usability.
- Enhance query serialization to handle quoted values correctly.
- Implement operator hints for filtering search results by author, tag, and date.
- Add placeholder support to improve user experience.
- Update styles for better visibility and interaction.
- Remove deprecated search index file and related input component.
- Add a new HomeSearch component for searching articles.
- Integrate filtering and sorting functionality using a query string.
- Create a SearchEditor component for input and suggestions.
- Implement utility functions for filtering and sorting documents.
- Add styles for the new components and their interactions.
This enhances the user experience by allowing users to search and filter articles effectively.
- Implemented `useChipInsertion` to replace the last typed word with a chip.
- Created `useHighlightedIndex` to manage the highlighted index in suggestion lists.
- These hooks enhance the search functionality by allowing users to interact with typed filters more effectively.
- Added ArticleCard component to display search results.
- Implemented DatePickerSection for selecting date filters.
- Created FilterOptionsList for filter options selection.
- Integrated NoResults component to handle empty search results.
- Developed PopupHeader and PopupFooter for search UI guidance.
- Enhanced SearchResultsList to manage and display filtered articles.
- Established styles for all new components to ensure consistent UI.
This update enhances the search functionality, allowing users to filter articles by date and other criteria, improving the overall user experience.
- Added a new search input component with rich chip support using Lexical.
- Created a list component for displaying suggestion items.
- Implemented a popup component to contain the suggestion list.
- Developed a root component to manage search state and context.
- Added styles for the search components, including input, list, and popup.
- Introduced additional components for grouping items and handling empty states.
This update enhances the search functionality and user experience.
- Introduced a new search component library that provides a headless search interface.
- Added components for input, popup, list, and chips to facilitate search functionality.
- Implemented context management for search state and actions.
- Included support for filter chips, suggestions, and keyboard navigation.
- Created utility hooks for managing suggestions based on user input.
This feature enhances the user experience by allowing dynamic search capabilities with real-time suggestions and filter options.
- Introduced ChipNode class to represent chips for tags, authors, and date filters.
- Added functionality to create, serialize, and manage chip nodes within the editor.
- Implemented plugins to handle backspace behavior and single-line input restrictions.
- Enhanced the TagFilter component to support chip-based filtering and suggestions.
- Introduced a new TagFilter component for enhanced search capabilities.
- Integrated search-string library for parsing search queries.
- Added support for filtering by tags, authors, and date ranges.
- Implemented sorting options for search results.
- Enhanced user experience with suggestions and filter chips.
This update significantly improves the search functionality, allowing users to filter articles more effectively based on various criteria.
- Updated the Page and HomeLayout components to use the new PageTransition for smoother page transitions.
- Removed the unused ViewTransition import and adjusted the component structure accordingly.
- Added a new Navigation component for improved site navigation.
- Integrated navigation links and styles for a cohesive UI.
- Updated layout components to accommodate the new navigation structure.
- Add ViewTracker component to increment view count on page load.
- Integrate view count retrieval in the Header and HomeLayout components.
- Update styles for consistent letter-spacing across components.
- Remove views field from markdown content and source configuration.
- Add API routes for getting and incrementing view counts using Vercel KV.
- Introduced a new API endpoint for text-to-speech functionality.
- Added caching for synthesized audio to improve performance.
- Implemented error handling for article retrieval and TTS processing.
- Enhanced the audio reader component to utilize the new API.
- Updated icon components and layout styles for better UI presentation.
BREAKING CHANGE: The text-to-speech endpoint has changed from `/api/text-to-speech` to `/api/tts`.
- Introduced a new header with a title for the wiki.
- Added filter buttons for "All", "Trending", "Recents", and "Saved".
- Implemented a search field with an icon for better navigation.
- Updated the layout to display pages in a grid format with cards.
- Removed the previous list structure for a more modern design.
Added a new SearchIcon component for the search functionality.
- Added HomeLayout component to display a list of pages with titles, authors, and publication dates.
- Updated the main Page component to render HomeLayout instead of static content.
- Enhanced the overall structure for better navigation and content presentation.
- Added Avatar component with Root, Image, and Fallback subcomponents.
- Utilized color hashing for fallback background color based on initials.
- Styled components for consistent appearance.
feat(button): create button component with motion support
- Introduced Button component with size and variant props.
- Integrated motion for animated button interactions.
- Applied styling for different button states.
feat(category): develop category component with overflow handling
- Created Category component with Chip and Overflow subcomponents.
- Implemented color hashing for category dots.
- Added popover functionality for displaying overflow categories.
feat(icons): add various icon components
- Implemented Copy, Download, Github, and Link icons.
- Standardized icon properties for size and color.
feat(popover): build popover component for UI interactions
- Developed Popover component with customizable trigger and popup.
- Styled popover for better visibility and user experience.
fix(docs): enforce views property as required in docs schema
- Changed views property in docs schema from optional to required.
- Ensured consistency in data structure for documentation.
feat(get-page): implement utility functions for page data retrieval
- Added functions to retrieve author, coauthors, views, and published date from page data.
- Enhanced data handling for better integration with UI components.flop
- Set pointer-events to none for background to allow click-through.
- Enable pointer-events for controls to ensure user interactions.
- Adjust z-index for background to prevent interference with controls.
- Update highlight tolerance values for better word index alignment.
- Updated the documentation to focus on the concept of taste in art and design.
- Removed the previous typography page and added a comprehensive exploration of taste, its historical context, and key principles.
- Adjusted related imports in browser and server files to reflect the new content.
- Implemented IntersectionObserver to manage visibility of the audio reader.
- Added floating controls for better accessibility and user experience.
- Updated styles for the new floating controls and background effects.
- Introduced new icons: ExpandIcon, FastForward15sIcon, PictureInPictureIcon, and Rewind15sIcon.
- Each icon is implemented as a functional component with customizable size and color.
- Icons are designed to be used in various UI components.
feat(orb): implement interactive orb component with customizable features
- Added Orb component for rendering a dynamic visual representation.
- Supports color customization, volume control, and agent state management.
- Utilizes Three.js for rendering and includes shaders for visual effects.
feat(theme): define color variables for black and white themes
- Created CSS variables for black and white color themes.
- Variables include various alpha levels for better transparency control.
- Supports modern color-gamut features for enhanced color representation.
- Introduced new refs for mapping spans to word indices and managing interaction cleanup.
- Implemented a startTicker function for smoother playback tracking.
- Updated highlight application logic to consider playback state.
- Improved CSS for word states to enhance user interaction feedback.
- Added support for customizable voice and model IDs in the TTS API.
- Improved alignment handling with new data structures for timestamps.
- Updated caching mechanism to include voice and model in content hash.
- Enhanced logging for better debugging and performance tracking.
- Add a new API route for text-to-speech functionality that synthesizes speech from article content.
- Cache audio and timestamp data to improve performance and reduce redundant API calls.
- Handle errors gracefully and provide meaningful responses for missing articles or API failures.
feat(audio-reader): create audio reader component for narration playback
- Develop a client-side audio reader component that fetches narration data and synchronizes word highlighting during playback.
- Implement play/pause functionality with visual feedback for loading and error states.
- Ensure accessibility and responsiveness in the audio playback interface.
feat(rehype): add rehype plugin for word spans in markdown
- Introduce a rehype plugin that wraps words in spans for better interaction with the audio reader.
- Normalize words and manage word IDs for synchronization with audio timestamps.
style(audio-reader): enhance styles for audio reader component
- Improve the visual design of the audio reader component, including button styles and progress indicators.
- Ensure consistent spacing and alignment for a better user experience.
fix(normalize-word): refine word normalization logic
- Update the normalization function to handle various non-word characters more effectively.
- Introduced new author data files for Anton Stallbörger, Jace Attard, Raphael Salaja, and Russell Dare.
- Updated the author schema to include additional social media fields.
- Implemented a script to generate the authors index file automatically.
- Added utility functions for handling author data, including fetching and validating author information.
- Enhanced the author display components in the header to include avatars and initials.
BREAKING CHANGE: The author schema now requires a new structure for social media links.
- Updated layout components to improve structure and styling.
- Introduced Main and Root components for better layout management.
- Adjusted CSS styles for improved responsiveness and padding.
- Updated code highlighting themes for better readability.
- Added a ThemeProvider to manage light and dark themes.
- Updated styles to support theme-based color changes.
- Introduced new CSS variables for typography and colors.
- Removed outdated markdown content and improved code block styling.
- Enhanced configuration for rehypeCodeOptions to support new themes.
BREAKING CHANGE: Theming structure has changed, requiring updates to CSS and component usage.
- Introduced a new LenisProvider component to manage smooth scrolling.
- Utilizes the Lenis library with a React wrapper for better performance.
- The component updates the animation frame for smooth scrolling effects.
feat(vercel): integrate Vercel analytics and speed insights
- Added Vercel's Analytics and SpeedInsights components for performance tracking.
- These components will help in monitoring application performance and user interactions.
docs: add configuration guide for the library
- Created a new documentation file detailing how to configure the library options.
- Included example configuration and a table of available options for clarity.
- Deleted unused SVG files to clean up the project.
- Updated TypeScript configuration for improved path mappings and included new files.
- Added new source files for dynamic and server-side rendering with Fumadocs.
- Introduced markdown content files for documentation and API reference.
- Implemented new styling and theming system with CSS variables for better design consistency.
BREAKING CHANGE: The structure of the source files has changed, requiring updates to imports in other parts of the application.