* 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
* 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: 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>
* 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>