@carlonicora/nextjs-jsonapi 4.1.2 → 4.2.1

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.
Files changed (285) hide show
  1. package/dist/{AssistantMessageInterface-CubxuBIJ.d.ts → AssistantMessageInterface-DHJJO_Z_.d.ts} +1 -1
  2. package/dist/{AssistantMessageInterface-sHjI2zPN.d.mts → AssistantMessageInterface-S7oyERTT.d.mts} +1 -1
  3. package/dist/{BlockNoteEditor-VOYKZOP5.mjs → BlockNoteEditor-HXAHDJA7.mjs} +34 -27
  4. package/dist/BlockNoteEditor-HXAHDJA7.mjs.map +1 -0
  5. package/dist/{BlockNoteEditor-BENYTTCZ.js → BlockNoteEditor-LLCZDFLZ.js} +50 -43
  6. package/dist/BlockNoteEditor-LLCZDFLZ.js.map +1 -0
  7. package/dist/{BlockNoteViewer-USLR4Y7C.js → BlockNoteViewer-77CCTC2U.js} +3 -3
  8. package/dist/{BlockNoteViewer-USLR4Y7C.js.map → BlockNoteViewer-77CCTC2U.js.map} +1 -1
  9. package/dist/{BlockNoteViewer-Y2ZM4ESA.mjs → BlockNoteViewer-MDPO6BXN.mjs} +2 -2
  10. package/dist/{auth.interface-Df4vXbNz.d.mts → auth.interface-CeFCz9NU.d.mts} +1 -1
  11. package/dist/{auth.interface-BzI4onI_.d.ts → auth.interface-D1R7VVky.d.ts} +1 -1
  12. package/dist/billing/index.d.mts +40 -6
  13. package/dist/billing/index.d.ts +40 -6
  14. package/dist/billing/index.js +806 -774
  15. package/dist/billing/index.js.map +1 -1
  16. package/dist/billing/index.mjs +494 -462
  17. package/dist/billing/index.mjs.map +1 -1
  18. package/dist/{chunk-6ISF5KNQ.mjs → chunk-2VXDZRYY.mjs} +1103 -816
  19. package/dist/chunk-2VXDZRYY.mjs.map +1 -0
  20. package/dist/{chunk-4BZJ4LAB.js → chunk-4ORLPEK7.js} +136 -104
  21. package/dist/chunk-4ORLPEK7.js.map +1 -0
  22. package/dist/{chunk-ZZ6E33FO.mjs → chunk-6DRSSW5O.mjs} +36 -4
  23. package/dist/chunk-6DRSSW5O.mjs.map +1 -0
  24. package/dist/{chunk-KS6WZP2E.js → chunk-6SMJRAE3.js} +4 -4
  25. package/dist/{chunk-KS6WZP2E.js.map → chunk-6SMJRAE3.js.map} +1 -1
  26. package/dist/{chunk-WQ77CUUZ.js → chunk-GPXYQMOZ.js} +7 -7
  27. package/dist/{chunk-WQ77CUUZ.js.map → chunk-GPXYQMOZ.js.map} +1 -1
  28. package/dist/{chunk-46S3KPLU.mjs → chunk-ILFFC6BG.mjs} +2 -2
  29. package/dist/{chunk-HZVVRIJQ.mjs → chunk-IUS2RHCX.mjs} +2 -2
  30. package/dist/{chunk-F7RNBGHS.js → chunk-KJMMBUOA.js} +3 -3
  31. package/dist/{chunk-F7RNBGHS.js.map → chunk-KJMMBUOA.js.map} +1 -1
  32. package/dist/{chunk-ZO3QQ5CQ.mjs → chunk-MQDR6MEE.mjs} +2 -2
  33. package/dist/{chunk-ORU7KLCY.js → chunk-VDVIUDY5.js} +1445 -1158
  34. package/dist/chunk-VDVIUDY5.js.map +1 -0
  35. package/dist/client/index.d.mts +20 -6
  36. package/dist/client/index.d.ts +20 -6
  37. package/dist/client/index.js +6 -4
  38. package/dist/client/index.js.map +1 -1
  39. package/dist/client/index.mjs +5 -3
  40. package/dist/components/index.d.mts +59 -21
  41. package/dist/components/index.d.ts +59 -21
  42. package/dist/components/index.js +4 -4
  43. package/dist/components/index.mjs +3 -3
  44. package/dist/{config-CEAq4Ozy.d.mts → config-BP2vyddw.d.mts} +5 -0
  45. package/dist/{config-DydDHCfb.d.ts → config-BhW2QrRD.d.ts} +5 -0
  46. package/dist/contexts/index.d.mts +4 -4
  47. package/dist/contexts/index.d.ts +4 -4
  48. package/dist/contexts/index.js +4 -4
  49. package/dist/contexts/index.mjs +3 -3
  50. package/dist/core/index.d.mts +17 -9
  51. package/dist/core/index.d.ts +17 -9
  52. package/dist/core/index.js +4 -2
  53. package/dist/core/index.js.map +1 -1
  54. package/dist/core/index.mjs +3 -1
  55. package/dist/features/analytics/index.d.mts +1 -1
  56. package/dist/features/analytics/index.d.ts +1 -1
  57. package/dist/features/analytics/index.js +122 -122
  58. package/dist/features/analytics/index.mjs +4 -4
  59. package/dist/features/analytics/server.js +4 -4
  60. package/dist/features/analytics/server.mjs +2 -2
  61. package/dist/features/help/index.d.mts +1 -1
  62. package/dist/features/help/index.d.ts +1 -1
  63. package/dist/features/help/index.js +42 -40
  64. package/dist/features/help/index.js.map +1 -1
  65. package/dist/features/help/index.mjs +8 -6
  66. package/dist/features/help/index.mjs.map +1 -1
  67. package/dist/features/tokenusage/index.js +125 -125
  68. package/dist/features/tokenusage/index.mjs +4 -4
  69. package/dist/index.d.mts +7 -7
  70. package/dist/index.d.ts +7 -7
  71. package/dist/index.js +5 -3
  72. package/dist/index.js.map +1 -1
  73. package/dist/index.mjs +4 -2
  74. package/dist/{notification.interface-P_pNfzZQ.d.mts → notification.interface-BB6GPpZY.d.mts} +1 -1
  75. package/dist/{notification.interface-BNCvnVCW.d.ts → notification.interface-CmAGrijJ.d.ts} +1 -1
  76. package/dist/{s3.service-CbUa6a-8.d.ts → s3.service-C-4YpEMu.d.ts} +7 -3
  77. package/dist/{s3.service-DAp8FbuG.d.mts → s3.service-dVj-nxMl.d.mts} +7 -3
  78. package/dist/server/index.d.mts +4 -4
  79. package/dist/server/index.d.ts +4 -4
  80. package/dist/server/index.js +3 -3
  81. package/dist/server/index.mjs +2 -2
  82. package/dist/{useSocket-BHVIyigI.d.ts → useSocket-B0H9pmmH.d.ts} +1 -1
  83. package/dist/{useSocket-B9gTbuCj.d.mts → useSocket-B5RQb6v2.d.mts} +1 -1
  84. package/dist/{user.interface-CrmwJLYW.d.ts → user.interface-C0ZdsBZj.d.ts} +2 -0
  85. package/dist/{user.interface-CSaGWFbg.d.mts → user.interface-CIWGlbqM.d.mts} +2 -0
  86. package/package.json +1 -1
  87. package/src/components/containers/RoundPageContainer.tsx +3 -1
  88. package/src/components/containers/RoundPageContainerTitle.tsx +5 -2
  89. package/src/components/editors/BlockNoteEditor.tsx +31 -15
  90. package/src/components/editors/BlockNoteEditorAiActions.tsx +11 -7
  91. package/src/components/editors/__tests__/{BlockNoteEditorAiActions.test.ts → BlockNoteEditorAiActions.spec.ts} +10 -3
  92. package/src/components/errors/ErrorDetails.tsx +5 -2
  93. package/src/components/forms/CommonAssociationForm.tsx +1 -1
  94. package/src/components/forms/EntityMultiSelector.tsx +6 -2
  95. package/src/components/forms/EntitySelector.tsx +4 -1
  96. package/src/components/forms/FileUploader.tsx +3 -2
  97. package/src/components/forms/MultiFileUploader.tsx +3 -1
  98. package/src/components/navigations/Breadcrumb.tsx +3 -2
  99. package/src/components/navigations/Header.tsx +3 -1
  100. package/src/components/navigations/MobileNavigationBar.tsx +3 -1
  101. package/src/components/navigations/__tests__/Header.spec.tsx +2 -2
  102. package/src/components/tables/__tests__/ContentListTable.spec.tsx +1 -1
  103. package/src/components/tables/cells/cell.id.tsx +13 -2
  104. package/src/core/abstracts/AbstractService.ts +3 -3
  105. package/src/core/abstracts/ClientAbstractService.ts +3 -2
  106. package/src/features/assistant-action/components/ApprovalActionCard.tsx +74 -5
  107. package/src/features/assistant-action/components/__tests__/ApprovalActionCard.spec.tsx +81 -0
  108. package/src/features/assistant-message/components/parts/RelevanceMeter.tsx +4 -1
  109. package/src/features/assistant-message/components/parts/tabs/UsersTab.tsx +2 -1
  110. package/src/features/auth/components/buttons/GoogleSignInButton.tsx +4 -1
  111. package/src/features/auth/components/details/LandingComponent.tsx +1 -1
  112. package/src/features/auth/components/forms/ForgotPassword.tsx +1 -1
  113. package/src/features/auth/components/forms/Login.tsx +1 -1
  114. package/src/features/auth/components/forms/Register.tsx +1 -1
  115. package/src/features/auth/components/forms/ResetPassword.tsx +2 -2
  116. package/src/features/auth/components/two-factor/BackupCodesDialog.tsx +1 -1
  117. package/src/features/auth/components/two-factor/PasskeyButton.tsx +1 -1
  118. package/src/features/billing/components/cards/BillingUsageSummaryCard.tsx +21 -11
  119. package/src/features/billing/components/cards/CustomerInfoCard.tsx +16 -13
  120. package/src/features/billing/components/cards/InvoicesSummaryCard.tsx +33 -21
  121. package/src/features/billing/components/cards/PaymentMethodSummaryCard.tsx +20 -10
  122. package/src/features/billing/components/cards/SubscriptionSummaryCard.tsx +35 -22
  123. package/src/features/billing/components/containers/BillingDashboardContainer.tsx +24 -24
  124. package/src/features/billing/components/utils/__tests__/billing-formatters.spec.ts +63 -0
  125. package/src/features/billing/components/utils/currency.ts +67 -10
  126. package/src/features/billing/components/utils/date.ts +9 -4
  127. package/src/features/billing/components/utils/format-options.ts +20 -0
  128. package/src/features/billing/components/utils/index.ts +3 -1
  129. package/src/features/billing/components/utils/useBillingFormatOptions.ts +11 -0
  130. package/src/features/billing/components/widgets/BillingAlertBanner.tsx +8 -9
  131. package/src/features/billing/contexts/PriceContext.tsx +18 -6
  132. package/src/features/billing/i18n-keys.ts +212 -0
  133. package/src/features/billing/stripe-customer/components/containers/PaymentMethodsContainer.tsx +8 -8
  134. package/src/features/billing/stripe-customer/components/details/PaymentMethodCard.tsx +11 -9
  135. package/src/features/billing/stripe-customer/components/forms/PaymentMethodEditor.tsx +4 -4
  136. package/src/features/billing/stripe-customer/components/forms/PaymentMethodForm.tsx +9 -7
  137. package/src/features/billing/stripe-invoice/components/containers/InvoicesContainer.tsx +10 -8
  138. package/src/features/billing/stripe-invoice/components/details/InvoiceDetails.tsx +34 -29
  139. package/src/features/billing/stripe-invoice/components/lists/InvoicesList.tsx +12 -9
  140. package/src/features/billing/stripe-invoice/components/widgets/InvoiceStatusBadge.tsx +9 -6
  141. package/src/features/billing/stripe-price/components/details/PriceDetails.tsx +4 -3
  142. package/src/features/billing/stripe-price/components/forms/PriceArchiver.tsx +3 -1
  143. package/src/features/billing/stripe-price/components/forms/PriceEditor.tsx +3 -1
  144. package/src/features/billing/stripe-price/hooks/useStripePriceTableStructure.tsx +6 -5
  145. package/src/features/billing/stripe-promotion-code/components/PromoCodeInput.tsx +12 -7
  146. package/src/features/billing/stripe-promotion-code/data/stripe-promotion-code.service.ts +3 -1
  147. package/src/features/billing/stripe-subscription/components/containers/SubscriptionsContainer.tsx +10 -6
  148. package/src/features/billing/stripe-subscription/components/details/SubscriptionDetails.tsx +44 -29
  149. package/src/features/billing/stripe-subscription/components/forms/CancelSubscriptionDialog.tsx +14 -11
  150. package/src/features/billing/stripe-subscription/components/lists/SubscriptionsList.tsx +20 -17
  151. package/src/features/billing/stripe-subscription/components/widgets/IntervalToggle.tsx +4 -2
  152. package/src/features/billing/stripe-subscription/components/widgets/PricingCard.tsx +16 -7
  153. package/src/features/billing/stripe-subscription/components/widgets/ProductPricingList.tsx +3 -1
  154. package/src/features/billing/stripe-subscription/components/widgets/ProductPricingRow.tsx +3 -1
  155. package/src/features/billing/stripe-subscription/components/widgets/ProrationPreview.tsx +12 -7
  156. package/src/features/billing/stripe-subscription/components/widgets/SubscriptionConfirmation.tsx +11 -8
  157. package/src/features/billing/stripe-subscription/components/widgets/SubscriptionStatusBadge.tsx +13 -10
  158. package/src/features/billing/stripe-subscription/components/wizards/SubscriptionWizard.tsx +8 -6
  159. package/src/features/billing/stripe-subscription/components/wizards/WizardProgressIndicator.tsx +7 -4
  160. package/src/features/billing/stripe-subscription/components/wizards/WizardStepPaymentMethod.tsx +4 -2
  161. package/src/features/billing/stripe-subscription/components/wizards/WizardStepPlanSelection.tsx +3 -1
  162. package/src/features/billing/stripe-subscription/components/wizards/WizardStepReview.tsx +37 -28
  163. package/src/features/billing/stripe-subscription/hooks/useConfirmSubscriptionPayment.ts +9 -7
  164. package/src/features/billing/stripe-subscription/hooks/useSubscriptionWizard.ts +20 -9
  165. package/src/features/billing/stripe-usage/components/containers/UsageContainer.tsx +6 -6
  166. package/src/features/billing/stripe-usage/components/details/UsageSummaryCard.tsx +24 -9
  167. package/src/features/billing/stripe-usage/components/lists/UsageHistoryTable.tsx +16 -12
  168. package/src/features/company/components/details/TokenStatusIndicator.tsx +7 -5
  169. package/src/features/company/components/forms/CompanyEditor.tsx +2 -2
  170. package/src/features/help/components/HelpArticleBody.tsx +1 -1
  171. package/src/features/help/components/HelpHeader.tsx +1 -1
  172. package/src/features/help/components/HelpSideNav.tsx +1 -1
  173. package/src/features/help/i18n-keys.ts +2 -0
  174. package/src/features/notification/components/common/NotificationErrorBoundary.tsx +17 -12
  175. package/src/features/notification/components/containers/NotificationsListContainer.tsx +4 -2
  176. package/src/features/notification/components/notifications/Notification.tsx +6 -3
  177. package/src/features/notification/contexts/NotificationContext.tsx +9 -4
  178. package/src/features/notification/contexts/__tests__/NotificationContext.spec.tsx +13 -0
  179. package/src/features/notification/hooks/useNotificationTableStructure.tsx +4 -2
  180. package/src/features/oauth/components/OAuthClientCard.tsx +13 -7
  181. package/src/features/oauth/components/OAuthClientDetail.tsx +34 -30
  182. package/src/features/oauth/components/OAuthClientForm.tsx +24 -24
  183. package/src/features/oauth/components/OAuthClientList.tsx +10 -6
  184. package/src/features/oauth/components/OAuthClientSecretDisplay.tsx +10 -8
  185. package/src/features/oauth/components/OAuthRedirectUriInput.tsx +9 -13
  186. package/src/features/oauth/components/OAuthScopeSelector.tsx +15 -6
  187. package/src/features/oauth/components/__tests__/OAuthClientForm.spec.tsx +11 -9
  188. package/src/features/oauth/components/consent/OAuthScopeList.tsx +4 -2
  189. package/src/features/oauth/hooks/__tests__/useOAuthScopeText.spec.ts +30 -0
  190. package/src/features/oauth/hooks/index.ts +1 -0
  191. package/src/features/oauth/hooks/useOAuthClient.ts +11 -5
  192. package/src/features/oauth/hooks/useOAuthClients.ts +9 -3
  193. package/src/features/oauth/hooks/useOAuthConsent.ts +11 -5
  194. package/src/features/oauth/hooks/useOAuthScopeText.ts +33 -0
  195. package/src/features/rbac/components/RbacByRoleContainer.tsx +7 -6
  196. package/src/features/rbac/components/RbacContainer.tsx +7 -6
  197. package/src/features/rbac/contexts/RbacContext.tsx +3 -3
  198. package/src/features/user/components/containers/UserContainer.tsx +3 -1
  199. package/src/features/user/data/__tests__/user.spec.ts +66 -0
  200. package/src/features/user/data/user.interface.ts +2 -0
  201. package/src/features/user/data/user.service.ts +9 -0
  202. package/src/features/user/data/user.ts +7 -0
  203. package/src/features/waitlist/components/forms/WaitlistForm.tsx +1 -1
  204. package/src/features/waitlist/components/lists/WaitlistList.tsx +1 -1
  205. package/src/i18n/__tests__/{config.test.ts → config.spec.ts} +21 -1
  206. package/src/i18n/config.ts +13 -0
  207. package/src/i18n/index.ts +1 -0
  208. package/src/shadcnui/custom/multi-select.tsx +47 -14
  209. package/src/shadcnui/custom/multiple-selector.tsx +14 -2
  210. package/src/shadcnui/ui/__tests__/{confirm-dialog.test.tsx → confirm-dialog.spec.tsx} +1 -1
  211. package/src/shadcnui/ui/__tests__/{cursor-controls.test.tsx → cursor-controls.spec.tsx} +1 -1
  212. package/src/shadcnui/ui/__tests__/{cursor-menu-items.test.tsx → cursor-menu-items.spec.tsx} +1 -1
  213. package/src/shadcnui/ui/__tests__/{empty-state.test.tsx → empty-state.spec.tsx} +1 -1
  214. package/src/shadcnui/ui/__tests__/{spinner.test.tsx → spinner.spec.tsx} +1 -1
  215. package/src/shadcnui/ui/__tests__/use-ui-text.spec.tsx +76 -0
  216. package/src/shadcnui/ui/breadcrumb.tsx +9 -2
  217. package/src/shadcnui/ui/carousel.tsx +15 -4
  218. package/src/shadcnui/ui/dialog.tsx +15 -2
  219. package/src/shadcnui/ui/sheet.tsx +6 -1
  220. package/src/shadcnui/ui/sidebar.tsx +33 -7
  221. package/src/shadcnui/ui/spinner.tsx +6 -1
  222. package/src/shadcnui/ui/use-ui-text.ts +49 -0
  223. package/src/utils/__tests__/{date-formatter.test.ts → date-formatter.spec.ts} +24 -1
  224. package/src/utils/date-formatter.ts +16 -0
  225. package/src/utils/index.ts +1 -1
  226. package/dist/BlockNoteEditor-BENYTTCZ.js.map +0 -1
  227. package/dist/BlockNoteEditor-VOYKZOP5.mjs.map +0 -1
  228. package/dist/chunk-4BZJ4LAB.js.map +0 -1
  229. package/dist/chunk-6ISF5KNQ.mjs.map +0 -1
  230. package/dist/chunk-ORU7KLCY.js.map +0 -1
  231. package/dist/chunk-ZZ6E33FO.mjs.map +0 -1
  232. /package/dist/{BlockNoteViewer-Y2ZM4ESA.mjs.map → BlockNoteViewer-MDPO6BXN.mjs.map} +0 -0
  233. /package/dist/{chunk-46S3KPLU.mjs.map → chunk-ILFFC6BG.mjs.map} +0 -0
  234. /package/dist/{chunk-HZVVRIJQ.mjs.map → chunk-IUS2RHCX.mjs.map} +0 -0
  235. /package/dist/{chunk-ZO3QQ5CQ.mjs.map → chunk-MQDR6MEE.mjs.map} +0 -0
  236. /package/scripts/{check-rtl-classes.test.ts → check-rtl-classes.spec.ts} +0 -0
  237. /package/src/client/__tests__/{JsonApiClient.test.ts → JsonApiClient.spec.ts} +0 -0
  238. /package/src/client/__tests__/{request.test.ts → request.spec.ts} +0 -0
  239. /package/src/client/hooks/__tests__/{useJsonApiGet.test.tsx → useJsonApiGet.spec.tsx} +0 -0
  240. /package/src/client/hooks/__tests__/{useJsonApiMutation.test.tsx → useJsonApiMutation.spec.tsx} +0 -0
  241. /package/src/client/hooks/__tests__/{useRehydration.test.ts → useRehydration.spec.ts} +0 -0
  242. /package/src/components/editors/__tests__/{BlockNoteEditorMentionInlineContent.test.ts → BlockNoteEditorMentionInlineContent.spec.ts} +0 -0
  243. /package/src/components/forms/__tests__/{CommonEditorDiscardDialog.test.tsx → CommonEditorDiscardDialog.spec.tsx} +0 -0
  244. /package/src/components/forms/__tests__/{EditorSheet.test.tsx → EditorSheet.spec.tsx} +0 -0
  245. /package/src/components/forms/__tests__/{FormCheckbox.test.tsx → FormCheckbox.spec.tsx} +0 -0
  246. /package/src/components/forms/__tests__/{FormDate.test.tsx → FormDate.spec.tsx} +0 -0
  247. /package/src/components/forms/__tests__/{FormInput.test.tsx → FormInput.spec.tsx} +0 -0
  248. /package/src/components/forms/__tests__/{FormSelect.test.tsx → FormSelect.spec.tsx} +0 -0
  249. /package/src/components/forms/__tests__/{useEditorDialog.test.ts → useEditorDialog.spec.ts} +0 -0
  250. /package/src/components/grids/__tests__/{ContentListGrid.test.tsx → ContentListGrid.spec.tsx} +0 -0
  251. /package/src/components/tables/__tests__/{ContentListTable.test.tsx → ContentListTable.rendering.spec.tsx} +0 -0
  252. /package/src/contexts/__tests__/{DirectionContext.test.tsx → DirectionContext.spec.tsx} +0 -0
  253. /package/src/contexts/__tests__/{SessionContext.test.tsx → SessionContext.spec.tsx} +0 -0
  254. /package/src/contexts/__tests__/{SocketContext.session.test.tsx → SocketContext.session.spec.tsx} +0 -0
  255. /package/src/core/abstracts/__tests__/{AbstractService.locale.test.ts → AbstractService.locale.spec.ts} +0 -0
  256. /package/src/core/endpoint/__tests__/{EndpointCreator.test.ts → EndpointCreator.spec.ts} +0 -0
  257. /package/src/core/factories/__tests__/{JsonApiDataFactory.test.ts → JsonApiDataFactory.spec.ts} +0 -0
  258. /package/src/core/factories/__tests__/{RehydrationFactory.test.ts → RehydrationFactory.spec.ts} +0 -0
  259. /package/src/core/registry/__tests__/{DataClassRegistry.test.ts → DataClassRegistry.spec.ts} +0 -0
  260. /package/src/core/registry/__tests__/{ModuleRegistrar.test.ts → ModuleRegistrar.spec.ts} +0 -0
  261. /package/src/core/registry/__tests__/{viewportStore.test.ts → viewportStore.spec.ts} +0 -0
  262. /package/src/core/utils/__tests__/{translateResponse.test.ts → translateResponse.spec.ts} +0 -0
  263. /package/src/features/ai-connection/data/__tests__/{ai-connection.test.ts → ai-connection.spec.ts} +0 -0
  264. /package/src/features/company/data/{company.test.ts → company.spec.ts} +0 -0
  265. /package/src/features/company/hooks/{useSubscriptionStatus.test.ts → useSubscriptionStatus.spec.ts} +0 -0
  266. /package/src/hooks/__tests__/{useDataListRetriever.test.ts → useDataListRetriever.spec.ts} +0 -0
  267. /package/src/hooks/__tests__/{useDebounce.test.ts → useDebounce.spec.ts} +0 -0
  268. /package/src/hooks/__tests__/{useSocket.render.test.ts → useSocket.render.spec.ts} +0 -0
  269. /package/src/lib/__tests__/{direction.test.ts → direction.spec.ts} +0 -0
  270. /package/src/next-config/__tests__/{createNextConfig.test.ts → createNextConfig.spec.ts} +0 -0
  271. /package/src/server/__tests__/{JsonApiServer.test.ts → JsonApiServer.spec.ts} +0 -0
  272. /package/src/server/__tests__/{ServerSession.read.test.ts → ServerSession.read.spec.ts} +0 -0
  273. /package/src/server/__tests__/{cache.test.ts → cache.spec.ts} +0 -0
  274. /package/src/server/__tests__/{cachedGet.test.ts → cachedGet.spec.ts} +0 -0
  275. /package/src/server/__tests__/{request.test.ts → request.spec.ts} +0 -0
  276. /package/src/shadcnui/ui/__tests__/{sidebar.menu-skeleton.test.tsx → sidebar.menu-skeleton.spec.tsx} +0 -0
  277. /package/src/shadcnui/ui/__tests__/{sidebar.session.test.tsx → sidebar.session.spec.tsx} +0 -0
  278. /package/src/unified/__tests__/{JsonApiGet.cache.test.ts → JsonApiGet.cache.spec.ts} +0 -0
  279. /package/src/unified/__tests__/{JsonApiRequest.test.ts → JsonApiRequest.spec.ts} +0 -0
  280. /package/src/utils/__tests__/{exists.test.ts → exists.spec.ts} +0 -0
  281. /package/src/utils/__tests__/{italian-validators.test.ts → italian-validators.spec.ts} +0 -0
  282. /package/src/utils/__tests__/{map-thenable.test.ts → map-thenable.spec.ts} +0 -0
  283. /package/src/utils/__tests__/{use-mobile.test.tsx → use-mobile.spec.tsx} +0 -0
  284. /package/src/utils/{cn.test.ts → cn.spec.ts} +0 -0
  285. /package/src/utils/{isRemoteImageSrc.test.ts → isRemoteImageSrc.spec.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkF7RNBGHSjs = require('../../chunk-F7RNBGHS.js');
6
+ var _chunkKJMMBUOAjs = require('../../chunk-KJMMBUOA.js');
7
7
 
8
8
 
9
9
 
@@ -33,8 +33,8 @@ var _chunkF7RNBGHSjs = require('../../chunk-F7RNBGHS.js');
33
33
 
34
34
 
35
35
 
36
- var _chunkORU7KLCYjs = require('../../chunk-ORU7KLCY.js');
37
- require('../../chunk-WQ77CUUZ.js');
36
+ var _chunkVDVIUDY5js = require('../../chunk-VDVIUDY5.js');
37
+ require('../../chunk-GPXYQMOZ.js');
38
38
  require('../../chunk-G4JR3SFV.js');
39
39
 
40
40
 
@@ -48,7 +48,7 @@ require('../../chunk-G4JR3SFV.js');
48
48
 
49
49
 
50
50
 
51
- var _chunk4BZJ4LABjs = require('../../chunk-4BZJ4LAB.js');
51
+ var _chunk4ORLPEK7js = require('../../chunk-4ORLPEK7.js');
52
52
  require('../../chunk-LXKSUWAV.js');
53
53
  require('../../chunk-JTPRJNT2.js');
54
54
  require('../../chunk-GHE4VT2R.js');
@@ -63,7 +63,7 @@ var _react = require('react');
63
63
  var _uuid = require('uuid');
64
64
 
65
65
  // src/features/analytics/data/AnalyticsService.ts
66
- var AnalyticsService = class extends _chunk4BZJ4LABjs.AbstractService {
66
+ var AnalyticsService = class extends _chunk4ORLPEK7js.AbstractService {
67
67
  static {
68
68
  _chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsService");
69
69
  }
@@ -75,9 +75,9 @@ var AnalyticsService = class extends _chunk4BZJ4LABjs.AbstractService {
75
75
  static async track(input) {
76
76
  try {
77
77
  await this.callApi({
78
- type: _chunk4BZJ4LABjs.Modules.AnalyticsEvent,
78
+ type: _chunk4ORLPEK7js.Modules.AnalyticsEvent,
79
79
  method: "POST" /* POST */,
80
- endpoint: new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsEvent }).generate(),
80
+ endpoint: new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsEvent }).generate(),
81
81
  input,
82
82
  suppressGlobalError: true
83
83
  });
@@ -224,7 +224,7 @@ function AnalyticsAdminFilterBar({ section, granularity, onChange }) {
224
224
  };
225
225
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
226
226
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-md:w-full max-md:[&_#date]:w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
227
- _chunkORU7KLCYjs.DateRangeSelector,
227
+ _chunkVDVIUDY5js.DateRangeSelector,
228
228
  {
229
229
  onDateChange: (range) => {
230
230
  if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
@@ -268,13 +268,13 @@ function Segmented({
268
268
  children: options.map((option) => {
269
269
  const selected = option.value === value;
270
270
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
271
- _chunkORU7KLCYjs.Button,
271
+ _chunkVDVIUDY5js.Button,
272
272
  {
273
273
  type: "button",
274
274
  size: "sm",
275
275
  variant: selected ? "default" : "ghost",
276
276
  "aria-pressed": selected,
277
- className: _chunk4BZJ4LABjs.cn.call(void 0, !selected && "text-muted-foreground"),
277
+ className: _chunk4ORLPEK7js.cn.call(void 0, !selected && "text-muted-foreground"),
278
278
  onClick: () => onSelect(option.value),
279
279
  children: option.label
280
280
  },
@@ -294,45 +294,45 @@ function withFilters(endpoint, filters) {
294
294
  return endpoint;
295
295
  }
296
296
  _chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
297
- var AnalyticsAdminService = class extends _chunk4BZJ4LABjs.AbstractService {
297
+ var AnalyticsAdminService = class extends _chunk4ORLPEK7js.AbstractService {
298
298
  static {
299
299
  _chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsAdminService");
300
300
  }
301
301
  /** Headline tiles: one row per window (current, previous). */
302
302
  static async getSummary(filters) {
303
- const endpoint = withFilters(new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsSummary }), filters);
303
+ const endpoint = withFilters(new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsSummary }), filters);
304
304
  return this.callApi({
305
- type: _chunk4BZJ4LABjs.Modules.AnalyticsSummary,
305
+ type: _chunk4ORLPEK7js.Modules.AnalyticsSummary,
306
306
  method: "GET" /* GET */,
307
307
  endpoint: endpoint.generate()
308
308
  });
309
309
  }
310
310
  static async getTimeline(params) {
311
- const endpoint = withFilters(new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsTimeline }), params);
311
+ const endpoint = withFilters(new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsTimeline }), params);
312
312
  endpoint.addAdditionalParam("granularity", params.granularity);
313
313
  return this.callApi({
314
- type: _chunk4BZJ4LABjs.Modules.AnalyticsTimeline,
314
+ type: _chunk4ORLPEK7js.Modules.AnalyticsTimeline,
315
315
  method: "GET" /* GET */,
316
316
  endpoint: endpoint.generate()
317
317
  });
318
318
  }
319
319
  static async getBreakdown(params) {
320
- const endpoint = withFilters(new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsBreakdown }), params);
320
+ const endpoint = withFilters(new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsBreakdown }), params);
321
321
  endpoint.addAdditionalParam("dimension", params.dimension);
