@carlonicora/nextjs-jsonapi 3.28.1 → 4.0.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.
Files changed (214) hide show
  1. package/dist/{BlockNoteEditor-ATZVHS6X.js → BlockNoteEditor-BXMTGKDV.js} +21 -20
  2. package/dist/BlockNoteEditor-BXMTGKDV.js.map +1 -0
  3. package/dist/{BlockNoteEditor-CWW2D3SG.mjs → BlockNoteEditor-FGVQP35E.mjs} +9 -8
  4. package/dist/{BlockNoteEditor-CWW2D3SG.mjs.map → BlockNoteEditor-FGVQP35E.mjs.map} +1 -1
  5. package/dist/{BlockNoteViewer-KRTAFTUX.mjs → BlockNoteViewer-DQYT6IJW.mjs} +3 -3
  6. package/dist/{BlockNoteViewer-7BFNTN4E.js → BlockNoteViewer-YH7G66PS.js} +4 -4
  7. package/dist/{BlockNoteViewer-7BFNTN4E.js.map → BlockNoteViewer-YH7G66PS.js.map} +1 -1
  8. package/dist/{HandbookSectionInterface-DgYH--Ik.d.mts → HandbookSectionInterface-BYsmnPEz.d.mts} +1 -1
  9. package/dist/{HandbookSectionInterface-Ck1wZJ81.d.ts → HandbookSectionInterface-OePKPbqN.d.ts} +1 -1
  10. package/dist/{JsonApiRequest-UHOWNI3O.mjs → JsonApiRequest-MEP6AXDT.mjs} +2 -2
  11. package/dist/JsonApiRequest-OB6WL4LA.js +26 -0
  12. package/dist/{JsonApiRequest-TE5WD3WS.js.map → JsonApiRequest-OB6WL4LA.js.map} +1 -1
  13. package/dist/ServerSession-DFNNNkg7.d.ts +29 -0
  14. package/dist/ServerSession-DK1z0_Ql.d.mts +29 -0
  15. package/dist/{analytics.modules-CfczU12P.d.ts → analytics.modules-Bsacu6ik.d.ts} +1 -1
  16. package/dist/{analytics.modules-pzGwMASI.d.mts → analytics.modules-txdCLNG-.d.mts} +1 -1
  17. package/dist/billing/index.js +404 -402
  18. package/dist/billing/index.js.map +1 -1
  19. package/dist/billing/index.mjs +10 -8
  20. package/dist/billing/index.mjs.map +1 -1
  21. package/dist/{chunk-7B4E42R5.mjs → chunk-3CZ2GK5R.mjs} +33 -9
  22. package/dist/chunk-3CZ2GK5R.mjs.map +1 -0
  23. package/dist/{chunk-4Z45NYPR.js → chunk-5W5MN7JP.js} +14 -83
  24. package/dist/chunk-5W5MN7JP.js.map +1 -0
  25. package/dist/{chunk-CAKOFJZD.js → chunk-6OFANJTE.js} +195 -142
  26. package/dist/chunk-6OFANJTE.js.map +1 -0
  27. package/dist/{chunk-5TRFNKJS.js → chunk-6TUB7Y6T.js} +23 -25
  28. package/dist/chunk-6TUB7Y6T.js.map +1 -0
  29. package/dist/{chunk-37DMFVLN.mjs → chunk-7SCREMTX.mjs} +4 -3
  30. package/dist/{chunk-37DMFVLN.mjs.map → chunk-7SCREMTX.mjs.map} +1 -1
  31. package/dist/{chunk-Q6J2ICKO.mjs → chunk-ADZSH3MG.mjs} +3 -72
  32. package/dist/chunk-ADZSH3MG.mjs.map +1 -0
  33. package/dist/{chunk-E3I4MT53.mjs → chunk-AQZ3T4BR.mjs} +71 -18
  34. package/dist/chunk-AQZ3T4BR.mjs.map +1 -0
  35. package/dist/{chunk-SJLXPHK5.mjs → chunk-E2LENTUH.mjs} +22 -24
  36. package/dist/chunk-E2LENTUH.mjs.map +1 -0
  37. package/dist/chunk-EBEXWN3I.mjs +17 -0
  38. package/dist/chunk-EBEXWN3I.mjs.map +1 -0
  39. package/dist/chunk-G4JR3SFV.js +28 -0
  40. package/dist/chunk-G4JR3SFV.js.map +1 -0
  41. package/dist/chunk-IK65TDQH.js +15 -0
  42. package/dist/chunk-IK65TDQH.js.map +1 -0
  43. package/dist/{chunk-GHFMKH3M.js → chunk-JEQ34Z5E.js} +62 -38
  44. package/dist/chunk-JEQ34Z5E.js.map +1 -0
  45. package/dist/{chunk-YDPDJIJF.js → chunk-NFCXUAE6.js} +1330 -1184
  46. package/dist/chunk-NFCXUAE6.js.map +1 -0
  47. package/dist/chunk-OEOK6A3P.js +17 -0
  48. package/dist/chunk-OEOK6A3P.js.map +1 -0
  49. package/dist/chunk-PW42LRSL.mjs +28 -0
  50. package/dist/chunk-PW42LRSL.mjs.map +1 -0
  51. package/dist/{chunk-U65JPKO3.mjs → chunk-R6ZYB4VN.mjs} +2 -2
  52. package/dist/chunk-T7SAW3UW.mjs +15 -0
  53. package/dist/chunk-T7SAW3UW.mjs.map +1 -0
  54. package/dist/{chunk-GKDHYB2R.js → chunk-TWBZ2GSX.js} +3 -3
  55. package/dist/{chunk-GKDHYB2R.js.map → chunk-TWBZ2GSX.js.map} +1 -1
  56. package/dist/{chunk-26MQIJNB.js → chunk-WGVNJXZO.js} +4 -3
  57. package/dist/chunk-WGVNJXZO.js.map +1 -0
  58. package/dist/{chunk-2IMQ5IKA.mjs → chunk-WJC4SYRL.mjs} +2133 -1987
  59. package/dist/chunk-WJC4SYRL.mjs.map +1 -0
  60. package/dist/client/index.d.mts +3 -3
  61. package/dist/client/index.d.ts +3 -3
  62. package/dist/client/index.js +6 -5
  63. package/dist/client/index.js.map +1 -1
  64. package/dist/client/index.mjs +13 -12
  65. package/dist/components/index.d.mts +16 -6
  66. package/dist/components/index.d.ts +16 -6
  67. package/dist/components/index.js +8 -5
  68. package/dist/components/index.js.map +1 -1
  69. package/dist/components/index.mjs +9 -6
  70. package/dist/{config-3N1LSrcC.d.ts → config-B6UB7j69.d.ts} +1 -1
  71. package/dist/{config-BmufyEj6.d.mts → config-CEAq4Ozy.d.mts} +10 -1
  72. package/dist/{config-AVtuvfM1.d.ts → config-DydDHCfb.d.ts} +10 -1
  73. package/dist/{config-BSKTYDoh.d.mts → config-n-ZpPmOL.d.mts} +1 -1
  74. package/dist/contexts/index.d.mts +28 -4
  75. package/dist/contexts/index.d.ts +28 -4
  76. package/dist/contexts/index.js +10 -5
  77. package/dist/contexts/index.js.map +1 -1
  78. package/dist/contexts/index.mjs +9 -4
  79. package/dist/core/index.d.mts +6 -6
  80. package/dist/core/index.d.ts +6 -6
  81. package/dist/core/index.js +5 -5
  82. package/dist/core/index.js.map +1 -1
  83. package/dist/core/index.mjs +4 -4
  84. package/dist/features/analytics/index.d.mts +2 -2
  85. package/dist/features/analytics/index.d.ts +2 -2
  86. package/dist/features/analytics/index.js +124 -123
  87. package/dist/features/analytics/index.js.map +1 -1
  88. package/dist/features/analytics/index.mjs +6 -5
  89. package/dist/features/analytics/index.mjs.map +1 -1
  90. package/dist/features/analytics/server.d.mts +10 -2
  91. package/dist/features/analytics/server.d.ts +10 -2
  92. package/dist/features/analytics/server.js +8 -6
  93. package/dist/features/analytics/server.js.map +1 -1
  94. package/dist/features/analytics/server.mjs +6 -4
  95. package/dist/features/analytics/server.mjs.map +1 -1
  96. package/dist/features/help/index.d.mts +2 -2
  97. package/dist/features/help/index.d.ts +2 -2
  98. package/dist/features/help/index.js +39 -38
  99. package/dist/features/help/index.js.map +1 -1
  100. package/dist/features/help/index.mjs +5 -4
  101. package/dist/features/help/index.mjs.map +1 -1
  102. package/dist/features/tokenusage/index.d.mts +2 -2
  103. package/dist/features/tokenusage/index.d.ts +2 -2
  104. package/dist/features/tokenusage/index.js +127 -126
  105. package/dist/features/tokenusage/index.js.map +1 -1
  106. package/dist/features/tokenusage/index.mjs +6 -5
  107. package/dist/features/tokenusage/index.mjs.map +1 -1
  108. package/dist/index.d.mts +5 -5
  109. package/dist/index.d.ts +5 -5
  110. package/dist/index.js +8 -6
  111. package/dist/index.js.map +1 -1
  112. package/dist/index.mjs +11 -9
  113. package/dist/next-config/index.d.mts +43 -0
  114. package/dist/next-config/index.d.ts +43 -0
  115. package/dist/next-config/index.js +230 -0
  116. package/dist/next-config/index.js.map +1 -0
  117. package/dist/next-config/index.mjs +230 -0
  118. package/dist/next-config/index.mjs.map +1 -0
  119. package/dist/{request-FXF63NSQ.mjs → request-3IUMNVOS.mjs} +2 -2
  120. package/dist/request-LZBAOT3Y.js +8 -0
  121. package/dist/request-LZBAOT3Y.js.map +1 -0
  122. package/dist/server/cachedGet.d.mts +28 -0
  123. package/dist/server/cachedGet.d.ts +28 -0
  124. package/dist/server/cachedGet.js +60 -0
  125. package/dist/server/cachedGet.js.map +1 -0
  126. package/dist/server/cachedGet.mjs +60 -0
  127. package/dist/server/cachedGet.mjs.map +1 -0
  128. package/dist/server/cachedGet.stub.d.mts +7 -0
  129. package/dist/server/cachedGet.stub.d.ts +7 -0
  130. package/dist/server/cachedGet.stub.js +17 -0
  131. package/dist/server/cachedGet.stub.js.map +1 -0
  132. package/dist/server/cachedGet.stub.mjs +17 -0
  133. package/dist/server/cachedGet.stub.mjs.map +1 -0
  134. package/dist/server/index.d.mts +27 -25
  135. package/dist/server/index.d.ts +27 -25
  136. package/dist/server/index.js +13 -6
  137. package/dist/server/index.js.map +1 -1
  138. package/dist/server/index.mjs +15 -8
  139. package/dist/testing/index.js.map +1 -1
  140. package/dist/testing/index.mjs.map +1 -1
  141. package/dist/{types-D0uLYV2P.d.mts → types-Bq_UA8Lg.d.mts} +1 -1
  142. package/dist/{types-Cn153-mH.d.ts → types-bsm8Fp55.d.ts} +1 -1
  143. package/dist/{usePageUrlGenerator-B-3FRKBD.d.ts → usePageUrlGenerator-J_ECv-oQ.d.ts} +1 -1
  144. package/dist/{usePageUrlGenerator-CCJ_cdQy.d.mts → usePageUrlGenerator-uKBjAKqC.d.mts} +1 -1
  145. package/package.json +12 -1
  146. package/src/components/forms/__tests__/EditorSheet.test.tsx +25 -1
  147. package/src/components/forms/__tests__/useEditorDialog.test.ts +164 -1
  148. package/src/components/forms/useEditorDialog.ts +69 -2
  149. package/src/contexts/SessionContext.tsx +20 -0
  150. package/src/contexts/SocketContext.tsx +30 -3
  151. package/src/contexts/ViewportContext.tsx +17 -2
  152. package/src/contexts/__tests__/SessionContext.test.tsx +58 -0
  153. package/src/contexts/__tests__/SocketContext.session.test.tsx +77 -0
  154. package/src/contexts/index.ts +1 -0
  155. package/src/core/abstracts/AbstractService.ts +4 -6
  156. package/src/core/abstracts/__tests__/AbstractService.locale.test.ts +64 -0
  157. package/src/features/analytics/components/server/AnalyticsAdminPage.tsx +5 -1
  158. package/src/features/analytics/components/server/AnalyticsJourneyPage.tsx +5 -1
  159. package/src/features/company/hooks/useSubscriptionStatus.ts +6 -1
  160. package/src/features/notification/contexts/NotificationContext.tsx +5 -2
  161. package/src/features/notification/contexts/__tests__/NotificationContext.spec.tsx +22 -0
  162. package/src/features/user/contexts/CurrentUserContext.tsx +7 -5
  163. package/src/features/user/contexts/__tests__/CurrentUserContext.spec.tsx +63 -3
  164. package/src/hooks/__tests__/useSocket.render.test.ts +22 -0
  165. package/src/hooks/useSocket.ts +0 -1
  166. package/src/i18n/__tests__/config.test.ts +27 -0
  167. package/src/i18n/config.ts +17 -0
  168. package/src/i18n/index.ts +2 -0
  169. package/src/next-config/__tests__/createNextConfig.test.ts +268 -0
  170. package/src/next-config/csp.ts +128 -0
  171. package/src/next-config/headers.ts +61 -0
  172. package/src/next-config/index.ts +114 -0
  173. package/src/server/JsonApiServer.ts +3 -1
  174. package/src/server/ServerSession.ts +29 -1
  175. package/src/server/__tests__/JsonApiServer.test.ts +41 -0
  176. package/src/server/__tests__/ServerSession.read.test.ts +67 -0
  177. package/src/server/__tests__/cache.test.ts +48 -0
  178. package/src/server/__tests__/cachedGet.test.ts +125 -0
  179. package/src/server/__tests__/request.test.ts +96 -1
  180. package/src/server/cache.ts +21 -4
  181. package/src/server/cacheDigest.ts +10 -0
  182. package/src/server/cacheProfiles.ts +15 -0
  183. package/src/server/cachedGet.stub.ts +15 -0
  184. package/src/server/cachedGet.ts +80 -0
  185. package/src/server/request.ts +33 -32
  186. package/src/shadcnui/ui/__tests__/sidebar.menu-skeleton.test.tsx +50 -0
  187. package/src/shadcnui/ui/__tests__/sidebar.session.test.tsx +133 -0
  188. package/src/shadcnui/ui/sidebar.tsx +121 -18
  189. package/src/testing/matchers/jsonApiMatchers.ts +1 -0
  190. package/src/unified/JsonApiRequest.ts +4 -1
  191. package/src/unified/__tests__/JsonApiGet.cache.test.ts +51 -0
  192. package/src/utils/__tests__/map-thenable.test.ts +29 -0
  193. package/src/utils/__tests__/use-mobile.test.tsx +102 -1
  194. package/src/utils/map-thenable.ts +15 -0
  195. package/src/utils/use-mobile.tsx +13 -4
  196. package/dist/BlockNoteEditor-ATZVHS6X.js.map +0 -1
  197. package/dist/JsonApiRequest-TE5WD3WS.js +0 -26
  198. package/dist/chunk-26MQIJNB.js.map +0 -1
  199. package/dist/chunk-2IMQ5IKA.mjs.map +0 -1
  200. package/dist/chunk-4Z45NYPR.js.map +0 -1
  201. package/dist/chunk-5TRFNKJS.js.map +0 -1
  202. package/dist/chunk-7B4E42R5.mjs.map +0 -1
  203. package/dist/chunk-CAKOFJZD.js.map +0 -1
  204. package/dist/chunk-E3I4MT53.mjs.map +0 -1
  205. package/dist/chunk-GHFMKH3M.js.map +0 -1
  206. package/dist/chunk-Q6J2ICKO.mjs.map +0 -1
  207. package/dist/chunk-SJLXPHK5.mjs.map +0 -1
  208. package/dist/chunk-YDPDJIJF.js.map +0 -1
  209. package/dist/request-ZTX6I63X.js +0 -8
  210. package/dist/request-ZTX6I63X.js.map +0 -1
  211. /package/dist/{BlockNoteViewer-KRTAFTUX.mjs.map → BlockNoteViewer-DQYT6IJW.mjs.map} +0 -0
  212. /package/dist/{JsonApiRequest-UHOWNI3O.mjs.map → JsonApiRequest-MEP6AXDT.mjs.map} +0 -0
  213. /package/dist/{chunk-U65JPKO3.mjs.map → chunk-R6ZYB4VN.mjs.map} +0 -0
  214. /package/dist/{request-FXF63NSQ.mjs.map → request-3IUMNVOS.mjs.map} +0 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkGKDHYB2Rjs = require('../../chunk-GKDHYB2R.js');
