@rebasepro/core 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react/jsx-runtime"), require("react-compiler-runtime"), require("react"), require("@rebasepro/ui"), require("notistack"), require("@rebasepro/types"), require("react-router-dom"), require("@rebasepro/common"), require("@rebasepro/utils"), require("fast-equals"), require("react-i18next"), require("lucide-react"), require("i18next"), require("fuse.js"), require("compressorjs")) : typeof define === "function" && define.amd ? define(["exports", "react/jsx-runtime", "react-compiler-runtime", "react", "@rebasepro/ui", "notistack", "@rebasepro/types", "react-router-dom", "@rebasepro/common", "@rebasepro/utils", "fast-equals", "react-i18next", "lucide-react", "i18next", "fuse.js", "compressorjs"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global["Rebase Core"] = {}, global.jsxRuntime, global.reactCompilerRuntime, global.React, global.ui, global.notistack, global.types, global.reactRouterDom, global.common, global.utils, global.fastEquals, global.reactI18next, global.lucideReact, global.i18next, global.Fuse, global.Compressor));
3
- })(this, (function(exports2, jsxRuntime, reactCompilerRuntime, React, ui, notistack, types, reactRouterDom, common, utils, fastEquals, reactI18next, lucideReact, i18next, Fuse, Compressor) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react/jsx-runtime"), require("react-compiler-runtime"), require("react"), require("@rebasepro/ui"), require("notistack"), require("@rebasepro/types"), require("react-router-dom"), require("@rebasepro/common"), require("@rebasepro/utils"), require("fast-equals"), require("react-i18next"), require("i18next"), require("fuse.js"), require("compressorjs")) : typeof define === "function" && define.amd ? define(["exports", "react/jsx-runtime", "react-compiler-runtime", "react", "@rebasepro/ui", "notistack", "@rebasepro/types", "react-router-dom", "@rebasepro/common", "@rebasepro/utils", "fast-equals", "react-i18next", "i18next", "fuse.js", "compressorjs"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global["Rebase Core"] = {}, global.jsxRuntime, global.reactCompilerRuntime, global.React, global.ui, global.notistack, global.types, global.reactRouterDom, global.common, global.utils, global.fastEquals, global.reactI18next, global.i18next, global.Fuse, global.Compressor));
3
+ })(this, (function(exports2, jsxRuntime, reactCompilerRuntime, React, ui, notistack, types, reactRouterDom, common, utils, fastEquals, reactI18next, i18next, Fuse, Compressor) {
4
4
  "use strict";
5
5
  function PluginProviderStack({
6
6
  plugins,
@@ -11,60 +11,98 @@
11
11
  const providers = plugins.flatMap((p) => p.providers ?? []).filter((p) => p.scope === scope);
12
12
  return providers.reduceRight((acc, provider) => /* @__PURE__ */ jsxRuntime.jsx(provider.Component, { ...provider.props, ...scopeProps, children: acc }), children);
13
13
  }
14
- function PluginLifecycleManager({
15
- plugins,
16
- context
17
- }) {
14
+ function PluginLifecycleManager(t0) {
15
+ const $ = reactCompilerRuntime.c(8);
16
+ const {
17
+ plugins,
18
+ context
19
+ } = t0;
18
20
  const mountedRef = React.useRef(false);
19
21
  const prevUserRef = React.useRef(void 0);
20
- React.useEffect(() => {
21
- if (mountedRef.current) return;
22
- mountedRef.current = true;
23
- for (const plugin of plugins) {
24
- if (plugin.lifecycle?.onMount) {
25
- try {
26
- const result = plugin.lifecycle.onMount(context);
27
- if (result instanceof Promise) {
28
- result.catch((err) => console.error(`[Rebase] Plugin "${plugin.key}" onMount error:`, err));
29
- }
30
- } catch (err) {
31
- console.error(`[Rebase] Plugin "${plugin.key}" onMount error:`, err);
32
- }
22
+ let t1;
23
+ if ($[0] !== context || $[1] !== plugins) {
24
+ t1 = () => {
25
+ if (mountedRef.current) {
26
+ return;
33
27
  }
34
- }
35
- return () => {
36
- mountedRef.current = false;
28
+ mountedRef.current = true;
37
29
  for (const plugin of plugins) {
38
- if (plugin.lifecycle?.onUnmount) {
30
+ if (plugin.lifecycle?.onMount) {
39
31
  try {
40
- plugin.lifecycle.onUnmount();
41
- } catch (err) {
42
- console.error(`[Rebase] Plugin "${plugin.key}" onUnmount error:`, err);
32
+ const result = plugin.lifecycle.onMount(context);
33
+ if (result instanceof Promise) {
34
+ result.catch((err_0) => console.error(`[Rebase] Plugin "${plugin.key}" onMount error:`, err_0));
35
+ }
36
+ } catch (t22) {
37
+ const err = t22;
38
+ console.error(`[Rebase] Plugin "${plugin.key}" onMount error:`, err);
43
39
  }
44
40
  }
45
41
  }
42
+ return () => {
43
+ mountedRef.current = false;
44
+ for (const plugin_0 of plugins) {
45
+ if (plugin_0.lifecycle?.onUnmount) {
46
+ try {
47
+ plugin_0.lifecycle.onUnmount();
48
+ } catch (t32) {
49
+ const err_1 = t32;
50
+ console.error(`[Rebase] Plugin "${plugin_0.key}" onUnmount error:`, err_1);
51
+ }
52
+ }
53
+ }
54
+ };
46
55
  };
47
- }, []);
56
+ $[0] = context;
57
+ $[1] = plugins;
58
+ $[2] = t1;
59
+ } else {
60
+ t1 = $[2];
61
+ }
62
+ let t2;
63
+ if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
64
+ t2 = [];
65
+ $[3] = t2;
66
+ } else {
67
+ t2 = $[3];
68
+ }
69
+ React.useEffect(t1, t2);
48
70
  const currentUser = context.authController?.user ?? null;
49
- React.useEffect(() => {
50
- if (prevUserRef.current === void 0) {
71
+ let t3;
72
+ let t4;
73
+ if ($[4] !== currentUser || $[5] !== plugins) {
74
+ t3 = () => {
75
+ if (prevUserRef.current === void 0) {
76
+ prevUserRef.current = currentUser;
77
+ return;
78
+ }
79
+ const prevUid = prevUserRef.current?.uid;
80
+ const currUid = currentUser?.uid;
81
+ if (prevUid === currUid) {
82
+ return;
83
+ }
51
84
  prevUserRef.current = currentUser;
52
- return;
53
- }
54
- const prevUid = prevUserRef.current?.uid;
55
- const currUid = currentUser?.uid;
56
- if (prevUid === currUid) return;
57
- prevUserRef.current = currentUser;
58
- for (const plugin of plugins) {
59
- if (plugin.lifecycle?.onAuthStateChange) {
60
- try {
61
- plugin.lifecycle.onAuthStateChange(currentUser);
62
- } catch (err) {
63
- console.error(`[Rebase] Plugin "${plugin.key}" onAuthStateChange error:`, err);
85
+ for (const plugin_1 of plugins) {
86
+ if (plugin_1.lifecycle?.onAuthStateChange) {
87
+ try {
88
+ plugin_1.lifecycle.onAuthStateChange(currentUser);
89
+ } catch (t5) {
90
+ const err_2 = t5;
91
+ console.error(`[Rebase] Plugin "${plugin_1.key}" onAuthStateChange error:`, err_2);
92
+ }
64
93
  }
65
94
  }
66
- }
67
- }, [currentUser, plugins]);
95
+ };
96
+ t4 = [currentUser, plugins];
97
+ $[4] = currentUser;
98
+ $[5] = plugins;
99
+ $[6] = t3;
100
+ $[7] = t4;
101
+ } else {
102
+ t3 = $[6];
103
+ t4 = $[7];
104
+ }
105
+ React.useEffect(t3, t4);
68
106
  return null;
69
107
  }
70
108
  const SnackbarProvider = (t0) => {
@@ -74,7 +112,7 @@
74
112
  } = t0;
75
113
  let t1;
76
114
  if ($[0] !== children) {
77
- t1 = /* @__PURE__ */ jsxRuntime.jsx(notistack.SnackbarProvider, { maxSnack: 3, autoHideDuration: 3500, children });
115
+ t1 = /* @__PURE__ */ jsxRuntime.jsx(notistack.SnackbarProvider, { maxSnack: 3, preventDuplicate: true, autoHideDuration: 3500, children });
78
116
  $[0] = children;
79
117
  $[1] = t1;
80
118
  } else {
@@ -220,7 +258,7 @@
220
258
  return React.useContext(RebaseDataContext);
221
259
  };
222
260
  function useCollectionFetch(t0) {
223
- const $ = reactCompilerRuntime.c(23);
261
+ const $ = reactCompilerRuntime.c(25);
224
262
  const {
225
263
  path,
226
264
  collection,
@@ -297,7 +335,10 @@
297
335
  orderBy: orderByParams,
298
336
  searchString,
299
337
  include: includeParams
300
- }, onEntitiesUpdate, onError);
338
+ }, (res_0) => onEntitiesUpdate({
339
+ data: res_0.data,
340
+ meta: res_0.meta
341
+ }), onError);
301
342
  } else {
302
343
  accessor.find({
303
344
  where: whereParams,
@@ -305,7 +346,10 @@
305
346
  orderBy: orderByParams,
306
347
  searchString,
307
348
  include: includeParams
308
- }).then(onEntitiesUpdate).catch(onError);
349
+ }).then((res_1) => onEntitiesUpdate({
350
+ data: res_1.data,
351
+ meta: res_1.meta
352
+ })).catch(onError);
309
353
  return _temp3$3;
310
354
  }
311
355
  };
@@ -321,35 +365,37 @@
321
365
  t3 = $[10];
322
366
  }
323
367
  let t4;
324
- if ($[11] !== currentSort || $[12] !== filterValues || $[13] !== itemCount || $[14] !== path || $[15] !== searchString || $[16] !== sortByProperty) {
325
- t4 = [path, itemCount, currentSort, sortByProperty, filterValues, searchString];
326
- $[11] = currentSort;
327
- $[12] = filterValues;
328
- $[13] = itemCount;
329
- $[14] = path;
330
- $[15] = searchString;
331
- $[16] = sortByProperty;
332
- $[17] = t4;
333
- } else {
334
- t4 = $[17];
368
+ if ($[11] !== collection || $[12] !== currentSort || $[13] !== dataClient || $[14] !== filterValues || $[15] !== itemCount || $[16] !== path || $[17] !== searchString || $[18] !== sortByProperty) {
369
+ t4 = [path, itemCount, currentSort, sortByProperty, filterValues, searchString, dataClient, collection];
370
+ $[11] = collection;
371
+ $[12] = currentSort;
372
+ $[13] = dataClient;
373
+ $[14] = filterValues;
374
+ $[15] = itemCount;
375
+ $[16] = path;
376
+ $[17] = searchString;
377
+ $[18] = sortByProperty;
378
+ $[19] = t4;
379
+ } else {
380
+ t4 = $[19];
335
381
  }
336
382
  React.useEffect(t3, t4);
337
383
  let t5;
338
384
  let t6;
339
- if ($[18] !== data || $[19] !== dataLoading || $[20] !== dataLoadingError || $[21] !== noMoreToLoad) {
385
+ if ($[20] !== data || $[21] !== dataLoading || $[22] !== dataLoadingError || $[23] !== noMoreToLoad) {
340
386
  t6 = {
341
387
  data,
342
388
  dataLoading,
343
389
  dataLoadingError,
344
390
  noMoreToLoad
345
391
  };
346
- $[18] = data;
347
- $[19] = dataLoading;
348
- $[20] = dataLoadingError;
349
- $[21] = noMoreToLoad;
350
- $[22] = t6;
392
+ $[20] = data;
393
+ $[21] = dataLoading;
394
+ $[22] = dataLoadingError;
395
+ $[23] = noMoreToLoad;
396
+ $[24] = t6;
351
397
  } else {
352
- t6 = $[22];
398
+ t6 = $[24];
353
399
  }
354
400
  t5 = t6;
355
401
  return t5;
@@ -476,12 +522,18 @@
476
522
  CACHE[`${path}/${entity.id}`] = entity;
477
523
  }
478
524
  }
525
+ function clearEntityFetchCache() {
526
+ for (const key of Object.keys(CACHE)) {
527
+ delete CACHE[key];
528
+ }
529
+ }
479
530
  function useEntityFetch(t0) {
480
- const $ = reactCompilerRuntime.c(13);
531
+ const $ = reactCompilerRuntime.c(17);
481
532
  const {
482
533
  path,
483
534
  entityId,
484
535
  collection,
536
+ databaseId,
485
537
  useCache: t1
486
538
  } = t0;
487
539
  const useCache = t1 === void 0 ? false : t1;
@@ -519,9 +571,9 @@
519
571
  if (entityId && path && collection) {
520
572
  const accessor = dataClient.collection(path);
521
573
  if (accessor.listenById) {
522
- return accessor.listenById(entityId, onEntityUpdate, onError);
574
+ return accessor.listenById(entityId, (entity_0) => onEntityUpdate(entity_0), onError);
523
575
  } else {
524
- accessor.findById(entityId).then(onEntityUpdate).catch(onError);
576
+ accessor.findById(entityId).then((entity_1) => onEntityUpdate(entity_1)).catch(onError);
525
577
  return _temp2$3;
526
578
  }
527
579
  } else {
@@ -540,29 +592,33 @@
540
592
  t2 = $[5];
541
593
  }
542
594
  let t3;
543
- if ($[6] !== entityId || $[7] !== path) {
544
- t3 = [entityId, path];
545
- $[6] = entityId;
546
- $[7] = path;
547
- $[8] = t3;
548
- } else {
549
- t3 = $[8];
595
+ if ($[6] !== collection || $[7] !== dataClient || $[8] !== databaseId || $[9] !== entityId || $[10] !== path || $[11] !== useCache) {
596
+ t3 = [entityId, path, dataClient, collection, useCache, databaseId];
597
+ $[6] = collection;
598
+ $[7] = dataClient;
599
+ $[8] = databaseId;
600
+ $[9] = entityId;
601
+ $[10] = path;
602
+ $[11] = useCache;
603
+ $[12] = t3;
604
+ } else {
605
+ t3 = $[12];
550
606
  }
551
607
  React.useEffect(t2, t3);
552
608
  let t4;
553
609
  let t5;
554
- if ($[9] !== dataLoading || $[10] !== dataLoadingError || $[11] !== entity) {
610
+ if ($[13] !== dataLoading || $[14] !== dataLoadingError || $[15] !== entity) {
555
611
  t5 = {
556
612
  entity,
557
613
  dataLoading,
558
614
  dataLoadingError
559
615
  };
560
- $[9] = dataLoading;
561
- $[10] = dataLoadingError;
562
- $[11] = entity;
563
- $[12] = t5;
616
+ $[13] = dataLoading;
617
+ $[14] = dataLoadingError;
618
+ $[15] = entity;
619
+ $[16] = t5;
564
620
  } else {
565
- t5 = $[12];
621
+ t5 = $[16];
566
622
  }
567
623
  t4 = t5;
568
624
  return t4;
@@ -673,7 +729,10 @@
673
729
  limit,
674
730
  orderBy: void 0,
675
731
  searchString: currentSearch
676
- }, onEntitiesUpdate, onErrorUpdate);
732
+ }, (res_0) => onEntitiesUpdate({
733
+ data: res_0.data,
734
+ meta: res_0.meta
735
+ }), onErrorUpdate);
677
736
  } else {
678
737
  accessor.find({
679
738
  where: whereParams,
@@ -681,7 +740,10 @@
681
740
  offset: 0,
682
741
  orderBy: void 0,
683
742
  searchString: currentSearch
684
- }).then(onEntitiesUpdate).catch(onErrorUpdate);
743
+ }).then((res_1) => onEntitiesUpdate({
744
+ data: res_1.data,
745
+ meta: res_1.meta
746
+ })).catch(onErrorUpdate);
685
747
  unsubscribe = () => {
686
748
  };
