@carlonicora/nextjs-jsonapi 6.20.6 → 6.22.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 (41) hide show
  1. package/dist/{BlockNoteEditor-H5QBL25M.mjs → BlockNoteEditor-2XSIQCEB.mjs} +2 -2
  2. package/dist/{BlockNoteEditor-IRMQQGPS.js → BlockNoteEditor-HW3TK7SM.js} +9 -9
  3. package/dist/{BlockNoteEditor-IRMQQGPS.js.map → BlockNoteEditor-HW3TK7SM.js.map} +1 -1
  4. package/dist/billing/index.js +378 -378
  5. package/dist/billing/index.mjs +1 -1
  6. package/dist/{chunk-RF2PR5G3.mjs → chunk-EFQIMPCJ.mjs} +15 -9
  7. package/dist/chunk-EFQIMPCJ.mjs.map +1 -0
  8. package/dist/{chunk-EGTC75OW.js → chunk-FXRRQ7Q6.js} +15 -9
  9. package/dist/chunk-FXRRQ7Q6.js.map +1 -0
  10. package/dist/client/index.js +2 -2
  11. package/dist/client/index.mjs +1 -1
  12. package/dist/components/containers/RoundPageContainer.d.ts.map +1 -1
  13. package/dist/components/index.js +2 -2
  14. package/dist/components/index.mjs +1 -1
  15. package/dist/contexts/index.js +2 -2
  16. package/dist/contexts/index.mjs +1 -1
  17. package/dist/email-automations/index.js +78 -78
  18. package/dist/email-automations/index.mjs +1 -1
  19. package/dist/features/analytics/index.js +107 -107
  20. package/dist/features/analytics/index.mjs +1 -1
  21. package/dist/features/blog/index.js +93 -93
  22. package/dist/features/blog/index.mjs +1 -1
  23. package/dist/features/help/index.js +31 -31
  24. package/dist/features/help/index.mjs +1 -1
  25. package/dist/features/tokenusage/index.js +102 -102
  26. package/dist/features/tokenusage/index.mjs +1 -1
  27. package/dist/features/user/contexts/UserContext.d.ts.map +1 -1
  28. package/dist/shadcnui/ui/popover.d.ts +1 -1
  29. package/dist/shadcnui/ui/popover.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/components/containers/RoundPageContainer.tsx +11 -2
  32. package/src/components/containers/__tests__/RoundPageContainer.padding.spec.tsx +21 -0
  33. package/src/components/forms/EditorSheet.tsx +2 -2
  34. package/src/components/forms/__tests__/EditorSheet.spec.tsx +16 -0
  35. package/src/features/oauth/components/OAuthClientDetail.tsx +1 -1
  36. package/src/features/user/contexts/UserContext.tsx +6 -2
  37. package/src/shadcnui/ui/__tests__/popover.container.spec.tsx +22 -0
  38. package/src/shadcnui/ui/popover.tsx +7 -2
  39. package/dist/chunk-EGTC75OW.js.map +0 -1
  40. package/dist/chunk-RF2PR5G3.mjs.map +0 -1
  41. /package/dist/{BlockNoteEditor-H5QBL25M.mjs.map → BlockNoteEditor-2XSIQCEB.mjs.map} +0 -0
@@ -37,7 +37,7 @@ import {
37
37
  registerTableGenerator,
38
38
  useDataListRetriever,
39
39
  usePageUrlGenerator
40
- } from "../../chunk-RF2PR5G3.mjs";
40
+ } from "../../chunk-EFQIMPCJ.mjs";
41
41
  import "../../chunk-VOXD3ZLY.mjs";
42
42
  import "../../chunk-G2UIQSNJ.mjs";
43
43
  import "../../chunk-PW42LRSL.mjs";
@@ -23,7 +23,7 @@ var _chunkYBZVWLPHjs = require('../../chunk-YBZVWLPH.js');
23
23
 