6
+ var _chunkTWBZ2GSXjs = require('../../chunk-TWBZ2GSX.js');
7
7
 
8
8
 
9
9
 
@@ -33,8 +33,9 @@ var _chunkGKDHYB2Rjs = require('../../chunk-GKDHYB2R.js');
33
33
 
34
34
 
35
35
 
36
- var _chunkYDPDJIJFjs = require('../../chunk-YDPDJIJF.js');
37
- require('../../chunk-4Z45NYPR.js');
36
+ var _chunkNFCXUAE6js = require('../../chunk-NFCXUAE6.js');
37
+ require('../../chunk-5W5MN7JP.js');
38
+ require('../../chunk-G4JR3SFV.js');
38
39
 
39
40
 
40
41
 
@@ -47,10 +48,10 @@ require('../../chunk-4Z45NYPR.js');
47
48
 
48
49
 
49
50
 
50
- var _chunkCAKOFJZDjs = require('../../chunk-CAKOFJZD.js');
51
- require('../../chunk-26MQIJNB.js');
51
+ var _chunk6OFANJTEjs = require('../../chunk-6OFANJTE.js');
52
52
  require('../../chunk-LXKSUWAV.js');
53
53
  require('../../chunk-JTPRJNT2.js');
54
+ require('../../chunk-WGVNJXZO.js');
54
55
  require('../../chunk-3EPNHTMH.js');