687
749
  }
@@ -2262,7 +2324,7 @@
2262
2324
  console.warn("ErrorView", JSON.stringify(error));
2263
2325
  let t1;
2264
2326
  if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2265
- t1 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangleIcon, { className: "mx-2 mt-0.5" });
2327
+ t1 = /* @__PURE__ */ jsxRuntime.jsx(ui.AlertTriangleIcon, { className: "mx-2 mt-0.5" });
2266
2328
  $[0] = t1;
2267
2329
  } else {
2268
2330
  t1 = $[0];
@@ -2700,14 +2762,14 @@
2700
2762
  limit: itemCount,
2701
2763
  orderBy: orderByParams,
2702
2764
  searchString
2703
- }, ((res) => onEntitiesUpdate(res.data)), onError);
2765
+ }, (res) => onEntitiesUpdate(res.data), onError);
2704
2766
  } else {
2705
2767
  accessor.find({
2706
2768
  where: whereParams,
2707
2769
  limit: itemCount,
2708
2770
  orderBy: orderByParams,
2709
2771
  searchString
2710
- }).then(((res_0) => onEntitiesUpdate(res_0.data))).catch(onError);
2772
+ }).then((res_0) => onEntitiesUpdate(res_0.data)).catch(onError);
2711
2773
  unsubscribe = () => void 0;
2712
2774
  }
2713
2775
  return unsubscribe;
@@ -3200,7 +3262,7 @@
3200
3262
  }
3201
3263
  let t4;
3202
3264
  if ($[2] !== className || $[3] !== numericSize) {
3203
- t4 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wand2Icon, { size: numericSize, className, style: t3 });
3265
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.Wand2Icon, { size: numericSize, className, style: t3 });
3204
3266
  $[2] = className;
3205
3267
  $[3] = numericSize;
3206
3268
  $[4] = t4;
@@ -3419,7 +3481,7 @@
3419
3481
  t18,
3420
3482
  t19,
