@carlonicora/nextjs-jsonapi 5.4.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-YQL2SGFR.mjs → BlockNoteEditor-GVQCKRMU.mjs} +5 -5
- package/dist/{BlockNoteEditor-4YCAIEPT.js → BlockNoteEditor-THBJH2UR.js} +20 -20
- package/dist/{BlockNoteEditor-4YCAIEPT.js.map → BlockNoteEditor-THBJH2UR.js.map} +1 -1
- package/dist/{BlockNoteViewer-AEJKJ27Q.mjs → BlockNoteViewer-U6E3DS4F.mjs} +3 -3
- package/dist/{BlockNoteViewer-YL3J7J2Y.js → BlockNoteViewer-VZOVKTFO.js} +4 -4
- package/dist/{BlockNoteViewer-YL3J7J2Y.js.map → BlockNoteViewer-VZOVKTFO.js.map} +1 -1
- package/dist/billing/index.js +442 -442
- package/dist/billing/index.mjs +4 -4
- package/dist/{chunk-XCHSX3VC.mjs → chunk-3CGROPF3.mjs} +2 -2
- package/dist/{chunk-QMYQRPQC.mjs → chunk-6SQYXUVP.mjs} +2 -2
- package/dist/{chunk-NFBOSPNJ.js → chunk-G6UE6MEP.js} +59 -19
- package/dist/chunk-G6UE6MEP.js.map +1 -0
- package/dist/{chunk-YNCQSWQW.js → chunk-S4YJ5WCW.js} +8 -8
- package/dist/{chunk-YNCQSWQW.js.map → chunk-S4YJ5WCW.js.map} +1 -1
- package/dist/{chunk-3NLAXVIN.js → chunk-TY5FYP3G.js} +917 -881
- package/dist/chunk-TY5FYP3G.js.map +1 -0
- package/dist/{chunk-WC63PJSC.mjs → chunk-VC5A3AUZ.mjs} +61 -21
- package/dist/chunk-VC5A3AUZ.mjs.map +1 -0
- package/dist/{chunk-6DC2WVVB.mjs → chunk-W7F5BDSV.mjs} +2 -2
- package/dist/{chunk-5PPG6PL7.js → chunk-WPYT4UKJ.js} +3 -3
- package/dist/{chunk-5PPG6PL7.js.map → chunk-WPYT4UKJ.js.map} +1 -1
- package/dist/{chunk-EUKTBOI2.mjs → chunk-X5WIUUNG.mjs} +1471 -1435
- package/dist/chunk-X5WIUUNG.mjs.map +1 -0
- package/dist/{chunk-YW4ZCEWB.js → chunk-YDYVJM4I.js} +4 -4
- package/dist/{chunk-YW4ZCEWB.js.map → chunk-YDYVJM4I.js.map} +1 -1
- 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 +33 -10
- package/dist/components/index.d.ts +33 -10
- 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.js +4 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +3 -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 +7 -7
- package/dist/features/analytics/server.js.map +1 -1
- package/dist/features/analytics/server.mjs +5 -5
- package/dist/features/analytics/server.mjs.map +1 -1
- package/dist/features/blog/index.d.mts +12 -2
- package/dist/features/blog/index.d.ts +12 -2
- package/dist/features/blog/index.js +206 -195
- package/dist/features/blog/index.js.map +1 -1
- package/dist/features/blog/index.mjs +71 -60
- package/dist/features/blog/index.mjs.map +1 -1
- package/dist/features/blog/server.d.mts +4 -1
- package/dist/features/blog/server.d.ts +4 -1
- package/dist/features/blog/server.js +49 -21
- package/dist/features/blog/server.js.map +1 -1
- package/dist/features/blog/server.mjs +36 -8
- package/dist/features/blog/server.mjs.map +1 -1
- 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.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/server/index.js +4 -4
- package/dist/server/index.mjs +3 -3
- package/package.json +9 -1
- 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/index.ts +1 -0
- package/src/components/viewers/BlockNoteStaticViewer.tsx +44 -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/components/admin/BlogAdminContainer.tsx +13 -6
- package/src/features/blog/components/admin/BlogCategoriesList.tsx +1 -1
- package/src/features/blog/components/admin/BlogCoverImageField.tsx +1 -1
- package/src/features/blog/components/admin/BlogPostContainer.tsx +0 -1
- package/src/features/blog/components/admin/BlogPostEditor.tsx +42 -33
- package/src/features/blog/components/admin/BlogPostTranslationEditor.tsx +12 -4
- package/src/features/blog/components/admin/BlogPostsList.tsx +1 -1
- package/src/features/blog/components/public/BlogPostCard.tsx +2 -9
- package/src/features/blog/components/public/BlogPostMeta.tsx +2 -2
- package/src/features/blog/components/public/BlogPostView.tsx +9 -3
- package/src/features/blog/components/public/__tests__/BlogList.spec.tsx +2 -0
- package/src/features/blog/components/public/__tests__/BlogPostView.spec.tsx +17 -11
- package/src/features/blog/server/fetchers.ts +57 -8
- 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/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/chunk-3NLAXVIN.js.map +0 -1
- package/dist/chunk-EUKTBOI2.mjs.map +0 -1
- package/dist/chunk-NFBOSPNJ.js.map +0 -1
- package/dist/chunk-WC63PJSC.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-YQL2SGFR.mjs.map → BlockNoteEditor-GVQCKRMU.mjs.map} +0 -0
- /package/dist/{BlockNoteViewer-AEJKJ27Q.mjs.map → BlockNoteViewer-U6E3DS4F.mjs.map} +0 -0
- /package/dist/{chunk-XCHSX3VC.mjs.map → chunk-3CGROPF3.mjs.map} +0 -0
- /package/dist/{chunk-QMYQRPQC.mjs.map → chunk-6SQYXUVP.mjs.map} +0 -0
- /package/dist/{chunk-6DC2WVVB.mjs.map → chunk-W7F5BDSV.mjs.map} +0 -0
|
@@ -4,7 +4,7 @@ var _chunkG4JR3SFVjs = require('./chunk-G4JR3SFV.js');
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkG6UE6MEPjs = require('./chunk-G6UE6MEP.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunk7QVYU63Ejs = require('./chunk-7QVYU63E.js');
|
|
@@ -40,7 +40,7 @@ var ServerSession = class {
|
|
|
40
40
|
const headerStore = await _headers.headers.call(void 0, );
|
|
41
41
|
const token = _optionalChain([cookieStore, 'access', _ => _.get, 'call', _2 => _2("token"), 'optionalAccess', _3 => _3.value]) || void 0;
|
|
42
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(
|
|
43
|
+
const viewportCookie = _optionalChain([cookieStore, 'access', _7 => _7.get, 'call', _8 => _8(_chunkG6UE6MEPjs.VIEWPORT_COOKIE_NAME), 'optionalAccess', _9 => _9.value]);
|
|
44
44
|
return {
|
|
45
45
|
isLogged: !!token,
|
|
46
46
|
isAdministrator: !!roles && roles.includes(_chunkG4JR3SFVjs.getRoleId.call(void 0, ).Administrator),
|
|
@@ -88,7 +88,7 @@ var ServerSession = class {
|
|
|
88
88
|
if (!rawModules) return false;
|
|
89
89
|
const modules = JSON.parse(_pako.ungzip.call(void 0, Buffer.from(rawModules, "base64"), { toText: true }));
|
|
90
90
|
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
91
|
-
return
|
|
91
|
+
return _chunkG6UE6MEPjs.checkPermissionsFromServer.call(void 0, {
|
|
92
92
|
module: params.module,
|
|
93
93
|
action: params.action,
|
|
94
94
|
data: params.data,
|
|
@@ -104,4 +104,4 @@ var ServerSession = class {
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
exports.invalidateCacheTag = invalidateCacheTag; exports.invalidateCacheTags = invalidateCacheTags; exports.updateCacheTag = updateCacheTag; exports.ServerSession = ServerSession;
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-YDYVJM4I.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/nextjs-jsonapi/nextjs-jsonapi/dist/chunk-
|
|
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":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACTA,mCAAyC;AAkBzC,MAAA,SAAsB,kBAAA,CAAmB,GAAA,EAAa,QAAA,EAAwB,KAAA,EAAsB;AAClG,EAAA,kCAAA,GAAc,EAAK,OAAO,CAAA;AAC5B;AAFsB,qCAAA,kBAAA,EAAA,oBAAA,CAAA;AAUtB,MAAA,SAAsB,mBAAA,CAAoB,IAAA,EAAgB,QAAA,EAAwB,KAAA,EAAsB;AACtG,EAAA,IAAA,CAAA,MAAW,IAAA,GAAO,IAAA,EAAM;AACtB,IAAA,kCAAA,GAAc,EAAK,OAAO,CAAA;AAAA,EAC5B;AACF;AAJsB,qCAAA,mBAAA,EAAA,qBAAA,CAAA;AAYtB,MAAA,SAAsB,cAAA,CAAe,GAAA,EAA4B;AAC/D,EAAA,8BAAA,GAAa,CAAA;AACf;AAFsB,qCAAA,cAAA,EAAA,gBAAA,CAAA;ADftB;AACA;AE5BA,uCAAiC;AACjC,6CAAyB;AACzB,qCAA0B;AAC1B,4BAAuB;AAahB,IAAM,cAAA,EAAN,MAAoB;AAAA,EAhB3B,OAgB2B;AAAA,IAAA,qCAAA,IAAA,EAAA,eAAA,CAAA;AAAA,EAAA;AAAA,EACzB,OAAA,MAAa,IAAA,CAAA,EAAiC;AAC5C,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAElC,IAAA,MAAM,MAAA,kBAAQ,WAAA,mBAAY,GAAA,mBAAI,OAAO,CAAA,6BAAG,QAAA,GAAS,KAAA,CAAA;AACjD,IAAA,MAAM,MAAA,kBAAQ,WAAA,qBAAY,GAAA,mBAAI,OAAO,CAAA,6BAAG,OAAA;AACxC,IAAA,MAAM,eAAA,kBAAiB,WAAA,qBAAY,GAAA,mBAAI,qCAAoB,CAAA,6BAAG,OAAA;AAE9D,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,CAAC,CAAC,KAAA;AAAA,MACZ,eAAA,EAAiB,CAAC,CAAC,MAAA,GAAS,KAAA,CAAM,QAAA,CAAS,wCAAA,CAAU,CAAE,aAAa,CAAA;AAAA,MACpE,KAAA;AAAA,MACA,WAAA,kBAAa,WAAA,uBAAY,GAAA,qBAAI,eAAe,CAAA,+BAAG,QAAA,IAAU,OAAA;AAAA,MACzD,QAAA,EAAU,eAAA,EAAiB,eAAA,IAAmB,IAAA,EAAM,+BAAA,EAAY,OAAA,EAAS,YAAY,CAAC,CAAA,CAAE,MAAA,CAAO,KAAA,IAAS;AAAA,IAC1G,CAAA;AAAA,EACF;AAAA,EAEA,OAAA,MAAa,QAAA,CAAA,EAAW;AACtB,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,MAAM,MAAA,EAAQ,WAAA,CAAY,GAAA,CAAI,OAAO,CAAA;AAErC,IAAA,GAAA,CAAI,CAAC,MAAA,GAAS,CAAC,KAAA,CAAM,KAAA,EAAO,OAAO,KAAA;AACnC,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAA,MAAa,SAAA,CAAA,EAAY;AACvB,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,wCAAO,WAAA,uBAAY,GAAA,qBAAI,WAAW,CAAA,+BAAG,OAAA,UAAS,IAAA;AAAA,EAChD;AAAA,EAEA,OAAA,MAAa,MAAA,CAAA,EAAS;AACpB,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,wCAAO,WAAA,uBAAY,GAAA,qBAAI,QAAQ,CAAA,+BAAG,OAAA,UAAS,IAAA;AAAA,EAC7C;AAAA,EAEA,OAAA,MAAa,eAAA,CAAiD,MAAA,EAAmD;AAC/G,IAAA,GAAA,CAAI,CAAE,MAAM,IAAA,CAAK,qBAAA,CAAsB,MAAM,CAAA,EAAI,kCAAA,CAAS,IAAA,CAAM,CAAA;AAAA,EAClE;AAAA,EAEA,OAAA,MAAa,OAAA,CAAQ,MAAA,EAAkC;AACrD,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,MAAM,MAAA,kBAAQ,WAAA,uBAAY,GAAA,qBAAI,OAAO,CAAA,+BAAG,OAAA;AAExC,IAAA,GAAA,CAAI,CAAC,MAAA,GAAS,CAAC,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA,EAAG,OAAO,KAAA;AAE9C,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAA,MAAa,UAAA,CAAW,SAAA,EAAqC;AAC3D,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAClC,IAAA,MAAM,SAAA,kBAAW,WAAA,uBAAY,GAAA,qBAAI,UAAU,CAAA,+BAAG,OAAA;AAE9C,IAAA,GAAA,CAAI,CAAC,SAAA,GAAY,CAAC,QAAA,CAAS,QAAA,CAAS,SAAS,CAAA,EAAG,OAAO,KAAA;AAEvD,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,OAAA,MAAa,qBAAA,CAAuD,MAAA,EAI/C;AACnB,IAAA,MAAM,YAAA,EAAc,MAAM,8BAAA,CAAQ;AAElC,IAAA,GAAA,CAAI,MAAA,CAAO,MAAA,CAAO,OAAA,EAAS;AACzB,MAAA,MAAM,SAAA,kBAAW,WAAA,uBAAY,GAAA,qBAAI,UAAU,CAAA,+BAAG,OAAA;AAE9C,MAAA,GAAA,CAAI,SAAA,GAAY,CAAC,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,MAAA,CAAO,OAAO,CAAA,EAAG,OAAO,KAAA;AAAA,IACpE;AAEA,IAAA,MAAM,WAAA,kBAAa,WAAA,uBAAY,GAAA,qBAAI,SAAS,CAAA,+BAAG,OAAA;AAC/C,IAAA,GAAA,CAAI,CAAC,UAAA,EAAY,OAAO,KAAA;AAExB,IAAA,MAAM,QAAA,EAQA,IAAA,CAAK,KAAA,CAAM,0BAAA,MAAO,CAAO,IAAA,CAAK,UAAA,EAAY,QAAQ,CAAA,EAAG,EAAE,MAAA,EAAQ,KAAK,CAAC,CAAC,CAAA;AAE5E,IAAA,MAAM,eAAA,EAAiB,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,EAAA,GAAW,MAAA,CAAO,GAAA,IAAO,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA;AAEpF,IAAA,OAAO,yDAAA;AAA2B,MAChC,MAAA,EAAQ,MAAA,CAAO,MAAA;AAAA,MACf,MAAA,EAAQ,MAAA,CAAO,MAAA;AAAA,MACf,IAAA,EAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAA,EAAQ,MAAM,IAAA,CAAK,MAAA,CAAO,CAAA;AAAA,MAC1B;AAAA,IACF,CAAC,CAAA;AAAA,EAWH;AACF,CAAA;AFrBA;AACA;AACE;AACA;AACA;AACA;AACF,mLAAC","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 _chunk3NLAXVINjs = require('../chunk-3NLAXVIN.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":[]}
|
|
@@ -560,6 +560,17 @@ declare const BlockNoteViewerContainer: React__default.MemoExoticComponent<(prop
|
|
|
560
560
|
size?: "default" | "sm";
|
|
561
561
|
}) => React__default.JSX.Element>;
|
|
562
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
|
+
|
|
563
574
|
declare function ErrorDetails({ title, message, code }: {
|
|
564
575
|
title?: string;
|
|
565
576
|
message: string;
|
|
@@ -1633,7 +1644,26 @@ type AdminGroup = {
|
|
|
1633
1644
|
|
|
1634
1645
|
/** Keys of the built-in platform sections, for `hiddenSections`. */
|
|
1635
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>;
|
|
1636
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[];
|
|
1637
1667
|
/** Project-specific groups, appended after the built-in platform group. */
|
|
1638
1668
|
additionalGroups?: AdminGroup[];
|
|
1639
1669
|
/**
|
|
@@ -1649,13 +1679,13 @@ type AdminIndexProps = {
|
|
|
1649
1679
|
* The grid itself, with no page shell — this is what the specs render, because
|
|
1650
1680
|
* RoundPageContainer pulls in the app Header and its four header contexts.
|
|
1651
1681
|
*/
|
|
1652
|
-
declare function AdminIndexGrid({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1682
|
+
declare function AdminIndexGrid({ groups: customGroups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1653
1683
|
/**
|
|
1654
1684
|
* Drop-in administration landing page. Mount it bare — it brings its own shell
|
|
1655
1685
|
* and its own page chrome (AdministrationProvider), so it does not inherit the
|
|
1656
1686
|
* title and breadcrumb of whatever page rendered before it.
|
|
1657
1687
|
*/
|
|
1658
|
-
declare function AdminIndexContainer({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1688
|
+
declare function AdminIndexContainer({ groups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1659
1689
|
|
|
1660
1690
|
/**
|
|
1661
1691
|
* The fixed namespace of i18n keys the administration index reads via
|
|
@@ -1688,13 +1718,6 @@ declare const ADMINISTRATION_I18N_KEYS: readonly ["administration.title", "admin
|
|
|
1688
1718
|
*/
|
|
1689
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"];
|
|
1690
1720
|
|
|
1691
|
-
/**
|
|
1692
|
-
* Route the breadcrumb links back to. Constant rather than a prop for the same
|
|
1693
|
-
* reason TOKEN_USAGE_ADMIN_PAGE_URL is
|
|
1694
|
-
* (features/tokenusage/contexts/TokenUsageAdminContext.tsx): the breadcrumb is
|
|
1695
|
-
* built here, not by the consuming app, and the path convention IS the contract.
|
|
1696
|
-
*/
|
|
1697
|
-
declare const AI_CONNECTIONS_ADMIN_PAGE_URL = "/administration/ai-connections";
|
|
1698
1721
|
interface AiConnectionsContextType {
|
|
1699
1722
|
/** Every connection, both scopes — the cards filter per scope themselves. */
|
|
1700
1723
|
connections: AiConnectionInterface[];
|
|
@@ -4005,4 +4028,4 @@ interface MultipleSelectorRef {
|
|
|
4005
4028
|
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
4006
4029
|
declare const MultipleSelector: React$1.ForwardRefExoticComponent<MultipleSelectorProps & React$1.RefAttributes<MultipleSelectorRef>>;
|
|
4007
4030
|
|
|
4008
|
-
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 };
|
|
@@ -560,6 +560,17 @@ declare const BlockNoteViewerContainer: React__default.MemoExoticComponent<(prop
|
|
|
560
560
|
size?: "default" | "sm";
|
|
561
561
|
}) => React__default.JSX.Element>;
|
|
562
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
|
+
|
|
563
574
|
declare function ErrorDetails({ title, message, code }: {
|
|
564
575
|
title?: string;
|
|
565
576
|
message: string;
|
|
@@ -1633,7 +1644,26 @@ type AdminGroup = {
|
|
|
1633
1644
|
|
|
1634
1645
|
/** Keys of the built-in platform sections, for `hiddenSections`. */
|
|
1635
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>;
|
|
1636
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[];
|
|
1637
1667
|
/** Project-specific groups, appended after the built-in platform group. */
|
|
1638
1668
|
additionalGroups?: AdminGroup[];
|
|
1639
1669
|
/**
|
|
@@ -1649,13 +1679,13 @@ type AdminIndexProps = {
|
|
|
1649
1679
|
* The grid itself, with no page shell — this is what the specs render, because
|
|
1650
1680
|
* RoundPageContainer pulls in the app Header and its four header contexts.
|
|
1651
1681
|
*/
|
|
1652
|
-
declare function AdminIndexGrid({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1682
|
+
declare function AdminIndexGrid({ groups: customGroups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1653
1683
|
/**
|
|
1654
1684
|
* Drop-in administration landing page. Mount it bare — it brings its own shell
|
|
1655
1685
|
* and its own page chrome (AdministrationProvider), so it does not inherit the
|
|
1656
1686
|
* title and breadcrumb of whatever page rendered before it.
|
|
1657
1687
|
*/
|
|
1658
|
-
declare function AdminIndexContainer({ additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1688
|
+
declare function AdminIndexContainer({ groups, additionalGroups, hiddenSections }: AdminIndexProps): React$1.JSX.Element;
|
|
1659
1689
|
|
|
1660
1690
|
/**
|
|
1661
1691
|
* The fixed namespace of i18n keys the administration index reads via
|
|
@@ -1688,13 +1718,6 @@ declare const ADMINISTRATION_I18N_KEYS: readonly ["administration.title", "admin
|
|
|
1688
1718
|
*/
|
|
1689
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"];
|
|
1690
1720
|
|
|
1691
|
-
/**
|
|
1692
|
-
* Route the breadcrumb links back to. Constant rather than a prop for the same
|
|
1693
|
-
* reason TOKEN_USAGE_ADMIN_PAGE_URL is
|
|
1694
|
-
* (features/tokenusage/contexts/TokenUsageAdminContext.tsx): the breadcrumb is
|
|
1695
|
-
* built here, not by the consuming app, and the path convention IS the contract.
|
|
1696
|
-
*/
|
|
1697
|
-
declare const AI_CONNECTIONS_ADMIN_PAGE_URL = "/administration/ai-connections";
|
|
1698
1721
|
interface AiConnectionsContextType {
|
|
1699
1722
|
/** Every connection, both scopes — the cards filter per scope themselves. */
|
|
1700
1723
|
connections: AiConnectionInterface[];
|
|
@@ -4005,4 +4028,4 @@ interface MultipleSelectorRef {
|
|
|
4005
4028
|
declare function useDebounce<T>(value: T, delay?: number): T;
|
|
4006
4029
|
declare const MultipleSelector: React$1.ForwardRefExoticComponent<MultipleSelectorProps & React$1.RefAttributes<MultipleSelectorRef>>;
|
|
4007
4030
|
|
|
4008
|
-
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 };
|