@carlonicora/nextjs-jsonapi 3.24.2 → 3.25.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 (178) hide show
  1. package/dist/{AssistantMessageInterface-1Kbz8RVs.d.ts → AssistantMessageInterface-CubxuBIJ.d.ts} +1 -1
  2. package/dist/{AssistantMessageInterface-CoxJyuFM.d.mts → AssistantMessageInterface-sHjI2zPN.d.mts} +1 -1
  3. package/dist/{BlockNoteEditor-65HR6ULV.mjs → BlockNoteEditor-46O3JC4Z.mjs} +5 -5
  4. package/dist/{BlockNoteEditor-35D4R7HJ.js → BlockNoteEditor-HKS6AXDA.js} +20 -20
  5. package/dist/{BlockNoteEditor-35D4R7HJ.js.map → BlockNoteEditor-HKS6AXDA.js.map} +1 -1
  6. package/dist/{BlockNoteViewer-QDXDVYEM.js → BlockNoteViewer-7BFNTN4E.js} +4 -4
  7. package/dist/{BlockNoteViewer-QDXDVYEM.js.map → BlockNoteViewer-7BFNTN4E.js.map} +1 -1
  8. package/dist/{BlockNoteViewer-KDKGUIG5.mjs → BlockNoteViewer-KRTAFTUX.mjs} +3 -3
  9. package/dist/{HandbookSectionInterface-OePKPbqN.d.ts → HandbookSectionInterface-Ck1wZJ81.d.ts} +1 -1
  10. package/dist/{HandbookSectionInterface-BYsmnPEz.d.mts → HandbookSectionInterface-DgYH--Ik.d.mts} +1 -1
  11. package/dist/JsonApiRequest-TE5WD3WS.js +26 -0
  12. package/dist/{JsonApiRequest-G625QAH5.js.map → JsonApiRequest-TE5WD3WS.js.map} +1 -1
  13. package/dist/{JsonApiRequest-RRMNV7YE.mjs → JsonApiRequest-UHOWNI3O.mjs} +2 -2
  14. package/dist/analytics.modules-CfczU12P.d.ts +25 -0
  15. package/dist/analytics.modules-pzGwMASI.d.mts +25 -0
  16. package/dist/{auth.interface-BC1jp_ni.d.ts → auth.interface-BzI4onI_.d.ts} +1 -1
  17. package/dist/{auth.interface-dR2-6gPM.d.mts → auth.interface-Df4vXbNz.d.mts} +1 -1
  18. package/dist/billing/index.js +402 -402
  19. package/dist/billing/index.mjs +4 -4
  20. package/dist/{chunk-YXRVPEEJ.js → chunk-26MQIJNB.js} +1 -1
  21. package/dist/{chunk-YXRVPEEJ.js.map → chunk-26MQIJNB.js.map} +1 -1
  22. package/dist/{chunk-T76WLDE5.mjs → chunk-37DMFVLN.mjs} +1 -1
  23. package/dist/chunk-4Z2UONN2.mjs +110 -0
  24. package/dist/chunk-4Z2UONN2.mjs.map +1 -0
  25. package/dist/{chunk-3AR4KA5D.js → chunk-4Z45NYPR.js} +13 -13
  26. package/dist/{chunk-3AR4KA5D.js.map → chunk-4Z45NYPR.js.map} +1 -1
  27. package/dist/chunk-7B4E42R5.mjs +280 -0
  28. package/dist/chunk-7B4E42R5.mjs.map +1 -0
  29. package/dist/{chunk-U7QVISQS.js → chunk-CAKOFJZD.js} +450 -40
  30. package/dist/chunk-CAKOFJZD.js.map +1 -0
  31. package/dist/{chunk-IBVKPLHT.mjs → chunk-E3I4MT53.mjs} +422 -12
  32. package/dist/chunk-E3I4MT53.mjs.map +1 -0
  33. package/dist/chunk-GHFMKH3M.js +280 -0
  34. package/dist/chunk-GHFMKH3M.js.map +1 -0
  35. package/dist/chunk-KLV6RLDE.js +110 -0
  36. package/dist/chunk-KLV6RLDE.js.map +1 -0
  37. package/dist/{chunk-ZJI5ZZW5.mjs → chunk-Q6J2ICKO.mjs} +3 -3
  38. package/dist/{chunk-4O7R2Z2O.mjs → chunk-XDYILJ2S.mjs} +1749 -1737
  39. package/dist/{chunk-4O7R2Z2O.mjs.map → chunk-XDYILJ2S.mjs.map} +1 -1
  40. package/dist/{chunk-2XCUAHQT.js → chunk-Y3OKEQGL.js} +1126 -1114
  41. package/dist/chunk-Y3OKEQGL.js.map +1 -0
  42. package/dist/client/index.d.mts +6 -5
  43. package/dist/client/index.d.ts +6 -5
  44. package/dist/client/index.js +5 -5
  45. package/dist/client/index.js.map +1 -1
  46. package/dist/client/index.mjs +4 -4
  47. package/dist/components/index.d.mts +17 -7
  48. package/dist/components/index.d.ts +17 -7
  49. package/dist/components/index.js +5 -5
  50. package/dist/components/index.mjs +4 -4
  51. package/dist/{config-B6UB7j69.d.ts → config-3N1LSrcC.d.ts} +1 -1
  52. package/dist/{config-Cd5xTEfZ.d.ts → config-AVtuvfM1.d.ts} +1 -1
  53. package/dist/{config-n-ZpPmOL.d.mts → config-BSKTYDoh.d.mts} +1 -1
  54. package/dist/{config-YyhFHxkU.d.mts → config-BmufyEj6.d.mts} +1 -1
  55. package/dist/contexts/index.d.mts +5 -4
  56. package/dist/contexts/index.d.ts +5 -4
  57. package/dist/contexts/index.js +5 -5
  58. package/dist/contexts/index.mjs +4 -4
  59. package/dist/core/index.d.mts +31 -14
  60. package/dist/core/index.d.ts +31 -14
  61. package/dist/core/index.js +9 -5
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/core/index.mjs +8 -4
  64. package/dist/features/analytics/index.css +30 -0
  65. package/dist/features/analytics/index.css.map +1 -0
  66. package/dist/features/analytics/index.d.mts +508 -0
  67. package/dist/features/analytics/index.d.ts +508 -0
  68. package/dist/features/analytics/index.js +1166 -0
  69. package/dist/features/analytics/index.js.map +1 -0
  70. package/dist/features/analytics/index.mjs +1166 -0
  71. package/dist/features/analytics/index.mjs.map +1 -0
  72. package/dist/features/analytics/server.d.mts +28 -0
  73. package/dist/features/analytics/server.d.ts +28 -0
  74. package/dist/features/analytics/server.js +41 -0
  75. package/dist/features/analytics/server.js.map +1 -0
  76. package/dist/features/analytics/server.mjs +41 -0
  77. package/dist/features/analytics/server.mjs.map +1 -0
  78. package/dist/features/help/index.d.mts +2 -2
  79. package/dist/features/help/index.d.ts +2 -2
  80. package/dist/features/help/index.js +38 -38
  81. package/dist/features/help/index.mjs +4 -4
  82. package/dist/features/tokenusage/index.d.mts +2 -2
  83. package/dist/features/tokenusage/index.d.ts +2 -2
  84. package/dist/features/tokenusage/index.js +139 -221
  85. package/dist/features/tokenusage/index.js.map +1 -1
  86. package/dist/features/tokenusage/index.mjs +26 -108
  87. package/dist/features/tokenusage/index.mjs.map +1 -1
  88. package/dist/index.d.mts +11 -9
  89. package/dist/index.d.ts +11 -9
  90. package/dist/index.js +10 -6
  91. package/dist/index.js.map +1 -1
  92. package/dist/index.mjs +9 -5
  93. package/dist/notification.interface-BNCvnVCW.d.ts +34 -0
  94. package/dist/notification.interface-P_pNfzZQ.d.mts +34 -0
  95. package/dist/{s3.service-Bqr-fQmi.d.ts → s3.service-CbUa6a-8.d.ts} +3 -2
  96. package/dist/{s3.service-Buiy1ncj.d.mts → s3.service-DAp8FbuG.d.mts} +3 -2
  97. package/dist/server/index.d.mts +5 -4
  98. package/dist/server/index.d.ts +5 -4
  99. package/dist/server/index.js +39 -279
  100. package/dist/server/index.js.map +1 -1
  101. package/dist/server/index.mjs +20 -260
  102. package/dist/server/index.mjs.map +1 -1
  103. package/dist/{types-bsm8Fp55.d.ts → types-Cn153-mH.d.ts} +1 -1
  104. package/dist/{types-Bq_UA8Lg.d.mts → types-D0uLYV2P.d.mts} +1 -1
  105. package/dist/{usePageUrlGenerator-J_ECv-oQ.d.ts → usePageUrlGenerator-B-3FRKBD.d.ts} +1 -1
  106. package/dist/{usePageUrlGenerator-uKBjAKqC.d.mts → usePageUrlGenerator-CCJ_cdQy.d.mts} +1 -1
  107. package/dist/{useSocket-BcH7l7B8.d.mts → useSocket-B9gTbuCj.d.mts} +1 -1
  108. package/dist/{useSocket-DCZd_eJk.d.ts → useSocket-BHVIyigI.d.ts} +1 -1
  109. package/dist/{notification.interface-MnRt1Tjm.d.mts → user.interface-CSaGWFbg.d.mts} +1 -31
  110. package/dist/{notification.interface-CjzV_KII.d.ts → user.interface-CrmwJLYW.d.ts} +1 -31
  111. package/package.json +11 -1
  112. package/src/client/index.ts +2 -0
  113. package/src/core/index.ts +4 -0
  114. package/src/core/registry/ModuleRegistry.ts +7 -0
  115. package/src/features/__tests__/i18n-keys.contract.spec.ts +1 -0
  116. package/src/features/analytics/__tests__/server-entry.spec.tsx +64 -0
  117. package/src/features/analytics/analytics.modules.ts +30 -0
  118. package/src/features/analytics/components/AnalyticsAdminContainer.tsx +97 -0
  119. package/src/features/analytics/components/AnalyticsAdminFilterBar.tsx +117 -0
  120. package/src/features/analytics/components/AnalyticsAdminPageContainer.tsx +25 -0
  121. package/src/features/analytics/components/AnalyticsAdminTiles.tsx +191 -0
  122. package/src/features/analytics/components/AnalyticsBreakdownTable.tsx +104 -0
  123. package/src/features/analytics/components/AnalyticsJourneyContainer.tsx +246 -0
  124. package/src/features/analytics/components/AnalyticsJourneyPageContainer.tsx +14 -0
  125. package/src/features/analytics/components/AnalyticsSessionsTable.tsx +107 -0
  126. package/src/features/analytics/components/AnalyticsTimelineChart.tsx +175 -0
  127. package/src/features/analytics/components/AnalyticsTracker.tsx +112 -0
  128. package/src/features/analytics/components/__tests__/AnalyticsAdminTiles.spec.tsx +39 -0
  129. package/src/features/analytics/components/__tests__/AnalyticsBreakdownTable.spec.tsx +39 -0
  130. package/src/features/analytics/components/__tests__/AnalyticsJourneyContainer.spec.tsx +124 -0
  131. package/src/features/analytics/components/__tests__/AnalyticsPageContainers.spec.tsx +117 -0
  132. package/src/features/analytics/components/__tests__/AnalyticsSessionsTable.spec.tsx +121 -0
  133. package/src/features/analytics/components/__tests__/AnalyticsTimelineChart.spec.tsx +35 -0
  134. package/src/features/analytics/components/__tests__/AnalyticsTracker.spec.tsx +248 -0
  135. package/src/features/analytics/components/server/AnalyticsAdminPage.tsx +28 -0
  136. package/src/features/analytics/components/server/AnalyticsJourneyPage.tsx +25 -0
  137. package/src/features/analytics/contexts/AnalyticsAdminContext.tsx +273 -0
  138. package/src/features/analytics/contexts/__tests__/AnalyticsAdminContext.spec.tsx +140 -0
  139. package/src/features/analytics/data/AnalyticsAdminService.ts +91 -0
  140. package/src/features/analytics/data/AnalyticsService.ts +23 -0
  141. package/src/features/analytics/data/__tests__/AnalyticsAdminService.spec.ts +117 -0
  142. package/src/features/analytics/data/__tests__/AnalyticsService.spec.ts +56 -0
  143. package/src/features/analytics/data/__tests__/models.spec.ts +300 -0
  144. package/src/features/analytics/data/analytics-breakdown.interface.ts +9 -0
  145. package/src/features/analytics/data/analytics-breakdown.ts +65 -0
  146. package/src/features/analytics/data/analytics-event.interface.ts +7 -0
  147. package/src/features/analytics/data/analytics-event.ts +63 -0
  148. package/src/features/analytics/data/analytics-page-view.interface.ts +9 -0
  149. package/src/features/analytics/data/analytics-page-view.ts +57 -0
  150. package/src/features/analytics/data/analytics-session.interface.ts +23 -0
  151. package/src/features/analytics/data/analytics-session.ts +144 -0
  152. package/src/features/analytics/data/analytics-summary.interface.ts +11 -0
  153. package/src/features/analytics/data/analytics-summary.ts +79 -0
  154. package/src/features/analytics/data/analytics-timeline.interface.ts +10 -0
  155. package/src/features/analytics/data/analytics-timeline.ts +67 -0
  156. package/src/features/analytics/data/analytics.types.ts +97 -0
  157. package/src/features/analytics/data/index.ts +15 -0
  158. package/src/features/analytics/i18n-keys.ts +76 -0
  159. package/src/features/analytics/index.ts +31 -0
  160. package/src/features/analytics/lib/__tests__/utm.spec.ts +20 -0
  161. package/src/features/analytics/lib/__tests__/visitorCookie.spec.ts +63 -0
  162. package/src/features/analytics/lib/utm.ts +29 -0
  163. package/src/features/analytics/lib/visitorCookie.ts +32 -0
  164. package/src/features/analytics/server-entry.ts +8 -0
  165. package/src/features/waitlist/components/lists/WaitlistList.tsx +68 -121
  166. package/src/features/waitlist/data/WaitlistService.ts +2 -2
  167. package/src/features/waitlist/data/index.ts +1 -0
  168. package/src/features/waitlist/data/waitlist.fields.ts +8 -0
  169. package/src/features/waitlist/hooks/useWaitlistTableStructure.tsx +69 -30
  170. package/dist/JsonApiRequest-G625QAH5.js +0 -26
  171. package/dist/chunk-2XCUAHQT.js.map +0 -1
  172. package/dist/chunk-IBVKPLHT.mjs.map +0 -1
  173. package/dist/chunk-U7QVISQS.js.map +0 -1
  174. /package/dist/{BlockNoteEditor-65HR6ULV.mjs.map → BlockNoteEditor-46O3JC4Z.mjs.map} +0 -0
  175. /package/dist/{BlockNoteViewer-KDKGUIG5.mjs.map → BlockNoteViewer-KRTAFTUX.mjs.map} +0 -0
  176. /package/dist/{JsonApiRequest-RRMNV7YE.mjs.map → JsonApiRequest-UHOWNI3O.mjs.map} +0 -0
  177. /package/dist/{chunk-T76WLDE5.mjs.map → chunk-37DMFVLN.mjs.map} +0 -0
  178. /package/dist/{chunk-ZJI5ZZW5.mjs.map → chunk-Q6J2ICKO.mjs.map} +0 -0