322
322
  if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
323
323
  return this.callApi({
324
- type: _chunk4BZJ4LABjs.Modules.AnalyticsBreakdown,
324
+ type: _chunk4ORLPEK7js.Modules.AnalyticsBreakdown,
325
325
  method: "GET" /* GET */,
326
326
  endpoint: endpoint.generate()
327
327
  });
328
328
  }
329
329
  /** Newest sessions first, cursor-paginated through `next`. */
330
330
  static async getSessions(params) {
331
- const endpoint = withFilters(new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsSession }), params);
331
+ const endpoint = withFilters(new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsSession }), params);
332
332
  if (params.visitorId) endpoint.addAdditionalParam("visitorId", params.visitorId);
333
333
  if (params.userId) endpoint.addAdditionalParam("userId", params.userId);
334
334
  return this.callApi({
335
- type: _chunk4BZJ4LABjs.Modules.AnalyticsSession,
335
+ type: _chunk4ORLPEK7js.Modules.AnalyticsSession,
336
336
  method: "GET" /* GET */,
337
337
  endpoint: endpoint.generate(),
338
338
  next: params.next
@@ -340,20 +340,20 @@ var AnalyticsAdminService = class extends _chunk4BZJ4LABjs.AbstractService {
340
340
  }
341
341
  static async getSession(params) {
342
342
  return this.callApi({
343
- type: _chunk4BZJ4LABjs.Modules.AnalyticsSession,
343
+ type: _chunk4ORLPEK7js.Modules.AnalyticsSession,
344
344
  method: "GET" /* GET */,
345
- endpoint: new (0, _chunk4BZJ4LABjs.EndpointCreator)({ endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsSession, id: params.id }).generate()
345
+ endpoint: new (0, _chunk4ORLPEK7js.EndpointCreator)({ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsSession, id: params.id }).generate()
346
346
  });
347
347
  }
348
348
  /** The journey: every page view of one session, oldest first. */
349
349
  static async getSessionPageViews(params) {
350
350
  return this.callApi({
351
- type: _chunk4BZJ4LABjs.Modules.AnalyticsPageView,
351
+ type: _chunk4ORLPEK7js.Modules.AnalyticsPageView,
352
352
  method: "GET" /* GET */,
353
- endpoint: new (0, _chunk4BZJ4LABjs.EndpointCreator)({
354
- endpoint: _chunk4BZJ4LABjs.Modules.AnalyticsSession,
353
+ endpoint: new (0, _chunk4ORLPEK7js.EndpointCreator)({
354
+ endpoint: _chunk4ORLPEK7js.Modules.AnalyticsSession,
355
355
  id: params.sessionId,
356
- childEndpoint: _chunk4BZJ4LABjs.Modules.AnalyticsPageView
356
+ childEndpoint: _chunk4ORLPEK7js.Modules.AnalyticsPageView
357
357
  }).generate()
358
358
  });
359
359
  }
@@ -388,7 +388,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
388
388
  sessionPageUrl = ANALYTICS_SESSION_PAGE_URL
389
389
  }) => {
390
390
  const t = _nextintl.useTranslations.call(void 0, );
391
- const generateUrl = _chunkORU7KLCYjs.usePageUrlGenerator.call(void 0, );
391
+ const generateUrl = _chunkVDVIUDY5js.usePageUrlGenerator.call(void 0, );
392
392
  const [filters, setFilterState] = _react.useState.call(void 0, () => {
393
393
  const range = defaultRange();
394
394
  return {
@@ -452,7 +452,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
452
452
  const sessionsNext = {};
453
453
  try {
454
454
  const nextSessions = await AnalyticsAdminService.next({
455
- type: _chunk4BZJ4LABjs.Modules.AnalyticsSession,
455
+ type: _chunk4ORLPEK7js.Modules.AnalyticsSession,
456
456
  endpoint: sessionsNextPage,
457
457
  next: sessionsNext
458
458
  });
@@ -512,7 +512,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
512
512
  error
513
513
  ]
514
514
  );
515
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
515
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
516
516
  }, "AnalyticsAdminProvider");
517
517
  var useAnalyticsAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
518
518
  const ctx = _react.useContext.call(void 0, AnalyticsAdminContext);
@@ -532,7 +532,7 @@ var _lucidereact = require('lucide-react');
532
532
  var ZERO = { visitors: 0, sessions: 0, pageViews: 0, pagesPerSession: 0, consentShare: 0 };
533
533
  function AnalyticsAdminTiles({ summary }) {
534
534
  const t = _nextintl.useTranslations.call(void 0, );
535
- const { decimal } = _chunkF7RNBGHSjs.useUsageFormatters.call(void 0, );
535
+ const { decimal } = _chunkKJMMBUOAjs.useUsageFormatters.call(void 0, );
536
536
  const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window2) => _nullishCoalesce(summary.find((r) => r.section === "total" && r.window === window2), () => ( ZERO)), "rowFor");
537
537
  const current = rowFor("current");
538
538
  const previous = rowFor("previous");
@@ -545,7 +545,7 @@ function AnalyticsAdminTiles({ summary }) {
545
545
  testId: "analytics-tile-visitors",
546
546
  label: t("analytics.admin.tiles.visitors"),
547
547
  value: decimal(current.visitors, 0),
548
- delta: _chunkF7RNBGHSjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
548
+ delta: _chunkKJMMBUOAjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
549
549
  previousLabel,
550
550
  decimal
551
551
  }
@@ -556,7 +556,7 @@ function AnalyticsAdminTiles({ summary }) {
556
556
  testId: "analytics-tile-sessions",
557
557
  label: t("analytics.admin.tiles.sessions"),
558
558
  value: decimal(current.sessions, 0),
559
- delta: _chunkF7RNBGHSjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
559
+ delta: _chunkKJMMBUOAjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
560
560
  previousLabel,
561
561
  decimal
562
562
  }
@@ -567,7 +567,7 @@ function AnalyticsAdminTiles({ summary }) {
567
567
  testId: "analytics-tile-page-views",
568
568
  label: t("analytics.admin.tiles.page_views"),
569
569
  value: decimal(current.pageViews, 0),
570
- delta: _chunkF7RNBGHSjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
570
+ delta: _chunkKJMMBUOAjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
571
571
  previousLabel,
572
572
  decimal
573
573
  }
@@ -580,7 +580,7 @@ function AnalyticsAdminTiles({ summary }) {
580
580
  testId: "analytics-tile-pages-per-session",
581
581
  label: t("analytics.admin.tiles.pages_per_session"),
582
582
  value: decimal(current.pagesPerSession, 1),
583
- delta: _chunkF7RNBGHSjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
583
+ delta: _chunkKJMMBUOAjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
584
584
  decimal
585
585
  }
586
586
  ),
@@ -605,8 +605,8 @@ function LeadTile({
605
605
  previousLabel,
606
606
  decimal
607
607
  }) {
608
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.CardContent, { className: "grid gap-1", children: [
609
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.MicroLabel, { children: label }),
608
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.CardContent, { className: "grid gap-1", children: [
609
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.MicroLabel, { children: label }),
610
610
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
611
611
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
612
612
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal }),
@@ -622,8 +622,8 @@ function SupportingTile({
622
622
  delta,
623
623
  decimal
624
624
  }) {
625
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.CardContent, { className: "grid gap-1", children: [
626
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.MicroLabel, { children: label }),
625
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.CardContent, { className: "grid gap-1", children: [
626
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.MicroLabel, { children: label }),
627
627
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
628
628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
629
629
  delta !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal })
@@ -646,7 +646,7 @@ function Delta({
646
646
  "span",
647
647
  {
648
648
  "data-testid": testId,
649
- className: _chunk4BZJ4LABjs.cn.call(void 0,
649
+ className: _chunk4ORLPEK7js.cn.call(void 0,
650
650
  "inline-flex items-center gap-0.5 text-xs tabular-nums",
651
651
  increased ? "text-success" : "text-destructive"
652
652
  ),
@@ -674,15 +674,15 @@ function AnalyticsBreakdownTable({ breakdowns }) {
674
674
  route: t("analytics.admin.dimensions.route"),
675
675
  landing: t("analytics.admin.dimensions.landing")
676
676
  };
677
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
678
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TabsList, { className: "max-md:w-full max-md:justify-start max-md:overflow-x-auto", children: ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
679
- ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
677
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TabsList, { className: "max-md:w-full max-md:justify-start max-md:overflow-x-auto", children: ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
679
+ ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
680
680
  ] });
681
681
  }
682
682
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsBreakdownTable, "AnalyticsBreakdownTable");
683
683
  function BreakdownRows({ rows }) {
684
684
  const t = _nextintl.useTranslations.call(void 0, );
685
- const { decimal } = _chunkF7RNBGHSjs.useUsageFormatters.call(void 0, );
685
+ const { decimal } = _chunkKJMMBUOAjs.useUsageFormatters.call(void 0, );
686
686
  const sortedRows = _react.useMemo.call(void 0, () => [...rows].sort((a, b) => b.visitors - a.visitors), [rows]);
687
687
  if (sortedRows.length === 0) {
688
688
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
@@ -691,18 +691,18 @@ function BreakdownRows({ rows }) {
691
691
  // The package's <Table> wraps itself in an `overflow-x-clip` container, which
692
692
  // would swallow the overflow before this scroller ever saw it — hence the
693
693
  // child override. Wide tables must scroll, never widen the page.
694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Table, { children: [
695
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { children: [
696
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
697
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
698
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
699
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
694
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Table, { children: [
695
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { children: [
696
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
697
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
698
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
699
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
700
700
  ] }) }),
701
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
702
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
703
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
704
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
705
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
701
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
702
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
703
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
704
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
705
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
706
706
  ] }, row.id)) })
707
707
  ] }) })
