From 1f596f8f1c246ac2845dabb77a0c9b9aa9946960 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Sun, 12 Jun 2022 20:52:42 -0500 Subject: [PATCH 01/10] Created slice, store, and hooks. Started adding them into the calender component. --- package.json | 3 + src/app/hooks.ts | 5 ++ src/app/store.ts | 11 +++ src/components/calender/index.tsx | 10 ++- src/features/calender/calender.ts | 46 ++++++++++ src/pages/index.tsx | 10 ++- yarn.lock | 143 +++++++++++++++++++++++++++++- 7 files changed, 222 insertions(+), 6 deletions(-) create mode 100644 src/app/hooks.ts create mode 100644 src/app/store.ts create mode 100644 src/features/calender/calender.ts diff --git a/package.json b/package.json index cc41445..2aa1ef3 100644 --- a/package.json +++ b/package.json @@ -20,17 +20,20 @@ "@emotion/react": "^11.9.0", "@emotion/styled": "^11.8.1", "@iconify/react": "^3.2.2", + "@reduxjs/toolkit": "^1.8.2", "date-fns": "^2.28.0", "formik": "^2.2.9", "framer-motion": "^6.3.10", "next": "12.1.6", "react": "^18.1.0", "react-dom": "^18.1.0", + "react-redux": "^8.0.2", "sharp": "^0.30.6" }, "devDependencies": { "@types/node": "^17.0.40", "@types/react": "^18.0.12", + "@types/react-redux": "^7.1.24", "@typescript-eslint/eslint-plugin": "^5.27.0", "eslint": "^8.17.0", "eslint-config-next": "^12.1.6", diff --git a/src/app/hooks.ts b/src/app/hooks.ts new file mode 100644 index 0000000..e2a4fed --- /dev/null +++ b/src/app/hooks.ts @@ -0,0 +1,5 @@ +import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; +import { RootState, AppDispatch } from "./store"; + +export const useAppDiscpatch = () => useDispatch(); +export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/src/app/store.ts b/src/app/store.ts new file mode 100644 index 0000000..8b88779 --- /dev/null +++ b/src/app/store.ts @@ -0,0 +1,11 @@ +import { configureStore } from "@reduxjs/toolkit"; +import calenderReducer from "../features/calender/calender"; + +export const store = configureStore({ + reducer: { + calender: calenderReducer + } +}); + +export type AppDispatch = typeof store.dispatch; +export type RootState = ReturnType; diff --git a/src/components/calender/index.tsx b/src/components/calender/index.tsx index 4d51000..6008304 100644 --- a/src/components/calender/index.tsx +++ b/src/components/calender/index.tsx @@ -1,13 +1,19 @@ import React, { useContext, useEffect } from "react"; import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; import { isSameDay, format } from "date-fns"; +import { useAppDiscpatch, useAppSelector } from "../../app/hooks"; +import { updateCurrDate, updateMonth } from '../../features/calender/calender'; import { CalenderContext } from "../../../contexts/CalenderContext"; import { StickersContext } from "../../../contexts/StickerContext"; import CalenderNav from "./CalenderNav"; import Day from "./Day"; const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { - const { selectedDate, layout, updateDate, currDate, setCurrDate } = + const currDate: Date = useAppSelector(state => state.calender.currDate); + const seletedMonth = useAppSelector(state => state.calender.selectedDateInfo); + + + const { selectedDate, layout, updateDate,/* currDate, */setCurrDate } = useContext(CalenderContext); const { stickersMonth } = useContext(StickersContext); @@ -106,7 +112,7 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { id.length ? id : format(date, "yyyyddLL") + - `/${sticker === null ? 0 : sticker}` + `/${sticker === null ? 0 : sticker}` } /> ); diff --git a/src/features/calender/calender.ts b/src/features/calender/calender.ts new file mode 100644 index 0000000..d8acd6b --- /dev/null +++ b/src/features/calender/calender.ts @@ -0,0 +1,46 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { format } from "date-fns"; + +interface CalenderSlice { + currDate: Date; + selectedDateInfo: { + selectedDate: Date; + title: string; + layout: MonthLayout; + }; +} + +const getCurrDate = (): Date => new Date(); +const dateFormatter = (date: Date): string => format(date, "LLLL uuuu"); + +const initialState: CalenderSlice = { + currDate: getCurrDate(), + selectedDateInfo: { + selectedDate: getCurrDate(), + title: dateFormatter(new Date()), + layout: {} as MonthLayout + } +}; + +const calenderSlice = createSlice({ + name: "Calender", + initialState, + reducers: { + // Populate month + // Update month info + updateMonth(state: CalenderSlice, action: PayloadAction) { + const { payload: newDate } = action; + + state.selectedDateInfo.selectedDate = newDate; + state.selectedDateInfo.title = dateFormatter(newDate); + // ! Add the layout formatter function + }, + // Update current date + updateCurrDate(state: CalenderSlice) { + state.currDate = new Date(); + } + } +}); + +export const { updateMonth, updateCurrDate } = calenderSlice.actions; +export default calenderSlice.reducer; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index ce26844..2b12185 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,9 +1,11 @@ import React, { useRef } from "react"; import { Box } from "@chakra-ui/react"; -import Calender from "../components/calender"; +import { format } from "date-fns"; +import { Provider } from "react-redux"; +import { store } from "../app/store"; import { StickersContextProvider } from "../../contexts/StickerContext"; import { CalenderContextProvider } from "../../contexts/CalenderContext"; -import { format } from "date-fns"; +import Calender from "../components/calender"; const IndexPage = (): JSX.Element => { const date = useRef({ @@ -16,7 +18,9 @@ const IndexPage = (): JSX.Element => { - + + + diff --git a/yarn.lock b/yarn.lock index 28743f9..6f4bb5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,6 +78,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.9.2": + version: 7.18.3 + resolution: "@babel/runtime@npm:7.18.3" + dependencies: + regenerator-runtime: ^0.13.4 + checksum: db8526226aa02cfa35a5a7ac1a34b5f303c62a1f000c7db48cb06c6290e616483e5036ab3c4e7a84d0f3be6d4e2148d5fe5cec9564bf955f505c3e764b83d7f1 + languageName: node + linkType: hard + "@babel/types@npm:^7.16.7": version: 7.17.0 resolution: "@babel/types@npm:7.17.0" @@ -1315,6 +1324,26 @@ __metadata: languageName: node linkType: hard +"@reduxjs/toolkit@npm:^1.8.2": + version: 1.8.2 + resolution: "@reduxjs/toolkit@npm:1.8.2" + dependencies: + immer: ^9.0.7 + redux: ^4.1.2 + redux-thunk: ^2.4.1 + reselect: ^4.1.5 + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.0.0-beta + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + checksum: bd94e6d5c469f841c59e7d74e3fc60681c023ccdc6367005a9b04c252990d103bba438b2aea82f6e3db697486b32f4a5fb0d4bb6208af6119e5028c2ee626198 + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.1.3": version: 1.1.3 resolution: "@rushstack/eslint-patch@npm:1.1.3" @@ -1329,6 +1358,16 @@ __metadata: languageName: node linkType: hard +"@types/hoist-non-react-statics@npm:^3.3.0, @types/hoist-non-react-statics@npm:^3.3.1": + version: 3.3.1 + resolution: "@types/hoist-non-react-statics@npm:3.3.1" + dependencies: + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -1380,6 +1419,18 @@ __metadata: languageName: node linkType: hard +"@types/react-redux@npm:^7.1.24": + version: 7.1.24 + resolution: "@types/react-redux@npm:7.1.24" + dependencies: + "@types/hoist-non-react-statics": ^3.3.0 + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + redux: ^4.0.0 + checksum: 6582246581331ac7fbbd44aa1f1c136c8a9c8febbcf462432ac81302263308c21e1a2e7868beb7f73bbcb52a8e67935d133cb37f5bdcb6564eaff3a811805101 + languageName: node + linkType: hard + "@types/react@npm:^17.0.38": version: 17.0.44 resolution: "@types/react@npm:17.0.44" @@ -1398,6 +1449,13 @@ __metadata: languageName: node linkType: hard +"@types/use-sync-external-store@npm:^0.0.3": + version: 0.0.3 + resolution: "@types/use-sync-external-store@npm:0.0.3" + checksum: 161ddb8eec5dbe7279ac971531217e9af6b99f7783213566d2b502e2e2378ea19cf5e5ea4595039d730aa79d3d35c6567d48599f69773a02ffcff1776ec2a44e + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^5.27.0": version: 5.27.0 resolution: "@typescript-eslint/eslint-plugin@npm:5.27.0" @@ -3168,7 +3226,7 @@ __metadata: languageName: node linkType: hard -"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1": +"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: @@ -3237,6 +3295,13 @@ __metadata: languageName: node linkType: hard +"immer@npm:^9.0.7": + version: 9.0.14 + resolution: "immer@npm:9.0.14" + checksum: 17f1365c06d653e672a4f609f08e7203e9ab4b4284818332d6ca9b3f3577a0e3c0066ca7933b636fbae560df79a4b3fde70ed717ce3c6e95c39bf3d5861d5be9 + languageName: node + linkType: hard + "import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -3665,8 +3730,10 @@ __metadata: "@emotion/react": ^11.9.0 "@emotion/styled": ^11.8.1 "@iconify/react": ^3.2.2 + "@reduxjs/toolkit": ^1.8.2 "@types/node": ^17.0.40 "@types/react": ^18.0.12 + "@types/react-redux": ^7.1.24 "@typescript-eslint/eslint-plugin": ^5.27.0 date-fns: ^2.28.0 eslint: ^8.17.0 @@ -3681,6 +3748,7 @@ __metadata: prettier: ^2.6.2 react: ^18.1.0 react-dom: ^18.1.0 + react-redux: ^8.0.2 sharp: ^0.30.6 typescript: ^4.7.3 languageName: unknown @@ -4442,6 +4510,45 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^18.0.0": + version: 18.1.0 + resolution: "react-is@npm:18.1.0" + checksum: d206a0fe6790851bff168727bfb896de02c5591695afb0c441163e8630136a3e13ee1a7ddd59fdccddcc93968b4721ae112c10f790b194b03b35a3dc13a355ef + languageName: node + linkType: hard + +"react-redux@npm:^8.0.2": + version: 8.0.2 + resolution: "react-redux@npm:8.0.2" + dependencies: + "@babel/runtime": ^7.12.1 + "@types/hoist-non-react-statics": ^3.3.1 + "@types/use-sync-external-store": ^0.0.3 + hoist-non-react-statics: ^3.3.2 + react-is: ^18.0.0 + use-sync-external-store: ^1.0.0 + peerDependencies: + "@types/react": ^16.8 || ^17.0 || ^18.0 + "@types/react-dom": ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: ">=0.59" + redux: ^4 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + react-dom: + optional: true + react-native: + optional: true + redux: + optional: true + checksum: 44c1739c45dad04ecc65a290897c73828ff0bf43f2b7618ed5ef6d4ceecedae38e76cecd189a5ecedf579c28ead05427bc000fb45ad30b9fcd5c2be27cd3ac73 + languageName: node + linkType: hard + "react-remove-scroll-bar@npm:^2.3.1": version: 2.3.1 resolution: "react-remove-scroll-bar@npm:2.3.1" @@ -4529,6 +4636,24 @@ __metadata: languageName: node linkType: hard +"redux-thunk@npm:^2.4.1": + version: 2.4.1 + resolution: "redux-thunk@npm:2.4.1" + peerDependencies: + redux: ^4 + checksum: af5abb425fb9dccda02e5f387d6f3003997f62d906542a3d35fc9420088f550dc1a018bdc246c7d23ee852b4d4ab8b5c64c5be426e45a328d791c4586a3c6b6e + languageName: node + linkType: hard + +"redux@npm:^4.0.0, redux@npm:^4.1.2": + version: 4.2.0 + resolution: "redux@npm:4.2.0" + dependencies: + "@babel/runtime": ^7.9.2 + checksum: 75f3955c89b3f18edf5411e5fb482aa2e4f41a416183e8802a6bf6472c4fc3d47675b8b321d147f8af8e0f616436ac507bf5a25f1c4d6180e797b549c7db2c1d + languageName: node + linkType: hard + "regenerator-runtime@npm:^0.13.4": version: 0.13.9 resolution: "regenerator-runtime@npm:0.13.9" @@ -4554,6 +4679,13 @@ __metadata: languageName: node linkType: hard +"reselect@npm:^4.1.5": + version: 4.1.6 + resolution: "reselect@npm:4.1.6" + checksum: 3ea1058422904063ec93c8f4693fe33dcb2178bbf417ace8db5b2c797a5875cf357d9308d11ed3942ee22507dd34ecfbf1f3a21340a4f31c206cab1d36ceef31 + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -5274,6 +5406,15 @@ __metadata: languageName: node linkType: hard +"use-sync-external-store@npm:^1.0.0": + version: 1.1.0 + resolution: "use-sync-external-store@npm:1.1.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 8993a0b642f91d7fcdbb02b7b3ac984bd3af4769686f38291fe7fcfe73dfb73d6c64d20dfb7e5e7fbf5a6da8f5392d6f8e5b00c243a04975595946e82c02b883 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" From ad6b35012d44b1d315a961443e03dcfa8abfe7e2 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Sun, 12 Jun 2022 23:27:04 -0500 Subject: [PATCH 02/10] Calender context moved into redux. --- contexts/CalenderContext.tsx | 262 ------------------------ lib/populateMonth.ts | 181 ++++++++++++++++ src/app/hooks.ts | 2 +- src/components/calender/CalenderNav.tsx | 19 +- src/components/calender/DatePicker.tsx | 10 +- src/components/calender/Day.tsx | 8 +- src/components/calender/index.tsx | 49 +++-- src/features/calender/calender.ts | 42 ++-- src/pages/calendar/[...date].tsx | 13 +- src/pages/index.tsx | 9 +- types/CalenderContext.d.ts | 2 +- 11 files changed, 274 insertions(+), 323 deletions(-) delete mode 100644 contexts/CalenderContext.tsx create mode 100644 lib/populateMonth.ts diff --git a/contexts/CalenderContext.tsx b/contexts/CalenderContext.tsx deleted file mode 100644 index da8f6a4..0000000 --- a/contexts/CalenderContext.tsx +++ /dev/null @@ -1,262 +0,0 @@ -import React, { createContext, useState, ReactNode } from "react"; -import { - format, - startOfMonth, - endOfMonth, - getDate, - add, - sub, - set, - isAfter, - isBefore, - compareAsc -} from "date-fns"; - -const CalenderContext = createContext({} as CalenderContextState); - -const CalenderContextProvider = ({ - children -}: { - children: ReactNode; -}): JSX.Element => { - const weekDays: WeekDays = { - sunday: [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ], - monday: [ - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - ] - }; - - /** - * Using date-fns, this function checks if currDate is within the month of selectedDate or not. - * @param {Date} selectedDate The current month. - * @param {Date} currDate The date to be compared to the selected month. - * @returns True if currDate is outside of the month of selectedDate, false if otherwise. - */ - const isOverflow = ( - selectedDate: Date, - currDate: Date - ): { - isOverflow: boolean; - overflowDirection: "prev" | "next" | null; - } => { - let flag = false; - let direction: "next" | "prev" | null = null; - - const start = startOfMonth(selectedDate); - const end = endOfMonth(selectedDate); - - if (isBefore(currDate, start)) { - flag = true; - direction = "prev"; - } - - if (isAfter(currDate, end)) { - flag = true; - direction = "next"; - } - - return { isOverflow: flag, overflowDirection: direction }; - }; - - /** - * A function that will return a month layout when given a date. It produces - * an object with 6 weeks that include overflow from the previous and next month - * with all dates aligned with the day of the week. - * @param selectedDate The date of the month to generate a month layout for. - */ - const populateMonth = (selectedDate: Date): MonthLayout => { - const endLastMonth = getDate(endOfMonth(sub(selectedDate, { months: 1 }))); - const startOfSelectedMonth = format(startOfMonth(selectedDate), "iii"); - - const ISOToIndex = { - sunday: { - Sun: 0, - Mon: 1, - Tue: 2, - Wed: 3, - Thu: 4, - Fri: 5, - Sat: 6 - }, - monday: { - Mon: -1, - Tue: 0, - Wed: 1, - Thu: 2, - Fri: 3, - Sat: 4, - Sun: 5 - } - }; - - const sundays = { - week1: new Array(7).fill(null), - week2: new Array(7).fill(null), - week3: new Array(7).fill(null), - week4: new Array(7).fill(null), - week5: new Array(7).fill(null), - week6: new Array(7).fill(null) - }; - - const sunStartDay = - endLastMonth - (ISOToIndex.sunday[startOfSelectedMonth] - 1); - - let sunCurrDate = set(sub(selectedDate, { months: 1 }), { - date: sunStartDay - }); - - for (const week in sundays) { - const thisWeek = sundays[week]; - - thisWeek.forEach((e, i) => { - const overflowInfo = isOverflow(selectedDate, sunCurrDate); - - const day: MonthDay = { - ...overflowInfo, - date: sunCurrDate - }; - - sunCurrDate = add(sunCurrDate, { - days: 1 - }); - - sundays[week][i] = day; - }); - } - - const mondays = { - week1: new Array(7).fill(null), - week2: new Array(7).fill(null), - week3: new Array(7).fill(null), - week4: new Array(7).fill(null), - week5: new Array(7).fill(null), - week6: new Array(7).fill(null) - }; - - const monStartDay = endLastMonth - ISOToIndex.monday[startOfSelectedMonth]; - - let monCurrDate = set(sub(selectedDate, { months: 1 }), { - date: monStartDay - }); - - for (const week in mondays) { - const thisWeek = mondays[week]; - - thisWeek.forEach((e, i) => { - const overflowInfo = isOverflow(selectedDate, monCurrDate); - - const day: MonthDay = { - ...overflowInfo, - date: monCurrDate - }; - - monCurrDate = add(monCurrDate, { - days: 1 - }); - - mondays[week][i] = day; - }); - } - - const output = { - sunday: { - weekdays: weekDays.sunday, - month: sundays - }, - monday: { - weekdays: weekDays.monday, - month: mondays - } - }; - - return output; - }; - - const [selectedDate, setSelectedDate] = useState(new Date()); - const [selectedDateInfo, setSelectedMonthInfo] = useState({ - date: selectedDate, - title: format(selectedDate, "LLLL uuuu"), - layout: populateMonth(selectedDate) - }); - - /** - * Updates the selectedDateInfo state when given a date. - * @param {Date} newDate The date to set the selectedDateInfo state to. - */ - const updateDateInfo = (newDate: Date) => { - const output = { ...selectedDateInfo }; - output.date = newDate; - output.title = format(newDate, "LLLL uuuu"); - output.layout = populateMonth(newDate); - - setSelectedMonthInfo(output); - }; - - // TODO: Add a function that validated if a date has at least one sticker in it. Use that within the nav function (when filter is enabled). - - // TODO: Add a function that will give the closest date, if available, when the nav func detects an empty month. - // Use the chart creation date to aid with this. (When filter is enabled) - - /** - * TODO: Add logic that prevents navigation to the future and too far in the past. (Use chart creation date) - * Update to use a promise and return appropriate errors. Display those errors on the front end. - * Update the use of this function on the front to handle the fails of the promise. - */ - - // TODO: (When filter is enabled) Update the calender update function that will take in a direction so that the the navigation buttons will take the user to the next month with stickers. Assuming there was a gap with empty months. - - /** - * Updated the selectedDate state when given the appropriate object. - * @param {UpdateCalendarProps} input An object with year, month, - * and day keys that the selectedDate state will be updated to. - */ - const updateDate = (input: UpdateCalendarProps) => { - const { year, month: inputMonth, day } = input; - - if (!year || !inputMonth || day < 0 || day > 31) { - return false; - } else { - const month = inputMonth - 1; - const customDate: Date = new Date(year, month, day); - - if (compareAsc(customDate, selectedDate) !== 0) { - setSelectedDate(customDate); - updateDateInfo(customDate); - } - } - }; - - // * Attempting to fix an issue with static generation where the date does not appear to be updating after initial generation. - const [currDate, setCurrDate] = useState(new Date()); - - const calenderContextValues: CalenderContextState = { - currDate, - setCurrDate, - selectedDate, - title: selectedDateInfo.title, - layout: selectedDateInfo.layout, - updateDate - }; - - return ( - - {children} - - ); -}; - -export { CalenderContextProvider, CalenderContext }; diff --git a/lib/populateMonth.ts b/lib/populateMonth.ts new file mode 100644 index 0000000..0834a0b --- /dev/null +++ b/lib/populateMonth.ts @@ -0,0 +1,181 @@ +import { + getDate, + endOfMonth, + sub, + format, + startOfMonth, + set, + add, + isAfter, + isBefore +} from "date-fns"; + +const weekDays: WeekDays = { + sunday: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ], + monday: [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ] +}; + +/** + * Using date-fns, this function checks if currDate is within the month of selectedDate or not. + * @param {Date} selectedDate The current month. + * @param {Date} currDate The date to be compared to the selected month. + * @returns True if currDate is outside of the month of selectedDate, false if otherwise. + */ +const isOverflow = ( + selectedDate: Date, + currDate: Date +): { + isOverflow: boolean; + overflowDirection: "prev" | "next" | null; +} => { + let flag = false; + let direction: "next" | "prev" | null = null; + + const start = startOfMonth(selectedDate); + const end = endOfMonth(selectedDate); + + if (isBefore(currDate, start)) { + flag = true; + direction = "prev"; + } + + if (isAfter(currDate, end)) { + flag = true; + direction = "next"; + } + + return { isOverflow: flag, overflowDirection: direction }; +}; + +/** + * A function that will return a month layout when given a date. It produces + * an object with 6 weeks that include overflow from the previous and next month + * with all dates aligned with the day of the week. + * @param selectedDate The date of the month to generate a month layout for. + * @returns The month layout object for the provided month. + */ +const populateMonth = (selectedDate: Date): MonthLayout => { + const endLastMonth = getDate(endOfMonth(sub(selectedDate, { months: 1 }))); + const startOfSelectedMonth = format(startOfMonth(selectedDate), "iii"); + + const ISOToIndex = { + sunday: { + Sun: 0, + Mon: 1, + Tue: 2, + Wed: 3, + Thu: 4, + Fri: 5, + Sat: 6 + }, + monday: { + Mon: -1, + Tue: 0, + Wed: 1, + Thu: 2, + Fri: 3, + Sat: 4, + Sun: 5 + } + }; + + const sundays = { + week1: new Array(7).fill(null), + week2: new Array(7).fill(null), + week3: new Array(7).fill(null), + week4: new Array(7).fill(null), + week5: new Array(7).fill(null), + week6: new Array(7).fill(null) + }; + + const sunStartDay = + endLastMonth - (ISOToIndex.sunday[startOfSelectedMonth] - 1); + + let sunCurrDate = set(sub(selectedDate, { months: 1 }), { + date: sunStartDay + }); + + for (const week in sundays) { + const thisWeek = sundays[week]; + + thisWeek.forEach((e, i) => { + const overflowInfo = isOverflow(selectedDate, sunCurrDate); + + const day: MonthDay = { + ...overflowInfo, + date: sunCurrDate.toJSON() + }; + + sunCurrDate = add(sunCurrDate, { + days: 1 + }); + + sundays[week][i] = day; + }); + } + + const mondays = { + week1: new Array(7).fill(null), + week2: new Array(7).fill(null), + week3: new Array(7).fill(null), + week4: new Array(7).fill(null), + week5: new Array(7).fill(null), + week6: new Array(7).fill(null) + }; + + const monStartDay = endLastMonth - ISOToIndex.monday[startOfSelectedMonth]; + + let monCurrDate = set(sub(selectedDate, { months: 1 }), { + date: monStartDay + }); + + for (const week in mondays) { + const thisWeek = mondays[week]; + + thisWeek.forEach((e, i) => { + const overflowInfo = isOverflow(selectedDate, monCurrDate); + + const day: MonthDay = { + ...overflowInfo, + date: monCurrDate.toJSON() + }; + + monCurrDate = add(monCurrDate, { + days: 1 + }); + + mondays[week][i] = day; + }); + } + + const output = { + sunday: { + weekdays: weekDays.sunday, + month: sundays + }, + monday: { + weekdays: weekDays.monday, + month: mondays + } + }; + + return output; +}; + +export default populateMonth; diff --git a/src/app/hooks.ts b/src/app/hooks.ts index e2a4fed..72d1476 100644 --- a/src/app/hooks.ts +++ b/src/app/hooks.ts @@ -1,5 +1,5 @@ import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"; import { RootState, AppDispatch } from "./store"; -export const useAppDiscpatch = () => useDispatch(); +export const useAppDispatch = () => useDispatch(); export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/src/components/calender/CalenderNav.tsx b/src/components/calender/CalenderNav.tsx index e6b730a..fa06d69 100644 --- a/src/components/calender/CalenderNav.tsx +++ b/src/components/calender/CalenderNav.tsx @@ -1,14 +1,19 @@ -import React, { useContext } from "react"; +import React from "react"; import { useRouter } from "next/router"; import { HStack, IconButton } from "@chakra-ui/react"; import { Icon } from "@iconify/react"; import { format, isSameMonth, addMonths, subMonths } from "date-fns"; import findValidDateRange from "../../../lib/findValidDateRange"; import DatePicker from "./DatePicker"; -import { CalenderContext } from "../../../contexts/CalenderContext"; +import { useAppSelector } from "../../app/hooks"; const CalenderNav = (): JSX.Element => { - const { selectedDate } = useContext(CalenderContext); + const selectedDate = useAppSelector( + (state) => state.calender.selectedDateInfo + ); + const { date } = selectedDate; + + const selectedDateObj = new Date(date); const validDateRange = findValidDateRange(); const { start: validStart, end: validEnd } = validDateRange; @@ -17,14 +22,14 @@ const CalenderNav = (): JSX.Element => { const handleNavButtons = (direction: "next" | "prev") => { if (direction === "next") { - const newMonth = addMonths(selectedDate, 1); + const newMonth = addMonths(selectedDateObj, 1); const year = format(newMonth, "y"); const month = format(newMonth, "L"); router.push(`/calendar/${year}/${month}`); } else if (direction === "prev") { - const newMonth = subMonths(selectedDate, 1); + const newMonth = subMonths(selectedDateObj, 1); const year = format(newMonth, "y"); const month = format(newMonth, "L"); @@ -36,14 +41,14 @@ const CalenderNav = (): JSX.Element => { return ( } onClick={() => handleNavButtons("prev")} /> } onClick={() => handleNavButtons("next")} diff --git a/src/components/calender/DatePicker.tsx b/src/components/calender/DatePicker.tsx index 8aabc1e..02ca4de 100644 --- a/src/components/calender/DatePicker.tsx +++ b/src/components/calender/DatePicker.tsx @@ -1,4 +1,4 @@ -import React, { useContext, useRef, useState } from "react"; +import React, { useRef, useState } from "react"; import { useRouter } from "next/router"; import { Button, @@ -27,10 +27,12 @@ import { import { format } from "date-fns"; import findValidDateRange from "../../../lib/findValidDateRange"; import FormValidateEmoji from "./FormValidateEmoji"; -import { CalenderContext } from "../../../contexts/CalenderContext"; +import { useAppSelector } from "../../app/hooks"; const DatePicker = (): JSX.Element => { - const { title } = useContext(CalenderContext); + const selectedDate = useAppSelector( + (state) => state.calender.selectedDateInfo + ); const router = useRouter(); @@ -129,7 +131,7 @@ const DatePicker = (): JSX.Element => { diff --git a/src/components/calender/Day.tsx b/src/components/calender/Day.tsx index 53efd0a..5953a0e 100644 --- a/src/components/calender/Day.tsx +++ b/src/components/calender/Day.tsx @@ -19,7 +19,7 @@ interface DayProps { overflowDirection?: "next" | "prev" | null; sticker: StickerVal; date: Date; - selectedDate: Date; + selectedDate: string; currDate: Date; isToday: boolean; } @@ -42,17 +42,19 @@ const Day = ({ currDate, isToday }: DayProps): JSX.Element => { + const selectedDateObj = new Date(selectedDate); + const handleNav = (direction: "next" | "prev") => { if (direction === "next") { console.log(overflowDirection); - const newMonth = add(selectedDate, { months: 1 }); + const newMonth = add(selectedDateObj, { months: 1 }); const year = getYear(newMonth); const month = getMonth(newMonth) + 1; router.push(`/calendar/${year}/${month}`); } else if (direction === "prev") { - const newMonth = sub(selectedDate, { months: 1 }); + const newMonth = sub(selectedDateObj, { months: 1 }); const year = getYear(newMonth); const month = getMonth(newMonth) + 1; diff --git a/src/components/calender/index.tsx b/src/components/calender/index.tsx index 6008304..e09d6dd 100644 --- a/src/components/calender/index.tsx +++ b/src/components/calender/index.tsx @@ -1,41 +1,50 @@ import React, { useContext, useEffect } from "react"; import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; import { isSameDay, format } from "date-fns"; -import { useAppDiscpatch, useAppSelector } from "../../app/hooks"; -import { updateCurrDate, updateMonth } from '../../features/calender/calender'; -import { CalenderContext } from "../../../contexts/CalenderContext"; +import { useAppDispatch, useAppSelector } from "../../app/hooks"; +import { updateCurrDate, updateMonth } from "../../features/calender/calender"; import { StickersContext } from "../../../contexts/StickerContext"; import CalenderNav from "./CalenderNav"; import Day from "./Day"; const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { - const currDate: Date = useAppSelector(state => state.calender.currDate); - const seletedMonth = useAppSelector(state => state.calender.selectedDateInfo); + const currDate: string = useAppSelector((state) => state.calender.currDate); + const selectedDate = useAppSelector( + (state) => state.calender.selectedDateInfo + ); + const { layout } = selectedDate; + const dispatch = useAppDispatch(); - const { selectedDate, layout, updateDate,/* currDate, */setCurrDate } = - useContext(CalenderContext); const { stickersMonth } = useContext(StickersContext); + const currDateObj = new Date(currDate); + useEffect(() => { if (newDate && newDate.year && newDate.month && newDate.day) { const { year, month, day } = newDate; if (year > 0 && month > 0 && day > 0) { - updateDate(newDate); + const generatedDate: Date = new Date(year, month - 1, day); + const dateString: string = generatedDate.toJSON(); + + dispatch(updateMonth(dateString)); } else { console.warn("Invalid date format: ", newDate); } } - }, [newDate, updateDate]); + }, [dispatch, newDate]); useEffect(() => { console.info("Check to update date."); - if (!isSameDay(currDate, new Date())) { + + const currDateObj = new Date(currDate); + + if (!isSameDay(currDateObj, new Date())) { console.info("Updated date."); - setCurrDate(new Date()); + dispatch(updateCurrDate()); } - }, [currDate, setCurrDate]); + }, [currDate, dispatch]); // Simulated user settings context const userSettings = { @@ -87,12 +96,14 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { return thisWeek.map((day: MonthDay) => { const { date, isOverflow, overflowDirection } = day; + const toDateObj: Date = new Date(date); + let sticker = null; let id = ""; stickersMonth.map((stickerDay) => { - if (isSameDay(stickerDay.date, date)) { + if (isSameDay(stickerDay.date, toDateObj)) { sticker = stickerDay.sticker; id = stickerDay.id; @@ -104,15 +115,15 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { isOverflow={isOverflow} overflowDirection={overflowDirection} sticker={sticker} - date={date} - selectedDate={selectedDate} - currDate={currDate} - isToday={isSameDay(currDate, date)} + date={toDateObj} + selectedDate={selectedDate.date} + currDate={currDateObj} + isToday={isSameDay(currDateObj, toDateObj)} key={ id.length ? id - : format(date, "yyyyddLL") + - `/${sticker === null ? 0 : sticker}` + : format(toDateObj, "yyyyddLL") + + `/${sticker === null ? 0 : sticker}` } /> ); diff --git a/src/features/calender/calender.ts b/src/features/calender/calender.ts index d8acd6b..edb0ee8 100644 --- a/src/features/calender/calender.ts +++ b/src/features/calender/calender.ts @@ -1,43 +1,59 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import { format } from "date-fns"; +import populate from "../../../lib/populateMonth"; interface CalenderSlice { - currDate: Date; + currDate: string; selectedDateInfo: { - selectedDate: Date; + date: string; title: string; layout: MonthLayout; }; } const getCurrDate = (): Date => new Date(); +const dateParse = (date: Date) => date.toJSON(); const dateFormatter = (date: Date): string => format(date, "LLLL uuuu"); const initialState: CalenderSlice = { - currDate: getCurrDate(), + currDate: dateParse(getCurrDate()), selectedDateInfo: { - selectedDate: getCurrDate(), - title: dateFormatter(new Date()), - layout: {} as MonthLayout + date: dateParse(getCurrDate()), + title: dateFormatter(getCurrDate()), + layout: populate(getCurrDate()) } }; +// TODO: Add a function that validated if a month has at least one sticker in it. Use that within the nav function (when filter is enabled). + +// TODO: Add a function that will give the closest date, if available, when the nav func detects an empty month. +// Use the chart creation date to aid with this. (When filter is enabled) + +/** + * TODO: Add logic that prevents navigation to the future and too far in the past. (Use chart creation date) + * Update to use a promise and return appropriate errors. Display those errors on the front end. + * Update the use of this function on the front to handle the fails of the promise. + */ + +// TODO: (When filter is enabled) Update the calender update function that will take in a direction so that the the navigation buttons will take the user to the next month with stickers. Assuming there was a gap with empty months. + const calenderSlice = createSlice({ name: "Calender", initialState, reducers: { - // Populate month // Update month info - updateMonth(state: CalenderSlice, action: PayloadAction) { - const { payload: newDate } = action; + updateMonth(state: CalenderSlice, action: PayloadAction) { + const { payload } = action; - state.selectedDateInfo.selectedDate = newDate; - state.selectedDateInfo.title = dateFormatter(newDate); - // ! Add the layout formatter function + const toDateObj: Date = new Date(payload); + + state.selectedDateInfo.date = payload; + state.selectedDateInfo.title = dateFormatter(toDateObj); + state.selectedDateInfo.layout = populate(toDateObj); }, // Update current date updateCurrDate(state: CalenderSlice) { - state.currDate = new Date(); + state.currDate = dateParse(new Date()); } } }); diff --git a/src/pages/calendar/[...date].tsx b/src/pages/calendar/[...date].tsx index a86176e..4009677 100644 --- a/src/pages/calendar/[...date].tsx +++ b/src/pages/calendar/[...date].tsx @@ -13,7 +13,8 @@ import { // import findValidDateRange from "../../lib/findValidDateRange"; import ErrorPage from "next/error"; import Calender from "../../components/calender"; -import { CalenderContextProvider } from "../../../contexts/CalenderContext"; +import { Provider } from "react-redux"; +import { store } from "../../app/store"; import { StickersContextProvider } from "../../../contexts/StickerContext"; const DateRoute: React.FC = () => { @@ -59,8 +60,6 @@ const DateRoute: React.FC = () => { } else if (!dateArr[2]) { date.day = 1; } - } else { - return date; } return date; @@ -199,11 +198,11 @@ const DateRoute: React.FC = () => { ) : ( - - + + - - + + ); }; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 2b12185..3f13881 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -4,7 +4,6 @@ import { format } from "date-fns"; import { Provider } from "react-redux"; import { store } from "../app/store"; import { StickersContextProvider } from "../../contexts/StickerContext"; -import { CalenderContextProvider } from "../../contexts/CalenderContext"; import Calender from "../components/calender"; const IndexPage = (): JSX.Element => { @@ -17,11 +16,9 @@ const IndexPage = (): JSX.Element => { return ( - - - - - + + + ); diff --git a/types/CalenderContext.d.ts b/types/CalenderContext.d.ts index 946a3fd..7655514 100644 --- a/types/CalenderContext.d.ts +++ b/types/CalenderContext.d.ts @@ -15,7 +15,7 @@ interface WeekDays { } interface MonthDay { - date: Date; + date: string; isOverflow: boolean; overflowDirection: "prev" | "next" | null; } From 8654d7ac79399a2dfa6ef7dac4b60373baa8e36d Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 13 Jun 2022 12:16:54 -0500 Subject: [PATCH 03/10] Removed unused type definitions. --- types/CalenderContext.d.ts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/types/CalenderContext.d.ts b/types/CalenderContext.d.ts index 7655514..a8f4632 100644 --- a/types/CalenderContext.d.ts +++ b/types/CalenderContext.d.ts @@ -29,11 +29,6 @@ interface Month { week6: MonthDay[]; } -interface MonthInfo { - date: Date; - title: string; -} - interface WeekLayout { weekdays: DaysOfWeek; month: Month; @@ -44,21 +39,8 @@ interface MonthLayout { monday: WeekLayout; } -interface MonthContext extends MonthInfo { - layout: MonthLayout; -} - interface UpdateCalendarProps { year: number; month: number; day: number; } - -interface CalenderContextState { - currDate: Date; - setCurrDate: React.Dispatch>; - selectedDate: Date; - title: string; - layout: MonthLayout; - updateDate: (input: UpdateCalendarProps) => void; -} From 06df3672778c4fb02d2dd31db13ef5d80656b342 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 13 Jun 2022 15:24:59 -0500 Subject: [PATCH 04/10] Moved stickers state to redux. Removed unneded type definitions. Refactored components to accomdate changes in types and interfaces. --- contexts/StickerContext.tsx | 61 ------------------ data/stickerSeeder.ts | 12 +++- src/app/store.ts | 4 +- src/components/calender/Day.tsx | 62 ++++++++---------- src/components/calender/index.tsx | 26 +++++--- .../calender/modals/AddUpdateSticker.tsx | 33 +++++----- .../calender/stickers/DemoStickers.tsx | 10 ++- src/features/calender/calender.ts | 6 +- src/features/calender/stickers.ts | 63 +++++++++++++++++++ src/pages/calendar/[...date].tsx | 9 +-- src/pages/index.tsx | 9 +-- types/CalenderContext.d.ts | 6 ++ types/StickerContext.d.ts | 12 +--- 13 files changed, 156 insertions(+), 157 deletions(-) delete mode 100644 contexts/StickerContext.tsx create mode 100644 src/features/calender/stickers.ts diff --git a/contexts/StickerContext.tsx b/contexts/StickerContext.tsx deleted file mode 100644 index 969a533..0000000 --- a/contexts/StickerContext.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import React, { createContext, useState, ReactNode } from "react"; -import { format, getDate, isSameDay } from "date-fns"; -import stickersSeeder from "../data/stickerSeeder"; - -const StickersContext = createContext({} as StickersContextState); - -const StickersContextProvider = ({ - children -}: { - children: ReactNode; -}): JSX.Element => { - const [stickersMonth, setStickersMonth] = useState( - stickersSeeder() - ); - - // TODO: Add stickers functions here. (Add and edit stickers). - const addEditSticker = (date: Date, sticker: ValidStickerVal): Sticker => { - const newStickersMonth = stickersMonth.slice(); - const index = getDate(date) - 1; - const currDate = newStickersMonth[index]; - - const edited = currDate.edited - ? true - : isSameDay(currDate.date, new Date()) - ? false - : true; - currDate.edited = edited; - // Add manual here when necessary. - - const id = format(date, "yyyyddLL") + sticker; - - const newSticker: Sticker = { - id: id, - date: date, - sticker: sticker, - edited: edited, - manual: false - }; - - newStickersMonth[index] = newSticker; - - setStickersMonth(newStickersMonth.slice()); - - return newSticker; - }; - - // TODO: Add stickers validation function here. - - const stickersContextValues = { - stickersMonth, - addEditSticker - }; - - return ( - - {children} - - ); -}; - -export { StickersContextProvider, StickersContext }; diff --git a/data/stickerSeeder.ts b/data/stickerSeeder.ts index 5639765..f6efddb 100644 --- a/data/stickerSeeder.ts +++ b/data/stickerSeeder.ts @@ -1,4 +1,10 @@ -import { format, getDaysInMonth, isBefore, setDate } from "date-fns"; +import { + format, + getDaysInMonth, + isBefore, + setDate, + startOfDay +} from "date-fns"; /** * This seeder is to simulate the date and sticker info from the database. @@ -23,7 +29,7 @@ const generateSticker = (): -2 | -1 | 0 | 1 | 2 => { const stickersSeeder = (): StickerDays => { const stickers = [] as Sticker[]; - const now = new Date(); + const now = startOfDay(new Date()); const daysOfThisMonth = getDaysInMonth(now); for (let i = 1; i <= daysOfThisMonth; i++) { @@ -36,7 +42,7 @@ const stickersSeeder = (): StickerDays => { const newSticker: Sticker = { id: id, - date: currDate, + date: currDate.toJSON(), sticker: sticker, edited: false, manual: false diff --git a/src/app/store.ts b/src/app/store.ts index 8b88779..db29048 100644 --- a/src/app/store.ts +++ b/src/app/store.ts @@ -1,9 +1,11 @@ import { configureStore } from "@reduxjs/toolkit"; import calenderReducer from "../features/calender/calender"; +import stickersReducer from "../features/calender/stickers"; export const store = configureStore({ reducer: { - calender: calenderReducer + calender: calenderReducer, + stickers: stickersReducer } }); diff --git a/src/components/calender/Day.tsx b/src/components/calender/Day.tsx index 5953a0e..8d9239e 100644 --- a/src/components/calender/Day.tsx +++ b/src/components/calender/Day.tsx @@ -10,15 +10,16 @@ import { } from "date-fns"; import router from "next/router"; import React, { Fragment, useState } from "react"; -import { StickersContextProvider } from "../../../contexts/StickerContext"; import AddUpdateSticker from "./modals/AddUpdateSticker"; import DemoStickers from "./stickers/DemoStickers"; +import { Provider } from "react-redux"; +import { store } from "../../app/store"; interface DayProps { isOverflow?: boolean; overflowDirection?: "next" | "prev" | null; sticker: StickerVal; - date: Date; + date: string; selectedDate: string; currDate: Date; isToday: boolean; @@ -26,12 +27,11 @@ interface DayProps { /** * The individual days in the calender component. - * @param props the props for this component. - * @param {boolean} props.isOverflow is the current date being given before or after the current month. - * @param {"next" | "prev" | null} props.overflowDirection the direction the overflow is. This will navigate the calender forward or backwards 1 month. - * @param {StickerVal} props.sticker the sticker for this date. - * @param {date} props.date the date for this day. - * @param {date} props.selectedDate the date for the selected month. + * @param {boolean} isOverflow is the current date being given before or after the current month. + * @param {"next" | "prev" | null} overflowDirection the direction the overflow is. This will navigate the calender forward or backwards 1 month. + * @param {StickerVal} sticker the sticker for this date. + * @param {date} string the date for this day. + * @param {date} selectedDate the date for the selected month. */ const Day = ({ isOverflow, @@ -43,6 +43,7 @@ const Day = ({ isToday }: DayProps): JSX.Element => { const selectedDateObj = new Date(selectedDate); + const currDateObj = new Date(date); const handleNav = (direction: "next" | "prev") => { if (direction === "next") { @@ -66,10 +67,6 @@ const Day = ({ // This handles the modal for the day. const [isOpen, setIsOpen] = useState(false); - // The current sticker to be displayed on the current date. - // * This is temporary. There should be no need for this once persistent storage is used. This is being used as a workaround to a bug. - const [stickerState, setStickerState] = useState(sticker); - // The step the modal is at. const [step, setStep] = useState(0); @@ -95,7 +92,9 @@ const Day = ({ w="100%" h="100%" _hover={{ - cursor: isBefore(date, endOfDay(currDate)) ? "pointer" : "default", + cursor: isBefore(currDateObj, endOfDay(currDate)) + ? "pointer" + : "default", background: "gray.700", border: "1px solid #FFF", color: "whiteAlpha.900" @@ -107,15 +106,10 @@ const Day = ({ pt={2} > - {`${getDate(date)}`} + {`${getDate(currDateObj)}`} - - + + )} @@ -134,7 +128,9 @@ const Day = ({ justifyContent="flex-start" pt={2} _hover={{ - cursor: isBefore(date, endOfDay(currDate)) ? "pointer" : "default", + cursor: isBefore(currDateObj, endOfDay(currDate)) + ? "pointer" + : "default", background: "gray.700", border: "1px solid #FFF" }} @@ -142,7 +138,7 @@ const Day = ({ 10 + ? getDate(currDateObj) > 10 ? "0px 6px 3px 6px" : "0px 9px 3px 9px" : "auto" @@ -152,24 +148,18 @@ const Day = ({ border={isToday ? "1px solid #0068ff" : "0px"} borderRadius={isToday ? "100px" : "0px"} > - {`${getDate(date)}`} + {`${getDate(currDateObj)}`} - - + + - - {isBefore(date, endOfDay(currDate)) && ( + + {isBefore(currDateObj, endOfDay(currDate)) && ( )} - + )} diff --git a/src/components/calender/index.tsx b/src/components/calender/index.tsx index e09d6dd..daceec6 100644 --- a/src/components/calender/index.tsx +++ b/src/components/calender/index.tsx @@ -1,25 +1,29 @@ -import React, { useContext, useEffect } from "react"; +import React, { useEffect } from "react"; import { Box, HStack, SimpleGrid, Text, VStack } from "@chakra-ui/react"; import { isSameDay, format } from "date-fns"; import { useAppDispatch, useAppSelector } from "../../app/hooks"; import { updateCurrDate, updateMonth } from "../../features/calender/calender"; -import { StickersContext } from "../../../contexts/StickerContext"; import CalenderNav from "./CalenderNav"; import Day from "./Day"; const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { + // * Month * // const currDate: string = useAppSelector((state) => state.calender.currDate); - const selectedDate = useAppSelector( + const selectedDate: SelectedDateInfo = useAppSelector( (state) => state.calender.selectedDateInfo ); const { layout } = selectedDate; - const dispatch = useAppDispatch(); - - const { stickersMonth } = useContext(StickersContext); - const currDateObj = new Date(currDate); + // * Stickers * // + + const stickersMonth: StickerDays = useAppSelector( + (state) => state.stickers.stickersMonth + ); + + const dispatch = useAppDispatch(); + useEffect(() => { if (newDate && newDate.year && newDate.month && newDate.day) { const { year, month, day } = newDate; @@ -46,7 +50,7 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { } }, [currDate, dispatch]); - // Simulated user settings context + // Simulated user settings. const userSettings = { theme: "default", startOfWeek: "Sunday" @@ -103,7 +107,9 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { let id = ""; stickersMonth.map((stickerDay) => { - if (isSameDay(stickerDay.date, toDateObj)) { + const { date: stickerDate } = stickerDay; + + if (isSameDay(new Date(stickerDate), toDateObj)) { sticker = stickerDay.sticker; id = stickerDay.id; @@ -115,7 +121,7 @@ const Calender = (newDate?: UpdateCalendarProps): JSX.Element => { isOverflow={isOverflow} overflowDirection={overflowDirection} sticker={sticker} - date={toDateObj} + date={date} selectedDate={selectedDate.date} currDate={currDateObj} isToday={isSameDay(currDateObj, toDateObj)} diff --git a/src/components/calender/modals/AddUpdateSticker.tsx b/src/components/calender/modals/AddUpdateSticker.tsx index 944ffa9..a657272 100644 --- a/src/components/calender/modals/AddUpdateSticker.tsx +++ b/src/components/calender/modals/AddUpdateSticker.tsx @@ -13,18 +13,18 @@ import { SimpleGrid, Box } from "@chakra-ui/react"; -import React, { useState, useContext, useRef } from "react"; +import React, { useState, useRef } from "react"; import { format, isSameDay } from "date-fns"; import { Icon } from "@iconify/react"; -import { StickersContext } from "../../../../contexts/StickerContext"; import StickerSelector from "./StickerSelector"; import DemoStickers from "../stickers/DemoStickers"; +import { useAppDispatch } from "../../../app/hooks"; +import { addEditSticker } from "../../../features/calender/stickers"; interface AddStickerProps { isOpen: boolean; updateIsOpen: React.Dispatch>; - date: Date; - updateSticker: React.Dispatch>; + date: string; currSticker: StickerVal; step: number; updateStep: React.Dispatch>; @@ -37,8 +37,7 @@ interface AddStickerProps { * Handles adding and modifying the stickers for the given month. * @param {boolean} isOpen Tells the component when the modal should be open. * @param {React.Dispatch>} updateIsOpen Used to close the modal. - * @param {date} date The date for which the sticker will be added or modified. - * @param {React.Dispatch>} updateSticker The react state function to update the sticker. + * @param {date} string The date for which the sticker will be added or modified. * @param {StickerVal} currSticker The current sticker for the date. * @param {number} step A numerical variable that represents the page the modal should be at. * @param {React.Dispatch>} updateStep Used to navigate the pages of the modal by updating the step the modal is on. @@ -48,7 +47,6 @@ const AddUpdateSticker = ({ isOpen, updateIsOpen, date, - updateSticker, currSticker, step, updateStep, @@ -56,14 +54,13 @@ const AddUpdateSticker = ({ updateSelectedSticker, currDate }: AddStickerProps): JSX.Element => { - // TODO: Import the stickers array from the calender context. - - const { addEditSticker } = useContext(StickersContext); + const dispatch = useAppDispatch(); + const currDateObj = new Date(date); // ! Update these states to say "add" and "edit" for easier reading. const [modalVariant] = useState<"currDate" | "notCurrDate">( - isSameDay(date, currDate) ? "currDate" : "notCurrDate" + isSameDay(currDateObj, currDate) ? "currDate" : "notCurrDate" ); const handleClose = () => { @@ -71,9 +68,8 @@ const AddUpdateSticker = ({ }; // TODO: Validate that the provided sticker is not the current sticker. Throw an error if the same sticker is attempted. - const handleSubmit = (sticker) => { - const newSticker: Sticker = addEditSticker(date, sticker); - updateSticker(newSticker.sticker); + const handleSubmit = (sticker: StickerVal) => { + dispatch(addEditSticker({ date, sticker })); handleClose(); }; @@ -85,7 +81,10 @@ const AddUpdateSticker = ({ const variants = { currDate: [ { - header: `Which sticker did you earn for ${format(date, "LLL d, y")}?`, + header: `Which sticker did you earn for ${format( + currDateObj, + "LLL d, y" + )}?`, body: ( = ({ stickerVal }: DemoStickersProps) => { + // If sticker is null return an empty space. if (stickerVal === null) { return  ; } + interface StickerToEmoji { [key: string]: JSX.Element; } + /** + * ? Temporarily using values -1 to 1. + * ? In the full app the values will be between -2 and 2. + */ let key = "0"; if (stickerVal > 0) { @@ -24,6 +30,7 @@ const DemoStickers: FC = ({ key = "-1"; } + // Link value to an emoji representing a sticker. const stickerToEmoji: StickerToEmoji = { "1": ( @@ -42,6 +49,7 @@ const DemoStickers: FC = ({ ) }; + // Return the appropriate sticker. return stickerToEmoji[`${key}`]; }; diff --git a/src/features/calender/calender.ts b/src/features/calender/calender.ts index edb0ee8..f811855 100644 --- a/src/features/calender/calender.ts +++ b/src/features/calender/calender.ts @@ -4,11 +4,7 @@ import populate from "../../../lib/populateMonth"; interface CalenderSlice { currDate: string; - selectedDateInfo: { - date: string; - title: string; - layout: MonthLayout; - }; + selectedDateInfo: SelectedDateInfo; } const getCurrDate = (): Date => new Date(); diff --git a/src/features/calender/stickers.ts b/src/features/calender/stickers.ts new file mode 100644 index 0000000..f4d9b5f --- /dev/null +++ b/src/features/calender/stickers.ts @@ -0,0 +1,63 @@ +import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import { format, getDate, isSameDay } from "date-fns"; +import stickersSeeder from "../../../data/stickerSeeder"; + +interface StickersSlice { + stickersMonth: StickerDays; +} + +interface UpdateStickerSlicePayload { + date: string; + sticker: StickerVal; +} + +const initialState: StickersSlice = { + stickersMonth: stickersSeeder() +}; + +const stickersSlice = createSlice({ + name: "Stickers", + initialState, + reducers: { + addEditSticker( + state: StickersSlice, + actions: PayloadAction + ) { + const { date, sticker } = actions.payload; + + const dateObj = new Date(date); + + // Getting index for the stickers array, sticker from the stickers array, and the date from the sticker. + const index: number = getDate(dateObj) - 1; + const currSticker: Sticker = state.stickersMonth[index]; + const { date: stickerDate } = currSticker; + + // Updating the edited status by checking if the sticker date is today's date. + const edited = currSticker.edited + ? true + : isSameDay(new Date(stickerDate), new Date()) + ? false + : true; + currSticker.edited = edited; + + // TODO: Add manually added here. + + // Updating the id of the sticker. + const id = format(dateObj, "yyyyddLL") + sticker; + + // Updating the information of the sticker. + const newSticker: Sticker = { + id: id, + date: date, + sticker: sticker, + edited: edited, + manual: false + }; + + state.stickersMonth[index] = newSticker; + } + } +}); + +export const { addEditSticker } = stickersSlice.actions; +export default stickersSlice.reducer; diff --git a/src/pages/calendar/[...date].tsx b/src/pages/calendar/[...date].tsx index 4009677..7f99984 100644 --- a/src/pages/calendar/[...date].tsx +++ b/src/pages/calendar/[...date].tsx @@ -15,7 +15,6 @@ import ErrorPage from "next/error"; import Calender from "../../components/calender"; import { Provider } from "react-redux"; import { store } from "../../app/store"; -import { StickersContextProvider } from "../../../contexts/StickerContext"; const DateRoute: React.FC = () => { const router = useRouter(); @@ -198,11 +197,9 @@ const DateRoute: React.FC = () => { ) : ( - - - - - + + + ); }; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 3f13881..8e5a536 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -3,7 +3,6 @@ import { Box } from "@chakra-ui/react"; import { format } from "date-fns"; import { Provider } from "react-redux"; import { store } from "../app/store"; -import { StickersContextProvider } from "../../contexts/StickerContext"; import Calender from "../components/calender"; const IndexPage = (): JSX.Element => { @@ -15,11 +14,9 @@ const IndexPage = (): JSX.Element => { return ( - - - - - + + + ); }; diff --git a/types/CalenderContext.d.ts b/types/CalenderContext.d.ts index a8f4632..b5e598b 100644 --- a/types/CalenderContext.d.ts +++ b/types/CalenderContext.d.ts @@ -44,3 +44,9 @@ interface UpdateCalendarProps { month: number; day: number; } + +interface SelectedDateInfo { + date: string; + title: string; + layout: MonthLayout; +} diff --git a/types/StickerContext.d.ts b/types/StickerContext.d.ts index 74ad45d..9a42cc1 100644 --- a/types/StickerContext.d.ts +++ b/types/StickerContext.d.ts @@ -1,8 +1,3 @@ -interface StickersContextState { - stickersMonth: StickerDays; - addEditSticker: (date: Date, sticker: ValidStickerVal) => Sticker; -} - type StickerVal = -2 | -1 | 0 | 1 | 2 | null; type ValidStickerVal = -2 | -1 | 0 | 1 | 2; @@ -14,15 +9,10 @@ interface AddEditStickerProps { interface Sticker { id: string; - date: Date; + date: string; sticker: StickerVal; edited: boolean; manual: boolean; } type StickerDays = Sticker[]; - -interface MonthSticker { - date: Date; - month: Sticker[]; -} From 632674c8982c9e5f3cfd7363fc030651c5b08f54 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Mon, 13 Jun 2022 15:49:41 -0500 Subject: [PATCH 05/10] Updating some documentation. --- data/stickerSeeder.ts | 12 ++++++++---- lib/populateMonth.ts | 18 +++++++++--------- .../calender/modals/AddUpdateSticker.tsx | 12 +++++------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/data/stickerSeeder.ts b/data/stickerSeeder.ts index f6efddb..8e514b7 100644 --- a/data/stickerSeeder.ts +++ b/data/stickerSeeder.ts @@ -7,11 +7,9 @@ import { } from "date-fns"; /** - * This seeder is to simulate the date and sticker info from the database. - * Filling up an array for the current month with sticker from ths first to - * the day before the current date, leaving the rest of the month empty. + * Generated a valid sticker value for use when generating a sticker obj. + * @returns {ValidStickerVal} a number that will represent a valid sticker value. */ - const generateSticker = (): -2 | -1 | 0 | 1 | 2 => { const sticker = Math.floor(Math.random() * (2 - -2 + 1)) + -2; @@ -26,6 +24,12 @@ const generateSticker = (): -2 | -1 | 0 | 1 | 2 => { } }; +/** + * This seeder is to simulate the date and sticker info from the database. + * Filling up an array for the current month with sticker from ths first to + * the day before the current date, leaving the rest of the month empty. + * @returns {StickerDays} an array with populated sticker objects that correspond to the current month's info. + */ const stickersSeeder = (): StickerDays => { const stickers = [] as Sticker[]; diff --git a/lib/populateMonth.ts b/lib/populateMonth.ts index 0834a0b..84a442f 100644 --- a/lib/populateMonth.ts +++ b/lib/populateMonth.ts @@ -7,7 +7,9 @@ import { set, add, isAfter, - isBefore + isBefore, + subMonths, + addDays } from "date-fns"; const weekDays: WeekDays = { @@ -104,10 +106,11 @@ const populateMonth = (selectedDate: Date): MonthLayout => { week6: new Array(7).fill(null) }; + // The date of the first day in the overflow const sunStartDay = endLastMonth - (ISOToIndex.sunday[startOfSelectedMonth] - 1); - let sunCurrDate = set(sub(selectedDate, { months: 1 }), { + let sunCurrDate = set(subMonths(selectedDate, 1), { date: sunStartDay }); @@ -122,9 +125,7 @@ const populateMonth = (selectedDate: Date): MonthLayout => { date: sunCurrDate.toJSON() }; - sunCurrDate = add(sunCurrDate, { - days: 1 - }); + sunCurrDate = addDays(sunCurrDate, 1); sundays[week][i] = day; }); @@ -139,9 +140,10 @@ const populateMonth = (selectedDate: Date): MonthLayout => { week6: new Array(7).fill(null) }; + // The date of the first day in the overflow const monStartDay = endLastMonth - ISOToIndex.monday[startOfSelectedMonth]; - let monCurrDate = set(sub(selectedDate, { months: 1 }), { + let monCurrDate = set(subMonths(selectedDate, 1), { date: monStartDay }); @@ -156,9 +158,7 @@ const populateMonth = (selectedDate: Date): MonthLayout => { date: monCurrDate.toJSON() }; - monCurrDate = add(monCurrDate, { - days: 1 - }); + monCurrDate = addDays(monCurrDate, 1); mondays[week][i] = day; }); diff --git a/src/components/calender/modals/AddUpdateSticker.tsx b/src/components/calender/modals/AddUpdateSticker.tsx index a657272..a82c19d 100644 --- a/src/components/calender/modals/AddUpdateSticker.tsx +++ b/src/components/calender/modals/AddUpdateSticker.tsx @@ -57,10 +57,8 @@ const AddUpdateSticker = ({ const dispatch = useAppDispatch(); const currDateObj = new Date(date); - // ! Update these states to say "add" and "edit" for easier reading. - - const [modalVariant] = useState<"currDate" | "notCurrDate">( - isSameDay(currDateObj, currDate) ? "currDate" : "notCurrDate" + const [modalVariant] = useState<"add" | "edit">( + isSameDay(currDateObj, currDate) ? "add" : "edit" ); const handleClose = () => { @@ -79,7 +77,7 @@ const AddUpdateSticker = ({ // * Double check that the submit button is disabled if the selected sticker is the same as the current sticker. const variants = { - currDate: [ + add: [ { header: `Which sticker did you earn for ${format( currDateObj, @@ -118,7 +116,7 @@ const AddUpdateSticker = ({ ) } ], - notCurrDate: [ + edit: [ { header: `Which sticker did you want to update for ${format( currDateObj, @@ -234,7 +232,7 @@ const AddUpdateSticker = ({ onClose={() => handleClose()} motionPreset="slideInBottom" scrollBehavior="inside" - size={modalVariant === "currDate" ? "xl" : "2xl"} + size={modalVariant === "add" ? "xl" : "2xl"} > From dff09977f9a9639440f57423d76d60b68c7be41d Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:38:40 -0500 Subject: [PATCH 06/10] Rename type definition files. Update documentation. Update date-fn functions being used. --- lib/populateMonth.ts | 4 +--- src/components/calender/Day.tsx | 22 ++++++++++--------- src/components/calender/index.tsx | 2 +- .../calender/modals/AddUpdateSticker.tsx | 22 ++++++++++--------- .../calender/modals/StickerSelector.tsx | 1 + src/features/calender/stickers.ts | 9 ++++---- types/{CalenderContext.d.ts => Calender.d.ts} | 0 types/{StickerContext.d.ts => Stickers.d.ts} | 6 +++++ 8 files changed, 37 insertions(+), 29 deletions(-) rename types/{CalenderContext.d.ts => Calender.d.ts} (100%) rename types/{StickerContext.d.ts => Stickers.d.ts} (76%) diff --git a/lib/populateMonth.ts b/lib/populateMonth.ts index 84a442f..c78984a 100644 --- a/lib/populateMonth.ts +++ b/lib/populateMonth.ts @@ -1,11 +1,9 @@ import { getDate, endOfMonth, - sub, format, startOfMonth, set, - add, isAfter, isBefore, subMonths, @@ -73,7 +71,7 @@ const isOverflow = ( * @returns The month layout object for the provided month. */ const populateMonth = (selectedDate: Date): MonthLayout => { - const endLastMonth = getDate(endOfMonth(sub(selectedDate, { months: 1 }))); + const endLastMonth = getDate(endOfMonth(subMonths(selectedDate, 1))); const startOfSelectedMonth = format(startOfMonth(selectedDate), "iii"); const ISOToIndex = { diff --git a/src/components/calender/Day.tsx b/src/components/calender/Day.tsx index 8d9239e..ad5336d 100644 --- a/src/components/calender/Day.tsx +++ b/src/components/calender/Day.tsx @@ -18,7 +18,7 @@ import { store } from "../../app/store"; interface DayProps { isOverflow?: boolean; overflowDirection?: "next" | "prev" | null; - sticker: StickerVal; + currSticker: StickerVal; date: string; selectedDate: string; currDate: Date; @@ -29,14 +29,16 @@ interface DayProps { * The individual days in the calender component. * @param {boolean} isOverflow is the current date being given before or after the current month. * @param {"next" | "prev" | null} overflowDirection the direction the overflow is. This will navigate the calender forward or backwards 1 month. - * @param {StickerVal} sticker the sticker for this date. - * @param {date} string the date for this day. + * @param {StickerVal} currSticker the sticker for this date. + * @param {date} date the date for this day. * @param {date} selectedDate the date for the selected month. + * @param {Date} currDate today's date. + * @param {boolean} isToday is the current iteration of this component in today's date. */ const Day = ({ isOverflow, overflowDirection, - sticker, + currSticker, date, selectedDate, currDate, @@ -108,8 +110,8 @@ const Day = ({ {`${getDate(currDateObj)}`} - - + + )} @@ -150,16 +152,16 @@ const Day = ({ > {`${getDate(currDateObj)}`} - - + + {isBefore(currDateObj, endOfDay(currDate)) && ( { >; - date: string; + stickerDate: string; currSticker: StickerVal; step: number; updateStep: React.Dispatch>; @@ -37,16 +37,18 @@ interface AddStickerProps { * Handles adding and modifying the stickers for the given month. * @param {boolean} isOpen Tells the component when the modal should be open. * @param {React.Dispatch>} updateIsOpen Used to close the modal. - * @param {date} string The date for which the sticker will be added or modified. + * @param {date} stickerDate The date for which the sticker will be added or modified. * @param {StickerVal} currSticker The current sticker for the date. * @param {number} step A numerical variable that represents the page the modal should be at. * @param {React.Dispatch>} updateStep Used to navigate the pages of the modal by updating the step the modal is on. - * @param {React.Dispatch>} updateSticker The react state function to update the selected sticker that will be added or updated. + * @param {StickerVal} selectedSticker the value of the selected sticker. + * @param {React.Dispatch>} updateSelectedSticker The react state function to update the selected sticker that will be added or updated. + * @param {Date} currDate the current date. */ const AddUpdateSticker = ({ isOpen, updateIsOpen, - date, + stickerDate, currSticker, step, updateStep, @@ -55,10 +57,10 @@ const AddUpdateSticker = ({ currDate }: AddStickerProps): JSX.Element => { const dispatch = useAppDispatch(); - const currDateObj = new Date(date); + const stickerDateObj = new Date(stickerDate); const [modalVariant] = useState<"add" | "edit">( - isSameDay(currDateObj, currDate) ? "add" : "edit" + isSameDay(stickerDateObj, currDate) ? "add" : "edit" ); const handleClose = () => { @@ -67,7 +69,7 @@ const AddUpdateSticker = ({ // TODO: Validate that the provided sticker is not the current sticker. Throw an error if the same sticker is attempted. const handleSubmit = (sticker: StickerVal) => { - dispatch(addEditSticker({ date, sticker })); + dispatch(addEditSticker({ stickerDate, sticker })); handleClose(); }; @@ -80,7 +82,7 @@ const AddUpdateSticker = ({ add: [ { header: `Which sticker did you earn for ${format( - currDateObj, + stickerDateObj, "LLL d, y" )}?`, body: ( @@ -119,7 +121,7 @@ const AddUpdateSticker = ({ edit: [ { header: `Which sticker did you want to update for ${format( - currDateObj, + stickerDateObj, "LLL d, y" )}?`, body: ( @@ -161,7 +163,7 @@ const AddUpdateSticker = ({ }, { header: `Are you sure you want to change the sticker for ${format( - currDateObj, + stickerDateObj, "M/d/y" )}?`, body: ( diff --git a/src/components/calender/modals/StickerSelector.tsx b/src/components/calender/modals/StickerSelector.tsx index e2eba7b..63b5199 100644 --- a/src/components/calender/modals/StickerSelector.tsx +++ b/src/components/calender/modals/StickerSelector.tsx @@ -16,6 +16,7 @@ interface StickerSelectorProps { * @param {StickerVal} currSticker The current sticker for the date. * @param {StickerVal} selectedSticker The selected sticker for the current. date * @param {React.Dispatch>} updateSelectedSticker TThe react state function to update the selected sticker that will be added or updated. + * @param {React.MutableRefObject} initialSticker the sticker that should have be in focus when the modal opens. */ const StickerSelector = ({ diff --git a/src/features/calender/stickers.ts b/src/features/calender/stickers.ts index f4d9b5f..7e2c05a 100644 --- a/src/features/calender/stickers.ts +++ b/src/features/calender/stickers.ts @@ -7,7 +7,7 @@ interface StickersSlice { } interface UpdateStickerSlicePayload { - date: string; + stickerDate: string; sticker: StickerVal; } @@ -23,14 +23,13 @@ const stickersSlice = createSlice({ state: StickersSlice, actions: PayloadAction ) { - const { date, sticker } = actions.payload; + const { stickerDate, sticker } = actions.payload; - const dateObj = new Date(date); + const dateObj = new Date(stickerDate); // Getting index for the stickers array, sticker from the stickers array, and the date from the sticker. const index: number = getDate(dateObj) - 1; const currSticker: Sticker = state.stickersMonth[index]; - const { date: stickerDate } = currSticker; // Updating the edited status by checking if the sticker date is today's date. const edited = currSticker.edited @@ -48,7 +47,7 @@ const stickersSlice = createSlice({ // Updating the information of the sticker. const newSticker: Sticker = { id: id, - date: date, + date: stickerDate, sticker: sticker, edited: edited, manual: false diff --git a/types/CalenderContext.d.ts b/types/Calender.d.ts similarity index 100% rename from types/CalenderContext.d.ts rename to types/Calender.d.ts diff --git a/types/StickerContext.d.ts b/types/Stickers.d.ts similarity index 76% rename from types/StickerContext.d.ts rename to types/Stickers.d.ts index 9a42cc1..d57cbbd 100644 --- a/types/StickerContext.d.ts +++ b/types/Stickers.d.ts @@ -16,3 +16,9 @@ interface Sticker { } type StickerDays = Sticker[]; + +interface StickerModal { + isOpen: boolean; + selectedSticker: StickerVal; + step: number; +} From 2ba377a3578c864c60d718d2bb4679aa831ae9b5 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:39:58 -0500 Subject: [PATCH 07/10] Updated version info. --- package.json | 2 +- src/theme/layout/Header.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2aa1ef3..ca2c131 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "name": "lucid-creations-media-potty-chart", "homepage": "https://lucidcreations.media/introducing-code-name-potty-chart/", - "version": "v0.0.9.11-alpha", + "version": "v0.0.10-alpha", "author": { "name": "Lucid Creations Media", "url": "https://lucidcreations.media", diff --git a/src/theme/layout/Header.tsx b/src/theme/layout/Header.tsx index 69bd82e..b1839a1 100644 --- a/src/theme/layout/Header.tsx +++ b/src/theme/layout/Header.tsx @@ -15,7 +15,7 @@ import appLogo from "../../../public/images/logo.svg"; const Header = (): JSX.Element => { const appName = "LCM Potty Chart"; - const appVersion = "v0.0.9.11-alpha"; + const appVersion = "v0.0.10-alpha"; // Add transparency while not at the top of the page. const [transparentNavbar, setTransparentNavbar] = useState(false); From 1cb12cdf2166f23c6feab6ed408bb2d51f688be5 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:49:13 -0500 Subject: [PATCH 08/10] Upgraded: chakra-ui, emotion, framer-motion, prettier, react, and react-dom --- package.json | 14 +- yarn.lock | 1355 +++++++++++++++++++++++++------------------------- 2 files changed, 683 insertions(+), 686 deletions(-) diff --git a/package.json b/package.json index ca2c131..fb0a39a 100644 --- a/package.json +++ b/package.json @@ -16,17 +16,17 @@ "pretty": "prettier --write ." }, "dependencies": { - "@chakra-ui/react": "^2.1.2", - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", + "@chakra-ui/react": "^2.2.1", + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", "@iconify/react": "^3.2.2", "@reduxjs/toolkit": "^1.8.2", "date-fns": "^2.28.0", "formik": "^2.2.9", - "framer-motion": "^6.3.10", + "framer-motion": "^6.3.11", "next": "12.1.6", - "react": "^18.1.0", - "react-dom": "^18.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-redux": "^8.0.2", "sharp": "^0.30.6" }, @@ -41,7 +41,7 @@ "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.5.0", - "prettier": "^2.6.2", + "prettier": "^2.7.0", "typescript": "^4.7.3" }, "resolutions": { diff --git a/yarn.lock b/yarn.lock index 6f4bb5a..794d174 100644 --- a/yarn.lock +++ b/yarn.lock @@ -97,858 +97,835 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/accordion@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/accordion@npm:2.0.2" - dependencies: - "@chakra-ui/descendant": 3.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/transition": 2.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - framer-motion: ">=4.0.0" - react: ">=18" - checksum: 2dd7900a3b394ac342889706faa6ed5125303e7498d7dcda19d65a34098a371c3a18d748b06f45d5caf77243e485138050e1aaf1d4cb5c86aed7f884ae0a2bfe - languageName: node - linkType: hard - -"@chakra-ui/alert@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/alert@npm:2.0.1" - dependencies: - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/spinner": ^2.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 950b25af5551c3935083ec24f815a0978a4f9fccf7fbf1c4b14578daeddc581cb8c69f7f836a437764561e9a37942e39646aa58a62773493e26309cbb9c07c9d - languageName: node - linkType: hard - -"@chakra-ui/anatomy@npm:2.0.0": - version: 2.0.0 - resolution: "@chakra-ui/anatomy@npm:2.0.0" - dependencies: - "@chakra-ui/theme-tools": ^2.0.0 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - checksum: 3f792ac67e5000a214928ca0ffc9a3a96f65d1d59a3d6f2ce9e870a9a0d63ed046e75c5d868b71f006087a438b72721d7b0e0a1dfa226d285b1638ebe60ffe6d - languageName: node - linkType: hard - -"@chakra-ui/avatar@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/avatar@npm:2.0.2" - dependencies: - "@chakra-ui/image": 2.0.2 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: bcc280b751902cfe4cd43e54eacdc266c3a02677ec548581b684a48475958e61a5a109b69f9c5b77539132d9e11b535dee57e65c698a53292ffcae8082024cab - languageName: node - linkType: hard - -"@chakra-ui/breadcrumb@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/breadcrumb@npm:2.0.1" - dependencies: - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 2ab67f6ed454f88001393b235dde8f513b652dcd56127bbc287e4bbffb7a858a0b8b54589ea08d5752a7adeede5262be7c6fa1ea1856ac5b957343f36bc5dbf3 - languageName: node - linkType: hard - -"@chakra-ui/button@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/button@npm:2.0.1" - dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/spinner": 2.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 958980983526248fbe5d5409f67aa7dd6ba4e212cbd39bec402ad65a98a7a8210b92d8258018c238fe3299c1deb92470cc812ca1d9ee76dc4cb7bee4ff790d6b - languageName: node - linkType: hard - -"@chakra-ui/checkbox@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/checkbox@npm:2.0.2" - dependencies: - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - framer-motion: ">=4.0.0" - react: ">=18" - checksum: 6da5436ef93ea673e0ef6b3812aba3a578ab574a1ab49a265849cbcdce201d5689d0c297ab0c0369483781a6a7472b6d746fe511d5b835bea89a62df01c8dfe2 - languageName: node - linkType: hard - -"@chakra-ui/clickable@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/clickable@npm:2.0.1" - dependencies: - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - react: ">=18" - checksum: 82e008536a25e67f16cb1238c89a7e9f8528ed7a89a15d55b81d8f226a9ee0ad15c666d2e2dba0df4a79242d85d97edec6275d90d0df678d4e2116b0fa3bf335 - languageName: node - linkType: hard - -"@chakra-ui/close-button@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/close-button@npm:2.0.1" - dependencies: - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 04e53749c1ef02dd7ae815e631f9910855fe6026322e3810ea3fde85b207a76d2b2dc2d1f20824bf6a99e5079d2029fa1ea87aacb9b11e9e9fe326fac8932cf6 - languageName: node - linkType: hard - -"@chakra-ui/color-mode@npm:2.0.3": +"@chakra-ui/accordion@npm:2.0.3": version: 2.0.3 - resolution: "@chakra-ui/color-mode@npm:2.0.3" + resolution: "@chakra-ui/accordion@npm:2.0.3" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/descendant": 3.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/transition": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + framer-motion: ">=4.0.0" react: ">=18" - checksum: 380def81c8cb4153719cc8209d7bc27a018bd44c4b957c55bc1a075015fdd2eefc701f6032247e39a2bc8076ed5744693a8c7b52223bb010d38936ffb3380add + checksum: f3627ea4d527cc018695e35b099b73ae4a88305ef9214352e988811d118c5e1d70e1b1982edcd644be6b3b4f6c58fd2e5bae8407a75f4a2a9a9edeb04d3d8fc0 languageName: node linkType: hard -"@chakra-ui/control-box@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/control-box@npm:2.0.1" +"@chakra-ui/alert@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/alert@npm:2.0.2" dependencies: - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/spinner": ^2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 56e6a515240d763b48d026efe21783bb03c7024b653ce273e8dced4f401cb22b235265cb0883b38264e2dfa3d917954283e4f656c50e0bacc07c379daff6f94a + checksum: 0a7cbee59f1928f3e70077f567a32b5847d8dda11b6aa29914f424d23ae12d5f18b6df3f737b7a685176950faff0ea0e2e080a56a45810f6995c970840736845 languageName: node linkType: hard -"@chakra-ui/counter@npm:2.0.1": +"@chakra-ui/anatomy@npm:2.0.1": version: 2.0.1 - resolution: "@chakra-ui/counter@npm:2.0.1" + resolution: "@chakra-ui/anatomy@npm:2.0.1" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/theme-tools": ^2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + checksum: 9457334d0c5c6f76efcb35f4c6d3e35ebed75de92d7a040a9e967fe35124afed2c318d9431624c428ebcfaa147a44889ef594d59d1f6fd6d968ad54a20bb2dd5 + languageName: node + linkType: hard + +"@chakra-ui/avatar@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/avatar@npm:2.0.3" + dependencies: + "@chakra-ui/image": 2.0.3 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: f84908c2ae60d0e78e5fe052d4666e618ff4066a7488ae0e34cd96d6551b243f0b14546db0f529930165fb6537a335cab028e0507f12fbe37f7ca0a61372c650 + languageName: node + linkType: hard + +"@chakra-ui/breadcrumb@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/breadcrumb@npm:2.0.2" + dependencies: + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 3907900dcba5f631c94792acf4da536fd0eb1abb4e758ce2319f506a95b3058aa681aa3612d833caffab50c838427f58b183f91dd585c2974973936243336ff2 + languageName: node + linkType: hard + +"@chakra-ui/button@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/button@npm:2.0.2" + dependencies: + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/spinner": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 6eb7ad37040f278fb200876f934192d17291e25db506868549acab6ab0bc29aac6e7f703fe334e44f94d2db38b4a0bec472d3ccff506be29420b4aad1b4a8f1f + languageName: node + linkType: hard + +"@chakra-ui/checkbox@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/checkbox@npm:2.1.0" + dependencies: + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 + "@zag-js/focus-visible": 0.1.0 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + framer-motion: ">=4.0.0" + react: ">=18" + checksum: 2c449b0ce8155f63676911531fcb691b6a2a6a2a1bf5c942bd3f8191602e711c1a9aefe0ead410a0945c6f887f52edd122045cf5e8edac1232104ca07403849a + languageName: node + linkType: hard + +"@chakra-ui/clickable@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/clickable@npm:2.0.2" + dependencies: + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: react: ">=18" - checksum: 22cde42a5f0f095df1d2aa036d77e7e21b499474c518c139f6546224540ea41a975936d6ae2825d4a9754b8d4323ff0cc89dc735e490a025d75d569e9d98727a + checksum: 085492c4a859513577b37424bea582403d461cd4953e3c89527f54d2dd5e7240a437b9890a8218ff25fbf33cc3b407dc23dc30754e7a42aedcee5c0347658448 languageName: node linkType: hard -"@chakra-ui/css-reset@npm:2.0.0": - version: 2.0.0 - resolution: "@chakra-ui/css-reset@npm:2.0.0" +"@chakra-ui/close-button@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/close-button@npm:2.0.2" + dependencies: + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 9ea200385b52555bf62742546b24784ffa4d4246f2dfea67d80e319013dadca32ddf03ee181d2b06f6814d3f65540b776b0f03f2b772802b3c3e54b2fbf250f2 + languageName: node + linkType: hard + +"@chakra-ui/color-mode@npm:2.0.4": + version: 2.0.4 + resolution: "@chakra-ui/color-mode@npm:2.0.4" + dependencies: + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + react: ">=18" + checksum: acacf73579e0b01105a4b6134e2d214963d97d5c3b1e22fc35e5388cc0536fc3de61f42eadc3e376efaa6eb6a78fbc345d85ee5e542385c1ce5d940662e1aea2 + languageName: node + linkType: hard + +"@chakra-ui/control-box@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/control-box@npm:2.0.2" + dependencies: + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 3ac16690ce116f63239818263cca60cdf344d72202ad89f075433e01950993b52a13b3c85e5dbf25517a614a4f79b5f4c3c57e546810b46e1762532ad7ac59af + languageName: node + linkType: hard + +"@chakra-ui/counter@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/counter@npm:2.0.2" + dependencies: + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + react: ">=18" + checksum: 99b6d74ef7a43a4a0ba135c4d40ee505efcb8f563fc350cdf06b4ea76c9a6ebfba65772ede37062c93cc328346fe8ebe05b44d5109b0ddf5ba308dffe08eca5a + languageName: node + linkType: hard + +"@chakra-ui/css-reset@npm:2.0.1": + version: 2.0.1 + resolution: "@chakra-ui/css-reset@npm:2.0.1" peerDependencies: "@emotion/react": ">=10.0.35" react: ">=18" - checksum: ebc7ea78523e2cb58b9e42a7985ffc5b6d261ef909b37155f61bd9675030e9a37d0a11f96107194b9b4fbb7a0a7d795e5d18ac2c146bcae7f2ee44377261e8d6 + checksum: 90f284908af6632c811579862e0048ed481b4a27c4d61a0aa0f431909a1294729b7a629547f594ec219ee0b472f81e2b87130e01feee05ad10ee98a91a3357e4 languageName: node linkType: hard -"@chakra-ui/descendant@npm:3.0.1": - version: 3.0.1 - resolution: "@chakra-ui/descendant@npm:3.0.1" +"@chakra-ui/descendant@npm:3.0.2": + version: 3.0.2 + resolution: "@chakra-ui/descendant@npm:3.0.2" dependencies: - "@chakra-ui/react-utils": ^2.0.0 + "@chakra-ui/react-utils": ^2.0.1 peerDependencies: react: ">=18" - checksum: b42a127794c5f9d5fc149335b2d676ed7157498b5e89af8940b7f30f4adb4a8526f85fcd5e80984ffcc1657b17ff2330e96a95bbac5af138689b28f284662f14 + checksum: 163e99e5ba09f9747bb92e94a18b8d0e00d8973c313f57df744d60448715a0ea56f2bc97f091c4f9bcae4b7c89ea8eeb4595e4042599dae129015efef0d96244 languageName: node linkType: hard -"@chakra-ui/editable@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/editable@npm:2.0.1" +"@chakra-ui/editable@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/editable@npm:2.0.2" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 9e946a22d8e9c592332e15352b5f626809dcc0b41c045cb61dc01f85069efaf543f0c7bce43317bece56ddfe552c289308b065f6fe0f1a927fb51cbaba1aae90 + checksum: 6287043e22912e67d503fe7eb41d34fc142d323f2751319fb5df14f5a04e0372cab83070e9a24973d95cbc0947f8684e2c072f647d5f48fcd5e9c3f9524f4a88 languageName: node linkType: hard -"@chakra-ui/focus-lock@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/focus-lock@npm:2.0.2" +"@chakra-ui/focus-lock@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/focus-lock@npm:2.0.3" dependencies: - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 react-focus-lock: ^2.9.1 peerDependencies: react: ">=18" - checksum: 6b0cc0f143c4788dff2876be5105f7bc7fd140438d5c74ddcfe51a0c1ff06373e97a8c9c453437bbfce4e2cc29e2e2839a14a0001a07ad1ecb1df861ea95acfc + checksum: 03eb4b7fe982f47ffc90b913f751d41cfef628a2fafb2760467c8b3fa6d1fe3df86bc38c8f7cf1857097d44396eb97dc0306e83c812a5d85206d17f087c0d6f3 languageName: node linkType: hard -"@chakra-ui/form-control@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/form-control@npm:2.0.1" +"@chakra-ui/form-control@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/form-control@npm:2.0.2" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: c2b0756f4089c52a243df3d4aadabf653af7d9feef6e2fb71cc31cbde148fefda30a3445ffb4a22c4fe55ed943547d030c1ac23cbdd657c8b5e37ca7f54653d1 + checksum: 5907746758a3a00bced88c40e0c14aebe207ad2403066f0bf41c3c4a9584630d12c6b925195aad74db35f1b59b59daf0304ea43560be20ed9263921ceb818bc7 languageName: node linkType: hard -"@chakra-ui/hooks@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/hooks@npm:2.0.1" +"@chakra-ui/hooks@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/hooks@npm:2.0.2" dependencies: - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 compute-scroll-into-view: 1.0.14 copy-to-clipboard: 3.3.1 peerDependencies: react: ">=18" - checksum: b56cc09b9aacb50ec4aaae59876216368302c6973d8baa495661ff9629dceeb291d30d45ee9c4d1efeab632ba3bf33d5df4140fdfa482e3247e0be7606e3ed21 + checksum: 4f3d8d679ea7b3251947833f31e84daf041fa8c80833dddd95cdf1945c313e5e89b624d859883263ce2d9796b496587d8cdfe8b20686b31bc6600458178e12e0 languageName: node linkType: hard -"@chakra-ui/icon@npm:3.0.1": - version: 3.0.1 - resolution: "@chakra-ui/icon@npm:3.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: e2e4f5548a9bb8359773742cb7a269dff2fa936f3e39df744b4bbb1a0513f1392771d9ba44cfc2a417b111a640664ba5ef45a26aed27979412048f408f6c403e - languageName: node - linkType: hard - -"@chakra-ui/image@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/image@npm:2.0.2" - dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: ff6909e63915fd0de901951de0c6e5b37bc0fb363dd8f9b3dd2b8aeec1e730a115bd7c49f0ecbec30c4fcaf4f8ea9d1712cfdf44d4c4d603856809f8cd868e50 - languageName: node - linkType: hard - -"@chakra-ui/input@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/input@npm:2.0.1" - dependencies: - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 3abdc461f6531f4fd7f0b301769d38109da6d6304dd3014f71b80d8e140c0dc64f456c0267cb902f9e7dc31b50c206b9a5d25d5a00a399e48adb0c5c4a613f78 - languageName: node - linkType: hard - -"@chakra-ui/layout@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/layout@npm:2.0.1" - dependencies: - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 8bac1a56070cc1f4d0c3cff8051a93cadc8fd25a85b7b87d2c4638578e3cb07281fe75b63930d6e3823621045e8295f3b3191c3b405c5a5476629905ffadfe2e - languageName: node - linkType: hard - -"@chakra-ui/live-region@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/live-region@npm:2.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - peerDependencies: - react: ">=18" - checksum: 382e7f3f8493dba46edaf410b4ce5a614d7af723045b5a155a339783e1a89535b03261e1d7b879219b9d7b50744ddaebfe2707037a80e4c391e875974f94553e - languageName: node - linkType: hard - -"@chakra-ui/media-query@npm:3.0.2": +"@chakra-ui/icon@npm:3.0.2": version: 3.0.2 - resolution: "@chakra-ui/media-query@npm:3.0.2" + resolution: "@chakra-ui/icon@npm:3.0.2" dependencies: - "@chakra-ui/react-env": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 1f403d28b0c20e3922bd057ba2fc1f46cc0c367d6b0b3dd0a71e209ad95823dfe3759227d94b578d49fe278acb53a3b73034a2b7b580bd39bb85628ded2bbab3 + languageName: node + linkType: hard + +"@chakra-ui/image@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/image@npm:2.0.3" + dependencies: + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 0fbe1b72c15460c16f9cb8ff0ae338b5380ef0f1532d4defd82e512644fb246120ce1eedacd72e0cac710c765a48c37bf897d0967fa55a74eb426ad4faa4da44 + languageName: node + linkType: hard + +"@chakra-ui/input@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/input@npm:2.0.2" + dependencies: + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 641bf0219fbfbc72beb45a2da4be385f8d5e37e6060045d72d82cac91e46a09d21f4fb7a4f1e4a6bcc3a321b69ccafbc1870f88b6ebbaf4dc904f4af508305ed + languageName: node + linkType: hard + +"@chakra-ui/layout@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/layout@npm:2.0.2" + dependencies: + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: ce31ec9aa11f8b2f34d9ac1bf58a4470d254caebe92307a381ca4690d05e44979ca83f9841f3eb59a797f4c86c0684cd3d77c26c2dbcbe410664d43be27f99c9 + languageName: node + linkType: hard + +"@chakra-ui/live-region@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/live-region@npm:2.0.2" + dependencies: + "@chakra-ui/utils": 2.0.2 + peerDependencies: + react: ">=18" + checksum: 9bcfd24be124c6d4408ea0456ac4913e0d507e49f558f031677131be6d52e9c78288abff0935ea71752a780d936c77f6a4a61d2175459d7972accb0fd9176fca + languageName: node + linkType: hard + +"@chakra-ui/media-query@npm:3.1.0": + version: 3.1.0 + resolution: "@chakra-ui/media-query@npm:3.1.0" + dependencies: + "@chakra-ui/react-env": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" "@chakra-ui/theme": ">=2.0.0-next.0" react: ">=18" - checksum: d49a72aa0ae049b924c8f3e1ea4cea99e46a2346e40ef48f589f3af6b043738711ed6968c442523eba40f3a4d53df9c7092c3ef481dc107c8a324e1aed45119d + checksum: 883101ac396ecfb124a0e31969a1e65c1a52a1905d79f9222402f7688852f4d14ed06f75e4680888d2fa97530830020c6bd2a12be3f946bec4327239bc6d71b2 languageName: node linkType: hard -"@chakra-ui/menu@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/menu@npm:2.0.2" +"@chakra-ui/menu@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/menu@npm:2.0.3" dependencies: - "@chakra-ui/clickable": 2.0.1 - "@chakra-ui/descendant": 3.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/popper": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/transition": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/clickable": 2.0.2 + "@chakra-ui/descendant": 3.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/popper": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/transition": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 7d06e58857182984aaa01b0570d80e4b39f94f032d9902a5a8ca2ddd1148ec4526785fe8a7ba6e1781ccb731f48379fb2ae5f3a4633a955aff5d183ee17589e2 + checksum: ecc295965fb75ffe1edf9bcc4ed1e399868a46afdeb862d515e1ad3c30fa9085f908e0dba5a088ca0b89a884060e2d9bd3d2534f081192b8ec6f1ead8813f4d6 languageName: node linkType: hard -"@chakra-ui/modal@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/modal@npm:2.0.2" +"@chakra-ui/modal@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/modal@npm:2.0.3" dependencies: - "@chakra-ui/close-button": 2.0.1 - "@chakra-ui/focus-lock": 2.0.2 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/portal": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/transition": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/close-button": 2.0.2 + "@chakra-ui/focus-lock": 2.0.3 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/portal": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/transition": 2.0.2 + "@chakra-ui/utils": 2.0.2 aria-hidden: ^1.1.1 - react-remove-scroll: ^2.5.3 + react-remove-scroll: ^2.5.4 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: f2db455e5e425c93e5b1c13fabb4e9a4ff3fd2b97979f04f6e2fc2772543388923888b230cc09857cad171ca2b9c57a8bc0ba00d4f82051f24bef405bf29ae6e + checksum: 79b07122b5f5fef2fc5c75520ec558eff9ad4346fa2fec00f071e3ec282f94144c932f85a96f6d4cd11ebb4e75823b059857d6c03701586540dae4cbc561c08b languageName: node linkType: hard -"@chakra-ui/number-input@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/number-input@npm:2.0.1" - dependencies: - "@chakra-ui/counter": 2.0.1 - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 5d239233573e409c28633ce559924ed55b28301165c07660c95482488898d463cdf5b0a857c401c51d99efc9a61f7b68fb7f7689a8d02919747ee342b50b5e27 - languageName: node - linkType: hard - -"@chakra-ui/pin-input@npm:2.0.2": +"@chakra-ui/number-input@npm:2.0.2": version: 2.0.2 - resolution: "@chakra-ui/pin-input@npm:2.0.2" + resolution: "@chakra-ui/number-input@npm:2.0.2" dependencies: - "@chakra-ui/descendant": 3.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/counter": 2.0.2 + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 719cfe8aa2d6f4ff296b4096190821f3f4ad09d7f18ef6efcf14e312f586e1d64b481ca29002d9c3f25f4a5a554ca5e76f9d61e9ccdcfa6053616274a989b2df + checksum: be41b1132b5039afa65143495ec3235511c927f9fdb8ffc2a5ca1b8ec247f17744faedfef41c9e644728318d768348bfe0ef7443455c177432b862ef98ec99b6 languageName: node linkType: hard -"@chakra-ui/popover@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/popover@npm:2.0.1" +"@chakra-ui/pin-input@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/pin-input@npm:2.0.3" dependencies: - "@chakra-ui/close-button": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/popper": 3.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/descendant": 3.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 719cc4b91143e583853a1487976c7b78d67cdd948c14f4277df3a20af2fc3e1537e69ad2a62d75df18591b2c08b0eac6a1c80975f2076cd0ce41f99fcc9e1359 + languageName: node + linkType: hard + +"@chakra-ui/popover@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/popover@npm:2.0.2" + dependencies: + "@chakra-ui/close-button": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/popper": 3.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 1f560d957785b5245ddaa05f43a2b0ef2e6b4c5c3a7bc7c9b67a745c4ddc47fcb272002ff4d6585eebfe4573074b51d9002d07080d07b212fce1c5cb00594a08 + checksum: 9e6dccc6f90f987fdd6449dd085b8729a6d371fbbada2ffa2db73e780212d7905a5b4075f7901dc3ebebf0af246cfcb89f6785fe86537cc8d0f4ad7c02f74f19 languageName: node linkType: hard -"@chakra-ui/popper@npm:3.0.1": - version: 3.0.1 - resolution: "@chakra-ui/popper@npm:3.0.1" +"@chakra-ui/popper@npm:3.0.2": + version: 3.0.2 + resolution: "@chakra-ui/popper@npm:3.0.2" dependencies: - "@chakra-ui/react-utils": 2.0.0 + "@chakra-ui/react-utils": 2.0.1 "@popperjs/core": ^2.9.3 peerDependencies: react: ">=18" - checksum: b411af89d4e8ad248f1ad2894094cea91ebd6681dcef9341d2083a9469f31604b4d2ccc868bb518cbf37baddc3a6069501c716e81dd1535ae1b56f416434dbea + checksum: 1ac48919f8f081aefe30cfdfbf2c1fc8eb010a9aed4807a644dce0f6f66518073fa88c9cfcfdd83c7bb349a2c76f31098097e87c0d3a07dd6d061f7b14ccd06a languageName: node linkType: hard -"@chakra-ui/portal@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/portal@npm:2.0.1" +"@chakra-ui/portal@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/portal@npm:2.0.2" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: react: ">=18" react-dom: ">=18" - checksum: 0eabffe14d30ea6364f9945cda0e9d538d4998aa82513f7264a2443383b5397ab002d9ec3526c28b8424e03ef3da219c8448518050e32c31f557b91137c7ce7e + checksum: b985fa8e54068ed8e6091f3d1df16b57ceabbcde71952e1262f9bf39919125a105f431f99afa8b8cbebefe10a8e855a87d0a236b9db8e197b0170e02d9899040 languageName: node linkType: hard -"@chakra-ui/progress@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/progress@npm:2.0.1" +"@chakra-ui/progress@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/progress@npm:2.0.2" dependencies: - "@chakra-ui/theme-tools": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/theme-tools": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 3469220a6ad6e9e347393cbc559ab0f701a9a52f0f52757284c735ed14e66fc5008c3549287c85747c7f3307d9312d95954518c98b72101306851f62ee6e0b5e + checksum: 2f6588325a9becbc3c9062650b00fe0b1cc38bd420dcdbf48193af4c4f53247436a859fb0d6091d9cd08cd172b1d8e61c91256c29f1542c3e8752f70acb34893 languageName: node linkType: hard -"@chakra-ui/provider@npm:2.0.4": - version: 2.0.4 - resolution: "@chakra-ui/provider@npm:2.0.4" +"@chakra-ui/provider@npm:2.0.6": + version: 2.0.6 + resolution: "@chakra-ui/provider@npm:2.0.6" dependencies: - "@chakra-ui/css-reset": 2.0.0 - "@chakra-ui/portal": 2.0.1 - "@chakra-ui/react-env": 2.0.1 - "@chakra-ui/system": 2.1.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/css-reset": 2.0.1 + "@chakra-ui/portal": 2.0.2 + "@chakra-ui/react-env": 2.0.2 + "@chakra-ui/system": 2.1.3 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" react-dom: ">=18" - checksum: b64f192b6fc03bd36a04f99d8b87aef10605fdb74a378dae960ae52f2e20433880b772832122d886817cbf4ea3854c8c878f729d41e41874671c54c3b604064f + checksum: b7c4ee305b40019494a793a56af87bbb4c58b933ca92cc627503c36a5bac33de0704af696ada8e96b2e37cd6125d03d0bc036aa7d6251f4e9f8aa0e370debd85 languageName: node linkType: hard -"@chakra-ui/radio@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/radio@npm:2.0.1" +"@chakra-ui/radio@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/radio@npm:2.0.2" dependencies: - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 76360316cd2479e8fbc5bba03d06077f684946e026fce2faac0524d975258e5ed3396029e62e30c3c5ba7890ab5eab0bf330738f7003b9e1edbbddce510ad10e + checksum: 5011614250c338a5f60cccd946e8e755c92754b871d504b8441474fac920b29aa772d087eb2843eeba9600492f523c474e666e165ec56dd186f675ceedecf1ef languageName: node linkType: hard -"@chakra-ui/react-env@npm:2.0.1": +"@chakra-ui/react-env@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/react-env@npm:2.0.2" + dependencies: + "@chakra-ui/utils": 2.0.2 + peerDependencies: + react: ">=18" + checksum: 0b46d5e7da3856d2dbdef30bc87bb1b87517288097c253890ebead503bea0c4b56de403df24e0c3963177ffe31b9d2e9ec05c6dd37658541a06cbf3fae39ad65 + languageName: node + linkType: hard + +"@chakra-ui/react-utils@npm:2.0.1, @chakra-ui/react-utils@npm:^2.0.1": version: 2.0.1 - resolution: "@chakra-ui/react-env@npm:2.0.1" + resolution: "@chakra-ui/react-utils@npm:2.0.1" dependencies: - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": ^2.0.2 peerDependencies: react: ">=18" - checksum: a0989dd7f913de332692de8d3997445999b704a8bc4e4984b2793fe122e8e6d2521be10d28bd47548ca6600afbf496ee850f5559c764e598bcbb643728b16f54 + checksum: 63c1be6a332fe72be931c39d4b57eedde48a5cc315fd6c8048fc02fdd7bf8c2657848fcd1a75647c3bbc32d30427c44bd1942f3e4c6e0deb5f182a8077c83abd languageName: node linkType: hard -"@chakra-ui/react-utils@npm:2.0.0, @chakra-ui/react-utils@npm:^2.0.0": - version: 2.0.0 - resolution: "@chakra-ui/react-utils@npm:2.0.0" +"@chakra-ui/react@npm:^2.2.1": + version: 2.2.1 + resolution: "@chakra-ui/react@npm:2.2.1" dependencies: - "@chakra-ui/utils": ^2.0.0 - peerDependencies: - react: ">=18" - checksum: a4bc30c032d1db1ea9feef30fe6ae858fdf34031e9b64a7c047d66c7f16b741f3ed5be3a094319e509b5b0cfae4ea0a5c7b6c81a5a41f924239372104c470b9c - languageName: node - linkType: hard - -"@chakra-ui/react@npm:^2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/react@npm:2.1.2" - dependencies: - "@chakra-ui/accordion": 2.0.2 - "@chakra-ui/alert": 2.0.1 - "@chakra-ui/avatar": 2.0.2 - "@chakra-ui/breadcrumb": 2.0.1 - "@chakra-ui/button": 2.0.1 - "@chakra-ui/checkbox": 2.0.2 - "@chakra-ui/close-button": 2.0.1 - "@chakra-ui/control-box": 2.0.1 - "@chakra-ui/counter": 2.0.1 - "@chakra-ui/css-reset": 2.0.0 - "@chakra-ui/editable": 2.0.1 - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/image": 2.0.2 - "@chakra-ui/input": 2.0.1 - "@chakra-ui/layout": 2.0.1 - "@chakra-ui/live-region": 2.0.1 - "@chakra-ui/media-query": 3.0.2 - "@chakra-ui/menu": 2.0.2 - "@chakra-ui/modal": 2.0.2 - "@chakra-ui/number-input": 2.0.1 - "@chakra-ui/pin-input": 2.0.2 - "@chakra-ui/popover": 2.0.1 - "@chakra-ui/popper": 3.0.1 - "@chakra-ui/portal": 2.0.1 - "@chakra-ui/progress": 2.0.1 - "@chakra-ui/provider": 2.0.4 - "@chakra-ui/radio": 2.0.1 - "@chakra-ui/react-env": 2.0.1 - "@chakra-ui/select": 2.0.1 - "@chakra-ui/skeleton": 2.0.4 - "@chakra-ui/slider": 2.0.1 - "@chakra-ui/spinner": 2.0.1 - "@chakra-ui/stat": 2.0.1 - "@chakra-ui/switch": 2.0.2 - "@chakra-ui/system": 2.1.1 - "@chakra-ui/table": 2.0.1 - "@chakra-ui/tabs": 2.0.2 - "@chakra-ui/tag": 2.0.1 - "@chakra-ui/textarea": 2.0.2 - "@chakra-ui/theme": 2.0.3 - "@chakra-ui/toast": 2.0.5 - "@chakra-ui/tooltip": 2.0.1 - "@chakra-ui/transition": 2.0.1 - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 + "@chakra-ui/accordion": 2.0.3 + "@chakra-ui/alert": 2.0.2 + "@chakra-ui/avatar": 2.0.3 + "@chakra-ui/breadcrumb": 2.0.2 + "@chakra-ui/button": 2.0.2 + "@chakra-ui/checkbox": 2.1.0 + "@chakra-ui/close-button": 2.0.2 + "@chakra-ui/control-box": 2.0.2 + "@chakra-ui/counter": 2.0.2 + "@chakra-ui/css-reset": 2.0.1 + "@chakra-ui/editable": 2.0.2 + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/image": 2.0.3 + "@chakra-ui/input": 2.0.2 + "@chakra-ui/layout": 2.0.2 + "@chakra-ui/live-region": 2.0.2 + "@chakra-ui/media-query": 3.1.0 + "@chakra-ui/menu": 2.0.3 + "@chakra-ui/modal": 2.0.3 + "@chakra-ui/number-input": 2.0.2 + "@chakra-ui/pin-input": 2.0.3 + "@chakra-ui/popover": 2.0.2 + "@chakra-ui/popper": 3.0.2 + "@chakra-ui/portal": 2.0.2 + "@chakra-ui/progress": 2.0.2 + "@chakra-ui/provider": 2.0.6 + "@chakra-ui/radio": 2.0.2 + "@chakra-ui/react-env": 2.0.2 + "@chakra-ui/select": 2.0.2 + "@chakra-ui/skeleton": 2.0.6 + "@chakra-ui/slider": 2.0.2 + "@chakra-ui/spinner": 2.0.2 + "@chakra-ui/stat": 2.0.2 + "@chakra-ui/switch": 2.0.3 + "@chakra-ui/system": 2.1.3 + "@chakra-ui/table": 2.0.2 + "@chakra-ui/tabs": 2.0.3 + "@chakra-ui/tag": 2.0.2 + "@chakra-ui/textarea": 2.0.3 + "@chakra-ui/theme": 2.1.0 + "@chakra-ui/toast": 2.1.0 + "@chakra-ui/tooltip": 2.0.2 + "@chakra-ui/transition": 2.0.2 + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 987dbc8d55f86a3deaf480cf273f8483d0de872fe79af69408000740ace6c2d11f87f525984e6bf1478023bbb92011cf2e092ef51f4e5732c1f68a9cfd8cabbd + checksum: ecae920a1b505e35b2c6edd92bb5f9e74e333624409bb3709f871555bc91b98a879c17979019f7cba19c75cb6a3843c7916900357cb9ffd1a8e6ccde052379c1 languageName: node linkType: hard -"@chakra-ui/select@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/select@npm:2.0.1" +"@chakra-ui/select@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/select@npm:2.0.2" dependencies: - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: a5e9d8abda48783273314d9219d6f361d4640978dc994d732df2503e41b6cef4446abaa36003ca2aa321f98220d5e59339a04e4742177954022a3be6bf81bed8 + checksum: e4d2d70720e68e1dc091bd02a4d77a5eabe188c50a3470daf7b758604a8171dac53cb627541cf30101219e7769637b3b3f2b0912e7a1060ca6bc18b7ba51aaa8 languageName: node linkType: hard -"@chakra-ui/skeleton@npm:2.0.4": - version: 2.0.4 - resolution: "@chakra-ui/skeleton@npm:2.0.4" +"@chakra-ui/skeleton@npm:2.0.6": + version: 2.0.6 + resolution: "@chakra-ui/skeleton@npm:2.0.6" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/media-query": 3.0.2 - "@chakra-ui/system": 2.1.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/media-query": 3.1.0 + "@chakra-ui/system": 2.1.3 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/theme": ">=2.0.0-next.0" "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" - checksum: 5df05a0631228c4388e41b2b47caef432d4dc68ba91ca871d3cfd22b89121b215cd4128670010f7577482729b6d1f9c52fb3274db792ca352c457b84bf089134 + checksum: a2be582d1fc028e58a684bbc15b26d5e0ecf48108860701c87659f8c03b0ecb3bc9eb3e9a2342844776ab90ba5045746a13a5dbb754444e328449c25dd95e1cd languageName: node linkType: hard -"@chakra-ui/slider@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/slider@npm:2.0.1" - dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: ab4d42d35e9a0437a5f3464460e853b8125d894330db58ca2028c3485efd80de7f05cb7cb21f002213853e08c57ddcc316846f51ad62c88247c5ec5f6c48dbc1 - languageName: node - linkType: hard - -"@chakra-ui/spinner@npm:2.0.1, @chakra-ui/spinner@npm:^2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/spinner@npm:2.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 14ed117f7ee268048551762ac218a0cf2cdcbd8e5c588cd0bc5eadf63097b48f4c8bc066ef97798699582f72f9ae595b160faf2876c2f7b97e55f73a89d20ebe - languageName: node - linkType: hard - -"@chakra-ui/stat@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/stat@npm:2.0.1" - dependencies: - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 1e9327bbda045656b64f01dee8ec9242935ff6b5ca0ffcc8691fe8854a45aec467f5cbc14d90bcbf2aebe0c0abeebace6174a811f5c798bfc50aac9c11c1b18b - languageName: node - linkType: hard - -"@chakra-ui/styled-system@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/styled-system@npm:2.1.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - csstype: ^3.0.11 - checksum: 0780fc7d53d5990b1f28a34d492c77847eeecd6ec7469249a75c5e14d237de80cca271aaba344fedec4d696805fa7cffae93cc05b76816dd3e9c28ace1c6c535 - languageName: node - linkType: hard - -"@chakra-ui/switch@npm:2.0.2": +"@chakra-ui/slider@npm:2.0.2": version: 2.0.2 - resolution: "@chakra-ui/switch@npm:2.0.2" + resolution: "@chakra-ui/slider@npm:2.0.2" dependencies: - "@chakra-ui/checkbox": 2.0.2 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 874e8b53a793f527b5e2dda0d7a261de3793543ca4c3ef4b11ef965e8374d59149f6f7e1e8d3ca6408e85cd8d6011283c8134a57494510da644bbf90c94cf231 + languageName: node + linkType: hard + +"@chakra-ui/spinner@npm:2.0.2, @chakra-ui/spinner@npm:^2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/spinner@npm:2.0.2" + dependencies: + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 3ba8bb380525015966cd0d1e9a94a06c69542efcb0e73bceb0d96d13c749323dc92b1a252fbcab2b7dffa7c0fb14fb273260e03ca1769d04f4bfc8c2e99b1a17 + languageName: node + linkType: hard + +"@chakra-ui/stat@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/stat@npm:2.0.2" + dependencies: + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 5f364ea934a04319e2c7c29d026421cfe89fce209468957ca4374086d42e2afe5d77fb4bb209a8becc258090a48f5146d77f494fee77e985394ea77816537e78 + languageName: node + linkType: hard + +"@chakra-ui/styled-system@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/styled-system@npm:2.2.0" + dependencies: + "@chakra-ui/utils": 2.0.2 + csstype: ^3.0.11 + checksum: 28eb88f36da5262e7d6f798fa162d6ae6ac3bef45c05552c95664295297d8cb716cd8e20c7a6efdab835dbd898d5c1667b4143ab42f206518b5001564d5951aa + languageName: node + linkType: hard + +"@chakra-ui/switch@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/switch@npm:2.0.3" + dependencies: + "@chakra-ui/checkbox": 2.1.0 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 040232c7773a6b5f38bf316228276767731c0e2ee1575fe3f5c6ea9b997226c797bb86b077facf0e2574beed71dfa8d325aa07b9faca50d3674e0590ab2a6591 + checksum: b5fea592448bae98158939ee87caf09002d6dd4ddbf3cfe002d6dc91772ffb8b72f14c384d0a0c3ec1392bec54183e280a2a1e08283600bc7727bf27d20b90a4 languageName: node linkType: hard -"@chakra-ui/system@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/system@npm:2.1.1" +"@chakra-ui/system@npm:2.1.3": + version: 2.1.3 + resolution: "@chakra-ui/system@npm:2.1.3" dependencies: - "@chakra-ui/color-mode": 2.0.3 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/styled-system": 2.1.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/color-mode": 2.0.4 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/styled-system": 2.2.0 + "@chakra-ui/utils": 2.0.2 react-fast-compare: 3.2.0 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" - checksum: 2d7c3dc6d41312843ab7c54ef5421e18bdef831798db0c93586cab4e604a947eefb2986879bc839fc7c596f9b2a08f085d588c128e918b77b79d71dd09feb460 + checksum: 82106cae44d2d53bce0a03f08f8268c9ad82e830bce3466c1243cc9afb830d601b7002cd9c3c43449c598ff36a0090b1cc539a70ea5aaa784349ab07b1ec29ab languageName: node linkType: hard -"@chakra-ui/table@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/table@npm:2.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 6e0e290817b3f0b6cb773fcbb2ce8195c2684fb134c249d42441ba037475126afc9f8b368666a5e192ed4d7d0bdf9d034c5c4625c0e519fffaabdad0ba4f4e2a - languageName: node - linkType: hard - -"@chakra-ui/tabs@npm:2.0.2": +"@chakra-ui/table@npm:2.0.2": version: 2.0.2 - resolution: "@chakra-ui/tabs@npm:2.0.2" + resolution: "@chakra-ui/table@npm:2.0.2" dependencies: - "@chakra-ui/clickable": 2.0.1 - "@chakra-ui/descendant": 3.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: 925e3a4aac7eb15993b0810781e7961dcb7874ce6dabea5442a604e5d79f7bb4fce916cc57491722435919e3758d856c5228ad5e8544f737c94a90902478af61 + checksum: 19c47fb5b105b8999f1b556d9fc8a568ca3133651d2fb0fa91b9d03b74d30972d008ae14cce492bd45ff275742f3a6b308538f33b74d86e526d9e8365293145d languageName: node linkType: hard -"@chakra-ui/tag@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/tag@npm:2.0.1" - dependencies: - "@chakra-ui/icon": 3.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 1a8463d368b32c3532f48ecd2b7ca587cf62067eb7e404d3b9427572c1c92997b68d39d844f732ad173e29871df9bb007e9a90cb2bf0ffef73423fc5b6262aa7 - languageName: node - linkType: hard - -"@chakra-ui/textarea@npm:2.0.2": - version: 2.0.2 - resolution: "@chakra-ui/textarea@npm:2.0.2" - dependencies: - "@chakra-ui/form-control": 2.0.1 - "@chakra-ui/utils": 2.0.1 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - react: ">=18" - checksum: 6d9855aa1ad6c6092f1e60f674ff698671510bb105ac8c4d1312fbee7247d05d94a329d7559c0dafd01fa76830adbe65ad56004dbe6b624445d4573a8fc991f0 - languageName: node - linkType: hard - -"@chakra-ui/theme-tools@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/theme-tools@npm:2.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 - "@ctrl/tinycolor": ^3.4.0 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - checksum: 47c5a17c59cf2ce3ae5648c33115a7d3c176a25db7d62601ce4776c35145498a7bbc6b9cb3e7897af6d86de4f3e2dc702acfa42b64b0ee828a85a2937686025c - languageName: node - linkType: hard - -"@chakra-ui/theme-tools@npm:^2.0.0": - version: 2.0.0 - resolution: "@chakra-ui/theme-tools@npm:2.0.0" - dependencies: - "@chakra-ui/utils": 2.0.0 - "@ctrl/tinycolor": ^3.4.0 - peerDependencies: - "@chakra-ui/system": ">=2.0.0-next.0" - checksum: 26ff7a2e9bc35974e5531654ae7aac7c76e0218c56b3e8bff6d81fecb15fa39f2f6adac9c623ca7292e50943b94cb1d6a6781583e00868f93bac0c10a215d881 - languageName: node - linkType: hard - -"@chakra-ui/theme@npm:2.0.3": +"@chakra-ui/tabs@npm:2.0.3": version: 2.0.3 - resolution: "@chakra-ui/theme@npm:2.0.3" + resolution: "@chakra-ui/tabs@npm:2.0.3" dependencies: - "@chakra-ui/anatomy": 2.0.0 - "@chakra-ui/theme-tools": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/clickable": 2.0.2 + "@chakra-ui/descendant": 3.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" - checksum: f3d782f71dab471f3c5315ddebe8eea06f07cbeeb221c917647c98cfcc0093b124723d2b1083adf202cc8a0aacfd52a22fb10ddecf2081d06353c6ab0af94f91 + react: ">=18" + checksum: 20abc59bd72b9f93b6eb2f2971c427d0ae83f609a27afccacb8bdb82c52a8a95d53f6669464c9f97b23527832abd835fb28e3bba008bbee6bbfd6ea65fd7db2e languageName: node linkType: hard -"@chakra-ui/toast@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/toast@npm:2.0.5" +"@chakra-ui/tag@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/tag@npm:2.0.2" dependencies: - "@chakra-ui/alert": 2.0.1 - "@chakra-ui/close-button": 2.0.1 - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/portal": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/system": 2.1.1 - "@chakra-ui/theme": 2.0.3 - "@chakra-ui/transition": 2.0.1 - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/icon": 3.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 449e5cd0b3cba83464fcaad74e14e9ecf68e843a1823167e30e502118a3cb46aa68aa18841ecbff21f05d588523ef73e35b32e3070533bbeeb1f141f423a273f + languageName: node + linkType: hard + +"@chakra-ui/textarea@npm:2.0.3": + version: 2.0.3 + resolution: "@chakra-ui/textarea@npm:2.0.3" + dependencies: + "@chakra-ui/form-control": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + react: ">=18" + checksum: 24abcb4e910c4a9bd0e51ab942c742f2607cb53642017100ea9baf81edddd64dabae84128055104dcb832c761bf4874269c5c3e4493db55f7290569d691d38d5 + languageName: node + linkType: hard + +"@chakra-ui/theme-tools@npm:2.0.2, @chakra-ui/theme-tools@npm:^2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/theme-tools@npm:2.0.2" + dependencies: + "@chakra-ui/utils": 2.0.2 + "@ctrl/tinycolor": ^3.4.0 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + checksum: 5bcfd0494e91e4635a9fe6c3b2809c9d0ad95e35836e7d2c862f92390cfe1ea77c03e5a0415c2f49127fbfa2a0798743d1459916c60a0432dc323b8c08734dae + languageName: node + linkType: hard + +"@chakra-ui/theme@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/theme@npm:2.1.0" + dependencies: + "@chakra-ui/anatomy": 2.0.1 + "@chakra-ui/theme-tools": 2.0.2 + "@chakra-ui/utils": 2.0.2 + peerDependencies: + "@chakra-ui/system": ">=2.0.0-next.0" + checksum: 8cc0426c611377eb328e6f5f39e7b06c6030c0c352372aa1f0eddc329c9627e1e959786652a3235906ab656a60a7da8560183aadea889cc354ab78691b3e6683 + languageName: node + linkType: hard + +"@chakra-ui/toast@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/toast@npm:2.1.0" + dependencies: + "@chakra-ui/alert": 2.0.2 + "@chakra-ui/close-button": 2.0.2 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/portal": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/system": 2.1.3 + "@chakra-ui/theme": 2.1.0 + "@chakra-ui/transition": 2.0.2 + "@chakra-ui/utils": 2.0.2 peerDependencies: framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 0e521eaf9119d65dfd1fa19a084430922830a614525359b5e0a7e7f552897e1c793e86cc406dacbbd43dae0041418855a27a11a16e984ef8a9649dedc47e76b9 + checksum: 64376a5a0332feee2c1140da76813b8d2a2f7d04fafc43ab365ba63776dd88d3c65e571f0c17539cfa8df2cc56a31bc8337c575876e8650425926a4f5114d9f9 languageName: node linkType: hard -"@chakra-ui/tooltip@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/tooltip@npm:2.0.1" +"@chakra-ui/tooltip@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/tooltip@npm:2.0.2" dependencies: - "@chakra-ui/hooks": 2.0.1 - "@chakra-ui/popper": 3.0.1 - "@chakra-ui/portal": 2.0.1 - "@chakra-ui/react-utils": 2.0.0 - "@chakra-ui/utils": 2.0.1 - "@chakra-ui/visually-hidden": 2.0.1 + "@chakra-ui/hooks": 2.0.2 + "@chakra-ui/popper": 3.0.2 + "@chakra-ui/portal": 2.0.2 + "@chakra-ui/react-utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 + "@chakra-ui/visually-hidden": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: d6cdbcacd7f01e17fc6affa9bfa84f44859e1cc2d52c9c671912380ab213960187a6b3d52d77f16469f40b495defe61b43df4a2714e75c61a17c99cb9696e3f8 + checksum: a51ac6b5c155e7c72bee297278a73bddc0560c3645b1b9c6716dcd149b8c245e8a1565c9d0e50a348734ae1271adc3e039f4e0781257604e51a3197ef2d3af8c languageName: node linkType: hard -"@chakra-ui/transition@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/transition@npm:2.0.1" +"@chakra-ui/transition@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/transition@npm:2.0.2" dependencies: - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: framer-motion: ">=4.0.0" react: ">=18" - checksum: dd0de5be913a9a1ad2632a1ce1c4b79f2fbecb118f32f015c371e0661ee9a7724c14aa4e4fd649805c615fae1c322cfd0401c6947d06c11ed31019af1ef36791 + checksum: 2ad14599e7c003cb64f3c1c76ebcb594bbcb49b0098c21eaf9a5c29ccf3b788265cdf1b3c0c011464f6f12c186811a1373a0b258d6d1a2317b0769bb97670cf0 languageName: node linkType: hard -"@chakra-ui/utils@npm:2.0.0, @chakra-ui/utils@npm:^2.0.0": - version: 2.0.0 - resolution: "@chakra-ui/utils@npm:2.0.0" +"@chakra-ui/utils@npm:2.0.2, @chakra-ui/utils@npm:^2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/utils@npm:2.0.2" dependencies: "@types/lodash.mergewith": 4.6.6 css-box-model: 1.2.1 framesync: 5.3.0 lodash.mergewith: 4.6.2 - checksum: d6c02e52607107bcd721c0f86f8820b188f5d3d7945468e0c4fb205b20c5d74df88df07b46deeb2df5f1683613c194a6303156e3b0864ce87779014d723649e6 + checksum: 566e3904549539d3be52d6d709872dce3be152c9f7e658933bd7734b13957e2a65a67fd320982ff39cce84f464f438fc1951ab2dac12da5aba19e35996ae6b7e languageName: node linkType: hard -"@chakra-ui/utils@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/utils@npm:2.0.1" +"@chakra-ui/visually-hidden@npm:2.0.2": + version: 2.0.2 + resolution: "@chakra-ui/visually-hidden@npm:2.0.2" dependencies: - "@types/lodash.mergewith": 4.6.6 - css-box-model: 1.2.1 - framesync: 5.3.0 - lodash.mergewith: 4.6.2 - checksum: 2950dd8794aa4ca22026286b19d197081def74fe08d6178d0df51d97eee29c756aad9d96b1ddf937beec4f5a5c7195f7c74a69768fbfe530842e944475739b9f - languageName: node - linkType: hard - -"@chakra-ui/visually-hidden@npm:2.0.1": - version: 2.0.1 - resolution: "@chakra-ui/visually-hidden@npm:2.0.1" - dependencies: - "@chakra-ui/utils": 2.0.1 + "@chakra-ui/utils": 2.0.2 peerDependencies: "@chakra-ui/system": ">=2.0.0-next.0" react: ">=18" - checksum: d9f32c9d95fdd7437bf85716c5d8a951b2161243e68d38391f8c09ac67d9fd107c63b28e8749139eb3658cf4cf564989bad2cd0392928b08b730226da482aaa9 + checksum: c8a52291f8c312d61619cab4607642d24a59d654827b82d4311e96284873c99481aab4e7b99011aed1d6d0d2294ea4b812992b94b2f9783ff2fbea08c3912351 languageName: node linkType: hard @@ -981,16 +958,16 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.7.1": - version: 11.7.1 - resolution: "@emotion/cache@npm:11.7.1" +"@emotion/cache@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/cache@npm:11.9.3" dependencies: "@emotion/memoize": ^0.7.4 - "@emotion/sheet": ^1.1.0 + "@emotion/sheet": ^1.1.1 "@emotion/utils": ^1.0.0 "@emotion/weak-memoize": ^0.2.5 stylis: 4.0.13 - checksum: cf7aa8fe3bacfdedcda94b53e76a7635e122043439715fcfbf7f1a81340cfe6099a59134481a03ec3e0437466566d18528577d1e6ea92f5b98c372b8b38a8f35 + checksum: 6e0aab2fa5b9b6b0b9bf66b5328ed44265c23ced16b46c13d2602c3497fabd95299f6cf2c87cbc02b630452aa3cff599c194c538125d744aa135824129698ccc languageName: node linkType: hard @@ -1010,12 +987,12 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.1.2": - version: 1.1.2 - resolution: "@emotion/is-prop-valid@npm:1.1.2" +"@emotion/is-prop-valid@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/is-prop-valid@npm:1.1.3" dependencies: "@emotion/memoize": ^0.7.4 - checksum: 58b1f2d429a589f8f5bc2c33a8732cbb7bbcb17131a103511ef9a94ac754d7eeb53d627f947da480cd977f9d419fd92e244991680292f3287204159652745707 + checksum: 511997c3bbaab5a967db65b65a111afc46c4aac8b3b87a436fd9e3dc2891829a9ada1405b77326f407d93934ee3b831e62248b498c071089312c5be080af75dd languageName: node linkType: hard @@ -1033,14 +1010,14 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.9.0": - version: 11.9.0 - resolution: "@emotion/react@npm:11.9.0" +"@emotion/react@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/react@npm:11.9.3" dependencies: "@babel/runtime": ^7.13.10 "@emotion/babel-plugin": ^11.7.1 - "@emotion/cache": ^11.7.1 - "@emotion/serialize": ^1.0.3 + "@emotion/cache": ^11.9.3 + "@emotion/serialize": ^1.0.4 "@emotion/utils": ^1.1.0 "@emotion/weak-memoize": ^0.2.5 hoist-non-react-statics: ^3.3.1 @@ -1052,11 +1029,11 @@ __metadata: optional: true "@types/react": optional: true - checksum: 4ceb004f942fb7557a55ea17aad2c48c4cd48ed5a780ccdc2993e4bded2f94d7c1764bd2f4fbe53f5b26059263599cec64ff66d29447e281a58c60b39c72e5cc + checksum: 19bc7205e85e87cadebbe5a926d45103b836af70ab6972ea4c333c8dd01b463fc9646d4e4097a36f145a05dd4bc388739667437b990f8cf7f7f925f9610d1aa8 languageName: node linkType: hard -"@emotion/serialize@npm:^1.0.2, @emotion/serialize@npm:^1.0.3": +"@emotion/serialize@npm:^1.0.2": version: 1.0.3 resolution: "@emotion/serialize@npm:1.0.3" dependencies: @@ -1069,21 +1046,34 @@ __metadata: languageName: node linkType: hard -"@emotion/sheet@npm:^1.1.0": - version: 1.1.0 - resolution: "@emotion/sheet@npm:1.1.0" - checksum: a4b74e16a8fea1157413efe4904f5f679d724323cb605d66d20a0b98744422f5d411fca927ceb52e4de454a0a819c5273ca9496db9f011b4ecd17b9f1b212007 +"@emotion/serialize@npm:^1.0.4": + version: 1.0.4 + resolution: "@emotion/serialize@npm:1.0.4" + dependencies: + "@emotion/hash": ^0.8.0 + "@emotion/memoize": ^0.7.4 + "@emotion/unitless": ^0.7.5 + "@emotion/utils": ^1.0.0 + csstype: ^3.0.2 + checksum: e8cc342056734e176ea837fe44035126dea174962db40852a7ced499d258c0056b0fd3c298743c446f9ba0f2647cb42dfb623b8e5783c265deb9eb20138d68e7 languageName: node linkType: hard -"@emotion/styled@npm:^11.8.1": - version: 11.8.1 - resolution: "@emotion/styled@npm:11.8.1" +"@emotion/sheet@npm:^1.1.1": + version: 1.1.1 + resolution: "@emotion/sheet@npm:1.1.1" + checksum: b916ac665735ef6dfda26b09f2d3493789d432d649733db9da18c4db0115e7fdadeb8d45f6490320248916bb13d978bba74c914b711ac96f659b76a5e52d5cd2 + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.9.3": + version: 11.9.3 + resolution: "@emotion/styled@npm:11.9.3" dependencies: "@babel/runtime": ^7.13.10 "@emotion/babel-plugin": ^11.7.1 - "@emotion/is-prop-valid": ^1.1.2 - "@emotion/serialize": ^1.0.2 + "@emotion/is-prop-valid": ^1.1.3 + "@emotion/serialize": ^1.0.4 "@emotion/utils": ^1.1.0 peerDependencies: "@babel/core": ^7.0.0 @@ -1094,7 +1084,7 @@ __metadata: optional: true "@types/react": optional: true - checksum: 67150fa788785c34e285b90acecc91fe7a63babceaefbeffd053bed0fa31f72a05bfeeb9d15620766e543e007b9ccac2e836812eec2e791f962ec4e52731ae4c + checksum: 16d9ef8c5840b13ec47f91f9963b64ec8a94197fe99bb3bd4e9f7404a09bb65a333e9ab6590af97c0090360816db70e8c920731198c3a30fbb2c2cfd5e8d8a65 languageName: node linkType: hard @@ -1618,6 +1608,13 @@ __metadata: languageName: node linkType: hard +"@zag-js/focus-visible@npm:0.1.0": + version: 0.1.0 + resolution: "@zag-js/focus-visible@npm:0.1.0" + checksum: d3ff93ff696a9287731f3b3f3d5d734b697576ec626eb683252f074baeca46770f931ddb52c8cf08854a6a3c422182a3aaf588c30736b7f26fb3f1e9d6e35ef5 + languageName: node + linkType: hard + "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -2892,9 +2889,9 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:^6.3.10": - version: 6.3.10 - resolution: "framer-motion@npm:6.3.10" +"framer-motion@npm:^6.3.11": + version: 6.3.11 + resolution: "framer-motion@npm:6.3.11" dependencies: "@emotion/is-prop-valid": ^0.8.2 framesync: 6.0.1 @@ -2908,7 +2905,7 @@ __metadata: dependenciesMeta: "@emotion/is-prop-valid": optional: true - checksum: 19d21425a674bafdd22560a069455ef965d78f8e6201791b38174a632e39c0fc1313d92f3b36249074b42dfa17f148e39bb19f8a48bb70a850c4926a863242ae + checksum: 2333b296a109ec0ef86421453f66a92b63e07930a491102f1007bbe48f40594d8c51a96ca937f8f3f013ba658147049bf1fa9feebc44487b8e7617bb674fb254 languageName: node linkType: hard @@ -3726,9 +3723,9 @@ __metadata: version: 0.0.0-use.local resolution: "lucid-creations-media-potty-chart@workspace:." dependencies: - "@chakra-ui/react": ^2.1.2 - "@emotion/react": ^11.9.0 - "@emotion/styled": ^11.8.1 + "@chakra-ui/react": ^2.2.1 + "@emotion/react": ^11.9.3 + "@emotion/styled": ^11.9.3 "@iconify/react": ^3.2.2 "@reduxjs/toolkit": ^1.8.2 "@types/node": ^17.0.40 @@ -3743,11 +3740,11 @@ __metadata: eslint-plugin-react: ^7.30.0 eslint-plugin-react-hooks: ^4.5.0 formik: ^2.2.9 - framer-motion: ^6.3.10 + framer-motion: ^6.3.11 next: 12.1.6 - prettier: ^2.6.2 - react: ^18.1.0 - react-dom: ^18.1.0 + prettier: ^2.7.0 + react: ^18.2.0 + react-dom: ^18.2.0 react-redux: ^8.0.2 sharp: ^0.30.6 typescript: ^4.7.3 @@ -4364,12 +4361,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.6.2": - version: 2.6.2 - resolution: "prettier@npm:2.6.2" +"prettier@npm:^2.7.0": + version: 2.7.0 + resolution: "prettier@npm:2.7.0" bin: prettier: bin-prettier.js - checksum: 48d08dde8e9fb1f5bccdd205baa7f192e9fc8bc98f86e1b97d919de804e28c806b0e6cc685e4a88211aa7987fa9668f30baae19580d87ced3ed0f2ec6572106f + checksum: 5b55bb1dced9d16635b83229df8e670d150890fdb343f19e8a66e610094a108e960c0f57352b3e5cdbc4eff4ef00a834406047ffcd9f20bd22a6497ba143c81f languageName: node linkType: hard @@ -4457,15 +4454,15 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^18.1.0": - version: 18.1.0 - resolution: "react-dom@npm:18.1.0" +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.22.0 + scheduler: ^0.23.0 peerDependencies: - react: ^18.1.0 - checksum: bb0d48eeb0b297c79c2a03978baa29f5b3ff7ba3d070b21e34c9af1a6e7fdf0ca8b8d73e41f9214d91ad40eeb6d1f3559f884cbbc338713374a51320637c23df + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc languageName: node linkType: hard @@ -4549,11 +4546,11 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.1": - version: 2.3.1 - resolution: "react-remove-scroll-bar@npm:2.3.1" +"react-remove-scroll-bar@npm:^2.3.3": + version: 2.3.3 + resolution: "react-remove-scroll-bar@npm:2.3.3" dependencies: - react-style-singleton: ^2.2.0 + react-style-singleton: ^2.2.1 tslib: ^2.0.0 peerDependencies: "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4561,17 +4558,17 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 490fb80d3672c475bd88bbad4a571b71ef0dabe8705907e0349a7e2bee726f07179f4141d5806a0ce0982ac9aae570f8526e7caac7e77c3b57afbe18fe263f28 + checksum: fc8c70014a473b12d4205071ad79bd3cfc6ded173c6589fe6baca01090729757f1ee9966278f16930f3b58029c6923e06d2e3193dcb878ecdcb4eb293b7b9bf4 languageName: node linkType: hard -"react-remove-scroll@npm:^2.5.3": - version: 2.5.3 - resolution: "react-remove-scroll@npm:2.5.3" +"react-remove-scroll@npm:^2.5.4": + version: 2.5.4 + resolution: "react-remove-scroll@npm:2.5.4" dependencies: - react-remove-scroll-bar: ^2.3.1 - react-style-singleton: ^2.2.0 - tslib: ^2.0.0 + react-remove-scroll-bar: ^2.3.3 + react-style-singleton: ^2.2.1 + tslib: ^2.1.0 use-callback-ref: ^1.3.0 use-sidecar: ^1.1.2 peerDependencies: @@ -4580,13 +4577,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 7b486cd4685ca27958572a725657498b6d103c51f958b93a33eb06278c4c7ba38933273350ae1e94b91efe8e7021af6b63ea187737cccd62edbecb03630d07d4 + checksum: 01b0f65542a4c8803ee748b4e6cf2adad66d034e15fb72e8455773b0d7b178ec806b3194d74f412db7064670c45552cc666c04e9fb3b5d466dce5fb48e634825 languageName: node linkType: hard -"react-style-singleton@npm:^2.2.0": - version: 2.2.0 - resolution: "react-style-singleton@npm:2.2.0" +"react-style-singleton@npm:^2.2.1": + version: 2.2.1 + resolution: "react-style-singleton@npm:2.2.1" dependencies: get-nonce: ^1.0.0 invariant: ^2.2.4 @@ -4597,16 +4594,16 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: e999e978c3261756060e67ec0c0ddaf7551850eca2beefd26f807dbcb416fd456d7d3674333e61562604eef5cf9e4503848981e8bfdc7f9e67321414ed6e1a4e + checksum: 7ee8ef3aab74c7ae1d70ff34a27643d11ba1a8d62d072c767827d9ff9a520905223e567002e0bf6c772929d8ea1c781a3ba0cc4a563e92b1e3dc2eaa817ecbe8 languageName: node linkType: hard -"react@npm:^18.1.0": - version: 18.1.0 - resolution: "react@npm:18.1.0" +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - checksum: 5bb296b561b43ef2220395da4faac86c14a087c8c80e1a7598a5740f01ee605c11eaf249985c1e2000971c4cd32ccb46d40f00479bbd9fb6b1c7cf857393b7d4 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b languageName: node linkType: hard @@ -4794,12 +4791,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.22.0": - version: 0.22.0 - resolution: "scheduler@npm:0.22.0" +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" dependencies: loose-envify: ^1.1.0 - checksum: a8ef5cab769c020cd6382ad9ecc3f72dbde56a50a36639b3a42ad9c11f7724f03700bcad373044059b8067d4a6365154dc7c0ca8027ef20ff4900cf58a0fc2c5 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a languageName: node linkType: hard From 713495d3101ce85b795d35989f56915ff4e36276 Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:53:29 -0500 Subject: [PATCH 09/10] Upgrade @types/node --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index fb0a39a..d197c86 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "sharp": "^0.30.6" }, "devDependencies": { - "@types/node": "^17.0.40", + "@types/node": "^17.0.42", "@types/react": "^18.0.12", "@types/react-redux": "^7.1.24", "@typescript-eslint/eslint-plugin": "^5.27.0", diff --git a/yarn.lock b/yarn.lock index 794d174..be803d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1388,10 +1388,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^17.0.40": - version: 17.0.40 - resolution: "@types/node@npm:17.0.40" - checksum: e3b2fe876672fbe4be84ce17773944eb2f5eaba50e2c6c0536bdf6d4972ed6488581580581f154183fdc8f2d56fa42a42e3d6e83b9b71ee25adea16a84765e92 +"@types/node@npm:^17.0.42": + version: 17.0.42 + resolution: "@types/node@npm:17.0.42" + checksum: a200cd87e4f12d4d5682a893ad6e1140720c6c074a2cd075f254b3b8306d6174f5a3630e5d2347efb5e9b80d420404b5fafc8fe3c7d4c81998cd914c50b19f75 languageName: node linkType: hard @@ -3728,7 +3728,7 @@ __metadata: "@emotion/styled": ^11.9.3 "@iconify/react": ^3.2.2 "@reduxjs/toolkit": ^1.8.2 - "@types/node": ^17.0.40 + "@types/node": ^17.0.42 "@types/react": ^18.0.12 "@types/react-redux": ^7.1.24 "@typescript-eslint/eslint-plugin": ^5.27.0 From ee6473cde7af70fd05b5507cf9bdb8dca29270ab Mon Sep 17 00:00:00 2001 From: Lucid Kobold <72232219+LucidKobold@users.noreply.github.com> Date: Tue, 14 Jun 2022 17:57:19 -0500 Subject: [PATCH 10/10] Locking TS eslint plugin and eslint plugin react hooks due to lint clonflicts. --- package.json | 4 +-- yarn.lock | 86 ++++++++++++++++++++++++++-------------------------- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/package.json b/package.json index d197c86..02b91c7 100644 --- a/package.json +++ b/package.json @@ -34,13 +34,13 @@ "@types/node": "^17.0.42", "@types/react": "^18.0.12", "@types/react-redux": "^7.1.24", - "@typescript-eslint/eslint-plugin": "^5.27.0", + "@typescript-eslint/eslint-plugin": "<5.28.0", "eslint": "^8.17.0", "eslint-config-next": "^12.1.6", "eslint-config-prettier": "^8.5.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.30.0", - "eslint-plugin-react-hooks": "^4.5.0", + "eslint-plugin-react-hooks": "<4.6.0", "prettier": "^2.7.0", "typescript": "^4.7.3" }, diff --git a/yarn.lock b/yarn.lock index be803d5..1db3b82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1446,13 +1446,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.27.0" +"@typescript-eslint/eslint-plugin@npm:<5.28.0": + version: 5.27.1 + resolution: "@typescript-eslint/eslint-plugin@npm:5.27.1" dependencies: - "@typescript-eslint/scope-manager": 5.27.0 - "@typescript-eslint/type-utils": 5.27.0 - "@typescript-eslint/utils": 5.27.0 + "@typescript-eslint/scope-manager": 5.27.1 + "@typescript-eslint/type-utils": 5.27.1 + "@typescript-eslint/utils": 5.27.1 debug: ^4.3.4 functional-red-black-tree: ^1.0.1 ignore: ^5.2.0 @@ -1465,7 +1465,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: af7970f90c511641c332b7abecc53523fbbcb19e59ec52df9679f02047ddd5fd5e9ce3ca9359b17674ac7e20e380995861482fb6e60049fe8facd766c2bd85fe + checksum: ee00d8d3a7b395e346801b7bf30209e278f06b5c283ad71c03b34db9e2d68a43ca0e292e315fa7e5bf131a8839ff4a24e0ed76c37811d230f97aae7e123d73ea languageName: node linkType: hard @@ -1496,21 +1496,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/scope-manager@npm:5.27.0" +"@typescript-eslint/scope-manager@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/scope-manager@npm:5.27.1" dependencies: - "@typescript-eslint/types": 5.27.0 - "@typescript-eslint/visitor-keys": 5.27.0 - checksum: 84eb2d6241a6644c622b473c060bb7a227c2a82e8af8ddcf654fb63716e1b3c6fe1b5d747d032d85594c0ad147d95aabc2b217d4af574b55eab93910e0c292ce + "@typescript-eslint/types": 5.27.1 + "@typescript-eslint/visitor-keys": 5.27.1 + checksum: 401bf2b46de08ddb80ec9f36df7d58bf5de7837185a472b190b670d421d685743aad4c9fa8a6893f65ba933b822c5d7060c640e87cf0756d7aa56abdd25689cc languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/type-utils@npm:5.27.0" +"@typescript-eslint/type-utils@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/type-utils@npm:5.27.1" dependencies: - "@typescript-eslint/utils": 5.27.0 + "@typescript-eslint/utils": 5.27.1 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -1518,7 +1518,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 21ef57ecc0dfa085e7ce8f7714d143993f592004086e37582cb6ab5924cb3358267b607e0701ce43737e01f46fb33d66e3f3428fbb7be6e64971d4c26f73c265 + checksum: 43b7da26ea1bd7d249c45d168ec88f971fb71362bbc21ec4748d73b1ecb43f4ca59f5ed338e8dbc74272ae4ebac1cab87a9b62c0fa616c6f9bd833a212dc8a40 languageName: node linkType: hard @@ -1529,10 +1529,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/types@npm:5.27.0" - checksum: d19802bb7bc8202885a47118e196ad9a26b686f00da5aa71a84974c1e838c5e3a36f54116605c46ffe909ccf856a49623f2a095fd05243b4fe4fecfe5cecb89c +"@typescript-eslint/types@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/types@npm:5.27.1" + checksum: 81faa50256ba67c23221273744c51676774fe6a1583698c3a542f3e2fd21ab34a4399019527c9cf7ab4e5a1577272f091d5848d3af937232ddb2dbf558a7c39a languageName: node linkType: hard @@ -1554,12 +1554,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.27.0" +"@typescript-eslint/typescript-estree@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/typescript-estree@npm:5.27.1" dependencies: - "@typescript-eslint/types": 5.27.0 - "@typescript-eslint/visitor-keys": 5.27.0 + "@typescript-eslint/types": 5.27.1 + "@typescript-eslint/visitor-keys": 5.27.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -1568,23 +1568,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: a0f14c332cd293a100399172c9ae498c230c8c205ab74565ea2de08a0bd860af829a9c4dde1888df89667fa0bc29048bc33993eb9445d2689fa2dfcec55c4915 + checksum: 59d2a0885be7d54bd86472a446d84930cc52d2690ea432d9164075ea437b3b4206dadd49799764ad0fb68f3e4ebb4e36db9717c7a443d0f3c82d5659e41fbd05 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/utils@npm:5.27.0" +"@typescript-eslint/utils@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/utils@npm:5.27.1" dependencies: "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.27.0 - "@typescript-eslint/types": 5.27.0 - "@typescript-eslint/typescript-estree": 5.27.0 + "@typescript-eslint/scope-manager": 5.27.1 + "@typescript-eslint/types": 5.27.1 + "@typescript-eslint/typescript-estree": 5.27.1 eslint-scope: ^5.1.1 eslint-utils: ^3.0.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ed823528c3b7f8c71a44ea0481896c46178e361e89003c63736de6ece45cb771defea13b505f0adb517c59f55a95d0b5f1bb990f7a24d3a2597aa045bba0a7bf + checksum: 51add038226cddad2b3322225de18d53bc1ed44613f7b3a379eb597114b8830a632990b0f4321e0ddf3502b460d80072d7e789be89135b5e11e8dae167005625 languageName: node linkType: hard @@ -1598,13 +1598,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.27.0": - version: 5.27.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.27.0" +"@typescript-eslint/visitor-keys@npm:5.27.1": + version: 5.27.1 + resolution: "@typescript-eslint/visitor-keys@npm:5.27.1" dependencies: - "@typescript-eslint/types": 5.27.0 + "@typescript-eslint/types": 5.27.1 eslint-visitor-keys: ^3.3.0 - checksum: 7781f35e25a09d0986b4ba97c707102394cf94738a92d68eca6382b00ffba1b0fac3e937ca4ee6266295dd40ec837a61889fd715f594549f2c3d837594999c29 + checksum: 8f104eda321cd6c613daf284fbebbd32b149d4213d137b0ce1caec7a1334c9f46c82ed64aff1243b712ac8c13f67ac344c996cd36d21fbb15032c24d9897a64a languageName: node linkType: hard @@ -2589,7 +2589,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.5.0": +"eslint-plugin-react-hooks@npm:<4.6.0, eslint-plugin-react-hooks@npm:^4.5.0": version: 4.5.0 resolution: "eslint-plugin-react-hooks@npm:4.5.0" peerDependencies: @@ -3731,14 +3731,14 @@ __metadata: "@types/node": ^17.0.42 "@types/react": ^18.0.12 "@types/react-redux": ^7.1.24 - "@typescript-eslint/eslint-plugin": ^5.27.0 + "@typescript-eslint/eslint-plugin": <5.28.0 date-fns: ^2.28.0 eslint: ^8.17.0 eslint-config-next: ^12.1.6 eslint-config-prettier: ^8.5.0 eslint-plugin-jsx-a11y: ^6.5.1 eslint-plugin-react: ^7.30.0 - eslint-plugin-react-hooks: ^4.5.0 + eslint-plugin-react-hooks: <4.6.0 formik: ^2.2.9 framer-motion: ^6.3.11 next: 12.1.6