3421
3483
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
3422
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", color: "error", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2Icon, {}) }),
3484
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", color: "error", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Trash2Icon, {}) }),
3423
3485
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-text-disabled font-mono", children: "delete" })
3424
3486
  ] })
3425
3487
  ] }) })
@@ -3565,7 +3627,7 @@
3565
3627
  let t3;
3566
3628
  if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3567
3629
  t3 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cls("pl-4 pr-2 py-1 flex flex-row items-center transition-colors cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-700/50 rounded-t-lg bg-surface-50 dark:bg-surface-950/30"), children: [
3568
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { size: ui.iconSize.smallest, className: "text-surface-500 dark:text-surface-400 transition-transform duration-200 mr-1" }),
3630
+ /* @__PURE__ */ jsxRuntime.jsx(ui.ChevronDownIcon, { size: ui.iconSize.smallest, className: "text-surface-500 dark:text-surface-400 transition-transform duration-200 mr-1" }),
3569
3631
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", className: "font-medium flex-grow line-clamp-1", children: "SECTIONS" })
3570
3632
  ] });
3571
3633
  $[3] = t3;
@@ -3575,7 +3637,7 @@
3575
3637
  let t4;
3576
3638
  if ($[4] !== activeSection) {
3577
3639
  t4 = SECTIONS.map((s) => /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { onClick: () => scrollTo(s.id), className: ui.cls("rounded-lg truncate", "hover:bg-surface-accent-300/75 dark:hover:bg-surface-accent-800/75 text-text-primary dark:text-surface-200 hover:text-surface-900 dark:hover:text-white", "flex flex-row items-center", "pr-4 h-10", "font-semibold text-xs cursor-pointer", activeSection === s.id ? "bg-surface-accent-200/60 dark:bg-surface-950 dark:bg-opacity-50" : ""), children: [
3578
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[40px] text-text-secondary dark:text-text-secondary-dark", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SettingsIcon, { size: ui.iconSize.small }) }),
3640
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[40px] text-text-secondary dark:text-text-secondary-dark", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SettingsIcon, { size: ui.iconSize.small }) }),
3579
3641
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-text-primary dark:text-surface-200 opacity-100 font-inherit truncate space-x-2", children: s.label.toUpperCase() })
3580
3642
  ] }) }, s.id));
3581
3643
  $[4] = activeSection;
@@ -3608,7 +3670,7 @@
3608
3670
  let t8;
3609
3671
  if ($[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3610
3672
  t8 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t6, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t7, children: [
3611
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsLeftIcon, { size: ui.iconSize.small }) }),
3673
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(ui.ChevronsLeftIcon, { size: ui.iconSize.small }) }),
3612
3674
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "body2", className: "text-surface-500 dark:text-surface-400 select-none whitespace-nowrap", children: "Collapse" })
3613
3675
  ] }) });
3614
3676
  $[10] = t8;
@@ -3677,7 +3739,7 @@
3677
3739
  let t16;
3678
3740
  let t17;
3679
3741
  if ($[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3680
- t16 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex-grow overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-2 mx-2 flex flex-col", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg bg-surface-50 dark:bg-surface-950/30", children: [/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FolderIcon, { size: ui.iconSize.small }), /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserIcon, { size: ui.iconSize.small }), /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TagIcon, { size: ui.iconSize.small })].map(_temp$1) }) }) });
3742
+ t16 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex-grow overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-2 mx-2 flex flex-col", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg bg-surface-50 dark:bg-surface-950/30", children: [/* @__PURE__ */ jsxRuntime.jsx(ui.FolderIcon, { size: ui.iconSize.small }, "folder"), /* @__PURE__ */ jsxRuntime.jsx(ui.UserIcon, { size: ui.iconSize.small }, "user"), /* @__PURE__ */ jsxRuntime.jsx(ui.TagIcon, { size: ui.iconSize.small }, "tag")].map(_temp$1) }) }) });
3681
3743
  t17 = ui.cls("shrink-0 mt-auto border-t px-2 py-2", ui.defaultBorderMixin);
3682
3744
  $[19] = t16;
3683
3745
  $[20] = t17;
@@ -3694,7 +3756,7 @@
3694
3756
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t14, children: [
3695
3757
  t15,
3696
3758
  t16,
3697
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: t17, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center rounded-lg cursor-pointer hover:bg-surface-accent-100 dark:hover:bg-surface-950 transition-colors duration-150 py-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsRightIcon, { size: ui.iconSize.small }) }) }) })
3759
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: t17, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center rounded-lg cursor-pointer hover:bg-surface-accent-100 dark:hover:bg-surface-950 transition-colors duration-150 py-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(ui.ChevronsRightIcon, { size: ui.iconSize.small }) }) }) })
3698
3760
  ] })
3699
3761
  ] });
3700
3762
  t19 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", className: "block mb-1", children: "Expanded (280px)" });
@@ -3727,7 +3789,7 @@
3727
3789
  let t23;
3728
3790
  if ($[26] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3729
3791
  t23 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pl-4 pr-2 py-1 flex flex-row items-center transition-colors cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-700/50 rounded-t-lg bg-surface-50 dark:bg-surface-950/30", children: [
3730
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { size: ui.iconSize.smallest, className: "text-surface-500 dark:text-surface-400 mr-1" }),
3792
+ /* @__PURE__ */ jsxRuntime.jsx(ui.ChevronDownIcon, { size: ui.iconSize.smallest, className: "text-surface-500 dark:text-surface-400 mr-1" }),
3731
3793
  /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", className: "font-medium flex-grow line-clamp-1", children: "CONTENT" })
3732
3794
  ] });
3733
3795
  $[26] = t23;
@@ -3738,7 +3800,7 @@
3738
3800
  if ($[27] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3739
3801
  t24 = {
3740
3802
  label: "Posts",
3741
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FolderIcon, { size: ui.iconSize.small }),
3803
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.FolderIcon, { size: ui.iconSize.small }),
3742
3804
  active: true
3743
3805
  };
3744
3806
  $[27] = t24;
@@ -3749,7 +3811,7 @@
3749
3811
  if ($[28] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3750
3812
  t25 = {
3751
3813
  label: "Authors",
3752
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserIcon, { size: ui.iconSize.small }),
3814
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.UserIcon, { size: ui.iconSize.small }),
3753
3815
  active: false
3754
3816
  };
3755
3817
  $[28] = t25;
@@ -3763,7 +3825,7 @@
3763
3825
  t23,
3764
3826
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden bg-surface-50 dark:bg-surface-950/30 rounded-b-lg", children: [t24, t25, {
3765
3827
  label: "Tags",
3766
- icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.TagIcon, { size: ui.iconSize.small }),
3828
+ icon: /* @__PURE__ */ jsxRuntime.jsx(ui.TagIcon, { size: ui.iconSize.small }),
3767
3829
  active: false
3768
3830
  }].map(_temp2$1) })
3769
3831
  ] }) });
@@ -3776,7 +3838,7 @@
3776
3838
  }
3777
3839
  let t28;
3778
3840
  if ($[31] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3779
- t28 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronsLeftIcon, { size: ui.iconSize.small }) });
3841
+ t28 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 flex items-center justify-center w-[56px] h-[24px] text-surface-500 dark:text-surface-400", children: /* @__PURE__ */ jsxRuntime.jsx(ui.ChevronsLeftIcon, { size: ui.iconSize.small }) });
3780
3842
  $[31] = t28;
3781
3843
  } else {
3782
3844
  t28 = $[31];
@@ -3874,7 +3936,7 @@
3874
3936
  }
3875
3937
  let t39;
3876
3938
  if ($[42] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3877
- t39 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoonIcon, {}) });
3939
+ t39 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", children: /* @__PURE__ */ jsxRuntime.jsx(ui.MoonIcon, {}) });
3878
3940
  $[42] = t39;
3879
3941
  } else {
3880
3942
  t39 = $[42];
@@ -3882,7 +3944,7 @@
3882
3944
  let t40;
3883
3945
  if ($[43] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3884
3946
  t40 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { children: [
3885
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoonIcon, { size: ui.iconSize.smallest }),
3947
+ /* @__PURE__ */ jsxRuntime.jsx(ui.MoonIcon, { size: ui.iconSize.smallest }),
3886
3948
  " Dark"
3887
3949
  ] });
3888
3950
  $[43] = t40;
@@ -3892,7 +3954,7 @@
3892
3954
  let t41;
3893
3955
  if ($[44] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3894
3956
  t41 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { children: [
3895
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunIcon, { size: ui.iconSize.smallest }),
3957
+ /* @__PURE__ */ jsxRuntime.jsx(ui.SunIcon, { size: ui.iconSize.smallest }),
3896
3958
  " Light"
3897
3959
  ] });
3898
3960
  $[44] = t41;
@@ -3905,7 +3967,7 @@
3905
3967
  t40,
3906
3968
  t41,
3907
3969
  /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { children: [
3908
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoonIcon, { size: ui.iconSize.smallest }),
3970
+ /* @__PURE__ */ jsxRuntime.jsx(ui.SunMoonIcon, { size: ui.iconSize.smallest }),
3909
3971
  " System"
3910
3972
  ] })
3911
3973
  ] });
