From 042b29d476a765ec961735a6ea011e4090612eaf Mon Sep 17 00:00:00 2001 From: Priscilla de Roode Date: Mon, 16 Dec 2024 15:28:58 -0300 Subject: [PATCH 1/4] BA-1965: implement reaction notification --- .../NotificationItemFragment.graphql.ts | 57 ++++++++-------- .../NotificationItem/CommentCreated/index.tsx | 32 +++++++++ .../NotificationItem/CommentReply/index.tsx | 67 +++++++------------ .../Notification/NotificationAvatar.tsx | 18 +++++ .../Notification/NotificationCommentBody.tsx | 16 +++++ .../Notification/NotificationContent.tsx | 22 ++++++ .../Notification/NotificationHeader.tsx | 37 ++++++++++ .../Notification/NotificationRoot.tsx | 11 +++ .../NotificationItem/Notification/index.tsx | 9 +++ .../{CommentReply => Notification}/styled.tsx | 0 .../NotificationItem/Notification/types.ts | 10 +++ .../ReactionCreated/index.tsx | 32 +++++++++ .../NotificationItem/index.tsx | 21 ++---- .../NotificationItem/types.ts | 4 ++ .../NotificationItemRenderer/index.tsx | 22 ++++++ .../NotificationItemRenderer/types.ts | 5 ++ .../notifications/NotificationsList/index.tsx | 16 ++++- .../notifications/NotificationsList/types.ts | 2 + .../modules/notifications/constants.ts | 1 + .../graphql/queries/NotificationItem.ts | 5 ++ .../components/modules/notifications/index.ts | 20 ++++++ 21 files changed, 319 insertions(+), 88 deletions(-) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx rename packages/components/modules/notifications/NotificationsList/NotificationItem/{CommentReply => Notification}/styled.tsx (100%) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts diff --git a/packages/components/__generated__/NotificationItemFragment.graphql.ts b/packages/components/__generated__/NotificationItemFragment.graphql.ts index 8632cf9f..4b7cb49c 100644 --- a/packages/components/__generated__/NotificationItemFragment.graphql.ts +++ b/packages/components/__generated__/NotificationItemFragment.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ @@ -48,6 +48,7 @@ export type NotificationItemFragment$data = { readonly target: | { readonly __typename: string + readonly body?: string | null | undefined readonly id: string } | null @@ -70,13 +71,30 @@ const node: ReaderFragment = (function () { name: 'id', storageKey: null, }, - v1 = { - alias: null, - args: null, - kind: 'ScalarField', - name: '__typename', - storageKey: null, - } + v1 = [ + v0 /*: any*/, + { + alias: null, + args: null, + kind: 'ScalarField', + name: '__typename', + storageKey: null, + }, + { + kind: 'InlineFragment', + selections: [ + { + alias: null, + args: null, + kind: 'ScalarField', + name: 'body', + storageKey: null, + }, + ], + type: 'Comment', + abstractKey: null, + }, + ] return { argumentDefinitions: [], kind: 'Fragment', @@ -195,7 +213,7 @@ const node: ReaderFragment = (function () { kind: 'LinkedField', name: 'target', plural: false, - selections: [v0 /*: any*/, v1 /*: any*/], + selections: v1 /*: any*/, storageKey: null, }, { @@ -205,24 +223,7 @@ const node: ReaderFragment = (function () { kind: 'LinkedField', name: 'actionObject', plural: false, - selections: [ - v0 /*: any*/, - v1 /*: any*/, - { - kind: 'InlineFragment', - selections: [ - { - alias: null, - args: null, - kind: 'ScalarField', - name: 'body', - storageKey: null, - }, - ], - type: 'Comment', - abstractKey: null, - }, - ], + selections: v1 /*: any*/, storageKey: null, }, ], @@ -231,6 +232,6 @@ const node: ReaderFragment = (function () { } })() -;(node as any).hash = '2a3ba381d2a70ce73014c7d7549c7e66' +;(node as any).hash = '18973be33a78d4c8acc5affd35b1a004' export default node diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx new file mode 100644 index 00000000..341c9457 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx @@ -0,0 +1,32 @@ +import { FC } from 'react' + +import { formatRelativeTime } from '@baseapp-frontend/utils' + +import Notification from '../Notification' +import NotificationContent from '../Notification/NotificationContent' +import { GenericItemProps } from '../types' + +const CommentCreated: FC = ({ notification }) => { + // eslint-disable-next-line no-underscore-dangle + const message = `added a comment to your ${notification.target?.__typename.toLowerCase()}` + + return ( + + + + + + + + ) +} + +export default CommentCreated diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx index e54cabd7..2fc24632 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx @@ -1,51 +1,32 @@ import { FC } from 'react' -import { AvatarWithPlaceholder, TypographyWithEllipsis } from '@baseapp-frontend/design-system' import { formatRelativeTime } from '@baseapp-frontend/utils' -import { TimelineDot } from '@mui/lab' -import { Box, Typography } from '@mui/material' - +import Notification from '../Notification' +import NotificationContent from '../Notification/NotificationContent' import { GenericItemProps } from '../types' -import { BodyTypographyContainer } from './styled' -const CommentReply: FC = ({ notification }) => ( - - - - - - - - {notification?.actor?.fullName} - - - replied your comment - - - {notification.unread && } - - - {formatRelativeTime(notification.timestamp)} - - - - - {notification.actionObject?.body} - - - - -) +const CommentReply: FC = ({ notification }) => { + // eslint-disable-next-line no-underscore-dangle + const message = `added a comment to your ${notification.target?.__typename.toLowerCase()}` + + return ( + + + + + + + + ) +} export default CommentReply diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx new file mode 100644 index 00000000..f7a98790 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx @@ -0,0 +1,18 @@ +import { AvatarWithPlaceholder } from '@baseapp-frontend/design-system' + +const NotificationAvatar = ({ + actorAvatar, + actorName, +}: { + actorAvatar: string + actorName: string +}) => ( + +) + +export default NotificationAvatar diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx new file mode 100644 index 00000000..d954acf6 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx @@ -0,0 +1,16 @@ +import { FC } from 'react' + +import { TypographyWithEllipsis } from '@baseapp-frontend/design-system' + +import { BodyTypographyContainer } from './styled' +import { NotificationCommentBodyProps } from './types' + +const NotificationCommentBody: FC = ({ content }) => ( + + + {content} + + +) + +export default NotificationCommentBody diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx new file mode 100644 index 00000000..99b60d45 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx @@ -0,0 +1,22 @@ +import { FC, PropsWithChildren } from 'react' + +import { Box } from '@mui/material' + +import NotificationCommentBody from './NotificationCommentBody' +import NotificationHeader from './NotificationHeader' + +export interface NotificationContentProps { + Header: typeof NotificationHeader + Body: typeof NotificationCommentBody +} + +const NotificationContent: FC & NotificationContentProps = ({ children }) => ( + + {children} + +) + +NotificationContent.Header = NotificationHeader +NotificationContent.Body = NotificationCommentBody + +export default NotificationContent diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx new file mode 100644 index 00000000..cd112418 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx @@ -0,0 +1,37 @@ +import { FC } from 'react' + +import { TimelineDot } from '@mui/lab' +import { Box, Typography } from '@mui/material' + +import { NotificationHeaderProps } from './types' + +const NotificationHeader: FC = ({ + actorName, + message, + unread, + timestamp, +}) => ( + + + + + {actorName} + + + {message} + + + {unread && } + + + {timestamp} + + +) + +export default NotificationHeader diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx new file mode 100644 index 00000000..bf1cb564 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx @@ -0,0 +1,11 @@ +import { FC, PropsWithChildren } from 'react' + +import { Box } from '@mui/material' + +const NotificationRoot: FC = ({ children }) => ( + + {children} + +) + +export default NotificationRoot diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx new file mode 100644 index 00000000..5b5b7380 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx @@ -0,0 +1,9 @@ +import NotificationAvatar from './NotificationAvatar' +import NotificationRoot from './NotificationRoot' + +const Notification = { + Root: NotificationRoot, + Avatar: NotificationAvatar, +} + +export default Notification diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/styled.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/styled.tsx similarity index 100% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/styled.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/styled.tsx diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts new file mode 100644 index 00000000..112f7ccd --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts @@ -0,0 +1,10 @@ +export interface NotificationCommentBodyProps { + content: string +} + +export interface NotificationHeaderProps { + actorName: string + message: string + unread: boolean + timestamp: string +} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx new file mode 100644 index 00000000..fb8b10d8 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx @@ -0,0 +1,32 @@ +import { FC } from 'react' + +import { formatRelativeTime } from '@baseapp-frontend/utils' + +import Notification from '../Notification' +import NotificationContent from '../Notification/NotificationContent' +import { GenericItemProps } from '../types' + +const ReactionCreated: FC = ({ notification }) => { + // eslint-disable-next-line no-underscore-dangle + const message = `liked your ${notification.target?.__typename.toLowerCase()}` + + return ( + + + + + + + + ) +} + +export default ReactionCreated diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx index 95bb7f7b..a5effce8 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx @@ -3,13 +3,15 @@ import { FC } from 'react' import { Box } from '@mui/material' import { useFragment } from 'react-relay' -import { NOTIFICATION_VERB } from '../../constants' import { useNotificationsMarkAsRead } from '../../graphql/mutations/NotificationsMarkAsRead' import { NotificationItemFragment } from '../../graphql/queries/NotificationItem' -import CommentReply from './CommentReply' +import DefaultNotificationContentRenderer from '../NotificationItemRenderer' import { NotificationItemProps } from './types' -const NotificationItem: FC = ({ notification: notificationRef }) => { +const NotificationItem: FC = ({ + notification: notificationRef, + NotificationItemRenderer = DefaultNotificationContentRenderer, +}) => { const notification = useFragment(NotificationItemFragment, notificationRef) const commitMutation = useNotificationsMarkAsRead()[0] @@ -26,17 +28,6 @@ const NotificationItem: FC = ({ notification: notificatio } } - const renderContent = () => { - switch (notification.verb) { - case NOTIFICATION_VERB.commentCreated: - return - case NOTIFICATION_VERB.commentReplyCreated: - return - default: - return null - } - } - return ( = ({ notification: notificatio cursor: 'pointer', }} > - {renderContent()} + ) } diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts index 2e0537de..d89a2a28 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts @@ -1,10 +1,14 @@ +import { FC } from 'react' + import { NotificationItemFragment$data, NotificationItemFragment$key, } from '../../../../__generated__/NotificationItemFragment.graphql' +import { NotificationItemRendererProps } from '../NotificationItemRenderer/types' export interface NotificationItemProps { notification: NotificationItemFragment$key + NotificationItemRenderer?: FC } export interface GenericItemProps { diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx new file mode 100644 index 00000000..abdbf2d8 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx @@ -0,0 +1,22 @@ +import { FC } from 'react' + +import { NOTIFICATION_VERB } from '../../constants' +import CommentCreated from '../NotificationItem/CommentCreated' +import CommentReply from '../NotificationItem/CommentReply' +import ReactionCreated from '../NotificationItem/ReactionCreated' +import { NotificationItemRendererProps } from './types' + +const NotificationItemRenderer: FC = ({ notification }) => { + switch (notification.verb) { + case NOTIFICATION_VERB.commentCreated: + return + case NOTIFICATION_VERB.commentReplyCreated: + return + case NOTIFICATION_VERB.reactionCreated: + return + default: + return null + } +} + +export default NotificationItemRenderer diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts new file mode 100644 index 00000000..086d67d3 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts @@ -0,0 +1,5 @@ +import { NotificationItemFragment$data } from '../../../../__generated__/NotificationItemFragment.graphql' + +export interface NotificationItemRendererProps { + notification: NotificationItemFragment$data +} diff --git a/packages/components/modules/notifications/NotificationsList/index.tsx b/packages/components/modules/notifications/NotificationsList/index.tsx index 72f1c8fd..ae9c6a69 100644 --- a/packages/components/modules/notifications/NotificationsList/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/index.tsx @@ -21,6 +21,7 @@ import useNotificationsSubscription from '../graphql/subscriptions/useNotificati import DefaultEmptyState from './EmptyState' import MarkAllAsReadButton from './MarkAllAsReadButton' import DefaultNotificationItem from './NotificationItem' +import DefaultNotificationItemRenderer from './NotificationItemRenderer' import { NUMBER_OF_NOTIFICATIONS_TO_LOAD_NEXT } from './constants' import { HeaderContainer } from './styled' import { NotificationsListProps } from './types' @@ -31,6 +32,7 @@ const NotificationsList: FC = ({ LoadingState = DefaultLoadingState, LoadingStateProps = {}, NotificationItem = DefaultNotificationItem, + NotificationItemRenderer = DefaultNotificationItemRenderer, }) => { const smDown = useResponsive('down', 'sm') @@ -59,11 +61,21 @@ const NotificationsList: FC = ({ Older - + ) } - return + return ( + + ) } const renderVirtuosoHeader = () =>
diff --git a/packages/components/modules/notifications/NotificationsList/types.ts b/packages/components/modules/notifications/NotificationsList/types.ts index 668f09b7..bc098471 100644 --- a/packages/components/modules/notifications/NotificationsList/types.ts +++ b/packages/components/modules/notifications/NotificationsList/types.ts @@ -3,6 +3,7 @@ import { Dispatch, FC, SetStateAction } from 'react' import { LoadingStateProps } from '@baseapp-frontend/design-system' import { NotificationItemProps } from './NotificationItem/types' +import { NotificationItemRendererProps } from './NotificationItemRenderer/types' export interface NotificationsListProps { setIsDrawerOpened: Dispatch> @@ -10,4 +11,5 @@ export interface NotificationsListProps { LoadingState?: FC LoadingStateProps?: LoadingStateProps NotificationItem?: FC + NotificationItemRenderer?: FC } diff --git a/packages/components/modules/notifications/constants.ts b/packages/components/modules/notifications/constants.ts index ca4d0015..5665f0b6 100644 --- a/packages/components/modules/notifications/constants.ts +++ b/packages/components/modules/notifications/constants.ts @@ -1,6 +1,7 @@ export const NOTIFICATION_VERB = { commentCreated: 'COMMENTS.COMMENT_CREATED', commentReplyCreated: 'COMMENTS.COMMENT_REPLY_CREATED', + reactionCreated: 'REACTIONS.REACTION_CREATED', } export const USER_NOTIFICATIONS_KEY = 'user_notifications' diff --git a/packages/components/modules/notifications/graphql/queries/NotificationItem.ts b/packages/components/modules/notifications/graphql/queries/NotificationItem.ts index 10c41865..338c0e7b 100644 --- a/packages/components/modules/notifications/graphql/queries/NotificationItem.ts +++ b/packages/components/modules/notifications/graphql/queries/NotificationItem.ts @@ -25,6 +25,11 @@ export const NotificationItemFragment = graphql` target { id __typename + + ... on Comment { + id + body + } } actionObject { diff --git a/packages/components/modules/notifications/index.ts b/packages/components/modules/notifications/index.ts index f8300c92..fd849463 100644 --- a/packages/components/modules/notifications/index.ts +++ b/packages/components/modules/notifications/index.ts @@ -4,3 +4,23 @@ export type * from './NotificationsPopover/types' export { default as NotificationList } from './NotificationsList' export type * from './NotificationsList/types' + +export { default as NotificationItemRenderer } from './NotificationsList/NotificationItemRenderer' +export type * from './NotificationsList/NotificationItemRenderer/types' + +export { default as Notification } from './NotificationsList/NotificationItem/Notification' +export { default as NotificationAvatar } from './NotificationsList/NotificationItem/Notification/NotificationAvatar' +export { default as NotificationCommentBody } from './NotificationsList/NotificationItem/Notification/NotificationCommentBody' +export { default as NotificationContent } from './NotificationsList/NotificationItem/Notification/NotificationContent' +export { default as NotificationHeader } from './NotificationsList/NotificationItem/Notification/NotificationHeader' +export { default as NotificationRoot } from './NotificationsList/NotificationItem/Notification/NotificationRoot' +export type * from './NotificationsList/NotificationItem/Notification/types' + +export { default as NotificationItem } from './NotificationsList/NotificationItem' +export type * from './NotificationsList/NotificationItem/types' + +export { default as CommentCreated } from './NotificationsList/NotificationItem/CommentCreated' + +export { default as CommentReply } from './NotificationsList/NotificationItem/CommentReply' + +export { default as ReactionCreated } from './NotificationsList/NotificationItem/ReactionCreated' From 624b0ef9f5ca1b102160079ac03d4580e560af0a Mon Sep 17 00:00:00 2001 From: Priscilla de Roode Date: Tue, 17 Dec 2024 13:28:19 -0300 Subject: [PATCH 2/4] Temporarily remove catalogs to use GitHub version --- packages/components/package.json | 138 ++++++------ pnpm-lock.yaml | 358 ++++++++++++++++--------------- 2 files changed, 256 insertions(+), 240 deletions(-) diff --git a/packages/components/package.json b/packages/components/package.json index 344e962f..a852c75b 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -33,90 +33,90 @@ "@storybook/react": "catalog:storybook", "@tanstack/react-query": "catalog:", "framer-motion": "^11.5.4", - "graphql": "catalog:graphql", - "js-cookie": "catalog:", - "luxon": "catalog:", - "next": "catalog:", - "react-hook-form": "catalog:", - "react-relay": "catalog:graphql", - "react-virtuoso": "catalog:", - "relay-runtime": "catalog:graphql", + "graphql": "^16.8.1", + "js-cookie": "^3.0.5", + "luxon": "^3.4.4", + "next": "14.3.0-canary.24", + "react-hook-form": "^7.51.5", + "react-relay": "^16.2.0", + "react-virtuoso": "^4.7.11", + "relay-runtime": "^16.2.0", "slugify": "^1.6.6", "use-long-press": "^3.2.0", - "zod": "catalog:", - "zustand": "catalog:" + "zod": "^3.23.8", + "zustand": "^4.5.2" }, "peerDependencies": { "@baseapp-frontend/authentication": "workspace:*", "@baseapp-frontend/design-system": "workspace:*", "@baseapp-frontend/graphql": "workspace:*", "@baseapp-frontend/utils": "workspace:*", - "react": "catalog:react18", - "react-dom": "catalog:react18" + "react": "18.3.1", + "react-dom": "18.3.1" }, "devDependencies": { - "@babel/preset-env": "catalog:storybook", - "@babel/preset-react": "catalog:storybook", - "@babel/preset-typescript": "catalog:storybook", + "@babel/preset-env": "^7.24.7", + "@babel/preset-react": "^7.26.3", + "@babel/preset-typescript": "^7.26.0", "@baseapp-frontend/config": "workspace:*", "@baseapp-frontend/test": "workspace:*", "@baseapp-frontend/tsconfig": "workspace:*", - "@chromatic-com/storybook": "catalog:storybook", - "@cypress/webpack-dev-server": "catalog:test", - "@faker-js/faker": "catalog:test", - "@storybook/addon-docs": "catalog:storybook", - "@storybook/addon-essentials": "catalog:storybook", - "@storybook/addon-interactions": "catalog:storybook", - "@storybook/addon-links": "catalog:storybook", - "@storybook/addon-styling-webpack": "catalog:storybook", - "@storybook/addon-webpack5-compiler-babel": "catalog:storybook", - "@storybook/blocks": "catalog:storybook", - "@storybook/react-webpack5": "catalog:storybook", - "@storybook/test": "catalog:storybook", - "@tailwindcss/typography": "catalog:tailwind", - "@testing-library/cypress": "catalog:test", - "@testing-library/jest-dom": "catalog:test", - "@testing-library/react": "catalog:test", - "@testing-library/user-event": "catalog:test", - "@types/jest": "catalog:test", - "@types/js-cookie": "catalog:", - "@types/luxon": "catalog:", - "@types/react": "catalog:react18", - "@types/react-dom": "catalog:react18", - "@types/react-relay": "catalog:graphql", - "@types/relay-runtime": "catalog:graphql", - "@types/relay-test-utils": "catalog:graphql", - "autoprefixer": "catalog:tailwind", - "babel-jest": "catalog:test", - "babel-loader": "catalog:storybook", - "babel-plugin-relay": "catalog:graphql", - "css-loader": "catalog:storybook", - "cypress": "catalog:test", - "cypress-plugin-steps": "catalog:test", - "cypress-wait-until": "catalog:test", + "@chromatic-com/storybook": "^1.9.0", + "@cypress/webpack-dev-server": "^3.10.1", + "@faker-js/faker": "^9.0.3", + "@storybook/addon-docs": "^8.4.7", + "@storybook/addon-essentials": "^8.4.7", + "@storybook/addon-interactions": "^8.4.7", + "@storybook/addon-links": "^8.4.7", + "@storybook/addon-styling-webpack": "^1.0.1", + "@storybook/addon-webpack5-compiler-babel": "^3.0.3", + "@storybook/blocks": "^8.4.7", + "@storybook/react-webpack5": "^8.4.7", + "@storybook/test": "^8.4.7", + "@tailwindcss/typography": "^0.5.13", + "@testing-library/cypress": "^10.0.2", + "@testing-library/jest-dom": "^6.4.6", + "@testing-library/react": "^16.0.0", + "@testing-library/user-event": "^14.5.2", + "@types/jest": "^29.5.12", + "@types/js-cookie": "^3.0.6", + "@types/luxon": "^3.4.2", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@types/react-relay": "^16.0.6", + "@types/relay-runtime": "^17.0.3", + "@types/relay-test-utils": "^14.1.4", + "autoprefixer": "^10.4.19", + "babel-jest": "^29.7.0", + "babel-loader": "^9.2.1", + "babel-plugin-relay": "^17.0.0", + "css-loader": "^7.1.2", + "cypress": "^13.16.1", + "cypress-plugin-steps": "^1.1.1", + "cypress-wait-until": "^3.0.2", "dotenv": "^16.4.5", "dotenv-cli": "^7.4.2", - "eslint-plugin-storybook": "catalog:lint", - "get-graphql-schema": "catalog:graphql", - "html-webpack-plugin": "catalog:storybook", - "jest": "catalog:test", - "jest-environment-jsdom": "catalog:test", - "jotai": "catalog:", - "msw": "catalog:storybook", - "msw-storybook-addon": "catalog:storybook", - "postcss": "catalog:tailwind", - "postcss-loader": "catalog:storybook", - "relay-compiler": "catalog:graphql", - "relay-test-utils": "catalog:graphql", - "storybook": "catalog:storybook", - "style-loader": "catalog:storybook", - "tailwindcss": "catalog:tailwind", - "ts-jest": "catalog:test", - "ts-node": "catalog:test", - "typescript": "catalog:", - "webpack": "catalog:storybook", - "webpack-cli": "catalog:storybook", - "webpack-dev-server": "catalog:storybook" + "eslint-plugin-storybook": "^0.8.0", + "get-graphql-schema": "^2.1.2", + "html-webpack-plugin": "^5.6.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "jotai": "^2.9.3", + "msw": "^2.3.1", + "msw-storybook-addon": "^2.0.2", + "postcss": "^8.4.41", + "postcss-loader": "^8.1.1", + "relay-compiler": "^16.2.0", + "relay-test-utils": "^17.0.0", + "storybook": "^8.4.7", + "style-loader": "^4.0.0", + "tailwindcss": "^3.4.4", + "ts-jest": "^29.1.4", + "ts-node": "^10.9.2", + "typescript": "^5.4.5", + "webpack": "^5.93.0", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^5.0.4" }, "license": "MIT", "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a716a06..52837514 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,9 +45,6 @@ catalogs: react-hook-form: specifier: 7.51.5 version: 7.51.5 - react-virtuoso: - specifier: 4.7.11 - version: 4.7.11 typescript: specifier: 5.4.5 version: 5.4.5 @@ -316,9 +313,6 @@ catalogs: cypress-plugin-steps: specifier: 1.1.1 version: 1.1.1 - cypress-wait-until: - specifier: 3.0.2 - version: 3.0.2 jest: specifier: 29.7.0 version: 29.7.0 @@ -510,34 +504,34 @@ importers: specifier: ^11.5.4 version: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: - specifier: catalog:graphql + specifier: ^16.8.1 version: 16.8.1 js-cookie: - specifier: 'catalog:' + specifier: ^3.0.5 version: 3.0.5 luxon: - specifier: 'catalog:' + specifier: ^3.4.4 version: 3.4.4 next: - specifier: 'catalog:' + specifier: 14.3.0-canary.24 version: 14.3.0-canary.24(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: catalog:react18 + specifier: 18.3.1 version: 18.3.1 react-dom: - specifier: catalog:react18 + specifier: 18.3.1 version: 18.3.1(react@18.3.1) react-hook-form: - specifier: 'catalog:' + specifier: ^7.51.5 version: 7.51.5(react@18.3.1) react-relay: - specifier: catalog:graphql + specifier: ^16.2.0 version: 16.2.0(react@18.3.1) react-virtuoso: - specifier: 'catalog:' + specifier: ^4.7.11 version: 4.7.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) relay-runtime: - specifier: catalog:graphql + specifier: ^16.2.0 version: 16.2.0 slugify: specifier: ^1.6.6 @@ -546,20 +540,20 @@ importers: specifier: ^3.2.0 version: 3.2.0(react@18.3.1) zod: - specifier: 'catalog:' + specifier: ^3.23.8 version: 3.23.8 zustand: - specifier: 'catalog:' + specifier: ^4.5.2 version: 4.5.2(@types/react@18.3.3)(react@18.3.1) devDependencies: '@babel/preset-env': - specifier: catalog:storybook + specifier: ^7.24.7 version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: catalog:storybook - version: 7.25.9(@babel/core@7.26.0) + specifier: ^7.26.3 + version: 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': - specifier: catalog:storybook + specifier: ^7.26.0 version: 7.26.0(@babel/core@7.26.0) '@baseapp-frontend/config': specifier: workspace:* @@ -571,103 +565,103 @@ importers: specifier: workspace:* version: link:../tsconfig '@chromatic-com/storybook': - specifier: catalog:storybook - version: 3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) + specifier: ^1.9.0 + version: 1.9.0(react@18.3.1) '@cypress/webpack-dev-server': - specifier: catalog:test + specifier: ^3.10.1 version: 3.10.1(webpack-cli@5.1.4)(webpack@5.93.0) '@faker-js/faker': - specifier: catalog:test + specifier: ^9.0.3 version: 9.3.0 '@storybook/addon-docs': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(@types/react@18.3.3)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-essentials': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(@types/react@18.3.3)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-interactions': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-links': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-styling-webpack': - specifier: catalog:storybook + specifier: ^1.0.1 version: 1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0) '@storybook/addon-webpack5-compiler-babel': - specifier: catalog:storybook + specifier: ^3.0.3 version: 3.0.3(webpack@5.93.0) '@storybook/blocks': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/react-webpack5': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/test': - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': - specifier: catalog:tailwind + specifier: ^0.5.13 version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) '@testing-library/cypress': - specifier: catalog:test + specifier: ^10.0.2 version: 10.0.2(cypress@13.16.1) '@testing-library/jest-dom': - specifier: catalog:test - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + specifier: ^6.4.6 + version: 6.5.0 '@testing-library/react': - specifier: catalog:test + specifier: ^16.0.0 version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': - specifier: catalog:test + specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) '@types/jest': - specifier: catalog:test + specifier: ^29.5.12 version: 29.5.12 '@types/js-cookie': - specifier: 'catalog:' + specifier: ^3.0.6 version: 3.0.6 '@types/luxon': - specifier: 'catalog:' + specifier: ^3.4.2 version: 3.4.2 '@types/react': - specifier: catalog:react18 + specifier: ^18.3.3 version: 18.3.3 '@types/react-dom': - specifier: catalog:react18 + specifier: ^18.3.0 version: 18.3.0 '@types/react-relay': - specifier: catalog:graphql + specifier: ^16.0.6 version: 16.0.6 '@types/relay-runtime': - specifier: catalog:graphql + specifier: ^17.0.3 version: 17.0.3 '@types/relay-test-utils': - specifier: catalog:graphql + specifier: ^14.1.4 version: 14.1.4 autoprefixer: - specifier: catalog:tailwind - version: 10.4.19(postcss@8.4.38) + specifier: ^10.4.19 + version: 10.4.19(postcss@8.4.49) babel-jest: - specifier: catalog:test + specifier: ^29.7.0 version: 29.7.0(@babel/core@7.26.0) babel-loader: - specifier: catalog:storybook + specifier: ^9.2.1 version: 9.2.1(@babel/core@7.26.0)(webpack@5.93.0) babel-plugin-relay: - specifier: catalog:graphql + specifier: ^17.0.0 version: 17.0.0 css-loader: - specifier: catalog:storybook + specifier: ^7.1.2 version: 7.1.2(webpack@5.93.0) cypress: - specifier: catalog:test + specifier: ^13.16.1 version: 13.16.1 cypress-plugin-steps: - specifier: catalog:test + specifier: ^1.1.1 version: 1.1.1(cypress@13.16.1) cypress-wait-until: - specifier: catalog:test + specifier: ^3.0.2 version: 3.0.2 dotenv: specifier: ^16.4.5 @@ -676,67 +670,67 @@ importers: specifier: ^7.4.2 version: 7.4.4 eslint-plugin-storybook: - specifier: catalog:lint + specifier: ^0.8.0 version: 0.8.0(eslint@8.57.1)(typescript@5.4.5) get-graphql-schema: - specifier: catalog:graphql + specifier: ^2.1.2 version: 2.1.2 html-webpack-plugin: - specifier: catalog:storybook + specifier: ^5.6.0 version: 5.6.0(webpack@5.93.0) jest: - specifier: catalog:test + specifier: ^29.7.0 version: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-environment-jsdom: - specifier: catalog:test + specifier: ^29.7.0 version: 29.7.0 jotai: - specifier: 'catalog:' + specifier: ^2.9.3 version: 2.9.3(@types/react@18.3.3)(react@18.3.1) msw: - specifier: catalog:storybook + specifier: ^2.3.1 version: 2.6.6(@types/node@22.10.2)(typescript@5.4.5) msw-storybook-addon: - specifier: catalog:storybook + specifier: ^2.0.2 version: 2.0.4(msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5)) postcss: - specifier: catalog:tailwind - version: 8.4.38 + specifier: ^8.4.41 + version: 8.4.49 postcss-loader: - specifier: catalog:storybook - version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0) + specifier: ^8.1.1 + version: 8.1.1(postcss@8.4.49)(typescript@5.4.5)(webpack@5.93.0) relay-compiler: - specifier: catalog:graphql + specifier: ^16.2.0 version: 16.2.0 relay-test-utils: - specifier: catalog:graphql + specifier: ^17.0.0 version: 17.0.0 storybook: - specifier: catalog:storybook + specifier: ^8.4.7 version: 8.4.7(prettier@3.4.2) style-loader: - specifier: catalog:storybook + specifier: ^4.0.0 version: 4.0.0(webpack@5.93.0) tailwindcss: - specifier: catalog:tailwind + specifier: ^3.4.4 version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) ts-jest: - specifier: catalog:test + specifier: ^29.1.4 version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5) ts-node: - specifier: catalog:test + specifier: ^10.9.2 version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) typescript: - specifier: 'catalog:' + specifier: ^5.4.5 version: 5.4.5 webpack: - specifier: catalog:storybook + specifier: ^5.93.0 version: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: - specifier: catalog:storybook + specifier: ^5.1.4 version: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) webpack-dev-server: - specifier: catalog:storybook + specifier: ^5.0.4 version: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) packages/config: @@ -2262,6 +2256,10 @@ packages: '@changesets/write@0.3.2': resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + '@chromatic-com/storybook@1.9.0': + resolution: {integrity: sha512-vYQ+TcfktEE3GHnLZXHCzXF/sN9dw+KivH8a5cmPyd9YtQs7fZtHrEgsIjWpYycXiweKMo1Lm1RZsjxk8DH3rA==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + '@chromatic-com/storybook@3.2.3': resolution: {integrity: sha512-3+hfANx79kIjP1qrOSLxpoAXOiYUA0S7A0WI0A24kASrv7USFNNW8etR5TjUilMb0LmqKUn3wDwUK2h6aceQ9g==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} @@ -10270,7 +10268,7 @@ snapshots: '@babel/generator@7.17.7': dependencies: - '@babel/types': 7.17.0 + '@babel/types': 7.26.3 jsesc: 2.5.2 source-map: 0.5.7 @@ -11342,6 +11340,18 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 + '@chromatic-com/storybook@1.9.0(react@18.3.1)': + dependencies: + chromatic: 11.20.2 + filesize: 10.1.6 + jsonfile: 6.1.0 + react-confetti: 6.1.0(react@18.3.1) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' + - react + '@chromatic-com/storybook@3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': dependencies: chromatic: 11.20.2 @@ -11472,7 +11482,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.11.0 + '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) '@emotion/utils': 1.4.2 @@ -12069,7 +12079,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -12082,14 +12092,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12117,14 +12127,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12153,7 +12163,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12171,7 +12181,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12193,7 +12203,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -12263,7 +12273,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.7.2 + '@types/node': 22.10.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -14111,21 +14121,6 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': - dependencies: - '@adobe/css-tools': 4.4.1 - '@babel/runtime': 7.26.0 - aria-query: 5.3.2 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))': dependencies: '@adobe/css-tools': 4.4.1 @@ -14267,7 +14262,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.7.2 + '@types/node': 22.10.2 '@types/html-minifier-terser@5.1.2': {} @@ -14300,7 +14295,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.7.2 + '@types/node': 22.10.2 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -14921,6 +14916,16 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 + autoprefixer@10.4.19(postcss@8.4.49): + dependencies: + browserslist: 4.24.3 + caniuse-lite: 1.0.30001690 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -15638,12 +15643,12 @@ snapshots: css-loader@6.11.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) - postcss-modules-scope: 3.2.1(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15651,12 +15656,12 @@ snapshots: css-loader@6.11.0(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) - postcss-modules-scope: 3.2.1(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15664,12 +15669,12 @@ snapshots: css-loader@7.1.2(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) - postcss-modules-scope: 3.2.1(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -15677,12 +15682,12 @@ snapshots: css-loader@7.1.2(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) - postcss-modules-scope: 3.2.1(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) + postcss-modules-scope: 3.2.1(postcss@8.4.49) + postcss-modules-values: 4.0.0(postcss@8.4.49) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -17362,9 +17367,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.38): + icss-utils@5.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 ieee754@1.2.1: {} @@ -17698,7 +17703,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -17787,7 +17792,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17812,8 +17817,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.7.2 - ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + '@types/node': 22.10.2 + ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -17874,7 +17879,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -17888,7 +17893,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -17898,7 +17903,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.7.2 + '@types/node': 22.10.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -17937,7 +17942,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -17972,7 +17977,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18000,7 +18005,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -18046,7 +18051,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -18065,7 +18070,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.7.2 + '@types/node': 22.10.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -18080,7 +18085,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.7.2 + '@types/node': 22.10.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -19357,24 +19362,24 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.38): + postcss-import@15.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.4.38): + postcss-js@4.0.1(postcss@8.4.49): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.38 + postcss: 8.4.49 - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: lilconfig: 3.1.3 yaml: 2.6.1 optionalDependencies: - postcss: 8.4.38 + postcss: 8.4.49 ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): @@ -19394,35 +19399,46 @@ snapshots: jiti: 1.21.7 postcss: 8.4.38 semver: 7.6.3 + optionalDependencies: + webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) + transitivePeerDependencies: + - typescript + + postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.4.5)(webpack@5.93.0): + dependencies: + cosmiconfig: 9.0.0(typescript@5.4.5) + jiti: 1.21.7 + postcss: 8.4.49 + semver: 7.6.3 optionalDependencies: webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.1.0(postcss@8.4.38): + postcss-modules-extract-imports@3.1.0(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 - postcss-modules-local-by-default@4.2.0(postcss@8.4.38): + postcss-modules-local-by-default@4.2.0(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.4.38): + postcss-modules-scope@3.2.1(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.4.38): + postcss-modules-values@4.0.0(postcss@8.4.49): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 + icss-utils: 5.1.0(postcss@8.4.49) + postcss: 8.4.49 - postcss-nested@6.2.0(postcss@8.4.38): + postcss-nested@6.2.0(postcss@8.4.49): dependencies: - postcss: 8.4.38 + postcss: 8.4.49 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.0.10: @@ -20566,11 +20582,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) - postcss-nested: 6.2.0(postcss@8.4.38) + postcss: 8.4.49 + postcss-import: 15.1.0(postcss@8.4.49) + postcss-js: 4.0.1(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + postcss-nested: 6.2.0(postcss@8.4.49) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 From cd4f2d73ac88ae86da8566d03ced443ece2038bc Mon Sep 17 00:00:00 2001 From: Priscilla de Roode Date: Thu, 26 Dec 2024 17:34:17 -0300 Subject: [PATCH 3/4] BA-1965: replace catalog --- packages/components/package.json | 22 +++++++++++----------- pnpm-lock.yaml | 24 ++++++++++++------------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/components/package.json b/packages/components/package.json index a852c75b..75de695f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -21,17 +21,17 @@ "test:unit": "jest --config ./jest.config.ts" }, "dependencies": { - "@emotion/cache": "catalog:material-ui", - "@emotion/react": "catalog:material-ui", - "@emotion/styled": "catalog:material-ui", - "@hookform/resolvers": "catalog:", - "@mui/icons-material": "catalog:material-ui", - "@mui/lab": "catalog:material-ui", - "@mui/material": "catalog:material-ui", - "@mui/system": "catalog:material-ui", - "@mui/x-date-pickers": "catalog:material-ui", - "@storybook/react": "catalog:storybook", - "@tanstack/react-query": "catalog:", + "@emotion/cache": "11.11.0", + "@emotion/react": "11.11.4", + "@emotion/styled": "11.11.5", + "@hookform/resolvers": "3.6.0", + "@mui/icons-material": "5.15.19", + "@mui/lab": "5.0.0-alpha.170", + "@mui/material": "5.15.19", + "@mui/system": "5.16.12", + "@mui/x-date-pickers": "7.6.2", + "@storybook/react": "8.4.7", + "@tanstack/react-query": "5.45.1", "framer-motion": "^11.5.4", "graphql": "^16.8.1", "js-cookie": "^3.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 52837514..c16aa979 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -468,37 +468,37 @@ importers: specifier: workspace:* version: link:../utils '@emotion/cache': - specifier: catalog:material-ui + specifier: 11.11.0 version: 11.11.0 '@emotion/react': - specifier: catalog:material-ui + specifier: 11.11.4 version: 11.11.4(@types/react@18.3.3)(react@18.3.1) '@emotion/styled': - specifier: catalog:material-ui + specifier: 11.11.5 version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@hookform/resolvers': - specifier: 'catalog:' + specifier: 3.6.0 version: 3.6.0(react-hook-form@7.51.5(react@18.3.1)) '@mui/icons-material': - specifier: catalog:material-ui + specifier: 5.15.19 version: 5.15.19(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/lab': - specifier: catalog:material-ui + specifier: 5.0.0-alpha.170 version: 5.0.0-alpha.170(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': - specifier: catalog:material-ui + specifier: 5.15.19 version: 5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': - specifier: catalog:material-ui + specifier: 5.16.12 version: 5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/x-date-pickers': - specifier: catalog:material-ui + specifier: 7.6.2 version: 7.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(dayjs@1.11.13)(luxon@3.4.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react': - specifier: catalog:storybook + specifier: 8.4.7 version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@tanstack/react-query': - specifier: 'catalog:' + specifier: 5.45.1 version: 5.45.1(react@18.3.1) framer-motion: specifier: ^11.5.4 @@ -11482,7 +11482,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.14.0 + '@emotion/cache': 11.11.0 '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) '@emotion/utils': 1.4.2 From 4d44a6660c20627ac233fec26ce9bda9b84b81f2 Mon Sep 17 00:00:00 2001 From: Alexandre Anicio Date: Mon, 30 Dec 2024 10:38:38 -0300 Subject: [PATCH 4/4] tweaks --- package.json | 1 + packages/authentication/package.json | 1 + packages/components/.storybook/preview.ts | 1 + packages/components/CHANGELOG.md | 7 + .../NotificationItemWithQuery.graphql.ts | 88 +- .../NotificationsListQuery.graphql.ts | 47 +- .../notificationsListRefetchable.graphql.ts | 45 +- ...eMessageCountUpdateSubscription.graphql.ts | 36 +- .../useNotificationsSubscription.graphql.ts | 53 +- .../NotificationItem/CommentCreated/index.tsx | 15 +- .../NotificationItem/CommentReply/index.tsx | 15 +- .../index.tsx} | 14 +- .../Notification/NotificationAvatar/types.ts | 4 + .../Notification/NotificationContent.tsx | 22 - .../NotificationBody/index.tsx} | 8 +- .../NotificationBody}/styled.tsx | 0 .../NotificationBody/types.ts | 3 + .../NotificationHeader/index.tsx} | 2 +- .../NotificationHeader}/types.ts | 6 +- .../NotificationContent/index.tsx | 16 + .../Notification/NotificationContent/types.ts | 9 + .../index.tsx} | 0 .../NotificationItem/Notification/index.tsx | 2 + .../NotificationItemRenderer/index.tsx | 8 +- .../NotificationItemRenderer/types.ts | 5 + .../ReactionCreated/index.tsx | 8 +- .../NotificationItem/index.tsx | 7 +- .../NotificationItem/types.ts | 2 +- .../NotificationItemRenderer/types.ts | 5 - .../notifications/NotificationsList/index.tsx | 11 +- .../notifications/NotificationsList/types.ts | 5 +- .../__storybook__/NotificationsModule.mdx | 186 ++++ .../components/modules/notifications/index.ts | 14 +- packages/components/package.json | 164 ++-- packages/design-system/.storybook/preview.ts | 1 + .../design-system/public/mockServiceWorker.js | 281 ++++++ packages/eslint-plugin/package.json | 3 +- packages/graphql/package.json | 1 + packages/provider/package.json | 1 + packages/test/package.json | 5 +- packages/utils/package.json | 1 + packages/wagtail/package.json | 3 +- pnpm-lock.yaml | 892 +++++++++--------- 43 files changed, 1241 insertions(+), 757 deletions(-) rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{NotificationAvatar.tsx => NotificationAvatar/index.tsx} (53%) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/types.ts delete mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{NotificationCommentBody.tsx => NotificationContent/NotificationBody/index.tsx} (61%) rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{ => NotificationContent/NotificationBody}/styled.tsx (100%) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/types.ts rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{NotificationHeader.tsx => NotificationContent/NotificationHeader/index.tsx} (97%) rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{ => NotificationContent/NotificationHeader}/types.ts (53%) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/index.tsx create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/types.ts rename packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/{NotificationRoot.tsx => NotificationRoot/index.tsx} (100%) rename packages/components/modules/notifications/NotificationsList/{ => NotificationItem}/NotificationItemRenderer/index.tsx (71%) create mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/types.ts delete mode 100644 packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts create mode 100644 packages/components/modules/notifications/__storybook__/NotificationsModule.mdx create mode 100644 packages/design-system/public/mockServiceWorker.js diff --git a/package.json b/package.json index d2590c5f..38c2595c 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "changeset": "changeset", "version-packages": "changeset version", "release": "turbo run build && changeset publish", + "storybook": "turbo storybook", "clean": "turbo clean && git clean -xdf node_modules", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "add-catalogs": "node .scripts/add-catalogs.js", diff --git a/packages/authentication/package.json b/packages/authentication/package.json index d7467c5b..f254c1a1 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -10,6 +10,7 @@ "dev": "rm -rf dist && tsc --watch", "test:unit": "rm -rf dist && jest --config ./jest.config.ts", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", + "storybook": "echo Authentication: No storybook found", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" }, "dependencies": { diff --git a/packages/components/.storybook/preview.ts b/packages/components/.storybook/preview.ts index b17c73b2..f83a0feb 100644 --- a/packages/components/.storybook/preview.ts +++ b/packages/components/.storybook/preview.ts @@ -98,6 +98,7 @@ const preview: Preview = { 'NavCentered', 'NavVertical', //Notifications + 'NotificationsModule', 'NotificationItem', 'NotificationsList', 'NotificationsPopover', diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index c23b0142..2fcb7b79 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/components +## 0.0.40 + +### Patch Changes + +- Refactors the `notification` module so it is easier to add or modify existing notification types. +- Implement reaction notification. + ## 0.0.39 ### Patch Changes diff --git a/packages/components/__generated__/NotificationItemWithQuery.graphql.ts b/packages/components/__generated__/NotificationItemWithQuery.graphql.ts index 302799f5..a8e08b4c 100644 --- a/packages/components/__generated__/NotificationItemWithQuery.graphql.ts +++ b/packages/components/__generated__/NotificationItemWithQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ @@ -47,25 +47,43 @@ const node: ConcreteRequest = (function () { name: 'id', storageKey: null, }, - v3 = { + v3 = [ + v2 /*: any*/, + v1 /*: any*/, + { + kind: 'InlineFragment', + selections: [ + { + alias: null, + args: null, + kind: 'ScalarField', + name: 'body', + storageKey: null, + }, + ], + type: 'Comment', + abstractKey: null, + }, + ], + v4 = { enumValues: null, nullable: true, plural: false, type: 'Node', }, - v4 = { + v5 = { enumValues: null, nullable: false, plural: false, type: 'String', }, - v5 = { + v6 = { enumValues: null, nullable: true, plural: false, type: 'String', }, - v6 = { + v7 = { enumValues: null, nullable: false, plural: false, @@ -229,7 +247,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'target', plural: false, - selections: [v2 /*: any*/, v1 /*: any*/], + selections: v3 /*: any*/, storageKey: null, }, { @@ -239,24 +257,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'actionObject', plural: false, - selections: [ - v2 /*: any*/, - v1 /*: any*/, - { - kind: 'InlineFragment', - selections: [ - { - alias: null, - args: null, - kind: 'ScalarField', - name: 'body', - storageKey: null, - }, - ], - type: 'Comment', - abstractKey: null, - }, - ], + selections: v3 /*: any*/, storageKey: null, }, ], @@ -269,35 +270,35 @@ const node: ConcreteRequest = (function () { ], }, params: { - cacheID: 'd5565b82e75201f15bdef373c501af6d', + cacheID: '2a1ab89672542581137a24207ae151e2', id: null, metadata: { relayTestingSelectionTypeInfo: { - target: v3 /*: any*/, - 'target.__typename': v4 /*: any*/, - 'target.actionObject': v3 /*: any*/, - 'target.actionObject.__typename': v4 /*: any*/, - 'target.actionObject.body': v5 /*: any*/, - 'target.actionObject.id': v6 /*: any*/, - 'target.actor': v3 /*: any*/, - 'target.actor.__typename': v4 /*: any*/, + target: v4 /*: any*/, + 'target.__typename': v5 /*: any*/, + 'target.actionObject': v4 /*: any*/, + 'target.actionObject.__typename': v5 /*: any*/, + 'target.actionObject.body': v6 /*: any*/, + 'target.actionObject.id': v7 /*: any*/, + 'target.actor': v4 /*: any*/, + 'target.actor.__typename': v5 /*: any*/, 'target.actor.avatar': { enumValues: null, nullable: true, plural: false, type: 'File', }, - 'target.actor.avatar.url': v4 /*: any*/, - 'target.actor.fullName': v5 /*: any*/, - 'target.actor.id': v6 /*: any*/, + 'target.actor.avatar.url': v5 /*: any*/, + 'target.actor.fullName': v6 /*: any*/, + 'target.actor.id': v7 /*: any*/, 'target.data': { enumValues: null, nullable: true, plural: false, type: 'GenericScalar', }, - 'target.description': v5 /*: any*/, - 'target.id': v6 /*: any*/, + 'target.description': v6 /*: any*/, + 'target.id': v7 /*: any*/, 'target.level': { enumValues: ['SUCCESS', 'INFO', 'WARNING', 'ERROR'], nullable: false, @@ -310,9 +311,10 @@ const node: ConcreteRequest = (function () { plural: false, type: 'Int', }, - 'target.target': v3 /*: any*/, - 'target.target.__typename': v4 /*: any*/, - 'target.target.id': v6 /*: any*/, + 'target.target': v4 /*: any*/, + 'target.target.__typename': v5 /*: any*/, + 'target.target.body': v6 /*: any*/, + 'target.target.id': v7 /*: any*/, 'target.timestamp': { enumValues: null, nullable: false, @@ -325,12 +327,12 @@ const node: ConcreteRequest = (function () { plural: false, type: 'Boolean', }, - 'target.verb': v4 /*: any*/, + 'target.verb': v5 /*: any*/, }, }, name: 'NotificationItemWithQuery', operationKind: 'query', - text: 'query NotificationItemWithQuery {\n target: node(id: "test-id") {\n __typename\n ...NotificationItemFragment\n id\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n', + text: 'query NotificationItemWithQuery {\n target: node(id: "test-id") {\n __typename\n ...NotificationItemFragment\n id\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n', }, } })() diff --git a/packages/components/__generated__/NotificationsListQuery.graphql.ts b/packages/components/__generated__/NotificationsListQuery.graphql.ts index 23b78215..ad5b8526 100644 --- a/packages/components/__generated__/NotificationsListQuery.graphql.ts +++ b/packages/components/__generated__/NotificationsListQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<84627b6ddb56fe7a135a471671d16a94>> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ @@ -79,7 +79,25 @@ const node: ConcreteRequest = (function () { kind: 'ScalarField', name: '__typename', storageKey: null, - } + }, + v5 = [ + v1 /*: any*/, + v4 /*: any*/, + { + kind: 'InlineFragment', + selections: [ + { + alias: null, + args: null, + kind: 'ScalarField', + name: 'body', + storageKey: null, + }, + ], + type: 'Comment', + abstractKey: null, + }, + ] return { fragment: { argumentDefinitions: v0 /*: any*/, @@ -286,7 +304,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'target', plural: false, - selections: [v1 /*: any*/, v4 /*: any*/], + selections: v5 /*: any*/, storageKey: null, }, { @@ -296,24 +314,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'actionObject', plural: false, - selections: [ - v1 /*: any*/, - v4 /*: any*/, - { - kind: 'InlineFragment', - selections: [ - { - alias: null, - args: null, - kind: 'ScalarField', - name: 'body', - storageKey: null, - }, - ], - type: 'Comment', - abstractKey: null, - }, - ], + selections: v5 /*: any*/, storageKey: null, }, v4 /*: any*/, @@ -366,12 +367,12 @@ const node: ConcreteRequest = (function () { ], }, params: { - cacheID: '44a2a72157c5c4adae05c4d7a3dfb548', + cacheID: '5020e8d54e518cc03c83a9dae0d7a755', id: null, metadata: {}, name: 'NotificationsListQuery', operationKind: 'query', - text: 'query NotificationsListQuery(\n $count: Int!\n $cursor: String\n $verbs: String\n) {\n me {\n id\n ...NotificationsListFragment_LXqp7\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationsListFragment_LXqp7 on User {\n id\n notificationsUnreadCount\n notifications(first: $count, after: $cursor, verbs: $verbs) {\n edges {\n cursor\n node {\n id\n unread\n ...NotificationItemFragment\n __typename\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n', + text: 'query NotificationsListQuery(\n $count: Int!\n $cursor: String\n $verbs: String\n) {\n me {\n id\n ...NotificationsListFragment_LXqp7\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationsListFragment_LXqp7 on User {\n id\n notificationsUnreadCount\n notifications(first: $count, after: $cursor, verbs: $verbs) {\n edges {\n cursor\n node {\n id\n unread\n ...NotificationItemFragment\n __typename\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n', }, } })() diff --git a/packages/components/__generated__/notificationsListRefetchable.graphql.ts b/packages/components/__generated__/notificationsListRefetchable.graphql.ts index d6fe9e95..5217389d 100644 --- a/packages/components/__generated__/notificationsListRefetchable.graphql.ts +++ b/packages/components/__generated__/notificationsListRefetchable.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<16611dce7648bc5f4c1dc1a4e58e1359>> + * @generated SignedSource<<5221e4123978058c8380e80899aa4ff8>> * @lightSyntaxTransform * @nogrep */ @@ -89,6 +89,24 @@ const node: ConcreteRequest = (function () { variableName: 'count', }, v5 /*: any*/, + ], + v9 = [ + v7 /*: any*/, + v6 /*: any*/, + { + kind: 'InlineFragment', + selections: [ + { + alias: null, + args: null, + kind: 'ScalarField', + name: 'body', + storageKey: null, + }, + ], + type: 'Comment', + abstractKey: null, + }, ] return { fragment: { @@ -299,7 +317,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'target', plural: false, - selections: [v7 /*: any*/, v6 /*: any*/], + selections: v9 /*: any*/, storageKey: null, }, { @@ -309,24 +327,7 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'actionObject', plural: false, - selections: [ - v7 /*: any*/, - v6 /*: any*/, - { - kind: 'InlineFragment', - selections: [ - { - alias: null, - args: null, - kind: 'ScalarField', - name: 'body', - storageKey: null, - }, - ], - type: 'Comment', - abstractKey: null, - }, - ], + selections: v9 /*: any*/, storageKey: null, }, v6 /*: any*/, @@ -383,12 +384,12 @@ const node: ConcreteRequest = (function () { ], }, params: { - cacheID: '46c6b7bc56079c11473c0034b604a617', + cacheID: 'cb6015305038b797b1e0172988517f82', id: null, metadata: {}, name: 'notificationsListRefetchable', operationKind: 'query', - text: 'query notificationsListRefetchable(\n $count: Int = 10\n $cursor: String\n $verbs: String\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...NotificationsListFragment_LXqp7\n id\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationsListFragment_LXqp7 on User {\n id\n notificationsUnreadCount\n notifications(first: $count, after: $cursor, verbs: $verbs) {\n edges {\n cursor\n node {\n id\n unread\n ...NotificationItemFragment\n __typename\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n', + text: 'query notificationsListRefetchable(\n $count: Int = 10\n $cursor: String\n $verbs: String\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...NotificationsListFragment_LXqp7\n id\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationsListFragment_LXqp7 on User {\n id\n notificationsUnreadCount\n notifications(first: $count, after: $cursor, verbs: $verbs) {\n edges {\n cursor\n node {\n id\n unread\n ...NotificationItemFragment\n __typename\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}\n', }, } })() diff --git a/packages/components/__generated__/useMessageCountUpdateSubscription.graphql.ts b/packages/components/__generated__/useMessageCountUpdateSubscription.graphql.ts index 695b74f3..3a40e9cf 100644 --- a/packages/components/__generated__/useMessageCountUpdateSubscription.graphql.ts +++ b/packages/components/__generated__/useMessageCountUpdateSubscription.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<8bfa4f42731ce1a16abdbd7f88920027>> * @lightSyntaxTransform * @nogrep */ @@ -62,7 +62,6 @@ export type useMessageCountUpdateSubscription$data = { | null | undefined readonly id: string - readonly unreadMessagesCount: number | null | undefined } | null | undefined @@ -98,34 +97,27 @@ const node: ConcreteRequest = (function () { storageKey: null, }, v3 = { - alias: null, - args: null, - kind: 'ScalarField', - name: 'unreadMessagesCount', - storageKey: null, - }, - v4 = { alias: null, args: null, kind: 'ScalarField', name: 'totalCount', storageKey: null, }, - v5 = { + v4 = { alias: null, args: null, kind: 'ScalarField', name: 'count', storageKey: null, }, - v6 = { + v5 = { alias: null, args: null, kind: 'ScalarField', name: 'markedUnread', storageKey: null, }, - v7 = { + v6 = { alias: null, args: null, concreteType: 'MessageConnection', @@ -190,7 +182,6 @@ const node: ConcreteRequest = (function () { plural: false, selections: [ v2 /*: any*/, - v3 /*: any*/, { alias: null, args: null, @@ -199,7 +190,7 @@ const node: ConcreteRequest = (function () { name: 'chatRooms', plural: false, selections: [ - v4 /*: any*/, + v3 /*: any*/, { alias: null, args: null, @@ -224,10 +215,10 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'unreadMessages', plural: false, - selections: [v5 /*: any*/, v6 /*: any*/], + selections: [v4 /*: any*/, v5 /*: any*/], storageKey: null, }, - v7 /*: any*/, + v6 /*: any*/, ], storageKey: null, }, @@ -270,7 +261,6 @@ const node: ConcreteRequest = (function () { plural: false, selections: [ v2 /*: any*/, - v3 /*: any*/, { alias: null, args: null, @@ -279,7 +269,7 @@ const node: ConcreteRequest = (function () { name: 'chatRooms', plural: false, selections: [ - v4 /*: any*/, + v3 /*: any*/, { alias: null, args: null, @@ -304,10 +294,10 @@ const node: ConcreteRequest = (function () { kind: 'LinkedField', name: 'unreadMessages', plural: false, - selections: [v5 /*: any*/, v6 /*: any*/, v2 /*: any*/], + selections: [v4 /*: any*/, v5 /*: any*/, v2 /*: any*/], storageKey: null, }, - v7 /*: any*/, + v6 /*: any*/, ], storageKey: null, }, @@ -326,16 +316,16 @@ const node: ConcreteRequest = (function () { ], }, params: { - cacheID: '82134f453c19e9fc16ae77d236900477', + cacheID: 'ee87a4300f113870813418b0a818d031', id: null, metadata: {}, name: 'useMessageCountUpdateSubscription', operationKind: 'subscription', - text: 'subscription useMessageCountUpdateSubscription(\n $profileId: ID!\n) {\n chatRoomOnMessagesCountUpdate(profileId: $profileId) {\n profile {\n id\n unreadMessagesCount\n chatRooms {\n totalCount\n edges {\n node {\n id\n unreadMessages {\n count\n markedUnread\n id\n }\n allMessages {\n edges {\n node {\n id\n isRead\n }\n }\n }\n }\n }\n }\n }\n }\n}\n', + text: 'subscription useMessageCountUpdateSubscription(\n $profileId: ID!\n) {\n chatRoomOnMessagesCountUpdate(profileId: $profileId) {\n profile {\n id\n chatRooms {\n totalCount\n edges {\n node {\n id\n unreadMessages {\n count\n markedUnread\n id\n }\n allMessages {\n edges {\n node {\n id\n isRead\n }\n }\n }\n }\n }\n }\n }\n }\n}\n', }, } })() -;(node as any).hash = '732b81c0387021db798a893ce5a6c449' +;(node as any).hash = '57b09f90d1cdf7f57abc3956378d6b27' export default node diff --git a/packages/components/__generated__/useNotificationsSubscription.graphql.ts b/packages/components/__generated__/useNotificationsSubscription.graphql.ts index bc34a21d..4731d830 100644 --- a/packages/components/__generated__/useNotificationsSubscription.graphql.ts +++ b/packages/components/__generated__/useNotificationsSubscription.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<1dcdcad8858f2d642ffa1fa4866f565a>> + * @generated SignedSource<<15b1893b77e04b106ddad384ee4ed089>> * @lightSyntaxTransform * @nogrep */ @@ -188,41 +188,42 @@ const node: ConcreteRequest = (function () { ], storageKey: null, }, - v13 = { + v13 = [ + v2 /*: any*/, + v11 /*: any*/, + { + kind: 'InlineFragment', + selections: [ + { + alias: null, + args: null, + kind: 'ScalarField', + name: 'body', + storageKey: null, + }, + ], + type: 'Comment', + abstractKey: null, + }, + ], + v14 = { alias: null, args: null, concreteType: null, kind: 'LinkedField', name: 'target', plural: false, - selections: [v2 /*: any*/, v11 /*: any*/], + selections: v13 /*: any*/, storageKey: null, }, - v14 = { + v15 = { alias: null, args: null, concreteType: null, kind: 'LinkedField', name: 'actionObject', plural: false, - selections: [ - v2 /*: any*/, - v11 /*: any*/, - { - kind: 'InlineFragment', - selections: [ - { - alias: null, - args: null, - kind: 'ScalarField', - name: 'body', - storageKey: null, - }, - ], - type: 'Comment', - abstractKey: null, - }, - ], + selections: v13 /*: any*/, storageKey: null, } return { @@ -337,8 +338,8 @@ const node: ConcreteRequest = (function () { v9 /*: any*/, v10 /*: any*/, v12 /*: any*/, - v13 /*: any*/, v14 /*: any*/, + v15 /*: any*/, { alias: null, args: null, @@ -397,8 +398,8 @@ const node: ConcreteRequest = (function () { v9 /*: any*/, v10 /*: any*/, v12 /*: any*/, - v13 /*: any*/, v14 /*: any*/, + v15 /*: any*/, ], storageKey: null, }, @@ -418,12 +419,12 @@ const node: ConcreteRequest = (function () { ], }, params: { - cacheID: 'd95ac6f350fcba9bf2db96551d0ee2df', + cacheID: 'dba91e538812ad2152bd5fb5c1284af4', id: null, metadata: {}, name: 'useNotificationsSubscription', operationKind: 'subscription', - text: 'subscription useNotificationsSubscription {\n onNotificationChange {\n createdNotification {\n node {\n ...NotificationItemFragment\n recipient {\n id\n ...NotificationUserMenuFragment\n }\n id\n }\n }\n updatedNotification {\n id\n ...NotificationItemFragment\n }\n deletedNotificationId\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationUserMenuFragment on User {\n id\n notificationsUnreadCount\n}\n', + text: 'subscription useNotificationsSubscription {\n onNotificationChange {\n createdNotification {\n node {\n ...NotificationItemFragment\n recipient {\n id\n ...NotificationUserMenuFragment\n }\n id\n }\n }\n updatedNotification {\n id\n ...NotificationItemFragment\n }\n deletedNotificationId\n }\n}\n\nfragment NotificationItemFragment on Notification {\n id\n pk\n unread\n timestamp\n level\n verb\n description\n data\n actor {\n __typename\n id\n ... on User {\n avatar(width: 48, height: 48) {\n url\n }\n fullName\n }\n }\n target {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n actionObject {\n id\n __typename\n ... on Comment {\n id\n body\n }\n }\n}\n\nfragment NotificationUserMenuFragment on User {\n id\n notificationsUnreadCount\n}\n', }, } })() diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx index 341c9457..73d53b77 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx @@ -3,7 +3,6 @@ import { FC } from 'react' import { formatRelativeTime } from '@baseapp-frontend/utils' import Notification from '../Notification' -import NotificationContent from '../Notification/NotificationContent' import { GenericItemProps } from '../types' const CommentCreated: FC = ({ notification }) => { @@ -13,18 +12,18 @@ const CommentCreated: FC = ({ notification }) => { return ( - - + - - + + ) } diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx index 2fc24632..1fdf2a85 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx @@ -3,7 +3,6 @@ import { FC } from 'react' import { formatRelativeTime } from '@baseapp-frontend/utils' import Notification from '../Notification' -import NotificationContent from '../Notification/NotificationContent' import { GenericItemProps } from '../types' const CommentReply: FC = ({ notification }) => { @@ -13,18 +12,18 @@ const CommentReply: FC = ({ notification }) => { return ( - - + - - + + ) } diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/index.tsx similarity index 53% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/index.tsx index f7a98790..72e1e3f9 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/index.tsx @@ -1,17 +1,15 @@ +import { FC } from 'react' + import { AvatarWithPlaceholder } from '@baseapp-frontend/design-system' -const NotificationAvatar = ({ - actorAvatar, - actorName, -}: { - actorAvatar: string - actorName: string -}) => ( +import { NotificationAvatarProps } from './types' + +const NotificationAvatar: FC = ({ actorAvatar, actorName }) => ( ) diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/types.ts new file mode 100644 index 00000000..9fcedd4a --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/types.ts @@ -0,0 +1,4 @@ +export interface NotificationAvatarProps { + actorAvatar: string | null | undefined + actorName: string | null | undefined +} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx deleted file mode 100644 index 99b60d45..00000000 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FC, PropsWithChildren } from 'react' - -import { Box } from '@mui/material' - -import NotificationCommentBody from './NotificationCommentBody' -import NotificationHeader from './NotificationHeader' - -export interface NotificationContentProps { - Header: typeof NotificationHeader - Body: typeof NotificationCommentBody -} - -const NotificationContent: FC & NotificationContentProps = ({ children }) => ( - - {children} - -) - -NotificationContent.Header = NotificationHeader -NotificationContent.Body = NotificationCommentBody - -export default NotificationContent diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/index.tsx similarity index 61% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/index.tsx index d954acf6..489bd96b 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationCommentBody.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/index.tsx @@ -3,14 +3,14 @@ import { FC } from 'react' import { TypographyWithEllipsis } from '@baseapp-frontend/design-system' import { BodyTypographyContainer } from './styled' -import { NotificationCommentBodyProps } from './types' +import { NotificationBodyProps } from './types' -const NotificationCommentBody: FC = ({ content }) => ( +const NotificationBody: FC = ({ content }) => ( - {content} + {content ?? ''} ) -export default NotificationCommentBody +export default NotificationBody diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/styled.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/styled.tsx similarity index 100% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/styled.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/styled.tsx diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/types.ts new file mode 100644 index 00000000..5cda54d8 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/types.ts @@ -0,0 +1,3 @@ +export interface NotificationBodyProps { + content: string | null | undefined +} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/index.tsx similarity index 97% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/index.tsx index cd112418..a8e8915f 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationHeader.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/index.tsx @@ -20,7 +20,7 @@ const NotificationHeader: FC = ({ gridTemplateColumns="repeat(2, max-content)" > - {actorName} + {actorName ?? ''} {message} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/types.ts similarity index 53% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/types.ts index 112f7ccd..f54665c3 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/types.ts +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/types.ts @@ -1,9 +1,5 @@ -export interface NotificationCommentBodyProps { - content: string -} - export interface NotificationHeaderProps { - actorName: string + actorName: string | null | undefined message: string unread: boolean timestamp: string diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/index.tsx new file mode 100644 index 00000000..531d93fa --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/index.tsx @@ -0,0 +1,16 @@ +import { Box } from '@mui/material' + +import NotificationBody from './NotificationBody' +import NotificationHeader from './NotificationHeader' +import { NotificationContentProps } from './types' + +const NotificationContent: NotificationContentProps = ({ children }) => ( + + {children} + +) + +NotificationContent.Header = NotificationHeader +NotificationContent.Body = NotificationBody + +export default NotificationContent diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/types.ts new file mode 100644 index 00000000..f4071d8c --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/types.ts @@ -0,0 +1,9 @@ +import { FC, PropsWithChildren } from 'react' + +import NotificationBody from './NotificationBody' +import NotificationHeader from './NotificationHeader' + +export interface NotificationContentProps extends FC { + Header: typeof NotificationHeader + Body: typeof NotificationBody +} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot/index.tsx similarity index 100% rename from packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot/index.tsx diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx index 5b5b7380..c7d4e53d 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx @@ -1,9 +1,11 @@ import NotificationAvatar from './NotificationAvatar' +import NotificationContent from './NotificationContent' import NotificationRoot from './NotificationRoot' const Notification = { Root: NotificationRoot, Avatar: NotificationAvatar, + Content: NotificationContent, } export default Notification diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/index.tsx similarity index 71% rename from packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx rename to packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/index.tsx index abdbf2d8..f7d8af59 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/index.tsx @@ -1,9 +1,9 @@ import { FC } from 'react' -import { NOTIFICATION_VERB } from '../../constants' -import CommentCreated from '../NotificationItem/CommentCreated' -import CommentReply from '../NotificationItem/CommentReply' -import ReactionCreated from '../NotificationItem/ReactionCreated' +import { NOTIFICATION_VERB } from '../../../constants' +import CommentCreated from '../CommentCreated' +import CommentReply from '../CommentReply' +import ReactionCreated from '../ReactionCreated' import { NotificationItemRendererProps } from './types' const NotificationItemRenderer: FC = ({ notification }) => { diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/types.ts new file mode 100644 index 00000000..04efd14d --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/types.ts @@ -0,0 +1,5 @@ +import { NotificationItemFragment$data } from '../../../../../__generated__/NotificationItemFragment.graphql' + +export interface NotificationItemRendererProps { + notification: NotificationItemFragment$data +} diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx index fb8b10d8..0666be63 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/ReactionCreated/index.tsx @@ -13,17 +13,17 @@ const ReactionCreated: FC = ({ notification }) => { return ( - + ) diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx index a5effce8..9b5b833e 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx @@ -5,16 +5,17 @@ import { useFragment } from 'react-relay' import { useNotificationsMarkAsRead } from '../../graphql/mutations/NotificationsMarkAsRead' import { NotificationItemFragment } from '../../graphql/queries/NotificationItem' -import DefaultNotificationContentRenderer from '../NotificationItemRenderer' +import DefaultNotificationItemRenderer from './NotificationItemRenderer' import { NotificationItemProps } from './types' const NotificationItem: FC = ({ notification: notificationRef, - NotificationItemRenderer = DefaultNotificationContentRenderer, + NotificationItemRenderer = DefaultNotificationItemRenderer, }) => { const notification = useFragment(NotificationItemFragment, notificationRef) - const commitMutation = useNotificationsMarkAsRead()[0] + const [commitMutation] = useNotificationsMarkAsRead() + const markAsRead = () => { if (notification.unread) { commitMutation({ diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts index d89a2a28..f1d607ba 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/types.ts @@ -4,7 +4,7 @@ import { NotificationItemFragment$data, NotificationItemFragment$key, } from '../../../../__generated__/NotificationItemFragment.graphql' -import { NotificationItemRendererProps } from '../NotificationItemRenderer/types' +import { NotificationItemRendererProps } from './NotificationItemRenderer/types' export interface NotificationItemProps { notification: NotificationItemFragment$key diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts deleted file mode 100644 index 086d67d3..00000000 --- a/packages/components/modules/notifications/NotificationsList/NotificationItemRenderer/types.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { NotificationItemFragment$data } from '../../../../__generated__/NotificationItemFragment.graphql' - -export interface NotificationItemRendererProps { - notification: NotificationItemFragment$data -} diff --git a/packages/components/modules/notifications/NotificationsList/index.tsx b/packages/components/modules/notifications/NotificationsList/index.tsx index ae9c6a69..00380a12 100644 --- a/packages/components/modules/notifications/NotificationsList/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/index.tsx @@ -21,7 +21,6 @@ import useNotificationsSubscription from '../graphql/subscriptions/useNotificati import DefaultEmptyState from './EmptyState' import MarkAllAsReadButton from './MarkAllAsReadButton' import DefaultNotificationItem from './NotificationItem' -import DefaultNotificationItemRenderer from './NotificationItemRenderer' import { NUMBER_OF_NOTIFICATIONS_TO_LOAD_NEXT } from './constants' import { HeaderContainer } from './styled' import { NotificationsListProps } from './types' @@ -32,7 +31,7 @@ const NotificationsList: FC = ({ LoadingState = DefaultLoadingState, LoadingStateProps = {}, NotificationItem = DefaultNotificationItem, - NotificationItemRenderer = DefaultNotificationItemRenderer, + NotificationItemProps = {}, }) => { const smDown = useResponsive('down', 'sm') @@ -62,18 +61,18 @@ const NotificationsList: FC = ({ Older ) } return ( ) } diff --git a/packages/components/modules/notifications/NotificationsList/types.ts b/packages/components/modules/notifications/NotificationsList/types.ts index bc098471..00d61bdb 100644 --- a/packages/components/modules/notifications/NotificationsList/types.ts +++ b/packages/components/modules/notifications/NotificationsList/types.ts @@ -3,13 +3,12 @@ import { Dispatch, FC, SetStateAction } from 'react' import { LoadingStateProps } from '@baseapp-frontend/design-system' import { NotificationItemProps } from './NotificationItem/types' -import { NotificationItemRendererProps } from './NotificationItemRenderer/types' export interface NotificationsListProps { setIsDrawerOpened: Dispatch> EmptyState?: FC LoadingState?: FC - LoadingStateProps?: LoadingStateProps + LoadingStateProps?: Partial NotificationItem?: FC - NotificationItemRenderer?: FC + NotificationItemProps?: Partial } diff --git a/packages/components/modules/notifications/__storybook__/NotificationsModule.mdx b/packages/components/modules/notifications/__storybook__/NotificationsModule.mdx new file mode 100644 index 00000000..c06aafb8 --- /dev/null +++ b/packages/components/modules/notifications/__storybook__/NotificationsModule.mdx @@ -0,0 +1,186 @@ +import { Meta } from '@storybook/addon-docs'; + + + +# Notifications Documentation + +## Notifications System + +The Notifications system is a modular solution for displaying and interacting with notifications. It includes components to handle lists, individual items, and specific notification types, ensuring consistency and scalability across the application. + +--- + +## Components + +### **NotificationsPopover** + +- **Purpose:** Acts as the parent component for the notifications system, managing the triggering, rendering, and behavior of the notification drawer. +- **Expected Behavior:** + - Renders a notification bell icon that displays the count of unread notifications. + - Opens a drawer containing the notification list when clicked. + - Supports responsiveness, adjusting the drawer's position based on screen size. + +#### Props: +| Prop Name | Type | Description | +|------------------------|--------------------|--------------------------------------------| +| `Drawer` | `Component` | Custom drawer component. | +| `DrawerProps` | `Object` | Additional props for the drawer. | +| `Badge` | `Component` | Custom badge component for the notification count. | +| `BadgeProps` | `Object` | Additional props for the badge. | +| `NotificationBellIcon` | `Component` | Custom bell icon component. | +| `NotificationBellIconProps` | `Object` | Additional props for the bell icon. | +| `NotificationsList` | `Component` | Custom list component to render notifications. | +| `NotificationsListProps` | `Object` | Additional props for the notification list. | + +--- + +### **NotificationList** + +- **Purpose:** Displays a list of notifications with support for virtualization, pagination, and real-time updates via subscriptions. +- **Expected Behavior:** + - Renders all notifications passed to it. + - Supports states such as loading, empty, and paginated. + - Ensures data freshness with subscription updates. + +#### Props: +| Prop Name | Type | Description | +|--------------------|--------------|------------------------------------------------| +| `setIsDrawerOpened` | `(boolean) => void` | Function to toggle the notification drawer state. | +| `EmptyState` | `Component` | Custom component for the empty state. | +| `LoadingState` | `Component` | Custom component for the loading state. | +| `NotificationItem` | `Component` | Custom component for rendering individual items. | + +--- + +### **NotificationItem** + +- **Purpose:** Represents a single notification and handles interactions such as marking as read. +- **Expected Behavior:** + - Marks notifications as read when clicked. + - Accepts custom rendering logic for notification content. + +#### Props: +| Prop Name | Type | Description | +|------------------------|--------------------|--------------------------------------------| +| `notification` | `Fragment` | GraphQL fragment representing a notification. | +| `NotificationItemRenderer` | `Component` | Custom renderer for the notification. | + +--- + +### **Notification** + +A compositional component used internally for structuring notifications. Includes: +- **Root:** Wrapper for the notification structure. +- **Avatar:** Displays the actor's avatar. +- **Content:** Handles the layout for the header and body. + +#### Props for Notification.Avatar: +| Prop Name | Type | Description | +|--------------|------------|--------------------------------------| +| `actorAvatar`| `string` | URL of the actor's avatar. | +| `actorName` | `string` | Name of the actor for accessibility. | + +--- + +### **NotificationItemRenderer** + +- **Purpose:** Dynamically routes notifications to the appropriate renderer based on the verb. +- **Expected Behavior:** + - Handles different notification types such as comments, replies, and reactions. + - Returns `null` for unsupported types. + +#### Props: +| Prop Name | Type | Description | +|------------------------|--------------------|--------------------------------------------| +| `notification` | `Fragment` | GraphQL fragment representing a notification. | + +--- + +### **CommentCreated, CommentReply, ReactionCreated** + +Renderers for specific notification types: +- **CommentCreated:** Displays a notification when a comment is added. +- **CommentReply:** Displays a notification when a reply to a comment is added. +- **ReactionCreated:** Displays a notification when a reaction is added. + +#### Shared Props: +| Prop Name | Type | Description | +|------------------------|--------------------|--------------------------------------------| +| `notification` | `Fragment` | GraphQL fragment representing a notification. | + +--- + +## Usage Examples + +### **NotificationsPopover with Default Components** +```javascript +import { NotificationsPopover } from './NotificationsPopover'; + +const Example = () => ( + +); + +export default Example; +``` + +### Adding a New Notification Type: +To add a new notification renderer: +1. Define a new verb in the `NOTIFICATION_VERB` constants. +2. Create a new component for the notification type (e.g., `CustomNotificationRenderer`). +3. Create a custom `NotificationItemRenderer` in your project: + ```javascript + import NewNotificationVerb from './NewNotificationVerb'; + + const NotificationItemRenderer = ({ notification }) => { + switch (notification.verb) { + case NOTIFICATION_VERB.customType: + return ; + // other cases + default: + return null; + } + }; + ``` +4. Pass the custom renderer through `NotificationsPopover`: + ```javascript + + ``` + +### **Custom Badge and Drawer** +```javascript +import { NotificationsPopover } from './NotificationsPopover'; +import CustomBadge from './CustomBadge'; +import CustomDrawer from './CustomDrawer'; + +const Example = () => ( + +); + +export default Example; +``` + +### **Custom NotificationList** +```javascript +import { NotificationsPopover } from './NotificationsPopover'; +import CustomNotificationsList from './CustomNotificationsList'; + +const Example = () => ( + +); + +export default Example; +``` diff --git a/packages/components/modules/notifications/index.ts b/packages/components/modules/notifications/index.ts index fd849463..f4496d83 100644 --- a/packages/components/modules/notifications/index.ts +++ b/packages/components/modules/notifications/index.ts @@ -5,19 +5,13 @@ export type * from './NotificationsPopover/types' export { default as NotificationList } from './NotificationsList' export type * from './NotificationsList/types' -export { default as NotificationItemRenderer } from './NotificationsList/NotificationItemRenderer' -export type * from './NotificationsList/NotificationItemRenderer/types' +export { default as NotificationItem } from './NotificationsList/NotificationItem' +export type * from './NotificationsList/NotificationItem/types' export { default as Notification } from './NotificationsList/NotificationItem/Notification' -export { default as NotificationAvatar } from './NotificationsList/NotificationItem/Notification/NotificationAvatar' -export { default as NotificationCommentBody } from './NotificationsList/NotificationItem/Notification/NotificationCommentBody' -export { default as NotificationContent } from './NotificationsList/NotificationItem/Notification/NotificationContent' -export { default as NotificationHeader } from './NotificationsList/NotificationItem/Notification/NotificationHeader' -export { default as NotificationRoot } from './NotificationsList/NotificationItem/Notification/NotificationRoot' -export type * from './NotificationsList/NotificationItem/Notification/types' -export { default as NotificationItem } from './NotificationsList/NotificationItem' -export type * from './NotificationsList/NotificationItem/types' +export { default as NotificationItemRenderer } from './NotificationsList/NotificationItem/NotificationItemRenderer' +export type * from './NotificationsList/NotificationItem/NotificationItemRenderer/types' export { default as CommentCreated } from './NotificationsList/NotificationItem/CommentCreated' diff --git a/packages/components/package.json b/packages/components/package.json index 75de695f..e2e1531f 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/components", "description": "BaseApp components modules such as comments, notifications, messages, and more.", - "version": "0.0.39", + "version": "0.0.40", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, @@ -13,7 +13,7 @@ "relay-update-schema": "pnpm relay-download-schema && pnpm relay", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", - "storybook": "storybook dev -p 6007", + "storybook": "pnpm relay && storybook dev -p 6007", "storybook:build": "storybook build", "cypress:clean": "rm -rf ./cypress/downloads ./cypress/screenshots ./cypress/videos", "cypress:open": "cypress open --browser chrome", @@ -21,102 +21,102 @@ "test:unit": "jest --config ./jest.config.ts" }, "dependencies": { - "@emotion/cache": "11.11.0", - "@emotion/react": "11.11.4", - "@emotion/styled": "11.11.5", - "@hookform/resolvers": "3.6.0", - "@mui/icons-material": "5.15.19", - "@mui/lab": "5.0.0-alpha.170", - "@mui/material": "5.15.19", - "@mui/system": "5.16.12", - "@mui/x-date-pickers": "7.6.2", - "@storybook/react": "8.4.7", - "@tanstack/react-query": "5.45.1", + "@emotion/cache": "catalog:material-ui", + "@emotion/react": "catalog:material-ui", + "@emotion/styled": "catalog:material-ui", + "@hookform/resolvers": "catalog:", + "@mui/icons-material": "catalog:material-ui", + "@mui/lab": "catalog:material-ui", + "@mui/material": "catalog:material-ui", + "@mui/system": "catalog:material-ui", + "@mui/x-date-pickers": "catalog:material-ui", + "@storybook/react": "catalog:storybook", + "@tanstack/react-query": "catalog:", "framer-motion": "^11.5.4", - "graphql": "^16.8.1", - "js-cookie": "^3.0.5", - "luxon": "^3.4.4", - "next": "14.3.0-canary.24", - "react-hook-form": "^7.51.5", - "react-relay": "^16.2.0", - "react-virtuoso": "^4.7.11", - "relay-runtime": "^16.2.0", + "graphql": "catalog:graphql", + "js-cookie": "catalog:", + "luxon": "catalog:", + "next": "catalog:", + "react-hook-form": "catalog:", + "react-relay": "catalog:graphql", + "react-virtuoso": "catalog:", + "relay-runtime": "catalog:graphql", "slugify": "^1.6.6", "use-long-press": "^3.2.0", - "zod": "^3.23.8", - "zustand": "^4.5.2" + "zod": "catalog:", + "zustand": "catalog:" }, "peerDependencies": { "@baseapp-frontend/authentication": "workspace:*", "@baseapp-frontend/design-system": "workspace:*", "@baseapp-frontend/graphql": "workspace:*", "@baseapp-frontend/utils": "workspace:*", - "react": "18.3.1", - "react-dom": "18.3.1" + "react": "catalog:react18", + "react-dom": "catalog:react18" }, "devDependencies": { - "@babel/preset-env": "^7.24.7", - "@babel/preset-react": "^7.26.3", - "@babel/preset-typescript": "^7.26.0", + "@babel/preset-env": "catalog:storybook", + "@babel/preset-react": "catalog:storybook", + "@babel/preset-typescript": "catalog:storybook", "@baseapp-frontend/config": "workspace:*", "@baseapp-frontend/test": "workspace:*", "@baseapp-frontend/tsconfig": "workspace:*", - "@chromatic-com/storybook": "^1.9.0", - "@cypress/webpack-dev-server": "^3.10.1", - "@faker-js/faker": "^9.0.3", - "@storybook/addon-docs": "^8.4.7", - "@storybook/addon-essentials": "^8.4.7", - "@storybook/addon-interactions": "^8.4.7", - "@storybook/addon-links": "^8.4.7", - "@storybook/addon-styling-webpack": "^1.0.1", - "@storybook/addon-webpack5-compiler-babel": "^3.0.3", - "@storybook/blocks": "^8.4.7", - "@storybook/react-webpack5": "^8.4.7", - "@storybook/test": "^8.4.7", - "@tailwindcss/typography": "^0.5.13", - "@testing-library/cypress": "^10.0.2", - "@testing-library/jest-dom": "^6.4.6", - "@testing-library/react": "^16.0.0", - "@testing-library/user-event": "^14.5.2", - "@types/jest": "^29.5.12", - "@types/js-cookie": "^3.0.6", - "@types/luxon": "^3.4.2", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@types/react-relay": "^16.0.6", - "@types/relay-runtime": "^17.0.3", - "@types/relay-test-utils": "^14.1.4", - "autoprefixer": "^10.4.19", - "babel-jest": "^29.7.0", - "babel-loader": "^9.2.1", - "babel-plugin-relay": "^17.0.0", - "css-loader": "^7.1.2", - "cypress": "^13.16.1", - "cypress-plugin-steps": "^1.1.1", - "cypress-wait-until": "^3.0.2", + "@chromatic-com/storybook": "catalog:storybook", + "@cypress/webpack-dev-server": "catalog:test", + "@faker-js/faker": "catalog:test", + "@storybook/addon-docs": "catalog:storybook", + "@storybook/addon-essentials": "catalog:storybook", + "@storybook/addon-interactions": "catalog:storybook", + "@storybook/addon-links": "catalog:storybook", + "@storybook/addon-styling-webpack": "catalog:storybook", + "@storybook/addon-webpack5-compiler-babel": "catalog:storybook", + "@storybook/blocks": "catalog:storybook", + "@storybook/react-webpack5": "catalog:storybook", + "@storybook/test": "catalog:storybook", + "@tailwindcss/typography": "catalog:tailwind", + "@testing-library/cypress": "catalog:test", + "@testing-library/jest-dom": "catalog:test", + "@testing-library/react": "catalog:test", + "@testing-library/user-event": "catalog:test", + "@types/jest": "catalog:test", + "@types/js-cookie": "catalog:", + "@types/luxon": "catalog:", + "@types/react": "catalog:react18", + "@types/react-dom": "catalog:react18", + "@types/react-relay": "catalog:graphql", + "@types/relay-runtime": "catalog:graphql", + "@types/relay-test-utils": "catalog:graphql", + "autoprefixer": "catalog:tailwind", + "babel-jest": "catalog:test", + "babel-loader": "catalog:storybook", + "babel-plugin-relay": "catalog:graphql", + "css-loader": "catalog:storybook", + "cypress": "catalog:test", + "cypress-plugin-steps": "catalog:test", + "cypress-wait-until": "catalog:test", "dotenv": "^16.4.5", "dotenv-cli": "^7.4.2", - "eslint-plugin-storybook": "^0.8.0", - "get-graphql-schema": "^2.1.2", - "html-webpack-plugin": "^5.6.0", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "jotai": "^2.9.3", - "msw": "^2.3.1", - "msw-storybook-addon": "^2.0.2", - "postcss": "^8.4.41", - "postcss-loader": "^8.1.1", - "relay-compiler": "^16.2.0", - "relay-test-utils": "^17.0.0", - "storybook": "^8.4.7", - "style-loader": "^4.0.0", - "tailwindcss": "^3.4.4", - "ts-jest": "^29.1.4", - "ts-node": "^10.9.2", - "typescript": "^5.4.5", - "webpack": "^5.93.0", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^5.0.4" + "eslint-plugin-storybook": "catalog:lint", + "get-graphql-schema": "catalog:graphql", + "html-webpack-plugin": "catalog:storybook", + "jest": "catalog:test", + "jest-environment-jsdom": "catalog:test", + "jotai": "catalog:", + "msw": "catalog:storybook", + "msw-storybook-addon": "catalog:storybook", + "postcss": "catalog:tailwind", + "postcss-loader": "catalog:storybook", + "relay-compiler": "catalog:graphql", + "relay-test-utils": "catalog:graphql", + "storybook": "catalog:storybook", + "style-loader": "catalog:storybook", + "tailwindcss": "catalog:tailwind", + "ts-jest": "catalog:test", + "ts-node": "catalog:test", + "typescript": "catalog:", + "webpack": "catalog:storybook", + "webpack-cli": "catalog:storybook", + "webpack-dev-server": "catalog:storybook" }, "license": "MIT", "repository": { diff --git a/packages/design-system/.storybook/preview.ts b/packages/design-system/.storybook/preview.ts index 65fe58cc..250f7bdf 100644 --- a/packages/design-system/.storybook/preview.ts +++ b/packages/design-system/.storybook/preview.ts @@ -23,6 +23,7 @@ const preview: Preview = { 'AvatarWithPlaceholder', 'ClickableAvatar', // Buttons + 'FileUploadButton', 'IconButton', // Dialogs 'BaseDialog', diff --git a/packages/design-system/public/mockServiceWorker.js b/packages/design-system/public/mockServiceWorker.js new file mode 100644 index 00000000..88606574 --- /dev/null +++ b/packages/design-system/public/mockServiceWorker.js @@ -0,0 +1,281 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker. + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const PACKAGE_VERSION = '2.4.4' +const INTEGRITY_CHECKSUM = '26357c79639bfa20d64c0efca2a87423' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() + +self.addEventListener('install', function () { + self.skipWaiting() +}) + +self.addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: true, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId)) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + requestId, + isMockedResponse: IS_MOCKED_RESPONSE in response, + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + body: responseClone.body, + headers: Object.fromEntries(responseClone.headers.entries()), + }, + }, + [responseClone.body], + ) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = request.clone() + + function passthrough() { + const headers = Object.fromEntries(requestClone.headers.entries()) + + // Remove internal MSW request header so the passthrough request + // complies with any potential CORS preflight checks on the server. + // Some servers forbid unknown request headers. + delete headers['x-msw-intention'] + + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const requestBuffer = await request.arrayBuffer() + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: requestBuffer, + keepalive: request.keepalive, + }, + }, + [requestBuffer], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'PASSTHROUGH': { + return passthrough() + } + } + + return passthrough() +} + +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2].concat(transferrables.filter(Boolean))) + }) +} + +async function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse +} diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 68d0186d..6a5f3346 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -10,8 +10,9 @@ "scripts": { "build": "parcel build", "dev": "parcel watch", - "clean": "rm -rf node_modules dist", "test": "ts-node ./rules/**/*.test.ts", + "storybook": "echo Eslint Plugin: No storybook found", + "clean": "rm -rf node_modules dist", "prepare": "pnpm build" }, "dependencies": { diff --git a/packages/graphql/package.json b/packages/graphql/package.json index 2fb030cd..20135aca 100644 --- a/packages/graphql/package.json +++ b/packages/graphql/package.json @@ -9,6 +9,7 @@ "build": "rm -rf dist && tsc --build tsconfig.build.json", "dev": "rm -rf dist && tsc --watch", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", + "storybook": "echo GraphQL: No storybook found", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" }, "dependencies": { diff --git a/packages/provider/package.json b/packages/provider/package.json index 08891282..1217afa2 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -9,6 +9,7 @@ "build": "rm -rf dist && tsc --build tsconfig.build.json", "dev": "rm -rf dist && tsc --watch", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", + "storybook": "echo Provider: No storybook found", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" }, "dependencies": { diff --git a/packages/test/package.json b/packages/test/package.json index 06959124..3c700bd8 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -9,8 +9,9 @@ "build": "rm -rf dist && tsc --build tsconfig.build.json", "dev": "rm -rf dist && tsc --watch", "lint": "eslint . --ext .tsx --ext .ts && tsc --noemit", - "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", - "test": "echo test" + "test": "echo test", + "storybook": "echo Test: No storybook found", + "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" }, "dependencies": { "@emotion/cache": "catalog:material-ui", diff --git a/packages/utils/package.json b/packages/utils/package.json index 3d9fdbc3..fa337198 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -10,6 +10,7 @@ "dev": "rm -rf dist && tsc --watch", "test:unit": "rm -rf dist && jest --config ./jest.config.ts", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", + "storybook": "echo Utils: No storybook found", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" }, "dependencies": { diff --git a/packages/wagtail/package.json b/packages/wagtail/package.json index 7c2ef1ab..d7351144 100644 --- a/packages/wagtail/package.json +++ b/packages/wagtail/package.json @@ -13,7 +13,7 @@ "relay-update-schema": "yarn relay-download-schema && yarn relay", "lint": "eslint . --ext .tsx --ext .ts && tsc --noEmit", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", - "storybook": "storybook dev -p 6007", + "storybook": "storybook dev -p 6008", "storybook:build": "storybook build", "cypress:clean": "rm -rf ./cypress/downloads ./cypress/screenshots ./cypress/videos", "cypress:open": "cypress open --browser chrome" @@ -38,6 +38,7 @@ "@babel/preset-react": "catalog:storybook", "@babel/preset-typescript": "catalog:storybook", "@baseapp-frontend/config": "workspace:*", + "@baseapp-frontend/test": "workspace:*", "@baseapp-frontend/tsconfig": "workspace:*", "@chromatic-com/storybook": "catalog:storybook", "@cypress/webpack-dev-server": "catalog:test", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c16aa979..42e91930 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,6 +45,9 @@ catalogs: react-hook-form: specifier: 7.51.5 version: 7.51.5 + react-virtuoso: + specifier: 4.7.11 + version: 4.7.11 typescript: specifier: 5.4.5 version: 5.4.5 @@ -313,6 +316,9 @@ catalogs: cypress-plugin-steps: specifier: 1.1.1 version: 1.1.1 + cypress-wait-until: + specifier: 3.0.2 + version: 3.0.2 jest: specifier: 29.7.0 version: 29.7.0 @@ -412,7 +418,7 @@ importers: version: 9.3.0 '@testing-library/jest-dom': specifier: catalog:test - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) '@testing-library/react': specifier: catalog:test version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -439,16 +445,16 @@ importers: version: 29.7.0(@babel/core@7.26.0) jest: specifier: catalog:test - version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-environment-jsdom: specifier: catalog:test version: 29.7.0 ts-jest: specifier: catalog:test - version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -468,70 +474,70 @@ importers: specifier: workspace:* version: link:../utils '@emotion/cache': - specifier: 11.11.0 + specifier: catalog:material-ui version: 11.11.0 '@emotion/react': - specifier: 11.11.4 + specifier: catalog:material-ui version: 11.11.4(@types/react@18.3.3)(react@18.3.1) '@emotion/styled': - specifier: 11.11.5 + specifier: catalog:material-ui version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@hookform/resolvers': - specifier: 3.6.0 + specifier: 'catalog:' version: 3.6.0(react-hook-form@7.51.5(react@18.3.1)) '@mui/icons-material': - specifier: 5.15.19 + specifier: catalog:material-ui version: 5.15.19(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/lab': - specifier: 5.0.0-alpha.170 + specifier: catalog:material-ui version: 5.0.0-alpha.170(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': - specifier: 5.15.19 + specifier: catalog:material-ui version: 5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': - specifier: 5.16.12 + specifier: catalog:material-ui version: 5.16.12(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@mui/x-date-pickers': - specifier: 7.6.2 + specifier: catalog:material-ui version: 7.6.2(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@mui/material@5.15.19(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(dayjs@1.11.13)(luxon@3.4.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react': - specifier: 8.4.7 + specifier: catalog:storybook version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@tanstack/react-query': - specifier: 5.45.1 + specifier: 'catalog:' version: 5.45.1(react@18.3.1) framer-motion: specifier: ^11.5.4 version: 11.15.0(@emotion/is-prop-valid@1.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) graphql: - specifier: ^16.8.1 + specifier: catalog:graphql version: 16.8.1 js-cookie: - specifier: ^3.0.5 + specifier: 'catalog:' version: 3.0.5 luxon: - specifier: ^3.4.4 + specifier: 'catalog:' version: 3.4.4 next: - specifier: 14.3.0-canary.24 + specifier: 'catalog:' version: 14.3.0-canary.24(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: - specifier: 18.3.1 + specifier: catalog:react18 version: 18.3.1 react-dom: - specifier: 18.3.1 + specifier: catalog:react18 version: 18.3.1(react@18.3.1) react-hook-form: - specifier: ^7.51.5 + specifier: 'catalog:' version: 7.51.5(react@18.3.1) react-relay: - specifier: ^16.2.0 + specifier: catalog:graphql version: 16.2.0(react@18.3.1) react-virtuoso: - specifier: ^4.7.11 + specifier: 'catalog:' version: 4.7.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) relay-runtime: - specifier: ^16.2.0 + specifier: catalog:graphql version: 16.2.0 slugify: specifier: ^1.6.6 @@ -540,20 +546,20 @@ importers: specifier: ^3.2.0 version: 3.2.0(react@18.3.1) zod: - specifier: ^3.23.8 + specifier: 'catalog:' version: 3.23.8 zustand: - specifier: ^4.5.2 + specifier: 'catalog:' version: 4.5.2(@types/react@18.3.3)(react@18.3.1) devDependencies: '@babel/preset-env': - specifier: ^7.24.7 + specifier: catalog:storybook version: 7.26.0(@babel/core@7.26.0) '@babel/preset-react': - specifier: ^7.26.3 - version: 7.26.3(@babel/core@7.26.0) + specifier: catalog:storybook + version: 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': - specifier: ^7.26.0 + specifier: catalog:storybook version: 7.26.0(@babel/core@7.26.0) '@baseapp-frontend/config': specifier: workspace:* @@ -565,103 +571,103 @@ importers: specifier: workspace:* version: link:../tsconfig '@chromatic-com/storybook': - specifier: ^1.9.0 - version: 1.9.0(react@18.3.1) + specifier: catalog:storybook + version: 3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@cypress/webpack-dev-server': - specifier: ^3.10.1 + specifier: catalog:test version: 3.10.1(webpack-cli@5.1.4)(webpack@5.93.0) '@faker-js/faker': - specifier: ^9.0.3 + specifier: catalog:test version: 9.3.0 '@storybook/addon-docs': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(@types/react@18.3.3)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-essentials': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(@types/react@18.3.3)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-interactions': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-links': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-styling-webpack': - specifier: ^1.0.1 + specifier: catalog:storybook version: 1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0) '@storybook/addon-webpack5-compiler-babel': - specifier: ^3.0.3 + specifier: catalog:storybook version: 3.0.3(webpack@5.93.0) '@storybook/blocks': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/react-webpack5': - specifier: ^8.4.7 - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + specifier: catalog:storybook + version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/test': - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': - specifier: ^0.5.13 - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + specifier: catalog:tailwind + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) '@testing-library/cypress': - specifier: ^10.0.2 + specifier: catalog:test version: 10.0.2(cypress@13.16.1) '@testing-library/jest-dom': - specifier: ^6.4.6 - version: 6.5.0 + specifier: catalog:test + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) '@testing-library/react': - specifier: ^16.0.0 + specifier: catalog:test version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': - specifier: ^14.5.2 + specifier: catalog:test version: 14.5.2(@testing-library/dom@10.4.0) '@types/jest': - specifier: ^29.5.12 + specifier: catalog:test version: 29.5.12 '@types/js-cookie': - specifier: ^3.0.6 + specifier: 'catalog:' version: 3.0.6 '@types/luxon': - specifier: ^3.4.2 + specifier: 'catalog:' version: 3.4.2 '@types/react': - specifier: ^18.3.3 + specifier: catalog:react18 version: 18.3.3 '@types/react-dom': - specifier: ^18.3.0 + specifier: catalog:react18 version: 18.3.0 '@types/react-relay': - specifier: ^16.0.6 + specifier: catalog:graphql version: 16.0.6 '@types/relay-runtime': - specifier: ^17.0.3 + specifier: catalog:graphql version: 17.0.3 '@types/relay-test-utils': - specifier: ^14.1.4 + specifier: catalog:graphql version: 14.1.4 autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.49) + specifier: catalog:tailwind + version: 10.4.19(postcss@8.4.38) babel-jest: - specifier: ^29.7.0 + specifier: catalog:test version: 29.7.0(@babel/core@7.26.0) babel-loader: - specifier: ^9.2.1 + specifier: catalog:storybook version: 9.2.1(@babel/core@7.26.0)(webpack@5.93.0) babel-plugin-relay: - specifier: ^17.0.0 + specifier: catalog:graphql version: 17.0.0 css-loader: - specifier: ^7.1.2 + specifier: catalog:storybook version: 7.1.2(webpack@5.93.0) cypress: - specifier: ^13.16.1 + specifier: catalog:test version: 13.16.1 cypress-plugin-steps: - specifier: ^1.1.1 + specifier: catalog:test version: 1.1.1(cypress@13.16.1) cypress-wait-until: - specifier: ^3.0.2 + specifier: catalog:test version: 3.0.2 dotenv: specifier: ^16.4.5 @@ -670,67 +676,67 @@ importers: specifier: ^7.4.2 version: 7.4.4 eslint-plugin-storybook: - specifier: ^0.8.0 + specifier: catalog:lint version: 0.8.0(eslint@8.57.1)(typescript@5.4.5) get-graphql-schema: - specifier: ^2.1.2 + specifier: catalog:graphql version: 2.1.2 html-webpack-plugin: - specifier: ^5.6.0 + specifier: catalog:storybook version: 5.6.0(webpack@5.93.0) jest: - specifier: ^29.7.0 - version: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + specifier: catalog:test + version: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-environment-jsdom: - specifier: ^29.7.0 + specifier: catalog:test version: 29.7.0 jotai: - specifier: ^2.9.3 + specifier: 'catalog:' version: 2.9.3(@types/react@18.3.3)(react@18.3.1) msw: - specifier: ^2.3.1 + specifier: catalog:storybook version: 2.6.6(@types/node@22.10.2)(typescript@5.4.5) msw-storybook-addon: - specifier: ^2.0.2 + specifier: catalog:storybook version: 2.0.4(msw@2.6.6(@types/node@22.10.2)(typescript@5.4.5)) postcss: - specifier: ^8.4.41 - version: 8.4.49 + specifier: catalog:tailwind + version: 8.4.38 postcss-loader: - specifier: ^8.1.1 - version: 8.1.1(postcss@8.4.49)(typescript@5.4.5)(webpack@5.93.0) + specifier: catalog:storybook + version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0) relay-compiler: - specifier: ^16.2.0 + specifier: catalog:graphql version: 16.2.0 relay-test-utils: - specifier: ^17.0.0 + specifier: catalog:graphql version: 17.0.0 storybook: - specifier: ^8.4.7 + specifier: catalog:storybook version: 8.4.7(prettier@3.4.2) style-loader: - specifier: ^4.0.0 + specifier: catalog:storybook version: 4.0.0(webpack@5.93.0) tailwindcss: - specifier: ^3.4.4 - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + specifier: catalog:tailwind + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) ts-jest: - specifier: ^29.1.4 - version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5) + specifier: catalog:test + version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5) ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + specifier: catalog:test + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) typescript: - specifier: ^5.4.5 + specifier: 'catalog:' version: 5.4.5 webpack: - specifier: ^5.93.0 - version: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + specifier: catalog:storybook + version: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: - specifier: ^5.1.4 + specifier: catalog:storybook version: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) webpack-dev-server: - specifier: ^5.0.4 + specifier: catalog:storybook version: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) packages/config: @@ -891,22 +897,22 @@ importers: version: 8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/addon-styling-webpack': specifier: catalog:storybook - version: 1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + version: 1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@storybook/addon-webpack5-compiler-babel': specifier: catalog:storybook - version: 3.0.3(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + version: 3.0.3(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@storybook/blocks': specifier: catalog:storybook version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/react-webpack5': specifier: catalog:storybook - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) + version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/test': specifier: catalog:storybook version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': specifier: catalog:tailwind - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) '@types/lodash': specifier: 'catalog:' version: 4.17.7 @@ -921,7 +927,7 @@ importers: version: 10.4.19(postcss@8.4.38) css-loader: specifier: catalog:storybook - version: 7.1.2(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + version: 7.1.2(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) eslint-plugin-storybook: specifier: catalog:lint version: 0.8.0(eslint@8.57.1)(typescript@5.4.5) @@ -930,16 +936,16 @@ importers: version: 8.4.38 postcss-loader: specifier: catalog:storybook - version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) storybook: specifier: catalog:storybook version: 8.4.7(prettier@3.4.2) style-loader: specifier: catalog:storybook - version: 4.0.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + version: 4.0.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) tailwindcss: specifier: catalog:tailwind - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) typescript: specifier: 'catalog:' version: 5.4.5 @@ -964,7 +970,7 @@ importers: version: 2.13.3(@swc/helpers@0.5.15)(postcss@8.4.49)(relateurl@0.2.7)(terser@5.37.0)(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -1093,7 +1099,7 @@ importers: version: link:../tsconfig '@testing-library/jest-dom': specifier: catalog:test - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) '@testing-library/react': specifier: catalog:test version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1120,16 +1126,16 @@ importers: version: 29.7.0(@babel/core@7.26.0) jest: specifier: catalog:test - version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-environment-jsdom: specifier: catalog:test version: 29.7.0 ts-jest: specifier: catalog:test - version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -1192,7 +1198,7 @@ importers: version: link:../tsconfig '@testing-library/jest-dom': specifier: catalog:test - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))) '@testing-library/react': specifier: catalog:test version: 16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1231,16 +1237,16 @@ importers: version: 29.7.0(@babel/core@7.26.0) jest: specifier: catalog:test - version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-environment-jsdom: specifier: catalog:test version: 29.7.0 ts-jest: specifier: catalog:test - version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) + version: 29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5) ts-node: specifier: catalog:test - version: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + version: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) typescript: specifier: 'catalog:' version: 5.4.5 @@ -1293,6 +1299,9 @@ importers: '@baseapp-frontend/config': specifier: workspace:* version: link:../config + '@baseapp-frontend/test': + specifier: workspace:* + version: link:../test '@baseapp-frontend/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -1322,13 +1331,13 @@ importers: version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) '@storybook/react-webpack5': specifier: catalog:storybook - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/test': specifier: catalog:storybook version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@tailwindcss/typography': specifier: catalog:tailwind - version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) + version: 0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))) '@testing-library/cypress': specifier: catalog:test version: 10.0.2(cypress@13.16.1) @@ -1409,13 +1418,13 @@ importers: version: 4.0.0(webpack@5.93.0) tailwindcss: specifier: catalog:tailwind - version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + version: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) typescript: specifier: 'catalog:' version: 5.4.5 webpack: specifier: catalog:storybook - version: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) + version: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-cli: specifier: catalog:storybook version: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) @@ -2256,10 +2265,6 @@ packages: '@changesets/write@0.3.2': resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} - '@chromatic-com/storybook@1.9.0': - resolution: {integrity: sha512-vYQ+TcfktEE3GHnLZXHCzXF/sN9dw+KivH8a5cmPyd9YtQs7fZtHrEgsIjWpYycXiweKMo1Lm1RZsjxk8DH3rA==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} - '@chromatic-com/storybook@3.2.3': resolution: {integrity: sha512-3+hfANx79kIjP1qrOSLxpoAXOiYUA0S7A0WI0A24kASrv7USFNNW8etR5TjUilMb0LmqKUn3wDwUK2h6aceQ9g==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} @@ -3898,68 +3903,68 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@swc/core-darwin-arm64@1.10.1': - resolution: {integrity: sha512-NyELPp8EsVZtxH/mEqvzSyWpfPJ1lugpTQcSlMduZLj1EASLO4sC8wt8hmL1aizRlsbjCX+r0PyL+l0xQ64/6Q==} + '@swc/core-darwin-arm64@1.10.4': + resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.1': - resolution: {integrity: sha512-L4BNt1fdQ5ZZhAk5qoDfUnXRabDOXKnXBxMDJ+PWLSxOGBbWE6aJTnu4zbGjJvtot0KM46m2LPAPY8ttknqaZA==} + '@swc/core-darwin-x64@1.10.4': + resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.1': - resolution: {integrity: sha512-Y1u9OqCHgvVp2tYQAJ7hcU9qO5brDMIrA5R31rwWQIAKDkJKtv3IlTHF0hrbWk1wPR0ZdngkQSJZple7G+Grvw==} + '@swc/core-linux-arm-gnueabihf@1.10.4': + resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.1': - resolution: {integrity: sha512-tNQHO/UKdtnqjc7o04iRXng1wTUXPgVd8Y6LI4qIbHVoVPwksZydISjMcilKNLKIwOoUQAkxyJ16SlOAeADzhQ==} + '@swc/core-linux-arm64-gnu@1.10.4': + resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.1': - resolution: {integrity: sha512-x0L2Pd9weQ6n8dI1z1Isq00VHFvpBClwQJvrt3NHzmR+1wCT/gcYl1tp9P5xHh3ldM8Cn4UjWCw+7PaUgg8FcQ==} + '@swc/core-linux-arm64-musl@1.10.4': + resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.1': - resolution: {integrity: sha512-yyYEwQcObV3AUsC79rSzN9z6kiWxKAVJ6Ntwq2N9YoZqSPYph+4/Am5fM1xEQYf/kb99csj0FgOelomJSobxQA==} + '@swc/core-linux-x64-gnu@1.10.4': + resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.1': - resolution: {integrity: sha512-tcaS43Ydd7Fk7sW5ROpaf2Kq1zR+sI5K0RM+0qYLYYurvsJruj3GhBCaiN3gkzd8m/8wkqNqtVklWaQYSDsyqA==} + '@swc/core-linux-x64-musl@1.10.4': + resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.1': - resolution: {integrity: sha512-D3Qo1voA7AkbOzQ2UGuKNHfYGKL6eejN8VWOoQYtGHHQi1p5KK/Q7V1ku55oxXBsj79Ny5FRMqiRJpVGad7bjQ==} + '@swc/core-win32-arm64-msvc@1.10.4': + resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.1': - resolution: {integrity: sha512-WalYdFoU3454Og+sDKHM1MrjvxUGwA2oralknXkXL8S0I/8RkWZOB++p3pLaGbTvOO++T+6znFbQdR8KRaa7DA==} + '@swc/core-win32-ia32-msvc@1.10.4': + resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.1': - resolution: {integrity: sha512-JWobfQDbTnoqaIwPKQ3DVSywihVXlQMbDuwik/dDWlj33A8oEHcjPOGs4OqcA3RHv24i+lfCQpM3Mn4FAMfacA==} + '@swc/core-win32-x64-msvc@1.10.4': + resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.1': - resolution: {integrity: sha512-rQ4dS6GAdmtzKiCRt3LFVxl37FaY1cgL9kSUTnhQ2xc3fmHOd7jdJK/V4pSZMG1ruGTd0bsi34O2R0Olg9Zo/w==} + '@swc/core@1.10.4': + resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -5745,8 +5750,8 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.7: - resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} + es-abstract@1.23.8: + resolution: {integrity: sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: @@ -5764,8 +5769,8 @@ packages: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} @@ -8139,6 +8144,10 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -8639,11 +8648,11 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-confetti@6.1.0: - resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} - engines: {node: '>=10.18'} + react-confetti@6.2.2: + resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} + engines: {node: '>=16'} peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 react-devtools-core@5.3.2: resolution: {integrity: sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==} @@ -8946,6 +8955,10 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -9697,8 +9710,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.30.2: - resolution: {integrity: sha512-UJShLPYi1aWqCdq9HycOL/gwsuqda1OISdBO3t8RlXQC4QvtuIz4b5FCfe2dQIWEpmlRExKmcTBfP1r9bhY7ig==} + type-fest@4.31.0: + resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} engines: {node: '>=16'} type-is@1.6.18: @@ -10268,7 +10281,7 @@ snapshots: '@babel/generator@7.17.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.17.0 jsesc: 2.5.2 source-map: 0.5.7 @@ -11340,24 +11353,12 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - '@chromatic-com/storybook@1.9.0(react@18.3.1)': - dependencies: - chromatic: 11.20.2 - filesize: 10.1.6 - jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.3.1) - strip-ansi: 7.1.0 - transitivePeerDependencies: - - '@chromatic-com/cypress' - - '@chromatic-com/playwright' - - react - '@chromatic-com/storybook@3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': dependencies: chromatic: 11.20.2 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.3.1) + react-confetti: 6.2.2(react@18.3.1) storybook: 8.4.7(prettier@3.4.2) strip-ansi: 7.1.0 transitivePeerDependencies: @@ -12079,27 +12080,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12120,21 +12121,21 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12163,7 +12164,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12181,7 +12182,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12203,7 +12204,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -12273,7 +12274,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -12905,7 +12906,7 @@ snapshots: '@parcel/plugin': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/source-map': 2.1.1 '@parcel/utils': 2.13.3 - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) nullthrows: 1.1.1 transitivePeerDependencies: - '@parcel/core' @@ -12921,7 +12922,7 @@ snapshots: '@parcel/types': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) '@parcel/utils': 2.13.3 '@parcel/workers': 2.13.3(@parcel/core@2.13.3(@swc/helpers@0.5.15)) - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) semver: 7.6.3 transitivePeerDependencies: - '@swc/helpers' @@ -12936,7 +12937,7 @@ snapshots: '@parcel/types': 2.13.3(@parcel/core@2.13.3) '@parcel/utils': 2.13.3 '@parcel/workers': 2.13.3(@parcel/core@2.13.3) - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) semver: 7.6.3 transitivePeerDependencies: - '@swc/helpers' @@ -13594,17 +13595,17 @@ snapshots: storybook: 8.4.7(prettier@3.4.2) ts-dedent: 2.2.0 - '@storybook/addon-styling-webpack@1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)))': + '@storybook/addon-styling-webpack@1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: '@storybook/node-logger': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - storybook '@storybook/addon-styling-webpack@1.0.1(storybook@8.4.7(prettier@3.4.2))(webpack@5.93.0)': dependencies: '@storybook/node-logger': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) transitivePeerDependencies: - storybook @@ -13617,10 +13618,10 @@ snapshots: memoizerific: 1.11.3 storybook: 8.4.7(prettier@3.4.2) - '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)))': + '@storybook/addon-webpack5-compiler-babel@3.0.3(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: '@babel/core': 7.26.0 - babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) transitivePeerDependencies: - supports-color - webpack @@ -13643,7 +13644,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@types/node': 22.10.2 @@ -13653,7 +13654,7 @@ snapshots: cjs-module-lexer: 1.4.1 constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.93.0) - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.4.5)(webpack@5.93.0) html-webpack-plugin: 5.6.0(webpack@5.93.0) magic-string: 0.30.17 @@ -13662,12 +13663,12 @@ snapshots: semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) style-loader: 3.3.4(webpack@5.93.0) - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-dev-middleware: 6.1.3(webpack@5.93.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 @@ -13680,7 +13681,7 @@ snapshots: - uglify-js - webpack-cli - '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': + '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@types/node': 22.10.2 @@ -13689,23 +13690,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.1 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) - es-module-lexer: 1.5.4 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) - html-webpack-plugin: 5.6.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + css-loader: 6.11.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) + es-module-lexer: 1.6.0 + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) + html-webpack-plugin: 5.6.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) - style-loader: 3.3.4(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + style-loader: 3.3.4(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) - webpack-dev-middleware: 6.1.3(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) + webpack-dev-middleware: 6.1.3(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -13717,7 +13718,7 @@ snapshots: - uglify-js - webpack-cli - '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/builder-webpack5@8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@types/node': 22.10.2 @@ -13727,7 +13728,7 @@ snapshots: cjs-module-lexer: 1.4.1 constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.93.0) - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.4.5)(webpack@5.93.0) html-webpack-plugin: 5.6.0(webpack@5.93.0) magic-string: 0.30.17 @@ -13736,12 +13737,12 @@ snapshots: semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) style-loader: 3.3.4(webpack@5.93.0) - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack-cli@5.1.4) webpack-dev-middleware: 6.1.3(webpack@5.93.0) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 @@ -13818,7 +13819,7 @@ snapshots: dependencies: storybook: 8.4.7(prettier@3.4.2) - '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) @@ -13834,7 +13835,7 @@ snapshots: semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) tsconfig-paths: 4.2.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -13845,11 +13846,11 @@ snapshots: - uglify-js - webpack-cli - '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': + '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) '@types/node': 22.10.2 '@types/semver': 7.5.8 find-up: 5.0.0 @@ -13861,7 +13862,7 @@ snapshots: semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) tsconfig-paths: 4.2.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -13872,7 +13873,7 @@ snapshots: - uglify-js - webpack-cli - '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/preset-react-webpack@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) @@ -13888,7 +13889,7 @@ snapshots: semver: 7.6.3 storybook: 8.4.7(prettier@3.4.2) tsconfig-paths: 4.2.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack-cli@5.1.4) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: @@ -13903,7 +13904,7 @@ snapshots: dependencies: storybook: 8.4.7(prettier@3.4.2) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)))': dependencies: debug: 4.4.0(supports-color@8.1.1) endent: 2.1.0 @@ -13913,7 +13914,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.4.5) tslib: 2.8.1 typescript: 5.4.5 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - supports-color @@ -13927,7 +13928,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.4.5) tslib: 2.8.1 typescript: 5.4.5 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color @@ -13937,10 +13938,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 8.4.7(prettier@3.4.2) - '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: - '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) - '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@types/node': 22.10.2 react: 18.3.1 @@ -13957,10 +13958,10 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': + '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)': dependencies: - '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) - '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) + '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) + '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@types/node': 22.10.2 react: 18.3.1 @@ -13977,10 +13978,10 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': + '@storybook/react-webpack5@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4)': dependencies: - '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.1(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) - '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.1(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + '@storybook/builder-webpack5': 8.4.7(@swc/core@1.10.4(@swc/helpers@0.5.15))(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) + '@storybook/preset-react-webpack': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(@swc/core@1.10.4(@swc/helpers@0.5.15))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5)(webpack-cli@5.1.4) '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.4.5) '@types/node': 22.10.2 react: 18.3.1 @@ -14028,51 +14029,51 @@ snapshots: dependencies: storybook: 8.4.7(prettier@3.4.2) - '@swc/core-darwin-arm64@1.10.1': + '@swc/core-darwin-arm64@1.10.4': optional: true - '@swc/core-darwin-x64@1.10.1': + '@swc/core-darwin-x64@1.10.4': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.1': + '@swc/core-linux-arm-gnueabihf@1.10.4': optional: true - '@swc/core-linux-arm64-gnu@1.10.1': + '@swc/core-linux-arm64-gnu@1.10.4': optional: true - '@swc/core-linux-arm64-musl@1.10.1': + '@swc/core-linux-arm64-musl@1.10.4': optional: true - '@swc/core-linux-x64-gnu@1.10.1': + '@swc/core-linux-x64-gnu@1.10.4': optional: true - '@swc/core-linux-x64-musl@1.10.1': + '@swc/core-linux-x64-musl@1.10.4': optional: true - '@swc/core-win32-arm64-msvc@1.10.1': + '@swc/core-win32-arm64-msvc@1.10.4': optional: true - '@swc/core-win32-ia32-msvc@1.10.1': + '@swc/core-win32-ia32-msvc@1.10.4': optional: true - '@swc/core-win32-x64-msvc@1.10.1': + '@swc/core-win32-x64-msvc@1.10.4': optional: true - '@swc/core@1.10.1(@swc/helpers@0.5.15)': + '@swc/core@1.10.4(@swc/helpers@0.5.15)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.1 - '@swc/core-darwin-x64': 1.10.1 - '@swc/core-linux-arm-gnueabihf': 1.10.1 - '@swc/core-linux-arm64-gnu': 1.10.1 - '@swc/core-linux-arm64-musl': 1.10.1 - '@swc/core-linux-x64-gnu': 1.10.1 - '@swc/core-linux-x64-musl': 1.10.1 - '@swc/core-win32-arm64-msvc': 1.10.1 - '@swc/core-win32-ia32-msvc': 1.10.1 - '@swc/core-win32-x64-msvc': 1.10.1 + '@swc/core-darwin-arm64': 1.10.4 + '@swc/core-darwin-x64': 1.10.4 + '@swc/core-linux-arm-gnueabihf': 1.10.4 + '@swc/core-linux-arm64-gnu': 1.10.4 + '@swc/core-linux-arm64-musl': 1.10.4 + '@swc/core-linux-x64-gnu': 1.10.4 + '@swc/core-linux-x64-musl': 1.10.4 + '@swc/core-win32-arm64-msvc': 1.10.4 + '@swc/core-win32-ia32-msvc': 1.10.4 + '@swc/core-win32-x64-msvc': 1.10.4 '@swc/helpers': 0.5.15 '@swc/counter@0.1.3': {} @@ -14089,13 +14090,13 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': + '@tailwindcss/typography@0.5.13(tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + tailwindcss: 3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) '@tanstack/query-core@5.45.0': {} @@ -14121,7 +14122,22 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))': + '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))': + dependencies: + '@adobe/css-tools': 4.4.1 + '@babel/runtime': 7.26.0 + aria-query: 5.3.2 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + lodash: 4.17.21 + redent: 3.0.0 + optionalDependencies: + '@jest/globals': 29.7.0 + '@types/jest': 29.5.12 + jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + + '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))': dependencies: '@adobe/css-tools': 4.4.1 '@babel/runtime': 7.26.0 @@ -14134,7 +14150,7 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) '@testing-library/jest-dom@6.5.0': dependencies: @@ -14262,7 +14278,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/html-minifier-terser@5.1.2': {} @@ -14295,7 +14311,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -14644,17 +14660,17 @@ snapshots: '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.93.0)': dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.93.0)': dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.93.0)': dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) optionalDependencies: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) @@ -14807,7 +14823,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-object-atoms: 1.0.0 get-intrinsic: 1.2.6 is-string: 1.1.1 @@ -14818,7 +14834,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14827,7 +14843,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14836,21 +14852,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-shim-unscopables: 1.0.2 array.prototype.reduce@1.0.7: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-array-method-boxes-properly: 1.0.0 es-errors: 1.3.0 es-object-atoms: 1.0.0 @@ -14860,7 +14876,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -14869,7 +14885,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 get-intrinsic: 1.2.6 is-array-buffer: 3.0.5 @@ -14916,16 +14932,6 @@ snapshots: postcss: 8.4.38 postcss-value-parser: 4.2.0 - autoprefixer@10.4.19(postcss@8.4.49): - dependencies: - browserslist: 4.24.3 - caniuse-lite: 1.0.30001690 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -14969,19 +14975,19 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.93.0): dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) babel-plugin-istanbul@6.1.1: dependencies: @@ -15585,13 +15591,13 @@ snapshots: optionalDependencies: typescript: 5.4.5 - create-jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -15600,13 +15606,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + create-jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -15641,57 +15647,57 @@ snapshots: crypto-random-string@2.0.0: {} - css-loader@6.11.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + css-loader@6.11.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) css-loader@6.11.0(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) - css-loader@7.1.2(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + css-loader@7.1.2(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) css-loader@7.1.2(webpack@5.93.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) + postcss-modules-local-by-default: 4.2.0(postcss@8.4.38) + postcss-modules-scope: 3.2.1(postcss@8.4.38) + postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) css-select@4.3.0: dependencies: @@ -16070,7 +16076,7 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.23.7: + es-abstract@1.23.8: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -16107,8 +16113,10 @@ snapshots: object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.7 + own-keys: 1.0.1 regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 @@ -16131,7 +16139,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 @@ -16145,7 +16153,7 @@ snapshots: iterator.prototype: 1.1.4 safe-array-concat: 1.1.3 - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} es-object-atoms@1.0.0: dependencies: @@ -16863,7 +16871,7 @@ snapshots: forever-agent@0.6.1: {} - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@babel/code-frame': 7.26.2 chalk: 4.1.2 @@ -16878,7 +16886,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 5.4.5 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) fork-ts-checker-webpack-plugin@8.0.0(typescript@5.4.5)(webpack@5.93.0): dependencies: @@ -16895,7 +16903,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 5.4.5 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) form-data@3.0.2: dependencies: @@ -17230,9 +17238,9 @@ snapshots: pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) - html-webpack-plugin@5.6.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + html-webpack-plugin@5.6.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -17240,7 +17248,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) html-webpack-plugin@5.6.0(webpack@5.93.0): dependencies: @@ -17250,7 +17258,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) htmlnano@2.1.1(postcss@8.4.49)(relateurl@0.2.7)(terser@5.37.0)(typescript@5.4.5): dependencies: @@ -17367,9 +17375,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.49): + icss-utils@5.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 ieee754@1.2.1: {} @@ -17703,7 +17711,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -17723,16 +17731,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -17742,16 +17750,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + jest-cli@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + create-jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -17761,7 +17769,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17787,12 +17795,12 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.10.2 - ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17817,13 +17825,13 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.10.2 - ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + '@types/node': 22.7.2 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + jest-config@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -17849,7 +17857,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.7.2 - ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -17879,7 +17887,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -17893,7 +17901,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -17903,7 +17911,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.10.2 + '@types/node': 22.7.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -17942,7 +17950,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -17977,7 +17985,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -18005,7 +18013,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -18051,7 +18059,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -18070,7 +18078,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.10.2 + '@types/node': 22.7.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -18085,29 +18093,29 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.10.2 + '@types/node': 22.7.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): + jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -18900,7 +18908,7 @@ snapshots: outvariant: 1.4.3 path-to-regexp: 6.3.0 strict-event-emitter: 0.5.1 - type-fest: 4.30.2 + type-fest: 4.31.0 yargs: 17.7.2 optionalDependencies: typescript: 5.4.5 @@ -19058,7 +19066,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-object-atoms: 1.0.0 object.getownpropertydescriptors@2.1.8: @@ -19066,7 +19074,7 @@ snapshots: array.prototype.reduce: 1.0.7 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-object-atoms: 1.0.0 gopd: 1.2.0 safe-array-concat: 1.1.3 @@ -19075,7 +19083,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 object.values@1.2.1: dependencies: @@ -19160,6 +19168,12 @@ snapshots: outvariant@1.4.3: {} + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.6 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -19362,34 +19376,34 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.4.49): + postcss-js@4.0.1(postcss@8.4.38): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.49 + postcss: 8.4.38 - postcss-load-config@4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: lilconfig: 3.1.3 yaml: 2.6.1 optionalDependencies: - postcss: 8.4.49 - ts-node: 10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) + postcss: 8.4.38 + ts-node: 10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5) - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.7 postcss: 8.4.38 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) transitivePeerDependencies: - typescript @@ -19400,45 +19414,34 @@ snapshots: postcss: 8.4.38 semver: 7.6.3 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) - transitivePeerDependencies: - - typescript - - postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.4.5)(webpack@5.93.0): - dependencies: - cosmiconfig: 9.0.0(typescript@5.4.5) - jiti: 1.21.7 - postcss: 8.4.49 - semver: 7.6.3 - optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) transitivePeerDependencies: - typescript - postcss-modules-extract-imports@3.1.0(postcss@8.4.49): + postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 - postcss-modules-local-by-default@4.2.0(postcss@8.4.49): + postcss-modules-local-by-default@4.2.0(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.4.49): + postcss-modules-scope@3.2.1(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.4.49): + postcss-modules-values@4.0.0(postcss@8.4.38): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.4.38) + postcss: 8.4.38 - postcss-nested@6.2.0(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.4.38): dependencies: - postcss: 8.4.49 + postcss: 8.4.38 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.0.10: @@ -19618,7 +19621,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-confetti@6.1.0(react@18.3.1): + react-confetti@6.2.2(react@18.3.1): dependencies: react: 18.3.1 tween-functions: 1.2.0 @@ -19828,7 +19831,7 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 dunder-proto: 1.0.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 get-intrinsic: 1.2.6 gopd: 1.2.0 @@ -20022,6 +20025,11 @@ snapshots: safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + safe-regex-test@1.1.0: dependencies: call-bound: 1.0.3 @@ -20330,7 +20338,7 @@ snapshots: speed-measure-webpack-plugin@1.4.2(webpack@5.93.0): dependencies: chalk: 4.1.2 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) split@1.0.1: dependencies: @@ -20411,14 +20419,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-errors: 1.3.0 es-object-atoms: 1.0.0 get-intrinsic: 1.2.6 @@ -20432,7 +20440,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 string.prototype.trim@1.2.10: dependencies: @@ -20440,7 +20448,7 @@ snapshots: call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.7 + es-abstract: 1.23.8 es-object-atoms: 1.0.0 has-property-descriptors: 1.0.2 @@ -20505,21 +20513,21 @@ snapshots: structured-headers@0.4.1: {} - style-loader@3.3.4(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + style-loader@3.3.4(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) style-loader@3.3.4(webpack@5.93.0): dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) - style-loader@4.0.0(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + style-loader@4.0.0(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) style-loader@4.0.0(webpack@5.93.0): dependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) styled-jsx@5.1.1(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: @@ -20566,7 +20574,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): + tailwindcss@3.4.4(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -20582,11 +20590,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) - postcss-nested: 6.2.0(postcss@8.4.49) + postcss: 8.4.38 + postcss-import: 15.1.0(postcss@8.4.38) + postcss-js: 4.0.1(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + postcss-nested: 6.2.0(postcss@8.4.38) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 @@ -20627,39 +20635,39 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0): + terser-webpack-plugin@5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) esbuild: 0.24.2 - terser-webpack-plugin@5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + terser-webpack-plugin@5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) - terser-webpack-plugin@5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0): + terser-webpack-plugin@5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.37.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack-cli@5.1.4) optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) terser@4.8.1: dependencies: @@ -20765,11 +20773,11 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + jest: 29.7.0(@types/node@22.10.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -20784,11 +20792,11 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.26.0) esbuild: 0.24.2 - ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5): + ts-jest@29.1.4(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)))(typescript@5.4.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) + jest: 29.7.0(@types/node@22.7.2)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -20802,7 +20810,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -20820,9 +20828,9 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) - ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5): + ts-node@10.9.2(@swc/core@1.10.4(@swc/helpers@0.5.15))(@types/node@22.7.2)(typescript@5.4.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -20840,7 +20848,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.10.1(@swc/helpers@0.5.15) + '@swc/core': 1.10.4(@swc/helpers@0.5.15) tsconfig-paths@3.15.0: dependencies: @@ -20917,7 +20925,7 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.30.2: {} + type-fest@4.31.0: {} type-is@1.6.18: dependencies: @@ -21134,7 +21142,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.93.0) @@ -21146,9 +21154,9 @@ snapshots: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.0 - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) - webpack-dev-middleware@6.1.3(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))): + webpack-dev-middleware@6.1.3(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -21156,7 +21164,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)) webpack-dev-middleware@6.1.3(webpack@5.93.0): dependencies: @@ -21166,7 +21174,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-dev-middleware@7.4.2(webpack@5.93.0): dependencies: @@ -21177,7 +21185,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-dev-server@4.15.2(webpack-cli@5.1.4)(webpack@5.93.0): dependencies: @@ -21212,7 +21220,7 @@ snapshots: webpack-dev-middleware: 5.3.4(webpack@5.93.0) ws: 8.18.0 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) transitivePeerDependencies: - bufferutil @@ -21253,7 +21261,7 @@ snapshots: webpack-dev-middleware: 7.4.2(webpack@5.93.0) ws: 8.18.0 optionalDependencies: - webpack: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + webpack: 5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) transitivePeerDependencies: - bufferutil @@ -21277,7 +21285,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15)): + webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -21289,7 +21297,7 @@ snapshots: browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -21300,7 +21308,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -21308,7 +21316,7 @@ snapshots: - esbuild - uglify-js - webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4): + webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -21320,7 +21328,7 @@ snapshots: browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -21331,7 +21339,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack@5.93.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: @@ -21341,7 +21349,7 @@ snapshots: - esbuild - uglify-js - webpack@5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack-cli@5.1.4): + webpack@5.93.0(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -21353,7 +21361,7 @@ snapshots: browserslist: 4.24.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -21364,7 +21372,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(@swc/core@1.10.1(@swc/helpers@0.5.15))(webpack@5.93.0) + terser-webpack-plugin: 5.3.11(@swc/core@1.10.4(@swc/helpers@0.5.15))(webpack@5.93.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: