@carlonicora/nextjs-jsonapi 1.117.1 → 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 (30) hide show
  1. package/dist/{BlockNoteEditor-CEWZCORH.js → BlockNoteEditor-5FFVS7KW.js} +9 -9
  2. package/dist/{BlockNoteEditor-CEWZCORH.js.map → BlockNoteEditor-5FFVS7KW.js.map} +1 -1
  3. package/dist/{BlockNoteEditor-K4T6QOJO.mjs → BlockNoteEditor-6GRZW6BL.mjs} +2 -2
  4. package/dist/billing/index.js +299 -299
  5. package/dist/billing/index.mjs +1 -1
  6. package/dist/{chunk-6D4GJHLK.mjs → chunk-KXHEOLPZ.mjs} +273 -150
  7. package/dist/chunk-KXHEOLPZ.mjs.map +1 -0
  8. package/dist/{chunk-56QAXZKI.js → chunk-M2ODDWY3.js} +238 -115
  9. package/dist/chunk-M2ODDWY3.js.map +1 -0
  10. package/dist/client/index.js +2 -2
  11. package/dist/client/index.mjs +1 -1
  12. package/dist/components/index.d.mts +72 -30
  13. package/dist/components/index.d.ts +72 -30
  14. package/dist/components/index.js +4 -2
  15. package/dist/components/index.js.map +1 -1
  16. package/dist/components/index.mjs +3 -1
  17. package/dist/contexts/index.js +2 -2
  18. package/dist/contexts/index.mjs +1 -1
  19. package/dist/features/help/index.js +30 -30
  20. package/dist/features/help/index.mjs +1 -1
  21. package/package.json +1 -1
  22. package/src/components/containers/RoundPageContainer.tsx +197 -76
  23. package/src/components/containers/TabsContainer.tsx +14 -0
  24. package/src/components/containers/__tests__/partitionTabs.spec.ts +51 -0
  25. package/src/components/containers/index.ts +1 -0
  26. package/src/components/containers/partitionTabs.ts +43 -0
  27. package/src/components/forms/EditorSheet.tsx +7 -2
  28. package/dist/chunk-56QAXZKI.js.map +0 -1
  29. package/dist/chunk-6D4GJHLK.mjs.map +0 -1
  30. /package/dist/{BlockNoteEditor-K4T6QOJO.mjs.map → BlockNoteEditor-6GRZW6BL.mjs.map} +0 -0