@@ -3933,7 +3995,7 @@
3933
3995
  let t45;
3934
3996
  if ($[48] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3935
3997
  t45 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { children: [
3936
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SettingsIcon, {}),
3998
+ /* @__PURE__ */ jsxRuntime.jsx(ui.SettingsIcon, {}),
3937
3999
  " Account Settings"
3938
4000
  ] });
3939
4001
  $[48] = t45;
@@ -3953,7 +4015,7 @@
3953
4015
  t44,
3954
4016
  t45,
3955
4017
  /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { children: [
3956
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOutIcon, {}),
4018
+ /* @__PURE__ */ jsxRuntime.jsx(ui.LogOutIcon, {}),
3957
4019
  " Log Out"
3958
4020
  ] })
3959
4021
  ] })
@@ -4026,7 +4088,7 @@
4026
4088
  if ($[58] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4027
4089
  t55 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t53, children: [
4028
4090
  t54,
4029
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SettingsIcon, { size: ui.iconSize.smallest }) })
4091
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SettingsIcon, { size: ui.iconSize.smallest }) })
4030
4092
  ] });
4031
4093
  $[58] = t55;
4032
4094
  } else {
@@ -4081,7 +4143,7 @@
4081
4143
  if ($[64] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4082
4144
  t61 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
4083
4145
  t60,
4084
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", className: "ml-2 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}) })
4146
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", className: "ml-2 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}) })
4085
4147
  ] });
4086
4148
  $[64] = t61;
4087
4149
  } else {
@@ -4174,7 +4236,7 @@
4174
4236
  if ($[74] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4175
4237
  t71 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t69, children: [
4176
4238
  t70,
4177
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SettingsIcon, { size: ui.iconSize.smallest }) })
4239
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SettingsIcon, { size: ui.iconSize.smallest }) })
4178
4240
  ] });
4179
4241
  $[74] = t71;
4180
4242
  } else {
@@ -4237,7 +4299,7 @@
4237
4299
  if ($[82] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4238
4300
  t79 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t77, children: [
4239
4301
  t78,
4240
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SettingsIcon, { size: ui.iconSize.smallest }) })
4302
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SettingsIcon, { size: ui.iconSize.smallest }) })
4241
4303
  ] });
4242
4304
  $[82] = t79;
4243
4305
  } else {
@@ -4299,7 +4361,7 @@
4299
4361
  if ($[89] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4300
4362
  t86 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t84, children: [
4301
4363
  t85,
4302
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, { size: ui.iconSize.smallest }) })
4364
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, { size: ui.iconSize.smallest }) })
4303
4365
  ] });
4304
4366
  $[89] = t86;
4305
4367
  } else {
@@ -4424,7 +4486,7 @@
4424
4486
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: t96, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center h-full gap-4", children: [
4425
4487
  t97,
4426
4488
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { children: [
4427
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}),
4489
+ /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}),
4428
4490
  "Add new property"
4429
4491
  ] })
4430
4492
  ] }) })
@@ -4455,7 +4517,7 @@
4455
4517
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: t100, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center h-full gap-4", children: [
4456
4518
  t101,
4457
4519
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { children: [
4458
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}),
4520
+ /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}),
4459
4521
  "Add new property"
4460
4522
  ] })
4461
4523
  ] }) })
@@ -4489,7 +4551,7 @@
4489
4551
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: t104, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center h-full gap-4", children: [
4490
4552
  t105,
4491
4553
  /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { children: [
4492
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}),
4554
+ /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}),
4493
4555
  "Add new collection"
4494
4556
  ] })
4495
4557
  ] }) })
@@ -4615,7 +4677,7 @@
4615
4677
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-3 items-center", children: [
4616
4678
  t119,
4617
4679
  t121,
4618
- /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}) })
4680
+ /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}) })
4619
4681
  ] })
4620
4682
  ] });
4621
4683
  t123 = /* @__PURE__ */ jsxRuntime.jsx(ui.Typography, { variant: "caption", color: "secondary", className: "block mb-2 font-mono", children: "LoadingButton" });
@@ -4970,7 +5032,7 @@
4970
5032
  if ($[161] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
4971
5033
  t158 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center mt-12", children: [
4972
5034
  t157,
4973
- /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}), children: "Add user" })
5035
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}), children: "Add user" })
4974
5036
  ] });
4975
5037
  $[161] = t158;
4976
5038
  } else {
@@ -5164,7 +5226,7 @@
5164
5226
  if ($[178] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
5165
5227
  t175 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center mt-12", children: [
5166
5228
  t174,
5167
- /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlusIcon, {}), children: "Add role" })
5229
+ /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(ui.PlusIcon, {}), children: "Add role" })
5168
5230
  ] });
5169
5231
  $[178] = t175;
5170
5232
  } else {
@@ -5383,7 +5445,7 @@
5383
5445
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.TableRow, { children: [
5384
5446
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { style: {
5385
5447
  width: "64px"
5386
- }, children: !role_0.isAdmin && /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { asChild: true, title: "Delete this role", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2Icon, {}) }) }) }),
5448
+ }, children: !role_0.isAdmin && /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { asChild: true, title: "Delete this role", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Trash2Icon, {}) }) }) }),
5387
5449
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Chip, { colorScheme: role_0.isAdmin ? "purpleDark" : "blueDark", size: "small", children: role_0.name }) }),
5388
5450
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { className: "items-center", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Checkbox, { checked: role_0.isAdmin ?? false, disabled: true }) })
5389
5451
  ] }, role_0.id);
@@ -5398,7 +5460,7 @@
5398
5460
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.TableRow, { children: [
5399
5461
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { style: {
5400
5462
  width: "64px"
5401
- }, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { asChild: true, title: "Delete this user", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2Icon, {}) }) }) }),
5463
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { asChild: true, title: "Delete this user", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Trash2Icon, {}) }) }) }),
5402
5464
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { children: user.email }),
5403
5465
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { className: "font-medium", children: user.displayName }),
5404
5466
  /* @__PURE__ */ jsxRuntime.jsx(ui.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: user.roles.map(_temp27) }) })
@@ -5438,10 +5500,10 @@
5438
5500
  function _temp15() {
5439
5501
  }
5440
5502
  function _temp14(s_1) {
5441
- return /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: s_1, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2Icon, {}) }, s_1);
5503
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { size: s_1, children: /* @__PURE__ */ jsxRuntime.jsx(ui.Trash2Icon, {}) }, s_1);
5442
5504
  }
5443
5505
  function _temp13(c_1) {
5444
- return /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: c_1, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PencilIcon, {}) }, c_1);
5506
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: c_1, children: /* @__PURE__ */ jsxRuntime.jsx(ui.PencilIcon, {}) }, c_1);
5445
5507
  }
5446
5508
  function _temp12(s_0) {
5447
5509
  return /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: s_0, children: s_0 }, s_0);
@@ -5474,7 +5536,7 @@
5474
5536
  }
5475
5537
  function _temp0(c) {
5476
5538
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cls("flex items-center gap-3 px-3 py-2 cursor-pointer rounded-md text-sm transition-colors", c.selected ? "bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light" : "hover:bg-surface-100 dark:hover:bg-surface-950 text-text-secondary dark:text-text-secondary-dark"), children: [
5477
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FolderIcon, { size: ui.iconSize.small, className: ui.cls(c.selected ? "text-primary dark:text-primary-light" : "text-text-secondary dark:text-text-secondary-dark") }),
5539
+ /* @__PURE__ */ jsxRuntime.jsx(ui.FolderIcon, { size: ui.iconSize.small, className: ui.cls(c.selected ? "text-primary dark:text-primary-light" : "text-text-secondary dark:text-text-secondary-dark") }),
5478
5540
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate flex-1", children: c.name })
5479
5541
  ] }, c.name);
5480
5542
  }
@@ -5676,7 +5738,7 @@
5676
5738
  new Date(session.createdAt).toLocaleString()
5677
5739
  ] })
5678
5740
  ] }),
5679
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-4", children: revokingSessionId === session.id ? /* @__PURE__ */ jsxRuntime.jsx(ui.CircularProgress, { size: "small" }) : /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { onClick: () => handleRevokeSession(session.id, session.isCurrentSession), "aria-label": "Revoke Session", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2Icon, {}) }) })
5741
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-4", children: revokingSessionId === session.id ? /* @__PURE__ */ jsxRuntime.jsx(ui.CircularProgress, { size: "small" }) : /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { onClick: () => handleRevokeSession(session.id, session.isCurrentSession), "aria-label": "Revoke Session", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Trash2Icon, {}) }) })
5680
5742
  ] }, session.id))
5681
5743
  ] }) })
5682
5744
  ] });
@@ -5688,7 +5750,7 @@
5688
5750
  } = useTranslation();
5689
5751
  let t0;
5690
5752
  if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
5691
- t0 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Change language", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LanguagesIcon, { size: ui.iconSize.small }) });
5753
+ t0 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Change language", children: /* @__PURE__ */ jsxRuntime.jsx(ui.LanguagesIcon, { size: ui.iconSize.small }) });
5692
5754
  $[0] = t0;