708
708
  );
@@ -717,48 +717,48 @@ var VISITOR_SUFFIX_LENGTH = 6;
717
717
  function AnalyticsSessionsTable({ rows, sessionPageUrl, onLoadMore, hasMore }) {
718
718
  const t = _nextintl.useTranslations.call(void 0, );
719
719
  const locale = _nextintl.useLocale.call(void 0, );
720
- const generateUrl = _chunkORU7KLCYjs.usePageUrlGenerator.call(void 0, );
721
- const { decimal } = _chunkF7RNBGHSjs.useUsageFormatters.call(void 0, );
720
+ const generateUrl = _chunkVDVIUDY5js.usePageUrlGenerator.call(void 0, );
721
+ const { decimal } = _chunkKJMMBUOAjs.useUsageFormatters.call(void 0, );
722
722
  const dateTime = _react.useMemo.call(void 0, () => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "short" }), [locale]);
723
723
  if (rows.length === 0) {
724
724
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
725
725
  }
726
726
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
727
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Table, { children: [
728
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { children: [
729
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
730
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
731
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
732
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
733
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
734
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
727
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Table, { children: [
728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { children: [
729
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
730
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
731
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
732
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
733
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
734
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
735
735
  ] }) }),
736
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableBody, { children: rows.map((row) => {
736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableBody, { children: rows.map((row) => {
737
737
  const source = [_nullishCoalesce(row.utmSource, () => ( row.referrerHost)), row.utmMedium].filter(Boolean).join(" / ");
738
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
739
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
740
- _chunkORU7KLCYjs.Link,
738
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
739
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
740
+ _chunkVDVIUDY5js.Link,
741
741
  {
742
742
  href: generateUrl({ page: sessionPageUrl, id: row.id }),
743
743
  "data-testid": `analytics-session-link-${row.id}`,
744
744
  children: dateTime.format(row.startedAt)
745
745
  }
746
746
  ) }),
747
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
747
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
748
748
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.user.name }),
749
749
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: row.user.email })
750
750
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
751
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
751
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
752
752
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: row.visitorId.slice(-VISITOR_SUFFIX_LENGTH) })
753
753
  ] }) }),