24
24
 
25
25
 
26
- var _chunkEGTC75OWjs = require('../../chunk-EGTC75OW.js');
26
+ var _chunkFXRRQ7Q6js = require('../../chunk-FXRRQ7Q6.js');
27
27
  require('../../chunk-3EPNHTMH.js');
28
28
 
29
29
 
@@ -80,29 +80,29 @@ var _lucidereact = require('lucide-react');
80
80
 
81
81
 
82
82
  function HelpAssistantSheet({ open, onOpenChange }) {
83
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
- _chunkEGTC75OWjs.SheetContent,
83
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.Sheet, { open, onOpenChange, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
+ _chunkFXRRQ7Q6js.SheetContent,
85
85
  {
86
86
  side: "end",
87
87
  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",
88
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.AssistantProvider, { manageUrl: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAssistantSheetBody, {}) })
88
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.AssistantProvider, { manageUrl: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAssistantSheetBody, {}) })
89
89
  }
90
90
  ) });
91
91
  }
92
92
  _chunk7QVYU63Ejs.__name.call(void 0, HelpAssistantSheet, "HelpAssistantSheet");
93
93
  function HelpAssistantSheetBody() {
94
94
  const t = _nextintl.useTranslations.call(void 0, );
95
- const ctx = _chunkEGTC75OWjs.useAssistantContext.call(void 0, );
95
+ const ctx = _chunkFXRRQ7Q6js.useAssistantContext.call(void 0, );
96
96
  const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
97
97
  const send = /* @__PURE__ */ _chunk7QVYU63Ejs.__name.call(void 0, (content) => ctx.sendMessage(content, { howToMode: true }), "send");
98
98
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
99
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.SheetHeader, { children: [
100
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.SheetTitle, { children: t("help.askAi.sheet.title") }),
101
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
99
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.SheetHeader, { children: [
100
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.SheetTitle, { children: t("help.askAi.sheet.title") }),
101
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.SheetDescription, { children: t("help.askAi.sheet.subtitle") })
102
102
  ] }),
103
- !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
103
+ !showThread ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.AssistantEmptyState, { onSend: send }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
104
104
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
105
- _chunkEGTC75OWjs.AssistantThread,
105
+ _chunkFXRRQ7Q6js.AssistantThread,
106
106
  {
107
107
  messages: ctx.messages,
108
108
  sending: ctx.sending,
@@ -112,7 +112,7 @@ function HelpAssistantSheetBody() {
112
112
  onRetry: ctx.retrySend
113
113
  }
114
114
  ),
115
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.AssistantComposer, { onSend: send, disabled: ctx.sending })
115
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.AssistantComposer, { onSend: send, disabled: ctx.sending })
116
116
  ] })
117
117
  ] });
118
118
  }
@@ -122,20 +122,20 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpAssistantSheetBody, "HelpAssistantSheet
122
122
 
123
123
  function HelpAskAi() {
124
124
  const t = _nextintl.useTranslations.call(void 0, );
125
- const { currentUser } = _chunkEGTC75OWjs.useCurrentUserContext.call(void 0, );
125
+ const { currentUser } = _chunkFXRRQ7Q6js.useCurrentUserContext.call(void 0, );
126
126
  const [open, setOpen] = _react.useState.call(void 0, false);
127
127
  const disabled = !currentUser;
128
128
  if (disabled) {
129
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.Tooltip, { children: [
130
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.Button, { variant: "outline", size: "sm", disabled: true }), children: [
129
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.Tooltip, { children: [
130
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.TooltipTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.Button, { variant: "outline", size: "sm", disabled: true }), children: [
131
131
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SparklesIcon, { className: "h-4 w-4" }),
132
132
  t("help.askAi.button")
133
133
  ] }),
134
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.TooltipContent, { children: t("help.askAi.loginTooltip") })
134
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.TooltipContent, { children: t("help.askAi.loginTooltip") })
135
135
  ] });
