@carlonicora/nextjs-jsonapi 3.9.0 → 3.11.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 (104) hide show
  1. package/dist/BlockNoteEditor-K55A4FS2.css +30 -0
  2. package/dist/BlockNoteEditor-K55A4FS2.css.map +1 -0
  3. package/dist/{BlockNoteEditor-RGMU2O24.mjs → BlockNoteEditor-NBHDEZ7W.mjs} +4 -4
  4. package/dist/{BlockNoteEditor-WY4LFMXQ.js → BlockNoteEditor-XOVNTXDY.js} +19 -19
  5. package/dist/{BlockNoteEditor-WY4LFMXQ.js.map → BlockNoteEditor-XOVNTXDY.js.map} +1 -1
  6. package/dist/{BlockNoteViewer-6N2GQWTI.js → BlockNoteViewer-C2UUOBAF.js} +17 -3
  7. package/dist/BlockNoteViewer-C2UUOBAF.js.map +1 -0
  8. package/dist/{BlockNoteViewer-IBQRJ3WM.mjs → BlockNoteViewer-TYLVTIUD.mjs} +17 -3
  9. package/dist/BlockNoteViewer-TYLVTIUD.mjs.map +1 -0
  10. package/dist/billing/index.css +22 -21
  11. package/dist/billing/index.css.map +1 -1
  12. package/dist/billing/index.js +398 -398
  13. package/dist/billing/index.mjs +3 -3
  14. package/dist/{chunk-UYLS3LJW.js → chunk-6J2SQZ3G.js} +11 -1
  15. package/dist/chunk-6J2SQZ3G.js.map +1 -0
  16. package/dist/{chunk-2D4MFVDV.mjs → chunk-IMSIVIIC.mjs} +2 -2
  17. package/dist/{chunk-HDZ2BL6D.mjs → chunk-M5QAHSCY.mjs} +11 -1
  18. package/dist/{chunk-HDZ2BL6D.mjs.map → chunk-M5QAHSCY.mjs.map} +1 -1
  19. package/dist/{chunk-TULJCLZA.js → chunk-V6CGCARD.js} +7 -7
  20. package/dist/{chunk-TULJCLZA.js.map → chunk-V6CGCARD.js.map} +1 -1
  21. package/dist/{chunk-7PNGCZES.mjs → chunk-XNGI4HDZ.mjs} +1529 -1286
  22. package/dist/chunk-XNGI4HDZ.mjs.map +1 -0
  23. package/dist/{chunk-DOLEXUO3.js → chunk-YN4LOVL4.js} +1301 -1058
  24. package/dist/chunk-YN4LOVL4.js.map +1 -0
  25. package/dist/client/index.css +22 -21
  26. package/dist/client/index.css.map +1 -1
  27. package/dist/client/index.js +4 -4
  28. package/dist/client/index.mjs +3 -3
  29. package/dist/components/index.css +22 -21
  30. package/dist/components/index.css.map +1 -1
  31. package/dist/components/index.d.mts +46 -14
  32. package/dist/components/index.d.ts +46 -14
  33. package/dist/components/index.js +8 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/index.mjs +7 -3
  36. package/dist/contexts/index.css +22 -21
  37. package/dist/contexts/index.css.map +1 -1
  38. package/dist/contexts/index.d.mts +28 -4
  39. package/dist/contexts/index.d.ts +28 -4
  40. package/dist/contexts/index.js +10 -4
  41. package/dist/contexts/index.js.map +1 -1
  42. package/dist/contexts/index.mjs +9 -3
  43. package/dist/core/index.d.mts +13 -0
  44. package/dist/core/index.d.ts +13 -0
  45. package/dist/core/index.js +2 -2
  46. package/dist/core/index.mjs +1 -1
  47. package/dist/features/help/index.css +22 -21
  48. package/dist/features/help/index.css.map +1 -1
  49. package/dist/features/help/index.d.mts +6 -1
  50. package/dist/features/help/index.d.ts +6 -1
  51. package/dist/features/help/index.js +39 -38
  52. package/dist/features/help/index.js.map +1 -1
  53. package/dist/features/help/index.mjs +4 -3
  54. package/dist/features/tokenusage/index.css +22 -21
  55. package/dist/features/tokenusage/index.css.map +1 -1
  56. package/dist/features/tokenusage/index.js +102 -102
  57. package/dist/features/tokenusage/index.js.map +1 -1
  58. package/dist/features/tokenusage/index.mjs +4 -4
  59. package/dist/features/tokenusage/index.mjs.map +1 -1
  60. package/dist/index.js +3 -3
  61. package/dist/index.mjs +2 -2
  62. package/dist/{onboarding.interface-Djyl9qYu.d.mts → onboarding.interface-DVUOUC4y.d.mts} +4 -1
  63. package/dist/{onboarding.interface-Djyl9qYu.d.ts → onboarding.interface-DVUOUC4y.d.ts} +4 -1
  64. package/dist/server/index.js +3 -3
  65. package/dist/server/index.mjs +1 -1
  66. package/package.json +2 -2
  67. package/src/components/containers/RoundPageContainer.tsx +2 -1
  68. package/src/components/containers/RoundPageContainerTitle.tsx +6 -1
  69. package/src/components/containers/TabsContainer.tsx +1 -0
  70. package/src/components/forms/EditorSheet.tsx +2 -1
  71. package/src/components/grids/ContentListGrid.tsx +1 -1
  72. package/src/components/navigations/Breadcrumb.tsx +21 -9
  73. package/src/components/navigations/Header.tsx +3 -1
  74. package/src/components/navigations/MobileNavigationBar.tsx +1 -0
  75. package/src/components/tables/ContentListTable.tsx +1 -1
  76. package/src/components/tables/ContentTableSearch.tsx +1 -0
  77. package/src/components/viewers/BlockNoteViewer.tsx +13 -2
  78. package/src/components/viewers/BlockNoteViewerContainer.tsx +4 -1
  79. package/src/contexts/BreadcrumbRootContext.tsx +28 -0
  80. package/src/contexts/index.ts +1 -0
  81. package/src/features/assistant/components/index.ts +2 -0
  82. package/src/features/assistant/components/parts/AssistantComposer.tsx +1 -1
  83. package/src/features/assistant/components/parts/__tests__/AssistantComposer.spec.tsx +2 -2
  84. package/src/features/assistant-action/components/ApprovalActionCard.tsx +325 -4
  85. package/src/features/assistant-action/components/__tests__/ApprovalActionCard.spec.tsx +268 -0
  86. package/src/features/assistant-action/data/AssistantAction.ts +12 -0
  87. package/src/features/assistant-action/data/AssistantActionInterface.ts +9 -0
  88. package/src/features/assistant-action/data/__tests__/AssistantAction.spec.ts +11 -0
  89. package/src/features/help/index.ts +1 -0
  90. package/src/features/onboarding/components/OnboardingCard.tsx +1 -2
  91. package/src/features/onboarding/contexts/OnboardingContext.spec.tsx +191 -0
  92. package/src/features/onboarding/contexts/OnboardingContext.tsx +176 -125
  93. package/src/features/onboarding/interfaces/onboarding.interface.ts +4 -0
  94. package/src/features/onboarding/styles/onboarding.css +25 -30
  95. package/src/features/tokenusage/components/TokenUsageReportFilterBar.tsx +1 -1
  96. package/dist/BlockNoteEditor-YOAJRPWU.css +0 -29
  97. package/dist/BlockNoteEditor-YOAJRPWU.css.map +0 -1
  98. package/dist/BlockNoteViewer-6N2GQWTI.js.map +0 -1
  99. package/dist/BlockNoteViewer-IBQRJ3WM.mjs.map +0 -1
  100. package/dist/chunk-7PNGCZES.mjs.map +0 -1
  101. package/dist/chunk-DOLEXUO3.js.map +0 -1
  102. package/dist/chunk-UYLS3LJW.js.map +0 -1
  103. /package/dist/{BlockNoteEditor-RGMU2O24.mjs.map → BlockNoteEditor-NBHDEZ7W.mjs.map} +0 -0
  104. /package/dist/{chunk-2D4MFVDV.mjs.map → chunk-IMSIVIIC.mjs.map} +0 -0
