@carlonicora/nextjs-jsonapi 1.89.1 → 1.90.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.
@@ -9211,7 +9211,7 @@ __name(FormCheckbox, "FormCheckbox");
9211
9211
  import dynamic from "next/dynamic";
9212
9212
  import React14 from "react";
9213
9213
  import { jsx as jsx73 } from "react/jsx-runtime";
9214
- var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-7XTFKIVT.mjs"), {
9214
+ var BlockNoteEditor = dynamic(() => import("./BlockNoteEditor-2DELE7RC.mjs"), {
9215
9215
  ssr: false
9216
9216
  });
9217
9217
  var BlockNoteEditorContainer = React14.memo(/* @__PURE__ */ __name(function EditorContainer(props) {
@@ -9425,7 +9425,8 @@ function FormDateTime({
9425
9425
  month: "long",
9426
9426
  day: "numeric",
9427
9427
  hour: "2-digit",
9428
- minute: "2-digit"
9428
+ minute: "2-digit",
9429
+ hour12: false
9429
9430
  }),
9430
9431
  [locale]
9431
9432
  );
@@ -13861,14 +13862,31 @@ var cellDate = /* @__PURE__ */ __name((params) => {
13861
13862
  };
13862
13863
  }, "cellDate");
13863
13864
 
13864
- // src/components/tables/cells/cell.id.tsx
13865
+ // src/components/tables/cells/cell.dateTime.tsx
13865
13866
  import { jsx as jsx156 } from "react/jsx-runtime";
13867
+ var cellDateTime = /* @__PURE__ */ __name((params) => {
13868
+ return {
13869
+ id: params.name,
13870
+ accessorKey: params.name,
13871
+ header: params.title,
13872
+ cell: /* @__PURE__ */ __name(({ row }) => {
13873
+ const date = row.getValue(params.name);
13874
+ if (!date) return null;
13875
+ return /* @__PURE__ */ jsx156("span", { className: "text-muted-foreground text-xs", children: date.toLocaleString("en", { dateStyle: "medium", timeStyle: "short", hour12: false }) });
13876
+ }, "cell"),
13877
+ enableSorting: false,
13878
+ enableHiding: false
13879
+ };
13880
+ }, "cellDateTime");
13881
+
13882
+ // src/components/tables/cells/cell.id.tsx
13883
+ import { jsx as jsx157 } from "react/jsx-runtime";
13866
13884
  var cellId = /* @__PURE__ */ __name((params) => {
13867
13885
  return {
13868
13886
  id: params.name,
13869
13887
  accessorKey: params.name,
13870
13888
  header: "",
13871
- cell: /* @__PURE__ */ __name(({ row }) => params.toggleId ? /* @__PURE__ */ jsx156(
13889
+ cell: /* @__PURE__ */ __name(({ row }) => params.toggleId ? /* @__PURE__ */ jsx157(
13872
13890
  Checkbox,
13873
13891
  {
13874
13892
  checked: params.checkedIds?.includes(row.getValue(params.name)) || false,
@@ -13885,26 +13903,26 @@ var cellId = /* @__PURE__ */ __name((params) => {
13885
13903
  }, "cellId");
13886
13904
 
13887
13905
  // src/components/tables/cells/cell.link.tsx
13888
- import { jsx as jsx157 } from "react/jsx-runtime";
13906
+ import { jsx as jsx158 } from "react/jsx-runtime";
13889
13907
  var cellLink = /* @__PURE__ */ __name((params) => {
13890
13908
  return {
13891
13909
  id: params.name,
13892
13910
  accessorKey: params.name,
13893
13911
  header: params.title,
13894
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx157(Link, { href: params.generateUrl(row.getValue(params.id)), children: row.getValue(params.name) }), "cell"),
13912
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx158(Link, { href: params.generateUrl(row.getValue(params.id)), children: row.getValue(params.name) }), "cell"),
13895
13913
  enableSorting: false,
13896
13914
  enableHiding: false
13897
13915
  };
13898
13916
  }, "cellLink");
13899
13917
 
13900
13918
  // src/components/tables/cells/cell.url.tsx
13901
- import { jsx as jsx158 } from "react/jsx-runtime";
13919
+ import { jsx as jsx159 } from "react/jsx-runtime";
13902
13920
  var cellUrl = /* @__PURE__ */ __name((params) => {
13903
13921
  return {
13904
13922
  id: params.name,
13905
13923
  accessorKey: params.name,
13906
13924
  header: params.title,
13907
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx158(Link, { href: row.getValue(params.name), children: row.getValue(params.name) }), "cell"),
13925
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx159(Link, { href: row.getValue(params.name), children: row.getValue(params.name) }), "cell"),
13908
13926
  enableSorting: false,
13909
13927
  enableHiding: false
13910
13928
  };
@@ -13912,7 +13930,7 @@ var cellUrl = /* @__PURE__ */ __name((params) => {
13912
13930
 
13913
13931
  // src/client/context/JsonApiProvider.tsx
13914
13932
  import { useEffect as useEffect42, useMemo as useMemo19 } from "react";
13915
- import { jsx as jsx159 } from "react/jsx-runtime";
13933
+ import { jsx as jsx160 } from "react/jsx-runtime";
13916
13934
  function JsonApiProvider({ config, children }) {
13917
13935
  useEffect42(() => {
13918
13936
  if (config.bootstrapper) {
@@ -13920,7 +13938,7 @@ function JsonApiProvider({ config, children }) {
13920
13938
  }
13921
13939
  }, [config.bootstrapper]);
13922
13940
  const memoizedConfig = useMemo19(() => config, [config]);
13923
- return /* @__PURE__ */ jsx159(JsonApiContext.Provider, { value: memoizedConfig, children });
13941
+ return /* @__PURE__ */ jsx160(JsonApiContext.Provider, { value: memoizedConfig, children });
13924
13942
  }
13925
13943
  __name(JsonApiProvider, "JsonApiProvider");
13926
13944
 
@@ -14144,7 +14162,7 @@ __name(useRehydrationList, "useRehydrationList");
14144
14162
  // src/features/company/hooks/useCompanyTableStructure.tsx
14145
14163
  import { useTranslations as useTranslations52 } from "next-intl";
14146
14164
  import { useMemo as useMemo21 } from "react";
14147
- import { jsx as jsx160 } from "react/jsx-runtime";
14165
+ import { jsx as jsx161 } from "react/jsx-runtime";
14148
14166
  var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
14149
14167
  const t = useTranslations52();
14150
14168
  const generateUrl = usePageUrlGenerator();
@@ -14173,7 +14191,7 @@ var useCompanyTableStructure = /* @__PURE__ */ __name((params) => {
14173
14191
  header: t(`user.fields.name.label`),
14174
14192
  cell: /* @__PURE__ */ __name(({ row }) => {
14175
14193
  const company = row.original.jsonApiData;
14176
- return /* @__PURE__ */ jsx160(
14194
+ return /* @__PURE__ */ jsx161(
14177
14195
  Link,
14178
14196
  {
14179
14197
  href: hasRole(getRoleId().Administrator) ? generateUrl({
@@ -14276,7 +14294,7 @@ __name(useSubscriptionStatus, "useSubscriptionStatus");
14276
14294
  // src/features/role/hooks/useRoleTableStructure.tsx
14277
14295
  import { useTranslations as useTranslations53 } from "next-intl";
14278
14296
  import { useMemo as useMemo23 } from "react";
14279
- import { Fragment as Fragment24, jsx as jsx161 } from "react/jsx-runtime";
14297
+ import { Fragment as Fragment24, jsx as jsx162 } from "react/jsx-runtime";
14280
14298
  var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
14281
14299
  const t = useTranslations53();
14282
14300
  const generateUrl = usePageUrlGenerator();
@@ -14304,7 +14322,7 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
14304
14322
  header: t(`role.fields.name.label`),
14305
14323
  cell: /* @__PURE__ */ __name(({ row }) => {
14306
14324
  const role = row.original.jsonApiData;
14307
- return /* @__PURE__ */ jsx161(Link, { href: generateUrl({ page: Modules.Role, id: role.id }), children: row.getValue("name") });
14325
+ return /* @__PURE__ */ jsx162(Link, { href: generateUrl({ page: Modules.Role, id: role.id }), children: row.getValue("name") });
14308
14326
  }, "cell"),
14309
14327
  enableSorting: false,
14310
14328
  enableHiding: false
@@ -14313,7 +14331,7 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
14313
14331
  id: "description",
14314
14332
  accessorKey: "description",
14315
14333
  header: t(`role.fields.description.label`),
14316
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx161(Fragment24, { children: row.getValue("description") }), "cell"),
14334
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx162(Fragment24, { children: row.getValue("description") }), "cell"),
14317
14335
  enableSorting: false,
14318
14336
  enableHiding: false
14319
14337
  }),
@@ -14331,7 +14349,7 @@ var useRoleTableStructure = /* @__PURE__ */ __name((params) => {
14331
14349
  // src/features/content/hooks/useContentTableStructure.tsx
14332
14350
  import { useTranslations as useTranslations54 } from "next-intl";
14333
14351
  import { useMemo as useMemo24 } from "react";
14334
- import { Fragment as Fragment25, jsx as jsx162, jsxs as jsxs93 } from "react/jsx-runtime";
14352
+ import { Fragment as Fragment25, jsx as jsx163, jsxs as jsxs93 } from "react/jsx-runtime";
14335
14353
  var useContentTableStructure = /* @__PURE__ */ __name((params) => {
14336
14354
  const t = useTranslations54();
14337
14355
  const generateUrl = usePageUrlGenerator();
@@ -14362,11 +14380,11 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
14362
14380
  const contentModule = content.contentType ? Modules.findByModelName(content.contentType) : void 0;
14363
14381
  const link = contentModule ? generateUrl({ page: contentModule, id: content.id }) : "#";
14364
14382
  return /* @__PURE__ */ jsxs93(Tooltip2, { children: [
14365
- /* @__PURE__ */ jsx162(TooltipTrigger, { className: "flex items-center justify-start space-x-2", children: /* @__PURE__ */ jsxs93(Fragment25, { children: [
14383
+ /* @__PURE__ */ jsx163(TooltipTrigger, { className: "flex items-center justify-start space-x-2", children: /* @__PURE__ */ jsxs93(Fragment25, { children: [
14366
14384
  contentModule && getIconByModule({ module: contentModule, className: "h-4 w-4" }),
14367
- /* @__PURE__ */ jsx162(Link, { href: link, children: content.name })
14385
+ /* @__PURE__ */ jsx163(Link, { href: link, children: content.name })
14368
14386
  ] }) }),
14369
- /* @__PURE__ */ jsx162(TooltipContent, { children: content.tldr })
14387
+ /* @__PURE__ */ jsx163(TooltipContent, { children: content.tldr })
14370
14388
  ] });
14371
14389
  }, "cell"),
14372
14390
  enableSorting: false,
@@ -14378,17 +14396,17 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
14378
14396
  header: t(`common.relevance`),
14379
14397
  cell: /* @__PURE__ */ __name(({ row }) => {
14380
14398
  const content = row.original.jsonApiData;
14381
- if (!content.relevance) return /* @__PURE__ */ jsx162(Fragment25, {});
14399
+ if (!content.relevance) return /* @__PURE__ */ jsx163(Fragment25, {});
14382
14400
  const response = `${content.relevance.toFixed(0)}%`;
14383
14401
  return /* @__PURE__ */ jsxs93("div", { className: "relative flex h-5 w-20 items-center justify-center overflow-clip rounded border text-center", children: [
14384
- /* @__PURE__ */ jsx162(
14402
+ /* @__PURE__ */ jsx163(
14385
14403
  "div",
14386
14404
  {
14387
14405
  className: `bg-accent absolute top-0 left-0 h-full opacity-${Math.round(content.relevance)}`,
14388
14406
  style: { width: `${content.relevance}%` }
14389
14407
  }
14390
14408
  ),
14391
- /* @__PURE__ */ jsx162(
14409
+ /* @__PURE__ */ jsx163(
14392
14410
  "span",
14393
14411
  {
14394
14412
  className: `relative text-xs ${content.relevance < 40 ? "text-muted-foreground" : "text-accent-foreground font-semibold"}`,
@@ -14406,7 +14424,7 @@ var useContentTableStructure = /* @__PURE__ */ __name((params) => {
14406
14424
  header: t(`common.relationships.author.label`),
14407
14425
  cell: /* @__PURE__ */ __name(({ row }) => {
14408
14426
  const content = row.original.jsonApiData;
14409
- return /* @__PURE__ */ jsx162(ContributorsList, { content });
14427
+ return /* @__PURE__ */ jsx163(ContributorsList, { content });
14410
14428
  }, "cell"),
14411
14429
  enableSorting: false,
14412
14430
  enableHiding: false
@@ -14734,7 +14752,7 @@ import { memo, useMemo as useMemo25, useState as useState55 } from "react";
14734
14752
  import { RefreshCw, Search, X as X3 } from "lucide-react";
14735
14753
  import { useTranslations as useTranslations55 } from "next-intl";
14736
14754
  import { useCallback as useCallback34, useEffect as useEffect47, useRef as useRef26, useState as useState54 } from "react";
14737
- import { jsx as jsx163, jsxs as jsxs94 } from "react/jsx-runtime";
14755
+ import { jsx as jsx164, jsxs as jsxs94 } from "react/jsx-runtime";
14738
14756
  function ContentTableSearch({ data }) {
14739
14757
  const t = useTranslations55();
14740
14758
  const searchTermRef = useRef26("");
@@ -14781,14 +14799,14 @@ function ContentTableSearch({ data }) {
14781
14799
  {
14782
14800
  className: `relative flex h-6 items-center text-xs font-normal transition-all duration-300 ease-in-out ${isExpanded ? "w-64" : "w-6"}`,
14783
14801
  children: [
14784
- /* @__PURE__ */ jsx163(
14802
+ /* @__PURE__ */ jsx164(
14785
14803
  Search,
14786
14804
  {
14787
14805
  className: `absolute top-1 left-1 h-4 w-4 transition-colors ${isExpanded ? "text-muted-foreground" : "text-muted-foreground hover:text-foreground cursor-pointer"}`,
14788
14806
  onClick: handleSearchIconClick
14789
14807
  }
14790
14808
  ),
14791
- isExpanded && /* @__PURE__ */ jsx163(
14809
+ isExpanded && /* @__PURE__ */ jsx164(
14792
14810
  Input,
14793
14811
  {
14794
14812
  ref: inputRef,
@@ -14806,8 +14824,8 @@ function ContentTableSearch({ data }) {
14806
14824
  value: searchTerm
14807
14825
  }
14808
14826
  ),
14809
- isExpanded && isSearching && /* @__PURE__ */ jsx163(RefreshCw, { className: "text-muted-foreground absolute top-1 right-1 h-4 w-4 animate-spin" }),
14810
- isExpanded && !isSearching && searchTermRef.current && /* @__PURE__ */ jsx163(
14827
+ isExpanded && isSearching && /* @__PURE__ */ jsx164(RefreshCw, { className: "text-muted-foreground absolute top-1 right-1 h-4 w-4 animate-spin" }),
14828
+ isExpanded && !isSearching && searchTermRef.current && /* @__PURE__ */ jsx164(
14811
14829
  X3,
14812
14830
  {
14813
14831
  className: "text-muted-foreground hover:text-foreground absolute top-1 right-1 h-4 w-4 cursor-pointer",
@@ -14821,7 +14839,7 @@ function ContentTableSearch({ data }) {
14821
14839
  __name(ContentTableSearch, "ContentTableSearch");
14822
14840
 
14823
14841
  // src/components/tables/ContentListTable.tsx
14824
- import { Fragment as Fragment26, jsx as jsx164, jsxs as jsxs95 } from "react/jsx-runtime";
14842
+ import { Fragment as Fragment26, jsx as jsx165, jsxs as jsxs95 } from "react/jsx-runtime";
14825
14843
  var EMPTY_ARRAY = [];
14826
14844
  var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(props) {
14827
14845
  const { data, fields, checkedIds, toggleId, allowSearch, filters: _filters, fullWidth } = props;
@@ -14862,15 +14880,15 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14862
14880
  });
14863
14881
  const rowModel = tableData ? table.getRowModel() : null;
14864
14882
  const showFooter = !!(data.next || data.previous);
14865
- return /* @__PURE__ */ jsx164("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx164("div", { className: cn(`overflow-clip`, fullWidth ? `` : `rounded-md border`), children: /* @__PURE__ */ jsxs95(Table, { children: [
14883
+ return /* @__PURE__ */ jsx165("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx165("div", { className: cn(`overflow-clip`, fullWidth ? `` : `rounded-md border`), children: /* @__PURE__ */ jsxs95(Table, { children: [
14866
14884
  /* @__PURE__ */ jsxs95(TableHeader, { className: "bg-muted font-semibold", children: [
14867
- props.title && /* @__PURE__ */ jsx164(TableRow, { children: /* @__PURE__ */ jsx164(
14885
+ props.title && /* @__PURE__ */ jsx165(TableRow, { children: /* @__PURE__ */ jsx165(
14868
14886
  TableHead,
14869
14887
  {
14870
14888
  className: "bg-card rounded-t-lg text-primary p-4 text-left font-bold",
14871
14889
  colSpan: tableColumns.length,
14872
14890
  children: /* @__PURE__ */ jsxs95("div", { className: "flex w-full items-center justify-between gap-x-2", children: [
14873
- /* @__PURE__ */ jsx164("div", { className: "w-full", children: /* @__PURE__ */ jsxs95(
14891
+ /* @__PURE__ */ jsx165("div", { className: "w-full", children: /* @__PURE__ */ jsxs95(
14874
14892
  "div",
14875
14893
  {
14876
14894
  className: cn(
@@ -14878,7 +14896,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14878
14896
  fullWidth ? `text-lg` : `text-sm`
14879
14897
  ),
14880
14898
  children: [
14881
- props.tableGeneratorType.icon && /* @__PURE__ */ jsx164(
14899
+ props.tableGeneratorType.icon && /* @__PURE__ */ jsx165(
14882
14900
  props.tableGeneratorType.icon,
14883
14901
  {
14884
14902
  className: cn(`text-primary`, fullWidth ? `h-6 w-6` : `h-4 w-4`)
@@ -14891,22 +14909,22 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14891
14909
  (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs95(Fragment26, { children: [
14892
14910
  props.functions,
14893
14911
  props.filters,
14894
- /* @__PURE__ */ jsx164(ContentTableSearch, { data })
14912
+ /* @__PURE__ */ jsx165(ContentTableSearch, { data })
14895
14913
  ] })
14896
14914
  ] })
14897
14915
  }
14898
14916
  ) }),
14899
- table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx164(TableRow, { children: headerGroup.headers.map((header) => {
14917
+ table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx165(TableRow, { children: headerGroup.headers.map((header) => {
14900
14918
  const meta = header.column.columnDef.meta;
14901
- return /* @__PURE__ */ jsx164(TableHead, { className: meta?.className, children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id);
14919
+ return /* @__PURE__ */ jsx165(TableHead, { className: meta?.className, children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id);
14902
14920
  }) }, headerGroup.id))
14903
14921
  ] }),
14904
- /* @__PURE__ */ jsx164(TableBody, { children: rowModel && rowModel.rows?.length ? rowModel.rows.map((row) => /* @__PURE__ */ jsx164(TableRow, { children: row.getVisibleCells().map((cell) => {
14922
+ /* @__PURE__ */ jsx165(TableBody, { children: rowModel && rowModel.rows?.length ? rowModel.rows.map((row) => /* @__PURE__ */ jsx165(TableRow, { children: row.getVisibleCells().map((cell) => {
14905
14923
  const meta = cell.column.columnDef.meta;
14906
- return /* @__PURE__ */ jsx164(TableCell, { className: meta?.className, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id);
14907
- }) }, row.id)) : /* @__PURE__ */ jsx164(TableRow, { children: /* @__PURE__ */ jsx164(TableCell, { colSpan: tableColumns.length, className: "h-24 text-center", children: "No results." }) }) }),
14908
- showFooter && /* @__PURE__ */ jsx164(TableFooter, { children: /* @__PURE__ */ jsx164(TableRow, { children: /* @__PURE__ */ jsx164(TableCell, { colSpan: tableColumns.length, className: "bg-card py-4 text-right", children: /* @__PURE__ */ jsxs95("div", { className: "flex items-center justify-end space-x-2", children: [
14909
- /* @__PURE__ */ jsx164(
14924
+ return /* @__PURE__ */ jsx165(TableCell, { className: meta?.className, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id);
14925
+ }) }, row.id)) : /* @__PURE__ */ jsx165(TableRow, { children: /* @__PURE__ */ jsx165(TableCell, { colSpan: tableColumns.length, className: "h-24 text-center", children: "No results." }) }) }),
14926
+ showFooter && /* @__PURE__ */ jsx165(TableFooter, { children: /* @__PURE__ */ jsx165(TableRow, { children: /* @__PURE__ */ jsx165(TableCell, { colSpan: tableColumns.length, className: "bg-card py-4 text-right", children: /* @__PURE__ */ jsxs95("div", { className: "flex items-center justify-end space-x-2", children: [
14927
+ /* @__PURE__ */ jsx165(
14910
14928
  Button,
14911
14929
  {
14912
14930
  variant: "outline",
@@ -14916,11 +14934,11 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14916
14934
  data.previous?.(true);
14917
14935
  },
14918
14936
  disabled: !data.previous,
14919
- children: /* @__PURE__ */ jsx164(ChevronLeft, { className: "h-4 w-4" })
14937
+ children: /* @__PURE__ */ jsx165(ChevronLeft, { className: "h-4 w-4" })
14920
14938
  }
14921
14939
  ),
14922
- data.pageInfo && /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-xs", children: `${data.pageInfo.startItem}-${data.pageInfo.endItem}${data.total ? ` of ${data.total}` : ""}` }),
14923
- /* @__PURE__ */ jsx164(
14940
+ data.pageInfo && /* @__PURE__ */ jsx165("span", { className: "text-muted-foreground text-xs", children: `${data.pageInfo.startItem}-${data.pageInfo.endItem}${data.total ? ` of ${data.total}` : ""}` }),
14941
+ /* @__PURE__ */ jsx165(
14924
14942
  Button,
14925
14943
  {
14926
14944
  variant: "outline",
@@ -14930,7 +14948,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14930
14948
  data.next?.(true);
14931
14949
  },
14932
14950
  disabled: !data.next,
14933
- children: /* @__PURE__ */ jsx164(ChevronRight, { className: "h-4 w-4" })
14951
+ children: /* @__PURE__ */ jsx165(ChevronRight, { className: "h-4 w-4" })
14934
14952
  }
14935
14953
  )
14936
14954
  ] }) }) }) })
@@ -14939,7 +14957,7 @@ var ContentListTable = memo(/* @__PURE__ */ __name(function ContentListTable2(pr
14939
14957
 
14940
14958
  // src/components/grids/ContentListGrid.tsx
14941
14959
  import { useEffect as useEffect48, useRef as useRef27 } from "react";
14942
- import { Fragment as Fragment27, jsx as jsx165, jsxs as jsxs96 } from "react/jsx-runtime";
14960
+ import { Fragment as Fragment27, jsx as jsx166, jsxs as jsxs96 } from "react/jsx-runtime";
14943
14961
  var DEFAULT_GRID_CLASSES = "grid grid-cols-2 gap-4 p-4 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5";
14944
14962
  function ContentListGrid(props) {
14945
14963
  const { data, ItemComponent, allowSearch, fullWidth, gridClassName } = props;
@@ -14955,9 +14973,9 @@ function ContentListGrid(props) {
14955
14973
  observer.observe(sentinelRef.current);
14956
14974
  return () => observer.disconnect();
14957
14975
  }, [data.next]);
14958
- return /* @__PURE__ */ jsx165("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsxs96("div", { className: cn("overflow-clip", fullWidth ? "" : "rounded-md border"), children: [
14976
+ return /* @__PURE__ */ jsx166("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsxs96("div", { className: cn("overflow-clip", fullWidth ? "" : "rounded-md border"), children: [
14959
14977
  props.title !== void 0 && /* @__PURE__ */ jsxs96("div", { className: "bg-card text-primary flex items-center justify-between gap-x-2 rounded-t-lg border-b p-4 font-bold", children: [
14960
- /* @__PURE__ */ jsx165("div", { className: "w-full", children: /* @__PURE__ */ jsxs96(
14978
+ /* @__PURE__ */ jsx166("div", { className: "w-full", children: /* @__PURE__ */ jsxs96(
14961
14979
  "div",
14962
14980
  {
14963
14981
  className: cn(
@@ -14965,7 +14983,7 @@ function ContentListGrid(props) {
14965
14983
  fullWidth ? "text-lg" : "text-sm"
14966
14984
  ),
14967
14985
  children: [
14968
- props.tableGeneratorType.icon && /* @__PURE__ */ jsx165(props.tableGeneratorType.icon, { className: cn("text-primary", fullWidth ? "h-6 w-6" : "h-4 w-4") }),
14986
+ props.tableGeneratorType.icon && /* @__PURE__ */ jsx166(props.tableGeneratorType.icon, { className: cn("text-primary", fullWidth ? "h-6 w-6" : "h-4 w-4") }),
14969
14987
  props.title
14970
14988
  ]
14971
14989
  }
@@ -14973,14 +14991,14 @@ function ContentListGrid(props) {
14973
14991
  (props.functions || props.filters || allowSearch) && /* @__PURE__ */ jsxs96(Fragment27, { children: [
14974
14992
  props.functions,
14975
14993
  props.filters,
14976
- allowSearch && /* @__PURE__ */ jsx165(ContentTableSearch, { data })
14994
+ allowSearch && /* @__PURE__ */ jsx166(ContentTableSearch, { data })
14977
14995
  ] })
14978
14996
  ] }),
14979
- data.data && data.data.length > 0 ? /* @__PURE__ */ jsx165("div", { className: gridClassName ?? DEFAULT_GRID_CLASSES, children: data.data.map((item) => {
14997
+ data.data && data.data.length > 0 ? /* @__PURE__ */ jsx166("div", { className: gridClassName ?? DEFAULT_GRID_CLASSES, children: data.data.map((item) => {
14980
14998
  const id = item.id;
14981
- return /* @__PURE__ */ jsx165(ItemComponent, { item }, id);
14982
- }) }) : /* @__PURE__ */ jsx165("div", { className: "text-muted-foreground p-8 text-center text-sm", children: "No results." }),
14983
- data.next && /* @__PURE__ */ jsx165("div", { ref: sentinelRef, style: { height: 1 } })
14999
+ return /* @__PURE__ */ jsx166(ItemComponent, { item }, id);
15000
+ }) }) : /* @__PURE__ */ jsx166("div", { className: "text-muted-foreground p-8 text-center text-sm", children: "No results." }),
15001
+ data.next && /* @__PURE__ */ jsx166("div", { ref: sentinelRef, style: { height: 1 } })
14984
15002
  ] }) });
14985
15003
  }
14986
15004
  __name(ContentListGrid, "ContentListGrid");
@@ -15040,7 +15058,7 @@ __name(validateItalianTaxCode, "validateItalianTaxCode");
15040
15058
  import { useTranslations as useTranslations56 } from "next-intl";
15041
15059
  import { forwardRef as forwardRef8, useCallback as useCallback35, useImperativeHandle as useImperativeHandle2, useRef as useRef28, useState as useState56 } from "react";
15042
15060
  import { z as z4 } from "zod";
15043
- import { jsx as jsx166, jsxs as jsxs97 } from "react/jsx-runtime";
15061
+ import { jsx as jsx167, jsxs as jsxs97 } from "react/jsx-runtime";
15044
15062
  var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFiscalData2({ initialData }, ref) {
15045
15063
  const t = useTranslations56();
15046
15064
  const initialRef = useRef28(initialData);
@@ -15086,8 +15104,8 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15086
15104
  }));
15087
15105
  return /* @__PURE__ */ jsxs97("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-3", children: [
15088
15106
  /* @__PURE__ */ jsxs97(Field, { "data-invalid": !!fiscalErrors.codice_fiscale, children: [
15089
- /* @__PURE__ */ jsx166(FieldLabel, { children: t("common.fields.codice_fiscale.label") }),
15090
- /* @__PURE__ */ jsx166(
15107
+ /* @__PURE__ */ jsx167(FieldLabel, { children: t("common.fields.codice_fiscale.label") }),
15108
+ /* @__PURE__ */ jsx167(
15091
15109
  Input,
15092
15110
  {
15093
15111
  value: fiscalData.codice_fiscale || "",
@@ -15095,11 +15113,11 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15095
15113
  placeholder: t("common.fields.codice_fiscale.placeholder")
15096
15114
  }
15097
15115
  ),
15098
- fiscalErrors.codice_fiscale && /* @__PURE__ */ jsx166(FieldError, { children: fiscalErrors.codice_fiscale })
15116
+ fiscalErrors.codice_fiscale && /* @__PURE__ */ jsx167(FieldError, { children: fiscalErrors.codice_fiscale })
15099
15117
  ] }),
15100
15118
  /* @__PURE__ */ jsxs97(Field, { "data-invalid": !!fiscalErrors.partita_iva, children: [
15101
- /* @__PURE__ */ jsx166(FieldLabel, { children: t("common.fields.partita_iva.label") }),
15102
- /* @__PURE__ */ jsx166(
15119
+ /* @__PURE__ */ jsx167(FieldLabel, { children: t("common.fields.partita_iva.label") }),
15120
+ /* @__PURE__ */ jsx167(
15103
15121
  Input,
15104
15122
  {
15105
15123
  value: fiscalData.partita_iva || "",
@@ -15107,11 +15125,11 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15107
15125
  placeholder: t("common.fields.partita_iva.placeholder")
15108
15126
  }
15109
15127
  ),
15110
- fiscalErrors.partita_iva && /* @__PURE__ */ jsx166(FieldError, { children: fiscalErrors.partita_iva })
15128
+ fiscalErrors.partita_iva && /* @__PURE__ */ jsx167(FieldError, { children: fiscalErrors.partita_iva })
15111
15129
  ] }),
15112
15130
  /* @__PURE__ */ jsxs97(Field, { children: [
15113
- /* @__PURE__ */ jsx166(FieldLabel, { children: t("common.fields.sdi.label") }),
15114
- /* @__PURE__ */ jsx166(
15131
+ /* @__PURE__ */ jsx167(FieldLabel, { children: t("common.fields.sdi.label") }),
15132
+ /* @__PURE__ */ jsx167(
15115
15133
  Input,
15116
15134
  {
15117
15135
  value: fiscalData.sdi || "",
@@ -15121,8 +15139,8 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15121
15139
  )
15122
15140
  ] }),
15123
15141
  /* @__PURE__ */ jsxs97(Field, { children: [
15124
- /* @__PURE__ */ jsx166(FieldLabel, { children: t("common.fields.rea.label") }),
15125
- /* @__PURE__ */ jsx166(
15142
+ /* @__PURE__ */ jsx167(FieldLabel, { children: t("common.fields.rea.label") }),
15143
+ /* @__PURE__ */ jsx167(
15126
15144
  Input,
15127
15145
  {
15128
15146
  value: fiscalData.rea || "",
@@ -15132,8 +15150,8 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15132
15150
  )
15133
15151
  ] }),
15134
15152
  /* @__PURE__ */ jsxs97(Field, { "data-invalid": !!fiscalErrors.pec, children: [
15135
- /* @__PURE__ */ jsx166(FieldLabel, { children: t("common.fields.pec.label") }),
15136
- /* @__PURE__ */ jsx166(
15153
+ /* @__PURE__ */ jsx167(FieldLabel, { children: t("common.fields.pec.label") }),
15154
+ /* @__PURE__ */ jsx167(
15137
15155
  Input,
15138
15156
  {
15139
15157
  value: fiscalData.pec || "",
@@ -15141,7 +15159,7 @@ var ItalianFiscalData = forwardRef8(/* @__PURE__ */ __name(function ItalianFisca
15141
15159
  placeholder: t("common.fields.pec.placeholder")
15142
15160
  }
15143
15161
  ),
15144
- fiscalErrors.pec && /* @__PURE__ */ jsx166(FieldError, { children: fiscalErrors.pec })
15162
+ fiscalErrors.pec && /* @__PURE__ */ jsx167(FieldError, { children: fiscalErrors.pec })
15145
15163
  ] })
15146
15164
  ] });
15147
15165
  }, "ItalianFiscalData"));
@@ -15166,7 +15184,7 @@ import { z as z5 } from "zod";
15166
15184
 
15167
15185
  // src/features/auth/components/GdprConsentSection.tsx
15168
15186
  import { useTranslations as useTranslations57 } from "next-intl";
15169
- import { Fragment as Fragment28, jsx as jsx167, jsxs as jsxs98 } from "react/jsx-runtime";
15187
+ import { Fragment as Fragment28, jsx as jsx168, jsxs as jsxs98 } from "react/jsx-runtime";
15170
15188
  function GdprConsentSection({
15171
15189
  form,
15172
15190
  termsCheckboxId = "termsAccepted",
@@ -15176,15 +15194,15 @@ function GdprConsentSection({
15176
15194
  const termsLabel = /* @__PURE__ */ jsxs98(Fragment28, { children: [
15177
15195
  t("terms_prefix"),
15178
15196
  " ",
15179
- /* @__PURE__ */ jsx167(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("terms_of_service") }),
15197
+ /* @__PURE__ */ jsx168(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("terms_of_service") }),
15180
15198
  " ",
15181
15199
  t("and"),
15182
15200
  " ",
15183
- /* @__PURE__ */ jsx167(Link, { href: "/privacy", target: "_blank", rel: "noopener", className: "underline", children: t("privacy_policy") })
15201
+ /* @__PURE__ */ jsx168(Link, { href: "/privacy", target: "_blank", rel: "noopener", className: "underline", children: t("privacy_policy") })
15184
15202
  ] });
15185
15203
  return /* @__PURE__ */ jsxs98("div", { className: "space-y-4 py-4", children: [
15186
- /* @__PURE__ */ jsx167(GdprConsentCheckbox, { form, id: termsCheckboxId, label: termsLabel, required: true }),
15187
- /* @__PURE__ */ jsx167(
15204
+ /* @__PURE__ */ jsx168(GdprConsentCheckbox, { form, id: termsCheckboxId, label: termsLabel, required: true }),
15205
+ /* @__PURE__ */ jsx168(
15188
15206
  GdprConsentCheckbox,
15189
15207
  {
15190
15208
  form,
@@ -15198,7 +15216,7 @@ function GdprConsentSection({
15198
15216
  __name(GdprConsentSection, "GdprConsentSection");
15199
15217
 
15200
15218
  // src/features/auth/components/forms/Register.tsx
15201
- import { Fragment as Fragment29, jsx as jsx168, jsxs as jsxs99 } from "react/jsx-runtime";
15219
+ import { Fragment as Fragment29, jsx as jsx169, jsxs as jsxs99 } from "react/jsx-runtime";
15202
15220
  var REFERRAL_COOKIE_NAME = "referral_code";
15203
15221
  function getReferralCode() {
15204
15222
  if (typeof document === "undefined") return null;
@@ -15317,54 +15335,54 @@ function Register() {
15317
15335
  }, "onSubmit");
15318
15336
  if (registrationMode === "waitlist" && inviteCode && isValidatingInvite) {
15319
15337
  return /* @__PURE__ */ jsxs99(Fragment29, { children: [
15320
- /* @__PURE__ */ jsx168(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15321
- /* @__PURE__ */ jsx168(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15338
+ /* @__PURE__ */ jsx169(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15339
+ /* @__PURE__ */ jsx169(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15322
15340
  t("waitlist.invite.validating_title")
15323
15341
  ] }) }),
15324
15342
  /* @__PURE__ */ jsxs99(CardContent, { className: "flex flex-col items-center justify-center space-y-4 py-8", children: [
15325
- /* @__PURE__ */ jsx168(Loader23, { className: "h-8 w-8 animate-spin text-primary" }),
15326
- /* @__PURE__ */ jsx168("p", { className: "text-muted-foreground", children: t("waitlist.invite.validating_description") })
15343
+ /* @__PURE__ */ jsx169(Loader23, { className: "h-8 w-8 animate-spin text-primary" }),
15344
+ /* @__PURE__ */ jsx169("p", { className: "text-muted-foreground", children: t("waitlist.invite.validating_description") })
15327
15345
  ] })
15328
15346
  ] });
15329
15347
  }
15330
15348
  if (registrationMode === "waitlist" && inviteCode && inviteError) {
15331
15349
  return /* @__PURE__ */ jsxs99(Fragment29, { children: [
15332
- /* @__PURE__ */ jsx168(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15333
- /* @__PURE__ */ jsx168(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15350
+ /* @__PURE__ */ jsx169(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15351
+ /* @__PURE__ */ jsx169(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15334
15352
  t("waitlist.invite.invalid_title")
15335
15353
  ] }) }),
15336
15354
  /* @__PURE__ */ jsxs99(CardContent, { className: "text-center", children: [
15337
- /* @__PURE__ */ jsx168("p", { className: "text-destructive mb-4", children: inviteError }),
15338
- /* @__PURE__ */ jsx168("p", { className: "mb-4", children: t("waitlist.invite.join_prompt") }),
15339
- /* @__PURE__ */ jsx168(Link, { href: "/waitlist", className: "text-primary underline", children: t("waitlist.invite.join_link") })
15355
+ /* @__PURE__ */ jsx169("p", { className: "text-destructive mb-4", children: inviteError }),
15356
+ /* @__PURE__ */ jsx169("p", { className: "mb-4", children: t("waitlist.invite.join_prompt") }),
15357
+ /* @__PURE__ */ jsx169(Link, { href: "/waitlist", className: "text-primary underline", children: t("waitlist.invite.join_link") })
15340
15358
  ] })
15341
15359
  ] });
15342
15360
  }
15343
15361
  if (registrationMode === "waitlist" && !inviteCode) {
15344
15362
  return /* @__PURE__ */ jsxs99(Fragment29, { children: [
15345
- /* @__PURE__ */ jsx168(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15346
- /* @__PURE__ */ jsx168(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15363
+ /* @__PURE__ */ jsx169(CardHeader, { children: /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15364
+ /* @__PURE__ */ jsx169(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15347
15365
  t("waitlist.invite.registration_title")
15348
15366
  ] }) }),
15349
15367
  /* @__PURE__ */ jsxs99(CardContent, { className: "text-center", children: [
15350
- /* @__PURE__ */ jsx168("p", { className: "mb-4", children: t("waitlist.invite.registration_description") }),
15351
- /* @__PURE__ */ jsx168("p", { className: "mb-4", children: t("waitlist.invite.registration_hint") }),
15352
- /* @__PURE__ */ jsx168(Link, { href: "/waitlist", className: "text-primary underline", children: t("waitlist.invite.join_link") })
15368
+ /* @__PURE__ */ jsx169("p", { className: "mb-4", children: t("waitlist.invite.registration_description") }),
15369
+ /* @__PURE__ */ jsx169("p", { className: "mb-4", children: t("waitlist.invite.registration_hint") }),
15370
+ /* @__PURE__ */ jsx169(Link, { href: "/waitlist", className: "text-primary underline", children: t("waitlist.invite.join_link") })
15353
15371
  ] }),
15354
- /* @__PURE__ */ jsx168(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx168(Link, { href: "#", className: "flex w-full justify-start", onClick: () => setComponentType(0 /* Login */), children: t("auth.buttons.login") }) })
15372
+ /* @__PURE__ */ jsx169(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx169(Link, { href: "#", className: "flex w-full justify-start", onClick: () => setComponentType(0 /* Login */), children: t("auth.buttons.login") }) })
15355
15373
  ] });
15356
15374
  }
15357
15375
  return /* @__PURE__ */ jsxs99(Fragment29, { children: [
15358
15376
  /* @__PURE__ */ jsxs99(CardHeader, { children: [
15359
15377
  /* @__PURE__ */ jsxs99(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
15360
- /* @__PURE__ */ jsx168(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15378
+ /* @__PURE__ */ jsx169(Image7, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
15361
15379
  t(`auth.buttons.register`)
15362
15380
  ] }),
15363
- /* @__PURE__ */ jsx168(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx168(Fragment29, { children: " " }) : /* @__PURE__ */ jsx168(Fragment29, { children: t(`auth.register_description`) }) })
15381
+ /* @__PURE__ */ jsx169(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx169(Fragment29, { children: " " }) : /* @__PURE__ */ jsx169(Fragment29, { children: t(`auth.register_description`) }) })
15364
15382
  ] }),
15365
- showConfirmation ? /* @__PURE__ */ jsx168(CardContent, { children: /* @__PURE__ */ jsx168(CardDescription, { className: "text-center text-xl", children: t("auth.register_confirmation") }) }) : /* @__PURE__ */ jsx168(Form, { ...form, children: /* @__PURE__ */ jsxs99("form", { onSubmit: form.handleSubmit(onSubmit), children: [
15383
+ showConfirmation ? /* @__PURE__ */ jsx169(CardContent, { children: /* @__PURE__ */ jsx169(CardDescription, { className: "text-center text-xl", children: t("auth.register_confirmation") }) }) : /* @__PURE__ */ jsx169(Form, { ...form, children: /* @__PURE__ */ jsxs99("form", { onSubmit: form.handleSubmit(onSubmit), children: [
15366
15384
  /* @__PURE__ */ jsxs99(CardContent, { children: [
15367
- /* @__PURE__ */ jsx168(
15385
+ /* @__PURE__ */ jsx169(
15368
15386
  FormInput,
15369
15387
  {
15370
15388
  isRequired: true,
@@ -15374,7 +15392,7 @@ function Register() {
15374
15392
  placeholder: t(`company.fields.name.placeholder`)
15375
15393
  }
15376
15394
  ),
15377
- /* @__PURE__ */ jsx168(
15395
+ /* @__PURE__ */ jsx169(
15378
15396
  FormInput,
15379
15397
  {
15380
15398
  isRequired: true,
@@ -15384,7 +15402,7 @@ function Register() {
15384
15402
  placeholder: t(`user.fields.name.placeholder`)
15385
15403
  }
15386
15404
  ),
15387
- /* @__PURE__ */ jsx168(
15405
+ /* @__PURE__ */ jsx169(
15388
15406
  FormInput,
15389
15407
  {
15390
15408
  isRequired: true,
@@ -15394,7 +15412,7 @@ function Register() {
15394
15412
  placeholder: t(`common.fields.email.placeholder`)
15395
15413
  }
15396
15414
  ),
15397
- /* @__PURE__ */ jsx168(
15415
+ /* @__PURE__ */ jsx169(
15398
15416
  FormPassword,
15399
15417
  {
15400
15418
  isRequired: true,
@@ -15404,15 +15422,15 @@ function Register() {
15404
15422
  placeholder: t(`user.fields.password.placeholder`)
15405
15423
  }
15406
15424
  ),
15407
- /* @__PURE__ */ jsx168(GdprConsentSection, { form }),
15408
- /* @__PURE__ */ jsx168(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.register`) }),
15425
+ /* @__PURE__ */ jsx169(GdprConsentSection, { form }),
15426
+ /* @__PURE__ */ jsx169(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.register`) }),
15409
15427
  (registrationMode !== "waitlist" || inviteValidated) && (isGoogleAuthEnabled() || isDiscordAuthEnabled()) && /* @__PURE__ */ jsxs99("div", { className: "space-y-4 pt-4", children: [
15410
15428
  /* @__PURE__ */ jsxs99("div", { className: "relative", children: [
15411
- /* @__PURE__ */ jsx168("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx168("span", { className: "w-full border-t" }) }),
15412
- /* @__PURE__ */ jsx168("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx168("span", { className: "bg-card px-2 text-muted-foreground", children: t("auth.buttons.or") }) })
15429
+ /* @__PURE__ */ jsx169("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx169("span", { className: "w-full border-t" }) }),
15430
+ /* @__PURE__ */ jsx169("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx169("span", { className: "bg-card px-2 text-muted-foreground", children: t("auth.buttons.or") }) })
15413
15431
  ] }),
15414
15432
  /* @__PURE__ */ jsxs99("div", { className: "space-y-2", children: [
15415
- isGoogleAuthEnabled() && /* @__PURE__ */ jsx168(
15433
+ isGoogleAuthEnabled() && /* @__PURE__ */ jsx169(
15416
15434
  Link,
15417
15435
  {
15418
15436
  href: `${getPublicApiUrl()}auth/google${buildOAuthQueryParams(inviteCode, referralCode)}`,
@@ -15425,28 +15443,28 @@ function Register() {
15425
15443
  type: "button",
15426
15444
  children: [
15427
15445
  /* @__PURE__ */ jsxs99("svg", { className: "mr-2 h-5 w-5", viewBox: "0 0 24 24", children: [
15428
- /* @__PURE__ */ jsx168(
15446
+ /* @__PURE__ */ jsx169(
15429
15447
  "path",
15430
15448
  {
15431
15449
  fill: "#4285F4",
15432
15450
  d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
15433
15451
  }
15434
15452
  ),
15435
- /* @__PURE__ */ jsx168(
15453
+ /* @__PURE__ */ jsx169(
15436
15454
  "path",
15437
15455
  {
15438
15456
  fill: "#34A853",
15439
15457
  d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
15440
15458
  }
15441
15459
  ),
15442
- /* @__PURE__ */ jsx168(
15460
+ /* @__PURE__ */ jsx169(
15443
15461
  "path",
15444
15462
  {
15445
15463
  fill: "#FBBC05",
15446
15464
  d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
15447
15465
  }
15448
15466
  ),
15449
- /* @__PURE__ */ jsx168(
15467
+ /* @__PURE__ */ jsx169(
15450
15468
  "path",
15451
15469
  {
15452
15470
  fill: "#EA4335",
@@ -15460,13 +15478,13 @@ function Register() {
15460
15478
  )
15461
15479
  }
15462
15480
  ),
15463
- isDiscordAuthEnabled() && /* @__PURE__ */ jsx168(
15481
+ isDiscordAuthEnabled() && /* @__PURE__ */ jsx169(
15464
15482
  Link,
15465
15483
  {
15466
15484
  href: `${getPublicApiUrl()}auth/discord${buildOAuthQueryParams(inviteCode, referralCode)}`,
15467
15485
  className: "flex w-full",
15468
15486
  children: /* @__PURE__ */ jsxs99(Button, { className: "w-full", variant: "outline", type: "button", children: [
15469
- /* @__PURE__ */ jsx168("svg", { className: "mr-2 h-5 w-5", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx168("path", { d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z" }) }),
15487
+ /* @__PURE__ */ jsx169("svg", { className: "mr-2 h-5 w-5", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx169("path", { d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028 14.09 14.09 0 0 0 1.226-1.994.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z" }) }),
15470
15488
  t("waitlist.buttons.register_with_discord")
15471
15489
  ] })
15472
15490
  }
@@ -15475,7 +15493,7 @@ function Register() {
15475
15493
  ] })
15476
15494
  ] }),
15477
15495
  /* @__PURE__ */ jsxs99(CardFooter, { className: "flex w-full flex-row justify-between", children: [
15478
- /* @__PURE__ */ jsx168(
15496
+ /* @__PURE__ */ jsx169(
15479
15497
  Link,
15480
15498
  {
15481
15499
  href: "#",
@@ -15484,7 +15502,7 @@ function Register() {
15484
15502
  children: t(`auth.buttons.login`)
15485
15503
  }
15486
15504
  ),
15487
- /* @__PURE__ */ jsx168(
15505
+ /* @__PURE__ */ jsx169(
15488
15506
  Link,
15489
15507
  {
15490
15508
  href: "#",
@@ -15500,7 +15518,7 @@ function Register() {
15500
15518
  __name(Register, "Register");
15501
15519
 
15502
15520
  // src/features/auth/contexts/AuthContext.tsx
15503
- import { jsx as jsx169 } from "react/jsx-runtime";
15521
+ import { jsx as jsx170 } from "react/jsx-runtime";
15504
15522
  var AuthContext = createContext20(void 0);
15505
15523
  var AuthContextProvider = /* @__PURE__ */ __name(({
15506
15524
  children,
@@ -15514,24 +15532,24 @@ var AuthContextProvider = /* @__PURE__ */ __name(({
15514
15532
  if (componentType === void 0) return null;
15515
15533
  switch (componentType) {
15516
15534
  case 0 /* Login */:
15517
- return /* @__PURE__ */ jsx169(Login, {});
15535
+ return /* @__PURE__ */ jsx170(Login, {});
15518
15536
  case 5 /* Register */:
15519
- return /* @__PURE__ */ jsx169(Register, {});
15537
+ return /* @__PURE__ */ jsx170(Register, {});
15520
15538
  case 1 /* ForgotPassword */:
15521
- return /* @__PURE__ */ jsx169(ForgotPassword, {});
15539
+ return /* @__PURE__ */ jsx170(ForgotPassword, {});
15522
15540
  case 3 /* ActivateAccount */:
15523
- return /* @__PURE__ */ jsx169(ActivateAccount, {});
15541
+ return /* @__PURE__ */ jsx170(ActivateAccount, {});
15524
15542
  case 2 /* ResetPassword */:
15525
- return /* @__PURE__ */ jsx169(ResetPassword, {});
15543
+ return /* @__PURE__ */ jsx170(ResetPassword, {});
15526
15544
  case 4 /* AcceptInvitation */:
15527
- return /* @__PURE__ */ jsx169(AcceptInvitation, {});
15545
+ return /* @__PURE__ */ jsx170(AcceptInvitation, {});
15528
15546
  case "2fa_challenge" /* TwoFactorChallenge */:
15529
- return /* @__PURE__ */ jsx169(TwoFactorChallenge, {});
15547
+ return /* @__PURE__ */ jsx170(TwoFactorChallenge, {});
15530
15548
  default:
15531
- return /* @__PURE__ */ jsx169(LandingComponent, {});
15549
+ return /* @__PURE__ */ jsx170(LandingComponent, {});
15532
15550
  }
15533
15551
  }, [componentType]);
15534
- return /* @__PURE__ */ jsx169(
15552
+ return /* @__PURE__ */ jsx170(
15535
15553
  AuthContext.Provider,
15536
15554
  {
15537
15555
  value: {
@@ -15555,16 +15573,16 @@ var useAuthContext = /* @__PURE__ */ __name(() => {
15555
15573
  }, "useAuthContext");
15556
15574
 
15557
15575
  // src/features/auth/components/containers/AuthContainer.tsx
15558
- import { jsx as jsx170 } from "react/jsx-runtime";
15576
+ import { jsx as jsx171 } from "react/jsx-runtime";
15559
15577
  function AuthContainer({ componentType, params }) {
15560
- return /* @__PURE__ */ jsx170(AuthContextProvider, { initialComponentType: componentType, initialParams: params, children: /* @__PURE__ */ jsx170(InnerAuthContainer, {}) });
15578
+ return /* @__PURE__ */ jsx171(AuthContextProvider, { initialComponentType: componentType, initialParams: params, children: /* @__PURE__ */ jsx171(InnerAuthContainer, {}) });
15561
15579
  }
15562
15580
  __name(AuthContainer, "AuthContainer");
15563
15581
  function InnerAuthContainer() {
15564
15582
  const { activeComponent } = useAuthContext();
15565
15583
  if (activeComponent === null)
15566
- return /* @__PURE__ */ jsx170("div", { className: "max-w-sm", children: /* @__PURE__ */ jsx170(Image8, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, className: "animate-spin-slow", priority: true }) });
15567
- return /* @__PURE__ */ jsx170(Card, { className: "w-full max-w-md", children: activeComponent });
15584
+ return /* @__PURE__ */ jsx171("div", { className: "max-w-sm", children: /* @__PURE__ */ jsx171(Image8, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, className: "animate-spin-slow", priority: true }) });
15585
+ return /* @__PURE__ */ jsx171(Card, { className: "w-full max-w-md", children: activeComponent });
15568
15586
  }
15569
15587
  __name(InnerAuthContainer, "InnerAuthContainer");
15570
15588
 
@@ -15578,7 +15596,7 @@ import { v4 as v48 } from "uuid";
15578
15596
  import { Copy, Download, RefreshCw as RefreshCw2 } from "lucide-react";
15579
15597
  import { useTranslations as useTranslations59 } from "next-intl";
15580
15598
  import { useState as useState59 } from "react";
15581
- import { jsx as jsx171, jsxs as jsxs100 } from "react/jsx-runtime";
15599
+ import { jsx as jsx172, jsxs as jsxs100 } from "react/jsx-runtime";
15582
15600
  function BackupCodesDialog({ remainingCodes, onRegenerate, trigger }) {
15583
15601
  const t = useTranslations59();
15584
15602
  const [open, setOpen] = useState59(false);
@@ -15625,52 +15643,52 @@ Keep these codes safe. Each code can only be used once.`;
15625
15643
  }
15626
15644
  }, "handleOpenChange");
15627
15645
  return /* @__PURE__ */ jsxs100(Dialog, { open, onOpenChange: handleOpenChange, children: [
15628
- trigger ? /* @__PURE__ */ jsx171(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx171(DialogTrigger, { render: /* @__PURE__ */ jsx171(Button, { variant: "outline", children: t("auth.two_factor.manage_backup_codes") }) }),
15646
+ trigger ? /* @__PURE__ */ jsx172(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx172(DialogTrigger, { render: /* @__PURE__ */ jsx172(Button, { variant: "outline", children: t("auth.two_factor.manage_backup_codes") }) }),
15629
15647
  /* @__PURE__ */ jsxs100(DialogContent, { className: "sm:max-w-md", children: [
15630
15648
  /* @__PURE__ */ jsxs100(DialogHeader, { children: [
15631
- /* @__PURE__ */ jsx171(DialogTitle, { children: t("auth.two_factor.backup_codes") }),
15632
- /* @__PURE__ */ jsx171(DialogDescription, { children: showCodes ? t("auth.two_factor.save_backup_codes") : t("auth.two_factor.backup_codes_description") })
15649
+ /* @__PURE__ */ jsx172(DialogTitle, { children: t("auth.two_factor.backup_codes") }),
15650
+ /* @__PURE__ */ jsx172(DialogDescription, { children: showCodes ? t("auth.two_factor.save_backup_codes") : t("auth.two_factor.backup_codes_description") })
15633
15651
  ] }),
15634
15652
  !showCodes ? /* @__PURE__ */ jsxs100("div", { className: "flex flex-col gap-4", children: [
15635
15653
  /* @__PURE__ */ jsxs100("p", { className: "text-sm", children: [
15636
15654
  t("auth.two_factor.remaining_codes"),
15637
15655
  ": ",
15638
- /* @__PURE__ */ jsx171("strong", { children: remainingCodes })
15656
+ /* @__PURE__ */ jsx172("strong", { children: remainingCodes })
15639
15657
  ] }),
15640
15658
  /* @__PURE__ */ jsxs100(AlertDialog, { children: [
15641
- /* @__PURE__ */ jsx171(
15659
+ /* @__PURE__ */ jsx172(
15642
15660
  AlertDialogTrigger,
15643
15661
  {
15644
15662
  render: /* @__PURE__ */ jsxs100(Button, { variant: "outline", className: "w-full", children: [
15645
- /* @__PURE__ */ jsx171(RefreshCw2, { className: "h-4 w-4 mr-2" }),
15663
+ /* @__PURE__ */ jsx172(RefreshCw2, { className: "h-4 w-4 mr-2" }),
15646
15664
  t("auth.two_factor.generate_new_codes")
15647
15665
  ] })
15648
15666
  }
15649
15667
  ),
15650
15668
  /* @__PURE__ */ jsxs100(AlertDialogContent, { children: [
15651
15669
  /* @__PURE__ */ jsxs100(AlertDialogHeader, { children: [
15652
- /* @__PURE__ */ jsx171(AlertDialogTitle, { children: t("auth.two_factor.regenerate_codes") }),
15653
- /* @__PURE__ */ jsx171(AlertDialogDescription, { children: t("auth.two_factor.regenerate_codes_warning") })
15670
+ /* @__PURE__ */ jsx172(AlertDialogTitle, { children: t("auth.two_factor.regenerate_codes") }),
15671
+ /* @__PURE__ */ jsx172(AlertDialogDescription, { children: t("auth.two_factor.regenerate_codes_warning") })
15654
15672
  ] }),
15655
15673
  /* @__PURE__ */ jsxs100(AlertDialogFooter, { children: [
15656
- /* @__PURE__ */ jsx171(AlertDialogCancel, { children: t("common.buttons.cancel") }),
15657
- /* @__PURE__ */ jsx171(AlertDialogAction, { onClick: handleGenerate, disabled: isLoading, children: t("auth.two_factor.generate") })
15674
+ /* @__PURE__ */ jsx172(AlertDialogCancel, { children: t("common.buttons.cancel") }),
15675
+ /* @__PURE__ */ jsx172(AlertDialogAction, { onClick: handleGenerate, disabled: isLoading, children: t("auth.two_factor.generate") })
15658
15676
  ] })
15659
15677
  ] })
15660
15678
  ] })
15661
15679
  ] }) : /* @__PURE__ */ jsxs100("div", { className: "flex flex-col gap-4", children: [
15662
- /* @__PURE__ */ jsx171("div", { className: "grid grid-cols-2 gap-2 p-4 bg-muted rounded-lg font-mono text-sm", children: codes.map((code, index) => /* @__PURE__ */ jsx171("div", { className: "text-center", "data-testid": `backup-code-${index}`, children: code }, index)) }),
15680
+ /* @__PURE__ */ jsx172("div", { className: "grid grid-cols-2 gap-2 p-4 bg-muted rounded-lg font-mono text-sm", children: codes.map((code, index) => /* @__PURE__ */ jsx172("div", { className: "text-center", "data-testid": `backup-code-${index}`, children: code }, index)) }),
15663
15681
  /* @__PURE__ */ jsxs100("div", { className: "flex gap-2", children: [
15664
15682
  /* @__PURE__ */ jsxs100(Button, { variant: "outline", className: "flex-1", onClick: handleCopyAll, children: [
15665
- /* @__PURE__ */ jsx171(Copy, { className: "h-4 w-4 mr-2" }),
15683
+ /* @__PURE__ */ jsx172(Copy, { className: "h-4 w-4 mr-2" }),
15666
15684
  t("auth.two_factor.copy_all")
15667
15685
  ] }),
15668
15686
  /* @__PURE__ */ jsxs100(Button, { variant: "outline", className: "flex-1", onClick: handleDownload, children: [
15669
- /* @__PURE__ */ jsx171(Download, { className: "h-4 w-4 mr-2" }),
15687
+ /* @__PURE__ */ jsx172(Download, { className: "h-4 w-4 mr-2" }),
15670
15688
  t("auth.two_factor.download")
15671
15689
  ] })
15672
15690
  ] }),
15673
- /* @__PURE__ */ jsx171("p", { className: "text-xs text-destructive text-center", children: t("auth.two_factor.codes_shown_once") })
15691
+ /* @__PURE__ */ jsx172("p", { className: "text-xs text-destructive text-center", children: t("auth.two_factor.codes_shown_once") })
15674
15692
  ] })
15675
15693
  ] })
15676
15694
  ] });
@@ -15683,7 +15701,7 @@ import { useState as useState61 } from "react";
15683
15701
 
15684
15702
  // src/features/auth/components/two-factor/TotpInput.tsx
15685
15703
  import { useEffect as useEffect50, useRef as useRef29, useState as useState60 } from "react";
15686
- import { jsx as jsx172, jsxs as jsxs101 } from "react/jsx-runtime";
15704
+ import { jsx as jsx173, jsxs as jsxs101 } from "react/jsx-runtime";
15687
15705
  function TotpInput({ onComplete, disabled = false, autoFocus = true, error }) {
15688
15706
  const [digits, setDigits] = useState60(["", "", "", "", "", ""]);
15689
15707
  const inputRefs = useRef29([]);
@@ -15721,7 +15739,7 @@ function TotpInput({ onComplete, disabled = false, autoFocus = true, error }) {
15721
15739
  }
15722
15740
  }, "handlePaste");
15723
15741
  return /* @__PURE__ */ jsxs101("div", { className: "flex flex-col items-center gap-4", children: [
15724
- /* @__PURE__ */ jsx172("div", { className: "flex gap-2", children: digits.map((digit, index) => /* @__PURE__ */ jsx172(
15742
+ /* @__PURE__ */ jsx173("div", { className: "flex gap-2", children: digits.map((digit, index) => /* @__PURE__ */ jsx173(
15725
15743
  Input,
15726
15744
  {
15727
15745
  ref: (el) => {
@@ -15740,13 +15758,13 @@ function TotpInput({ onComplete, disabled = false, autoFocus = true, error }) {
15740
15758
  },
15741
15759
  index
15742
15760
  )) }),
15743
- error && /* @__PURE__ */ jsx172("p", { className: "text-sm text-destructive", "data-testid": "totp-error", children: error })
15761
+ error && /* @__PURE__ */ jsx173("p", { className: "text-sm text-destructive", "data-testid": "totp-error", children: error })
15744
15762
  ] });
15745
15763
  }
15746
15764
  __name(TotpInput, "TotpInput");
15747
15765
 
15748
15766
  // src/features/auth/components/two-factor/DisableTwoFactorDialog.tsx
15749
- import { jsx as jsx173, jsxs as jsxs102 } from "react/jsx-runtime";
15767
+ import { jsx as jsx174, jsxs as jsxs102 } from "react/jsx-runtime";
15750
15768
  function DisableTwoFactorDialog({ onSuccess, trigger }) {
15751
15769
  const t = useTranslations60();
15752
15770
  const [open, setOpen] = useState61(false);
@@ -15774,15 +15792,15 @@ function DisableTwoFactorDialog({ onSuccess, trigger }) {
15774
15792
  }
15775
15793
  }, "handleOpenChange");
15776
15794
  return /* @__PURE__ */ jsxs102(Dialog, { open, onOpenChange: handleOpenChange, children: [
15777
- trigger ? /* @__PURE__ */ jsx173(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx173(DialogTrigger, { render: /* @__PURE__ */ jsx173(Button, { variant: "destructive", children: t("auth.two_factor.disable") }) }),
15795
+ trigger ? /* @__PURE__ */ jsx174(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx174(DialogTrigger, { render: /* @__PURE__ */ jsx174(Button, { variant: "destructive", children: t("auth.two_factor.disable") }) }),
15778
15796
  /* @__PURE__ */ jsxs102(DialogContent, { className: "sm:max-w-md", children: [
15779
15797
  /* @__PURE__ */ jsxs102(DialogHeader, { children: [
15780
- /* @__PURE__ */ jsx173(DialogTitle, { children: t("auth.two_factor.disable_2fa") }),
15781
- /* @__PURE__ */ jsx173(DialogDescription, { children: t("auth.two_factor.disable_warning") })
15798
+ /* @__PURE__ */ jsx174(DialogTitle, { children: t("auth.two_factor.disable_2fa") }),
15799
+ /* @__PURE__ */ jsx174(DialogDescription, { children: t("auth.two_factor.disable_warning") })
15782
15800
  ] }),
15783
15801
  /* @__PURE__ */ jsxs102("div", { className: "flex flex-col items-center gap-4", children: [
15784
- /* @__PURE__ */ jsx173("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_code_to_disable") }),
15785
- /* @__PURE__ */ jsx173(TotpInput, { onComplete: handleVerify, disabled: isLoading, error })
15802
+ /* @__PURE__ */ jsx174("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_code_to_disable") }),
15803
+ /* @__PURE__ */ jsx174(TotpInput, { onComplete: handleVerify, disabled: isLoading, error })
15786
15804
  ] })
15787
15805
  ] })
15788
15806
  ] });
@@ -15793,7 +15811,7 @@ __name(DisableTwoFactorDialog, "DisableTwoFactorDialog");
15793
15811
  import { Edit, Key, Trash2 } from "lucide-react";
15794
15812
  import { useTranslations as useTranslations61 } from "next-intl";
15795
15813
  import { useState as useState62 } from "react";
15796
- import { Fragment as Fragment30, jsx as jsx174, jsxs as jsxs103 } from "react/jsx-runtime";
15814
+ import { Fragment as Fragment30, jsx as jsx175, jsxs as jsxs103 } from "react/jsx-runtime";
15797
15815
  function PasskeyList({ passkeys, onRefresh }) {
15798
15816
  const t = useTranslations61();
15799
15817
  const [renameDialogOpen, setRenameDialogOpen] = useState62(false);
@@ -15847,14 +15865,14 @@ function PasskeyList({ passkeys, onRefresh }) {
15847
15865
  setRenameDialogOpen(true);
15848
15866
  }, "openRenameDialog");
15849
15867
  if (passkeys.length === 0) {
15850
- return /* @__PURE__ */ jsx174("p", { className: "text-sm text-muted-foreground text-center py-4", children: t("auth.two_factor.no_passkeys") });
15868
+ return /* @__PURE__ */ jsx175("p", { className: "text-sm text-muted-foreground text-center py-4", children: t("auth.two_factor.no_passkeys") });
15851
15869
  }
15852
15870
  return /* @__PURE__ */ jsxs103(Fragment30, { children: [
15853
- /* @__PURE__ */ jsx174("div", { className: "space-y-2", children: passkeys.map((passkey) => /* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between p-3 border rounded-lg", children: [
15871
+ /* @__PURE__ */ jsx175("div", { className: "space-y-2", children: passkeys.map((passkey) => /* @__PURE__ */ jsxs103("div", { className: "flex items-center justify-between p-3 border rounded-lg", children: [
15854
15872
  /* @__PURE__ */ jsxs103("div", { className: "flex items-center gap-3", children: [
15855
- /* @__PURE__ */ jsx174(Key, { className: "h-5 w-5 text-muted-foreground" }),
15873
+ /* @__PURE__ */ jsx175(Key, { className: "h-5 w-5 text-muted-foreground" }),
15856
15874
  /* @__PURE__ */ jsxs103("div", { children: [
15857
- /* @__PURE__ */ jsx174("p", { className: "font-medium", children: passkey.name }),
15875
+ /* @__PURE__ */ jsx175("p", { className: "font-medium", children: passkey.name }),
15858
15876
  /* @__PURE__ */ jsxs103("p", { className: "text-sm text-muted-foreground", children: [
15859
15877
  passkey.backedUp && "\u2601\uFE0F ",
15860
15878
  passkey.lastUsedAt ? `${t("auth.two_factor.last_used")}: ${new Date(passkey.lastUsedAt).toLocaleDateString()}` : t("auth.two_factor.never_used")
@@ -15862,22 +15880,22 @@ function PasskeyList({ passkeys, onRefresh }) {
15862
15880
  ] })
15863
15881
  ] }),
15864
15882
  /* @__PURE__ */ jsxs103("div", { className: "flex gap-2", children: [
15865
- /* @__PURE__ */ jsx174(Button, { variant: "ghost", size: "icon", onClick: () => openRenameDialog(passkey), disabled: isLoading, children: /* @__PURE__ */ jsx174(Edit, { className: "h-4 w-4" }) }),
15883
+ /* @__PURE__ */ jsx175(Button, { variant: "ghost", size: "icon", onClick: () => openRenameDialog(passkey), disabled: isLoading, children: /* @__PURE__ */ jsx175(Edit, { className: "h-4 w-4" }) }),
15866
15884
  /* @__PURE__ */ jsxs103(AlertDialog, { children: [
15867
- /* @__PURE__ */ jsx174(
15885
+ /* @__PURE__ */ jsx175(
15868
15886
  AlertDialogTrigger,
15869
15887
  {
15870
- render: /* @__PURE__ */ jsx174(Button, { variant: "ghost", size: "icon", disabled: isLoading, children: /* @__PURE__ */ jsx174(Trash2, { className: "h-4 w-4 text-destructive" }) })
15888
+ render: /* @__PURE__ */ jsx175(Button, { variant: "ghost", size: "icon", disabled: isLoading, children: /* @__PURE__ */ jsx175(Trash2, { className: "h-4 w-4 text-destructive" }) })
15871
15889
  }
15872
15890
  ),
15873
15891
  /* @__PURE__ */ jsxs103(AlertDialogContent, { children: [
15874
15892
  /* @__PURE__ */ jsxs103(AlertDialogHeader, { children: [
15875
- /* @__PURE__ */ jsx174(AlertDialogTitle, { children: t("auth.two_factor.remove_passkey") }),
15876
- /* @__PURE__ */ jsx174(AlertDialogDescription, { children: t("auth.two_factor.confirm_delete_passkey") })
15893
+ /* @__PURE__ */ jsx175(AlertDialogTitle, { children: t("auth.two_factor.remove_passkey") }),
15894
+ /* @__PURE__ */ jsx175(AlertDialogDescription, { children: t("auth.two_factor.confirm_delete_passkey") })
15877
15895
  ] }),
15878
15896
  /* @__PURE__ */ jsxs103(AlertDialogFooter, { children: [
15879
- /* @__PURE__ */ jsx174(AlertDialogCancel, { children: t("common.buttons.cancel") }),
15880
- /* @__PURE__ */ jsx174(
15897
+ /* @__PURE__ */ jsx175(AlertDialogCancel, { children: t("common.buttons.cancel") }),
15898
+ /* @__PURE__ */ jsx175(
15881
15899
  AlertDialogAction,
15882
15900
  {
15883
15901
  onClick: () => handleDelete(passkey),
@@ -15890,9 +15908,9 @@ function PasskeyList({ passkeys, onRefresh }) {
15890
15908
  ] })
15891
15909
  ] })
15892
15910
  ] }, passkey.id)) }),
15893
- /* @__PURE__ */ jsx174(Dialog, { open: renameDialogOpen, onOpenChange: setRenameDialogOpen, children: /* @__PURE__ */ jsxs103(DialogContent, { children: [
15894
- /* @__PURE__ */ jsx174(DialogHeader, { children: /* @__PURE__ */ jsx174(DialogTitle, { children: t("auth.two_factor.rename_passkey") }) }),
15895
- /* @__PURE__ */ jsx174("div", { className: "space-y-4", children: /* @__PURE__ */ jsx174(
15911
+ /* @__PURE__ */ jsx175(Dialog, { open: renameDialogOpen, onOpenChange: setRenameDialogOpen, children: /* @__PURE__ */ jsxs103(DialogContent, { children: [
15912
+ /* @__PURE__ */ jsx175(DialogHeader, { children: /* @__PURE__ */ jsx175(DialogTitle, { children: t("auth.two_factor.rename_passkey") }) }),
15913
+ /* @__PURE__ */ jsx175("div", { className: "space-y-4", children: /* @__PURE__ */ jsx175(
15896
15914
  Input,
15897
15915
  {
15898
15916
  value: newName,
@@ -15902,8 +15920,8 @@ function PasskeyList({ passkeys, onRefresh }) {
15902
15920
  }
15903
15921
  ) }),
15904
15922
  /* @__PURE__ */ jsxs103(DialogFooter, { children: [
15905
- /* @__PURE__ */ jsx174(Button, { variant: "outline", onClick: () => setRenameDialogOpen(false), children: t("common.cancel") }),
15906
- /* @__PURE__ */ jsx174(Button, { onClick: handleRename, disabled: !newName.trim() || isLoading, children: t("common.save") })
15923
+ /* @__PURE__ */ jsx175(Button, { variant: "outline", onClick: () => setRenameDialogOpen(false), children: t("common.cancel") }),
15924
+ /* @__PURE__ */ jsx175(Button, { onClick: handleRename, disabled: !newName.trim() || isLoading, children: t("common.save") })
15907
15925
  ] })
15908
15926
  ] }) })
15909
15927
  ] });
@@ -15915,7 +15933,7 @@ import { startRegistration } from "@simplewebauthn/browser";
15915
15933
  import { useTranslations as useTranslations62 } from "next-intl";
15916
15934
  import { useState as useState63 } from "react";
15917
15935
  import { v4 as v46 } from "uuid";
15918
- import { jsx as jsx175, jsxs as jsxs104 } from "react/jsx-runtime";
15936
+ import { jsx as jsx176, jsxs as jsxs104 } from "react/jsx-runtime";
15919
15937
  function PasskeySetupDialog({ open, onOpenChange, onSuccess }) {
15920
15938
  const t = useTranslations62();
15921
15939
  const { currentUser } = useCurrentUserContext();
@@ -15956,15 +15974,15 @@ function PasskeySetupDialog({ open, onOpenChange, onSuccess }) {
15956
15974
  setIsLoading(false);
15957
15975
  }
15958
15976
  }, "handleRegister");
15959
- return /* @__PURE__ */ jsx175(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs104(DialogContent, { children: [
15977
+ return /* @__PURE__ */ jsx176(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs104(DialogContent, { children: [
15960
15978
  /* @__PURE__ */ jsxs104(DialogHeader, { children: [
15961
- /* @__PURE__ */ jsx175(DialogTitle, { children: t("auth.two_factor.setup_passkey") }),
15962
- /* @__PURE__ */ jsx175(DialogDescription, { children: t("auth.two_factor.passkey_setup_description") })
15979
+ /* @__PURE__ */ jsx176(DialogTitle, { children: t("auth.two_factor.setup_passkey") }),
15980
+ /* @__PURE__ */ jsx176(DialogDescription, { children: t("auth.two_factor.passkey_setup_description") })
15963
15981
  ] }),
15964
15982
  /* @__PURE__ */ jsxs104("div", { className: "space-y-4", children: [
15965
15983
  /* @__PURE__ */ jsxs104("div", { className: "space-y-2", children: [
15966
- /* @__PURE__ */ jsx175(Label, { htmlFor: "passkey-name", children: t("auth.two_factor.passkey_name") }),
15967
- /* @__PURE__ */ jsx175(
15984
+ /* @__PURE__ */ jsx176(Label, { htmlFor: "passkey-name", children: t("auth.two_factor.passkey_name") }),
15985
+ /* @__PURE__ */ jsx176(
15968
15986
  Input,
15969
15987
  {
15970
15988
  id: "passkey-name",
@@ -15975,7 +15993,7 @@ function PasskeySetupDialog({ open, onOpenChange, onSuccess }) {
15975
15993
  }
15976
15994
  )
15977
15995
  ] }),
15978
- /* @__PURE__ */ jsx175(Button, { onClick: handleRegister, disabled: !name.trim() || isLoading, className: "w-full", children: isLoading ? t("common.loading") : t("auth.two_factor.register_passkey") })
15996
+ /* @__PURE__ */ jsx176(Button, { onClick: handleRegister, disabled: !name.trim() || isLoading, className: "w-full", children: isLoading ? t("common.loading") : t("auth.two_factor.register_passkey") })
15979
15997
  ] })
15980
15998
  ] }) });
15981
15999
  }
@@ -15985,7 +16003,7 @@ __name(PasskeySetupDialog, "PasskeySetupDialog");
15985
16003
  import { Smartphone, Trash2 as Trash22 } from "lucide-react";
15986
16004
  import { useTranslations as useTranslations63 } from "next-intl";
15987
16005
  import { useState as useState64 } from "react";
15988
- import { jsx as jsx176, jsxs as jsxs105 } from "react/jsx-runtime";
16006
+ import { jsx as jsx177, jsxs as jsxs105 } from "react/jsx-runtime";
15989
16007
  function TotpAuthenticatorList({ authenticators, onDelete }) {
15990
16008
  const t = useTranslations63();
15991
16009
  const [deletingId, setDeletingId] = useState64(null);
@@ -16004,13 +16022,13 @@ function TotpAuthenticatorList({ authenticators, onDelete }) {
16004
16022
  }
16005
16023
  }, "handleDelete");
16006
16024
  if (authenticators.length === 0) {
16007
- return /* @__PURE__ */ jsx176("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.no_authenticators") });
16025
+ return /* @__PURE__ */ jsx177("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.no_authenticators") });
16008
16026
  }
16009
- return /* @__PURE__ */ jsx176("div", { className: "space-y-2", children: authenticators.map((auth) => /* @__PURE__ */ jsx176(Card, { "data-testid": `authenticator-${auth.id}`, children: /* @__PURE__ */ jsxs105(CardContent, { className: "flex items-center justify-between p-4", children: [
16027
+ return /* @__PURE__ */ jsx177("div", { className: "space-y-2", children: authenticators.map((auth) => /* @__PURE__ */ jsx177(Card, { "data-testid": `authenticator-${auth.id}`, children: /* @__PURE__ */ jsxs105(CardContent, { className: "flex items-center justify-between p-4", children: [
16010
16028
  /* @__PURE__ */ jsxs105("div", { className: "flex items-center gap-3", children: [
16011
- /* @__PURE__ */ jsx176(Smartphone, { className: "h-5 w-5 text-muted-foreground" }),
16029
+ /* @__PURE__ */ jsx177(Smartphone, { className: "h-5 w-5 text-muted-foreground" }),
16012
16030
  /* @__PURE__ */ jsxs105("div", { children: [
16013
- /* @__PURE__ */ jsx176("p", { className: "font-medium", children: auth.name }),
16031
+ /* @__PURE__ */ jsx177("p", { className: "font-medium", children: auth.name }),
16014
16032
  auth.lastUsedAt && /* @__PURE__ */ jsxs105("p", { className: "text-xs text-muted-foreground", children: [
16015
16033
  t("auth.two_factor.last_used"),
16016
16034
  ": ",
@@ -16019,29 +16037,29 @@ function TotpAuthenticatorList({ authenticators, onDelete }) {
16019
16037
  ] })
16020
16038
  ] }),
16021
16039
  /* @__PURE__ */ jsxs105(AlertDialog, { children: [
16022
- /* @__PURE__ */ jsx176(
16040
+ /* @__PURE__ */ jsx177(
16023
16041
  AlertDialogTrigger,
16024
16042
  {
16025
- render: /* @__PURE__ */ jsx176(
16043
+ render: /* @__PURE__ */ jsx177(
16026
16044
  Button,
16027
16045
  {
16028
16046
  variant: "ghost",
16029
16047
  size: "icon",
16030
16048
  disabled: deletingId === auth.id,
16031
16049
  "data-testid": `delete-auth-${auth.id}`,
16032
- children: /* @__PURE__ */ jsx176(Trash22, { className: "h-4 w-4 text-destructive" })
16050
+ children: /* @__PURE__ */ jsx177(Trash22, { className: "h-4 w-4 text-destructive" })
16033
16051
  }
16034
16052
  )
16035
16053
  }
16036
16054
  ),
16037
16055
  /* @__PURE__ */ jsxs105(AlertDialogContent, { children: [
16038
16056
  /* @__PURE__ */ jsxs105(AlertDialogHeader, { children: [
16039
- /* @__PURE__ */ jsx176(AlertDialogTitle, { children: t("auth.two_factor.remove_authenticator") }),
16040
- /* @__PURE__ */ jsx176(AlertDialogDescription, { children: t("auth.two_factor.remove_authenticator_confirm") })
16057
+ /* @__PURE__ */ jsx177(AlertDialogTitle, { children: t("auth.two_factor.remove_authenticator") }),
16058
+ /* @__PURE__ */ jsx177(AlertDialogDescription, { children: t("auth.two_factor.remove_authenticator_confirm") })
16041
16059
  ] }),
16042
16060
  /* @__PURE__ */ jsxs105(AlertDialogFooter, { children: [
16043
- /* @__PURE__ */ jsx176(AlertDialogCancel, { children: t("common.buttons.cancel") }),
16044
- /* @__PURE__ */ jsx176(
16061
+ /* @__PURE__ */ jsx177(AlertDialogCancel, { children: t("common.buttons.cancel") }),
16062
+ /* @__PURE__ */ jsx177(
16045
16063
  AlertDialogAction,
16046
16064
  {
16047
16065
  onClick: () => handleDelete(auth.id),
@@ -16061,7 +16079,7 @@ import { useTranslations as useTranslations64 } from "next-intl";
16061
16079
  import { QRCodeSVG } from "qrcode.react";
16062
16080
  import { useState as useState65 } from "react";
16063
16081
  import { v4 as v47 } from "uuid";
16064
- import { jsx as jsx177, jsxs as jsxs106 } from "react/jsx-runtime";
16082
+ import { jsx as jsx178, jsxs as jsxs106 } from "react/jsx-runtime";
16065
16083
  function TotpSetupDialog({ onSuccess, trigger }) {
16066
16084
  const t = useTranslations64();
16067
16085
  const { currentUser } = useCurrentUserContext();
@@ -16128,10 +16146,10 @@ function TotpSetupDialog({ onSuccess, trigger }) {
16128
16146
  if (!newOpen) resetState();
16129
16147
  }, "handleOpenChange");
16130
16148
  return /* @__PURE__ */ jsxs106(Dialog, { open, onOpenChange: handleOpenChange, children: [
16131
- trigger ? /* @__PURE__ */ jsx177(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx177(DialogTrigger, { render: /* @__PURE__ */ jsx177(Button, { variant: "outline", children: t("auth.two_factor.add_authenticator") }) }),
16149
+ trigger ? /* @__PURE__ */ jsx178(DialogTrigger, { render: trigger }) : /* @__PURE__ */ jsx178(DialogTrigger, { render: /* @__PURE__ */ jsx178(Button, { variant: "outline", children: t("auth.two_factor.add_authenticator") }) }),
16132
16150
  /* @__PURE__ */ jsxs106(DialogContent, { className: "sm:max-w-md", children: [
16133
16151
  /* @__PURE__ */ jsxs106(DialogHeader, { children: [
16134
- /* @__PURE__ */ jsx177(DialogTitle, { children: t("auth.two_factor.setup_authenticator") }),
16152
+ /* @__PURE__ */ jsx178(DialogTitle, { children: t("auth.two_factor.setup_authenticator") }),
16135
16153
  /* @__PURE__ */ jsxs106(DialogDescription, { children: [
16136
16154
  step === "name" && t("auth.two_factor.name_your_authenticator"),
16137
16155
  step === "scan" && t("auth.two_factor.scan_qr_code"),
@@ -16140,8 +16158,8 @@ function TotpSetupDialog({ onSuccess, trigger }) {
16140
16158
  ] }),
16141
16159
  step === "name" && /* @__PURE__ */ jsxs106("div", { className: "flex flex-col gap-4", children: [
16142
16160
  /* @__PURE__ */ jsxs106("div", { className: "flex flex-col gap-2", children: [
16143
- /* @__PURE__ */ jsx177(Label, { htmlFor: "authenticator-name", children: t("auth.two_factor.authenticator_name") }),
16144
- /* @__PURE__ */ jsx177(
16161
+ /* @__PURE__ */ jsx178(Label, { htmlFor: "authenticator-name", children: t("auth.two_factor.authenticator_name") }),
16162
+ /* @__PURE__ */ jsx178(
16145
16163
  Input,
16146
16164
  {
16147
16165
  id: "authenticator-name",
@@ -16152,21 +16170,21 @@ function TotpSetupDialog({ onSuccess, trigger }) {
16152
16170
  }
16153
16171
  )
16154
16172
  ] }),
16155
- /* @__PURE__ */ jsx177(Button, { onClick: handleStartSetup, disabled: !name.trim() || isLoading, "data-testid": "start-setup-button", children: t("common.buttons.continue") })
16173
+ /* @__PURE__ */ jsx178(Button, { onClick: handleStartSetup, disabled: !name.trim() || isLoading, "data-testid": "start-setup-button", children: t("common.buttons.continue") })
16156
16174
  ] }),
16157
16175
  step === "scan" && /* @__PURE__ */ jsxs106("div", { className: "flex flex-col items-center gap-4", children: [
16158
- /* @__PURE__ */ jsx177("div", { className: "p-4 bg-white rounded-lg", children: /* @__PURE__ */ jsx177(QRCodeSVG, { value: qrCodeUri, size: 200, "data-testid": "totp-qr-code" }) }),
16159
- /* @__PURE__ */ jsx177("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.scan_with_app") }),
16160
- /* @__PURE__ */ jsx177(Button, { onClick: () => setStep("verify"), "data-testid": "next-to-verify", children: t("common.buttons.next") })
16176
+ /* @__PURE__ */ jsx178("div", { className: "p-4 bg-white rounded-lg", children: /* @__PURE__ */ jsx178(QRCodeSVG, { value: qrCodeUri, size: 200, "data-testid": "totp-qr-code" }) }),
16177
+ /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.scan_with_app") }),
16178
+ /* @__PURE__ */ jsx178(Button, { onClick: () => setStep("verify"), "data-testid": "next-to-verify", children: t("common.buttons.next") })
16161
16179
  ] }),
16162
- step === "verify" && /* @__PURE__ */ jsx177("div", { className: "flex flex-col items-center gap-4", children: /* @__PURE__ */ jsx177(TotpInput, { onComplete: handleVerify, disabled: isLoading, error: verifyError }) })
16180
+ step === "verify" && /* @__PURE__ */ jsx178("div", { className: "flex flex-col items-center gap-4", children: /* @__PURE__ */ jsx178(TotpInput, { onComplete: handleVerify, disabled: isLoading, error: verifyError }) })
16163
16181
  ] })
16164
16182
  ] });
16165
16183
  }
16166
16184
  __name(TotpSetupDialog, "TotpSetupDialog");
16167
16185
 
16168
16186
  // src/features/auth/components/two-factor/TwoFactorSettings.tsx
16169
- import { Fragment as Fragment31, jsx as jsx178, jsxs as jsxs107 } from "react/jsx-runtime";
16187
+ import { Fragment as Fragment31, jsx as jsx179, jsxs as jsxs107 } from "react/jsx-runtime";
16170
16188
  function TwoFactorSettings() {
16171
16189
  const t = useTranslations65();
16172
16190
  const [status, setStatus] = useState66(null);
@@ -16211,66 +16229,66 @@ function TwoFactorSettings() {
16211
16229
  }
16212
16230
  }, "handleEnable2FA");
16213
16231
  if (isLoading) {
16214
- return /* @__PURE__ */ jsx178(Card, { children: /* @__PURE__ */ jsx178(CardContent, { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx178("p", { className: "text-muted-foreground", children: t("common.loading") }) }) });
16232
+ return /* @__PURE__ */ jsx179(Card, { children: /* @__PURE__ */ jsx179(CardContent, { className: "flex items-center justify-center py-8", children: /* @__PURE__ */ jsx179("p", { className: "text-muted-foreground", children: t("common.loading") }) }) });
16215
16233
  }
16216
16234
  const isEnabled = status?.isEnabled ?? false;
16217
16235
  return /* @__PURE__ */ jsxs107(Card, { children: [
16218
- /* @__PURE__ */ jsx178(CardHeader, { children: /* @__PURE__ */ jsxs107("div", { className: "flex items-center gap-2", children: [
16219
- isEnabled ? /* @__PURE__ */ jsx178(ShieldCheck, { className: "h-6 w-6 text-green-600" }) : /* @__PURE__ */ jsx178(ShieldAlert, { className: "h-6 w-6 text-yellow-600" }),
16236
+ /* @__PURE__ */ jsx179(CardHeader, { children: /* @__PURE__ */ jsxs107("div", { className: "flex items-center gap-2", children: [
16237
+ isEnabled ? /* @__PURE__ */ jsx179(ShieldCheck, { className: "h-6 w-6 text-green-600" }) : /* @__PURE__ */ jsx179(ShieldAlert, { className: "h-6 w-6 text-yellow-600" }),
16220
16238
  /* @__PURE__ */ jsxs107("div", { children: [
16221
- /* @__PURE__ */ jsx178(CardTitle, { children: t("auth.two_factor.title") }),
16222
- /* @__PURE__ */ jsx178(CardDescription, { children: isEnabled ? t("auth.two_factor.enabled_description") : t("auth.two_factor.disabled_description") })
16239
+ /* @__PURE__ */ jsx179(CardTitle, { children: t("auth.two_factor.title") }),
16240
+ /* @__PURE__ */ jsx179(CardDescription, { children: isEnabled ? t("auth.two_factor.enabled_description") : t("auth.two_factor.disabled_description") })
16223
16241
  ] })
16224
16242
  ] }) }),
16225
16243
  /* @__PURE__ */ jsxs107(CardContent, { className: "space-y-6", children: [
16226
16244
  /* @__PURE__ */ jsxs107("div", { className: "space-y-4", children: [
16227
16245
  /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16228
16246
  /* @__PURE__ */ jsxs107("div", { children: [
16229
- /* @__PURE__ */ jsx178("h3", { className: "font-medium", children: t("auth.two_factor.authenticator_apps") }),
16230
- /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.authenticator_apps_description") })
16247
+ /* @__PURE__ */ jsx179("h3", { className: "font-medium", children: t("auth.two_factor.authenticator_apps") }),
16248
+ /* @__PURE__ */ jsx179("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.authenticator_apps_description") })
16231
16249
  ] }),
16232
- /* @__PURE__ */ jsx178(TotpSetupDialog, { onSuccess: handleRefresh })
16250
+ /* @__PURE__ */ jsx179(TotpSetupDialog, { onSuccess: handleRefresh })
16233
16251
  ] }),
16234
- /* @__PURE__ */ jsx178(TotpAuthenticatorList, { authenticators, onDelete: handleRefresh })
16252
+ /* @__PURE__ */ jsx179(TotpAuthenticatorList, { authenticators, onDelete: handleRefresh })
16235
16253
  ] }),
16236
- /* @__PURE__ */ jsx178(Separator, {}),
16254
+ /* @__PURE__ */ jsx179(Separator, {}),
16237
16255
  /* @__PURE__ */ jsxs107("div", { className: "space-y-4", children: [
16238
16256
  /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16239
16257
  /* @__PURE__ */ jsxs107("div", { children: [
16240
- /* @__PURE__ */ jsx178("h3", { className: "font-medium", children: t("auth.two_factor.passkeys") }),
16241
- /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.passkeys_description") })
16258
+ /* @__PURE__ */ jsx179("h3", { className: "font-medium", children: t("auth.two_factor.passkeys") }),
16259
+ /* @__PURE__ */ jsx179("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.passkeys_description") })
16242
16260
  ] }),
16243
- /* @__PURE__ */ jsx178(Button, { variant: "outline", onClick: () => setPasskeyDialogOpen(true), children: t("auth.two_factor.add_passkey") })
16261
+ /* @__PURE__ */ jsx179(Button, { variant: "outline", onClick: () => setPasskeyDialogOpen(true), children: t("auth.two_factor.add_passkey") })
16244
16262
  ] }),
16245
- /* @__PURE__ */ jsx178(PasskeyList, { passkeys, onRefresh: handleRefresh })
16263
+ /* @__PURE__ */ jsx179(PasskeyList, { passkeys, onRefresh: handleRefresh })
16246
16264
  ] }),
16247
- /* @__PURE__ */ jsx178(PasskeySetupDialog, { open: passkeyDialogOpen, onOpenChange: setPasskeyDialogOpen, onSuccess: handleRefresh }),
16248
- /* @__PURE__ */ jsx178(Separator, {}),
16249
- /* @__PURE__ */ jsx178("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16265
+ /* @__PURE__ */ jsx179(PasskeySetupDialog, { open: passkeyDialogOpen, onOpenChange: setPasskeyDialogOpen, onSuccess: handleRefresh }),
16266
+ /* @__PURE__ */ jsx179(Separator, {}),
16267
+ /* @__PURE__ */ jsx179("div", { className: "space-y-4", children: /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16250
16268
  /* @__PURE__ */ jsxs107("div", { children: [
16251
- /* @__PURE__ */ jsx178("h3", { className: "font-medium", children: t("auth.two_factor.backup_codes") }),
16252
- /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.backup_codes_description") })
16269
+ /* @__PURE__ */ jsx179("h3", { className: "font-medium", children: t("auth.two_factor.backup_codes") }),
16270
+ /* @__PURE__ */ jsx179("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.backup_codes_description") })
16253
16271
  ] }),
16254
- /* @__PURE__ */ jsx178(BackupCodesDialog, { remainingCodes: status?.backupCodesCount ?? 0, onRegenerate: handleRefresh })
16272
+ /* @__PURE__ */ jsx179(BackupCodesDialog, { remainingCodes: status?.backupCodesCount ?? 0, onRegenerate: handleRefresh })
16255
16273
  ] }) }),
16256
16274
  !isEnabled && (authenticators.length > 0 || passkeys.length > 0) && /* @__PURE__ */ jsxs107(Fragment31, { children: [
16257
- /* @__PURE__ */ jsx178(Separator, {}),
16275
+ /* @__PURE__ */ jsx179(Separator, {}),
16258
16276
  /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16259
16277
  /* @__PURE__ */ jsxs107("div", { children: [
16260
- /* @__PURE__ */ jsx178("h3", { className: "font-medium text-green-600", children: t("auth.two_factor.enable_2fa") }),
16261
- /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.enable_description") })
16278
+ /* @__PURE__ */ jsx179("h3", { className: "font-medium text-green-600", children: t("auth.two_factor.enable_2fa") }),
16279
+ /* @__PURE__ */ jsx179("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.enable_description") })
16262
16280
  ] }),
16263
- /* @__PURE__ */ jsx178(Button, { onClick: handleEnable2FA, disabled: isEnabling, children: isEnabling ? t("common.loading") : t("auth.two_factor.enable_button") })
16281
+ /* @__PURE__ */ jsx179(Button, { onClick: handleEnable2FA, disabled: isEnabling, children: isEnabling ? t("common.loading") : t("auth.two_factor.enable_button") })
16264
16282
  ] })
16265
16283
  ] }),
16266
16284
  isEnabled && /* @__PURE__ */ jsxs107(Fragment31, { children: [
16267
- /* @__PURE__ */ jsx178(Separator, {}),
16285
+ /* @__PURE__ */ jsx179(Separator, {}),
16268
16286
  /* @__PURE__ */ jsxs107("div", { className: "flex items-center justify-between", children: [
16269
16287
  /* @__PURE__ */ jsxs107("div", { children: [
16270
- /* @__PURE__ */ jsx178("h3", { className: "font-medium text-destructive", children: t("auth.two_factor.disable_2fa") }),
16271
- /* @__PURE__ */ jsx178("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.disable_warning") })
16288
+ /* @__PURE__ */ jsx179("h3", { className: "font-medium text-destructive", children: t("auth.two_factor.disable_2fa") }),
16289
+ /* @__PURE__ */ jsx179("p", { className: "text-sm text-muted-foreground", children: t("auth.two_factor.disable_warning") })
16272
16290
  ] }),
16273
- /* @__PURE__ */ jsx178(DisableTwoFactorDialog, { onSuccess: handleRefresh })
16291
+ /* @__PURE__ */ jsx179(DisableTwoFactorDialog, { onSuccess: handleRefresh })
16274
16292
  ] })
16275
16293
  ] })
16276
16294
  ] })
@@ -16279,9 +16297,9 @@ function TwoFactorSettings() {
16279
16297
  __name(TwoFactorSettings, "TwoFactorSettings");
16280
16298
 
16281
16299
  // src/features/auth/components/containers/SecurityContainer.tsx
16282
- import { jsx as jsx179 } from "react/jsx-runtime";
16300
+ import { jsx as jsx180 } from "react/jsx-runtime";
16283
16301
  function SecurityContainer() {
16284
- return /* @__PURE__ */ jsx179("div", { className: "space-y-6", children: /* @__PURE__ */ jsx179(TwoFactorSettings, {}) });
16302
+ return /* @__PURE__ */ jsx180("div", { className: "space-y-6", children: /* @__PURE__ */ jsx180(TwoFactorSettings, {}) });
16285
16303
  }
16286
16304
  __name(SecurityContainer, "SecurityContainer");
16287
16305
 
@@ -16290,7 +16308,7 @@ import { useTranslations as useTranslations66 } from "next-intl";
16290
16308
  import Image9 from "next/image";
16291
16309
 
16292
16310
  // src/features/auth/components/buttons/GoogleSignInButton.tsx
16293
- import { jsx as jsx180, jsxs as jsxs108 } from "react/jsx-runtime";
16311
+ import { jsx as jsx181, jsxs as jsxs108 } from "react/jsx-runtime";
16294
16312
  function GoogleSignInButton({ referralCode }) {
16295
16313
  if (!isGoogleAuthEnabled()) {
16296
16314
  return null;
@@ -16300,7 +16318,7 @@ function GoogleSignInButton({ referralCode }) {
16300
16318
  if (!referralCode) return baseUrl;
16301
16319
  return `${baseUrl}?referral=${encodeURIComponent(referralCode)}`;
16302
16320
  }, "buildGoogleOAuthUrl");
16303
- return /* @__PURE__ */ jsx180(Link, { href: buildGoogleOAuthUrl(), className: "flex w-full justify-end", children: /* @__PURE__ */ jsxs108(
16321
+ return /* @__PURE__ */ jsx181(Link, { href: buildGoogleOAuthUrl(), className: "flex w-full justify-end", children: /* @__PURE__ */ jsxs108(
16304
16322
  Button,
16305
16323
  {
16306
16324
  className: "w-full bg-white hover:bg-gray-50 text-gray-700 border border-gray-300",
@@ -16308,28 +16326,28 @@ function GoogleSignInButton({ referralCode }) {
16308
16326
  "data-testid": "page-login-button-google",
16309
16327
  children: [
16310
16328
  /* @__PURE__ */ jsxs108("svg", { className: "mr-2 h-5 w-5", viewBox: "0 0 24 24", children: [
16311
- /* @__PURE__ */ jsx180(
16329
+ /* @__PURE__ */ jsx181(
16312
16330
  "path",
16313
16331
  {
16314
16332
  fill: "#4285F4",
16315
16333
  d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
16316
16334
  }
16317
16335
  ),
16318
- /* @__PURE__ */ jsx180(
16336
+ /* @__PURE__ */ jsx181(
16319
16337
  "path",
16320
16338
  {
16321
16339
  fill: "#34A853",
16322
16340
  d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
16323
16341
  }
16324
16342
  ),
16325
- /* @__PURE__ */ jsx180(
16343
+ /* @__PURE__ */ jsx181(
16326
16344
  "path",
16327
16345
  {
16328
16346
  fill: "#FBBC05",
16329
16347
  d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
16330
16348
  }
16331
16349
  ),
16332
- /* @__PURE__ */ jsx180(
16350
+ /* @__PURE__ */ jsx181(
16333
16351
  "path",
16334
16352
  {
16335
16353
  fill: "#EA4335",
@@ -16345,33 +16363,33 @@ function GoogleSignInButton({ referralCode }) {
16345
16363
  __name(GoogleSignInButton, "GoogleSignInButton");
16346
16364
 
16347
16365
  // src/features/auth/components/details/LandingComponent.tsx
16348
- import { Fragment as Fragment32, jsx as jsx181, jsxs as jsxs109 } from "react/jsx-runtime";
16366
+ import { Fragment as Fragment32, jsx as jsx182, jsxs as jsxs109 } from "react/jsx-runtime";
16349
16367
  function LandingComponent() {
16350
16368
  const t = useTranslations66();
16351
16369
  const { setComponentType } = useAuthContext();
16352
16370
  return /* @__PURE__ */ jsxs109(Fragment32, { children: [
16353
16371
  /* @__PURE__ */ jsxs109(CardHeader, { className: "mb-4", "data-testid": "page-pre-login-container", children: [
16354
16372
  /* @__PURE__ */ jsxs109(CardTitle, { className: "text-primary flex flex-col items-center gap-y-8 pb-8 text-4xl", children: [
16355
- /* @__PURE__ */ jsx181(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16373
+ /* @__PURE__ */ jsx182(Image9, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16356
16374
  t(`common.title`)
16357
16375
  ] }),
16358
- /* @__PURE__ */ jsx181(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
16376
+ /* @__PURE__ */ jsx182(CardDescription, { className: "flex w-full justify-center text-center text-sm", children: t(`common.description`) })
16359
16377
  ] }),
16360
16378
  /* @__PURE__ */ jsxs109(CardFooter, { className: "mt-4 flex w-full flex-col justify-between gap-y-4", children: [
16361
16379
  isInternalAuthEnabled() && /* @__PURE__ */ jsxs109(Fragment32, { children: [
16362
- isRegistrationAllowed() && /* @__PURE__ */ jsx181(
16380
+ isRegistrationAllowed() && /* @__PURE__ */ jsx182(
16363
16381
  Link,
16364
16382
  {
16365
16383
  href: "#",
16366
16384
  className: "flex w-full justify-start",
16367
16385
  onClick: () => setComponentType(5 /* Register */),
16368
- children: /* @__PURE__ */ jsx181(Button, { className: "w-full", variant: `default`, children: t(`auth.buttons.register`) })
16386
+ children: /* @__PURE__ */ jsx182(Button, { className: "w-full", variant: `default`, children: t(`auth.buttons.register`) })
16369
16387
  }
16370
16388
  ),
16371
- /* @__PURE__ */ jsx181(Link, { href: "#", className: "flex w-full justify-end", onClick: () => setComponentType(0 /* Login */), children: /* @__PURE__ */ jsx181(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: t(`auth.buttons.login`) }) })
16389
+ /* @__PURE__ */ jsx182(Link, { href: "#", className: "flex w-full justify-end", onClick: () => setComponentType(0 /* Login */), children: /* @__PURE__ */ jsx182(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: t(`auth.buttons.login`) }) })
16372
16390
  ] }),
16373
- isGoogleAuthEnabled() && /* @__PURE__ */ jsx181(GoogleSignInButton, {}),
16374
- isDiscordAuthEnabled() && /* @__PURE__ */ jsx181(Link, { href: `${getPublicApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx181(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) })
16391
+ isGoogleAuthEnabled() && /* @__PURE__ */ jsx182(GoogleSignInButton, {}),
16392
+ isDiscordAuthEnabled() && /* @__PURE__ */ jsx182(Link, { href: `${getPublicApiUrl()}auth/discord`, className: "flex w-full justify-end", children: /* @__PURE__ */ jsx182(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) })
16375
16393
  ] })
16376
16394
  ] });
16377
16395
  }
@@ -16384,7 +16402,7 @@ import Image10 from "next/image";
16384
16402
  import { useEffect as useEffect52, useState as useState67 } from "react";
16385
16403
  import { useForm as useForm6 } from "react-hook-form";
16386
16404
  import { z as z6 } from "zod";
16387
- import { Fragment as Fragment33, jsx as jsx182, jsxs as jsxs110 } from "react/jsx-runtime";
16405
+ import { Fragment as Fragment33, jsx as jsx183, jsxs as jsxs110 } from "react/jsx-runtime";
16388
16406
  function AcceptInvitation() {
16389
16407
  const { setComponentType, params, setParams } = useAuthContext();
16390
16408
  const [showConfirmation, setShowConfirmation] = useState67(false);
@@ -16450,13 +16468,13 @@ function AcceptInvitation() {
16450
16468
  return /* @__PURE__ */ jsxs110(Fragment33, { children: [
16451
16469
  /* @__PURE__ */ jsxs110(CardHeader, { children: [
16452
16470
  /* @__PURE__ */ jsxs110(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16453
- /* @__PURE__ */ jsx182(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16471
+ /* @__PURE__ */ jsx183(Image10, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16454
16472
  t("auth.accept_invitation")
16455
16473
  ] }),
16456
- /* @__PURE__ */ jsx182(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx182(Fragment33, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx182(Fragment33, { children: t("auth.select_password") }) })
16474
+ /* @__PURE__ */ jsx183(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx183(Fragment33, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx183(Fragment33, { children: t("auth.select_password") }) })
16457
16475
  ] }),
16458
- /* @__PURE__ */ jsx182(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx182(CardDescription, { className: "text-center text-xl", children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx182(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx182(Form, { ...form, children: /* @__PURE__ */ jsxs110("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16459
- /* @__PURE__ */ jsx182(
16476
+ /* @__PURE__ */ jsx183(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx183(CardDescription, { className: "text-center text-xl", children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx183(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx183(Form, { ...form, children: /* @__PURE__ */ jsxs110("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16477
+ /* @__PURE__ */ jsx183(
16460
16478
  FormPassword,
16461
16479
  {
16462
16480
  form,
@@ -16465,7 +16483,7 @@ function AcceptInvitation() {
16465
16483
  placeholder: t(`user.fields.password.placeholder`)
16466
16484
  }
16467
16485
  ),
16468
- /* @__PURE__ */ jsx182(
16486
+ /* @__PURE__ */ jsx183(
16469
16487
  FormPassword,
16470
16488
  {
16471
16489
  form,
@@ -16474,7 +16492,7 @@ function AcceptInvitation() {
16474
16492
  placeholder: t(`auth.fields.retype_password.placeholder`)
16475
16493
  }
16476
16494
  ),
16477
- /* @__PURE__ */ jsx182(Button, { className: "mt-4 w-full", type: "submit", children: t("auth.accept_invitation") })
16495
+ /* @__PURE__ */ jsx183(Button, { className: "mt-4 w-full", type: "submit", children: t("auth.accept_invitation") })
16478
16496
  ] }) }) })
16479
16497
  ] });
16480
16498
  }
@@ -16484,7 +16502,7 @@ __name(AcceptInvitation, "AcceptInvitation");
16484
16502
  import { useTranslations as useTranslations68 } from "next-intl";
16485
16503
  import Image11 from "next/image";
16486
16504
  import { useEffect as useEffect53, useState as useState68 } from "react";
16487
- import { Fragment as Fragment34, jsx as jsx183, jsxs as jsxs111 } from "react/jsx-runtime";
16505
+ import { Fragment as Fragment34, jsx as jsx184, jsxs as jsxs111 } from "react/jsx-runtime";
16488
16506
  function ActivateAccount() {
16489
16507
  const { setComponentType, params, setParams } = useAuthContext();
16490
16508
  const [showConfirmation, setShowConfirmation] = useState68(false);
@@ -16520,12 +16538,12 @@ function ActivateAccount() {
16520
16538
  return /* @__PURE__ */ jsxs111(Fragment34, { children: [
16521
16539
  /* @__PURE__ */ jsxs111(CardHeader, { children: [
16522
16540
  /* @__PURE__ */ jsxs111(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16523
- /* @__PURE__ */ jsx183(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16541
+ /* @__PURE__ */ jsx184(Image11, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16524
16542
  t("auth.accept_invitation")
16525
16543
  ] }),
16526
- /* @__PURE__ */ jsx183(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx183(Fragment34, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx183(Fragment34, { children: " " }) })
16544
+ /* @__PURE__ */ jsx184(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx184(Fragment34, { children: t("auth.errors.activating_account") }) : /* @__PURE__ */ jsx184(Fragment34, { children: " " }) })
16527
16545
  ] }),
16528
- /* @__PURE__ */ jsx183(CardContent, { children: /* @__PURE__ */ jsx183(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx183(Fragment34, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx183(Fragment34, { children: error }) : /* @__PURE__ */ jsx183(Fragment34, { children: t("auth.activation_wait") }) }) })
16546
+ /* @__PURE__ */ jsx184(CardContent, { children: /* @__PURE__ */ jsx184(CardDescription, { className: "text-center text-xl", children: showConfirmation ? /* @__PURE__ */ jsx184(Fragment34, { children: t("auth.activation_description") }) : error ? /* @__PURE__ */ jsx184(Fragment34, { children: error }) : /* @__PURE__ */ jsx184(Fragment34, { children: t("auth.activation_wait") }) }) })
16529
16547
  ] });
16530
16548
  }
16531
16549
  __name(ActivateAccount, "ActivateAccount");
@@ -16562,7 +16580,7 @@ import Image12 from "next/image";
16562
16580
  import { useState as useState70 } from "react";
16563
16581
  import { useForm as useForm7 } from "react-hook-form";
16564
16582
  import { z as z7 } from "zod";
16565
- import { Fragment as Fragment35, jsx as jsx184, jsxs as jsxs112 } from "react/jsx-runtime";
16583
+ import { Fragment as Fragment35, jsx as jsx185, jsxs as jsxs112 } from "react/jsx-runtime";
16566
16584
  function ForgotPassword() {
16567
16585
  const t = useTranslations69();
16568
16586
  const { setComponentType } = useAuthContext();
@@ -16592,14 +16610,14 @@ function ForgotPassword() {
16592
16610
  return /* @__PURE__ */ jsxs112(Fragment35, { children: [
16593
16611
  /* @__PURE__ */ jsxs112(CardHeader, { "data-testid": "page-forgot-password-container", children: [
16594
16612
  /* @__PURE__ */ jsxs112(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16595
- /* @__PURE__ */ jsx184(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16613
+ /* @__PURE__ */ jsx185(Image12, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16596
16614
  t("auth.buttons.forgot_password")
16597
16615
  ] }),
16598
- /* @__PURE__ */ jsx184(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx184(Fragment35, { children: " " }) : /* @__PURE__ */ jsx184(Fragment35, { children: t(`auth.add_email_to_reset`) }) })
16616
+ /* @__PURE__ */ jsx185(CardDescription, { className: "text-sm", children: showConfirmation ? /* @__PURE__ */ jsx185(Fragment35, { children: " " }) : /* @__PURE__ */ jsx185(Fragment35, { children: t(`auth.add_email_to_reset`) }) })
16599
16617
  ] }),
16600
- showConfirmation ? /* @__PURE__ */ jsx184(CardContent, { children: /* @__PURE__ */ jsx184(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_confirmation`) }) }) : /* @__PURE__ */ jsx184(Form, { ...form, children: /* @__PURE__ */ jsxs112("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16618
+ showConfirmation ? /* @__PURE__ */ jsx185(CardContent, { children: /* @__PURE__ */ jsx185(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_confirmation`) }) }) : /* @__PURE__ */ jsx185(Form, { ...form, children: /* @__PURE__ */ jsxs112("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16601
16619
  /* @__PURE__ */ jsxs112(CardContent, { children: [
16602
- /* @__PURE__ */ jsx184(
16620
+ /* @__PURE__ */ jsx185(
16603
16621
  FormInput,
16604
16622
  {
16605
16623
  form,
@@ -16609,9 +16627,9 @@ function ForgotPassword() {
16609
16627
  testId: "form-forgot-password-input-email"
16610
16628
  }
16611
16629
  ),
16612
- /* @__PURE__ */ jsx184(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-forgot-password-button-reset", children: t(`auth.buttons.reset_password`) })
16630
+ /* @__PURE__ */ jsx185(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-forgot-password-button-reset", children: t(`auth.buttons.reset_password`) })
16613
16631
  ] }),
16614
- /* @__PURE__ */ jsx184(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx184(
16632
+ /* @__PURE__ */ jsx185(CardFooter, { className: "flex w-full flex-row justify-between", children: /* @__PURE__ */ jsx185(
16615
16633
  Link,
16616
16634
  {
16617
16635
  href: "#",
@@ -16634,7 +16652,7 @@ import { useRouter, useSearchParams as useSearchParams3 } from "next/navigation"
16634
16652
  import { useEffect as useEffect55, useState as useState71 } from "react";
16635
16653
  import { useForm as useForm8 } from "react-hook-form";
16636
16654
  import { z as z8 } from "zod";
16637
- import { Fragment as Fragment36, jsx as jsx185, jsxs as jsxs113 } from "react/jsx-runtime";
16655
+ import { Fragment as Fragment36, jsx as jsx186, jsxs as jsxs113 } from "react/jsx-runtime";
16638
16656
  function Login() {
16639
16657
  const t = useTranslations70();
16640
16658
  const { setUser } = useCurrentUserContext();
@@ -16703,14 +16721,14 @@ function Login() {
16703
16721
  return /* @__PURE__ */ jsxs113(Fragment36, { children: [
16704
16722
  /* @__PURE__ */ jsxs113(CardHeader, { "data-testid": "page-login-container", children: [
16705
16723
  /* @__PURE__ */ jsxs113(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16706
- /* @__PURE__ */ jsx185(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16724
+ /* @__PURE__ */ jsx186(Image13, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16707
16725
  t("auth.buttons.login")
16708
16726
  ] }),
16709
- /* @__PURE__ */ jsx185(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
16727
+ /* @__PURE__ */ jsx186(CardDescription, { className: "text-sm", children: t(`auth.login_description`) })
16710
16728
  ] }),
16711
- /* @__PURE__ */ jsx185(Form, { ...form, children: /* @__PURE__ */ jsxs113("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16712
- /* @__PURE__ */ jsx185(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs113(Fragment36, { children: [
16713
- /* @__PURE__ */ jsx185(
16729
+ /* @__PURE__ */ jsx186(Form, { ...form, children: /* @__PURE__ */ jsxs113("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16730
+ /* @__PURE__ */ jsx186(CardContent, { children: isInternalAuthEnabled() && /* @__PURE__ */ jsxs113(Fragment36, { children: [
16731
+ /* @__PURE__ */ jsx186(
16714
16732
  FormInput,
16715
16733
  {
16716
16734
  autoFocus: true,
@@ -16721,7 +16739,7 @@ function Login() {
16721
16739
  testId: "form-login-input-email"
16722
16740
  }
16723
16741
  ),
16724
- /* @__PURE__ */ jsx185(
16742
+ /* @__PURE__ */ jsx186(
16725
16743
  FormPassword,
16726
16744
  {
16727
16745
  form,
@@ -16731,13 +16749,13 @@ function Login() {
16731
16749
  testId: "form-login-input-password"
16732
16750
  }
16733
16751
  ),
16734
- /* @__PURE__ */ jsx185(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-login-button-submit", children: t(`auth.buttons.login`) })
16752
+ /* @__PURE__ */ jsx186(Button, { className: "mt-4 w-full", type: "submit", "data-testid": "form-login-button-submit", children: t(`auth.buttons.login`) })
16735
16753
  ] }) }),
16736
16754
  /* @__PURE__ */ jsxs113(CardFooter, { className: "flex w-full flex-col gap-y-4 mt-4", children: [
16737
- isGoogleAuthEnabled() && /* @__PURE__ */ jsx185(GoogleSignInButton, { referralCode }),
16738
- isDiscordAuthEnabled() && /* @__PURE__ */ jsx185(Link, { href: buildDiscordOAuthUrl(), className: "flex w-full justify-end", children: /* @__PURE__ */ jsx185(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) }),
16755
+ isGoogleAuthEnabled() && /* @__PURE__ */ jsx186(GoogleSignInButton, { referralCode }),
16756
+ isDiscordAuthEnabled() && /* @__PURE__ */ jsx186(Link, { href: buildDiscordOAuthUrl(), className: "flex w-full justify-end", children: /* @__PURE__ */ jsx186(Button, { className: "w-full", variant: `outline`, "data-testid": "page-login-button-initial-login", children: "Login with Discord" }) }),
16739
16757
  /* @__PURE__ */ jsxs113("div", { className: "flex w-full flex-row justify-between", children: [
16740
- /* @__PURE__ */ jsx185(
16758
+ /* @__PURE__ */ jsx186(
16741
16759
  Link,
16742
16760
  {
16743
16761
  href: "#",
@@ -16746,7 +16764,7 @@ function Login() {
16746
16764
  children: t(`auth.buttons.register`)
16747
16765
  }
16748
16766
  ),
16749
- /* @__PURE__ */ jsx185(
16767
+ /* @__PURE__ */ jsx186(
16750
16768
  Link,
16751
16769
  {
16752
16770
  href: "#",
@@ -16776,7 +16794,7 @@ function clearClientStorage(keys) {
16776
16794
  __name(clearClientStorage, "clearClientStorage");
16777
16795
 
16778
16796
  // src/features/auth/components/forms/Logout.tsx
16779
- import { Fragment as Fragment37, jsx as jsx186 } from "react/jsx-runtime";
16797
+ import { Fragment as Fragment37, jsx as jsx187 } from "react/jsx-runtime";
16780
16798
  function Logout({ storageKeys }) {
16781
16799
  const generateUrl = usePageUrlGenerator();
16782
16800
  useEffect56(() => {
@@ -16789,7 +16807,7 @@ function Logout({ storageKeys }) {
16789
16807
  }, "logOut");
16790
16808
  logOut();
16791
16809
  }, []);
16792
- return /* @__PURE__ */ jsx186(Fragment37, {});
16810
+ return /* @__PURE__ */ jsx187(Fragment37, {});
16793
16811
  }
16794
16812
  __name(Logout, "Logout");
16795
16813
 
@@ -16830,7 +16848,7 @@ import Image14 from "next/image";
16830
16848
  import { useEffect as useEffect58, useState as useState72 } from "react";
16831
16849
  import { useForm as useForm9 } from "react-hook-form";
16832
16850
  import { z as z9 } from "zod";
16833
- import { Fragment as Fragment38, jsx as jsx187, jsxs as jsxs114 } from "react/jsx-runtime";
16851
+ import { Fragment as Fragment38, jsx as jsx188, jsxs as jsxs114 } from "react/jsx-runtime";
16834
16852
  function ResetPassword() {
16835
16853
  const { setComponentType, params, setParams } = useAuthContext();
16836
16854
  const [showConfirmation, setShowConfirmation] = useState72(false);
@@ -16896,15 +16914,15 @@ function ResetPassword() {
16896
16914
  return /* @__PURE__ */ jsxs114(Fragment38, { children: [
16897
16915
  /* @__PURE__ */ jsxs114(CardHeader, { children: [
16898
16916
  /* @__PURE__ */ jsxs114(CardTitle, { className: "text-primary flex flex-col items-center pb-10 text-4xl", children: [
16899
- /* @__PURE__ */ jsx187(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16917
+ /* @__PURE__ */ jsx188(Image14, { src: "/logo.webp", alt: "Logo", width: 100, height: 100, priority: true }),
16900
16918
  t(`auth.password_reset`)
16901
16919
  ] }),
16902
- /* @__PURE__ */ jsx187(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx187(Fragment38, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx187(Fragment38, { children: t(`auth.reset_password`) }) })
16920
+ /* @__PURE__ */ jsx188(CardDescription, { className: "text-center text-sm", children: error ? /* @__PURE__ */ jsx188(Fragment38, { children: t(`auth.errors.password_reset_error`) }) : /* @__PURE__ */ jsx188(Fragment38, { children: t(`auth.reset_password`) }) })
16903
16921
  ] }),
16904
- /* @__PURE__ */ jsx187(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx187(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_success_description`) }) : error ? /* @__PURE__ */ jsx187(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx187(Form, { ...form, children: /* @__PURE__ */ jsxs114("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16905
- /* @__PURE__ */ jsx187(FormPassword, { form, id: "password", name: "Password" }),
16906
- /* @__PURE__ */ jsx187(FormPassword, { form, id: "passwordRetype", name: "Retype Password" }),
16907
- /* @__PURE__ */ jsx187(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.reset_password`) })
16922
+ /* @__PURE__ */ jsx188(CardContent, { children: showConfirmation ? /* @__PURE__ */ jsx188(CardDescription, { className: "text-center text-xl", children: t(`auth.reset_success_description`) }) : error ? /* @__PURE__ */ jsx188(CardDescription, { className: "text-center text-xl", children: error }) : /* @__PURE__ */ jsx188(Form, { ...form, children: /* @__PURE__ */ jsxs114("form", { onSubmit: form.handleSubmit(onSubmit), children: [
16923
+ /* @__PURE__ */ jsx188(FormPassword, { form, id: "password", name: "Password" }),
16924
+ /* @__PURE__ */ jsx188(FormPassword, { form, id: "passwordRetype", name: "Retype Password" }),
16925
+ /* @__PURE__ */ jsx188(Button, { className: "mt-4 w-full", type: "submit", children: t(`auth.buttons.reset_password`) })
16908
16926
  ] }) }) })
16909
16927
  ] });
16910
16928
  }
@@ -16921,7 +16939,7 @@ import { startAuthentication } from "@simplewebauthn/browser";
16921
16939
  import { useTranslations as useTranslations72 } from "next-intl";
16922
16940
  import { useState as useState73 } from "react";
16923
16941
  import { v4 as v49 } from "uuid";
16924
- import { jsx as jsx188 } from "react/jsx-runtime";
16942
+ import { jsx as jsx189 } from "react/jsx-runtime";
16925
16943
  function PasskeyButton({ pendingToken, onSuccess, onError, disabled = false }) {
16926
16944
  const t = useTranslations72();
16927
16945
  const [isLoading, setIsLoading] = useState73(false);
@@ -16943,7 +16961,7 @@ function PasskeyButton({ pendingToken, onSuccess, onError, disabled = false }) {
16943
16961
  setIsLoading(false);
16944
16962
  }
16945
16963
  }, "handleClick");
16946
- return /* @__PURE__ */ jsx188(
16964
+ return /* @__PURE__ */ jsx189(
16947
16965
  Button,
16948
16966
  {
16949
16967
  type: "button",
@@ -16959,7 +16977,7 @@ function PasskeyButton({ pendingToken, onSuccess, onError, disabled = false }) {
16959
16977
  __name(PasskeyButton, "PasskeyButton");
16960
16978
 
16961
16979
  // src/features/auth/components/forms/TwoFactorChallenge.tsx
16962
- import { Fragment as Fragment39, jsx as jsx189, jsxs as jsxs115 } from "react/jsx-runtime";
16980
+ import { Fragment as Fragment39, jsx as jsx190, jsxs as jsxs115 } from "react/jsx-runtime";
16963
16981
  function TwoFactorChallenge() {
16964
16982
  const t = useTranslations73();
16965
16983
  const { setUser } = useCurrentUserContext();
@@ -17041,22 +17059,22 @@ function TwoFactorChallenge() {
17041
17059
  const hasBackup = availableMethods.includes("backup");
17042
17060
  return /* @__PURE__ */ jsxs115(Fragment39, { children: [
17043
17061
  /* @__PURE__ */ jsxs115(CardHeader, { "data-testid": "page-2fa-challenge", children: [
17044
- /* @__PURE__ */ jsx189(CardTitle, { className: "text-primary text-2xl", children: t("auth.two_factor.verification_required") }),
17045
- /* @__PURE__ */ jsx189(CardDescription, { children: t("auth.two_factor.enter_verification_code") })
17062
+ /* @__PURE__ */ jsx190(CardTitle, { className: "text-primary text-2xl", children: t("auth.two_factor.verification_required") }),
17063
+ /* @__PURE__ */ jsx190(CardDescription, { children: t("auth.two_factor.enter_verification_code") })
17046
17064
  ] }),
17047
- /* @__PURE__ */ jsx189(CardContent, { children: /* @__PURE__ */ jsxs115(Tabs, { defaultValue: hasTotp ? "totp" : hasPasskey ? "passkey" : "backup", children: [
17065
+ /* @__PURE__ */ jsx190(CardContent, { children: /* @__PURE__ */ jsxs115(Tabs, { defaultValue: hasTotp ? "totp" : hasPasskey ? "passkey" : "backup", children: [
17048
17066
  /* @__PURE__ */ jsxs115(TabsList, { className: "grid w-full grid-cols-3", children: [
17049
- hasTotp && /* @__PURE__ */ jsx189(TabsTrigger, { value: "totp", "data-testid": "tab-totp", children: t("auth.two_factor.authenticator") }),
17050
- hasPasskey && /* @__PURE__ */ jsx189(TabsTrigger, { value: "passkey", "data-testid": "tab-passkey", children: t("auth.two_factor.passkey") }),
17051
- hasBackup && /* @__PURE__ */ jsx189(TabsTrigger, { value: "backup", "data-testid": "tab-backup", children: t("auth.two_factor.backup_code") })
17067
+ hasTotp && /* @__PURE__ */ jsx190(TabsTrigger, { value: "totp", "data-testid": "tab-totp", children: t("auth.two_factor.authenticator") }),
17068
+ hasPasskey && /* @__PURE__ */ jsx190(TabsTrigger, { value: "passkey", "data-testid": "tab-passkey", children: t("auth.two_factor.passkey") }),
17069
+ hasBackup && /* @__PURE__ */ jsx190(TabsTrigger, { value: "backup", "data-testid": "tab-backup", children: t("auth.two_factor.backup_code") })
17052
17070
  ] }),
17053
- hasTotp && /* @__PURE__ */ jsx189(TabsContent, { value: "totp", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17054
- /* @__PURE__ */ jsx189("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_authenticator_code") }),
17055
- /* @__PURE__ */ jsx189(TotpInput, { onComplete: handleTotpComplete, disabled: isVerifying, error: totpError })
17071
+ hasTotp && /* @__PURE__ */ jsx190(TabsContent, { value: "totp", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17072
+ /* @__PURE__ */ jsx190("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_authenticator_code") }),
17073
+ /* @__PURE__ */ jsx190(TotpInput, { onComplete: handleTotpComplete, disabled: isVerifying, error: totpError })
17056
17074
  ] }) }),
17057
- hasPasskey && /* @__PURE__ */ jsx189(TabsContent, { value: "passkey", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17058
- /* @__PURE__ */ jsx189("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.use_passkey_description") }),
17059
- /* @__PURE__ */ jsx189(
17075
+ hasPasskey && /* @__PURE__ */ jsx190(TabsContent, { value: "passkey", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17076
+ /* @__PURE__ */ jsx190("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.use_passkey_description") }),
17077
+ /* @__PURE__ */ jsx190(
17060
17078
  PasskeyButton,
17061
17079
  {
17062
17080
  pendingToken: pendingTwoFactor.pendingToken,
@@ -17066,9 +17084,9 @@ function TwoFactorChallenge() {
17066
17084
  }
17067
17085
  )
17068
17086
  ] }) }),
17069
- hasBackup && /* @__PURE__ */ jsx189(TabsContent, { value: "backup", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17070
- /* @__PURE__ */ jsx189("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_backup_code") }),
17071
- /* @__PURE__ */ jsx189(
17087
+ hasBackup && /* @__PURE__ */ jsx190(TabsContent, { value: "backup", className: "mt-6", children: /* @__PURE__ */ jsxs115("div", { className: "flex flex-col items-center gap-4", children: [
17088
+ /* @__PURE__ */ jsx190("p", { className: "text-sm text-muted-foreground text-center", children: t("auth.two_factor.enter_backup_code") }),
17089
+ /* @__PURE__ */ jsx190(
17072
17090
  Input,
17073
17091
  {
17074
17092
  type: "text",
@@ -17081,8 +17099,8 @@ function TwoFactorChallenge() {
17081
17099
  "data-testid": "backup-code-input"
17082
17100
  }
17083
17101
  ),
17084
- backupError && /* @__PURE__ */ jsx189("p", { className: "text-sm text-destructive", children: backupError }),
17085
- /* @__PURE__ */ jsx189(
17102
+ backupError && /* @__PURE__ */ jsx190("p", { className: "text-sm text-destructive", children: backupError }),
17103
+ /* @__PURE__ */ jsx190(
17086
17104
  Button,
17087
17105
  {
17088
17106
  onClick: handleBackupSubmit,
@@ -17099,12 +17117,12 @@ __name(TwoFactorChallenge, "TwoFactorChallenge");
17099
17117
 
17100
17118
  // src/features/content/components/lists/ContentsList.tsx
17101
17119
  import { useTranslations as useTranslations74 } from "next-intl";
17102
- import { jsx as jsx190, jsxs as jsxs116 } from "react/jsx-runtime";
17120
+ import { jsx as jsx191, jsxs as jsxs116 } from "react/jsx-runtime";
17103
17121
  function ContentsList({ contentList }) {
17104
17122
  const t = useTranslations74();
17105
17123
  return /* @__PURE__ */ jsxs116("div", { className: "flex min-h-0 w-full flex-col overflow-y-auto", children: [
17106
- /* @__PURE__ */ jsx190("h2", { className: "text-xl font-semibold", children: t(`content.news`) }),
17107
- /* @__PURE__ */ jsx190("div", { className: "flex flex-col", children: contentList.map((content) => /* @__PURE__ */ jsx190(ContentsListElement, { content }, content.id)) })
17124
+ /* @__PURE__ */ jsx191("h2", { className: "text-xl font-semibold", children: t(`content.news`) }),
17125
+ /* @__PURE__ */ jsx191("div", { className: "flex flex-col", children: contentList.map((content) => /* @__PURE__ */ jsx191(ContentsListElement, { content }, content.id)) })
17108
17126
  ] });
17109
17127
  }
17110
17128
  __name(ContentsList, "ContentsList");
@@ -17112,25 +17130,25 @@ function ContentsListElement({ content }) {
17112
17130
  const generateUrl = usePageUrlGenerator();
17113
17131
  const contentModule = content.contentType ? Modules.findByModelName(content.contentType) : void 0;
17114
17132
  const link = contentModule ? generateUrl({ page: contentModule, id: content.id }) : "#";
17115
- return /* @__PURE__ */ jsx190("div", { className: "hover:bg-muted flex w-full flex-col gap-y-2 border-b p-2 py-4", children: /* @__PURE__ */ jsxs116("div", { className: "flex w-full justify-between gap-x-2", children: [
17133
+ return /* @__PURE__ */ jsx191("div", { className: "hover:bg-muted flex w-full flex-col gap-y-2 border-b p-2 py-4", children: /* @__PURE__ */ jsxs116("div", { className: "flex w-full justify-between gap-x-2", children: [
17116
17134
  /* @__PURE__ */ jsxs116(HoverCard, { children: [
17117
- /* @__PURE__ */ jsx190(HoverCardTrigger, { children: /* @__PURE__ */ jsxs116(Link, { href: link, className: "flex w-full items-center justify-start gap-2 font-semibold", children: [
17135
+ /* @__PURE__ */ jsx191(HoverCardTrigger, { children: /* @__PURE__ */ jsxs116(Link, { href: link, className: "flex w-full items-center justify-start gap-2 font-semibold", children: [
17118
17136
  contentModule && getIconByModule({ module: contentModule, className: "h-4 w-4" }),
17119
17137
  content.name
17120
17138
  ] }) }),
17121
17139
  /* @__PURE__ */ jsxs116(HoverCardContent, { className: "flex max-h-96 w-96 flex-col gap-y-4 overflow-y-auto", children: [
17122
- /* @__PURE__ */ jsx190(Link, { href: link, className: "font-semibold", children: content.name }),
17123
- /* @__PURE__ */ jsx190("div", { className: "text-xs", children: content.abstract })
17140
+ /* @__PURE__ */ jsx191(Link, { href: link, className: "font-semibold", children: content.name }),
17141
+ /* @__PURE__ */ jsx191("div", { className: "text-xs", children: content.abstract })
17124
17142
  ] })
17125
17143
  ] }),
17126
- /* @__PURE__ */ jsx190(ContributorsList, { content })
17144
+ /* @__PURE__ */ jsx191(ContributorsList, { content })
17127
17145
  ] }) });
17128
17146
  }
17129
17147
  __name(ContentsListElement, "ContentsListElement");
17130
17148
 
17131
17149
  // src/features/content/components/lists/ContentsListById.tsx
17132
17150
  import { useTranslations as useTranslations75 } from "next-intl";
17133
- import { jsx as jsx191 } from "react/jsx-runtime";
17151
+ import { jsx as jsx192 } from "react/jsx-runtime";
17134
17152
  function ContentsListById({ contentIds }) {
17135
17153
  const t = useTranslations75();
17136
17154
  const data = useDataListRetriever({
@@ -17138,7 +17156,7 @@ function ContentsListById({ contentIds }) {
17138
17156
  retriever: /* @__PURE__ */ __name((params) => ContentService.findMany(params), "retriever"),
17139
17157
  retrieverParams: { contentIds }
17140
17158
  });
17141
- return /* @__PURE__ */ jsx191(
17159
+ return /* @__PURE__ */ jsx192(
17142
17160
  ContentListTable,
17143
17161
  {
17144
17162
  data,
@@ -17152,7 +17170,7 @@ __name(ContentsListById, "ContentsListById");
17152
17170
 
17153
17171
  // src/features/content/components/lists/RelevantContentsList.tsx
17154
17172
  import { useTranslations as useTranslations76 } from "next-intl";
17155
- import { jsx as jsx192 } from "react/jsx-runtime";
17173
+ import { jsx as jsx193 } from "react/jsx-runtime";
17156
17174
  function RelevantContentsList({ id }) {
17157
17175
  const t = useTranslations76();
17158
17176
  const data = useDataListRetriever({
@@ -17160,7 +17178,7 @@ function RelevantContentsList({ id }) {
17160
17178
  retriever: /* @__PURE__ */ __name((params) => ContentService.findRelevant(params), "retriever"),
17161
17179
  retrieverParams: { id }
17162
17180
  });
17163
- return /* @__PURE__ */ jsx192(
17181
+ return /* @__PURE__ */ jsx193(
17164
17182
  ContentListTable,
17165
17183
  {
17166
17184
  data,
@@ -17249,7 +17267,7 @@ function extractHeadings(blocks) {
17249
17267
  __name(extractHeadings, "extractHeadings");
17250
17268
 
17251
17269
  // src/features/how-to/components/containers/HowToCommandViewer.tsx
17252
- import { jsx as jsx193, jsxs as jsxs117 } from "react/jsx-runtime";
17270
+ import { jsx as jsx194, jsxs as jsxs117 } from "react/jsx-runtime";
17253
17271
  function HowToCommandViewer({ howTo, onBack, onStartChat }) {
17254
17272
  const t = useTranslations77();
17255
17273
  const readingTime = useMemo27(() => calculateReadingTime(howTo.description), [howTo.description]);
@@ -17257,17 +17275,17 @@ function HowToCommandViewer({ howTo, onBack, onStartChat }) {
17257
17275
  return /* @__PURE__ */ jsxs117("div", { className: "flex h-full flex-col", children: [
17258
17276
  /* @__PURE__ */ jsxs117("div", { className: "flex items-center gap-3 border-b px-4 py-3", children: [
17259
17277
  /* @__PURE__ */ jsxs117(Button, { variant: "ghost", size: "sm", onClick: onBack, className: "h-8 px-2", children: [
17260
- /* @__PURE__ */ jsx193(ArrowLeft, { className: "h-4 w-4" }),
17261
- /* @__PURE__ */ jsx193("span", { className: "ml-1", children: t("howto.command.back") })
17278
+ /* @__PURE__ */ jsx194(ArrowLeft, { className: "h-4 w-4" }),
17279
+ /* @__PURE__ */ jsx194("span", { className: "ml-1", children: t("howto.command.back") })
17262
17280
  ] }),
17263
- /* @__PURE__ */ jsx193("h2", { className: "flex-1 truncate text-lg font-semibold", children: howTo.name }),
17281
+ /* @__PURE__ */ jsx194("h2", { className: "flex-1 truncate text-lg font-semibold", children: howTo.name }),
17264
17282
  /* @__PURE__ */ jsxs117("div", { className: "text-muted-foreground flex items-center gap-1.5 text-sm", children: [
17265
- /* @__PURE__ */ jsx193(BookOpen, { className: "h-4 w-4" }),
17266
- /* @__PURE__ */ jsx193("span", { children: t("howto.reading_time.label", { minutes: readingTime }) })
17283
+ /* @__PURE__ */ jsx194(BookOpen, { className: "h-4 w-4" }),
17284
+ /* @__PURE__ */ jsx194("span", { children: t("howto.reading_time.label", { minutes: readingTime }) })
17267
17285
  ] })
17268
17286
  ] }),
17269
17287
  /* @__PURE__ */ jsxs117("div", { className: "flex min-h-0 flex-1", children: [
17270
- headings.length > 0 && /* @__PURE__ */ jsx193("div", { className: "w-50 shrink-0 overflow-y-auto border-r p-4", children: /* @__PURE__ */ jsx193("nav", { className: "space-y-1", children: headings.map((heading) => /* @__PURE__ */ jsx193(
17288
+ headings.length > 0 && /* @__PURE__ */ jsx194("div", { className: "w-50 shrink-0 overflow-y-auto border-r p-4", children: /* @__PURE__ */ jsx194("nav", { className: "space-y-1", children: headings.map((heading) => /* @__PURE__ */ jsx194(
17271
17289
  "a",
17272
17290
  {
17273
17291
  href: `#${heading.id}`,
@@ -17277,10 +17295,10 @@ function HowToCommandViewer({ howTo, onBack, onStartChat }) {
17277
17295
  },
17278
17296
  heading.id
17279
17297
  )) }) }),
17280
- /* @__PURE__ */ jsx193("div", { id: "howto-viewer-content", className: "min-w-0 flex-1 overflow-y-auto p-4", children: /* @__PURE__ */ jsx193(BlockNoteEditorContainer, { id: howTo.id, type: "howto", initialContent: howTo.description }) })
17298
+ /* @__PURE__ */ jsx194("div", { id: "howto-viewer-content", className: "min-w-0 flex-1 overflow-y-auto p-4", children: /* @__PURE__ */ jsx194(BlockNoteEditorContainer, { id: howTo.id, type: "howto", initialContent: howTo.description }) })
17281
17299
  ] }),
17282
- onStartChat && /* @__PURE__ */ jsx193("div", { className: "flex items-center justify-end gap-2 border-t px-4 py-3", children: /* @__PURE__ */ jsxs117(Button, { onClick: onStartChat, variant: "default", size: "sm", children: [
17283
- /* @__PURE__ */ jsx193(MessageSquare, { className: "mr-2 h-4 w-4" }),
17300
+ onStartChat && /* @__PURE__ */ jsx194("div", { className: "flex items-center justify-end gap-2 border-t px-4 py-3", children: /* @__PURE__ */ jsxs117(Button, { onClick: onStartChat, variant: "default", size: "sm", children: [
17301
+ /* @__PURE__ */ jsx194(MessageSquare, { className: "mr-2 h-4 w-4" }),
17284
17302
  t("howto.command.chat_button")
17285
17303
  ] }) })
17286
17304
  ] });
@@ -17288,7 +17306,7 @@ function HowToCommandViewer({ howTo, onBack, onStartChat }) {
17288
17306
  __name(HowToCommandViewer, "HowToCommandViewer");
17289
17307
 
17290
17308
  // src/features/how-to/components/containers/HowToCommand.tsx
17291
- import { Fragment as Fragment40, jsx as jsx194, jsxs as jsxs118 } from "react/jsx-runtime";
17309
+ import { Fragment as Fragment40, jsx as jsx195, jsxs as jsxs118 } from "react/jsx-runtime";
17292
17310
  function matchPage(pathname, pattern) {
17293
17311
  if (pattern.includes(":")) {
17294
17312
  const pathSegments = pathname.split("/").filter(Boolean);
@@ -17368,12 +17386,12 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
17368
17386
  onClick: () => setDialogOpen(true),
17369
17387
  className: "text-muted-foreground",
17370
17388
  children: [
17371
- /* @__PURE__ */ jsx194(LifeBuoyIcon, {}),
17372
- /* @__PURE__ */ jsx194("span", { children: t(`howto.command.trigger`) })
17389
+ /* @__PURE__ */ jsx195(LifeBuoyIcon, {}),
17390
+ /* @__PURE__ */ jsx195("span", { children: t(`howto.command.trigger`) })
17373
17391
  ]
17374
17392
  }
17375
17393
  ),
17376
- /* @__PURE__ */ jsx194(
17394
+ /* @__PURE__ */ jsx195(
17377
17395
  Dialog,
17378
17396
  {
17379
17397
  open: dialogOpen,
@@ -17388,10 +17406,10 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
17388
17406
  className: `flex flex-col gap-0 overflow-hidden p-0 ${selectedHowTo ? "h-[80vh] max-w-3xl" : "max-w-lg"}`,
17389
17407
  children: [
17390
17408
  /* @__PURE__ */ jsxs118(DialogHeader, { className: "sr-only", children: [
17391
- /* @__PURE__ */ jsx194(DialogTitle, { children: selectedHowTo ? selectedHowTo.name : t("howto.command.title") }),
17392
- /* @__PURE__ */ jsx194(DialogDescription, { children: " " })
17409
+ /* @__PURE__ */ jsx195(DialogTitle, { children: selectedHowTo ? selectedHowTo.name : t("howto.command.title") }),
17410
+ /* @__PURE__ */ jsx195(DialogDescription, { children: " " })
17393
17411
  ] }),
17394
- selectedHowTo ? /* @__PURE__ */ jsx194(
17412
+ selectedHowTo ? /* @__PURE__ */ jsx195(
17395
17413
  HowToCommandViewer,
17396
17414
  {
17397
17415
  howTo: selectedHowTo,
@@ -17404,7 +17422,7 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
17404
17422
  shouldFilter: false,
17405
17423
  className: "[&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",
17406
17424
  children: [
17407
- /* @__PURE__ */ jsx194(
17425
+ /* @__PURE__ */ jsx195(
17408
17426
  CommandInput,
17409
17427
  {
17410
17428
  onKeyDown: (e) => {
@@ -17419,28 +17437,28 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
17419
17437
  }
17420
17438
  ),
17421
17439
  /* @__PURE__ */ jsxs118(CommandList, { className: "max-h-[60vh] overflow-y-auto", children: [
17422
- /* @__PURE__ */ jsx194(CommandEmpty, { children: t(`howto.command.empty`) }),
17440
+ /* @__PURE__ */ jsx195(CommandEmpty, { children: t(`howto.command.empty`) }),
17423
17441
  !searchTerm && extraGroups,
17424
- relevantHowTos.length > 0 && /* @__PURE__ */ jsx194(CommandGroup, { heading: t(`howto.command.relevant`), children: relevantHowTos.map((howTo) => /* @__PURE__ */ jsxs118(CommandItem, { onSelect: () => setSelectedHowTo(howTo), className: "cursor-pointer", children: [
17425
- /* @__PURE__ */ jsx194(ArrowRight, { className: "h-4 w-4" }),
17426
- /* @__PURE__ */ jsx194("span", { children: howTo.name })
17442
+ relevantHowTos.length > 0 && /* @__PURE__ */ jsx195(CommandGroup, { heading: t(`howto.command.relevant`), children: relevantHowTos.map((howTo) => /* @__PURE__ */ jsxs118(CommandItem, { onSelect: () => setSelectedHowTo(howTo), className: "cursor-pointer", children: [
17443
+ /* @__PURE__ */ jsx195(ArrowRight, { className: "h-4 w-4" }),
17444
+ /* @__PURE__ */ jsx195("span", { children: howTo.name })
17427
17445
  ] }, howTo.id)) }),
17428
- otherHowTos.length > 0 && /* @__PURE__ */ jsx194(CommandGroup, { heading: searchTerm ? void 0 : t(`howto.command.all`), children: otherHowTos.map((howTo) => /* @__PURE__ */ jsxs118(CommandItem, { onSelect: () => setSelectedHowTo(howTo), className: "cursor-pointer", children: [
17429
- /* @__PURE__ */ jsx194(ArrowRight, { className: "h-4 w-4" }),
17430
- /* @__PURE__ */ jsx194("span", { children: howTo.name })
17446
+ otherHowTos.length > 0 && /* @__PURE__ */ jsx195(CommandGroup, { heading: searchTerm ? void 0 : t(`howto.command.all`), children: otherHowTos.map((howTo) => /* @__PURE__ */ jsxs118(CommandItem, { onSelect: () => setSelectedHowTo(howTo), className: "cursor-pointer", children: [
17447
+ /* @__PURE__ */ jsx195(ArrowRight, { className: "h-4 w-4" }),
17448
+ /* @__PURE__ */ jsx195("span", { children: howTo.name })
17431
17449
  ] }, howTo.id)) })
17432
17450
  ] }),
17433
17451
  /* @__PURE__ */ jsxs118("div", { className: "text-muted-foreground flex items-center justify-center gap-4 border-t px-3 py-2 text-xs", children: [
17434
17452
  /* @__PURE__ */ jsxs118("span", { className: "flex items-center gap-1", children: [
17435
- /* @__PURE__ */ jsx194("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: "\u23CE" }),
17453
+ /* @__PURE__ */ jsx195("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: "\u23CE" }),
17436
17454
  t(`howto.command.keyboard.select`)
17437
17455
  ] }),
17438
17456
  /* @__PURE__ */ jsxs118("span", { className: "flex items-center gap-1", children: [
17439
- /* @__PURE__ */ jsx194("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: "\u2191\u2193" }),
17457
+ /* @__PURE__ */ jsx195("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: "\u2191\u2193" }),
17440
17458
  t(`howto.command.keyboard.navigate`)
17441
17459
  ] }),
17442
17460
  /* @__PURE__ */ jsxs118("span", { className: "flex items-center gap-1", children: [
17443
- /* @__PURE__ */ jsx194("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: t(`howto.keyboard.esc`) }),
17461
+ /* @__PURE__ */ jsx195("kbd", { className: "bg-muted rounded border px-1.5 py-0.5 font-mono text-[10px]", children: t(`howto.keyboard.esc`) }),
17444
17462
  t(`howto.command.keyboard.close`)
17445
17463
  ] })
17446
17464
  ] })
@@ -17457,28 +17475,28 @@ function HowToCommand({ pathname, extraGroups, onStartChat }) {
17457
17475
  __name(HowToCommand, "HowToCommand");
17458
17476
 
17459
17477
  // src/features/how-to/components/details/HowToContent.tsx
17460
- import { jsx as jsx195 } from "react/jsx-runtime";
17478
+ import { jsx as jsx196 } from "react/jsx-runtime";
17461
17479
  function HowToContent() {
17462
17480
  const { howTo } = useHowToContext();
17463
17481
  if (!howTo) return null;
17464
- return /* @__PURE__ */ jsx195(Card, { className: "flex w-full flex-col p-4", children: /* @__PURE__ */ jsx195(BlockNoteEditorContainer, { id: howTo.id, type: "howto", initialContent: howTo.description }) });
17482
+ return /* @__PURE__ */ jsx196(Card, { className: "flex w-full flex-col p-4", children: /* @__PURE__ */ jsx196(BlockNoteEditorContainer, { id: howTo.id, type: "howto", initialContent: howTo.description }) });
17465
17483
  }
17466
17484
  __name(HowToContent, "HowToContent");
17467
17485
 
17468
17486
  // src/features/how-to/components/details/HowToDetails.tsx
17469
17487
  import { useTranslations as useTranslations79 } from "next-intl";
17470
- import { jsx as jsx196, jsxs as jsxs119 } from "react/jsx-runtime";
17488
+ import { jsx as jsx197, jsxs as jsxs119 } from "react/jsx-runtime";
17471
17489
  function HowToDetailsInternal({ howTo }) {
17472
17490
  const t = useTranslations79();
17473
17491
  const { title } = useSharedContext();
17474
17492
  const pagesList = HowTo.parsePagesFromString(howTo.pages);
17475
17493
  return /* @__PURE__ */ jsxs119("div", { className: "flex w-full flex-col gap-y-4", children: [
17476
- /* @__PURE__ */ jsx196(ContentTitle, { type: title.type, element: title.element, functions: title.functions, module: Modules.HowTo }),
17477
- pagesList.length > 0 && /* @__PURE__ */ jsx196("div", { className: "border-t pt-4", children: /* @__PURE__ */ jsx196(
17494
+ /* @__PURE__ */ jsx197(ContentTitle, { type: title.type, element: title.element, functions: title.functions, module: Modules.HowTo }),
17495
+ pagesList.length > 0 && /* @__PURE__ */ jsx197("div", { className: "border-t pt-4", children: /* @__PURE__ */ jsx197(
17478
17496
  AttributeElement,
17479
17497
  {
17480
17498
  title: t(`howto.fields.pages.label`),
17481
- value: /* @__PURE__ */ jsx196("ul", { className: "flex flex-col gap-y-1", children: pagesList.map((page, index) => /* @__PURE__ */ jsx196("li", { children: /* @__PURE__ */ jsx196(Link, { href: page, className: "text-primary", children: page }) }, index)) })
17499
+ value: /* @__PURE__ */ jsx197("ul", { className: "flex flex-col gap-y-1", children: pagesList.map((page, index) => /* @__PURE__ */ jsx197("li", { children: /* @__PURE__ */ jsx197(Link, { href: page, className: "text-primary", children: page }) }, index)) })
17482
17500
  }
17483
17501
  ) })
17484
17502
  ] });
@@ -17487,20 +17505,20 @@ __name(HowToDetailsInternal, "HowToDetailsInternal");
17487
17505
  function HowToDetails() {
17488
17506
  const { howTo } = useHowToContext();
17489
17507
  if (!howTo) return null;
17490
- return /* @__PURE__ */ jsx196(HowToDetailsInternal, { howTo });
17508
+ return /* @__PURE__ */ jsx197(HowToDetailsInternal, { howTo });
17491
17509
  }
17492
17510
  __name(HowToDetails, "HowToDetails");
17493
17511
 
17494
17512
  // src/features/how-to/components/containers/HowToContainer.tsx
17495
- import { jsx as jsx197 } from "react/jsx-runtime";
17513
+ import { jsx as jsx198 } from "react/jsx-runtime";
17496
17514
  function HowToContainerInternal({ howTo }) {
17497
- return /* @__PURE__ */ jsx197(RoundPageContainer, { module: Modules.HowTo, details: /* @__PURE__ */ jsx197(HowToDetails, {}), children: /* @__PURE__ */ jsx197(HowToContent, {}) });
17515
+ return /* @__PURE__ */ jsx198(RoundPageContainer, { module: Modules.HowTo, details: /* @__PURE__ */ jsx198(HowToDetails, {}), children: /* @__PURE__ */ jsx198(HowToContent, {}) });
17498
17516
  }
17499
17517
  __name(HowToContainerInternal, "HowToContainerInternal");
17500
17518
  function HowToContainer() {
17501
17519
  const { howTo } = useHowToContext();
17502
17520
  if (!howTo) return null;
17503
- return /* @__PURE__ */ jsx197(HowToContainerInternal, { howTo });
17521
+ return /* @__PURE__ */ jsx198(HowToContainerInternal, { howTo });
17504
17522
  }
17505
17523
  __name(HowToContainer, "HowToContainer");
17506
17524
 
@@ -17510,7 +17528,7 @@ import { useTranslations as useTranslations81 } from "next-intl";
17510
17528
  // src/features/how-to/hooks/useHowToTableStructure.tsx
17511
17529
  import { useTranslations as useTranslations80 } from "next-intl";
17512
17530
  import { useMemo as useMemo29 } from "react";
17513
- import { Fragment as Fragment41, jsx as jsx198 } from "react/jsx-runtime";
17531
+ import { Fragment as Fragment41, jsx as jsx199 } from "react/jsx-runtime";
17514
17532
  var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
17515
17533
  const t = useTranslations80();
17516
17534
  const generateUrl = usePageUrlGenerator();
@@ -17538,7 +17556,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
17538
17556
  header: t(`howto.fields.name.label`),
17539
17557
  cell: /* @__PURE__ */ __name(({ row }) => {
17540
17558
  const howTo = row.original.jsonApiData;
17541
- return /* @__PURE__ */ jsx198(Link, { href: generateUrl({ page: Modules.HowTo, id: howTo.id }), children: howTo.name });
17559
+ return /* @__PURE__ */ jsx199(Link, { href: generateUrl({ page: Modules.HowTo, id: howTo.id }), children: howTo.name });
17542
17560
  }, "cell"),
17543
17561
  enableSorting: false,
17544
17562
  enableHiding: false
@@ -17547,7 +17565,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
17547
17565
  id: "description",
17548
17566
  accessorKey: "description",
17549
17567
  header: t(`howto.fields.description.label`),
17550
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx198(Fragment41, { children: row.getValue("description") }), "cell"),
17568
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx199(Fragment41, { children: row.getValue("description") }), "cell"),
17551
17569
  enableSorting: false,
17552
17570
  enableHiding: false
17553
17571
  }),
@@ -17555,7 +17573,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
17555
17573
  id: "pages",
17556
17574
  accessorKey: "pages",
17557
17575
  header: t(`howto.fields.pages.label`),
17558
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx198(Fragment41, { children: row.getValue("pages") }), "cell"),
17576
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx199(Fragment41, { children: row.getValue("pages") }), "cell"),
17559
17577
  enableSorting: false,
17560
17578
  enableHiding: false
17561
17579
  }),
@@ -17576,7 +17594,7 @@ var useHowToTableStructure = /* @__PURE__ */ __name((params) => {
17576
17594
  registerTableGenerator("howtos", useHowToTableStructure);
17577
17595
 
17578
17596
  // src/features/how-to/components/lists/HowToList.tsx
17579
- import { jsx as jsx199 } from "react/jsx-runtime";
17597
+ import { jsx as jsx200 } from "react/jsx-runtime";
17580
17598
  function HowToList({ fullWidth }) {
17581
17599
  const t = useTranslations81();
17582
17600
  const data = useDataListRetriever({
@@ -17584,8 +17602,8 @@ function HowToList({ fullWidth }) {
17584
17602
  retriever: /* @__PURE__ */ __name((params) => HowToService.findMany(params), "retriever"),
17585
17603
  retrieverParams: {}
17586
17604
  });
17587
- const functions = [/* @__PURE__ */ jsx199(HowToEditor, {}, "create-how-to")];
17588
- return /* @__PURE__ */ jsx199(
17605
+ const functions = [/* @__PURE__ */ jsx200(HowToEditor, {}, "create-how-to")];
17606
+ return /* @__PURE__ */ jsx200(
17589
17607
  ContentListTable,
17590
17608
  {
17591
17609
  data,
@@ -17600,19 +17618,19 @@ function HowToList({ fullWidth }) {
17600
17618
  __name(HowToList, "HowToList");
17601
17619
 
17602
17620
  // src/features/how-to/components/containers/HowToListContainer.tsx
17603
- import { jsx as jsx200 } from "react/jsx-runtime";
17621
+ import { jsx as jsx201 } from "react/jsx-runtime";
17604
17622
  function HowToListContainerInternal() {
17605
- return /* @__PURE__ */ jsx200(RoundPageContainer, { module: Modules.HowTo, fullWidth: true, children: /* @__PURE__ */ jsx200(HowToList, { fullWidth: true }) });
17623
+ return /* @__PURE__ */ jsx201(RoundPageContainer, { module: Modules.HowTo, fullWidth: true, children: /* @__PURE__ */ jsx201(HowToList, { fullWidth: true }) });
17606
17624
  }
17607
17625
  __name(HowToListContainerInternal, "HowToListContainerInternal");
17608
17626
  function HowToListContainer() {
17609
- return /* @__PURE__ */ jsx200(HowToListContainerInternal, {});
17627
+ return /* @__PURE__ */ jsx201(HowToListContainerInternal, {});
17610
17628
  }
17611
17629
  __name(HowToListContainer, "HowToListContainer");
17612
17630
 
17613
17631
  // src/features/how-to/components/forms/HowToMultiSelector.tsx
17614
17632
  import { useTranslations as useTranslations82 } from "next-intl";
17615
- import { jsx as jsx201 } from "react/jsx-runtime";
17633
+ import { jsx as jsx202 } from "react/jsx-runtime";
17616
17634
  function HowToMultiSelector({
17617
17635
  id,
17618
17636
  form,
@@ -17623,7 +17641,7 @@ function HowToMultiSelector({
17623
17641
  isRequired = false
17624
17642
  }) {
17625
17643
  const t = useTranslations82();
17626
- return /* @__PURE__ */ jsx201(
17644
+ return /* @__PURE__ */ jsx202(
17627
17645
  EntityMultiSelector,
17628
17646
  {
17629
17647
  id,
@@ -17646,7 +17664,7 @@ __name(HowToMultiSelector, "HowToMultiSelector");
17646
17664
  import { CircleX as CircleX2, RefreshCwIcon as RefreshCwIcon3, SearchIcon as SearchIcon6, XIcon as XIcon10 } from "lucide-react";
17647
17665
  import { useTranslations as useTranslations83 } from "next-intl";
17648
17666
  import { useCallback as useCallback38, useEffect as useEffect60, useRef as useRef31, useState as useState76 } from "react";
17649
- import { Fragment as Fragment42, jsx as jsx202, jsxs as jsxs120 } from "react/jsx-runtime";
17667
+ import { Fragment as Fragment42, jsx as jsx203, jsxs as jsxs120 } from "react/jsx-runtime";
17650
17668
  function HowToSelector({
17651
17669
  id,
17652
17670
  form,
@@ -17698,10 +17716,10 @@ function HowToSelector({
17698
17716
  setOpen(false);
17699
17717
  }, 0);
17700
17718
  }, "setHowTo");
17701
- return /* @__PURE__ */ jsx202("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx202(FormFieldWrapper, { form, name: id, label, isRequired, children: (field) => /* @__PURE__ */ jsxs120(Popover, { open, onOpenChange: setOpen, modal: true, children: [
17719
+ return /* @__PURE__ */ jsx203("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx203(FormFieldWrapper, { form, name: id, label, isRequired, children: (field) => /* @__PURE__ */ jsxs120(Popover, { open, onOpenChange: setOpen, modal: true, children: [
17702
17720
  /* @__PURE__ */ jsxs120("div", { className: "flex w-full flex-row items-center justify-between", children: [
17703
- /* @__PURE__ */ jsx202(PopoverTrigger, { className: "w-full", children: /* @__PURE__ */ jsx202("div", { className: "flex w-full flex-row items-center justify-start rounded-md", children: field.value ? /* @__PURE__ */ jsx202("div", { className: "bg-input/20 dark:bg-input/30 border-input flex h-7 w-full flex-row items-center justify-start rounded-md border px-2 py-0.5 text-sm md:text-xs/relaxed", children: /* @__PURE__ */ jsx202("span", { children: field.value?.name ?? "" }) }) : /* @__PURE__ */ jsx202("div", { className: "bg-input/20 dark:bg-input/30 border-input text-muted-foreground flex h-7 w-full flex-row items-center justify-start rounded-md border px-2 py-0.5 text-sm md:text-xs/relaxed", children: placeholder ?? t(`generic.search.placeholder`, { type: t(`entities.howtos`, { count: 1 }) }) }) }) }),
17704
- field.value && /* @__PURE__ */ jsx202(
17721
+ /* @__PURE__ */ jsx203(PopoverTrigger, { className: "w-full", children: /* @__PURE__ */ jsx203("div", { className: "flex w-full flex-row items-center justify-start rounded-md", children: field.value ? /* @__PURE__ */ jsx203("div", { className: "bg-input/20 dark:bg-input/30 border-input flex h-7 w-full flex-row items-center justify-start rounded-md border px-2 py-0.5 text-sm md:text-xs/relaxed", children: /* @__PURE__ */ jsx203("span", { children: field.value?.name ?? "" }) }) : /* @__PURE__ */ jsx203("div", { className: "bg-input/20 dark:bg-input/30 border-input text-muted-foreground flex h-7 w-full flex-row items-center justify-start rounded-md border px-2 py-0.5 text-sm md:text-xs/relaxed", children: placeholder ?? t(`generic.search.placeholder`, { type: t(`entities.howtos`, { count: 1 }) }) }) }) }),
17722
+ field.value && /* @__PURE__ */ jsx203(
17705
17723
  CircleX2,
17706
17724
  {
17707
17725
  className: "text-muted hover:text-destructive ml-2 h-4 w-4 shrink-0 cursor-pointer",
@@ -17709,10 +17727,10 @@ function HowToSelector({
17709
17727
  }
17710
17728
  )
17711
17729
  ] }),
17712
- /* @__PURE__ */ jsx202(PopoverContent, { align: "start", className: "w-(--anchor-width)", children: /* @__PURE__ */ jsxs120(Command, { shouldFilter: false, children: [
17730
+ /* @__PURE__ */ jsx203(PopoverContent, { align: "start", className: "w-(--anchor-width)", children: /* @__PURE__ */ jsxs120(Command, { shouldFilter: false, children: [
17713
17731
  /* @__PURE__ */ jsxs120("div", { className: "relative mb-2 w-full", children: [
17714
- /* @__PURE__ */ jsx202(SearchIcon6, { className: "text-muted-foreground absolute top-2.5 left-2.5 h-4 w-4" }),
17715
- /* @__PURE__ */ jsx202(
17732
+ /* @__PURE__ */ jsx203(SearchIcon6, { className: "text-muted-foreground absolute top-2.5 left-2.5 h-4 w-4" }),
17733
+ /* @__PURE__ */ jsx203(
17716
17734
  Input,
17717
17735
  {
17718
17736
  placeholder: t(`generic.search.placeholder`, { type: t(`entities.howtos`, { count: 1 }) }),
@@ -17722,7 +17740,7 @@ function HowToSelector({
17722
17740
  value: searchTerm
17723
17741
  }
17724
17742
  ),
17725
- isSearching ? /* @__PURE__ */ jsx202(RefreshCwIcon3, { className: "text-muted-foreground absolute top-2.5 right-2.5 h-4 w-4 animate-spin" }) : searchTermRef.current ? /* @__PURE__ */ jsx202(
17743
+ isSearching ? /* @__PURE__ */ jsx203(RefreshCwIcon3, { className: "text-muted-foreground absolute top-2.5 right-2.5 h-4 w-4 animate-spin" }) : searchTermRef.current ? /* @__PURE__ */ jsx203(
17726
17744
  XIcon10,
17727
17745
  {
17728
17746
  className: `absolute top-2.5 right-2.5 h-4 w-4 ${searchTermRef.current ? "cursor-pointer" : "text-muted-foreground"}`,
@@ -17731,9 +17749,9 @@ function HowToSelector({
17731
17749
  search("");
17732
17750
  }
17733
17751
  }
17734
- ) : /* @__PURE__ */ jsx202(Fragment42, {})
17752
+ ) : /* @__PURE__ */ jsx203(Fragment42, {})
17735
17753
  ] }),
17736
- /* @__PURE__ */ jsx202(CommandList, { children: data.data && data.data.length > 0 && data.data.map((howTo) => /* @__PURE__ */ jsx202(
17754
+ /* @__PURE__ */ jsx203(CommandList, { children: data.data && data.data.length > 0 && data.data.map((howTo) => /* @__PURE__ */ jsx203(
17737
17755
  CommandItem,
17738
17756
  {
17739
17757
  className: "cursor-pointer hover:bg-muted data-selected:hover:bg-muted bg-transparent data-selected:bg-transparent",
@@ -17772,15 +17790,15 @@ function groupThreadsByBucket(threads) {
17772
17790
  __name(groupThreadsByBucket, "groupThreadsByBucket");
17773
17791
 
17774
17792
  // src/features/assistant/components/parts/AssistantSidebar.tsx
17775
- import { Fragment as Fragment43, jsx as jsx203, jsxs as jsxs121 } from "react/jsx-runtime";
17793
+ import { Fragment as Fragment43, jsx as jsx204, jsxs as jsxs121 } from "react/jsx-runtime";
17776
17794
  function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
17777
17795
  const t = useTranslations84();
17778
17796
  const groups = groupThreadsByBucket(threads);
17779
17797
  const renderSection = /* @__PURE__ */ __name((label, items) => {
17780
17798
  if (items.length === 0) return null;
17781
17799
  return /* @__PURE__ */ jsxs121("div", { className: "mb-2", children: [
17782
- /* @__PURE__ */ jsx203("div", { className: "text-muted-foreground px-2 py-1 text-[10px] font-semibold uppercase tracking-wider", children: label }),
17783
- items.map((thread) => /* @__PURE__ */ jsx203(
17800
+ /* @__PURE__ */ jsx204("div", { className: "text-muted-foreground px-2 py-1 text-[10px] font-semibold uppercase tracking-wider", children: label }),
17801
+ items.map((thread) => /* @__PURE__ */ jsx204(
17784
17802
  "button",
17785
17803
  {
17786
17804
  type: "button",
@@ -17793,12 +17811,12 @@ function AssistantSidebar({ threads, activeId, onSelect, onNew }) {
17793
17811
  ] });
17794
17812
  }, "renderSection");
17795
17813
  return /* @__PURE__ */ jsxs121("aside", { className: "bg-muted/30 flex w-64 flex-col border-r", children: [
17796
- /* @__PURE__ */ jsx203("div", { className: "border-b p-3", children: /* @__PURE__ */ jsxs121(Button, { onClick: onNew, className: "w-full", size: "sm", children: [
17797
- /* @__PURE__ */ jsx203(Plus, { className: "mr-1 h-4 w-4" }),
17814
+ /* @__PURE__ */ jsx204("div", { className: "border-b p-3", children: /* @__PURE__ */ jsxs121(Button, { onClick: onNew, className: "w-full", size: "sm", children: [
17815
+ /* @__PURE__ */ jsx204(Plus, { className: "mr-1 h-4 w-4" }),
17798
17816
  " ",
17799
17817
  t("features.assistant.new")
17800
17818
  ] }) }),
17801
- /* @__PURE__ */ jsx203("div", { className: "flex-1 overflow-y-auto p-2", children: threads.length === 0 ? /* @__PURE__ */ jsx203("div", { className: "text-muted-foreground mt-6 text-center text-xs", children: t("features.assistant.empty_sidebar") }) : /* @__PURE__ */ jsxs121(Fragment43, { children: [
17819
+ /* @__PURE__ */ jsx204("div", { className: "flex-1 overflow-y-auto p-2", children: threads.length === 0 ? /* @__PURE__ */ jsx204("div", { className: "text-muted-foreground mt-6 text-center text-xs", children: t("features.assistant.empty_sidebar") }) : /* @__PURE__ */ jsxs121(Fragment43, { children: [
17802
17820
  renderSection(t("features.assistant.bucket_today"), groups.today),
17803
17821
  renderSection(t("features.assistant.bucket_week"), groups.thisWeek),
17804
17822
  renderSection(t("features.assistant.bucket_earlier"), groups.earlier)
@@ -17816,7 +17834,7 @@ import { Sparkles } from "lucide-react";
17816
17834
  import { useState as useState77 } from "react";
17817
17835
  import { useTranslations as useTranslations85 } from "next-intl";
17818
17836
  import { ArrowUp } from "lucide-react";
17819
- import { jsx as jsx204, jsxs as jsxs122 } from "react/jsx-runtime";
17837
+ import { jsx as jsx205, jsxs as jsxs122 } from "react/jsx-runtime";
17820
17838
  function AssistantComposer({ onSend, disabled, value: controlled, onValueChange }) {
17821
17839
  const t = useTranslations85();
17822
17840
  const [internal, setInternal] = useState77("");
@@ -17837,7 +17855,7 @@ function AssistantComposer({ onSend, disabled, value: controlled, onValueChange
17837
17855
  }, "onKeyDown");
17838
17856
  return /* @__PURE__ */ jsxs122("div", { className: "flex flex-col gap-1 border-t p-4", children: [
17839
17857
  /* @__PURE__ */ jsxs122("div", { className: "bg-muted/30 flex items-end gap-2 rounded-lg border p-2", children: [
17840
- /* @__PURE__ */ jsx204(
17858
+ /* @__PURE__ */ jsx205(
17841
17859
  Textarea,
17842
17860
  {
17843
17861
  value,
@@ -17850,32 +17868,32 @@ function AssistantComposer({ onSend, disabled, value: controlled, onValueChange
17850
17868
  }
17851
17869
  ),
17852
17870
  /* @__PURE__ */ jsxs122(Button, { onClick: submit, disabled: !canSend, size: "sm", className: "h-8", children: [
17853
- /* @__PURE__ */ jsx204(ArrowUp, { className: "mr-1 h-4 w-4" }),
17871
+ /* @__PURE__ */ jsx205(ArrowUp, { className: "mr-1 h-4 w-4" }),
17854
17872
  " ",
17855
17873
  t("ui.buttons.save")
17856
17874
  ] })
17857
17875
  ] }),
17858
- /* @__PURE__ */ jsx204("div", { className: "text-muted-foreground text-right text-xs", children: t("features.assistant.keyboard_hint") })
17876
+ /* @__PURE__ */ jsx205("div", { className: "text-muted-foreground text-right text-xs", children: t("features.assistant.keyboard_hint") })
17859
17877
  ] });
17860
17878
  }
17861
17879
  __name(AssistantComposer, "AssistantComposer");
17862
17880
 
17863
17881
  // src/features/assistant/components/parts/AssistantEmptyState.tsx
17864
- import { jsx as jsx205, jsxs as jsxs123 } from "react/jsx-runtime";
17882
+ import { jsx as jsx206, jsxs as jsxs123 } from "react/jsx-runtime";
17865
17883
  var STARTER_KEYS = ["a", "b", "c", "d"];
17866
17884
  function AssistantEmptyState({ onSend }) {
17867
17885
  const t = useTranslations86();
17868
17886
  const [draft, setDraft] = useState78("");
17869
- return /* @__PURE__ */ jsx205("div", { className: "flex h-full w-full items-center justify-center p-10", children: /* @__PURE__ */ jsxs123("div", { className: "flex w-full max-w-2xl flex-col gap-6", children: [
17887
+ return /* @__PURE__ */ jsx206("div", { className: "flex h-full w-full items-center justify-center p-10", children: /* @__PURE__ */ jsxs123("div", { className: "flex w-full max-w-2xl flex-col gap-6", children: [
17870
17888
  /* @__PURE__ */ jsxs123("div", { className: "text-center", children: [
17871
- /* @__PURE__ */ jsx205("div", { className: "mx-auto mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-blue-400 to-violet-500 text-white", children: /* @__PURE__ */ jsx205(Sparkles, { className: "h-5 w-5" }) }),
17872
- /* @__PURE__ */ jsx205("h3", { className: "text-foreground text-xl font-semibold", children: t("features.assistant.empty_state.title") }),
17873
- /* @__PURE__ */ jsx205("p", { className: "text-muted-foreground mt-1 text-sm", children: t("features.assistant.empty_state.subtitle") })
17889
+ /* @__PURE__ */ jsx206("div", { className: "mx-auto mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-gradient-to-br from-blue-400 to-violet-500 text-white", children: /* @__PURE__ */ jsx206(Sparkles, { className: "h-5 w-5" }) }),
17890
+ /* @__PURE__ */ jsx206("h3", { className: "text-foreground text-xl font-semibold", children: t("features.assistant.empty_state.title") }),
17891
+ /* @__PURE__ */ jsx206("p", { className: "text-muted-foreground mt-1 text-sm", children: t("features.assistant.empty_state.subtitle") })
17874
17892
  ] }),
17875
- /* @__PURE__ */ jsx205(AssistantComposer, { value: draft, onValueChange: setDraft, onSend }),
17876
- /* @__PURE__ */ jsx205("div", { className: "grid grid-cols-2 gap-2", children: STARTER_KEYS.map((k) => {
17893
+ /* @__PURE__ */ jsx206(AssistantComposer, { value: draft, onValueChange: setDraft, onSend }),
17894
+ /* @__PURE__ */ jsx206("div", { className: "grid grid-cols-2 gap-2", children: STARTER_KEYS.map((k) => {
17877
17895
  const text = t(`features.assistant.starters.${k}`);
17878
- return /* @__PURE__ */ jsx205(
17896
+ return /* @__PURE__ */ jsx206(
17879
17897
  "button",
17880
17898
  {
17881
17899
  type: "button",
@@ -17893,7 +17911,7 @@ __name(AssistantEmptyState, "AssistantEmptyState");
17893
17911
  // src/features/assistant/components/parts/AssistantThreadHeader.tsx
17894
17912
  import { useState as useState79 } from "react";
17895
17913
  import { useTranslations as useTranslations87 } from "next-intl";
17896
- import { jsx as jsx206, jsxs as jsxs124 } from "react/jsx-runtime";
17914
+ import { jsx as jsx207, jsxs as jsxs124 } from "react/jsx-runtime";
17897
17915
  function AssistantThreadHeader({ assistant, onRename, onDelete }) {
17898
17916
  const t = useTranslations87();
17899
17917
  const [renameValue, setRenameValue] = useState79(assistant.title);
@@ -17909,17 +17927,17 @@ function AssistantThreadHeader({ assistant, onRename, onDelete }) {
17909
17927
  setDeleteOpen(false);
17910
17928
  }, "handleDelete");
17911
17929
  return /* @__PURE__ */ jsxs124("div", { className: "flex items-center justify-between border-b px-5 py-3", children: [
17912
- /* @__PURE__ */ jsx206("div", { className: "text-foreground text-base font-semibold", children: assistant.title }),
17930
+ /* @__PURE__ */ jsx207("div", { className: "text-foreground text-base font-semibold", children: assistant.title }),
17913
17931
  /* @__PURE__ */ jsxs124("div", { className: "flex items-center gap-2", children: [
17914
17932
  /* @__PURE__ */ jsxs124(Popover, { open: renameOpen, onOpenChange: setRenameOpen, children: [
17915
- /* @__PURE__ */ jsx206(
17933
+ /* @__PURE__ */ jsx207(
17916
17934
  PopoverTrigger,
17917
17935
  {
17918
- render: /* @__PURE__ */ jsx206(Button, { variant: "outline", size: "sm", children: t("features.assistant.rename") })
17936
+ render: /* @__PURE__ */ jsx207(Button, { variant: "outline", size: "sm", children: t("features.assistant.rename") })
17919
17937
  }
17920
17938
  ),
17921
17939
  /* @__PURE__ */ jsxs124(PopoverContent, { className: "flex flex-col gap-2 p-3", children: [
17922
- /* @__PURE__ */ jsx206(
17940
+ /* @__PURE__ */ jsx207(
17923
17941
  Input,
17924
17942
  {
17925
17943
  value: renameValue,
@@ -17927,21 +17945,21 @@ function AssistantThreadHeader({ assistant, onRename, onDelete }) {
17927
17945
  placeholder: t("features.assistant.rename_placeholder")
17928
17946
  }
17929
17947
  ),
17930
- /* @__PURE__ */ jsx206(Button, { onClick: handleRename, size: "sm", children: t("ui.buttons.save") })
17948
+ /* @__PURE__ */ jsx207(Button, { onClick: handleRename, size: "sm", children: t("ui.buttons.save") })
17931
17949
  ] })
17932
17950
  ] }),
17933
17951
  /* @__PURE__ */ jsxs124(Dialog, { open: deleteOpen, onOpenChange: setDeleteOpen, children: [
17934
- /* @__PURE__ */ jsx206(
17952
+ /* @__PURE__ */ jsx207(
17935
17953
  DialogTrigger,
17936
17954
  {
17937
- render: /* @__PURE__ */ jsx206(Button, { variant: "outline", size: "sm", className: "text-destructive", children: t("features.assistant.delete") })
17955
+ render: /* @__PURE__ */ jsx207(Button, { variant: "outline", size: "sm", className: "text-destructive", children: t("features.assistant.delete") })
17938
17956
  }
17939
17957
  ),
17940
17958
  /* @__PURE__ */ jsxs124(DialogContent, { children: [
17941
- /* @__PURE__ */ jsx206(DialogHeader, { children: /* @__PURE__ */ jsx206(DialogTitle, { children: t("features.assistant.delete_confirm") }) }),
17959
+ /* @__PURE__ */ jsx207(DialogHeader, { children: /* @__PURE__ */ jsx207(DialogTitle, { children: t("features.assistant.delete_confirm") }) }),
17942
17960
  /* @__PURE__ */ jsxs124(DialogFooter, { children: [
17943
- /* @__PURE__ */ jsx206(Button, { variant: "outline", onClick: () => setDeleteOpen(false), children: t("ui.buttons.cancel") }),
17944
- /* @__PURE__ */ jsx206(Button, { variant: "destructive", onClick: handleDelete, children: t("ui.buttons.confirm") })
17961
+ /* @__PURE__ */ jsx207(Button, { variant: "outline", onClick: () => setDeleteOpen(false), children: t("ui.buttons.cancel") }),
17962
+ /* @__PURE__ */ jsx207(Button, { variant: "destructive", onClick: handleDelete, children: t("ui.buttons.confirm") })
17945
17963
  ] })
17946
17964
  ] })
17947
17965
  ] })
@@ -17970,17 +17988,17 @@ import { ChevronDown as ChevronDown4, ChevronRight as ChevronRight2 } from "luci
17970
17988
  // src/features/assistant-message/components/parts/tabs/ReferencesTab.tsx
17971
17989
  import { useTranslations as useTranslations88 } from "next-intl";
17972
17990
  import Link4 from "next/link";
17973
- import { jsx as jsx207, jsxs as jsxs125 } from "react/jsx-runtime";
17991
+ import { jsx as jsx208, jsxs as jsxs125 } from "react/jsx-runtime";
17974
17992
  function ReferencesTab({ references }) {
17975
17993
  const t = useTranslations88();
17976
17994
  const generate = usePageUrlGenerator();
17977
17995
  if (references.length === 0) return null;
17978
17996
  return /* @__PURE__ */ jsxs125(Table, { children: [
17979
- /* @__PURE__ */ jsx207(TableHeader, { children: /* @__PURE__ */ jsxs125(TableRow, { children: [
17980
- /* @__PURE__ */ jsx207(TableHead, { children: t("features.assistant.message.sources.source") }),
17981
- /* @__PURE__ */ jsx207(TableHead, { className: "w-32", children: t("features.assistant.message.sources.type") })
17997
+ /* @__PURE__ */ jsx208(TableHeader, { children: /* @__PURE__ */ jsxs125(TableRow, { children: [
17998
+ /* @__PURE__ */ jsx208(TableHead, { children: t("features.assistant.message.sources.source") }),
17999
+ /* @__PURE__ */ jsx208(TableHead, { className: "w-32", children: t("features.assistant.message.sources.type") })
17982
18000
  ] }) }),
17983
- /* @__PURE__ */ jsx207(TableBody, { children: references.map((ref) => {
18001
+ /* @__PURE__ */ jsx208(TableBody, { children: references.map((ref) => {
17984
18002
  let module;
17985
18003
  try {
17986
18004
  module = ModuleRegistry.findByName(ref.type);
@@ -17989,8 +18007,8 @@ function ReferencesTab({ references }) {
17989
18007
  }
17990
18008
  const href = generate({ page: module, id: ref.id });
17991
18009
  return /* @__PURE__ */ jsxs125(TableRow, { children: [
17992
- /* @__PURE__ */ jsx207(TableCell, { children: /* @__PURE__ */ jsx207(Link4, { href, target: "_blank", rel: "noopener noreferrer", className: "font-medium", children: ref.identifier }) }),
17993
- /* @__PURE__ */ jsx207(TableCell, { className: "text-muted-foreground text-xs", children: module.name })
18010
+ /* @__PURE__ */ jsx208(TableCell, { children: /* @__PURE__ */ jsx208(Link4, { href, target: "_blank", rel: "noopener noreferrer", className: "font-medium", children: ref.identifier }) }),
18011
+ /* @__PURE__ */ jsx208(TableCell, { className: "text-muted-foreground text-xs", children: module.name })
17994
18012
  ] }, `${ref.type}/${ref.id}`);
17995
18013
  }) })
17996
18014
  ] });
@@ -18005,7 +18023,7 @@ import ReactMarkdown2 from "react-markdown";
18005
18023
  import remarkGfm2 from "remark-gfm";
18006
18024
 
18007
18025
  // src/features/assistant-message/components/parts/RelevanceMeter.tsx
18008
- import { jsx as jsx208, jsxs as jsxs126 } from "react/jsx-runtime";
18026
+ import { jsx as jsx209, jsxs as jsxs126 } from "react/jsx-runtime";
18009
18027
  function RelevanceMeter({ value, className = "" }) {
18010
18028
  const pct = Math.max(0, Math.min(100, value <= 1 ? value * 100 : value));
18011
18029
  const label = `${Math.round(pct)}%`;
@@ -18019,8 +18037,8 @@ function RelevanceMeter({ value, className = "" }) {
18019
18037
  "aria-label": `Relevance ${label}`,
18020
18038
  className: `bg-muted relative mx-auto flex h-5 w-20 items-center justify-center overflow-hidden rounded border ${className}`,
18021
18039
  children: [
18022
- /* @__PURE__ */ jsx208("div", { className: "bg-accent absolute top-0 left-0 h-full", style: { width: `${pct}%` } }),
18023
- /* @__PURE__ */ jsx208(
18040
+ /* @__PURE__ */ jsx209("div", { className: "bg-accent absolute top-0 left-0 h-full", style: { width: `${pct}%` } }),
18041
+ /* @__PURE__ */ jsx209(
18024
18042
  "span",
18025
18043
  {
18026
18044
  className: `relative text-xs ${pct < 40 ? "text-muted-foreground" : "text-accent-foreground font-semibold"}`,
@@ -18034,7 +18052,7 @@ function RelevanceMeter({ value, className = "" }) {
18034
18052
  __name(RelevanceMeter, "RelevanceMeter");
18035
18053
 
18036
18054
  // src/features/assistant-message/components/parts/tabs/CitationsTab.tsx
18037
- import { jsx as jsx209, jsxs as jsxs127 } from "react/jsx-runtime";
18055
+ import { jsx as jsx210, jsxs as jsxs127 } from "react/jsx-runtime";
18038
18056
  function CitationsTab({ citations, sources }) {
18039
18057
  const t = useTranslations89();
18040
18058
  const [expanded, setExpanded] = useState80(/* @__PURE__ */ new Set());
@@ -18049,18 +18067,18 @@ function CitationsTab({ citations, sources }) {
18049
18067
  });
18050
18068
  }, "toggle");
18051
18069
  return /* @__PURE__ */ jsxs127(Table, { className: "table-fixed", children: [
18052
- /* @__PURE__ */ jsx209(TableHeader, { children: /* @__PURE__ */ jsxs127(TableRow, { children: [
18053
- /* @__PURE__ */ jsx209(TableHead, { children: t("features.assistant.message.sources.source") }),
18054
- /* @__PURE__ */ jsx209(TableHead, { className: "w-28 text-center", children: t("features.assistant.message.sources.relevance") })
18070
+ /* @__PURE__ */ jsx210(TableHeader, { children: /* @__PURE__ */ jsxs127(TableRow, { children: [
18071
+ /* @__PURE__ */ jsx210(TableHead, { children: t("features.assistant.message.sources.source") }),
18072
+ /* @__PURE__ */ jsx210(TableHead, { className: "w-28 text-center", children: t("features.assistant.message.sources.relevance") })
18055
18073
  ] }) }),
18056
- /* @__PURE__ */ jsx209(TableBody, { children: sorted.map((chunk) => {
18074
+ /* @__PURE__ */ jsx210(TableBody, { children: sorted.map((chunk) => {
18057
18075
  const isOpen = expanded.has(chunk.id);
18058
18076
  const resolved = chunk.nodeId ? sources?.get(chunk.nodeId) : void 0;
18059
18077
  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");
18060
18078
  const sourceName = resolved?.name ?? fallbackName;
18061
18079
  return /* @__PURE__ */ jsxs127(Fragment44, { children: [
18062
18080
  /* @__PURE__ */ jsxs127(TableRow, { children: [
18063
- /* @__PURE__ */ jsx209(TableCell, { children: /* @__PURE__ */ jsxs127(
18081
+ /* @__PURE__ */ jsx210(TableCell, { children: /* @__PURE__ */ jsxs127(
18064
18082
  "div",
18065
18083
  {
18066
18084
  role: "button",
@@ -18075,18 +18093,18 @@ function CitationsTab({ citations, sources }) {
18075
18093
  "aria-expanded": isOpen,
18076
18094
  className: "flex w-full cursor-pointer items-center justify-start gap-x-2",
18077
18095
  children: [
18078
- /* @__PURE__ */ jsx209(ChevronDown3, { className: cn("h-4 w-4 transition-transform", !isOpen && "-rotate-90") }),
18079
- /* @__PURE__ */ jsx209("span", { className: "font-semibold", children: sourceName }),
18096
+ /* @__PURE__ */ jsx210(ChevronDown3, { className: cn("h-4 w-4 transition-transform", !isOpen && "-rotate-90") }),
18097
+ /* @__PURE__ */ jsx210("span", { className: "font-semibold", children: sourceName }),
18080
18098
  chunk.reason && /* @__PURE__ */ jsxs127(Tooltip2, { children: [
18081
- /* @__PURE__ */ jsx209(TooltipTrigger, { className: "text-muted-foreground inline-flex", children: /* @__PURE__ */ jsx209(HelpCircle, { className: "h-3.5 w-3.5" }) }),
18082
- /* @__PURE__ */ jsx209(TooltipContent, { className: "max-w-64 text-xs", children: chunk.reason })
18099
+ /* @__PURE__ */ jsx210(TooltipTrigger, { className: "text-muted-foreground inline-flex", children: /* @__PURE__ */ jsx210(HelpCircle, { className: "h-3.5 w-3.5" }) }),
18100
+ /* @__PURE__ */ jsx210(TooltipContent, { className: "max-w-64 text-xs", children: chunk.reason })
18083
18101
  ] })
18084
18102
  ]
18085
18103
  }
18086
18104
  ) }),
18087
- /* @__PURE__ */ jsx209(TableCell, { className: "text-center", children: /* @__PURE__ */ jsx209(RelevanceMeter, { value: chunk.relevance ?? 0 }) })
18105
+ /* @__PURE__ */ jsx210(TableCell, { className: "text-center", children: /* @__PURE__ */ jsx210(RelevanceMeter, { value: chunk.relevance ?? 0 }) })
18088
18106
  ] }),
18089
- isOpen && /* @__PURE__ */ jsx209(TableRow, { children: /* @__PURE__ */ jsx209(TableCell, { colSpan: 2, className: "border-t-0 p-4", children: /* @__PURE__ */ jsx209("div", { className: "bg-card w-full max-w-full overflow-x-auto rounded border p-4 text-sm break-words", children: /* @__PURE__ */ jsx209(ReactMarkdown2, { remarkPlugins: [remarkGfm2], children: chunk.content }) }) }) })
18107
+ isOpen && /* @__PURE__ */ jsx210(TableRow, { children: /* @__PURE__ */ jsx210(TableCell, { colSpan: 2, className: "border-t-0 p-4", children: /* @__PURE__ */ jsx210("div", { className: "bg-card w-full max-w-full overflow-x-auto rounded border p-4 text-sm break-words", children: /* @__PURE__ */ jsx210(ReactMarkdown2, { remarkPlugins: [remarkGfm2], children: chunk.content }) }) }) })
18090
18108
  ] }, chunk.id);
18091
18109
  }) })
18092
18110
  ] });
@@ -18096,7 +18114,7 @@ __name(CitationsTab, "CitationsTab");
18096
18114
  // src/features/assistant-message/components/parts/tabs/ContentsTab.tsx
18097
18115
  import { useTranslations as useTranslations90 } from "next-intl";
18098
18116
  import Link5 from "next/link";
18099
- import { jsx as jsx210, jsxs as jsxs128 } from "react/jsx-runtime";
18117
+ import { jsx as jsx211, jsxs as jsxs128 } from "react/jsx-runtime";
18100
18118
  function ContentsTab({ citations, sources }) {
18101
18119
  const t = useTranslations90();
18102
18120
  const generate = usePageUrlGenerator();
@@ -18119,11 +18137,11 @@ function ContentsTab({ citations, sources }) {
18119
18137
  );
18120
18138
  if (rows.length === 0) return null;
18121
18139
  return /* @__PURE__ */ jsxs128(Table, { children: [
18122
- /* @__PURE__ */ jsx210(TableHeader, { children: /* @__PURE__ */ jsxs128(TableRow, { children: [
18123
- /* @__PURE__ */ jsx210(TableHead, { children: t("features.assistant.message.sources.source") }),
18124
- /* @__PURE__ */ jsx210(TableHead, { className: "w-32", children: t("features.assistant.message.sources.type") })
18140
+ /* @__PURE__ */ jsx211(TableHeader, { children: /* @__PURE__ */ jsxs128(TableRow, { children: [
18141
+ /* @__PURE__ */ jsx211(TableHead, { children: t("features.assistant.message.sources.source") }),
18142
+ /* @__PURE__ */ jsx211(TableHead, { className: "w-32", children: t("features.assistant.message.sources.type") })
18125
18143
  ] }) }),
18126
- /* @__PURE__ */ jsx210(TableBody, { children: rows.map(({ source, citationCount }) => {
18144
+ /* @__PURE__ */ jsx211(TableBody, { children: rows.map(({ source, citationCount }) => {
18127
18145
  let module;
18128
18146
  try {
18129
18147
  module = ModuleRegistry.findByName(source.type);
@@ -18133,14 +18151,14 @@ function ContentsTab({ citations, sources }) {
18133
18151
  const href = generate({ page: module, id: source.id });
18134
18152
  const name = source.name ?? source.identifier;
18135
18153
  return /* @__PURE__ */ jsxs128(TableRow, { children: [
18136
- /* @__PURE__ */ jsx210(TableCell, { children: /* @__PURE__ */ jsxs128(Link5, { href, target: "_blank", rel: "noopener noreferrer", children: [
18137
- /* @__PURE__ */ jsx210("span", { className: "font-medium", children: name }),
18154
+ /* @__PURE__ */ jsx211(TableCell, { children: /* @__PURE__ */ jsxs128(Link5, { href, target: "_blank", rel: "noopener noreferrer", children: [
18155
+ /* @__PURE__ */ jsx211("span", { className: "font-medium", children: name }),
18138
18156
  " ",
18139
- /* @__PURE__ */ jsx210("span", { className: "text-muted-foreground text-xs", children: t("features.assistant.message.sources.citations_count", {
18157
+ /* @__PURE__ */ jsx211("span", { className: "text-muted-foreground text-xs", children: t("features.assistant.message.sources.citations_count", {
18140
18158
  count: citationCount
18141
18159
  }) })
18142
18160
  ] }) }),
18143
- /* @__PURE__ */ jsx210(TableCell, { className: "text-muted-foreground text-xs", children: module.name })
18161
+ /* @__PURE__ */ jsx211(TableCell, { className: "text-muted-foreground text-xs", children: module.name })
18144
18162
  ] }, `${source.type}/${source.id}`);
18145
18163
  }) })
18146
18164
  ] });
@@ -18150,7 +18168,7 @@ __name(ContentsTab, "ContentsTab");
18150
18168
  // src/features/assistant-message/components/parts/tabs/UsersTab.tsx
18151
18169
  import { useTranslations as useTranslations91 } from "next-intl";
18152
18170
  import Link6 from "next/link";
18153
- import { jsx as jsx211, jsxs as jsxs129 } from "react/jsx-runtime";
18171
+ import { jsx as jsx212, jsxs as jsxs129 } from "react/jsx-runtime";
18154
18172
  function getInitials2(name) {
18155
18173
  return name.split(/\s+/).map((p) => p.charAt(0)).filter(Boolean).slice(0, 2).join("").toUpperCase();
18156
18174
  }
@@ -18198,7 +18216,7 @@ function UsersTab({ users, citations, sources }) {
18198
18216
  (a, b) => b.citationCount - a.citationCount || (a.user.name ?? "").localeCompare(b.user.name ?? "")
18199
18217
  );
18200
18218
  if (rows.length === 0) return null;
18201
- return /* @__PURE__ */ jsx211(Table, { children: /* @__PURE__ */ jsx211(TableBody, { children: rows.map(({ user, contentCount, citationCount }) => {
18219
+ return /* @__PURE__ */ jsx212(Table, { children: /* @__PURE__ */ jsx212(TableBody, { children: rows.map(({ user, contentCount, citationCount }) => {
18202
18220
  let module;
18203
18221
  try {
18204
18222
  module = ModuleRegistry.findByName(user.type);
@@ -18209,13 +18227,13 @@ function UsersTab({ users, citations, sources }) {
18209
18227
  const name = user.name ?? user.fullName ?? user.identifier ?? "User";
18210
18228
  const avatarUrl = user.avatar;
18211
18229
  const showCounts = citationCount > 0 || contentCount > 0;
18212
- return /* @__PURE__ */ jsx211(TableRow, { children: /* @__PURE__ */ jsx211(TableCell, { children: /* @__PURE__ */ jsxs129(Link6, { href, target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-3", children: [
18230
+ return /* @__PURE__ */ jsx212(TableRow, { children: /* @__PURE__ */ jsx212(TableCell, { children: /* @__PURE__ */ jsxs129(Link6, { href, target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-3", children: [
18213
18231
  /* @__PURE__ */ jsxs129(Avatar, { className: "h-7 w-7", children: [
18214
- /* @__PURE__ */ jsx211(AvatarImage, { src: avatarUrl, "aria-label": name }),
18215
- /* @__PURE__ */ jsx211(AvatarFallback, { "aria-label": name, children: getInitials2(name) })
18232
+ /* @__PURE__ */ jsx212(AvatarImage, { src: avatarUrl, "aria-label": name }),
18233
+ /* @__PURE__ */ jsx212(AvatarFallback, { "aria-label": name, children: getInitials2(name) })
18216
18234
  ] }),
18217
18235
  /* @__PURE__ */ jsxs129("span", { className: "flex flex-col", children: [
18218
- /* @__PURE__ */ jsx211("span", { className: "font-medium", children: name }),
18236
+ /* @__PURE__ */ jsx212("span", { className: "font-medium", children: name }),
18219
18237
  showCounts && /* @__PURE__ */ jsxs129("span", { className: "text-muted-foreground text-xs", children: [
18220
18238
  t("features.assistant.message.sources.contents_count", {
18221
18239
  count: contentCount
@@ -18232,10 +18250,10 @@ function UsersTab({ users, citations, sources }) {
18232
18250
  __name(UsersTab, "UsersTab");
18233
18251
 
18234
18252
  // src/features/assistant-message/components/parts/tabs/SuggestedQuestionsTab.tsx
18235
- import { jsx as jsx212 } from "react/jsx-runtime";
18253
+ import { jsx as jsx213 } from "react/jsx-runtime";
18236
18254
  function SuggestedQuestionsTab({ questions, onSelect }) {
18237
18255
  if (questions.length === 0) return null;
18238
- return /* @__PURE__ */ jsx212("div", { className: "flex flex-col gap-1", children: questions.map((q) => /* @__PURE__ */ jsx212(
18256
+ return /* @__PURE__ */ jsx213("div", { className: "flex flex-col gap-1", children: questions.map((q) => /* @__PURE__ */ jsx213(
18239
18257
  "button",
18240
18258
  {
18241
18259
  type: "button",
@@ -18249,7 +18267,7 @@ function SuggestedQuestionsTab({ questions, onSelect }) {
18249
18267
  __name(SuggestedQuestionsTab, "SuggestedQuestionsTab");
18250
18268
 
18251
18269
  // src/features/assistant-message/components/parts/MessageSourcesPanel.tsx
18252
- import { jsx as jsx213, jsxs as jsxs130 } from "react/jsx-runtime";
18270
+ import { jsx as jsx214, jsxs as jsxs130 } from "react/jsx-runtime";
18253
18271
  function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sources, users }) {
18254
18272
  const t = useTranslations92();
18255
18273
  const visibleReferences = useMemo30(
@@ -18297,13 +18315,13 @@ function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sou
18297
18315
  "aria-controls": panelId,
18298
18316
  className: "text-primary inline-flex items-center gap-1 text-xs font-medium",
18299
18317
  children: [
18300
- open ? /* @__PURE__ */ jsx213(ChevronDown4, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx213(ChevronRight2, { className: "h-3 w-3" }),
18318
+ open ? /* @__PURE__ */ jsx214(ChevronDown4, { className: "h-3 w-3" }) : /* @__PURE__ */ jsx214(ChevronRight2, { className: "h-3 w-3" }),
18301
18319
  open ? t("features.assistant.message.sources.toggle_hide") : t("features.assistant.message.sources.toggle", { count: total })
18302
18320
  ]
18303
18321
  }
18304
18322
  ),
18305
- open && /* @__PURE__ */ jsx213("div", { id: panelId, className: "mt-2 w-full min-w-0", children: /* @__PURE__ */ jsxs130(Tabs, { value: active, onValueChange: (v) => setActive(v), children: [
18306
- /* @__PURE__ */ jsx213(TabsList, { children: visibleTabs.map((key) => /* @__PURE__ */ jsxs130(TabsTrigger, { value: key, children: [
18323
+ open && /* @__PURE__ */ jsx214("div", { id: panelId, className: "mt-2 w-full min-w-0", children: /* @__PURE__ */ jsxs130(Tabs, { value: active, onValueChange: (v) => setActive(v), children: [
18324
+ /* @__PURE__ */ jsx214(TabsList, { children: visibleTabs.map((key) => /* @__PURE__ */ jsxs130(TabsTrigger, { value: key, children: [
18307
18325
  t(`features.assistant.message.sources.tabs.${key === "suggested" ? "suggested_questions" : key}`),
18308
18326
  /* @__PURE__ */ jsxs130("span", { className: "text-muted-foreground ml-1.5 text-[10px]", children: [
18309
18327
  key === "suggested" && suggestionsCount,
@@ -18313,18 +18331,18 @@ function MessageSourcesPanel({ message, isLatestAssistant, onSelectFollowUp, sou
18313
18331
  key === "users" && usersCount
18314
18332
  ] })
18315
18333
  ] }, key)) }),
18316
- suggestionsCount > 0 && /* @__PURE__ */ jsx213(TabsContent, { value: "suggested", children: /* @__PURE__ */ jsx213(SuggestedQuestionsTab, { questions: message.suggestedQuestions, onSelect: onSelectFollowUp }) }),
18317
- refsCount > 0 && /* @__PURE__ */ jsx213(TabsContent, { value: "references", children: /* @__PURE__ */ jsx213(ReferencesTab, { references: visibleReferences }) }),
18318
- citationsCount > 0 && /* @__PURE__ */ jsx213(TabsContent, { value: "citations", children: /* @__PURE__ */ jsx213(CitationsTab, { citations: message.citations, sources }) }),
18319
- contentsCount > 0 && /* @__PURE__ */ jsx213(TabsContent, { value: "contents", children: /* @__PURE__ */ jsx213(ContentsTab, { citations: message.citations, sources }) }),
18320
- usersCount > 0 && /* @__PURE__ */ jsx213(TabsContent, { value: "users", children: /* @__PURE__ */ jsx213(UsersTab, { users: users ?? [], citations: message.citations, sources }) })
18334
+ suggestionsCount > 0 && /* @__PURE__ */ jsx214(TabsContent, { value: "suggested", children: /* @__PURE__ */ jsx214(SuggestedQuestionsTab, { questions: message.suggestedQuestions, onSelect: onSelectFollowUp }) }),
18335
+ refsCount > 0 && /* @__PURE__ */ jsx214(TabsContent, { value: "references", children: /* @__PURE__ */ jsx214(ReferencesTab, { references: visibleReferences }) }),
18336
+ citationsCount > 0 && /* @__PURE__ */ jsx214(TabsContent, { value: "citations", children: /* @__PURE__ */ jsx214(CitationsTab, { citations: message.citations, sources }) }),
18337
+ contentsCount > 0 && /* @__PURE__ */ jsx214(TabsContent, { value: "contents", children: /* @__PURE__ */ jsx214(ContentsTab, { citations: message.citations, sources }) }),
18338
+ usersCount > 0 && /* @__PURE__ */ jsx214(TabsContent, { value: "users", children: /* @__PURE__ */ jsx214(UsersTab, { users: users ?? [], citations: message.citations, sources }) })
18321
18339
  ] }) })
18322
18340
  ] });
18323
18341
  }
18324
18342
  __name(MessageSourcesPanel, "MessageSourcesPanel");
18325
18343
 
18326
18344
  // src/features/assistant-message/components/parts/MessageSourcesContainer.tsx
18327
- import { jsx as jsx214 } from "react/jsx-runtime";
18345
+ import { jsx as jsx215 } from "react/jsx-runtime";
18328
18346
  var SourcesFetcher = class extends ClientAbstractService {
18329
18347
  static {
18330
18348
  __name(this, "SourcesFetcher");
@@ -18416,7 +18434,7 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
18416
18434
  }
18417
18435
  return Array.from(userMap.values());
18418
18436
  }, [resolved]);
18419
- return /* @__PURE__ */ jsx214(
18437
+ return /* @__PURE__ */ jsx215(
18420
18438
  MessageSourcesPanel,
18421
18439
  {
18422
18440
  message,
@@ -18430,28 +18448,28 @@ function MessageSourcesContainer({ message, isLatestAssistant, onSelectFollowUp
18430
18448
  __name(MessageSourcesContainer, "MessageSourcesContainer");
18431
18449
 
18432
18450
  // src/features/assistant-message/components/MessageItem.tsx
18433
- import { jsx as jsx215, jsxs as jsxs131 } from "react/jsx-runtime";
18451
+ import { jsx as jsx216, jsxs as jsxs131 } from "react/jsx-runtime";
18434
18452
  function MessageItem({ message, isLatestAssistant, onSelectFollowUp, failedMessageIds, onRetry }) {
18435
18453
  const t = useTranslations93();
18436
18454
  const isUser = message.role === "user";
18437
18455
  const isFailed = isUser && !!failedMessageIds?.has(message.id);
18438
18456
  if (isUser) {
18439
18457
  return /* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-end gap-1", children: [
18440
- /* @__PURE__ */ jsx215("div", { className: "bg-primary text-primary-foreground max-w-[72%] rounded-2xl rounded-br-sm px-3.5 py-2 text-sm", children: message.content }),
18458
+ /* @__PURE__ */ jsx216("div", { className: "bg-primary text-primary-foreground max-w-[72%] rounded-2xl rounded-br-sm px-3.5 py-2 text-sm", children: message.content }),
18441
18459
  isFailed && /* @__PURE__ */ jsxs131("div", { className: "text-destructive flex items-center gap-2 text-xs", children: [
18442
- /* @__PURE__ */ jsx215(AlertCircle, { className: "h-3.5 w-3.5" }),
18443
- /* @__PURE__ */ jsx215("span", { children: t("features.assistant.send_failed") }),
18444
- /* @__PURE__ */ jsx215("button", { type: "button", className: "underline", onClick: () => onRetry?.(message.id), children: t("features.assistant.retry") })
18460
+ /* @__PURE__ */ jsx216(AlertCircle, { className: "h-3.5 w-3.5" }),
18461
+ /* @__PURE__ */ jsx216("span", { children: t("features.assistant.send_failed") }),
18462
+ /* @__PURE__ */ jsx216("button", { type: "button", className: "underline", onClick: () => onRetry?.(message.id), children: t("features.assistant.retry") })
18445
18463
  ] })
18446
18464
  ] });
18447
18465
  }
18448
18466
  return /* @__PURE__ */ jsxs131("div", { className: "flex min-w-0 max-w-[78%] flex-col gap-1.5", children: [
18449
18467
  /* @__PURE__ */ jsxs131("div", { className: "text-muted-foreground flex items-center gap-2 pl-1 text-xs", children: [
18450
- /* @__PURE__ */ jsx215("span", { className: "flex h-4 w-4 items-center justify-center rounded-full bg-gradient-to-br from-blue-400 to-violet-500 text-white", children: /* @__PURE__ */ jsx215(Sparkles2, { className: "h-2.5 w-2.5" }) }),
18451
- /* @__PURE__ */ jsx215("span", { children: t("features.assistant.agent_name") })
18468
+ /* @__PURE__ */ jsx216("span", { className: "flex h-4 w-4 items-center justify-center rounded-full bg-gradient-to-br from-blue-400 to-violet-500 text-white", children: /* @__PURE__ */ jsx216(Sparkles2, { className: "h-2.5 w-2.5" }) }),
18469
+ /* @__PURE__ */ jsx216("span", { children: t("features.assistant.agent_name") })
18452
18470
  ] }),
18453
- /* @__PURE__ */ jsx215("div", { className: "bg-muted text-foreground rounded-2xl rounded-bl-sm px-3.5 py-2.5 text-sm leading-relaxed", children: /* @__PURE__ */ jsx215(ReactMarkdown3, { remarkPlugins: [remarkGfm3], children: message.content }) }),
18454
- /* @__PURE__ */ jsx215(
18471
+ /* @__PURE__ */ jsx216("div", { className: "bg-muted text-foreground rounded-2xl rounded-bl-sm px-3.5 py-2.5 text-sm leading-relaxed", children: /* @__PURE__ */ jsx216(ReactMarkdown3, { remarkPlugins: [remarkGfm3], children: message.content }) }),
18472
+ /* @__PURE__ */ jsx216(
18455
18473
  MessageSourcesContainer,
18456
18474
  {
18457
18475
  message,
@@ -18464,7 +18482,7 @@ function MessageItem({ message, isLatestAssistant, onSelectFollowUp, failedMessa
18464
18482
  __name(MessageItem, "MessageItem");
18465
18483
 
18466
18484
  // src/features/assistant-message/components/MessageList.tsx
18467
- import { jsx as jsx216 } from "react/jsx-runtime";
18485
+ import { jsx as jsx217 } from "react/jsx-runtime";
18468
18486
  function MessageList({ messages, onSelectFollowUp, failedMessageIds, onRetry }) {
18469
18487
  const ordered = [...messages].sort((a, b) => a.position - b.position);
18470
18488
  let lastAssistantIndex = -1;
@@ -18474,7 +18492,7 @@ function MessageList({ messages, onSelectFollowUp, failedMessageIds, onRetry })
18474
18492
  break;
18475
18493
  }
18476
18494
  }
18477
- return /* @__PURE__ */ jsx216("div", { className: "flex min-w-0 flex-col gap-y-3", children: ordered.map((m, i) => /* @__PURE__ */ jsx216(
18495
+ return /* @__PURE__ */ jsx217("div", { className: "flex min-w-0 flex-col gap-y-3", children: ordered.map((m, i) => /* @__PURE__ */ jsx217(
18478
18496
  MessageItem,
18479
18497
  {
18480
18498
  message: m,
@@ -18491,26 +18509,26 @@ __name(MessageList, "MessageList");
18491
18509
  // src/features/assistant/components/parts/AssistantStatusLine.tsx
18492
18510
  import { useTranslations as useTranslations94 } from "next-intl";
18493
18511
  import { Loader2 as Loader24 } from "lucide-react";
18494
- import { jsx as jsx217, jsxs as jsxs132 } from "react/jsx-runtime";
18512
+ import { jsx as jsx218, jsxs as jsxs132 } from "react/jsx-runtime";
18495
18513
  function AssistantStatusLine({ status }) {
18496
18514
  const t = useTranslations94();
18497
18515
  const text = status ?? t("features.assistant.thinking");
18498
18516
  return /* @__PURE__ */ jsxs132("div", { className: "text-muted-foreground flex items-center gap-2 px-4 py-2 text-sm", children: [
18499
- /* @__PURE__ */ jsx217(Loader24, { className: "h-4 w-4 animate-spin" }),
18500
- /* @__PURE__ */ jsx217("span", { children: text })
18517
+ /* @__PURE__ */ jsx218(Loader24, { className: "h-4 w-4 animate-spin" }),
18518
+ /* @__PURE__ */ jsx218("span", { children: text })
18501
18519
  ] });
18502
18520
  }
18503
18521
  __name(AssistantStatusLine, "AssistantStatusLine");
18504
18522
 
18505
18523
  // src/features/assistant/components/parts/AssistantThread.tsx
18506
- import { jsx as jsx218, jsxs as jsxs133 } from "react/jsx-runtime";
18524
+ import { jsx as jsx219, jsxs as jsxs133 } from "react/jsx-runtime";
18507
18525
  function AssistantThread({ messages, sending, status, onSelectFollowUp, failedMessageIds, onRetry }) {
18508
18526
  const endRef = useRef32(null);
18509
18527
  useEffect62(() => {
18510
18528
  endRef.current?.scrollIntoView({ behavior: "smooth" });
18511
18529
  }, [messages.length, sending]);
18512
18530
  return /* @__PURE__ */ jsxs133("div", { className: "flex-1 min-w-0 overflow-x-hidden overflow-y-auto px-6 py-5", children: [
18513
- /* @__PURE__ */ jsx218(
18531
+ /* @__PURE__ */ jsx219(
18514
18532
  MessageList,
18515
18533
  {
18516
18534
  messages,
@@ -18519,19 +18537,19 @@ function AssistantThread({ messages, sending, status, onSelectFollowUp, failedMe
18519
18537
  onRetry
18520
18538
  }
18521
18539
  ),
18522
- sending && /* @__PURE__ */ jsx218(AssistantStatusLine, { status }),
18523
- /* @__PURE__ */ jsx218("div", { ref: endRef })
18540
+ sending && /* @__PURE__ */ jsx219(AssistantStatusLine, { status }),
18541
+ /* @__PURE__ */ jsx219("div", { ref: endRef })
18524
18542
  ] });
18525
18543
  }
18526
18544
  __name(AssistantThread, "AssistantThread");
18527
18545
 
18528
18546
  // src/features/assistant/components/containers/AssistantContainer.tsx
18529
- import { Fragment as Fragment45, jsx as jsx219, jsxs as jsxs134 } from "react/jsx-runtime";
18547
+ import { Fragment as Fragment45, jsx as jsx220, jsxs as jsxs134 } from "react/jsx-runtime";
18530
18548
  function AssistantContainer() {
18531
18549
  const ctx = useAssistantContext();
18532
18550
  const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
18533
- return /* @__PURE__ */ jsx219(RoundPageContainer, { module: Modules.Assistant, fullWidth: true, children: /* @__PURE__ */ jsxs134("div", { className: "bg-background flex h-full w-full overflow-hidden rounded-lg border", children: [
18534
- /* @__PURE__ */ jsx219(
18551
+ return /* @__PURE__ */ jsx220(RoundPageContainer, { module: Modules.Assistant, fullWidth: true, children: /* @__PURE__ */ jsxs134("div", { className: "bg-background flex h-full w-full overflow-hidden rounded-lg border", children: [
18552
+ /* @__PURE__ */ jsx220(
18535
18553
  AssistantSidebar,
18536
18554
  {
18537
18555
  threads: ctx.threads,
@@ -18540,16 +18558,16 @@ function AssistantContainer() {
18540
18558
  onNew: ctx.startNew
18541
18559
  }
18542
18560
  ),
18543
- /* @__PURE__ */ jsx219("main", { className: "flex flex-1 flex-col", children: !showThread ? /* @__PURE__ */ jsx219(AssistantEmptyState, { onSend: ctx.sendMessage }) : /* @__PURE__ */ jsxs134(Fragment45, { children: [
18544
- ctx.assistant ? /* @__PURE__ */ jsx219(
18561
+ /* @__PURE__ */ jsx220("main", { className: "flex flex-1 flex-col", children: !showThread ? /* @__PURE__ */ jsx220(AssistantEmptyState, { onSend: ctx.sendMessage }) : /* @__PURE__ */ jsxs134(Fragment45, { children: [
18562
+ ctx.assistant ? /* @__PURE__ */ jsx220(
18545
18563
  AssistantThreadHeader,
18546
18564
  {
18547
18565
  assistant: ctx.assistant,
18548
18566
  onRename: (title) => ctx.renameThread(ctx.assistant.id, title),
18549
18567
  onDelete: () => ctx.deleteThread(ctx.assistant.id)
18550
18568
  }
18551
- ) : /* @__PURE__ */ jsx219("div", { className: "flex items-center justify-between border-b px-5 py-3", "aria-hidden": true, children: /* @__PURE__ */ jsx219("div", { className: "h-5" }) }),
18552
- /* @__PURE__ */ jsx219(
18569
+ ) : /* @__PURE__ */ jsx220("div", { className: "flex items-center justify-between border-b px-5 py-3", "aria-hidden": true, children: /* @__PURE__ */ jsx220("div", { className: "h-5" }) }),
18570
+ /* @__PURE__ */ jsx220(
18553
18571
  AssistantThread,
18554
18572
  {
18555
18573
  messages: ctx.messages,
@@ -18560,7 +18578,7 @@ function AssistantContainer() {
18560
18578
  onRetry: ctx.retrySend
18561
18579
  }
18562
18580
  ),
18563
- /* @__PURE__ */ jsx219(AssistantComposer, { onSend: ctx.sendMessage, disabled: ctx.sending })
18581
+ /* @__PURE__ */ jsx220(AssistantComposer, { onSend: ctx.sendMessage, disabled: ctx.sending })
18564
18582
  ] }) })
18565
18583
  ] }) });
18566
18584
  }
@@ -18568,7 +18586,7 @@ __name(AssistantContainer, "AssistantContainer");
18568
18586
 
18569
18587
  // src/features/notification/components/common/NotificationErrorBoundary.tsx
18570
18588
  import { Component } from "react";
18571
- import { jsx as jsx220, jsxs as jsxs135 } from "react/jsx-runtime";
18589
+ import { jsx as jsx221, jsxs as jsxs135 } from "react/jsx-runtime";
18572
18590
  var NotificationErrorBoundary = class extends Component {
18573
18591
  static {
18574
18592
  __name(this, "NotificationErrorBoundary");
@@ -18585,9 +18603,9 @@ var NotificationErrorBoundary = class extends Component {
18585
18603
  }
18586
18604
  render() {
18587
18605
  if (this.state.hasError) {
18588
- return this.props.fallback || /* @__PURE__ */ jsx220("div", { className: "flex items-center justify-center p-4 text-center", children: /* @__PURE__ */ jsxs135("div", { className: "text-muted-foreground text-sm", children: [
18589
- /* @__PURE__ */ jsx220("p", { children: "Something went wrong with notifications." }),
18590
- /* @__PURE__ */ jsx220(
18606
+ return this.props.fallback || /* @__PURE__ */ jsx221("div", { className: "flex items-center justify-center p-4 text-center", children: /* @__PURE__ */ jsxs135("div", { className: "text-muted-foreground text-sm", children: [
18607
+ /* @__PURE__ */ jsx221("p", { children: "Something went wrong with notifications." }),
18608
+ /* @__PURE__ */ jsx221(
18591
18609
  "button",
18592
18610
  {
18593
18611
  onClick: () => this.setState({ hasError: false }),
@@ -18607,7 +18625,7 @@ import { useTranslations as useTranslations96 } from "next-intl";
18607
18625
  // src/features/notification/components/lists/NotificationsList.tsx
18608
18626
  import { ArchiveIcon } from "lucide-react";
18609
18627
  import { useTranslations as useTranslations95 } from "next-intl";
18610
- import { Fragment as Fragment46, jsx as jsx221, jsxs as jsxs136 } from "react/jsx-runtime";
18628
+ import { Fragment as Fragment46, jsx as jsx222, jsxs as jsxs136 } from "react/jsx-runtime";
18611
18629
  function NotificationsList({ archived }) {
18612
18630
  const t = useTranslations95();
18613
18631
  const generateUrl = usePageUrlGenerator();
@@ -18620,30 +18638,30 @@ function NotificationsList({ archived }) {
18620
18638
  await NotificationService.archive({ id: notification.id });
18621
18639
  data.removeElement(notification);
18622
18640
  }, "archiveNotification");
18623
- const LoadingSkeleton = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx221("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx221(Card, { children: /* @__PURE__ */ jsx221(CardContent, { className: "p-2", children: /* @__PURE__ */ jsxs136("div", { className: "flex w-full flex-row items-center", children: [
18624
- /* @__PURE__ */ jsx221(Skeleton, { className: "mr-4 h-8 w-8 rounded-full" }),
18641
+ const LoadingSkeleton = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx222("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx222(Card, { children: /* @__PURE__ */ jsx222(CardContent, { className: "p-2", children: /* @__PURE__ */ jsxs136("div", { className: "flex w-full flex-row items-center", children: [
18642
+ /* @__PURE__ */ jsx222(Skeleton, { className: "mr-4 h-8 w-8 rounded-full" }),
18625
18643
  /* @__PURE__ */ jsxs136("div", { className: "flex-1 space-y-2", children: [
18626
- /* @__PURE__ */ jsx221(Skeleton, { className: "h-4 w-3/4" }),
18627
- /* @__PURE__ */ jsx221(Skeleton, { className: "h-3 w-1/2" })
18644
+ /* @__PURE__ */ jsx222(Skeleton, { className: "h-4 w-3/4" }),
18645
+ /* @__PURE__ */ jsx222(Skeleton, { className: "h-3 w-1/2" })
18628
18646
  ] }),
18629
- /* @__PURE__ */ jsx221(Skeleton, { className: "h-8 w-20" })
18647
+ /* @__PURE__ */ jsx222(Skeleton, { className: "h-8 w-20" })
18630
18648
  ] }) }) }, i)) }), "LoadingSkeleton");
18631
- return /* @__PURE__ */ jsx221("div", { className: "space-y-4", children: data.isLoaded ? data.data?.map((notification) => {
18649
+ return /* @__PURE__ */ jsx222("div", { className: "space-y-4", children: data.isLoaded ? data.data?.map((notification) => {
18632
18650
  const notificationData = generateNotificationData({ notification, generateUrl });
18633
- return /* @__PURE__ */ jsx221(Card, { children: /* @__PURE__ */ jsx221(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs136("div", { className: `flex w-full flex-row items-center p-2`, children: [
18634
- notificationData.actor ? /* @__PURE__ */ jsx221("div", { className: "flex w-12 max-w-12 px-2", children: /* @__PURE__ */ jsx221(Link, { href: generateUrl({ page: Modules.User, id: notificationData.actor.id }), children: /* @__PURE__ */ jsx221(UserAvatar, { user: notificationData.actor, className: "h-8 w-8" }) }) }) : /* @__PURE__ */ jsx221("div", { className: "flex w-14 max-w-14 px-2" }),
18651
+ return /* @__PURE__ */ jsx222(Card, { children: /* @__PURE__ */ jsx222(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs136("div", { className: `flex w-full flex-row items-center p-2`, children: [
18652
+ notificationData.actor ? /* @__PURE__ */ jsx222("div", { className: "flex w-12 max-w-12 px-2", children: /* @__PURE__ */ jsx222(Link, { href: generateUrl({ page: Modules.User, id: notificationData.actor.id }), children: /* @__PURE__ */ jsx222(UserAvatar, { user: notificationData.actor, className: "h-8 w-8" }) }) }) : /* @__PURE__ */ jsx222("div", { className: "flex w-14 max-w-14 px-2" }),
18635
18653
  /* @__PURE__ */ jsxs136("div", { className: "flex w-full flex-col", children: [
18636
- /* @__PURE__ */ jsx221("p", { className: "text-sm", children: t.rich(`notification.${notification.notificationType}.description`, {
18637
- strong: /* @__PURE__ */ __name((chunks) => /* @__PURE__ */ jsx221("strong", { children: chunks }), "strong"),
18654
+ /* @__PURE__ */ jsx222("p", { className: "text-sm", children: t.rich(`notification.${notification.notificationType}.description`, {
18655
+ strong: /* @__PURE__ */ __name((chunks) => /* @__PURE__ */ jsx222("strong", { children: chunks }), "strong"),
18638
18656
  actor: notificationData.actor?.name ?? "",
18639
18657
  title: notificationData.title
18640
18658
  }) }),
18641
- /* @__PURE__ */ jsx221("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
18659
+ /* @__PURE__ */ jsx222("div", { className: "text-muted-foreground mt-1 w-full text-xs", children: new Date(notification.createdAt).toLocaleString() })
18642
18660
  ] }),
18643
18661
  /* @__PURE__ */ jsxs136("div", { className: "flex flex-row items-center", children: [
18644
- notificationData.url ? /* @__PURE__ */ jsx221(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx221(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx221(Fragment46, {}),
18662
+ notificationData.url ? /* @__PURE__ */ jsx222(Link, { href: notificationData.url, children: /* @__PURE__ */ jsx222(Button, { variant: `outline`, size: `sm`, onClick: (e) => e.stopPropagation(), children: t(`notification.${notification.notificationType}.buttons.action`) }) }) : /* @__PURE__ */ jsx222(Fragment46, {}),
18645
18663
  !archived && /* @__PURE__ */ jsxs136(Tooltip2, { children: [
18646
- /* @__PURE__ */ jsx221(TooltipTrigger, { children: /* @__PURE__ */ jsx221(
18664
+ /* @__PURE__ */ jsx222(TooltipTrigger, { children: /* @__PURE__ */ jsx222(
18647
18665
  Button,
18648
18666
  {
18649
18667
  variant: `link`,
@@ -18653,46 +18671,46 @@ function NotificationsList({ archived }) {
18653
18671
  archiveNotification(notification);
18654
18672
  },
18655
18673
  className: "text-muted-foreground hover:text-destructive ml-2",
18656
- children: /* @__PURE__ */ jsx221(ArchiveIcon, { className: "h-4 w-4 cursor-pointer" })
18674
+ children: /* @__PURE__ */ jsx222(ArchiveIcon, { className: "h-4 w-4 cursor-pointer" })
18657
18675
  }
18658
18676
  ) }),
18659
- /* @__PURE__ */ jsx221(TooltipContent, { children: t(`notification.buttons.archive`) })
18677
+ /* @__PURE__ */ jsx222(TooltipContent, { children: t(`notification.buttons.archive`) })
18660
18678
  ] })
18661
18679
  ] })
18662
18680
  ] }) }) }, notification.id);
18663
- }) : /* @__PURE__ */ jsx221(LoadingSkeleton, {}) });
18681
+ }) : /* @__PURE__ */ jsx222(LoadingSkeleton, {}) });
18664
18682
  }
18665
18683
  __name(NotificationsList, "NotificationsList");
18666
18684
 
18667
18685
  // src/features/notification/components/containers/NotificationsListContainer.tsx
18668
- import { jsx as jsx222, jsxs as jsxs137 } from "react/jsx-runtime";
18686
+ import { jsx as jsx223, jsxs as jsxs137 } from "react/jsx-runtime";
18669
18687
  function NotificationsListContainerContent() {
18670
18688
  const t = useTranslations96();
18671
18689
  const { notifications: _notifications, isLoading: _isLoading, error } = useNotificationContext();
18672
18690
  if (error) {
18673
- return /* @__PURE__ */ jsx222("div", { className: "flex items-center justify-center p-8 text-center", children: /* @__PURE__ */ jsxs137("div", { className: "text-destructive text-sm", children: [
18691
+ return /* @__PURE__ */ jsx223("div", { className: "flex items-center justify-center p-8 text-center", children: /* @__PURE__ */ jsxs137("div", { className: "text-destructive text-sm", children: [
18674
18692
  /* @__PURE__ */ jsxs137("p", { children: [
18675
18693
  "Error loading notifications: ",
18676
18694
  error
18677
18695
  ] }),
18678
- /* @__PURE__ */ jsx222("p", { className: "text-muted-foreground mt-2", children: "Please try refreshing the page." })
18696
+ /* @__PURE__ */ jsx223("p", { className: "text-muted-foreground mt-2", children: "Please try refreshing the page." })
18679
18697
  ] }) });
18680
18698
  }
18681
18699
  const tabs = [
18682
18700
  {
18683
18701
  label: t(`notification.inbox`),
18684
- content: /* @__PURE__ */ jsx222(NotificationsList, { archived: false })
18702
+ content: /* @__PURE__ */ jsx223(NotificationsList, { archived: false })
18685
18703
  },
18686
18704
  {
18687
18705
  label: t(`notification.archived`),
18688
- content: /* @__PURE__ */ jsx222(NotificationsList, { archived: true })
18706
+ content: /* @__PURE__ */ jsx223(NotificationsList, { archived: true })
18689
18707
  }
18690
18708
  ];
18691
- return /* @__PURE__ */ jsx222(TabsContainer, { tabs });
18709
+ return /* @__PURE__ */ jsx223(TabsContainer, { tabs });
18692
18710
  }
18693
18711
  __name(NotificationsListContainerContent, "NotificationsListContainerContent");
18694
18712
  function NotificationsListContainer() {
18695
- return /* @__PURE__ */ jsx222(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx222(NotificationsListContainerContent, {}) });
18713
+ return /* @__PURE__ */ jsx223(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx223(NotificationsListContainerContent, {}) });
18696
18714
  }
18697
18715
  __name(NotificationsListContainer, "NotificationsListContainer");
18698
18716
 
@@ -18700,7 +18718,7 @@ __name(NotificationsListContainer, "NotificationsListContainer");
18700
18718
  import { BellIcon } from "lucide-react";
18701
18719
  import { useTranslations as useTranslations97 } from "next-intl";
18702
18720
  import { Fragment as Fragment47, useCallback as useCallback39, useEffect as useEffect63, useMemo as useMemo32, useRef as useRef33, useState as useState83 } from "react";
18703
- import { jsx as jsx223, jsxs as jsxs138 } from "react/jsx-runtime";
18721
+ import { jsx as jsx224, jsxs as jsxs138 } from "react/jsx-runtime";
18704
18722
  function NotificationModalContent({ isOpen, setIsOpen }) {
18705
18723
  const _instanceId = useRef33(Math.random().toString(36).substr(2, 9));
18706
18724
  const {
@@ -18835,8 +18853,8 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
18835
18853
  }, "handleOpenChange");
18836
18854
  const unreadNotifications = newNotifications && unreadCount > 0;
18837
18855
  return /* @__PURE__ */ jsxs138(Popover, { open: isOpen, onOpenChange: handleOpenChange, "data-testid": `sidebar-notification button`, children: [
18838
- /* @__PURE__ */ jsx223(PopoverTrigger, { children: /* @__PURE__ */ jsxs138(SidebarMenuButton, { render: /* @__PURE__ */ jsx223("div", {}), className: "text-muted-foreground h-6", disabled: isLoading, children: [
18839
- /* @__PURE__ */ jsx223(
18856
+ /* @__PURE__ */ jsx224(PopoverTrigger, { children: /* @__PURE__ */ jsxs138(SidebarMenuButton, { render: /* @__PURE__ */ jsx224("div", {}), className: "text-muted-foreground h-6", disabled: isLoading, children: [
18857
+ /* @__PURE__ */ jsx224(
18840
18858
  BellIcon,
18841
18859
  {
18842
18860
  className: `h-5 w-5 cursor-pointer ${unreadNotifications ? "text-destructive" : ""} ${isLoading ? "animate-pulse" : ""}`
@@ -18844,31 +18862,31 @@ function NotificationModalContent({ isOpen, setIsOpen }) {
18844
18862
  ),
18845
18863
  t(`entities.notifications`, { count: 2 })
18846
18864
  ] }) }),
18847
- /* @__PURE__ */ jsx223(PopoverContent, { className: "relative left-10 w-80 border-0 p-0 shadow-none", children: /* @__PURE__ */ jsxs138(Card, { children: [
18865
+ /* @__PURE__ */ jsx224(PopoverContent, { className: "relative left-10 w-80 border-0 p-0 shadow-none", children: /* @__PURE__ */ jsxs138(Card, { children: [
18848
18866
  /* @__PURE__ */ jsxs138(CardHeader, { className: "p-4", children: [
18849
- /* @__PURE__ */ jsx223(CardTitle, { children: t(`entities.notifications`, { count: 2 }) }),
18850
- isLoading && /* @__PURE__ */ jsx223("div", { className: "text-muted-foreground text-xs", children: "Loading..." }),
18867
+ /* @__PURE__ */ jsx224(CardTitle, { children: t(`entities.notifications`, { count: 2 }) }),
18868
+ isLoading && /* @__PURE__ */ jsx224("div", { className: "text-muted-foreground text-xs", children: "Loading..." }),
18851
18869
  error && /* @__PURE__ */ jsxs138("div", { className: "text-destructive text-xs", children: [
18852
18870
  "Error: ",
18853
18871
  error
18854
18872
  ] })
18855
18873
  ] }),
18856
- /* @__PURE__ */ jsx223(Separator, {}),
18857
- /* @__PURE__ */ jsx223(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx223(Fragment47, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx223("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
18874
+ /* @__PURE__ */ jsx224(Separator, {}),
18875
+ /* @__PURE__ */ jsx224(ScrollArea, { className: "h-96", children: notifications.length > 0 ? notifications.map((notification) => /* @__PURE__ */ jsx224(Fragment47, { children: generateNotification(notification, () => setIsOpen(false)) }, notification.id)) : /* @__PURE__ */ jsx224("div", { className: "p-4 text-center text-sm text-gray-500", children: t(`notification.empty`) }) })
18858
18876
  ] }) })
18859
18877
  ] });
18860
18878
  }
18861
18879
  __name(NotificationModalContent, "NotificationModalContent");
18862
18880
  function NotificationModal(props) {
18863
- return /* @__PURE__ */ jsx223(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx223(NotificationModalContent, { ...props }) });
18881
+ return /* @__PURE__ */ jsx224(NotificationErrorBoundary, { children: /* @__PURE__ */ jsx224(NotificationModalContent, { ...props }) });
18864
18882
  }
18865
18883
  __name(NotificationModal, "NotificationModal");
18866
18884
 
18867
18885
  // src/features/notification/components/notifications/PushNotificationProvider.tsx
18868
- import { Fragment as Fragment48, jsx as jsx224 } from "react/jsx-runtime";
18886
+ import { Fragment as Fragment48, jsx as jsx225 } from "react/jsx-runtime";
18869
18887
  function PushNotificationProvider({ children }) {
18870
18888
  usePushNotifications();
18871
- return /* @__PURE__ */ jsx224(Fragment48, { children });
18889
+ return /* @__PURE__ */ jsx225(Fragment48, { children });
18872
18890
  }
18873
18891
  __name(PushNotificationProvider, "PushNotificationProvider");
18874
18892
 
@@ -18964,7 +18982,7 @@ function useReferralStats() {
18964
18982
  __name(useReferralStats, "useReferralStats");
18965
18983
 
18966
18984
  // src/features/referral/components/ReferralWidget.tsx
18967
- import { jsx as jsx225, jsxs as jsxs139 } from "react/jsx-runtime";
18985
+ import { jsx as jsx226, jsxs as jsxs139 } from "react/jsx-runtime";
18968
18986
  var DEFAULT_TRANSLATIONS = {
18969
18987
  title: "Invite Friends",
18970
18988
  description: "Share your referral link and earn rewards when your friends subscribe.",
@@ -19070,30 +19088,30 @@ function ReferralWidget({
19070
19088
  );
19071
19089
  if (loading) {
19072
19090
  if (isDialog) {
19073
- return /* @__PURE__ */ jsx225("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx225(Loader25, { className: "text-muted-foreground h-6 w-6 animate-spin" }) });
19091
+ return /* @__PURE__ */ jsx226("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx226(Loader25, { className: "text-muted-foreground h-6 w-6 animate-spin" }) });
19074
19092
  }
19075
- return /* @__PURE__ */ jsx225(Card, { className: `p-6 ${className ?? ""}`, children: /* @__PURE__ */ jsx225("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx225(Loader25, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }) });
19093
+ return /* @__PURE__ */ jsx226(Card, { className: `p-6 ${className ?? ""}`, children: /* @__PURE__ */ jsx226("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsx226(Loader25, { className: "text-muted-foreground h-6 w-6 animate-spin" }) }) });
19076
19094
  }
19077
19095
  if (error) {
19078
19096
  const errorMessage = error instanceof Error ? error.message : "Failed to load referral data";
19079
19097
  if (isDialog) {
19080
- return /* @__PURE__ */ jsx225("div", { className: "text-destructive text-center text-sm", children: errorMessage });
19098
+ return /* @__PURE__ */ jsx226("div", { className: "text-destructive text-center text-sm", children: errorMessage });
19081
19099
  }
19082
- return /* @__PURE__ */ jsx225(Card, { className: `p-6 ${className ?? ""}`, children: /* @__PURE__ */ jsx225("div", { className: "text-destructive text-center text-sm", children: errorMessage }) });
19100
+ return /* @__PURE__ */ jsx226(Card, { className: `p-6 ${className ?? ""}`, children: /* @__PURE__ */ jsx226("div", { className: "text-destructive text-center text-sm", children: errorMessage }) });
19083
19101
  }
19084
19102
  const content = /* @__PURE__ */ jsxs139("div", { className: "flex flex-col gap-4", children: [
19085
19103
  !isDialog && /* @__PURE__ */ jsxs139("div", { className: "flex items-start gap-3", children: [
19086
- /* @__PURE__ */ jsx225("div", { className: "bg-primary/10 rounded-full p-2", children: /* @__PURE__ */ jsx225(Users, { className: "text-primary h-5 w-5" }) }),
19104
+ /* @__PURE__ */ jsx226("div", { className: "bg-primary/10 rounded-full p-2", children: /* @__PURE__ */ jsx226(Users, { className: "text-primary h-5 w-5" }) }),
19087
19105
  /* @__PURE__ */ jsxs139("div", { className: "flex flex-col gap-1", children: [
19088
- /* @__PURE__ */ jsx225("h3", { className: "text-lg font-semibold", children: t.title }),
19089
- /* @__PURE__ */ jsx225("p", { className: "text-muted-foreground text-sm", children: t.description })
19106
+ /* @__PURE__ */ jsx226("h3", { className: "text-lg font-semibold", children: t.title }),
19107
+ /* @__PURE__ */ jsx226("p", { className: "text-muted-foreground text-sm", children: t.description })
19090
19108
  ] })
19091
19109
  ] }),
19092
19110
  /* @__PURE__ */ jsxs139("div", { className: "flex flex-col gap-2", children: [
19093
- /* @__PURE__ */ jsx225(Label, { className: "text-sm font-medium", children: t.yourLink }),
19111
+ /* @__PURE__ */ jsx226(Label, { className: "text-sm font-medium", children: t.yourLink }),
19094
19112
  /* @__PURE__ */ jsxs139("div", { className: "flex gap-2", children: [
19095
- /* @__PURE__ */ jsx225(Input, { ref: linkInputRef, value: referralUrl, readOnly: true, className: "font-mono text-sm" }),
19096
- /* @__PURE__ */ jsx225(
19113
+ /* @__PURE__ */ jsx226(Input, { ref: linkInputRef, value: referralUrl, readOnly: true, className: "font-mono text-sm" }),
19114
+ /* @__PURE__ */ jsx226(
19097
19115
  Button,
19098
19116
  {
19099
19117
  type: "button",
@@ -19102,16 +19120,16 @@ function ReferralWidget({
19102
19120
  onClick: handleCopyLink,
19103
19121
  disabled: !referralUrl,
19104
19122
  "aria-label": t.copyButton,
19105
- children: /* @__PURE__ */ jsx225(Copy2, { className: `h-4 w-4 ${copied ? "text-green-500" : ""}` })
19123
+ children: /* @__PURE__ */ jsx226(Copy2, { className: `h-4 w-4 ${copied ? "text-green-500" : ""}` })
19106
19124
  }
19107
19125
  )
19108
19126
  ] })
19109
19127
  ] }),
19110
19128
  /* @__PURE__ */ jsxs139("div", { className: "flex flex-col gap-2", children: [
19111
- /* @__PURE__ */ jsx225(Label, { className: "text-sm font-medium", children: t.inviteTitle }),
19112
- /* @__PURE__ */ jsx225("p", { className: "text-muted-foreground text-sm", children: t.inviteDescription }),
19129
+ /* @__PURE__ */ jsx226(Label, { className: "text-sm font-medium", children: t.inviteTitle }),
19130
+ /* @__PURE__ */ jsx226("p", { className: "text-muted-foreground text-sm", children: t.inviteDescription }),
19113
19131
  /* @__PURE__ */ jsxs139("div", { className: "flex gap-2", children: [
19114
- /* @__PURE__ */ jsx225(
19132
+ /* @__PURE__ */ jsx226(
19115
19133
  Input,
19116
19134
  {
19117
19135
  type: "email",
@@ -19122,7 +19140,7 @@ function ReferralWidget({
19122
19140
  disabled: sending
19123
19141
  }
19124
19142
  ),
19125
- /* @__PURE__ */ jsx225(
19143
+ /* @__PURE__ */ jsx226(
19126
19144
  Button,
19127
19145
  {
19128
19146
  type: "button",
@@ -19131,12 +19149,12 @@ function ReferralWidget({
19131
19149
  onClick: handleSendInvite,
19132
19150
  disabled: sending || !email,
19133
19151
  "aria-label": sending ? t.sendingButton : t.sendButton,
19134
- children: sending ? /* @__PURE__ */ jsx225(Loader25, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx225(Mail, { className: "h-4 w-4" })
19152
+ children: sending ? /* @__PURE__ */ jsx226(Loader25, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx226(Mail, { className: "h-4 w-4" })
19135
19153
  }
19136
19154
  )
19137
19155
  ] })
19138
19156
  ] }),
19139
- stats && stats.completedReferrals > 0 && /* @__PURE__ */ jsx225("div", { className: "border-border border-t pt-3", children: /* @__PURE__ */ jsxs139("p", { className: "text-muted-foreground text-sm", children: [
19157
+ stats && stats.completedReferrals > 0 && /* @__PURE__ */ jsx226("div", { className: "border-border border-t pt-3", children: /* @__PURE__ */ jsxs139("p", { className: "text-muted-foreground text-sm", children: [
19140
19158
  t.completedLabel,
19141
19159
  ": ",
19142
19160
  stats.completedReferrals
@@ -19145,12 +19163,12 @@ function ReferralWidget({
19145
19163
  if (isDialog) {
19146
19164
  return content;
19147
19165
  }
19148
- return /* @__PURE__ */ jsx225(Card, { className: `p-6 ${className ?? ""}`, children: content });
19166
+ return /* @__PURE__ */ jsx226(Card, { className: `p-6 ${className ?? ""}`, children: content });
19149
19167
  }
19150
19168
  __name(ReferralWidget, "ReferralWidget");
19151
19169
 
19152
19170
  // src/features/referral/components/ReferralDialog.tsx
19153
- import { jsx as jsx226, jsxs as jsxs140 } from "react/jsx-runtime";
19171
+ import { jsx as jsx227, jsxs as jsxs140 } from "react/jsx-runtime";
19154
19172
  var DEFAULT_DIALOG_TRANSLATIONS = {
19155
19173
  dialogTitle: "Invite Friends",
19156
19174
  dialogDescription: "Share your referral link and earn rewards when your friends subscribe."
@@ -19166,49 +19184,49 @@ function ReferralDialog({
19166
19184
  return null;
19167
19185
  }
19168
19186
  const t = { ...DEFAULT_DIALOG_TRANSLATIONS, ...translations };
19169
- return /* @__PURE__ */ jsx226(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs140(DialogContent, { className: dialogClassName ?? "max-w-md", children: [
19187
+ return /* @__PURE__ */ jsx227(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs140(DialogContent, { className: dialogClassName ?? "max-w-md", children: [
19170
19188
  /* @__PURE__ */ jsxs140(DialogHeader, { children: [
19171
- /* @__PURE__ */ jsx226(DialogTitle, { children: t.dialogTitle }),
19172
- /* @__PURE__ */ jsx226(DialogDescription, { children: t.dialogDescription })
19189
+ /* @__PURE__ */ jsx227(DialogTitle, { children: t.dialogTitle }),
19190
+ /* @__PURE__ */ jsx227(DialogDescription, { children: t.dialogDescription })
19173
19191
  ] }),
19174
- /* @__PURE__ */ jsx226(ReferralWidget, { ...widgetProps, translations, isDialog: true })
19192
+ /* @__PURE__ */ jsx227(ReferralWidget, { ...widgetProps, translations, isDialog: true })
19175
19193
  ] }) });
19176
19194
  }
19177
19195
  __name(ReferralDialog, "ReferralDialog");
19178
19196
 
19179
19197
  // src/features/role/components/details/RoleDetails.tsx
19180
19198
  import { useTranslations as useTranslations98 } from "next-intl";
19181
- import { jsx as jsx227 } from "react/jsx-runtime";
19199
+ import { jsx as jsx228 } from "react/jsx-runtime";
19182
19200
  function RoleDetails() {
19183
19201
  const { role } = useRoleContext();
19184
19202
  const t = useTranslations98();
19185
19203
  if (!role) return null;
19186
- return /* @__PURE__ */ jsx227(Card, { className: "w-full", children: /* @__PURE__ */ jsx227(CardContent, { className: "p-4", children: /* @__PURE__ */ jsx227(AttributeElement, { title: t(`role.fields.description.label`), value: role.description }) }) });
19204
+ return /* @__PURE__ */ jsx228(Card, { className: "w-full", children: /* @__PURE__ */ jsx228(CardContent, { className: "p-4", children: /* @__PURE__ */ jsx228(AttributeElement, { title: t(`role.fields.description.label`), value: role.description }) }) });
19187
19205
  }
19188
19206
  __name(RoleDetails, "RoleDetails");
19189
19207
 
19190
19208
  // src/features/role/components/containers/RoleContainer.tsx
19191
- import { Fragment as Fragment49, jsx as jsx228, jsxs as jsxs141 } from "react/jsx-runtime";
19209
+ import { Fragment as Fragment49, jsx as jsx229, jsxs as jsxs141 } from "react/jsx-runtime";
19192
19210
  function RoleContainer() {
19193
19211
  const { role } = useRoleContext();
19194
19212
  if (!role) return null;
19195
19213
  return /* @__PURE__ */ jsxs141(Fragment49, { children: [
19196
- /* @__PURE__ */ jsx228(RoleDetails, {}),
19197
- /* @__PURE__ */ jsx228(RoleUsersList, { role })
19214
+ /* @__PURE__ */ jsx229(RoleDetails, {}),
19215
+ /* @__PURE__ */ jsx229(RoleUsersList, { role })
19198
19216
  ] });
19199
19217
  }
19200
19218
  __name(RoleContainer, "RoleContainer");
19201
19219
 
19202
19220
  // src/features/role/components/forms/FormRoles.tsx
19203
19221
  import { useTranslations as useTranslations99 } from "next-intl";
19204
- import { jsx as jsx229, jsxs as jsxs142 } from "react/jsx-runtime";
19222
+ import { jsx as jsx230, jsxs as jsxs142 } from "react/jsx-runtime";
19205
19223
  function FormRoles({ form, id, name, roles }) {
19206
19224
  const t = useTranslations99();
19207
19225
  const { hasAccesToFeature } = useCurrentUserContext();
19208
- return /* @__PURE__ */ jsx229("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx229(FormFieldWrapper, { form, name: id, label: name, children: (field) => /* @__PURE__ */ jsx229("div", { className: "flex w-full flex-col gap-y-1", children: roles.filter((role) => role.isSelectable).sort((a, b) => a.name.localeCompare(b.name)).map((role) => {
19226
+ return /* @__PURE__ */ jsx230("div", { className: "flex w-full flex-col", children: /* @__PURE__ */ jsx230(FormFieldWrapper, { form, name: id, label: name, children: (field) => /* @__PURE__ */ jsx230("div", { className: "flex w-full flex-col gap-y-1", children: roles.filter((role) => role.isSelectable).sort((a, b) => a.name.localeCompare(b.name)).map((role) => {
19209
19227
  if (role.requiredFeature && !hasAccesToFeature(role.requiredFeature.id)) return null;
19210
19228
  return /* @__PURE__ */ jsxs142("div", { className: "flex w-full items-center", children: [
19211
- /* @__PURE__ */ jsx229(
19229
+ /* @__PURE__ */ jsx230(
19212
19230
  Checkbox,
19213
19231
  {
19214
19232
  id: `role-${role.id}`,
@@ -19226,8 +19244,8 @@ function FormRoles({ form, id, name, roles }) {
19226
19244
  }
19227
19245
  ),
19228
19246
  /* @__PURE__ */ jsxs142(Tooltip2, { children: [
19229
- /* @__PURE__ */ jsx229(TooltipTrigger, { children: /* @__PURE__ */ jsx229(FieldLabel, { htmlFor: `role-${role.id}`, className: "ml-3 cursor-pointer font-normal", children: t(`role.roles`, { role: role.id.replaceAll(`-`, ``) }) }) }),
19230
- /* @__PURE__ */ jsx229(TooltipContent, { children: t(`role.roles_descriptions`, { role: role.id.replaceAll(`-`, ``) }) })
19247
+ /* @__PURE__ */ jsx230(TooltipTrigger, { children: /* @__PURE__ */ jsx230(FieldLabel, { htmlFor: `role-${role.id}`, className: "ml-3 cursor-pointer font-normal", children: t(`role.roles`, { role: role.id.replaceAll(`-`, ``) }) }) }),
19248
+ /* @__PURE__ */ jsx230(TooltipContent, { children: t(`role.roles_descriptions`, { role: role.id.replaceAll(`-`, ``) }) })
19231
19249
  ] })
19232
19250
  ] }, role.id);
19233
19251
  }) }) }) });
@@ -19237,7 +19255,7 @@ __name(FormRoles, "FormRoles");
19237
19255
  // src/features/role/components/forms/RemoveUserFromRole.tsx
19238
19256
  import { useTranslations as useTranslations100 } from "next-intl";
19239
19257
  import { useEffect as useEffect66, useState as useState87 } from "react";
19240
- import { Fragment as Fragment50, jsx as jsx230, jsxs as jsxs143 } from "react/jsx-runtime";
19258
+ import { Fragment as Fragment50, jsx as jsx231, jsxs as jsxs143 } from "react/jsx-runtime";
19241
19259
  function RemoveUserFromRole({ role, user, refresh }) {
19242
19260
  const [open, setOpen] = useState87(false);
19243
19261
  const [canRemove, setCanRemove] = useState87(false);
@@ -19270,7 +19288,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
19270
19288
  }, "remove");
19271
19289
  const roleName = t(`role.roles`, { role: role.id.replaceAll(`-`, ``) });
19272
19290
  return /* @__PURE__ */ jsxs143(Dialog, { open, onOpenChange: setOpen, children: [
19273
- /* @__PURE__ */ jsx230(
19291
+ /* @__PURE__ */ jsx231(
19274
19292
  DialogTrigger,
19275
19293
  {
19276
19294
  onClick: (e) => {
@@ -19278,19 +19296,19 @@ function RemoveUserFromRole({ role, user, refresh }) {
19278
19296
  e.preventDefault();
19279
19297
  setOpen(true);
19280
19298
  },
19281
- children: /* @__PURE__ */ jsx230("span", { className: "hover:text-destructive cursor-pointer", children: t(`role.remove_user.title`) })
19299
+ children: /* @__PURE__ */ jsx231("span", { className: "hover:text-destructive cursor-pointer", children: t(`role.remove_user.title`) })
19282
19300
  }
19283
19301
  ),
19284
19302
  /* @__PURE__ */ jsxs143(DialogContent, { className: `flex max-h-[70vh] max-w-3xl flex-col overflow-y-auto`, children: [
19285
19303
  /* @__PURE__ */ jsxs143(DialogHeader, { children: [
19286
- /* @__PURE__ */ jsx230(DialogTitle, { children: t(`role.remove_user.title`) }),
19287
- /* @__PURE__ */ jsx230(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
19304
+ /* @__PURE__ */ jsx231(DialogTitle, { children: t(`role.remove_user.title`) }),
19305
+ /* @__PURE__ */ jsx231(DialogDescription, { children: canRemove ? t(`role.remove_user.subtitle_allowed`) : t(`role.remove_user.subtitle_not_allowed`) })
19288
19306
  ] }),
19289
19307
  canRemove ? /* @__PURE__ */ jsxs143(Fragment50, { children: [
19290
19308
  t(`role.remove_user.description_allowed`, { role: roleName, user: user.name }),
19291
19309
  /* @__PURE__ */ jsxs143("div", { className: "flex justify-end", children: [
19292
- /* @__PURE__ */ jsx230(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
19293
- /* @__PURE__ */ jsx230(
19310
+ /* @__PURE__ */ jsx231(Button, { className: "mr-2", variant: "outline", type: `button`, onClick: () => setOpen(false), children: t(`ui.buttons.cancel`) }),
19311
+ /* @__PURE__ */ jsx231(
19294
19312
  Button,
19295
19313
  {
19296
19314
  type: "submit",
@@ -19303,7 +19321,7 @@ function RemoveUserFromRole({ role, user, refresh }) {
19303
19321
  }
19304
19322
  )
19305
19323
  ] })
19306
- ] }) : /* @__PURE__ */ jsx230(Fragment50, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
19324
+ ] }) : /* @__PURE__ */ jsx231(Fragment50, { children: t(`role.remove_user.description_not_allowed`, { role: roleName, user: user.name }) })
19307
19325
  ] })
19308
19326
  ] });
19309
19327
  }
@@ -19313,7 +19331,7 @@ __name(RemoveUserFromRole, "RemoveUserFromRole");
19313
19331
  import { PlusCircle as PlusCircle2 } from "lucide-react";
19314
19332
  import { useTranslations as useTranslations101 } from "next-intl";
19315
19333
  import { useCallback as useCallback41, useEffect as useEffect67, useRef as useRef35, useState as useState88 } from "react";
19316
- import { Fragment as Fragment51, jsx as jsx231, jsxs as jsxs144 } from "react/jsx-runtime";
19334
+ import { Fragment as Fragment51, jsx as jsx232, jsxs as jsxs144 } from "react/jsx-runtime";
19317
19335
  function UserRoleAdd({ user, refresh }) {
19318
19336
  const [open, setOpen] = useState88(false);
19319
19337
  const inputRef = useRef35(null);
@@ -19362,24 +19380,24 @@ function UserRoleAdd({ user, refresh }) {
19362
19380
  }, [open]);
19363
19381
  return /* @__PURE__ */ jsxs144(Fragment51, { children: [
19364
19382
  /* @__PURE__ */ jsxs144(Button, { size: "sm", onClick: () => setOpen(true), children: [
19365
- /* @__PURE__ */ jsx231(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
19383
+ /* @__PURE__ */ jsx232(PlusCircle2, { className: "mr-3 h-3.5 w-3.5" }),
19366
19384
  t(`common.association.label`, {
19367
19385
  source: t(`entities.roles`, { count: 1 }),
19368
19386
  destination: t(`entities.users`, { count: 1 })
19369
19387
  })
19370
19388
  ] }),
19371
19389
  /* @__PURE__ */ jsxs144(CommandDialog, { open, onOpenChange: setOpen, children: [
19372
- /* @__PURE__ */ jsx231(DialogTitle, { children: t(`common.association.label`, {
19390
+ /* @__PURE__ */ jsx232(DialogTitle, { children: t(`common.association.label`, {
19373
19391
  source: t(`entities.roles`, { count: 1 }),
19374
19392
  destination: t(`entities.users`, { count: 1 })
19375
19393
  }) }),
19376
- /* @__PURE__ */ jsx231(DialogDescription, { children: t(`common.association.description`, {
19394
+ /* @__PURE__ */ jsx232(DialogDescription, { children: t(`common.association.description`, {
19377
19395
  source: t(`entities.roles`, { count: 1 }),
19378
19396
  destination: t(`entities.users`, { count: 1 }),
19379
19397
  destination_name: user.name
19380
19398
  }) }),
19381
19399
  /* @__PURE__ */ jsxs144(Command, { shouldFilter: false, children: [
19382
- /* @__PURE__ */ jsx231(
19400
+ /* @__PURE__ */ jsx232(
19383
19401
  CommandInput,
19384
19402
  {
19385
19403
  placeholder: t(`ui.search.placeholder`, { type: t(`entities.roles`, { count: 1 }) }),
@@ -19389,8 +19407,8 @@ function UserRoleAdd({ user, refresh }) {
19389
19407
  }
19390
19408
  ),
19391
19409
  /* @__PURE__ */ jsxs144(CommandList, { className: "mt-3 h-auto max-h-96 min-h-96 max-w-full overflow-x-hidden overflow-y-auto", children: [
19392
- /* @__PURE__ */ jsx231(CommandEmpty, { children: t(`ui.search.no_results`, { type: t(`entities.roles`, { count: 1 }) }) }),
19393
- roles.map((role) => /* @__PURE__ */ jsx231(
19410
+ /* @__PURE__ */ jsx232(CommandEmpty, { children: t(`ui.search.no_results`, { type: t(`entities.roles`, { count: 1 }) }) }),
19411
+ roles.map((role) => /* @__PURE__ */ jsx232(
19394
19412
  CommandItem,
19395
19413
  {
19396
19414
  className: "cursor-pointer hover:bg-muted data-selected:hover:bg-muted bg-transparent data-selected:bg-transparent",
@@ -19409,7 +19427,7 @@ __name(UserRoleAdd, "UserRoleAdd");
19409
19427
 
19410
19428
  // src/features/role/components/lists/RolesList.tsx
19411
19429
  import { useTranslations as useTranslations102 } from "next-intl";
19412
- import { jsx as jsx232 } from "react/jsx-runtime";
19430
+ import { jsx as jsx233 } from "react/jsx-runtime";
19413
19431
  function RolesList() {
19414
19432
  const t = useTranslations102();
19415
19433
  const data = useDataListRetriever({
@@ -19417,7 +19435,7 @@ function RolesList() {
19417
19435
  retrieverParams: {},
19418
19436
  module: Modules.Role
19419
19437
  });
19420
- return /* @__PURE__ */ jsx232(
19438
+ return /* @__PURE__ */ jsx233(
19421
19439
  ContentListTable,
19422
19440
  {
19423
19441
  data,
@@ -19431,7 +19449,7 @@ __name(RolesList, "RolesList");
19431
19449
 
19432
19450
  // src/features/role/components/lists/UserRolesList.tsx
19433
19451
  import { useTranslations as useTranslations103 } from "next-intl";
19434
- import { jsx as jsx233 } from "react/jsx-runtime";
19452
+ import { jsx as jsx234 } from "react/jsx-runtime";
19435
19453
  function UserRolesList({ user }) {
19436
19454
  const t = useTranslations103();
19437
19455
  const data = useDataListRetriever({
@@ -19439,7 +19457,7 @@ function UserRolesList({ user }) {
19439
19457
  retrieverParams: { userId: user.id },
19440
19458
  module: Modules.Role
19441
19459
  });
19442
- return /* @__PURE__ */ jsx233(
19460
+ return /* @__PURE__ */ jsx234(
19443
19461
  ContentListTable,
19444
19462
  {
19445
19463
  data,
@@ -19454,7 +19472,7 @@ __name(UserRolesList, "UserRolesList");
19454
19472
  // src/features/oauth/components/OAuthRedirectUriInput.tsx
19455
19473
  import { useCallback as useCallback42 } from "react";
19456
19474
  import { Plus as Plus2, Trash2 as Trash23 } from "lucide-react";
19457
- import { jsx as jsx234, jsxs as jsxs145 } from "react/jsx-runtime";
19475
+ import { jsx as jsx235, jsxs as jsxs145 } from "react/jsx-runtime";
19458
19476
  function isValidRedirectUri(uri) {
19459
19477
  if (!uri.trim()) return false;
19460
19478
  if (uri.startsWith("http://localhost") || uri.startsWith("http://127.0.0.1")) {
@@ -19505,12 +19523,12 @@ function OAuthRedirectUriInput({
19505
19523
  label,
19506
19524
  " *"
19507
19525
  ] }),
19508
- /* @__PURE__ */ jsx234("p", { className: "text-sm text-muted-foreground", children: "Enter the URIs where users will be redirected after authorization. Use https:// for production, or custom schemes for mobile apps." }),
19509
- /* @__PURE__ */ jsx234("div", { className: "space-y-2", children: value.map((uri, index) => {
19526
+ /* @__PURE__ */ jsx235("p", { className: "text-sm text-muted-foreground", children: "Enter the URIs where users will be redirected after authorization. Use https:// for production, or custom schemes for mobile apps." }),
19527
+ /* @__PURE__ */ jsx235("div", { className: "space-y-2", children: value.map((uri, index) => {
19510
19528
  const isValid3 = !uri || isValidRedirectUri(uri);
19511
19529
  return /* @__PURE__ */ jsxs145("div", { className: "flex gap-2", children: [
19512
19530
  /* @__PURE__ */ jsxs145("div", { className: "flex-1", children: [
19513
- /* @__PURE__ */ jsx234(
19531
+ /* @__PURE__ */ jsx235(
19514
19532
  Input,
19515
19533
  {
19516
19534
  value: uri,
@@ -19520,9 +19538,9 @@ function OAuthRedirectUriInput({
19520
19538
  className: !isValid3 ? "border-destructive" : ""
19521
19539
  }
19522
19540
  ),
19523
- !isValid3 && /* @__PURE__ */ jsx234("p", { className: "text-xs text-destructive mt-1", children: "Must be https://, http://localhost, or a custom scheme (app://)" })
19541
+ !isValid3 && /* @__PURE__ */ jsx235("p", { className: "text-xs text-destructive mt-1", children: "Must be https://, http://localhost, or a custom scheme (app://)" })
19524
19542
  ] }),
19525
- /* @__PURE__ */ jsx234(
19543
+ /* @__PURE__ */ jsx235(
19526
19544
  Button,
19527
19545
  {
19528
19546
  type: "button",
@@ -19531,23 +19549,23 @@ function OAuthRedirectUriInput({
19531
19549
  onClick: () => handleRemove(index),
19532
19550
  disabled: disabled || value.length === 1,
19533
19551
  title: "Remove URI",
19534
- children: /* @__PURE__ */ jsx234(Trash23, { className: "h-4 w-4" })
19552
+ children: /* @__PURE__ */ jsx235(Trash23, { className: "h-4 w-4" })
19535
19553
  }
19536
19554
  )
19537
19555
  ] }, index);
19538
19556
  }) }),
19539
19557
  /* @__PURE__ */ jsxs145(Button, { type: "button", variant: "outline", size: "sm", onClick: handleAdd, disabled, className: "mt-2", children: [
19540
- /* @__PURE__ */ jsx234(Plus2, { className: "h-4 w-4 mr-2" }),
19558
+ /* @__PURE__ */ jsx235(Plus2, { className: "h-4 w-4 mr-2" }),
19541
19559
  "Add Redirect URI"
19542
19560
  ] }),
19543
- error && /* @__PURE__ */ jsx234("p", { className: "text-sm text-destructive", children: error })
19561
+ error && /* @__PURE__ */ jsx235("p", { className: "text-sm text-destructive", children: error })
19544
19562
  ] });
19545
19563
  }
19546
19564
  __name(OAuthRedirectUriInput, "OAuthRedirectUriInput");
19547
19565
 
19548
19566
  // src/features/oauth/components/OAuthScopeSelector.tsx
19549
19567
  import { useCallback as useCallback43 } from "react";
19550
- import { jsx as jsx235, jsxs as jsxs146 } from "react/jsx-runtime";
19568
+ import { jsx as jsx236, jsxs as jsxs146 } from "react/jsx-runtime";
19551
19569
  function OAuthScopeSelector({
19552
19570
  value,
19553
19571
  onChange,
@@ -19584,11 +19602,11 @@ function OAuthScopeSelector({
19584
19602
  label,
19585
19603
  " *"
19586
19604
  ] }),
19587
- /* @__PURE__ */ jsx235("p", { className: "text-sm text-muted-foreground", children: "Select the permissions your application needs." })
19605
+ /* @__PURE__ */ jsx236("p", { className: "text-sm text-muted-foreground", children: "Select the permissions your application needs." })
19588
19606
  ] }),
19589
- /* @__PURE__ */ jsx235("div", { className: "space-y-4", children: Object.entries(groupedScopes).map(([groupName, scopes]) => /* @__PURE__ */ jsxs146("div", { className: "space-y-2", children: [
19590
- /* @__PURE__ */ jsx235("h4", { className: "text-sm font-medium capitalize", children: groupName }),
19591
- /* @__PURE__ */ jsx235("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-2 pl-2", children: scopes.map((scopeInfo) => {
19607
+ /* @__PURE__ */ jsx236("div", { className: "space-y-4", children: Object.entries(groupedScopes).map(([groupName, scopes]) => /* @__PURE__ */ jsxs146("div", { className: "space-y-2", children: [
19608
+ /* @__PURE__ */ jsx236("h4", { className: "text-sm font-medium capitalize", children: groupName }),
19609
+ /* @__PURE__ */ jsx236("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-2 pl-2", children: scopes.map((scopeInfo) => {
19592
19610
  const isChecked = value.includes(scopeInfo.scope);
19593
19611
  const isAdmin = scopeInfo.scope === "admin";
19594
19612
  return /* @__PURE__ */ jsxs146(
@@ -19596,7 +19614,7 @@ function OAuthScopeSelector({
19596
19614
  {
19597
19615
  className: `flex items-start space-x-3 p-2 rounded-md border ${isChecked ? "bg-primary/5 border-primary/20" : "border-transparent"} ${isAdmin ? "bg-destructive/5" : ""}`,
19598
19616
  children: [
19599
- /* @__PURE__ */ jsx235(
19617
+ /* @__PURE__ */ jsx236(
19600
19618
  Checkbox,
19601
19619
  {
19602
19620
  id: `scope-${scopeInfo.scope}`,
@@ -19608,9 +19626,9 @@ function OAuthScopeSelector({
19608
19626
  /* @__PURE__ */ jsxs146("div", { className: "flex-1", children: [
19609
19627
  /* @__PURE__ */ jsxs146(Label, { htmlFor: `scope-${scopeInfo.scope}`, className: "text-sm font-medium cursor-pointer", children: [
19610
19628
  scopeInfo.name,
19611
- isAdmin && /* @__PURE__ */ jsx235("span", { className: "ml-2 text-xs text-destructive", children: "(Dangerous)" })
19629
+ isAdmin && /* @__PURE__ */ jsx236("span", { className: "ml-2 text-xs text-destructive", children: "(Dangerous)" })
19612
19630
  ] }),
19613
- /* @__PURE__ */ jsx235("p", { className: "text-xs text-muted-foreground", children: scopeInfo.description })
19631
+ /* @__PURE__ */ jsx236("p", { className: "text-xs text-muted-foreground", children: scopeInfo.description })
19614
19632
  ] })
19615
19633
  ]
19616
19634
  },
@@ -19618,7 +19636,7 @@ function OAuthScopeSelector({
19618
19636
  );
19619
19637
  }) })
19620
19638
  ] }, groupName)) }),
19621
- error && /* @__PURE__ */ jsx235("p", { className: "text-sm text-destructive", children: error })
19639
+ error && /* @__PURE__ */ jsx236("p", { className: "text-sm text-destructive", children: error })
19622
19640
  ] });
19623
19641
  }
19624
19642
  __name(OAuthScopeSelector, "OAuthScopeSelector");
@@ -19626,7 +19644,7 @@ __name(OAuthScopeSelector, "OAuthScopeSelector");
19626
19644
  // src/features/oauth/components/OAuthClientSecretDisplay.tsx
19627
19645
  import { useState as useState89, useCallback as useCallback44 } from "react";
19628
19646
  import { Copy as Copy3, Check, AlertTriangle } from "lucide-react";
19629
- import { jsx as jsx236, jsxs as jsxs147 } from "react/jsx-runtime";
19647
+ import { jsx as jsx237, jsxs as jsxs147 } from "react/jsx-runtime";
19630
19648
  function OAuthClientSecretDisplay({ secret, onDismiss, open, clientName }) {
19631
19649
  const [copied, setCopied] = useState89(false);
19632
19650
  const handleCopy = useCallback44(async () => {
@@ -19642,25 +19660,25 @@ function OAuthClientSecretDisplay({ secret, onDismiss, open, clientName }) {
19642
19660
  setCopied(false);
19643
19661
  onDismiss();
19644
19662
  }, [onDismiss]);
19645
- return /* @__PURE__ */ jsx236(Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleDismiss(), children: /* @__PURE__ */ jsxs147(DialogContent, { className: "sm:max-w-md", children: [
19663
+ return /* @__PURE__ */ jsx237(Dialog, { open, onOpenChange: (isOpen) => !isOpen && handleDismiss(), children: /* @__PURE__ */ jsxs147(DialogContent, { className: "sm:max-w-md", children: [
19646
19664
  /* @__PURE__ */ jsxs147(DialogHeader, { children: [
19647
19665
  /* @__PURE__ */ jsxs147(DialogTitle, { className: "flex items-center gap-2", children: [
19648
- /* @__PURE__ */ jsx236(AlertTriangle, { className: "h-5 w-5 text-warning" }),
19666
+ /* @__PURE__ */ jsx237(AlertTriangle, { className: "h-5 w-5 text-warning" }),
19649
19667
  "Save Your Client Secret"
19650
19668
  ] }),
19651
- /* @__PURE__ */ jsx236(DialogDescription, { children: clientName ? `Your client secret for "${clientName}" is shown below.` : "Your client secret is shown below." })
19669
+ /* @__PURE__ */ jsx237(DialogDescription, { children: clientName ? `Your client secret for "${clientName}" is shown below.` : "Your client secret is shown below." })
19652
19670
  ] }),
19653
19671
  /* @__PURE__ */ jsxs147(Alert, { variant: "destructive", className: "my-4", children: [
19654
- /* @__PURE__ */ jsx236(AlertTriangle, { className: "h-4 w-4" }),
19672
+ /* @__PURE__ */ jsx237(AlertTriangle, { className: "h-4 w-4" }),
19655
19673
  /* @__PURE__ */ jsxs147(AlertDescription, { children: [
19656
- /* @__PURE__ */ jsx236("strong", { children: "This is the only time your client secret will be displayed." }),
19657
- /* @__PURE__ */ jsx236("br", {}),
19674
+ /* @__PURE__ */ jsx237("strong", { children: "This is the only time your client secret will be displayed." }),
19675
+ /* @__PURE__ */ jsx237("br", {}),
19658
19676
  "Copy it now and store it securely. You will not be able to retrieve it later."
19659
19677
  ] })
19660
19678
  ] }),
19661
19679
  /* @__PURE__ */ jsxs147("div", { className: "flex items-center space-x-2", children: [
19662
- /* @__PURE__ */ jsx236("div", { className: "flex-1", children: /* @__PURE__ */ jsx236(Input, { value: secret, readOnly: true, className: "font-mono text-sm", onClick: (e) => e.currentTarget.select() }) }),
19663
- /* @__PURE__ */ jsx236(
19680
+ /* @__PURE__ */ jsx237("div", { className: "flex-1", children: /* @__PURE__ */ jsx237(Input, { value: secret, readOnly: true, className: "font-mono text-sm", onClick: (e) => e.currentTarget.select() }) }),
19681
+ /* @__PURE__ */ jsx237(
19664
19682
  Button,
19665
19683
  {
19666
19684
  type: "button",
@@ -19668,12 +19686,12 @@ function OAuthClientSecretDisplay({ secret, onDismiss, open, clientName }) {
19668
19686
  size: "icon",
19669
19687
  onClick: handleCopy,
19670
19688
  title: copied ? "Copied!" : "Copy to clipboard",
19671
- children: copied ? /* @__PURE__ */ jsx236(Check, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx236(Copy3, { className: "h-4 w-4" })
19689
+ children: copied ? /* @__PURE__ */ jsx237(Check, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx237(Copy3, { className: "h-4 w-4" })
19672
19690
  }
19673
19691
  )
19674
19692
  ] }),
19675
- copied && /* @__PURE__ */ jsx236("p", { className: "text-sm text-green-600 text-center", children: "Copied to clipboard!" }),
19676
- /* @__PURE__ */ jsx236(DialogFooter, { className: "mt-4", children: /* @__PURE__ */ jsx236(Button, { onClick: handleDismiss, className: "w-full", children: "I've Saved My Secret" }) })
19693
+ copied && /* @__PURE__ */ jsx237("p", { className: "text-sm text-green-600 text-center", children: "Copied to clipboard!" }),
19694
+ /* @__PURE__ */ jsx237(DialogFooter, { className: "mt-4", children: /* @__PURE__ */ jsx237(Button, { onClick: handleDismiss, className: "w-full", children: "I've Saved My Secret" }) })
19677
19695
  ] }) });
19678
19696
  }
19679
19697
  __name(OAuthClientSecretDisplay, "OAuthClientSecretDisplay");
@@ -19681,7 +19699,7 @@ __name(OAuthClientSecretDisplay, "OAuthClientSecretDisplay");
19681
19699
  // src/features/oauth/components/OAuthClientCard.tsx
19682
19700
  import { formatDistanceToNow } from "date-fns";
19683
19701
  import { Key as Key2, MoreVertical, Pencil, Trash2 as Trash24 } from "lucide-react";
19684
- import { jsx as jsx237, jsxs as jsxs148 } from "react/jsx-runtime";
19702
+ import { jsx as jsx238, jsxs as jsxs148 } from "react/jsx-runtime";
19685
19703
  function OAuthClientCard({ client, onClick, onEdit, onDelete }) {
19686
19704
  const truncatedId = client.clientId.length > 12 ? `${client.clientId.slice(0, 8)}...${client.clientId.slice(-4)}` : client.clientId;
19687
19705
  const createdAgo = client.createdAt ? formatDistanceToNow(new Date(client.createdAt), { addSuffix: true }) : "Unknown";
@@ -19694,13 +19712,13 @@ function OAuthClientCard({ client, onClick, onEdit, onDelete }) {
19694
19712
  /* @__PURE__ */ jsxs148(CardHeader, { className: "pb-2", children: [
19695
19713
  /* @__PURE__ */ jsxs148("div", { className: "flex items-start justify-between", children: [
19696
19714
  /* @__PURE__ */ jsxs148("div", { className: "flex items-center gap-2", children: [
19697
- /* @__PURE__ */ jsx237(Key2, { className: "h-5 w-5 text-muted-foreground" }),
19698
- /* @__PURE__ */ jsx237(CardTitle, { className: "text-lg", children: client.name })
19715
+ /* @__PURE__ */ jsx238(Key2, { className: "h-5 w-5 text-muted-foreground" }),
19716
+ /* @__PURE__ */ jsx238(CardTitle, { className: "text-lg", children: client.name })
19699
19717
  ] }),
19700
19718
  /* @__PURE__ */ jsxs148("div", { className: "flex items-center gap-2", children: [
19701
- /* @__PURE__ */ jsx237(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
19719
+ /* @__PURE__ */ jsx238(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
19702
19720
  (onEdit || onDelete) && /* @__PURE__ */ jsxs148(DropdownMenu, { children: [
19703
- /* @__PURE__ */ jsx237(DropdownMenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx237(Button, { render: /* @__PURE__ */ jsx237("div", {}), nativeButton: false, variant: "ghost", size: "icon", className: "h-8 w-8", children: /* @__PURE__ */ jsx237(MoreVertical, { className: "h-4 w-4" }) }) }),
19721
+ /* @__PURE__ */ jsx238(DropdownMenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx238(Button, { render: /* @__PURE__ */ jsx238("div", {}), nativeButton: false, variant: "ghost", size: "icon", className: "h-8 w-8", children: /* @__PURE__ */ jsx238(MoreVertical, { className: "h-4 w-4" }) }) }),
19704
19722
  /* @__PURE__ */ jsxs148(DropdownMenuContent, { align: "end", children: [
19705
19723
  onEdit && /* @__PURE__ */ jsxs148(
19706
19724
  DropdownMenuItem,
@@ -19710,7 +19728,7 @@ function OAuthClientCard({ client, onClick, onEdit, onDelete }) {
19710
19728
  onEdit();
19711
19729
  },
19712
19730
  children: [
19713
- /* @__PURE__ */ jsx237(Pencil, { className: "h-4 w-4 mr-2" }),
19731
+ /* @__PURE__ */ jsx238(Pencil, { className: "h-4 w-4 mr-2" }),
19714
19732
  "Edit"
19715
19733
  ]
19716
19734
  }
@@ -19724,7 +19742,7 @@ function OAuthClientCard({ client, onClick, onEdit, onDelete }) {
19724
19742
  },
19725
19743
  className: "text-destructive",
19726
19744
  children: [
19727
- /* @__PURE__ */ jsx237(Trash24, { className: "h-4 w-4 mr-2" }),
19745
+ /* @__PURE__ */ jsx238(Trash24, { className: "h-4 w-4 mr-2" }),
19728
19746
  "Delete"
19729
19747
  ]
19730
19748
  }
@@ -19733,15 +19751,15 @@ function OAuthClientCard({ client, onClick, onEdit, onDelete }) {
19733
19751
  ] })
19734
19752
  ] })
19735
19753
  ] }),
19736
- client.description && /* @__PURE__ */ jsx237(CardDescription, { className: "line-clamp-2", children: client.description })
19754
+ client.description && /* @__PURE__ */ jsx238(CardDescription, { className: "line-clamp-2", children: client.description })
19737
19755
  ] }),
19738
- /* @__PURE__ */ jsx237(CardContent, { children: /* @__PURE__ */ jsxs148("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground", children: [
19739
- /* @__PURE__ */ jsx237("span", { className: "font-mono", children: truncatedId }),
19756
+ /* @__PURE__ */ jsx238(CardContent, { children: /* @__PURE__ */ jsxs148("div", { className: "flex flex-wrap gap-x-4 gap-y-1 text-sm text-muted-foreground", children: [
19757
+ /* @__PURE__ */ jsx238("span", { className: "font-mono", children: truncatedId }),
19740
19758
  /* @__PURE__ */ jsxs148("span", { children: [
19741
19759
  "Created ",
19742
19760
  createdAgo
19743
19761
  ] }),
19744
- /* @__PURE__ */ jsx237("span", { children: client.isConfidential ? "Confidential" : "Public" })
19762
+ /* @__PURE__ */ jsx238("span", { children: client.isConfidential ? "Confidential" : "Public" })
19745
19763
  ] }) })
19746
19764
  ]
19747
19765
  }
@@ -19751,7 +19769,7 @@ __name(OAuthClientCard, "OAuthClientCard");
19751
19769
 
19752
19770
  // src/features/oauth/components/OAuthClientList.tsx
19753
19771
  import { Plus as Plus3, Key as Key3 } from "lucide-react";
19754
- import { jsx as jsx238, jsxs as jsxs149 } from "react/jsx-runtime";
19772
+ import { jsx as jsx239, jsxs as jsxs149 } from "react/jsx-runtime";
19755
19773
  function OAuthClientList({
19756
19774
  clients,
19757
19775
  isLoading = false,
@@ -19766,33 +19784,33 @@ function OAuthClientList({
19766
19784
  if (isLoading && clients.length === 0) {
19767
19785
  return /* @__PURE__ */ jsxs149("div", { className: "space-y-4", children: [
19768
19786
  /* @__PURE__ */ jsxs149("div", { className: "flex items-center justify-between", children: [
19769
- /* @__PURE__ */ jsx238("h2", { className: "text-2xl font-bold", children: title }),
19770
- /* @__PURE__ */ jsx238(Skeleton, { className: "h-10 w-32" })
19787
+ /* @__PURE__ */ jsx239("h2", { className: "text-2xl font-bold", children: title }),
19788
+ /* @__PURE__ */ jsx239(Skeleton, { className: "h-10 w-32" })
19771
19789
  ] }),
19772
- /* @__PURE__ */ jsx238("div", { className: "space-y-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsx238(Skeleton, { className: "h-32 w-full" }, i)) })
19790
+ /* @__PURE__ */ jsx239("div", { className: "space-y-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsx239(Skeleton, { className: "h-32 w-full" }, i)) })
19773
19791
  ] });
19774
19792
  }
19775
19793
  if (error) {
19776
19794
  return /* @__PURE__ */ jsxs149("div", { className: "space-y-4", children: [
19777
- /* @__PURE__ */ jsx238("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx238("h2", { className: "text-2xl font-bold", children: title }) }),
19778
- /* @__PURE__ */ jsx238("div", { className: "rounded-lg border border-destructive/50 bg-destructive/10 p-6 text-center", children: /* @__PURE__ */ jsx238("p", { className: "text-destructive", children: error.message }) })
19795
+ /* @__PURE__ */ jsx239("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx239("h2", { className: "text-2xl font-bold", children: title }) }),
19796
+ /* @__PURE__ */ jsx239("div", { className: "rounded-lg border border-destructive/50 bg-destructive/10 p-6 text-center", children: /* @__PURE__ */ jsx239("p", { className: "text-destructive", children: error.message }) })
19779
19797
  ] });
19780
19798
  }
19781
19799
  if (clients.length === 0) {
19782
19800
  return /* @__PURE__ */ jsxs149("div", { className: "space-y-4", children: [
19783
19801
  /* @__PURE__ */ jsxs149("div", { className: "flex items-center justify-between", children: [
19784
- /* @__PURE__ */ jsx238("h2", { className: "text-2xl font-bold", children: title }),
19802
+ /* @__PURE__ */ jsx239("h2", { className: "text-2xl font-bold", children: title }),
19785
19803
  onCreateClick && /* @__PURE__ */ jsxs149(Button, { onClick: onCreateClick, children: [
19786
- /* @__PURE__ */ jsx238(Plus3, { className: "h-4 w-4 mr-2" }),
19804
+ /* @__PURE__ */ jsx239(Plus3, { className: "h-4 w-4 mr-2" }),
19787
19805
  "New App"
19788
19806
  ] })
19789
19807
  ] }),
19790
19808
  /* @__PURE__ */ jsxs149("div", { className: "rounded-lg border border-dashed p-12 text-center", children: [
19791
- /* @__PURE__ */ jsx238(Key3, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
19792
- /* @__PURE__ */ jsx238("h3", { className: "text-lg font-medium mb-2", children: "No OAuth Applications" }),
19793
- /* @__PURE__ */ jsx238("p", { className: "text-muted-foreground mb-4", children: emptyStateMessage }),
19809
+ /* @__PURE__ */ jsx239(Key3, { className: "h-12 w-12 mx-auto text-muted-foreground mb-4" }),
19810
+ /* @__PURE__ */ jsx239("h3", { className: "text-lg font-medium mb-2", children: "No OAuth Applications" }),
19811
+ /* @__PURE__ */ jsx239("p", { className: "text-muted-foreground mb-4", children: emptyStateMessage }),
19794
19812
  onCreateClick && /* @__PURE__ */ jsxs149(Button, { onClick: onCreateClick, children: [
19795
- /* @__PURE__ */ jsx238(Plus3, { className: "h-4 w-4 mr-2" }),
19813
+ /* @__PURE__ */ jsx239(Plus3, { className: "h-4 w-4 mr-2" }),
19796
19814
  "Create Application"
19797
19815
  ] })
19798
19816
  ] })
@@ -19800,13 +19818,13 @@ function OAuthClientList({
19800
19818
  }
19801
19819
  return /* @__PURE__ */ jsxs149("div", { className: "space-y-4", children: [
19802
19820
  /* @__PURE__ */ jsxs149("div", { className: "flex items-center justify-between", children: [
19803
- /* @__PURE__ */ jsx238("h2", { className: "text-2xl font-bold", children: title }),
19821
+ /* @__PURE__ */ jsx239("h2", { className: "text-2xl font-bold", children: title }),
19804
19822
  onCreateClick && /* @__PURE__ */ jsxs149(Button, { onClick: onCreateClick, children: [
19805
- /* @__PURE__ */ jsx238(Plus3, { className: "h-4 w-4 mr-2" }),
19823
+ /* @__PURE__ */ jsx239(Plus3, { className: "h-4 w-4 mr-2" }),
19806
19824
  "New App"
19807
19825
  ] })
19808
19826
  ] }),
19809
- /* @__PURE__ */ jsx238("div", { className: "space-y-3", children: clients.map((client) => /* @__PURE__ */ jsx238(
19827
+ /* @__PURE__ */ jsx239("div", { className: "space-y-3", children: clients.map((client) => /* @__PURE__ */ jsx239(
19810
19828
  OAuthClientCard,
19811
19829
  {
19812
19830
  client,
@@ -19822,7 +19840,7 @@ __name(OAuthClientList, "OAuthClientList");
19822
19840
 
19823
19841
  // src/features/oauth/components/OAuthClientForm.tsx
19824
19842
  import { useState as useState90, useCallback as useCallback45 } from "react";
19825
- import { jsx as jsx239, jsxs as jsxs150 } from "react/jsx-runtime";
19843
+ import { jsx as jsx240, jsxs as jsxs150 } from "react/jsx-runtime";
19826
19844
  function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19827
19845
  const isEditMode = !!client;
19828
19846
  const [formState, setFormState] = useState90({
@@ -19864,15 +19882,15 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19864
19882
  },
19865
19883
  [formState, validate, onSubmit]
19866
19884
  );
19867
- return /* @__PURE__ */ jsx239(Card, { children: /* @__PURE__ */ jsxs150("form", { onSubmit: handleSubmit, children: [
19885
+ return /* @__PURE__ */ jsx240(Card, { children: /* @__PURE__ */ jsxs150("form", { onSubmit: handleSubmit, children: [
19868
19886
  /* @__PURE__ */ jsxs150(CardHeader, { children: [
19869
- /* @__PURE__ */ jsx239(CardTitle, { children: isEditMode ? "Edit Application" : "Create OAuth Application" }),
19870
- /* @__PURE__ */ jsx239(CardDescription, { children: isEditMode ? "Update your OAuth application settings." : "Register a new application to access the API." })
19887
+ /* @__PURE__ */ jsx240(CardTitle, { children: isEditMode ? "Edit Application" : "Create OAuth Application" }),
19888
+ /* @__PURE__ */ jsx240(CardDescription, { children: isEditMode ? "Update your OAuth application settings." : "Register a new application to access the API." })
19871
19889
  ] }),
19872
19890
  /* @__PURE__ */ jsxs150(CardContent, { className: "space-y-6", children: [
19873
19891
  /* @__PURE__ */ jsxs150("div", { className: "space-y-2", children: [
19874
- /* @__PURE__ */ jsx239(Label, { htmlFor: "name", children: "Application Name *" }),
19875
- /* @__PURE__ */ jsx239(
19892
+ /* @__PURE__ */ jsx240(Label, { htmlFor: "name", children: "Application Name *" }),
19893
+ /* @__PURE__ */ jsx240(
19876
19894
  Input,
19877
19895
  {
19878
19896
  id: "name",
@@ -19883,11 +19901,11 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19883
19901
  className: errors.name ? "border-destructive" : ""
19884
19902
  }
19885
19903
  ),
19886
- errors.name && /* @__PURE__ */ jsx239("p", { className: "text-sm text-destructive", children: errors.name })
19904
+ errors.name && /* @__PURE__ */ jsx240("p", { className: "text-sm text-destructive", children: errors.name })
19887
19905
  ] }),
19888
19906
  /* @__PURE__ */ jsxs150("div", { className: "space-y-2", children: [
19889
- /* @__PURE__ */ jsx239(Label, { htmlFor: "description", children: "Description" }),
19890
- /* @__PURE__ */ jsx239(
19907
+ /* @__PURE__ */ jsx240(Label, { htmlFor: "description", children: "Description" }),
19908
+ /* @__PURE__ */ jsx240(
19891
19909
  Textarea,
19892
19910
  {
19893
19911
  id: "description",
@@ -19899,7 +19917,7 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19899
19917
  }
19900
19918
  )
19901
19919
  ] }),
19902
- /* @__PURE__ */ jsx239(
19920
+ /* @__PURE__ */ jsx240(
19903
19921
  OAuthRedirectUriInput,
19904
19922
  {
19905
19923
  value: formState.redirectUris,
@@ -19908,7 +19926,7 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19908
19926
  disabled: isLoading
19909
19927
  }
19910
19928
  ),
19911
- /* @__PURE__ */ jsx239(
19929
+ /* @__PURE__ */ jsx240(
19912
19930
  OAuthScopeSelector,
19913
19931
  {
19914
19932
  value: formState.allowedScopes,
@@ -19918,7 +19936,7 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19918
19936
  }
19919
19937
  ),
19920
19938
  /* @__PURE__ */ jsxs150("div", { className: "space-y-3", children: [
19921
- /* @__PURE__ */ jsx239(Label, { children: "Client Type" }),
19939
+ /* @__PURE__ */ jsx240(Label, { children: "Client Type" }),
19922
19940
  /* @__PURE__ */ jsxs150(
19923
19941
  RadioGroup,
19924
19942
  {
@@ -19927,28 +19945,28 @@ function OAuthClientForm({ client, onSubmit, onCancel, isLoading = false }) {
19927
19945
  disabled: isLoading || isEditMode,
19928
19946
  children: [
19929
19947
  /* @__PURE__ */ jsxs150("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
19930
- /* @__PURE__ */ jsx239(RadioGroupItem, { value: "confidential", id: "confidential", className: "mt-1" }),
19948
+ /* @__PURE__ */ jsx240(RadioGroupItem, { value: "confidential", id: "confidential", className: "mt-1" }),
19931
19949
  /* @__PURE__ */ jsxs150("div", { children: [
19932
- /* @__PURE__ */ jsx239(Label, { htmlFor: "confidential", className: "font-medium cursor-pointer", children: "Confidential" }),
19933
- /* @__PURE__ */ jsx239("p", { className: "text-sm text-muted-foreground", children: "Server-side application that can securely store the client secret." })
19950
+ /* @__PURE__ */ jsx240(Label, { htmlFor: "confidential", className: "font-medium cursor-pointer", children: "Confidential" }),
19951
+ /* @__PURE__ */ jsx240("p", { className: "text-sm text-muted-foreground", children: "Server-side application that can securely store the client secret." })
19934
19952
  ] })
19935
19953
  ] }),
19936
19954
  /* @__PURE__ */ jsxs150("div", { className: "flex items-start space-x-3 p-3 rounded-md border", children: [
19937
- /* @__PURE__ */ jsx239(RadioGroupItem, { value: "public", id: "public", className: "mt-1" }),
19955
+ /* @__PURE__ */ jsx240(RadioGroupItem, { value: "public", id: "public", className: "mt-1" }),
19938
19956
  /* @__PURE__ */ jsxs150("div", { children: [
19939
- /* @__PURE__ */ jsx239(Label, { htmlFor: "public", className: "font-medium cursor-pointer", children: "Public" }),
19940
- /* @__PURE__ */ jsx239("p", { className: "text-sm text-muted-foreground", children: "Mobile or desktop application. Requires PKCE for authorization." })
19957
+ /* @__PURE__ */ jsx240(Label, { htmlFor: "public", className: "font-medium cursor-pointer", children: "Public" }),
19958
+ /* @__PURE__ */ jsx240("p", { className: "text-sm text-muted-foreground", children: "Mobile or desktop application. Requires PKCE for authorization." })
19941
19959
  ] })
19942
19960
  ] })
19943
19961
  ]
19944
19962
  }
19945
19963
  ),
19946
- isEditMode && /* @__PURE__ */ jsx239("p", { className: "text-sm text-muted-foreground", children: "Client type cannot be changed after creation." })
19964
+ isEditMode && /* @__PURE__ */ jsx240("p", { className: "text-sm text-muted-foreground", children: "Client type cannot be changed after creation." })
19947
19965
  ] })
19948
19966
  ] }),
19949
19967
  /* @__PURE__ */ jsxs150(CardFooter, { className: "flex justify-end gap-3", children: [
19950
- /* @__PURE__ */ jsx239(Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isLoading, children: "Cancel" }),
19951
- /* @__PURE__ */ jsx239(Button, { type: "submit", disabled: isLoading, children: isLoading ? "Saving..." : isEditMode ? "Save Changes" : "Create Application" })
19968
+ /* @__PURE__ */ jsx240(Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isLoading, children: "Cancel" }),
19969
+ /* @__PURE__ */ jsx240(Button, { type: "submit", disabled: isLoading, children: isLoading ? "Saving..." : isEditMode ? "Save Changes" : "Create Application" })
19952
19970
  ] })
19953
19971
  ] }) });
19954
19972
  }
@@ -19958,7 +19976,7 @@ __name(OAuthClientForm, "OAuthClientForm");
19958
19976
  import { useState as useState91, useCallback as useCallback46 } from "react";
19959
19977
  import { format as format2 } from "date-fns";
19960
19978
  import { Copy as Copy4, Check as Check2, RefreshCw as RefreshCw3, Pencil as Pencil2, Trash2 as Trash25, ExternalLink } from "lucide-react";
19961
- import { Fragment as Fragment52, jsx as jsx240, jsxs as jsxs151 } from "react/jsx-runtime";
19979
+ import { Fragment as Fragment52, jsx as jsx241, jsxs as jsxs151 } from "react/jsx-runtime";
19962
19980
  function OAuthClientDetail({
19963
19981
  client,
19964
19982
  isLoading = false,
@@ -20003,38 +20021,38 @@ function OAuthClientDetail({
20003
20021
  const createdDate = client.createdAt ? format2(new Date(client.createdAt), "MMMM d, yyyy") : "Unknown";
20004
20022
  return /* @__PURE__ */ jsxs151(Fragment52, { children: [
20005
20023
  /* @__PURE__ */ jsxs151(Card, { children: [
20006
- /* @__PURE__ */ jsx240(CardHeader, { children: /* @__PURE__ */ jsxs151("div", { className: "flex items-start justify-between", children: [
20024
+ /* @__PURE__ */ jsx241(CardHeader, { children: /* @__PURE__ */ jsxs151("div", { className: "flex items-start justify-between", children: [
20007
20025
  /* @__PURE__ */ jsxs151("div", { children: [
20008
- /* @__PURE__ */ jsx240(CardTitle, { className: "text-2xl", children: client.name }),
20009
- client.description && /* @__PURE__ */ jsx240(CardDescription, { className: "mt-1", children: client.description })
20026
+ /* @__PURE__ */ jsx241(CardTitle, { className: "text-2xl", children: client.name }),
20027
+ client.description && /* @__PURE__ */ jsx241(CardDescription, { className: "mt-1", children: client.description })
20010
20028
  ] }),
20011
20029
  /* @__PURE__ */ jsxs151("div", { className: "flex items-center gap-2", children: [
20012
- /* @__PURE__ */ jsx240(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
20013
- /* @__PURE__ */ jsx240(Badge, { variant: "outline", children: client.isConfidential ? "Confidential" : "Public" })
20030
+ /* @__PURE__ */ jsx241(Badge, { variant: client.isActive ? "default" : "secondary", children: client.isActive ? "Active" : "Inactive" }),
20031
+ /* @__PURE__ */ jsx241(Badge, { variant: "outline", children: client.isConfidential ? "Confidential" : "Public" })
20014
20032
  ] })
20015
20033
  ] }) }),
20016
20034
  /* @__PURE__ */ jsxs151(CardContent, { className: "space-y-6", children: [
20017
20035
  /* @__PURE__ */ jsxs151("div", { className: "space-y-2", children: [
20018
- /* @__PURE__ */ jsx240(Label, { children: "Client ID" }),
20036
+ /* @__PURE__ */ jsx241(Label, { children: "Client ID" }),
20019
20037
  /* @__PURE__ */ jsxs151("div", { className: "flex gap-2", children: [
20020
- /* @__PURE__ */ jsx240(Input, { value: client.clientId, readOnly: true, className: "font-mono" }),
20021
- /* @__PURE__ */ jsx240(
20038
+ /* @__PURE__ */ jsx241(Input, { value: client.clientId, readOnly: true, className: "font-mono" }),
20039
+ /* @__PURE__ */ jsx241(
20022
20040
  Button,
20023
20041
  {
20024
20042
  variant: "outline",
20025
20043
  size: "icon",
20026
20044
  onClick: () => copyToClipboard2(client.clientId, "clientId"),
20027
20045
  title: "Copy Client ID",
20028
- children: copiedField === "clientId" ? /* @__PURE__ */ jsx240(Check2, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx240(Copy4, { className: "h-4 w-4" })
20046
+ children: copiedField === "clientId" ? /* @__PURE__ */ jsx241(Check2, { className: "h-4 w-4 text-green-600" }) : /* @__PURE__ */ jsx241(Copy4, { className: "h-4 w-4" })
20029
20047
  }
20030
20048
  )
20031
20049
  ] })
20032
20050
  ] }),
20033
20051
  /* @__PURE__ */ jsxs151("div", { className: "space-y-2", children: [
20034
- /* @__PURE__ */ jsx240(Label, { children: "Client Secret" }),
20052
+ /* @__PURE__ */ jsx241(Label, { children: "Client Secret" }),
20035
20053
  /* @__PURE__ */ jsxs151("div", { className: "flex gap-2", children: [
20036
- /* @__PURE__ */ jsx240(Input, { value: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", readOnly: true, className: "font-mono" }),
20037
- onRegenerateSecret && /* @__PURE__ */ jsx240(
20054
+ /* @__PURE__ */ jsx241(Input, { value: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", readOnly: true, className: "font-mono" }),
20055
+ onRegenerateSecret && /* @__PURE__ */ jsx241(
20038
20056
  Button,
20039
20057
  {
20040
20058
  variant: "outline",
@@ -20042,48 +20060,48 @@ function OAuthClientDetail({
20042
20060
  onClick: () => setShowRegenerateConfirm(true),
20043
20061
  title: "Regenerate Secret",
20044
20062
  disabled: isLoading,
20045
- children: /* @__PURE__ */ jsx240(RefreshCw3, { className: "h-4 w-4" })
20063
+ children: /* @__PURE__ */ jsx241(RefreshCw3, { className: "h-4 w-4" })
20046
20064
  }
20047
20065
  )
20048
20066
  ] }),
20049
- /* @__PURE__ */ jsx240("p", { className: "text-xs text-muted-foreground", children: "Regenerating will invalidate the current secret and all existing tokens." })
20067
+ /* @__PURE__ */ jsx241("p", { className: "text-xs text-muted-foreground", children: "Regenerating will invalidate the current secret and all existing tokens." })
20050
20068
  ] }),
20051
- /* @__PURE__ */ jsx240(Separator, {}),
20069
+ /* @__PURE__ */ jsx241(Separator, {}),
20052
20070
  /* @__PURE__ */ jsxs151("div", { className: "space-y-2", children: [
20053
- /* @__PURE__ */ jsx240(Label, { children: "Redirect URIs" }),
20054
- /* @__PURE__ */ jsx240("ul", { className: "space-y-1", children: client.redirectUris.map((uri, index) => /* @__PURE__ */ jsxs151("li", { className: "flex items-center gap-2 text-sm font-mono", children: [
20055
- /* @__PURE__ */ jsx240(ExternalLink, { className: "h-3 w-3 text-muted-foreground" }),
20071
+ /* @__PURE__ */ jsx241(Label, { children: "Redirect URIs" }),
20072
+ /* @__PURE__ */ jsx241("ul", { className: "space-y-1", children: client.redirectUris.map((uri, index) => /* @__PURE__ */ jsxs151("li", { className: "flex items-center gap-2 text-sm font-mono", children: [
20073
+ /* @__PURE__ */ jsx241(ExternalLink, { className: "h-3 w-3 text-muted-foreground" }),
20056
20074
  uri
20057
20075
  ] }, index)) })
20058
20076
  ] }),
20059
20077
  /* @__PURE__ */ jsxs151("div", { className: "space-y-2", children: [
20060
- /* @__PURE__ */ jsx240(Label, { children: "Allowed Scopes" }),
20061
- /* @__PURE__ */ jsx240("div", { className: "flex flex-wrap gap-2", children: client.allowedScopes.map((scope) => /* @__PURE__ */ jsx240(Badge, { variant: "secondary", children: OAUTH_SCOPE_DISPLAY[scope]?.name || scope }, scope)) })
20078
+ /* @__PURE__ */ jsx241(Label, { children: "Allowed Scopes" }),
20079
+ /* @__PURE__ */ jsx241("div", { className: "flex flex-wrap gap-2", children: client.allowedScopes.map((scope) => /* @__PURE__ */ jsx241(Badge, { variant: "secondary", children: OAUTH_SCOPE_DISPLAY[scope]?.name || scope }, scope)) })
20062
20080
  ] }),
20063
20081
  /* @__PURE__ */ jsxs151("div", { className: "space-y-2", children: [
20064
- /* @__PURE__ */ jsx240(Label, { children: "Grant Types" }),
20065
- /* @__PURE__ */ jsx240("div", { className: "flex flex-wrap gap-2", children: client.allowedGrantTypes.map((grant) => /* @__PURE__ */ jsx240(Badge, { variant: "outline", children: grant.replace(/_/g, " ") }, grant)) })
20082
+ /* @__PURE__ */ jsx241(Label, { children: "Grant Types" }),
20083
+ /* @__PURE__ */ jsx241("div", { className: "flex flex-wrap gap-2", children: client.allowedGrantTypes.map((grant) => /* @__PURE__ */ jsx241(Badge, { variant: "outline", children: grant.replace(/_/g, " ") }, grant)) })
20066
20084
  ] }),
20067
- /* @__PURE__ */ jsx240(Separator, {}),
20068
- /* @__PURE__ */ jsx240("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs151("span", { children: [
20085
+ /* @__PURE__ */ jsx241(Separator, {}),
20086
+ /* @__PURE__ */ jsx241("div", { className: "flex flex-wrap gap-x-6 gap-y-2 text-sm text-muted-foreground", children: /* @__PURE__ */ jsxs151("span", { children: [
20069
20087
  "Created: ",
20070
20088
  createdDate
20071
20089
  ] }) }),
20072
20090
  /* @__PURE__ */ jsxs151("div", { className: "flex gap-3 pt-4", children: [
20073
20091
  onEdit && /* @__PURE__ */ jsxs151(Button, { variant: "outline", onClick: onEdit, disabled: isLoading, children: [
20074
- /* @__PURE__ */ jsx240(Pencil2, { className: "h-4 w-4 mr-2" }),
20092
+ /* @__PURE__ */ jsx241(Pencil2, { className: "h-4 w-4 mr-2" }),
20075
20093
  "Edit"
20076
20094
  ] }),
20077
20095
  onDelete && /* @__PURE__ */ jsxs151(Button, { variant: "destructive", onClick: () => setShowDeleteConfirm(true), disabled: isLoading, children: [
20078
- /* @__PURE__ */ jsx240(Trash25, { className: "h-4 w-4 mr-2" }),
20096
+ /* @__PURE__ */ jsx241(Trash25, { className: "h-4 w-4 mr-2" }),
20079
20097
  "Delete"
20080
20098
  ] })
20081
20099
  ] })
20082
20100
  ] })
20083
20101
  ] }),
20084
- /* @__PURE__ */ jsx240(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs151(AlertDialogContent, { children: [
20102
+ /* @__PURE__ */ jsx241(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs151(AlertDialogContent, { children: [
20085
20103
  /* @__PURE__ */ jsxs151(AlertDialogHeader, { children: [
20086
- /* @__PURE__ */ jsx240(AlertDialogTitle, { children: "Delete OAuth Application?" }),
20104
+ /* @__PURE__ */ jsx241(AlertDialogTitle, { children: "Delete OAuth Application?" }),
20087
20105
  /* @__PURE__ */ jsxs151(AlertDialogDescription, { children: [
20088
20106
  'This will permanently delete "',
20089
20107
  client.name,
@@ -20091,8 +20109,8 @@ function OAuthClientDetail({
20091
20109
  ] })
20092
20110
  ] }),
20093
20111
  /* @__PURE__ */ jsxs151(AlertDialogFooter, { children: [
20094
- /* @__PURE__ */ jsx240(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }),
20095
- /* @__PURE__ */ jsx240(
20112
+ /* @__PURE__ */ jsx241(AlertDialogCancel, { disabled: isDeleting, children: "Cancel" }),
20113
+ /* @__PURE__ */ jsx241(
20096
20114
  AlertDialogAction,
20097
20115
  {
20098
20116
  onClick: handleDelete,
@@ -20103,14 +20121,14 @@ function OAuthClientDetail({
20103
20121
  )
20104
20122
  ] })
20105
20123
  ] }) }),
20106
- /* @__PURE__ */ jsx240(AlertDialog, { open: showRegenerateConfirm, onOpenChange: setShowRegenerateConfirm, children: /* @__PURE__ */ jsxs151(AlertDialogContent, { children: [
20124
+ /* @__PURE__ */ jsx241(AlertDialog, { open: showRegenerateConfirm, onOpenChange: setShowRegenerateConfirm, children: /* @__PURE__ */ jsxs151(AlertDialogContent, { children: [
20107
20125
  /* @__PURE__ */ jsxs151(AlertDialogHeader, { children: [
20108
- /* @__PURE__ */ jsx240(AlertDialogTitle, { children: "Regenerate Client Secret?" }),
20109
- /* @__PURE__ */ jsx240(AlertDialogDescription, { children: "This will generate a new client secret and invalidate the old one. All existing tokens will be revoked. You will need to update your application with the new secret." })
20126
+ /* @__PURE__ */ jsx241(AlertDialogTitle, { children: "Regenerate Client Secret?" }),
20127
+ /* @__PURE__ */ jsx241(AlertDialogDescription, { children: "This will generate a new client secret and invalidate the old one. All existing tokens will be revoked. You will need to update your application with the new secret." })
20110
20128
  ] }),
20111
20129
  /* @__PURE__ */ jsxs151(AlertDialogFooter, { children: [
20112
- /* @__PURE__ */ jsx240(AlertDialogCancel, { disabled: isRegenerating, children: "Cancel" }),
20113
- /* @__PURE__ */ jsx240(AlertDialogAction, { onClick: handleRegenerateSecret, disabled: isRegenerating, children: isRegenerating ? "Regenerating..." : "Regenerate" })
20130
+ /* @__PURE__ */ jsx241(AlertDialogCancel, { disabled: isRegenerating, children: "Cancel" }),
20131
+ /* @__PURE__ */ jsx241(AlertDialogAction, { onClick: handleRegenerateSecret, disabled: isRegenerating, children: isRegenerating ? "Regenerating..." : "Regenerate" })
20114
20132
  ] })
20115
20133
  ] }) })
20116
20134
  ] });
@@ -20119,17 +20137,17 @@ __name(OAuthClientDetail, "OAuthClientDetail");
20119
20137
 
20120
20138
  // src/features/oauth/components/consent/OAuthConsentHeader.tsx
20121
20139
  import { Shield } from "lucide-react";
20122
- import { jsx as jsx241, jsxs as jsxs152 } from "react/jsx-runtime";
20140
+ import { jsx as jsx242, jsxs as jsxs152 } from "react/jsx-runtime";
20123
20141
  function OAuthConsentHeader({ client, logoUrl, appName = "Only35" }) {
20124
20142
  return /* @__PURE__ */ jsxs152("div", { className: "text-center space-y-4", children: [
20125
- /* @__PURE__ */ jsx241("div", { className: "flex justify-center", children: logoUrl ? /* @__PURE__ */ jsx241("img", { src: logoUrl, alt: appName, className: "h-12 w-auto" }) : /* @__PURE__ */ jsx241("div", { className: "h-12 w-12 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx241(Shield, { className: "h-6 w-6 text-primary-foreground" }) }) }),
20143
+ /* @__PURE__ */ jsx242("div", { className: "flex justify-center", children: logoUrl ? /* @__PURE__ */ jsx242("img", { src: logoUrl, alt: appName, className: "h-12 w-auto" }) : /* @__PURE__ */ jsx242("div", { className: "h-12 w-12 rounded-full bg-primary flex items-center justify-center", children: /* @__PURE__ */ jsx242(Shield, { className: "h-6 w-6 text-primary-foreground" }) }) }),
20126
20144
  /* @__PURE__ */ jsxs152("div", { className: "space-y-2", children: [
20127
20145
  /* @__PURE__ */ jsxs152("h1", { className: "text-2xl font-bold", children: [
20128
20146
  "Authorize ",
20129
20147
  client.name
20130
20148
  ] }),
20131
20149
  /* @__PURE__ */ jsxs152("p", { className: "text-muted-foreground", children: [
20132
- /* @__PURE__ */ jsx241("span", { className: "font-medium text-foreground", children: client.name }),
20150
+ /* @__PURE__ */ jsx242("span", { className: "font-medium text-foreground", children: client.name }),
20133
20151
  " wants to access your ",
20134
20152
  appName,
20135
20153
  " account"
@@ -20141,7 +20159,7 @@ __name(OAuthConsentHeader, "OAuthConsentHeader");
20141
20159
 
20142
20160
  // src/features/oauth/components/consent/OAuthScopeList.tsx
20143
20161
  import { Eye, Pencil as Pencil3, Image as Image15, Upload, Film, FolderPlus, User, Shield as Shield2 } from "lucide-react";
20144
- import { jsx as jsx242, jsxs as jsxs153 } from "react/jsx-runtime";
20162
+ import { jsx as jsx243, jsxs as jsxs153 } from "react/jsx-runtime";
20145
20163
  var SCOPE_ICONS = {
20146
20164
  eye: Eye,
20147
20165
  pencil: Pencil3,
@@ -20157,14 +20175,14 @@ function OAuthScopeList({ scopes }) {
20157
20175
  return null;
20158
20176
  }
20159
20177
  return /* @__PURE__ */ jsxs153("div", { className: "space-y-3", children: [
20160
- /* @__PURE__ */ jsx242("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide", children: "This will allow the application to:" }),
20161
- /* @__PURE__ */ jsx242("ul", { className: "space-y-3", children: scopes.map((scope) => {
20178
+ /* @__PURE__ */ jsx243("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide", children: "This will allow the application to:" }),
20179
+ /* @__PURE__ */ jsx243("ul", { className: "space-y-3", children: scopes.map((scope) => {
20162
20180
  const IconComponent = scope.icon ? SCOPE_ICONS[scope.icon] : Eye;
20163
20181
  return /* @__PURE__ */ jsxs153("li", { className: "flex items-start gap-3 p-3 rounded-lg bg-muted/50", children: [
20164
- /* @__PURE__ */ jsx242("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx242("div", { className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center", children: IconComponent && /* @__PURE__ */ jsx242(IconComponent, { className: "h-4 w-4 text-primary" }) }) }),
20182
+ /* @__PURE__ */ jsx243("div", { className: "flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx243("div", { className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center", children: IconComponent && /* @__PURE__ */ jsx243(IconComponent, { className: "h-4 w-4 text-primary" }) }) }),
20165
20183
  /* @__PURE__ */ jsxs153("div", { className: "flex-1", children: [
20166
- /* @__PURE__ */ jsx242("p", { className: "font-medium", children: scope.name }),
20167
- /* @__PURE__ */ jsx242("p", { className: "text-sm text-muted-foreground", children: scope.description })
20184
+ /* @__PURE__ */ jsx243("p", { className: "font-medium", children: scope.name }),
20185
+ /* @__PURE__ */ jsx243("p", { className: "text-sm text-muted-foreground", children: scope.description })
20168
20186
  ] })
20169
20187
  ] }, scope.scope);
20170
20188
  }) })
@@ -20173,18 +20191,18 @@ function OAuthScopeList({ scopes }) {
20173
20191
  __name(OAuthScopeList, "OAuthScopeList");
20174
20192
 
20175
20193
  // src/features/oauth/components/consent/OAuthConsentActions.tsx
20176
- import { jsx as jsx243, jsxs as jsxs154 } from "react/jsx-runtime";
20194
+ import { jsx as jsx244, jsxs as jsxs154 } from "react/jsx-runtime";
20177
20195
  function OAuthConsentActions({ onApprove, onDeny, isLoading = false }) {
20178
20196
  return /* @__PURE__ */ jsxs154("div", { className: "flex flex-col sm:flex-row gap-3", children: [
20179
- /* @__PURE__ */ jsx243(Button, { variant: "outline", onClick: onDeny, disabled: isLoading, className: "flex-1", children: "Deny" }),
20180
- /* @__PURE__ */ jsx243(Button, { onClick: onApprove, disabled: isLoading, className: "flex-1", children: isLoading ? "Authorizing..." : "Authorize" })
20197
+ /* @__PURE__ */ jsx244(Button, { variant: "outline", onClick: onDeny, disabled: isLoading, className: "flex-1", children: "Deny" }),
20198
+ /* @__PURE__ */ jsx244(Button, { onClick: onApprove, disabled: isLoading, className: "flex-1", children: isLoading ? "Authorizing..." : "Authorize" })
20181
20199
  ] });
20182
20200
  }
20183
20201
  __name(OAuthConsentActions, "OAuthConsentActions");
20184
20202
 
20185
20203
  // src/features/oauth/components/consent/OAuthConsentScreen.tsx
20186
20204
  import { ExternalLink as ExternalLink2, AlertTriangle as AlertTriangle2, Loader2 as Loader26 } from "lucide-react";
20187
- import { jsx as jsx244, jsxs as jsxs155 } from "react/jsx-runtime";
20205
+ import { jsx as jsx245, jsxs as jsxs155 } from "react/jsx-runtime";
20188
20206
  function OAuthConsentScreen({
20189
20207
  params,
20190
20208
  logoUrl,
@@ -20194,41 +20212,41 @@ function OAuthConsentScreen({
20194
20212
  }) {
20195
20213
  const { clientInfo, isLoading, error, approve, deny, isSubmitting } = useOAuthConsent(params);
20196
20214
  if (isLoading) {
20197
- return /* @__PURE__ */ jsx244("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx244(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsxs155(CardContent, { className: "flex flex-col items-center justify-center py-12", children: [
20198
- /* @__PURE__ */ jsx244(Loader26, { className: "h-8 w-8 animate-spin text-muted-foreground" }),
20199
- /* @__PURE__ */ jsx244("p", { className: "mt-4 text-muted-foreground", children: "Loading authorization request..." })
20215
+ return /* @__PURE__ */ jsx245("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx245(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsxs155(CardContent, { className: "flex flex-col items-center justify-center py-12", children: [
20216
+ /* @__PURE__ */ jsx245(Loader26, { className: "h-8 w-8 animate-spin text-muted-foreground" }),
20217
+ /* @__PURE__ */ jsx245("p", { className: "mt-4 text-muted-foreground", children: "Loading authorization request..." })
20200
20218
  ] }) }) });
20201
20219
  }
20202
20220
  if (error || !clientInfo) {
20203
- return /* @__PURE__ */ jsx244("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx244(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsx244(CardContent, { className: "py-8", children: /* @__PURE__ */ jsxs155(Alert, { variant: "destructive", children: [
20204
- /* @__PURE__ */ jsx244(AlertTriangle2, { className: "h-4 w-4" }),
20205
- /* @__PURE__ */ jsx244(AlertDescription, { children: error?.message || "Invalid authorization request. Please try again." })
20221
+ return /* @__PURE__ */ jsx245("div", { className: "min-h-screen flex items-center justify-center p-4", children: /* @__PURE__ */ jsx245(Card, { className: "w-full max-w-md", children: /* @__PURE__ */ jsx245(CardContent, { className: "py-8", children: /* @__PURE__ */ jsxs155(Alert, { variant: "destructive", children: [
20222
+ /* @__PURE__ */ jsx245(AlertTriangle2, { className: "h-4 w-4" }),
20223
+ /* @__PURE__ */ jsx245(AlertDescription, { children: error?.message || "Invalid authorization request. Please try again." })
20206
20224
  ] }) }) }) });
20207
20225
  }
20208
20226
  const { client, scopes } = clientInfo;
20209
- return /* @__PURE__ */ jsx244("div", { className: "min-h-screen flex items-center justify-center p-4 bg-muted/30", children: /* @__PURE__ */ jsxs155(Card, { className: "w-full max-w-md", children: [
20227
+ return /* @__PURE__ */ jsx245("div", { className: "min-h-screen flex items-center justify-center p-4 bg-muted/30", children: /* @__PURE__ */ jsxs155(Card, { className: "w-full max-w-md", children: [
20210
20228
  /* @__PURE__ */ jsxs155(CardContent, { className: "pt-6 space-y-6", children: [
20211
- /* @__PURE__ */ jsx244(OAuthConsentHeader, { client, logoUrl, appName }),
20212
- /* @__PURE__ */ jsx244(Separator, {}),
20213
- /* @__PURE__ */ jsx244(OAuthScopeList, { scopes }),
20214
- /* @__PURE__ */ jsx244(Separator, {}),
20229
+ /* @__PURE__ */ jsx245(OAuthConsentHeader, { client, logoUrl, appName }),
20230
+ /* @__PURE__ */ jsx245(Separator, {}),
20231
+ /* @__PURE__ */ jsx245(OAuthScopeList, { scopes }),
20232
+ /* @__PURE__ */ jsx245(Separator, {}),
20215
20233
  /* @__PURE__ */ jsxs155("div", { className: "flex items-start gap-2 text-sm text-muted-foreground", children: [
20216
- /* @__PURE__ */ jsx244(ExternalLink2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
20234
+ /* @__PURE__ */ jsx245(ExternalLink2, { className: "h-4 w-4 mt-0.5 flex-shrink-0" }),
20217
20235
  /* @__PURE__ */ jsxs155("div", { children: [
20218
- /* @__PURE__ */ jsx244("span", { children: "Authorizing will redirect you to:" }),
20219
- /* @__PURE__ */ jsx244("p", { className: "font-mono text-xs mt-1 break-all", children: params.redirectUri })
20236
+ /* @__PURE__ */ jsx245("span", { children: "Authorizing will redirect you to:" }),
20237
+ /* @__PURE__ */ jsx245("p", { className: "font-mono text-xs mt-1 break-all", children: params.redirectUri })
20220
20238
  ] })
20221
20239
  ] }),
20222
- /* @__PURE__ */ jsx244(OAuthConsentActions, { onApprove: approve, onDeny: deny, isLoading: isSubmitting })
20240
+ /* @__PURE__ */ jsx245(OAuthConsentActions, { onApprove: approve, onDeny: deny, isLoading: isSubmitting })
20223
20241
  ] }),
20224
- /* @__PURE__ */ jsx244(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsxs155("p", { className: "text-xs text-center text-muted-foreground", children: [
20242
+ /* @__PURE__ */ jsx245(CardFooter, { className: "justify-center", children: /* @__PURE__ */ jsxs155("p", { className: "text-xs text-center text-muted-foreground", children: [
20225
20243
  "By authorizing, you agree to the app's",
20226
20244
  " ",
20227
- /* @__PURE__ */ jsx244("a", { href: termsUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Terms of Service" }),
20245
+ /* @__PURE__ */ jsx245("a", { href: termsUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Terms of Service" }),
20228
20246
  " ",
20229
20247
  "and",
20230
20248
  " ",
20231
- /* @__PURE__ */ jsx244("a", { href: privacyUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Privacy Policy" }),
20249
+ /* @__PURE__ */ jsx245("a", { href: privacyUrl, className: "underline hover:text-foreground", target: "_blank", rel: "noopener", children: "Privacy Policy" }),
20232
20250
  "."
20233
20251
  ] }) })
20234
20252
  ] }) });
@@ -20245,7 +20263,7 @@ import { v4 as v411 } from "uuid";
20245
20263
  import { z as z10 } from "zod";
20246
20264
 
20247
20265
  // src/features/waitlist/components/forms/WaitlistQuestionnaireRenderer.tsx
20248
- import { jsx as jsx245, jsxs as jsxs156 } from "react/jsx-runtime";
20266
+ import { jsx as jsx246, jsxs as jsxs156 } from "react/jsx-runtime";
20249
20267
  function WaitlistQuestionnaireRenderer({
20250
20268
  form,
20251
20269
  fields,
@@ -20254,11 +20272,11 @@ function WaitlistQuestionnaireRenderer({
20254
20272
  if (!fields || fields.length === 0) {
20255
20273
  return null;
20256
20274
  }
20257
- return /* @__PURE__ */ jsx245("div", { className: "space-y-4", children: fields.map((field) => {
20275
+ return /* @__PURE__ */ jsx246("div", { className: "space-y-4", children: fields.map((field) => {
20258
20276
  const fieldId = `${fieldPrefix}.${field.id}`;
20259
20277
  switch (field.type) {
20260
20278
  case "text":
20261
- return /* @__PURE__ */ jsx245(
20279
+ return /* @__PURE__ */ jsx246(
20262
20280
  FormInput,
20263
20281
  {
20264
20282
  form,
@@ -20270,7 +20288,7 @@ function WaitlistQuestionnaireRenderer({
20270
20288
  field.id
20271
20289
  );
20272
20290
  case "textarea":
20273
- return /* @__PURE__ */ jsx245(
20291
+ return /* @__PURE__ */ jsx246(
20274
20292
  FormTextarea,
20275
20293
  {
20276
20294
  form,
@@ -20285,7 +20303,7 @@ function WaitlistQuestionnaireRenderer({
20285
20303
  if (!field.options || field.options.length === 0) {
20286
20304
  return null;
20287
20305
  }
20288
- return /* @__PURE__ */ jsx245(
20306
+ return /* @__PURE__ */ jsx246(
20289
20307
  FormSelect,
20290
20308
  {
20291
20309
  form,
@@ -20300,7 +20318,7 @@ function WaitlistQuestionnaireRenderer({
20300
20318
  );
20301
20319
  case "checkbox":
20302
20320
  if (!field.options || field.options.length === 0) {
20303
- return /* @__PURE__ */ jsx245(
20321
+ return /* @__PURE__ */ jsx246(
20304
20322
  FormCheckbox,
20305
20323
  {
20306
20324
  form,
@@ -20315,10 +20333,10 @@ function WaitlistQuestionnaireRenderer({
20315
20333
  return /* @__PURE__ */ jsxs156("div", { className: "space-y-2", children: [
20316
20334
  /* @__PURE__ */ jsxs156("span", { className: "text-sm font-medium", children: [
20317
20335
  field.label,
20318
- field.required && /* @__PURE__ */ jsx245("span", { className: "text-destructive ml-1", children: "*" })
20336
+ field.required && /* @__PURE__ */ jsx246("span", { className: "text-destructive ml-1", children: "*" })
20319
20337
  ] }),
20320
- field.description && /* @__PURE__ */ jsx245("p", { className: "text-muted-foreground text-xs", children: field.description }),
20321
- /* @__PURE__ */ jsx245("div", { className: "space-y-2", children: field.options.map((option) => /* @__PURE__ */ jsx245(
20338
+ field.description && /* @__PURE__ */ jsx246("p", { className: "text-muted-foreground text-xs", children: field.description }),
20339
+ /* @__PURE__ */ jsx246("div", { className: "space-y-2", children: field.options.map((option) => /* @__PURE__ */ jsx246(
20322
20340
  FormCheckbox,
20323
20341
  {
20324
20342
  form,
@@ -20337,7 +20355,7 @@ function WaitlistQuestionnaireRenderer({
20337
20355
  __name(WaitlistQuestionnaireRenderer, "WaitlistQuestionnaireRenderer");
20338
20356
 
20339
20357
  // src/features/waitlist/components/forms/WaitlistForm.tsx
20340
- import { Fragment as Fragment53, jsx as jsx246, jsxs as jsxs157 } from "react/jsx-runtime";
20358
+ import { Fragment as Fragment53, jsx as jsx247, jsxs as jsxs157 } from "react/jsx-runtime";
20341
20359
  function WaitlistForm({ onSuccess }) {
20342
20360
  const t = useTranslations104();
20343
20361
  const [isSubmitting, setIsSubmitting] = useState92(false);
@@ -20427,19 +20445,19 @@ function WaitlistForm({ onSuccess }) {
20427
20445
  }, "onSubmit");
20428
20446
  if (isSuccess) {
20429
20447
  return /* @__PURE__ */ jsxs157("div", { className: "space-y-6 text-center", children: [
20430
- /* @__PURE__ */ jsx246("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-green-100", children: /* @__PURE__ */ jsx246(CheckCircle, { className: "h-8 w-8 text-green-600" }) }),
20448
+ /* @__PURE__ */ jsx247("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-green-100", children: /* @__PURE__ */ jsx247(CheckCircle, { className: "h-8 w-8 text-green-600" }) }),
20431
20449
  /* @__PURE__ */ jsxs157("div", { className: "space-y-2", children: [
20432
- /* @__PURE__ */ jsx246("h3", { className: "text-xl font-semibold", children: t("waitlist.success.title") }),
20433
- /* @__PURE__ */ jsx246("p", { className: "text-muted-foreground", children: t("waitlist.success.description") })
20450
+ /* @__PURE__ */ jsx247("h3", { className: "text-xl font-semibold", children: t("waitlist.success.title") }),
20451
+ /* @__PURE__ */ jsx247("p", { className: "text-muted-foreground", children: t("waitlist.success.description") })
20434
20452
  ] }),
20435
20453
  /* @__PURE__ */ jsxs157("div", { className: "flex items-center justify-center gap-2 text-muted-foreground text-sm", children: [
20436
- /* @__PURE__ */ jsx246(Mail2, { className: "h-4 w-4" }),
20437
- /* @__PURE__ */ jsx246("span", { children: t("waitlist.success.hint") })
20454
+ /* @__PURE__ */ jsx247(Mail2, { className: "h-4 w-4" }),
20455
+ /* @__PURE__ */ jsx247("span", { children: t("waitlist.success.hint") })
20438
20456
  ] })
20439
20457
  ] });
20440
20458
  }
20441
- return /* @__PURE__ */ jsx246(Form, { ...form, children: /* @__PURE__ */ jsxs157("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [
20442
- /* @__PURE__ */ jsx246(
20459
+ return /* @__PURE__ */ jsx247(Form, { ...form, children: /* @__PURE__ */ jsxs157("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [
20460
+ /* @__PURE__ */ jsx247(
20443
20461
  FormInput,
20444
20462
  {
20445
20463
  isRequired: true,
@@ -20449,23 +20467,23 @@ function WaitlistForm({ onSuccess }) {
20449
20467
  placeholder: t("common.fields.email.placeholder")
20450
20468
  }
20451
20469
  ),
20452
- questionnaireFields.length > 0 && /* @__PURE__ */ jsx246(WaitlistQuestionnaireRenderer, { form, fields: questionnaireFields }),
20470
+ questionnaireFields.length > 0 && /* @__PURE__ */ jsx247(WaitlistQuestionnaireRenderer, { form, fields: questionnaireFields }),
20453
20471
  /* @__PURE__ */ jsxs157("div", { className: "space-y-4 py-4", children: [
20454
- /* @__PURE__ */ jsx246(
20472
+ /* @__PURE__ */ jsx247(
20455
20473
  GdprConsentCheckbox,
20456
20474
  {
20457
20475
  form,
20458
20476
  id: "gdprConsent",
20459
20477
  label: /* @__PURE__ */ jsxs157(Fragment53, { children: [
20460
20478
  t("auth.gdpr.terms_prefix"),
20461
- /* @__PURE__ */ jsx246(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.terms_of_service") }),
20479
+ /* @__PURE__ */ jsx247(Link, { href: "/terms", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.terms_of_service") }),
20462
20480
  t("auth.gdpr.and"),
20463
- /* @__PURE__ */ jsx246(Link, { href: "/privacy", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.privacy_policy") })
20481
+ /* @__PURE__ */ jsx247(Link, { href: "/privacy", target: "_blank", rel: "noopener", className: "underline", children: t("auth.gdpr.privacy_policy") })
20464
20482
  ] }),
20465
20483
  required: true
20466
20484
  }
20467
20485
  ),
20468
- /* @__PURE__ */ jsx246(
20486
+ /* @__PURE__ */ jsx247(
20469
20487
  GdprConsentCheckbox,
20470
20488
  {
20471
20489
  form,
@@ -20475,29 +20493,29 @@ function WaitlistForm({ onSuccess }) {
20475
20493
  }
20476
20494
  )
20477
20495
  ] }),
20478
- /* @__PURE__ */ jsx246(Button, { type: "submit", className: "w-full", disabled: isSubmitting, children: isSubmitting ? t("common.actions.submitting") : t("waitlist.buttons.join") })
20496
+ /* @__PURE__ */ jsx247(Button, { type: "submit", className: "w-full", disabled: isSubmitting, children: isSubmitting ? t("common.actions.submitting") : t("waitlist.buttons.join") })
20479
20497
  ] }) });
20480
20498
  }
20481
20499
  __name(WaitlistForm, "WaitlistForm");
20482
20500
 
20483
20501
  // src/features/waitlist/components/sections/WaitlistHeroSection.tsx
20484
20502
  import { CheckCircle as CheckCircle2 } from "lucide-react";
20485
- import { jsx as jsx247, jsxs as jsxs158 } from "react/jsx-runtime";
20503
+ import { jsx as jsx248, jsxs as jsxs158 } from "react/jsx-runtime";
20486
20504
  function WaitlistHeroSection() {
20487
20505
  const config = getWaitlistConfig();
20488
- return /* @__PURE__ */ jsx247("section", { className: "relative overflow-hidden py-16 md:py-24", children: /* @__PURE__ */ jsx247("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs158("div", { className: "grid gap-12 lg:grid-cols-2 lg:items-center", children: [
20506
+ return /* @__PURE__ */ jsx248("section", { className: "relative overflow-hidden py-16 md:py-24", children: /* @__PURE__ */ jsx248("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs158("div", { className: "grid gap-12 lg:grid-cols-2 lg:items-center", children: [
20489
20507
  /* @__PURE__ */ jsxs158("div", { className: "space-y-8", children: [
20490
20508
  /* @__PURE__ */ jsxs158("div", { className: "space-y-4", children: [
20491
- config.heroTitle && /* @__PURE__ */ jsx247("h1", { className: "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", children: config.heroTitle }),
20492
- config.heroSubtitle && /* @__PURE__ */ jsx247("p", { className: "text-muted-foreground text-xl md:text-2xl", children: config.heroSubtitle }),
20493
- config.heroDescription && /* @__PURE__ */ jsx247("p", { className: "text-muted-foreground", children: config.heroDescription })
20509
+ config.heroTitle && /* @__PURE__ */ jsx248("h1", { className: "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", children: config.heroTitle }),
20510
+ config.heroSubtitle && /* @__PURE__ */ jsx248("p", { className: "text-muted-foreground text-xl md:text-2xl", children: config.heroSubtitle }),
20511
+ config.heroDescription && /* @__PURE__ */ jsx248("p", { className: "text-muted-foreground", children: config.heroDescription })
20494
20512
  ] }),
20495
- config.benefits && config.benefits.length > 0 && /* @__PURE__ */ jsx247("ul", { className: "space-y-3", children: config.benefits.map((benefit, index) => /* @__PURE__ */ jsxs158("li", { className: "flex items-start gap-3", children: [
20496
- /* @__PURE__ */ jsx247(CheckCircle2, { className: "text-primary mt-0.5 h-5 w-5 shrink-0" }),
20497
- /* @__PURE__ */ jsx247("span", { children: benefit })
20513
+ config.benefits && config.benefits.length > 0 && /* @__PURE__ */ jsx248("ul", { className: "space-y-3", children: config.benefits.map((benefit, index) => /* @__PURE__ */ jsxs158("li", { className: "flex items-start gap-3", children: [
20514
+ /* @__PURE__ */ jsx248(CheckCircle2, { className: "text-primary mt-0.5 h-5 w-5 shrink-0" }),
20515
+ /* @__PURE__ */ jsx248("span", { children: benefit })
20498
20516
  ] }, index)) })
20499
20517
  ] }),
20500
- /* @__PURE__ */ jsx247("div", { className: "lg:pl-8", children: /* @__PURE__ */ jsx247("div", { className: "bg-card rounded-lg border p-6 shadow-lg md:p-8", children: /* @__PURE__ */ jsx247(WaitlistForm, {}) }) })
20518
+ /* @__PURE__ */ jsx248("div", { className: "lg:pl-8", children: /* @__PURE__ */ jsx248("div", { className: "bg-card rounded-lg border p-6 shadow-lg md:p-8", children: /* @__PURE__ */ jsx248(WaitlistForm, {}) }) })
20501
20519
  ] }) }) });
20502
20520
  }
20503
20521
  __name(WaitlistHeroSection, "WaitlistHeroSection");
@@ -20505,14 +20523,14 @@ __name(WaitlistHeroSection, "WaitlistHeroSection");
20505
20523
  // src/features/waitlist/components/sections/WaitlistSuccessState.tsx
20506
20524
  import { CheckCircle as CheckCircle3 } from "lucide-react";
20507
20525
  import { useTranslations as useTranslations105 } from "next-intl";
20508
- import { jsx as jsx248, jsxs as jsxs159 } from "react/jsx-runtime";
20526
+ import { jsx as jsx249, jsxs as jsxs159 } from "react/jsx-runtime";
20509
20527
  function WaitlistSuccessState() {
20510
20528
  const t = useTranslations105();
20511
20529
  return /* @__PURE__ */ jsxs159("div", { className: "flex flex-col items-center justify-center space-y-4 py-8 text-center", children: [
20512
- /* @__PURE__ */ jsx248("div", { className: "bg-primary/10 rounded-full p-4", children: /* @__PURE__ */ jsx248(CheckCircle3, { className: "text-primary h-12 w-12" }) }),
20513
- /* @__PURE__ */ jsx248("h2", { className: "text-2xl font-bold", children: t("waitlist.success.title") }),
20514
- /* @__PURE__ */ jsx248("p", { className: "text-muted-foreground max-w-md", children: t("waitlist.success.description") }),
20515
- /* @__PURE__ */ jsx248("p", { className: "text-muted-foreground text-sm", children: t("waitlist.success.hint") })
20530
+ /* @__PURE__ */ jsx249("div", { className: "bg-primary/10 rounded-full p-4", children: /* @__PURE__ */ jsx249(CheckCircle3, { className: "text-primary h-12 w-12" }) }),
20531
+ /* @__PURE__ */ jsx249("h2", { className: "text-2xl font-bold", children: t("waitlist.success.title") }),
20532
+ /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground max-w-md", children: t("waitlist.success.description") }),
20533
+ /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground text-sm", children: t("waitlist.success.hint") })
20516
20534
  ] });
20517
20535
  }
20518
20536
  __name(WaitlistSuccessState, "WaitlistSuccessState");
@@ -20521,7 +20539,7 @@ __name(WaitlistSuccessState, "WaitlistSuccessState");
20521
20539
  import { CheckCircle as CheckCircle4, Loader2 as Loader27, XCircle as XCircle2 } from "lucide-react";
20522
20540
  import { useTranslations as useTranslations106 } from "next-intl";
20523
20541
  import { useEffect as useEffect68, useState as useState93 } from "react";
20524
- import { jsx as jsx249, jsxs as jsxs160 } from "react/jsx-runtime";
20542
+ import { jsx as jsx250, jsxs as jsxs160 } from "react/jsx-runtime";
20525
20543
  function WaitlistConfirmation({ code }) {
20526
20544
  const t = useTranslations106();
20527
20545
  const [state, setState] = useState93("loading");
@@ -20541,23 +20559,23 @@ function WaitlistConfirmation({ code }) {
20541
20559
  }, [code, t]);
20542
20560
  if (state === "loading") {
20543
20561
  return /* @__PURE__ */ jsxs160("div", { className: "flex flex-col items-center justify-center space-y-4 py-16 text-center", children: [
20544
- /* @__PURE__ */ jsx249(Loader27, { className: "text-primary h-12 w-12 animate-spin" }),
20545
- /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground", children: t("waitlist.confirmation.loading") })
20562
+ /* @__PURE__ */ jsx250(Loader27, { className: "text-primary h-12 w-12 animate-spin" }),
20563
+ /* @__PURE__ */ jsx250("p", { className: "text-muted-foreground", children: t("waitlist.confirmation.loading") })
20546
20564
  ] });
20547
20565
  }
20548
20566
  if (state === "error") {
20549
20567
  return /* @__PURE__ */ jsxs160("div", { className: "flex flex-col items-center justify-center space-y-4 py-16 text-center", children: [
20550
- /* @__PURE__ */ jsx249("div", { className: "bg-destructive/10 rounded-full p-4", children: /* @__PURE__ */ jsx249(XCircle2, { className: "text-destructive h-12 w-12" }) }),
20551
- /* @__PURE__ */ jsx249("h2", { className: "text-2xl font-bold", children: t("waitlist.confirmation.error_title") }),
20552
- /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground max-w-md", children: errorMessage }),
20553
- /* @__PURE__ */ jsx249(Link, { href: "/waitlist", className: buttonVariants({ variant: "outline" }), children: t("waitlist.buttons.return") })
20568
+ /* @__PURE__ */ jsx250("div", { className: "bg-destructive/10 rounded-full p-4", children: /* @__PURE__ */ jsx250(XCircle2, { className: "text-destructive h-12 w-12" }) }),
20569
+ /* @__PURE__ */ jsx250("h2", { className: "text-2xl font-bold", children: t("waitlist.confirmation.error_title") }),
20570
+ /* @__PURE__ */ jsx250("p", { className: "text-muted-foreground max-w-md", children: errorMessage }),
20571
+ /* @__PURE__ */ jsx250(Link, { href: "/waitlist", className: buttonVariants({ variant: "outline" }), children: t("waitlist.buttons.return") })
20554
20572
  ] });
20555
20573
  }
20556
20574
  return /* @__PURE__ */ jsxs160("div", { className: "flex flex-col items-center justify-center space-y-4 py-16 text-center", children: [
20557
- /* @__PURE__ */ jsx249("div", { className: "bg-primary/10 rounded-full p-4", children: /* @__PURE__ */ jsx249(CheckCircle4, { className: "text-primary h-12 w-12" }) }),
20558
- /* @__PURE__ */ jsx249("h2", { className: "text-2xl font-bold", children: t("waitlist.confirmation.success_title") }),
20559
- /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground max-w-md", children: t("waitlist.confirmation.success_description") }),
20560
- /* @__PURE__ */ jsx249("p", { className: "text-muted-foreground text-sm", children: t("waitlist.confirmation.success_hint") })
20575
+ /* @__PURE__ */ jsx250("div", { className: "bg-primary/10 rounded-full p-4", children: /* @__PURE__ */ jsx250(CheckCircle4, { className: "text-primary h-12 w-12" }) }),
20576
+ /* @__PURE__ */ jsx250("h2", { className: "text-2xl font-bold", children: t("waitlist.confirmation.success_title") }),
20577
+ /* @__PURE__ */ jsx250("p", { className: "text-muted-foreground max-w-md", children: t("waitlist.confirmation.success_description") }),
20578
+ /* @__PURE__ */ jsx250("p", { className: "text-muted-foreground text-sm", children: t("waitlist.confirmation.success_hint") })
20561
20579
  ] });
20562
20580
  }
20563
20581
  __name(WaitlistConfirmation, "WaitlistConfirmation");
@@ -20571,7 +20589,7 @@ import { useCallback as useCallback47, useEffect as useEffect69, useState as use
20571
20589
  // src/features/waitlist/hooks/useWaitlistTableStructure.tsx
20572
20590
  import { Send } from "lucide-react";
20573
20591
  import { useTranslations as useTranslations107 } from "next-intl";
20574
- import { jsx as jsx250, jsxs as jsxs161 } from "react/jsx-runtime";
20592
+ import { jsx as jsx251, jsxs as jsxs161 } from "react/jsx-runtime";
20575
20593
  function parseQuestionnaire(questionnaire) {
20576
20594
  if (!questionnaire) return null;
20577
20595
  try {
@@ -20593,13 +20611,13 @@ function useWaitlistTableStructure({
20593
20611
  registered: { variant: "default" }
20594
20612
  };
20595
20613
  const config = variants[status];
20596
- return /* @__PURE__ */ jsx250(Badge, { variant: config.variant, children: t(`waitlist.admin.status.${status}`) });
20614
+ return /* @__PURE__ */ jsx251(Badge, { variant: config.variant, children: t(`waitlist.admin.status.${status}`) });
20597
20615
  }, "getStatusBadge");
20598
20616
  return [
20599
20617
  {
20600
20618
  accessorKey: "email",
20601
20619
  header: t("waitlist.admin.columns.email"),
20602
- cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx250("span", { className: "font-medium", children: row.original.email }), "cell")
20620
+ cell: /* @__PURE__ */ __name(({ row }) => /* @__PURE__ */ jsx251("span", { className: "font-medium", children: row.original.email }), "cell")
20603
20621
  },
20604
20622
  {
20605
20623
  accessorKey: "status",
@@ -20620,17 +20638,17 @@ function useWaitlistTableStructure({
20620
20638
  cell: /* @__PURE__ */ __name(({ row }) => {
20621
20639
  const questionnaire = parseQuestionnaire(row.original.questionnaire);
20622
20640
  if (!questionnaire || Object.keys(questionnaire).length === 0) {
20623
- return /* @__PURE__ */ jsx250("span", { className: "text-muted-foreground", children: "-" });
20641
+ return /* @__PURE__ */ jsx251("span", { className: "text-muted-foreground", children: "-" });
20624
20642
  }
20625
20643
  return /* @__PURE__ */ jsxs161("details", { className: "cursor-pointer", children: [
20626
- /* @__PURE__ */ jsx250("summary", { className: "text-primary text-sm", children: t("waitlist.admin.questionnaire.view_answers") }),
20627
- /* @__PURE__ */ jsx250("div", { className: "bg-muted mt-2 rounded p-2 text-sm", children: Object.entries(questionnaire).map(([key, value]) => /* @__PURE__ */ jsxs161("div", { className: "mb-1", children: [
20644
+ /* @__PURE__ */ jsx251("summary", { className: "text-primary text-sm", children: t("waitlist.admin.questionnaire.view_answers") }),
20645
+ /* @__PURE__ */ jsx251("div", { className: "bg-muted mt-2 rounded p-2 text-sm", children: Object.entries(questionnaire).map(([key, value]) => /* @__PURE__ */ jsxs161("div", { className: "mb-1", children: [
20628
20646
  /* @__PURE__ */ jsxs161("span", { className: "font-medium", children: [
20629
20647
  key,
20630
20648
  ":"
20631
20649
  ] }),
20632
20650
  " ",
20633
- /* @__PURE__ */ jsx250("span", { className: "text-muted-foreground", children: Array.isArray(value) ? value.join(", ") : String(value) })
20651
+ /* @__PURE__ */ jsx251("span", { className: "text-muted-foreground", children: Array.isArray(value) ? value.join(", ") : String(value) })
20634
20652
  ] }, key)) })
20635
20653
  ] });
20636
20654
  }, "cell")
@@ -20642,17 +20660,17 @@ function useWaitlistTableStructure({
20642
20660
  const entry = row.original;
20643
20661
  if (entry.status === "confirmed") {
20644
20662
  return /* @__PURE__ */ jsxs161(Button, { size: "sm", variant: "outline", onClick: () => onInvite(entry), children: [
20645
- /* @__PURE__ */ jsx250(Send, { className: "mr-2 h-4 w-4" }),
20663
+ /* @__PURE__ */ jsx251(Send, { className: "mr-2 h-4 w-4" }),
20646
20664
  t("waitlist.admin.actions.invite")
20647
20665
  ] });
20648
20666
  }
20649
20667
  if (entry.status === "invited" && entry.invitedAt) {
20650
- return /* @__PURE__ */ jsx250("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.invited_on", { date: new Date(entry.invitedAt).toLocaleDateString() }) });
20668
+ return /* @__PURE__ */ jsx251("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.invited_on", { date: new Date(entry.invitedAt).toLocaleDateString() }) });
20651
20669
  }
20652
20670
  if (entry.status === "registered") {
20653
- return /* @__PURE__ */ jsx250("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.registered") });
20671
+ return /* @__PURE__ */ jsx251("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.registered") });
20654
20672
  }
20655
- return /* @__PURE__ */ jsx250("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.awaiting_confirmation") });
20673
+ return /* @__PURE__ */ jsx251("span", { className: "text-muted-foreground text-sm", children: t("waitlist.admin.actions.awaiting_confirmation") });
20656
20674
  }, "cell")
20657
20675
  }
20658
20676
  ];
@@ -20660,7 +20678,7 @@ function useWaitlistTableStructure({
20660
20678
  __name(useWaitlistTableStructure, "useWaitlistTableStructure");
20661
20679
 
20662
20680
  // src/features/waitlist/components/lists/WaitlistList.tsx
20663
- import { jsx as jsx251, jsxs as jsxs162 } from "react/jsx-runtime";
20681
+ import { jsx as jsx252, jsxs as jsxs162 } from "react/jsx-runtime";
20664
20682
  function WaitlistList() {
20665
20683
  const t = useTranslations108();
20666
20684
  const [entries, setEntries] = useState94([]);
@@ -20703,8 +20721,8 @@ function WaitlistList() {
20703
20721
  return /* @__PURE__ */ jsxs162("div", { className: "space-y-4", children: [
20704
20722
  /* @__PURE__ */ jsxs162("div", { className: "flex items-center justify-between", children: [
20705
20723
  /* @__PURE__ */ jsxs162("div", { className: "flex items-center gap-2", children: [
20706
- /* @__PURE__ */ jsx251(Users2, { className: "h-5 w-5" }),
20707
- /* @__PURE__ */ jsx251("h2", { className: "text-xl font-semibold", children: t("waitlist.admin.title") }),
20724
+ /* @__PURE__ */ jsx252(Users2, { className: "h-5 w-5" }),
20725
+ /* @__PURE__ */ jsx252("h2", { className: "text-xl font-semibold", children: t("waitlist.admin.title") }),
20708
20726
  /* @__PURE__ */ jsxs162("span", { className: "text-muted-foreground", children: [
20709
20727
  "(",
20710
20728
  t("waitlist.admin.entries_count", { count: total }),
@@ -20713,21 +20731,21 @@ function WaitlistList() {
20713
20731
  ] }),
20714
20732
  /* @__PURE__ */ jsxs162("div", { className: "flex items-center gap-4", children: [
20715
20733
  /* @__PURE__ */ jsxs162(Select, { value: statusFilter, onValueChange: (value) => setStatusFilter(value ?? "all"), children: [
20716
- /* @__PURE__ */ jsx251(SelectTrigger, { className: "w-40", children: /* @__PURE__ */ jsx251(SelectValue, { placeholder: t("waitlist.admin.filter_placeholder") }) }),
20734
+ /* @__PURE__ */ jsx252(SelectTrigger, { className: "w-40", children: /* @__PURE__ */ jsx252(SelectValue, { placeholder: t("waitlist.admin.filter_placeholder") }) }),
20717
20735
  /* @__PURE__ */ jsxs162(SelectContent, { children: [
20718
- /* @__PURE__ */ jsx251(SelectItem, { value: "all", children: t("waitlist.admin.all_statuses") }),
20719
- /* @__PURE__ */ jsx251(SelectItem, { value: "pending", children: t("waitlist.admin.status.pending") }),
20720
- /* @__PURE__ */ jsx251(SelectItem, { value: "confirmed", children: t("waitlist.admin.status.confirmed") }),
20721
- /* @__PURE__ */ jsx251(SelectItem, { value: "invited", children: t("waitlist.admin.status.invited") }),
20722
- /* @__PURE__ */ jsx251(SelectItem, { value: "registered", children: t("waitlist.admin.status.registered") })
20736
+ /* @__PURE__ */ jsx252(SelectItem, { value: "all", children: t("waitlist.admin.all_statuses") }),
20737
+ /* @__PURE__ */ jsx252(SelectItem, { value: "pending", children: t("waitlist.admin.status.pending") }),
20738
+ /* @__PURE__ */ jsx252(SelectItem, { value: "confirmed", children: t("waitlist.admin.status.confirmed") }),
20739
+ /* @__PURE__ */ jsx252(SelectItem, { value: "invited", children: t("waitlist.admin.status.invited") }),
20740
+ /* @__PURE__ */ jsx252(SelectItem, { value: "registered", children: t("waitlist.admin.status.registered") })
20723
20741
  ] })
20724
20742
  ] }),
20725
- /* @__PURE__ */ jsx251(Button, { variant: "outline", size: "icon", onClick: loadEntries, disabled: isLoading, children: /* @__PURE__ */ jsx251(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` }) })
20743
+ /* @__PURE__ */ jsx252(Button, { variant: "outline", size: "icon", onClick: loadEntries, disabled: isLoading, children: /* @__PURE__ */ jsx252(RefreshCw4, { className: `h-4 w-4 ${isLoading ? "animate-spin" : ""}` }) })
20726
20744
  ] })
20727
20745
  ] }),
20728
- /* @__PURE__ */ jsx251("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs162(Table, { children: [
20729
- /* @__PURE__ */ jsx251(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx251(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx251(TableHead, { children: header.isPlaceholder ? null : flexRender2(header.column.columnDef.header, header.getContext()) }, header.id)) }, headerGroup.id)) }),
20730
- /* @__PURE__ */ jsx251(TableBody, { children: isLoading ? /* @__PURE__ */ jsx251(TableRow, { children: /* @__PURE__ */ jsx251(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: t("waitlist.admin.loading") }) }) : entries.length === 0 ? /* @__PURE__ */ jsx251(TableRow, { children: /* @__PURE__ */ jsx251(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: t("waitlist.admin.empty") }) }) : table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx251(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx251(TableCell, { children: flexRender2(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) })
20746
+ /* @__PURE__ */ jsx252("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs162(Table, { children: [
20747
+ /* @__PURE__ */ jsx252(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx252(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx252(TableHead, { children: header.isPlaceholder ? null : flexRender2(header.column.columnDef.header, header.getContext()) }, header.id)) }, headerGroup.id)) }),
20748
+ /* @__PURE__ */ jsx252(TableBody, { children: isLoading ? /* @__PURE__ */ jsx252(TableRow, { children: /* @__PURE__ */ jsx252(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: t("waitlist.admin.loading") }) }) : entries.length === 0 ? /* @__PURE__ */ jsx252(TableRow, { children: /* @__PURE__ */ jsx252(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: t("waitlist.admin.empty") }) }) : table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx252(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx252(TableCell, { children: flexRender2(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) })
20731
20749
  ] }) })
20732
20750
  ] });
20733
20751
  }
@@ -20740,7 +20758,7 @@ import { memo as memo2, useCallback as useCallback49, useEffect as useEffect71,
20740
20758
 
20741
20759
  // src/features/rbac/components/RbacPermissionCell.tsx
20742
20760
  import { CheckIcon as CheckIcon9, MinusIcon as MinusIcon2, XIcon as XIcon11 } from "lucide-react";
20743
- import { jsx as jsx252, jsxs as jsxs163 } from "react/jsx-runtime";
20761
+ import { jsx as jsx253, jsxs as jsxs163 } from "react/jsx-runtime";
20744
20762
  function RbacPermissionCell({
20745
20763
  value,
20746
20764
  originalValue,
@@ -20749,7 +20767,7 @@ function RbacPermissionCell({
20749
20767
  }) {
20750
20768
  const isDirty = originalValue !== void 0 && value !== originalValue;
20751
20769
  if (isRoleColumn && (value === null || value === void 0)) {
20752
- return /* @__PURE__ */ jsx252(
20770
+ return /* @__PURE__ */ jsx253(
20753
20771
  "div",
20754
20772
  {
20755
20773
  onClick,
@@ -20757,12 +20775,12 @@ function RbacPermissionCell({
20757
20775
  "flex h-8 w-full items-center justify-center rounded px-2 transition-colors hover:bg-muted cursor-pointer",
20758
20776
  isDirty && "ring-2 ring-amber-400/50"
20759
20777
  ),
20760
- children: /* @__PURE__ */ jsx252(MinusIcon2, { className: "h-3.5 w-3.5 text-muted-foreground" })
20778
+ children: /* @__PURE__ */ jsx253(MinusIcon2, { className: "h-3.5 w-3.5 text-muted-foreground" })
20761
20779
  }
20762
20780
  );
20763
20781
  }
20764
20782
  if (value === true) {
20765
- return /* @__PURE__ */ jsx252(
20783
+ return /* @__PURE__ */ jsx253(
20766
20784
  "div",
20767
20785
  {
20768
20786
  onClick,
@@ -20771,14 +20789,14 @@ function RbacPermissionCell({
20771
20789
  isDirty && "ring-2 ring-amber-400/50"
20772
20790
  ),
20773
20791
  children: /* @__PURE__ */ jsxs163(Badge, { variant: "default", className: "bg-emerald-600 hover:bg-emerald-700 gap-1 text-xs", children: [
20774
- /* @__PURE__ */ jsx252(CheckIcon9, { className: "h-3 w-3" }),
20775
- /* @__PURE__ */ jsx252("span", { children: "true" })
20792
+ /* @__PURE__ */ jsx253(CheckIcon9, { className: "h-3 w-3" }),
20793
+ /* @__PURE__ */ jsx253("span", { children: "true" })
20776
20794
  ] })
20777
20795
  }
20778
20796
  );
20779
20797
  }
20780
20798
  if (value === false) {
20781
- return /* @__PURE__ */ jsx252(
20799
+ return /* @__PURE__ */ jsx253(
20782
20800
  "div",
20783
20801
  {
20784
20802
  onClick,
@@ -20787,8 +20805,8 @@ function RbacPermissionCell({
20787
20805
  isDirty && "ring-2 ring-amber-400/50"
20788
20806
  ),
20789
20807
  children: /* @__PURE__ */ jsxs163(Badge, { variant: "destructive", className: "gap-1 text-xs", children: [
20790
- /* @__PURE__ */ jsx252(XIcon11, { className: "h-3 w-3" }),
20791
- /* @__PURE__ */ jsx252("span", { children: "false" })
20808
+ /* @__PURE__ */ jsx253(XIcon11, { className: "h-3 w-3" }),
20809
+ /* @__PURE__ */ jsx253("span", { children: "false" })
20792
20810
  ] })
20793
20811
  }
20794
20812
  );
@@ -20796,7 +20814,7 @@ function RbacPermissionCell({
20796
20814
  const displayValue = typeof value === "string" ? value : String(value);
20797
20815
  const truncated = displayValue.length > 20 ? displayValue.substring(0, 18) + "..." : displayValue;
20798
20816
  return /* @__PURE__ */ jsxs163(Tooltip2, { children: [
20799
- /* @__PURE__ */ jsx252(
20817
+ /* @__PURE__ */ jsx253(
20800
20818
  TooltipTrigger,
20801
20819
  {
20802
20820
  onClick,
@@ -20804,11 +20822,11 @@ function RbacPermissionCell({
20804
20822
  "flex h-8 w-full items-center justify-center rounded px-2 transition-colors hover:bg-muted cursor-pointer",
20805
20823
  isDirty && "ring-2 ring-amber-400/50"
20806
20824
  ),
20807
- render: /* @__PURE__ */ jsx252("div", {}),
20808
- children: /* @__PURE__ */ jsx252(Badge, { variant: "outline", className: "max-w-full truncate text-xs font-mono", children: truncated })
20825
+ render: /* @__PURE__ */ jsx253("div", {}),
20826
+ children: /* @__PURE__ */ jsx253(Badge, { variant: "outline", className: "max-w-full truncate text-xs font-mono", children: truncated })
20809
20827
  }
20810
20828
  ),
20811
- /* @__PURE__ */ jsx252(TooltipContent, { side: "top", className: "max-w-xs", children: /* @__PURE__ */ jsx252("p", { className: "font-mono text-xs break-all", children: displayValue }) })
20829
+ /* @__PURE__ */ jsx253(TooltipContent, { side: "top", className: "max-w-xs", children: /* @__PURE__ */ jsx253("p", { className: "font-mono text-xs break-all", children: displayValue }) })
20812
20830
  ] });
20813
20831
  }
20814
20832
  __name(RbacPermissionCell, "RbacPermissionCell");
@@ -20818,7 +20836,7 @@ import { Popover as PopoverPrimitive2 } from "@base-ui/react/popover";
20818
20836
  import { CheckIcon as CheckIcon10, MinusIcon as MinusIcon3, XIcon as XIcon12 } from "lucide-react";
20819
20837
  import { useTranslations as useTranslations109 } from "next-intl";
20820
20838
  import { useCallback as useCallback48, useEffect as useEffect70, useState as useState95 } from "react";
20821
- import { Fragment as Fragment54, jsx as jsx253, jsxs as jsxs164 } from "react/jsx-runtime";
20839
+ import { Fragment as Fragment54, jsx as jsx254, jsxs as jsxs164 } from "react/jsx-runtime";
20822
20840
  function RbacPermissionPicker({
20823
20841
  open,
20824
20842
  anchor,
@@ -20851,14 +20869,14 @@ function RbacPermissionPicker({
20851
20869
  }
20852
20870
  setCustomSegment("");
20853
20871
  }, [customSegment, currentSegments, onSetValue]);
20854
- return /* @__PURE__ */ jsx253(
20872
+ return /* @__PURE__ */ jsx254(
20855
20873
  PopoverPrimitive2.Root,
20856
20874
  {
20857
20875
  open,
20858
20876
  onOpenChange: (next) => {
20859
20877
  if (!next) onClose();
20860
20878
  },
20861
- children: /* @__PURE__ */ jsx253(PopoverPrimitive2.Portal, { children: /* @__PURE__ */ jsx253(
20879
+ children: /* @__PURE__ */ jsx254(PopoverPrimitive2.Portal, { children: /* @__PURE__ */ jsx254(
20862
20880
  PopoverPrimitive2.Positioner,
20863
20881
  {
20864
20882
  anchor: anchor ?? void 0,
@@ -20868,7 +20886,7 @@ function RbacPermissionPicker({
20868
20886
  className: "isolate z-50",
20869
20887
  children: /* @__PURE__ */ jsxs164(PopoverPrimitive2.Popup, { className: "bg-popover text-popover-foreground ring-foreground/10 z-50 flex w-96 flex-col gap-3 rounded-lg p-3 text-xs shadow-md outline-hidden ring-1 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 duration-100", children: [
20870
20888
  /* @__PURE__ */ jsxs164("div", { children: [
20871
- /* @__PURE__ */ jsx253("p", { className: "text-muted-foreground mb-2 text-xs font-medium", children: t("rbac.quick_value") }),
20889
+ /* @__PURE__ */ jsx254("p", { className: "text-muted-foreground mb-2 text-xs font-medium", children: t("rbac.quick_value") }),
20872
20890
  /* @__PURE__ */ jsxs164("div", { className: "flex gap-2", children: [
20873
20891
  /* @__PURE__ */ jsxs164(
20874
20892
  Button,
@@ -20881,8 +20899,8 @@ function RbacPermissionPicker({
20881
20899
  onClose();
20882
20900
  },
20883
20901
  children: [
20884
- /* @__PURE__ */ jsx253(CheckIcon10, { className: "h-3 w-3" }),
20885
- /* @__PURE__ */ jsx253("span", { children: "true" })
20902
+ /* @__PURE__ */ jsx254(CheckIcon10, { className: "h-3 w-3" }),
20903
+ /* @__PURE__ */ jsx254("span", { children: "true" })
20886
20904
  ]
20887
20905
  }
20888
20906
  ),
@@ -20897,15 +20915,15 @@ function RbacPermissionPicker({
20897
20915
  onClose();
20898
20916
  },
20899
20917
  children: [
20900
- /* @__PURE__ */ jsx253(XIcon12, { className: "h-3 w-3" }),
20901
- /* @__PURE__ */ jsx253("span", { children: "false" })
20918
+ /* @__PURE__ */ jsx254(XIcon12, { className: "h-3 w-3" }),
20919
+ /* @__PURE__ */ jsx254("span", { children: "false" })
20902
20920
  ]
20903
20921
  }
20904
20922
  )
20905
20923
  ] })
20906
20924
  ] }),
20907
20925
  isRoleColumn && onClear && /* @__PURE__ */ jsxs164(Fragment54, { children: [
20908
- /* @__PURE__ */ jsx253(Separator, {}),
20926
+ /* @__PURE__ */ jsx254(Separator, {}),
20909
20927
  /* @__PURE__ */ jsxs164(
20910
20928
  Button,
20911
20929
  {
@@ -20917,34 +20935,34 @@ function RbacPermissionPicker({
20917
20935
  onClose();
20918
20936
  },
20919
20937
  children: [
20920
- /* @__PURE__ */ jsx253(MinusIcon3, { className: "h-3 w-3" }),
20938
+ /* @__PURE__ */ jsx254(MinusIcon3, { className: "h-3 w-3" }),
20921
20939
  t("rbac.inherit_from_defaults")
20922
20940
  ]
20923
20941
  }
20924
20942
  )
20925
20943
  ] }),
20926
- /* @__PURE__ */ jsx253(Separator, {}),
20944
+ /* @__PURE__ */ jsx254(Separator, {}),
20927
20945
  /* @__PURE__ */ jsxs164("div", { children: [
20928
- /* @__PURE__ */ jsx253("p", { className: "text-muted-foreground mb-2 text-xs font-medium", children: t("rbac.relationships") }),
20929
- knownSegments.length > 0 && /* @__PURE__ */ jsx253("div", { className: "max-h-40 space-y-1 overflow-y-auto", children: knownSegments.map((segment) => /* @__PURE__ */ jsxs164(
20946
+ /* @__PURE__ */ jsx254("p", { className: "text-muted-foreground mb-2 text-xs font-medium", children: t("rbac.relationships") }),
20947
+ knownSegments.length > 0 && /* @__PURE__ */ jsx254("div", { className: "max-h-40 space-y-1 overflow-y-auto", children: knownSegments.map((segment) => /* @__PURE__ */ jsxs164(
20930
20948
  "label",
20931
20949
  {
20932
20950
  className: "hover:bg-muted flex cursor-pointer items-center gap-2 rounded px-1 py-0.5 text-sm",
20933
20951
  children: [
20934
- /* @__PURE__ */ jsx253(
20952
+ /* @__PURE__ */ jsx254(
20935
20953
  Checkbox,
20936
20954
  {
20937
20955
  checked: currentSegments.includes(segment),
20938
20956
  onCheckedChange: () => toggleSegment(segment)
20939
20957
  }
20940
20958
  ),
20941
- /* @__PURE__ */ jsx253("span", { className: "font-mono text-xs", children: segment })
20959
+ /* @__PURE__ */ jsx254("span", { className: "font-mono text-xs", children: segment })
20942
20960
  ]
20943
20961
  },
20944
20962
  segment
20945
20963
  )) }),
20946
20964
  /* @__PURE__ */ jsxs164("div", { className: "mt-2 flex gap-1", children: [
20947
- /* @__PURE__ */ jsx253(
20965
+ /* @__PURE__ */ jsx254(
20948
20966
  Input,
20949
20967
  {
20950
20968
  value: customSegment,
@@ -20959,7 +20977,7 @@ function RbacPermissionPicker({
20959
20977
  }
20960
20978
  }
20961
20979
  ),
20962
- /* @__PURE__ */ jsx253(
20980
+ /* @__PURE__ */ jsx254(
20963
20981
  Button,
20964
20982
  {
20965
20983
  size: "sm",
@@ -20972,8 +20990,8 @@ function RbacPermissionPicker({
20972
20990
  )
20973
20991
  ] }),
20974
20992
  currentSegments.length > 0 && /* @__PURE__ */ jsxs164("div", { className: "bg-muted mt-2 rounded p-2", children: [
20975
- /* @__PURE__ */ jsx253("p", { className: "text-muted-foreground mb-1 text-xs", children: t("rbac.preview") }),
20976
- /* @__PURE__ */ jsx253("p", { className: "font-mono text-xs break-all", children: currentSegments.join("|") })
20993
+ /* @__PURE__ */ jsx254("p", { className: "text-muted-foreground mb-1 text-xs", children: t("rbac.preview") }),
20994
+ /* @__PURE__ */ jsx254("p", { className: "font-mono text-xs break-all", children: currentSegments.join("|") })
20977
20995
  ] })
20978
20996
  ] })
20979
20997
  ] })
@@ -20985,7 +21003,7 @@ function RbacPermissionPicker({
20985
21003
  __name(RbacPermissionPicker, "RbacPermissionPicker");
20986
21004
 
20987
21005
  // src/features/rbac/components/RbacContainer.tsx
20988
- import { jsx as jsx254, jsxs as jsxs165 } from "react/jsx-runtime";
21006
+ import { jsx as jsx255, jsxs as jsxs165 } from "react/jsx-runtime";
20989
21007
  function findToken(tokens, action) {
20990
21008
  if (!tokens) return void 0;
20991
21009
  return tokens.find((t) => t.action === action);
@@ -21011,7 +21029,7 @@ var CellButton = memo2(/* @__PURE__ */ __name(function CellButton2({
21011
21029
  if (!ref.current) return;
21012
21030
  onOpen({ moduleId, rowKey, action, isRoleColumn, anchor: ref.current });
21013
21031
  }, [onOpen, moduleId, rowKey, action, isRoleColumn]);
21014
- return /* @__PURE__ */ jsx254("div", { ref, children: /* @__PURE__ */ jsx254(RbacPermissionCell, { value, isRoleColumn, onClick: handleClick }) });
21032
+ return /* @__PURE__ */ jsx255("div", { ref, children: /* @__PURE__ */ jsx255(RbacPermissionCell, { value, isRoleColumn, onClick: handleClick }) });
21015
21033
  }, "CellButton"));
21016
21034
  var ACTION_LABELS = {
21017
21035
  read: "Read",
@@ -21031,18 +21049,18 @@ var ModuleEditor = memo2(/* @__PURE__ */ __name(function ModuleEditor2({
21031
21049
  const defaultTokens = block.default ?? [];
21032
21050
  return /* @__PURE__ */ jsxs165("div", { className: "rounded-lg border border-accent bg-card", children: [
21033
21051
  /* @__PURE__ */ jsxs165("div", { className: "flex items-center justify-between border-b px-4 py-2", children: [
21034
- /* @__PURE__ */ jsx254("h4", { className: "text-sm font-medium", children: moduleLabel }),
21035
- /* @__PURE__ */ jsx254("span", { className: "font-mono text-[10px] text-muted-foreground", children: moduleId })
21052
+ /* @__PURE__ */ jsx255("h4", { className: "text-sm font-medium", children: moduleLabel }),
21053
+ /* @__PURE__ */ jsx255("span", { className: "font-mono text-[10px] text-muted-foreground", children: moduleId })
21036
21054
  ] }),
21037
- /* @__PURE__ */ jsx254("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs165("table", { className: "w-full text-sm", children: [
21038
- /* @__PURE__ */ jsx254("thead", { children: /* @__PURE__ */ jsxs165("tr", { className: "border-b bg-muted/50", children: [
21039
- /* @__PURE__ */ jsx254("th", { className: "w-40 px-4 py-2 text-left text-xs font-medium text-muted-foreground", children: t("rbac.role") }),
21040
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx254("th", { className: "min-w-28 px-2 py-2 text-center text-xs font-medium text-muted-foreground", children: ACTION_LABELS[action] }, action))
21055
+ /* @__PURE__ */ jsx255("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs165("table", { className: "w-full text-sm", children: [
21056
+ /* @__PURE__ */ jsx255("thead", { children: /* @__PURE__ */ jsxs165("tr", { className: "border-b bg-muted/50", children: [
21057
+ /* @__PURE__ */ jsx255("th", { className: "w-40 px-4 py-2 text-left text-xs font-medium text-muted-foreground", children: t("rbac.role") }),
21058
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255("th", { className: "min-w-28 px-2 py-2 text-center text-xs font-medium text-muted-foreground", children: ACTION_LABELS[action] }, action))
21041
21059
  ] }) }),
21042
21060
  /* @__PURE__ */ jsxs165("tbody", { children: [
21043
21061
  /* @__PURE__ */ jsxs165("tr", { className: cn("border-b bg-muted/30"), children: [
21044
- /* @__PURE__ */ jsx254("td", { className: "px-4 py-1 text-xs font-bold text-muted-foreground", children: t("rbac.defaults") }),
21045
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx254("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx254(
21062
+ /* @__PURE__ */ jsx255("td", { className: "px-4 py-1 text-xs font-bold text-muted-foreground", children: t("rbac.defaults") }),
21063
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx255(
21046
21064
  CellButton,
21047
21065
  {
21048
21066
  moduleId,
@@ -21058,8 +21076,8 @@ var ModuleEditor = memo2(/* @__PURE__ */ __name(function ModuleEditor2({
21058
21076
  const roleTokens = block[roleId];
21059
21077
  const roleLabel = roleNames?.[roleId] ?? roleId;
21060
21078
  return /* @__PURE__ */ jsxs165("tr", { className: "border-b last:border-b-0", children: [
21061
- /* @__PURE__ */ jsx254("td", { className: "px-4 py-1 text-xs font-medium text-muted-foreground", children: roleLabel }),
21062
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx254("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx254(
21079
+ /* @__PURE__ */ jsx255("td", { className: "px-4 py-1 text-xs font-medium text-muted-foreground", children: roleLabel }),
21080
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx255(
21063
21081
  CellButton,
21064
21082
  {
21065
21083
  moduleId,
@@ -21136,16 +21154,16 @@ function RbacContainer() {
21136
21154
  clearCell(activePicker.moduleId, activePicker.rowKey, activePicker.action);
21137
21155
  }, [activePicker, clearCell]);
21138
21156
  if (loading) {
21139
- return /* @__PURE__ */ jsx254(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx254("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx254(Loader2Icon3, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) });
21157
+ return /* @__PURE__ */ jsx255(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx255("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx255(Loader2Icon3, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) });
21140
21158
  }
21141
21159
  if (error) {
21142
- return /* @__PURE__ */ jsx254(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx254("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx254("p", { className: "text-destructive", children: error }) }) });
21160
+ return /* @__PURE__ */ jsx255(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx255("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx255("p", { className: "text-destructive", children: error }) }) });
21143
21161
  }
21144
21162
  if (!matrix) return null;
21145
21163
  const selectedBlock = selectedModuleId ? matrix[selectedModuleId] : void 0;
21146
21164
  return /* @__PURE__ */ jsxs165(RoundPageContainer, { fullWidth: true, forceHeader: true, children: [
21147
21165
  /* @__PURE__ */ jsxs165("div", { className: "flex h-full w-full", children: [
21148
- /* @__PURE__ */ jsx254("aside", { className: "w-60 shrink-0 overflow-y-auto border-r bg-muted/20", children: /* @__PURE__ */ jsx254("ul", { className: "py-1", children: sortedModuleIds.map((id) => /* @__PURE__ */ jsx254("li", { children: /* @__PURE__ */ jsx254(
21166
+ /* @__PURE__ */ jsx255("aside", { className: "w-60 shrink-0 overflow-y-auto border-r bg-muted/20", children: /* @__PURE__ */ jsx255("ul", { className: "py-1", children: sortedModuleIds.map((id) => /* @__PURE__ */ jsx255("li", { children: /* @__PURE__ */ jsx255(
21149
21167
  "button",
21150
21168
  {
21151
21169
  type: "button",
@@ -21159,7 +21177,7 @@ function RbacContainer() {
21159
21177
  children: moduleNames?.[id] ?? id
21160
21178
  }
21161
21179
  ) }, id)) }) }),
21162
- /* @__PURE__ */ jsx254("section", { className: "flex-1 overflow-y-auto p-4", children: selectedModuleId && selectedBlock ? /* @__PURE__ */ jsx254(
21180
+ /* @__PURE__ */ jsx255("section", { className: "flex-1 overflow-y-auto p-4", children: selectedModuleId && selectedBlock ? /* @__PURE__ */ jsx255(
21163
21181
  ModuleEditor,
21164
21182
  {
21165
21183
  moduleId: selectedModuleId,
@@ -21169,9 +21187,9 @@ function RbacContainer() {
21169
21187
  roleNames,
21170
21188
  onOpenPicker: openPicker
21171
21189
  }
21172
- ) : /* @__PURE__ */ jsx254("p", { className: "text-muted-foreground text-sm", children: t("rbac.select_module_prompt") }) })
21190
+ ) : /* @__PURE__ */ jsx255("p", { className: "text-muted-foreground text-sm", children: t("rbac.select_module_prompt") }) })
21173
21191
  ] }),
21174
- /* @__PURE__ */ jsx254(
21192
+ /* @__PURE__ */ jsx255(
21175
21193
  RbacPermissionPicker,
21176
21194
  {
21177
21195
  open: !!activePicker,
@@ -21192,7 +21210,7 @@ __name(RbacContainer, "RbacContainer");
21192
21210
  import { Loader2Icon as Loader2Icon4 } from "lucide-react";
21193
21211
  import { useTranslations as useTranslations111 } from "next-intl";
21194
21212
  import { Fragment as Fragment55, memo as memo3, useCallback as useCallback50, useEffect as useEffect72, useMemo as useMemo34, useRef as useRef37, useState as useState97 } from "react";
21195
- import { jsx as jsx255, jsxs as jsxs166 } from "react/jsx-runtime";
21213
+ import { jsx as jsx256, jsxs as jsxs166 } from "react/jsx-runtime";
21196
21214
  function findToken2(tokens, action) {
21197
21215
  if (!tokens) return void 0;
21198
21216
  return tokens.find((t) => t.action === action);
@@ -21218,7 +21236,7 @@ var CellButton3 = memo3(/* @__PURE__ */ __name(function CellButton4({
21218
21236
  if (!ref.current) return;
21219
21237
  onOpen({ moduleId, rowKey, action, isRoleColumn, anchor: ref.current });
21220
21238
  }, [onOpen, moduleId, rowKey, action, isRoleColumn]);
21221
- return /* @__PURE__ */ jsx255("div", { ref, children: /* @__PURE__ */ jsx255(RbacPermissionCell, { value, isRoleColumn, onClick: handleClick }) });
21239
+ return /* @__PURE__ */ jsx256("div", { ref, children: /* @__PURE__ */ jsx256(RbacPermissionCell, { value, isRoleColumn, onClick: handleClick }) });
21222
21240
  }, "CellButton"));
21223
21241
  var ACTION_LABELS2 = {
21224
21242
  read: "Read",
@@ -21277,15 +21295,15 @@ function RbacByRoleContainer() {
21277
21295
  clearCell(activePicker.moduleId, activePicker.rowKey, activePicker.action);
21278
21296
  }, [activePicker, clearCell]);
21279
21297
  if (loading) {
21280
- return /* @__PURE__ */ jsx255(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx255("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx255(Loader2Icon4, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) });
21298
+ return /* @__PURE__ */ jsx256(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx256("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx256(Loader2Icon4, { className: "h-8 w-8 animate-spin text-muted-foreground" }) }) });
21281
21299
  }
21282
21300
  if (error) {
21283
- return /* @__PURE__ */ jsx255(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx255("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx255("p", { className: "text-destructive", children: error }) }) });
21301
+ return /* @__PURE__ */ jsx256(RoundPageContainer, { fullWidth: true, children: /* @__PURE__ */ jsx256("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsx256("p", { className: "text-destructive", children: error }) }) });
21284
21302
  }
21285
21303
  if (!matrix || !selectedRoleId) return null;
21286
21304
  return /* @__PURE__ */ jsxs166(RoundPageContainer, { fullWidth: true, forceHeader: true, children: [
21287
21305
  /* @__PURE__ */ jsxs166("div", { className: "flex h-full w-full", children: [
21288
- /* @__PURE__ */ jsx255("aside", { className: "w-60 shrink-0 overflow-y-auto border-r bg-muted/20", children: /* @__PURE__ */ jsx255("ul", { className: "py-1", children: sortedRoleIds.map((id) => /* @__PURE__ */ jsx255("li", { children: /* @__PURE__ */ jsx255(
21306
+ /* @__PURE__ */ jsx256("aside", { className: "w-60 shrink-0 overflow-y-auto border-r bg-muted/20", children: /* @__PURE__ */ jsx256("ul", { className: "py-1", children: sortedRoleIds.map((id) => /* @__PURE__ */ jsx256("li", { children: /* @__PURE__ */ jsx256(
21289
21307
  "button",
21290
21308
  {
21291
21309
  type: "button",
@@ -21299,10 +21317,10 @@ function RbacByRoleContainer() {
21299
21317
  children: roleNames?.[id] ?? id
21300
21318
  }
21301
21319
  ) }, id)) }) }),
21302
- /* @__PURE__ */ jsx255("section", { className: "flex-1 overflow-y-auto p-4", children: sortedModuleIds.length > 0 ? /* @__PURE__ */ jsx255("div", { className: "rounded-lg border border-accent bg-card", children: /* @__PURE__ */ jsx255("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs166("table", { className: "w-full text-sm", children: [
21303
- /* @__PURE__ */ jsx255("thead", { className: "sticky top-0 z-10", children: /* @__PURE__ */ jsxs166("tr", { className: "border-b bg-muted/80 backdrop-blur-sm", children: [
21304
- /* @__PURE__ */ jsx255("th", { className: "w-40 px-4 py-2 text-left text-xs font-medium text-muted-foreground", children: t("rbac.module") }),
21305
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255(
21320
+ /* @__PURE__ */ jsx256("section", { className: "flex-1 overflow-y-auto p-4", children: sortedModuleIds.length > 0 ? /* @__PURE__ */ jsx256("div", { className: "rounded-lg border border-accent bg-card", children: /* @__PURE__ */ jsx256("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs166("table", { className: "w-full text-sm", children: [
21321
+ /* @__PURE__ */ jsx256("thead", { className: "sticky top-0 z-10", children: /* @__PURE__ */ jsxs166("tr", { className: "border-b bg-muted/80 backdrop-blur-sm", children: [
21322
+ /* @__PURE__ */ jsx256("th", { className: "w-40 px-4 py-2 text-left text-xs font-medium text-muted-foreground", children: t("rbac.module") }),
21323
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx256(
21306
21324
  "th",
21307
21325
  {
21308
21326
  className: "min-w-28 px-2 py-2 text-center text-xs font-medium text-muted-foreground",
@@ -21311,14 +21329,14 @@ function RbacByRoleContainer() {
21311
21329
  action
21312
21330
  ))
21313
21331
  ] }) }),
21314
- /* @__PURE__ */ jsx255("tbody", { children: sortedModuleIds.map((moduleId) => {
21332
+ /* @__PURE__ */ jsx256("tbody", { children: sortedModuleIds.map((moduleId) => {
21315
21333
  const block = matrix[moduleId];
21316
21334
  if (!block) return null;
21317
21335
  const defaultTokens = block.default ?? [];
21318
21336
  const roleTokens = block[selectedRoleId];
21319
21337
  const moduleLabel = moduleNames?.[moduleId] ?? moduleId;
21320
21338
  return /* @__PURE__ */ jsxs166(Fragment55, { children: [
21321
- /* @__PURE__ */ jsx255("tr", { className: "border-b bg-muted/40", children: /* @__PURE__ */ jsx255(
21339
+ /* @__PURE__ */ jsx256("tr", { className: "border-b bg-muted/40", children: /* @__PURE__ */ jsx256(
21322
21340
  "td",
21323
21341
  {
21324
21342
  colSpan: ACTION_TYPES.length + 1,
@@ -21327,12 +21345,12 @@ function RbacByRoleContainer() {
21327
21345
  }
21328
21346
  ) }),
21329
21347
  /* @__PURE__ */ jsxs166("tr", { className: "border-b bg-muted/20", children: [
21330
- /* @__PURE__ */ jsx255("td", { className: "px-4 py-1 text-xs text-muted-foreground", children: t("rbac.defaults") }),
21331
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx255(RbacPermissionCell, { value: cellValue2(defaultTokens, action) }) }, action))
21348
+ /* @__PURE__ */ jsx256("td", { className: "px-4 py-1 text-xs text-muted-foreground", children: t("rbac.defaults") }),
21349
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx256("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx256(RbacPermissionCell, { value: cellValue2(defaultTokens, action) }) }, action))
21332
21350
  ] }),
21333
21351
  /* @__PURE__ */ jsxs166("tr", { className: "border-b last:border-b-0", children: [
21334
- /* @__PURE__ */ jsx255("td", { className: "px-4 py-1 text-xs font-medium text-muted-foreground", children: roleNames?.[selectedRoleId] ?? selectedRoleId }),
21335
- ACTION_TYPES.map((action) => /* @__PURE__ */ jsx255("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx255(
21352
+ /* @__PURE__ */ jsx256("td", { className: "px-4 py-1 text-xs font-medium text-muted-foreground", children: roleNames?.[selectedRoleId] ?? selectedRoleId }),
21353
+ ACTION_TYPES.map((action) => /* @__PURE__ */ jsx256("td", { className: "px-2 py-1", children: /* @__PURE__ */ jsx256(
21336
21354
  CellButton3,
21337
21355
  {
21338
21356
  moduleId,
@@ -21346,9 +21364,9 @@ function RbacByRoleContainer() {
21346
21364
  ] })
21347
21365
  ] }, moduleId);
21348
21366
  }) })
21349
- ] }) }) }) : /* @__PURE__ */ jsx255("p", { className: "text-muted-foreground text-sm", children: t("rbac.select_role_prompt") }) })
21367
+ ] }) }) }) : /* @__PURE__ */ jsx256("p", { className: "text-muted-foreground text-sm", children: t("rbac.select_role_prompt") }) })
21350
21368
  ] }),
21351
- /* @__PURE__ */ jsx255(
21369
+ /* @__PURE__ */ jsx256(
21352
21370
  RbacPermissionPicker,
21353
21371
  {
21354
21372
  open: !!activePicker,
@@ -21740,6 +21758,7 @@ export {
21740
21758
  PageContentContainer,
21741
21759
  cellComponent,
21742
21760
  cellDate,
21761
+ cellDateTime,
21743
21762
  cellId,
21744
21763
  cellLink,
21745
21764
  cellUrl,
@@ -21876,4 +21895,4 @@ export {
21876
21895
  useOAuthClients,
21877
21896
  useOAuthClient
21878
21897
  };
21879
- //# sourceMappingURL=chunk-VFS7UECR.mjs.map
21898
+ //# sourceMappingURL=chunk-JUM7DE6J.mjs.map