@@ -23,16 +23,16 @@ var _chunkYBZVWLPHjs = require('../../chunk-YBZVWLPH.js');
23
23
 
24
24
 
25
25
 
26
- var _chunk2XCUAHQTjs = require('../../chunk-2XCUAHQT.js');
26
+ var _chunkY3OKEQGLjs = require('../../chunk-Y3OKEQGL.js');
27
27
 
28
28
 
29
- var _chunk3AR4KA5Djs = require('../../chunk-3AR4KA5D.js');
29
+ var _chunk4Z45NYPRjs = require('../../chunk-4Z45NYPR.js');
30
30
 
31
31
 
32
- var _chunkU7QVISQSjs = require('../../chunk-U7QVISQS.js');
32
+ var _chunkCAKOFJZDjs = require('../../chunk-CAKOFJZD.js');
33
+ require('../../chunk-26MQIJNB.js');
33
34
  require('../../chunk-LXKSUWAV.js');
34
35
  require('../../chunk-JTPRJNT2.js');
35
- require('../../chunk-YXRVPEEJ.js');
36
36
  require('../../chunk-3EPNHTMH.js');
37
37
 
38
38
 
@@ -43,7 +43,7 @@ var _react = require('react');
43
43
  var _jsxruntime = require('react/jsx-runtime');