136
136
  }
137
137
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
138
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
138
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.Button, { variant: "outline", size: "sm", onClick: () => setOpen(true), children: [
139
139
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.SparklesIcon, { className: "h-4 w-4" }),
140
140
  t("help.askAi.button")
141
141
  ] }),
@@ -148,7 +148,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpAskAi, "HelpAskAi");
148
148
 
149
149
  function HelpHeader() {
150
150
  const t = _nextintl.useTranslations.call(void 0, );
151
- const { currentUser } = _chunkEGTC75OWjs.useCurrentUserContext.call(void 0, );
151
+ const { currentUser } = _chunkFXRRQ7Q6js.useCurrentUserContext.call(void 0, );
152
152
  const { brand } = useHelp();
153
153
  const logo = _optionalChain([brand, 'optionalAccess', _ => _.logo]);
154
154
  const label = _nullishCoalesce(_optionalChain([brand, 'optionalAccess', _2 => _2.label]), () => ( t("help.title")));
@@ -164,7 +164,7 @@ function HelpHeader() {
164
164
  ] }),
165
165
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 max-md:shrink-0", children: [
166
166
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HelpAskAi, {}),
167
- currentUser ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: appHref, className: _chunkEGTC75OWjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunkEGTC75OWjs.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.login") })
167
+ currentUser ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: appHref, className: _chunkFXRRQ7Q6js.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.openApp") }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: "/login", className: _chunkFXRRQ7Q6js.buttonVariants.call(void 0, { variant: "outline", size: "sm" }), children: t("help.header.login") })
168
168
  ] })
169
169
  ] });
170
170
  }
@@ -206,7 +206,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, useHelpFilter, "useHelpFilter");
206
206
 