55
56
 
56
57
 
@@ -62,7 +63,7 @@ var _react = require('react');
62
63
  var _uuid = require('uuid');
63
64
 
64
65
  // src/features/analytics/data/AnalyticsService.ts
65
- var AnalyticsService = class extends _chunkCAKOFJZDjs.AbstractService {
66
+ var AnalyticsService = class extends _chunk6OFANJTEjs.AbstractService {
66
67
  static {
67
68
  _chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsService");
68
69
  }
@@ -74,9 +75,9 @@ var AnalyticsService = class extends _chunkCAKOFJZDjs.AbstractService {
74
75
  static async track(input) {
75
76
  try {
76
77
  await this.callApi({
77
- type: _chunkCAKOFJZDjs.Modules.AnalyticsEvent,
78
+ type: _chunk6OFANJTEjs.Modules.AnalyticsEvent,
78
79
  method: "POST" /* POST */,
79
- endpoint: new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsEvent }).generate(),
80
+ endpoint: new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsEvent }).generate(),
80
81
  input,
81
82
  suppressGlobalError: true
82
83
  });
@@ -223,7 +224,7 @@ function AnalyticsAdminFilterBar({ section, granularity, onChange }) {
223
224
  };
224
225
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
225
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,
226
- _chunkYDPDJIJFjs.DateRangeSelector,
227
+ _chunkNFCXUAE6js.DateRangeSelector,
227
228
  {
228
229
  onDateChange: (range) => {
229
230
  if (!_optionalChain([range, 'optionalAccess', _ => _.from]) || !_optionalChain([range, 'optionalAccess', _2 => _2.to])) return;
@@ -267,13 +268,13 @@ function Segmented({
267
268
  children: options.map((option) => {
268
269
  const selected = option.value === value;
269
270
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
270
- _chunkYDPDJIJFjs.Button,
271
+ _chunkNFCXUAE6js.Button,
271
272
  {
272
273
  type: "button",
273
274
  size: "sm",
274
275
  variant: selected ? "default" : "ghost",
275
276
  "aria-pressed": selected,
276
- className: _chunkCAKOFJZDjs.cn.call(void 0, !selected && "text-muted-foreground"),
277
+ className: _chunk6OFANJTEjs.cn.call(void 0, !selected && "text-muted-foreground"),
277
278
  onClick: () => onSelect(option.value),
278
279
  children: option.label
279
280
  },
@@ -293,45 +294,45 @@ function withFilters(endpoint, filters) {
293
294
  return endpoint;
294
295
  }
295
296
  _chunk7QVYU63Ejs.__name.call(void 0, withFilters, "withFilters");
296
- var AnalyticsAdminService = class extends _chunkCAKOFJZDjs.AbstractService {
297
+ var AnalyticsAdminService = class extends _chunk6OFANJTEjs.AbstractService {
297
298
  static {
298
299
  _chunk7QVYU63Ejs.__name.call(void 0, this, "AnalyticsAdminService");
299
300
  }
300
301
  /** Headline tiles: one row per window (current, previous). */
301
302
  static async getSummary(filters) {
302
- const endpoint = withFilters(new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsSummary }), filters);
303
+ const endpoint = withFilters(new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsSummary }), filters);
303
304
  return this.callApi({
304
- type: _chunkCAKOFJZDjs.Modules.AnalyticsSummary,
305
+ type: _chunk6OFANJTEjs.Modules.AnalyticsSummary,
305
306
  method: "GET" /* GET */,
306
307
  endpoint: endpoint.generate()
307
308
  });
308
309
  }
309
310
  static async getTimeline(params) {
310
- const endpoint = withFilters(new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsTimeline }), params);
311
+ const endpoint = withFilters(new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsTimeline }), params);
311
312
  endpoint.addAdditionalParam("granularity", params.granularity);
312
313
  return this.callApi({
313
- type: _chunkCAKOFJZDjs.Modules.AnalyticsTimeline,
314
+ type: _chunk6OFANJTEjs.Modules.AnalyticsTimeline,
314
315
  method: "GET" /* GET */,
315
316
  endpoint: endpoint.generate()
316
317
  });
317
318
  }
318
319
  static async getBreakdown(params) {
319
- const endpoint = withFilters(new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsBreakdown }), params);
320
+ const endpoint = withFilters(new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsBreakdown }), params);
320
321
  endpoint.addAdditionalParam("dimension", params.dimension);