44
44
  var HelpContext = _react.createContext.call(void 0, null);
45
45
  function HelpProvider({ children }) {
46
- const cfg = _chunk3AR4KA5Djs._getStaticHelpContent.call(void 0, );
46
+ const cfg = _chunk4Z45NYPRjs._getStaticHelpContent.call(void 0, );
47
47
  if (!cfg) {
48
48
  throw new Error(
49
49
  "Help content not configured \u2014 call configureJsonApi({ helpContent: {...} }) before importing help components."
@@ -75,29 +75,29 @@ var _lucidereact = require('lucide-react');
75
75
 
76
76
 
77
77
  function HelpAssistantSheet({ open, onOpenChange }) {
78
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
79
- _chunk2XCUAHQTjs.SheetContent,
78
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
79
+ _chunkY3OKEQGLjs.SheetContent,
80
80
  {
81
81
  side: "end",
82
82
  className: "flex w-full flex-col data-[side=right]:sm:max-w-2xl data-[side=right]:lg:max-w-3xl data-[side=left]:sm:max-w-2xl data-[side=left]:lg:max-w-3xl",
83
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.AssistantProvider, { manageUrl: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAssistantSheetBody, {}) })
83
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.AssistantProvider, { manageUrl: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAssistantSheetBody, {}) })
84
84
  }
