feat(ui): change icons to phosphor-icons #467 (#469)

* change icons to phosphor-icons

* feat(ui): change icons to phosphor-icons

* feat(ui): change icons to phosphor-icons

* feat(ui): correct icon sizes, weights, and colors

* feat(ui): change arrow-up-right sizes to 16px
This commit is contained in:
Preston Cook
2024-12-31 13:36:08 -06:00
committed by GitHub
parent 918f4e419c
commit 37bd7e79d9
25 changed files with 112 additions and 141 deletions

View File

@@ -30,6 +30,7 @@
"@headlessui/react": "^2.2.0", "@headlessui/react": "^2.2.0",
"@hello-pangea/dnd": "^17.0.0", "@hello-pangea/dnd": "^17.0.0",
"@octokit/rest": "^21.0.2", "@octokit/rest": "^21.0.2",
"@phosphor-icons/react": "^2.1.7",
"@sentry/react": "^8.38.0", "@sentry/react": "^8.38.0",
"@unocss/vite": "^0.63.6", "@unocss/vite": "^0.63.6",
"@vitejs/plugin-react": "^4.3.3", "@vitejs/plugin-react": "^4.3.3",

15
pnpm-lock.yaml generated
View File

@@ -28,6 +28,9 @@ importers:
'@octokit/rest': '@octokit/rest':
specifier: ^21.0.2 specifier: ^21.0.2
version: 21.0.2 version: 21.0.2
'@phosphor-icons/react':
specifier: ^2.1.7
version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@sentry/react': '@sentry/react':
specifier: ^8.38.0 specifier: ^8.38.0
version: 8.38.0(react@18.3.1) version: 8.38.0(react@18.3.1)
@@ -1315,6 +1318,13 @@ packages:
resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
'@phosphor-icons/react@2.1.7':
resolution: {integrity: sha512-g2e2eVAn1XG2a+LI09QU3IORLhnFNAFkNbo2iwbX6NOKSLOwvEMmTa7CgOzEbgNWR47z8i8kwjdvYZ5fkGx1mQ==}
engines: {node: '>=10'}
peerDependencies:
react: '>= 16.8'
react-dom: '>= 16.8'
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'} engines: {node: '>=14'}
@@ -7816,6 +7826,11 @@ snapshots:
'@parcel/watcher-win32-x64': 2.5.0 '@parcel/watcher-win32-x64': 2.5.0
optional: true optional: true
'@phosphor-icons/react@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
'@pkgjs/parseargs@0.11.0': '@pkgjs/parseargs@0.11.0':
optional: true optional: true

View File

