* feat: initial functions for exporting to txt
* feat: add save as text to calendar header new export option
* docs: comment for saveAsText()
* feat: generate text line by line for each course
* docs: jsdoc
* chore: lint
* Apply suggestion from @doprz
---------
Co-authored-by: Diego Perez <52579214+doprz@users.noreply.github.com>
* feat: made a handler for github stats messages same way as the rest
* fix: remove settingsPageLag through incremental rendering and efficient update of local storage
* refactor: passed eslint
* chore: added GitHubStats types
* feat: added contributor card skeletons
* refactor: pass eslint
* feat: removed trickle rendering and added locking to setCachedData
---------
Co-authored-by: Derek <derex1987@gmail.com>
Co-authored-by: Diego Perez <52579214+doprz@users.noreply.github.com>
* chore: add tsparticles/react
* fix: imports and lint issues
* fix: imports and format
* feat: refactor settings and add LHD birthday celebration
* chore: lint and format
* feat(nix): build UTRP
* feat(nix): set fixed rev and sha256 + update lock file
* chore(nix): remove systems input
* chore: format
* chore(nix): add meta attribute
* feat(nix): add doprz as a maintainer
refactor(nix): split into flake parts module and add shell.nix
chore: add prettier to treefmt and pin version
chore(nix): add prettier exclude
chore(nix): bump pnpm to v10.18.2
feat(nix): add overlay for nodejs
feat(nix): add overlay for nodejs
chore: consolidate .editorconfig
I made these a less painful experience for the average non cs major who just wants to make an issue request
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix(sidebar): increase sidebar button hitbox
* chore(ui): change hitbox area for plus button
* chore(ui): update size of hitbox area
* fix: fix pnpm version conflict
* fix: pnpm version conflict
* chore(ui): update size of hitbox area for the social links
* feat: calendar footer story
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
Co-authored-by: Derek <derex1987@gmail.com>
* chore: remove summer 2025 schedule list item
* feat: compress course schedules into one link
* Revise ResourceLinks with Spring '26 schedule
Updated course schedule links for Spring '26.
* chore: removed extra space at calendar footer
* chore: fixed eslint issues
* chore: changed return type to react node
* chore: displaycourses true fixes and checks fixed
* chore: prettier fix
* feat: not working same semester course issue
* feat: modifying components to use the new hook
* feat: small fixes
* fix: remove comments and spaces
* fix: dialog error solved
* fix: add to new schedule
* fix: prettier
* fix: delete unnecessary custom hook and p[rettier
* fix: checks all passing
* fix: added requested changes
* fix: added new conditions
* fix: description fixed
* style: fix Roboto Flex not being used as font in dialog
* fix: made requested changes
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Razboy20 <razboy20@gmail.com>
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* fix: limit height of schedule list dropdown in the extension popup
* fix: limit the entire dropdown to 200px, not just the schedule list
* fix: use flexbox for dropdown and wedge scrollbar inside margin
* fix: use DisclosurePanel in schedule dropdown, do Uno class sorting
---------
Co-authored-by: Ethan Lanting <ethanlanting@gmail.com>
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* 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>
* fix: include logo in screenshot
* fix: screenshots on small/zoomed windows, screenshots with no async/other
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>
* feat: enhance schedule deletion to create a new schedule if none remain
* feat: set active index to new schedule if only one exists
* chore: run lint
* feat: enhance schedule deletion to create a new schedule if none remain
* feat: set active index to new schedule if only one exists
* chore: run lint
* feat: reset schedules on update, refactor invariant to within deleteSchedule
* chore: pnpm lint
---------
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
* 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
* feat: create whats new initial component
* feat: create initial whats-new hook
* feat: create whats-new story
* feat: add button to open dialog in storybook
* feat: complete popup ui
* feat: add check for new updates or installs
* fix: fix linter issues
* fix: use proper features and add video
* fix: properly fetch version from manifest
* feat: add a link to open the popup
* fix: update spacing and features' content
* fix: update UTRP Map name
* fix: increase icon size and display version correctly
* feat: update the features video
* fix: update offwhite color
* fix: color typo
* fix: fixing colors again
* feat: use numbers instead of boolean
* fix: typo in import
* feat: add type safety to features array
* feat: cdn video url
* fix: delete mp4 video
* feat: handle video failure to load
* fix: make border outline tight to video
* feat: make design responsive
* fix: make features array readonly
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Derek Chen <derex1987@gmail.com>
* chore: update lock file and set engine to use pnpm v10.5.2
* chore: set pnpm version to v10.x.x
* chore(ci): use pnpm v10
* chore: update Dockerfile to use pnpm@latest-10
* chore(ci): use pnpm/action-setup@v4
* fix: add active scale style and accept file prop
* chore: improve type safety using MIMEType
* fix: update FileUpload component to support multiple MIME types in accept prop
* chore: run lint
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: update styling and text for unscheduled courses in footer
* refactor: correct offwhite theme colors
* fix(ui): adjust em dash spacing, footer bottom padding, and vertically align course text
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat(ui): calendar header redesign (WIP)
* feat(ui): calendar header redesign (WIP)
* chore: use path alias
* feat(ui): calendar header redesign
* implement Isaiah changes
* refactor to prevent unnecessary recreations of resize observer
* clean up resize observer and remove unnecessary checks
* remove offwhite border from toolbar
* merge
* complete toolbar
* update screenreader functionality
* ensure truncation works
* merge
* finish new toolbar
* remove unused screen size hook and .mjs file
* add in export button with options
* add static size for export button dropdown to prevent shrinking on smaller viewports
* change schedule section min width to prevent shrinkage
* change text for schedule section to match small caps
* fix truncating issues with small caps
* remove hidden overflow
* add padding
* add min height for hader
* reserve scrollbar width
* tmp
* add sticky positioning to header
* fix inert prop issue
* remove pnpm lock file
* fix scrollbar appearing too early
* fix vertical stickiness
* fix(ui): fix header spacing
* fix(ui): update total hours and courses to be h4
* fix(ui): reduce top spacing on header
* fix(ui): remove header top padding
* fix(ui): stop bottom scrollbar from shifting layout
* feat: add functionality to header and fix screenshot spacing
* feat: add functionality to header and fix screenshot spacing
* fix(ui): allow scrollbar in header and adjust padding to compensate for reserved space
* fix(ui): make export options container hug children
* fix(ui): add offwhite border
* chore: add back lock file from main branch :)
* feat(ui): add reduced motion for accessability
* feat(ui): change right scrollbar on calendar grid to be hidden when not necessary
* chore: make all buttons except export invisible
* chore: remove all buttons except export and adjust hardcoded pixel widths for responsiveness
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Razboy20 <razboy20@gmail.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
* 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>
* feat: add open calendar button
* fix: replace function to open calendar page
* fix: make open calendar function a one-liner
* fix: import correct calendar icon
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add copy icon for course unique ID
* feat: update Button component to support event parameter in onClick handler
* feat: add copy functionality for course unique ID
* refactor: use Text component instead of span
* fix: remove duplicate course number
* fix: remove unnecessary event forwarding
* fix: remove unnecessary boolean type
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* fix: remove double space
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* refactor: reduce clipboard copy delay and use formatted unique ID
* feat: add copy animation to dialog
---------
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: nikshitak <nikkikurva@gmail.com>
* feat(settings): add option to always open calendar in new tab
* fix: await setting
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* docs: proper captializing
* docs: confirmed that the for loop is entered but on first startup something else
* feat: turns out - validate login status - not in background - pass background now
* feat: kronk.gif
* Update UserScheduleMessages.ts
* Update addCourseByURL.ts
* chore: format
* chore: chore
---------
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: update calendar sidebar, footer, and header with Figma design
* chore: run lint
* feat: update header with Figma design
* chore: run lint
* chore: remove unused vars
* chore: fix types
* fix: adjust sidebar minimum width
* fix: update LogoIcon layout to ensure text is always displayed
* feat: add spacing constants
* fix: add sidebar styling with spacing system and sticky header
* fix: update spacing constants to use rem units
* refactor: replace padding with spacing system and colors with UTRP theme
* refactor: rename ImportantLinks to ResourceLinks
* refactor: simplify CalendarHeader button component by using icon prop
* feat: add sidebar open and close transition
* refactor: rename unused var
* fix: update social icon color
* feat: improve layout and spacing in calendar components
* refactor: remove unused GearSix icon and options handler
* feat: update calendar components with new icons and improved spacing
* fix: correct class name
* refactor: organize social links into array and update link styling
* refactor: remove unused import
* fix: adjust gap spacing in radio button
* fix: update divider component to use theme offwhite1
* fix: increase size of outward arrow icon
* feat: add getSpacingInPx function to convert rem to pixels
* fix: update gap spacing in CalendarSchedules component to use spacing system
* fix: rollback footer social icons to original icons
* fix: update Calendar styles to use theme offwhite1 and adjust padding to account for scrollbar
* fix: update LargeLogo component to use gap-spacing-3
* fix: update button variants to 'minimal' and adjust styles for consistency
* fix: adjust padding in Calendar component for better layout consistency
* fix: increase size of arrow icon
* fix: add shrink-0 to radio buttons
* feat(ui): change red text when instructor not found
* feat(ui): fix wrong ' usage
* feat(ui): changed/shortened text
* feat(ui): update text, get rid of formatting
* feat(ui): removed unintentional H character from testing
* feat(ui): add space
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat(ui): added shadows to popup buttons and course blocks
* feat(ui): keep shadow state while dragging course block
* feat(ui): fixed transition "flash" after dragging
* feat(ui): fix linting/styling
* Update src/views/components/PopupMain.tsx
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* fix(ui): change old icons to the new ones from main
* fix(ui): show flag icon instead of plus icon for feedback
* chore: fix button variants after merge
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
* feat(ui): update button variants following figma
* feat(ui): separate size prop to allow for regular and small sized button variants
* update type to no longer include minimal-small
* update uno css config to use new spacing system
* add variants and sizes to file upload; update button and file upload stories
* add mini button variant and update small button
* specify width on icon-only regular variant
* update plus buttons to be mini sizes
* remove redundant classnames
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: 2nd attempt for: now able to delete schedule even if active
* fix: 3rd attempt for: now able to delete schedule even if active
* fix: 4th attempt for: now able to delete schedule even if active
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix(header): bottom-aligned the schedule name + hours/courses in calendar
* feat: updated font style in header and dropdown
* fix: new hour/course styling per discussion
i love having 80 different ideas, hopefully after this there's like maybe a tiny commit left to do before this is done..
* feat(header): added icons to cal header
WORK IN PROGRESS
* style: updated layout of header and main popup
* fix: updated font and spacing for header and popup
* fix: updated cal + popup style details
- schedule title is now in normal casing w/ colon removed
- last updated on is now entirely deleted from everywhere
- hour and course numbers now h3 in calendar ONLY
* refactor: changed size for calendar header
* refactor: changed ut-black to theme-black
* refactor: remove hiding on small window sizes
* refactor: reduced spacing in popup
* refactor: updated unocss for small-caps configuration
* style: changed variant + className order
* fix: readded update time text
* style: auto formatter, unused imports, capitalization
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: export schedule function to be added to handler
* feat: use UserScheduleStore and return json
* feat: download functionality
* feat: oh wow we already have a blob download util that is very very nice
* feat: return empty json if none found
* feat: import function completion
* feat: file uploading done
* feat: new input component-stories made-settings input replaced with component
* feat: attempt 1 to hook settings.tsx to importSchedule
* feat: it works horray aka using right Course constructor it works
* chore: fix jsdoc
* chore: comments and debug style
* docs: extra comment
* feat: name of schedule more user friendly
* feat: reworked how schedule is passed and check for file being schedule
* feat: color is kept on import
* fix: add sendResponse to exportSchedule
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: instructor formatting errors
* refactor: simplify logic in Instructor toString, remove unused formatters
* refactor: remove "unnecessary" else's after returns
I think it looks worse like this but whatever
* fix: updated text when time/location not provided
* fix(issue): fixed text when time/loc isn't provided
* chore: lint and format
* fix: created location&time component
* fix: renamed component & restructured component
* chore: fix lint
* fix: variety of issues within DisplayMeetingInfo component
* fix: fixed lint error
* fix: ran prettier
* chore: locationInfo usage
* chore: cleanup
* fix: removed periods and added online info
* fix: wrapped in div to remove space
* fix: space now shows properly
* fix: spacing fixed
* chore: remove types from jsdoc
* fix: extra arg
* chore: fix lint
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Razboy20 <razboy20@gmail.com>
* feat: first button attempt
* feat: fetching each course code
* feat: adding courses function from there but idk where to get the active schedule from
* docs: todo
* feat: retrieved active schedule
* feat: button tactics
* feat: add support for my.utexas.edu
* feat: inject button into MyUT
* feat: refactor code to render components dynamically based on site
* feat: scrape course ids from MyUT and remove duplicates
* feat: site support links for classlist
* feat: add utility function to add course by URL
* feat: support additional case for course cal
* feat: duplicates
* chore: cleanup
* feat: temporary checkpoint
* feat: reroute to use new add course by url
* feat: linking to new function, cleaning up, adding messaging for course url add
* chore: unused import
* feat: relinking addCourse function to the button fingers crossed
* feat: we did it!
* chore: remove comment
* chore: cleanup cleanup
* feat: tried to handle the async stuff because of that small bug but nothing fixed. doesnt hurt tho
* feat: i have fixed it holy kevinnn
* chore: delete unused file and organization
* chore: removed unused log
* feat: better log for course add
* chore: refactor via data destructuring
* chore: pass component as prop via React.ComponentType
---------
Co-authored-by: Ethan Lanting <ethanlanting@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add 'About the data' link to grade distribution chart
* chore: change the About the data text style/variant to small
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add CacheStore for GitHub stats and use names instead of usernames
* fix: only cache name for successful API queries
* chore: linting
* chore: refactor any with unknown and add jsdocs
* fix: use cached endpoint to avoid rate limiting issues
* fix: code style
* chore: add type assertion
* fix: use correct type
* Revert "fix: use correct type"
This reverts commit 74956c12f3.
* fix: use correct type
* fix: use URL Web API
* fix: add CONTRIBUTORS_API_ROUTE constant
---------
Co-authored-by: Derek Chen <derex1987@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix(ui): updated multiple instructor name formatting in course blocks
* fix(ui): display instructor last names only in all course blocks
* refactor: use instructor toString when getting instructor full name
* refactor: toString in useFlattenedCourseSchedule without template literal
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* refactor: delete type hint and unnecessary comments
* fix(ui): instructor names semicolon delimiter in calendar course block
* fix(ui): removed 'unknown' when there are no instructors
* fix(ui): change - to &ndash
* fix(ui): changed - to ndash in hook
---------
Co-authored-by: Samuel Gunter <29130894+Samathingamajig@users.noreply.github.com>
* fix(ui): placeholder text for no instructor course #400
* Update src/views/components/injected/CourseCatalogInjectedPopup/HeadingAndActions.tsx
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
---------
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
* feat(ui): changed popup close icon to #333F48
* feat(ui): ran prettier
* feat(ui): changed hex code to ut-black
* feat(ui): change popup close button color
* feat(ui): got rid of extra space
* feat: add more relevant links to the From the Team section
* feat: add CRXPages.ts
* chore: update to TS 4.9 satisfies
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add core curriculum chips to injected popup
* fix: add VP and MAcore indicators
* feat: core now defined in constructor
* fix: make core and flags closer together
* fix: stop empty core chip from showing when no core requirements
* fix: remove optional chaining for core chips
* feat: generalize Chip for both flags and core classes
* fix: change types for storybook and add new story for CoreChip
* fix: remove labelMap prop from Chip, chore: clean up imports
* feat: change tooltip for core curriculum requirement
---------
Co-authored-by: Derek Chen <derex1987@gmail.com>
* feat: update calendar footer with kibedjkib
* fix: made it prettier
* Update src/views/components/calendar/CalendarFooter.tsx
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
---------
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
* feat: quote cleanup/organization
* feat: oblivion npc dialog
* feat: it is 4 in the morning
* chore: fix format
* chore: update spash text
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: we do al il check to move sat and 7 am classes to async
* feat: it is 5 am ohhhhh boy i could go for some mighty mo's rn
* feat: a derek
* feat: undo
* chore: lint
* chore: lint x2
* feat: horizontal line
* feat: dash changed to —
* feat: remove conditional centering if no timeAndLocation found
* style: his majestys style changes
* style: 2
* style: x3
* style: x4
* style: x5
* feat: action menu for schedule list item
* feat: schedule action menu functionality
* feat: dialog provider popups for delete
* feat: duplicate schedule satiesfies type
* refactor: change non-null assertion to early return for rename schedule
* refactor: move schedule list item dialog providers to util file
* style: run prettier
* chore: inline object with satisfies operator
* fix: border issues
* style: change popups to match figma
* fix: update import for schedule list item dialog providers
* style: change dropdown text style to match figma
* fix: add back dialog context
* style: rounded edges when hovering over action + soften border color
* chore: cleanup and improve styling
* fix: dialog in popupmain
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
Co-authored-by: Razboy20 <razboy20@gmail.com>
* fix: visual bug on radio and exit buttons when editing schedule name
* fix: add max width to text input
* fix: non-static sizing
* fix: non-static width with w-full
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>
* feat: minecraft splash text brought to life!
* feat: bringing splash text to more life
* feat: wrong place oops
* feat: more styling and rendering conditionally when no course detected, and new joke
* feat: more splash text whew my wittyness is exhausted
* feat: padding for some finishing touches
* chore: lint
* feat: add more phrases
* chore: prettier
* Update PopupMain.tsx
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add react-loading-skeleton package
Add the react-loading-skeleton package to the project dependencies in package.json. This package will be used to display loading skeletons in the AutoLoad component.
* chore: remove body-max-line-length rule from commitlint.config.ts
* fix: font weight added
* fix: change color hex
* fix: change color again
* fix: text-ut-burntorange
* fix: importance (tailwind wise)
* feat: switch button initial test
* feat: look at how this switch goes back and forth very mindful very demure
* fix: story
* feat: using type now
* chore: fix lint
* feat: button custom function prop
* fix: styling
* chore: fix lint error and add JSDoc
---------
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
* style: always show scrollbar
* fix: hide header scrollbar in specific instances
* hotfix: prettier fail
* style: always show scrollbar
* fix: hide header scrollbar in specific instances
* hotfix: Fix popup drag hitbox
Somehow, the drags get "lost" within a button element. Converting the parent container to a div works to fix this.
* refactor: Update styling
* chore: Update updatedAt dates in schedules
Set updatedAt dates to be fixed to '2024-01-01 12:00' for all schedules in
UserScheduleStore.
* build: update storybook
* chore: Removed unnecessary eslint-disable-next-line statements.
* fix: font weight added
* fix: change color hex
* fix: change color again
* fix: text-ut-burntorange
* fix: importance (tailwind wise)
* feat: debauchery
* feat: modernizing some covid-era dialogue
* feat: and more
* feat: ok other people can add now
* feat: one last one
* feat: maybe this will fix it
* fix: unstyled line
* feat: add more phrases
* feat: moved to a .tsx file format
* fix: prettier formatting
* fix: add doprz's quotes back
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: show async courses in the bottom bar
* fix: hide "Async/Other" header when there are no async courses, off-by-n error
(where n is the number async courses)
* refactor: move types closer to map instead of weird "as boolean"
* refactor: move satisfies to return type
* 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: initial attempt at hover text
* feat: fixgin it
* fix: heading to master real quick
* feat: tooltip prop added
* feat: tooltip now reads from the map instead of just label. Think we're done!
* Update Chip.tsx
* 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
* feat: Imports to popupcourseblock.tsx
* changing the blocks to accept parameters for clicking functionality which may or may not open the calendar
* put the click parameter in the div of popupcourseblock
* safely calling for onCourseClick in the event it is an undefined function
* handled other calls of popupcourseblock with empty functions for now, and i think popupmain opens calendar now when the course block is clicked
* feat: Testing out passing params to handleOpenCalendar
* url that takes in params to open calendar with params
* further work on url params; from popup main to handleopencalendar to calendar using urlsearchparams
* feat: small calendar shifting after merge:
* fix: merge handling and then references to new click parameter
* fix: optional params
* feat: split into two functions instead
* fix: changing proper usage of handleOpenCalendarWithCourse
* feat: show course popup when calendar opened
* chore: remove useless commented out code
* feat: close popup on calendar nav, fix build errors, remove useless comments/logs
* chore: chromatic so dumb fr why aren't you chrome
* fix: refactor listeners to build properly
* feat: exit early when not in chrome extension
* fix: function return type
* fix: function return type x2
* fix: generic type for useState
* refactor: extract calendar opening on click functions
* refactor: chrome runtime mock, omit question mark if no query params, rename calendar event
* refactor: move course click event into component directly instead of prop
* refactor: removed useless wrapper functions, made popup course block more accessible
* fix: i dont wanna talk about it
---------
Co-authored-by: Samuel Gunter <sgunter@utexas.edu>
* build: allow unocss to run through dev mode
* build: Update unocss dependencies to latest versions
Updated dependencies '@unocss/eslint-config', '@unocss/postcss', '@unocss/preset-uno', '@unocss/preset-web-fonts', '@unocss/reset', '@unocss/transformer-directives', '@unocss/transformer-variant-group' to version 0.58.6 for consistency and compatibility.
* refactor: add note to readme
* refactor: improve readme
* refactor: update readme (again)
* Update README.md
Updates the UTRP description text
---------
Co-authored-by: Isaiah David Rodriguez <51803892+IsaDavRod@users.noreply.github.com>
* 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
* feat: async text not visible when no async courses
* refactor: converted useState to boolean
* fix: remove unused import
* fix: maintain component height when hiding is enabled
* refactor: match stylings to figma
* refactor: padding change to match when there are courses to display
---------
Co-authored-by: Razboy20 <razboy20@gmail.com>
* fix: temp fixes, need to still work on it
* fix: im a god at css otl
* fix: handle edge case where they have conflicting classes in their schedule
* fix: got it working
* fix: don't change the font size of course names
* fix: remove unused prop
* fix: lint errs
* fix: remove unused code
* style: course selection fix
* fix: generic bugs on course selection
* fix: schedule switch lag when popup is open for too long
* fix: storybook bug
* chore: remove unnecessary dependency
* 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
* fix: remove old CoursePopup component
* fix: course catalog injected popup story should useScott's 314 class since it actually has data
* fix: build error in background.ts:
* chore: run eslint autofix on CourseCatalogInjectedPopup.stories.ts
* chore: run prettier on CourseCatalogInjectedPopup.stories.ts
* Temporarily uninstalling husky cause github desktop has issues with it
* Cleaned up some code. Removed unnecessary state value on injected popup
* Should've fixed popup alignment issue. Still need to integrate course schedule with calendar. Still debugging.
* Updated CalendarGridStories
* Fix: change to ExampleCourse from exampleCourse
* setCourse and calendar header need work
* Update as part of merge
* Fix: fixed build errors
* Fix: Added Todo
* Chore: Cleaned up useFlattenedCourseSchedule hook
* fix: List now keeps track of state when existing items are switched, while adding new items to the end
* Added back husky
* Update src/views/components/calendar/Calendar/Calendar.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: added type-safety, destructuring, etc. ready for re-review
* refactor: got rid of ts-ignore in openNewTabFromContentScript
* Update src/views/components/calendar/CalendarHeader/CalenderHeader.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* style: reformatted spacing
* style: eslint import order
* refactor: added new constructor for UserSchedule to avoid passing down null values to child props
* fix: fixed bug with course cell times starting and after 12 PM. commented in CourseMeeting class
* Update src/views/hooks/useFlattenedCourseSchedule.ts
* fix: fixed build errors by removing old apis
* refactor: added type-safety and destructuring
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* 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>
* Temporarily uninstalling husky cause github desktop has issues with it
* Cleaned up some code. Removed unnecessary state value on injected popup
* Should've fixed popup alignment issue. Still need to integrate course schedule with calendar. Still debugging.
* Updated CalendarGridStories
* Fix: change to ExampleCourse from exampleCourse
* setCourse and calendar header need work
* Update as part of merge
* Fix: fixed build errors
* Fix: Added Todo
* Chore: Cleaned up useFlattenedCourseSchedule hook
* fix: List now keeps track of state when existing items are switched, while adding new items to the end
* Added back husky
* Update src/views/components/calendar/Calendar/Calendar.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: added type-safety, destructuring, etc. ready for re-review
* refactor: got rid of ts-ignore in openNewTabFromContentScript
* Update src/views/components/calendar/CalendarHeader/CalenderHeader.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* style: reformatted spacing
* style: eslint import order
* refactor: added new constructor for UserSchedule to avoid passing down null values to child props
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: use StatusType
* fix: use AutoLoadStatus
* fix: use typof SiteSupport.*
* fix: one more of Status to StatusType
* fix: use import type
* fix: use path alias imports
* fix: use Extract
* fix: remove unnecessary import
* fix: **revert this later** - comment out build errs
* fix: add schedule to story
* feat: add props for dividers
* revert: un-comment build errors
This reverts commit 082e9e0269.
* Revert "fix: remove unnecessary import"
This reverts commit 9230346d26.
* Revert "fix: use Extract"
This reverts commit f6aa80d411.
* Revert "fix: use path alias imports"
This reverts commit ea9bf3c635.
* Revert "fix: use import type"
This reverts commit 27fee47778.
* Revert "Merge branch 'fix/Status-to-StatusType' into fix/divider-usage"
This reverts commit b1715ea360, reversing
changes made to 9ccc43ca27.
* fix: dont use magic number
* fix: lint errs
* fix: reorder imports
* 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)
* fix: use StatusType
* fix: use AutoLoadStatus
* fix: use typof SiteSupport.*
* fix: one more of Status to StatusType
* fix: use import type
* fix: use path alias imports
* fix: use Extract
* fix: remove unnecessary import
* feat: corrected date updated text
* feat: whew alignment looks way better
* feat: aligned the bars and made the latter half justify-end
* fix: limt
* fix: removed broken divider vinson did u do this
* feat: updated divider component
* refactor: inlined Divider's classes, simplified stories
* fix: style to unocss in story
* style: renamed variant to orientation for buttons
* docs: updated comments in Divider after prop name change
* Attempting to use more lightweight version
* Did not work.
* This is not what I wanted
* The image saves correctly. Needs padding
* Padding !!
* Removed downloadjs
* Padding more
* CalendarHeader alignment progress
* Boom
* css
* Between
* Lol
* Gap fix
* whitespace-nowrap
* Gaps
* Finished alignment of CourseStatus and Buttons
* Colors
* ESLint auto format
* Color UT Registration Plus text
* Reverting vscode
---------
Co-authored-by: Vinson Zheng <vinsonzheng499@gmail.com>
Made this change a while ago, but didn't push since it looks like we might switch to Elie's DnD. Pushing since it looks like there might still be reviewers.
"message": "You cannot import into the `background` directory from the `views` directory (i.e. content script files) because it will break the build!"
},
{
"target": "./src/views",
"from": "./src/background",
"message": "You cannot import into the `views` directory from the `background` directory (i.e. background script files) because it will break the build!"
},
{
"target": "./src/shared",
"from": "./",
"except": [
"./src/shared",
"./node_modules"
],
"message": "You cannot import into `shared` from an external directory."
* Gets the amount of space (in bytes) being used by one or more items.
* @param keys Optional. A single key or list of keys to get the total usage for. An empty list will return 0. Pass in null to get the total usage of all of storage.
* @param callback Callback with the amount of space being used by storage, or on failure (in which case runtime.lastError will be set).
* Parameter bytesInUse: Amount of space being used in storage, in bytes.
*/
asyncgetBytesInUse() {
return0;
},
/**
* Removes one or more items from storage.
* @param keys A single key or a list of keys for items to remove.
* @param callback Optional.
* Callback on success, or on failure (in which case runtime.lastError will be set).
* @param items An object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.
* Primitive values such as numbers will serialize as expected. Values with a typeof "object" and "function" will typically serialize to {}, with the exception of Array (serializes as expected), Date, and Regex (serialize using their String representation).
* @param callback Optional.
* Callback on success, or on failure (in which case runtime.lastError will be set).
* automatically select new or duplicated schedules ([#583](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/583)) ([#589](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/589)) ([2a50f55](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/2a50f5580d3dbeb0d66546c23cf29bbb37d80da2))
* **env:** add SENTRY env vars ([8f7e1bc](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8f7e1bc0af6336549068e02b80df21d4e8f4ef9c))
* export schedule button add to calendar ([#594](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/594)) ([5994ded](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5994ded8be876cb55174d27d3fdb0832b21a0ff9))
* search result shading ([#617](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/617)) ([be861b8](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/be861b823cb2cb7f6f4a1f266351eec3fc1c2f99))
* show warning for courses of different semesters ([#570](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/570)) ([2e7dac1](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/2e7dac1e3eba757231ac07ac966231c08c703a16))
* support summer grades, fix summer course parser ([#596](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/596)) ([2d92dd4](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/2d92dd47f00a44b7d48e92a8ffba94480e4e73f9))
### Bug Fixes
* fix or ignore various eslint warning ([#609](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/609)) ([95de8df](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/95de8df37243b6d59625df515a60442f11b7a9d3))
* limit height of schedule list dropdown in the extension popup ([#543](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/543)) ([eb8141e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/eb8141ee8c3d32bce901457178d50781b78f86dd))
* whitespace wrapping in semester warning ([#629](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/629)) ([46fe591](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/46fe591fa72ef017eea7cfb8aa37d12d8f223926))
* auto create empty schedule when deleted all schedules ([#552](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/552)) ([7c2beef](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/7c2beef1930fbc887e8ec1aea789016b3150cd21))
* ensure unique splash text on schedule change ([#554](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/554)) ([9448072](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/94480721124e052426c1f3236e8605c7088df79c))
* implement a What's New prompt ([#539](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/539)) ([f036d40](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/f036d409e60a39fd1d3cb2f0db53a6056615f336))
* persist sidebar toggle state ([#569](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/569)) ([6957431](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/695743104c57951ba1957258c60c843f8fae793f))
* recruitment banner for designer ([#578](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/578)) ([70d4fec](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/70d4fecad61ec3cd3ba839de302fd851e075d073))
* rework start time to checkboxes ([#553](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/553)) ([ca734dc](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ca734dcd39a433cfd2e930ea04adeba959b32c36))
* sticky calendar header and days ([#568](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/568)) ([fa9f78b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/fa9f78b46e3a2270a44d4cc0691195a7c695cb93))
* include logo in screenshot, fix screenshots on small/zoomed windows ([#579](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/579)) ([76b6aa7](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/76b6aa7c150299dfcfa4b3dc00ce2de32f90f75c))
* merge course labels across pages ([#541](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/541)) ([6c3139b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6c3139bf0f324c9a7be826b6c24e8bf142fc53b1))
* **schedule:** truncate long schedule names in popup ([#564](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/564)) ([3bed9cc](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/3bed9cc27febfe795af0766a913c4845e74cc2da))
* add 'new search' link to the course catalog page ([#456](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/456)) ([ca5e4c1](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ca5e4c13d31aeb603660972536712ea161c6f870))
* add CacheStore for GitHub stats and use names instead of usernames ([#405](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/405)) ([b732a80](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b732a80eaa6f6cbf5b627ffc31ab321de3a8e8f4))
* add explanation to grade distribution ([#325](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/325)) ([9ad3239](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9ad32390d13e1d413ca01b1bc45d02c695bc23dd))
* add open calendar button ([#457](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/457)) ([93733e3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/93733e37214f00543479e77209ca03864776a1a6))
* add spacing system ([#474](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/474)) ([e61ab56](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e61ab565c35a197609d205adcaac9c7ffe0fc6da))
* **build:** add Docker support ([#322](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/322)) ([a5e921f](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/a5e921fd75109a50f17d05c9682e73ba246f3dd1))
* **build:** refactor gulpfile to use gulp-execa ([#323](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/323)) ([db04bbb](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/db04bbb52e4ab19730dd66f417e68ab013ce2f79))
* export/import functionality (backup/restore/share with friends) + a new input component ([#433](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/433)) ([7dbffc6](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/7dbffc6eef346747042f1596da627ad0a2fcae1a))
* injected button - add all courses from MyUT AND passing URL to handler ([#291](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/291)) ([c41467c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c41467c6176d31f70cd3ecdcf56eeb73696c6c23))
* modify Course Block text style and time and location text ([#409](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/409)) ([0d51cae](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0d51cae4c8b27201b09c0898f4d7a6e7abb3c100))
* **settings:** add option to always open calendar in new tab ([#488](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/488)) ([009de62](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/009de628285ce9c6571e492f8e3f52cdeeed4459))
* **settings:** allow disabling of auto-loading courses ([#489](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/489)) ([b74c698](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b74c698866c1074ce2236ede549c94555667e6a5))
* **ui:** add schedule list icons ([#500](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/500)) ([f0b257a](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/f0b257aa124a8fff0bb31e3396715aecb09948d5))
* **ui:** added shadows to popup buttons and course blocks ([#378](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/378)) ([a20332e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/a20332e53da9bda873fabb8395afe6ff6303799c))
* **ui:** change icons to phosphor-icons [#467](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/467) ([#469](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/469)) ([37bd7e7](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/37bd7e79d9202d55c7d0f566518526b0aed53c68))
* **ui:** change red text when instructor not found ([#483](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/483)) ([52347fd](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/52347fd56dff95190915d9f375dbebe1383e76c8))
* **ui:** color picker final touches ([#491](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/491)) ([c2328e4](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c2328e461ea0a846f399a22bc525540da2796dcd))
* **ui:** course color picker ([#382](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/382)) ([1f635d2](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/1f635d2515fc403ad7f08fc3a244a17d262e3f7b))
* **ui:** course unique number copy button ([#490](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/490)) ([501f506](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/501f50667725aa1515391869b133908b8383d868))
* update SWE list ([aa29bcf](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/aa29bcf9fe4bad7812336d55d7575a6032aea91c))
* update text styles ([#468](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/468)) ([918f4e4](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/918f4e419cf5fa71bda1112597e9a373daca69ea)), closes [#465](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/465)
* validate login passed to background and implemented into add all injected button ([#443](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/443)) ([cd05e5e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/cd05e5e7fcaa02dab30f230c178f189d8052a7c9))
### Bug Fixes
* 4th attempt for: now able to delete schedule even if active ([#435](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/435)) ([2425679](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/24256798ba7b877dd170d77ce4970b13b8a69a68))
* place hours and courses under schedule name ([#388](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/388)) ([7dd9369](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/7dd93690d6dbd206cb50442f42ec85d6bbfc1da8))
* **ui:** reduce left side grade distribution margin/padding ([#427](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/427)) ([91fa78e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/91fa78e2d0532a73e24ecc013d2ba6c0f62c1fcd))
* **ui:** stop import button dropdown from squishing ([#504](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/504)) ([846070e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/846070ebb5e13e0fc0df94666dbce75194100049))
* updated text when time/location not provided ([#289](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/289)) ([ebcc0aa](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ebcc0aa76a89f0d1a9e90cfc50d70f017c9bed42))
* add core curriculum chips to injected popup ([#372](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/372)) ([6f1afc5](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6f1afc5b25441c6a1fbfdf57b3c8b5b74e36f5a0))
* Add linkedin social to calendar ([#368](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/368)) ([b6eccac](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b6eccaca6a2cdba9b57d2f49f064ae8504bbd5cb))
* add more relevant links to the From the Team section ([#380](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/380)) ([643ea13](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/643ea1320798aabb7783d267f5e6fd7c00fc2e3f))
* bold course number in grade distribution chart, change text to ut-black ([#406](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/406)) ([638ee88](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/638ee88c96510a779c157b524903caaeffc9ef19))
* disable/some actions when no instructor ([#319](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/319)) ([839f9c6](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/839f9c6d6afd4a1eae1a0bdf8893ab2e19b9fdff))
* **ui:** changed popup close icon to ut-black ([#394](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/394)) ([0077ae7](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0077ae70d22f24549c4c3b243188d19adbfbac14)), closes [#333F48](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/333F48)
* update senior swe admins ([#326](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/326)) ([b967240](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b967240f8fbb7a790a78f4aa256f0a77a491abb8))
* use "copy of" for duplicated schedules and place them under the original schedule [#358](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/358) ([#397](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/397)) ([94744e0](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/94744e01b94819fb4f5d64616ea56857b906c2dd))
### Bug Fixes
* added descending sort for commits on contributor section in settings page ([#365](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/365)) ([a715bbd](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/a715bbd933a87742e7bce3a44e8ba1bd419ad5eb)), closes [#363](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/363) [#363](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/363) [#363](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/363)
* change schedule total courses text color to UTRP black ([#369](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/369)) ([b00bf6c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b00bf6c180f1c6c3a61c5ef855e160ddf4af3ea4))
* changed the font-weight of h1-course ([#370](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/370)) ([4f609ae](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/4f609aeec797c1f99f0a57e5aeef7b82756ea4bc)), closes [#347](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/347)
* ensure input elements take full width of parent ([#364](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/364)) ([c2007ef](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c2007ef090aab3bbfcb8bca1ebc476255d09cb90))
* remove screenshot padding class for png download for [#344](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/344) ([#376](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/376)) ([768ac77](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/768ac776ed4d5ca2113a032a93c2dc7432915aa1)), closes [#334](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/334)
* typo in settings page ([#386](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/386)) ([d357735](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/d3577358d0d1fb60f2c776ae4b01e255fcf9109e))
* **ui:** add space before/after forward slash in "ASYNC/OTHER" text ([#366](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/366)) ([86792eb](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/86792eb56f04b615f7d52b2f417b88f4cb9a82ec))
* **ui:** main popup now shows 0 for empty schedule ([#395](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/395)) ([8de88d6](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8de88d6ad7d4c2b5c3aa08e1efc59f7226b40c6b))
* **ui:** multiple instructors are formatted properly, displays last name only, and are capitalized in all course blocks ([#342](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/342)) ([#403](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/403)) ([50e88fa](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/50e88fa015e0290fbe0dab8a19f8fcdbc4dd02b0))
* **ui:** placeholder text for no instructor course [#400](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/400) ([#402](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/402)) ([b3ae91d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b3ae91d8f3cebb89e5e5cea7f1200d28326afb4d))
* spring 2024 instructors db ([#317](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/317)) ([79dd29c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/79dd29cfc9e849b09e7d91bd0eed51c1c93b3352))
### Bug Fixes
* add a little error checking to settings ([#315](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/315)) ([e261641](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e261641e5985d8bd5047d8a0be5d1caae844e40f))
* gulp zip ([#314](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/314)) ([05f00b2](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/05f00b23d26b90f564710db4364426e90c8d6831))
* show calendar in active window ([#312](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/312)) ([ceba38b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ceba38b1ac74ec9e6630222183bd466a8d12c27d))
* actually sum for duplicate semesters (different uniques) ([#202](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/202)) ([d3f64ec](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/d3f64ec79eb64ebe72ae28991127dbe521823842))
* add button to the rows, use new ConflictsWithWarning component ([bec2649](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bec2649fc1244bffb5cb03809db62cc0ea477260))
* add buttons with icons in tailwind ([93b65ac](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/93b65ac2edef3fc728305cc51d1a32ecf5073274))
* add cal save buttons (no functionality) ([53e7c7f](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/53e7c7fedaf1f268d2d7d06ff1a5df9e2af2306d))
* add Calendar schedules component (clicking on storybook not working) ([d1a336e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/d1a336e903f09b04b89f11ba7ede2f7d26e0ac3c))
* add CalendarHeader and its Storybook, need to resize ([23276e5](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/23276e5c7c907261b1d02e9006d8021d99b43984))
* add chrome.storage api mocks for storybook use ([#141](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/141)) ([3839bff](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/3839bff29ef6f0ecfad1e975e685df9a64d96c92))
* add CSS for calendarCell div ([6cdcf49](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6cdcf4930d9868c0ed45820f66102d89a644cfb6))
* add CSS for hourLine div ([0ba6153](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0ba61534cbfc83408cb64eb1145ecacef1ee8f04))
* add CSS for timeLabelContainer div ([56f6456](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/56f6456ce85f77edb9d6fa64ecb82a8388feec41))
* add new db powered by UT_Grade_Parser ([#163](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/163)) ([60d1f48](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/60d1f48bd95132f0517258f017a7644d8aff5101))
* add skeleton loader for course description + distribution ([#267](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/267)) ([c2cab40](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c2cab407f3a07c1d3073e936c9d23cb1cecc9cb9))
* add story for CalendarGridCell ([fd91c3b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/fd91c3b12ef5670563e689d190be75ef1f695d1c))
* add Storybook story ([cb3cb5d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/cb3cb5d5fc18a68ca5a825f97b808b535aa1fe29))
* add tailwind version of Button component ([28d93b3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/28d93b3c25e1cbca3baea992a299d626ca823570))
* add tickmarks to day div ([8b9cb06](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8b9cb065c28b5dd38b7e1681839a81f55691a3c6))
* add time column to Calendar Component ([9d68211](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9d6821127e7ff9bf63cef659932ee7408de4c969))
* add timeAndGrid div ([95e0544](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/95e0544b7301d382439b74038fb1b3e25dfe6d30))
* added flag ;-; ([#195](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/195)) ([9b4d61c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9b4d61c2b0d8806b5d4a10296c1cc1266ac4229f))
* additional changes to [#201](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/201) ([#224](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/224)) ([bc354f3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bc354f3798a02e6ebc3c66a8b5eee553c25a19d4))
* aesthetically pleasing squishier course blocks when compressed ([#232](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/232)) ([438c82b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/438c82bfb5db0f570b261d15368a05447939b0fb))
* align day labels and add to grid ([1bb6191](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/1bb6191244f40220a9af66cced4fe8f0c1e546a0))
* alignment on calendar and header ([#109](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/109)) ([07ec5ab](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/07ec5abc3e1b40b801b7c977d21399b31222a4d3))
* async text hiding on Calendar's Bottom Bar when there are no async courses ([#152](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/152)) ([0dff122](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0dff12232c29415fa7bc5ac3771393a406ab738d))
* basic CalendarCourseMeeting component laid out - missing Text and Right Icon ([da9e7aa](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/da9e7aac4135afa5184e4949c36a288ef6ab62a7))
* Best Practices ([#102](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/102)) ([5eb7be2](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5eb7be246cd2a1db27c7ca777d81074ae7bb3b82))
* bold red refresh error ([#220](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/220)) ([229a8a2](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/229a8a29e8d04dfbe15de200ceffc53b4f758413))
* bottom bar for the calendar page ([#91](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/91)) ([0f730d6](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0f730d6c50462c9f7d0428ebb379742305212ef6))
* build without errors ([babc925](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/babc925967b01f1064b8d8e067e7bc792dd57b0a))
* calendar components 3rd attempt at merging ([#60](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/60)) ([4faca8c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/4faca8c43befe19c9b05ff4f3afba420e016bb59))
* Calendar Components 3rd Attempt at Merging ([#60](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/60)) ([ab2cd68](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ab2cd688fae616742b39c0637291a65e508e23bd))
* calendar grid and grid cells ([#81](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/81)) ([bfeb239](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bfeb2398aacf9a1fba892737b6ef0286acbc326f))
* Calendar Grid and Grid Cells ([#81](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/81)) ([dd2f696](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/dd2f696f8de2c0b291e917ef4d4cb2171b76712c))
* calendar header formatting and data displaying ([#160](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/160)) ([5cce1c7](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5cce1c79fc2b50843426ed290a1b53849375e4eb))
* Calendar Schedule component finished, fix: list didn't allow updates when adding a new schedule ([#115](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/115)) ([a99a557](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/a99a55788a0b9791ff048c8bbbaad5bada47c41f))
* chrome extension works ([35f3c72](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/35f3c7225049d760c6061ed827aa796514291e62))
* color palette for calendar ([#118](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/118)) ([471e55d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/471e55dcea1ae439658d00ed41570e2f218f0c3d))
* convert all LabelsAndDetails Components to Tailwind ([9e0f9df](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9e0f9df9de1a5c99657ddcef3b2eb101dd825b84))
* course color generation ([#179](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/179)) ([5ed81e4](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5ed81e4be99a8b7f3c68a3ba70358e4cbe5cc613))
* dividers in calendar bottom bar ([#120](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/120)) ([eba5d9f](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/eba5d9f508576d2648bd2501e5d5aaff32592566))
* **docs:** add extra acknowledgements ([e2cbfa3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e2cbfa3f48cb0b10a43134cf9784a44b13aa542d))
* drag only on vertical axis ([34a6449](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/34a644952995d4aedd18d11d327bd8589f5b2610))
* early iteration of non-virtual list ([677aa62](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/677aa624d7fb2bbb922aaf8806abe979c3399e4e))
* experimental toggle for icons, left off for now ([#237](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/237)) ([f34dd95](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/f34dd95d7765322b6cecb2e817a46e0549d929a5))
* fall 2023 grades ([#226](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/226)) ([863d980](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/863d980b2d1c706b1fc648f1a0de2a31515e339e))
* fix icons on PopupMain and convert to tailwind ([#108](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/108)) ([87799d8](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/87799d8f02aa5986025982f768639afdb1b0267a))
* fix save as button dividers ([#153](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/153)) ([7986549](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/7986549fdd40834a85bedbfd0862cdb21c9ae657))
* grades by professor ([#225](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/225)) ([78d749a](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/78d749a8a96f63c32663b464e5b663f932c28ed0))
* html2canvas -> htmlToImage and fix derick's bugs ([bda0282](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bda02826b14b96fd65a6f24218950e510c5aa3d8))
* Initial Splash Text Commit ([#208](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/208)) ([0534f60](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0534f607a51f1dd0905f6f45f08519cba65ea05a))
* limit schedules to 10 ([#272](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/272)) ([290b841](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/290b8415170bca631e5d71b08d88db80b02163f0))
* link to your registered courses ([#228](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/228)) ([f83e012](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/f83e012d62e268d95dce19a30e54e34f3779142b))
* list reordering ([#154](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/154)) ([038ebaa](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/038ebaa2689c14bc9906afb542ef62c21cb13177))
* listed versioning for beta builds ([#192](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/192)) ([0c42979](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0c429794230a91c4fd949715b7eea210ac18fee3))
* missed one chip toggle there ([#245](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/245)) ([5ca24da](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5ca24dab82509d34cf43af4359940476159d052f))
* newer grades and parameterized queries ([#238](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/238)) ([75ad416](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/75ad4167b6639bbcf58e2dc6dafc80ed4656a899))
* one single exclamation mark did all that ([#235](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/235)) ([be87e41](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/be87e4181430e0df41683be5c9d0a1ce992b2c61))
* open an injected course page on course block click in popup main ([#146](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/146)) ([2709484](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/27094846f70feb8d83c8d464ab0fa8dcd99b3e71))
* pad unique ids to 5 digits ([#170](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/170)) ([b4ad687](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b4ad6870bfc88f68bdd7f87fe1d94c23d0a02b95))
* popout icon for ccip in calendar ([#221](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/221)) ([6812d68](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6812d685d08902f7b3d9d2e5293350c8170c6f06))
* refactor all components in common ([e544312](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e5443122b422266a126de497b475020e298b2f1c))
* refactor all components in injected ([0c44849](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0c44849e15333c3a5cbdf8972eb31ada0e830b0a))
* rerouted directory to syllabus when click on professor name ([#211](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/211)) ([8959e0d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8959e0d9f7fdd82125f391f1ec51aa390ba9450d))
* save as PNG functionality ([ad18fbd](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ad18fbd16235be0c75121b527867fac708670300))
* schedule list item action menu ([#230](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/230)) ([15fc369](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/15fc3699cfda3ad56e5a262bd37dca166e2685dd))
* show async courses in the bottom bar ([#204](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/204)) ([227de53](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/227de53e8453804f0791f269dae64ec388136390))
* some small changes for colors and font ([#201](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/201)) ([bae1da4](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bae1da43d3373e12d593682e9fb69e19557b5749))
* splash text additions before v2 release ([#296](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/296)) ([e774f31](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e774f316e3f92c03e79274a55f1f729178c9a14a))
* splash text has arrived! ([#246](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/246)) ([9971435](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9971435716dec11e954dc26c14bf7d1505563d0d))
* Storybook for Vite ([#52](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/52)) ([9cc299c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9cc299ced6132644a5c2375b95a8a16a3482601b))
* swe title updates ([#310](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/310)) ([4629626](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/4629626a31934c491758ddca874e5018d9c22e57))
* updated Text component to latest design specification ([#70](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/70)) ([8b8433d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8b8433deaf8fe66f917fd66fb56cb0a748bc6e6e))
* updated Text component to latest design specification ([#70](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/70)) ([bb727f7](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bb727f70bea5a4c2ff5dba7e9b4428c0c84de7b2))
* updating joke styling and updating jokes array ([#277](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/277)) ([0da27e2](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0da27e2c46e9fc32efb80808715053c1f9f5165a))
* use display: grid for calendarGrid ([b535a6e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b535a6eb32ac1091c8b5309ca3cfb6bab0b62526))
* use downloadBlob util ([#186](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/186)) ([2dfb10e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/2dfb10e57b51a08fcde2dc6638a81b5ec9bbc7ab))
* use filter() instead of pop() ([063349d](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/063349d96d0ad008fa0dc1f0a8c7a27cf3f108ce))
* use React-icons ([8df9ea5](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8df9ea55a9f0bcb04c90314cb311bba9d1ebf2e3))
* working PNG and CAL downloads ([#119](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/119)) ([d9ee23c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/d9ee23c5bbe27240a0e2849aae2eae81d7960bb5))
### Bug Fixes
* add margin-top: -10px to p ([18406b0](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/18406b0c94604b1b524de03bf97e78cffe7a5bbf))
* added room number to course popup ([#231](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/231)) ([9eaff24](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/9eaff24cbb6d78d7f28521a07c32630a90a96f82))
* align timeBlock div ([4dc8957](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/4dc8957c459d0ee57e40c67fa61194ace832327e))
* build errors and merge in Casey's branch (driodiwb) ([39947b3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/39947b3694f42f9d5ad2f21d044585aa3d12c407))
* build errors and restructure Calendar page ([c6a48dd](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c6a48dd3f6025fe531c18e12b8730683d63f67ed))
* change Chromatic action to build current branch, not base branch ([#100](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/100)) ([e73c9fe](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e73c9fe417169e73c395cde1aeb841eee8add579))
* change material icons to material symbols ([#71](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/71)) ([52e34cb](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/52e34cb830ff1f12659703776bd3d9a24815ee00))
* correct parsing of noon ([#155](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/155)) ([91f62e1](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/91f62e1943633eaef7dc8d437e6a7397456a9123))
* db with proper insertion order ([8e79d6a](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8e79d6a6a87210e0a30584c0c9ceb60bd3a33665))
* dialog movement ([#227](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/227)) ([bc5d68c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bc5d68ce18f818c285ef7f5eda03f499365ee2e8))
* divider usage in HeaderAndActions ([#113](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/113)) ([84e8320](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/84e8320e8fce5961877a5745e89419a722055ed5))
* doesn't autoload on pages that don't have pages to load ([#270](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/270)) ([88eeb62](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/88eeb620aec52d6e4172cc908843339412ade90b))
* don't crash on cultural diversity flag ([#196](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/196)) ([5b1e451](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5b1e4513e29203a54ed9f4913c227d6c45d2e67a))
* eslint and remove React-beautiful-dnd ([6af805b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6af805ba3a7b04b7e5705d3d597b5ace686d61e0))
* extra space ([0f43796](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0f43796cd864acd012fc1242cbdf34844df62406))
* fixed bug where activeSchedule doesn't update correctly ([#158](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/158)) ([a409090](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/a409090b904686b76a5db52af980e81108b97082))
* fixed bug with course cells after 12 PM extending past midnight ([#122](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/122)) ([f22a3cd](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/f22a3cd7c0df138ca6ecd4b4a4efaa7ce845c3dd))
* fixed issues involving course meeting objects not being recognized as course meeting objects ([#132](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/132)) ([3406e9a](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/3406e9a0e2644218fc06cbd0b05046df5339264c))
* grade dist when no instructor ([#269](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/269)) ([6a363ae](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6a363aeb5ccb1c11e15db317b34c4f04a3c9aafc))
* idk why that comment was there ([#177](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/177)) ([c5fc621](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/c5fc6219e1540e1fb889d8bedc7296190103a56b))
* improper list data propagation ([#240](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/240)) ([149fda3](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/149fda3b721dcc3d8ffa6c2398c28e39dcb62aaa))
* improve dialog handling and error management in list items ([#257](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/257)) ([1942508](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/1942508d8d11f51b62806894ae13162b6404753b))
* injection not working from som/elie commit ([#145](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/145)) ([591687e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/591687eee8731b3649a5f8c1357a416eb2992a93))
* list component fixed ([#162](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/162)) ([5714ed1](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5714ed16d72c5442f58366ac51f40cc32ea406ab))
* made list draggable only by handle ([cbb190b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/cbb190bf4b3ad694c87b650489e1fca5aa6b7826))
* margins on list component ([cc71389](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/cc7138949cf77d1bcf1520633d669e939540575e))
* old icon removed in .tsx ([4d387e8](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/4d387e8063314c7c6d7452b746728e2cf85a1787))
* only show button hover effects when not disabled ([8e3aa7e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/8e3aa7ef3380836fd36a12698b1f6982e110c0f7))
* refactor AST parsing for custom ESLint rule ([62f0851](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/62f0851406bf82d3d0481fed40462bdd30ffcf1b))
* remote react-window fully (from List component) ([#114](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/114)) ([5f1c023](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/5f1c0231e483bc571ef944bbc0b950ab20d31028))
* remove course name from the syllabi lookup ([#200](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/200)) ([bcb5a8c](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/bcb5a8c469c4b5c1909880ab6789d67d04487ed2))
* remove extra spacing ([#121](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/121)) ([6ba8b68](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/6ba8b68654dc182bd2a084f93b0f4f7d5c132862))
* remove white space after duplicate schedule regex matching ([#286](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/286)) ([d73615e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/d73615e28129ee7d78604c6b295ec572b11be46e))
* rename to course block and fix line height for styling ([b602b0b](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/b602b0b895416a26214e934f9650a8ec0a10711e))
* revert "rename to course block and fix line height for styling" ([0273a23](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/0273a239139c0f3c0ad773ed8ab1cd4ad8d22fa3))
* revert CalendarGrid and CalendarGridCell back to SCSS from Tailwind ([56306ab](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/56306ab9440baf5ca1158f95d788de7ba42d73d8))
* revert last commit ([27d945f](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/27d945f57c76a1c2f31fee9f98c324fab6183bb6))
* support classes with no location ([#242](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/242)) ([3ff06e0](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/3ff06e043b112bc232c9c173e72b2ea99609cf7a))
* type issues by using correct import ([#111](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/111)) ([19fe070](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/19fe070491be9e2d40f12918561f6f6ac5921237))
* update daysOfWeek with new DAY_MAP keys ([ecdaadb](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ecdaadb83eb21b144d07d573613fd8971f0a5ce2))
* visual overflow bug when editing schedule name ([#251](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/251)) ([e8d2c2e](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/e8d2c2e1429072fcc1173ee770f06b07e9ddda20))
* vitest path alias bug ([ee37897](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/ee37897df4f65cd2d285e2ad628be43aebb21ea1))
* color palette for calendar ([#118](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues/118)) ([51bbd65](https://github.com/Longhorn-Developers/UT-Registration-Plus/commit/51bbd6590bf284ce54644b014466c8b2c73b8925))
Like the technical community as a whole, the UT Registration Plus team and community is made up of a mixture of professionals and volunteers from all over the world, working on every aspect of the mission - including mentorship, teaching, and connecting people.
Diversity is one of our huge strengths, but it can also lead to communication issues and unhappiness. To that end, we have a few ground rules that we ask people to adhere to. This code applies equally to founders, mentors and those seeking help and guidance.
This isn’t an exhaustive list of things that you can’t do. Rather, take it in the spirit in which it’s intended - a guide to make it easier to enrich all of us and the technical communities in which we participate.
This code of conduct applies to all spaces managed by the UT Registration Plus project or Longhorn Developers. This includes IRC, the mailing lists, the issue tracker, DSF events, and any other forums created by the project team which the community uses for communication. In addition, violations of this code outside these spaces may affect a person's ability to participate within them.
If you believe someone is violating the code of conduct, we ask that you report it by emailing [contact@longhorns.dev](mailto:contact@longhorns.dev). For more details please see our
- **Be friendly and patient.**
- **Be welcoming.** We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
- **Be considerate.** Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language.
- **Be respectful.** Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the UT Registration Plus community should be respectful when dealing with other members as well as with people outside the UT Registration Plus community.
- **Be careful in the words that you choose.** We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. This includes, but is not limited to:
- Violent threats or language directed against another person.
- Discriminatory jokes and language.
- Posting sexually explicit or violent material.
- Posting (or threatening to post) other people's personally identifying information ("doxing").
- Personal insults, especially those using racist or sexist terms.
- Unwelcome sexual attention.
- Advocating for, or encouraging, any of the above behavior.
- Repeated harassment of others. In general, if someone asks you to stop, then stop.
- **When we disagree, try to understand why.** Disagreements, both social and technical, happen all the time and UT Registration Plus is no exception. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of UT Registration Plus comes from its varied community, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes.
Original text courtesy of the [Speak Up! project](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html).
## Questions?
If you have questions, please see . If that doesn't answer your questions, feel free to [contact us](mailto:contact@longhorns.dev).
The Docker setup supports three modes of operation: build, zip, and dev. You can choose the mode either by passing it as a command or by setting the `BUILD_MODE` environment variable.
### Build Mode (Default)
This mode builds the extension and places the output in the `dist` folder.
```
docker run -it --rm -v $(pwd)/dist:/extension/dist ut-registration-plus build
```
or
```
docker run -it --rm -v $(pwd)/dist:/extension/dist -e BUILD_MODE=build ut-registration-plus
```
### Zip Mode
This mode builds the extension and creates a zipped package in the `package` folder.
```
docker run -it --rm -v $(pwd)/package:/extension/package ut-registration-plus zip
```
or
```
docker run -it --rm -v $(pwd)/package:/extension/package -e BUILD_MODE=zip ut-registration-plus
```
### Development Mode with Hot Module Replacement (HMR)
This mode runs the extension in development mode with HMR support.
_Note_: This currently doesn't work.
```
docker run -it --rm -v $(pwd)/dist:/extension/dist -v $(pwd)/dist:/extension/dist -p 5173:5173 ut-registration-plus dev
- For build mode, the extension files will be in the `dist` directory on your host machine.
- For zip mode, the zipped extension will be in the `package` directory on your host machine.
- For dev mode, the extension will be continuously built in the `dist` directory, and you can load it as an unpacked extension in Chrome.
## Docker Development Workflow
When working on the extension:
1. Run the container in dev mode
2. Make changes to your source code
3. The extension will automatically rebuild thanks to HMR
4. Reload the extension in Chrome to see your changes
## Troubleshooting
- If you encounter permission issues with the output directories, ensure that the directories exist on your host machine and have the correct permissions.
- For any other issues, please check the Docker logs or open an issue in the GitHub repository.
**UT Registration Plus (UTRP)** streamlines the process of registering for classes at UT Austin by reducing the chaos of juggling multiple tabs like Rate My Professor, Google Sheets, and the UT Course Schedule. With UTRP, you can simplify class selection and schedule management. We've all been there. 20 tabs of Rate My Professor, Google Spreadsheet, and the UT Course Schedule open and you still don't know what classes to take.
## Demo

## Features
- **Quick Access to Class Info**: For each class in the UT Course Schedule, UTRP provides a "breakdown" popup with direct links to RateMyProfessor, Course Evaluation Surveys (CES), and past syllabi.
- **Prerequisite & Restriction Highlights**: Displays course descriptions with highlighted details on prerequisites, restrictions, and other important info.
- **Grade Distribution Graphs**: View an aggregate and semester-specific graph of grade distributions for each course.
- **Saved Courses List**: Easily add courses to a list and view them in the extension popup. Copy unique numbers with a single click.
- **Conflict Detection**: Automatically highlights and strikes out courses that conflict with your saved courses in the UT Course Catalog.
- **Weekly Schedule View**: Displays your saved courses in a weekly schedule format for easier planning.
- **Multiple Schedule Support**: Create multiple schedules to plan for different registration scenarios.
- **And much more!**
## Toolchain
- React v20.9.0 (LTS)
- TypeScript v5.x
- Vite v5.x
- pnpm v10.x
- UnoCSS
- ESLint
- Prettier
- Storybook
- Figma
- Semantic-Release
- Custom Messaging & Storage Wrappers
## Getting Started
## VSCode Extensions
1. Clone this repo
2. Run `pnpm install` to install and patch all the required dependencies
We recommend using the following VSCode extensions to improve your development experience:
- If you want to run the development build:
-**[ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)**: For identifying and fixing linting issues.
- **[Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)**: For automatic code formatting.
- **[Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)**: For Tailwind CSS class autocomplete and IntelliSense.
- **[UnoCSS](https://marketplace.visualstudio.com/items?itemName=antfu.unocss)**: For better support with UnoCSS utilities.
- Run `pnpm run dev`
## Contributing
- If you want to build the extension for production:
Contributions are welcome and encouraged! To get started:
- Run `pnpm build`
1.**Fork** the repository.
2.**Create a new branch**: `git checkout -b feature/your-feature`.
3.**Make changes** and ensure your code passes linting and formatting checks: `pnpm run lint` and `pnpm run prettier`.
4.**Commit your changes** following the [Conventional Commits](#conventional-commits--branch-naming-convention) specification.
5.**Push** your branch: `git push origin feature/your-feature`.
6.**Open a Pull Request**.
You may have to rename the `__uno.css.js` to `uno.css.js` in dist
For significant changes, it’s recommended to open an issue first to discuss the proposed updates.
Go to chrome://extensions, ensure you have "Developer Mode" enabled, and click 'Load unpacked'
## Development
Navigate to the 'dist' folder and click 'select' to import the extension
### Getting Started
1. Clone this repository: `git clone https://github.com/Longhorn-Developers/UT-Registration-Plus.git`
2.**Node Version**: This project requires the Node.js version specified in `.nvmrc`. Use [nvm](https://github.com/nvm-sh/nvm) to install and manage the correct version:
```bash
nvm install
nvm use
```
_Note: Installing the wrong Node version can lead to errors during setup._
3. Install dependencies using `pnpm` (which manages and patches dependencies):
```bash
pnpm install
```
Once set up, the extension can be built to the `dist/` directory using the following methods:
### Development Builds
- Run the development server:
```bash
pnpm dev
```
> **Note**: Injected content on UT pages may not display correctly in development mode. To develop with accurate styles, use the following command:
>
> ```bash
> NODE_ENV='development' pnpm run dev build --mode development -w
> ```
### Production Builds
- To generate production builds:
```bash
pnpm build
```
<details>
<summary>Beta Builds</summary>
Use `BETA=true pnpm build` to generate a beta build.
</details>
### Docker
This project includes a Dockerfile that allows you to build, zip, or run the extension in development mode using Docker. Refer to [Docker Dev Setup](./DOCKER_DEV_SETUP.md) to get started.
## Loading the Extension Manually
To load the extension manually in Chrome:
1. Open `chrome://extensions`.
2. Enable 'Developer Mode'.
3. Click 'Load unpacked'.
4. Navigate to the `dist/` directory and select it.
## Bug Reporting
If you encounter bugs or issues, please report them in the [Issues](https://github.com/Longhorn-Developers/UT-Registration-Plus/issues) section, including:
We follow the **Conventional Commits** specification for commit messages. This ensures a consistent commit history and enables automated versioning and changelog generation.
"description":"The UT Registration Plus extension is a Chrome extension that allows students to easily register for classes at The University of Texas at Austin.",
"version":"2.3.0",
"description":"UT Registration Plus is a Chrome extension that allows students to easily register for classes.",
"You can't fail classes you're not in, that's for sure.",
'Steer clear of O-Chem, unless you fancy a challenge.',
'Rec Sports fills up fast, even before the sun reaches its peak.',
"Ah, Jendy's! A taste ever so refined.",
'Fine dining at Jester City Limits, eh?',
'The road to Kinsolving is long, but their delicacies makes it worth every step.',
'The squirrels, they have mastered begging for food better than students. Impressive... but worrying.',
"Do you study often? Ha! What am I saying? Of course you don't.",
"Hey, you, you're finally awake. You were trying to skip class right?",
'Mmm... Brutalist architecture...',
'The course syllabus: more than meets the eye',
'Pain is temporary, GPA is forever.',
"You've Yee'd Your Last Haw.",
'lol everything is already waitlisted.',
'Could be worse. Could be A&M.',
"Should you major in Compsci? well, here's a better question. do you wanna have a bad time?",
'A pen and paper is old fashioned, but sometimes old ways are best',
'A heart is like bedrock, destroyable only by cheating',
'You may not rest now, there are Canvas assignments nearby',
'You are filled with DETERMINATION',
'60k+ users!',
'Almost Turing complete',
'#BF5700',
'The waitlist is a lie!',
'BEVO JOCKEY 🗣️🗣️🗣️',
'RIP Domino, you beloved campus feline.',
"The year is 2055 and Welch still isn't finished.",
'Motivation dropping faster than ur GPA',
'No Work Happens On PCL 5th Floor.',
'I may be a sophomore in name, but my credit count screams freshman!',
// 'TeXAs iS BaCK GuYZ',
'mAke iT yOuR tExAS',
'change yOur slogan',
"'Academically Challenged'",
'Does McCombs teach Parseltongue?',
'No Cruce Enfrente Del Bus.',
'Omae Wa Mou Shindeiru...',
"They say each day, another brick disappears from Speedway. No one's sure where to.",
'The GDC will annex the EER one day',
'To hike to Kins or not to hike to Kins...',
"C'mon you Longhorns! You want to study forever?",
'HOW BOUT A NICE CUP OF LIBER TEA',
"Block of Butter? Now, that's a name I haven't heard in a long time...",
'CaN YoU aSk OuT a tA aFtEr tHe SeMeStEr Is oVeR AnD gRaDeS ArE DoNe?',
"The Block of Butter incident of '22",
'Begun, the midterms have.',
'You must construct additional schedules',
'THE WALK SIGN IS ON TO CROSS GUADALUPE AND 21ST',
'Pay attention. Might learn something.',
'Roll for Initiative!',
'The line at the on-campus Starbucks is longer than your course waitlist.',
'The weather changes more often than your class schedule.',
"'studying' often means refreshing Canvas every five minutes to see if the professor posted lecture slides.",
"It's over Bevo! I have the high ground!",
"I'll just skip this lecture and watch the recording later. What's the worst that could happen?",
'I hear the tower bells are ringing, PCL full of students dreaming.',
"I don't like sand",
'The libraries are full of students pretending to study but actually napping with their eyes open.',
"The 'campus loop' refers to both the bus route and the endless cycle of trying to find your way around campus.",
'The squirrels have mastered the art of begging for food better than most students during finals week.',
"'going for a run' often means 'running to get food from food trucks'.",
'We got UTRPv2 before GTA 6',
'Midterm season: Finish the Fight!',
"There's a Bevo on your lawn!",
'Veer was here',
'follow @sghsri!',
'Officially part of the SEC',
'Planner is now acquired by Plus',
'Longhorn Developers is the best UT Student Org',
'The Eiffel Tower is the UT Tower of Paris',
"He's a CS Major, but he showers regularly. 🧢",
'A CS major walks into a bar. The bar is empty because it is a CS major.',
'UT Registration Plus - The only thing that can make registration worse is not having it',
'UT Registration Plus - We make registration slightly less painful. Slightly.',
'UT Registration Plus - Do you really want to figure out which professors will ruin your GPA by yourself?',
"Ayo what's is a memory leak",
"lowkey we never thought we'd get this far, how are 60k of you people using this",
"dang we're really out here making a splash",
"We'd make a joke about A&M, but we're not sure they can read",
"We've only caused one or two outages, we swear!",
'Reality has a slight CNS bias',
'That one time in 2019 we accidentally DDoSed the registration system. (really)',
'Best UT financial aid tip? Marry rich.',
'Bevo Bucks are legal tender',
"'iS iT fInAlS wEeK oR mY fInAl WeEk'",
'Do you have an iPhone charger? Wait... Which one?',
'Deep in the heart of Texas',
'TEXAS!!! FIGHT!!!',
'Launder your AP credits through a community college for free',
'Also try Minecraft!',
'Please register later so the dev team can get the upper divs',
'The outdoor warning siren will test around 11:50 a.m.',
'You may be seeing this page because you used the Back button while browsing a secure web site or application. Alternatively, you may have mistakenly bookmarked the web sign in form instead of the actual web site you wanted to bookmark or used a link created by somebody else who made the same mistake.',
'Flag on the play, procrastinating picking classes, 1 day penalty, still first down',
'Pro-fessionals at Pro-crastinating',
'Built Texas Tough',
'Beware of trucks on Speedway',
'Marked as duplicate',
'If we ever flood, we can use the canoes on Speedway',
* An object that can be used to listen for and handle messages coming from another extension context.
* @param handlers the message handlers for the messages that this listener will handle. When a message is received, the corresponding message handler is called.
*/
constructor(handlers: MessageHandler<M>){
this.handlers=handlers;
// we want to know what type of script we are running in so we can determine what endpoint we are (background or foreground)
constscriptType=getScriptType();
if(!scriptType){
thrownewError('[crx-kit]: Unable to determine extension script type.');
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.