85
85
  ) });
86
86
  }
87
87
  _chunk7QVYU63Ejs.__name.call(void 0, HelpAssistantSheet, "HelpAssistantSheet");
88
88
  function HelpAssistantSheetBody() {
89
89
  const t = _nextintl.useTranslations.call(void 0, );
90
- const ctx = _chunk2XCUAHQTjs.useAssistantContext.call(void 0, );
90
+ const ctx = _chunkY3OKEQGLjs.useAssistantContext.call(void 0, );
91
91
  const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
92
92
  const send = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (content) => ctx.sendMessage(content, { howToMode: true }), "send");
93
93
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
94
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.SheetHeader, { children: [
95
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.SheetTitle, { children: t("help.askAi.sheet.title") }),
96
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
94
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.SheetHeader, { children: [
95
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.SheetTitle, { children: t("help.askAi.sheet.title") }),
96
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
97
97
  ] }),
98
- !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
98
+ !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
99
99
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
100
- _chunk2XCUAHQTjs.AssistantThread,
100
+ _chunkY3OKEQGLjs.AssistantThread,
101
101
  {
102
102
  messages: ctx.messages,
103
103
  sending: ctx.sending,
@@ -107,7 +107,7 @@ function HelpAssistantSheetBody() {
107
107
  onRetry: ctx.retrySend
108
108
  }
109
109
  ),