@@ -9072,7 +9072,14 @@ function EditorSheet({
9072
9072
  );
9073
9073
  return /* @__PURE__ */ jsxs41(Fragment9, { children: [
9074
9074
  /* @__PURE__ */ jsxs41(Sheet, { open, onOpenChange: handleOpenChange, children: [
9075
- 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(
9076
9083
  Button,
9077
9084
  {
9078
9085
  render: /* @__PURE__ */ jsx71("div", {}),
@@ -9794,7 +9801,7 @@ import { useRef as useRef15 } from "react";
9794
9801
  import dynamic from "next/dynamic";
9795
9802
  import React17 from "react";
9796
9803
  import { jsx as jsx77 } from "react/jsx-runtime";
9797
- var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-K4T6QOJO.mjs"), {
9804
+ var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-6GRZW6BL.mjs"), {
9798
9805
  ssr: false
9799
9806
  });
9800
9807
  var BlockNoteEditorContainer = React17.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
@@ -14146,6 +14153,32 @@ function PageContainer({ children, testId, className }) {
14146
14153
  }
14147
14154
  __name(PageContainer, "PageContainer");
14148
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
+
14149
14182
  // src/components/containers/ReactMarkdownContainer.tsx
14150
14183
  import { ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
14151
14184
  import { useTranslations as useTranslations52 } from "next-intl";
@@ -14266,10 +14299,18 @@ __name(RoundPageContainerTitle, "RoundPageContainerTitle");
14266
14299
 
14267
14300
  // src/components/containers/RoundPageContainer.tsx
14268
14301
  import { useSearchParams } from "next/navigation";
14269
- import { useCallback as useCallback26, useEffect as useEffect39, useState as useState48 } from "react";
14270
- 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";
14271
14304
  var DETAILS_COOKIE_NAME = "round_page_details_state";
14272
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");
14273
14314
  function RoundPageContainer({
14274
14315
  module,
14275
14316
  id,
@@ -14278,7 +14319,8 @@ function RoundPageContainer({
14278
14319
  children,
14279
14320
  fullWidth,
14280
14321
  forceHeader,
14281
- header
14322
+ header,
14323
+ layout: layout2 = "tabs"
14282
14324
  }) {
14283
14325
  const headerChildren = useHeaderChildren();
14284
14326
  const headerLeftContent = useHeaderLeftContent();
@@ -14299,11 +14341,11 @@ function RoundPageContainer({
14299
14341
  const searchParams = useSearchParams();
14300
14342
  const section = searchParams.get("section");
14301
14343
  const rewriteUrl = useUrlRewriter();
14302
- 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;
14303
14345
  const [activeTab, setActiveTab] = useState48(initialValue);
14304
14346
  useEffect39(() => {
14305
14347
  if (tabs && section) {
14306
- const tab = tabs.find((i) => (i.key?.name ?? i.label) === section);
14348
+ const tab = tabs.find((i) => tabValue(i) === section);
14307
14349
  if (tab) {
14308
14350
  setActiveTab(section);
14309
14351
  }
@@ -14316,15 +14358,16 @@ function RoundPageContainer({
14316
14358
  },
14317
14359
  [module, id, rewriteUrl]
14318
14360
  );
14319
- 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]);
14320
14363
  const isReady = mounted && isMobile !== void 0;
14321
14364
  if (!isReady) {
14322
- return /* @__PURE__ */ jsxs90(Fragment22, { children: [
14365
+ return /* @__PURE__ */ jsxs90(Fragment23, { children: [
14323
14366
  /* @__PURE__ */ jsx152(Header, { leftContent: headerLeftContent, className: "bg-sidebar border-0", children: headerChildren }),
14324
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" }) }) })
14325
14368
  ] });
14326
14369
  }
14327
- return /* @__PURE__ */ jsxs90(Fragment22, { children: [
14370
+ return /* @__PURE__ */ jsxs90(Fragment23, { children: [
14328
14371
  /* @__PURE__ */ jsx152(Header, { leftContent: headerLeftContent, className: "bg-sidebar border-0", children: headerChildren }),
14329
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: [
14330
14373
  (!fullWidth || forceHeader) && /* @__PURE__ */ jsx152(
@@ -14338,7 +14381,86 @@ function RoundPageContainer({
14338
14381
  }
14339
14382
  ),
14340
14383
  /* @__PURE__ */ jsxs90("div", { className: "flex h-full w-full overflow-hidden", children: [
14341
- /* @__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(
14342
14464
  "div",
14343
14465
  {
14344
14466
  className: cn(
@@ -14357,7 +14479,7 @@ function RoundPageContainer({
14357
14479
  ),
14358
14480
  children: [
14359
14481
  header,
14360
- tabs ? /* @__PURE__ */ jsxs90(Fragment22, { children: [
14482
+ tabs ? /* @__PURE__ */ jsxs90(Fragment23, { children: [
14361
14483
  /* @__PURE__ */ jsxs90(
14362
14484
  Tabs,
14363
14485
  {
@@ -14374,10 +14496,10 @@ function RoundPageContainer({
14374
14496
  },
14375
14497
  children: [
14376
14498
  /* @__PURE__ */ jsx152(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx152(SelectValue, {}) }),
14377
- /* @__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)) })
14378
14500
  ]
14379
14501
  }
14380
- ) }) : /* @__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)) }) }),
14381
14503
  /* @__PURE__ */ jsx152(
14382
14504
  "div",
14383
14505
  {
@@ -14389,7 +14511,7 @@ function RoundPageContainer({
14389
14511
  children: tabs.map((tab) => /* @__PURE__ */ jsx152(
14390
14512
  TabsContent,
14391
14513
  {
14392
- value: tab.key?.name ?? tab.label,
14514
+ value: tabValue(tab),
14393
14515
  className: tab.fillHeight ? `flex flex-1 min-h-0 w-full flex-col` : `pb-20`,
14394
14516
  children: tab.content
14395
14517
  },
@@ -14427,7 +14549,7 @@ function RoundPageContainer({
14427
14549
  __name(RoundPageContainer, "RoundPageContainer");
14428
14550
 
14429
14551
  // src/components/containers/TabsContainer.tsx
14430
- 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";
14431
14553
  function TabsContainer({
14432
14554
  tabs,
14433
14555
  defaultTab,
@@ -14471,7 +14593,7 @@ function TabsContainer({
14471
14593
  ),
14472
14594
  additionalComponent && additionalComponent
14473
14595
  ] }),
14474
- 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)) })
14475
14597
  ] });
14476
14598
  }
14477
14599
  __name(TabsContainer, "TabsContainer");
@@ -14653,7 +14775,7 @@ var createMentionInlineContentSpec = /* @__PURE__ */ __name((resolveFn, disableM
14653
14775
  // src/components/editors/BlockNoteEditorSuggestionMenuController.tsx
14654
14776
  import { SuggestionMenuController } from "@blocknote/react";
14655
14777
  import { autoUpdate, flip, shift } from "@floating-ui/react";
14656
- import React25, { useCallback as useCallback28, useMemo as useMemo20 } from "react";
14778
+ import React25, { useCallback as useCallback28, useMemo as useMemo21 } from "react";
14657
14779
  import { jsx as jsx157 } from "react/jsx-runtime";
14658
14780
  var MentionInsertContext = React25.createContext(null);
14659
14781
  var useMentionInsert = /* @__PURE__ */ __name(() => React25.useContext(MentionInsertContext), "useMentionInsert");
@@ -14705,7 +14827,7 @@ function BlockNoteEditorMentionSuggestionMenu({
14705
14827
  },
14706
14828
  [editor, mentionSearchFn, mentionSearchParams]
14707
14829
  );
14708
- const wrappedSuggestionMenuComponent = useMemo20(() => {
14830
+ const wrappedSuggestionMenuComponent = useMemo21(() => {
14709
14831
  if (!suggestionMenuComponent) return void 0;
14710
14832
  const Component2 = suggestionMenuComponent;
14711
14833
  const Wrapped = /* @__PURE__ */ __name((props) => {
@@ -14952,7 +15074,7 @@ var cellUrl = /* @__PURE__ */ __name((params) => {
14952
15074
  }, "cellUrl");
14953
15075
 
14954
15076
  // src/client/context/JsonApiProvider.tsx
14955
- import { useEffect as useEffect43, useMemo as useMemo21 } from "react";
15077
+ import { useEffect as useEffect43, useMemo as useMemo22 } from "react";
14956
15078
  import { jsx as jsx166 } from "react/jsx-runtime";
14957
15079
  function JsonApiProvider({ config, children }) {
14958
15080
  useEffect43(() => {
@@ -14960,7 +15082,7 @@ function JsonApiProvider({ config, children }) {
14960
15082
  config.bootstrapper();
14961
15083
  }
14962
15084
  }, [config.bootstrapper]);
14963
- const memoizedConfig = useMemo21(() => config, [config]);
15085
+ const memoizedConfig = useMemo22(() => config, [config]);
14964
15086
  return /* @__PURE__ */ jsx166(JsonApiContext.Provider, { value: memoizedConfig, children });
14965
15087
  }
14966
15088
  __name(JsonApiProvider, "JsonApiProvider");
@@ -15166,16 +15288,16 @@ function useJsonApiMutation(config) {
15166
15288
  __name(useJsonApiMutation, "useJsonApiMutation");
15167
15289
 
15168
15290
  // src/client/hooks/useRehydration.ts
15169
- import { useMemo as useMemo22 } from "react";
15291
+ import { useMemo as useMemo23 } from "react";
15170
15292
  function useRehydration(classKey, data) {
15171
- return useMemo22(() => {
15293
+ return useMemo23(() => {
15172
15294
  if (!data) return null;
15173
15295
  return RehydrationFactory.rehydrate(classKey, data);
15174
15296
  }, [classKey, data]);
15175
15297
  }
15176
15298
  __name(useRehydration, "useRehydration");
15177
15299
  function useRehydrationList(classKey, data) {
15178
- return useMemo22(() => {
15300
+ return useMemo23(() => {
15179
15301
  if (!data || data.length === 0) return [];
15180
15302
  return RehydrationFactory.rehydrateList(classKey, data);
15181
15303
  }, [classKey, data]);
@@ -15184,13 +15306,13 @@ __name(useRehydrationList, "useRehydrationList");
15184
15306
 
15185
15307
  // src/features/company/hooks/useCompanyTableStructure.tsx
15186
15308
  import { useTranslations as useTranslations54 } from "next-intl";
15187
- import { useMemo as useMemo23 } from "react";
15309
+ import { useMemo as useMemo24 } from "react";
15188
15310
  import { jsx as jsx167 } from "react/jsx-runtime";
15189
15311
  var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
15190
15312
  const t = useTranslations54();
15191
15313
  const generateUrl = usePageUrlGenerator();
15192
15314
  const { hasRole } = useCurrentUserContext();
15193
- const tableData = useMemo23(() => {
15315
+ const tableData = useMemo24(() => {
15194
15316
  return params.data.map((company) => {
15195
15317
  const entry = {
15196
15318
  jsonApiData: company
@@ -15234,14 +15356,14 @@ var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
15234
15356
  title: t(`common.date.create`)
15235
15357
  })
15236
15358
  };
15237
- const columns = useMemo23(() => {
15359
+ const columns = useMemo24(() => {
15238
15360
  return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
15239
15361
  }, [params.fields, fieldColumnMap, t, generateUrl, hasRole]);
15240
- return useMemo23(() => ({ data: tableData, columns }), [tableData, columns]);
15362
+ return useMemo24(() => ({ data: tableData, columns }), [tableData, columns]);
15241
15363
  }, "useCompanyTableStructure");
15242
15364
 
15243
15365
  // src/features/company/hooks/useSubscriptionStatus.ts
15244
- import { useMemo as useMemo24 } from "react";
15366
+ import { useMemo as useMemo25 } from "react";
15245
15367
  var TRIAL_DAYS = 14;
15246
15368
  var GRACE_DAYS = 3;
15247
15369
  var isAdministrator = /* @__PURE__ */ __name((currentUser) => {
@@ -15251,7 +15373,7 @@ var isAdministrator = /* @__PURE__ */ __name((currentUser) => {
15251
15373
  }, "isAdministrator");
15252
15374
  function useSubscriptionStatus() {
15253
15375
  const { company, currentUser } = useCurrentUserContext();
15254
- return useMemo24(() => {
15376
+ return useMemo25(() => {
15255
15377
  if (currentUser === null) {
15256
15378
  return {
15257
15379
  status: "loading",
@@ -15316,12 +15438,12 @@ __name(useSubscriptionStatus, "useSubscriptionStatus");
15316
15438
 
15317
15439
  // src/features/role/hooks/useRoleTableStructure.tsx
15318
15440
  import { useTranslations as useTranslations55 } from "next-intl";
15319
- import { useMemo as useMemo25 } from "react";
15320
- 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";
15321
15443
  var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
15322
15444
  const t = useTranslations55();
15323
15445
  const generateUrl = usePageUrlGenerator();
15324
- const tableData = useMemo25(() => {
15446
+ const tableData = useMemo26(() => {
15325
15447
  return params.data.map((role) => {
15326
15448
  const entry = {
15327
15449
  jsonApiData: role
@@ -15354,7 +15476,7 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
15354
15476
  id: "description",
15355
15477
  accessorKey: "description",
15356
15478
  header: t(`role.fields.description.label`),
15357
- 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"),
15358
15480
  enableSorting: false,
15359
15481
  enableHiding: false
15360
15482
  }),
@@ -15363,20 +15485,20 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
15363
15485
  title: t(`common.date.create`)
15364
15486
  })
15365
15487
  };
15366
- const columns = useMemo25(() => {
15488
+ const columns = useMemo26(() => {
15367
15489
  return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
15368
15490
  }, [params.fields, fieldColumnMap, t, generateUrl]);
15369
- return useMemo25(() => ({ data: tableData, columns }), [tableData, columns]);
15491
+ return useMemo26(() => ({ data: tableData, columns }), [tableData, columns]);
15370
15492
  }, "useRoleTableStructure");
15371
15493
 
15372
15494
  // src/features/content/hooks/useContentTableStructure.tsx
15373
15495
  import { useTranslations as useTranslations56 } from "next-intl";
15374
- import { useMemo as useMemo26 } from "react";
15375
- 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";
15376
15498
  var useContentTableStructure = /* @__PURE__ */ __name((params) => {
15377
15499
  const t = useTranslations56();
15378
15500
  const generateUrl = usePageUrlGenerator();
15379
- const tableData = useMemo26(() => {
15501
+ const tableData = useMemo27(() => {
15380
15502
  return params.data.map((content) => {
15381
15503
  const entry = {
15382
15504
  jsonApiData: content
@@ -15403,7 +15525,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
15403
15525
  const contentModule = content.contentType ? Modules.findByModelName(content.contentType) : void 0;
15404
15526
  const link = contentModule ? generateUrl({ page: contentModule, id: content.id }) : "#";
15405
15527
  return /* @__PURE__ */ jsxs96(Tooltip2, { children: [
15406
- /* @__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: [
15407
15529
  contentModule && getIconByModule({ module: contentModule, className: "h-4 w-4" }),
15408
15530
  /* @__PURE__ */ jsx169(Link, { href: link, children: content.name })
15409
15531
  ] }) }),
@@ -15419,7 +15541,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
15419
15541
  header: t(`common.relevance`),
15420
15542
  cell: /* @__PURE__ */ __name(({ row }) => {
15421
15543
  const content = row.original.jsonApiData;
15422
- if (!content.relevance) return /* @__PURE__ */ jsx169(Fragment25, {});
15544
+ if (!content.relevance) return /* @__PURE__ */ jsx169(Fragment26, {});
15423
15545
  const response = `${content.relevance.toFixed(0)}%`;
15424
15546
  return /* @__PURE__ */ jsxs96("div", { className: "relative flex h-5 w-20 items-center justify-center overflow-clip rounded border text-center", children: [
15425
15547
  /* @__PURE__ */ jsx169(
@@ -15461,7 +15583,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
15461
15583
  title: t(`common.date.update`)
15462
15584
  })
15463
15585
  };
15464
- const columns = useMemo26(() => {
15586
+ const columns = useMemo27(() => {
15465
15587
  return params.fields.map((field) => {
15466
15588
  const localHandler = fieldColumnMap[field];
15467
15589
  if (localHandler) return localHandler();
@@ -15470,7 +15592,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
15470
15592
  return void 0;
15471
15593
  }).filter((col) => col !== void 0);
15472
15594
  }, [params.fields, fieldColumnMap, t, generateUrl, params.context?.customCells]);
15473
- return useMemo26(() => ({ data: tableData, columns }), [tableData, columns]);
15595
+ return useMemo27(() => ({ data: tableData, columns }), [tableData, columns]);
15474
15596
  }, "useContentTableStructure");
15475
15597
 
15476
15598
  // src/features/oauth/hooks/useOAuthClients.ts
@@ -15769,7 +15891,7 @@ registerTableGenerator("companies", useCompanyTableStructure);
15769
15891
  // src/components/tables/ContentListTable.tsx
15770
15892
  import { flexRender, getCoreRowModel, getExpandedRowModel, useReactTable } from "@tanstack/react-table";
15771
15893
  import { ChevronLeft, ChevronRight } from "lucide-react";
15772
- import React28, { memo, useMemo as useMemo27, useState as useState57 } from "react";
15894
+ import React28, { memo, useMemo as useMemo28, useState as useState57 } from "react";
15773
15895
 
15774
15896
  // src/components/tables/ContentTableSearch.tsx
15775
15897
  import { RefreshCw, Search, X as X3 } from "lucide-react";
@@ -15862,7 +15984,7 @@ function ContentTableSearch({ data }) {
15862
15984
  __name(ContentTableSearch, "ContentTableSearch");
15863
15985
 
15864
15986
  // src/components/tables/ContentListTable.tsx
15865
- 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";
15866
15988
  var EMPTY_ARRAY = [];
15867
15989
  function getGroupKeys(item, field) {
15868
15990
  const value = item.jsonApiData[field];
@@ -15888,7 +16010,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
15888
16010
  dataRetriever: data,
15889
16011
  context: props.context
15890
16012
  });
15891
- const columnVisibility = useMemo27(
16013
+ const columnVisibility = useMemo28(
15892
16014
  () => fields.reduce(
15893
16015
  (acc, columnId) => {
15894
16016
  acc[columnId] = true;
@@ -15913,7 +16035,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
15913
16035
  }
15914
16036
  });
15915
16037
  const rowModel = tableData ? table.getRowModel() : null;
15916
- const groupedRows = useMemo27(() => {
16038
+ const groupedRows = useMemo28(() => {
15917
16039
  if (!props.groupBy || !rowModel?.rows?.length) return null;
15918
16040
  const groupMap = /* @__PURE__ */ new Map();
15919
16041
  for (const row of rowModel.rows) {
@@ -15960,7 +16082,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
15960
16082
  ]
15961
16083
  }
15962
16084
  ) }),
15963
- (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs98(Fragment26, { children: [
16085
+ (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs98(Fragment27, { children: [
15964
16086
  props.functions,
15965
16087
  props.filters,
15966
16088
  /* @__PURE__ */ jsx171(ContentTableSearch, { data })
@@ -16024,7 +16146,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
16024
16146
 
16025
16147
  // src/components/grids/ContentListGrid.tsx
16026
16148
  import { useEffect as useEffect49, useRef as useRef29 } from "react";
16027
- 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";
16028
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";
16029
16151
  function ContentListGrid(props) {
16030
16152
  const { data, ItemComponent, allowSearch, fullWidth, gridClassName } = props;
@@ -16055,7 +16177,7 @@ function ContentListGrid(props) {
16055
16177
  ]
16056
16178
  }
16057
16179
  ) }),
16058
- (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs99(Fragment27, { children: [
16180
+ (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs99(Fragment28, { children: [
16059
16181
  props.functions,
16060
16182
  props.filters,
16061
16183
  allowSearch && /* @__PURE__ */ jsx172(ContentTableSearch, { data })
@@ -16236,7 +16358,7 @@ var ItalianFiscalData_default = ItalianFiscalData;
16236
16358
  import Image8 from "next/image";
16237
16359
 
16238
16360
  // src/features/auth/contexts/AuthContext.tsx
16239
- 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";
16240
16362
 
16241
16363
  // src/features/auth/components/forms/Register.tsx
16242
16364
  import { zodResolver as zodResolver5 } from "@hookform/resolvers/zod";
@@ -16251,14 +16373,14 @@ import { z as z5 } from "zod";
16251
16373
 
16252
16374
  // src/features/auth/components/GdprConsentSection.tsx
16253
16375
  import { useTranslations as useTranslations59 } from "next-intl";
16254
- 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";
16255
16377
  function GdprConsentSection({
16256
16378
  form,
16257
16379
  termsCheckboxId = "termsAccepted",
16258
16380
  marketingCheckboxId = "marketingConsent"
16259
16381
  }) {
16260
16382
  const t = useTranslations59("auth.gdpr");
16261
- const termsLabel = /* @__PURE__ */ jsxs101(Fragment28, { children: [
16383
+ const termsLabel = /* @__PURE__ */ jsxs101(Fragment29, { children: [
16262
16384
  t("terms_prefix"),
16263
16385
  " ",
16264
16386
  /* @__PURE__ */ jsx174(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("terms_of_service") }),
@@ -16283,7 +16405,7 @@ function GdprConsentSection({
16283
16405
  __name(GdprConsentSection, "GdprConsentSection");
16284
16406
 
16285
16407
  // src/features/auth/components/forms/Register.tsx
16286
- 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";
16287
16409
  var REFERRAL_COOKIE_NAME = "referral_code";
16288
16410
  function getReferralCode() {
16289
16411
  if (typeof document === "undefined") return null;
@@ -16401,7 +16523,7 @@ function Register() {
16401
16523
  }
16402
16524
  }, "onSubmit");
16403
16525
  if (registrationMode === "waitlist" && inviteCode && isValidatingInvite) {
16404
- return /* @__PURE__ */ jsxs102(Fragment29, { children: [
16526
+ return /* @__PURE__ */ jsxs102(Fragment30, { children: [
16405
16527
  /* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16406
16528
  /* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16407
16529
  t("waitlist.invite.validating_title")
@@ -16413,7 +16535,7 @@ function Register() {
16413
16535
  ] });
16414
16536
  }
16415
16537
  if (registrationMode === "waitlist" && inviteCode && inviteError) {
16416
- return /* @__PURE__ */ jsxs102(Fragment29, { children: [
16538
+ return /* @__PURE__ */ jsxs102(Fragment30, { children: [
16417
16539
  /* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16418
16540
  /* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16419
16541
  t("waitlist.invite.invalid_title")
@@ -16426,7 +16548,7 @@ function Register() {
16426
16548
  ] });
16427
16549
  }
16428
16550
  if (registrationMode === "waitlist" && !inviteCode) {
16429
- return /* @__PURE__ */ jsxs102(Fragment29, { children: [
16551
+ return /* @__PURE__ */ jsxs102(Fragment30, { children: [
16430
16552
  /* @__PURE__ */ jsx175(CardHeader, { children: /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16431
16553
  /* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16432
16554
  t("waitlist.invite.registration_title")
@@ -16439,13 +16561,13 @@ function Register() {
16439
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") }) })
16440
16562
  ] });
16441
16563
  }
16442
- return /* @__PURE__ */ jsxs102(Fragment29, { children: [
16564
+ return /* @__PURE__ */ jsxs102(Fragment30, { children: [
16443
16565
  /* @__PURE__ */ jsxs102(CardHeader, { children: [
16444
16566
  /* @__PURE__ */ jsxs102(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16445
16567
  /* @__PURE__ */ jsx175(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16446
16568
  t(`auth.buttons.register`)
16447
16569
  ] }),
16448
- /* @__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`) }) })
16449
16571
  ] }),
16450
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: [
16451
16573
  /* @__PURE__ */ jsxs102(CardContent, { children: [
@@ -16595,7 +16717,7 @@ var AuthContextProvider = /* @__PURE__ */ __name(({
16595
16717
  const [componentType, setComponentType] = useState60(initialComponentType);
16596
16718
  const [params, setParams] = useState60(initialParams);
16597
16719
  const [pendingTwoFactor, setPendingTwoFactor] = useState60();
16598
- const activeComponent = useMemo28(() => {
16720
+ const activeComponent = useMemo29(() => {
16599
16721
  if (componentType === void 0) return null;
16600
16722
  switch (componentType) {
16601
16723
  case 0 /* Login */:
@@ -16878,7 +17000,7 @@ __name(DisableTwoFactorDialog, "DisableTwoFactorDialog");
16878
17000
  import { Edit, Key, Trash2 } from "lucide-react";
16879
17001
  import { useTranslations as useTranslations63 } from "next-intl";
16880
17002
  import { useState as useState64 } from "react";
16881
- 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";
16882
17004
  function PasskeyList({ passkeys, onRefresh }) {
16883
17005
  const t = useTranslations63();
16884
17006
  const [renameDialogOpen, setRenameDialogOpen] = useState64(false);
@@ -16934,7 +17056,7 @@ function PasskeyList({ passkeys, onRefresh }) {
16934
17056
  if (passkeys.length === 0) {
16935
17057
  return /* @__PURE__ */ jsx181("p", { className: "text-sm text-muted-foreground text-center py-4", children: t("auth.two_factor.no_passkeys") });
16936
17058
  }
16937
- return /* @__PURE__ */ jsxs106(Fragment30, { children: [
17059
+ return /* @__PURE__ */ jsxs106(Fragment31, { children: [
16938
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: [
16939
17061
  /* @__PURE__ */ jsxs106("div", { className: "flex items-center gap-3", children: [
16940
17062
  /* @__PURE__ */ jsx181(Key, { className: "h-5 w-5 text-muted-foreground" }),
@@ -17251,7 +17373,7 @@ function TotpSetupDialog({ onSuccess, trigger }) {
17251
17373
  __name(TotpSetupDialog, "TotpSetupDialog");
17252
17374
 
17253
17375
  // src/features/auth/components/two-factor/TwoFactorSettings.tsx
17254
- 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";
17255
17377
  function TwoFactorSettings() {
17256
17378
  const t = useTranslations67();
17257
17379
  const [status, setStatus] = useState68(null);
@@ -17338,7 +17460,7 @@ function TwoFactorSettings() {
17338
17460
  ] }),
17339
17461
  /* @__PURE__ */ jsx185(BackupCodesDialog, { remainingCodes: status?.backupCodesCount ?? 0, onRegenerate: handleRefresh })
17340
17462
  ] }) }),
17341
- !isEnabled && (authenticators.length > 0 || passkeys.length > 0) && /* @__PURE__ */ jsxs110(Fragment31, { children: [
17463
+ !isEnabled && (authenticators.length > 0 || passkeys.length > 0) && /* @__PURE__ */ jsxs110(Fragment32, { children: [
17342
17464
  /* @__PURE__ */ jsx185(Separator, {}),
17343
17465
  /* @__PURE__ */ jsxs110("div", { className: "flex items-center justify-between", children: [
17344
17466
  /* @__PURE__ */ jsxs110("div", { children: [
@@ -17348,7 +17470,7 @@ function TwoFactorSettings() {
17348
17470
  /* @__PURE__ */ jsx185(Button, { onClick: handleEnable2FA, disabled: isEnabling, children: isEnabling ? t("common.loading") : t("auth.two_factor.enable_button") })
17349
17471
  ] })
17350
17472
  ] }),
17351
- isEnabled && /* @__PURE__ */ jsxs110(Fragment31, { children: [
17473
+ isEnabled && /* @__PURE__ */ jsxs110(Fragment32, { children: [
17352
17474
  /* @__PURE__ */ jsx185(Separator, {}),
17353
17475
  /* @__PURE__ */ jsxs110("div", { className: "flex items-center justify-between", children: [
17354
17476
  /* @__PURE__ */ jsxs110("div", { children: [
@@ -17430,11 +17552,11 @@ function GoogleSignInButton({ referralCode }) {
17430
17552
  __name(GoogleSignInButton, "GoogleSignInButton");
17431
17553
 
17432
17554
  // src/features/auth/components/details/LandingComponent.tsx
17433
- 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";
17434
17556
  function LandingComponent() {
17435
17557
  const t = useTranslations68();
17436
17558
  const { setComponentType } = useAuthContext();
17437
- return /* @__PURE__ */ jsxs112(Fragment32, { children: [
17559
+ return /* @__PURE__ */ jsxs112(Fragment33, { children: [
17438
17560
  /* @__PURE__ */ jsxs112(CardHeader, { className: "mb-4", "data-testid": "page-pre-login-container", children: [
17439
17561
  /* @__PURE__ */ jsxs112(CardTitle, { className: "text-primary flex flex-col items-center gap-y-8 pb-8 text-4xl", children: [
17440
17562
  /* @__PURE__ */ jsx188(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
@@ -17443,7 +17565,7 @@ function LandingComponent() {
17443
17565
  /* @__PURE__ */ jsx188(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
17444
17566
  ] }),
17445
17567
  /* @__PURE__ */ jsxs112(CardFooter, { className: "mt-4 flex w-full flex-col justify-between gap-y-4", children: [
17446
- isInternalAuthEnabled() && /* @__PURE__ */ jsxs112(Fragment32, { children: [
17568
+ isInternalAuthEnabled() && /* @__PURE__ */ jsxs112(Fragment33, { children: [
17447
17569
  isRegistrationAllowed() && /* @__PURE__ */ jsx188(
17448
17570
  Link,
17449
17571
  {
@@ -17469,7 +17591,7 @@ import Image10 from "next/image";
17469
17591
  import { useEffect as useEffect53, useState as useState69 } from "react";
17470
17592
  import { useForm as useForm6 } from "react-hook-form";
17471
17593
  import { z as z6 } from "zod";
17472
- 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";
17473
17595
  function AcceptInvitation() {
17474
17596
  const { setComponentType, params, setParams } = useAuthContext();
17475
17597
  const [showConfirmation, setShowConfirmation] = useState69(false);
@@ -17532,13 +17654,13 @@ function AcceptInvitation() {
17532
17654
  errorToast({ title: t(`common.errors.error`), error });
17533
17655
  }
17534
17656
  }, "onSubmit");
17535
- return /* @__PURE__ */ jsxs113(Fragment33, { children: [
17657
+ return /* @__PURE__ */ jsxs113(Fragment34, { children: [
17536
17658
  /* @__PURE__ */ jsxs113(CardHeader, { children: [
17537
17659
  /* @__PURE__ */ jsxs113(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
17538
17660
  /* @__PURE__ */ jsx189(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
17539
17661
  t("auth.accept_invitation")
17540
17662
  ] }),
17541
- /* @__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") }) })
17542
17664
  ] }),
17543
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: [
17544
17666
  /* @__PURE__ */ jsx189(
@@ -17569,7 +17691,7 @@ __name(AcceptInvitation, "AcceptInvitation");
17569
17691
  import { useTranslations as useTranslations70 } from "next-intl";
17570
17692
  import Image11 from "next/image";
17571
17693
  import { useEffect as useEffect54, useState as useState70 } from "react";
17572
- 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";
17573
17695
  function ActivateAccount() {
17574
17696
  const { setComponentType, params, setParams } = useAuthContext();
17575
17697
  const [showConfirmation, setShowConfirmation] = useState70(false);
@@ -17602,15 +17724,15 @@ function ActivateAccount() {
17602
17724
  setError(t(`auth.errors.invalid_invitation_code`));
17603
17725
  }
17604
17726
  }, []);
17605
- return /* @__PURE__ */ jsxs114(Fragment34, { children: [
17727
+ return /* @__PURE__ */ jsxs114(Fragment35, { children: [
17606
17728
  /* @__PURE__ */ jsxs114(CardHeader, { children: [
17607
17729
  /* @__PURE__ */ jsxs114(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
17608
17730
  /* @__PURE__ */ jsx190(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
17609
17731
  t("auth.accept_invitation")
17610
17732
  ] }),
17611
- /* @__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: " " }) })
17612
17734
  ] }),
17613
- /* @__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") }) }) })
17614
17736
  ] });
17615
17737
  }
17616
17738
  __name(ActivateAccount, "ActivateAccount");
@@ -17647,7 +17769,7 @@ import Image12 from "next/image";
17647
17769
  import { useState as useState72 } from "react";
17648
17770
  import { useForm as useForm7 } from "react-hook-form";
17649
17771
  import { z as z7 } from "zod";
17650
- 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";
17651
17773
  function ForgotPassword() {
17652
17774
  const t = useTranslations71();
17653
17775
  const { setComponentType } = useAuthContext();
@@ -17674,13 +17796,13 @@ function ForgotPassword() {
17674
17796
  errorToast({ error: e });
17675
17797
  }
17676
17798
  }, "onSubmit");
17677
- return /* @__PURE__ */ jsxs115(Fragment35, { children: [
17799
+ return /* @__PURE__ */ jsxs115(Fragment36, { children: [
17678
17800
  /* @__PURE__ */ jsxs115(CardHeader, { "data-testid": "page-forgot-password-container", children: [
17679
17801
  /* @__PURE__ */ jsxs115(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
17680
17802
  /* @__PURE__ */ jsx191(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
17681
17803
  t("auth.buttons.forgot_password")
17682
17804
  ] }),
17683
- /* @__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`) }) })
17684
17806
  ] }),
17685
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: [
17686
17808
  /* @__PURE__ */ jsxs115(CardContent, { children: [
@@ -17719,7 +17841,7 @@ import { useRouter, useSearchParams as useSearchParams3 } from "next/navigation"
17719
17841
  import { useEffect as useEffect56, useState as useState73 } from "react";
17720
17842
  import { useForm as useForm8 } from "react-hook-form";
17721
17843
  import { z as z8 } from "zod";
17722
- 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";
17723
17845
  function Login() {
17724
17846
  const t = useTranslations72();
17725
17847
  const { setUser } = useCurrentUserContext();
@@ -17785,7 +17907,7 @@ function Login() {
17785
17907
  });
17786
17908
  }
17787
17909
  }, "onSubmit");
17788
- return /* @__PURE__ */ jsxs116(Fragment36, { children: [
17910
+ return /* @__PURE__ */ jsxs116(Fragment37, { children: [
17789
17911
  /* @__PURE__ */ jsxs116(CardHeader, { "data-testid": "page-login-container", children: [
17790
17912
  /* @__PURE__ */ jsxs116(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
17791
17913
  /* @__PURE__ */ jsx192(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
@@ -17794,7 +17916,7 @@ function Login() {
17794
17916
  /* @__PURE__ */ jsx192(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
17795
17917
  ] }),
17796
17918
  /* @__PURE__ */ jsx192(Form, { ...form, children: /* @__PURE__ */ jsxs116("form", { onSubmit: form.handleSubmit(onSubmit), children: [
17797
- /* @__PURE__ */ jsx192(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs116(Fragment36, { children: [
17919
+ /* @__PURE__ */ jsx192(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs116(Fragment37, { children: [
17798
17920
  /* @__PURE__ */ jsx192(
17799
17921
  FormInput,
17800
17922
  {
@@ -17861,7 +17983,7 @@ function clearClientStorage(keys) {
17861
17983
  __name(clearClientStorage, "clearClientStorage");
17862
17984
 
17863
17985
  // src/features/auth/components/forms/Logout.tsx
17864
- import { Fragment as Fragment37, jsx as jsx193 } from "react/jsx-runtime";
17986
+ import { Fragment as Fragment38, jsx as jsx193 } from "react/jsx-runtime";
17865
17987
  function Logout({ storageKeys }) {
17866
17988
  const generateUrl = usePageUrlGenerator();
17867
17989
  useEffect57(() => {
@@ -17874,7 +17996,7 @@ function Logout({ storageKeys }) {
17874
17996
  }, "logOut");
17875
17997
  logOut();
17876
17998
  }, []);
17877
- return /* @__PURE__ */ jsx193(Fragment37, {});
17999
+ return /* @__PURE__ */ jsx193(Fragment38, {});
17878
18000
  }
17879
18001
  __name(Logout, "Logout");
17880
18002
 
@@ -17915,7 +18037,7 @@ import Image14 from "next/image";
17915
18037
  import { useEffect as useEffect59, useState as useState74 } from "react";
17916
18038
  import { useForm as useForm9 } from "react-hook-form";
17917
18039
  import { z as z9 } from "zod";
17918
- 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";
17919
18041
  function ResetPassword() {
17920
18042
  const { setComponentType, params, setParams } = useAuthContext();
17921
18043
  const [showConfirmation, setShowConfirmation] = useState74(false);
@@ -17978,13 +18100,13 @@ function ResetPassword() {
17978
18100
  errorToast({ title: t(`common.errors.error`), error });
17979
18101
  }
17980
18102
  }, "onSubmit");
17981
- return /* @__PURE__ */ jsxs117(Fragment38, { children: [
18103
+ return /* @__PURE__ */ jsxs117(Fragment39, { children: [
17982
18104
  /* @__PURE__ */ jsxs117(CardHeader, { children: [
17983
18105
  /* @__PURE__ */ jsxs117(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
17984
18106
  /* @__PURE__ */ jsx194(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
17985
18107
  t(`auth.password_reset`)
17986
18108
  ] }),
17987
- /* @__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`) }) })
17988
18110
  ] }),
17989
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: [
17990
18112
  /* @__PURE__ */ jsx194(FormPassword, { form, id: "password", name: "Password" }),
@@ -18044,7 +18166,7 @@ function PasskeyButton({ pendingToken, onSuccess, onError, disabled = false }) {
18044
18166
  __name(PasskeyButton, "PasskeyButton");
18045
18167
 
18046
18168
  // src/features/auth/components/forms/TwoFactorChallenge.tsx
18047
- 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";
18048
18170
  function TwoFactorChallenge() {
18049
18171
  const t = useTranslations75();
18050
18172
  const { setUser } = useCurrentUserContext();
@@ -18124,7 +18246,7 @@ function TwoFactorChallenge() {
18124
18246
  const hasTotp = availableMethods.includes("totp");
18125
18247
  const hasPasskey = availableMethods.includes("passkey");
18126
18248
  const hasBackup = availableMethods.includes("backup");
18127
- return /* @__PURE__ */ jsxs118(Fragment39, { children: [
18249
+ return /* @__PURE__ */ jsxs118(Fragment40, { children: [
18128
18250
  /* @__PURE__ */ jsxs118(CardHeader, { "data-testid": "page-2fa-challenge", children: [
18129
18251
  /* @__PURE__ */ jsx196(CardTitle, { className: "text-primary text-2xl", children: t("auth.two_factor.verification_required") }),
18130
18252
  /* @__PURE__ */ jsx196(CardDescription, { children: t("auth.two_factor.enter_verification_code") })
@@ -18260,12 +18382,12 @@ __name(RelevantContentsList, "RelevantContentsList");
18260
18382
  // src/features/how-to/components/containers/HowToCommand.tsx
18261
18383
  import { ArrowRight, LifeBuoyIcon } from "lucide-react";
18262
18384
  import { useTranslations as useTranslations80 } from "next-intl";
18263
- 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";
18264
18386
 
18265
18387
  // src/features/how-to/components/containers/HowToCommandViewer.tsx
18266
18388
  import { ArrowLeft, BookOpen, MessageSquare } from "lucide-react";
18267
18389
  import { useTranslations as useTranslations79 } from "next-intl";
18268
- import { useMemo as useMemo29 } from "react";
18390
+ import { useMemo as useMemo30 } from "react";
18269
18391
 
18270
18392
  // src/features/how-to/utils/blocknote.ts
18271
18393
  function extractTextFromContent(content) {
@@ -18337,8 +18459,8 @@ __name(extractHeadings, "extractHeadings");
18337
18459
  import { jsx as jsx200, jsxs as jsxs120 } from "react/jsx-runtime";
18338
18460
  function HowToCommandViewer({ howTo, onBack, onStartChat }) {
18339
18461
  const t = useTranslations79();
18340
- const readingTime = useMemo29(() => calculateReadingTime(howTo.description), [howTo.description]);
18341
- 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]);
18342
18464
  return /* @__PURE__ */ jsxs120("div", { className: "flex h-full flex-col", children: [
18343
18465
  /* @__PURE__ */ jsxs120("div", { className: "flex items-center gap-3 border-b px-4 py-3", children: [
18344
18466
  /* @__PURE__ */ jsxs120(Button, { variant: "ghost", size: "sm", onClick: onBack, className: "h-8 px-2", children: [
@@ -18373,7 +18495,7 @@ function HowToCommandViewer({ howTo, onBack, onStartChat }) {
18373
18495
  __name(HowToCommandViewer, "HowToCommandViewer");
18374
18496
 
18375
18497
  // src/features/how-to/components/containers/HowToCommand.tsx
18376
- 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";
18377
18499
  function matchPage(pathname, pattern) {
18378
18500
  if (pattern.includes(":")) {
18379
18501
  const pathSegments = pathname.split("/").filter(Boolean);
@@ -18397,7 +18519,7 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
18397
18519
  retrieverParams: {},
18398
18520
  module: Modules.HowTo
18399
18521
  });
18400
- const { relevantHowTos, otherHowTos } = useMemo30(() => {
18522
+ const { relevantHowTos, otherHowTos } = useMemo31(() => {
18401
18523
  if (!data.data) return { relevantHowTos: [], otherHowTos: [] };
18402
18524
  const relevant = [];
18403
18525
  const other = [];
@@ -18445,7 +18567,7 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
18445
18567
  setSelectedHowTo(null);
18446
18568
  if (onStartChat) onStartChat();
18447
18569
  }, "handleStartChat");
18448
- return /* @__PURE__ */ jsxs121(Fragment40, { children: [
18570
+ return /* @__PURE__ */ jsxs121(Fragment41, { children: [
18449
18571
  /* @__PURE__ */ jsxs121(
18450
18572
  SidebarMenuButton,
18451
18573
  {
@@ -18594,12 +18716,12 @@ import { useTranslations as useTranslations83 } from "next-intl";
18594
18716
 
18595
18717
  // src/features/how-to/hooks/useHowToTableStructure.tsx
18596
18718
  import { useTranslations as useTranslations82 } from "next-intl";
18597
- import { useMemo as useMemo31 } from "react";
18598
- 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";
18599
18721
  var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
18600
18722
  const t = useTranslations82();
18601
18723
  const generateUrl = usePageUrlGenerator();
18602
- const tableData = useMemo31(() => {
18724
+ const tableData = useMemo32(() => {
18603
18725
  return params.data.map((howTo) => {
18604
18726
  const entry = {
18605
18727
  jsonApiData: howTo
@@ -18632,7 +18754,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
18632
18754
  id: "description",
18633
18755
  accessorKey: "description",
18634
18756
  header: t(`howto.fields.description.label`),
18635
- 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"),
18636
18758
  enableSorting: false,
18637
18759
  enableHiding: false
18638
18760
  }),
@@ -18640,7 +18762,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
18640
18762
  id: "pages",
18641
18763
  accessorKey: "pages",
18642
18764
  header: t(`howto.fields.pages.label`),
18643
- 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"),
18644
18766
  enableSorting: false,
18645
18767
  enableHiding: false
18646
18768
  }),
@@ -18653,10 +18775,10 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
18653
18775
  title: t(`common.date.update`)
18654
18776
  })
18655
18777
  };
18656
- const columns = useMemo31(() => {
18778
+ const columns = useMemo32(() => {
18657
18779
  return params.fields.map((field) => fieldColumnMap[field]?.()).filter((col) => col !== void 0);
18658
18780
  }, [params.fields, fieldColumnMap, t, generateUrl]);
18659
- return useMemo31(() => ({ data: tableData, columns }), [tableData, columns]);
18781
+ return useMemo32(() => ({ data: tableData, columns }), [tableData, columns]);
18660
18782
  }, "useHowToTableStructure");
18661
18783
  registerTableGenerator("howtos", useHowToTableStructure);
18662
18784
 
@@ -18699,7 +18821,7 @@ __name(HowToListContainer, "HowToListContainer");
18699
18821
  import { CircleX as CircleX2, RefreshCwIcon as RefreshCwIcon3, SearchIcon as SearchIcon6, XIcon as XIcon10 } from "lucide-react";
18700
18822
  import { useTranslations as useTranslations84 } from "next-intl";
18701
18823
  import { useCallback as useCallback38, useEffect as useEffect61, useRef as useRef33, useState as useState78 } from "react";
18702
- 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";
18703
18825
  function HowToSelector({
18704
18826
  id,
18705
18827
  form,
@@ -18784,7 +18906,7 @@ function HowToSelector({
18784
18906
  search("");
18785
18907
  }
18786
18908
  }
18787
- ) : /* @__PURE__ */ jsx208(Fragment42, {})
18909
+ ) : /* @__PURE__ */ jsx208(Fragment43, {})
18788
18910
  ] }),
18789
18911
  /* @__PURE__ */ jsx208(CommandList, { children: data.data && data.data.length > 0 && data.data.map((howTo) => /* @__PURE__ */ jsx208(
18790
18912
  CommandItem,
@@ -18825,7 +18947,7 @@ function groupThreadsByBucket(threads) {
18825
18947
  __name(groupThreadsByBucket, "groupThreadsByBucket");
18826
18948
 
18827
18949
  // src/features/assistant/components/parts/AssistantSidebar.tsx
18828
- 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";
18829
18951
  function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
18830
18952
  const t = useTranslations85();
18831
18953
  const groups = groupThreadsByBucket(threads);
@@ -18851,7 +18973,7 @@ function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
18851
18973
  " ",
18852
18974
  t("features.assistant.new")
18853
18975
  ] }) }),
18854
- /* @__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: [
18855
18977
  renderSection(t("features.assistant.bucket_today"), groups.today),
18856
18978
  renderSection(t("features.assistant.bucket_week"), groups.thisWeek),
18857
18979
  renderSection(t("features.assistant.bucket_earlier"), groups.earlier)
@@ -19025,10 +19147,10 @@ import ReactMarkdown3 from "react-markdown";
19025
19147
  import remarkGfm3 from "remark-gfm";
19026
19148
 
19027
19149
  // src/features/assistant-message/components/parts/MessageSourcesContainer.tsx
19028
- 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";
19029
19151
 
19030
19152
  // src/features/assistant-message/components/parts/MessageSourcesPanel.tsx
19031
- import { useMemo as useMemo32, useState as useState83 } from "react";
19153
+ import { useMemo as useMemo33, useState as useState83 } from "react";
19032
19154
  import { useTranslations as useTranslations93 } from "next-intl";
19033
19155
  import { ChevronDown as ChevronDown4, ChevronRight as ChevronRight2 } from "lucide-react";
19034
19156
 
@@ -19065,7 +19187,7 @@ function ReferencesTab({ references }) {
19065
19187
  __name(ReferencesTab, "ReferencesTab");
19066
19188
 
19067
19189
  // src/features/assistant-message/components/parts/tabs/CitationsTab.tsx
19068
- import { Fragment as Fragment44, useState as useState82 } from "react";
19190
+ import { Fragment as Fragment45, useState as useState82 } from "react";
19069
19191
  import { useTranslations as useTranslations90 } from "next-intl";
19070
19192
  import { ChevronDown as ChevronDown3, HelpCircle } from "lucide-react";
19071
19193
  import ReactMarkdown2 from "react-markdown";
@@ -19125,7 +19247,7 @@ function CitationsTab({ citations, sources }) {
19125
19247
  const resolved = chunk.nodeId ? sources?.get(chunk.nodeId) : void 0;
19126
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");
19127
19249
  const sourceName = resolved?.name ?? fallbackName;
19128
- return /* @__PURE__ */ jsxs130(Fragment44, { children: [
19250
+ return /* @__PURE__ */ jsxs130(Fragment45, { children: [
19129
19251
  /* @__PURE__ */ jsxs130(TableRow, { children: [
19130
19252
  /* @__PURE__ */ jsx215(TableCell, { children: /* @__PURE__ */ jsxs130(
19131
19253
  "div",
@@ -19321,7 +19443,7 @@ __name(SuggestedQuestionsTab, "SuggestedQuestionsTab");
19321
19443
  import { jsx as jsx219, jsxs as jsxs133 } from "react/jsx-runtime";
19322
19444
  function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sources, users }) {
19323
19445
  const t = useTranslations93();
19324
- const visibleReferences = useMemo32(
19446
+ const visibleReferences = useMemo33(
19325
19447
  () => message.references.filter((ref) => {
19326
19448
  try {
19327
19449
  return !!ModuleRegistry.findByName(ref.type).pageUrl;
@@ -19334,7 +19456,7 @@ function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sou
19334
19456
  const refsCount = visibleReferences.length;
19335
19457
  const citationsCount = message.citations.length;
19336
19458
  const suggestionsCount = isLatestAssistant ? message.suggestedQuestions.length : 0;
19337
- const contentsCount = useMemo32(() => {
19459
+ const contentsCount = useMemo33(() => {
19338
19460
  const ids = /* @__PURE__ */ new Set();
19339
19461
  for (const c of message.citations) {
19340
19462
  if (!c.nodeId) continue;
@@ -19413,7 +19535,7 @@ var SourcesFetcher = class extends ClientAbstractService {
19413
19535
  }
19414
19536
  };
19415
19537
  function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp }) {
19416
- const groups = useMemo33(() => {
19538
+ const groups = useMemo34(() => {
19417
19539
  const map = /* @__PURE__ */ new Map();
19418
19540
  for (const chunk of message.citations) {
19419
19541
  if (!chunk.nodeType || !chunk.nodeId) continue;
@@ -19426,7 +19548,7 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
19426
19548
  }
19427
19549
  return map;
19428
19550
  }, [message.citations]);
19429
- const groupsKey = useMemo33(() => {
19551
+ const groupsKey = useMemo34(() => {
19430
19552
  const parts = [];
19431
19553
  for (const [nodeType, ids] of groups) {
19432
19554
  parts.push(`${nodeType}:${Array.from(ids).sort().join(",")}`);
@@ -19468,12 +19590,12 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
19468
19590
  cancelled = true;
19469
19591
  };
19470
19592
  }, [groupsKey, groups]);
19471
- const sources = useMemo33(() => {
19593
+ const sources = useMemo34(() => {
19472
19594
  const map = /* @__PURE__ */ new Map();
19473
19595
  for (const entity of resolved) map.set(entity.id, entity);
19474
19596
  return map;
19475
19597
  }, [resolved]);
19476
- const users = useMemo33(() => {
19598
+ const users = useMemo34(() => {
19477
19599
  const userMap = /* @__PURE__ */ new Map();
19478
19600
  for (const entity of resolved) {
19479
19601
  const author = entity._author ?? (() => {
@@ -19615,7 +19737,7 @@ function AssistantThread({
19615
19737
  __name(AssistantThread, "AssistantThread");
19616
19738
 
19617
19739
  // src/features/assistant/components/containers/AssistantContainer.tsx
19618
- 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";
19619
19741
  function AssistantContainer({ renderApprovalAction } = {}) {
19620
19742
  const ctx = useAssistantContext();
19621
19743
  const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
@@ -19636,7 +19758,7 @@ function AssistantContainer({ renderApprovalAction } = {}) {
19636
19758
  operatorMode: ctx.operatorMode,
19637
19759
  onOperatorModeChange: ctx.setOperatorMode
19638
19760
  }
19639
- ) : /* @__PURE__ */ jsxs137(Fragment45, { children: [
19761
+ ) : /* @__PURE__ */ jsxs137(Fragment46, { children: [
19640
19762
  ctx.assistant ? /* @__PURE__ */ jsx225(
19641
19763
  AssistantThreadHeader,
19642
19764
  {
@@ -19704,7 +19826,7 @@ import { useTranslations as useTranslations97 } from "next-intl";
19704
19826
  // src/features/notification/components/lists/NotificationsList.tsx
19705
19827
  import { ArchiveIcon } from "lucide-react";
19706
19828
  import { useTranslations as useTranslations96 } from "next-intl";
19707
- 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";
19708
19830
  function NotificationsList({ archived }) {
19709
19831
  const t = useTranslations96();
19710
19832
  const generateUrl = usePageUrlGenerator();
@@ -19738,7 +19860,7 @@ function NotificationsList({ archived }) {
19738
19860
  /* @__PURE__ */ jsx227("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
19739
19861
  ] }),
19740
19862
  /* @__PURE__ */ jsxs139("div", { className: "flex flex-row items-center", children: [
19741
- 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, {}),
19742
19864
  !archived && /* @__PURE__ */ jsxs139(Tooltip2, { children: [
19743
19865
  /* @__PURE__ */ jsx227(TooltipTrigger, { children: /* @__PURE__ */ jsx227(
19744
19866
  Button,
@@ -19796,7 +19918,7 @@ __name(NotificationsListContainer, "NotificationsListContainer");
19796
19918
  // src/features/notification/components/modals/NotificationModal.tsx
19797
19919
  import { BellIcon } from "lucide-react";
19798
19920
  import { useTranslations as useTranslations98 } from "next-intl";
19799
- 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";
19800
19922
  import { jsx as jsx229, jsxs as jsxs141 } from "react/jsx-runtime";
19801
19923
  function NotificationModalContent({ isOpen, setIsOpen }) {
19802
19924
  const _instanceId = useRef35(Math.random().toString(36).substr(2, 9));
@@ -19840,7 +19962,7 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
19840
19962
  }
19841
19963
  return !breaker.isOpen;
19842
19964
  }, []);
19843
- const { unreadCount, unreadIds } = useMemo34(() => {
19965
+ const { unreadCount, unreadIds } = useMemo35(() => {
19844
19966
  const unreadNotifications2 = notifications.filter((notif) => !notif.isRead);
19845
19967
  return {
19846
19968
  unreadCount: unreadNotifications2.length,
@@ -19947,7 +20069,7 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
19947
20069
  ] })
19948
20070
  ] }),
19949
20071
  /* @__PURE__ */ jsx229(Separator, {}),
19950
- /* @__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`) }) })
19951
20073
  ] }) })
19952
20074
  ] });
19953
20075
  }
@@ -19958,10 +20080,10 @@ function NotificationModal(props) {
19958
20080
  __name(NotificationModal, "NotificationModal");
19959
20081
 
19960
20082
  // src/features/notification/components/notifications/PushNotificationProvider.tsx
19961
- import { Fragment as Fragment48, jsx as jsx230 } from "react/jsx-runtime";
20083
+ import { Fragment as Fragment49, jsx as jsx230 } from "react/jsx-runtime";
19962
20084
  function PushNotificationProvider({ children }) {
19963
20085
  usePushNotifications();
19964
- return /* @__PURE__ */ jsx230(Fragment48, { children });
20086
+ return /* @__PURE__ */ jsx230(Fragment49, { children });
19965
20087
  }
19966
20088
  __name(PushNotificationProvider, "PushNotificationProvider");
19967
20089
 
@@ -20281,11 +20403,11 @@ function RoleDetails() {
20281
20403
  __name(RoleDetails, "RoleDetails");
20282
20404
 
20283
20405
  // src/features/role/components/containers/RoleContainer.tsx
20284
- 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";
20285
20407
  function RoleContainer() {
20286
20408
  const { role } = useRoleContext();
20287
20409
  if (!role) return null;
20288
- return /* @__PURE__ */ jsxs144(Fragment49, { children: [
20410
+ return /* @__PURE__ */ jsxs144(Fragment50, { children: [
20289
20411
  /* @__PURE__ */ jsx234(RoleDetails, {}),
20290
20412
  /* @__PURE__ */ jsx234(RoleUsersList, { role })
20291
20413
  ] });
@@ -20330,7 +20452,7 @@ __name(FormRoles, "FormRoles");
20330
20452
  // src/features/role/components/forms/RemoveUserFromRole.tsx
20331
20453
  import { useTranslations as useTranslations101 } from "next-intl";
20332
20454
  import { useEffect as useEffect67, useState as useState89 } from "react";
20333
- 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";
20334
20456
  function RemoveUserFromRole({ role, user, refresh }) {
20335
20457
  const [open, setOpen] = useState89(false);
20336
20458
  const [canRemove, setCanRemove] = useState89(false);
@@ -20379,7 +20501,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
20379
20501
  /* @__PURE__ */ jsx236(DialogTitle, { children: t(`role.remove_user.title`) }),
20380
20502
  /* @__PURE__ */ jsx236(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
20381
20503
  ] }),
20382
- canRemove ? /* @__PURE__ */ jsxs146(Fragment50, { children: [
20504
+ canRemove ? /* @__PURE__ */ jsxs146(Fragment51, { children: [
20383
20505
  t(`role.remove_user.description_allowed`, { role: roleName, user: user.name }),
20384
20506
  /* @__PURE__ */ jsxs146("div", { className: "flex justify-end", children: [
20385
20507
  /* @__PURE__ */ jsx236(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
@@ -20396,7 +20518,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
20396
20518
  }
20397
20519
  )
20398
20520
  ] })
20399
- ] }) : /* @__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 }) })
20400
20522
  ] })
20401
20523
  ] });
20402
20524
  }
@@ -20406,7 +20528,7 @@ __name(RemoveUserFromRole, "RemoveUserFromRole");
20406
20528
  import { PlusCircle as PlusCircle2 } from "lucide-react";
20407
20529
  import { useTranslations as useTranslations102 } from "next-intl";
20408
20530
  import { useCallback as useCallback41, useEffect as useEffect68, useRef as useRef37, useState as useState90 } from "react";
20409
- 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";
20410
20532
  function UserRoleAdd({ user, refresh }) {
20411
20533
  const [open, setOpen] = useState90(false);
20412
20534
  const inputRef = useRef37(null);
@@ -20453,7 +20575,7 @@ function UserRoleAdd({ user, refresh }) {
20453
20575
  useEffect68(() => {
20454
20576
  if (open) searchRoles("");
20455
20577
  }, [open]);
20456
- return /* @__PURE__ */ jsxs147(Fragment51, { children: [
20578
+ return /* @__PURE__ */ jsxs147(Fragment52, { children: [
20457
20579
  /* @__PURE__ */ jsxs147(Button, { size: "sm", onClick: () => setOpen(true), children: [
20458
20580
  /* @__PURE__ */ jsx237(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
20459
20581
  t(`common.association.label`, {
@@ -21051,7 +21173,7 @@ __name(OAuthClientForm, "OAuthClientForm");
21051
21173
  import { useState as useState93, useCallback as useCallback46 } from "react";
21052
21174
  import { format as format2 } from "date-fns";
21053
21175
  import { Copy as Copy4, Check as Check2, RefreshCw as RefreshCw3, Pencil as Pencil2, Trash2 as Trash25, ExternalLink } from "lucide-react";
21054
- 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";
21055
21177
  function OAuthClientDetail({
21056
21178
  client,
21057
21179
  isLoading = false,
@@ -21094,7 +21216,7 @@ function OAuthClientDetail({
21094
21216
  }
21095
21217
  }, [onRegenerateSecret]);
21096
21218
  const createdDate = client.createdAt ? format2(new Date(client.createdAt), "MMMM d, yyyy") : "Unknown";
21097
- return /* @__PURE__ */ jsxs154(Fragment52, { children: [
21219
+ return /* @__PURE__ */ jsxs154(Fragment53, { children: [
21098
21220
  /* @__PURE__ */ jsxs154(Card, { children: [
21099
21221
  /* @__PURE__ */ jsx246(CardHeader, { children: /* @__PURE__ */ jsxs154("div", { className: "flex items-start justify-between", children: [
21100
21222
  /* @__PURE__ */ jsxs154("div", { children: [
@@ -21430,7 +21552,7 @@ function WaitlistQuestionnaireRenderer({
21430
21552
  __name(WaitlistQuestionnaireRenderer, "WaitlistQuestionnaireRenderer");
21431
21553
 
21432
21554
  // src/features/waitlist/components/forms/WaitlistForm.tsx
21433
- 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";
21434
21556
  function WaitlistForm({ onSuccess }) {
21435
21557
  const t = useTranslations105();
21436
21558
  const [isSubmitting, setIsSubmitting] = useState94(false);
@@ -21549,7 +21671,7 @@ function WaitlistForm({ onSuccess }) {
21549
21671
  {
21550
21672
  form,
21551
21673
  id: "gdprConsent",
21552
- label: /* @__PURE__ */ jsxs160(Fragment53, { children: [
21674
+ label: /* @__PURE__ */ jsxs160(Fragment54, { children: [
21553
21675
  t("auth.gdpr.terms_prefix"),
21554
21676
  /* @__PURE__ */ jsx252(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.terms_of_service") }),
21555
21677
  t("auth.gdpr.and"),
@@ -21829,7 +21951,7 @@ __name(WaitlistList, "WaitlistList");
21829
21951
  // src/features/rbac/components/RbacContainer.tsx
21830
21952
  import { Loader2Icon as Loader2Icon4 } from "lucide-react";
21831
21953
  import { useTranslations as useTranslations111 } from "next-intl";
21832
- 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";
21833
21955
 
21834
21956
  // src/features/rbac/components/RbacPermissionCell.tsx
21835
21957
  import { CheckIcon as CheckIcon9, MinusIcon as MinusIcon2, XIcon as XIcon11 } from "lucide-react";
@@ -21911,7 +22033,7 @@ import { Popover as PopoverPrimitive2 } from "@base-ui/react/popover";
21911
22033
  import { CheckIcon as CheckIcon10, MinusIcon as MinusIcon3, XIcon as XIcon12 } from "lucide-react";
21912
22034
  import { useTranslations as useTranslations110 } from "next-intl";
21913
22035
  import { useCallback as useCallback48, useEffect as useEffect71, useState as useState97 } from "react";
21914
- 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";
21915
22037
  function RbacPermissionPicker({
21916
22038
  open,
21917
22039
  anchor,
@@ -21997,7 +22119,7 @@ function RbacPermissionPicker({
21997
22119
  )
21998
22120
  ] })
21999
22121
  ] }),
22000
- isRoleColumn && onClear && /* @__PURE__ */ jsxs167(Fragment54, { children: [
22122
+ isRoleColumn && onClear && /* @__PURE__ */ jsxs167(Fragment55, { children: [
22001
22123
  /* @__PURE__ */ jsx259(Separator, {}),
22002
22124
  /* @__PURE__ */ jsxs167(
22003
22125
  Button,
@@ -22184,11 +22306,11 @@ function RbacContainer() {
22184
22306
  setSelectedModuleId(id);
22185
22307
  setActivePicker(null);
22186
22308
  }, []);
22187
- const sortedModuleIds = useMemo35(() => {
22309
+ const sortedModuleIds = useMemo36(() => {
22188
22310
  if (!matrix) return [];
22189
22311
  return Object.keys(matrix).sort((a, b) => (moduleNames?.[a] ?? a).localeCompare(moduleNames?.[b] ?? b));
22190
22312
  }, [matrix, moduleNames]);
22191
- const roleIds = useMemo35(() => {
22313
+ const roleIds = useMemo36(() => {
22192
22314
  if (roleNames) {
22193
22315
  return Object.keys(roleNames).sort((a, b) => (roleNames[a] ?? a).localeCompare(roleNames[b] ?? b));
22194
22316
  }
@@ -22206,14 +22328,14 @@ function RbacContainer() {
22206
22328
  setSelectedModuleId(sortedModuleIds[0]);
22207
22329
  }
22208
22330
  }, [selectedModuleId, sortedModuleIds]);
22209
- const activeValue = useMemo35(() => {
22331
+ const activeValue = useMemo36(() => {
22210
22332
  if (!activePicker || !matrix) return void 0;
22211
22333
  const block = matrix[activePicker.moduleId];
22212
22334
  if (!block) return void 0;
22213
22335
  const tokens = activePicker.rowKey === "default" ? block.default : block[activePicker.rowKey];
22214
22336
  return cellValue(tokens, activePicker.action);
22215
22337
  }, [activePicker, matrix]);
22216
- const activeSegments = useMemo35(() => {
22338
+ const activeSegments = useMemo36(() => {
22217
22339
  if (!activePicker) return [];
22218
22340
  return modulePaths[activePicker.moduleId] ?? [];
22219
22341
  }, [activePicker, modulePaths]);
@@ -22284,7 +22406,7 @@ __name(RbacContainer, "RbacContainer");
22284
22406
  // src/features/rbac/components/RbacByRoleContainer.tsx
22285
22407
  import { Loader2Icon as Loader2Icon5 } from "lucide-react";
22286
22408
  import { useTranslations as useTranslations112 } from "next-intl";
22287
- 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";
22288
22410
  import { jsx as jsx261, jsxs as jsxs169 } from "react/jsx-runtime";
22289
22411
  function findToken2(tokens, action) {
22290
22412
  if (!tokens) return void 0;
@@ -22334,11 +22456,11 @@ function RbacByRoleContainer() {
22334
22456
  setSelectedRoleId(id);
22335
22457
  setActivePicker(null);
22336
22458
  }, []);
22337
- const sortedRoleIds = useMemo36(() => {
22459
+ const sortedRoleIds = useMemo37(() => {
22338
22460
  if (!roleNames) return [];
22339
22461
  return Object.keys(roleNames).sort((a, b) => (roleNames[a] ?? a).localeCompare(roleNames[b] ?? b));
22340
22462
  }, [roleNames]);
22341
- const sortedModuleIds = useMemo36(() => {
22463
+ const sortedModuleIds = useMemo37(() => {
22342
22464
  if (!matrix) return [];
22343
22465
  return Object.keys(matrix).sort((a, b) => (moduleNames?.[a] ?? a).localeCompare(moduleNames?.[b] ?? b));
22344
22466
  }, [matrix, moduleNames]);
@@ -22347,14 +22469,14 @@ function RbacByRoleContainer() {
22347
22469
  setSelectedRoleId(sortedRoleIds[0]);
22348
22470
  }
22349
22471
  }, [selectedRoleId, sortedRoleIds]);
22350
- const activeValue = useMemo36(() => {
22472
+ const activeValue = useMemo37(() => {
22351
22473
  if (!activePicker || !matrix) return void 0;
22352
22474
  const block = matrix[activePicker.moduleId];
22353
22475
  if (!block) return void 0;
22354
22476
  const tokens = activePicker.rowKey === "default" ? block.default : block[activePicker.rowKey];
22355
22477
  return cellValue2(tokens, activePicker.action);
22356
22478
  }, [activePicker, matrix]);
22357
- const activeSegments = useMemo36(() => {
22479
+ const activeSegments = useMemo37(() => {
22358
22480
  if (!activePicker) return [];
22359
22481
  return modulePaths[activePicker.moduleId] ?? [];
22360
22482
  }, [activePicker, modulePaths]);
@@ -22410,7 +22532,7 @@ function RbacByRoleContainer() {
22410
22532
  const defaultTokens = block.default ?? [];
22411
22533
  const roleTokens = block[selectedRoleId];
22412
22534
  const moduleLabel = moduleNames?.[moduleId] ?? moduleId;
22413
- return /* @__PURE__ */ jsxs169(Fragment55, { children: [
22535
+ return /* @__PURE__ */ jsxs169(Fragment56, { children: [
22414
22536
  /* @__PURE__ */ jsx261("tr", { className: "border-b bg-muted/40", children: /* @__PURE__ */ jsx261(
22415
22537
  "td",
22416
22538
  {
@@ -22770,6 +22892,7 @@ export {
22770
22892
  recentPagesAtom,
22771
22893
  RecentPagesNavigator,
22772
22894
  PageContainer,
22895
+ partitionTabs,
22773
22896
  ReactMarkdownContainer,
22774
22897
  RoundPageContainerTitle,
22775
22898
  RoundPageContainer,
@@ -22984,4 +23107,4 @@ export {
22984
23107
  useOAuthClients,
22985
23108
  useOAuthClient
22986
23109
  };
22987
- //# sourceMappingURL=chunk-6D4GJHLK.mjs.map
23110
+ //# sourceMappingURL=chunk-KXHEOLPZ.mjs.map