@@ -1,38 +1,33 @@
1
- /* Shepherd Modal Overlay */
2
- .shepherd-modal-overlay-container.shepherd-modal-is-visible {
3
- opacity: 1 !important;
1
+ /* driver.js chrome is hidden: the React card mounted by OnboardingContext is the whole popover. */
2
+ .driver-popover.onboarding-popover {
3
+ background: transparent;
4
+ box-shadow: none;
5
+ padding: 0;
6
+ border-radius: 0;
7
+ max-width: none;
8
+ width: auto;
9
+ /* The card is the popover; driver.js's own clipping would cut it off. */
10
+ overflow: visible;
11
+ color: inherit;
4
12
  }
5
13
 
6
- .shepherd-modal-overlay-container path {
7
- fill: rgba(0, 0, 0, 0.75) !important;
14
+ .driver-popover.onboarding-popover .driver-popover-title,
15
+ .driver-popover.onboarding-popover .driver-popover-description,
16
+ .driver-popover.onboarding-popover .driver-popover-footer,
17
+ .driver-popover.onboarding-popover .driver-popover-close-btn {
18
+ display: none;
8
19
  }
9
20
 
10
- /* Remove default shepherd styling - we use custom React card */
11
- .shepherd-element {
12
- background: transparent !important;
13
- border: none !important;
14
- box-shadow: none !important;
15
- padding: 0 !important;
16
- max-width: none !important;
21
+ /* Arrow colour follows the card surface so it reads as part of it. */
22
+ .driver-popover.onboarding-popover .driver-popover-arrow-side-top {
23
+ border-top-color: var(--card);
17
24
  }
18
-
19
- .shepherd-content,
20
- .shepherd-text {
21
- padding: 0 !important;
25
+ .driver-popover.onboarding-popover .driver-popover-arrow-side-bottom {
26
+ border-bottom-color: var(--card);
22
27
  }
23
-
24
- /* Arrow styling to match card background */
25
- .shepherd-arrow::before {
26
- background: hsl(var(--card)) !important;
28
+ .driver-popover.onboarding-popover .driver-popover-arrow-side-left {
29
+ border-left-color: var(--card);
27
30
  }
28
-
29
- /* Hide default Shepherd header and footer - we render custom ones */
30
- .shepherd-header,
31
- .shepherd-footer {
32
- display: none !important;
33
- }
34
-
35
- /* Dark mode support */
36
- .dark .shepherd-arrow::before {
37
- background: hsl(var(--card)) !important;
31
+ .driver-popover.onboarding-popover .driver-popover-arrow-side-right {
32
+ border-right-color: var(--card);
38
33
  }
@@ -22,7 +22,7 @@ type Props = {
22
22
  */
23
23
  export function TokenUsageReportFilterBar({ onChange }: Props) {
24
24
  return (
25
- <div className="flex flex-wrap items-center gap-2">
25
+ <div data-help="tokenusage.filters" className="flex flex-wrap items-center gap-2">
26
26
  <DateRangeSelector
27
27
  onDateChange={(range) => {
28
28
  if (!range?.from || !range?.to) return;
@@ -1,29 +0,0 @@
1
- /* src/features/onboarding/styles/onboarding.css */
2
- .shepherd-modal-overlay-container.shepherd-modal-is-visible {
3
- opacity: 1 !important;
4
- }
5
- .shepherd-modal-overlay-container path {
6
- fill: rgba(0, 0, 0, 0.75) !important;
7
- }
8
- .shepherd-element {
9
- background: transparent !important;
10
- border: none !important;
11
- box-shadow: none !important;
12
- padding: 0 !important;
13
- max-width: none !important;
14
- }
15
- .shepherd-content,
16
- .shepherd-text {
17
- padding: 0 !important;
18
- }
19
- .shepherd-arrow::before {
20
- background: hsl(var(--card)) !important;
21
- }
22
- .shepherd-header,
23
- .shepherd-footer {
24
- display: none !important;
25
- }
26
- .dark .shepherd-arrow::before {
27
- background: hsl(var(--card)) !important;
28
- }
29
- /*# sourceMappingURL=BlockNoteEditor-YOAJRPWU.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/features/onboarding/styles/onboarding.css"],"sourcesContent":["/* Shepherd Modal Overlay */\n.shepherd-modal-overlay-container.shepherd-modal-is-visible {\n opacity: 1 !important;\n}\n\n.shepherd-modal-overlay-container path {\n fill: rgba(0, 0, 0, 0.75) !important;\n}\n\n/* Remove default shepherd styling - we use custom React card */\n.shepherd-element {\n background: transparent !important;\n border: none !important;\n box-shadow: none !important;\n padding: 0 !important;\n max-width: none !important;\n}\n\n.shepherd-content,\n.shepherd-text {\n padding: 0 !important;\n}\n\n/* Arrow styling to match card background */\n.shepherd-arrow::before {\n background: hsl(var(--card)) !important;\n}\n\n/* Hide default Shepherd header and footer - we render custom ones */\n.shepherd-header,\n.shepherd-footer {\n display: none !important;\n}\n\n/* Dark mode support */\n.dark .shepherd-arrow::before {\n background: hsl(var(--card)) !important;\n}\n"],"mappings":";AACA,CAAC,gCAAgC,CAAC;AAChC,WAAS;AACX;AAEA,CAJC,iCAIiC;AAChC,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtB;AAGA,CAAC;AACC,cAAY;AACZ,UAAQ;AACR,cAAY;AACZ,WAAS;AACT,aAAW;AACb;AAEA,CAAC;AACD,CAAC;AACC,WAAS;AACX;AAGA,CAAC,cAAc;AACb,cAAY,IAAI,IAAI;AACtB;AAGA,CAAC;AACD,CAAC;AACC,WAAS;AACX;AAGA,CAAC,KAAK,CAXL,cAWoB;AACnB,cAAY,IAAI,IAAI;AACtB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/BlockNoteViewer-6N2GQWTI.js","../src/components/viewers/BlockNoteViewer.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,sDAA4B;AAC5B;AACA;ACHA,yCAAmC;AAKnC,2CAA8B;AAC9B,uCAAO;AACP,yCAAyB;AAoBhB,+CAAA;AAlBT,SAAS,SAAA,CAAU,OAAA,EAA8C;AAC/D,EAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAA,GAAK,OAAA,CAAQ,OAAA,EAAS,CAAA,EAAG,OAAO,OAAA;AACzD,EAAA,GAAA,CAAI,OAAO,QAAA,IAAY,SAAA,GAAY,OAAA,CAAQ,IAAA,CAAK,CAAA,EAAG;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AACjC,MAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,MAAM,EAAA,GAAK,MAAA,CAAO,OAAA,EAAS,CAAA,EAAG,OAAO,MAAA;AAAA,IACzD,EAAA,UAAQ;AAAA,IAER;AAAA,EACF;AACA,EAAA,OAAO,KAAA,CAAA;AACT;AAXS,qCAAA,SAAA,EAAA,WAAA,CAAA;AAaF,SAAS,eAAA,CAAgB,EAAE,QAAQ,CAAA,EAAyB;AACjE,EAAA,MAAM,OAAA,EAAS,uCAAA,EAAqB,cAAA,EAAgB,SAAA,CAAU,OAAO,EAAE,CAAC,CAAA;AAGxE,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,kCAAA,CAAS;AACnC,EAAA,uBAAO,6BAAA,qBAAC,EAAA,EAAc,MAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,KAAA,EAAO,cAAA,IAAkB,OAAA,EAAS,OAAA,EAAS,QAAA,CAAS,CAAA;AAC7G;AANgB,qCAAA,eAAA,EAAA,iBAAA,CAAA;ADKhB;AACE;AACF,0CAAC","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/BlockNoteViewer-6N2GQWTI.js","sourcesContent":[null,"\"use client\";\n\nimport { useCreateBlockNote } from \"@blocknote/react\";\nimport type { PartialBlock } from \"@blocknote/core\";\n// Mirror BlockNoteEditor.tsx's BlockNoteView import + style.css. Default schema\n// only — no useCurrentUserContext, uploadImage, AI, or custom inline specs, so\n// this can render on auth-free public pages.\nimport { BlockNoteView } from \"@blocknote/shadcn\";\nimport \"@blocknote/shadcn/style.css\";\nimport { useTheme } from \"next-themes\";\n\nfunction normalize(content: unknown): PartialBlock[] | undefined {\n if (Array.isArray(content) && content.length > 0) return content as PartialBlock[];\n if (typeof content === \"string\" && content.trim()) {\n try {\n const parsed = JSON.parse(content);\n if (Array.isArray(parsed) && parsed.length > 0) return parsed as PartialBlock[];\n } catch {\n /* plain string — fall through to undefined (rendered as empty) */\n }\n }\n return undefined;\n}\n\nexport function BlockNoteViewer({ content }: { content: unknown }) {\n const editor = useCreateBlockNote({ initialContent: normalize(content) });\n // Outside a next-themes ThemeProvider (public pages) resolvedTheme is\n // undefined, so this falls back to \"light\".\n const { resolvedTheme } = useTheme();\n return <BlockNoteView editor={editor} editable={false} theme={resolvedTheme === \"dark\" ? \"dark\" : \"light\"} />;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/viewers/BlockNoteViewer.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCreateBlockNote } from \"@blocknote/react\";\nimport type { PartialBlock } from \"@blocknote/core\";\n// Mirror BlockNoteEditor.tsx's BlockNoteView import + style.css. Default schema\n// only — no useCurrentUserContext, uploadImage, AI, or custom inline specs, so\n// this can render on auth-free public pages.\nimport { BlockNoteView } from \"@blocknote/shadcn\";\nimport \"@blocknote/shadcn/style.css\";\nimport { useTheme } from \"next-themes\";\n\nfunction normalize(content: unknown): PartialBlock[] | undefined {\n if (Array.isArray(content) && content.length > 0) return content as PartialBlock[];\n if (typeof content === \"string\" && content.trim()) {\n try {\n const parsed = JSON.parse(content);\n if (Array.isArray(parsed) && parsed.length > 0) return parsed as PartialBlock[];\n } catch {\n /* plain string — fall through to undefined (rendered as empty) */\n }\n }\n return undefined;\n}\n\nexport function BlockNoteViewer({ content }: { content: unknown }) {\n const editor = useCreateBlockNote({ initialContent: normalize(content) });\n // Outside a next-themes ThemeProvider (public pages) resolvedTheme is\n // undefined, so this falls back to \"light\".\n const { resolvedTheme } = useTheme();\n return <BlockNoteView editor={editor} editable={false} theme={resolvedTheme === \"dark\" ? \"dark\" : \"light\"} />;\n}\n"],"mappings":";;;;;;AAEA,SAAS,0BAA0B;AAKnC,SAAS,qBAAqB;AAC9B,OAAO;AACP,SAAS,gBAAgB;AAoBhB;AAlBT,SAAS,UAAU,SAA8C;AAC/D,MAAI,MAAM,QAAQ,OAAO,KAAK,QAAQ,SAAS,EAAG,QAAO;AACzD,MAAI,OAAO,YAAY,YAAY,QAAQ,KAAK,GAAG;AACjD,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,OAAO;AACjC,UAAI,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,EAAG,QAAO;AAAA,IACzD,QAAQ;AAAA,IAER;AAAA,EACF;AACA,SAAO;AACT;AAXS;AAaF,SAAS,gBAAgB,EAAE,QAAQ,GAAyB;AACjE,QAAM,SAAS,mBAAmB,EAAE,gBAAgB,UAAU,OAAO,EAAE,CAAC;AAGxE,QAAM,EAAE,cAAc,IAAI,SAAS;AACnC,SAAO,oBAAC,iBAAc,QAAgB,UAAU,OAAO,OAAO,kBAAkB,SAAS,SAAS,SAAS;AAC7G;AANgB;","names":[]}