207
207
  function HelpSideNav() {
208
208
  const t = _nextintl.useTranslations.call(void 0, );
209
- const generateUrl = _chunkEGTC75OWjs.usePageUrlGenerator.call(void 0, );
209
+ const generateUrl = _chunkFXRRQ7Q6js.usePageUrlGenerator.call(void 0, );
210
210
  const pathname = _navigation.usePathname.call(void 0, );
211
211
  const [articles, setArticles] = _react.useState.call(void 0, []);
212
212
  _react.useEffect.call(void 0, () => {
@@ -287,7 +287,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpSideNav, "HelpSideNav");
287
287
  function HelpArticleBody(props) {
288
288
  const t = _nextintl.useTranslations.call(void 0, );
289
289
  const format = _nextintl.useFormatter.call(void 0, );
290
- const generateUrl = _chunkEGTC75OWjs.usePageUrlGenerator.call(void 0, );
290
+ const generateUrl = _chunkFXRRQ7Q6js.usePageUrlGenerator.call(void 0, );
291
291
  const { howToType, title, summary, updatedAt, prev, next, children } = props;
292
292
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: "prose dark:prose-invert max-w-none", children: [
293
293
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { className: "text-muted-foreground mb-2 text-xs", children: [
@@ -344,7 +344,7 @@ function HelpTOC({ headings }) {
344
344
  }, [headings]);
345
345
  if (headings.length === 0) return null;
346
346
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { "aria-label": t("help.toc.title"), className: "hidden lg:block", children: [
347
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.MicroLabel, { className: "mb-2", children: t("help.toc.title") }),
347
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.MicroLabel, { className: "mb-2", children: t("help.toc.title") }),
348
348
  /* @__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,
349
349
  "a",
350
350
  {
@@ -365,7 +365,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpTOC, "HelpTOC");
365
365
 
366
366
  function HelpHint({ contextKey }) {
367
367
  const t = _nextintl.useTranslations.call(void 0, );
368
- const generateUrl = _chunkEGTC75OWjs.usePageUrlGenerator.call(void 0, );
368
+ const generateUrl = _chunkFXRRQ7Q6js.usePageUrlGenerator.call(void 0, );
369
369
  const [open, setOpen] = _react.useState.call(void 0, false);
370
370
  const [picked, setPicked] = _react.useState.call(void 0, null);
371
371
  const [articles, setArticles] = _react.useState.call(void 0, []);
@@ -383,7 +383,7 @@ function HelpHint({ contextKey }) {
383
383
  if (matches.length === 0) return null;
384
384
  const active = _nullishCoalesce(picked, () => ( (matches.length === 1 ? matches[0] : null)));
385
385
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
386
- _chunkEGTC75OWjs.Sheet,
386
+ _chunkFXRRQ7Q6js.Sheet,
387
387
  {
388
388
  open,
389
389
  onOpenChange: (o) => {
@@ -391,11 +391,11 @@ function HelpHint({ contextKey }) {
391
391
  if (!o) setPicked(null);
392
392
  },
393
393
  children: [
394
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.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" }) }),
395
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.SheetContent, { side: "end", className: "w-full max-w-md sm:max-w-lg", children: [
396
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEGTC75OWjs.SheetHeader, { children: [
397
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
398
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.SheetDescription, { children: _nullishCoalesce(_optionalChain([active, 'optionalAccess', _4 => _4.summary]), () => ( "")) })
394
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.SheetTrigger, { render: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.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" }) }),
395
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.SheetContent, { side: "end", className: "w-full max-w-md sm:max-w-lg", children: [
396
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFXRRQ7Q6js.SheetHeader, { children: [
397
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.SheetTitle, { children: active ? active.name : t("help.hint.pickArticle") }),
398
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.SheetDescription, { children: _nullishCoalesce(_optionalChain([active, 'optionalAccess', _4 => _4.summary]), () => ( "")) })
399
399
  ] }),
400
400
  active ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-4 space-y-3", children: [
401
401
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-muted-foreground text-sm", children: active.summary }),
@@ -427,7 +427,7 @@ _chunk7QVYU63Ejs.__name.call(void 0, HelpHint, "HelpHint");
427
427
 
428
428
  function HelpSearchResultRow({ result, onSelect }) {
429
429
  const t = _nextintl.useTranslations.call(void 0, );
430
- const generateUrl = _chunkEGTC75OWjs.usePageUrlGenerator.call(void 0, );
430
+ const generateUrl = _chunkFXRRQ7Q6js.usePageUrlGenerator.call(void 0, );
431
431
  const [article, setArticle] = _react.useState.call(void 0, null);
432
432
  _react.useEffect.call(void 0, () => {
433
433
  let active = true;
@@ -438,7 +438,7 @@ function HelpSearchResultRow({ result, onSelect }) {
438
438
  }, [result.id]);
439
439
  if (!article) {
440
440
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
441
- _chunkEGTC75OWjs.CommandItem,
441
+ _chunkFXRRQ7Q6js.CommandItem,
442
442
  {
443
443
  value: result.id,
444
444
  disabled: true,
@@ -447,7 +447,7 @@ function HelpSearchResultRow({ result, onSelect }) {
447
447
  }
448
448
  );
449
449
  }
450
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEGTC75OWjs.CommandItem, { value: result.id, onSelect, className: "cursor-pointer p-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
450
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFXRRQ7Q6js.CommandItem, { value: result.id, onSelect, className: "cursor-pointer p-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
451
451
  _link2.default,
452
452
  {
453
453
  href: generateUrl({ page: `/help/${article.howToType}/${article.slug}` }),
@@ -23,7 +23,7 @@ import {
23
23
  useAssistantContext,
24
24
  useCurrentUserContext,
25
25
  usePageUrlGenerator
26
- } from "../../chunk-RF2PR5G3.mjs";
26
+ } from "../../chunk-EFQIMPCJ.mjs";
27
27
  import "../../chunk-VOXD3ZLY.mjs";
28
28
  import {
29
29
  _getStaticHelpContent