110
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.AssistantComposer, { onSend: send, disabled: ctx.sending })
110
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.AssistantComposer, { onSend: send, disabled: ctx.sending })
111
111
  ] })
112
112
  ] });
113
113
  }
@@ -117,20 +117,20 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpAssistantSheetBody, "HelpAssistantSheet
117
117
 
118
118
  function HelpAskAi() {
119
119
  const t = _nextintl.useTranslations.call(void 0, );
120
- const { currentUser } = _chunk2XCUAHQTjs.useCurrentUserContext.call(void 0, );
120
+ const { currentUser } = _chunkY3OKEQGLjs.useCurrentUserContext.call(void 0, );
121
121
  const [open, setOpen] = _react.useState.call(void 0, false);
122
122
  const disabled = !currentUser;
123
123
  if (disabled) {
124
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.Tooltip, { children: [
125
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.Button, { variant: "outline", size: "sm", disabled: true }), children: [
124
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.Tooltip, { children: [
125
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.Button, { variant: "outline", size: "sm", disabled: true }), children: [
126
126
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SparklesIcon, { className: "h-4 w-4" }),
127
127
  t("help.askAi.button")
128
128
  ] }),
129
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.TooltipContent, { children: t("help.askAi.loginTooltip") })
129
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.TooltipContent, { children: t("help.askAi.loginTooltip") })
130
130
  ] });