321
322
  if (params.limit !== void 0) endpoint.addAdditionalParam("limit", String(params.limit));
322
323
  return this.callApi({
323
- type: _chunkCAKOFJZDjs.Modules.AnalyticsBreakdown,
324
+ type: _chunk6OFANJTEjs.Modules.AnalyticsBreakdown,
324
325
  method: "GET" /* GET */,
325
326
  endpoint: endpoint.generate()
326
327
  });
327
328
  }
328
329
  /** Newest sessions first, cursor-paginated through `next`. */
329
330
  static async getSessions(params) {
330
- const endpoint = withFilters(new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsSession }), params);
331
+ const endpoint = withFilters(new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsSession }), params);
331
332
  if (params.visitorId) endpoint.addAdditionalParam("visitorId", params.visitorId);
332
333
  if (params.userId) endpoint.addAdditionalParam("userId", params.userId);
333
334
  return this.callApi({
334
- type: _chunkCAKOFJZDjs.Modules.AnalyticsSession,
335
+ type: _chunk6OFANJTEjs.Modules.AnalyticsSession,
335
336
  method: "GET" /* GET */,
336
337
  endpoint: endpoint.generate(),
337
338
  next: params.next
@@ -339,20 +340,20 @@ var AnalyticsAdminService = class extends _chunkCAKOFJZDjs.AbstractService {
339
340
  }
340
341
  static async getSession(params) {
341
342
  return this.callApi({
342
- type: _chunkCAKOFJZDjs.Modules.AnalyticsSession,
343
+ type: _chunk6OFANJTEjs.Modules.AnalyticsSession,
343
344
  method: "GET" /* GET */,
344
- endpoint: new (0, _chunkCAKOFJZDjs.EndpointCreator)({ endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsSession, id: params.id }).generate()
345
+ endpoint: new (0, _chunk6OFANJTEjs.EndpointCreator)({ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsSession, id: params.id }).generate()
345
346
  });
346
347
  }
347
348
  /** The journey: every page view of one session, oldest first. */
348
349
  static async getSessionPageViews(params) {
349
350
  return this.callApi({
350
- type: _chunkCAKOFJZDjs.Modules.AnalyticsPageView,
351
+ type: _chunk6OFANJTEjs.Modules.AnalyticsPageView,
351
352
  method: "GET" /* GET */,
352
- endpoint: new (0, _chunkCAKOFJZDjs.EndpointCreator)({
353
- endpoint: _chunkCAKOFJZDjs.Modules.AnalyticsSession,
353
+ endpoint: new (0, _chunk6OFANJTEjs.EndpointCreator)({
354
+ endpoint: _chunk6OFANJTEjs.Modules.AnalyticsSession,
354
355
  id: params.sessionId,
355
- childEndpoint: _chunkCAKOFJZDjs.Modules.AnalyticsPageView
356
+ childEndpoint: _chunk6OFANJTEjs.Modules.AnalyticsPageView
356
357
  }).generate()
357
358
  });
358
359
  }
@@ -387,7 +388,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
387
388
  sessionPageUrl = ANALYTICS_SESSION_PAGE_URL
388
389
  }) => {
389
390
  const t = _nextintl.useTranslations.call(void 0, );
390
- const generateUrl = _chunkYDPDJIJFjs.usePageUrlGenerator.call(void 0, );
391
+ const generateUrl = _chunkNFCXUAE6js.usePageUrlGenerator.call(void 0, );
391
392
  const [filters, setFilterState] = _react.useState.call(void 0, () => {
392
393
  const range = defaultRange();
393
394
  return {
@@ -451,7 +452,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
451
452
  const sessionsNext = {};
452
453
  try {
453
454
  const nextSessions = await AnalyticsAdminService.next({
454
- type: _chunkCAKOFJZDjs.Modules.AnalyticsSession,
455
+ type: _chunk6OFANJTEjs.Modules.AnalyticsSession,
455
456
  endpoint: sessionsNextPage,
456
457
  next: sessionsNext
457
458
  });
@@ -511,7 +512,7 @@ var AnalyticsAdminProvider = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0
511
512
  error
512
513
  ]
513
514
  );
514
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.SharedProvider, { value: { breadcrumbs: breadcrumb(), title: title() }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminContext.Provider, { value: contextValue, children }) });
515
516
  }, "AnalyticsAdminProvider");
516
517
  var useAnalyticsAdmin = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
517
518
  const ctx = _react.useContext.call(void 0, AnalyticsAdminContext);
@@ -531,7 +532,7 @@ var _lucidereact = require('lucide-react');
531
532
  var ZERO = { visitors: 0, sessions: 0, pageViews: 0, pagesPerSession: 0, consentShare: 0 };
532
533
  function AnalyticsAdminTiles({ summary }) {
533
534
  const t = _nextintl.useTranslations.call(void 0, );
534
- const { decimal } = _chunkGKDHYB2Rjs.useUsageFormatters.call(void 0, );
535
+ const { decimal } = _chunkTWBZ2GSXjs.useUsageFormatters.call(void 0, );
535
536
  const rowFor = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (window2) => _nullishCoalesce(summary.find((r) => r.section === "total" && r.window === window2), () => ( ZERO)), "rowFor");
536
537
  const current = rowFor("current");
537
538
  const previous = rowFor("previous");
@@ -544,7 +545,7 @@ function AnalyticsAdminTiles({ summary }) {
544
545
  testId: "analytics-tile-visitors",
545
546
  label: t("analytics.admin.tiles.visitors"),
546
547
  value: decimal(current.visitors, 0),
547
- delta: _chunkGKDHYB2Rjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
548
+ delta: _chunkTWBZ2GSXjs.percentageDelta.call(void 0, current.visitors, previous.visitors),
548
549
  previousLabel,
549
550
  decimal
550
551
  }
@@ -555,7 +556,7 @@ function AnalyticsAdminTiles({ summary }) {
555
556
  testId: "analytics-tile-sessions",
556
557
  label: t("analytics.admin.tiles.sessions"),
557
558
  value: decimal(current.sessions, 0),
558
- delta: _chunkGKDHYB2Rjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
559
+ delta: _chunkTWBZ2GSXjs.percentageDelta.call(void 0, current.sessions, previous.sessions),
559
560
  previousLabel,
560
561
  decimal
561
562
  }
@@ -566,7 +567,7 @@ function AnalyticsAdminTiles({ summary }) {
566
567
  testId: "analytics-tile-page-views",
567
568
  label: t("analytics.admin.tiles.page_views"),
568
569
  value: decimal(current.pageViews, 0),
569
- delta: _chunkGKDHYB2Rjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
570
+ delta: _chunkTWBZ2GSXjs.percentageDelta.call(void 0, current.pageViews, previous.pageViews),
570
571
  previousLabel,
571
572
  decimal
572
573
  }
@@ -579,7 +580,7 @@ function AnalyticsAdminTiles({ summary }) {
579
580
  testId: "analytics-tile-pages-per-session",
580
581
  label: t("analytics.admin.tiles.pages_per_session"),
581
582
  value: decimal(current.pagesPerSession, 1),
582
- delta: _chunkGKDHYB2Rjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
583
+ delta: _chunkTWBZ2GSXjs.percentageDelta.call(void 0, current.pagesPerSession, previous.pagesPerSession),
583
584
  decimal
584
585
  }
585
586
  ),
