@carlonicora/nextjs-jsonapi 2.4.0 → 2.5.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 (85) hide show
  1. package/dist/{BlockNoteEditor-7WGCH2KB.js → BlockNoteEditor-TIMGYKAA.js} +19 -19
  2. package/dist/{BlockNoteEditor-7WGCH2KB.js.map → BlockNoteEditor-TIMGYKAA.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-GWAV5ESO.mjs → BlockNoteEditor-YFJMXJEU.mjs} +4 -4
  4. package/dist/billing/index.js +362 -362
  5. package/dist/billing/index.mjs +3 -3
  6. package/dist/{chunk-GYGMEDVS.js → chunk-7HKJNUW7.js} +755 -746
  7. package/dist/chunk-7HKJNUW7.js.map +1 -0
  8. package/dist/{chunk-3LVSA7IM.mjs → chunk-DJWNNV52.mjs} +2 -2
  9. package/dist/{chunk-LCCRUWWY.mjs → chunk-FS4RVV3K.mjs} +241 -1
  10. package/dist/chunk-FS4RVV3K.mjs.map +1 -0
  11. package/dist/{chunk-M2EGUO2F.mjs → chunk-G4YS52SO.mjs} +16 -7
  12. package/dist/chunk-G4YS52SO.mjs.map +1 -0
  13. package/dist/{chunk-TOKHHZSP.js → chunk-OTEDZ6YW.js} +7 -7
  14. package/dist/{chunk-TOKHHZSP.js.map → chunk-OTEDZ6YW.js.map} +1 -1
  15. package/dist/{chunk-V66AZWPG.js → chunk-RTOC53EZ.js} +246 -6
  16. package/dist/chunk-RTOC53EZ.js.map +1 -0
  17. package/dist/client/index.js +4 -4
  18. package/dist/client/index.mjs +3 -3
  19. package/dist/components/index.d.mts +16 -1
  20. package/dist/components/index.d.ts +16 -1
  21. package/dist/components/index.js +4 -4
  22. package/dist/components/index.mjs +3 -3
  23. package/dist/{tokenusage-admin.module-5wJ_tZTj.d.ts → config-BIjrg5wd.d.ts} +39 -1
  24. package/dist/{tokenusage-admin.module-DQVT4O4j.d.mts → config-BRUjtCd1.d.mts} +39 -1
  25. package/dist/contexts/index.js +4 -4
  26. package/dist/contexts/index.mjs +3 -3
  27. package/dist/core/index.d.mts +5 -2
  28. package/dist/core/index.d.ts +5 -2
  29. package/dist/core/index.js +8 -2
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/index.mjs +7 -1
  32. package/dist/features/help/index.js +37 -37
  33. package/dist/features/help/index.mjs +3 -3
  34. package/dist/features/tokenusage/index.d.mts +413 -14
  35. package/dist/features/tokenusage/index.d.ts +413 -14
  36. package/dist/features/tokenusage/index.js +481 -120
  37. package/dist/features/tokenusage/index.js.map +1 -1
  38. package/dist/features/tokenusage/index.mjs +431 -70
  39. package/dist/features/tokenusage/index.mjs.map +1 -1
  40. package/dist/index.d.mts +2 -2
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +9 -3
  43. package/dist/index.js.map +1 -1
  44. package/dist/index.mjs +8 -2
  45. package/dist/server/index.js +3 -3
  46. package/dist/server/index.mjs +1 -1
  47. package/package.json +1 -1
  48. package/src/core/index.ts +10 -0
  49. package/src/core/registry/ModuleRegistry.ts +4 -0
  50. package/src/features/tokenusage/components/TokenUsageAdminContainer.tsx +20 -4
  51. package/src/features/tokenusage/components/TokenUsageAdminTiles.tsx +31 -18
  52. package/src/features/tokenusage/components/TokenUsageBreakdownTable.tsx +13 -13
  53. package/src/features/tokenusage/components/TokenUsageRankedBar.tsx +24 -7
  54. package/src/features/tokenusage/components/TokenUsageReportContainer.tsx +102 -0
  55. package/src/features/tokenusage/components/TokenUsageReportFilterBar.tsx +34 -0
  56. package/src/features/tokenusage/components/TokenUsageReportTiles.tsx +161 -0
  57. package/src/features/tokenusage/components/TokenUsageTimelineChart.tsx +15 -13
  58. package/src/features/tokenusage/components/__tests__/TokenUsageAdminTiles.spec.tsx +4 -2
  59. package/src/features/tokenusage/components/__tests__/TokenUsageRankedBar.spec.tsx +3 -1
  60. package/src/features/tokenusage/contexts/TokenUsageAdminContext.tsx +6 -3
  61. package/src/features/tokenusage/contexts/TokenUsageReportContext.tsx +199 -0
  62. package/src/features/tokenusage/data/TokenUsageReportService.ts +65 -0
  63. package/src/features/tokenusage/data/index.ts +9 -0
  64. package/src/features/tokenusage/data/tokenusage-report-breakdown.interface.ts +12 -0
  65. package/src/features/tokenusage/data/tokenusage-report-breakdown.ts +94 -0
  66. package/src/features/tokenusage/data/tokenusage-report-summary.interface.ts +12 -0
  67. package/src/features/tokenusage/data/tokenusage-report-summary.ts +87 -0
  68. package/src/features/tokenusage/data/tokenusage-report-timeline.interface.ts +13 -0
  69. package/src/features/tokenusage/data/tokenusage-report-timeline.ts +94 -0
  70. package/src/features/tokenusage/data/tokenusage-report.types.ts +51 -0
  71. package/src/features/tokenusage/i18n-keys.ts +28 -0
  72. package/src/features/tokenusage/index.ts +18 -0
  73. package/src/features/tokenusage/lib/config.ts +22 -0
  74. package/src/features/tokenusage/lib/formatters.ts +100 -0
  75. package/src/features/tokenusage/lib/metrics.ts +8 -26
  76. package/src/features/tokenusage/lib/palette.ts +41 -14
  77. package/src/features/tokenusage/tokenusage-admin.module.ts +4 -0
  78. package/src/features/tokenusage/tokenusage.modules.ts +40 -0
  79. package/src/shadcnui/ui/chart.tsx +30 -3
  80. package/dist/chunk-GYGMEDVS.js.map +0 -1
  81. package/dist/chunk-LCCRUWWY.mjs.map +0 -1
  82. package/dist/chunk-M2EGUO2F.mjs.map +0 -1
  83. package/dist/chunk-V66AZWPG.js.map +0 -1
  84. /package/dist/{BlockNoteEditor-GWAV5ESO.mjs.map → BlockNoteEditor-YFJMXJEU.mjs.map} +0 -0
  85. /package/dist/{chunk-3LVSA7IM.mjs.map → chunk-DJWNNV52.mjs.map} +0 -0
