diff --git a/.husky/pre-push b/.husky/pre-push index b327d69413..538746270f 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - bash scripts/test.sh diff --git a/package.json b/package.json index 690edf84b6..daf22863f9 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "test-coveralls": "./scripts/test-coveralls.sh", "update-ui-snapshots": "jest --updateSnapshot", "eslint": "eslint --ext \".js,.jsx,.ts,.tsx\" src", - "prepare": "husky install" + "prepare": "husky" }, "dependencies": { "@blueprintjs/core": "^4.20.1", @@ -40,8 +40,8 @@ "@tremor/react": "^1.8.2", "ace-builds": "^1.4.14", "acorn": "^8.9.0", - "ag-grid-community": "^28.0.2", - "ag-grid-react": "^28.0.0", + "ag-grid-community": "^31.0.0", + "ag-grid-react": "^31.0.0", "array-move": "^4.0.0", "browserfs": "^1.4.3", "classnames": "^2.3.2", @@ -93,9 +93,10 @@ "yareco": "^0.1.5" }, "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@craco/craco": "^7.1.0", "@svgr/webpack": "^8.0.0", - "@testing-library/jest-dom": "^5.16.5", + "@testing-library/jest-dom": "^6.0.0", "@testing-library/react": "^14.0.0", "@testing-library/user-event": "^14.4.3", "@types/acorn": "^6.0.0", @@ -131,11 +132,11 @@ "cross-env": "^7.0.3", "eslint-plugin-simple-import-sort": "^10.0.0", "https-browserify": "^1.0.0", - "husky": "^8.0.2", + "husky": "^9.0.0", "npm-run-all": "^4.1.5", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", - "prettier": "^2.8.8", + "prettier": "~3.0.0", "process": "^0.11.10", "react-error-overlay": "^6.0.11", "react-scripts": "^5.0.1", diff --git a/src/commons/achievement/utils/AchievementBackender.ts b/src/commons/achievement/utils/AchievementBackender.ts index fed0709779..cb8bd4b951 100644 --- a/src/commons/achievement/utils/AchievementBackender.ts +++ b/src/commons/achievement/utils/AchievementBackender.ts @@ -31,7 +31,7 @@ export const frontendifyAchievementGoal = (goal: any) => count: goal.count, targetCount: goal.targetCount, completed: goal.count >= goal.targetCount - } as AchievementGoal); + }) as AchievementGoal; export const frontendifyAchievementItem = (achievement: any) => ({ @@ -51,7 +51,7 @@ export const frontendifyAchievementItem = (achievement: any) => completionText: achievement.view.completionText || '', description: achievement.view.description || '' } - } as AchievementItem); + }) as AchievementItem; export const backendifyAchievementItem = (achievement: AchievementItem) => ({ ...achievement, diff --git a/src/commons/sourceRecorder/SourceRecorderTable.tsx b/src/commons/sourceRecorder/SourceRecorderTable.tsx index 16bba8ecd8..7af56946ff 100644 --- a/src/commons/sourceRecorder/SourceRecorderTable.tsx +++ b/src/commons/sourceRecorder/SourceRecorderTable.tsx @@ -1,4 +1,4 @@ -import 'ag-grid-community/dist/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-grid.css'; import { Divider, @@ -56,7 +56,7 @@ class SourcecastTable extends React.Component { { headerName: 'Title', field: 'title', - cellRendererFramework: SourceRecorderSelectCell, + cellRenderer: SourceRecorderSelectCell, cellRendererParams: { handleSetSourcecastData: this.props.handleSetSourcecastData }, @@ -96,7 +96,7 @@ class SourcecastTable extends React.Component { { headerName: 'Share', field: 'uid', - cellRendererFramework: SourceRecorderShareCell, + cellRenderer: SourceRecorderShareCell, cellRendererParams: { courseId: this.props.courseId }, @@ -107,7 +107,7 @@ class SourcecastTable extends React.Component { { headerName: 'Delete', field: '', - cellRendererFramework: SourcastDeleteCell, + cellRenderer: SourcastDeleteCell, cellRendererParams: { handleDeleteSourcecastEntry: this.props.handleDeleteSourcecastEntry }, diff --git a/src/pages/academy/adminPanel/AdminPanel.tsx b/src/pages/academy/adminPanel/AdminPanel.tsx index 470e07c9be..1b6415219b 100644 --- a/src/pages/academy/adminPanel/AdminPanel.tsx +++ b/src/pages/academy/adminPanel/AdminPanel.tsx @@ -1,5 +1,5 @@ -import 'ag-grid-community/dist/styles/ag-grid.css'; -import 'ag-grid-community/dist/styles/ag-theme-balham.css'; +import 'ag-grid-community/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-theme-balham.css'; import { Button, Divider, H1, Intent, Tab, Tabs } from '@blueprintjs/core'; import { cloneDeep } from 'lodash'; diff --git a/src/pages/academy/adminPanel/subcomponents/AddStoriesUserPanel.tsx b/src/pages/academy/adminPanel/subcomponents/AddStoriesUserPanel.tsx index 569e132a2b..96752de472 100644 --- a/src/pages/academy/adminPanel/subcomponents/AddStoriesUserPanel.tsx +++ b/src/pages/academy/adminPanel/subcomponents/AddStoriesUserPanel.tsx @@ -72,7 +72,7 @@ const AddStoriesUserPanel: React.FC = props => { onGridSizeChanged={() => gridApi.current?.sizeColumnsToFit()} rowData={users} rowHeight={36} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} pagination /> diff --git a/src/pages/academy/adminPanel/subcomponents/AddUserPanel.tsx b/src/pages/academy/adminPanel/subcomponents/AddUserPanel.tsx index 80ed57f3c5..13637fbf66 100644 --- a/src/pages/academy/adminPanel/subcomponents/AddUserPanel.tsx +++ b/src/pages/academy/adminPanel/subcomponents/AddUserPanel.tsx @@ -72,7 +72,7 @@ const AddUserPanel: React.FC = props => { onGridSizeChanged={() => gridApi.current?.sizeColumnsToFit()} rowData={users} rowHeight={36} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} pagination /> diff --git a/src/pages/academy/adminPanel/subcomponents/NotificationConfigPanel.tsx b/src/pages/academy/adminPanel/subcomponents/NotificationConfigPanel.tsx index d687bb795c..034b56ab43 100644 --- a/src/pages/academy/adminPanel/subcomponents/NotificationConfigPanel.tsx +++ b/src/pages/academy/adminPanel/subcomponents/NotificationConfigPanel.tsx @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import { Button, H2, Intent } from '@blueprintjs/core'; -import { GridApi, GridReadyEvent, ValueFormatterFunc } from 'ag-grid-community'; +import { ColDef, GridApi, GridReadyEvent, ValueFormatterFunc } from 'ag-grid-community'; import { AgGridReact } from 'ag-grid-react'; import { cloneDeep } from 'lodash'; import React, { useEffect, useState } from 'react'; @@ -94,7 +94,7 @@ const NotificationConfigPanel = () => { return params.data!.notificationType.forStaff ? 'Staff' : 'Student'; }; - const columnDefs = [ + const columnDefs: ColDef[] = [ { headerName: 'Notification Type', field: 'notificationType.name', @@ -122,7 +122,7 @@ const NotificationConfigPanel = () => { { headerName: 'Reminder Time Options (hours)', field: 'timeOptions', - cellRendererFramework: TimeOptionCell, + cellRenderer: TimeOptionCell, cellRendererParams: { setStateHandler: setTimeOptions, setDelete: addTimeOptionsToDelete, @@ -132,7 +132,7 @@ const NotificationConfigPanel = () => { { headerName: 'Default Reminder (hours)', field: 'timeOptions', - cellRendererFramework: SelectCell, + cellRenderer: SelectCell, cellRendererParams: { setStateHandler: setTimeOptions, field: 'timeOptions' @@ -141,7 +141,7 @@ const NotificationConfigPanel = () => { { headerName: 'Enabled', field: 'isEnabled', - cellRendererFramework: BooleanCell, + cellRenderer: BooleanCell, cellRendererParams: { setStateHandler: setIsEnabled, field: 'isEnabled' @@ -199,7 +199,7 @@ const NotificationConfigPanel = () => { rowData={notificationConfig.current} rowHeight={36} rowDragManaged={true} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} suppressPaginationPanel={true} /> diff --git a/src/pages/academy/adminPanel/subcomponents/assessmentConfigPanel/AssessmentConfigPanel.tsx b/src/pages/academy/adminPanel/subcomponents/assessmentConfigPanel/AssessmentConfigPanel.tsx index f7ae3efde6..5c58c045ad 100644 --- a/src/pages/academy/adminPanel/subcomponents/assessmentConfigPanel/AssessmentConfigPanel.tsx +++ b/src/pages/academy/adminPanel/subcomponents/assessmentConfigPanel/AssessmentConfigPanel.tsx @@ -1,5 +1,11 @@ import { Button, H2 } from '@blueprintjs/core'; -import { CellValueChangedEvent, GridApi, GridReadyEvent, RowDragEvent } from 'ag-grid-community'; +import { + CellValueChangedEvent, + ColDef, + GridApi, + GridReadyEvent, + RowDragEvent +} from 'ag-grid-community'; import { AgGridReact } from 'ag-grid-react'; import { isEqual } from 'lodash'; import React from 'react'; @@ -95,7 +101,7 @@ const AssessmentConfigPanel: React.FC = props => { setAssessmentConfigsToDelete(deleted[0]); }; - const columnDefs = [ + const columnDefs: ColDef[] = [ { headerName: 'Assessment Type', field: 'type', @@ -105,7 +111,7 @@ const AssessmentConfigPanel: React.FC = props => { { headerName: 'Is Manually Graded', field: 'isManuallyGraded', - cellRendererFramework: BooleanCell, + cellRenderer: BooleanCell, cellRendererParams: { setStateHandler: setIsManuallyGraded, field: 'isManuallyGraded' @@ -114,7 +120,7 @@ const AssessmentConfigPanel: React.FC = props => { { headerName: 'Display in Dashboard', field: 'displayInDashboard', - cellRendererFramework: BooleanCell, + cellRenderer: BooleanCell, cellRendererParams: { setStateHandler: setDisplayInDashboard, field: 'displayInDashboard' @@ -123,7 +129,7 @@ const AssessmentConfigPanel: React.FC = props => { { headerName: 'Max Bonus XP', field: 'earlySubmissionXp', - cellRendererFramework: NumericCell, + cellRenderer: NumericCell, cellRendererParams: { setStateHandler: setEarlyXp, field: 'earlySubmissionXp' @@ -132,7 +138,7 @@ const AssessmentConfigPanel: React.FC = props => { { headerName: 'Early Hours Before Decay', field: 'hoursBeforeEarlyXpDecay', - cellRendererFramework: NumericCell, + cellRenderer: NumericCell, cellRendererParams: { setStateHandler: setHoursBeforeDecay, field: 'hoursBeforeEarlyXpDecay' @@ -141,7 +147,7 @@ const AssessmentConfigPanel: React.FC = props => { { headerName: 'Delete Row', field: 'placeholderToPreventColumnRerender', - cellRendererFramework: DeleteRowCell, + cellRenderer: DeleteRowCell, cellRendererParams: { deleteRowHandler: deleteRowHandler }, @@ -177,7 +183,7 @@ const AssessmentConfigPanel: React.FC = props => { ); // Updates the data passed into ag-grid (this is necessary to update the rowIndex in our custom - // cellRendererFramework) + // cellRenderer) const onRowDragLeaveOrEnd = (event: RowDragEvent) => { gridApi.current?.setRowData(assessmentConfig.current); props.setHasChangesAssessmentConfig(true); @@ -212,7 +218,7 @@ const AssessmentConfigPanel: React.FC = props => { rowData={props.assessmentConfig.current} rowHeight={36} rowDragManaged={true} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} suppressPaginationPanel={true} onRowDragMove={onRowDragMove} diff --git a/src/pages/academy/adminPanel/subcomponents/userConfigPanel/UserConfigPanel.tsx b/src/pages/academy/adminPanel/subcomponents/userConfigPanel/UserConfigPanel.tsx index 51c8dc7e0f..8d88ade90d 100644 --- a/src/pages/academy/adminPanel/subcomponents/userConfigPanel/UserConfigPanel.tsx +++ b/src/pages/academy/adminPanel/subcomponents/userConfigPanel/UserConfigPanel.tsx @@ -48,7 +48,7 @@ const UserConfigPanel: React.FC = props => { { headerName: 'Role', field: 'role', - cellRendererFramework: RolesCell, + cellRenderer: RolesCell, cellRendererParams: { courseRegId: props.courseRegId, handleUpdateUserRole: props.handleUpdateUserRole @@ -58,7 +58,7 @@ const UserConfigPanel: React.FC = props => { { headerName: 'Actions', field: 'actions', - cellRendererFramework: UserActionsCell, + cellRenderer: UserActionsCell, cellRendererParams: { handleDeleteUserFromCourse: props.handleDeleteUserFromCourse }, @@ -88,7 +88,7 @@ const UserConfigPanel: React.FC = props => { onGridSizeChanged={() => gridApi.current?.sizeColumnsToFit()} rowData={userCourseRegistrations} rowHeight={36} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} pagination /> diff --git a/src/pages/academy/dashboard/Dashboard.tsx b/src/pages/academy/dashboard/Dashboard.tsx index 4b6fbb81b0..0446efc0ab 100644 --- a/src/pages/academy/dashboard/Dashboard.tsx +++ b/src/pages/academy/dashboard/Dashboard.tsx @@ -1,5 +1,5 @@ -import 'ag-grid-community/dist/styles/ag-grid.css'; -import 'ag-grid-community/dist/styles/ag-theme-balham.css'; +import 'ag-grid-community/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-theme-balham.css'; import { ColDef, GridApi, GridReadyEvent } from 'ag-grid-community'; import { AgGridReact } from 'ag-grid-react'; @@ -55,7 +55,7 @@ const Dashboard: React.FC = props => { onGridSizeChanged={resizeGrid} rowData={gradingSummary.rows} rowHeight={30} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} /> diff --git a/src/pages/academy/groundControl/GroundControl.tsx b/src/pages/academy/groundControl/GroundControl.tsx index 20b5f49a1e..06a09c2af8 100644 --- a/src/pages/academy/groundControl/GroundControl.tsx +++ b/src/pages/academy/groundControl/GroundControl.tsx @@ -1,5 +1,5 @@ -import 'ag-grid-community/dist/styles/ag-grid.css'; -import 'ag-grid-community/dist/styles/ag-theme-balham.css'; +import 'ag-grid-community/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-theme-balham.css'; import { Button, Collapse, Divider, Intent } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; @@ -75,7 +75,7 @@ class GroundControl extends React.Component { inRangeInclusive: true }, sortingOrder: ['desc', 'asc', null], - cellRendererFramework: EditCell, + cellRenderer: EditCell, cellRendererParams: { handleAssessmentChangeDate: this.props.handleAssessmentChangeDate, forOpenDate: true @@ -91,7 +91,7 @@ class GroundControl extends React.Component { inRangeInclusive: true }, sortingOrder: ['desc', 'asc', null], - cellRendererFramework: EditCell, + cellRenderer: EditCell, cellRendererParams: { handleAssessmentChangeDate: this.props.handleAssessmentChangeDate, forOpenDate: false @@ -101,7 +101,7 @@ class GroundControl extends React.Component { { headerName: 'Publish', field: '', - cellRendererFramework: PublishCell, + cellRenderer: PublishCell, cellRendererParams: { handlePublishAssessment: this.props.handlePublishAssessment }, @@ -116,7 +116,7 @@ class GroundControl extends React.Component { { headerName: 'Delete', field: '', - cellRendererFramework: DeleteCell, + cellRenderer: DeleteCell, cellRendererParams: { handleDeleteAssessment: this.props.handleDeleteAssessment }, @@ -174,7 +174,7 @@ class GroundControl extends React.Component { onGridSizeChanged={this.resizeGrid} rowData={this.props.assessmentOverviews} rowHeight={30} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} suppressPaginationPanel={true} /> diff --git a/src/pages/academy/notiPreference/NotiPreference.tsx b/src/pages/academy/notiPreference/NotiPreference.tsx index 578a2c54cc..bc32b2981a 100644 --- a/src/pages/academy/notiPreference/NotiPreference.tsx +++ b/src/pages/academy/notiPreference/NotiPreference.tsx @@ -1,5 +1,5 @@ import { Button, H1, Intent } from '@blueprintjs/core'; -import { GridApi, GridReadyEvent, ValueFormatterFunc } from 'ag-grid-community'; +import { ColDef, GridApi, GridReadyEvent, ValueFormatterFunc } from 'ag-grid-community'; import { AgGridReact } from 'ag-grid-react'; import { cloneDeep } from 'lodash'; import React, { useState } from 'react'; @@ -87,7 +87,7 @@ const NotiPreference: React.FC = () => { return params.data!.notificationType.forStaff ? 'Staff' : 'Student'; }; - const columnDefs = [ + const columnDefs: ColDef[] = [ { headerName: 'Notification Type', field: 'notificationType.name', @@ -106,7 +106,7 @@ const NotiPreference: React.FC = () => { { headerName: 'Reminder', field: 'timeOptions', - cellRendererFramework: SelectCell, + cellRenderer: SelectCell, cellRendererParams: { setStateHandler: setTimeOption, field: 'timeOptions' @@ -115,7 +115,7 @@ const NotiPreference: React.FC = () => { { headerName: 'Enabled', field: 'notificationPreference.isEnabled', - cellRendererFramework: BooleanCell, + cellRenderer: BooleanCell, cellRendererParams: { setStateHandler: setIsEnabled, field: 'notificationPreference.isEnabled' @@ -162,7 +162,7 @@ const NotiPreference: React.FC = () => { rowData={configurableNotificationConfigs.current} rowHeight={36} rowDragManaged={true} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} suppressPaginationPanel={true} /> diff --git a/src/pages/academy/xpCalculation/XpCalculation.tsx b/src/pages/academy/xpCalculation/XpCalculation.tsx index 0af83d6879..383df0cb88 100644 --- a/src/pages/academy/xpCalculation/XpCalculation.tsx +++ b/src/pages/academy/xpCalculation/XpCalculation.tsx @@ -1,5 +1,5 @@ -import 'ag-grid-community/dist/styles/ag-grid.css'; -import 'ag-grid-community/dist/styles/ag-theme-balham.css'; +import 'ag-grid-community/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-theme-balham.css'; import { Button, Divider, NonIdealState, Spinner, SpinnerSize } from '@blueprintjs/core'; import { IconNames } from '@blueprintjs/icons'; @@ -201,7 +201,7 @@ const XpCalculation: React.FC = () => { rowHeight={30} pagination={true} paginationPageSize={20} - suppressCellSelection={true} + suppressCellFocus={true} suppressMovableColumns={true} suppressPaginationPanel={true} /> diff --git a/src/setupTests.ts b/src/setupTests.ts index 76c28e4cfc..325a68de3a 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -1,4 +1,4 @@ -import '@testing-library/jest-dom/extend-expect'; +import '@testing-library/jest-dom'; // Mock ResizeObserver in tests global.ResizeObserver = require('resize-observer-polyfill'); diff --git a/src/styles/_academy.scss b/src/styles/_academy.scss index e504c33ba0..61f33c5d17 100644 --- a/src/styles/_academy.scss +++ b/src/styles/_academy.scss @@ -413,8 +413,11 @@ height: 100px; background-color: #f5f5f5; border-radius: 3px; - box-shadow: 0 0 0 0 rgb(19 124 189 / 0%), 0 0 0 0 rgb(19 124 189 / 0%), - inset 0 0 0 1px rgb(16 22 26 / 15%), inset 0 1px 1px rgb(16 22 26 / 20%); + box-shadow: + 0 0 0 0 rgb(19 124 189 / 0%), + 0 0 0 0 rgb(19 124 189 / 0%), + inset 0 0 0 1px rgb(16 22 26 / 15%), + inset 0 1px 1px rgb(16 22 26 / 20%); overflow: auto; text-align: left; } diff --git a/src/styles/_dropdown.scss b/src/styles/_dropdown.scss index 95a8672d66..702f3f84bc 100644 --- a/src/styles/_dropdown.scss +++ b/src/styles/_dropdown.scss @@ -213,8 +213,11 @@ height: 100px; background-color: #f5f5f5; border-radius: 3px; - box-shadow: 0 0 0 0 rgb(19 124 189 / 0%), 0 0 0 0 rgb(19 124 189 / 0%), - inset 0 0 0 1px rgb(16 22 26 / 15%), inset 0 1px 1px rgb(16 22 26 / 20%); + box-shadow: + 0 0 0 0 rgb(19 124 189 / 0%), + 0 0 0 0 rgb(19 124 189 / 0%), + inset 0 0 0 1px rgb(16 22 26 / 15%), + inset 0 1px 1px rgb(16 22 26 / 20%); overflow: auto; } diff --git a/src/styles/_mobileworkspace.scss b/src/styles/_mobileworkspace.scss index d415e8da9b..82096cd671 100644 --- a/src/styles/_mobileworkspace.scss +++ b/src/styles/_mobileworkspace.scss @@ -78,7 +78,9 @@ $shadow-light: rgba(0, 0, 0, 0.2); display: flex; overflow: hidden; opacity: 0.8; // initial value, toggled by floating-toggle to 1 or 0.6 - transition: width 0.8s, opacity 1.2s; + transition: + width 0.8s, + opacity 1.2s; button { height: 50px; @@ -206,7 +208,10 @@ $shadow-light: rgba(0, 0, 0, 0.2); word-wrap: break-word; word-break: break-word; - font: 16px / normal 'Inconsolata', 'Consolas', monospace; + font: + 16px / normal 'Inconsolata', + 'Consolas', + monospace; } } } @@ -248,7 +253,9 @@ $shadow-light: rgba(0, 0, 0, 0.2); background-color: $cadet-color-1; position: absolute; bottom: 0; - box-shadow: 0 -4px 8px $shadow-dark, 0 -6px 16px $shadow-light, + box-shadow: + 0 -4px 8px $shadow-dark, + 0 -6px 16px $shadow-light, inset 0 14px 14px -16px rgba(206, 217, 224, 0.1); .mobile-side-content { @@ -270,7 +277,9 @@ $shadow-light: rgba(0, 0, 0, 0.2); bottom: calc(var(--mobile-repl-height, 0px) * -1); background-color: $cadet-color-3; border-radius: 5px; - box-shadow: 0 0px 8px $shadow-dark, 0 0 16px $shadow-light; + box-shadow: + 0 0px 8px $shadow-dark, + 0 0 16px $shadow-light; transition: 0.3s cubic-bezier(0.3, 0.9, 0.68, 1); .handle { @@ -281,7 +290,8 @@ $shadow-light: rgba(0, 0, 0, 0.2); height: 14px; width: 100%; background-color: $cadet-color-1; - box-shadow: inset 0 8px 6px -8px rgba(206, 217, 224, 0.1), + box-shadow: + inset 0 8px 6px -8px rgba(206, 217, 224, 0.1), inset 0 -8px 6px -8px rgba(206, 217, 224, 0.2); .circle { @@ -307,12 +317,15 @@ $shadow-light: rgba(0, 0, 0, 0.2); overflow: auto; // showing top shadow only when scroll down - background: linear-gradient($cadet-color-3 100%, rgba(44, 62, 80, 0)), + background: + linear-gradient($cadet-color-3 100%, rgba(44, 62, 80, 0)), // cover up initial shadow radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 1) 10%, rgba(44, 62, 80, 0)); background-repeat: no-repeat; background-color: $cadet-color-3; - background-size: 100% 20px, 100% 20px; + background-size: + 100% 20px, + 100% 20px; background-attachment: local, scroll; .#{$ns}-card { diff --git a/src/styles/_workspace.scss b/src/styles/_workspace.scss index dd7eca7a22..5bd5033131 100755 --- a/src/styles/_workspace.scss +++ b/src/styles/_workspace.scss @@ -458,7 +458,10 @@ $code-color-error: #ff4444; * output. Taken from react-ace * sourcecode, font size modified. */ - font: 16px / normal 'Inconsolata', 'Consolas', monospace; + font: + 16px / normal 'Inconsolata', + 'Consolas', + monospace; .canvas-container { display: -webkit-box; @@ -786,7 +789,10 @@ $code-color-error: #ff4444; * output. Taken from react-ace * sourcecode, font size modified. */ - font: 16px / normal 'Inconsolata', 'Consolas', monospace; + font: + 16px / normal 'Inconsolata', + 'Consolas', + monospace; } .code-output { @@ -1186,11 +1192,15 @@ $code-color-error: #ff4444; } &.correct.secret > .#{$ns}-card { - animation: 4s correct, 4s private-revert 4s forwards; + animation: + 4s correct, + 4s private-revert 4s forwards; } &.wrong.secret > .#{$ns}-card { - animation: 4s wrong, 4s private-revert 4s forwards; + animation: + 4s wrong, + 4s private-revert 4s forwards; } } @@ -1265,11 +1275,15 @@ $code-color-error: #ff4444; } &.correct.secret > .#{$ns}-card { - animation: 4s correct, 4s private-revert 4s forwards; + animation: + 4s correct, + 4s private-revert 4s forwards; } &.wrong.secret > .#{$ns}-card { - animation: 4s wrong, 4s private-revert 4s forwards; + animation: + 4s wrong, + 4s private-revert 4s forwards; } } diff --git a/yarn.lock b/yarn.lock index 87c4a26617..4ab10ad30e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@adobe/css-tools@^4.0.1": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" - integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== +"@adobe/css-tools@^4.3.2": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== "@ampproject/remapping@^2.2.0": version "2.2.0" @@ -755,6 +755,16 @@ "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@^7.21.11": + version "7.21.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c" + integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" @@ -2350,13 +2360,6 @@ dependencies: jest-get-type "^28.0.2" -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== - dependencies: - jest-get-type "^29.4.3" - "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" @@ -2416,13 +2419,6 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== - dependencies: - "@sinclair/typebox" "^0.25.16" - "@jest/source-map@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" @@ -2506,18 +2502,6 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== - dependencies: - "@jest/schemas" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@joeychenofficial/alt-ergo-modified@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@joeychenofficial/alt-ergo-modified/-/alt-ergo-modified-2.4.0.tgz#27aec0cbed8ab4e2f0dad6feb4f0c9766ac3132f" @@ -2957,11 +2941,6 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== - "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -3247,18 +3226,17 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.16.5": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== +"@testing-library/jest-dom@^6.0.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.3.0.tgz#e8d308e0c0e91d882340cbbfdea0e4daa7987d36" + integrity sha512-hJVIrkFizEQxoWsGBlycTcQhrpoCH4DhXfrnHFFXgkx3Xdm15zycsq5Ep+vpw4W8S0NJa8cxDHcuJib+1tEbhg== dependencies: - "@adobe/css-tools" "^4.0.1" + "@adobe/css-tools" "^4.3.2" "@babel/runtime" "^7.9.2" - "@types/testing-library__jest-dom" "^5.9.1" aria-query "^5.0.0" chalk "^3.0.0" css.escape "^1.5.1" - dom-accessibility-api "^0.5.6" + dom-accessibility-api "^0.6.3" lodash "^4.17.15" redent "^3.0.0" @@ -3639,14 +3617,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@*": - version "29.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" - integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - "@types/jest@^28.1.6": version "28.1.8" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.8.tgz#6936409f3c9724ea431efd412ea0238a0f03b09b" @@ -3885,13 +3855,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/testing-library__jest-dom@^5.9.1": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" - integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== - dependencies: - "@types/jest" "*" - "@types/trusted-types@^2.0.2": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" @@ -4300,16 +4263,17 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -ag-grid-community@^28.0.2: - version "28.2.1" - resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-28.2.1.tgz#50778cb2254ee79497222781909d8364007dd91e" - integrity sha512-DMZh/xD/FqYP17qJ1M92PolTYe+hrKuEaf+A4h13O6qn2x/xZQrTRGW5DgnQLR/uLMe1XXZQPKR3UKgAlKo69A== +ag-grid-community@^31.0.0, ag-grid-community@~31.0.3: + version "31.0.3" + resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-31.0.3.tgz#80870881a3be03aa5df890b4a70409ef5d781e7f" + integrity sha512-k81YmLaOQOab9BavYD+Pw2smZSl6TXOJqj9hRuf70XQl3EknOHCGcra7joJxZRJLMKE/HdR+u33TNyX4TCuWfg== -ag-grid-react@^28.0.0: - version "28.2.1" - resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-28.2.1.tgz#c38585b8f165a5cf9343eab6994c06855f5b2caf" - integrity sha512-3vbw+B77uWwAyiOJxQA5U+PQFRCCccUx7L5PIwrnA4Y7c1yAu8sB65hAZdBc9kuW26iltwv7asq0UzP7UAQUpg== +ag-grid-react@^31.0.0: + version "31.0.3" + resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-31.0.3.tgz#4f9634129f37bd59de34529d62dff158115ca225" + integrity sha512-CE4Z5Rdb0H3MFBhmge9854AyDvI4DoG7ZoUJRFB1p2pu5ANVe6tv7cwEI/ugHemEXRRP6s5uvW+ndv0Q6x1/+Q== dependencies: + ag-grid-community "~31.0.3" prop-types "^15.8.1" agent-base@6, agent-base@^6.0.2: @@ -6360,11 +6324,6 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -6408,11 +6367,16 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: +dom-accessibility-api@^0.5.9: version "0.5.16" resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -7139,17 +7103,6 @@ expect@^28.0.0: jest-message-util "^28.1.3" jest-util "^28.1.3" -expect@^29.0.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== - dependencies: - "@jest/expect-utils" "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - exponential-backoff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" @@ -8154,10 +8107,10 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^8.0.2: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +husky@^9.0.0: + version "9.0.6" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.6.tgz#cee0245d60480b12279cf492ec6cfc1aeb7fa759" + integrity sha512-EEuw/rfTiMjOfuL7pGO/i9otg1u36TXxqjIA6D9qxVjd/UXoDOsLor/BSFf5hTK50shwzCU3aVVwdXDp/lp7RA== hyphenate-style-name@^1.0.0: version "1.0.4" @@ -8780,16 +8733,6 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" - jest-docblock@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" @@ -8843,11 +8786,6 @@ jest-get-type@^28.0.2: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== - jest-haste-map@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" @@ -8919,16 +8857,6 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== - dependencies: - chalk "^4.0.0" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - pretty-format "^29.5.0" - jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" @@ -8959,21 +8887,6 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.5.0" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" @@ -9137,18 +9050,6 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - jest-validate@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" @@ -11485,10 +11386,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier@^2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@~3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" + integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -11522,15 +11423,6 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== - dependencies: - "@jest/schemas" "^29.4.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - prismjs@^1.27.0: version "1.29.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"