@carlonicora/nextjs-jsonapi 3.19.1 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BlockNoteEditor-7VMBZI3V.js → BlockNoteEditor-2WFPGK64.js} +19 -19
- package/dist/{BlockNoteEditor-7VMBZI3V.js.map → BlockNoteEditor-2WFPGK64.js.map} +1 -1
- package/dist/{BlockNoteEditor-FX5RSUPA.mjs → BlockNoteEditor-CTRQ6JWE.mjs} +4 -4
- package/dist/{BlockNoteViewer-SVVAZ6TQ.js → BlockNoteViewer-XCGBX4ST.js} +3 -3
- package/dist/{BlockNoteViewer-SVVAZ6TQ.js.map → BlockNoteViewer-XCGBX4ST.js.map} +1 -1
- package/dist/{BlockNoteViewer-RK2RKOB7.mjs → BlockNoteViewer-ZY4ZF3HO.mjs} +2 -2
- package/dist/billing/index.js +401 -401
- package/dist/billing/index.mjs +3 -3
- package/dist/{chunk-GNXZNUQV.mjs → chunk-CJHBL5AN.mjs} +1711 -1482
- package/dist/chunk-CJHBL5AN.mjs.map +1 -0
- package/dist/{chunk-YCFPSXLK.mjs → chunk-CK47KSFV.mjs} +6 -1
- package/dist/{chunk-YCFPSXLK.mjs.map → chunk-CK47KSFV.mjs.map} +1 -1
- package/dist/{chunk-RT3TM342.js → chunk-IQMJAYCJ.js} +1162 -933
- package/dist/chunk-IQMJAYCJ.js.map +1 -0
- package/dist/{chunk-TBSMAL5Y.js → chunk-MWZCCOTS.js} +6 -1
- package/dist/chunk-MWZCCOTS.js.map +1 -0
- package/dist/{chunk-ODH2LYWC.js → chunk-SYQMVTIC.js} +7 -7
- package/dist/{chunk-ODH2LYWC.js.map → chunk-SYQMVTIC.js.map} +1 -1
- package/dist/{chunk-IALPADOD.mjs → chunk-U55JQ4NY.mjs} +2 -2
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +24 -2
- package/dist/components/index.d.ts +24 -2
- package/dist/components/index.js +8 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +7 -3
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +3 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/features/help/index.js +37 -37
- package/dist/features/help/index.mjs +3 -3
- package/dist/features/tokenusage/index.js +101 -101
- package/dist/features/tokenusage/index.mjs +3 -3
- package/dist/index.js +3 -3
- package/dist/index.mjs +2 -2
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/package.json +1 -1
- package/src/features/notification/components/containers/NotificationsListContainer.tsx +35 -18
- package/src/features/notification/components/filters/NotificationViewSwitcher.tsx +48 -0
- package/src/features/notification/components/filters/index.ts +1 -0
- package/src/features/notification/components/index.ts +1 -0
- package/src/features/notification/components/lists/NotificationsList.tsx +59 -104
- package/src/features/notification/components/modals/NotificationModal.tsx +97 -27
- package/src/features/notification/components/modals/__tests__/NotificationModal.spec.tsx +15 -4
- package/src/features/notification/components/notifications/Notification.tsx +19 -14
- package/src/features/notification/components/notifications/NotificationIcon.tsx +37 -0
- package/src/features/notification/components/notifications/index.ts +1 -0
- package/src/features/notification/data/notification.fields.ts +4 -0
- package/src/features/notification/hooks/useNotificationTableStructure.tsx +186 -0
- package/src/features/notification/notification.module.ts +2 -0
- package/dist/chunk-GNXZNUQV.mjs.map +0 -1
- package/dist/chunk-RT3TM342.js.map +0 -1
- package/dist/chunk-TBSMAL5Y.js.map +0 -1
- /package/dist/{BlockNoteEditor-FX5RSUPA.mjs.map → BlockNoteEditor-CTRQ6JWE.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-RK2RKOB7.mjs.map → BlockNoteViewer-ZY4ZF3HO.mjs.map} +0 -0
- /package/dist/{chunk-IALPADOD.mjs.map → chunk-U55JQ4NY.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkSYQMVTICjs = require('./chunk-SYQMVTIC.js');
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -244,7 +244,7 @@ var _chunkODH2LYWCjs = require('./chunk-ODH2LYWC.js');
|
|
|
244
244
|
|
|
245
245
|
|
|
246
246
|
|
|
247
|
-
var
|
|
247
|
+
var _chunkMWZCCOTSjs = require('./chunk-MWZCCOTS.js');
|
|
248
248
|
require('./chunk-LXKSUWAV.js');
|
|
249
249
|
require('./chunk-IBS6NI7D.js');
|
|
250
250
|
|
|
@@ -515,5 +515,5 @@ require('./chunk-7QVYU63E.js');
|
|
|
515
515
|
|
|
516
516
|
|
|
517
517
|
|
|
518
|
-
exports.ACTION_TYPES = _chunkODH2LYWCjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkTBSMAL5Yjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkTBSMAL5Yjs.AbstractApiData; exports.AbstractService = _chunkTBSMAL5Yjs.AbstractService; exports.Action = _chunkTBSMAL5Yjs.Action; exports.AiConnection = _chunkTBSMAL5Yjs.AiConnection; exports.AiConnectionFields = _chunkTBSMAL5Yjs.AiConnectionFields; exports.AiConnectionModule = _chunkTBSMAL5Yjs.AiConnectionModule; exports.AiConnectionService = _chunkTBSMAL5Yjs.AiConnectionService; exports.Assistant = _chunkTBSMAL5Yjs.Assistant; exports.AssistantAction = _chunkTBSMAL5Yjs.AssistantAction; exports.AssistantActionModule = _chunkTBSMAL5Yjs.AssistantActionModule; exports.AssistantActionService = _chunkTBSMAL5Yjs.AssistantActionService; exports.AssistantMessage = _chunkTBSMAL5Yjs.AssistantMessage; exports.AssistantMessageModule = _chunkTBSMAL5Yjs.AssistantMessageModule; exports.AssistantMessageService = _chunkTBSMAL5Yjs.AssistantMessageService; exports.AssistantModule = _chunkTBSMAL5Yjs.AssistantModule; exports.AssistantService = _chunkTBSMAL5Yjs.AssistantService; exports.AuditLog = _chunkTBSMAL5Yjs.AuditLog; exports.AuditLogModule = _chunkTBSMAL5Yjs.AuditLogModule; exports.AuditLogService = _chunkTBSMAL5Yjs.AuditLogService; exports.Auth = _chunkTBSMAL5Yjs.Auth; exports.AuthComponent = _chunkTBSMAL5Yjs.AuthComponent; exports.AuthModule = _chunkTBSMAL5Yjs.AuthModule; exports.AuthService = _chunkTBSMAL5Yjs.AuthService; exports.AuthorModule = _chunkTBSMAL5Yjs.AuthorModule; exports.BackupCodeVerify = _chunkTBSMAL5Yjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkTBSMAL5Yjs.BackupCodeVerifyModule; exports.Billing = _chunkTBSMAL5Yjs.Billing; exports.BillingModule = _chunkTBSMAL5Yjs.BillingModule; exports.BillingService = _chunkTBSMAL5Yjs.BillingService; exports.BlockNoteDiffUtil = _chunkTBSMAL5Yjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkTBSMAL5Yjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkODH2LYWCjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkTBSMAL5Yjs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkTBSMAL5Yjs.Chunk; exports.ChunkModule = _chunkTBSMAL5Yjs.ChunkModule; exports.ClientAbstractService = _chunkTBSMAL5Yjs.ClientAbstractService; exports.ClientHttpMethod = _chunkTBSMAL5Yjs.ClientHttpMethod; exports.Company = _chunkTBSMAL5Yjs.Company; exports.CompanyFields = _chunkTBSMAL5Yjs.CompanyFields; exports.CompanyModule = _chunkTBSMAL5Yjs.CompanyModule; exports.CompanyService = _chunkTBSMAL5Yjs.CompanyService; exports.Content = _chunkTBSMAL5Yjs.Content; exports.ContentFields = _chunkTBSMAL5Yjs.ContentFields; exports.ContentModule = _chunkTBSMAL5Yjs.ContentModule; exports.ContentService = _chunkTBSMAL5Yjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkTBSMAL5Yjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLU7DJ4QFjs.DataClassRegistry; exports.DataClassRegistry = _chunkLU7DJ4QFjs.DataClassRegistry; exports.ENV = _chunkLU7DJ4QFjs.ENV; exports.EndpointCreator = _chunkTBSMAL5Yjs.EndpointCreator; exports.EntityAiStatus = _chunkTBSMAL5Yjs.EntityAiStatus; exports.Feature = _chunkTBSMAL5Yjs.Feature; exports.FeatureModule = _chunkTBSMAL5Yjs.FeatureModule; exports.FeatureService = _chunkTBSMAL5Yjs.FeatureService; exports.HandbookPage = _chunkTBSMAL5Yjs.HandbookPage; exports.HandbookPageFields = _chunkTBSMAL5Yjs.HandbookPageFields; exports.HandbookPageModule = _chunkTBSMAL5Yjs.HandbookPageModule; exports.HandbookPageService = _chunkTBSMAL5Yjs.HandbookPageService; exports.HandbookSection = _chunkTBSMAL5Yjs.HandbookSection; exports.HandbookSectionModule = _chunkTBSMAL5Yjs.HandbookSectionModule; exports.HandbookSectionService = _chunkTBSMAL5Yjs.HandbookSectionService; exports.HandbookThread = _chunkTBSMAL5Yjs.HandbookThread; exports.HandbookThreadMessage = _chunkTBSMAL5Yjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkTBSMAL5Yjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkTBSMAL5Yjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkTBSMAL5Yjs.HandbookThreadModule; exports.HandbookThreadService = _chunkTBSMAL5Yjs.HandbookThreadService; exports.HowTo = _chunkTBSMAL5Yjs.HowTo; exports.HowToFields = _chunkTBSMAL5Yjs.HowToFields; exports.HowToModule = _chunkTBSMAL5Yjs.HowToModule; exports.HowToService = _chunkTBSMAL5Yjs.HowToService; exports.HttpMethod = _chunkTBSMAL5Yjs.HttpMethod; exports.InvoiceStatus = _chunkTBSMAL5Yjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLU7DJ4QFjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkTBSMAL5Yjs.MOBILE_BREAKPOINT; exports.Module = _chunkTBSMAL5Yjs.Module; exports.ModuleModule = _chunkTBSMAL5Yjs.ModuleModule; exports.ModulePaths = _chunkTBSMAL5Yjs.ModulePaths; exports.ModulePathsModule = _chunkTBSMAL5Yjs.ModulePathsModule; exports.ModuleRegistrar = _chunkTBSMAL5Yjs.ModuleRegistrar; exports.ModuleRegistry = _chunkTBSMAL5Yjs.ModuleRegistry; exports.Modules = _chunkTBSMAL5Yjs.Modules; exports.Notification = _chunkTBSMAL5Yjs.Notification; exports.NotificationFields = _chunkTBSMAL5Yjs.NotificationFields; exports.NotificationModule = _chunkTBSMAL5Yjs.NotificationModule; exports.NotificationService = _chunkTBSMAL5Yjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkTBSMAL5Yjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkTBSMAL5Yjs.OAuthClient; exports.OAuthModule = _chunkTBSMAL5Yjs.OAuthModule; exports.OAuthService = _chunkTBSMAL5Yjs.OAuthService; exports.Passkey = _chunkTBSMAL5Yjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkTBSMAL5Yjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkTBSMAL5Yjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkTBSMAL5Yjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkTBSMAL5Yjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkTBSMAL5Yjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkTBSMAL5Yjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkTBSMAL5Yjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkTBSMAL5Yjs.PasskeyRename; exports.PasskeyRenameModule = _chunkTBSMAL5Yjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkTBSMAL5Yjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkTBSMAL5Yjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkTBSMAL5Yjs.PaymentMethod; exports.PermissionMapping = _chunkTBSMAL5Yjs.PermissionMapping; exports.PermissionMappingModule = _chunkTBSMAL5Yjs.PermissionMappingModule; exports.Push = _chunkTBSMAL5Yjs.Push; exports.PushModule = _chunkTBSMAL5Yjs.PushModule; exports.PushService = _chunkTBSMAL5Yjs.PushService; exports.RbacMatrixModel = _chunkTBSMAL5Yjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkTBSMAL5Yjs.RbacMatrixModule; exports.RbacService = _chunkODH2LYWCjs.RbacService; exports.ReferralModule = _chunkTBSMAL5Yjs.ReferralModule; exports.ReferralService = _chunkTBSMAL5Yjs.ReferralService; exports.ReferralStats = _chunkTBSMAL5Yjs.ReferralStats; exports.ReferralStatsModule = _chunkTBSMAL5Yjs.ReferralStatsModule; exports.RehydrationFactory = _chunkTBSMAL5Yjs.RehydrationFactory; exports.Role = _chunkTBSMAL5Yjs.Role; exports.RoleFields = _chunkTBSMAL5Yjs.RoleFields; exports.RoleModule = _chunkTBSMAL5Yjs.RoleModule; exports.RoleService = _chunkTBSMAL5Yjs.RoleService; exports.S3 = _chunkTBSMAL5Yjs.S3; exports.S3Module = _chunkTBSMAL5Yjs.S3Module; exports.S3Service = _chunkTBSMAL5Yjs.S3Service; exports.StripeCustomer = _chunkTBSMAL5Yjs.StripeCustomer; exports.StripeCustomerModule = _chunkTBSMAL5Yjs.StripeCustomerModule; exports.StripeCustomerService = _chunkTBSMAL5Yjs.StripeCustomerService; exports.StripeInvoice = _chunkTBSMAL5Yjs.StripeInvoice; exports.StripeInvoiceModule = _chunkTBSMAL5Yjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkTBSMAL5Yjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkTBSMAL5Yjs.StripePaymentMethodModule; exports.StripePrice = _chunkTBSMAL5Yjs.StripePrice; exports.StripePriceFields = _chunkTBSMAL5Yjs.StripePriceFields; exports.StripePriceModule = _chunkTBSMAL5Yjs.StripePriceModule; exports.StripePriceService = _chunkTBSMAL5Yjs.StripePriceService; exports.StripeProduct = _chunkTBSMAL5Yjs.StripeProduct; exports.StripeProductFields = _chunkTBSMAL5Yjs.StripeProductFields; exports.StripeProductModule = _chunkTBSMAL5Yjs.StripeProductModule; exports.StripeProductService = _chunkTBSMAL5Yjs.StripeProductService; exports.StripePromotionCode = _chunkTBSMAL5Yjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkTBSMAL5Yjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkTBSMAL5Yjs.StripePromotionCodeService; exports.StripeSubscription = _chunkTBSMAL5Yjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkTBSMAL5Yjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkTBSMAL5Yjs.StripeSubscriptionService; exports.StripeUsage = _chunkTBSMAL5Yjs.StripeUsage; exports.StripeUsageModule = _chunkTBSMAL5Yjs.StripeUsageModule; exports.StripeUsageService = _chunkTBSMAL5Yjs.StripeUsageService; exports.SubscriptionStatus = _chunkTBSMAL5Yjs.SubscriptionStatus; exports.TableOptions = _chunkTBSMAL5Yjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkTBSMAL5Yjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkTBSMAL5Yjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkTBSMAL5Yjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkTBSMAL5Yjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkTBSMAL5Yjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkTBSMAL5Yjs.TotpSetup; exports.TotpSetupModule = _chunkTBSMAL5Yjs.TotpSetupModule; exports.TotpVerify = _chunkTBSMAL5Yjs.TotpVerify; exports.TotpVerifyLogin = _chunkTBSMAL5Yjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkTBSMAL5Yjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkTBSMAL5Yjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkTBSMAL5Yjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkTBSMAL5Yjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkTBSMAL5Yjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkTBSMAL5Yjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkTBSMAL5Yjs.TwoFactorService; exports.TwoFactorStatus = _chunkTBSMAL5Yjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkTBSMAL5Yjs.TwoFactorStatusModule; exports.User = _chunkTBSMAL5Yjs.User; exports.UserFields = _chunkTBSMAL5Yjs.UserFields; exports.UserModule = _chunkTBSMAL5Yjs.UserModule; exports.UserService = _chunkTBSMAL5Yjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkTBSMAL5Yjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkTBSMAL5Yjs.Waitlist; exports.WaitlistModule = _chunkTBSMAL5Yjs.WaitlistModule; exports.WaitlistService = _chunkTBSMAL5Yjs.WaitlistService; exports.WaitlistStats = _chunkTBSMAL5Yjs.WaitlistStats; exports.WaitlistStatsModule = _chunkTBSMAL5Yjs.WaitlistStatsModule; exports.checkPermissions = _chunkTBSMAL5Yjs.checkPermissions; exports.checkPermissionsFromServer = _chunkTBSMAL5Yjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkTBSMAL5Yjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkTBSMAL5Yjs.clearLastApiTotal; exports.cn = _chunkTBSMAL5Yjs.cn; exports.composeRefs = _chunkTBSMAL5Yjs.composeRefs; exports.configureAuth = _chunkTBSMAL5Yjs.configureAuth; exports.configureI18n = _chunkODH2LYWCjs.configureI18n; exports.configureJsonApi = _chunkODH2LYWCjs.configureJsonApi; exports.configureLogin = _chunkODH2LYWCjs.configureLogin; exports.configureReferral = _chunkODH2LYWCjs.configureReferral; exports.configureRoles = _chunkODH2LYWCjs.configureRoles; exports.configureTokenUsage = _chunkTBSMAL5Yjs.configureTokenUsage; exports.configureWaitlist = _chunkODH2LYWCjs.configureWaitlist; exports.createJsonApiInclusion = _chunkTBSMAL5Yjs.createJsonApiInclusion; exports.dismissToast = _chunkTBSMAL5Yjs.dismissToast; exports.entityObjectSchema = _chunkTBSMAL5Yjs.entityObjectSchema; exports.exists = _chunkTBSMAL5Yjs.exists; exports.formatCodiceFiscale = _chunkTBSMAL5Yjs.formatCodiceFiscale; exports.formatDate = _chunkTBSMAL5Yjs.formatDate; exports.formatLocalDate = _chunkTBSMAL5Yjs.formatLocalDate; exports.formatPartitaIva = _chunkTBSMAL5Yjs.formatPartitaIva; exports.getApiUrl = _chunkODH2LYWCjs.getApiUrl; exports.getAppUrl = _chunkODH2LYWCjs.getAppUrl; exports.getBootstrapper = _chunkLU7DJ4QFjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkTBSMAL5Yjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkTBSMAL5Yjs.getGlobalErrorHandler; exports.getIcon = _chunkTBSMAL5Yjs.getIcon; exports.getIconByModule = _chunkTBSMAL5Yjs.getIconByModule; exports.getIconByModuleName = _chunkTBSMAL5Yjs.getIconByModuleName; exports.getInitials = _chunkTBSMAL5Yjs.getInitials; exports.getLastApiMeta = _chunkTBSMAL5Yjs.getLastApiMeta; exports.getLastApiTotal = _chunkTBSMAL5Yjs.getLastApiTotal; exports.getLucideIcon = _chunkTBSMAL5Yjs.getLucideIcon; exports.getLucideIconByModule = _chunkTBSMAL5Yjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkTBSMAL5Yjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkODH2LYWCjs.getPublicApiUrl; exports.getReferralConfig = _chunkODH2LYWCjs.getReferralConfig; exports.getRoleId = _chunkODH2LYWCjs.getRoleId; exports.getStripePublishableKey = _chunkODH2LYWCjs.getStripePublishableKey; exports.getTableComponents = _chunkTBSMAL5Yjs.getTableComponents; exports.getTableOptions = _chunkTBSMAL5Yjs.getTableOptions; exports.getTokenHandler = _chunkTBSMAL5Yjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkTBSMAL5Yjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkODH2LYWCjs.getTrackablePages; exports.getValueFromPath = _chunkTBSMAL5Yjs.getValueFromPath; exports.getWaitlistConfig = _chunkODH2LYWCjs.getWaitlistConfig; exports.handbookPageContent = _chunkTBSMAL5Yjs.handbookPageContent; exports.handbookPageSummary = _chunkTBSMAL5Yjs.handbookPageSummary; exports.handbookPageTitle = _chunkTBSMAL5Yjs.handbookPageTitle; exports.handbookSectionSummary = _chunkTBSMAL5Yjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkTBSMAL5Yjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLU7DJ4QFjs.hasBootstrapper; exports.isReferralEnabled = _chunkODH2LYWCjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkTBSMAL5Yjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkODH2LYWCjs.isRolesConfigured; exports.rehydrate = _chunkTBSMAL5Yjs.rehydrate; exports.rehydrateList = _chunkTBSMAL5Yjs.rehydrateList; exports.resetBootstrapStore = _chunkLU7DJ4QFjs.resetBootstrapStore; exports.setBootstrapper = _chunkLU7DJ4QFjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkTBSMAL5Yjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkTBSMAL5Yjs.setGlobalErrorHandler; exports.showCustomToast = _chunkTBSMAL5Yjs.showCustomToast; exports.showError = _chunkTBSMAL5Yjs.showError; exports.showToast = _chunkTBSMAL5Yjs.showToast; exports.tokenUsageModules = _chunkTBSMAL5Yjs.tokenUsageModules; exports.translateData = _chunkLU7DJ4QFjs.translateData; exports.translateResponse = _chunkLU7DJ4QFjs.translateResponse; exports.tryBootstrap = _chunkLU7DJ4QFjs.tryBootstrap; exports.useComposedRefs = _chunkTBSMAL5Yjs.useComposedRefs; exports.useIsMobile = _chunkTBSMAL5Yjs.useIsMobile; exports.userObjectSchema = _chunkTBSMAL5Yjs.userObjectSchema; exports.validateCodiceFiscale = _chunkTBSMAL5Yjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkTBSMAL5Yjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkTBSMAL5Yjs.validatePartitaIva;
|
|
518
|
+
exports.ACTION_TYPES = _chunkSYQMVTICjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkMWZCCOTSjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkMWZCCOTSjs.AbstractApiData; exports.AbstractService = _chunkMWZCCOTSjs.AbstractService; exports.Action = _chunkMWZCCOTSjs.Action; exports.AiConnection = _chunkMWZCCOTSjs.AiConnection; exports.AiConnectionFields = _chunkMWZCCOTSjs.AiConnectionFields; exports.AiConnectionModule = _chunkMWZCCOTSjs.AiConnectionModule; exports.AiConnectionService = _chunkMWZCCOTSjs.AiConnectionService; exports.Assistant = _chunkMWZCCOTSjs.Assistant; exports.AssistantAction = _chunkMWZCCOTSjs.AssistantAction; exports.AssistantActionModule = _chunkMWZCCOTSjs.AssistantActionModule; exports.AssistantActionService = _chunkMWZCCOTSjs.AssistantActionService; exports.AssistantMessage = _chunkMWZCCOTSjs.AssistantMessage; exports.AssistantMessageModule = _chunkMWZCCOTSjs.AssistantMessageModule; exports.AssistantMessageService = _chunkMWZCCOTSjs.AssistantMessageService; exports.AssistantModule = _chunkMWZCCOTSjs.AssistantModule; exports.AssistantService = _chunkMWZCCOTSjs.AssistantService; exports.AuditLog = _chunkMWZCCOTSjs.AuditLog; exports.AuditLogModule = _chunkMWZCCOTSjs.AuditLogModule; exports.AuditLogService = _chunkMWZCCOTSjs.AuditLogService; exports.Auth = _chunkMWZCCOTSjs.Auth; exports.AuthComponent = _chunkMWZCCOTSjs.AuthComponent; exports.AuthModule = _chunkMWZCCOTSjs.AuthModule; exports.AuthService = _chunkMWZCCOTSjs.AuthService; exports.AuthorModule = _chunkMWZCCOTSjs.AuthorModule; exports.BackupCodeVerify = _chunkMWZCCOTSjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkMWZCCOTSjs.BackupCodeVerifyModule; exports.Billing = _chunkMWZCCOTSjs.Billing; exports.BillingModule = _chunkMWZCCOTSjs.BillingModule; exports.BillingService = _chunkMWZCCOTSjs.BillingService; exports.BlockNoteDiffUtil = _chunkMWZCCOTSjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkMWZCCOTSjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunkSYQMVTICjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.CURRENT_USER_STORAGE_KEY = _chunkMWZCCOTSjs.CURRENT_USER_STORAGE_KEY; exports.Chunk = _chunkMWZCCOTSjs.Chunk; exports.ChunkModule = _chunkMWZCCOTSjs.ChunkModule; exports.ClientAbstractService = _chunkMWZCCOTSjs.ClientAbstractService; exports.ClientHttpMethod = _chunkMWZCCOTSjs.ClientHttpMethod; exports.Company = _chunkMWZCCOTSjs.Company; exports.CompanyFields = _chunkMWZCCOTSjs.CompanyFields; exports.CompanyModule = _chunkMWZCCOTSjs.CompanyModule; exports.CompanyService = _chunkMWZCCOTSjs.CompanyService; exports.Content = _chunkMWZCCOTSjs.Content; exports.ContentFields = _chunkMWZCCOTSjs.ContentFields; exports.ContentModule = _chunkMWZCCOTSjs.ContentModule; exports.ContentService = _chunkMWZCCOTSjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkMWZCCOTSjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkLU7DJ4QFjs.DataClassRegistry; exports.DataClassRegistry = _chunkLU7DJ4QFjs.DataClassRegistry; exports.ENV = _chunkLU7DJ4QFjs.ENV; exports.EndpointCreator = _chunkMWZCCOTSjs.EndpointCreator; exports.EntityAiStatus = _chunkMWZCCOTSjs.EntityAiStatus; exports.Feature = _chunkMWZCCOTSjs.Feature; exports.FeatureModule = _chunkMWZCCOTSjs.FeatureModule; exports.FeatureService = _chunkMWZCCOTSjs.FeatureService; exports.HandbookPage = _chunkMWZCCOTSjs.HandbookPage; exports.HandbookPageFields = _chunkMWZCCOTSjs.HandbookPageFields; exports.HandbookPageModule = _chunkMWZCCOTSjs.HandbookPageModule; exports.HandbookPageService = _chunkMWZCCOTSjs.HandbookPageService; exports.HandbookSection = _chunkMWZCCOTSjs.HandbookSection; exports.HandbookSectionModule = _chunkMWZCCOTSjs.HandbookSectionModule; exports.HandbookSectionService = _chunkMWZCCOTSjs.HandbookSectionService; exports.HandbookThread = _chunkMWZCCOTSjs.HandbookThread; exports.HandbookThreadMessage = _chunkMWZCCOTSjs.HandbookThreadMessage; exports.HandbookThreadMessageModule = _chunkMWZCCOTSjs.HandbookThreadMessageModule; exports.HandbookThreadMessageService = _chunkMWZCCOTSjs.HandbookThreadMessageService; exports.HandbookThreadModule = _chunkMWZCCOTSjs.HandbookThreadModule; exports.HandbookThreadService = _chunkMWZCCOTSjs.HandbookThreadService; exports.HowTo = _chunkMWZCCOTSjs.HowTo; exports.HowToFields = _chunkMWZCCOTSjs.HowToFields; exports.HowToModule = _chunkMWZCCOTSjs.HowToModule; exports.HowToService = _chunkMWZCCOTSjs.HowToService; exports.HttpMethod = _chunkMWZCCOTSjs.HttpMethod; exports.InvoiceStatus = _chunkMWZCCOTSjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkLU7DJ4QFjs.JsonApiDataFactory; exports.MOBILE_BREAKPOINT = _chunkMWZCCOTSjs.MOBILE_BREAKPOINT; exports.Module = _chunkMWZCCOTSjs.Module; exports.ModuleModule = _chunkMWZCCOTSjs.ModuleModule; exports.ModulePaths = _chunkMWZCCOTSjs.ModulePaths; exports.ModulePathsModule = _chunkMWZCCOTSjs.ModulePathsModule; exports.ModuleRegistrar = _chunkMWZCCOTSjs.ModuleRegistrar; exports.ModuleRegistry = _chunkMWZCCOTSjs.ModuleRegistry; exports.Modules = _chunkMWZCCOTSjs.Modules; exports.Notification = _chunkMWZCCOTSjs.Notification; exports.NotificationFields = _chunkMWZCCOTSjs.NotificationFields; exports.NotificationModule = _chunkMWZCCOTSjs.NotificationModule; exports.NotificationService = _chunkMWZCCOTSjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkMWZCCOTSjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkMWZCCOTSjs.OAuthClient; exports.OAuthModule = _chunkMWZCCOTSjs.OAuthModule; exports.OAuthService = _chunkMWZCCOTSjs.OAuthService; exports.Passkey = _chunkMWZCCOTSjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkMWZCCOTSjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkMWZCCOTSjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkMWZCCOTSjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkMWZCCOTSjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkMWZCCOTSjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkMWZCCOTSjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkMWZCCOTSjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkMWZCCOTSjs.PasskeyRename; exports.PasskeyRenameModule = _chunkMWZCCOTSjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkMWZCCOTSjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkMWZCCOTSjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkMWZCCOTSjs.PaymentMethod; exports.PermissionMapping = _chunkMWZCCOTSjs.PermissionMapping; exports.PermissionMappingModule = _chunkMWZCCOTSjs.PermissionMappingModule; exports.Push = _chunkMWZCCOTSjs.Push; exports.PushModule = _chunkMWZCCOTSjs.PushModule; exports.PushService = _chunkMWZCCOTSjs.PushService; exports.RbacMatrixModel = _chunkMWZCCOTSjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkMWZCCOTSjs.RbacMatrixModule; exports.RbacService = _chunkSYQMVTICjs.RbacService; exports.ReferralModule = _chunkMWZCCOTSjs.ReferralModule; exports.ReferralService = _chunkMWZCCOTSjs.ReferralService; exports.ReferralStats = _chunkMWZCCOTSjs.ReferralStats; exports.ReferralStatsModule = _chunkMWZCCOTSjs.ReferralStatsModule; exports.RehydrationFactory = _chunkMWZCCOTSjs.RehydrationFactory; exports.Role = _chunkMWZCCOTSjs.Role; exports.RoleFields = _chunkMWZCCOTSjs.RoleFields; exports.RoleModule = _chunkMWZCCOTSjs.RoleModule; exports.RoleService = _chunkMWZCCOTSjs.RoleService; exports.S3 = _chunkMWZCCOTSjs.S3; exports.S3Module = _chunkMWZCCOTSjs.S3Module; exports.S3Service = _chunkMWZCCOTSjs.S3Service; exports.StripeCustomer = _chunkMWZCCOTSjs.StripeCustomer; exports.StripeCustomerModule = _chunkMWZCCOTSjs.StripeCustomerModule; exports.StripeCustomerService = _chunkMWZCCOTSjs.StripeCustomerService; exports.StripeInvoice = _chunkMWZCCOTSjs.StripeInvoice; exports.StripeInvoiceModule = _chunkMWZCCOTSjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkMWZCCOTSjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkMWZCCOTSjs.StripePaymentMethodModule; exports.StripePrice = _chunkMWZCCOTSjs.StripePrice; exports.StripePriceFields = _chunkMWZCCOTSjs.StripePriceFields; exports.StripePriceModule = _chunkMWZCCOTSjs.StripePriceModule; exports.StripePriceService = _chunkMWZCCOTSjs.StripePriceService; exports.StripeProduct = _chunkMWZCCOTSjs.StripeProduct; exports.StripeProductFields = _chunkMWZCCOTSjs.StripeProductFields; exports.StripeProductModule = _chunkMWZCCOTSjs.StripeProductModule; exports.StripeProductService = _chunkMWZCCOTSjs.StripeProductService; exports.StripePromotionCode = _chunkMWZCCOTSjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkMWZCCOTSjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkMWZCCOTSjs.StripePromotionCodeService; exports.StripeSubscription = _chunkMWZCCOTSjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkMWZCCOTSjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkMWZCCOTSjs.StripeSubscriptionService; exports.StripeUsage = _chunkMWZCCOTSjs.StripeUsage; exports.StripeUsageModule = _chunkMWZCCOTSjs.StripeUsageModule; exports.StripeUsageService = _chunkMWZCCOTSjs.StripeUsageService; exports.SubscriptionStatus = _chunkMWZCCOTSjs.SubscriptionStatus; exports.TableOptions = _chunkMWZCCOTSjs.TableOptions; exports.TokenUsageAdminBreakdownModule = _chunkMWZCCOTSjs.TokenUsageAdminBreakdownModule; exports.TokenUsageAdminSummaryModule = _chunkMWZCCOTSjs.TokenUsageAdminSummaryModule; exports.TokenUsageAdminTimelineModule = _chunkMWZCCOTSjs.TokenUsageAdminTimelineModule; exports.TotpAuthenticator = _chunkMWZCCOTSjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkMWZCCOTSjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkMWZCCOTSjs.TotpSetup; exports.TotpSetupModule = _chunkMWZCCOTSjs.TotpSetupModule; exports.TotpVerify = _chunkMWZCCOTSjs.TotpVerify; exports.TotpVerifyLogin = _chunkMWZCCOTSjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkMWZCCOTSjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkMWZCCOTSjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkMWZCCOTSjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkMWZCCOTSjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkMWZCCOTSjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkMWZCCOTSjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkMWZCCOTSjs.TwoFactorService; exports.TwoFactorStatus = _chunkMWZCCOTSjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkMWZCCOTSjs.TwoFactorStatusModule; exports.User = _chunkMWZCCOTSjs.User; exports.UserFields = _chunkMWZCCOTSjs.UserFields; exports.UserModule = _chunkMWZCCOTSjs.UserModule; exports.UserService = _chunkMWZCCOTSjs.UserService; exports.VIEWPORT_COOKIE_NAME = _chunkMWZCCOTSjs.VIEWPORT_COOKIE_NAME; exports.Waitlist = _chunkMWZCCOTSjs.Waitlist; exports.WaitlistModule = _chunkMWZCCOTSjs.WaitlistModule; exports.WaitlistService = _chunkMWZCCOTSjs.WaitlistService; exports.WaitlistStats = _chunkMWZCCOTSjs.WaitlistStats; exports.WaitlistStatsModule = _chunkMWZCCOTSjs.WaitlistStatsModule; exports.checkPermissions = _chunkMWZCCOTSjs.checkPermissions; exports.checkPermissionsFromServer = _chunkMWZCCOTSjs.checkPermissionsFromServer; exports.clearLastApiMeta = _chunkMWZCCOTSjs.clearLastApiMeta; exports.clearLastApiTotal = _chunkMWZCCOTSjs.clearLastApiTotal; exports.cn = _chunkMWZCCOTSjs.cn; exports.composeRefs = _chunkMWZCCOTSjs.composeRefs; exports.configureAuth = _chunkMWZCCOTSjs.configureAuth; exports.configureI18n = _chunkSYQMVTICjs.configureI18n; exports.configureJsonApi = _chunkSYQMVTICjs.configureJsonApi; exports.configureLogin = _chunkSYQMVTICjs.configureLogin; exports.configureReferral = _chunkSYQMVTICjs.configureReferral; exports.configureRoles = _chunkSYQMVTICjs.configureRoles; exports.configureTokenUsage = _chunkMWZCCOTSjs.configureTokenUsage; exports.configureWaitlist = _chunkSYQMVTICjs.configureWaitlist; exports.createJsonApiInclusion = _chunkMWZCCOTSjs.createJsonApiInclusion; exports.dismissToast = _chunkMWZCCOTSjs.dismissToast; exports.entityObjectSchema = _chunkMWZCCOTSjs.entityObjectSchema; exports.exists = _chunkMWZCCOTSjs.exists; exports.formatCodiceFiscale = _chunkMWZCCOTSjs.formatCodiceFiscale; exports.formatDate = _chunkMWZCCOTSjs.formatDate; exports.formatLocalDate = _chunkMWZCCOTSjs.formatLocalDate; exports.formatPartitaIva = _chunkMWZCCOTSjs.formatPartitaIva; exports.getApiUrl = _chunkSYQMVTICjs.getApiUrl; exports.getAppUrl = _chunkSYQMVTICjs.getAppUrl; exports.getBootstrapper = _chunkLU7DJ4QFjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkMWZCCOTSjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkMWZCCOTSjs.getGlobalErrorHandler; exports.getIcon = _chunkMWZCCOTSjs.getIcon; exports.getIconByModule = _chunkMWZCCOTSjs.getIconByModule; exports.getIconByModuleName = _chunkMWZCCOTSjs.getIconByModuleName; exports.getInitials = _chunkMWZCCOTSjs.getInitials; exports.getLastApiMeta = _chunkMWZCCOTSjs.getLastApiMeta; exports.getLastApiTotal = _chunkMWZCCOTSjs.getLastApiTotal; exports.getLucideIcon = _chunkMWZCCOTSjs.getLucideIcon; exports.getLucideIconByModule = _chunkMWZCCOTSjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkMWZCCOTSjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunkSYQMVTICjs.getPublicApiUrl; exports.getReferralConfig = _chunkSYQMVTICjs.getReferralConfig; exports.getRoleId = _chunkSYQMVTICjs.getRoleId; exports.getStripePublishableKey = _chunkSYQMVTICjs.getStripePublishableKey; exports.getTableComponents = _chunkMWZCCOTSjs.getTableComponents; exports.getTableOptions = _chunkMWZCCOTSjs.getTableOptions; exports.getTokenHandler = _chunkMWZCCOTSjs.getTokenHandler; exports.getTokenUsageCurrency = _chunkMWZCCOTSjs.getTokenUsageCurrency; exports.getTrackablePages = _chunkSYQMVTICjs.getTrackablePages; exports.getValueFromPath = _chunkMWZCCOTSjs.getValueFromPath; exports.getWaitlistConfig = _chunkSYQMVTICjs.getWaitlistConfig; exports.handbookPageContent = _chunkMWZCCOTSjs.handbookPageContent; exports.handbookPageSummary = _chunkMWZCCOTSjs.handbookPageSummary; exports.handbookPageTitle = _chunkMWZCCOTSjs.handbookPageTitle; exports.handbookSectionSummary = _chunkMWZCCOTSjs.handbookSectionSummary; exports.handbookSectionTitle = _chunkMWZCCOTSjs.handbookSectionTitle; exports.hasBootstrapper = _chunkLU7DJ4QFjs.hasBootstrapper; exports.isReferralEnabled = _chunkSYQMVTICjs.isReferralEnabled; exports.isRemoteImageSrc = _chunkMWZCCOTSjs.isRemoteImageSrc; exports.isRolesConfigured = _chunkSYQMVTICjs.isRolesConfigured; exports.rehydrate = _chunkMWZCCOTSjs.rehydrate; exports.rehydrateList = _chunkMWZCCOTSjs.rehydrateList; exports.resetBootstrapStore = _chunkLU7DJ4QFjs.resetBootstrapStore; exports.setBootstrapper = _chunkLU7DJ4QFjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkMWZCCOTSjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkMWZCCOTSjs.setGlobalErrorHandler; exports.showCustomToast = _chunkMWZCCOTSjs.showCustomToast; exports.showError = _chunkMWZCCOTSjs.showError; exports.showToast = _chunkMWZCCOTSjs.showToast; exports.tokenUsageModules = _chunkMWZCCOTSjs.tokenUsageModules; exports.translateData = _chunkLU7DJ4QFjs.translateData; exports.translateResponse = _chunkLU7DJ4QFjs.translateResponse; exports.tryBootstrap = _chunkLU7DJ4QFjs.tryBootstrap; exports.useComposedRefs = _chunkMWZCCOTSjs.useComposedRefs; exports.useIsMobile = _chunkMWZCCOTSjs.useIsMobile; exports.userObjectSchema = _chunkMWZCCOTSjs.userObjectSchema; exports.validateCodiceFiscale = _chunkMWZCCOTSjs.validateCodiceFiscale; exports.validateItalianTaxCode = _chunkMWZCCOTSjs.validateItalianTaxCode; exports.validatePartitaIva = _chunkMWZCCOTSjs.validatePartitaIva;
|
|
519
519
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
getWaitlistConfig,
|
|
19
19
|
isReferralEnabled,
|
|
20
20
|
isRolesConfigured
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-U55JQ4NY.mjs";
|
|
22
22
|
import {
|
|
23
23
|
AVAILABLE_OAUTH_SCOPES,
|
|
24
24
|
AbstractApiData,
|
|
@@ -244,7 +244,7 @@ import {
|
|
|
244
244
|
validateCodiceFiscale,
|
|
245
245
|
validateItalianTaxCode,
|
|
246
246
|
validatePartitaIva
|
|
247
|
-
} from "./chunk-
|
|
247
|
+
} from "./chunk-CK47KSFV.mjs";
|
|
248
248
|
import "./chunk-AUXK7QSA.mjs";
|
|
249
249
|
import "./chunk-C7C7VY4F.mjs";
|
|
250
250
|
import {
|
package/dist/server/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var _chunkIOLU4ASDjs = require('../chunk-IOLU4ASD.js');
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkMWZCCOTSjs = require('../chunk-MWZCCOTS.js');
|
|
19
19
|
require('../chunk-LXKSUWAV.js');
|
|
20
20
|
require('../chunk-IBS6NI7D.js');
|
|
21
21
|
|
|
@@ -87,7 +87,7 @@ var ServerSession = class {
|
|
|
87
87
|
if (!rawModules) return false;
|
|
88
88
|
const modules = JSON.parse(_pako.ungzip.call(void 0, Buffer.from(rawModules, "base64"), { toText: true }));
|
|
89
89
|
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
90
|
-
return
|
|
90
|
+
return _chunkMWZCCOTSjs.checkPermissionsFromServer.call(void 0, {
|
|
91
91
|
module: params.module,
|
|
92
92
|
action: params.action,
|
|
93
93
|
data: params.data,
|
|
@@ -297,5 +297,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, ServerJsonApiDelete, "ServerJsonApiDelete")
|
|
|
297
297
|
|
|
298
298
|
|
|
299
299
|
|
|
300
|
-
exports.ServerAuthService =
|
|
300
|
+
exports.ServerAuthService = _chunkMWZCCOTSjs.AuthService; exports.ServerCompanyService = _chunkMWZCCOTSjs.CompanyService; exports.ServerContentService = _chunkMWZCCOTSjs.ContentService; exports.ServerFeatureService = _chunkMWZCCOTSjs.FeatureService; exports.ServerJsonApiDelete = ServerJsonApiDelete; exports.ServerJsonApiGet = ServerJsonApiGet; exports.ServerJsonApiPatch = ServerJsonApiPatch; exports.ServerJsonApiPost = ServerJsonApiPost; exports.ServerJsonApiPut = ServerJsonApiPut; exports.ServerNotificationService = _chunkMWZCCOTSjs.NotificationService; exports.ServerPushService = _chunkMWZCCOTSjs.PushService; exports.ServerRoleService = _chunkMWZCCOTSjs.RoleService; exports.ServerS3Service = _chunkMWZCCOTSjs.S3Service; exports.ServerSession = ServerSession; exports.ServerUserService = _chunkMWZCCOTSjs.UserService; exports.configureServerJsonApi = configureServerJsonApi; exports.getServerApiUrl = getServerApiUrl; exports.getServerAppUrl = getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = getServerTrackablePages; exports.invalidateCacheTag = invalidateCacheTag; exports.invalidateCacheTags = invalidateCacheTags; exports.serverRequest = _chunkIOLU4ASDjs.serverRequest;
|
|
301
301
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useSearchParams } from "next/navigation";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { RoundPageContainer } from "../../../../components/containers/RoundPageContainer";
|
|
5
6
|
import { useNotificationContext } from "../../contexts/NotificationContext";
|
|
6
7
|
import { NotificationErrorBoundary } from "../common";
|
|
8
|
+
import { NotificationViewMode, NotificationViewSwitcher } from "../filters/NotificationViewSwitcher";
|
|
7
9
|
import { NotificationsList } from "../lists/NotificationsList";
|
|
10
|
+
import { Modules } from "../../../../core";
|
|
8
11
|
|
|
9
12
|
function NotificationsListContainerContent() {
|
|
10
|
-
const
|
|
11
|
-
const {
|
|
13
|
+
const searchParams = useSearchParams();
|
|
14
|
+
const { error } = useNotificationContext();
|
|
15
|
+
|
|
16
|
+
const tabParam = searchParams.get("tab");
|
|
17
|
+
const [mode, setMode] = useState<NotificationViewMode>(tabParam === "archived" ? "archived" : "inbox");
|
|
12
18
|
|
|
13
19
|
if (error) {
|
|
14
20
|
return (
|
|
@@ -21,24 +27,35 @@ function NotificationsListContainerContent() {
|
|
|
21
27
|
);
|
|
22
28
|
}
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
];
|
|
30
|
+
/* `replaceState` rather than a router push: the tab is a view preference, so
|
|
31
|
+
it belongs in the URL for reload/share but must not add a history entry
|
|
32
|
+
per toggle. */
|
|
33
|
+
const handleModeChange = (next: NotificationViewMode) => {
|
|
34
|
+
setMode(next);
|
|
35
|
+
const url = new URL(window.location.href);
|
|
36
|
+
url.searchParams.set("tab", next);
|
|
37
|
+
window.history.replaceState(null, "", url.toString());
|
|
38
|
+
};
|
|
34
39
|
|
|
35
|
-
return
|
|
40
|
+
return (
|
|
41
|
+
<NotificationsList
|
|
42
|
+
key={mode}
|
|
43
|
+
archived={mode === "archived"}
|
|
44
|
+
fullWidth
|
|
45
|
+
headerControl={<NotificationViewSwitcher value={mode} onChange={handleModeChange} />}
|
|
46
|
+
/>
|
|
47
|
+
);
|
|
36
48
|
}
|
|
37
49
|
|
|
38
50
|
export function NotificationsListContainer() {
|
|
39
51
|
return (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
/* `fullWidth` without `forceHeader`: the page header is ContentListTable's
|
|
53
|
+
own title row, which is where the Inbox/Archived switcher lives. Adding
|
|
54
|
+
`forceHeader` would stack a second bar with the same title above it. */
|
|
55
|
+
<RoundPageContainer module={Modules.Notification} fullWidth>
|
|
56
|
+
<NotificationErrorBoundary>
|
|
57
|
+
<NotificationsListContainerContent />
|
|
58
|
+
</NotificationErrorBoundary>
|
|
59
|
+
</RoundPageContainer>
|
|
43
60
|
);
|
|
44
61
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useTranslations } from "next-intl";
|
|
4
|
+
import { cn } from "../../../../utils";
|
|
5
|
+
|
|
6
|
+
export type NotificationViewMode = "inbox" | "archived";
|
|
7
|
+
|
|
8
|
+
const MODES: { key: NotificationViewMode; labelKey: string }[] = [
|
|
9
|
+
{ key: "inbox", labelKey: "notification.inbox" },
|
|
10
|
+
{ key: "archived", labelKey: "notification.archived" },
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
type NotificationViewSwitcherProps = {
|
|
14
|
+
value: NotificationViewMode;
|
|
15
|
+
onChange: (mode: NotificationViewMode) => void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Inbox / Archived selector for the notifications list header.
|
|
20
|
+
*
|
|
21
|
+
* A segmented control rather than a `TabsList`: it sits inside
|
|
22
|
+
* `ContentListTable`'s title row, which is the page header on a `fullWidth`
|
|
23
|
+
* `RoundPageContainer`, and a full-height tab strip does not fit there.
|
|
24
|
+
*/
|
|
25
|
+
export function NotificationViewSwitcher({ value, onChange }: NotificationViewSwitcherProps) {
|
|
26
|
+
const t = useTranslations();
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<div className="bg-muted inline-flex items-center rounded-md p-0.5">
|
|
30
|
+
{MODES.map((mode) => (
|
|
31
|
+
<button
|
|
32
|
+
key={mode.key}
|
|
33
|
+
type="button"
|
|
34
|
+
data-testid={`notification-view-${mode.key}`}
|
|
35
|
+
onClick={() => onChange(mode.key)}
|
|
36
|
+
className={cn(
|
|
37
|
+
"rounded-sm px-3 py-1 text-xs font-medium whitespace-nowrap transition-colors",
|
|
38
|
+
value === mode.key
|
|
39
|
+
? "bg-background text-foreground shadow-sm"
|
|
40
|
+
: "text-muted-foreground hover:text-foreground",
|
|
41
|
+
)}
|
|
42
|
+
>
|
|
43
|
+
{t(mode.labelKey)}
|
|
44
|
+
</button>
|
|
45
|
+
))}
|
|
46
|
+
</div>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./NotificationViewSwitcher";
|
|
@@ -1,130 +1,85 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { ArchiveIcon } from "lucide-react";
|
|
4
3
|
import { useTranslations } from "next-intl";
|
|
4
|
+
import { ReactNode, useEffect, useRef } from "react";
|
|
5
|
+
import { ContentListTable } from "../../../../components/tables/ContentListTable";
|
|
5
6
|
import { Modules } from "../../../../core";
|
|
6
7
|
import { DataListRetriever, useDataListRetriever, usePageUrlGenerator } from "../../../../hooks";
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
Card,
|
|
10
|
-
CardContent,
|
|
11
|
-
Link,
|
|
12
|
-
Skeleton,
|
|
13
|
-
Tooltip,
|
|
14
|
-
TooltipContent,
|
|
15
|
-
TooltipTrigger,
|
|
16
|
-
} from "../../../../shadcnui";
|
|
17
|
-
import { UserAvatar } from "../../../user/components";
|
|
8
|
+
import { useI18nRouter } from "../../../../i18n";
|
|
9
|
+
import { useNotificationContext } from "../../contexts/NotificationContext";
|
|
18
10
|
import { NotificationInterface } from "../../data";
|
|
11
|
+
import { NotificationFields } from "../../data/notification.fields";
|
|
19
12
|
import { NotificationService } from "../../data/notification.service";
|
|
13
|
+
import "../../hooks/useNotificationTableStructure";
|
|
20
14
|
import { generateNotificationData } from "../notifications/Notification";
|
|
21
15
|
|
|
22
16
|
type NotificationsListProps = {
|
|
23
17
|
archived: boolean;
|
|
18
|
+
headerControl?: ReactNode;
|
|
19
|
+
fullWidth?: boolean;
|
|
24
20
|
};
|
|
25
21
|
|
|
26
|
-
export function NotificationsList({ archived }: NotificationsListProps) {
|
|
22
|
+
export function NotificationsList({ archived, headerControl, fullWidth }: NotificationsListProps) {
|
|
27
23
|
const t = useTranslations();
|
|
24
|
+
const router = useI18nRouter();
|
|
28
25
|
const generateUrl = usePageUrlGenerator();
|
|
26
|
+
const { markNotificationsAsRead } = useNotificationContext();
|
|
29
27
|
|
|
30
28
|
const data: DataListRetriever<NotificationInterface> = useDataListRetriever({
|
|
29
|
+
module: Modules.Notification,
|
|
31
30
|
retriever: (params) => NotificationService.findMany(params),
|
|
32
31
|
retrieverParams: { isArchived: archived },
|
|
33
|
-
module: Modules.Notification,
|
|
34
32
|
});
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
34
|
+
/* Mark read what this list ACTUALLY SHOWS, on every page. Reading the shared
|
|
35
|
+
context's list instead would only ever cover the bell's first page, so
|
|
36
|
+
anything reached by paging forward would stay unread permanently.
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div className="flex w-full flex-row items-center">
|
|
47
|
-
<Skeleton className="me-4 h-8 w-8 rounded-full" />
|
|
48
|
-
<div className="flex-1 space-y-2">
|
|
49
|
-
<Skeleton className="h-4 w-3/4" />
|
|
50
|
-
<Skeleton className="h-3 w-1/2" />
|
|
51
|
-
</div>
|
|
52
|
-
<Skeleton className="h-8 w-20" />
|
|
53
|
-
</div>
|
|
54
|
-
</CardContent>
|
|
55
|
-
</Card>
|
|
56
|
-
))}
|
|
57
|
-
</div>
|
|
58
|
-
);
|
|
38
|
+
`markedRef` guards the loop: `markNotificationsAsRead` refreshes the shared
|
|
39
|
+
context, which re-renders this component, and `data.data` is not
|
|
40
|
+
guaranteed to be reference-stable across renders. Tracking the ids already
|
|
41
|
+
sent means a second pass finds nothing to do regardless of identity. */
|
|
42
|
+
const markedRef = useRef<Set<string>>(new Set<string>());
|
|
59
43
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (!data.isLoaded || !data.data) return;
|
|
46
|
+
|
|
47
|
+
const unreadIds = data.data
|
|
48
|
+
.filter((notification) => !notification.isRead && !markedRef.current.has(notification.id))
|
|
49
|
+
.map((notification) => notification.id);
|
|
65
50
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
<></>
|
|
100
|
-
)}
|
|
101
|
-
{!archived && (
|
|
102
|
-
<Tooltip>
|
|
103
|
-
<TooltipTrigger>
|
|
104
|
-
<Button
|
|
105
|
-
variant={`link`}
|
|
106
|
-
onClick={(e) => {
|
|
107
|
-
e.preventDefault();
|
|
108
|
-
e.stopPropagation();
|
|
109
|
-
archiveNotification(notification);
|
|
110
|
-
}}
|
|
111
|
-
className="text-muted-foreground hover:text-destructive ms-2"
|
|
112
|
-
>
|
|
113
|
-
<ArchiveIcon className="h-4 w-4 cursor-pointer" />
|
|
114
|
-
</Button>
|
|
115
|
-
</TooltipTrigger>
|
|
116
|
-
<TooltipContent>{t(`notification.buttons.archive`)}</TooltipContent>
|
|
117
|
-
</Tooltip>
|
|
118
|
-
)}
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
</CardContent>
|
|
122
|
-
</Card>
|
|
123
|
-
);
|
|
124
|
-
})
|
|
125
|
-
) : (
|
|
126
|
-
<LoadingSkeleton />
|
|
127
|
-
)}
|
|
128
|
-
</div>
|
|
51
|
+
if (unreadIds.length === 0) return;
|
|
52
|
+
|
|
53
|
+
unreadIds.forEach((id) => markedRef.current.add(id));
|
|
54
|
+
markNotificationsAsRead(unreadIds);
|
|
55
|
+
}, [data.isLoaded, data.data, markNotificationsAsRead]);
|
|
56
|
+
|
|
57
|
+
/* The whole row is the click target, matching the popover row — which is a
|
|
58
|
+
`Link` wrapping its entire body. */
|
|
59
|
+
const openNotification = (notification: NotificationInterface) => {
|
|
60
|
+
const url = generateNotificationData({ notification: notification, generateUrl: generateUrl }).url;
|
|
61
|
+
if (url) router.push(url);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<ContentListTable
|
|
66
|
+
data={data}
|
|
67
|
+
fields={[
|
|
68
|
+
NotificationFields.icon,
|
|
69
|
+
NotificationFields.description,
|
|
70
|
+
NotificationFields.createdAt,
|
|
71
|
+
NotificationFields.actions,
|
|
72
|
+
]}
|
|
73
|
+
tableGeneratorType={Modules.Notification}
|
|
74
|
+
title={t(`entities.notifications`, { count: 2 })}
|
|
75
|
+
filters={headerControl}
|
|
76
|
+
/* The notifications endpoint takes no search term, so rendering the box
|
|
77
|
+
would give the page a control that silently does nothing. */
|
|
78
|
+
allowSearch={false}
|
|
79
|
+
context={{ archived: archived }}
|
|
80
|
+
onRowClick={openNotification}
|
|
81
|
+
emptyState={t(`notification.empty`)}
|
|
82
|
+
fullWidth={fullWidth}
|
|
83
|
+
/>
|
|
129
84
|
);
|
|
130
85
|
}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { BellIcon } from "lucide-react";
|
|
1
|
+
import { BellIcon, ExternalLinkIcon } from "lucide-react";
|
|
2
2
|
import { useTranslations } from "next-intl";
|
|
3
3
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { showToast } from "../../../../utils/toast";
|
|
5
|
+
import { cn } from "../../../../utils";
|
|
5
6
|
import { useSocketContext } from "../../../../contexts";
|
|
7
|
+
import { Modules } from "../../../../core";
|
|
6
8
|
import { usePageUrlGenerator } from "../../../../hooks";
|
|
7
9
|
import {
|
|
8
|
-
|
|
9
|
-
CardHeader,
|
|
10
|
-
CardTitle,
|
|
10
|
+
Link,
|
|
11
11
|
Popover,
|
|
12
12
|
PopoverContent,
|
|
13
|
+
PopoverHeader,
|
|
14
|
+
PopoverTitle,
|
|
13
15
|
PopoverTrigger,
|
|
14
16
|
ScrollArea,
|
|
15
|
-
Separator,
|
|
16
17
|
SidebarMenuButton,
|
|
18
|
+
Tooltip,
|
|
19
|
+
TooltipContent,
|
|
20
|
+
TooltipTrigger,
|
|
17
21
|
} from "../../../../shadcnui";
|
|
18
22
|
import { useNotificationContext } from "../../contexts/NotificationContext";
|
|
19
23
|
import { NotificationInterface } from "../../data";
|
|
@@ -184,32 +188,98 @@ function NotificationModalContent({ isOpen, setIsOpen }: NotificationModalProps)
|
|
|
184
188
|
|
|
185
189
|
return (
|
|
186
190
|
<Popover open={isOpen} onOpenChange={handleOpenChange} data-testid={`sidebar-notification button`}>
|
|
187
|
-
|
|
188
|
-
|
|
191
|
+
{/* The badge overhangs the bell's top-end corner, so nothing between it
|
|
192
|
+
and the sidebar may clip: `overflow-visible` beats the button
|
|
193
|
+
variant's own `overflow-hidden`, and the label is wrapped in its own
|
|
194
|
+
span so the variant's `[&>span:last-child]:truncate` (which sets
|
|
195
|
+
overflow:hidden) lands on the label rather than on the icon slot. */}
|
|
196
|
+
<PopoverTrigger
|
|
197
|
+
render={<SidebarMenuButton className="text-muted-foreground h-6 overflow-visible" disabled={isLoading} />}
|
|
198
|
+
>
|
|
199
|
+
<span className="relative flex shrink-0 items-center justify-center overflow-visible">
|
|
189
200
|
<BellIcon
|
|
190
|
-
className={
|
|
201
|
+
className={cn(
|
|
202
|
+
"h-5 w-5 cursor-pointer",
|
|
203
|
+
// Filled, not just tinted: an outline bell in the danger colour
|
|
204
|
+
// is easy to miss at this size, a solid one is not.
|
|
205
|
+
unreadNotifications && "fill-destructive text-destructive",
|
|
206
|
+
isLoading && "animate-pulse",
|
|
207
|
+
)}
|
|
191
208
|
/>
|
|
192
|
-
{
|
|
193
|
-
|
|
209
|
+
{unreadNotifications && (
|
|
210
|
+
// Fixed px, not rem: the app's root font size is 14px, so a
|
|
211
|
+
// rem-sized badge renders a quarter smaller than the scale implies
|
|
212
|
+
// and the count stops being readable. The ring separates the dot
|
|
213
|
+
// from the bell it sits on.
|
|
214
|
+
<span
|
|
215
|
+
data-testid="sidebar-notification-unread-dot"
|
|
216
|
+
className="bg-destructive ring-sidebar pointer-events-none absolute -top-[3px] -end-[4px] size-[9px] rounded-full ring-2 group-data-[collapsible=icon]:block md:hidden"
|
|
217
|
+
/>
|
|
218
|
+
)}
|
|
219
|
+
</span>
|
|
220
|
+
<span className="truncate">{t(`entities.notifications`, { count: 2 })}</span>
|
|
221
|
+
{unreadNotifications && (
|
|
222
|
+
<span
|
|
223
|
+
data-testid="sidebar-notification-unread-count"
|
|
224
|
+
className="bg-destructive text-destructive-foreground pointer-events-none ms-auto flex h-[18px] min-w-[18px] shrink-0 items-center justify-center rounded-full px-[5px] text-[11px] leading-none font-semibold tabular-nums group-data-[collapsible=icon]:hidden"
|
|
225
|
+
>
|
|
226
|
+
{unreadCount > 99 ? "99+" : unreadCount}
|
|
227
|
+
</span>
|
|
228
|
+
)}
|
|
194
229
|
</PopoverTrigger>
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
<
|
|
204
|
-
|
|
205
|
-
|
|
230
|
+
{/* The popup IS the surface — a Card inside it stacked two paddings
|
|
231
|
+
(Card py-4 + CardHeader p-4) around a 20px title, which is why the
|
|
232
|
+
header was so tall. Widths are in a 14px rem here, so the previous
|
|
233
|
+
w-80 measured 280px on screen, not 320; 30rem = 420px. */}
|
|
234
|
+
<PopoverContent className="relative start-10 w-[30rem] gap-0 overflow-hidden p-0">
|
|
235
|
+
<PopoverHeader className="flex flex-row items-center justify-between gap-2 border-b px-3 py-2">
|
|
236
|
+
{/* Typography role 4 (section header) rather than role 5 (panel
|
|
237
|
+
title): the popover reads as a mini-page, not a card slot. */}
|
|
238
|
+
<PopoverTitle className="text-lg font-semibold">{t(`entities.notifications`, { count: 2 })}</PopoverTitle>
|
|
239
|
+
<Tooltip>
|
|
240
|
+
<TooltipTrigger
|
|
241
|
+
render={
|
|
242
|
+
<Link
|
|
243
|
+
href={generateUrl({ page: Modules.Notification })}
|
|
244
|
+
onClick={() => setIsOpen(false)}
|
|
245
|
+
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
246
|
+
/>
|
|
247
|
+
}
|
|
248
|
+
>
|
|
249
|
+
<ExternalLinkIcon className="size-4" />
|
|
250
|
+
</TooltipTrigger>
|
|
251
|
+
<TooltipContent>{t(`notification.all`)}</TooltipContent>
|
|
252
|
+
</Tooltip>
|
|
253
|
+
</PopoverHeader>
|
|
254
|
+
{isLoading && <div className="text-muted-foreground px-3 py-2 text-xs">{t(`common.loading`)}</div>}
|
|
255
|
+
{error && <div className="text-destructive px-3 py-2 text-xs">{error}</div>}
|
|
256
|
+
{/* The cap goes on the scroll viewport, not on the ScrollArea root: the
|
|
257
|
+
viewport carries Base UI's inline overflow and h-full, so a height
|
|
258
|
+
on the root leaves it stretching to its content instead of
|
|
259
|
+
scrolling.
|
|
260
|
+
It is measured against --available-height (set by the positioner,
|
|
261
|
+
after any flip) minus the header, the same way the package combobox
|
|
262
|
+
sizes its list. A fixed cap lets the popup outgrow the room below
|
|
263
|
+
the trigger, and floating-ui's shift() then clamps it into the
|
|
264
|
+
viewport — which is why it landed in the same spot wherever the
|
|
265
|
+
trigger sat, and never scrolled. */}
|
|
266
|
+
{/* The ScrollBar styles itself with data-vertical:w-2.5, but Base UI
|
|
267
|
+
emits data-orientation="vertical" — no data-vertical attribute
|
|
268
|
+
exists, so the track renders 2px wide with a 0px-wide thumb: an
|
|
269
|
+
invisible scrollbar. Forced here by data-slot until the primitive is
|
|
270
|
+
fixed. The thumb's bg-border is also invisible against the popup,
|
|
271
|
+
hence the explicit colour. */}
|
|
272
|
+
<ScrollArea className="[&_[data-slot=scroll-area-scrollbar]]:w-2.5 [&_[data-slot=scroll-area-thumb]]:bg-muted-foreground/40 [&>[data-slot=scroll-area-viewport]]:max-h-[min(32rem,calc(var(--available-height,32rem)-3.5rem))]">
|
|
273
|
+
{notifications.length > 0 ? (
|
|
274
|
+
<div className="divide-border divide-y">
|
|
275
|
+
{notifications.map((notification: NotificationInterface) => (
|
|
206
276
|
<Fragment key={notification.id}>{generateNotification(notification, () => setIsOpen(false))}</Fragment>
|
|
207
|
-
))
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
)}
|
|
211
|
-
|
|
212
|
-
</
|
|
277
|
+
))}
|
|
278
|
+
</div>
|
|
279
|
+
) : (
|
|
280
|
+
<div className="text-muted-foreground p-6 text-center text-sm">{t(`notification.empty`)}</div>
|
|
281
|
+
)}
|
|
282
|
+
</ScrollArea>
|
|
213
283
|
</PopoverContent>
|
|
214
284
|
</Popover>
|
|
215
285
|
);
|