@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.
Files changed (41) hide show
  1. package/dist/{AssistantMessageInterface-Ca0G0vZw.d.mts → AssistantMessageInterface-DH1QwtC_.d.mts} +1 -0
  2. package/dist/{AssistantMessageInterface-DEZ5AnVl.d.ts → AssistantMessageInterface-giWvsOrX.d.ts} +1 -0
  3. package/dist/{BlockNoteEditor-6UREFUSJ.js → BlockNoteEditor-5FFVS7KW.js} +9 -9
  4. package/dist/{BlockNoteEditor-6UREFUSJ.js.map → BlockNoteEditor-5FFVS7KW.js.map} +1 -1
  5. package/dist/{BlockNoteEditor-UQOOX3UT.mjs → BlockNoteEditor-6GRZW6BL.mjs} +2 -2
  6. package/dist/billing/index.js +299 -299
  7. package/dist/billing/index.mjs +1 -1
  8. package/dist/{chunk-SVEPL5J2.mjs → chunk-KXHEOLPZ.mjs} +287 -156
  9. package/dist/chunk-KXHEOLPZ.mjs.map +1 -0
  10. package/dist/{chunk-HXU2HDRN.js → chunk-M2ODDWY3.js} +372 -241
  11. package/dist/chunk-M2ODDWY3.js.map +1 -0
  12. package/dist/client/index.js +2 -2
  13. package/dist/client/index.mjs +1 -1
  14. package/dist/components/index.d.mts +73 -31
  15. package/dist/components/index.d.ts +73 -31
  16. package/dist/components/index.js +4 -2
  17. package/dist/components/index.js.map +1 -1
  18. package/dist/components/index.mjs +3 -1
  19. package/dist/contexts/index.d.mts +1 -1
  20. package/dist/contexts/index.d.ts +1 -1
  21. package/dist/contexts/index.js +2 -2
  22. package/dist/contexts/index.mjs +1 -1
  23. package/dist/core/index.d.mts +2 -2
  24. package/dist/core/index.d.ts +2 -2
  25. package/dist/features/help/index.js +30 -30
  26. package/dist/features/help/index.mjs +1 -1
  27. package/dist/index.d.mts +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/package.json +1 -1
  30. package/src/components/containers/RoundPageContainer.tsx +197 -76
  31. package/src/components/containers/TabsContainer.tsx +14 -0
  32. package/src/components/containers/__tests__/partitionTabs.spec.ts +51 -0
  33. package/src/components/containers/index.ts +1 -0
  34. package/src/components/containers/partitionTabs.ts +43 -0
  35. package/src/components/forms/EditorSheet.tsx +7 -2
  36. package/src/components/navigations/Breadcrumb.tsx +31 -5
  37. package/src/hooks/useSocket.ts +12 -1
  38. package/src/interfaces/breadcrumb.item.data.interface.ts +1 -0
  39. package/dist/chunk-HXU2HDRN.js.map +0 -1
  40. package/dist/chunk-SVEPL5J2.mjs.map +0 -1
  41. /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 notification = rehydrate(Modules.Notification, data);
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 ? /* @__PURE__ */ jsx71(SheetTrigger, { children: trigger }) : /* @__PURE__ */ jsx71(SheetTrigger, { children: isEdit ? /* @__PURE__ */ jsx71(
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-UQOOX3UT.mjs"), {
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 Fragment22, jsx as jsx152, jsxs as jsxs90 } from "react/jsx-runtime";
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.key?.name ?? i.label) === section) ? section : null) || (tabs[0].key?.name ?? tabs[0].label) : void 0;
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.key?.name ?? i.label) === section);
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.key?.name ?? t.label) === activeTab)?.fillHeight === true;
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(Fragment22, { children: [
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(Fragment22, { children: [
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
- /* @__PURE__ */ jsx152(
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(Fragment22, { children: [
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.key?.name ?? tab.label, children: tab.contentLabel ?? tab.label }, tab.label)) })
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.key?.name ?? tab.label, className: "px-4", children: tab.contentLabel ?? tab.label }, tab.label)) }) }),
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.key?.name ?? tab.label,
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 Fragment23, jsx as jsx153, jsxs as jsxs91 } from "react/jsx-runtime";
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(Fragment23, { children: validTabs.map((tab) => /* @__PURE__ */ jsx153(TabsContent, { value: tab.label, children: tab.content }, tab.label)) })
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 useMemo20 } from "react";
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 = useMemo20(() => {
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 useMemo21 } from "react";
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 = useMemo21(() => config, [config]);
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 useMemo22 } from "react";
15291
+ import { useMemo as useMemo23 } from "react";
15162
15292
  function useRehydration(classKey, data) {
15163
- return useMemo22(() => {
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 useMemo22(() => {
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 useMemo23 } from "react";
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 = useMemo23(() => {
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 = useMemo23(() => {
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 useMemo23(() => ({ data: tableData, columns }), [tableData, columns]);
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 useMemo24 } from "react";
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 useMemo24(() => {
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 useMemo25 } from "react";
15312
- import { Fragment as Fragment24, jsx as jsx168 } from "react/jsx-runtime";
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 = useMemo25(() => {
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(Fragment24, { children: row.getValue("description") }), "cell"),
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 = useMemo25(() => {
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 useMemo25(() => ({ data: tableData, columns }), [tableData, columns]);
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 useMemo26 } from "react";
15367
- import { Fragment as Fragment25, jsx as jsx169, jsxs as jsxs96 } from "react/jsx-runtime";
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 = useMemo26(() => {
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(Fragment25, { children: [
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(Fragment25, {});
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 = useMemo26(() => {
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 useMemo26(() => ({ data: tableData, columns }), [tableData, columns]);
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 useMemo27, useState as useState57 } from "react";
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 Fragment26, jsx as jsx171, jsxs as jsxs98 } from "react/jsx-runtime";
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 = useMemo27(
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 = useMemo27(() => {
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(Fragment26, { children: [
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 Fragment27, jsx as jsx172, jsxs as jsxs99 } from "react/jsx-runtime";
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(Fragment27, { children: [
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 useMemo28, useState as useState60 } from "react";
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 Fragment28, jsx as jsx174, jsxs as jsxs101 } from "react/jsx-runtime";
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(Fragment28, { children: [
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 Fragment29, jsx as jsx175, jsxs as jsxs102 } from "react/jsx-runtime";
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(Fragment29, { children: [
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(Fragment29, { children: [
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(Fragment29, { children: [
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(Fragment29, { children: [
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(Fragment29, { children: " " }) : /* @__PURE__ */ jsx175(Fragment29, { children: t(`auth.register_description`) }) })
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 = useMemo28(() => {
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 Fragment30, jsx as jsx181, jsxs as jsxs106 } from "react/jsx-runtime";
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(Fragment30, { children: [
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 Fragment31, jsx as jsx185, jsxs as jsxs110 } from "react/jsx-runtime";
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(Fragment31, { children: [
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(Fragment31, { children: [
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 Fragment32, jsx as jsx188, jsxs as jsxs112 } from "react/jsx-runtime";
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(Fragment32, { children: [
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(Fragment32, { children: [
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 Fragment33, jsx as jsx189, jsxs as jsxs113 } from "react/jsx-runtime";
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(Fragment33, { children: [
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(Fragment33, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx189(Fragment33, { children: t("auth.select_password") }) })
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 Fragment34, jsx as jsx190, jsxs as jsxs114 } from "react/jsx-runtime";
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(Fragment34, { children: [
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(Fragment34, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx190(Fragment34, { children: " " }) })
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(Fragment34, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx190(Fragment34, { children: error }) : /* @__PURE__ */ jsx190(Fragment34, { children: t("auth.activation_wait") }) }) })
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 Fragment35, jsx as jsx191, jsxs as jsxs115 } from "react/jsx-runtime";
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(Fragment35, { children: [
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(Fragment35, { children: " " }) : /* @__PURE__ */ jsx191(Fragment35, { children: t(`auth.add_email_to_reset`) }) })
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 Fragment36, jsx as jsx192, jsxs as jsxs116 } from "react/jsx-runtime";
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(Fragment36, { children: [
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(Fragment36, { children: [
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 Fragment37, jsx as jsx193 } from "react/jsx-runtime";
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(Fragment37, {});
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 Fragment38, jsx as jsx194, jsxs as jsxs117 } from "react/jsx-runtime";
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(Fragment38, { children: [
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(Fragment38, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx194(Fragment38, { children: t(`auth.reset_password`) }) })
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 Fragment39, jsx as jsx196, jsxs as jsxs118 } from "react/jsx-runtime";
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(Fragment39, { children: [
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 useMemo30, useRef as useRef32, useState as useState77 } from "react";
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 useMemo29 } from "react";
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 = useMemo29(() => calculateReadingTime(howTo.description), [howTo.description]);
18333
- const headings = useMemo29(() => extractHeadings(howTo.description), [howTo.description]);
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 Fragment40, jsx as jsx201, jsxs as jsxs121 } from "react/jsx-runtime";
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 } = useMemo30(() => {
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(Fragment40, { children: [
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 useMemo31 } from "react";
18590
- import { Fragment as Fragment41, jsx as jsx205 } from "react/jsx-runtime";
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 = useMemo31(() => {
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(Fragment41, { children: row.getValue("description") }), "cell"),
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(Fragment41, { children: row.getValue("pages") }), "cell"),
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 = useMemo31(() => {
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 useMemo31(() => ({ data: tableData, columns }), [tableData, columns]);
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 Fragment42, jsx as jsx208, jsxs as jsxs123 } from "react/jsx-runtime";
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(Fragment42, {})
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 Fragment43, jsx as jsx209, jsxs as jsxs124 } from "react/jsx-runtime";
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(Fragment43, { children: [
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 useMemo33, useState as useState84 } from "react";
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 useMemo32, useState as useState83 } from "react";
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 Fragment44, useState as useState82 } from "react";
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(Fragment44, { children: [
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 = useMemo32(
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 = useMemo32(() => {
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 = useMemo33(() => {
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 = useMemo33(() => {
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 = useMemo33(() => {
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 = useMemo33(() => {
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 Fragment45, jsx as jsx225, jsxs as jsxs137 } from "react/jsx-runtime";
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(Fragment45, { children: [
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 Fragment46, jsx as jsx227, jsxs as jsxs139 } from "react/jsx-runtime";
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(Fragment46, {}),
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 Fragment47, useCallback as useCallback39, useEffect as useEffect64, useMemo as useMemo34, useRef as useRef35, useState as useState85 } from "react";
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 } = useMemo34(() => {
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(Fragment47, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx229("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
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 Fragment48, jsx as jsx230 } from "react/jsx-runtime";
20083
+ import { Fragment as Fragment49, jsx as jsx230 } from "react/jsx-runtime";
19954
20084
  function PushNotificationProvider({ children }) {
19955
20085
  usePushNotifications();
19956
- return /* @__PURE__ */ jsx230(Fragment48, { children });
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 Fragment49, jsx as jsx234, jsxs as jsxs144 } from "react/jsx-runtime";
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(Fragment49, { children: [
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 Fragment50, jsx as jsx236, jsxs as jsxs146 } from "react/jsx-runtime";
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(Fragment50, { children: [
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(Fragment50, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
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 Fragment51, jsx as jsx237, jsxs as jsxs147 } from "react/jsx-runtime";
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(Fragment51, { children: [
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 Fragment52, jsx as jsx246, jsxs as jsxs154 } from "react/jsx-runtime";
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(Fragment52, { children: [
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 Fragment53, jsx as jsx252, jsxs as jsxs160 } from "react/jsx-runtime";
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(Fragment53, { children: [
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 useMemo35, useRef as useRef38, useState as useState98 } from "react";
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 Fragment54, jsx as jsx259, jsxs as jsxs167 } from "react/jsx-runtime";
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(Fragment54, { children: [
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 = useMemo35(() => {
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 = useMemo35(() => {
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 = useMemo35(() => {
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 = useMemo35(() => {
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 Fragment55, memo as memo3, useCallback as useCallback50, useEffect as useEffect73, useMemo as useMemo36, useRef as useRef39, useState as useState99 } from "react";
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 = useMemo36(() => {
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 = useMemo36(() => {
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 = useMemo36(() => {
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 = useMemo36(() => {
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(Fragment55, { children: [
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-SVEPL5J2.mjs.map
23110
+ //# sourceMappingURL=chunk-KXHEOLPZ.mjs.map