131
131
  }
132
132
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
133
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
133
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
134
134
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SparklesIcon, { className: "h-4 w-4" }),
135
135
  t("help.askAi.button")
136
136
  ] }),
@@ -143,7 +143,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpAskAi, "HelpAskAi");
143
143
 
144
144
  function HelpHeader() {
145
145
  const t = _nextintl.useTranslations.call(void 0, );
146
- const { currentUser } = _chunk2XCUAHQTjs.useCurrentUserContext.call(void 0, );
146
+ const { currentUser } = _chunkY3OKEQGLjs.useCurrentUserContext.call(void 0, );
147
147
  const { brand } = useHelp();
148
148
  const logo = _optionalChain([brand, 'optionalAccess', _ => _.logo]);
149
149
  const label = _nullishCoalesce(_optionalChain([brand, 'optionalAccess', _2 => _2.label]), () => ( "Help"));
@@ -159,7 +159,7 @@ function HelpHeader() {
159
159
  ] }),
160
160
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
161
161
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAskAi, {}),
162
- currentUser ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: appHref, className: _chunk2XCUAHQTjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunk2XCUAHQTjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.login") })
162
+ currentUser ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: appHref, className: _chunkY3OKEQGLjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunkY3OKEQGLjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.login") })
163
163
  ] })
164
164
  ] });
165
165
  }
@@ -201,12 +201,12 @@ _chunk7QVYU63Ejs.__name.call(void 0, useHelpFilter, "useHelpFilter");
201
201
 
