- Add a WeekBlockEntry component to `src/lib/components/week/index.ts`
- Update the body class and remove the `<div>` tag from `src/app.html`
- Add type `Week` with properties `start` and `end` to `src/lib/week.ts`
- Add `week` module to `src/lib/index.ts`
- Add a new WeekBlockEntry component and functions to
[src/lib/components/week/index.ts]
- Add `WeekBlockEntry` component to `src/lib/components/week/index.ts`
[src/app.html]
- Change the body class to `fixed h-full w-full overflow-hidden font-sans antialiased`
- Remove the `<div>` tag around the `%sveltekit.body%`
[src/lib/week.ts]
- Add type `Week` with properties `start` and `end`
- Add methods to `Week` type to get the next, previous and nth day of the week
[src/lib/index.ts]
- Add `week` module to `src/lib/index.ts`
[src/lib/components/week/WeekBlockEntry.svelte]
- Add a new WeekBlockEntry component
- Add functions to convert time and date to grid row and column
- Add a span calculation for the WeekBlockEntry component
- Add a link with label and href attributes for the WeekBlockEntry component
[src/routes/projects/[projectId]/week/+page.svelte]
- Add a week page for projects
- Add navigation for the week page
- Add a grid for the week page
- Show the date of each day in the week
- Show the time of each hour in the day
- Display a list of sessions for the week
- Add a link to each session in the list
[src/routes/projects/[projectId]/+layout.svelte]
- Change the contextProjectStore setter from `getContext('project')` to `getContext("project")`
- Change the nav class from `h-12 p-3 flex justify-between space-x-3 text-zinc-500 text-lg select-none border-b border-zinc-700` to `flex flex-none justify-between h-12 p-3 space-x-3 text-lg border-b select-none
[src/routes/+layout.svelte]
- Change the styling of the header element
- Remove the flex-1 overflow-y-auto div
- Update the footer text
- Add an element with the id `foo`
- Simplified the layout of the header element
- Adjusted the min-height, class, and flex-row of the div elements
- Improved the flex-shrink of the last div element
[src/routes/+layout.svelte]
- Simplify the class attribute of the header element
- Change the min-height of the div element to a flex-grow
- Change the class of the inner div element to flex-1 and add overflow-y-auto
- Change the class of the last div element to flex-shrink-0 and add flex-row
- Remove `open` import and `onSelectProjectClick` function from `+layout.svelte` file
[src/routes/+layout.svelte]
- Remove the `open` import from the `+layout.svelte` file
- Remove the `onSelectProjectClick` function from the `+layout.svelte` file
- Add a button to add a local repository
- Update the overview page template
- Remove the `DropDown` component from the layout
- Add a `+` button for adding new repositories
- Add a `Up to date` indicator
- Change the background color of the layout
[src/routes/+page.svelte]
- Add a button to add a local repository
- Add a list of recent projects to the overview page
- Update the overview page template
[src/routes/+layout.svelte]
- Remove the `DropDown` component from the layout
- Add a `+` button for adding new repositories
- Add a `Up to date` indicator
- Change the background color of the layout
- Change the text size of the `Up to date` indicator
- Add Breadcrumbs component to project page
- Update BackForwardButtons size and colors
- Add context for project and session to the layout
- Change the search bar to a link to the user page
- Change the styling of the header to be more consistent
[src/routes/projects/[projectId]/+layout.svelte]
- Add `getContext` and `onDestroy` functions
- Set `contextProjectStore` to the current project
- Update the `lastSessionId` variable
[src/lib/components/index.ts]
- Add a Breadcrumbs component
- Export the Timeline, CodeViewer, BackForwardButtons and Login components
[src/lib/components/Breadcrumbs.svelte]
- Add a Breadcrumbs component
- Add the ability to link to a project
- Add the ability to link to a session
- Add a human readable timestamp for the session
[src/lib/components/BackForwardButtons.svelte]
- Increase button size from `w-3 h-3` to `w-4 h-4`
- Change the color of the buttons from `text-gray-400` to `text-zinc-400`
- Change the hover color of the buttons from `text-gray-300` to `text-zinc-200`
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Add `getContext` and `Writable` imports from `svelte`
- Add `onDestroy` to set `contextProjectStore` to `null` when destroyed
- Add `selection` variable
- Add `docsNext` derived variable
[src/routes/+layout.svelte]
- Add context for project and session to the layout
- Add breadcrumbs to the layout
- Change the search bar to a link to the user page
- Change the styling of the header to be more consistent
- Update the title bar style to `Overlay`
- Set `minWidth` and `minHeight` for window
[src-tauri/tauri.conf.json]
- Change title bar style to `Overlay`
- Set `minWidth` and `minHeight` for window
- Update the styling and logic of the selection element in the project page
- Replace single class with two classes for the selection element
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Change the styling of the selection elements
- Change the logic of the selection element to use two different classes instead of one
- Update project page layout to a `div` with a bottom border
- Adjust display width of session timeline based on session duration
- Add timeline session components to project page
- Add logic to determine if project exists
- Update authentication API calls and parse JSON responses
- Add new methods for creating login token and getting user object
[src/routes/+layout.svelte]
- Change div container from `flex` to `grid`
- Increase sidebar height from `10` to `12`
- Change sidebar width from `1/4` to `flex`
- Change main content width from `flex-grow` to `col-span-5`
- Add `dark` class to sidebar and main content
[src/lib/components/timeline/index.ts]
- Change the exported component from `TimelineDay` to `TimelineDaySession`
[src/routes/+layout.ts]
- Add an `add` method to the `projects` object
- Add `user` object to the `load` function
- Update the `projects` object to be initialized from an external source if not building
[src/routes/projects/[projectId]/+layout.svelte]
- Change the layout of the project page from a `div` to a `div` with a bottom border
[src/lib/components/timeline/TimelineDay.svelte]
- Delete the TimelineDay component
- Remove the code related to the component, including the `sessionDisplayWidth` function
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Replace the `border-y` class with `border-b` in the `+page.svelte` file
[src/routes/projects/[projectId]/+page.svelte]
- Add logic to adjust the display width of the session timeline based on session duration
- Add logic to determine if the project exists
- Add timeline session components to the project page
[src/lib/users.ts]
- Move imports to the top of the file
- Add a check to see if a user is logged in
- Set the store to the user if they are logged in
- Log the user when they are set
- Write the user to the file when they are set
[src/lib/authentication.ts]
- Change the URL for the API calls
- Parse JSON responses from the API
- Add a new method for creating a login token
- Add a new method for getting a user object
- Fix typo in error message
- Update the content-type header for API calls
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.ts]
- Change the logic for finding the current session
- Make the code more precise in finding the current session
- Change the logic for finding the previous session
- Added a button to each delta for selection
- Updated the `session` store to return the first session if the sessionId is not found
- Updated the `previousSession` store to return the session before the current one if it exists
- Updated the `docsNext` derived store to include the `selection` store
- Added an `if` statement for `files` in `+page.svelte`
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.ts]
- Changed the import of `svelte/store` to include `writable`
- Changed the `session` store to return the first session if the sessionId is not found
- Changed the `previousSession` store to return the session before the current one if it exists
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Move the `Timeline` component import from `+page.svelte`
- Initialize `selection` store in `+page.svelte`
- Update `docsNext` derived store to include the `selection` store
- Add a button to each delta for selection
- Add an `if` statement for `files` in `+page.svelte`
- Delete `contentWithDeltasApplied` function from `+page.
- Update CodeViewer component to call `mergeView?.destroy()` before recreating the merge view
- Add a function to update the two editors when values change
[src/lib/components/CodeViewer.svelte]
- Remove commented out code
- Update code to call `mergeView?.destroy()` before recreating the merge view
- Add a function to update the two editors when the values change
- Upgrade CodeViewer component to use MergeView
- Add collapseUnchanged option to MergeView
- Update @codemirror/state and @codemirror/view to latest version
- Add @codemirror/merge to dependencies and packages list
[package.json]
- Add @codemirror/merge dependency to package.json
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Change the `CodeViewer` value from `contentWithDeltasApplied` to `contentAtSessionStart` and `newValue` to `contentWithDeltasApplied`
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.ts]
- Remove `console.log` line in `src/routes/projects/[projectId]/sessions/[sessionId]/+page.ts`
- Change type of `files` from `Record<string, string>` to `any`
[src/lib/components/CodeViewer.svelte]
- Change the code viewer from an EditorView to a MergeView
- Add a newValue prop to the CodeViewer component
- Update the update function to use the new MergeView
- Add collapseUnchanged option to the MergeView
- Remove unused code related to coloring the last edit
[pnpm-lock.yaml]
- Add `@codemirror/merge` to the dependencies and specifiers
- Update `@codemirror/state` to version `6.2.0`
- Update `@codemirror/view` to version `6.7.3`
- Add `@codemirror/merge` to the packages list with the specified resolution and dependencies
- Export `list()` function from `deltas.ts`
- Update `TimelineDaySession.svelte` to use `list()` and `deltas` instead of `listFiles` and `files`
[src/lib/deltas.ts]
- Change `list()` to `export const list()`
- Add type annotations to `list()` function parameters
[src/lib/components/timeline/TimelineDaySession.svelte]
- Change `listFiles` to `list`
- Change `files` to `deltas`
- Change `file` to `delta`
- Add support for displaying files with deltas applied in the code viewer
- Add a type alias for `Delta` and a function to apply deltas to a string
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.svelte]
- Add a type alias for `Delta`
- Add a function to apply deltas to a string
- Display files with deltas applied in the code viewer
- Add console log to the `load` function for debug purposes
- Add `listFiles` function from `$lib/sessions`
- Render list of files in `<div id="files">` with file name only
[src/routes/projects/[projectId]/sessions/[sessionId]/+page.ts]
- Add console log to the `load` function for debug purposes
[src/lib/components/timeline/TimelineDaySession.svelte]
- Add `listFiles` function from `$lib/sessions`
- Render list of files in `<div id="files">` with file name only
- Update `TimelineDaySessionActivities` component to include activity message in the `title` attribute
- Update `TimelineDaySession` component to use `session.meta.startTs` and `session.meta.lastTs` for `session.startTime` and `session.endTime` respectively
- Uncomment `TimelineDaySessionActivities` component
- Change `session.activities` to `session.activity` in the `TimelineDaySession
[src/lib/components/timeline/TimelineDaySessionActivities.svelte]
- Change `title` attribute to include activity message
[src/lib/components/timeline/TimelineDaySession.svelte]
- Change `session.startTime` to `session.meta.startTs` in the `TimelineDaySessionActivities` component
- Change `session.endTime` to `session.meta.lastTs` in the `TimelineDaySessionActivities` component
- Uncomment the `TimelineDaySessionActivities` component
- Change `session.activities` to `session.activity` in the `TimelineDaySessionActivities` component
- Change