5693
5755
  } else {
5694
5756
  t0 = $[0];
@@ -5712,7 +5774,7 @@
5712
5774
  }
5713
5775
  let t4;
5714
5776
  if ($[5] !== i18n.language) {
5715
- t4 = i18n.language === "en" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
5777
+ t4 = i18n.language === "en" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5716
5778
  $[5] = i18n.language;
5717
5779
  $[6] = t4;
5718
5780
  } else {
@@ -5758,7 +5820,7 @@
5758
5820
  }
5759
5821
  let t10;
5760
5822
  if ($[17] !== i18n.language) {
5761
- t10 = i18n.language === "es" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
5823
+ t10 = i18n.language === "es" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5762
5824
  $[17] = i18n.language;
5763
5825
  $[18] = t10;
5764
5826
  } else {
@@ -5804,7 +5866,7 @@
5804
5866
  }
5805
5867
  let t16;
5806
5868
  if ($[29] !== i18n.language) {
5807
- t16 = i18n.language === "de" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
5869
+ t16 = i18n.language === "de" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5808
5870
  $[29] = i18n.language;
5809
5871
  $[30] = t16;
5810
5872
  } else {
@@ -5850,7 +5912,7 @@
5850
5912
  }
5851
5913
  let t22;
5852
5914
  if ($[41] !== i18n.language) {
5853
- t22 = i18n.language === "fr" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
5915
+ t22 = i18n.language === "fr" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5854
5916
  $[41] = i18n.language;
5855
5917
  $[42] = t22;
5856
5918
  } else {
@@ -5896,7 +5958,7 @@
5896
5958
  }
5897
5959
  let t28;
5898
5960
  if ($[53] !== i18n.language) {
5899
- t28 = i18n.language === "it" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
5961
+ t28 = i18n.language === "it" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5900
5962
  $[53] = i18n.language;
5901
5963
  $[54] = t28;
5902
5964
  } else {
@@ -5942,7 +6004,7 @@
5942
6004
  }
5943
6005
  let t34;
5944
6006
  if ($[65] !== i18n.language) {
5945
- t34 = i18n.language === "hi" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
6007
+ t34 = i18n.language === "hi" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5946
6008
  $[65] = i18n.language;
5947
6009
  $[66] = t34;
5948
6010
  } else {
@@ -5988,7 +6050,7 @@
5988
6050
  }
5989
6051
  let t40;
5990
6052
  if ($[77] !== i18n.language) {
5991
- t40 = i18n.language === "pt" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { size: ui.iconSize.small });
6053
+ t40 = i18n.language === "pt" && /* @__PURE__ */ jsxRuntime.jsx(ui.CheckIcon, { size: ui.iconSize.small });
5992
6054
  $[77] = i18n.language;
5993
6055
  $[78] = t40;
5994
6056
  } else {
@@ -6170,7 +6232,7 @@
6170
6232
  }
6171
6233
  let t4;
6172
6234
  if ($[3] !== user.photoURL) {
6173
- t4 = user.photoURL ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: user.photoURL, alt: "", className: "w-7 h-7 rounded-full object-cover shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-7 h-7 rounded-full bg-surface-200 dark:bg-surface-700 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleUserIcon, { size: "smallest", className: "text-text-disabled dark:text-text-disabled-dark" }) });
6235
+ t4 = user.photoURL ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: user.photoURL, alt: "", className: "w-7 h-7 rounded-full object-cover shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-7 h-7 rounded-full bg-surface-200 dark:bg-surface-700 flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ui.CircleUserIcon, { size: "smallest", className: "text-text-disabled dark:text-text-disabled-dark" }) });
6174
6236
  $[3] = user.photoURL;
6175
6237
  $[4] = t4;
6176
6238
  } else {
@@ -6299,7 +6361,7 @@
6299
6361
  }
6300
6362
  let t2;
6301
6363
  if ($[2] !== user.displayName || $[3] !== user.email || $[4] !== user.photoURL) {
6302
- t2 = user.photoURL ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: user.photoURL, alt: user.displayName || user.email || "User", className: ui.cls("rounded-full object-cover", "w-6 h-6") }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleUserIcon, { className: ui.cls("text-text-secondary dark:text-text-secondary-dark", "w-6 h-6") });
6364
+ t2 = user.photoURL ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: user.photoURL, alt: user.displayName || user.email || "User", className: ui.cls("rounded-full object-cover", "w-6 h-6") }) : /* @__PURE__ */ jsxRuntime.jsx(ui.CircleUserIcon, { className: ui.cls("text-text-secondary dark:text-text-secondary-dark", "w-6 h-6") });
6303
6365
  $[2] = user.displayName;
6304
6366
  $[3] = user.email;
6305
6367
  $[4] = user.photoURL;
@@ -6359,7 +6421,7 @@
6359
6421
  return t8;
6360
6422
  }