@@ -154,6 +154,7 @@ import {
154
154
  clearLastApiTotal,
155
155
  cn,
156
156
  composeRefs,
157
+ configureTokenUsage,
157
158
  createJsonApiInclusion,
158
159
  dismissToast,
159
160
  entityObjectSchema,
@@ -175,6 +176,7 @@ import {
175
176
  getLucideIconByModuleName,
176
177
  getTableComponents,
177
178
  getTableOptions,
179
+ getTokenUsageCurrency,
178
180
  getValueFromPath,
179
181
  isRemoteImageSrc,
180
182
  rehydrate,
@@ -184,13 +186,14 @@ import {
184
186
  showCustomToast,
185
187
  showError,
186
188
  showToast,
189
+ tokenUsageModules,
187
190
  useComposedRefs,
188
191
  useIsMobile,
189
192
  userObjectSchema,
190
193
  validateCodiceFiscale,
191
194
  validateItalianTaxCode,
192
195
  validatePartitaIva
193
- } from "../chunk-LCCRUWWY.mjs";
196
+ } from "../chunk-FS4RVV3K.mjs";
194
197
  import "../chunk-AUXK7QSA.mjs";
195
198
  import "../chunk-C7C7VY4F.mjs";
196
199
  import {
@@ -364,6 +367,7 @@ export {
364
367
  clearLastApiTotal,
365
368
  cn,
366
369
  composeRefs,
370
+ configureTokenUsage,
367
371
  createJsonApiInclusion,
368
372
  dismissToast,
369
373
  entityObjectSchema,
@@ -386,6 +390,7 @@ export {
386
390
  getLucideIconByModuleName,
387
391
  getTableComponents,
388
392
  getTableOptions,
393
+ getTokenUsageCurrency,
389
394
  getValueFromPath,
390
395
  hasBootstrapper,
391
396
  isRemoteImageSrc,
@@ -398,6 +403,7 @@ export {
398
403
  showCustomToast,
399
404
  showError,
400
405
  showToast,
406
+ tokenUsageModules,
401
407
  translateData,
402
408
  translateResponse,
403
409
  tryBootstrap,
@@ -23,13 +23,13 @@ var _chunkYBZVWLPHjs = require('../../chunk-YBZVWLPH.js');
23
23
 
24
24
 
25
25
 
26
- var _chunkGYGMEDVSjs = require('../../chunk-GYGMEDVS.js');
26
+ var _chunk7HKJNUW7js = require('../../chunk-7HKJNUW7.js');
27
27
 
28
28
 
29
- var _chunkTOKHHZSPjs = require('../../chunk-TOKHHZSP.js');
29
+ var _chunkOTEDZ6YWjs = require('../../chunk-OTEDZ6YW.js');
30
30
 
31
31
 
32
- var _chunkV66AZWPGjs = require('../../chunk-V66AZWPG.js');
32
+ var _chunkRTOC53EZjs = require('../../chunk-RTOC53EZ.js');
33
33
  require('../../chunk-LXKSUWAV.js');
34
34
  require('../../chunk-IBS6NI7D.js');
35
35
  require('../../chunk-FPO4DLZN.js');
@@ -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 = _chunkTOKHHZSPjs._getStaticHelpContent.call(void 0, );
46
+ const cfg = _chunkOTEDZ6YWjs._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, _chunkGYGMEDVSjs.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
79
- _chunkGYGMEDVSjs.SheetContent,
78
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
79
+ _chunk7HKJNUW7js.SheetContent,
80
80
  {
81
81
  side: "right",
82
82
  className: "flex w-full flex-col data-[side=right]:sm:max-w-2xl data-[side=right]:lg:max-w-3xl",
83
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.AssistantProvider, { manageUrl: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAssistantSheetBody, {}) })
83
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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 = _chunkGYGMEDVSjs.useAssistantContext.call(void 0, );
90
+ const ctx = _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.SheetHeader, { children: [
95
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.SheetTitle, { children: t("help.askAi.sheet.title") }),
96
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
94
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7HKJNUW7js.SheetHeader, { children: [
95
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.SheetTitle, { children: t("help.askAi.sheet.title") }),
96
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
97
97
  ] }),
98
- !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
98
+ !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
99
99
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
100
- _chunkGYGMEDVSjs.AssistantThread,
100
+ _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.AssistantComposer, { onSend: send, disabled: ctx.sending })
110
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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 } = _chunkGYGMEDVSjs.useCurrentUserContext.call(void 0, );
120
+ const { currentUser } = _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.Tooltip, { children: [
125
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGYGMEDVSjs.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.Button, { variant: "outline", size: "sm", disabled: true }), children: [
124
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7HKJNUW7js.Tooltip, { children: [
125
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7HKJNUW7js.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.TooltipContent, { children: t("help.askAi.loginTooltip") })
129
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
133
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7HKJNUW7js.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 } = _chunkGYGMEDVSjs.useCurrentUserContext.call(void 0, );
146
+ const { currentUser } = _chunk7HKJNUW7js.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: _chunkGYGMEDVSjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunkGYGMEDVSjs.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: _chunk7HKJNUW7js.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunk7HKJNUW7js.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 = _chunkGYGMEDVSjs.usePageUrlGenerator.call(void 0, );
204
+ const generateUrl = _chunk7HKJNUW7js.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
- _chunkV66AZWPGjs.HowToService.findPublished().then((list) => active && setArticles(list)).catch(() => active && setArticles([]));
209
+ _chunkRTOC53EZjs.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 = _chunkGYGMEDVSjs.usePageUrlGenerator.call(void 0, );
285
+ const generateUrl = _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.MicroLabel, { className: "mb-2", children: t("help.toc.title") }),
342
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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: { paddingLeft: `${(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 = _chunkGYGMEDVSjs.usePageUrlGenerator.call(void 0, );
363
+ const generateUrl = _chunk7HKJNUW7js.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
- _chunkV66AZWPGjs.HowToService.findPublished().then((list) => active2 && setArticles(list)).catch(() => active2 && setArticles([]));
369
+ _chunkRTOC53EZjs.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
- _chunkGYGMEDVSjs.Sheet,
381
+ _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.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, _chunkGYGMEDVSjs.SheetContent, { side: "right", className: "w-full max-w-md sm:max-w-lg", children: [
391
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGYGMEDVSjs.SheetHeader, { children: [
392
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
393
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGYGMEDVSjs.SheetDescription, { children: _nullishCoalesce(_optionalChain([active, 'optionalAccess', _4 => _4.summary]), () => ( "")) })
389
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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, _chunk7HKJNUW7js.SheetContent, { side: "right", className: "w-full max-w-md sm:max-w-lg", children: [
391
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk7HKJNUW7js.SheetHeader, { children: [
392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
393
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7HKJNUW7js.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 = _chunkGYGMEDVSjs.usePageUrlGenerator.call(void 0, );
425
+ const generateUrl = _chunk7HKJNUW7js.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
- _chunkV66AZWPGjs.HowToService.findOne({ id: result.id }).then((a) => active && setArticle(a)).catch(() => active && setArticle(null));
429
+ _chunkRTOC53EZjs.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
- _chunkGYGMEDVSjs.CommandItem,
436
+ _chunk7HKJNUW7js.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, _chunkGYGMEDVSjs.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, _chunk7HKJNUW7js.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,13 +23,13 @@ import {
23
23
  useAssistantContext,
24
24
  useCurrentUserContext,
25
25
  usePageUrlGenerator
26
- } from "../../chunk-M2EGUO2F.mjs";
26
+ } from "../../chunk-G4YS52SO.mjs";
27
27
  import {
28
28
  _getStaticHelpContent
29
- } from "../../chunk-3LVSA7IM.mjs";
29
+ } from "../../chunk-DJWNNV52.mjs";
30
30
  import {
31
31
  HowToService
32
- } from "../../chunk-LCCRUWWY.mjs";
32
+ } from "../../chunk-FS4RVV3K.mjs";
33
33
  import "../../chunk-AUXK7QSA.mjs";
34
34
  import "../../chunk-C7C7VY4F.mjs";
35
35
  import "../../chunk-E5YA5Z5X.mjs";