@carlonicora/nextjs-jsonapi 5.3.0 → 5.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.
- package/dist/{BlockNoteEditor-WTSQANKI.mjs → BlockNoteEditor-GVQCKRMU.mjs} +9 -8
- package/dist/BlockNoteEditor-GVQCKRMU.mjs.map +1 -0
- package/dist/{BlockNoteEditor-UJ6363LC.js → BlockNoteEditor-THBJH2UR.js} +24 -23
- package/dist/BlockNoteEditor-THBJH2UR.js.map +1 -0
- package/dist/{BlockNoteViewer-JVKWJZ6J.mjs → BlockNoteViewer-U6E3DS4F.mjs} +3 -3
- package/dist/{BlockNoteViewer-EL4JFB6P.js → BlockNoteViewer-VZOVKTFO.js} +4 -4
- package/dist/{BlockNoteViewer-EL4JFB6P.js.map → BlockNoteViewer-VZOVKTFO.js.map} +1 -1
- package/dist/BlogCategoryFields-DO48vOTE.d.mts +14 -0
- package/dist/BlogCategoryFields-DO48vOTE.d.ts +14 -0
- package/dist/BlogPostInterface-BB_4wcDR.d.mts +124 -0
- package/dist/BlogPostInterface-bWAT1rfR.d.ts +124 -0
- package/dist/billing/index.js +442 -442
- package/dist/billing/index.mjs +4 -4
- package/dist/blog-public.types-BbrzsC1c.d.mts +30 -0
- package/dist/blog-public.types-BbrzsC1c.d.ts +30 -0
- package/dist/chunk-3CGROPF3.mjs +107 -0
- package/dist/chunk-3CGROPF3.mjs.map +1 -0
- package/dist/{chunk-QKZUE5OF.mjs → chunk-3YW35YHQ.mjs} +1 -101
- package/dist/chunk-3YW35YHQ.mjs.map +1 -0
- package/dist/{chunk-6WU74VFU.mjs → chunk-6SQYXUVP.mjs} +2 -2
- package/dist/{chunk-CRI4T47Y.js → chunk-G6UE6MEP.js} +814 -59
- package/dist/chunk-G6UE6MEP.js.map +1 -0
- package/dist/{chunk-XGTQWBDJ.js → chunk-KSYQEKJX.js} +11 -111
- package/dist/chunk-KSYQEKJX.js.map +1 -0
- package/dist/{chunk-EO75CV76.js → chunk-S4YJ5WCW.js} +8 -8
- package/dist/{chunk-EO75CV76.js.map → chunk-S4YJ5WCW.js.map} +1 -1
- package/dist/{chunk-3BAM23VA.js → chunk-TY5FYP3G.js} +930 -883
- package/dist/chunk-TY5FYP3G.js.map +1 -0
- package/dist/{chunk-JQWI62NV.mjs → chunk-VC5A3AUZ.mjs} +776 -21
- package/dist/chunk-VC5A3AUZ.mjs.map +1 -0
- package/dist/{chunk-FNTQQFLH.mjs → chunk-W7F5BDSV.mjs} +2 -2
- package/dist/{chunk-QQQE3N2X.js → chunk-WPYT4UKJ.js} +3 -3
- package/dist/{chunk-QQQE3N2X.js.map → chunk-WPYT4UKJ.js.map} +1 -1
- package/dist/{chunk-MIZTWBPX.mjs → chunk-X5WIUUNG.mjs} +1485 -1438
- package/dist/chunk-X5WIUUNG.mjs.map +1 -0
- package/dist/chunk-YDYVJM4I.js +107 -0
- package/dist/chunk-YDYVJM4I.js.map +1 -0
- package/dist/client/index.js +5 -5
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +4 -4
- package/dist/components/editors/server.d.mts +15 -0
- package/dist/components/editors/server.d.ts +15 -0
- package/dist/components/editors/server.js +38 -0
- package/dist/components/editors/server.js.map +1 -0
- package/dist/components/editors/server.mjs +38 -0
- package/dist/components/editors/server.mjs.map +1 -0
- package/dist/components/index.d.mts +46 -12
- package/dist/components/index.d.ts +46 -12
- package/dist/components/index.js +7 -5
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +8 -6
- package/dist/contexts/index.d.mts +9 -1
- package/dist/contexts/index.d.ts +9 -1
- package/dist/contexts/index.js +5 -5
- package/dist/contexts/index.mjs +4 -4
- package/dist/core/index.d.mts +214 -3
- package/dist/core/index.d.ts +214 -3
- package/dist/core/index.js +38 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +37 -3
- package/dist/email-automations/index.d.mts +3 -0
- package/dist/email-automations/index.d.ts +3 -0
- package/dist/email-automations/index.js +99 -95
- package/dist/email-automations/index.js.map +1 -1
- package/dist/email-automations/index.mjs +30 -26
- package/dist/email-automations/index.mjs.map +1 -1
- package/dist/features/analytics/index.d.mts +11 -4
- package/dist/features/analytics/index.d.ts +11 -4
- package/dist/features/analytics/index.js +127 -135
- package/dist/features/analytics/index.js.map +1 -1
- package/dist/features/analytics/index.mjs +16 -24
- package/dist/features/analytics/index.mjs.map +1 -1
- package/dist/features/analytics/server.d.mts +5 -2
- package/dist/features/analytics/server.d.ts +5 -2
- package/dist/features/analytics/server.js +9 -8
- package/dist/features/analytics/server.js.map +1 -1
- package/dist/features/analytics/server.mjs +7 -6
- package/dist/features/analytics/server.mjs.map +1 -1
- package/dist/features/blog/index.css +30 -0
- package/dist/features/blog/index.css.map +1 -0
- package/dist/features/blog/index.d.mts +276 -0
- package/dist/features/blog/index.d.ts +276 -0
- package/dist/features/blog/index.js +1810 -0
- package/dist/features/blog/index.js.map +1 -0
- package/dist/features/blog/index.mjs +1810 -0
- package/dist/features/blog/index.mjs.map +1 -0
- package/dist/features/blog/server.d.mts +36 -0
- package/dist/features/blog/server.d.ts +36 -0
- package/dist/features/blog/server.js +167 -0
- package/dist/features/blog/server.js.map +1 -0
- package/dist/features/blog/server.mjs +167 -0
- package/dist/features/blog/server.mjs.map +1 -0
- package/dist/features/help/index.js +38 -38
- package/dist/features/help/index.mjs +4 -4
- package/dist/features/tokenusage/index.d.mts +1 -3
- package/dist/features/tokenusage/index.d.ts +1 -3
- package/dist/features/tokenusage/index.js +127 -135
- package/dist/features/tokenusage/index.js.map +1 -1
- package/dist/features/tokenusage/index.mjs +10 -18
- package/dist/features/tokenusage/index.mjs.map +1 -1
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +39 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +38 -4
- package/dist/{s3.service-CY-jgOAM.d.ts → s3.service-Bz_K-tjz.d.ts} +11 -0
- package/dist/{s3.service-Sri0QP7Z.d.mts → s3.service-D5zNCEW3.d.mts} +11 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +9 -7
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +13 -11
- package/messages/en.json +93 -0
- package/messages/it.json +93 -0
- package/package.json +19 -1
- package/src/components/editors/BlockNoteEditor.tsx +13 -3
- package/src/components/editors/server/BlockNoteServerContent.tsx +28 -0
- package/src/components/editors/server/__tests__/renderBlockNoteHTML.spec.ts +44 -0
- package/src/components/editors/server/renderBlockNoteHTML.ts +26 -0
- package/src/components/editors/server-entry.ts +7 -0
- package/src/components/forms/FormBlockNote.tsx +4 -0
- package/src/components/index.ts +1 -0
- package/src/components/navigations/ContentTitle.tsx +14 -3
- package/src/components/viewers/BlockNoteStaticViewer.tsx +44 -0
- package/src/core/index.ts +4 -0
- package/src/core/registry/ModuleRegistry.ts +6 -0
- package/src/features/administration/components/AdminIndexContainer.tsx +61 -33
- package/src/features/administration/components/__tests__/AdminIndexContainer.spec.tsx +61 -1
- package/src/features/administration/components/index.ts +2 -1
- package/src/features/administration/contexts/AdministrationContext.tsx +11 -3
- package/src/features/administration/contexts/__tests__/AdministrationContext.spec.tsx +40 -0
- package/src/features/ai-connection/ai-connection.module.ts +2 -0
- package/src/features/ai-connection/contexts/AiConnectionsContext.tsx +3 -16
- package/src/features/ai-connection/contexts/__tests__/AiConnectionsContext.spec.tsx +33 -0
- package/src/features/analytics/__tests__/server-entry.spec.tsx +2 -1
- package/src/features/analytics/analytics.modules.ts +22 -5
- package/src/features/analytics/components/AnalyticsAdminContainer.tsx +4 -3
- package/src/features/analytics/components/AnalyticsAdminPageContainer.tsx +6 -3
- package/src/features/analytics/components/AnalyticsJourneyContainer.tsx +4 -3
- package/src/features/analytics/components/__tests__/AnalyticsJourneyContainer.spec.tsx +11 -0
- package/src/features/analytics/components/__tests__/AnalyticsPageContainers.spec.tsx +12 -1
- package/src/features/analytics/components/server/AnalyticsAdminPage.tsx +6 -3
- package/src/features/analytics/contexts/AnalyticsAdminContext.tsx +8 -17
- package/src/features/analytics/contexts/__tests__/AnalyticsAdminContext.spec.tsx +17 -0
- package/src/features/billing/stripe-price/stripe-price.module.ts +2 -0
- package/src/features/billing/stripe-product/stripe-product.module.ts +2 -0
- package/src/features/blog/BlogModules.ts +49 -0
- package/src/features/blog/components/admin/BlogAdminContainer.tsx +39 -0
- package/src/features/blog/components/admin/BlogCategoriesList.tsx +56 -0
- package/src/features/blog/components/admin/BlogCategoryEditor.tsx +230 -0
- package/src/features/blog/components/admin/BlogCoverImageField.tsx +123 -0
- package/src/features/blog/components/admin/BlogLayoutSetting.tsx +86 -0
- package/src/features/blog/components/admin/BlogPostComparison.tsx +54 -0
- package/src/features/blog/components/admin/BlogPostContainer.tsx +101 -0
- package/src/features/blog/components/admin/BlogPostDeleter.tsx +35 -0
- package/src/features/blog/components/admin/BlogPostEditor.tsx +216 -0
- package/src/features/blog/components/admin/BlogPostPublishButton.tsx +50 -0
- package/src/features/blog/components/admin/BlogPostTranslationEditor.tsx +118 -0
- package/src/features/blog/components/admin/BlogPostTranslationPanel.tsx +136 -0
- package/src/features/blog/components/admin/BlogPostsList.tsx +58 -0
- package/src/features/blog/components/admin/BlogTranslationStatus.tsx +104 -0
- package/src/features/blog/components/admin/__tests__/BlogPostTranslationPanel.spec.tsx +100 -0
- package/src/features/blog/components/admin/__tests__/BlogPostsList.spec.tsx +30 -0
- package/src/features/blog/components/admin/index.ts +14 -0
- package/src/features/blog/components/public/BlogCategoryChips.tsx +59 -0
- package/src/features/blog/components/public/BlogList.tsx +21 -0
- package/src/features/blog/components/public/BlogListColumn.tsx +53 -0
- package/src/features/blog/components/public/BlogListFeatured.tsx +57 -0
- package/src/features/blog/components/public/BlogListParts.tsx +74 -0
- package/src/features/blog/components/public/BlogListRail.tsx +62 -0
- package/src/features/blog/components/public/BlogPostCard.tsx +125 -0
- package/src/features/blog/components/public/BlogPostMeta.tsx +49 -0
- package/src/features/blog/components/public/BlogPostView.tsx +80 -0
- package/src/features/blog/components/public/BlogSearchBox.tsx +52 -0
- package/src/features/blog/components/public/__tests__/BlogList.spec.tsx +175 -0
- package/src/features/blog/components/public/__tests__/BlogPostView.spec.tsx +134 -0
- package/src/features/blog/components/public/blogPublicHelpers.ts +30 -0
- package/src/features/blog/components/public/index.ts +3 -0
- package/src/features/blog/contexts/BlogPostContext.tsx +66 -0
- package/src/features/blog/contexts/index.ts +1 -0
- package/src/features/blog/data/BlogCategory.ts +93 -0
- package/src/features/blog/data/BlogCategoryFields.ts +4 -0
- package/src/features/blog/data/BlogCategoryInterface.ts +24 -0
- package/src/features/blog/data/BlogCategoryService.ts +54 -0
- package/src/features/blog/data/BlogCategoryTranslation.ts +90 -0
- package/src/features/blog/data/BlogCategoryTranslationInterface.ts +22 -0
- package/src/features/blog/data/BlogCategoryTranslationService.ts +30 -0
- package/src/features/blog/data/BlogPost.spec.ts +123 -0
- package/src/features/blog/data/BlogPost.ts +159 -0
- package/src/features/blog/data/BlogPostFields.ts +7 -0
- package/src/features/blog/data/BlogPostInterface.ts +39 -0
- package/src/features/blog/data/BlogPostService.ts +82 -0
- package/src/features/blog/data/BlogPostTranslation.spec.ts +73 -0
- package/src/features/blog/data/BlogPostTranslation.ts +110 -0
- package/src/features/blog/data/BlogPostTranslationInterface.ts +27 -0
- package/src/features/blog/data/BlogPostTranslationService.ts +30 -0
- package/src/features/blog/data/BlogSettings.ts +37 -0
- package/src/features/blog/data/BlogSettingsInterface.ts +11 -0
- package/src/features/blog/data/BlogSettingsService.ts +24 -0
- package/src/features/blog/data/index.ts +17 -0
- package/src/features/blog/hooks/index.ts +3 -0
- package/src/features/blog/hooks/useBlogCategoryNames.ts +34 -0
- package/src/features/blog/hooks/useBlogCategoryTableStructure.tsx +84 -0
- package/src/features/blog/hooks/useBlogPostTableStructure.tsx +126 -0
- package/src/features/blog/index.ts +15 -0
- package/src/features/blog/server/fetchers.ts +169 -0
- package/src/features/blog/server/toPublic.spec.ts +91 -0
- package/src/features/blog/server/toPublic.ts +36 -0
- package/src/features/blog/server-entry.ts +17 -0
- package/src/features/blog/types/blog-public.types.ts +34 -0
- package/src/features/blog/types/blog.constants.ts +40 -0
- package/src/features/email-automation/components/containers/EmailAutomationsListContainer.tsx +12 -3
- package/src/features/rbac/contexts/RbacContext.tsx +4 -7
- package/src/features/rbac/contexts/__tests__/RbacContext.spec.tsx +42 -0
- package/src/features/s3/data/s3.service.ts +17 -0
- package/src/features/tokenusage/components/TokenUsageAdminContainer.tsx +4 -3
- package/src/features/tokenusage/contexts/TokenUsageAdminContext.tsx +3 -18
- package/src/features/tokenusage/contexts/__tests__/TokenUsageAdminContext.spec.tsx +17 -0
- package/src/features/tokenusage/tokenusage-admin.module.ts +4 -3
- package/src/features/tokenusage/tokenusage.modules.ts +12 -2
- package/src/features/user/contexts/UserContext.tsx +18 -3
- package/src/features/user/contexts/__tests__/UserContext.spec.tsx +95 -0
- package/dist/BlockNoteEditor-UJ6363LC.js.map +0 -1
- package/dist/BlockNoteEditor-WTSQANKI.mjs.map +0 -1
- package/dist/chunk-3BAM23VA.js.map +0 -1
- package/dist/chunk-CRI4T47Y.js.map +0 -1
- package/dist/chunk-JQWI62NV.mjs.map +0 -1
- package/dist/chunk-MIZTWBPX.mjs.map +0 -1
- package/dist/chunk-QKZUE5OF.mjs.map +0 -1
- package/dist/chunk-XGTQWBDJ.js.map +0 -1
- /package/dist/{BlockNoteViewer-JVKWJZ6J.mjs.map → BlockNoteViewer-U6E3DS4F.mjs.map} +0 -0
- /package/dist/{chunk-6WU74VFU.mjs.map → chunk-6SQYXUVP.mjs.map} +0 -0
- /package/dist/{chunk-FNTQQFLH.mjs.map → chunk-W7F5BDSV.mjs.map} +0 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
var _chunkG4JR3SFVjs = require('./chunk-G4JR3SFV.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkG6UE6MEPjs = require('./chunk-G6UE6MEP.js');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
|
|
11
|
+
|
|
12
|
+
// src/server/cache.ts
|
|
13
|
+
var _cache = require('next/cache');
|
|
14
|
+
async function invalidateCacheTag(tag, profile = "max") {
|
|
15
|
+
_cache.revalidateTag.call(void 0, tag, profile);
|
|
16
|
+
}
|
|
17
|
+
_chunk7QVYU63Ejs.__name.call(void 0, invalidateCacheTag, "invalidateCacheTag");
|
|
18
|
+
async function invalidateCacheTags(tags, profile = "max") {
|
|
19
|
+
for (const tag of tags) {
|
|
20
|
+
_cache.revalidateTag.call(void 0, tag, profile);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
_chunk7QVYU63Ejs.__name.call(void 0, invalidateCacheTags, "invalidateCacheTags");
|
|
24
|
+
async function updateCacheTag(tag) {
|
|
25
|
+
_cache.updateTag.call(void 0, tag);
|
|
26
|
+
}
|
|
27
|
+
_chunk7QVYU63Ejs.__name.call(void 0, updateCacheTag, "updateCacheTag");
|
|
28
|
+
|
|
29
|
+
// src/server/ServerSession.ts
|
|
30
|
+
var _headers = require('next/headers');
|
|
31
|
+
var _navigation = require('next/navigation');
|
|
32
|
+
var _server = require('next/server');
|
|
33
|
+
var _pako = require('pako');
|
|
34
|
+
var ServerSession = class {
|
|
35
|
+
static {
|
|
36
|
+
_chunk7QVYU63Ejs.__name.call(void 0, this, "ServerSession");
|
|
37
|
+
}
|
|
38
|
+
static async read() {
|
|
39
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
40
|
+
const headerStore = await _headers.headers.call(void 0, );
|
|
41
|
+
const token = _optionalChain([cookieStore, 'access', _ => _.get, 'call', _2 => _2("token"), 'optionalAccess', _3 => _3.value]) || void 0;
|
|
42
|
+
const roles = _optionalChain([cookieStore, 'access', _4 => _4.get, 'call', _5 => _5("roles"), 'optionalAccess', _6 => _6.value]);
|
|
43
|
+
const viewportCookie = _optionalChain([cookieStore, 'access', _7 => _7.get, 'call', _8 => _8(_chunkG6UE6MEPjs.VIEWPORT_COOKIE_NAME), 'optionalAccess', _9 => _9.value]);
|
|
44
|
+
return {
|
|
45
|
+
isLogged: !!token,
|
|
46
|
+
isAdministrator: !!roles && roles.includes(_chunkG4JR3SFVjs.getRoleId.call(void 0, ).Administrator),
|
|
47
|
+
token,
|
|
48
|
+
sidebarOpen: _optionalChain([cookieStore, 'access', _10 => _10.get, 'call', _11 => _11("sidebar_state"), 'optionalAccess', _12 => _12.value]) !== "false",
|
|
49
|
+
isMobile: viewportCookie ? viewportCookie === "1" : _server.userAgent.call(void 0, { headers: headerStore }).device.type === "mobile"
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
static async isLogged() {
|
|
53
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
54
|
+
const token = cookieStore.get("token");
|
|
55
|
+
if (!token || !token.value) return false;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
static async companyId() {
|
|
59
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
60
|
+
return _nullishCoalesce(_optionalChain([cookieStore, 'access', _13 => _13.get, 'call', _14 => _14("companyId"), 'optionalAccess', _15 => _15.value]), () => ( ""));
|
|
61
|
+
}
|
|
62
|
+
static async userId() {
|
|
63
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
64
|
+
return _nullishCoalesce(_optionalChain([cookieStore, 'access', _16 => _16.get, 'call', _17 => _17("userId"), 'optionalAccess', _18 => _18.value]), () => ( ""));
|
|
65
|
+
}
|
|
66
|
+
static async checkPermission(params) {
|
|
67
|
+
if (!await this.hasPermissionToModule(params)) _navigation.redirect.call(void 0, `/401`);
|
|
68
|
+
}
|
|
69
|
+
static async hasRole(roleId) {
|
|
70
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
71
|
+
const roles = _optionalChain([cookieStore, 'access', _19 => _19.get, 'call', _20 => _20("roles"), 'optionalAccess', _21 => _21.value]);
|
|
72
|
+
if (!roles || !roles.includes(roleId)) return false;
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
static async hasFeature(featureId) {
|
|
76
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
77
|
+
const features = _optionalChain([cookieStore, 'access', _22 => _22.get, 'call', _23 => _23("features"), 'optionalAccess', _24 => _24.value]);
|
|
78
|
+
if (!features || !features.includes(featureId)) return false;
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
static async hasPermissionToModule(params) {
|
|
82
|
+
const cookieStore = await _headers.cookies.call(void 0, );
|
|
83
|
+
if (params.module.feature) {
|
|
84
|
+
const features = _optionalChain([cookieStore, 'access', _25 => _25.get, 'call', _26 => _26("features"), 'optionalAccess', _27 => _27.value]);
|
|
85
|
+
if (features && !features.includes(params.module.feature)) return false;
|
|
86
|
+
}
|
|
87
|
+
const rawModules = _optionalChain([cookieStore, 'access', _28 => _28.get, 'call', _29 => _29("modules"), 'optionalAccess', _30 => _30.value]);
|
|
88
|
+
if (!rawModules) return false;
|
|
89
|
+
const modules = JSON.parse(_pako.ungzip.call(void 0, Buffer.from(rawModules, "base64"), { toText: true }));
|
|
90
|
+
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
91
|
+
return _chunkG6UE6MEPjs.checkPermissionsFromServer.call(void 0, {
|
|
92
|
+
module: params.module,
|
|
93
|
+
action: params.action,
|
|
94
|
+
data: params.data,
|
|
95
|
+
userId: await this.userId(),
|
|
96
|
+
selectedModule
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
exports.invalidateCacheTag = invalidateCacheTag; exports.invalidateCacheTags = invalidateCacheTags; exports.updateCacheTag = updateCacheTag; exports.ServerSession = ServerSession;
|
|
107
|
+
//# sourceMappingURL=chunk-YDYVJM4I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-YDYVJM4I.js","../src/server/cache.ts","../src/server/ServerSession.ts"],"names":[],"mappings":"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","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-YDYVJM4I.js","sourcesContent":[null,"// Server-only utilities (NOT server actions - these cannot be called from client components)\n\nimport { revalidateTag, updateTag } from \"next/cache\";\n\nimport type { CacheProfile } from \"./cacheProfiles\";\n\nexport { CACHE_PROFILES, type CacheProfile } from \"./cacheProfiles\";\n\n/**\n * Revalidate a cache tag to invalidate cached data.\n * Next.js 16+ requires a profile parameter.\n *\n * With `\"max\"` the tagged entries are marked stale and served stale-while-revalidate\n * (a one-year window): the next request still gets the old data while fresh data loads\n * in the background. It is not an immediate invalidation. A Server Action that must\n * read its own write uses `updateCacheTag` instead.\n *\n * @param tag - The cache tag to invalidate\n * @param profile - The cache profile whose `expire` bounds how long stale data may be served (defaults to \"max\")\n */\nexport async function invalidateCacheTag(tag: string, profile: CacheProfile = \"max\"): Promise<void> {\n revalidateTag(tag, profile);\n}\n\n/**\n * Revalidate multiple cache tags.\n *\n * @param tags - Array of cache tags to invalidate\n * @param profile - The cache profile, see `invalidateCacheTag` (defaults to \"max\", stale-while-revalidate)\n */\nexport async function invalidateCacheTags(tags: string[], profile: CacheProfile = \"max\"): Promise<void> {\n for (const tag of tags) {\n revalidateTag(tag, profile);\n }\n}\n\n/**\n * Expire a cache tag immediately, so the same request reads fresh data (read-your-own-writes).\n * Wraps `updateTag`, which works in Server Actions only. Route Handlers use `invalidateCacheTag`.\n *\n * @param tag - The cache tag to expire\n */\nexport async function updateCacheTag(tag: string): Promise<void> {\n updateTag(tag);\n}\n","import { cookies, headers } from \"next/headers\";\nimport { redirect } from \"next/navigation\";\nimport { userAgent } from \"next/server\";\nimport { ungzip } from \"pako\";\nimport { Action, checkPermissionsFromServer, ModuleWithPermissions } from \"../permissions\";\nimport { getRoleId } from \"../roles/config\";\nimport { VIEWPORT_COOKIE_NAME } from \"../utils/use-mobile\";\n\nexport interface SessionSnapshot {\n isLogged: boolean;\n isAdministrator: boolean;\n token?: string;\n sidebarOpen: boolean;\n isMobile: boolean;\n}\n\nexport class ServerSession {\n static async read(): Promise<SessionSnapshot> {\n const cookieStore = await cookies();\n const headerStore = await headers();\n\n const token = cookieStore.get(\"token\")?.value || undefined;\n const roles = cookieStore.get(\"roles\")?.value;\n const viewportCookie = cookieStore.get(VIEWPORT_COOKIE_NAME)?.value;\n\n return {\n isLogged: !!token,\n isAdministrator: !!roles && roles.includes(getRoleId().Administrator),\n token,\n sidebarOpen: cookieStore.get(\"sidebar_state\")?.value !== \"false\",\n isMobile: viewportCookie ? viewportCookie === \"1\" : userAgent({ headers: headerStore }).device.type === \"mobile\",\n };\n }\n\n static async isLogged() {\n const cookieStore = await cookies();\n const token = cookieStore.get(\"token\");\n\n if (!token || !token.value) return false;\n return true;\n }\n\n static async companyId() {\n const cookieStore = await cookies();\n return cookieStore.get(\"companyId\")?.value ?? \"\";\n }\n\n static async userId() {\n const cookieStore = await cookies();\n return cookieStore.get(\"userId\")?.value ?? \"\";\n }\n\n static async checkPermission<M extends ModuleWithPermissions>(params: { module: M; action: Action; data?: any }) {\n if (!(await this.hasPermissionToModule(params))) redirect(`/401`);\n }\n\n static async hasRole(roleId: string): Promise<boolean> {\n const cookieStore = await cookies();\n const roles = cookieStore.get(\"roles\")?.value;\n\n if (!roles || !roles.includes(roleId)) return false;\n\n return true;\n }\n\n static async hasFeature(featureId: string): Promise<boolean> {\n const cookieStore = await cookies();\n const features = cookieStore.get(\"features\")?.value;\n\n if (!features || !features.includes(featureId)) return false;\n\n return true;\n }\n\n static async hasPermissionToModule<M extends ModuleWithPermissions>(params: {\n module: M;\n action: Action;\n data?: any;\n }): Promise<boolean> {\n const cookieStore = await cookies();\n\n if (params.module.feature) {\n const features = cookieStore.get(\"features\")?.value;\n\n if (features && !features.includes(params.module.feature)) return false;\n }\n\n const rawModules = cookieStore.get(\"modules\")?.value;\n if (!rawModules) return false;\n\n const modules: {\n id: string;\n permissions: {\n create: boolean | string;\n read: boolean | string;\n update: boolean | string;\n delete: boolean | string;\n };\n }[] = JSON.parse(ungzip(Buffer.from(rawModules, \"base64\"), { toText: true }));\n\n const selectedModule = modules.find((module) => module.id === params.module.moduleId);\n\n return checkPermissionsFromServer({\n module: params.module,\n action: params.action,\n data: params.data,\n userId: await this.userId(),\n selectedModule: selectedModule,\n });\n\n // if (!selectedModule) return false;\n\n // if (!selectedModule.permissions[params.action]) return false;\n // if (typeof selectedModule.permissions[params.action] === \"boolean\")\n // return selectedModule.permissions[params.action] as boolean;\n\n // if (!params.data) return false;\n\n // return params.data[selectedModule.permissions[params.action] as string] === this.userId;\n }\n}\n"]}
|
package/dist/client/index.js
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunkTY5FYP3Gjs = require('../chunk-TY5FYP3G.js');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
|
|
@@ -39,7 +39,7 @@ var _chunk3BAM23VAjs = require('../chunk-3BAM23VA.js');
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
var
|
|
42
|
+
var _chunkS4YJ5WCWjs = require('../chunk-S4YJ5WCW.js');
|
|
43
43
|
require('../chunk-G4JR3SFV.js');
|
|
44
44
|
|
|
45
45
|
|
|
@@ -58,14 +58,14 @@ require('../chunk-G4JR3SFV.js');
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
var
|
|
61
|
+
var _chunkG6UE6MEPjs = require('../chunk-G6UE6MEP.js');
|
|
62
|
+
require('../chunk-GHE4VT2R.js');
|
|
62
63
|
|
|
63
64
|
|
|
64
65
|
var _chunkLXKSUWAVjs = require('../chunk-LXKSUWAV.js');
|
|
65
66
|
|
|
66
67
|
|
|
67
68
|
var _chunkJTPRJNT2js = require('../chunk-JTPRJNT2.js');
|
|
68
|
-
require('../chunk-GHE4VT2R.js');
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
|
|
@@ -130,5 +130,5 @@ require('../chunk-7QVYU63E.js');
|
|
|
130
130
|
|
|
131
131
|
|
|
132
132
|
|
|
133
|
-
exports.ClientJsonApiDelete =
|
|
133
|
+
exports.ClientJsonApiDelete = _chunkG6UE6MEPjs.ClientJsonApiDelete; exports.ClientJsonApiGet = _chunkG6UE6MEPjs.ClientJsonApiGet; exports.ClientJsonApiPatch = _chunkG6UE6MEPjs.ClientJsonApiPatch; exports.ClientJsonApiPost = _chunkG6UE6MEPjs.ClientJsonApiPost; exports.ClientJsonApiPut = _chunkG6UE6MEPjs.ClientJsonApiPut; exports.JsonApiContext = _chunk3EPNHTMHjs.JsonApiContext; exports.JsonApiProvider = _chunkTY5FYP3Gjs.JsonApiProvider; exports.TableGeneratorRegistry = _chunkTY5FYP3Gjs.TableGeneratorRegistry; exports.buildClientUrl = _chunkG6UE6MEPjs.buildClientUrl; exports.computeLayeredLayout = _chunkTY5FYP3Gjs.computeLayeredLayout; exports.configureClientConfig = _chunkS4YJ5WCWjs.configureClientConfig; exports.configureClientJsonApi = _chunkG6UE6MEPjs.configureClientJsonApi; exports.configureI18n = _chunkG6UE6MEPjs.configureI18n; exports.configureJsonApi = _chunkS4YJ5WCWjs.configureJsonApi; exports.directFetch = _chunkJTPRJNT2js.directFetch; exports.fitLayeredLayoutToAspectRatio = _chunkTY5FYP3Gjs.fitLayeredLayoutToAspectRatio; exports.getApiUrl = _chunkS4YJ5WCWjs.getApiUrl; exports.getAppUrl = _chunkS4YJ5WCWjs.getAppUrl; exports.getClientApiUrl = _chunkG6UE6MEPjs.getClientApiUrl; exports.getClientAppUrl = _chunkG6UE6MEPjs.getClientAppUrl; exports.getClientToken = _chunkLXKSUWAVjs.getClientToken; exports.getClientTrackablePages = _chunkG6UE6MEPjs.getClientTrackablePages; exports.getI18nLink = _chunkG6UE6MEPjs.getI18nLink; exports.getPublicApiUrl = _chunkS4YJ5WCWjs.getPublicApiUrl; exports.getStripePublishableKey = _chunkS4YJ5WCWjs.getStripePublishableKey; exports.getTrackablePages = _chunkS4YJ5WCWjs.getTrackablePages; exports.registerTableGenerator = _chunkTY5FYP3Gjs.registerTableGenerator; exports.tableGeneratorRegistry = _chunkTY5FYP3Gjs.tableGeneratorRegistry; exports.useContentTableStructure = _chunkTY5FYP3Gjs.useContentTableStructure; exports.useCustomD3Graph = _chunkTY5FYP3Gjs.useCustomD3Graph; exports.useDataListRetriever = _chunkTY5FYP3Gjs.useDataListRetriever; exports.useDebounce = _chunkTY5FYP3Gjs.useDebounce; exports.useI18nDateFnsLocale = _chunkG6UE6MEPjs.useI18nDateFnsLocale; exports.useI18nLocale = _chunkG6UE6MEPjs.useI18nLocale; exports.useI18nRouter = _chunkG6UE6MEPjs.useI18nRouter; exports.useI18nTranslations = _chunkG6UE6MEPjs.useI18nTranslations; exports.useJsonApiConfig = _chunk3EPNHTMHjs.useJsonApiConfig; exports.useJsonApiConfigOptional = _chunk3EPNHTMHjs.useJsonApiConfigOptional; exports.useJsonApiGet = _chunkTY5FYP3Gjs.useJsonApiGet; exports.useJsonApiMutation = _chunkTY5FYP3Gjs.useJsonApiMutation; exports.useNotificationSync = _chunkTY5FYP3Gjs.useNotificationSync; exports.useOAuthClient = _chunkTY5FYP3Gjs.useOAuthClient; exports.useOAuthClients = _chunkTY5FYP3Gjs.useOAuthClients; exports.useOAuthConsent = _chunkTY5FYP3Gjs.useOAuthConsent; exports.useOAuthScopeText = _chunkTY5FYP3Gjs.useOAuthScopeText; exports.usePageTracker = _chunkTY5FYP3Gjs.usePageTracker; exports.usePageUrlGenerator = _chunkTY5FYP3Gjs.usePageUrlGenerator; exports.usePushNotifications = _chunkTY5FYP3Gjs.usePushNotifications; exports.useRehydration = _chunkTY5FYP3Gjs.useRehydration; exports.useRehydrationList = _chunkTY5FYP3Gjs.useRehydrationList; exports.useRoleTableStructure = _chunkTY5FYP3Gjs.useRoleTableStructure; exports.useSocket = _chunkTY5FYP3Gjs.useSocket; exports.useSubscriptionStatus = _chunkTY5FYP3Gjs.useSubscriptionStatus; exports.useTableGenerator = _chunkTY5FYP3Gjs.useTableGenerator; exports.useUrlRewriter = _chunkTY5FYP3Gjs.useUrlRewriter; exports.useUserSearch = _chunkTY5FYP3Gjs.useUserSearch; exports.useUserTableStructure = _chunkTY5FYP3Gjs.useUserTableStructure;
|
|
134
134
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/client/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/client/index.js"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yjHAAC","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/client/index.js"}
|
package/dist/client/index.mjs
CHANGED
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
useUrlRewriter,
|
|
30
30
|
useUserSearch,
|
|
31
31
|
useUserTableStructure
|
|
32
|
-
} from "../chunk-
|
|
32
|
+
} from "../chunk-X5WIUUNG.mjs";
|
|
33
33
|
import {
|
|
34
34
|
configureClientConfig,
|
|
35
35
|
configureJsonApi,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
getPublicApiUrl,
|
|
39
39
|
getStripePublishableKey,
|
|
40
40
|
getTrackablePages
|
|
41
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-6SQYXUVP.mjs";
|
|
42
42
|
import "../chunk-PW42LRSL.mjs";
|
|
43
43
|
import {
|
|
44
44
|
ClientJsonApiDelete,
|
|
@@ -57,14 +57,14 @@ import {
|
|
|
57
57
|
useI18nLocale,
|
|
58
58
|
useI18nRouter,
|
|
59
59
|
useI18nTranslations
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-VC5A3AUZ.mjs";
|
|
61
|
+
import "../chunk-V5MI7RNB.mjs";
|
|
61
62
|
import {
|
|
62
63
|
getClientToken
|
|
63
64
|
} from "../chunk-AUXK7QSA.mjs";
|
|
64
65
|
import {
|
|
65
66
|
directFetch
|
|
66
67
|
} from "../chunk-PI56A4DG.mjs";
|
|
67
|
-
import "../chunk-V5MI7RNB.mjs";
|
|
68
68
|
import {
|
|
69
69
|
JsonApiContext,
|
|
70
70
|
useJsonApiConfig,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PartialBlock } from '@blocknote/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Read-only rich text rendered on the server, so the text is in the HTML that
|
|
6
|
+
* crawlers read. For public read-only pages only: everywhere else, display goes
|
|
7
|
+
* through BlockNoteEditorContainer.
|
|
8
|
+
*/
|
|
9
|
+
declare function BlockNoteServerContent({ content, size, className, }: {
|
|
10
|
+
content?: PartialBlock[];
|
|
11
|
+
size?: "default" | "sm";
|
|
12
|
+
className?: string;
|
|
13
|
+
}): Promise<React.JSX.Element | null>;
|
|
14
|
+
|
|
15
|
+
export { BlockNoteServerContent };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PartialBlock } from '@blocknote/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Read-only rich text rendered on the server, so the text is in the HTML that
|
|
6
|
+
* crawlers read. For public read-only pages only: everywhere else, display goes
|
|
7
|
+
* through BlockNoteEditorContainer.
|
|
8
|
+
*/
|
|
9
|
+
declare function BlockNoteServerContent({ content, size, className, }: {
|
|
10
|
+
content?: PartialBlock[];
|
|
11
|
+
size?: "default" | "sm";
|
|
12
|
+
className?: string;
|
|
13
|
+
}): Promise<React.JSX.Element | null>;
|
|
14
|
+
|
|
15
|
+
export { BlockNoteServerContent };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk7QVYU63Ejs = require('../../chunk-7QVYU63E.js');
|
|
4
|
+
|
|
5
|
+
// src/components/editors/server/BlockNoteServerContent.tsx
|
|
6
|
+
require('@blocknote/shadcn/style.css');
|
|
7
|
+
var _components = require('@carlonicora/nextjs-jsonapi/components');
|
|
8
|
+
|
|
9
|
+
// src/components/editors/server/renderBlockNoteHTML.ts
|
|
10
|
+
var _serverutil = require('@blocknote/server-util');
|
|
11
|
+
var editor;
|
|
12
|
+
var queue = Promise.resolve();
|
|
13
|
+
function renderBlockNoteHTML(blocks) {
|
|
14
|
+
const run = queue.then(() => {
|
|
15
|
+
editor ??= _serverutil.ServerBlockNoteEditor.create();
|
|
16
|
+
return editor.blocksToFullHTML(blocks);
|
|
17
|
+
});
|
|
18
|
+
queue = run.catch(() => void 0);
|
|
19
|
+
return run;
|
|
20
|
+
}
|
|
21
|
+
_chunk7QVYU63Ejs.__name.call(void 0, renderBlockNoteHTML, "renderBlockNoteHTML");
|
|
22
|
+
|
|
23
|
+
// src/components/editors/server/BlockNoteServerContent.tsx
|
|
24
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
25
|
+
async function BlockNoteServerContent({
|
|
26
|
+
content,
|
|
27
|
+
size,
|
|
28
|
+
className
|
|
29
|
+
}) {
|
|
30
|
+
if (!Array.isArray(content) || content.length === 0) return null;
|
|
31
|
+
const html = await renderBlockNoteHTML(content);
|
|
32
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _components.BlockNoteStaticViewer, { html, size, className });
|
|
33
|
+
}
|
|
34
|
+
_chunk7QVYU63Ejs.__name.call(void 0, BlockNoteServerContent, "BlockNoteServerContent");
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.BlockNoteServerContent = BlockNoteServerContent;
|
|
38
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/components/editors/server.js","../../../src/components/editors/server/BlockNoteServerContent.tsx","../../../src/components/editors/server/renderBlockNoteHTML.ts"],"names":[],"mappings":"AAAA;AACE;AACF,0DAAgC;AAChC;AACA;ACHA,uCAAO;AAIP,oEAAsC;ADEtC;AACA;AEPA,oDAAsC;AAKtC,IAAI,MAAA;AAMJ,IAAI,MAAA,EAA0B,OAAA,CAAQ,OAAA,CAAQ,CAAA;AAMvC,SAAS,mBAAA,CAAoB,MAAA,EAAyC;AAC3E,EAAA,MAAM,IAAA,EAAM,KAAA,CAAM,IAAA,CAAK,CAAA,EAAA,GAAM;AAC3B,IAAA,OAAA,IAAW,iCAAA,CAAsB,MAAA,CAAO,CAAA;AACxC,IAAA,OAAO,MAAA,CAAO,gBAAA,CAAiB,MAAM,CAAA;AAAA,EACvC,CAAC,CAAA;AACD,EAAA,MAAA,EAAQ,GAAA,CAAI,KAAA,CAAM,CAAA,EAAA,GAAM,KAAA,CAAS,CAAA;AACjC,EAAA,OAAO,GAAA;AACT;AAPgB,qCAAA,mBAAA,EAAA,qBAAA,CAAA;AFGhB;AACA;ACIS,+CAAA;AAbT,MAAA,SAAsB,sBAAA,CAAuB;AAAA,EAC3C,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,GAAA,CAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,EAAA,GAAK,OAAA,CAAQ,OAAA,IAAW,CAAA,EAAG,OAAO,IAAA;AAE5D,EAAA,MAAM,KAAA,EAAO,MAAM,mBAAA,CAAoB,OAAO,CAAA;AAE9C,EAAA,uBAAO,6BAAA,iCAAC,EAAA,EAAsB,IAAA,EAAY,IAAA,EAAY,UAAA,CAAsB,CAAA;AAC9E;AAdsB,qCAAA,sBAAA,EAAA,wBAAA,CAAA;ADqBtB;AACE;AACF,wDAAC","file":"/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/components/editors/server.js","sourcesContent":[null,"import type { PartialBlock } from \"@blocknote/core\";\nimport \"@blocknote/shadcn/style.css\";\n// Imported through the package's own client subpath, like the analytics server\n// pages: the built server entry must reach the viewer through the \"use client\"\n// bundle, not inline it.\nimport { BlockNoteStaticViewer } from \"@carlonicora/nextjs-jsonapi/components\";\nimport { renderBlockNoteHTML } from \"./renderBlockNoteHTML\";\n\n/**\n * Read-only rich text rendered on the server, so the text is in the HTML that\n * crawlers read. For public read-only pages only: everywhere else, display goes\n * through BlockNoteEditorContainer.\n */\nexport async function BlockNoteServerContent({\n content,\n size,\n className,\n}: {\n content?: PartialBlock[];\n size?: \"default\" | \"sm\";\n className?: string;\n}) {\n if (!Array.isArray(content) || content.length === 0) return null;\n\n const html = await renderBlockNoteHTML(content);\n\n return <BlockNoteStaticViewer html={html} size={size} className={className} />;\n}\n","import type { PartialBlock } from \"@blocknote/core\";\nimport { ServerBlockNoteEditor } from \"@blocknote/server-util\";\n\n// Default schema only, the same one BlockNoteViewer uses: the editor's mention\n// and diff inline specs are React specs from \"use client\" modules (next/link,\n// hover cards), so they cannot run here.\nlet editor: ServerBlockNoteEditor | undefined;\n\n// ServerBlockNoteEditor swaps globalThis.window/document for its JSDOM around\n// each call and restores them after an await. Two overlapping calls would\n// restore each other's values and could leave the JSDOM window on the server's\n// globals, so calls run one at a time.\nlet queue: Promise<unknown> = Promise.resolve();\n\n/**\n * Renders a BlockNote blocks array to the HTML the editor itself would render,\n * through BlockNote's own server editor (`blocksToFullHTML`). Server only.\n */\nexport function renderBlockNoteHTML(blocks: PartialBlock[]): Promise<string> {\n const run = queue.then(() => {\n editor ??= ServerBlockNoteEditor.create();\n return editor.blocksToFullHTML(blocks);\n });\n queue = run.catch(() => undefined);\n return run;\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__name
|
|
3
|
+
} from "../../chunk-PAWJFY3S.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/editors/server/BlockNoteServerContent.tsx
|
|
6
|
+
import "@blocknote/shadcn/style.css";
|
|
7
|
+
import { BlockNoteStaticViewer } from "@carlonicora/nextjs-jsonapi/components";
|
|
8
|
+
|
|
9
|
+
// src/components/editors/server/renderBlockNoteHTML.ts
|
|
10
|
+
import { ServerBlockNoteEditor } from "@blocknote/server-util";
|
|
11
|
+
var editor;
|
|
12
|
+
var queue = Promise.resolve();
|
|
13
|
+
function renderBlockNoteHTML(blocks) {
|
|
14
|
+
const run = queue.then(() => {
|
|
15
|
+
editor ??= ServerBlockNoteEditor.create();
|
|
16
|
+
return editor.blocksToFullHTML(blocks);
|
|
17
|
+
});
|
|
18
|
+
queue = run.catch(() => void 0);
|
|
19
|
+
return run;
|
|
20
|
+
}
|
|
21
|
+
__name(renderBlockNoteHTML, "renderBlockNoteHTML");
|
|
22
|
+
|
|
23
|
+
// src/components/editors/server/BlockNoteServerContent.tsx
|
|
24
|
+
import { jsx } from "react/jsx-runtime";
|
|
25
|
+
async function BlockNoteServerContent({
|
|
26
|
+
content,
|
|
27
|
+
size,
|
|
28
|
+
className
|
|
29
|
+
}) {
|
|
30
|
+
if (!Array.isArray(content) || content.length === 0) return null;
|
|
31
|
+
const html = await renderBlockNoteHTML(content);
|
|
32
|
+
return /* @__PURE__ */ jsx(BlockNoteStaticViewer, { html, size, className });
|
|
33
|
+
}
|
|
34
|
+
__name(BlockNoteServerContent, "BlockNoteServerContent");
|
|
35
|
+
export {
|
|
36
|
+
BlockNoteServerContent
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/editors/server/BlockNoteServerContent.tsx","../../../src/components/editors/server/renderBlockNoteHTML.ts"],"sourcesContent":["import type { PartialBlock } from \"@blocknote/core\";\nimport \"@blocknote/shadcn/style.css\";\n// Imported through the package's own client subpath, like the analytics server\n// pages: the built server entry must reach the viewer through the \"use client\"\n// bundle, not inline it.\nimport { BlockNoteStaticViewer } from \"@carlonicora/nextjs-jsonapi/components\";\nimport { renderBlockNoteHTML } from \"./renderBlockNoteHTML\";\n\n/**\n * Read-only rich text rendered on the server, so the text is in the HTML that\n * crawlers read. For public read-only pages only: everywhere else, display goes\n * through BlockNoteEditorContainer.\n */\nexport async function BlockNoteServerContent({\n content,\n size,\n className,\n}: {\n content?: PartialBlock[];\n size?: \"default\" | \"sm\";\n className?: string;\n}) {\n if (!Array.isArray(content) || content.length === 0) return null;\n\n const html = await renderBlockNoteHTML(content);\n\n return <BlockNoteStaticViewer html={html} size={size} className={className} />;\n}\n","import type { PartialBlock } from \"@blocknote/core\";\nimport { ServerBlockNoteEditor } from \"@blocknote/server-util\";\n\n// Default schema only, the same one BlockNoteViewer uses: the editor's mention\n// and diff inline specs are React specs from \"use client\" modules (next/link,\n// hover cards), so they cannot run here.\nlet editor: ServerBlockNoteEditor | undefined;\n\n// ServerBlockNoteEditor swaps globalThis.window/document for its JSDOM around\n// each call and restores them after an await. Two overlapping calls would\n// restore each other's values and could leave the JSDOM window on the server's\n// globals, so calls run one at a time.\nlet queue: Promise<unknown> = Promise.resolve();\n\n/**\n * Renders a BlockNote blocks array to the HTML the editor itself would render,\n * through BlockNote's own server editor (`blocksToFullHTML`). Server only.\n */\nexport function renderBlockNoteHTML(blocks: PartialBlock[]): Promise<string> {\n const run = queue.then(() => {\n editor ??= ServerBlockNoteEditor.create();\n return editor.blocksToFullHTML(blocks);\n });\n queue = run.catch(() => undefined);\n return run;\n}\n"],"mappings":";;;;;AACA,OAAO;AAIP,SAAS,6BAA6B;;;ACJtC,SAAS,6BAA6B;AAKtC,IAAI;AAMJ,IAAI,QAA0B,QAAQ,QAAQ;AAMvC,SAAS,oBAAoB,QAAyC;AAC3E,QAAM,MAAM,MAAM,KAAK,MAAM;AAC3B,eAAW,sBAAsB,OAAO;AACxC,WAAO,OAAO,iBAAiB,MAAM;AAAA,EACvC,CAAC;AACD,UAAQ,IAAI,MAAM,MAAM,MAAS;AACjC,SAAO;AACT;AAPgB;;;ADQP;AAbT,eAAsB,uBAAuB;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,MAAI,CAAC,MAAM,QAAQ,OAAO,KAAK,QAAQ,WAAW,EAAG,QAAO;AAE5D,QAAM,OAAO,MAAM,oBAAoB,OAAO;AAE9C,SAAO,oBAAC,yBAAsB,MAAY,MAAY,WAAsB;AAC9E;AAdsB;","names":[]}
|
|
@@ -525,6 +525,13 @@ type BlockNoteEditorProps = {
|
|
|
525
525
|
diffContent?: PartialBlock[];
|
|
526
526
|
placeholder?: string;
|
|
527
527
|
bordered?: boolean;
|
|
528
|
+
/**
|
|
529
|
+
* Storage folder for pasted images, used instead of the current company's
|
|
530
|
+
* `companies/<companyId>/<type>` folder: the image key becomes
|
|
531
|
+
* `<uploadKeyPrefix>/<id>/<file name>`. For platform content edited by users
|
|
532
|
+
* who belong to no company (the blog). Omitted: the company folder, as before.
|
|
533
|
+
*/
|
|
534
|
+
uploadKeyPrefix?: string;
|
|
528
535
|
inlineContentSpecs?: Record<string, any>;
|
|
529
536
|
renderOverlays?: (editor: any) => React__default.ReactNode;
|
|
530
537
|
enableMentions?: boolean;
|
|
@@ -553,6 +560,17 @@ declare const BlockNoteViewerContainer: React__default.MemoExoticComponent<(prop
|
|
|
553
560
|
size?: "default" | "sm";
|
|
554
561
|
}) => React__default.JSX.Element>;
|
|
555
562
|
|
|
563
|
+
/**
|
|
564
|
+
* Shows HTML produced by BlockNoteServerContent inside the same container
|
|
565
|
+
* markup BlockNoteView renders, so BlockNote's stylesheet and the app's
|
|
566
|
+
* `.BlockNoteView` rules apply as they do to BlockNoteViewer.
|
|
567
|
+
*/
|
|
568
|
+
declare function BlockNoteStaticViewer({ html, size, className, }: {
|
|
569
|
+
html: string;
|
|
570
|
+
size?: "default" | "sm";
|
|
571
|
+
className?: string;
|
|
572
|
+
}): React$1.JSX.Element;
|
|
573
|
+
|
|
556
574
|
declare function ErrorDetails({ title, message, code }: {
|
|
557
575
|
title?: string;
|
|
558
576
|
message: string;
|
|
@@ -902,7 +920,7 @@ declare const FileUploaderItem: React$1.ForwardRefExoticComponent<{
|
|
|
902
920
|
} & React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
903
921
|
declare const FileInput: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
|
|
904
922
|
|
|
905
|
-
declare function FormBlockNote({ form, id, name, placeholder, type, isRequired, description, testId, onEmptyChange, inlineContentSpecs, renderOverlays, className, stretch, enableMentions, mentionSearchFn, mentionSearchParams, mentionResolveFn, suggestionMenuComponent, mentionNameResolver, onWarmMentions, aiConfig, aiHandleRef, headerAction, }: {
|
|
923
|
+
declare function FormBlockNote({ form, id, name, placeholder, type, isRequired, description, testId, onEmptyChange, inlineContentSpecs, renderOverlays, className, stretch, enableMentions, mentionSearchFn, mentionSearchParams, mentionResolveFn, suggestionMenuComponent, mentionNameResolver, onWarmMentions, aiConfig, aiHandleRef, headerAction, uploadKeyPrefix, }: {
|
|
906
924
|
form: any;
|
|
907
925
|
id: string;
|
|
908
926
|
name?: string;
|
|
@@ -932,6 +950,8 @@ declare function FormBlockNote({ form, id, name, placeholder, type, isRequired,
|
|
|
932
950
|
aiHandleRef?: React__default.MutableRefObject<BlockNoteAiHandle | null>;
|
|
933
951
|
/** Rendered on the label row, right-aligned — e.g. a "Suggest impression" button. */
|
|
934
952
|
headerAction?: React__default.ReactNode;
|
|
953
|
+
/** See `BlockNoteEditorProps.uploadKeyPrefix`. */
|
|
954
|
+
uploadKeyPrefix?: string;
|
|
935
955
|
}): React__default.JSX.Element;
|
|
936
956
|
|
|
937
957
|
type FormCheckboxProps = {
|
|
@@ -1206,8 +1226,10 @@ type TitleProps = {
|
|
|
1206
1226
|
className?: string;
|
|
1207
1227
|
module?: ModuleWithPermissions;
|
|
1208
1228
|
prioritizeFunctions?: boolean;
|
|
1229
|
+
/** Renders the title line as a real heading (public SEO pages). Omitted: a plain div, as before. */
|
|
1230
|
+
headingLevel?: 1 | 2;
|
|
1209
1231
|
};
|
|
1210
|
-
declare function ContentTitle({ module, type, element, functions, className, prioritizeFunctions }: TitleProps): React$1.JSX.Element | null;
|
|
1232
|
+
declare function ContentTitle({ module, type, element, functions, className, prioritizeFunctions, headingLevel, }: TitleProps): React$1.JSX.Element | null;
|
|
1211
1233
|
|
|
1212
1234
|
type HeaderProps = {
|
|
1213
1235
|
children?: React.ReactNode;
|
|
@@ -1622,7 +1644,26 @@ type AdminGroup = {
|
|
|
1622
1644
|
|
|
1623
1645
|
/** Keys of the built-in platform sections, for `hiddenSections`. */
|
|
1624
1646
|
type PlatformSectionKey = "companies" | "users" | "token-usage" | "ai-connections" | "rbac" | "billing";
|
|
1647
|
+
/**
|
|
1648
|
+
* The sections every NJA project has, by key. Hrefs are constants rather than
|
|
1649
|
+
* props: the path convention IS the contract that makes this component
|
|
1650
|
+
* reusable. Exported so an app that passes its own `groups` places these
|
|
1651
|
+
* entries without retyping their keys, icons and copy.
|
|
1652
|
+
*
|
|
1653
|
+
* `billing` is the only conditional entry: the default platform group shows it
|
|
1654
|
+
* only when Stripe is configured (see AdminIndexGrid). An app that places it in
|
|
1655
|
+
* its own `groups` applies the same check itself.
|
|
1656
|
+
*/
|
|
1657
|
+
declare const ADMIN_PLATFORM_SECTIONS: Record<PlatformSectionKey, AdminSection>;
|
|
1625
1658
|
type AdminIndexProps = {
|
|
1659
|
+
/**
|
|
1660
|
+
* Replaces the default groups (the built-in platform group plus
|
|
1661
|
+
* `additionalGroups`) with exactly these, in this order. For an app that
|
|
1662
|
+
* arranges its administration by its own headings; it places the platform
|
|
1663
|
+
* entries it wants from ADMIN_PLATFORM_SECTIONS. When set, `additionalGroups`
|
|
1664
|
+
* is ignored and the Stripe check on `billing` is the app's to apply.
|
|
1665
|
+
*/
|
|
1666
|
+
groups?: AdminGroup[];
|
|
1626
1667
|
/** Project-specific groups, appended after the built-in platform group. */
|
|
1627
1668
|
additionalGroups?: AdminGroup[];
|
|
1628
1669
|
/**
|
|
@@ -1638,13 +1679,13 @@ type AdminIndexProps = {
|
|
|
1638
1679
|
* The grid itself, with no page shell — this is what the specs render, because
|
|
1639
1680
|
* RoundPageContainer pulls in the app Header and its four header contexts.
|
|
1640
1681
|
*/
|
|
1641
|
-
declare function AdminIndexGrid({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1682
|
+
declare function AdminIndexGrid({ groups: customGroups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1642
1683
|
/**
|
|
1643
1684
|
* Drop-in administration landing page. Mount it bare — it brings its own shell
|
|
1644
1685
|
* and its own page chrome (AdministrationProvider), so it does not inherit the
|
|
1645
1686
|
* title and breadcrumb of whatever page rendered before it.
|
|
1646
1687
|
*/
|
|
1647
|
-
declare function AdminIndexContainer({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1688
|
+
declare function AdminIndexContainer({ groups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1648
1689
|
|
|
1649
1690
|
/**
|
|
1650
1691
|
* The fixed namespace of i18n keys the administration index reads via
|
|
@@ -1677,13 +1718,6 @@ declare const ADMINISTRATION_I18N_KEYS: readonly ["administration.title", "admin
|
|
|
1677
1718
|
*/
|
|
1678
1719
|
declare const AI_CONNECTIONS_I18N_KEYS: readonly ["ai_connections.admin.title", "ai_connections.admin.entity", "ai_connections.admin.create", "ai_connections.admin.scope.global", "ai_connections.admin.scope.company", "ai_connections.admin.scope.inherits_global", "ai_connections.admin.env_fallback", "ai_connections.admin.empty.title", "ai_connections.admin.empty.description", "ai_connections.admin.types.ai", "ai_connections.admin.types.aiLite", "ai_connections.admin.types.aiLarge", "ai_connections.admin.types.vision", "ai_connections.admin.types.audio", "ai_connections.admin.types.image", "ai_connections.admin.types.embedder", "ai_connections.admin.types.transcriber", "ai_connections.admin.types.documentAi", "ai_connections.admin.fields.name", "ai_connections.admin.fields.provider", "ai_connections.admin.fields.model", "ai_connections.admin.fields.url", "ai_connections.admin.fields.apiKey", "ai_connections.admin.fields.region", "ai_connections.admin.fields.instance", "ai_connections.admin.fields.apiVersion", "ai_connections.admin.fields.googleCredentialsBase64", "ai_connections.admin.fields.allowFallbacks", "ai_connections.admin.fields.reasoningEffort", "ai_connections.admin.fields.maxOutputTokens", "ai_connections.admin.fields.dimensions", "ai_connections.admin.fields.inputCostPer1MTokens", "ai_connections.admin.fields.outputCostPer1MTokens", "ai_connections.admin.fields.cachedInputCostPer1MTokens", "ai_connections.admin.fields.costPerMinute", "ai_connections.admin.fields.costPerPage", "ai_connections.admin.fields.directUrl", "ai_connections.admin.fields.language", "ai_connections.admin.fields.directFormat", "ai_connections.admin.fields.directProvider", "ai_connections.admin.fields.costPerImage", "ai_connections.admin.fields.negativePrompt", "ai_connections.admin.fields.width", "ai_connections.admin.fields.height", "ai_connections.admin.fields.steps", "ai_connections.admin.fields.cfgScale", "ai_connections.admin.fields.safeMode", "ai_connections.admin.fields.hideWatermark", "ai_connections.admin.fields.imageFormat", "ai_connections.admin.fields.enabled", "ai_connections.admin.fields.costs_section", "ai_connections.admin.placeholders.name", "ai_connections.admin.placeholders.secret_unchanged", "ai_connections.admin.reorder.up", "ai_connections.admin.reorder.down", "ai_connections.admin.errors.name", "ai_connections.admin.errors.required_field", "ai_connections.admin.embedder_warning.title", "ai_connections.admin.embedder_warning.description", "ai_connections.admin.delete.title", "ai_connections.admin.delete.description", "ai_connections.admin.delete.confirm", "administration.ai_connections.description"];
|
|
1679
1720
|
|
|
1680
|
-
/**
|
|
1681
|
-
* Route the breadcrumb links back to. Constant rather than a prop for the same
|
|
1682
|
-
* reason TOKEN_USAGE_ADMIN_PAGE_URL is
|
|
1683
|
-
* (features/tokenusage/contexts/TokenUsageAdminContext.tsx): the breadcrumb is
|
|
1684
|
-
* built here, not by the consuming app, and the path convention IS the contract.
|
|
1685
|
-
*/
|
|
1686
|
-
declare const AI_CONNECTIONS_ADMIN_PAGE_URL = "/administration/ai-connections";
|
|
1687
1721
|
interface AiConnectionsContextType {
|
|
1688
1722
|
/** Every connection, both scopes — the cards filter per scope themselves. */
|
|
1689
1723
|
connections: AiConnectionInterface[];
|
|
@@ -3994,4 +4028,4 @@ interface MultipleSelectorRef {
|
|
|
3994
4028
|
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
3995
4029
|
declare const MultipleSelector: React$1.ForwardRefExoticComponent<MultipleSelectorProps & React$1.RefAttributes<MultipleSelectorRef>>;
|
|
3996
4030
|
|
|
3997
|
-
export { ADMINISTRATION_I18N_KEYS, AI_CONNECTIONS_ADMIN_PAGE_URL, AI_CONNECTIONS_I18N_KEYS, AI_CONNECTION_TYPE_ORDER, AcceptInvitation, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivateAccount, AddUserToRole, AdminCompanyContainer, type AdminGroup, AdminIndexContainer, AdminIndexGrid, type AdminSection, AdminUsersList, AiConnectionDeleter, type AiConnectionDeleterProps, AiConnectionEditor, type AiConnectionEditorProps, AiConnectionEnvDefaults, AiConnectionInterface, AiConnectionTypeCard, type AiConnectionTypeCardProps, AiConnectionsContainer, type AiConnectionsContextType, AiConnectionsProvider, type AiConnectionsProviderProps, AiProviderRegistry, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AllUsersListContainer, AllowedUsersDetails, ApprovalActionCard, type ApprovalActionRenderer, AssistantBlockNoteComposer, AssistantComposer, AssistantContainer, AssistantContainerWithApprovals, AssistantPageContainer, AssistantThread, AttributeElement, AuthContainer, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, BackupCodesDialog, Badge, type BadgeProps, type BlockNoteAiConfig, type BlockNoteAiGenerateAction, type BlockNoteAiHandle, BlockNoteEditorContainer, BlockNoteEditorMentionHoverCard, BlockNoteEditorMentionSuggestionMenu, type BlockNoteEditorProps, BlockNoteViewerContainer, KanbanBoard as Board, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbNavigation, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, KanbanColumn as Column, KanbanColumnHandle as ColumnHandle, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonAddTrigger, CommonAssociationCommandDialog, CommonAssociationTrigger, CommonDeleter, CommonEditorButtons, CommonEditorDiscardDialog, CommonEditorHeader, CommonEditorTrigger, CompaniesList, CompaniesListContainer, CompanyConfigurationEditor, CompanyContainer, CompanyContent, CompanyDeleter, CompanyDetails, CompanyEditor, CompanyUsersList, ConfirmDialog, type ConfirmDialogProps, ContentListGrid, type ContentListGridProps, ContentListTable, ContentTableSearch, ContentTitle, ContentsList, ContentsListById, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ContributorsList, Cookies, CurrencyInput, type CurrencyInputProps, DatePickerPopover, DateRangeSelector, DetailField, type DetailFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisableTwoFactorDialog, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableAvatar, EditorSheet, type EditorSheetProps, EmptyState, EntityAvatar, EntityHero, EntityHeroAvatar, EntityHeroLayout, EntityHeroMetaRow, EntityMentionLink, EntityMultiSelector, EntitySection, EntitySelector, ErrorDetails, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileInput, FileUploader, FileUploaderContent, FileUploaderItem, FiscalDataDisplay, type FiscalDataHandle, ForgotPassword, Form, FormBlockNote, FormBody, FormCheckbox, FormCol, FormDate, FormDateTime, FormFeatures, FormFieldWrapper, FormInput, FormPassword, FormPlaceAutocomplete, FormRoles, FormRow, FormSection, FormSelect, FormSlider, FormSwitch, FormTextarea, GdprConsentCheckbox, GdprConsentSection, type GenerateTableStructureParams, HEADER_ROW_MIN_H, HandbookAdminContainer, HandbookAskContainer, HandbookAskSheet, HandbookContents, HandbookIndexStatus, HandbookPageContainer, HandbookPageDetails, HandbookPageNavigator, HandbookPageNeighbours, HandbookPageToc, HandbookSectionGroup, HandbookSyncButton, Header, HoverCard, HoverCardContent, HoverCardTrigger, HowToCommand, HowToCommandViewer, HowToContainer, HowToContent, HowToDeleter, HowToDetails, HowToEditor, HowToList, HowToListContainer, HowToMultiSelector, HowToReindexButton, HowToSelector, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalianFiscalData, ItalianFiscalDataDisplay, type ItalianFiscalDataProps, KanbanItem as Item, KanbanItemHandle as ItemHandle, KanbanRoot as Kanban, KanbanBoard, KanbanColumn, KanbanColumnHandle, KanbanItem, KanbanItemHandle, KanbanOverlay, Label, LandingComponent, Link, type LinkProps, Login, Logout, type MentionHoverCardProps, type MentionInsertFn, type MentionItem, type MentionNameResolver, type MentionRenderProps, type MentionRenderer, type MentionResolveFn, type MentionResolveResult, type MentionSearchFn, type MentionSuggestionItem, MermaidDiagram, MessageItem, MessageList, MessageSourcesPanel, MicroLabel, type MicroLabelProps, MobileNavigationBar, ModeToggleSwitch, MultiFileUploader, MultiSelect, MultipleSelector, type MultipleSelectorProps, type MultipleSelectorRef, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, NotificationErrorBoundary, NotificationIcon, NotificationMenuItem, NotificationModal, NotificationToast, type NotificationViewMode, NotificationViewSwitcher, NotificationsList, NotificationsListContainer, OAuthClientCard, type OAuthClientCardProps, OAuthClientDetail, type OAuthClientDetailProps, OAuthClientForm, type OAuthClientFormProps, OAuthClientList, type OAuthClientListProps, OAuthClientSecretDisplay, type OAuthClientSecretDisplayProps, OAuthCompanySelector, type OAuthCompanySelectorProps, OAuthConsentActions, type OAuthConsentActionsProps, OAuthConsentHeader, type OAuthConsentHeaderProps, OAuthConsentScreen, type OAuthConsentScreenProps, OAuthRedirectUriInput, type OAuthRedirectUriInputProps, OAuthScopeList, type OAuthScopeListProps, OAuthScopeSelector, type OAuthScopeSelectorProps, OnboardingCard, type Option, KanbanOverlay as Overlay, PageContainer, PageContainerContentDetails, type PageContainerItems, PageContentContainer, PageSection, type PartitionedTabs, PasskeyButton, PasskeyList, PasskeySetupDialog, PasswordInput, type PasswordInputProps, type PlaceAddressComponents, type PlaceSuggestion, PlatformUsersContainer, PlatformUsersList, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, PushNotificationProvider, RadioGroup, RadioGroupItem, RbacByRoleContainer, RbacContainer, RbacPermissionCell, RbacPermissionPicker, ReactMarkdownContainer, RecentPagesNavigator, ReferralCodeCapture, ReferralDialog, type ReferralDialogProps, type ReferralDialogTranslations, ReferralWidget, type ReferralWidgetProps, type ReferralWidgetTranslations, RefreshUser, RelevantContentsList, RelevantUsersList, RemoveUserFromRole, ResetPassword, ResizableHandle, ResizablePanel, ResizablePanelGroup, RoleContainer, RoleDetails, RoleUsersList, RolesList, KanbanRoot as Root, RoundPageContainer, RoundPageContainerTitle, ScrollArea, ScrollBar, SectionHeader, type SectionHeaderProps, SecurityContainer, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupSourceCapture, Skeleton, Slider, Spinner, Switch, type Tab, Table, TableBody, TableCaption, TableCell, TableCellAvatar, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContainer, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, TokenStatusIndicator, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TotpAuthenticatorList, TotpInput, TotpSetupDialog, TwoFactorChallenge, TwoFactorSettings, UserAvatar, UserAvatarEditor, UserAvatarList, UserContainer, UserContent, UserDeleter, UserEditor, UserIndexContainer, UserIndexDetails, UserListInAdd, UserMultiSelect, UserReactivator, UserResentInvitationEmail, UserRoleAdd, UserRolesList, UserSearchPopover, UserSelector, UserStanadaloneDetails, UsersList, UsersListByContentIds, UsersListContainer, WaitlistConfirmation, WaitlistForm, WaitlistHeroSection, WaitlistList, WaitlistQuestionnaireRenderer, WaitlistSuccessState, badgeVariants, buttonVariants, cellComponent, cellDate, cellDateTime, cellId, cellLink, cellUrl, commandFilterByKeywords, createMentionInlineContentSpec, errorToast, generateNotificationData, hasOpenInnerLayer, mentionDataAttrs, navigationMenuTriggerStyle, nextDateRange, parseFiscalData, parseMentionElement, partitionTabs, spinnerVariants, tabsListVariants, toggleVariants, triggerAssociationToast, useAiConnections, useCarousel, useComboboxAnchor, useDebounce, useEditorDialog, useFileUpload, useMentionInsert, useOptionalSidebar, useSidebar, useSidebarControls };
|
|
4031
|
+
export { ADMINISTRATION_I18N_KEYS, ADMIN_PLATFORM_SECTIONS, AI_CONNECTIONS_I18N_KEYS, AI_CONNECTION_TYPE_ORDER, AcceptInvitation, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivateAccount, AddUserToRole, AdminCompanyContainer, type AdminGroup, AdminIndexContainer, AdminIndexGrid, type AdminSection, AdminUsersList, AiConnectionDeleter, type AiConnectionDeleterProps, AiConnectionEditor, type AiConnectionEditorProps, AiConnectionEnvDefaults, AiConnectionInterface, AiConnectionTypeCard, type AiConnectionTypeCardProps, AiConnectionsContainer, type AiConnectionsContextType, AiConnectionsProvider, type AiConnectionsProviderProps, AiProviderRegistry, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AllUsersListContainer, AllowedUsersDetails, ApprovalActionCard, type ApprovalActionRenderer, AssistantBlockNoteComposer, AssistantComposer, AssistantContainer, AssistantContainerWithApprovals, AssistantPageContainer, AssistantThread, AttributeElement, AuthContainer, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, BackupCodesDialog, Badge, type BadgeProps, type BlockNoteAiConfig, type BlockNoteAiGenerateAction, type BlockNoteAiHandle, BlockNoteEditorContainer, BlockNoteEditorMentionHoverCard, BlockNoteEditorMentionSuggestionMenu, type BlockNoteEditorProps, BlockNoteStaticViewer, BlockNoteViewerContainer, KanbanBoard as Board, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbNavigation, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, KanbanColumn as Column, KanbanColumnHandle as ColumnHandle, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonAddTrigger, CommonAssociationCommandDialog, CommonAssociationTrigger, CommonDeleter, CommonEditorButtons, CommonEditorDiscardDialog, CommonEditorHeader, CommonEditorTrigger, CompaniesList, CompaniesListContainer, CompanyConfigurationEditor, CompanyContainer, CompanyContent, CompanyDeleter, CompanyDetails, CompanyEditor, CompanyUsersList, ConfirmDialog, type ConfirmDialogProps, ContentListGrid, type ContentListGridProps, ContentListTable, ContentTableSearch, ContentTitle, ContentsList, ContentsListById, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ContributorsList, Cookies, CurrencyInput, type CurrencyInputProps, DatePickerPopover, DateRangeSelector, DetailField, type DetailFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisableTwoFactorDialog, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableAvatar, EditorSheet, type EditorSheetProps, EmptyState, EntityAvatar, EntityHero, EntityHeroAvatar, EntityHeroLayout, EntityHeroMetaRow, EntityMentionLink, EntityMultiSelector, EntitySection, EntitySelector, ErrorDetails, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileInput, FileUploader, FileUploaderContent, FileUploaderItem, FiscalDataDisplay, type FiscalDataHandle, ForgotPassword, Form, FormBlockNote, FormBody, FormCheckbox, FormCol, FormDate, FormDateTime, FormFeatures, FormFieldWrapper, FormInput, FormPassword, FormPlaceAutocomplete, FormRoles, FormRow, FormSection, FormSelect, FormSlider, FormSwitch, FormTextarea, GdprConsentCheckbox, GdprConsentSection, type GenerateTableStructureParams, HEADER_ROW_MIN_H, HandbookAdminContainer, HandbookAskContainer, HandbookAskSheet, HandbookContents, HandbookIndexStatus, HandbookPageContainer, HandbookPageDetails, HandbookPageNavigator, HandbookPageNeighbours, HandbookPageToc, HandbookSectionGroup, HandbookSyncButton, Header, HoverCard, HoverCardContent, HoverCardTrigger, HowToCommand, HowToCommandViewer, HowToContainer, HowToContent, HowToDeleter, HowToDetails, HowToEditor, HowToList, HowToListContainer, HowToMultiSelector, HowToReindexButton, HowToSelector, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, ItalianFiscalData, ItalianFiscalDataDisplay, type ItalianFiscalDataProps, KanbanItem as Item, KanbanItemHandle as ItemHandle, KanbanRoot as Kanban, KanbanBoard, KanbanColumn, KanbanColumnHandle, KanbanItem, KanbanItemHandle, KanbanOverlay, Label, LandingComponent, Link, type LinkProps, Login, Logout, type MentionHoverCardProps, type MentionInsertFn, type MentionItem, type MentionNameResolver, type MentionRenderProps, type MentionRenderer, type MentionResolveFn, type MentionResolveResult, type MentionSearchFn, type MentionSuggestionItem, MermaidDiagram, MessageItem, MessageList, MessageSourcesPanel, MicroLabel, type MicroLabelProps, MobileNavigationBar, ModeToggleSwitch, MultiFileUploader, MultiSelect, MultipleSelector, type MultipleSelectorProps, type MultipleSelectorRef, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, NotificationErrorBoundary, NotificationIcon, NotificationMenuItem, NotificationModal, NotificationToast, type NotificationViewMode, NotificationViewSwitcher, NotificationsList, NotificationsListContainer, OAuthClientCard, type OAuthClientCardProps, OAuthClientDetail, type OAuthClientDetailProps, OAuthClientForm, type OAuthClientFormProps, OAuthClientList, type OAuthClientListProps, OAuthClientSecretDisplay, type OAuthClientSecretDisplayProps, OAuthCompanySelector, type OAuthCompanySelectorProps, OAuthConsentActions, type OAuthConsentActionsProps, OAuthConsentHeader, type OAuthConsentHeaderProps, OAuthConsentScreen, type OAuthConsentScreenProps, OAuthRedirectUriInput, type OAuthRedirectUriInputProps, OAuthScopeList, type OAuthScopeListProps, OAuthScopeSelector, type OAuthScopeSelectorProps, OnboardingCard, type Option, KanbanOverlay as Overlay, PageContainer, PageContainerContentDetails, type PageContainerItems, PageContentContainer, PageSection, type PartitionedTabs, PasskeyButton, PasskeyList, PasskeySetupDialog, PasswordInput, type PasswordInputProps, type PlaceAddressComponents, type PlaceSuggestion, type PlatformSectionKey, PlatformUsersContainer, PlatformUsersList, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, PushNotificationProvider, RadioGroup, RadioGroupItem, RbacByRoleContainer, RbacContainer, RbacPermissionCell, RbacPermissionPicker, ReactMarkdownContainer, RecentPagesNavigator, ReferralCodeCapture, ReferralDialog, type ReferralDialogProps, type ReferralDialogTranslations, ReferralWidget, type ReferralWidgetProps, type ReferralWidgetTranslations, RefreshUser, RelevantContentsList, RelevantUsersList, RemoveUserFromRole, ResetPassword, ResizableHandle, ResizablePanel, ResizablePanelGroup, RoleContainer, RoleDetails, RoleUsersList, RolesList, KanbanRoot as Root, RoundPageContainer, RoundPageContainerTitle, ScrollArea, ScrollBar, SectionHeader, type SectionHeaderProps, SecurityContainer, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SignupSourceCapture, Skeleton, Slider, Spinner, Switch, type Tab, Table, TableBody, TableCaption, TableCell, TableCellAvatar, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContainer, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, TokenStatusIndicator, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TotpAuthenticatorList, TotpInput, TotpSetupDialog, TwoFactorChallenge, TwoFactorSettings, UserAvatar, UserAvatarEditor, UserAvatarList, UserContainer, UserContent, UserDeleter, UserEditor, UserIndexContainer, UserIndexDetails, UserListInAdd, UserMultiSelect, UserReactivator, UserResentInvitationEmail, UserRoleAdd, UserRolesList, UserSearchPopover, UserSelector, UserStanadaloneDetails, UsersList, UsersListByContentIds, UsersListContainer, WaitlistConfirmation, WaitlistForm, WaitlistHeroSection, WaitlistList, WaitlistQuestionnaireRenderer, WaitlistSuccessState, badgeVariants, buttonVariants, cellComponent, cellDate, cellDateTime, cellId, cellLink, cellUrl, commandFilterByKeywords, createMentionInlineContentSpec, errorToast, generateNotificationData, hasOpenInnerLayer, mentionDataAttrs, navigationMenuTriggerStyle, nextDateRange, parseFiscalData, parseMentionElement, partitionTabs, spinnerVariants, tabsListVariants, toggleVariants, triggerAssociationToast, useAiConnections, useCarousel, useComboboxAnchor, useDebounce, useEditorDialog, useFileUpload, useMentionInsert, useOptionalSidebar, useSidebar, useSidebarControls };
|