6361
6423
  function LoginView(t0) {
6362
- const $ = reactCompilerRuntime.c(83);
6424
+ const $ = reactCompilerRuntime.c(87);
6363
6425
  const {
6364
6426
  logo,
6365
6427
  authController,
@@ -6367,7 +6429,6 @@
6367
6429
  disableSignupScreen: t1,
6368
6430
  disabled: t2,
6369
6431
  notAllowedError,
6370
- googleEnabled,
6371
6432
  googleClientId,
6372
6433
  needsSetup,
6373
6434
  registrationEnabled
@@ -6410,27 +6471,37 @@
6410
6471
  const caps = t4;
6411
6472
  const isBootstrapMode = needsSetup ?? ("needsSetup" in authController && !!authController.needsSetup) ?? false;
6412
6473
  const canRegister = registrationEnabled ?? caps.registration ?? false;
6413
- const hasGoogleLogin = googleEnabled ?? caps.googleLogin ?? false;
6474
+ let t5;
6475
+ if ($[3] !== caps.enabledProviders || $[4] !== caps.googleLogin || $[5] !== googleClientId) {
6476
+ t5 = googleClientId && (caps.enabledProviders?.includes("google") ?? caps.googleLogin ?? false);
6477
+ $[3] = caps.enabledProviders;
6478
+ $[4] = caps.googleLogin;
6479
+ $[5] = googleClientId;
6480
+ $[6] = t5;
6481
+ } else {
6482
+ t5 = $[6];
6483
+ }
6484
+ const hasGoogleLogin = t5;
6414
6485
  const hasPasswordReset = caps.passwordReset ?? !!authController.forgotPassword;
6415
6486
  const showRegistration = !disableSignupScreen && canRegister;
6416
- let t5;
6417
6487
  let t6;
6418
- if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6419
- t5 = () => {
6488
+ let t7;
6489
+ if ($[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6490
+ t6 = () => {
6420
6491
  const timer = setTimeout(() => setFadeIn(true), 50);
6421
6492
  return () => clearTimeout(timer);
6422
6493
  };
6423
- t6 = [];
6424
- $[3] = t5;
6425
- $[4] = t6;
6494
+ t7 = [];
6495
+ $[7] = t6;
6496
+ $[8] = t7;
6426
6497
  } else {
6427
- t5 = $[3];
6428
- t6 = $[4];
6498
+ t6 = $[7];
6499
+ t7 = $[8];
6429
6500
  }
6430
- React.useEffect(t5, t6);
6431
- let t7;
6432
- if ($[5] !== authController.authProviderError || $[6] !== authController.user) {
6433
- t7 = function buildErrorView2() {
6501
+ React.useEffect(t6, t7);
6502
+ let t8;
6503
+ if ($[9] !== authController.authProviderError || $[10] !== authController.user) {
6504
+ t8 = function buildErrorView2() {
6434
6505
  if (!authController.authProviderError) {
6435
6506
  return null;
6436
6507
  }
@@ -6440,44 +6511,44 @@
6440
6511
  const errorMsg = authController.authProviderError instanceof Error ? authController.authProviderError.message : String(authController.authProviderError);
6441
6512
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full", children: /* @__PURE__ */ jsxRuntime.jsx(ErrorView, { error: errorMsg }) });
6442
6513
  };
6443
- $[5] = authController.authProviderError;
6444
- $[6] = authController.user;
6445
- $[7] = t7;
6514
+ $[9] = authController.authProviderError;
6515
+ $[10] = authController.user;
6516
+ $[11] = t8;
6446
6517
  } else {
6447
- t7 = $[7];
6518
+ t8 = $[11];
6448
6519
  }
6449
- const buildErrorView = t7;
6520
+ const buildErrorView = t8;
6450
6521
  let logoComponent;
6451
6522
  if (logo) {
6452
- let t82;
6453
- if ($[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6454
- t82 = {
6523
+ let t92;
6524
+ if ($[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6525
+ t92 = {
6455
6526
  height: "100%",
6456
6527
  width: "100%",
6457
6528
  objectFit: "cover"
6458
6529
  };
6459
- $[8] = t82;
6530
+ $[12] = t92;
6460
6531
  } else {
6461
- t82 = $[8];
6532
+ t92 = $[12];
6462
6533
  }
6463
- let t92;
6464
- if ($[9] !== logo) {
6465
- t92 = /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, style: t82, alt: "Logo" });
6466
- $[9] = logo;
6467
- $[10] = t92;
6534
+ let t102;
6535
+ if ($[13] !== logo) {
6536
+ t102 = /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, style: t92, alt: "Logo" });
6537
+ $[13] = logo;
6538
+ $[14] = t102;
6468
6539
  } else {
6469
- t92 = $[10];
6540
+ t102 = $[14];
6470
6541
  }
6471
- logoComponent = t92;
6542
+ logoComponent = t102;
6472
6543
  } else {
6473
- let t82;
6474
- if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6475
- t82 = /* @__PURE__ */ jsxRuntime.jsx(RebaseLogo, {});
6476
- $[11] = t82;
6544
+ let t92;
6545
+ if ($[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6546
+ t92 = /* @__PURE__ */ jsxRuntime.jsx(RebaseLogo, {});
6547
+ $[15] = t92;
6477
6548
  } else {
6478
- t82 = $[11];
6549
+ t92 = $[15];
6479
6550
  }
6480
- logoComponent = t82;
6551
+ logoComponent = t92;
6481
6552
  }
6482
6553
  let notAllowedMessage;
6483
6554
  if (notAllowedError) {
@@ -6491,205 +6562,205 @@
6491
6562
  }
6492
6563
  }
6493
6564
  }
6494
- const t8 = fadeIn ? "opacity-100" : "opacity-0";
6495
- let t9;
6496
- if ($[12] !== t8) {
6497
- t9 = ui.cls("relative flex items-center justify-center h-screen w-screen p-4 transition-opacity duration-500 bg-white dark:bg-surface-900", t8);
6498
- $[12] = t8;
6499
- $[13] = t9;
6500
- } else {
6501
- t9 = $[13];
6502
- }
6565
+ const t9 = fadeIn ? "opacity-100" : "opacity-0";
6503
6566
  let t10;
6504
- if ($[14] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6505
- t10 = /* @__PURE__ */ jsxRuntime.jsx(LanguageToggle, {});
6506
- $[14] = t10;
6567
+ if ($[16] !== t9) {
6568
+ t10 = ui.cls("relative flex items-center justify-center h-screen w-screen p-4 transition-opacity duration-500 bg-surface-50 dark:bg-surface-800", t9);
6569
+ $[16] = t9;
6570
+ $[17] = t10;
6507
6571
  } else {
6508
- t10 = $[14];
6572
+ t10 = $[17];
6509
6573
  }
6510
6574
  let t11;
6511
- if ($[15] !== colorMode) {
6512
- t11 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Toggle theme", children: colorMode === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoonIcon, { size: ui.iconSize.small }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunIcon, { size: ui.iconSize.small }) });
6513
- $[15] = colorMode;
6514
- $[16] = t11;
6575
+ if ($[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6576
+ t11 = /* @__PURE__ */ jsxRuntime.jsx(LanguageToggle, {});
6577
+ $[18] = t11;
6515
6578
  } else {
6516
- t11 = $[16];
6579
+ t11 = $[18];
6517
6580
  }
6518
6581
  let t12;
6519
- if ($[17] !== setColorMode) {
6520
- t12 = () => setColorMode("dark");
6521
- $[17] = setColorMode;
6522
- $[18] = t12;
6582
+ if ($[19] !== colorMode) {
6583
+ t12 = /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { color: "inherit", "aria-label": "Toggle theme", children: colorMode === "dark" ? /* @__PURE__ */ jsxRuntime.jsx(ui.MoonIcon, { size: ui.iconSize.small }) : /* @__PURE__ */ jsxRuntime.jsx(ui.SunIcon, { size: ui.iconSize.small }) });
6584
+ $[19] = colorMode;
6585
+ $[20] = t12;
6523
6586
  } else {
6524
- t12 = $[18];
6587
+ t12 = $[20];
6525
6588
  }
6526
6589
  let t13;
6527
- if ($[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6528
- t13 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoonIcon, { size: ui.iconSize.smallest });
6529
- $[19] = t13;
6590
+ if ($[21] !== setColorMode) {
6591
+ t13 = () => setColorMode("dark");
6592
+ $[21] = setColorMode;
6593
+ $[22] = t13;
6530
6594
  } else {
6531
- t13 = $[19];
6595
+ t13 = $[22];
6532
6596
  }
6533
6597
  let t14;
6534
- if ($[20] !== t) {
6535
- t14 = t("dark_mode");
6536
- $[20] = t;
6537
- $[21] = t14;
6598
+ if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6599
+ t14 = /* @__PURE__ */ jsxRuntime.jsx(ui.MoonIcon, { size: ui.iconSize.smallest });
6600
+ $[23] = t14;
6538
6601
  } else {
6539
- t14 = $[21];
6602
+ t14 = $[23];
6540
6603
  }
6541
6604
  let t15;
6542
- if ($[22] !== t12 || $[23] !== t14) {
6543
- t15 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t12, children: [
6544
- t13,
6545
- " ",
6546
- t14
6547
- ] });
6548
- $[22] = t12;
6549
- $[23] = t14;
6550
- $[24] = t15;
6605
+ if ($[24] !== t) {
6606
+ t15 = t("dark_mode");
6607
+ $[24] = t;
6608
+ $[25] = t15;
6551
6609
  } else {
6552
- t15 = $[24];
6610
+ t15 = $[25];
6553
6611
  }
6554
6612
  let t16;
6555
- if ($[25] !== setColorMode) {
6556
- t16 = () => setColorMode("light");
6557
- $[25] = setColorMode;
6558
- $[26] = t16;
6613
+ if ($[26] !== t13 || $[27] !== t15) {
6614
+ t16 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t13, children: [
6615
+ t14,
6616
+ " ",
6617
+ t15
6618
+ ] });
6619
+ $[26] = t13;
6620
+ $[27] = t15;
6621
+ $[28] = t16;
6559
6622
  } else {
6560
- t16 = $[26];
6623
+ t16 = $[28];
6561
6624
  }
6562
6625
  let t17;
6563
- if ($[27] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6564
- t17 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunIcon, { size: ui.iconSize.smallest });
6565
- $[27] = t17;
6626
+ if ($[29] !== setColorMode) {
6627
+ t17 = () => setColorMode("light");
6628
+ $[29] = setColorMode;
6629
+ $[30] = t17;
6566
6630
  } else {
6567
- t17 = $[27];
6631
+ t17 = $[30];
6568
6632
  }
6569
6633
  let t18;
6570
- if ($[28] !== t) {
6571
- t18 = t("light_mode");
6572
- $[28] = t;
6573
- $[29] = t18;
6634
+ if ($[31] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6635
+ t18 = /* @__PURE__ */ jsxRuntime.jsx(ui.SunIcon, { size: ui.iconSize.smallest });
6636
+ $[31] = t18;
6574
6637
  } else {
6575
- t18 = $[29];
6638
+ t18 = $[31];
6576
6639
  }
6577
6640
  let t19;
6578
- if ($[30] !== t16 || $[31] !== t18) {
6579
- t19 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t16, children: [
6580
- t17,
6581
- " ",
6582
- t18
6583
- ] });
6584
- $[30] = t16;
6585
- $[31] = t18;
6586
- $[32] = t19;
6641
+ if ($[32] !== t) {
6642
+ t19 = t("light_mode");
6643
+ $[32] = t;
6644
+ $[33] = t19;
6587
6645
  } else {
6588
- t19 = $[32];
6646
+ t19 = $[33];
6589
6647
  }
6590
6648
  let t20;
6591
- if ($[33] !== setColorMode) {
6592
- t20 = () => setColorMode("system");
6593
- $[33] = setColorMode;
6594
- $[34] = t20;
6649
+ if ($[34] !== t17 || $[35] !== t19) {
6650
+ t20 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t17, children: [
6651
+ t18,
6652
+ " ",
6653
+ t19
6654
+ ] });
6655
+ $[34] = t17;
6656
+ $[35] = t19;
6657
+ $[36] = t20;
6595
6658
  } else {
6596
- t20 = $[34];
6659
+ t20 = $[36];
6597
6660
  }
6598
6661
  let t21;
6599
- if ($[35] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6600
- t21 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SunMoonIcon, { size: ui.iconSize.smallest });
6601
- $[35] = t21;
6662
+ if ($[37] !== setColorMode) {
6663
+ t21 = () => setColorMode("system");
6664
+ $[37] = setColorMode;
6665
+ $[38] = t21;
6602
6666
  } else {
6603
- t21 = $[35];
6667
+ t21 = $[38];
6604
6668
  }
6605
6669
  let t22;
6606
- if ($[36] !== t) {
6607
- t22 = t("system_mode");
6608
- $[36] = t;
6609
- $[37] = t22;
6670
+ if ($[39] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
6671
+ t22 = /* @__PURE__ */ jsxRuntime.jsx(ui.SunMoonIcon, { size: ui.iconSize.smallest });
6672
+ $[39] = t22;
6610
6673
  } else {
6611
- t22 = $[37];
6674
+ t22 = $[39];
6612
6675
  }
6613
6676
  let t23;
6614
- if ($[38] !== t20 || $[39] !== t22) {
6615
- t23 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t20, children: [
6616
- t21,
6617
- " ",
6618
- t22
6619
- ] });
6620
- $[38] = t20;
6621
- $[39] = t22;
6622
- $[40] = t23;
6677
+ if ($[40] !== t) {
6678
+ t23 = t("system_mode");
6679
+ $[40] = t;
6680
+ $[41] = t23;
6623
6681
  } else {
6624
- t23 = $[40];
6682
+ t23 = $[41];
6625
6683
  }
6626
6684
  let t24;
6627
- if ($[41] !== t11 || $[42] !== t15 || $[43] !== t19 || $[44] !== t23) {
6628
- t24 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-4 right-4 flex items-center gap-1 z-10", children: [
6629
- t10,
6630
- /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: t11, children: [
6631
- t15,
6632
- t19,
6633
- t23
6634
- ] })
6685
+ if ($[42] !== t21 || $[43] !== t23) {
6686
+ t24 = /* @__PURE__ */ jsxRuntime.jsxs(ui.MenuItem, { onClick: t21, children: [
6687
+ t22,
6688
+ " ",
6689
+ t23
6635
6690
  ] });
6636
- $[41] = t11;
6637
- $[42] = t15;
6638
- $[43] = t19;
6639
- $[44] = t23;
6640
- $[45] = t24;
6691
+ $[42] = t21;
6692
+ $[43] = t23;
6693
+ $[44] = t24;
6641
6694
  } else {
6642
- t24 = $[45];
6695
+ t24 = $[44];
6643
6696
  }
6644
6697
  let t25;
6645
- if ($[46] !== logoComponent) {
6646
- t25 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-32 h-32 m-2 mb-6", children: logoComponent });
6647
- $[46] = logoComponent;
6648
- $[47] = t25;
6698
+ if ($[45] !== t12 || $[46] !== t16 || $[47] !== t20 || $[48] !== t24) {
6699
+ t25 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-4 right-4 flex items-center gap-1 z-10", children: [
6700
+ t11,
6701
+ /* @__PURE__ */ jsxRuntime.jsxs(ui.Menu, { trigger: t12, children: [
6702
+ t16,
6703
+ t20,
6704
+ t24
6705
+ ] })
6706
+ ] });
6707
+ $[45] = t12;
6708
+ $[46] = t16;
6709
+ $[47] = t20;
6710
+ $[48] = t24;
6711
+ $[49] = t25;
6649
6712
  } else {
6650
- t25 = $[47];
6713
+ t25 = $[49];
6651
6714
  }
6652
6715
  let t26;
6653
- if ($[48] !== notAllowedMessage) {
6654
- t26 = notAllowedMessage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 w-full", children: /* @__PURE__ */ jsxRuntime.jsx(ErrorView, { error: notAllowedMessage }) });
6655
- $[48] = notAllowedMessage;
6656
- $[49] = t26;
6716
+ if ($[50] !== logoComponent) {
6717
+ t26 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-32 h-32 m-2 mb-6", children: logoComponent });
6718
+ $[50] = logoComponent;
6719
+ $[51] = t26;
6657
6720
  } else {
6658
- t26 = $[49];
6721
+ t26 = $[51];
6659
6722
  }
6660
6723
  let t27;
6661
- if ($[50] !== buildErrorView || $[51] !== mode) {
6662
- t27 = mode !== "forgot" && buildErrorView();
6663
- $[50] = buildErrorView;
6664
- $[51] = mode;
6665
- $[52] = t27;
6724
+ if ($[52] !== notAllowedMessage) {
6725
+ t27 = notAllowedMessage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 w-full", children: /* @__PURE__ */ jsxRuntime.jsx(ErrorView, { error: notAllowedMessage }) });
6726
+ $[52] = notAllowedMessage;
6727
+ $[53] = t27;
6666
6728
  } else {
6667
- t27 = $[52];
6729
+ t27 = $[53];
6668
6730
  }
6669
- const t28 = viewVisible ? "opacity-100" : "opacity-0";
6670
- let t29;
6671
- if ($[53] !== t28) {
6672
- t29 = ui.cls("w-full transition-opacity duration-150", t28);
6673
- $[53] = t28;
6674
- $[54] = t29;
6731
+ let t28;
6732
+ if ($[54] !== buildErrorView || $[55] !== mode) {
6733
+ t28 = mode !== "forgot" && buildErrorView();
6734
+ $[54] = buildErrorView;
6735
+ $[55] = mode;
6736
+ $[56] = t28;
6675
6737
  } else {
6676
- t29 = $[54];
6738
+ t28 = $[56];
6677
6739
  }
6740
+ const t29 = viewVisible ? "opacity-100" : "opacity-0";
6678
6741
  let t30;
6679
- if ($[55] !== authController || $[56] !== isBootstrapMode || $[57] !== noUserComponent) {
6680
- t30 = isBootstrapMode && !authController.user && /* @__PURE__ */ jsxRuntime.jsx(LoginForm, { authController, registrationMode: true, onClose: _temp, onForgotPassword: _temp2, noUserComponent, disableSignupScreen: false, bootstrapMode: true });
6681
- $[55] = authController;
6682
- $[56] = isBootstrapMode;
6683
- $[57] = noUserComponent;
6742
+ if ($[57] !== t29) {
6743
+ t30 = ui.cls("w-full transition-opacity duration-150", t29);
6744
+ $[57] = t29;
6684
6745
  $[58] = t30;
6685
6746
  } else {
6686
6747
  t30 = $[58];
6687
6748
  }
6688
6749
  let t31;
6689
- if ($[59] !== authController || $[60] !== disableSignupScreen || $[61] !== disabled || $[62] !== googleClientId || $[63] !== hasGoogleLogin || $[64] !== hasPasswordReset || $[65] !== isBootstrapMode || $[66] !== mode || $[67] !== noUserComponent || $[68] !== showRegistration) {
6690
- t31 = !isBootstrapMode && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6750
+ if ($[59] !== authController || $[60] !== isBootstrapMode || $[61] !== noUserComponent) {
6751
+ t31 = isBootstrapMode && !authController.user && /* @__PURE__ */ jsxRuntime.jsx(LoginForm, { authController, registrationMode: true, onClose: _temp, onForgotPassword: _temp2, noUserComponent, disableSignupScreen: false, bootstrapMode: true });
6752
+ $[59] = authController;
6753
+ $[60] = isBootstrapMode;
6754
+ $[61] = noUserComponent;
6755
+ $[62] = t31;
6756
+ } else {
6757
+ t31 = $[62];
6758
+ }
6759
+ let t32;
6760
+ if ($[63] !== authController || $[64] !== disableSignupScreen || $[65] !== disabled || $[66] !== googleClientId || $[67] !== hasGoogleLogin || $[68] !== hasPasswordReset || $[69] !== isBootstrapMode || $[70] !== mode || $[71] !== noUserComponent || $[72] !== showRegistration) {
6761
+ t32 = !isBootstrapMode && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6691
6762
  mode === "buttons" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col gap-3 mt-2", children: [
6692
- /* @__PURE__ */ jsxRuntime.jsx(LoginButton, { disabled, text: "Sign in with email", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MailIcon, {}), onClick: () => switchMode("login") }),
6763
+ /* @__PURE__ */ jsxRuntime.jsx(LoginButton, { disabled, text: "Sign in with email", icon: /* @__PURE__ */ jsxRuntime.jsx(ui.MailIcon, {}), onClick: () => switchMode("login") }),
6693
6764
  hasGoogleLogin && googleClientId && /* @__PURE__ */ jsxRuntime.jsx(GoogleLoginButton, { disabled, googleClientId, authController }),
6694
6765
  showRegistration && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Typography, { variant: "body2", color: "secondary", children: [
6695
6766
  "Don't have an account?",
@@ -6701,63 +6772,63 @@
6701
6772
  mode === "register" && /* @__PURE__ */ jsxRuntime.jsx(LoginForm, { authController, registrationMode: true, onClose: () => switchMode("buttons"), onForgotPassword: hasPasswordReset ? () => switchMode("forgot") : void 0, noUserComponent, disableSignupScreen, switchToLogin: () => switchMode("login") }),
6702
6773
  mode === "forgot" && authController.forgotPassword && /* @__PURE__ */ jsxRuntime.jsx(ForgotPasswordForm, { authController, onClose: () => switchMode("login") })
6703
6774
  ] });
6704
- $[59] = authController;
6705
- $[60] = disableSignupScreen;
6706
- $[61] = disabled;
6707
- $[62] = googleClientId;
6708
- $[63] = hasGoogleLogin;
6709
- $[64] = hasPasswordReset;
6710
- $[65] = isBootstrapMode;
6711
- $[66] = mode;
6712
- $[67] = noUserComponent;
6713
- $[68] = showRegistration;
6714
- $[69] = t31;
6715
- } else {
6716
- t31 = $[69];
6717
- }
6718
- let t32;
6719
- if ($[70] !== t29 || $[71] !== t30 || $[72] !== t31) {
6720
- t32 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t29, children: [
6721
- t30,
6722
- t31
6723
- ] });
6724
- $[70] = t29;
6725
- $[71] = t30;
6726
- $[72] = t31;
6775
+ $[63] = authController;
6776
+ $[64] = disableSignupScreen;
6777
+ $[65] = disabled;
6778
+ $[66] = googleClientId;
6779
+ $[67] = hasGoogleLogin;
6780
+ $[68] = hasPasswordReset;
6781
+ $[69] = isBootstrapMode;
6782
+ $[70] = mode;
6783
+ $[71] = noUserComponent;
6784
+ $[72] = showRegistration;
6727
6785
  $[73] = t32;
6728
6786
  } else {
6729
6787
  t32 = $[73];
6730
6788
  }
6731
6789
  let t33;
6732
- if ($[74] !== t25 || $[75] !== t26 || $[76] !== t27 || $[77] !== t32) {
6733
- t33 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center w-[480px] max-w-full p-8 sm:p-10", children: [
6734
- t25,
6735
- t26,
6736
- t27,
6790
+ if ($[74] !== t30 || $[75] !== t31 || $[76] !== t32) {
6791
+ t33 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t30, children: [
6792
+ t31,
6737
6793
  t32
6738
6794
  ] });
6739
- $[74] = t25;
6740
- $[75] = t26;
6741
- $[76] = t27;
6742
- $[77] = t32;
6743
- $[78] = t33;
6795
+ $[74] = t30;
6796
+ $[75] = t31;
6797
+ $[76] = t32;
6798
+ $[77] = t33;
6744
6799
  } else {
6745
- t33 = $[78];
6800
+ t33 = $[77];
6746
6801
  }
6747
6802
  let t34;
6748
- if ($[79] !== t24 || $[80] !== t33 || $[81] !== t9) {
6749
- t34 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t9, children: [
6750
- t24,
6803
+ if ($[78] !== t26 || $[79] !== t27 || $[80] !== t28 || $[81] !== t33) {
6804
+ t34 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center w-[480px] max-w-full p-8 sm:p-10", children: [
6805
+ t26,
6806
+ t27,
6807
+ t28,
6751
6808
  t33
6752
6809
  ] });
6753
- $[79] = t24;
6754
- $[80] = t33;
6755
- $[81] = t9;
6810
+ $[78] = t26;
6811
+ $[79] = t27;
6812
+ $[80] = t28;
6813
+ $[81] = t33;
6756
6814
  $[82] = t34;
6757
6815
  } else {
6758
6816
  t34 = $[82];
6759
6817
  }
6760
- return t34;
6818
+ let t35;
6819
+ if ($[83] !== t10 || $[84] !== t25 || $[85] !== t34) {
6820
+ t35 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t10, children: [
6821
+ t25,
6822
+ t34
6823
+ ] });
6824
+ $[83] = t10;
6825
+ $[84] = t25;
6826
+ $[85] = t34;
6827
+ $[86] = t35;
6828
+ } else {
6829
+ t35 = $[86];
6830
+ }
6831
+ return t35;
6761
6832
  }