754
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs", children: source }),
755
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs", children: row.landingRoute }),
756
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
757
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
754
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs", children: source }),
755
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs", children: row.landingRoute }),
756
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
757
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
758
758
  ] }, row.id);
759
759
  }) })
760
760
  ] }) }),
761
- hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
761
+ hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
762
762
  ] });
763
763
  }
764
764
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsSessionsTable, "AnalyticsSessionsTable");
@@ -790,7 +790,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
790
790
  }, "inferGranularity");
791
791
  function AnalyticsTimelineChart({ rows, className }) {
792
792
  const t = _nextintl.useTranslations.call(void 0, );
793
- const { compact, bucketDate, decimal } = _chunkF7RNBGHSjs.useUsageFormatters.call(void 0, );
793
+ const { compact, bucketDate, decimal } = _chunkKJMMBUOAjs.useUsageFormatters.call(void 0, );
794
794
  const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
795
795
  const mode = resolvedTheme === "dark" ? "dark" : "light";
796
796
  const chartData = _react.useMemo.call(void 0, () => {
@@ -825,7 +825,7 @@ function AnalyticsTimelineChart({ rows, className }) {
825
825
  // rtl-ok: deliberate LTR island (chart)
826
826
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
827
827
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "analytics-timeline-data", children: JSON.stringify(chartData) }),
828
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.BarChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 8, bottom: 0, left: 0 }, children: [
828
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.ChartContainer, { config: chartConfig, className: "aspect-auto h-72 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _recharts.BarChart, { accessibilityLayer: true, data: chartData, margin: { top: 8, right: 8, bottom: 0, left: 0 }, children: [
829
829
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
830
830
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
831
831
  _recharts.XAxis,
@@ -849,10 +849,10 @@ function AnalyticsTimelineChart({ rows, className }) {
849
849
  }
850
850
  ),
851
851
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
852
- _chunkORU7KLCYjs.ChartTooltip,
852
+ _chunkVDVIUDY5js.ChartTooltip,
853
853
  {
854
854
  content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
855
- _chunkORU7KLCYjs.ChartTooltipContent,
855
+ _chunkVDVIUDY5js.ChartTooltipContent,
856
856
  {
857
857
  labelFormatter: (value) => bucketDate(String(value), granularity),
858
858
  valueFormatter: (value) => decimal(Number(value), 0)
@@ -860,13 +860,13 @@ function AnalyticsTimelineChart({ rows, className }) {
860
860
  )
861
861
  }
862
862
  ),
863
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.ChartLegendContent, {}) }),
863
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.ChartLegendContent, {}) }),
864
864
  SERIES.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
