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__/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/__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 new file mode 100644 index 00000000..73d53b77 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentCreated/index.tsx @@ -0,0 +1,31 @@ +import { FC } from 'react' + +import { formatRelativeTime } from '@baseapp-frontend/utils' + +import Notification from '../Notification' +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..1fdf2a85 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/index.tsx @@ -1,51 +1,31 @@ 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 { 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/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/index.tsx new file mode 100644 index 00000000..72e1e3f9 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationAvatar/index.tsx @@ -0,0 +1,16 @@ +import { FC } from 'react' + +import { AvatarWithPlaceholder } from '@baseapp-frontend/design-system' + +import { NotificationAvatarProps } from './types' + +const NotificationAvatar: FC = ({ actorAvatar, actorName }) => ( + +) + +export default NotificationAvatar 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/NotificationBody/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/index.tsx new file mode 100644 index 00000000..489bd96b --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationBody/index.tsx @@ -0,0 +1,16 @@ +import { FC } from 'react' + +import { TypographyWithEllipsis } from '@baseapp-frontend/design-system' + +import { BodyTypographyContainer } from './styled' +import { NotificationBodyProps } from './types' + +const NotificationBody: FC = ({ content }) => ( + + + {content ?? ''} + + +) + +export default NotificationBody diff --git a/packages/components/modules/notifications/NotificationsList/NotificationItem/CommentReply/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/CommentReply/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/NotificationContent/NotificationHeader/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/index.tsx new file mode 100644 index 00000000..a8e8915f --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/index.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/NotificationContent/NotificationHeader/types.ts b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/types.ts new file mode 100644 index 00000000..f54665c3 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationContent/NotificationHeader/types.ts @@ -0,0 +1,6 @@ +export interface NotificationHeaderProps { + 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/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot/index.tsx new file mode 100644 index 00000000..bf1cb564 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/NotificationRoot/index.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..c7d4e53d --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/Notification/index.tsx @@ -0,0 +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/NotificationItem/NotificationItemRenderer/index.tsx b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/index.tsx new file mode 100644 index 00000000..f7d8af59 --- /dev/null +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/NotificationItemRenderer/index.tsx @@ -0,0 +1,22 @@ +import { FC } from 'react' + +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 }) => { + 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/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 new file mode 100644 index 00000000..0666be63 --- /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..9b5b833e 100644 --- a/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/NotificationItem/index.tsx @@ -3,16 +3,19 @@ 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 DefaultNotificationItemRenderer from './NotificationItemRenderer' import { NotificationItemProps } from './types' -const NotificationItem: FC = ({ notification: notificationRef }) => { +const NotificationItem: FC = ({ + notification: notificationRef, + NotificationItemRenderer = DefaultNotificationItemRenderer, +}) => { const notification = useFragment(NotificationItemFragment, notificationRef) - const commitMutation = useNotificationsMarkAsRead()[0] + const [commitMutation] = useNotificationsMarkAsRead() + const markAsRead = () => { if (notification.unread) { commitMutation({ @@ -26,17 +29,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..f1d607ba 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/index.tsx b/packages/components/modules/notifications/NotificationsList/index.tsx index 72f1c8fd..00380a12 100644 --- a/packages/components/modules/notifications/NotificationsList/index.tsx +++ b/packages/components/modules/notifications/NotificationsList/index.tsx @@ -31,6 +31,7 @@ const NotificationsList: FC = ({ LoadingState = DefaultLoadingState, LoadingStateProps = {}, NotificationItem = DefaultNotificationItem, + NotificationItemProps = {}, }) => { const smDown = useResponsive('down', 'sm') @@ -59,11 +60,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..00d61bdb 100644 --- a/packages/components/modules/notifications/NotificationsList/types.ts +++ b/packages/components/modules/notifications/NotificationsList/types.ts @@ -8,6 +8,7 @@ export interface NotificationsListProps { setIsDrawerOpened: Dispatch> EmptyState?: FC LoadingState?: FC - LoadingStateProps?: LoadingStateProps + LoadingStateProps?: Partial NotificationItem?: 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/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..f4496d83 100644 --- a/packages/components/modules/notifications/index.ts +++ b/packages/components/modules/notifications/index.ts @@ -4,3 +4,17 @@ export type * from './NotificationsPopover/types' export { default as NotificationList } from './NotificationsList' export type * from './NotificationsList/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 NotificationItemRenderer } from './NotificationsList/NotificationItem/NotificationItemRenderer' +export type * from './NotificationsList/NotificationItem/NotificationItemRenderer/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' diff --git a/packages/components/package.json b/packages/components/package.json index 344e962f..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", 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 9a716a06..42e91930 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -418,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) @@ -445,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 @@ -602,19 +602,19 @@ 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))(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) + 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: 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) '@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))) + 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: 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) @@ -686,7 +686,7 @@ importers: version: 5.6.0(webpack@5.93.0) jest: 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.1(@swc/helpers@0.5.15))(@types/node@22.10.2)(typescript@5.4.5)) + 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: catalog:test version: 29.7.0 @@ -719,19 +719,19 @@ 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)) 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))(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) + 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: 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 webpack: specifier: catalog:storybook - version: 5.93.0(@swc/core@1.10.1(@swc/helpers@0.5.15))(esbuild@0.24.2)(webpack-cli@5.1.4) + 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: catalog:storybook version: 5.1.4(webpack-dev-server@5.0.4)(webpack@5.93.0) @@ -897,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 @@ -927,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) @@ -936,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 @@ -970,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 @@ -1099,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) @@ -1126,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 @@ -1198,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) @@ -1237,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 @@ -1299,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 @@ -1328,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) @@ -1415,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) @@ -3900,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': '*' @@ -5747,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: @@ -5766,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==} @@ -8141,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'} @@ -8641,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==} @@ -8948,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'} @@ -9699,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: @@ -11347,7 +11358,7 @@ snapshots: 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: @@ -12075,7 +12086,7 @@ snapshots: 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 @@ -12089,7 +12100,7 @@ snapshots: 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.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 @@ -12110,7 +12121,7 @@ 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 @@ -12124,7 +12135,7 @@ snapshots: 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.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 @@ -12895,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' @@ -12911,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' @@ -12926,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' @@ -13584,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 @@ -13607,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 @@ -13633,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 @@ -13643,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 @@ -13652,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 @@ -13670,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 @@ -13679,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: @@ -13707,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 @@ -13717,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 @@ -13726,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 @@ -13808,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) @@ -13824,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: @@ -13835,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 @@ -13851,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: @@ -13862,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) @@ -13878,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: @@ -13893,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 @@ -13903,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 @@ -13917,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 @@ -13927,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 @@ -13947,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 @@ -13967,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 @@ -14018,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': {} @@ -14079,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': {} @@ -14111,7 +14122,7 @@ 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)))': + '@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 @@ -14124,9 +14135,9 @@ snapshots: 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)) + 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.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.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 @@ -14139,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: @@ -14649,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) @@ -14812,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 @@ -14823,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 @@ -14832,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 @@ -14841,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 @@ -14865,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 @@ -14874,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 @@ -14964,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: @@ -15580,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: @@ -15595,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: @@ -15636,7 +15647,7 @@ 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.38) postcss: 8.4.38 @@ -15647,7 +15658,7 @@ snapshots: 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: @@ -15660,9 +15671,9 @@ snapshots: 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.38) postcss: 8.4.38 @@ -15673,7 +15684,7 @@ snapshots: 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: @@ -15686,7 +15697,7 @@ snapshots: 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: @@ -16065,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 @@ -16102,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 @@ -16126,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 @@ -16140,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: @@ -16858,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 @@ -16873,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: @@ -16890,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: @@ -17225,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 @@ -17235,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: @@ -17245,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: @@ -17718,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 @@ -17737,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 @@ -17756,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 @@ -17782,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.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.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 @@ -17813,12 +17826,12 @@ 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.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.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 @@ -17844,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 @@ -18085,24 +18098,24 @@ snapshots: 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 @@ -18895,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 @@ -19053,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: @@ -19061,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 @@ -19070,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: @@ -19155,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 @@ -19369,22 +19388,22 @@ snapshots: camelcase-css: 2.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-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.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) + 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 @@ -19395,7 +19414,7 @@ snapshots: postcss: 8.4.38 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 @@ -19602,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 @@ -19812,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 @@ -20006,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 @@ -20314,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: @@ -20395,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 @@ -20416,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: @@ -20424,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 @@ -20489,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: @@ -20550,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 @@ -20569,7 +20593,7 @@ snapshots: 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-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 @@ -20611,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: @@ -20749,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 @@ -20768,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 @@ -20786,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 @@ -20804,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 @@ -20824,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: @@ -20901,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: @@ -21118,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) @@ -21130,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 @@ -21140,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: @@ -21150,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: @@ -21161,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: @@ -21196,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 @@ -21237,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 @@ -21261,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 @@ -21273,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 @@ -21284,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: @@ -21292,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 @@ -21304,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 @@ -21315,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: @@ -21325,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 @@ -21337,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 @@ -21348,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: