@carlonicora/nextjs-jsonapi 3.11.0 → 3.13.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 (156) hide show
  1. package/dist/{AssistantInterface-DwdBzS9f.d.ts → AssistantInterface-RvZzlcA_.d.ts} +2 -0
  2. package/dist/{AssistantInterface-DMh-zApr.d.mts → AssistantInterface-jL56dyNc.d.mts} +2 -0
  3. package/dist/{AssistantMessageInterface-0zyVingf.d.ts → AssistantMessageInterface-CuaMDs2i.d.ts} +1 -1
  4. package/dist/{AssistantMessageInterface-ddyG114R.d.mts → AssistantMessageInterface-Du3ShThp.d.mts} +1 -1
  5. package/dist/{BlockNoteEditor-XOVNTXDY.js → BlockNoteEditor-CFVSHS46.js} +19 -19
  6. package/dist/{BlockNoteEditor-XOVNTXDY.js.map → BlockNoteEditor-CFVSHS46.js.map} +1 -1
  7. package/dist/{BlockNoteEditor-NBHDEZ7W.mjs → BlockNoteEditor-SERY337S.mjs} +4 -4
  8. package/dist/{BlockNoteViewer-C2UUOBAF.js → BlockNoteViewer-CWFPYYIU.js} +3 -3
  9. package/dist/{BlockNoteViewer-C2UUOBAF.js.map → BlockNoteViewer-CWFPYYIU.js.map} +1 -1
  10. package/dist/{BlockNoteViewer-TYLVTIUD.mjs → BlockNoteViewer-P2VKEFRN.mjs} +2 -2
  11. package/dist/{ai-connection.module-28f-hux0.d.mts → HandbookSectionInterface-BOxIdBdd.d.mts} +54 -1
  12. package/dist/{ai-connection.module-Bqwh_DnR.d.ts → HandbookSectionInterface-CAXxbDw0.d.ts} +54 -1
  13. package/dist/{auth.interface-B6ZQLGjS.d.ts → auth.interface-BC1jp_ni.d.ts} +1 -1
  14. package/dist/{auth.interface-jYD8Gc4P.d.mts → auth.interface-dR2-6gPM.d.mts} +1 -1
  15. package/dist/billing/index.d.mts +27 -0
  16. package/dist/billing/index.d.ts +27 -0
  17. package/dist/billing/index.js +697 -450
  18. package/dist/billing/index.js.map +1 -1
  19. package/dist/billing/index.mjs +282 -35
  20. package/dist/billing/index.mjs.map +1 -1
  21. package/dist/{chunk-6J2SQZ3G.js → chunk-IB7DTXWG.js} +847 -129
  22. package/dist/chunk-IB7DTXWG.js.map +1 -0
  23. package/dist/{chunk-YN4LOVL4.js → chunk-LVE3BJ6K.js} +2106 -1109
  24. package/dist/chunk-LVE3BJ6K.js.map +1 -0
  25. package/dist/{chunk-M5QAHSCY.mjs → chunk-OSFYCSTW.mjs} +725 -7
  26. package/dist/chunk-OSFYCSTW.mjs.map +1 -0
  27. package/dist/{chunk-XNGI4HDZ.mjs → chunk-UQXE3SME.mjs} +2100 -1103
  28. package/dist/chunk-UQXE3SME.mjs.map +1 -0
  29. package/dist/{chunk-IMSIVIIC.mjs → chunk-VZKJIAND.mjs} +2 -2
  30. package/dist/{chunk-V6CGCARD.js → chunk-XH4IURUD.js} +7 -7
  31. package/dist/{chunk-V6CGCARD.js.map → chunk-XH4IURUD.js.map} +1 -1
  32. package/dist/client/index.d.mts +2 -2
  33. package/dist/client/index.d.ts +2 -2
  34. package/dist/client/index.js +4 -4
  35. package/dist/client/index.mjs +3 -3
  36. package/dist/components/index.d.mts +258 -7
  37. package/dist/components/index.d.ts +258 -7
  38. package/dist/components/index.js +30 -4
  39. package/dist/components/index.js.map +1 -1
  40. package/dist/components/index.mjs +29 -3
  41. package/dist/contexts/index.d.mts +17 -5
  42. package/dist/contexts/index.d.ts +17 -5
  43. package/dist/contexts/index.js +4 -4
  44. package/dist/contexts/index.mjs +3 -3
  45. package/dist/core/index.d.mts +493 -12
  46. package/dist/core/index.d.ts +493 -12
  47. package/dist/core/index.js +38 -2
  48. package/dist/core/index.js.map +1 -1
  49. package/dist/core/index.mjs +37 -1
  50. package/dist/features/help/index.js +37 -37
  51. package/dist/features/help/index.mjs +3 -3
  52. package/dist/features/tokenusage/index.js +101 -101
  53. package/dist/features/tokenusage/index.mjs +3 -3
  54. package/dist/index.d.mts +7 -7
  55. package/dist/index.d.ts +7 -7
  56. package/dist/index.js +39 -3
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.mjs +38 -2
  59. package/dist/{notification.interface-DYF56CtE.d.ts → notification.interface-CjzV_KII.d.ts} +1 -1
  60. package/dist/{notification.interface-BWOCvKRP.d.mts → notification.interface-MnRt1Tjm.d.mts} +1 -1
  61. package/dist/{s3.service-D_dswjgz.d.mts → s3.service-C0Yq2Sx3.d.mts} +2 -2
  62. package/dist/{s3.service-DserU9VK.d.ts → s3.service-CUGarZs3.d.ts} +2 -2
  63. package/dist/server/index.d.mts +3 -3
  64. package/dist/server/index.d.ts +3 -3
  65. package/dist/server/index.js +3 -3
  66. package/dist/server/index.mjs +1 -1
  67. package/dist/{useSocket-BZG9oX-L.d.mts → useSocket-BcH7l7B8.d.mts} +1 -1
  68. package/dist/{useSocket-CiyTtYFj.d.ts → useSocket-DCZd_eJk.d.ts} +1 -1
  69. package/package.json +1 -1
  70. package/src/components/containers/ReactMarkdownContainer.tsx +61 -11
  71. package/src/components/index.ts +1 -0
  72. package/src/core/index.ts +5 -0
  73. package/src/core/registry/ModuleRegistry.ts +4 -0
  74. package/src/features/assistant/components/parts/AssistantComposer.tsx +22 -3
  75. package/src/features/assistant/components/parts/AssistantSidebar.tsx +13 -3
  76. package/src/features/assistant/components/parts/AssistantThreadHeader.tsx +10 -3
  77. package/src/features/assistant/contexts/AssistantContext.tsx +30 -3
  78. package/src/features/assistant/contexts/__tests__/AssistantContext.spec.tsx +32 -0
  79. package/src/features/assistant/data/Assistant.ts +2 -0
  80. package/src/features/assistant/data/AssistantInterface.ts +2 -0
  81. package/src/features/assistant/data/AssistantService.ts +4 -0
  82. package/src/features/assistant-message/components/parts/MessageSourcesContainer.tsx +5 -1
  83. package/src/features/assistant-message/data/AssistantMessage.ts +27 -2
  84. package/src/features/billing/i18n-keys.ts +7 -0
  85. package/src/features/billing/stripe-price/components/forms/PriceEditor.tsx +108 -2
  86. package/src/features/billing/stripe-price/components/forms/__tests__/PriceEditor.spec.tsx +182 -0
  87. package/src/features/billing/stripe-price/components/lists/PricesList.tsx +152 -25
  88. package/src/features/billing/stripe-price/components/lists/__tests__/PricesList.spec.tsx +268 -0
  89. package/src/features/billing/stripe-price/data/__tests__/stripe-price.transfer.spec.ts +265 -0
  90. package/src/features/billing/stripe-price/data/stripe-price.fields.ts +1 -0
  91. package/src/features/billing/stripe-price/data/stripe-price.transfer.ts +194 -0
  92. package/src/features/billing/stripe-price/hooks/useStripePriceTableStructure.tsx +66 -2
  93. package/src/features/content/data/content.interface.ts +1 -1
  94. package/src/features/handbook/HandbookPageModule.ts +41 -0
  95. package/src/features/handbook/HandbookSectionModule.ts +35 -0
  96. package/src/features/handbook/HandbookThreadMessageModule.ts +21 -0
  97. package/src/features/handbook/HandbookThreadModule.ts +29 -0
  98. package/src/features/handbook/components/containers/HandbookAdminContainer.tsx +17 -0
  99. package/src/features/handbook/components/containers/HandbookAskContainer.tsx +142 -0
  100. package/src/features/handbook/components/containers/HandbookAskSheet.tsx +149 -0
  101. package/src/features/handbook/components/containers/HandbookPageContainer.tsx +143 -0
  102. package/src/features/handbook/components/containers/__tests__/HandbookAskContainer.spec.tsx +268 -0
  103. package/src/features/handbook/components/containers/__tests__/HandbookAskSheet.spec.tsx +143 -0
  104. package/src/features/handbook/components/containers/__tests__/HandbookPageContainer.spec.tsx +288 -0
  105. package/src/features/handbook/components/details/HandbookPageDetails.tsx +27 -0
  106. package/src/features/handbook/components/details/HandbookPageNeighbours.tsx +72 -0
  107. package/src/features/handbook/components/details/HandbookPageToc.tsx +165 -0
  108. package/src/features/handbook/components/forms/HandbookSyncButton.tsx +43 -0
  109. package/src/features/handbook/components/forms/__tests__/HandbookSyncButton.spec.tsx +42 -0
  110. package/src/features/handbook/components/index.ts +12 -0
  111. package/src/features/handbook/components/lists/HandbookContents.tsx +196 -0
  112. package/src/features/handbook/components/lists/HandbookSectionGroup.tsx +153 -0
  113. package/src/features/handbook/components/lists/__tests__/HandbookContents.spec.tsx +247 -0
  114. package/src/features/handbook/components/parts/HandbookIndexStatus.tsx +62 -0
  115. package/src/features/handbook/components/parts/HandbookPageNavigator.tsx +143 -0
  116. package/src/features/handbook/contexts/HandbookContext.tsx +109 -0
  117. package/src/features/handbook/contexts/__tests__/HandbookContext.spec.tsx +131 -0
  118. package/src/features/handbook/data/HandbookPage.spec.ts +136 -0
  119. package/src/features/handbook/data/HandbookPage.ts +99 -0
  120. package/src/features/handbook/data/HandbookPageFields.ts +31 -0
  121. package/src/features/handbook/data/HandbookPageInput.ts +8 -0
  122. package/src/features/handbook/data/HandbookPageInterface.ts +29 -0
  123. package/src/features/handbook/data/HandbookPageService.ts +60 -0
  124. package/src/features/handbook/data/HandbookSection.spec.ts +58 -0
  125. package/src/features/handbook/data/HandbookSection.ts +73 -0
  126. package/src/features/handbook/data/HandbookSectionInput.ts +12 -0
  127. package/src/features/handbook/data/HandbookSectionInterface.ts +26 -0
  128. package/src/features/handbook/data/HandbookSectionService.ts +26 -0
  129. package/src/features/handbook/data/HandbookThread.ts +114 -0
  130. package/src/features/handbook/data/HandbookThreadInterface.ts +31 -0
  131. package/src/features/handbook/data/HandbookThreadMessage.ts +144 -0
  132. package/src/features/handbook/data/HandbookThreadMessageInterface.ts +35 -0
  133. package/src/features/handbook/data/HandbookThreadMessageService.ts +30 -0
  134. package/src/features/handbook/data/HandbookThreadService.ts +86 -0
  135. package/src/features/handbook/data/__tests__/HandbookThreadService.spec.ts +112 -0
  136. package/src/features/handbook/data/handbookDisplay.spec.ts +92 -0
  137. package/src/features/handbook/data/handbookDisplay.ts +55 -0
  138. package/src/features/handbook/data/index.ts +16 -0
  139. package/src/features/handbook/hooks/__tests__/useHandbookAsk.spec.ts +198 -0
  140. package/src/features/handbook/hooks/useHandbookAsk.ts +213 -0
  141. package/src/features/handbook/i18n-keys.ts +46 -0
  142. package/src/features/handbook/index.ts +7 -0
  143. package/src/features/how-to/components/forms/HowToEditor.tsx +0 -1
  144. package/src/features/how-to/components/forms/HowToReindexButton.spec.tsx +84 -0
  145. package/src/features/how-to/components/forms/HowToReindexButton.tsx +46 -0
  146. package/src/features/how-to/components/index.ts +1 -0
  147. package/src/features/how-to/components/lists/HowToList.tsx +5 -1
  148. package/src/features/how-to/data/HowTo.spec.ts +61 -1
  149. package/src/features/how-to/data/HowToService.ts +13 -0
  150. package/dist/chunk-6J2SQZ3G.js.map +0 -1
  151. package/dist/chunk-M5QAHSCY.mjs.map +0 -1
  152. package/dist/chunk-XNGI4HDZ.mjs.map +0 -1
  153. package/dist/chunk-YN4LOVL4.js.map +0 -1
  154. /package/dist/{BlockNoteEditor-NBHDEZ7W.mjs.map → BlockNoteEditor-SERY337S.mjs.map} +0 -0
  155. /package/dist/{BlockNoteViewer-TYLVTIUD.mjs.map → BlockNoteViewer-P2VKEFRN.mjs.map} +0 -0
  156. /package/dist/{chunk-IMSIVIIC.mjs.map → chunk-VZKJIAND.mjs.map} +0 -0
@@ -252,4 +252,57 @@ declare class AiConnectionService extends AbstractService {
252
252
 
253
253
  declare const AiConnectionModule: (factory: ModuleFactory) => ModuleWithPermissions;
254
254
 
255
- export { AuthComponent as A, type PasskeyInterface as P, type TotpAuthenticatorInterface as T, getIconByModule as a, getIcon as b, getIconByModuleName as c, getLucideIcon as d, getLucideIconByModule as e, getLucideIconByModuleName as f, getInitials as g, AiConnection as h, AiConnectionFields as i, type AiProviderFieldDescriptor as j, type AiProviderRegistry as k, type AiConnectionEnvDefaults as l, type AiConnectionInterface as m, type AiConnectionInput as n, AiConnectionService as o, AiConnectionModule as p };
255
+ interface HandbookPageInterface extends ApiDataInterface {
256
+ get path(): string;
257
+ get title(): string;
258
+ get content(): string;
259
+ get contentHash(): string;
260
+ get wordCount(): number;
261
+ get aiStatus(): string | undefined;
262
+ /** The top-level directory of the documentation tree this page belongs to. */
263
+ get section(): string;
264
+ /** The repo-relative path; sorting on it reproduces filesystem order. */
265
+ get order(): string;
266
+ /** The one-line description the tree's README index gives this page, when it has one. */
267
+ get summary(): string | undefined;
268
+ /**
269
+ * The translated rendering of `title`, when the ingest matched a translation
270
+ * of this page's `path`. The manual is INDEXED in English and SHOWN in the
271
+ * reader's language, so every surface renders `displayTitle ?? title`.
272
+ */
273
+ get displayTitle(): string | undefined;
274
+ /** The translated `summary`. Absent when the page has no translation. */
275
+ get displaySummary(): string | undefined;
276
+ /**
277
+ * The translated body. Detail-only, exactly as `content` is: it is the whole
278
+ * markdown file, so it never travels in a list payload.
279
+ */
280
+ get displayContent(): string | undefined;
281
+ }
282
+
283
+ /**
284
+ * One top-level directory of the configured documentation tree.
285
+ *
286
+ * A page names its section by `key`, not by edge, so this interface carries no
287
+ * relationships: the contents page reads sections and pages in two calls and
288
+ * groups them client side.
289
+ */
290
+ interface HandbookSectionInterface extends ApiDataInterface {
291
+ /** The directory name, e.g. `03-backend`. The natural key of the ingest. */
292
+ get key(): string;
293
+ /** The prettified `key`, or the README heading when the index names one. */
294
+ get title(): string;
295
+ /** The README's blurb for the section. Absent when the tree has no index. */
296
+ get summary(): string | undefined;
297
+ /** The `key`; sorting on it reproduces the directories' numeric order. */
298
+ get order(): string;
299
+ /**
300
+ * The translated rendering of `title`, when the index carries one. Every
301
+ * reader-facing surface renders `displayTitle ?? title`.
302
+ */
303
+ get displayTitle(): string | undefined;
304
+ /** The translated `summary`. Absent when the section has no translation. */
305
+ get displaySummary(): string | undefined;
306
+ }
307
+
308
+ export { AuthComponent as A, type HandbookPageInterface as H, type PasskeyInterface as P, type TotpAuthenticatorInterface as T, getIconByModule as a, getIcon as b, getIconByModuleName as c, getLucideIcon as d, getLucideIconByModule as e, getLucideIconByModuleName as f, getInitials as g, AiConnection as h, AiConnectionFields as i, type AiProviderFieldDescriptor as j, type AiProviderRegistry as k, type AiConnectionEnvDefaults as l, type AiConnectionInterface as m, type AiConnectionInput as n, AiConnectionService as o, AiConnectionModule as p, type HandbookSectionInterface as q };
@@ -1,5 +1,5 @@
1
1
  import { A as ApiDataInterface } from './ApiDataInterface-BcZeXy5X.js';
2
- import { U as UserInterface } from './notification.interface-DYF56CtE.js';
2
+ import { U as UserInterface } from './notification.interface-CjzV_KII.js';
3
3
 
4
4
  type AuthInput = {
5
5
  id?: string;
@@ -1,5 +1,5 @@
1
1
  import { A as ApiDataInterface } from './ApiDataInterface-BcZeXy5X.mjs';
2
- import { U as UserInterface } from './notification.interface-BWOCvKRP.mjs';
2
+ import { U as UserInterface } from './notification.interface-MnRt1Tjm.mjs';
3
3
 
4
4
  type AuthInput = {
5
5
  id?: string;
@@ -213,9 +213,36 @@ type PriceArchiverProps = {
213
213
  */
214
214
  declare function PriceArchiver({ price }: PriceArchiverProps): React.JSX.Element;
215
215
 
216
+ /** The editable shape of a price, portable between environments. */
217
+ type StripePriceSeed = {
218
+ unitAmount: number;
219
+ currency: string;
220
+ interval: "one_time" | "day" | "week" | "month" | "year";
221
+ intervalCount?: number;
222
+ usageType?: "licensed" | "metered";
223
+ nickname?: string;
224
+ description?: string;
225
+ features?: string[];
226
+ token?: number;
227
+ isTrial?: boolean;
228
+ platformFeatures?: string[];
229
+ };
230
+
216
231
  type PriceEditorProps = {
217
232
  productId?: string;
218
233
  price?: StripePriceInterface;
234
+ /**
235
+ * Pre-fills a NEW price — the Clone (a row in the prices list) and Import (a
236
+ * JSON document) paths both hand over the same seed.
237
+ *
238
+ * The seed deliberately carries NO identity: no Stripe price id, no internal
239
+ * id and no product id. A clone/import is a brand-new price, minted fresh by
240
+ * Stripe and attached to whatever product this editor is mounted for
241
+ * (`productId` / the context), so copying any identity across would either
242
+ * collide or silently re-point the new price at the source environment's
243
+ * objects. Seeding therefore never makes this an edit — see `isEdit` below.
244
+ */
245
+ seed?: StripePriceSeed;
219
246
  propagateChanges?: (price: StripePriceInterface) => void;
220
247
  onSuccess?: () => void | Promise<void>;
221
248
  trigger?: ReactNode;
@@ -213,9 +213,36 @@ type PriceArchiverProps = {
213
213
  */
214
214
  declare function PriceArchiver({ price }: PriceArchiverProps): React.JSX.Element;
215
215
 
216
+ /** The editable shape of a price, portable between environments. */
217
+ type StripePriceSeed = {
218
+ unitAmount: number;
219
+ currency: string;
220
+ interval: "one_time" | "day" | "week" | "month" | "year";
221
+ intervalCount?: number;
222
+ usageType?: "licensed" | "metered";
223
+ nickname?: string;
224
+ description?: string;
225
+ features?: string[];
226
+ token?: number;
227
+ isTrial?: boolean;
228
+ platformFeatures?: string[];
229
+ };
230
+
216
231
  type PriceEditorProps = {
217
232
  productId?: string;
218
233
  price?: StripePriceInterface;
234
+ /**
235
+ * Pre-fills a NEW price — the Clone (a row in the prices list) and Import (a
236
+ * JSON document) paths both hand over the same seed.
237
+ *
238
+ * The seed deliberately carries NO identity: no Stripe price id, no internal
239
+ * id and no product id. A clone/import is a brand-new price, minted fresh by
240
+ * Stripe and attached to whatever product this editor is mounted for
241
+ * (`productId` / the context), so copying any identity across would either
242
+ * collide or silently re-point the new price at the source environment's
243
+ * objects. Seeding therefore never makes this an edit — see `isEdit` below.
244
+ */
245
+ seed?: StripePriceSeed;
219
246
  propagateChanges?: (price: StripePriceInterface) => void;
220
247
  onSuccess?: () => void | Promise<void>;
221
248
  trigger?: ReactNode;