202
202
  function HelpSideNav() {
203
203
  const t = _nextintl.useTranslations.call(void 0, );
204
- const generateUrl = _chunk2XCUAHQTjs.usePageUrlGenerator.call(void 0, );
204
+ const generateUrl = _chunkY3OKEQGLjs.usePageUrlGenerator.call(void 0, );
205
205
  const pathname = _navigation.usePathname.call(void 0, );
206
206
  const [articles, setArticles] = _react.useState.call(void 0, []);
207
207
  _react.useEffect.call(void 0, () => {
208
208
  let active = true;
209
- _chunkU7QVISQSjs.HowToService.findPublished().then((list) => active && setArticles(list)).catch(() => active && setArticles([]));
209
+ _chunkCAKOFJZDjs.HowToService.findPublished().then((list) => active && setArticles(list)).catch(() => active && setArticles([]));
210
210
  return () => {
211
211
  active = false;
212
212
  };
@@ -282,7 +282,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpSideNav, "HelpSideNav");
282
282
  function HelpArticleBody(props) {
283
283
  const t = _nextintl.useTranslations.call(void 0, );
284
284
  const format = _nextintl.useFormatter.call(void 0, );
285
- const generateUrl = _chunk2XCUAHQTjs.usePageUrlGenerator.call(void 0, );
285
+ const generateUrl = _chunkY3OKEQGLjs.usePageUrlGenerator.call(void 0, );
286
286
  const { howToType, title, summary, updatedAt, prev, next, children } = props;
287
287
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: "prose dark:prose-invert max-w-none", children: [
288
288
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: "text-muted-foreground mb-2 text-xs", children: [
@@ -339,7 +339,7 @@ function HelpTOC({ headings }) {
339
339
  }, [headings]);
340
340
  if (headings.length === 0) return null;
341
341
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { "aria-label": t("help.toc.title"), className: "hidden lg:block", children: [
342
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.MicroLabel, { className: "mb-2", children: t("help.toc.title") }),
342
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.MicroLabel, { className: "mb-2", children: t("help.toc.title") }),
343
343
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "space-y-1 text-sm", children: headings.map((h) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { style: { paddingInlineStart: `${(h.depth - 2) * 0.75}rem` }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
344
344
  "a",
345
345
  {
@@ -360,13 +360,13 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpTOC, "HelpTOC");
360
360
 
361
361
  function HelpHint({ contextKey }) {
362
362
  const t = _nextintl.useTranslations.call(void 0, );
363
- const generateUrl = _chunk2XCUAHQTjs.usePageUrlGenerator.call(void 0, );
363
+ const generateUrl = _chunkY3OKEQGLjs.usePageUrlGenerator.call(void 0, );
364
364
  const [open, setOpen] = _react.useState.call(void 0, false);
365
365
  const [picked, setPicked] = _react.useState.call(void 0, null);
366
366
  const [articles, setArticles] = _react.useState.call(void 0, []);
367
367
  _react.useEffect.call(void 0, () => {
368
368
  let active2 = true;
369
- _chunkU7QVISQSjs.HowToService.findPublished().then((list) => active2 && setArticles(list)).catch(() => active2 && setArticles([]));
369
+ _chunkCAKOFJZDjs.HowToService.findPublished().then((list) => active2 && setArticles(list)).catch(() => active2 && setArticles([]));
370
370
  return () => {
371
371
  active2 = false;
372
372
  };
@@ -378,7 +378,7 @@ function HelpHint({ contextKey }) {
378
378
  if (matches.length === 0) return null;
379
379
  const active = _nullishCoalesce(picked, () => ( (matches.length === 1 ? matches[0] : null)));
380
380
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
381
- _chunk2XCUAHQTjs.Sheet,
381
+ _chunkY3OKEQGLjs.Sheet,
382
382
  {
383
383
  open,
384
384
  onOpenChange: (o) => {
@@ -386,11 +386,11 @@ function HelpHint({ contextKey }) {
386
386
  if (!o) setPicked(null);
387
387
  },
388
388
  children: [
389
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": t("help.hint.trigger") }), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.HelpCircleIcon, { className: "h-4 w-4" }) }),
390
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.SheetContent, { side: "end", className: "w-full max-w-md sm:max-w-lg", children: [
391
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2XCUAHQTjs.SheetHeader, { children: [
392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
393
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.SheetDescription, { children: _nullishCoalesce(_optionalChain([active, 'optionalAccess', _4 => _4.summary]), () => ( "")) })
389
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": t("help.hint.trigger") }), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.HelpCircleIcon, { className: "h-4 w-4" }) }),
390
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.SheetContent, { side: "end", className: "w-full max-w-md sm:max-w-lg", children: [
391
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkY3OKEQGLjs.SheetHeader, { children: [
392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
393
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.SheetDescription, { children: _nullishCoalesce(_optionalChain([active, 'optionalAccess', _4 => _4.summary]), () => ( "")) })
394
394
  ] }),
395
395
  active ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-4 space-y-3", children: [
396
396
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: active.summary }),
@@ -422,18 +422,18 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpHint, "HelpHint");
422
422
 
423
423
  function HelpSearchResultRow({ result, onSelect }) {
424
424
  const t = _nextintl.useTranslations.call(void 0, );
425
- const generateUrl = _chunk2XCUAHQTjs.usePageUrlGenerator.call(void 0, );
425
+ const generateUrl = _chunkY3OKEQGLjs.usePageUrlGenerator.call(void 0, );
426
426
  const [article, setArticle] = _react.useState.call(void 0, null);
427
427
  _react.useEffect.call(void 0, () => {
428
428
  let active = true;
429
- _chunkU7QVISQSjs.HowToService.findOne({ id: result.id }).then((a) => active && setArticle(a)).catch(() => active && setArticle(null));
429
+ _chunkCAKOFJZDjs.HowToService.findOne({ id: result.id }).then((a) => active && setArticle(a)).catch(() => active && setArticle(null));
430
430
  return () => {
431
431
  active = false;
432
432
  };
433
433
  }, [result.id]);
434
434
  if (!article) {
435
435
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
436
- _chunk2XCUAHQTjs.CommandItem,
436
+ _chunkY3OKEQGLjs.CommandItem,
437
437
  {
438
438
  value: result.id,
439
439
  disabled: true,
@@ -442,7 +442,7 @@ function HelpSearchResultRow({ result, onSelect }) {
442
442
  }
443
443
  );
444
444
  }
445
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2XCUAHQTjs.CommandItem, { value: result.id, onSelect, className: "cursor-pointer p-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
445
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY3OKEQGLjs.CommandItem, { value: result.id, onSelect, className: "cursor-pointer p-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
446
446
  _link2.default,
447
447
  {
448
448
  href: generateUrl({ page: `/help/${article.howToType}/${article.slug}` }),
@@ -23,16 +23,16 @@ import {
23
23
  useAssistantContext,
24
24
  useCurrentUserContext,
25
25
  usePageUrlGenerator
26
- } from "../../chunk-4O7R2Z2O.mjs";
26
+ } from "../../chunk-XDYILJ2S.mjs";
27
27
  import {
28
28
  _getStaticHelpContent
29
- } from "../../chunk-ZJI5ZZW5.mjs";
29
+ } from "../../chunk-Q6J2ICKO.mjs";
30
30
  import {
31
31
  HowToService
32
- } from "../../chunk-IBVKPLHT.mjs";
32
+ } from "../../chunk-E3I4MT53.mjs";
33
+ import "../../chunk-37DMFVLN.mjs";
33
34
  import "../../chunk-AUXK7QSA.mjs";
34
35
  import "../../chunk-PI56A4DG.mjs";
35
- import "../../chunk-T76WLDE5.mjs";
36
36
  import "../../chunk-VOXD3ZLY.mjs";
37
37
  import {
38
38
  __name
@@ -3,9 +3,9 @@ import { ReactNode } from 'react';
3
3
  import { A as ApiDataInterface, J as JsonApiHydratedDataInterface } from '../../ApiDataInterface-BcZeXy5X.mjs';
4
4
  import { A as AbstractApiData } from '../../AbstractApiData-XLhBP5Tl.mjs';
5
5
  import { A as AbstractService } from '../../AbstractService-Ckm2X5fW.mjs';
6
- export { b as TokenUsageAdminBreakdownModule, T as TokenUsageAdminSummaryModule, a as TokenUsageAdminTimelineModule, c as configureTokenUsage, g as getTokenUsageCurrency, t as tokenUsageModules } from '../../config-n-ZpPmOL.mjs';
6
+ export { b as TokenUsageAdminBreakdownModule, T as TokenUsageAdminSummaryModule, a as TokenUsageAdminTimelineModule, c as configureTokenUsage, g as getTokenUsageCurrency, t as tokenUsageModules } from '../../config-BSKTYDoh.mjs';
7
7
  import '../../ApiRequestDataTypeInterface-CYEcRUrh.mjs';
8
- import '../../types-Bq_UA8Lg.mjs';
8
+ import '../../types-D0uLYV2P.mjs';
9
9
  import 'lucide-react';
10
10
 
11
11
  interface TokenUsageAdminBreakdownInterface extends ApiDataInterface {
@@ -3,9 +3,9 @@ import { ReactNode } from 'react';
3
3
  import { A as ApiDataInterface, J as JsonApiHydratedDataInterface } from '../../ApiDataInterface-BcZeXy5X.js';
4
4
  import { A as AbstractApiData } from '../../AbstractApiData-DtitRWPz.js';
5
5
  import { A as AbstractService } from '../../AbstractService-V3VGQMhL.js';
6
- export { b as TokenUsageAdminBreakdownModule, T as TokenUsageAdminSummaryModule, a as TokenUsageAdminTimelineModule, c as configureTokenUsage, g as getTokenUsageCurrency, t as tokenUsageModules } from '../../config-B6UB7j69.js';
6
+ export { b as TokenUsageAdminBreakdownModule, T as TokenUsageAdminSummaryModule, a as TokenUsageAdminTimelineModule, c as configureTokenUsage, g as getTokenUsageCurrency, t as tokenUsageModules } from '../../config-3N1LSrcC.js';
7
7
  import '../../ApiRequestDataTypeInterface-CYEcRUrh.js';
8
- import '../../types-bsm8Fp55.js';
8
+ import '../../types-Cn153-mH.js';
9
9
  import 'lucide-react';
10
10
 
11
11
  interface TokenUsageAdminBreakdownInterface extends ApiDataInterface {