865
865
  _recharts.Bar,
866
866
  {
867
867
  dataKey: series,
868
868
  maxBarSize: 28,
869
- fill: _chunkF7RNBGHSjs.seriesColor.call(void 0, index, mode),
869
+ fill: _chunkKJMMBUOAjs.seriesColor.call(void 0, index, mode),
870
870
  stroke: "var(--background)",
871
871
  strokeWidth: 2,
872
872
  radius: [4, 4, 0, 0]
@@ -895,25 +895,25 @@ function AnalyticsAdminContainer() {
895
895
  error
896
896
  } = useAnalyticsAdmin();
897
897
  if (error) {
898
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
898
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
899
899
  }
900
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
901
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
900
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true });
901
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
902
902
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
903
903
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminTiles, { summary }),
904
904
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("analytics.admin.tiles.summarised_note") })
905
905
  ] }),
906
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Card, { children: [
907
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
908
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
906
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Card, { children: [
907
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
908
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
909
909
  ] }),
910
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Card, { children: [
911
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
912
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
910
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Card, { children: [
911
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
912
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
913
913
  ] }),
914
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Card, { children: [
915
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
916
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
914
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Card, { children: [
915
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
916
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
917
917
  AnalyticsSessionsTable,
918
918
  {
919
919
  rows: sessions,
@@ -936,7 +936,7 @@ var OTHER_SESSIONS_WINDOW_DAYS = 395;
936
936
  function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_URL2 }) {
937
937
  const t = _nextintl.useTranslations.call(void 0, );
938
938
  const locale = _nextintl.useLocale.call(void 0, );
939
- const generateUrl = _chunkORU7KLCYjs.usePageUrlGenerator.call(void 0, );
939
+ const generateUrl = _chunkVDVIUDY5js.usePageUrlGenerator.call(void 0, );
940
940
  const [session, setSession] = _react.useState.call(void 0, void 0);
941
941
  const [pageViews, setPageViews] = _react.useState.call(void 0, []);
942
942
  const [otherSessions, setOtherSessions] = _react.useState.call(void 0, []);
@@ -992,26 +992,26 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
992
992
  const title = { type: t("analytics.admin.panels.journey") };
993
993
  const renderBody = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
994
994
  if (error) {
995
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
995
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
996
996
  }
997
- if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
997
+ if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true });
998
998
  const source = [_nullishCoalesce(session.utmSource, () => ( session.referrerHost)), session.utmMedium, session.utmCampaign].filter(Boolean).join(" / ");
999
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
1000
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.CardContent, { className: "flex flex-col gap-3", children: [
999
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
1000
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.CardContent, { className: "flex flex-col gap-3", children: [
1001
1001
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
1002
1002
  session.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
1003
1003
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: session.user.name }),
1004
1004
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: session.user.email })
1005
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
1006
- session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
1005
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
1006
+ session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
1007
1007
  ] }),
1008
1008
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
1009
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
1010
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
1011
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
1012
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
1009
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
1010
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
1011
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
1012
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
1013
1013
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1014
- _chunkORU7KLCYjs.DetailField,
1014
+ _chunkVDVIUDY5js.DetailField,
1015
1015
  {
1016
1016
  label: t("analytics.admin.columns.visitor"),
1017
1017
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: session.visitorId })
@@ -1019,31 +1019,31 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
1019
1019
  )