6762
6833
  function _temp2() {
6763
6834
  }
@@ -6938,7 +7009,7 @@
6938
7009
  return;
6939
7010
  }
6940
7011
  const escFunction = (event) => {
6941
- if (event.keyCode === 27) {
7012
+ if (event.key === "Escape") {
6942
7013
  onClose();
6943
7014
  }
6944
7015
  };
@@ -7010,7 +7081,7 @@
7010
7081
  const buttonLabel = registrationMode ? "Create account" : "Sign in";
7011
7082
  let t7;
7012
7083
  if ($[16] !== bootstrapMode || $[17] !== onClose) {
7013
- t7 = !bootstrapMode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full mb-2 -ml-2.5", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {}) }) });
7084
+ t7 = !bootstrapMode && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full mb-2 -ml-2.5", children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconButton, { onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowLeftIcon, {}) }) });
7014
7085
  $[16] = bootstrapMode;
7015
7086
  $[17] = onClose;
7016
7087
  $[18] = t7;
@@ -7213,7 +7284,7 @@
7213
7284
  return;
7214
7285
  }
7215
7286
  const escFunction = (event) => {
7216
- if (event.keyCode === 27) {
7287
+ if (event.key === "Escape") {
7217
7288
  onClose();
7218
7289
  }
7219
7290
  };
@@ -7266,7 +7337,7 @@
7266
7337
  if (submitted) {
7267
7338
  let t42;
7268
7339
  if ($[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
7269
- t42 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {});
7340
+ t42 = /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowLeftIcon, {});
7270
7341
  $[6] = t42;
7271
7342
  } else {
7272
7343
  t42 = $[6];
@@ -7332,7 +7403,7 @@
7332
7403
  }
7333
7404
  let t4;
7334
7405
  if ($[19] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
7335
- t4 = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeftIcon, {});
7406
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(ui.ArrowLeftIcon, {});
7336
7407
  $[19] = t4;
7337
7408
  } else {
7338
7409
  t4 = $[19];
@@ -7520,6 +7591,8 @@
7520
7591
  copy: "Copy",
7521
7592
  delete: "Delete",
7522
7593
  delete_not_allowed: "You have selected at least one entity you cannot delete",
7594
+ edit_entity: "Edit",
7595
+ back_to_detail: "Back to details",
7523
7596
  // ─── Delete dialog ───────────────────────────────────────────
7524
7597
  delete_confirmation_title: "Delete?",
7525
7598
  delete_confirmation_body: "This will delete the entity. Are you sure?",
@@ -7878,6 +7951,10 @@
7878
7951
  submit: "Submit",
7879
7952
  no_filterable_properties: "No filterable properties available",
7880
7953
  apply_filters: "Apply filters",
7954
+ // ─── Filter Presets ──────────────────────────────────────────
7955
+ filter_presets: "Presets",
7956
+ filter_preset_apply: "Apply preset",
7957
+ filter_preset_active: "Active: {{label}}",
7881
7958
  list: "List",
7882
7959
  table_view_mode: "Table",
7883
7960
  cards: "Cards",
@@ -13809,12 +13886,13 @@
13809
13886
  return str.split(/[-_]/).map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join("");
13810
13887
  }
13811
13888
  function resolveIcon(iconKey) {
13812
- let icon = lucideReact.icons[iconKey];
13889
+ const iconsMap = ui.lucideIcons;
13890
+ let icon = iconsMap[iconKey];
13813
13891
  if (!icon) {
13814
- icon = lucideReact.icons[toPascalCase(iconKey)];
13892
+ icon = iconsMap[toPascalCase(iconKey)];
13815
13893
  }
13816
13894
  if (!icon) {
13817
- icon = lucideReact.icons.CircleAlert;
13895
+ icon = iconsMap.CircleAlert;
13818
13896
  }
13819
13897
  return icon ?? null;
13820
13898
  }
@@ -13826,7 +13904,7 @@
13826
13904
  if (typeof iconKey === "string") {
13827
13905
  const lowerKey = iconKey.toLowerCase();
13828
13906
  const slugifiedKey = utils.slugify(iconKey).replace(/-/g, "_");
13829
- let mappedKey = iconKeysMap[iconKey] || iconKeysMap[lowerKey] || iconKeysMap[slugifiedKey];
13907
+ const mappedKey = iconKeysMap[iconKey] || iconKeysMap[lowerKey] || iconKeysMap[slugifiedKey];
13830
13908
  if (!mappedKey) {
13831
13909
  return void 0;
13832
13910
  }
@@ -14773,9 +14851,9 @@
14773
14851
  slicesRef.current[key] = value;
14774
14852
  setVersion((v) => v + 1);
14775
14853
  }, []);