@@ -1,12 +1,9 @@
import { ClockUser, LockKey, Prohibit } from '@phosphor-icons/react';
import type { StatusType } from '@shared/types/Course'; import type { StatusType } from '@shared/types/Course';
import { Status } from '@shared/types/Course'; import { Status } from '@shared/types/Course';
import type { SVGProps } from 'react'; import type { SVGProps } from 'react';
import React from 'react'; import React from 'react';
import ClosedIcon from '~icons/material-symbols/lock';
import WaitlistIcon from '~icons/material-symbols/timelapse';
import CancelledIcon from '~icons/material-symbols/warning';
interface StatusIconProps extends SVGProps<SVGSVGElement> { interface StatusIconProps extends SVGProps<SVGSVGElement> {
status: StatusType; status: StatusType;
} }
@@ -22,11 +19,11 @@ export function StatusIcon(props: StatusIconProps): JSX.Element | null {
switch (status) { switch (status) {
case Status.WAITLISTED: case Status.WAITLISTED:
return <WaitlistIcon {...rest} />; return <ClockUser weight='fill' {...rest} />;
case Status.CLOSED: case Status.CLOSED:
return <ClosedIcon {...rest} />; return <LockKey weight='fill' {...rest} />;
case Status.CANCELLED: case Status.CANCELLED:
return <CancelledIcon {...rest} />; return <Prohibit weight='fill' {...rest} />;
default: default:
return null; return null;
} }

View File

@@ -1,16 +1,9 @@
import { CalendarDots, ChatText, FileText, ImageSquare, Minus, Plus, Smiley } from '@phosphor-icons/react';
import { colorsFlattened } from '@shared/util/themeColors'; import { colorsFlattened } from '@shared/util/themeColors';
import type { Meta, StoryObj } from '@storybook/react'; import type { Meta, StoryObj } from '@storybook/react';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
import React from 'react'; import React from 'react';
import AddIcon from '~icons/material-symbols/add';
import CalendarMonthIcon from '~icons/material-symbols/calendar-month';
import DescriptionIcon from '~icons/material-symbols/description';
import ImagePlaceholderIcon from '~icons/material-symbols/image';
import HappyFaceIcon from '~icons/material-symbols/mood';
import RemoveIcon from '~icons/material-symbols/remove';
import ReviewsIcon from '~icons/material-symbols/reviews';
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
const meta = { const meta = {
title: 'Components/Common/Button', title: 'Components/Common/Button',
@@ -24,7 +17,7 @@ const meta = {
// More on argTypes: https://storybook.js.org/docs/api/argtypes // More on argTypes: https://storybook.js.org/docs/api/argtypes
args: { args: {
children: 'Button', children: 'Button',
icon: ImagePlaceholderIcon, icon: ImageSquare,
}, },
argTypes: { argTypes: {
children: { control: 'text' }, children: { control: 'text' },
@@ -106,10 +99,10 @@ export const PrettyColors: Story = {
export const CourseButtons: Story = { export const CourseButtons: Story = {
render: props => ( render: props => (
<div style={{ display: 'flex', flexDirection: 'column', gap: '15px', alignItems: 'center' }}> <div style={{ display: 'flex', flexDirection: 'column', gap: '15px', alignItems: 'center' }}>
<Button {...props} variant='filled' color='ut-green' icon={AddIcon}> <Button {...props} variant='filled' color='ut-green' icon={Plus}>
Add Course Add Course
</Button> </Button>
<Button {...props} variant='filled' color='theme-red' icon={RemoveIcon}> <Button {...props} variant='filled' color='theme-red' icon={Minus}>
Remove Course Remove Course
</Button> </Button>
</div> </div>
@@ -129,17 +122,17 @@ export const CourseCatalogActionButtons: Story = {
}, },
render: props => ( render: props => (
<div style={{ display: 'flex', gap: '15px' }}> <div style={{ display: 'flex', gap: '15px' }}>
<Button {...props} variant='filled' color='ut-burntorange' icon={CalendarMonthIcon} /> <Button {...props} variant='filled' color='ut-burntorange' icon={CalendarDots} />
<Button {...props} variant='outline' color='ut-blue' icon={ReviewsIcon}> <Button {...props} variant='outline' color='ut-blue' icon={ChatText}>
RateMyProf RateMyProf
</Button> </Button>
<Button {...props} variant='outline' color='ut-teal' icon={HappyFaceIcon}> <Button {...props} variant='outline' color='ut-teal' icon={Smiley}>
CES CES
</Button> </Button>
<Button {...props} variant='outline' color='ut-orange' icon={DescriptionIcon}> <Button {...props} variant='outline' color='ut-orange' icon={FileText}>
Past Syllabi Past Syllabi
</Button> </Button>
<Button {...props} variant='filled' color='ut-green' icon={AddIcon}> <Button {...props} variant='filled' color='ut-green' icon={Plus}>
Add Course Add Course
</Button> </Button>
</div> </div>

View File

@@ -1,11 +1,10 @@
import { ArrowsVertical } from '@phosphor-icons/react';
import type { Meta, StoryObj } from '@storybook/react'; import type { Meta, StoryObj } from '@storybook/react';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
import DialogProvider, { usePrompt } from '@views/components/common/DialogProvider/DialogProvider'; import DialogProvider, { usePrompt } from '@views/components/common/DialogProvider/DialogProvider';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import React, { useState } from 'react'; import React, { useState } from 'react';
import MaterialSymbolsExpandAllRoundedIcon from '~icons/material-symbols/expand-all-rounded';
const meta = { const meta = {
title: 'Components/Common/DialogProvider', title: 'Components/Common/DialogProvider',
component: DialogProvider, component: DialogProvider,
@@ -46,7 +45,13 @@ const InnerComponent = () => {
}; };
return ( return (
<Button variant='filled' color='ut-burntorange' icon={MaterialSymbolsExpandAllRoundedIcon} onClick={myShow}> <Button
variant='filled'
color='ut-burntorange'
icon={ArrowsVertical}
iconProps={{ className: 'h-4 w-4' }}
onClick={myShow}
>
Open Dialog Open Dialog
</Button> </Button>
); );
@@ -86,7 +91,7 @@ const FiveDialogsInnerComponent = () => {
}; };
return ( return (
<Button variant='filled' color='ut-burntorange' icon={MaterialSymbolsExpandAllRoundedIcon} onClick={myShow}> <Button variant='filled' color='ut-burntorange' icon={ArrowsVertical} onClick={myShow}>
Open Dialogs Open Dialogs
</Button> </Button>
); );
@@ -121,7 +126,7 @@ const NestedDialogsInnerComponent = () => {
}; };
return ( return (
<Button variant='filled' color='ut-burntorange' icon={MaterialSymbolsExpandAllRoundedIcon} onClick={myShow}> <Button variant='filled' color='ut-burntorange' icon={ArrowsVertical} onClick={myShow}>
Open Next Dialog Open Next Dialog
</Button> </Button>
); );
@@ -161,7 +166,7 @@ const DialogWithOnCloseInnerComponent = () => {
<h1> <h1>
You closed the button below {timesClosed} {timesClosed === 1 ? 'time' : 'times'} You closed the button below {timesClosed} {timesClosed === 1 ? 'time' : 'times'}
</h1> </h1>
<Button variant='filled' color='ut-burntorange' icon={MaterialSymbolsExpandAllRoundedIcon} onClick={myShow}> <Button variant='filled' color='ut-burntorange' icon={ArrowsVertical} onClick={myShow}>
Open Dialog Open Dialog
</Button> </Button>
</> </>

View File

@@ -1,14 +1,9 @@
import { CalendarDots, ChatText, FileText, Plus, Smiley } from '@phosphor-icons/react';
import type { Meta, StoryObj } from '@storybook/react'; import type { Meta, StoryObj } from '@storybook/react';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
import Divider from '@views/components/common/Divider'; import Divider from '@views/components/common/Divider';
import React from 'react'; import React from 'react';
import AddIcon from '~icons/material-symbols/add';
import CalendarMonthIcon from '~icons/material-symbols/calendar-month';
import DescriptionIcon from '~icons/material-symbols/description';
import HappyFaceIcon from '~icons/material-symbols/mood';
import ReviewsIcon from '~icons/material-symbols/reviews';
const meta = { const meta = {
title: 'Components/Common/Divider', title: 'Components/Common/Divider',
component: Divider, component: Divider,
@@ -59,18 +54,18 @@ export const CourseCatalogActionButtons: Story = {
}, },
render: props => ( render: props => (
<div className='flex items-center gap-3.75'> <div className='flex items-center gap-3.75'>
<Button variant='filled' color='ut-burntorange' icon={CalendarMonthIcon} /> <Button variant='filled' color='ut-burntorange' icon={CalendarDots} />
<Divider {...props} /> <Divider {...props} />
<Button variant='outline' color='ut-blue' icon={ReviewsIcon}> <Button variant='outline' color='ut-blue' icon={ChatText}>
RateMyProf RateMyProf
</Button> </Button>
<Button variant='outline' color='ut-teal' icon={HappyFaceIcon}> <Button variant='outline' color='ut-teal' icon={Smiley}>
CES CES
</Button> </Button>
<Button variant='outline' color='ut-orange' icon={DescriptionIcon}> <Button variant='outline' color='ut-orange' icon={FileText}>
Past Syllabi Past Syllabi
</Button> </Button>
<Button variant='filled' color='ut-green' icon={AddIcon}> <Button variant='filled' color='ut-green' icon={Plus}>
Add Course Add Course
</Button> </Button>
</div> </div>

View File

@@ -1,10 +1,9 @@
import { ImageSquare } from '@phosphor-icons/react';
import { colorsFlattened } from '@shared/util/themeColors'; import { colorsFlattened } from '@shared/util/themeColors';
import type { Meta, StoryObj } from '@storybook/react'; import type { Meta, StoryObj } from '@storybook/react';
import FileUpload from '@views/components/common/FileUpload'; import FileUpload from '@views/components/common/FileUpload';
import React from 'react'; import React from 'react';
import ImagePlaceholderIcon from '~icons/material-symbols/image';
/** /**
* Stole this straight from Button.stories.tsx to test the input * Stole this straight from Button.stories.tsx to test the input
*/ */
@@ -17,7 +16,7 @@ const meta = {
tags: ['autodocs'], tags: ['autodocs'],
args: { args: {
children: 'Upload File', children: 'Upload File',
icon: ImagePlaceholderIcon, icon: ImageSquare,
}, },
argTypes: { argTypes: {
children: { control: 'text' }, children: { control: 'text' },

View File

@@ -1,5 +1,6 @@
import splashText from '@assets/insideJokes'; import splashText from '@assets/insideJokes';
import createSchedule from '@pages/background/lib/createSchedule'; import createSchedule from '@pages/background/lib/createSchedule';
import { CalendarDots, GearSix, Plus } from '@phosphor-icons/react';
import { background } from '@shared/messages'; import { background } from '@shared/messages';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import { UserScheduleStore } from '@shared/storage/UserScheduleStore'; import { UserScheduleStore } from '@shared/storage/UserScheduleStore';
@@ -13,10 +14,7 @@ import { getUpdatedAtDateTimeString } from '@views/lib/getUpdatedAtDateTimeStrin
import useKC_DABR_WASM from 'kc-dabr-wasm'; import useKC_DABR_WASM from 'kc-dabr-wasm';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import AddSchedule from '~icons/material-symbols/add';
import CalendarIcon from '~icons/material-symbols/calendar-month';
import Feedback from '~icons/material-symbols/flag'; import Feedback from '~icons/material-symbols/flag';
import SettingsIcon from '~icons/material-symbols/settings';
import { Button } from './common/Button'; import { Button } from './common/Button';
import CourseStatus from './common/CourseStatus'; import CourseStatus from './common/CourseStatus';
@@ -94,10 +92,10 @@ export default function PopupMain(): JSX.Element {
<SmallLogo /> <SmallLogo />
<div className='flex items-center gap-2.5'> <div className='flex items-center gap-2.5'>
<button className='bg-ut-burntorange px-2 py-1.25 btn' onClick={handleCalendarOpenOnClick}> <button className='bg-ut-burntorange px-2 py-1.25 btn' onClick={handleCalendarOpenOnClick}>
<CalendarIcon className='size-6 text-white' /> <CalendarDots className='size-6 text-white' />
</button> </button>
<button className='bg-transparent px-2 py-1.25 btn' onClick={handleOpenOptions}> <button className='bg-transparent px-2 py-1.25 btn' onClick={handleOpenOptions}>
<SettingsIcon className='size-6 color-ut-black' /> <GearSix className='size-6 color-ut-black' />
</button> </button>
<button className='bg-transparent px-2 py-1.25 btn' onClick={openReportWindow}> <button className='bg-transparent px-2 py-1.25 btn' onClick={openReportWindow}>
<Feedback className='size-6 color-ut-black' /> <Feedback className='size-6 color-ut-black' />
@@ -138,7 +136,7 @@ export default function PopupMain(): JSX.Element {
className='h-fit p-0 btn' className='h-fit p-0 btn'
onClick={handleAddSchedule} onClick={handleAddSchedule}
> >
<AddSchedule className='h-6 w-6' /> <Plus className='h-6 w-6' />
</Button> </Button>
</div> </div>
</ScheduleDropdown> </ScheduleDropdown>

View File

@@ -1,3 +1,4 @@
import { CalendarDots, ImageSquare } from '@phosphor-icons/react';
import type { Course } from '@shared/types/Course'; import type { Course } from '@shared/types/Course';
import { saveAsCal, saveCalAsPng } from '@views/components/calendar/utils'; import { saveAsCal, saveCalAsPng } from '@views/components/calendar/utils';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
@@ -7,9 +8,6 @@ import type { CalendarGridCourse } from '@views/hooks/useFlattenedCourseSchedule
import clsx from 'clsx'; import clsx from 'clsx';
import React from 'react'; import React from 'react';
import CalendarMonthIcon from '~icons/material-symbols/calendar-month';
import ImageIcon from '~icons/material-symbols/image';
import CalendarCourseBlock from './CalendarCourseCell'; import CalendarCourseBlock from './CalendarCourseCell';
type CalendarBottomBarProps = { type CalendarBottomBarProps = {
@@ -62,14 +60,14 @@ export default function CalendarBottomBar({ courseCells, setCourse }: CalendarBo
</div> </div>
<div className='flex items-center screenshot:hidden'> <div className='flex items-center screenshot:hidden'>
{displayCourses && <Divider orientation='vertical' size='1rem' className='mx-1.25' />} {displayCourses && <Divider orientation='vertical' size='1rem' className='mx-1.25' />}
<Button variant='single' color='ut-black' icon={CalendarMonthIcon} onClick={saveAsCal}> <Button variant='single' color='ut-black' icon={CalendarDots} onClick={saveAsCal}>
Save as .CAL Save as .CAL
</Button> </Button>
<Divider orientation='vertical' size='1rem' className='mx-1.25' /> <Divider orientation='vertical' size='1rem' className='mx-1.25' />
<Button <Button
variant='single' variant='single'
color='ut-black' color='ut-black'
icon={ImageIcon} icon={ImageSquare}
onClick={() => requestAnimationFrame(() => saveCalAsPng())} onClick={() => requestAnimationFrame(() => saveCalAsPng())}
> >
Save as .PNG Save as .PNG

View File

@@ -1,3 +1,4 @@
import { ClockUser, LockKey, Prohibit } from '@phosphor-icons/react';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import type { StatusType } from '@shared/types/Course'; import type { StatusType } from '@shared/types/Course';
import { Status } from '@shared/types/Course'; import { Status } from '@shared/types/Course';
@@ -7,10 +8,6 @@ import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import ClosedIcon from '~icons/material-symbols/lock';
import WaitlistIcon from '~icons/material-symbols/timelapse';
import CancelledIcon from '~icons/material-symbols/warning';
/** /**
* Props for the CalendarCourseCell component. * Props for the CalendarCourseCell component.
*/ */
@@ -59,11 +56,11 @@ export default function CalendarCourseCell({
let rightIcon: React.ReactNode | null = null; let rightIcon: React.ReactNode | null = null;
if (enableCourseStatusChips) { if (enableCourseStatusChips) {
if (status === Status.WAITLISTED) { if (status === Status.WAITLISTED) {
rightIcon = <WaitlistIcon className='h-5 w-5' />; rightIcon = <ClockUser weight='fill' className='h-5 w-5' />;
} else if (status === Status.CLOSED) { } else if (status === Status.CLOSED) {
rightIcon = <ClosedIcon className='h-5 w-5' />; rightIcon = <LockKey weight='fill' className='h-5 w-5' />;
} else if (status === Status.CANCELLED) { } else if (status === Status.CANCELLED) {
rightIcon = <CancelledIcon className='h-5 w-5' />; rightIcon = <Prohibit weight='fill' className='h-5 w-5' />;
} }
} }

View File

@@ -1,8 +1,7 @@
import { Check } from '@phosphor-icons/react';
import { getThemeColorHexByName } from '@shared/util/themeColors'; import { getThemeColorHexByName } from '@shared/util/themeColors';
import React from 'react'; import React from 'react';
import CheckIcon from '~icons/material-symbols/check';
/** /**
* Props for the ColorPatch component * Props for the ColorPatch component
*/ */
@@ -30,7 +29,7 @@ export default function ColorPatch({ color, isSelected, handleSetSelectedColor }
style={{ backgroundColor: color }} style={{ backgroundColor: color }}
onClick={handleClick} onClick={handleClick}
> >
{isSelected && <CheckIcon className='h-5 w-5 color-white' />} {isSelected && <Check className='h-5 w-5 color-white' />}
</button> </button>
); );
} }

View File

@@ -1,8 +1,7 @@
import { Hash } from '@phosphor-icons/react';
import { getThemeColorHexByName } from '@shared/util/themeColors'; import { getThemeColorHexByName } from '@shared/util/themeColors';
import React from 'react'; import React from 'react';
import TagIcon from '~icons/material-symbols/tag';
/** /**
* Props for the HexColorEditor component * Props for the HexColorEditor component
*/ */
@@ -29,7 +28,7 @@ export default function HexColorEditor({ hexCode, setHexCode }: HexColorEditorPr
style={{ backgroundColor: previewColor }} style={{ backgroundColor: previewColor }}
className='h-5.5 w-5.25 flex items-center justify-center rounded-l-1' className='h-5.5 w-5.25 flex items-center justify-center rounded-l-1'
> >
<TagIcon className='h-4 w-4 text-color-white' /> <Hash className='h-4 w-4 text-color-white' />
</div> </div>
<div className='h-5.5 w-[53px] flex flex-1 items-center justify-center border-b border-r border-t rounded-br rounded-tr p-1.25'> <div className='h-5.5 w-[53px] flex flex-1 items-center justify-center border-b border-r border-t rounded-br rounded-tr p-1.25'>
<input <input

View File

@@ -1,3 +1,4 @@
import { GearSix, Sidebar } from '@phosphor-icons/react';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
import CourseStatus from '@views/components/common/CourseStatus'; import CourseStatus from '@views/components/common/CourseStatus';
@@ -8,10 +9,6 @@ import useSchedules from '@views/hooks/useSchedules';
import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript'; import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import MenuIcon from '~icons/material-symbols/menu';
// import RefreshIcon from '~icons/material-symbols/refresh';
import SettingsIcon from '~icons/material-symbols/settings';
/** /**
* Opens the options page in a new tab. * Opens the options page in a new tab.
* @returns A promise that resolves when the options page is opened. * @returns A promise that resolves when the options page is opened.
@@ -61,7 +58,7 @@ export default function CalendarHeader({ onSidebarToggle }: CalendarHeaderProps)
<div className='flex items-center gap-5 overflow-x-auto overflow-y-hidden border-b border-ut-offwhite px-7 py-4 md:overflow-x-hidden'> <div className='flex items-center gap-5 overflow-x-auto overflow-y-hidden border-b border-ut-offwhite px-7 py-4 md:overflow-x-hidden'>
<Button <Button
variant='single' variant='single'
icon={MenuIcon} icon={Sidebar}
color='ut-gray' color='ut-gray'
onClick={onSidebarToggle} onClick={onSidebarToggle}
className='screenshot:hidden' className='screenshot:hidden'
@@ -86,7 +83,7 @@ export default function CalendarHeader({ onSidebarToggle }: CalendarHeaderProps)
{/* <Button variant='single' icon={UndoIcon} color='ut-black' /> {/* <Button variant='single' icon={UndoIcon} color='ut-black' />
<Button variant='single' icon={RedoIcon} color='ut-black' /> */} <Button variant='single' icon={RedoIcon} color='ut-black' /> */}
<Button variant='single' icon={SettingsIcon} color='theme-black' onClick={handleOpenOptions} /> <Button variant='single' icon={GearSix} color='theme-black' onClick={handleOpenOptions} />
</div> </div>
</div> </div>
); );

View File

@@ -1,4 +1,5 @@
import createSchedule from '@pages/background/lib/createSchedule'; import createSchedule from '@pages/background/lib/createSchedule';
import { Plus } from '@phosphor-icons/react';
import { UserScheduleStore } from '@shared/storage/UserScheduleStore'; import { UserScheduleStore } from '@shared/storage/UserScheduleStore';
import { Button } from '@views/components/common/Button'; import { Button } from '@views/components/common/Button';
import List from '@views/components/common/List'; import List from '@views/components/common/List';
@@ -8,8 +9,6 @@ import { useEnforceScheduleLimit } from '@views/hooks/useEnforceScheduleLimit';
import useSchedules, { getActiveSchedule, switchSchedule } from '@views/hooks/useSchedules'; import useSchedules, { getActiveSchedule, switchSchedule } from '@views/hooks/useSchedules';
import React from 'react'; import React from 'react';
import AddSchedule from '~icons/material-symbols/add';
/** /**
* Renders a component that displays a list of schedules. * Renders a component that displays a list of schedules.
* *
@@ -33,7 +32,7 @@ export function CalendarSchedules() {
MY SCHEDULES MY SCHEDULES
</Text> </Text>
<Button variant='single' color='theme-black' className='h-fit p-0 btn' onClick={handleAddSchedule}> <Button variant='single' color='theme-black' className='h-fit p-0 btn' onClick={handleAddSchedule}>
<AddSchedule className='h-6 w-6' /> <Plus className='h-6 w-6' />
</Button> </Button>
</div> </div>
<div className='flex flex-col space-y-2.5'> <div className='flex flex-col space-y-2.5'>

View File

@@ -1,9 +1,8 @@
import { ArrowUpRight } from '@phosphor-icons/react';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React from 'react'; import React from 'react';
import OutwardArrowIcon from '~icons/material-symbols/arrow-outward';
type Props = { type Props = {
className?: string; className?: string;
}; };
@@ -61,7 +60,7 @@ export default function ImportantLinks({ className }: Props): JSX.Element {
rel='noreferrer' rel='noreferrer'
> >
<Text variant='p'>{link.text}</Text> <Text variant='p'>{link.text}</Text>
<OutwardArrowIcon className='h-3 w-3' /> <ArrowUpRight className='h-4 w-4' />
</a> </a>
))} ))}
</article> </article>

View File

@@ -1,11 +1,10 @@
import { ArrowUpRight } from '@phosphor-icons/react';
import { CRX_PAGES } from '@shared/types/CRXPages'; import { CRX_PAGES } from '@shared/types/CRXPages';
import { openReportWindow } from '@shared/util/openReportWindow'; import { openReportWindow } from '@shared/util/openReportWindow';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React from 'react'; import React from 'react';
import OutwardArrowIcon from '~icons/material-symbols/arrow-outward';
type Props = { type Props = {
className?: string; className?: string;
}; };
@@ -63,7 +62,7 @@ export default function TeamLinks({ className }: Props): JSX.Element {
onClick={event => handleClick(link, event)} onClick={event => handleClick(link, event)}
> >
<Text variant='p'>{link.text}</Text> <Text variant='p'>{link.text}</Text>
<OutwardArrowIcon className='h-3 w-3' /> <ArrowUpRight className='h-4 w-4' />
</a> </a>
))} ))}
</article> </article>

View File

@@ -1,17 +1,17 @@
import type { Icon, IconProps } from '@phosphor-icons/react';
import type { ThemeColor } from '@shared/types/ThemeColors'; import type { ThemeColor } from '@shared/types/ThemeColors';
import { getThemeColorHexByName, getThemeColorRgbByName } from '@shared/util/themeColors'; import { getThemeColorHexByName, getThemeColorRgbByName } from '@shared/util/themeColors';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React from 'react'; import React from 'react';
import type IconComponent from '~icons/material-symbols';
interface Props { interface Props {
className?: string; className?: string;
style?: React.CSSProperties; style?: React.CSSProperties;
variant: 'filled' | 'outline' | 'single'; variant: 'filled' | 'outline' | 'single';
onClick?: () => void; onClick?: () => void;
icon?: typeof IconComponent; icon?: Icon;
iconProps?: IconProps;
disabled?: boolean; disabled?: boolean;
title?: string; title?: string;
color: ThemeColor; color: ThemeColor;
@@ -27,6 +27,7 @@ export function Button({
variant, variant,
onClick, onClick,
icon, icon,
iconProps,
disabled, disabled,
title, title,
color, color,
@@ -63,7 +64,7 @@ export function Button({
disabled={disabled} disabled={disabled}
onClick={disabled ? undefined : onClick} onClick={disabled ? undefined : onClick}
> >
{Icon && <Icon className='h-6 w-6' />} {Icon && <Icon {...iconProps} className={clsx('h-6 w-6', iconProps?.className)} />}
{!isIconOnly && ( {!isIconOnly && (
<Text variant='h4' className='inline-flex translate-y-0.08 items-center gap-2'> <Text variant='h4' className='inline-flex translate-y-0.08 items-center gap-2'>
{children} {children}

View File

@@ -1,17 +1,17 @@
import type { Icon, IconProps } from '@phosphor-icons/react';
import type { ThemeColor } from '@shared/types/ThemeColors'; import type { ThemeColor } from '@shared/types/ThemeColors';
import { getThemeColorHexByName, getThemeColorRgbByName } from '@shared/util/themeColors'; import { getThemeColorHexByName, getThemeColorRgbByName } from '@shared/util/themeColors';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React from 'react'; import React from 'react';
import type IconComponent from '~icons/material-symbols';
interface Props { interface Props {
className?: string; className?: string;
style?: React.CSSProperties; style?: React.CSSProperties;
variant: 'filled' | 'outline' | 'single'; variant: 'filled' | 'outline' | 'single';
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void; onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
icon?: typeof IconComponent; icon?: Icon;
iconProps?: IconProps;
disabled?: boolean; disabled?: boolean;
title?: string; title?: string;
color: ThemeColor; color: ThemeColor;
@@ -28,6 +28,7 @@ export default function FileUpload({
variant, variant,
onChange, onChange,
icon, icon,
iconProps,
disabled, disabled,
title, title,
color, color,
@@ -62,7 +63,7 @@ export default function FileUpload({
)} )}
title={title} title={title}
> >
{Icon && <Icon className='h-6 w-6' />} {Icon && <Icon {...iconProps} className={clsx('h-6 w-6', iconProps?.className)} />}
{!isIconOnly && ( {!isIconOnly && (
<Text variant='h4' className='inline-flex translate-y-0.08 items-center gap-2'> <Text variant='h4' className='inline-flex translate-y-0.08 items-center gap-2'>
{children} {children}

View File

@@ -1,4 +1,5 @@
import type { DraggableProvidedDragHandleProps } from '@hello-pangea/dnd'; import type { DraggableProvidedDragHandleProps } from '@hello-pangea/dnd';
import { DotsSixVertical } from '@phosphor-icons/react';
import { background } from '@shared/messages'; import { background } from '@shared/messages';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import type { Course } from '@shared/types/Course'; import type { Course } from '@shared/types/Course';
@@ -10,8 +11,6 @@ import Text from '@views/components/common/Text/Text';
import clsx from 'clsx'; import clsx from 'clsx';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import DragIndicatorIcon from '~icons/material-symbols/drag-indicator';
/** /**
* Props for PopupCourseBlock * Props for PopupCourseBlock
*/ */
@@ -79,7 +78,7 @@ export default function PopupCourseBlock({
className='flex items-center self-stretch rounded rounded-r-0 cursor-move!' className='flex items-center self-stretch rounded rounded-r-0 cursor-move!'
{...dragHandleProps} {...dragHandleProps}
> >
<DragIndicatorIcon className='h-6 w-6 text-white' /> <DotsSixVertical weight='bold' className='h-6 w-6 text-white' />
</div> </div>
<Text className={clsx('flex-1 py-3.5 truncate', fontColor)} variant='h1-course'> <Text className={clsx('flex-1 py-3.5 truncate', fontColor)} variant='h1-course'>
<span className='px-0.5 font-450'>{formattedUniqueId}</span> {course.department} {course.number} <span className='px-0.5 font-450'>{formattedUniqueId}</span> {course.department} {course.number}

View File

@@ -1,11 +1,9 @@
import { Disclosure, DisclosureButton, DisclosurePanel, Transition } from '@headlessui/react'; import { Disclosure, DisclosureButton, DisclosurePanel, Transition } from '@headlessui/react';
import { CaretDown, CaretUp } from '@phosphor-icons/react';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import useSchedules from '@views/hooks/useSchedules'; import useSchedules from '@views/hooks/useSchedules';
import React from 'react'; import React from 'react';
import DropdownArrowDown from '~icons/material-symbols/arrow-drop-down';
import DropdownArrowUp from '~icons/material-symbols/arrow-drop-up';
/** /**
* Props for the Dropdown component. * Props for the Dropdown component.
*/ */
@@ -46,7 +44,7 @@ export default function ScheduleDropdown(props: ScheduleDropdownProps) {
</div> </div>
</div> </div>
<Text className='text-ut-burntorange text-2xl! font-normal!'> <Text className='text-ut-burntorange text-2xl! font-normal!'>
{open ? <DropdownArrowDown /> : <DropdownArrowUp />} {open ? <CaretDown weight='fill' /> : <CaretUp weight='fill' />}
</Text> </Text>
</DisclosureButton> </DisclosureButton>

View File

@@ -2,6 +2,7 @@ import { Menu, MenuButton, MenuItem, MenuItems } from '@headlessui/react';
import deleteSchedule from '@pages/background/lib/deleteSchedule'; import deleteSchedule from '@pages/background/lib/deleteSchedule';
import duplicateSchedule from '@pages/background/lib/duplicateSchedule'; import duplicateSchedule from '@pages/background/lib/duplicateSchedule';
import renameSchedule from '@pages/background/lib/renameSchedule'; import renameSchedule from '@pages/background/lib/renameSchedule';
import { Circle, DotsSixVertical, DotsThree, RadioButton } from '@phosphor-icons/react';
import type { UserSchedule } from '@shared/types/UserSchedule'; import type { UserSchedule } from '@shared/types/UserSchedule';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import { useEnforceScheduleLimit } from '@views/hooks/useEnforceScheduleLimit'; import { useEnforceScheduleLimit } from '@views/hooks/useEnforceScheduleLimit';
@@ -9,9 +10,6 @@ import useSchedules from '@views/hooks/useSchedules';
import clsx from 'clsx'; import clsx from 'clsx';
import React, { useEffect, useMemo, useState } from 'react'; import React, { useEffect, useMemo, useState } from 'react';
import DragIndicatorIcon from '~icons/material-symbols/drag-indicator';
import MoreActionsIcon from '~icons/material-symbols/more-vert';
import { Button } from './Button'; import { Button } from './Button';
import DialogProvider, { usePrompt } from './DialogProvider/DialogProvider'; import DialogProvider, { usePrompt } from './DialogProvider/DialogProvider';
import { ExtensionRootWrapper, styleResetClass } from './ExtensionRoot/ExtensionRoot'; import { ExtensionRootWrapper, styleResetClass } from './ExtensionRoot/ExtensionRoot';
@@ -117,21 +115,21 @@ export default function ScheduleListItem({ schedule, dragHandleProps, onClick }:
<div className='rounded bg-white'> <div className='rounded bg-white'>
<li className='w-full flex cursor-pointer items-center text-ut-burntorange'> <li className='w-full flex cursor-pointer items-center text-ut-burntorange'>
<div className='h-full cursor-move focusable' {...dragHandleProps}> <div className='h-full cursor-move focusable' {...dragHandleProps}>
<DragIndicatorIcon className='h-6 w-6 cursor-move text-zinc-300 btn-transition -ml-1.5 hover:text-zinc-400' /> <DotsSixVertical
weight='bold'
className='h-6 w-6 cursor-move text-zinc-300 btn-transition -ml-1.5 hover:text-zinc-400'
/>
</div> </div>
<div className='group relative flex flex-1 items-center overflow-x-hidden'> <div className='group relative flex flex-1 items-center overflow-x-hidden'>
<div <div
className='group/circle flex flex-grow items-center gap-1.5 overflow-x-hidden' className='group/circle flex flex-grow items-center gap-1.5 overflow-x-hidden'
onClick={(...e) => !isEditing && onClick?.(...e)} onClick={(...e) => !isEditing && onClick?.(...e)}
> >
<div {isActive ? (
className={clsx( <RadioButton className='h-7.5 w-7.5 btn-transition active:scale-95' weight='fill' />
'h-5.5 w-5.5 relative flex-shrink-0 border-2px border-current rounded-full btn-transition group-active/circle:scale-95 after:(absolute content-empty bg-current h-2.9 w-2.9 rounded-full transition transform-gpu scale-100 ease-out-expo duration-250 -translate-x-1/2 -translate-y-1/2 top-1/2 left-1/2)', ) : (
{ <Circle className='h-7.5 w-7.5 btn-transition active:scale-95' />
'after:(scale-0! opacity-0 ease-in-out! duration-200!)': !isActive,
}
)} )}
/>
{isEditing && ( {isEditing && (
<Text <Text
variant='p' variant='p'
@@ -158,7 +156,7 @@ export default function ScheduleListItem({ schedule, dragHandleProps, onClick }:
<DialogProvider> <DialogProvider>
<Menu> <Menu>
<MenuButton className='invisible h-fit bg-transparent p-0 text-ut-gray btn-transition data-[open]:visible group-hover:visible'> <MenuButton className='invisible h-fit bg-transparent p-0 text-ut-gray btn-transition data-[open]:visible group-hover:visible'>
<MoreActionsIcon className='h-6 w-6' /> <DotsThree weight='bold' className='h-6 w-6' />
</MenuButton> </MenuButton>
<MenuItems <MenuItems

View File

@@ -1,3 +1,4 @@
import { ArrowUpRight, CalendarDots, ChatText, Copy, FileText, Minus, Plus, Smiley, X } from '@phosphor-icons/react';
import { background } from '@shared/messages'; import { background } from '@shared/messages';
import type { Course } from '@shared/types/Course'; import type { Course } from '@shared/types/Course';
import type Instructor from '@shared/types/Instructor'; import type Instructor from '@shared/types/Instructor';
@@ -10,16 +11,6 @@ import Text from '@views/components/common/Text/Text';
import { useCalendar } from '@views/contexts/CalendarContext'; import { useCalendar } from '@views/contexts/CalendarContext';
import React from 'react'; import React from 'react';
import Add from '~icons/material-symbols/add';
import CalendarMonth from '~icons/material-symbols/calendar-month';
import CloseIcon from '~icons/material-symbols/close';
import Copy from '~icons/material-symbols/content-copy';
import Description from '~icons/material-symbols/description';
import Mood from '~icons/material-symbols/mood';
import OpenNewIcon from '~icons/material-symbols/open-in-new';
import Remove from '~icons/material-symbols/remove';
import Reviews from '~icons/material-symbols/reviews';
import DisplayMeetingInfo from './DisplayMeetingInfo'; import DisplayMeetingInfo from './DisplayMeetingInfo';
const { openNewTab, addCourse, removeCourse, openCESPage } = background; const { openNewTab, addCourse, removeCourse, openCESPage } = background;
@@ -120,7 +111,7 @@ export default function HeadingAndActions({ course, activeSchedule, onClose }: H
{formattedUniqueId} {formattedUniqueId}
</Button> </Button>
<button className='bg-transparent p-0 text-ut-black btn' onClick={onClose}> <button className='bg-transparent p-0 text-ut-black btn' onClick={onClose}>
<CloseIcon className='h-7 w-7' /> <X className='h-6 w-6' />
</button> </button>
</div> </div>
<div className='flex items-center gap-2'> <div className='flex items-center gap-2'>
@@ -168,7 +159,7 @@ export default function HeadingAndActions({ course, activeSchedule, onClose }: H
<Button <Button
variant='filled' variant='filled'
color='ut-burntorange' color='ut-burntorange'
icon={isInCalendar ? OpenNewIcon : CalendarMonth} icon={isInCalendar ? ArrowUpRight : CalendarDots}
onClick={() => { onClick={() => {
if (isInCalendar) { if (isInCalendar) {
openNewTab({ openNewTab({
@@ -183,7 +174,7 @@ export default function HeadingAndActions({ course, activeSchedule, onClose }: H
<Button <Button
variant='outline' variant='outline'
color='ut-blue' color='ut-blue'
icon={Reviews} icon={ChatText}
onClick={handleOpenRateMyProf} onClick={handleOpenRateMyProf}
disabled={instructors.length === 0} disabled={instructors.length === 0}
> >
@@ -192,19 +183,19 @@ export default function HeadingAndActions({ course, activeSchedule, onClose }: H
<Button <Button
variant='outline' variant='outline'
color='ut-teal' color='ut-teal'
icon={Mood} icon={Smiley}
onClick={handleOpenCES} onClick={handleOpenCES}
disabled={instructors.length === 0} disabled={instructors.length === 0}
> >
CES CES
</Button> </Button>
<Button variant='outline' color='ut-orange' icon={Description} onClick={handleOpenPastSyllabi}> <Button variant='outline' color='ut-orange' icon={FileText} onClick={handleOpenPastSyllabi}>
Past Syllabi Past Syllabi
</Button> </Button>
<Button <Button
variant='filled' variant='filled'
color={!courseAdded ? 'ut-green' : 'theme-red'} color={!courseAdded ? 'ut-green' : 'theme-red'}
icon={!courseAdded ? Add : Remove} icon={!courseAdded ? Plus : Minus}
onClick={handleAddOrRemoveCourse} onClick={handleAddOrRemoveCourse}
> >
{!courseAdded ? 'Add Course' : 'Remove Course'} {!courseAdded ? 'Add Course' : 'Remove Course'}

View File

@@ -1,3 +1,4 @@
import { ChartBar } from '@phosphor-icons/react';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import type { Course, ScrapedRow } from '@shared/types/Course'; import type { Course, ScrapedRow } from '@shared/types/Course';
import type { UserSchedule } from '@shared/types/UserSchedule'; import type { UserSchedule } from '@shared/types/UserSchedule';
@@ -6,8 +7,6 @@ import ExtensionRoot from '@views/components/common/ExtensionRoot/ExtensionRoot'
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import RowIcon from '~icons/material-symbols/bar-chart-rounded';
import styles from './TableRow.module.scss'; import styles from './TableRow.module.scss';
interface Props { interface Props {
@@ -119,7 +118,7 @@ export default function TableRow({ row, isSelected, activeSchedule, onClick }: P
className='m1 h-6 w-6 flex items-center justify-center rounded bg-ut-burntorange color-white!' className='m1 h-6 w-6 flex items-center justify-center rounded bg-ut-burntorange color-white!'
onClick={onClick} onClick={onClick}
> >
<RowIcon color='ut-white' /> <ChartBar className='text-ut-white h-4 w-4' weight='fill' />
</button> </button>
{conflicts.length > 0 && ( {conflicts.length > 0 && (
<ConflictsWithWarning <ConflictsWithWarning

View File

@@ -3,6 +3,7 @@ import { addCourseByURL } from '@pages/background/lib/addCourseByURL';
import { deleteAllSchedules } from '@pages/background/lib/deleteSchedule'; import { deleteAllSchedules } from '@pages/background/lib/deleteSchedule';
import exportSchedule from '@pages/background/lib/exportSchedule'; import exportSchedule from '@pages/background/lib/exportSchedule';
import importSchedule from '@pages/background/lib/importSchedule'; import importSchedule from '@pages/background/lib/importSchedule';
import { Trash } from '@phosphor-icons/react';
import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore';
import { UserScheduleStore } from '@shared/storage/UserScheduleStore'; import { UserScheduleStore } from '@shared/storage/UserScheduleStore';
import { downloadBlob } from '@shared/util/downloadBlob'; import { downloadBlob } from '@shared/util/downloadBlob';
@@ -26,9 +27,8 @@ import clsx from 'clsx';
import React, { useCallback, useEffect, useState } from 'react'; import React, { useCallback, useEffect, useState } from 'react';
import IconoirGitFork from '~icons/iconoir/git-fork'; import IconoirGitFork from '~icons/iconoir/git-fork';
// import { ExampleCourse } from 'src/stories/components/ConflictsWithWarning.stories';
import DeleteForeverIcon from '~icons/material-symbols/delete-forever';
// import { ExampleCourse } from 'src/stories/components/ConflictsWithWarning.stories';;
import FileUpload from '../common/FileUpload'; import FileUpload from '../common/FileUpload';
import { useMigrationDialog } from '../common/MigrationDialog'; import { useMigrationDialog } from '../common/MigrationDialog';
// import RefreshIcon from '~icons/material-symbols/refresh'; // import RefreshIcon from '~icons/material-symbols/refresh';
@@ -202,7 +202,7 @@ export default function Settings(): JSX.Element {
accept(); accept();
}} }}
> >
I Understand I Understand hello
</Button> </Button>
), ),
}); });
@@ -440,12 +440,7 @@ export default function Settings(): JSX.Element {
Erases all schedules and courses you have. Erases all schedules and courses you have.
</p> </p>
</div> </div>
<Button <Button variant='outline' color='theme-red' icon={Trash} onClick={handleEraseAll}>
variant='outline'
color='theme-red'
icon={DeleteForeverIcon}
onClick={handleEraseAll}
>
Erase All Erase All
</Button> </Button>
</div> </div>

View File

@@ -1,10 +1,9 @@
import { X } from '@phosphor-icons/react';
import ChangelogPopup from '@views/components/common/ChangelogPopup'; import ChangelogPopup from '@views/components/common/ChangelogPopup';
import Text from '@views/components/common/Text/Text'; import Text from '@views/components/common/Text/Text';
import { useDialog } from '@views/contexts/DialogContext'; import { useDialog } from '@views/contexts/DialogContext';
import React from 'react'; import React from 'react';
import MaterialSymbolsClose from '~icons/material-symbols/close';
import { Button } from '../components/common/Button'; import { Button } from '../components/common/Button';
/** /**
@@ -23,7 +22,7 @@ export default function useChangelog(): () => void {
Changelog Changelog
</Text> </Text>
<Button variant='single' onClick={close} color='theme-black' className='p-1 text-gray-700'> <Button variant='single' onClick={close} color='theme-black' className='p-1 text-gray-700'>
<MaterialSymbolsClose className='h-7 w-7' /> <X className='h-6 w-6' />
</Button> </Button>
</div> </div>
), ),