1020
1020
  ] })
1021
1021
  ] }) }),
1022
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Card, { children: [
1023
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
1024
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: pageViews.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") }) : (
1022
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Card, { children: [
1023
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
1024
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: pageViews.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") }) : (
1025
1025
  // The package's <Table> wraps itself in an `overflow-x-clip`
1026
1026
  // container — hence the child override, so wide rows scroll.
1027
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Table, { children: [
1028
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { children: [
1029
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
1030
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
1031
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
1027
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "overflow-x-auto [&_[data-slot=table-container]]:overflow-x-visible", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Table, { children: [
1028
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { children: [
1029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
1030
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
1031
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
1032
1032
  ] }) }),
1033
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableBody, { children: pageViews.map((pageView, index) => {
1033
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableBody, { children: pageViews.map((pageView, index) => {
1034
1034
  const previous = index > 0 ? pageViews[index - 1] : void 0;
1035
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
1036
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
1037
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
1038
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.TableCell, { className: "text-xs", children: pageView.path })
1035
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
1036
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
1037
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
1038
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.TableCell, { className: "text-xs", children: pageView.path })
1039
1039
  ] }, pageView.id);
1040
1040
  }) })
1041
1041
  ] }) })
1042
1042
  ) })
1043
1043
  ] }),