14776
- const unregister = React.useCallback((key) => {
14777
- delete slicesRef.current[key];
14778
- setVersion((v) => v + 1);
14854
+ const unregister = React.useCallback((key_0) => {
14855
+ delete slicesRef.current[key_0];
14856
+ setVersion((v_0) => v_0 + 1);
14779
14857
  }, []);
14780
14858
  const registry = React.useMemo(() => ({
14781
14859
  register,
@@ -14784,7 +14862,6 @@
14784
14862
  const bridgeValue = React.useMemo(() => ({
14785
14863
  ...NOOP_BRIDGE,
14786
14864
  ...slicesRef.current
14787
- // eslint-disable-next-line react-hooks/exhaustive-deps
14788
14865
  }), [version]);
14789
14866
  return /* @__PURE__ */ jsxRuntime.jsx(StudioBridgeRegistryContext.Provider, { value: registry, children: /* @__PURE__ */ jsxRuntime.jsx(StudioBridgeContext.Provider, { value: bridgeValue, children }) });
14790
14867
  }
@@ -14868,6 +14945,7 @@
14868
14945
  exports2.buildCollapsedDefaults = buildCollapsedDefaults;
14869
14946
  exports2.buildEnumLabel = buildEnumLabel;
14870
14947
  exports2.clearEntityCache = clearEntityCache;
14948
+ exports2.clearEntityFetchCache = clearEntityFetchCache;
14871
14949
  exports2.createFormexStub = createFormexStub;
14872
14950
  exports2.deleteEntityWithCallbacks = deleteEntityWithCallbacks;
14873
14951
  exports2.en = en;