* feat: add DiningAppPromo component and integrate it into Calendar
* feat: update WhatsNewPopup with new features and app download link
* fix: remove outdated links
* chore: run lint
* chore: run prettier
* feat: enhance DiningAppPromo with close button and integrate user preference for promo visibility
* chore: run lint
* chore: run check types
* fix: correct promo visibility logic in Calendar component
* feat: centralize app store URLs in appUrls.ts
* chore: run lint
* feat: integrate UT Dining promo image
* chore: run lint
* fix: update logo in WhatsNew popup to use LD icon
* fix: convert URLs to URL objects for consistency
* fix: update LD icon in WhatsNew popup to new version
* fix: update description for Coffee Shops feature to clarify operating times
* fix: rename promo state and storage key to showUTDiningPromo for clarity
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: academicCalendars object
* feat: seemingly working start, end, and until dates
* feat: seemingly working everything
* style: removed unnecessary deps, reorganized code
* style: code comments yay
* chore: old version of pnpm?
* ci: force github actions to rerun
* feat: list instructors in ics string, basic tests
* feat: testable code for ICS, tests for ICS, filter excluded dates
* style: eslint autofix
* test: check for graceful handling of errors in ICS
* fix: actually use scheduleToIcsString
* chore: eslint didn't include a space where it should've
* fix: ensure tz everywhere
* refactor: move string util to string util file
* feat: em dash in calendar event title
* feat: academic calendars 22-23 and 23-24
* fix: en dash instead of em dash
* fix: update CourseCellColorPicker.tsx background to white
* feat: add color picker to CalendarCourseCell component
* feat: add color picker functionality to update course colors
* fix: type issues with storybook components
* feat: add useColorPicker hook, isValidHexColor and updateCourseColors utilities
* refactor: color picker logic and UI components
* refactor: update useFlattenedCourseSchedule hook to include courseID property
* refactor: update storybook calendar components with updated props
* refactor: update color picker ui logic to account for position of cell
* fix: revert back to error handling for invalid rgb
* refactor: update jsdocs
* refactor: integrate ColorPickerContext into Calendar components and update props
* refactor: integrate ColorPickerContext into Calendar components and update related props
* refactor: change JSDocs comments and remove unused color inversion state
* refactor: update story components
* feat: add functionality for selecting secondary course colors
* refactor: enhance HexColorEditor to dynamically adjust tag icon color based on preview color
* refactor: simplify JSDoc comment in useColorPicker hook
* fix: revert Button component
* refactor: update CalendarCourseCell component positioning and styling
* fix: correct types in color.ts
* feat: add getDarkerShade function to compute darker shades of hex colors
* feat: add shadow to color picker button
* fix: update button size in ColorPatch component
* feat: implement debounced input for hex color editor and add useDebounce hook
* chore: utilize the logical and && operator instead of the ternary operator
* fix: imports and palette icon
* refactor: remove unused import
* fix: bug when course add fails with custom colors
* chore: run lint
* chore: run check-types
* feat: add HSL color type and conversion functions
* refactor: rename colorway to theme
* fix: hide color picker on screenshot
* fix: undo important syntax
* refactor: rename SomeFunction to DebouncedCallback
* refactor: remove inner function
* refactor: update return type to DebouncedCallback
* fix: adjust sizes for hash and palette button
* feat: create tests for hexToHSL and isValidHexColor
* refactor: update parameter type to use HexColor
* fix: increase size of palette button
* fix: update dependency array for hex code debounce
* fix: change colorPickerRef element ref
* feat: add Roboto Mono font
* fix: update input class to use monospace font
* feat: add getLighterShade function
* chore: run prettier and lint
* feat: synchronize local hex code with hexCode prop changes
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: update CourseCellColorPicker.tsx background to white
* feat: add color picker to CalendarCourseCell component
* feat: add color picker functionality to update course colors
* fix: type issues with storybook components
* feat: add useColorPicker hook, isValidHexColor and updateCourseColors utilities
* refactor: color picker logic and UI components
* refactor: update useFlattenedCourseSchedule hook to include courseID property
* refactor: update storybook calendar components with updated props
* refactor: update color picker ui logic to account for position of cell
* fix: revert back to error handling for invalid rgb
* refactor: update jsdocs
* refactor: integrate ColorPickerContext into Calendar components and update props
* refactor: integrate ColorPickerContext into Calendar components and update related props
* refactor: change JSDocs comments and remove unused color inversion state
* refactor: update story components
* feat: add functionality for selecting secondary course colors
* refactor: enhance HexColorEditor to dynamically adjust tag icon color based on preview color
* refactor: simplify JSDoc comment in useColorPicker hook
* fix: revert Button component
* refactor: update CalendarCourseCell component positioning and styling
* fix: correct types in color.ts
* feat: add getDarkerShade function to compute darker shades of hex colors
* feat: add shadow to color picker button
* fix: update button size in ColorPatch component
* feat: implement debounced input for hex color editor and add useDebounce hook
* chore: utilize the logical and && operator instead of the ternary operator
* fix: imports and palette icon
* refactor: remove unused import
* fix: bug when course add fails with custom colors
* chore: run lint
* chore: run check-types
* feat: add HSL color type and conversion functions
* refactor: rename colorway to theme
* fix: hide color picker on screenshot
* fix: undo important syntax
* refactor: rename SomeFunction to DebouncedCallback
* refactor: remove inner function
* refactor: update return type to DebouncedCallback
* fix: adjust sizes for hash and palette button
* feat: create tests for hexToHSL and isValidHexColor
* refactor: update parameter type to use HexColor
* fix: increase size of palette button
* fix: update dependency array for hex code debounce
* fix: change colorPickerRef element ref
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: temporary removal of waitlist etc
* feat: experimental toggle for icons for now
* feat: popupmain toggle
* feat: cal header toggle
* feat: adjusted course cell for toggle
* feat: fine it'll be a constant
* chore: lint
* feat: other experimental options
* feat: screenshot whole page, hide certain elements, screenshot fixed size
* refactor: use variants instead of groups and custom rules
* feat: scaled header, smaller body, weird padding/margin changes
* feat: consistent sizing & style regardless of zoom
* feat: use downloadBlob instead of hand-rolled image saving
* fix: be type safe is toBlob returns Promise<null>
* fix: revoke object url when it should be
* fix: animation scheduling
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>
* feat: calendar-course-cell-color-picker done??
* fix: ensure hex code is lowercase
* fix: make hex codes lower case
* chore: convert px to rem in ColorPatch.tsx
* fix: add functionality to the invert colors button
* fix: some more lowercase stuff
* fix: remove hardcoded color patch hex codes, remove hardcoded pixel values
* chore: remove React.FC
* chore: modify docs
* fix: remove duplicate style
* fix: used name over size specified classes
* fix: grid over flex, elie feedback
* refactor: use color strings instead of indices
* refactor: remove console.log statements
* refactor(UserSchedule): index by a unique id rather than name
* refactor: Update parameter names in schedule function jsdocs
* refactor: change more instances of .name to .id
* refactor: Fix typo in variable name and update references
* refactor: Remove console.log statement
* fix(chromatic): Update ScheduleListItem story
* refactor: remove unused eslint rule
* some work
* some work on course popup
update the stories and create the header component
* use chip component in header
* complete CourseHeaderAndActions Component
added course buttons, using proper subcomponents now.
* Change test course to 314
* Add rmp callback
* some unocss updates
* add course button onclick handlers
* add todo for calendar button
* Rename CoursePopup
Old one to "Old", remove "2" from new one
* description stuff done
* Modify story to use proper course info
* Add Grade Distribution Stuff
* Minor tweaks
change style in header
* Add TODO
replace current grade colors with a tailwind palette
* Fix syllabi url
Remove unused variable and unnecessary args to url
* Bunch of renaming
* Kinda complete the handlers
* change grade distribution colors to match updated figma
* change from reducer pattern to state variables, remove chartData from state
* add additional story
* disabled add when course is not open
* use array fill
* Some changes with the instructor names
* trying to get the CES stuff to work
* CES button is working
* remove a todo
* add actual color for dminus
* fix description, start no distribution state
* post merge fixes
* small fixes
* fix: import as type
* fix: some better typescript stuff i think
* fix: manifest.ts
* fix: pr feedback
* Apply suggestions from code review
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: use path alias
* fix: more path alias
* fix: even more path aliasing
* fix: even moreeeee path aliasing
* fix: sort imports
* fix: sort imports (again)