@@ -604,8 +605,8 @@ function LeadTile({
604
605
  previousLabel,
605
606
  decimal
606
607
  }) {
607
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.CardContent, { className: "grid gap-1", children: [
608
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.MicroLabel, { children: label }),
608
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Card, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.CardContent, { className: "grid gap-1", children: [
609
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.MicroLabel, { children: label }),
609
610
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-primary text-xl font-semibold tabular-nums", children: value }),
610
611
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-1", children: [
611
612
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal }),
@@ -621,8 +622,8 @@ function SupportingTile({
621
622
  delta,
622
623
  decimal
623
624
  }) {
624
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.CardContent, { className: "grid gap-1", children: [
625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.MicroLabel, { children: label }),
625
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Card, { "data-testid": testId, size: "sm", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.CardContent, { className: "grid gap-1", children: [
626
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.MicroLabel, { children: label }),
626
627
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
627
628
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm font-medium tabular-nums", children: value }),
628
629
  delta !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Delta, { testId: `${testId}-delta`, delta, decimal })
@@ -645,7 +646,7 @@ function Delta({
645
646
  "span",
646
647
  {
647
648
  "data-testid": testId,
648
- className: _chunkCAKOFJZDjs.cn.call(void 0,
649
+ className: _chunk6OFANJTEjs.cn.call(void 0,
649
650
  "inline-flex items-center gap-0.5 text-xs tabular-nums",
650
651
  increased ? "text-success" : "text-destructive"
651
652
  ),
@@ -673,15 +674,15 @@ function AnalyticsBreakdownTable({ breakdowns }) {
673
674
  route: t("analytics.admin.dimensions.route"),
674
675
  landing: t("analytics.admin.dimensions.landing")
675
676
  };
676
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
677
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkYDPDJIJFjs.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
678
- ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
677
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.Tabs, { defaultValue: ANALYTICS_DIMENSIONS[0], children: [
678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.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, _chunkNFCXUAE6js.TabsTrigger, { value: dimension, children: labels[dimension] }, dimension)) }),
679
+ ANALYTICS_DIMENSIONS.map((dimension) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TabsContent, { value: dimension, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreakdownRows, { rows: _nullishCoalesce(breakdowns[dimension], () => ( [])) }) }, dimension))
679
680
  ] });
680
681
  }