1044
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkORU7KLCYjs.Card, { children: [
1045
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
1046
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1044
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVDVIUDY5js.Card, { children: [
1045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
1046
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1047
1047
  AnalyticsSessionsTable,
1048
1048
  {
1049
1049
  rows: otherSessions,
@@ -1055,7 +1055,7 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
1055
1055
  ] })
1056
1056
  ] }) });
1057
1057
  }, "renderBody");
1058
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkORU7KLCYjs.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
1058
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVDVIUDY5js.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
1059
1059
  }
1060
1060
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsJourneyContainer, "AnalyticsJourneyContainer");
1061
1061
  function unit(locale, name, value) {
@@ -1163,5 +1163,5 @@ var ANALYTICS_ADMIN_I18N_KEYS = [
1163
1163
 
1164
1164
 
1165
1165
 
1166
- exports.ANALYTICS_ADMIN_I18N_KEYS = ANALYTICS_ADMIN_I18N_KEYS; exports.ANALYTICS_DIMENSIONS = ANALYTICS_DIMENSIONS; exports.ANALYTICS_GRANULARITIES = ANALYTICS_GRANULARITIES; exports.ANALYTICS_SECTIONS = ANALYTICS_SECTIONS; exports.AnalyticsAdminContainer = AnalyticsAdminContainer; exports.AnalyticsAdminFilterBar = AnalyticsAdminFilterBar; exports.AnalyticsAdminPageContainer = AnalyticsAdminPageContainer; exports.AnalyticsAdminProvider = AnalyticsAdminProvider; exports.AnalyticsAdminService = AnalyticsAdminService; exports.AnalyticsAdminTiles = AnalyticsAdminTiles; exports.AnalyticsBreakdown = _chunk4BZJ4LABjs.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunk4BZJ4LABjs.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunk4BZJ4LABjs.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunk4BZJ4LABjs.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunk4BZJ4LABjs.AnalyticsSummary; exports.AnalyticsTimeline = _chunk4BZJ4LABjs.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunk4BZJ4LABjs.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
1166
+ exports.ANALYTICS_ADMIN_I18N_KEYS = ANALYTICS_ADMIN_I18N_KEYS; exports.ANALYTICS_DIMENSIONS = ANALYTICS_DIMENSIONS; exports.ANALYTICS_GRANULARITIES = ANALYTICS_GRANULARITIES; exports.ANALYTICS_SECTIONS = ANALYTICS_SECTIONS; exports.AnalyticsAdminContainer = AnalyticsAdminContainer; exports.AnalyticsAdminFilterBar = AnalyticsAdminFilterBar; exports.AnalyticsAdminPageContainer = AnalyticsAdminPageContainer; exports.AnalyticsAdminProvider = AnalyticsAdminProvider; exports.AnalyticsAdminService = AnalyticsAdminService; exports.AnalyticsAdminTiles = AnalyticsAdminTiles; exports.AnalyticsBreakdown = _chunk4ORLPEK7js.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunk4ORLPEK7js.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunk4ORLPEK7js.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunk4ORLPEK7js.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunk4ORLPEK7js.AnalyticsSummary; exports.AnalyticsTimeline = _chunk4ORLPEK7js.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunk4ORLPEK7js.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
1167
1167
  //# sourceMappingURL=index.js.map