@carlonicora/nextjs-jsonapi 1.117.0 → 1.118.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/{AssistantMessageInterface-Ca0G0vZw.d.mts → AssistantMessageInterface-DH1QwtC_.d.mts} +1 -0
- package/dist/{AssistantMessageInterface-DEZ5AnVl.d.ts → AssistantMessageInterface-giWvsOrX.d.ts} +1 -0
- package/dist/{BlockNoteEditor-6UREFUSJ.js → BlockNoteEditor-5FFVS7KW.js} +9 -9
- package/dist/{BlockNoteEditor-6UREFUSJ.js.map → BlockNoteEditor-5FFVS7KW.js.map} +1 -1
- package/dist/{BlockNoteEditor-UQOOX3UT.mjs → BlockNoteEditor-6GRZW6BL.mjs} +2 -2
- package/dist/billing/index.js +299 -299
- package/dist/billing/index.mjs +1 -1
- package/dist/{chunk-SVEPL5J2.mjs → chunk-KXHEOLPZ.mjs} +287 -156
- package/dist/chunk-KXHEOLPZ.mjs.map +1 -0
- package/dist/{chunk-HXU2HDRN.js → chunk-M2ODDWY3.js} +372 -241
- package/dist/chunk-M2ODDWY3.js.map +1 -0
- package/dist/client/index.js +2 -2
- package/dist/client/index.mjs +1 -1
- package/dist/components/index.d.mts +73 -31
- package/dist/components/index.d.ts +73 -31
- package/dist/components/index.js +4 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +3 -1
- package/dist/contexts/index.d.mts +1 -1
- package/dist/contexts/index.d.ts +1 -1
- package/dist/contexts/index.js +2 -2
- package/dist/contexts/index.mjs +1 -1
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/features/help/index.js +30 -30
- package/dist/features/help/index.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/containers/RoundPageContainer.tsx +197 -76
- package/src/components/containers/TabsContainer.tsx +14 -0
- package/src/components/containers/__tests__/partitionTabs.spec.ts +51 -0
- package/src/components/containers/index.ts +1 -0
- package/src/components/containers/partitionTabs.ts +43 -0
- package/src/components/forms/EditorSheet.tsx +7 -2
- package/src/components/navigations/Breadcrumb.tsx +31 -5
- package/src/hooks/useSocket.ts +12 -1
- package/src/interfaces/breadcrumb.item.data.interface.ts +1 -0
- package/dist/chunk-HXU2HDRN.js.map +0 -1
- package/dist/chunk-SVEPL5J2.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-UQOOX3UT.mjs.map → BlockNoteEditor-6GRZW6BL.mjs.map} +0 -0
|
@@ -7443,7 +7443,15 @@ function useSocket({ token }) {
|
|
|
7443
7443
|
});
|
|
7444
7444
|
}, "handleMessage");
|
|
7445
7445
|
const handleNotification = /* @__PURE__ */ __name((data) => {
|
|
7446
|
-
const
|
|
7446
|
+
const resource = data?.data ?? data?.jsonApi;
|
|
7447
|
+
if (!resource?.type) {
|
|
7448
|
+
console.warn("[useSocket] ignoring notification with unexpected payload shape", data);
|
|
7449
|
+
return;
|
|
7450
|
+
}
|
|
7451
|
+
const notification = rehydrate(Modules.Notification, {
|
|
7452
|
+
jsonApi: resource,
|
|
7453
|
+
included: data?.included || []
|
|
7454
|
+
});
|
|
7447
7455
|
if (notification) {
|
|
7448
7456
|
setSocketNotifications((prev) => {
|
|
7449
7457
|
const newNotifications = [...prev, notification];
|
|
@@ -9064,7 +9072,14 @@ function EditorSheet({
|
|
|
9064
9072
|
);
|
|
9065
9073
|
return /* @__PURE__ */ jsxs41(Fragment9, { children: [
|
|
9066
9074
|
/* @__PURE__ */ jsxs41(Sheet, { open, onOpenChange: handleOpenChange, children: [
|
|
9067
|
-
dialogOpen === void 0 && forceShow === void 0 && (trigger ?
|
|
9075
|
+
dialogOpen === void 0 && forceShow === void 0 && (trigger ? (
|
|
9076
|
+
// Base UI: the trigger renders its own <button>. Pass the caller's
|
|
9077
|
+
// element via `render` (NOT as children) so it BECOMES the trigger
|
|
9078
|
+
// button — otherwise an interactive trigger (e.g. <Button>) nests a
|
|
9079
|
+
// <button> inside SheetTrigger's <button> (invalid HTML / hydration
|
|
9080
|
+
// error). `render` also preserves the element's native `disabled`.
|
|
9081
|
+
/* @__PURE__ */ jsx71(SheetTrigger, { render: trigger })
|
|
9082
|
+
) : /* @__PURE__ */ jsx71(SheetTrigger, { children: isEdit ? /* @__PURE__ */ jsx71(
|
|
9068
9083
|
Button,
|
|
9069
9084
|
{
|
|
9070
9085
|
render: /* @__PURE__ */ jsx71("div", {}),
|
|
@@ -9786,7 +9801,7 @@ import { useRef as useRef15 } from "react";
|
|
|
9786
9801
|
import dynamic from "next/dynamic";
|
|
9787
9802
|
import React17 from "react";
|
|
9788
9803
|
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
9789
|
-
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-
|
|
9804
|
+
var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-6GRZW6BL.mjs"), {
|
|
9790
9805
|
ssr: false
|
|
9791
9806
|
});
|
|
9792
9807
|
var BlockNoteEditorContainer = React17.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
|
|
@@ -13943,19 +13958,19 @@ function BreadcrumbDesktop({
|
|
|
13943
13958
|
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: /* @__PURE__ */ jsx143(Link, { href: generateUrl({ page: `/` }), children: t(`common.home`) }) }),
|
|
13944
13959
|
items.length > 0 && /* @__PURE__ */ jsx143(BreadcrumbSeparator, {}),
|
|
13945
13960
|
items.length > ITEMS_TO_DISPLAY ? /* @__PURE__ */ jsxs82(Fragment21, { children: [
|
|
13946
|
-
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: items[0].href ? /* @__PURE__ */ jsx143(Link, { href: items[0].href, children: items[0].name }) : /* @__PURE__ */ jsx143(Fragment21, { children: items[0].name }) }),
|
|
13961
|
+
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: items[0].href ? /* @__PURE__ */ jsx143(Link, { href: items[0].href, onClick: items[0].onClick, children: items[0].name }) : /* @__PURE__ */ jsx143(Fragment21, { children: items[0].name }) }),
|
|
13947
13962
|
/* @__PURE__ */ jsx143(BreadcrumbSeparator, {}),
|
|
13948
13963
|
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: /* @__PURE__ */ jsxs82(DropdownMenu, { open, onOpenChange: setOpen, children: [
|
|
13949
13964
|
/* @__PURE__ */ jsx143(DropdownMenuTrigger, { className: "flex items-center gap-1", "aria-label": "Toggle menu", children: /* @__PURE__ */ jsx143(BreadcrumbEllipsis, { className: "h-4 w-4" }) }),
|
|
13950
|
-
/* @__PURE__ */ jsx143(DropdownMenuContent, { align: "start", children: items.slice(1, -ITEMS_TO_DISPLAY + 2).map((item, index) => /* @__PURE__ */ jsx143(DropdownMenuItem, { children: /* @__PURE__ */ jsx143(Link, { href: item.href ? item.href : "#", children: item.name }) }, index)) })
|
|
13965
|
+
/* @__PURE__ */ jsx143(DropdownMenuContent, { align: "start", children: items.slice(1, -ITEMS_TO_DISPLAY + 2).map((item, index) => /* @__PURE__ */ jsx143(DropdownMenuItem, { children: /* @__PURE__ */ jsx143(Link, { href: item.href ? item.href : "#", onClick: item.onClick, children: item.name }) }, index)) })
|
|
13951
13966
|
] }) }),
|
|
13952
13967
|
/* @__PURE__ */ jsx143(BreadcrumbSeparator, {}),
|
|
13953
13968
|
items.slice(-ITEMS_TO_DISPLAY + 2).map((item, index) => /* @__PURE__ */ jsxs82(Fragment20, { children: [
|
|
13954
|
-
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }),
|
|
13969
|
+
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, onClick: item.onClick, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }),
|
|
13955
13970
|
index < items.slice(-ITEMS_TO_DISPLAY + 2).length - 1 && /* @__PURE__ */ jsx143(BreadcrumbSeparator, {})
|
|
13956
13971
|
] }, index))
|
|
13957
13972
|
] }) : /* @__PURE__ */ jsx143(Fragment21, { children: items.map((item, index) => /* @__PURE__ */ jsxs82(Fragment20, { children: [
|
|
13958
|
-
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }),
|
|
13973
|
+
/* @__PURE__ */ jsx143(BreadcrumbItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, onClick: item.onClick, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }),
|
|
13959
13974
|
index < items.length - 1 && /* @__PURE__ */ jsx143(BreadcrumbSeparator, {})
|
|
13960
13975
|
] }, index)) })
|
|
13961
13976
|
] }) });
|
|
@@ -13977,7 +13992,7 @@ function BreadcrumbMobile({
|
|
|
13977
13992
|
lastItem?.name,
|
|
13978
13993
|
/* @__PURE__ */ jsx143(ChevronDownIcon8, { className: "text-muted-foreground size-3.5" })
|
|
13979
13994
|
] }),
|
|
13980
|
-
/* @__PURE__ */ jsx143(DropdownMenuContent, { align: "start", children: allItems.map((item, index) => /* @__PURE__ */ jsx143(DropdownMenuItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }, index)) })
|
|
13995
|
+
/* @__PURE__ */ jsx143(DropdownMenuContent, { align: "start", children: allItems.map((item, index) => /* @__PURE__ */ jsx143(DropdownMenuItem, { children: item.href ? /* @__PURE__ */ jsx143(Link, { href: item.href, onClick: item.onClick, children: item.name }) : /* @__PURE__ */ jsx143(Fragment21, { children: item.name }) }, index)) })
|
|
13981
13996
|
] });
|
|
13982
13997
|
}
|
|
13983
13998
|
__name(BreadcrumbMobile, "BreadcrumbMobile");
|
|
@@ -14138,6 +14153,32 @@ function PageContainer({ children, testId, className }) {
|
|
|
14138
14153
|
}
|
|
14139
14154
|
__name(PageContainer, "PageContainer");
|
|
14140
14155
|
|
|
14156
|
+
// src/components/containers/partitionTabs.ts
|
|
14157
|
+
function partitionTabs(tabs) {
|
|
14158
|
+
const ungrouped = [];
|
|
14159
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
14160
|
+
const groupOrder = [];
|
|
14161
|
+
for (const tab of tabs) {
|
|
14162
|
+
if (!tab.group) {
|
|
14163
|
+
ungrouped.push(tab);
|
|
14164
|
+
continue;
|
|
14165
|
+
}
|
|
14166
|
+
if (!groupMap.has(tab.group)) {
|
|
14167
|
+
groupMap.set(tab.group, []);
|
|
14168
|
+
groupOrder.push(tab.group);
|
|
14169
|
+
}
|
|
14170
|
+
groupMap.get(tab.group).push(tab);
|
|
14171
|
+
}
|
|
14172
|
+
return {
|
|
14173
|
+
ungrouped,
|
|
14174
|
+
groups: groupOrder.map((label) => ({
|
|
14175
|
+
label,
|
|
14176
|
+
items: groupMap.get(label)
|
|
14177
|
+
}))
|
|
14178
|
+
};
|
|
14179
|
+
}
|
|
14180
|
+
__name(partitionTabs, "partitionTabs");
|
|
14181
|
+
|
|
14141
14182
|
// src/components/containers/ReactMarkdownContainer.tsx
|
|
14142
14183
|
import { ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
|
|
14143
14184
|
import { useTranslations as useTranslations52 } from "next-intl";
|
|
@@ -14258,10 +14299,18 @@ __name(RoundPageContainerTitle, "RoundPageContainerTitle");
|
|
|
14258
14299
|
|
|
14259
14300
|
// src/components/containers/RoundPageContainer.tsx
|
|
14260
14301
|
import { useSearchParams } from "next/navigation";
|
|
14261
|
-
import { useCallback as useCallback26, useEffect as useEffect39, useState as useState48 } from "react";
|
|
14262
|
-
import { Fragment as
|
|
14302
|
+
import { Fragment as Fragment22, useCallback as useCallback26, useEffect as useEffect39, useMemo as useMemo20, useState as useState48 } from "react";
|
|
14303
|
+
import { Fragment as Fragment23, jsx as jsx152, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
14263
14304
|
var DETAILS_COOKIE_NAME = "round_page_details_state";
|
|
14264
14305
|
var DETAILS_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
14306
|
+
var railTriggerClass = cn(
|
|
14307
|
+
"flex w-full items-center justify-start rounded-md px-3 py-1.5 text-left text-sm leading-tight whitespace-normal",
|
|
14308
|
+
"text-muted-foreground",
|
|
14309
|
+
"hover:bg-muted hover:text-foreground",
|
|
14310
|
+
"data-[state=active]:bg-foreground data-[state=active]:text-background",
|
|
14311
|
+
"data-[state=active]:font-semibold data-[state=active]:shadow-none"
|
|
14312
|
+
);
|
|
14313
|
+
var tabValue = /* @__PURE__ */ __name((tab) => tab.sectionKey ?? tab.key?.name ?? tab.label, "tabValue");
|
|
14265
14314
|
function RoundPageContainer({
|
|
14266
14315
|
module,
|
|
14267
14316
|
id,
|
|
@@ -14270,7 +14319,8 @@ function RoundPageContainer({
|
|
|
14270
14319
|
children,
|
|
14271
14320
|
fullWidth,
|
|
14272
14321
|
forceHeader,
|
|
14273
|
-
header
|
|
14322
|
+
header,
|
|
14323
|
+
layout: layout2 = "tabs"
|
|
14274
14324
|
}) {
|
|
14275
14325
|
const headerChildren = useHeaderChildren();
|
|
14276
14326
|
const headerLeftContent = useHeaderLeftContent();
|
|
@@ -14291,11 +14341,11 @@ function RoundPageContainer({
|
|
|
14291
14341
|
const searchParams = useSearchParams();
|
|
14292
14342
|
const section = searchParams.get("section");
|
|
14293
14343
|
const rewriteUrl = useUrlRewriter();
|
|
14294
|
-
const initialValue = tabs ? (section && tabs.find((i) => (i
|
|
14344
|
+
const initialValue = tabs ? (section && tabs.find((i) => tabValue(i) === section) ? section : null) || tabValue(tabs[0]) : void 0;
|
|
14295
14345
|
const [activeTab, setActiveTab] = useState48(initialValue);
|
|
14296
14346
|
useEffect39(() => {
|
|
14297
14347
|
if (tabs && section) {
|
|
14298
|
-
const tab = tabs.find((i) => (i
|
|
14348
|
+
const tab = tabs.find((i) => tabValue(i) === section);
|
|
14299
14349
|
if (tab) {
|
|
14300
14350
|
setActiveTab(section);
|
|
14301
14351
|
}
|
|
@@ -14308,15 +14358,16 @@ function RoundPageContainer({
|
|
|
14308
14358
|
},
|
|
14309
14359
|
[module, id, rewriteUrl]
|
|
14310
14360
|
);
|
|
14311
|
-
const activeFillHeight = tabs?.find((t) => (t
|
|
14361
|
+
const activeFillHeight = tabs?.find((t) => tabValue(t) === activeTab)?.fillHeight === true;
|
|
14362
|
+
const { ungrouped, groups } = useMemo20(() => partitionTabs(tabs ?? []), [tabs]);
|
|
14312
14363
|
const isReady = mounted && isMobile !== void 0;
|
|
14313
14364
|
if (!isReady) {
|
|
14314
|
-
return /* @__PURE__ */ jsxs90(
|
|
14365
|
+
return /* @__PURE__ */ jsxs90(Fragment23, { children: [
|
|
14315
14366
|
/* @__PURE__ */ jsx152(Header, { leftContent: headerLeftContent, className: "bg-sidebar border-0", children: headerChildren }),
|
|
14316
14367
|
/* @__PURE__ */ jsx152("div", { className: cn("flex h-[calc(100vh-3rem)] w-full flex-col", isMobile ? "" : "p-2 pt-0 pl-0"), children: /* @__PURE__ */ jsx152("div", { className: cn("bg-background flex h-full w-full", isMobile ? "" : "rounded-lg border p-0"), children: /* @__PURE__ */ jsx152("div", { className: "flex w-full flex-col" }) }) })
|
|
14317
14368
|
] });
|
|
14318
14369
|
}
|
|
14319
|
-
return /* @__PURE__ */ jsxs90(
|
|
14370
|
+
return /* @__PURE__ */ jsxs90(Fragment23, { children: [
|
|
14320
14371
|
/* @__PURE__ */ jsx152(Header, { leftContent: headerLeftContent, className: "bg-sidebar border-0", children: headerChildren }),
|
|
14321
14372
|
/* @__PURE__ */ jsx152("div", { className: cn(`flex h-[calc(100vh-3rem)] w-full flex-col`, isMobile ? "p-1 pt-0" : "p-2 pt-0 pl-0"), children: /* @__PURE__ */ jsx152("div", { className: "bg-background flex h-full w-full rounded-lg border p-0", children: /* @__PURE__ */ jsxs90("div", { className: "flex w-full flex-col", children: [
|
|
14322
14373
|
(!fullWidth || forceHeader) && /* @__PURE__ */ jsx152(
|
|
@@ -14330,7 +14381,86 @@ function RoundPageContainer({
|
|
|
14330
14381
|
}
|
|
14331
14382
|
),
|
|
14332
14383
|
/* @__PURE__ */ jsxs90("div", { className: "flex h-full w-full overflow-hidden", children: [
|
|
14333
|
-
|
|
14384
|
+
layout2 === "rail" && tabs ? (
|
|
14385
|
+
// Rail layout: the vertical-tab navigation is a flush-left
|
|
14386
|
+
// sidebar of the card and the content fills the full remaining
|
|
14387
|
+
// width (like `fullWidth`) — NOT the centred max-w-6xl column.
|
|
14388
|
+
/* @__PURE__ */ jsxs90(
|
|
14389
|
+
Tabs,
|
|
14390
|
+
{
|
|
14391
|
+
value: activeTab,
|
|
14392
|
+
onValueChange: handleTabChange,
|
|
14393
|
+
orientation: "vertical",
|
|
14394
|
+
className: "flex h-full min-w-0 grow overflow-hidden",
|
|
14395
|
+
children: [
|
|
14396
|
+
/* @__PURE__ */ jsx152(
|
|
14397
|
+
"aside",
|
|
14398
|
+
{
|
|
14399
|
+
"data-testid": "round-page-rail",
|
|
14400
|
+
className: "hidden shrink-0 border-r p-4 md:flex md:w-56 md:flex-col md:overflow-y-auto",
|
|
14401
|
+
children: /* @__PURE__ */ jsxs90(TabsList, { className: "flex h-auto flex-col items-stretch gap-0.5 bg-transparent p-0", children: [
|
|
14402
|
+
ungrouped.map((tab) => /* @__PURE__ */ jsx152(TabsTrigger, { value: tabValue(tab), className: railTriggerClass, children: tab.contentLabel ?? tab.label }, tab.label)),
|
|
14403
|
+
groups.map((group) => /* @__PURE__ */ jsxs90(Fragment22, { children: [
|
|
14404
|
+
/* @__PURE__ */ jsx152(
|
|
14405
|
+
"div",
|
|
14406
|
+
{
|
|
14407
|
+
role: "presentation",
|
|
14408
|
+
className: "text-muted-foreground px-3 pt-3 pb-1 text-[10px] font-bold tracking-wider uppercase",
|
|
14409
|
+
children: group.label
|
|
14410
|
+
}
|
|
14411
|
+
),
|
|
14412
|
+
group.items.map((tab) => /* @__PURE__ */ jsx152(TabsTrigger, { value: tabValue(tab), className: railTriggerClass, children: tab.contentLabel ?? tab.label }, tab.label))
|
|
14413
|
+
] }, group.label))
|
|
14414
|
+
] })
|
|
14415
|
+
}
|
|
14416
|
+
),
|
|
14417
|
+
/* @__PURE__ */ jsxs90("div", { className: "flex min-w-0 grow flex-col overflow-hidden", children: [
|
|
14418
|
+
/* @__PURE__ */ jsx152("div", { "data-testid": "round-page-rail-select", className: "p-2 md:hidden", children: /* @__PURE__ */ jsxs90(
|
|
14419
|
+
Select,
|
|
14420
|
+
{
|
|
14421
|
+
value: activeTab,
|
|
14422
|
+
onValueChange: (value) => {
|
|
14423
|
+
if (value) handleTabChange(value);
|
|
14424
|
+
},
|
|
14425
|
+
children: [
|
|
14426
|
+
/* @__PURE__ */ jsx152(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx152(SelectValue, {}) }),
|
|
14427
|
+
/* @__PURE__ */ jsxs90(SelectContent, { children: [
|
|
14428
|
+
ungrouped.map((tab) => /* @__PURE__ */ jsx152(SelectItem, { value: tabValue(tab), children: tab.contentLabel ?? tab.label }, tab.label)),
|
|
14429
|
+
groups.map((group) => /* @__PURE__ */ jsxs90(SelectGroup, { children: [
|
|
14430
|
+
/* @__PURE__ */ jsx152(SelectLabel, { children: group.label }),
|
|
14431
|
+
group.items.map((tab) => /* @__PURE__ */ jsx152(SelectItem, { value: tabValue(tab), children: tab.contentLabel ?? tab.label }, tab.label))
|
|
14432
|
+
] }, group.label))
|
|
14433
|
+
] })
|
|
14434
|
+
]
|
|
14435
|
+
}
|
|
14436
|
+
) }),
|
|
14437
|
+
/* @__PURE__ */ jsxs90(
|
|
14438
|
+
"div",
|
|
14439
|
+
{
|
|
14440
|
+
className: cn(
|
|
14441
|
+
`min-w-0 grow`,
|
|
14442
|
+
activeFillHeight ? `flex flex-col overflow-hidden` : `overflow-y-auto`
|
|
14443
|
+
),
|
|
14444
|
+
children: [
|
|
14445
|
+
header,
|
|
14446
|
+
tabs.map((tab) => /* @__PURE__ */ jsx152(
|
|
14447
|
+
TabsContent,
|
|
14448
|
+
{
|
|
14449
|
+
value: tabValue(tab),
|
|
14450
|
+
className: tab.fillHeight ? `flex min-h-0 w-full flex-1 flex-col` : ``,
|
|
14451
|
+
children: tab.content
|
|
14452
|
+
},
|
|
14453
|
+
tab.label
|
|
14454
|
+
)),
|
|
14455
|
+
children && /* @__PURE__ */ jsx152("div", { className: "flex", children })
|
|
14456
|
+
]
|
|
14457
|
+
}
|
|
14458
|
+
)
|
|
14459
|
+
] })
|
|
14460
|
+
]
|
|
14461
|
+
}
|
|
14462
|
+
)
|
|
14463
|
+
) : /* @__PURE__ */ jsx152(
|
|
14334
14464
|
"div",
|
|
14335
14465
|
{
|
|
14336
14466
|
className: cn(
|
|
@@ -14349,7 +14479,7 @@ function RoundPageContainer({
|
|
|
14349
14479
|
),
|
|
14350
14480
|
children: [
|
|
14351
14481
|
header,
|
|
14352
|
-
tabs ? /* @__PURE__ */ jsxs90(
|
|
14482
|
+
tabs ? /* @__PURE__ */ jsxs90(Fragment23, { children: [
|
|
14353
14483
|
/* @__PURE__ */ jsxs90(
|
|
14354
14484
|
Tabs,
|
|
14355
14485
|
{
|
|
@@ -14366,10 +14496,10 @@ function RoundPageContainer({
|
|
|
14366
14496
|
},
|
|
14367
14497
|
children: [
|
|
14368
14498
|
/* @__PURE__ */ jsx152(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx152(SelectValue, {}) }),
|
|
14369
|
-
/* @__PURE__ */ jsx152(SelectContent, { children: tabs.map((tab) => /* @__PURE__ */ jsx152(SelectItem, { value: tab
|
|
14499
|
+
/* @__PURE__ */ jsx152(SelectContent, { children: tabs.map((tab) => /* @__PURE__ */ jsx152(SelectItem, { value: tabValue(tab), children: tab.contentLabel ?? tab.label }, tab.label)) })
|
|
14370
14500
|
]
|
|
14371
14501
|
}
|
|
14372
|
-
) }) : /* @__PURE__ */ jsx152("div", { className: "p-4", children: /* @__PURE__ */ jsx152(TabsList, { children: tabs.map((tab) => /* @__PURE__ */ jsx152(TabsTrigger, { value: tab
|
|
14502
|
+
) }) : /* @__PURE__ */ jsx152("div", { className: "p-4", children: /* @__PURE__ */ jsx152(TabsList, { children: tabs.map((tab) => /* @__PURE__ */ jsx152(TabsTrigger, { value: tabValue(tab), className: "px-4", children: tab.contentLabel ?? tab.label }, tab.label)) }) }),
|
|
14373
14503
|
/* @__PURE__ */ jsx152(
|
|
14374
14504
|
"div",
|
|
14375
14505
|
{
|
|
@@ -14381,7 +14511,7 @@ function RoundPageContainer({
|
|
|
14381
14511
|
children: tabs.map((tab) => /* @__PURE__ */ jsx152(
|
|
14382
14512
|
TabsContent,
|
|
14383
14513
|
{
|
|
14384
|
-
value: tab
|
|
14514
|
+
value: tabValue(tab),
|
|
14385
14515
|
className: tab.fillHeight ? `flex flex-1 min-h-0 w-full flex-col` : `pb-20`,
|
|
14386
14516
|
children: tab.content
|
|
14387
14517
|
},
|
|
@@ -14419,7 +14549,7 @@ function RoundPageContainer({
|
|
|
14419
14549
|
__name(RoundPageContainer, "RoundPageContainer");
|
|
14420
14550
|
|
|
14421
14551
|
// src/components/containers/TabsContainer.tsx
|
|
14422
|
-
import { Fragment as
|
|
14552
|
+
import { Fragment as Fragment24, jsx as jsx153, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
14423
14553
|
function TabsContainer({
|
|
14424
14554
|
tabs,
|
|
14425
14555
|
defaultTab,
|
|
@@ -14463,7 +14593,7 @@ function TabsContainer({
|
|
|
14463
14593
|
),
|
|
14464
14594
|
additionalComponent && additionalComponent
|
|
14465
14595
|
] }),
|
|
14466
|
-
scrollAreaClassName ? /* @__PURE__ */ jsx153(ScrollArea, { className: scrollAreaClassName, children: validTabs.map((tab) => /* @__PURE__ */ jsx153(TabsContent, { value: tab.label, children: tab.content }, tab.label)) }) : /* @__PURE__ */ jsx153(
|
|
14596
|
+
scrollAreaClassName ? /* @__PURE__ */ jsx153(ScrollArea, { className: scrollAreaClassName, children: validTabs.map((tab) => /* @__PURE__ */ jsx153(TabsContent, { value: tab.label, children: tab.content }, tab.label)) }) : /* @__PURE__ */ jsx153(Fragment24, { children: validTabs.map((tab) => /* @__PURE__ */ jsx153(TabsContent, { value: tab.label, children: tab.content }, tab.label)) })
|
|
14467
14597
|
] });
|
|
14468
14598
|
}
|
|
14469
14599
|
__name(TabsContainer, "TabsContainer");
|
|
@@ -14645,7 +14775,7 @@ var createMentionInlineContentSpec = /* @__PURE__ */ __name((resolveFn, disableM
|
|
|
14645
14775
|
// src/components/editors/BlockNoteEditorSuggestionMenuController.tsx
|
|
14646
14776
|
import { SuggestionMenuController } from "@blocknote/react";
|
|
14647
14777
|
import { autoUpdate, flip, shift } from "@floating-ui/react";
|
|
14648
|
-
import React25, { useCallback as useCallback28, useMemo as
|
|
14778
|
+
import React25, { useCallback as useCallback28, useMemo as useMemo21 } from "react";
|
|
14649
14779
|
import { jsx as jsx157 } from "react/jsx-runtime";
|
|
14650
14780
|
var MentionInsertContext = React25.createContext(null);
|
|
14651
14781
|
var useMentionInsert = /* @__PURE__ */ __name(() => React25.useContext(MentionInsertContext), "useMentionInsert");
|
|
@@ -14697,7 +14827,7 @@ function BlockNoteEditorMentionSuggestionMenu({
|
|
|
14697
14827
|
},
|
|
14698
14828
|
[editor, mentionSearchFn, mentionSearchParams]
|
|
14699
14829
|
);
|
|
14700
|
-
const wrappedSuggestionMenuComponent =
|
|
14830
|
+
const wrappedSuggestionMenuComponent = useMemo21(() => {
|
|
14701
14831
|
if (!suggestionMenuComponent) return void 0;
|
|
14702
14832
|
const Component2 = suggestionMenuComponent;
|
|
14703
14833
|
const Wrapped = /* @__PURE__ */ __name((props) => {
|
|
@@ -14944,7 +15074,7 @@ var cellUrl = /* @__PURE__ */ __name((params) => {
|
|
|
14944
15074
|
}, "cellUrl");
|
|
14945
15075
|
|
|
14946
15076
|
// src/client/context/JsonApiProvider.tsx
|
|
14947
|
-
import { useEffect as useEffect43, useMemo as
|
|
15077
|
+
import { useEffect as useEffect43, useMemo as useMemo22 } from "react";
|
|
14948
15078
|
import { jsx as jsx166 } from "react/jsx-runtime";
|
|
14949
15079
|
function JsonApiProvider({ config, children }) {
|
|
14950
15080
|
useEffect43(() => {
|
|
@@ -14952,7 +15082,7 @@ function JsonApiProvider({ config, children }) {
|
|
|
14952
15082
|
config.bootstrapper();
|
|
14953
15083
|
}
|
|
14954
15084
|
}, [config.bootstrapper]);
|
|
14955
|
-
const memoizedConfig =
|
|
15085
|
+
const memoizedConfig = useMemo22(() => config, [config]);
|
|
14956
15086
|
return /* @__PURE__ */ jsx166(JsonApiContext.Provider, { value: memoizedConfig, children });
|
|
14957
15087
|
}
|
|
14958
15088
|
__name(JsonApiProvider, "JsonApiProvider");
|
|
@@ -15158,16 +15288,16 @@ function useJsonApiMutation(config) {
|
|
|
15158
15288
|
__name(useJsonApiMutation, "useJsonApiMutation");
|
|
15159
15289
|
|
|
15160
15290
|
// src/client/hooks/useRehydration.ts
|
|
15161
|
-
import { useMemo as
|
|
15291
|
+
import { useMemo as useMemo23 } from "react";
|
|
15162
15292
|
function useRehydration(classKey, data) {
|
|
15163
|
-
return
|
|
15293
|
+
return useMemo23(() => {
|
|
15164
15294
|
if (!data) return null;
|
|
15165
15295
|
return RehydrationFactory.rehydrate(classKey, data);
|
|
15166
15296
|
}, [classKey, data]);
|
|
15167
15297
|
}
|
|
15168
15298
|
__name(useRehydration, "useRehydration");
|
|
15169
15299
|
function useRehydrationList(classKey, data) {
|
|
15170
|
-
return
|
|
15300
|
+
return useMemo23(() => {
|
|
15171
15301
|
if (!data || data.length === 0) return [];
|
|
15172
15302
|
return RehydrationFactory.rehydrateList(classKey, data);
|
|
15173
15303
|
}, [classKey, data]);
|
|
@@ -15176,13 +15306,13 @@ __name(useRehydrationList, "useRehydrationList");
|
|
|
15176
15306
|
|
|
15177
15307
|
// src/features/company/hooks/useCompanyTableStructure.tsx
|
|
15178
15308
|
import { useTranslations as useTranslations54 } from "next-intl";
|
|
15179
|
-
import { useMemo as
|
|
15309
|
+
import { useMemo as useMemo24 } from "react";
|
|
15180
15310
|
import { jsx as jsx167 } from "react/jsx-runtime";
|
|
15181
15311
|
var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
|
|
15182
15312
|
const t = useTranslations54();
|
|
15183
15313
|
const generateUrl = usePageUrlGenerator();
|
|
15184
15314
|
const { hasRole } = useCurrentUserContext();
|
|
15185
|
-
const tableData =
|
|
15315
|
+
const tableData = useMemo24(() => {
|
|
15186
15316
|
return params.data.map((company) => {
|
|
15187
15317
|
const entry = {
|
|
15188
15318
|
jsonApiData: company
|
|
@@ -15226,14 +15356,14 @@ var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15226
15356
|
title: t(`common.date.create`)
|
|
15227
15357
|
})
|
|
15228
15358
|
};
|
|
15229
|
-
const columns =
|
|
15359
|
+
const columns = useMemo24(() => {
|
|
15230
15360
|
return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
|
|
15231
15361
|
}, [params.fields, fieldColumnMap, t, generateUrl, hasRole]);
|
|
15232
|
-
return
|
|
15362
|
+
return useMemo24(() => ({ data: tableData, columns }), [tableData, columns]);
|
|
15233
15363
|
}, "useCompanyTableStructure");
|
|
15234
15364
|
|
|
15235
15365
|
// src/features/company/hooks/useSubscriptionStatus.ts
|
|
15236
|
-
import { useMemo as
|
|
15366
|
+
import { useMemo as useMemo25 } from "react";
|
|
15237
15367
|
var TRIAL_DAYS = 14;
|
|
15238
15368
|
var GRACE_DAYS = 3;
|
|
15239
15369
|
var isAdministrator = /* @__PURE__ */ __name((currentUser) => {
|
|
@@ -15243,7 +15373,7 @@ var isAdministrator = /* @__PURE__ */ __name((currentUser) => {
|
|
|
15243
15373
|
}, "isAdministrator");
|
|
15244
15374
|
function useSubscriptionStatus() {
|
|
15245
15375
|
const { company, currentUser } = useCurrentUserContext();
|
|
15246
|
-
return
|
|
15376
|
+
return useMemo25(() => {
|
|
15247
15377
|
if (currentUser === null) {
|
|
15248
15378
|
return {
|
|
15249
15379
|
status: "loading",
|
|
@@ -15308,12 +15438,12 @@ __name(useSubscriptionStatus, "useSubscriptionStatus");
|
|
|
15308
15438
|
|
|
15309
15439
|
// src/features/role/hooks/useRoleTableStructure.tsx
|
|
15310
15440
|
import { useTranslations as useTranslations55 } from "next-intl";
|
|
15311
|
-
import { useMemo as
|
|
15312
|
-
import { Fragment as
|
|
15441
|
+
import { useMemo as useMemo26 } from "react";
|
|
15442
|
+
import { Fragment as Fragment25, jsx as jsx168 } from "react/jsx-runtime";
|
|
15313
15443
|
var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
|
|
15314
15444
|
const t = useTranslations55();
|
|
15315
15445
|
const generateUrl = usePageUrlGenerator();
|
|
15316
|
-
const tableData =
|
|
15446
|
+
const tableData = useMemo26(() => {
|
|
15317
15447
|
return params.data.map((role) => {
|
|
15318
15448
|
const entry = {
|
|
15319
15449
|
jsonApiData: role
|
|
@@ -15346,7 +15476,7 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15346
15476
|
id: "description",
|
|
15347
15477
|
accessorKey: "description",
|
|
15348
15478
|
header: t(`role.fields.description.label`),
|
|
15349
|
-
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx168(
|
|
15479
|
+
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx168(Fragment25, { children: row.getValue("description") }), "cell"),
|
|
15350
15480
|
enableSorting: false,
|
|
15351
15481
|
enableHiding: false
|
|
15352
15482
|
}),
|
|
@@ -15355,20 +15485,20 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15355
15485
|
title: t(`common.date.create`)
|
|
15356
15486
|
})
|
|
15357
15487
|
};
|
|
15358
|
-
const columns =
|
|
15488
|
+
const columns = useMemo26(() => {
|
|
15359
15489
|
return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
|
|
15360
15490
|
}, [params.fields, fieldColumnMap, t, generateUrl]);
|
|
15361
|
-
return
|
|
15491
|
+
return useMemo26(() => ({ data: tableData, columns }), [tableData, columns]);
|
|
15362
15492
|
}, "useRoleTableStructure");
|
|
15363
15493
|
|
|
15364
15494
|
// src/features/content/hooks/useContentTableStructure.tsx
|
|
15365
15495
|
import { useTranslations as useTranslations56 } from "next-intl";
|
|
15366
|
-
import { useMemo as
|
|
15367
|
-
import { Fragment as
|
|
15496
|
+
import { useMemo as useMemo27 } from "react";
|
|
15497
|
+
import { Fragment as Fragment26, jsx as jsx169, jsxs as jsxs96 } from "react/jsx-runtime";
|
|
15368
15498
|
var useContentTableStructure = /* @__PURE__ */ __name((params) => {
|
|
15369
15499
|
const t = useTranslations56();
|
|
15370
15500
|
const generateUrl = usePageUrlGenerator();
|
|
15371
|
-
const tableData =
|
|
15501
|
+
const tableData = useMemo27(() => {
|
|
15372
15502
|
return params.data.map((content) => {
|
|
15373
15503
|
const entry = {
|
|
15374
15504
|
jsonApiData: content
|
|
@@ -15395,7 +15525,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15395
15525
|
const contentModule = content.contentType ? Modules.findByModelName(content.contentType) : void 0;
|
|
15396
15526
|
const link = contentModule ? generateUrl({ page: contentModule, id: content.id }) : "#";
|
|
15397
15527
|
return /* @__PURE__ */ jsxs96(Tooltip2, { children: [
|
|
15398
|
-
/* @__PURE__ */ jsx169(TooltipTrigger, { className: "flex items-center justify-start space-x-2", children: /* @__PURE__ */ jsxs96(
|
|
15528
|
+
/* @__PURE__ */ jsx169(TooltipTrigger, { className: "flex items-center justify-start space-x-2", children: /* @__PURE__ */ jsxs96(Fragment26, { children: [
|
|
15399
15529
|
contentModule && getIconByModule({ module: contentModule, className: "h-4 w-4" }),
|
|
15400
15530
|
/* @__PURE__ */ jsx169(Link, { href: link, children: content.name })
|
|
15401
15531
|
] }) }),
|
|
@@ -15411,7 +15541,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15411
15541
|
header: t(`common.relevance`),
|
|
15412
15542
|
cell: /* @__PURE__ */ __name(({ row }) => {
|
|
15413
15543
|
const content = row.original.jsonApiData;
|
|
15414
|
-
if (!content.relevance) return /* @__PURE__ */ jsx169(
|
|
15544
|
+
if (!content.relevance) return /* @__PURE__ */ jsx169(Fragment26, {});
|
|
15415
15545
|
const response = `${content.relevance.toFixed(0)}%`;
|
|
15416
15546
|
return /* @__PURE__ */ jsxs96("div", { className: "relative flex h-5 w-20 items-center justify-center overflow-clip rounded border text-center", children: [
|
|
15417
15547
|
/* @__PURE__ */ jsx169(
|
|
@@ -15453,7 +15583,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15453
15583
|
title: t(`common.date.update`)
|
|
15454
15584
|
})
|
|
15455
15585
|
};
|
|
15456
|
-
const columns =
|
|
15586
|
+
const columns = useMemo27(() => {
|
|
15457
15587
|
return params.fields.map((field) => {
|
|
15458
15588
|
const localHandler = fieldColumnMap[field];
|
|
15459
15589
|
if (localHandler) return localHandler();
|
|
@@ -15462,7 +15592,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
15462
15592
|
return void 0;
|
|
15463
15593
|
}).filter((col) => col !== void 0);
|
|
15464
15594
|
}, [params.fields, fieldColumnMap, t, generateUrl, params.context?.customCells]);
|
|
15465
|
-
return
|
|
15595
|
+
return useMemo27(() => ({ data: tableData, columns }), [tableData, columns]);
|
|
15466
15596
|
}, "useContentTableStructure");
|
|
15467
15597
|
|
|
15468
15598
|
// src/features/oauth/hooks/useOAuthClients.ts
|
|
@@ -15761,7 +15891,7 @@ registerTableGenerator("companies", useCompanyTableStructure);
|
|
|
15761
15891
|
// src/components/tables/ContentListTable.tsx
|
|
15762
15892
|
import { flexRender, getCoreRowModel, getExpandedRowModel, useReactTable } from "@tanstack/react-table";
|
|
15763
15893
|
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
15764
|
-
import React28, { memo, useMemo as
|
|
15894
|
+
import React28, { memo, useMemo as useMemo28, useState as useState57 } from "react";
|
|
15765
15895
|
|
|
15766
15896
|
// src/components/tables/ContentTableSearch.tsx
|
|
15767
15897
|
import { RefreshCw, Search, X as X3 } from "lucide-react";
|
|
@@ -15854,7 +15984,7 @@ function ContentTableSearch({ data }) {
|
|
|
15854
15984
|
__name(ContentTableSearch, "ContentTableSearch");
|
|
15855
15985
|
|
|
15856
15986
|
// src/components/tables/ContentListTable.tsx
|
|
15857
|
-
import { Fragment as
|
|
15987
|
+
import { Fragment as Fragment27, jsx as jsx171, jsxs as jsxs98 } from "react/jsx-runtime";
|
|
15858
15988
|
var EMPTY_ARRAY = [];
|
|
15859
15989
|
function getGroupKeys(item, field) {
|
|
15860
15990
|
const value = item.jsonApiData[field];
|
|
@@ -15880,7 +16010,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
|
|
|
15880
16010
|
dataRetriever: data,
|
|
15881
16011
|
context: props.context
|
|
15882
16012
|
});
|
|
15883
|
-
const columnVisibility =
|
|
16013
|
+
const columnVisibility = useMemo28(
|
|
15884
16014
|
() => fields.reduce(
|
|
15885
16015
|
(acc, columnId) => {
|
|
15886
16016
|
acc[columnId] = true;
|
|
@@ -15905,7 +16035,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
|
|
|
15905
16035
|
}
|
|
15906
16036
|
});
|
|
15907
16037
|
const rowModel = tableData ? table.getRowModel() : null;
|
|
15908
|
-
const groupedRows =
|
|
16038
|
+
const groupedRows = useMemo28(() => {
|
|
15909
16039
|
if (!props.groupBy || !rowModel?.rows?.length) return null;
|
|
15910
16040
|
const groupMap = /* @__PURE__ */ new Map();
|
|
15911
16041
|
for (const row of rowModel.rows) {
|
|
@@ -15952,7 +16082,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
|
|
|
15952
16082
|
]
|
|
15953
16083
|
}
|
|
15954
16084
|
) }),
|
|
15955
|
-
(props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs98(
|
|
16085
|
+
(props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs98(Fragment27, { children: [
|
|
15956
16086
|
props.functions,
|
|
15957
16087
|
props.filters,
|
|
15958
16088
|
/* @__PURE__ */ jsx171(ContentTableSearch, { data })
|
|
@@ -16016,7 +16146,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
|
|
|
16016
16146
|
|
|
16017
16147
|
// src/components/grids/ContentListGrid.tsx
|
|
16018
16148
|
import { useEffect as useEffect49, useRef as useRef29 } from "react";
|
|
16019
|
-
import { Fragment as
|
|
16149
|
+
import { Fragment as Fragment28, jsx as jsx172, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
16020
16150
|
var DEFAULT_GRID_CLASSES = "grid grid-cols-2 gap-4 p-4 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5";
|
|
16021
16151
|
function ContentListGrid(props) {
|
|
16022
16152
|
const { data, ItemComponent, allowSearch, fullWidth, gridClassName } = props;
|
|
@@ -16047,7 +16177,7 @@ function ContentListGrid(props) {
|
|
|
16047
16177
|
]
|
|
16048
16178
|
}
|
|
16049
16179
|
) }),
|
|
16050
|
-
(props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs99(
|
|
16180
|
+
(props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs99(Fragment28, { children: [
|
|
16051
16181
|
props.functions,
|
|
16052
16182
|
props.filters,
|
|
16053
16183
|
allowSearch && /* @__PURE__ */ jsx172(ContentTableSearch, { data })
|
|
@@ -16228,7 +16358,7 @@ var ItalianFiscalData_default = ItalianFiscalData;
|
|
|
16228
16358
|
import Image8 from "next/image";
|
|
16229
16359
|
|
|
16230
16360
|
// src/features/auth/contexts/AuthContext.tsx
|
|
16231
|
-
import { createContext as createContext20, useContext as useContext21, useMemo as
|
|
16361
|
+
import { createContext as createContext20, useContext as useContext21, useMemo as useMemo29, useState as useState60 } from "react";
|
|
16232
16362
|
|
|
16233
16363
|
// src/features/auth/components/forms/Register.tsx
|
|
16234
16364
|
import { zodResolver as zodResolver5 } from "@hookform/resolvers/zod";
|
|
@@ -16243,14 +16373,14 @@ import { z as z5 } from "zod";
|
|
|
16243
16373
|
|
|
16244
16374
|
// src/features/auth/components/GdprConsentSection.tsx
|
|
16245
16375
|
import { useTranslations as useTranslations59 } from "next-intl";
|
|
16246
|
-
import { Fragment as
|
|
16376
|
+
import { Fragment as Fragment29, jsx as jsx174, jsxs as jsxs101 } from "react/jsx-runtime";
|
|
16247
16377
|
function GdprConsentSection({
|
|
16248
16378
|
form,
|
|
16249
16379
|
termsCheckboxId = "termsAccepted",
|
|
16250
16380
|
marketingCheckboxId = "marketingConsent"
|
|
16251
16381
|
}) {
|
|
16252
16382
|
const t = useTranslations59("auth.gdpr");
|
|
16253
|
-
const termsLabel = /* @__PURE__ */ jsxs101(
|
|
16383
|
+
const termsLabel = /* @__PURE__ */ jsxs101(Fragment29, { children: [
|
|
16254
16384
|
t("terms_prefix"),
|
|
16255
16385
|
" ",
|
|
16256
16386
|
/* @__PURE__ */ jsx174(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("terms_of_service") }),
|
|
@@ -16275,7 +16405,7 @@ function GdprConsentSection({
|
|
|
16275
16405
|
__name(GdprConsentSection, "GdprConsentSection");
|
|
16276
16406
|
|
|
16277
16407
|
// src/features/auth/components/forms/Register.tsx
|
|
16278
|
-
import { Fragment as
|
|
16408
|
+
import { Fragment as Fragment30, jsx as jsx175, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
16279
16409
|
var REFERRAL_COOKIE_NAME = "referral_code";
|
|
16280
16410
|
function getReferralCode() {
|
|
16281
16411
|
if (typeof document === "undefined") return null;
|
|
@@ -16393,7 +16523,7 @@ function Register() {
|
|
|
16393
16523
|
}
|
|
16394
16524
|
}, "onSubmit");
|
|
16395
16525
|
if (registrationMode === "waitlist" && inviteCode && isValidatingInvite) {
|
|
16396
|
-
return /* @__PURE__ */ jsxs102(
|
|
16526
|
+
return /* @__PURE__ */ jsxs102(Fragment30, { children: [
|
|
16397
16527
|
/* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
16398
16528
|
/* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
16399
16529
|
t("waitlist.invite.validating_title")
|
|
@@ -16405,7 +16535,7 @@ function Register() {
|
|
|
16405
16535
|
] });
|
|
16406
16536
|
}
|
|
16407
16537
|
if (registrationMode === "waitlist" && inviteCode && inviteError) {
|
|
16408
|
-
return /* @__PURE__ */ jsxs102(
|
|
16538
|
+
return /* @__PURE__ */ jsxs102(Fragment30, { children: [
|
|
16409
16539
|
/* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
16410
16540
|
/* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
16411
16541
|
t("waitlist.invite.invalid_title")
|
|
@@ -16418,7 +16548,7 @@ function Register() {
|
|
|
16418
16548
|
] });
|
|
16419
16549
|
}
|
|
16420
16550
|
if (registrationMode === "waitlist" && !inviteCode) {
|
|
16421
|
-
return /* @__PURE__ */ jsxs102(
|
|
16551
|
+
return /* @__PURE__ */ jsxs102(Fragment30, { children: [
|
|
16422
16552
|
/* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
16423
16553
|
/* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
16424
16554
|
t("waitlist.invite.registration_title")
|
|
@@ -16431,13 +16561,13 @@ function Register() {
|
|
|
16431
16561
|
/* @__PURE__ */ jsx175(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx175(Link, { href: "#", className: "flex w-full justify-start", onClick: () => setComponentType(0 /* Login */), children: t("auth.buttons.login") }) })
|
|
16432
16562
|
] });
|
|
16433
16563
|
}
|
|
16434
|
-
return /* @__PURE__ */ jsxs102(
|
|
16564
|
+
return /* @__PURE__ */ jsxs102(Fragment30, { children: [
|
|
16435
16565
|
/* @__PURE__ */ jsxs102(CardHeader, { children: [
|
|
16436
16566
|
/* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
16437
16567
|
/* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
16438
16568
|
t(`auth.buttons.register`)
|
|
16439
16569
|
] }),
|
|
16440
|
-
/* @__PURE__ */ jsx175(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx175(
|
|
16570
|
+
/* @__PURE__ */ jsx175(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx175(Fragment30, { children: " " }) : /* @__PURE__ */ jsx175(Fragment30, { children: t(`auth.register_description`) }) })
|
|
16441
16571
|
] }),
|
|
16442
16572
|
showConfirmation ? /* @__PURE__ */ jsx175(CardContent, { children: /* @__PURE__ */ jsx175(CardDescription, { className: "text-center text-xl", children: t("auth.register_confirmation") }) }) : /* @__PURE__ */ jsx175(Form, { ...form, children: /* @__PURE__ */ jsxs102("form", { onSubmit: form.handleSubmit(onSubmit), children: [
|
|
16443
16573
|
/* @__PURE__ */ jsxs102(CardContent, { children: [
|
|
@@ -16587,7 +16717,7 @@ var AuthContextProvider = /* @__PURE__ */ __name(({
|
|
|
16587
16717
|
const [componentType, setComponentType] = useState60(initialComponentType);
|
|
16588
16718
|
const [params, setParams] = useState60(initialParams);
|
|
16589
16719
|
const [pendingTwoFactor, setPendingTwoFactor] = useState60();
|
|
16590
|
-
const activeComponent =
|
|
16720
|
+
const activeComponent = useMemo29(() => {
|
|
16591
16721
|
if (componentType === void 0) return null;
|
|
16592
16722
|
switch (componentType) {
|
|
16593
16723
|
case 0 /* Login */:
|
|
@@ -16870,7 +17000,7 @@ __name(DisableTwoFactorDialog, "DisableTwoFactorDialog");
|
|
|
16870
17000
|
import { Edit, Key, Trash2 } from "lucide-react";
|
|
16871
17001
|
import { useTranslations as useTranslations63 } from "next-intl";
|
|
16872
17002
|
import { useState as useState64 } from "react";
|
|
16873
|
-
import { Fragment as
|
|
17003
|
+
import { Fragment as Fragment31, jsx as jsx181, jsxs as jsxs106 } from "react/jsx-runtime";
|
|
16874
17004
|
function PasskeyList({ passkeys, onRefresh }) {
|
|
16875
17005
|
const t = useTranslations63();
|
|
16876
17006
|
const [renameDialogOpen, setRenameDialogOpen] = useState64(false);
|
|
@@ -16926,7 +17056,7 @@ function PasskeyList({ passkeys, onRefresh }) {
|
|
|
16926
17056
|
if (passkeys.length === 0) {
|
|
16927
17057
|
return /* @__PURE__ */ jsx181("p", { className: "text-sm text-muted-foreground text-center py-4", children: t("auth.two_factor.no_passkeys") });
|
|
16928
17058
|
}
|
|
16929
|
-
return /* @__PURE__ */ jsxs106(
|
|
17059
|
+
return /* @__PURE__ */ jsxs106(Fragment31, { children: [
|
|
16930
17060
|
/* @__PURE__ */ jsx181("div", { className: "space-y-2", children: passkeys.map((passkey) => /* @__PURE__ */ jsxs106("div", { className: "flex items-center justify-between p-3 border rounded-lg", children: [
|
|
16931
17061
|
/* @__PURE__ */ jsxs106("div", { className: "flex items-center gap-3", children: [
|
|
16932
17062
|
/* @__PURE__ */ jsx181(Key, { className: "h-5 w-5 text-muted-foreground" }),
|
|
@@ -17243,7 +17373,7 @@ function TotpSetupDialog({ onSuccess, trigger }) {
|
|
|
17243
17373
|
__name(TotpSetupDialog, "TotpSetupDialog");
|
|
17244
17374
|
|
|
17245
17375
|
// src/features/auth/components/two-factor/TwoFactorSettings.tsx
|
|
17246
|
-
import { Fragment as
|
|
17376
|
+
import { Fragment as Fragment32, jsx as jsx185, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
17247
17377
|
function TwoFactorSettings() {
|
|
17248
17378
|
const t = useTranslations67();
|
|
17249
17379
|
const [status, setStatus] = useState68(null);
|
|
@@ -17330,7 +17460,7 @@ function TwoFactorSettings() {
|
|
|
17330
17460
|
] }),
|
|
17331
17461
|
/* @__PURE__ */ jsx185(BackupCodesDialog, { remainingCodes: status?.backupCodesCount ?? 0, onRegenerate: handleRefresh })
|
|
17332
17462
|
] }) }),
|
|
17333
|
-
!isEnabled && (authenticators.length > 0 || passkeys.length > 0) && /* @__PURE__ */ jsxs110(
|
|
17463
|
+
!isEnabled && (authenticators.length > 0 || passkeys.length > 0) && /* @__PURE__ */ jsxs110(Fragment32, { children: [
|
|
17334
17464
|
/* @__PURE__ */ jsx185(Separator, {}),
|
|
17335
17465
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center justify-between", children: [
|
|
17336
17466
|
/* @__PURE__ */ jsxs110("div", { children: [
|
|
@@ -17340,7 +17470,7 @@ function TwoFactorSettings() {
|
|
|
17340
17470
|
/* @__PURE__ */ jsx185(Button, { onClick: handleEnable2FA, disabled: isEnabling, children: isEnabling ? t("common.loading") : t("auth.two_factor.enable_button") })
|
|
17341
17471
|
] })
|
|
17342
17472
|
] }),
|
|
17343
|
-
isEnabled && /* @__PURE__ */ jsxs110(
|
|
17473
|
+
isEnabled && /* @__PURE__ */ jsxs110(Fragment32, { children: [
|
|
17344
17474
|
/* @__PURE__ */ jsx185(Separator, {}),
|
|
17345
17475
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center justify-between", children: [
|
|
17346
17476
|
/* @__PURE__ */ jsxs110("div", { children: [
|
|
@@ -17422,11 +17552,11 @@ function GoogleSignInButton({ referralCode }) {
|
|
|
17422
17552
|
__name(GoogleSignInButton, "GoogleSignInButton");
|
|
17423
17553
|
|
|
17424
17554
|
// src/features/auth/components/details/LandingComponent.tsx
|
|
17425
|
-
import { Fragment as
|
|
17555
|
+
import { Fragment as Fragment33, jsx as jsx188, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
17426
17556
|
function LandingComponent() {
|
|
17427
17557
|
const t = useTranslations68();
|
|
17428
17558
|
const { setComponentType } = useAuthContext();
|
|
17429
|
-
return /* @__PURE__ */ jsxs112(
|
|
17559
|
+
return /* @__PURE__ */ jsxs112(Fragment33, { children: [
|
|
17430
17560
|
/* @__PURE__ */ jsxs112(CardHeader, { className: "mb-4", "data-testid": "page-pre-login-container", children: [
|
|
17431
17561
|
/* @__PURE__ */ jsxs112(CardTitle, { className: "text-primary flex flex-col items-center gap-y-8 pb-8 text-4xl", children: [
|
|
17432
17562
|
/* @__PURE__ */ jsx188(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
@@ -17435,7 +17565,7 @@ function LandingComponent() {
|
|
|
17435
17565
|
/* @__PURE__ */ jsx188(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
|
|
17436
17566
|
] }),
|
|
17437
17567
|
/* @__PURE__ */ jsxs112(CardFooter, { className: "mt-4 flex w-full flex-col justify-between gap-y-4", children: [
|
|
17438
|
-
isInternalAuthEnabled() && /* @__PURE__ */ jsxs112(
|
|
17568
|
+
isInternalAuthEnabled() && /* @__PURE__ */ jsxs112(Fragment33, { children: [
|
|
17439
17569
|
isRegistrationAllowed() && /* @__PURE__ */ jsx188(
|
|
17440
17570
|
Link,
|
|
17441
17571
|
{
|
|
@@ -17461,7 +17591,7 @@ import Image10 from "next/image";
|
|
|
17461
17591
|
import { useEffect as useEffect53, useState as useState69 } from "react";
|
|
17462
17592
|
import { useForm as useForm6 } from "react-hook-form";
|
|
17463
17593
|
import { z as z6 } from "zod";
|
|
17464
|
-
import { Fragment as
|
|
17594
|
+
import { Fragment as Fragment34, jsx as jsx189, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
17465
17595
|
function AcceptInvitation() {
|
|
17466
17596
|
const { setComponentType, params, setParams } = useAuthContext();
|
|
17467
17597
|
const [showConfirmation, setShowConfirmation] = useState69(false);
|
|
@@ -17524,13 +17654,13 @@ function AcceptInvitation() {
|
|
|
17524
17654
|
errorToast({ title: t(`common.errors.error`), error });
|
|
17525
17655
|
}
|
|
17526
17656
|
}, "onSubmit");
|
|
17527
|
-
return /* @__PURE__ */ jsxs113(
|
|
17657
|
+
return /* @__PURE__ */ jsxs113(Fragment34, { children: [
|
|
17528
17658
|
/* @__PURE__ */ jsxs113(CardHeader, { children: [
|
|
17529
17659
|
/* @__PURE__ */ jsxs113(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
17530
17660
|
/* @__PURE__ */ jsx189(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
17531
17661
|
t("auth.accept_invitation")
|
|
17532
17662
|
] }),
|
|
17533
|
-
/* @__PURE__ */ jsx189(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx189(
|
|
17663
|
+
/* @__PURE__ */ jsx189(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx189(Fragment34, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx189(Fragment34, { children: t("auth.select_password") }) })
|
|
17534
17664
|
] }),
|
|
17535
17665
|
/* @__PURE__ */ jsx189(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx189(CardDescription, { className: "text-center text-xl", children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx189(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx189(Form, { ...form, children: /* @__PURE__ */ jsxs113("form", { onSubmit: form.handleSubmit(onSubmit), children: [
|
|
17536
17666
|
/* @__PURE__ */ jsx189(
|
|
@@ -17561,7 +17691,7 @@ __name(AcceptInvitation, "AcceptInvitation");
|
|
|
17561
17691
|
import { useTranslations as useTranslations70 } from "next-intl";
|
|
17562
17692
|
import Image11 from "next/image";
|
|
17563
17693
|
import { useEffect as useEffect54, useState as useState70 } from "react";
|
|
17564
|
-
import { Fragment as
|
|
17694
|
+
import { Fragment as Fragment35, jsx as jsx190, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
17565
17695
|
function ActivateAccount() {
|
|
17566
17696
|
const { setComponentType, params, setParams } = useAuthContext();
|
|
17567
17697
|
const [showConfirmation, setShowConfirmation] = useState70(false);
|
|
@@ -17594,15 +17724,15 @@ function ActivateAccount() {
|
|
|
17594
17724
|
setError(t(`auth.errors.invalid_invitation_code`));
|
|
17595
17725
|
}
|
|
17596
17726
|
}, []);
|
|
17597
|
-
return /* @__PURE__ */ jsxs114(
|
|
17727
|
+
return /* @__PURE__ */ jsxs114(Fragment35, { children: [
|
|
17598
17728
|
/* @__PURE__ */ jsxs114(CardHeader, { children: [
|
|
17599
17729
|
/* @__PURE__ */ jsxs114(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
17600
17730
|
/* @__PURE__ */ jsx190(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
17601
17731
|
t("auth.accept_invitation")
|
|
17602
17732
|
] }),
|
|
17603
|
-
/* @__PURE__ */ jsx190(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx190(
|
|
17733
|
+
/* @__PURE__ */ jsx190(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx190(Fragment35, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx190(Fragment35, { children: " " }) })
|
|
17604
17734
|
] }),
|
|
17605
|
-
/* @__PURE__ */ jsx190(CardContent, { children: /* @__PURE__ */ jsx190(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx190(
|
|
17735
|
+
/* @__PURE__ */ jsx190(CardContent, { children: /* @__PURE__ */ jsx190(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx190(Fragment35, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx190(Fragment35, { children: error }) : /* @__PURE__ */ jsx190(Fragment35, { children: t("auth.activation_wait") }) }) })
|
|
17606
17736
|
] });
|
|
17607
17737
|
}
|
|
17608
17738
|
__name(ActivateAccount, "ActivateAccount");
|
|
@@ -17639,7 +17769,7 @@ import Image12 from "next/image";
|
|
|
17639
17769
|
import { useState as useState72 } from "react";
|
|
17640
17770
|
import { useForm as useForm7 } from "react-hook-form";
|
|
17641
17771
|
import { z as z7 } from "zod";
|
|
17642
|
-
import { Fragment as
|
|
17772
|
+
import { Fragment as Fragment36, jsx as jsx191, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
17643
17773
|
function ForgotPassword() {
|
|
17644
17774
|
const t = useTranslations71();
|
|
17645
17775
|
const { setComponentType } = useAuthContext();
|
|
@@ -17666,13 +17796,13 @@ function ForgotPassword() {
|
|
|
17666
17796
|
errorToast({ error: e });
|
|
17667
17797
|
}
|
|
17668
17798
|
}, "onSubmit");
|
|
17669
|
-
return /* @__PURE__ */ jsxs115(
|
|
17799
|
+
return /* @__PURE__ */ jsxs115(Fragment36, { children: [
|
|
17670
17800
|
/* @__PURE__ */ jsxs115(CardHeader, { "data-testid": "page-forgot-password-container", children: [
|
|
17671
17801
|
/* @__PURE__ */ jsxs115(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
17672
17802
|
/* @__PURE__ */ jsx191(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
17673
17803
|
t("auth.buttons.forgot_password")
|
|
17674
17804
|
] }),
|
|
17675
|
-
/* @__PURE__ */ jsx191(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx191(
|
|
17805
|
+
/* @__PURE__ */ jsx191(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx191(Fragment36, { children: " " }) : /* @__PURE__ */ jsx191(Fragment36, { children: t(`auth.add_email_to_reset`) }) })
|
|
17676
17806
|
] }),
|
|
17677
17807
|
showConfirmation ? /* @__PURE__ */ jsx191(CardContent, { children: /* @__PURE__ */ jsx191(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_confirmation`) }) }) : /* @__PURE__ */ jsx191(Form, { ...form, children: /* @__PURE__ */ jsxs115("form", { onSubmit: form.handleSubmit(onSubmit), children: [
|
|
17678
17808
|
/* @__PURE__ */ jsxs115(CardContent, { children: [
|
|
@@ -17711,7 +17841,7 @@ import { useRouter, useSearchParams as useSearchParams3 } from "next/navigation"
|
|
|
17711
17841
|
import { useEffect as useEffect56, useState as useState73 } from "react";
|
|
17712
17842
|
import { useForm as useForm8 } from "react-hook-form";
|
|
17713
17843
|
import { z as z8 } from "zod";
|
|
17714
|
-
import { Fragment as
|
|
17844
|
+
import { Fragment as Fragment37, jsx as jsx192, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
17715
17845
|
function Login() {
|
|
17716
17846
|
const t = useTranslations72();
|
|
17717
17847
|
const { setUser } = useCurrentUserContext();
|
|
@@ -17777,7 +17907,7 @@ function Login() {
|
|
|
17777
17907
|
});
|
|
17778
17908
|
}
|
|
17779
17909
|
}, "onSubmit");
|
|
17780
|
-
return /* @__PURE__ */ jsxs116(
|
|
17910
|
+
return /* @__PURE__ */ jsxs116(Fragment37, { children: [
|
|
17781
17911
|
/* @__PURE__ */ jsxs116(CardHeader, { "data-testid": "page-login-container", children: [
|
|
17782
17912
|
/* @__PURE__ */ jsxs116(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
17783
17913
|
/* @__PURE__ */ jsx192(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
@@ -17786,7 +17916,7 @@ function Login() {
|
|
|
17786
17916
|
/* @__PURE__ */ jsx192(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
|
|
17787
17917
|
] }),
|
|
17788
17918
|
/* @__PURE__ */ jsx192(Form, { ...form, children: /* @__PURE__ */ jsxs116("form", { onSubmit: form.handleSubmit(onSubmit), children: [
|
|
17789
|
-
/* @__PURE__ */ jsx192(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs116(
|
|
17919
|
+
/* @__PURE__ */ jsx192(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs116(Fragment37, { children: [
|
|
17790
17920
|
/* @__PURE__ */ jsx192(
|
|
17791
17921
|
FormInput,
|
|
17792
17922
|
{
|
|
@@ -17853,7 +17983,7 @@ function clearClientStorage(keys) {
|
|
|
17853
17983
|
__name(clearClientStorage, "clearClientStorage");
|
|
17854
17984
|
|
|
17855
17985
|
// src/features/auth/components/forms/Logout.tsx
|
|
17856
|
-
import { Fragment as
|
|
17986
|
+
import { Fragment as Fragment38, jsx as jsx193 } from "react/jsx-runtime";
|
|
17857
17987
|
function Logout({ storageKeys }) {
|
|
17858
17988
|
const generateUrl = usePageUrlGenerator();
|
|
17859
17989
|
useEffect57(() => {
|
|
@@ -17866,7 +17996,7 @@ function Logout({ storageKeys }) {
|
|
|
17866
17996
|
}, "logOut");
|
|
17867
17997
|
logOut();
|
|
17868
17998
|
}, []);
|
|
17869
|
-
return /* @__PURE__ */ jsx193(
|
|
17999
|
+
return /* @__PURE__ */ jsx193(Fragment38, {});
|
|
17870
18000
|
}
|
|
17871
18001
|
__name(Logout, "Logout");
|
|
17872
18002
|
|
|
@@ -17907,7 +18037,7 @@ import Image14 from "next/image";
|
|
|
17907
18037
|
import { useEffect as useEffect59, useState as useState74 } from "react";
|
|
17908
18038
|
import { useForm as useForm9 } from "react-hook-form";
|
|
17909
18039
|
import { z as z9 } from "zod";
|
|
17910
|
-
import { Fragment as
|
|
18040
|
+
import { Fragment as Fragment39, jsx as jsx194, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
17911
18041
|
function ResetPassword() {
|
|
17912
18042
|
const { setComponentType, params, setParams } = useAuthContext();
|
|
17913
18043
|
const [showConfirmation, setShowConfirmation] = useState74(false);
|
|
@@ -17970,13 +18100,13 @@ function ResetPassword() {
|
|
|
17970
18100
|
errorToast({ title: t(`common.errors.error`), error });
|
|
17971
18101
|
}
|
|
17972
18102
|
}, "onSubmit");
|
|
17973
|
-
return /* @__PURE__ */ jsxs117(
|
|
18103
|
+
return /* @__PURE__ */ jsxs117(Fragment39, { children: [
|
|
17974
18104
|
/* @__PURE__ */ jsxs117(CardHeader, { children: [
|
|
17975
18105
|
/* @__PURE__ */ jsxs117(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
|
|
17976
18106
|
/* @__PURE__ */ jsx194(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
|
|
17977
18107
|
t(`auth.password_reset`)
|
|
17978
18108
|
] }),
|
|
17979
|
-
/* @__PURE__ */ jsx194(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx194(
|
|
18109
|
+
/* @__PURE__ */ jsx194(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx194(Fragment39, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx194(Fragment39, { children: t(`auth.reset_password`) }) })
|
|
17980
18110
|
] }),
|
|
17981
18111
|
/* @__PURE__ */ jsx194(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx194(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_success_description`) }) : error ? /* @__PURE__ */ jsx194(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx194(Form, { ...form, children: /* @__PURE__ */ jsxs117("form", { onSubmit: form.handleSubmit(onSubmit), children: [
|
|
17982
18112
|
/* @__PURE__ */ jsx194(FormPassword, { form, id: "password", name: "Password" }),
|
|
@@ -18036,7 +18166,7 @@ function PasskeyButton({ pendingToken, onSuccess, onError, disabled = false }) {
|
|
|
18036
18166
|
__name(PasskeyButton, "PasskeyButton");
|
|
18037
18167
|
|
|
18038
18168
|
// src/features/auth/components/forms/TwoFactorChallenge.tsx
|
|
18039
|
-
import { Fragment as
|
|
18169
|
+
import { Fragment as Fragment40, jsx as jsx196, jsxs as jsxs118 } from "react/jsx-runtime";
|
|
18040
18170
|
function TwoFactorChallenge() {
|
|
18041
18171
|
const t = useTranslations75();
|
|
18042
18172
|
const { setUser } = useCurrentUserContext();
|
|
@@ -18116,7 +18246,7 @@ function TwoFactorChallenge() {
|
|
|
18116
18246
|
const hasTotp = availableMethods.includes("totp");
|
|
18117
18247
|
const hasPasskey = availableMethods.includes("passkey");
|
|
18118
18248
|
const hasBackup = availableMethods.includes("backup");
|
|
18119
|
-
return /* @__PURE__ */ jsxs118(
|
|
18249
|
+
return /* @__PURE__ */ jsxs118(Fragment40, { children: [
|
|
18120
18250
|
/* @__PURE__ */ jsxs118(CardHeader, { "data-testid": "page-2fa-challenge", children: [
|
|
18121
18251
|
/* @__PURE__ */ jsx196(CardTitle, { className: "text-primary text-2xl", children: t("auth.two_factor.verification_required") }),
|
|
18122
18252
|
/* @__PURE__ */ jsx196(CardDescription, { children: t("auth.two_factor.enter_verification_code") })
|
|
@@ -18252,12 +18382,12 @@ __name(RelevantContentsList, "RelevantContentsList");
|
|
|
18252
18382
|
// src/features/how-to/components/containers/HowToCommand.tsx
|
|
18253
18383
|
import { ArrowRight, LifeBuoyIcon } from "lucide-react";
|
|
18254
18384
|
import { useTranslations as useTranslations80 } from "next-intl";
|
|
18255
|
-
import { useCallback as useCallback37, useEffect as useEffect60, useMemo as
|
|
18385
|
+
import { useCallback as useCallback37, useEffect as useEffect60, useMemo as useMemo31, useRef as useRef32, useState as useState77 } from "react";
|
|
18256
18386
|
|
|
18257
18387
|
// src/features/how-to/components/containers/HowToCommandViewer.tsx
|
|
18258
18388
|
import { ArrowLeft, BookOpen, MessageSquare } from "lucide-react";
|
|
18259
18389
|
import { useTranslations as useTranslations79 } from "next-intl";
|
|
18260
|
-
import { useMemo as
|
|
18390
|
+
import { useMemo as useMemo30 } from "react";
|
|
18261
18391
|
|
|
18262
18392
|
// src/features/how-to/utils/blocknote.ts
|
|
18263
18393
|
function extractTextFromContent(content) {
|
|
@@ -18329,8 +18459,8 @@ __name(extractHeadings, "extractHeadings");
|
|
|
18329
18459
|
import { jsx as jsx200, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
18330
18460
|
function HowToCommandViewer({ howTo, onBack, onStartChat }) {
|
|
18331
18461
|
const t = useTranslations79();
|
|
18332
|
-
const readingTime =
|
|
18333
|
-
const headings =
|
|
18462
|
+
const readingTime = useMemo30(() => calculateReadingTime(howTo.description), [howTo.description]);
|
|
18463
|
+
const headings = useMemo30(() => extractHeadings(howTo.description), [howTo.description]);
|
|
18334
18464
|
return /* @__PURE__ */ jsxs120("div", { className: "flex h-full flex-col", children: [
|
|
18335
18465
|
/* @__PURE__ */ jsxs120("div", { className: "flex items-center gap-3 border-b px-4 py-3", children: [
|
|
18336
18466
|
/* @__PURE__ */ jsxs120(Button, { variant: "ghost", size: "sm", onClick: onBack, className: "h-8 px-2", children: [
|
|
@@ -18365,7 +18495,7 @@ function HowToCommandViewer({ howTo, onBack, onStartChat }) {
|
|
|
18365
18495
|
__name(HowToCommandViewer, "HowToCommandViewer");
|
|
18366
18496
|
|
|
18367
18497
|
// src/features/how-to/components/containers/HowToCommand.tsx
|
|
18368
|
-
import { Fragment as
|
|
18498
|
+
import { Fragment as Fragment41, jsx as jsx201, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
18369
18499
|
function matchPage(pathname, pattern) {
|
|
18370
18500
|
if (pattern.includes(":")) {
|
|
18371
18501
|
const pathSegments = pathname.split("/").filter(Boolean);
|
|
@@ -18389,7 +18519,7 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
|
|
|
18389
18519
|
retrieverParams: {},
|
|
18390
18520
|
module: Modules.HowTo
|
|
18391
18521
|
});
|
|
18392
|
-
const { relevantHowTos, otherHowTos } =
|
|
18522
|
+
const { relevantHowTos, otherHowTos } = useMemo31(() => {
|
|
18393
18523
|
if (!data.data) return { relevantHowTos: [], otherHowTos: [] };
|
|
18394
18524
|
const relevant = [];
|
|
18395
18525
|
const other = [];
|
|
@@ -18437,7 +18567,7 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
|
|
|
18437
18567
|
setSelectedHowTo(null);
|
|
18438
18568
|
if (onStartChat) onStartChat();
|
|
18439
18569
|
}, "handleStartChat");
|
|
18440
|
-
return /* @__PURE__ */ jsxs121(
|
|
18570
|
+
return /* @__PURE__ */ jsxs121(Fragment41, { children: [
|
|
18441
18571
|
/* @__PURE__ */ jsxs121(
|
|
18442
18572
|
SidebarMenuButton,
|
|
18443
18573
|
{
|
|
@@ -18586,12 +18716,12 @@ import { useTranslations as useTranslations83 } from "next-intl";
|
|
|
18586
18716
|
|
|
18587
18717
|
// src/features/how-to/hooks/useHowToTableStructure.tsx
|
|
18588
18718
|
import { useTranslations as useTranslations82 } from "next-intl";
|
|
18589
|
-
import { useMemo as
|
|
18590
|
-
import { Fragment as
|
|
18719
|
+
import { useMemo as useMemo32 } from "react";
|
|
18720
|
+
import { Fragment as Fragment42, jsx as jsx205 } from "react/jsx-runtime";
|
|
18591
18721
|
var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
|
|
18592
18722
|
const t = useTranslations82();
|
|
18593
18723
|
const generateUrl = usePageUrlGenerator();
|
|
18594
|
-
const tableData =
|
|
18724
|
+
const tableData = useMemo32(() => {
|
|
18595
18725
|
return params.data.map((howTo) => {
|
|
18596
18726
|
const entry = {
|
|
18597
18727
|
jsonApiData: howTo
|
|
@@ -18624,7 +18754,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
18624
18754
|
id: "description",
|
|
18625
18755
|
accessorKey: "description",
|
|
18626
18756
|
header: t(`howto.fields.description.label`),
|
|
18627
|
-
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx205(
|
|
18757
|
+
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx205(Fragment42, { children: row.getValue("description") }), "cell"),
|
|
18628
18758
|
enableSorting: false,
|
|
18629
18759
|
enableHiding: false
|
|
18630
18760
|
}),
|
|
@@ -18632,7 +18762,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
18632
18762
|
id: "pages",
|
|
18633
18763
|
accessorKey: "pages",
|
|
18634
18764
|
header: t(`howto.fields.pages.label`),
|
|
18635
|
-
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx205(
|
|
18765
|
+
cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx205(Fragment42, { children: row.getValue("pages") }), "cell"),
|
|
18636
18766
|
enableSorting: false,
|
|
18637
18767
|
enableHiding: false
|
|
18638
18768
|
}),
|
|
@@ -18645,10 +18775,10 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
|
|
|
18645
18775
|
title: t(`common.date.update`)
|
|
18646
18776
|
})
|
|
18647
18777
|
};
|
|
18648
|
-
const columns =
|
|
18778
|
+
const columns = useMemo32(() => {
|
|
18649
18779
|
return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
|
|
18650
18780
|
}, [params.fields, fieldColumnMap, t, generateUrl]);
|
|
18651
|
-
return
|
|
18781
|
+
return useMemo32(() => ({ data: tableData, columns }), [tableData, columns]);
|
|
18652
18782
|
}, "useHowToTableStructure");
|
|
18653
18783
|
registerTableGenerator("howtos", useHowToTableStructure);
|
|
18654
18784
|
|
|
@@ -18691,7 +18821,7 @@ __name(HowToListContainer, "HowToListContainer");
|
|
|
18691
18821
|
import { CircleX as CircleX2, RefreshCwIcon as RefreshCwIcon3, SearchIcon as SearchIcon6, XIcon as XIcon10 } from "lucide-react";
|
|
18692
18822
|
import { useTranslations as useTranslations84 } from "next-intl";
|
|
18693
18823
|
import { useCallback as useCallback38, useEffect as useEffect61, useRef as useRef33, useState as useState78 } from "react";
|
|
18694
|
-
import { Fragment as
|
|
18824
|
+
import { Fragment as Fragment43, jsx as jsx208, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
18695
18825
|
function HowToSelector({
|
|
18696
18826
|
id,
|
|
18697
18827
|
form,
|
|
@@ -18776,7 +18906,7 @@ function HowToSelector({
|
|
|
18776
18906
|
search("");
|
|
18777
18907
|
}
|
|
18778
18908
|
}
|
|
18779
|
-
) : /* @__PURE__ */ jsx208(
|
|
18909
|
+
) : /* @__PURE__ */ jsx208(Fragment43, {})
|
|
18780
18910
|
] }),
|
|
18781
18911
|
/* @__PURE__ */ jsx208(CommandList, { children: data.data && data.data.length > 0 && data.data.map((howTo) => /* @__PURE__ */ jsx208(
|
|
18782
18912
|
CommandItem,
|
|
@@ -18817,7 +18947,7 @@ function groupThreadsByBucket(threads) {
|
|
|
18817
18947
|
__name(groupThreadsByBucket, "groupThreadsByBucket");
|
|
18818
18948
|
|
|
18819
18949
|
// src/features/assistant/components/parts/AssistantSidebar.tsx
|
|
18820
|
-
import { Fragment as
|
|
18950
|
+
import { Fragment as Fragment44, jsx as jsx209, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
18821
18951
|
function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
|
|
18822
18952
|
const t = useTranslations85();
|
|
18823
18953
|
const groups = groupThreadsByBucket(threads);
|
|
@@ -18843,7 +18973,7 @@ function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
|
|
|
18843
18973
|
" ",
|
|
18844
18974
|
t("features.assistant.new")
|
|
18845
18975
|
] }) }),
|
|
18846
|
-
/* @__PURE__ */ jsx209("div", { className: "flex-1 overflow-y-auto p-2", children: threads.length === 0 ? /* @__PURE__ */ jsx209("div", { className: "text-muted-foreground mt-6 text-center text-xs", children: t("features.assistant.empty_sidebar") }) : /* @__PURE__ */ jsxs124(
|
|
18976
|
+
/* @__PURE__ */ jsx209("div", { className: "flex-1 overflow-y-auto p-2", children: threads.length === 0 ? /* @__PURE__ */ jsx209("div", { className: "text-muted-foreground mt-6 text-center text-xs", children: t("features.assistant.empty_sidebar") }) : /* @__PURE__ */ jsxs124(Fragment44, { children: [
|
|
18847
18977
|
renderSection(t("features.assistant.bucket_today"), groups.today),
|
|
18848
18978
|
renderSection(t("features.assistant.bucket_week"), groups.thisWeek),
|
|
18849
18979
|
renderSection(t("features.assistant.bucket_earlier"), groups.earlier)
|
|
@@ -19017,10 +19147,10 @@ import ReactMarkdown3 from "react-markdown";
|
|
|
19017
19147
|
import remarkGfm3 from "remark-gfm";
|
|
19018
19148
|
|
|
19019
19149
|
// src/features/assistant-message/components/parts/MessageSourcesContainer.tsx
|
|
19020
|
-
import { useEffect as useEffect62, useMemo as
|
|
19150
|
+
import { useEffect as useEffect62, useMemo as useMemo34, useState as useState84 } from "react";
|
|
19021
19151
|
|
|
19022
19152
|
// src/features/assistant-message/components/parts/MessageSourcesPanel.tsx
|
|
19023
|
-
import { useMemo as
|
|
19153
|
+
import { useMemo as useMemo33, useState as useState83 } from "react";
|
|
19024
19154
|
import { useTranslations as useTranslations93 } from "next-intl";
|
|
19025
19155
|
import { ChevronDown as ChevronDown4, ChevronRight as ChevronRight2 } from "lucide-react";
|
|
19026
19156
|
|
|
@@ -19057,7 +19187,7 @@ function ReferencesTab({ references }) {
|
|
|
19057
19187
|
__name(ReferencesTab, "ReferencesTab");
|
|
19058
19188
|
|
|
19059
19189
|
// src/features/assistant-message/components/parts/tabs/CitationsTab.tsx
|
|
19060
|
-
import { Fragment as
|
|
19190
|
+
import { Fragment as Fragment45, useState as useState82 } from "react";
|
|
19061
19191
|
import { useTranslations as useTranslations90 } from "next-intl";
|
|
19062
19192
|
import { ChevronDown as ChevronDown3, HelpCircle } from "lucide-react";
|
|
19063
19193
|
import ReactMarkdown2 from "react-markdown";
|
|
@@ -19117,7 +19247,7 @@ function CitationsTab({ citations, sources }) {
|
|
|
19117
19247
|
const resolved = chunk.nodeId ? sources?.get(chunk.nodeId) : void 0;
|
|
19118
19248
|
const fallbackName = chunk.nodeId ? `${chunk.nodeType ?? t("features.assistant.message.sources.source")} ${chunk.nodeId.slice(0, 8)}` : chunk.nodeType ?? t("features.assistant.message.sources.source");
|
|
19119
19249
|
const sourceName = resolved?.name ?? fallbackName;
|
|
19120
|
-
return /* @__PURE__ */ jsxs130(
|
|
19250
|
+
return /* @__PURE__ */ jsxs130(Fragment45, { children: [
|
|
19121
19251
|
/* @__PURE__ */ jsxs130(TableRow, { children: [
|
|
19122
19252
|
/* @__PURE__ */ jsx215(TableCell, { children: /* @__PURE__ */ jsxs130(
|
|
19123
19253
|
"div",
|
|
@@ -19313,7 +19443,7 @@ __name(SuggestedQuestionsTab, "SuggestedQuestionsTab");
|
|
|
19313
19443
|
import { jsx as jsx219, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
19314
19444
|
function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sources, users }) {
|
|
19315
19445
|
const t = useTranslations93();
|
|
19316
|
-
const visibleReferences =
|
|
19446
|
+
const visibleReferences = useMemo33(
|
|
19317
19447
|
() => message.references.filter((ref) => {
|
|
19318
19448
|
try {
|
|
19319
19449
|
return !!ModuleRegistry.findByName(ref.type).pageUrl;
|
|
@@ -19326,7 +19456,7 @@ function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sou
|
|
|
19326
19456
|
const refsCount = visibleReferences.length;
|
|
19327
19457
|
const citationsCount = message.citations.length;
|
|
19328
19458
|
const suggestionsCount = isLatestAssistant ? message.suggestedQuestions.length : 0;
|
|
19329
|
-
const contentsCount =
|
|
19459
|
+
const contentsCount = useMemo33(() => {
|
|
19330
19460
|
const ids = /* @__PURE__ */ new Set();
|
|
19331
19461
|
for (const c of message.citations) {
|
|
19332
19462
|
if (!c.nodeId) continue;
|
|
@@ -19405,7 +19535,7 @@ var SourcesFetcher = class extends ClientAbstractService {
|
|
|
19405
19535
|
}
|
|
19406
19536
|
};
|
|
19407
19537
|
function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp }) {
|
|
19408
|
-
const groups =
|
|
19538
|
+
const groups = useMemo34(() => {
|
|
19409
19539
|
const map = /* @__PURE__ */ new Map();
|
|
19410
19540
|
for (const chunk of message.citations) {
|
|
19411
19541
|
if (!chunk.nodeType || !chunk.nodeId) continue;
|
|
@@ -19418,7 +19548,7 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
|
|
|
19418
19548
|
}
|
|
19419
19549
|
return map;
|
|
19420
19550
|
}, [message.citations]);
|
|
19421
|
-
const groupsKey =
|
|
19551
|
+
const groupsKey = useMemo34(() => {
|
|
19422
19552
|
const parts = [];
|
|
19423
19553
|
for (const [nodeType, ids] of groups) {
|
|
19424
19554
|
parts.push(`${nodeType}:${Array.from(ids).sort().join(",")}`);
|
|
@@ -19460,12 +19590,12 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
|
|
|
19460
19590
|
cancelled = true;
|
|
19461
19591
|
};
|
|
19462
19592
|
}, [groupsKey, groups]);
|
|
19463
|
-
const sources =
|
|
19593
|
+
const sources = useMemo34(() => {
|
|
19464
19594
|
const map = /* @__PURE__ */ new Map();
|
|
19465
19595
|
for (const entity of resolved) map.set(entity.id, entity);
|
|
19466
19596
|
return map;
|
|
19467
19597
|
}, [resolved]);
|
|
19468
|
-
const users =
|
|
19598
|
+
const users = useMemo34(() => {
|
|
19469
19599
|
const userMap = /* @__PURE__ */ new Map();
|
|
19470
19600
|
for (const entity of resolved) {
|
|
19471
19601
|
const author = entity._author ?? (() => {
|
|
@@ -19607,7 +19737,7 @@ function AssistantThread({
|
|
|
19607
19737
|
__name(AssistantThread, "AssistantThread");
|
|
19608
19738
|
|
|
19609
19739
|
// src/features/assistant/components/containers/AssistantContainer.tsx
|
|
19610
|
-
import { Fragment as
|
|
19740
|
+
import { Fragment as Fragment46, jsx as jsx225, jsxs as jsxs137 } from "react/jsx-runtime";
|
|
19611
19741
|
function AssistantContainer({ renderApprovalAction } = {}) {
|
|
19612
19742
|
const ctx = useAssistantContext();
|
|
19613
19743
|
const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
|
|
@@ -19628,7 +19758,7 @@ function AssistantContainer({ renderApprovalAction } = {}) {
|
|
|
19628
19758
|
operatorMode: ctx.operatorMode,
|
|
19629
19759
|
onOperatorModeChange: ctx.setOperatorMode
|
|
19630
19760
|
}
|
|
19631
|
-
) : /* @__PURE__ */ jsxs137(
|
|
19761
|
+
) : /* @__PURE__ */ jsxs137(Fragment46, { children: [
|
|
19632
19762
|
ctx.assistant ? /* @__PURE__ */ jsx225(
|
|
19633
19763
|
AssistantThreadHeader,
|
|
19634
19764
|
{
|
|
@@ -19696,7 +19826,7 @@ import { useTranslations as useTranslations97 } from "next-intl";
|
|
|
19696
19826
|
// src/features/notification/components/lists/NotificationsList.tsx
|
|
19697
19827
|
import { ArchiveIcon } from "lucide-react";
|
|
19698
19828
|
import { useTranslations as useTranslations96 } from "next-intl";
|
|
19699
|
-
import { Fragment as
|
|
19829
|
+
import { Fragment as Fragment47, jsx as jsx227, jsxs as jsxs139 } from "react/jsx-runtime";
|
|
19700
19830
|
function NotificationsList({ archived }) {
|
|
19701
19831
|
const t = useTranslations96();
|
|
19702
19832
|
const generateUrl = usePageUrlGenerator();
|
|
@@ -19730,7 +19860,7 @@ function NotificationsList({ archived }) {
|
|
|
19730
19860
|
/* @__PURE__ */ jsx227("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
|
|
19731
19861
|
] }),
|
|
19732
19862
|
/* @__PURE__ */ jsxs139("div", { className: "flex flex-row items-center", children: [
|
|
19733
|
-
notificationData.url ? /* @__PURE__ */ jsx227(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx227(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx227(
|
|
19863
|
+
notificationData.url ? /* @__PURE__ */ jsx227(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx227(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx227(Fragment47, {}),
|
|
19734
19864
|
!archived && /* @__PURE__ */ jsxs139(Tooltip2, { children: [
|
|
19735
19865
|
/* @__PURE__ */ jsx227(TooltipTrigger, { children: /* @__PURE__ */ jsx227(
|
|
19736
19866
|
Button,
|
|
@@ -19788,7 +19918,7 @@ __name(NotificationsListContainer, "NotificationsListContainer");
|
|
|
19788
19918
|
// src/features/notification/components/modals/NotificationModal.tsx
|
|
19789
19919
|
import { BellIcon } from "lucide-react";
|
|
19790
19920
|
import { useTranslations as useTranslations98 } from "next-intl";
|
|
19791
|
-
import { Fragment as
|
|
19921
|
+
import { Fragment as Fragment48, useCallback as useCallback39, useEffect as useEffect64, useMemo as useMemo35, useRef as useRef35, useState as useState85 } from "react";
|
|
19792
19922
|
import { jsx as jsx229, jsxs as jsxs141 } from "react/jsx-runtime";
|
|
19793
19923
|
function NotificationModalContent({ isOpen, setIsOpen }) {
|
|
19794
19924
|
const _instanceId = useRef35(Math.random().toString(36).substr(2, 9));
|
|
@@ -19832,7 +19962,7 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
|
|
|
19832
19962
|
}
|
|
19833
19963
|
return !breaker.isOpen;
|
|
19834
19964
|
}, []);
|
|
19835
|
-
const { unreadCount, unreadIds } =
|
|
19965
|
+
const { unreadCount, unreadIds } = useMemo35(() => {
|
|
19836
19966
|
const unreadNotifications2 = notifications.filter((notif) => !notif.isRead);
|
|
19837
19967
|
return {
|
|
19838
19968
|
unreadCount: unreadNotifications2.length,
|
|
@@ -19939,7 +20069,7 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
|
|
|
19939
20069
|
] })
|
|
19940
20070
|
] }),
|
|
19941
20071
|
/* @__PURE__ */ jsx229(Separator, {}),
|
|
19942
|
-
/* @__PURE__ */ jsx229(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx229(
|
|
20072
|
+
/* @__PURE__ */ jsx229(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx229(Fragment48, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx229("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
|
|
19943
20073
|
] }) })
|
|
19944
20074
|
] });
|
|
19945
20075
|
}
|
|
@@ -19950,10 +20080,10 @@ function NotificationModal(props) {
|
|
|
19950
20080
|
__name(NotificationModal, "NotificationModal");
|
|
19951
20081
|
|
|
19952
20082
|
// src/features/notification/components/notifications/PushNotificationProvider.tsx
|
|
19953
|
-
import { Fragment as
|
|
20083
|
+
import { Fragment as Fragment49, jsx as jsx230 } from "react/jsx-runtime";
|
|
19954
20084
|
function PushNotificationProvider({ children }) {
|
|
19955
20085
|
usePushNotifications();
|
|
19956
|
-
return /* @__PURE__ */ jsx230(
|
|
20086
|
+
return /* @__PURE__ */ jsx230(Fragment49, { children });
|
|
19957
20087
|
}
|
|
19958
20088
|
__name(PushNotificationProvider, "PushNotificationProvider");
|
|
19959
20089
|
|
|
@@ -20273,11 +20403,11 @@ function RoleDetails() {
|
|
|
20273
20403
|
__name(RoleDetails, "RoleDetails");
|
|
20274
20404
|
|
|
20275
20405
|
// src/features/role/components/containers/RoleContainer.tsx
|
|
20276
|
-
import { Fragment as
|
|
20406
|
+
import { Fragment as Fragment50, jsx as jsx234, jsxs as jsxs144 } from "react/jsx-runtime";
|
|
20277
20407
|
function RoleContainer() {
|
|
20278
20408
|
const { role } = useRoleContext();
|
|
20279
20409
|
if (!role) return null;
|
|
20280
|
-
return /* @__PURE__ */ jsxs144(
|
|
20410
|
+
return /* @__PURE__ */ jsxs144(Fragment50, { children: [
|
|
20281
20411
|
/* @__PURE__ */ jsx234(RoleDetails, {}),
|
|
20282
20412
|
/* @__PURE__ */ jsx234(RoleUsersList, { role })
|
|
20283
20413
|
] });
|
|
@@ -20322,7 +20452,7 @@ __name(FormRoles, "FormRoles");
|
|
|
20322
20452
|
// src/features/role/components/forms/RemoveUserFromRole.tsx
|
|
20323
20453
|
import { useTranslations as useTranslations101 } from "next-intl";
|
|
20324
20454
|
import { useEffect as useEffect67, useState as useState89 } from "react";
|
|
20325
|
-
import { Fragment as
|
|
20455
|
+
import { Fragment as Fragment51, jsx as jsx236, jsxs as jsxs146 } from "react/jsx-runtime";
|
|
20326
20456
|
function RemoveUserFromRole({ role, user, refresh }) {
|
|
20327
20457
|
const [open, setOpen] = useState89(false);
|
|
20328
20458
|
const [canRemove, setCanRemove] = useState89(false);
|
|
@@ -20371,7 +20501,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
|
|
|
20371
20501
|
/* @__PURE__ */ jsx236(DialogTitle, { children: t(`role.remove_user.title`) }),
|
|
20372
20502
|
/* @__PURE__ */ jsx236(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
|
|
20373
20503
|
] }),
|
|
20374
|
-
canRemove ? /* @__PURE__ */ jsxs146(
|
|
20504
|
+
canRemove ? /* @__PURE__ */ jsxs146(Fragment51, { children: [
|
|
20375
20505
|
t(`role.remove_user.description_allowed`, { role: roleName, user: user.name }),
|
|
20376
20506
|
/* @__PURE__ */ jsxs146("div", { className: "flex justify-end", children: [
|
|
20377
20507
|
/* @__PURE__ */ jsx236(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
|
|
@@ -20388,7 +20518,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
|
|
|
20388
20518
|
}
|
|
20389
20519
|
)
|
|
20390
20520
|
] })
|
|
20391
|
-
] }) : /* @__PURE__ */ jsx236(
|
|
20521
|
+
] }) : /* @__PURE__ */ jsx236(Fragment51, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
|
|
20392
20522
|
] })
|
|
20393
20523
|
] });
|
|
20394
20524
|
}
|
|
@@ -20398,7 +20528,7 @@ __name(RemoveUserFromRole, "RemoveUserFromRole");
|
|
|
20398
20528
|
import { PlusCircle as PlusCircle2 } from "lucide-react";
|
|
20399
20529
|
import { useTranslations as useTranslations102 } from "next-intl";
|
|
20400
20530
|
import { useCallback as useCallback41, useEffect as useEffect68, useRef as useRef37, useState as useState90 } from "react";
|
|
20401
|
-
import { Fragment as
|
|
20531
|
+
import { Fragment as Fragment52, jsx as jsx237, jsxs as jsxs147 } from "react/jsx-runtime";
|
|
20402
20532
|
function UserRoleAdd({ user, refresh }) {
|
|
20403
20533
|
const [open, setOpen] = useState90(false);
|
|
20404
20534
|
const inputRef = useRef37(null);
|
|
@@ -20445,7 +20575,7 @@ function UserRoleAdd({ user, refresh }) {
|
|
|
20445
20575
|
useEffect68(() => {
|
|
20446
20576
|
if (open) searchRoles("");
|
|
20447
20577
|
}, [open]);
|
|
20448
|
-
return /* @__PURE__ */ jsxs147(
|
|
20578
|
+
return /* @__PURE__ */ jsxs147(Fragment52, { children: [
|
|
20449
20579
|
/* @__PURE__ */ jsxs147(Button, { size: "sm", onClick: () => setOpen(true), children: [
|
|
20450
20580
|
/* @__PURE__ */ jsx237(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
|
|
20451
20581
|
t(`common.association.label`, {
|
|
@@ -21043,7 +21173,7 @@ __name(OAuthClientForm, "OAuthClientForm");
|
|
|
21043
21173
|
import { useState as useState93, useCallback as useCallback46 } from "react";
|
|
21044
21174
|
import { format as format2 } from "date-fns";
|
|
21045
21175
|
import { Copy as Copy4, Check as Check2, RefreshCw as RefreshCw3, Pencil as Pencil2, Trash2 as Trash25, ExternalLink } from "lucide-react";
|
|
21046
|
-
import { Fragment as
|
|
21176
|
+
import { Fragment as Fragment53, jsx as jsx246, jsxs as jsxs154 } from "react/jsx-runtime";
|
|
21047
21177
|
function OAuthClientDetail({
|
|
21048
21178
|
client,
|
|
21049
21179
|
isLoading = false,
|
|
@@ -21086,7 +21216,7 @@ function OAuthClientDetail({
|
|
|
21086
21216
|
}
|
|
21087
21217
|
}, [onRegenerateSecret]);
|
|
21088
21218
|
const createdDate = client.createdAt ? format2(new Date(client.createdAt), "MMMM d, yyyy") : "Unknown";
|
|
21089
|
-
return /* @__PURE__ */ jsxs154(
|
|
21219
|
+
return /* @__PURE__ */ jsxs154(Fragment53, { children: [
|
|
21090
21220
|
/* @__PURE__ */ jsxs154(Card, { children: [
|
|
21091
21221
|
/* @__PURE__ */ jsx246(CardHeader, { children: /* @__PURE__ */ jsxs154("div", { className: "flex items-start justify-between", children: [
|
|
21092
21222
|
/* @__PURE__ */ jsxs154("div", { children: [
|
|
@@ -21422,7 +21552,7 @@ function WaitlistQuestionnaireRenderer({
|
|
|
21422
21552
|
__name(WaitlistQuestionnaireRenderer, "WaitlistQuestionnaireRenderer");
|
|
21423
21553
|
|
|
21424
21554
|
// src/features/waitlist/components/forms/WaitlistForm.tsx
|
|
21425
|
-
import { Fragment as
|
|
21555
|
+
import { Fragment as Fragment54, jsx as jsx252, jsxs as jsxs160 } from "react/jsx-runtime";
|
|
21426
21556
|
function WaitlistForm({ onSuccess }) {
|
|
21427
21557
|
const t = useTranslations105();
|
|
21428
21558
|
const [isSubmitting, setIsSubmitting] = useState94(false);
|
|
@@ -21541,7 +21671,7 @@ function WaitlistForm({ onSuccess }) {
|
|
|
21541
21671
|
{
|
|
21542
21672
|
form,
|
|
21543
21673
|
id: "gdprConsent",
|
|
21544
|
-
label: /* @__PURE__ */ jsxs160(
|
|
21674
|
+
label: /* @__PURE__ */ jsxs160(Fragment54, { children: [
|
|
21545
21675
|
t("auth.gdpr.terms_prefix"),
|
|
21546
21676
|
/* @__PURE__ */ jsx252(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.terms_of_service") }),
|
|
21547
21677
|
t("auth.gdpr.and"),
|
|
@@ -21821,7 +21951,7 @@ __name(WaitlistList, "WaitlistList");
|
|
|
21821
21951
|
// src/features/rbac/components/RbacContainer.tsx
|
|
21822
21952
|
import { Loader2Icon as Loader2Icon4 } from "lucide-react";
|
|
21823
21953
|
import { useTranslations as useTranslations111 } from "next-intl";
|
|
21824
|
-
import { memo as memo2, useCallback as useCallback49, useEffect as useEffect72, useMemo as
|
|
21954
|
+
import { memo as memo2, useCallback as useCallback49, useEffect as useEffect72, useMemo as useMemo36, useRef as useRef38, useState as useState98 } from "react";
|
|
21825
21955
|
|
|
21826
21956
|
// src/features/rbac/components/RbacPermissionCell.tsx
|
|
21827
21957
|
import { CheckIcon as CheckIcon9, MinusIcon as MinusIcon2, XIcon as XIcon11 } from "lucide-react";
|
|
@@ -21903,7 +22033,7 @@ import { Popover as PopoverPrimitive2 } from "@base-ui/react/popover";
|
|
|
21903
22033
|
import { CheckIcon as CheckIcon10, MinusIcon as MinusIcon3, XIcon as XIcon12 } from "lucide-react";
|
|
21904
22034
|
import { useTranslations as useTranslations110 } from "next-intl";
|
|
21905
22035
|
import { useCallback as useCallback48, useEffect as useEffect71, useState as useState97 } from "react";
|
|
21906
|
-
import { Fragment as
|
|
22036
|
+
import { Fragment as Fragment55, jsx as jsx259, jsxs as jsxs167 } from "react/jsx-runtime";
|
|
21907
22037
|
function RbacPermissionPicker({
|
|
21908
22038
|
open,
|
|
21909
22039
|
anchor,
|
|
@@ -21989,7 +22119,7 @@ function RbacPermissionPicker({
|
|
|
21989
22119
|
)
|
|
21990
22120
|
] })
|
|
21991
22121
|
] }),
|
|
21992
|
-
isRoleColumn && onClear && /* @__PURE__ */ jsxs167(
|
|
22122
|
+
isRoleColumn && onClear && /* @__PURE__ */ jsxs167(Fragment55, { children: [
|
|
21993
22123
|
/* @__PURE__ */ jsx259(Separator, {}),
|
|
21994
22124
|
/* @__PURE__ */ jsxs167(
|
|
21995
22125
|
Button,
|
|
@@ -22176,11 +22306,11 @@ function RbacContainer() {
|
|
|
22176
22306
|
setSelectedModuleId(id);
|
|
22177
22307
|
setActivePicker(null);
|
|
22178
22308
|
}, []);
|
|
22179
|
-
const sortedModuleIds =
|
|
22309
|
+
const sortedModuleIds = useMemo36(() => {
|
|
22180
22310
|
if (!matrix) return [];
|
|
22181
22311
|
return Object.keys(matrix).sort((a, b) => (moduleNames?.[a] ?? a).localeCompare(moduleNames?.[b] ?? b));
|
|
22182
22312
|
}, [matrix, moduleNames]);
|
|
22183
|
-
const roleIds =
|
|
22313
|
+
const roleIds = useMemo36(() => {
|
|
22184
22314
|
if (roleNames) {
|
|
22185
22315
|
return Object.keys(roleNames).sort((a, b) => (roleNames[a] ?? a).localeCompare(roleNames[b] ?? b));
|
|
22186
22316
|
}
|
|
@@ -22198,14 +22328,14 @@ function RbacContainer() {
|
|
|
22198
22328
|
setSelectedModuleId(sortedModuleIds[0]);
|
|
22199
22329
|
}
|
|
22200
22330
|
}, [selectedModuleId, sortedModuleIds]);
|
|
22201
|
-
const activeValue =
|
|
22331
|
+
const activeValue = useMemo36(() => {
|
|
22202
22332
|
if (!activePicker || !matrix) return void 0;
|
|
22203
22333
|
const block = matrix[activePicker.moduleId];
|
|
22204
22334
|
if (!block) return void 0;
|
|
22205
22335
|
const tokens = activePicker.rowKey === "default" ? block.default : block[activePicker.rowKey];
|
|
22206
22336
|
return cellValue(tokens, activePicker.action);
|
|
22207
22337
|
}, [activePicker, matrix]);
|
|
22208
|
-
const activeSegments =
|
|
22338
|
+
const activeSegments = useMemo36(() => {
|
|
22209
22339
|
if (!activePicker) return [];
|
|
22210
22340
|
return modulePaths[activePicker.moduleId] ?? [];
|
|
22211
22341
|
}, [activePicker, modulePaths]);
|
|
@@ -22276,7 +22406,7 @@ __name(RbacContainer, "RbacContainer");
|
|
|
22276
22406
|
// src/features/rbac/components/RbacByRoleContainer.tsx
|
|
22277
22407
|
import { Loader2Icon as Loader2Icon5 } from "lucide-react";
|
|
22278
22408
|
import { useTranslations as useTranslations112 } from "next-intl";
|
|
22279
|
-
import { Fragment as
|
|
22409
|
+
import { Fragment as Fragment56, memo as memo3, useCallback as useCallback50, useEffect as useEffect73, useMemo as useMemo37, useRef as useRef39, useState as useState99 } from "react";
|
|
22280
22410
|
import { jsx as jsx261, jsxs as jsxs169 } from "react/jsx-runtime";
|
|
22281
22411
|
function findToken2(tokens, action) {
|
|
22282
22412
|
if (!tokens) return void 0;
|
|
@@ -22326,11 +22456,11 @@ function RbacByRoleContainer() {
|
|
|
22326
22456
|
setSelectedRoleId(id);
|
|
22327
22457
|
setActivePicker(null);
|
|
22328
22458
|
}, []);
|
|
22329
|
-
const sortedRoleIds =
|
|
22459
|
+
const sortedRoleIds = useMemo37(() => {
|
|
22330
22460
|
if (!roleNames) return [];
|
|
22331
22461
|
return Object.keys(roleNames).sort((a, b) => (roleNames[a] ?? a).localeCompare(roleNames[b] ?? b));
|
|
22332
22462
|
}, [roleNames]);
|
|
22333
|
-
const sortedModuleIds =
|
|
22463
|
+
const sortedModuleIds = useMemo37(() => {
|
|
22334
22464
|
if (!matrix) return [];
|
|
22335
22465
|
return Object.keys(matrix).sort((a, b) => (moduleNames?.[a] ?? a).localeCompare(moduleNames?.[b] ?? b));
|
|
22336
22466
|
}, [matrix, moduleNames]);
|
|
@@ -22339,14 +22469,14 @@ function RbacByRoleContainer() {
|
|
|
22339
22469
|
setSelectedRoleId(sortedRoleIds[0]);
|
|
22340
22470
|
}
|
|
22341
22471
|
}, [selectedRoleId, sortedRoleIds]);
|
|
22342
|
-
const activeValue =
|
|
22472
|
+
const activeValue = useMemo37(() => {
|
|
22343
22473
|
if (!activePicker || !matrix) return void 0;
|
|
22344
22474
|
const block = matrix[activePicker.moduleId];
|
|
22345
22475
|
if (!block) return void 0;
|
|
22346
22476
|
const tokens = activePicker.rowKey === "default" ? block.default : block[activePicker.rowKey];
|
|
22347
22477
|
return cellValue2(tokens, activePicker.action);
|
|
22348
22478
|
}, [activePicker, matrix]);
|
|
22349
|
-
const activeSegments =
|
|
22479
|
+
const activeSegments = useMemo37(() => {
|
|
22350
22480
|
if (!activePicker) return [];
|
|
22351
22481
|
return modulePaths[activePicker.moduleId] ?? [];
|
|
22352
22482
|
}, [activePicker, modulePaths]);
|
|
@@ -22402,7 +22532,7 @@ function RbacByRoleContainer() {
|
|
|
22402
22532
|
const defaultTokens = block.default ?? [];
|
|
22403
22533
|
const roleTokens = block[selectedRoleId];
|
|
22404
22534
|
const moduleLabel = moduleNames?.[moduleId] ?? moduleId;
|
|
22405
|
-
return /* @__PURE__ */ jsxs169(
|
|
22535
|
+
return /* @__PURE__ */ jsxs169(Fragment56, { children: [
|
|
22406
22536
|
/* @__PURE__ */ jsx261("tr", { className: "border-b bg-muted/40", children: /* @__PURE__ */ jsx261(
|
|
22407
22537
|
"td",
|
|
22408
22538
|
{
|
|
@@ -22762,6 +22892,7 @@ export {
|
|
|
22762
22892
|
recentPagesAtom,
|
|
22763
22893
|
RecentPagesNavigator,
|
|
22764
22894
|
PageContainer,
|
|
22895
|
+
partitionTabs,
|
|
22765
22896
|
ReactMarkdownContainer,
|
|
22766
22897
|
RoundPageContainerTitle,
|
|
22767
22898
|
RoundPageContainer,
|
|
@@ -22976,4 +23107,4 @@ export {
|
|
|
22976
23107
|
useOAuthClients,
|
|
22977
23108
|
useOAuthClient
|
|
22978
23109
|
};
|
|
22979
|
-
//# sourceMappingURL=chunk-
|
|
23110
|
+
//# sourceMappingURL=chunk-KXHEOLPZ.mjs.map
|