681
682
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsBreakdownTable, "AnalyticsBreakdownTable");
682
683
  function BreakdownRows({ rows }) {
683
684
  const t = _nextintl.useTranslations.call(void 0, );
684
- const { decimal } = _chunkGKDHYB2Rjs.useUsageFormatters.call(void 0, );
685
+ const { decimal } = _chunkTWBZ2GSXjs.useUsageFormatters.call(void 0, );
685
686
  const sortedRows = _react.useMemo.call(void 0, () => [...rows].sort((a, b) => b.visitors - a.visitors), [rows]);
686
687
  if (sortedRows.length === 0) {
687
688
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
@@ -690,18 +691,18 @@ function BreakdownRows({ rows }) {
690
691
  // The package's <Table> wraps itself in an `overflow-x-clip` container, which
691
692
  // would swallow the overflow before this scroller ever saw it — hence the
692
693
  // child override. Wide tables must scroll, never widen the page.
693
- /* @__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, _chunkYDPDJIJFjs.Table, { children: [
694
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { children: [
695
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
696
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
697
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
698
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.Table, { children: [
695
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { children: [
696
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.key") }),
697
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.visitors") }),
698
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.sessions") }),
699
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.page_views") })
699
700
  ] }) }),
700
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
701
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
702
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
703
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
704
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
701
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableBody, { children: sortedRows.map((row) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { "data-testid": `analytics-breakdown-row-${row.id}`, children: [
702
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-xs", children: row.key === OTHER_KEY ? t("analytics.admin.other") : row.key }),
703
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.visitors, 0) }),
704
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.sessions, 0) }),
705
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) })
705
706
  ] }, row.id)) })
706
707
  ] }) })
707
708
  );
@@ -716,48 +717,48 @@ var VISITOR_SUFFIX_LENGTH = 6;
716
717
  function AnalyticsSessionsTable({ rows, sessionPageUrl, onLoadMore, hasMore }) {
717
718
  const t = _nextintl.useTranslations.call(void 0, );
718
719
  const locale = _nextintl.useLocale.call(void 0, );
719
- const generateUrl = _chunkYDPDJIJFjs.usePageUrlGenerator.call(void 0, );
720
- const { decimal } = _chunkGKDHYB2Rjs.useUsageFormatters.call(void 0, );
720
+ const generateUrl = _chunkNFCXUAE6js.usePageUrlGenerator.call(void 0, );
721
+ const { decimal } = _chunkTWBZ2GSXjs.useUsageFormatters.call(void 0, );
721
722
  const dateTime = _react.useMemo.call(void 0, () => new Intl.DateTimeFormat(locale, { dateStyle: "short", timeStyle: "short" }), [locale]);
722
723
  if (rows.length === 0) {
723
724
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") });
724
725
  }
725
726
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
726
- /* @__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, _chunkYDPDJIJFjs.Table, { children: [
727
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { children: [
728
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
729
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
730
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
731
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
732
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
733
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.Table, { children: [
728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { children: [
729
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.started") }),
730
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.visitor") }),
731
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.source") }),
732
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.landing") }),
733
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.pages") }),
734
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.device") })
734
735
  ] }) }),
735
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableBody, { children: rows.map((row) => {
736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableBody, { children: rows.map((row) => {
736
737
  const source = [_nullishCoalesce(row.utmSource, () => ( row.referrerHost)), row.utmMedium].filter(Boolean).join(" / ");
737
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
738
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
739
- _chunkYDPDJIJFjs.Link,
738
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { "data-testid": `analytics-session-row-${row.id}`, children: [
739
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-xs tabular-nums", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
740
+ _chunkNFCXUAE6js.Link,
740
741
  {
741
742
  href: generateUrl({ page: sessionPageUrl, id: row.id }),
742
743
  "data-testid": `analytics-session-link-${row.id}`,
743
744
  children: dateTime.format(row.startedAt)
744
745
  }
745
746
  ) }),
746
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.TableCell, { className: "text-xs", children: row.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
747
748
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.user.name }),
748
749
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: row.user.email })
749
750
  ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2", children: [
750
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
751
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
751
752
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs tabular-nums", children: row.visitorId.slice(-VISITOR_SUFFIX_LENGTH) })
752
753
  ] }) }),
753
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs", children: source }),
754
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs", children: row.landingRoute }),
755
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
756
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
754
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-xs", children: source }),
755
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-xs", children: row.landingRoute }),
756
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-end text-xs tabular-nums", children: decimal(row.pageViews, 0) }),
757
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-muted-foreground text-xs", children: row.deviceType })
757
758
  ] }, row.id);
758
759
  }) })
759
760
  ] }) }),
760
- hasMore && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.Button, { type: "button", variant: "outline", size: "sm", onClick: onLoadMore, children: t("analytics.admin.load_more") }) })
761
762
  ] });
762
763
  }
763
764
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsSessionsTable, "AnalyticsSessionsTable");
@@ -789,7 +790,7 @@ var inferGranularity = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (buc
789
790
  }, "inferGranularity");
790
791
  function AnalyticsTimelineChart({ rows, className }) {
791
792
  const t = _nextintl.useTranslations.call(void 0, );
792
- const { compact, bucketDate, decimal } = _chunkGKDHYB2Rjs.useUsageFormatters.call(void 0, );
793
+ const { compact, bucketDate, decimal } = _chunkTWBZ2GSXjs.useUsageFormatters.call(void 0, );
793
794
  const { resolvedTheme } = _nextthemes.useTheme.call(void 0, );
794
795
  const mode = resolvedTheme === "dark" ? "dark" : "light";
795
796
  const chartData = _react.useMemo.call(void 0, () => {
@@ -824,7 +825,7 @@ function AnalyticsTimelineChart({ rows, className }) {
824
825
  // rtl-ok: deliberate LTR island (chart)
825
826
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className, dir: "ltr", children: [
826
827
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", "data-testid": "analytics-timeline-data", children: JSON.stringify(chartData) }),
827
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.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
829
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _recharts.CartesianGrid, { vertical: false }),
829
830
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
830
831
  _recharts.XAxis,
@@ -848,10 +849,10 @@ function AnalyticsTimelineChart({ rows, className }) {
848
849
  }
849
850
  ),
850
851
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
851
- _chunkYDPDJIJFjs.ChartTooltip,
852
+ _chunkNFCXUAE6js.ChartTooltip,
852
853
  {
853
854
  content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
854
- _chunkYDPDJIJFjs.ChartTooltipContent,
855
+ _chunkNFCXUAE6js.ChartTooltipContent,
855
856
  {
856
857
  labelFormatter: (value) => bucketDate(String(value), granularity),
857
858
  valueFormatter: (value) => decimal(Number(value), 0)
@@ -859,13 +860,13 @@ function AnalyticsTimelineChart({ rows, className }) {
859
860
  )
860
861
  }
861
862
  ),
862
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.ChartLegendContent, {}) }),
863
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.ChartLegend, { content: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.ChartLegendContent, {}) }),
863
864
  SERIES.map((series, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
864
865
  _recharts.Bar,
865
866
  {
866
867
  dataKey: series,
867
868
  maxBarSize: 28,
868
- fill: _chunkGKDHYB2Rjs.seriesColor.call(void 0, index, mode),
869
+ fill: _chunkTWBZ2GSXjs.seriesColor.call(void 0, index, mode),
869
870
  stroke: "var(--background)",
870
871
  strokeWidth: 2,
871
872
  radius: [4, 4, 0, 0]
@@ -894,25 +895,25 @@ function AnalyticsAdminContainer() {
894
895
  error
895
896
  } = useAnalyticsAdmin();
896
897
  if (error) {
897
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
898
899
  }
899
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
900
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.RoundPageContainer, { fullWidth: true, forceHeader: true });
901
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
901
902
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
902
903
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsAdminTiles, { summary }),
903
904
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-xs", children: t("analytics.admin.tiles.summarised_note") })
904
905
  ] }),
905
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Card, { children: [
906
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
907
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
906
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.Card, { children: [
907
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardTitle, { children: t("analytics.admin.panels.over_time") }) }),
908
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsTimelineChart, { rows: timeline }) })
908
909
  ] }),
909
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Card, { children: [
910
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
911
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
910
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.Card, { children: [
911
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardTitle, { children: t("analytics.admin.panels.breakdown") }) }),
912
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AnalyticsBreakdownTable, { breakdowns }) })
912
913
  ] }),
913
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Card, { children: [
914
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
915
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
914
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.Card, { children: [
915
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardTitle, { children: t("analytics.admin.panels.sessions") }) }),
916
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
916
917
  AnalyticsSessionsTable,
917
918
  {
918
919
  rows: sessions,
@@ -935,7 +936,7 @@ var OTHER_SESSIONS_WINDOW_DAYS = 395;
935
936
  function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_URL2 }) {
936
937
  const t = _nextintl.useTranslations.call(void 0, );
937
938
  const locale = _nextintl.useLocale.call(void 0, );
938
- const generateUrl = _chunkYDPDJIJFjs.usePageUrlGenerator.call(void 0, );
939
+ const generateUrl = _chunkNFCXUAE6js.usePageUrlGenerator.call(void 0, );
939
940
  const [session, setSession] = _react.useState.call(void 0, void 0);
940
941
  const [pageViews, setPageViews] = _react.useState.call(void 0, []);
941
942
  const [otherSessions, setOtherSessions] = _react.useState.call(void 0, []);
@@ -991,26 +992,26 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
991
992
  const title = { type: t("analytics.admin.panels.journey") };
992
993
  const renderBody = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, () => {
993
994
  if (error) {
994
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "p-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Card, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-destructive text-xs/relaxed", children: error }) }) }) }) });
995
996
  }
996
- if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.RoundPageContainer, { fullWidth: true, forceHeader: true });
997
+ if (isLoading || !session) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.RoundPageContainer, { fullWidth: true, forceHeader: true });
997
998
  const source = [_nullishCoalesce(session.utmSource, () => ( session.referrerHost)), session.utmMedium, session.utmCampaign].filter(Boolean).join(" / ");
998
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.RoundPageContainer, { fullWidth: true, forceHeader: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 p-4", children: [
999
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.CardContent, { className: "flex flex-col gap-3", children: [
999
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.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, _chunkNFCXUAE6js.Card, { "data-testid": "analytics-journey-attribution", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.CardContent, { className: "flex flex-col gap-3", children: [
1000
1001
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
1001
1002
  session.user ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-col", children: [
1002
1003
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm", children: session.user.name }),
1003
1004
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-muted-foreground text-xs", children: session.user.email })
1004
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
1005
- session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
1005
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Badge, { variant: "softGray", children: t("analytics.admin.anonymous") }),
1006
+ session.consented ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Badge, { variant: "softGreen", children: t("analytics.admin.consented") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.Badge, { variant: "softGray", children: t("analytics.admin.not_consented") })
1006
1007
  ] }),
1007
1008
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid gap-3 sm:grid-cols-3", children: [
1008
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
1009
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
1010
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
1011
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
1009
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.DetailField, { label: t("analytics.admin.columns.started"), value: dateTime.format(session.startedAt) }),
1010
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.DetailField, { label: t("analytics.admin.columns.source"), value: source }),
1011
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.DetailField, { label: t("analytics.admin.columns.landing"), value: session.landingRoute }),
1012
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.DetailField, { label: t("analytics.admin.columns.device"), value: session.deviceType }),
1012
1013
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1013
- _chunkYDPDJIJFjs.DetailField,
1014
+ _chunkNFCXUAE6js.DetailField,
1014
1015
  {
1015
1016
  label: t("analytics.admin.columns.visitor"),
1016
1017
  value: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "tabular-nums", children: session.visitorId })
@@ -1018,31 +1019,31 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
1018
1019
  )
1019
1020
  ] })
1020
1021
  ] }) }),
1021
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Card, { children: [
1022
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
1023
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.Card, { children: [
1023
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardTitle, { children: t("analytics.admin.columns.pages") }) }),
1024
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: pageViews.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: t("analytics.admin.no_data") }) : (
1024
1025
  // The package's <Table> wraps itself in an `overflow-x-clip`
1025
1026
  // container — hence the child override, so wide rows scroll.
1026
- /* @__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, _chunkYDPDJIJFjs.Table, { children: [
1027
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { children: [
1028
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
1029
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
1030
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.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, _chunkNFCXUAE6js.Table, { children: [
1028
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHeader, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { children: [
1029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.time") }),
1030
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-end text-xs font-medium", children: t("analytics.admin.columns.gap") }),
1031
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableHead, { className: "text-xs font-medium", children: t("analytics.admin.columns.path") })
1031
1032
  ] }) }),
1032
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableBody, { children: pageViews.map((pageView, index) => {
1033
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableBody, { children: pageViews.map((pageView, index) => {
1033
1034
  const previous = index > 0 ? pageViews[index - 1] : void 0;
1034
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
1035
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
1036
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-end text-xs tabular-nums", children: previous ? formatGap(pageView.createdAt.getTime() - previous.createdAt.getTime()) : "\u2014" }),
1037
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.TableCell, { className: "text-xs", children: pageView.path })
1035
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.TableRow, { "data-testid": `analytics-pageview-row-${pageView.id}`, children: [
1036
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.TableCell, { className: "text-xs tabular-nums", children: dateTime.format(pageView.createdAt) }),
1037
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.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, _chunkNFCXUAE6js.TableCell, { className: "text-xs", children: pageView.path })
1038
1039
  ] }, pageView.id);
1039
1040
  }) })
1040
1041
  ] }) })
1041
1042
  ) })
1042
1043
  ] }),
1043
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYDPDJIJFjs.Card, { children: [
1044
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
1045
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1044
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkNFCXUAE6js.Card, { children: [
1045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardTitle, { children: t("analytics.admin.panels.other_sessions") }) }),
1046
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.CardContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1046
1047
  AnalyticsSessionsTable,
1047
1048
  {
1048
1049
  rows: otherSessions,
@@ -1054,7 +1055,7 @@ function AnalyticsJourneyContainer({ sessionId, pageUrl = ANALYTICS_ADMIN_PAGE_U
1054
1055
  ] })
1055
1056
  ] }) });
1056
1057
  }, "renderBody");
1057
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDPDJIJFjs.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
1058
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFCXUAE6js.SharedProvider, { value: { breadcrumbs: breadcrumb, title }, children: renderBody() });
1058
1059
  }
1059
1060
  _chunk7QVYU63Ejs.__name.call(void 0, AnalyticsJourneyContainer, "AnalyticsJourneyContainer");
1060
1061
  function unit(locale, name, value) {
@@ -1162,5 +1163,5 @@ var ANALYTICS_ADMIN_I18N_KEYS = [
1162
1163
 
1163
1164
 
1164
1165
 
1165
- 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 = _chunkCAKOFJZDjs.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunkCAKOFJZDjs.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunkCAKOFJZDjs.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunkCAKOFJZDjs.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunkCAKOFJZDjs.AnalyticsSummary; exports.AnalyticsTimeline = _chunkCAKOFJZDjs.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunkCAKOFJZDjs.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 = _chunk6OFANJTEjs.AnalyticsBreakdown; exports.AnalyticsBreakdownTable = AnalyticsBreakdownTable; exports.AnalyticsEvent = _chunk6OFANJTEjs.AnalyticsEvent; exports.AnalyticsJourneyContainer = AnalyticsJourneyContainer; exports.AnalyticsJourneyPageContainer = AnalyticsJourneyPageContainer; exports.AnalyticsPageView = _chunk6OFANJTEjs.AnalyticsPageView; exports.AnalyticsService = AnalyticsService; exports.AnalyticsSession = _chunk6OFANJTEjs.AnalyticsSession; exports.AnalyticsSessionsTable = AnalyticsSessionsTable; exports.AnalyticsSummary = _chunk6OFANJTEjs.AnalyticsSummary; exports.AnalyticsTimeline = _chunk6OFANJTEjs.AnalyticsTimeline; exports.AnalyticsTimelineChart = AnalyticsTimelineChart; exports.AnalyticsTracker = AnalyticsTracker; exports.analyticsModules = _chunk6OFANJTEjs.analyticsModules; exports.useAnalyticsAdmin = useAnalyticsAdmin;
1166
1167
  //# sourceMappingURL=index.js.map