Implements configurable work week presets, allowing users to customize the days displayed in the calendar.
This includes:
- Defining work week settings (work days, day names, total days).
- Providing predefined work week presets (standard, compressed, weekend, full week).
- Adding UI elements to switch between presets.
- Updating grid and header rendering logic to reflect the selected work week.
- Emitting events when the work week changes, triggering necessary UI updates and data re-renders.
This provides a more flexible and personalized calendar experience.
Implements a factory pattern for manager creation and
initialization, improving dependency management and
extensibility.
This change replaces direct manager instantiation with a
`ManagerFactory` that handles dependency injection. This
enhances code organization and testability. It also includes
an initialization sequence diagram for better understanding
of the calendar's architecture and data flow.
Refactors calendar rendering for improved user experience and performance.
- Removes unused function for rendering week content directly, streamlining the rendering process.
- Updates mock events to better reflect realistic all-day events.
- Adds file system search permission to claude settings.
- Removes console logs in scroll and navigation managers.
Moves event rendering logic into a dedicated EventRenderer class that uses a strategy pattern for different calendar types.
The rendering is now triggered by `GRID_RENDERED` and `CONTAINER_READY_FOR_EVENTS` events, emitted by the GridManager and NavigationManager respectively.
This change decouples the CalendarManager from direct event rendering and allows for more flexible and efficient event updates. The EventManager now has a method to fetch events for a given time period.
Removes direct calls to event rendering from CalendarManager. Improves animation transitions by using pre-rendered containers in the NavigationManager.
Replaces the setTimeout-based animation with the Web Animations API for smoother transitions.
This change also introduces an event to notify other managers when the navigation animation is complete, allowing them to synchronize their states.
Refactors grid navigation to improve the animation flow.
Removes the immediate clearing of events to prevent visual glitches during the slide animation. Instead, events are now rendered directly into the new container without clearing. This change ensures a smoother transition between grids.
Also, cleans up old grid elements after the animation completes, reducing DOM clutter.
Improves resource calendar mode by passing resource data
to the grid manager for rendering, enabling specific
resource-based views. Also, it stores raw event data
to improve data management.
Renames 'week header' to 'calendar header' for better representation
of the component's purpose, which includes more than just week-based
calendar views.
Updates related methods and references in GridManager and
ScrollManager to reflect the change.
Fixes incorrect calculation of the column width.
Replaces custom scrollbar implementation with native scrollbars for better performance and accessibility.
Adds configuration options for scrollbar styling, including width, color, track color, hover color, and border radius.
Synchronizes week header and time axis scrolling with the scrollable content.
Refactors event rendering to leverage CSS for styling.
This change simplifies the event renderer by removing styling logic from the Typescript code and placing it in the CSS file. This improves maintainability and allows for easier customization of event appearance. Hover effects are also moved to CSS for consistency.
Improves event rendering by adding styling, filtering out all-day events (handled by GridManager), and calculating accurate positioning within the time grid.
Optimizes grid updates to avoid unnecessary rebuilding, instead updating only the week header for all-day events, leading to better performance.
Improves calendar week view by adding header sections.
This change introduces two new header sections, styled with an orange background, to the calendar week view. These sections are positioned in the second row of the week header, enhancing the visual organization and potentially providing space for additional information or actions related to the week view. The overall height of the header has also been adjusted to accommodate the new row.
Updates mock event data to reflect a more recent week and includes events spanning early/late hours.
Enhances event rendering by adjusting the top and height styles for better visual appearance.
Refactors CSS to improve grid line display and event hover effects, and moves hour marker styles to a more appropriate CSS file.
Provides default fallback values for time boundaries using CSS variables.
Updates mock event data to reflect future dates for testing purposes.
Adds console logging in various managers to aid in debugging and understanding the event loading and rendering process.
Specifically, logs the number of loaded events, the first and last event details, and information about event rendering and time axis creation.
Also, adds execution permission for PowerShell scripts in the .claude settings.
Changes the calendar week view to dynamically adjust its width based on the `--day-column-min-width` CSS variable.
This allows for more flexible and responsive layouts, avoiding fixed widths.
Also, the base calendar CSS file is now included in the index file.
Updates the grid structure to correctly position the scrollbars.
Replaces fixed scrollbars with a grid-based layout using spacers and
a right column for a more integrated and maintainable solution.
This change addresses layout issues related to scrollbar positioning
and ensures better alignment across different browsers.
Lowers the z-index of the week header to ensure it slides under the header-spacer during horizontal scrolling.
This prevents the week header from overlapping the header-spacer, improving the visual flow of the calendar layout.
Implements fixed scrollbars at the browser edges to enhance navigation within the calendar view. This ensures that the scrollbars remain visible regardless of the user's scroll position, providing consistent access to horizontal and vertical scrolling.
Removes the right header spacer and right column, integrating their functionality into the new fixed scrollbar components.
Additionally, synchronizes the week header position with the horizontal scroll, improving the user experience.
Scrollbar hiding is now handled in the CSS file.
Adjusts z-index values to ensure the week header and header spacer
elements cover the time axis during scrolling. This prevents visual
artifacts and improves the overall user experience.
Adds custom scroll management for the calendar week view, replacing native scrollbars with a custom handle.
Introduces categorized event logging with console grouping and styling, enhancing debug output. It also allows configuring logging for specific event categories.