linked-data-browser 0.0.8-alpha.6 → 0.0.8-alpha.8

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-lib/index.js CHANGED
@@ -82,6 +82,11 @@ __export(index_exports, {
82
82
  CopyLink: () => CopyLink,
83
83
  DataBrowser: () => DataBrowser,
84
84
  DataBrowserConfigContext: () => DataBrowserConfigContext,
85
+ DefaultContainerContent: () => DefaultContainerContent,
86
+ DefaultContainerLayout: () => DefaultContainerLayout,
87
+ DefaultContainerResourceItem: () => DefaultContainerResourceItem,
88
+ DefaultContainerSideMenu: () => DefaultContainerSideMenu,
89
+ DefaultContainerView: () => DefaultContainerView,
85
90
  Dialog: () => Dialog,
86
91
  DialogClose: () => DialogClose,
87
92
  DialogContent: () => DialogContent,
@@ -231,25 +236,9 @@ __export(index_exports, {
231
236
  });
232
237
  module.exports = __toCommonJS(index_exports);
233
238
 
234
- // components/solidFetchConfig.ts
235
- var import_react_native = require("react-native");
236
- var import_solid_client_authn_browser = require("@inrupt/solid-client-authn-browser");
237
- var import_solid_react = require("@ldo/solid-react");
238
- function createSolidFetch() {
239
- const baseFetch = import_solid_client_authn_browser.fetch;
240
- return async (input, init) => {
241
- if (import_react_native.Platform.OS !== "web" && init?.body instanceof Blob) {
242
- const arrayBuffer = await init.body.arrayBuffer();
243
- return baseFetch(input, { ...init, body: arrayBuffer });
244
- }
245
- return baseFetch(input, init);
246
- };
247
- }
248
- import_solid_react.dataset.setContext("solid", { fetch: createSolidFetch() });
249
-
250
239
  // components/DataBrowser.tsx
251
240
  var import_react32 = require("react");
252
- var import_solid_react10 = require("@ldo/solid-react");
241
+ var import_solid_react9 = require("@ldo/solid-react");
253
242
  var import_react33 = __toESM(require("react"));
254
243
 
255
244
  // components/nav/Layout.tsx
@@ -257,25 +246,24 @@ var import_react31 = __toESM(require("react"));
257
246
 
258
247
  // components/nav/header/Header.tsx
259
248
  var import_react29 = __toESM(require("react"));
260
- var import_solid_react8 = require("@ldo/solid-react");
261
- var import_react_native37 = require("react-native");
262
- var import_native19 = require("@react-navigation/native");
249
+ var import_solid_react7 = require("@ldo/solid-react");
250
+ var import_react_native36 = require("react-native");
263
251
 
264
252
  // components/nav/header/AddressBox.tsx
265
253
  var import_react6 = __toESM(require("react"));
266
254
  var import_react7 = require("react");
267
- var import_react_native7 = require("react-native");
255
+ var import_react_native6 = require("react-native");
268
256
 
269
257
  // components/ui/input.tsx
270
258
  var React4 = __toESM(require("react"));
271
- var import_react_native5 = require("react-native");
259
+ var import_react_native4 = require("react-native");
272
260
  var import_native3 = require("@react-navigation/native");
273
261
 
274
262
  // components/ui/text.tsx
275
263
  var import_native = require("@react-navigation/native");
276
264
  var Slot = __toESM(require("@rn-primitives/slot"));
277
265
  var import_react = __toESM(require("react"));
278
- var import_react_native2 = require("react-native");
266
+ var import_react_native = require("react-native");
279
267
  var TextStyleContext = (0, import_react.createContext)(
280
268
  void 0
281
269
  );
@@ -415,7 +403,7 @@ function Text2({
415
403
  bold,
416
404
  ...props
417
405
  }) {
418
- const Component = asChild ? Slot.Text : import_react_native2.Text;
406
+ const Component = asChild ? Slot.Text : import_react_native.Text;
419
407
  const textStyles2 = useTextStyles({
420
408
  variant,
421
409
  size,
@@ -432,7 +420,7 @@ function Text2({
432
420
  }
433
421
  );
434
422
  }
435
- var styles = import_react_native2.StyleSheet.create({
423
+ var styles = import_react_native.StyleSheet.create({
436
424
  base: {
437
425
  fontSize: 16
438
426
  // text-base
@@ -478,22 +466,22 @@ var styles = import_react_native2.StyleSheet.create({
478
466
 
479
467
  // components/ui/button.tsx
480
468
  var React3 = __toESM(require("react"));
481
- var import_react_native4 = require("react-native");
469
+ var import_react_native3 = require("react-native");
482
470
  var import_react_native_progress = require("react-native-progress");
483
471
  var import_native2 = require("@react-navigation/native");
484
472
 
485
473
  // components/ui/icon.tsx
486
474
  var import_react2 = __toESM(require("react"));
487
- var import_react_native3 = require("react-native");
475
+ var import_react_native2 = require("react-native");
488
476
  var Icon = ({
489
477
  icon,
490
478
  ...textStyleProps
491
479
  }) => {
492
480
  const textStyles2 = useTextStyles(textStyleProps);
493
481
  const IconComponent = icon;
494
- const iconStyle = import_react_native3.StyleSheet.flatten(textStyles2);
482
+ const iconStyle = import_react_native2.StyleSheet.flatten(textStyles2);
495
483
  const { fontSize, color, ...restStyles } = iconStyle;
496
- return /* @__PURE__ */ import_react2.default.createElement(import_react_native3.View, { style: restStyles }, /* @__PURE__ */ import_react2.default.createElement(IconComponent, { size: fontSize, color }));
484
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_native2.View, { style: restStyles }, /* @__PURE__ */ import_react2.default.createElement(IconComponent, { size: fontSize, color }));
497
485
  };
498
486
 
499
487
  // components/ui/button.tsx
@@ -508,9 +496,9 @@ var getButtonStyles = (style, variant = "default", size = "default", isPressed =
508
496
  };
509
497
  const sizeStyles = {
510
498
  default: {
511
- height: import_react_native4.Platform.OS === "web" ? 40 : 48,
512
- paddingHorizontal: import_react_native4.Platform.OS === "web" ? 16 : 20,
513
- paddingVertical: import_react_native4.Platform.OS === "web" ? 8 : 12
499
+ height: import_react_native3.Platform.OS === "web" ? 40 : 48,
500
+ paddingHorizontal: import_react_native3.Platform.OS === "web" ? 16 : 20,
501
+ paddingVertical: import_react_native3.Platform.OS === "web" ? 8 : 12
514
502
  },
515
503
  sm: {
516
504
  height: 36,
@@ -518,7 +506,7 @@ var getButtonStyles = (style, variant = "default", size = "default", isPressed =
518
506
  paddingHorizontal: 12
519
507
  },
520
508
  lg: {
521
- height: import_react_native4.Platform.OS === "web" ? 44 : 56,
509
+ height: import_react_native3.Platform.OS === "web" ? 44 : 56,
522
510
  borderRadius: 6,
523
511
  paddingHorizontal: 32
524
512
  },
@@ -553,7 +541,7 @@ var getButtonStyles = (style, variant = "default", size = "default", isPressed =
553
541
  textDecorationLine: isPressed || isHovered ? "underline" : "none"
554
542
  }
555
543
  };
556
- return import_react_native4.StyleSheet.flatten([
544
+ return import_react_native3.StyleSheet.flatten([
557
545
  baseStyles,
558
546
  sizeStyles[size],
559
547
  variantStyles[variant],
@@ -562,7 +550,7 @@ var getButtonStyles = (style, variant = "default", size = "default", isPressed =
562
550
  };
563
551
  var getButtonTextStyles = (variant = "default", size = "default", isPressed = false, theme) => {
564
552
  const baseStyles = {
565
- fontSize: import_react_native4.Platform.OS === "web" ? 14 : 16,
553
+ fontSize: import_react_native3.Platform.OS === "web" ? 14 : 16,
566
554
  fontWeight: "500",
567
555
  color: theme.colors.text
568
556
  };
@@ -570,7 +558,7 @@ var getButtonTextStyles = (variant = "default", size = "default", isPressed = fa
570
558
  default: {},
571
559
  sm: {},
572
560
  lg: {
573
- fontSize: import_react_native4.Platform.OS === "web" ? 14 : 18
561
+ fontSize: import_react_native3.Platform.OS === "web" ? 14 : 18
574
562
  },
575
563
  icon: {}
576
564
  };
@@ -620,7 +608,7 @@ function Button({
620
608
  const iconRightStyle = { marginLeft: children ? 8 : 0 };
621
609
  const loadColor = !variant || variant === "default" ? theme.colors.background : theme.colors.primary;
622
610
  return /* @__PURE__ */ React3.createElement(
623
- import_react_native4.Pressable,
611
+ import_react_native3.Pressable,
624
612
  {
625
613
  ref,
626
614
  role: "button",
@@ -644,7 +632,7 @@ function Button({
644
632
  theme
645
633
  );
646
634
  const finalTextStyles = textStyle ? { ...buttonTextStyles, ...textStyle } : buttonTextStyles;
647
- return /* @__PURE__ */ React3.createElement(TextStyleProvider, { style: finalTextStyles }, isLoading ? /* @__PURE__ */ React3.createElement(import_react_native4.View, null, /* @__PURE__ */ React3.createElement(import_react_native_progress.CircleSnail, { size: 20, color: loadColor })) : iconLeft ? /* @__PURE__ */ React3.createElement(import_react_native4.View, { style: iconLeftStyle }, /* @__PURE__ */ React3.createElement(Icon, { icon: iconLeft })) : void 0, text ? /* @__PURE__ */ React3.createElement(Text2, null, text) : children, iconRight ? /* @__PURE__ */ React3.createElement(import_react_native4.View, { style: iconRightStyle }, /* @__PURE__ */ React3.createElement(Icon, { icon: iconRight })) : void 0);
635
+ return /* @__PURE__ */ React3.createElement(TextStyleProvider, { style: finalTextStyles }, isLoading ? /* @__PURE__ */ React3.createElement(import_react_native3.View, null, /* @__PURE__ */ React3.createElement(import_react_native_progress.CircleSnail, { size: 20, color: loadColor })) : iconLeft ? /* @__PURE__ */ React3.createElement(import_react_native3.View, { style: iconLeftStyle }, /* @__PURE__ */ React3.createElement(Icon, { icon: iconLeft })) : void 0, text ? /* @__PURE__ */ React3.createElement(Text2, null, text) : children, iconRight ? /* @__PURE__ */ React3.createElement(import_react_native3.View, { style: iconRightStyle }, /* @__PURE__ */ React3.createElement(Icon, { icon: iconRight })) : void 0);
648
636
  }
649
637
  );
650
638
  }
@@ -677,7 +665,7 @@ function Input({
677
665
  style
678
666
  ];
679
667
  let textInput = /* @__PURE__ */ React4.createElement(
680
- import_react_native5.TextInput,
668
+ import_react_native4.TextInput,
681
669
  {
682
670
  style: inputStyle,
683
671
  placeholderTextColor: theme.colors.text.replace(")", " / 0.6)"),
@@ -685,14 +673,14 @@ function Input({
685
673
  }
686
674
  );
687
675
  if (buttonRight) {
688
- textInput = /* @__PURE__ */ React4.createElement(import_react_native5.View, { style: inputStyles.container }, textInput, /* @__PURE__ */ React4.createElement(Button, { ...buttonRight, style: [inputStyles.buttonRadius] }));
676
+ textInput = /* @__PURE__ */ React4.createElement(import_react_native4.View, { style: inputStyles.container }, textInput, /* @__PURE__ */ React4.createElement(Button, { ...buttonRight, style: [inputStyles.buttonRadius] }));
689
677
  }
690
678
  if (label) {
691
- textInput = /* @__PURE__ */ React4.createElement(import_react_native5.View, { style: inputStyles.labelContainer }, /* @__PURE__ */ React4.createElement(Text2, { variant: "label" }, label), textInput);
679
+ textInput = /* @__PURE__ */ React4.createElement(import_react_native4.View, { style: inputStyles.labelContainer }, /* @__PURE__ */ React4.createElement(Text2, { variant: "label" }, label), textInput);
692
680
  }
693
681
  return textInput;
694
682
  }
695
- var inputBaseStyles = import_react_native5.StyleSheet.create({
683
+ var inputBaseStyles = import_react_native4.StyleSheet.create({
696
684
  base: {
697
685
  height: 40,
698
686
  borderRadius: 8,
@@ -701,10 +689,10 @@ var inputBaseStyles = import_react_native5.StyleSheet.create({
701
689
  paddingVertical: 8,
702
690
  fontSize: 16,
703
691
  // Platform specific adjustments
704
- ...import_react_native5.Platform.OS === "web" && {
692
+ ...import_react_native4.Platform.OS === "web" && {
705
693
  width: "100%"
706
694
  },
707
- ...import_react_native5.Platform.OS !== "web" && {
695
+ ...import_react_native4.Platform.OS !== "web" && {
708
696
  height: 48,
709
697
  // native:h-12
710
698
  fontSize: 18,
@@ -715,7 +703,7 @@ var inputBaseStyles = import_react_native5.StyleSheet.create({
715
703
  },
716
704
  disabled: {
717
705
  opacity: 0.5,
718
- ...import_react_native5.Platform.OS === "web" && {
706
+ ...import_react_native4.Platform.OS === "web" && {
719
707
  cursor: "not-allowed"
720
708
  }
721
709
  },
@@ -763,8 +751,8 @@ function useDataBrowserConfig() {
763
751
  }
764
752
 
765
753
  // components/TargetResourceProvider.tsx
766
- var import_solid_react2 = require("@ldo/solid-react");
767
- var import_react_native6 = require("react-native");
754
+ var import_solid_react = require("@ldo/solid-react");
755
+ var import_react_native5 = require("react-native");
768
756
  var TargetResourceContext = (0, import_react5.createContext)({});
769
757
  function useTargetResource() {
770
758
  return (0, import_react5.useContext)(TargetResourceContext);
@@ -773,15 +761,15 @@ var TargetResourceProvider = ({
773
761
  children
774
762
  }) => {
775
763
  const { mode, origin } = useDataBrowserConfig();
776
- const { ranInitialAuthCheck } = (0, import_solid_react2.useSolidAuth)();
764
+ const { ranInitialAuthCheck } = (0, import_solid_react.useSolidAuth)();
777
765
  const [currentUrl, setCurrentUrl] = (0, import_react4.useState)(() => {
778
- return import_react_native6.Platform.OS === "web" ? new URL(window.location.href) : new URL("");
766
+ return import_react_native5.Platform.OS === "web" ? new URL(window.location.href) : new URL("");
779
767
  });
780
768
  const handleUrlChange = (0, import_react4.useCallback)(() => {
781
769
  setCurrentUrl(new URL(window.location.href));
782
770
  }, []);
783
771
  (0, import_react4.useEffect)(() => {
784
- if (import_react_native6.Platform.OS === "web") {
772
+ if (import_react_native5.Platform.OS === "web") {
785
773
  window.addEventListener("popstate", handleUrlChange);
786
774
  const originalPushState = history.pushState;
787
775
  const originalReplaceState = history.replaceState;
@@ -810,7 +798,7 @@ var TargetResourceProvider = ({
810
798
  finalUrl = `${origin}?uri=${encodeURIComponent(newRoute)}`;
811
799
  }
812
800
  setCurrentUrl(new URL(finalUrl));
813
- if (import_react_native6.Platform.OS === "web") {
801
+ if (import_react_native5.Platform.OS === "web") {
814
802
  window.history.pushState(null, "", finalUrl);
815
803
  }
816
804
  },
@@ -829,7 +817,7 @@ var TargetResourceProvider = ({
829
817
  return /* @__PURE__ */ import_react4.default.createElement(TargetResourceLoader, { targetUri, navigateTo }, children);
830
818
  };
831
819
  var TargetResourceLoader = ({ targetUri, navigateTo, children }) => {
832
- const targetResource = (0, import_solid_react2.useResource)(targetUri);
820
+ const targetResource = (0, import_solid_react.useResource)(targetUri);
833
821
  const refresh = (0, import_react4.useCallback)(async () => {
834
822
  if (targetResource) {
835
823
  await targetResource?.read();
@@ -882,7 +870,7 @@ var AddressBox = () => {
882
870
  return [];
883
871
  }
884
872
  }, [targetUri]);
885
- return /* @__PURE__ */ import_react6.default.createElement(import_react_native7.View, { style: styles2.container }, /* @__PURE__ */ import_react6.default.createElement(
873
+ return /* @__PURE__ */ import_react6.default.createElement(import_react_native6.View, { style: styles2.container }, /* @__PURE__ */ import_react6.default.createElement(
886
874
  Input,
887
875
  {
888
876
  style: [styles2.input, { backgroundColor: colors.border }],
@@ -906,14 +894,14 @@ var AddressBox = () => {
906
894
  textStyle: styles2.buttonText
907
895
  }
908
896
  ), /* @__PURE__ */ import_react6.default.createElement(
909
- import_react_native7.ScrollView,
897
+ import_react_native6.ScrollView,
910
898
  {
911
899
  style: styles2.breadcrumbContainer,
912
900
  contentContainerStyle: styles2.breadcrumbContentContainer,
913
901
  pointerEvents: "none",
914
902
  horizontal: true
915
903
  },
916
- !isTextMode && breadcrumbInfo.map((item, index) => /* @__PURE__ */ import_react6.default.createElement(import_react_native7.View, { style: styles2.breadcrumbItem, key: item.uri }, /* @__PURE__ */ import_react6.default.createElement(import_react_native7.TouchableOpacity, { onPress: () => navigateTo(item.uri) }, /* @__PURE__ */ import_react6.default.createElement(import_react_native7.View, { pointerEvents: "auto" }, /* @__PURE__ */ import_react6.default.createElement(Text2, { style: styles2.breadcrumbText, size: "sm" }, item.name))), index !== breadcrumbInfo.length - 1 ? /* @__PURE__ */ import_react6.default.createElement(Icon, { icon: import_lucide_react_native.ChevronRight, style: styles2.chevron }) : /* @__PURE__ */ import_react6.default.createElement(import_react_native7.View, { style: styles2.spacer })))
904
+ !isTextMode && breadcrumbInfo.map((item, index) => /* @__PURE__ */ import_react6.default.createElement(import_react_native6.View, { style: styles2.breadcrumbItem, key: item.uri }, /* @__PURE__ */ import_react6.default.createElement(import_react_native6.TouchableOpacity, { onPress: () => navigateTo(item.uri) }, /* @__PURE__ */ import_react6.default.createElement(import_react_native6.View, { pointerEvents: "auto" }, /* @__PURE__ */ import_react6.default.createElement(Text2, { style: styles2.breadcrumbText, size: "sm" }, item.name))), index !== breadcrumbInfo.length - 1 ? /* @__PURE__ */ import_react6.default.createElement(Icon, { icon: import_lucide_react_native.ChevronRight, style: styles2.chevron }) : /* @__PURE__ */ import_react6.default.createElement(import_react_native6.View, { style: styles2.spacer })))
917
905
  ), (() => {
918
906
  const shouldRefresh = targetUri === textBoxValue || !isTextMode;
919
907
  return /* @__PURE__ */ import_react6.default.createElement(
@@ -934,7 +922,7 @@ var AddressBox = () => {
934
922
  );
935
923
  })());
936
924
  };
937
- var styles2 = import_react_native7.StyleSheet.create({
925
+ var styles2 = import_react_native6.StyleSheet.create({
938
926
  container: {
939
927
  flex: 1,
940
928
  height: 40
@@ -993,9 +981,9 @@ var styles2 = import_react_native7.StyleSheet.create({
993
981
  });
994
982
 
995
983
  // components/nav/header/AvatarMenu.tsx
996
- var import_solid_react3 = require("@ldo/solid-react");
984
+ var import_solid_react2 = require("@ldo/solid-react");
997
985
  var import_react12 = __toESM(require("react"));
998
- var import_react_native14 = require("react-native");
986
+ var import_react_native13 = require("react-native");
999
987
 
1000
988
  // .ldo/profile.schema.ts
1001
989
  var profileSchema = {
@@ -2200,17 +2188,17 @@ var SolidProfileShapeType = {
2200
2188
 
2201
2189
  // components/nav/header/ThemeToggleMenu.tsx
2202
2190
  var import_react10 = __toESM(require("react"));
2203
- var import_react_native12 = require("react-native");
2191
+ var import_react_native11 = require("react-native");
2204
2192
  var import_lucide_react_native10 = require("lucide-react-native");
2205
2193
  var import_lucide_react_native11 = require("lucide-react-native");
2206
2194
 
2207
2195
  // components/ui/switch.tsx
2208
2196
  var SwitchPrimitives = __toESM(require("@rn-primitives/switch"));
2209
2197
  var React7 = __toESM(require("react"));
2210
- var import_react_native8 = require("react-native");
2198
+ var import_react_native7 = require("react-native");
2211
2199
  var import_react_native_reanimated = __toESM(require("react-native-reanimated"));
2212
2200
  var import_native5 = require("@react-navigation/native");
2213
- var styles3 = import_react_native8.StyleSheet.create({
2201
+ var styles3 = import_react_native7.StyleSheet.create({
2214
2202
  switchRoot: {
2215
2203
  flexDirection: "row",
2216
2204
  height: 24,
@@ -2266,14 +2254,14 @@ function SwitchWeb({
2266
2254
  ...props
2267
2255
  }) {
2268
2256
  const { colors } = (0, import_native5.useTheme)();
2269
- const rootStyle = import_react_native8.StyleSheet.flatten([
2257
+ const rootStyle = import_react_native7.StyleSheet.flatten([
2270
2258
  styles3.switchRoot,
2271
2259
  {
2272
2260
  backgroundColor: props.checked ? colors.primary : colors.border
2273
2261
  },
2274
2262
  props.disabled && styles3.switchRootDisabled
2275
2263
  ]);
2276
- const thumbStyle = import_react_native8.StyleSheet.flatten([
2264
+ const thumbStyle = import_react_native7.StyleSheet.flatten([
2277
2265
  styles3.switchThumb,
2278
2266
  props.checked ? styles3.switchThumbChecked : styles3.switchThumbUnchecked
2279
2267
  ]);
@@ -2298,19 +2286,19 @@ function SwitchNative({
2298
2286
  { translateX: (0, import_react_native_reanimated.withTiming)(translateX.value, { duration: 200 }) }
2299
2287
  ]
2300
2288
  }));
2301
- const containerStyle = import_react_native8.StyleSheet.flatten([
2289
+ const containerStyle = import_react_native7.StyleSheet.flatten([
2302
2290
  styles3.switchNativeRoot,
2303
2291
  props.disabled && styles3.switchRootDisabled
2304
2292
  ]);
2305
2293
  return /* @__PURE__ */ React7.createElement(
2306
2294
  import_react_native_reanimated.default.View,
2307
2295
  {
2308
- style: import_react_native8.StyleSheet.flatten([animatedRootStyle, containerStyle])
2296
+ style: import_react_native7.StyleSheet.flatten([animatedRootStyle, containerStyle])
2309
2297
  },
2310
2298
  /* @__PURE__ */ React7.createElement(SwitchPrimitives.Root, { style: styles3.switchNativeRoot, ...props }, /* @__PURE__ */ React7.createElement(import_react_native_reanimated.default.View, { style: animatedThumbStyle }, /* @__PURE__ */ React7.createElement(SwitchPrimitives.Thumb, { style: styles3.switchNativeThumb })))
2311
2299
  );
2312
2300
  }
2313
- var Switch = import_react_native8.Platform.select({
2301
+ var Switch = import_react_native7.Platform.select({
2314
2302
  web: SwitchWeb,
2315
2303
  default: SwitchNative
2316
2304
  });
@@ -2318,12 +2306,42 @@ var Switch = import_react_native8.Platform.select({
2318
2306
  // components/ui/dropdown-menu.tsx
2319
2307
  var DropdownMenuPrimitive = __toESM(require("@rn-primitives/dropdown-menu"));
2320
2308
  var React8 = __toESM(require("react"));
2321
- var import_react_native9 = require("react-native");
2309
+ var import_react_native8 = require("react-native");
2322
2310
  var import_lucide_react_native6 = require("lucide-react-native");
2323
2311
  var import_lucide_react_native7 = require("lucide-react-native");
2324
2312
  var import_lucide_react_native8 = require("lucide-react-native");
2325
2313
  var import_lucide_react_native9 = require("lucide-react-native");
2326
2314
  var import_native6 = require("@react-navigation/native");
2315
+ var DROPDOWN_ANIMATION_CSS = `
2316
+ @keyframes dropdown-in {
2317
+ from { opacity: 0; transform: scaleY(0) translateY(-8px); }
2318
+ to { opacity: 1; transform: scaleY(1) translateY(0); }
2319
+ }
2320
+ @keyframes dropdown-out {
2321
+ from { opacity: 1; transform: scaleY(1) translateY(0); }
2322
+ to { opacity: 0; transform: scaleY(0) translateY(-8px); }
2323
+ }
2324
+ [role="menu"] {
2325
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
2326
+ }
2327
+ [role="menu"][data-state="open"] {
2328
+ animation: dropdown-in 200ms cubic-bezier(0.16, 1, 0.3, 1);
2329
+ }
2330
+ [role="menu"][data-state="closed"] {
2331
+ animation: dropdown-out 150ms ease-in;
2332
+ }
2333
+ `;
2334
+ function useDropdownAnimation() {
2335
+ React8.useEffect(() => {
2336
+ if (import_react_native8.Platform.OS !== "web") return;
2337
+ const id = "rnp-dropdown-menu-animations";
2338
+ if (document.getElementById(id)) return;
2339
+ const el = document.createElement("style");
2340
+ el.id = id;
2341
+ el.textContent = DROPDOWN_ANIMATION_CSS;
2342
+ document.head.appendChild(el);
2343
+ }, []);
2344
+ }
2327
2345
  var DropdownMenu = DropdownMenuPrimitive.Root;
2328
2346
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
2329
2347
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -2338,19 +2356,19 @@ function DropdownMenuSubTrigger({
2338
2356
  }) {
2339
2357
  const theme = (0, import_native6.useTheme)();
2340
2358
  const { open } = DropdownMenuPrimitive.useSubContext();
2341
- const SubIcon = import_react_native9.Platform.OS === "web" ? import_lucide_react_native8.ChevronRight : open ? import_lucide_react_native9.ChevronUp : import_lucide_react_native7.ChevronDown;
2359
+ const SubIcon = import_react_native8.Platform.OS === "web" ? import_lucide_react_native8.ChevronRight : open ? import_lucide_react_native9.ChevronUp : import_lucide_react_native7.ChevronDown;
2342
2360
  return /* @__PURE__ */ React8.createElement(
2343
2361
  TextStyleProvider,
2344
2362
  {
2345
- style: import_react_native9.StyleSheet.flatten([
2363
+ style: import_react_native8.StyleSheet.flatten([
2346
2364
  styles4.subTriggerText,
2347
2365
  { color: theme.colors.text }
2348
2366
  ])
2349
2367
  },
2350
2368
  /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.SubTrigger, { asChild: true, ...props }, /* @__PURE__ */ React8.createElement(
2351
- import_react_native9.Pressable,
2369
+ import_react_native8.Pressable,
2352
2370
  {
2353
- style: ({ pressed, hovered }) => import_react_native9.StyleSheet.flatten([
2371
+ style: ({ pressed, hovered }) => import_react_native8.StyleSheet.flatten([
2354
2372
  styles4.subTrigger,
2355
2373
  open && { backgroundColor: theme.colors.border },
2356
2374
  (pressed || hovered) && { backgroundColor: theme.colors.border },
@@ -2391,18 +2409,19 @@ function DropdownMenuContent({
2391
2409
  ...props
2392
2410
  }) {
2393
2411
  const theme = (0, import_native6.useTheme)();
2412
+ useDropdownAnimation();
2394
2413
  return /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ React8.createElement(
2395
2414
  DropdownMenuPrimitive.Overlay,
2396
2415
  {
2397
- style: overlayStyle ? import_react_native9.StyleSheet.flatten([
2398
- import_react_native9.Platform.OS !== "web" ? import_react_native9.StyleSheet.absoluteFill : void 0,
2416
+ style: overlayStyle ? import_react_native8.StyleSheet.flatten([
2417
+ import_react_native8.Platform.OS !== "web" ? import_react_native8.StyleSheet.absoluteFill : void 0,
2399
2418
  overlayStyle
2400
- ]) : import_react_native9.Platform.OS !== "web" ? import_react_native9.StyleSheet.absoluteFill : void 0
2419
+ ]) : import_react_native8.Platform.OS !== "web" ? import_react_native8.StyleSheet.absoluteFill : void 0
2401
2420
  },
2402
2421
  /* @__PURE__ */ React8.createElement(
2403
2422
  DropdownMenuPrimitive.Content,
2404
2423
  {
2405
- style: import_react_native9.StyleSheet.flatten([
2424
+ style: import_react_native8.StyleSheet.flatten([
2406
2425
  styles4.content,
2407
2426
  {
2408
2427
  borderColor: theme.colors.border,
@@ -2423,10 +2442,10 @@ function DropdownMenuItem({
2423
2442
  ...props
2424
2443
  }) {
2425
2444
  const theme = (0, import_native6.useTheme)();
2426
- return /* @__PURE__ */ React8.createElement(TextStyleProvider, { style: { color: theme.colors.text } }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.Item, { asChild: true, ...props }, /* @__PURE__ */ React8.createElement(
2427
- import_react_native9.Pressable,
2445
+ return /* @__PURE__ */ React8.createElement(TextStyleProvider, { size: "sm", style: { color: theme.colors.text } }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.Item, { asChild: true, ...props }, /* @__PURE__ */ React8.createElement(
2446
+ import_react_native8.Pressable,
2428
2447
  {
2429
- style: ({ pressed, hovered }) => import_react_native9.StyleSheet.flatten([
2448
+ style: ({ pressed, hovered }) => import_react_native8.StyleSheet.flatten([
2430
2449
  styles4.item,
2431
2450
  inset && styles4.itemInset,
2432
2451
  props.disabled && styles4.itemDisabled,
@@ -2445,16 +2464,16 @@ function DropdownMenuCheckboxItem({
2445
2464
  }) {
2446
2465
  const theme = (0, import_native6.useTheme)();
2447
2466
  return /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.CheckboxItem, { asChild: true, checked, ...props }, /* @__PURE__ */ React8.createElement(
2448
- import_react_native9.Pressable,
2467
+ import_react_native8.Pressable,
2449
2468
  {
2450
- style: ({ pressed, hovered }) => import_react_native9.StyleSheet.flatten([
2469
+ style: ({ pressed, hovered }) => import_react_native8.StyleSheet.flatten([
2451
2470
  styles4.checkboxItem,
2452
2471
  props.disabled && styles4.checkboxItemDisabled,
2453
2472
  (pressed || hovered) && { backgroundColor: theme.colors.border },
2454
2473
  style
2455
2474
  ])
2456
2475
  },
2457
- /* @__PURE__ */ React8.createElement(import_react_native9.View, { style: styles4.checkboxIndicator }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React8.createElement(import_lucide_react_native6.Check, { size: 14, strokeWidth: 3, color: theme.colors.text }))),
2476
+ /* @__PURE__ */ React8.createElement(import_react_native8.View, { style: styles4.checkboxIndicator }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React8.createElement(import_lucide_react_native6.Check, { size: 14, strokeWidth: 3, color: theme.colors.text }))),
2458
2477
  children
2459
2478
  ));
2460
2479
  }
@@ -2465,17 +2484,17 @@ function DropdownMenuRadioItem({
2465
2484
  }) {
2466
2485
  const theme = (0, import_native6.useTheme)();
2467
2486
  return /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.RadioItem, { asChild: true, ...props }, /* @__PURE__ */ React8.createElement(
2468
- import_react_native9.Pressable,
2487
+ import_react_native8.Pressable,
2469
2488
  {
2470
- style: ({ pressed, hovered }) => import_react_native9.StyleSheet.flatten([
2489
+ style: ({ pressed, hovered }) => import_react_native8.StyleSheet.flatten([
2471
2490
  styles4.radioItem,
2472
2491
  props.disabled && styles4.radioItemDisabled,
2473
2492
  (pressed || hovered) && { backgroundColor: theme.colors.border },
2474
2493
  style
2475
2494
  ])
2476
2495
  },
2477
- /* @__PURE__ */ React8.createElement(import_react_native9.View, { style: styles4.radioIndicator }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React8.createElement(
2478
- import_react_native9.View,
2496
+ /* @__PURE__ */ React8.createElement(import_react_native8.View, { style: styles4.radioIndicator }, /* @__PURE__ */ React8.createElement(DropdownMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React8.createElement(
2497
+ import_react_native8.View,
2479
2498
  {
2480
2499
  style: [styles4.radioDot, { backgroundColor: theme.colors.text }]
2481
2500
  }
@@ -2492,7 +2511,7 @@ function DropdownMenuLabel({
2492
2511
  return /* @__PURE__ */ React8.createElement(
2493
2512
  DropdownMenuPrimitive.Label,
2494
2513
  {
2495
- style: import_react_native9.StyleSheet.flatten([
2514
+ style: import_react_native8.StyleSheet.flatten([
2496
2515
  styles4.label,
2497
2516
  { color: theme.colors.text },
2498
2517
  inset && styles4.labelInset,
@@ -2510,7 +2529,7 @@ function DropdownMenuSeparator({
2510
2529
  return /* @__PURE__ */ React8.createElement(
2511
2530
  DropdownMenuPrimitive.Separator,
2512
2531
  {
2513
- style: import_react_native9.StyleSheet.flatten([
2532
+ style: import_react_native8.StyleSheet.flatten([
2514
2533
  styles4.separator,
2515
2534
  { backgroundColor: theme.colors.border },
2516
2535
  style
@@ -2522,7 +2541,7 @@ function DropdownMenuSeparator({
2522
2541
  function DropdownMenuShortcut({ style, ...props }) {
2523
2542
  const theme = (0, import_native6.useTheme)();
2524
2543
  return /* @__PURE__ */ React8.createElement(
2525
- import_react_native9.Text,
2544
+ import_react_native8.Text,
2526
2545
  {
2527
2546
  style: [
2528
2547
  styles4.shortcut,
@@ -2534,10 +2553,10 @@ function DropdownMenuShortcut({ style, ...props }) {
2534
2553
  }
2535
2554
  );
2536
2555
  }
2537
- var styles4 = import_react_native9.StyleSheet.create({
2556
+ var styles4 = import_react_native8.StyleSheet.create({
2538
2557
  // SubTrigger styles
2539
2558
  subTriggerText: {
2540
- fontSize: import_react_native9.Platform.OS === "web" ? 14 : 18
2559
+ fontSize: import_react_native8.Platform.OS === "web" ? 14 : 18
2541
2560
  // text-sm native:text-lg
2542
2561
  },
2543
2562
  subTriggerTextOpen: {
@@ -2550,7 +2569,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2550
2569
  // gap-2
2551
2570
  paddingHorizontal: 8,
2552
2571
  // px-2
2553
- paddingVertical: import_react_native9.Platform.OS === "web" ? 6 : 8,
2572
+ paddingVertical: import_react_native8.Platform.OS === "web" ? 6 : 8,
2554
2573
  // py-1.5 native:py-2
2555
2574
  borderRadius: 2
2556
2575
  // rounded-sm
@@ -2581,11 +2600,10 @@ var styles4 = import_react_native9.StyleSheet.create({
2581
2600
  // mt-1
2582
2601
  padding: 4,
2583
2602
  // p-1
2584
- shadowOffset: { width: 0, height: 1 },
2585
- shadowOpacity: 0.05,
2586
- // shadow-foreground/5
2587
- shadowRadius: 2,
2588
- elevation: 2
2603
+ shadowOffset: { width: 0, height: 4 },
2604
+ shadowOpacity: 0.12,
2605
+ shadowRadius: 8,
2606
+ elevation: 8
2589
2607
  // Android shadow
2590
2608
  // Border color, background color, and shadow color applied at render time
2591
2609
  },
@@ -2601,11 +2619,10 @@ var styles4 = import_react_native9.StyleSheet.create({
2601
2619
  borderWidth: 1,
2602
2620
  padding: 4,
2603
2621
  // p-1
2604
- shadowOffset: { width: 0, height: 1 },
2605
- shadowOpacity: 0.05,
2606
- // shadow-foreground/5
2607
- shadowRadius: 2,
2608
- elevation: 2
2622
+ shadowOffset: { width: 0, height: 4 },
2623
+ shadowOpacity: 0.12,
2624
+ shadowRadius: 8,
2625
+ elevation: 8
2609
2626
  // Android shadow
2610
2627
  // Border color, background color, and shadow color applied at render time
2611
2628
  },
@@ -2619,7 +2636,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2619
2636
  // rounded-sm
2620
2637
  paddingHorizontal: 8,
2621
2638
  // px-2
2622
- paddingVertical: import_react_native9.Platform.OS === "web" ? 6 : 8
2639
+ paddingVertical: import_react_native8.Platform.OS === "web" ? 6 : 8
2623
2640
  // py-1.5 native:py-2
2624
2641
  },
2625
2642
  itemInset: {
@@ -2637,7 +2654,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2637
2654
  alignItems: "center",
2638
2655
  borderRadius: 2,
2639
2656
  // rounded-sm
2640
- paddingVertical: import_react_native9.Platform.OS === "web" ? 6 : 8,
2657
+ paddingVertical: import_react_native8.Platform.OS === "web" ? 6 : 8,
2641
2658
  // py-1.5 native:py-2
2642
2659
  paddingLeft: 32,
2643
2660
  // pl-8
@@ -2669,7 +2686,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2669
2686
  alignItems: "center",
2670
2687
  borderRadius: 2,
2671
2688
  // rounded-sm
2672
- paddingVertical: import_react_native9.Platform.OS === "web" ? 6 : 8,
2689
+ paddingVertical: import_react_native8.Platform.OS === "web" ? 6 : 8,
2673
2690
  // py-1.5 native:py-2
2674
2691
  paddingLeft: 32,
2675
2692
  // pl-8
@@ -2706,7 +2723,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2706
2723
  // px-2
2707
2724
  paddingVertical: 6,
2708
2725
  // py-1.5
2709
- fontSize: import_react_native9.Platform.OS === "web" ? 14 : 16,
2726
+ fontSize: import_react_native8.Platform.OS === "web" ? 14 : 16,
2710
2727
  // text-sm native:text-base
2711
2728
  fontWeight: "600"
2712
2729
  // font-semibold
@@ -2729,7 +2746,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2729
2746
  // Shortcut styles
2730
2747
  shortcut: {
2731
2748
  marginLeft: "auto",
2732
- fontSize: import_react_native9.Platform.OS === "web" ? 12 : 14,
2749
+ fontSize: import_react_native8.Platform.OS === "web" ? 12 : 14,
2733
2750
  // text-xs native:text-sm
2734
2751
  letterSpacing: 0.1
2735
2752
  // tracking-widest
@@ -2741,7 +2758,7 @@ var styles4 = import_react_native9.StyleSheet.create({
2741
2758
  var import_react8 = __toESM(require("react"));
2742
2759
  var import_async_storage = __toESM(require("@react-native-async-storage/async-storage"));
2743
2760
  var import_react9 = require("react");
2744
- var import_react_native11 = require("react-native");
2761
+ var import_react_native10 = require("react-native");
2745
2762
  var import_native7 = require("@react-navigation/native");
2746
2763
 
2747
2764
  // lib/constants.ts
@@ -2749,7 +2766,7 @@ var NAV_THEME = {
2749
2766
  light: {
2750
2767
  background: "hsl(0 0% 99%)",
2751
2768
  border: "hsl(220 13% 91%)",
2752
- card: "hsl(0 0% 100%)",
2769
+ card: "hsl(220 14% 96%)",
2753
2770
  notification: "hsl(0 72% 51%)",
2754
2771
  primary: "hsl(220 70% 45%)",
2755
2772
  text: "hsl(220 15% 12%)"
@@ -2757,7 +2774,7 @@ var NAV_THEME = {
2757
2774
  dark: {
2758
2775
  background: "hsl(222 18% 8%)",
2759
2776
  border: "hsl(217 18% 18%)",
2760
- card: "hsl(222 18% 10%)",
2777
+ card: "hsl(222 18% 14%)",
2761
2778
  notification: "hsl(0 62% 50%)",
2762
2779
  primary: "hsl(217 91% 60%)",
2763
2780
  text: "hsl(210 20% 96%)"
@@ -2766,9 +2783,9 @@ var NAV_THEME = {
2766
2783
 
2767
2784
  // lib/android-navigation-bar.ts
2768
2785
  var NavigationBar = __toESM(require("expo-navigation-bar"));
2769
- var import_react_native10 = require("react-native");
2786
+ var import_react_native9 = require("react-native");
2770
2787
  async function setAndroidNavigationBar(theme) {
2771
- if (import_react_native10.Platform.OS !== "android") return;
2788
+ if (import_react_native9.Platform.OS !== "android") return;
2772
2789
  await NavigationBar.setButtonStyleAsync(theme === "dark" ? "light" : "dark");
2773
2790
  await NavigationBar.setBackgroundColorAsync(
2774
2791
  theme === "dark" ? NAV_THEME.dark.background : NAV_THEME.light.background
@@ -2794,7 +2811,7 @@ var ThemeProviderContext = (0, import_react9.createContext)({
2794
2811
  function useThemeChange() {
2795
2812
  return (0, import_react9.useContext)(ThemeProviderContext);
2796
2813
  }
2797
- var usePlatformSpecificSetup = import_react_native11.Platform.select({
2814
+ var usePlatformSpecificSetup = import_react_native10.Platform.select({
2798
2815
  android: useSetAndroidNavigationBar,
2799
2816
  default: noop
2800
2817
  });
@@ -2808,8 +2825,8 @@ var ThemeProvider = ({
2808
2825
  useSetWebBackgroundClassName(resolvedScheme);
2809
2826
  (0, import_react8.useEffect)(() => {
2810
2827
  const lookupCurColorScheme = async () => {
2811
- setColorScheme(import_react_native11.Appearance.getColorScheme() ?? "light");
2812
- const storedColorSchemeName = await import_async_storage.default.getItem(COLOR_SCHEME_KEY) || import_react_native11.Appearance.getColorScheme();
2828
+ setColorScheme(import_react_native10.Appearance.getColorScheme() ?? "light");
2829
+ const storedColorSchemeName = await import_async_storage.default.getItem(COLOR_SCHEME_KEY) || import_react_native10.Appearance.getColorScheme();
2813
2830
  if (storedColorSchemeName) {
2814
2831
  setColorScheme(storedColorSchemeName);
2815
2832
  }
@@ -2836,10 +2853,10 @@ var ThemeProvider = ({
2836
2853
  /* @__PURE__ */ import_react8.default.createElement(ThemeProviderContext.Provider, { value: context }, children)
2837
2854
  ));
2838
2855
  };
2839
- var useIsomorphicLayoutEffect = import_react_native11.Platform.OS === "web" && typeof window === "undefined" ? import_react8.default.useEffect : import_react8.default.useLayoutEffect;
2856
+ var useIsomorphicLayoutEffect = import_react_native10.Platform.OS === "web" && typeof window === "undefined" ? import_react8.default.useEffect : import_react8.default.useLayoutEffect;
2840
2857
  function useSetWebBackgroundClassName(colorScheme) {
2841
2858
  useIsomorphicLayoutEffect(() => {
2842
- if (import_react_native11.Platform.OS !== "web" || typeof document === "undefined") return;
2859
+ if (import_react_native10.Platform.OS !== "web" || typeof document === "undefined") return;
2843
2860
  const el = document.documentElement;
2844
2861
  el.classList.add("bg-background");
2845
2862
  if (colorScheme === "dark") {
@@ -2854,7 +2871,7 @@ function useSetWebBackgroundClassName(colorScheme) {
2854
2871
  }
2855
2872
  function useSetAndroidNavigationBar() {
2856
2873
  import_react8.default.useLayoutEffect(() => {
2857
- setAndroidNavigationBar(import_react_native11.Appearance.getColorScheme() ?? "light");
2874
+ setAndroidNavigationBar(import_react_native10.Appearance.getColorScheme() ?? "light");
2858
2875
  }, []);
2859
2876
  }
2860
2877
  function noop() {
@@ -2872,7 +2889,7 @@ var ThemeToggleMenu = () => {
2872
2889
  style: styles5.dropdownMenuItem,
2873
2890
  closeOnPress: false
2874
2891
  },
2875
- /* @__PURE__ */ import_react10.default.createElement(import_react_native12.View, { style: styles5.textContainer }, /* @__PURE__ */ import_react10.default.createElement(Icon, { icon: colorScheme === "dark" ? import_lucide_react_native10.MoonStar : import_lucide_react_native11.Sun }), /* @__PURE__ */ import_react10.default.createElement(Text2, null, "Dark Mode")),
2892
+ /* @__PURE__ */ import_react10.default.createElement(import_react_native11.View, { style: styles5.textContainer }, /* @__PURE__ */ import_react10.default.createElement(Icon, { icon: colorScheme === "dark" ? import_lucide_react_native10.MoonStar : import_lucide_react_native11.Sun }), /* @__PURE__ */ import_react10.default.createElement(Text2, null, "Dark Mode")),
2876
2893
  /* @__PURE__ */ import_react10.default.createElement(
2877
2894
  Switch,
2878
2895
  {
@@ -2884,7 +2901,7 @@ var ThemeToggleMenu = () => {
2884
2901
  )
2885
2902
  );
2886
2903
  };
2887
- var styles5 = import_react_native12.StyleSheet.create({
2904
+ var styles5 = import_react_native11.StyleSheet.create({
2888
2905
  dropdownMenuItem: {
2889
2906
  justifyContent: "space-between"
2890
2907
  },
@@ -2905,7 +2922,7 @@ var import_react11 = __toESM(require("react"));
2905
2922
  var import_native8 = require("@react-navigation/native");
2906
2923
  var AvatarPrimitive = __toESM(require("@rn-primitives/avatar"));
2907
2924
  var React11 = __toESM(require("react"));
2908
- var import_react_native13 = require("react-native");
2925
+ var import_react_native12 = require("react-native");
2909
2926
  function Avatar({
2910
2927
  style,
2911
2928
  ...props
@@ -2913,7 +2930,7 @@ function Avatar({
2913
2930
  return /* @__PURE__ */ React11.createElement(
2914
2931
  AvatarPrimitive.Root,
2915
2932
  {
2916
- style: import_react_native13.StyleSheet.flatten([styles6.avatar, style]),
2933
+ style: import_react_native12.StyleSheet.flatten([styles6.avatar, style]),
2917
2934
  ...props
2918
2935
  }
2919
2936
  );
@@ -2925,7 +2942,7 @@ function AvatarImage({
2925
2942
  return /* @__PURE__ */ React11.createElement(
2926
2943
  AvatarPrimitive.Image,
2927
2944
  {
2928
- style: import_react_native13.StyleSheet.flatten([styles6.image, style]),
2945
+ style: import_react_native12.StyleSheet.flatten([styles6.image, style]),
2929
2946
  ...props
2930
2947
  }
2931
2948
  );
@@ -2938,7 +2955,7 @@ function AvatarFallback({
2938
2955
  return /* @__PURE__ */ React11.createElement(
2939
2956
  AvatarPrimitive.Fallback,
2940
2957
  {
2941
- style: import_react_native13.StyleSheet.flatten([
2958
+ style: import_react_native12.StyleSheet.flatten([
2942
2959
  styles6.fallback,
2943
2960
  { backgroundColor: colors.border },
2944
2961
  style
@@ -2947,7 +2964,7 @@ function AvatarFallback({
2947
2964
  }
2948
2965
  );
2949
2966
  }
2950
- var styles6 = import_react_native13.StyleSheet.create({
2967
+ var styles6 = import_react_native12.StyleSheet.create({
2951
2968
  avatar: {
2952
2969
  position: "relative",
2953
2970
  flexDirection: "row",
@@ -2981,21 +2998,21 @@ var ProfileAvatar = ({
2981
2998
 
2982
2999
  // components/nav/header/AvatarMenu.tsx
2983
3000
  var AvatarMenu = () => {
2984
- const { session, logout } = (0, import_solid_react3.useSolidAuth)();
2985
- const webIdResource = (0, import_solid_react3.useResource)(session.webId);
2986
- const profile = (0, import_solid_react3.useSubject)(SolidProfileShapeType, session.webId);
3001
+ const { session, logout } = (0, import_solid_react2.useSolidAuth)();
3002
+ const webIdResource = (0, import_solid_react2.useResource)(session.webId);
3003
+ const profile = (0, import_solid_react2.useSubject)(SolidProfileShapeType, session.webId);
2987
3004
  const { navigateTo } = useTargetResource();
2988
3005
  if (!session.webId) return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null);
2989
- return /* @__PURE__ */ import_react12.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react12.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react12.default.createElement(Button, { key: "setMemu", variant: "ghost", style: styles7.button }, /* @__PURE__ */ import_react12.default.createElement(ProfileAvatar, { profile }))), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuContent, { style: styles7.dropdownContent }, /* @__PURE__ */ import_react12.default.createElement(import_react_native14.View, { style: styles7.profileContainer }, /* @__PURE__ */ import_react12.default.createElement(ProfileAvatar, { profile, style: styles7.profileAvatar }), /* @__PURE__ */ import_react12.default.createElement(import_react_native14.View, { style: styles7.profileInfo }, /* @__PURE__ */ import_react12.default.createElement(Text2, null, profile?.fn || ""), /* @__PURE__ */ import_react12.default.createElement(
3006
+ return /* @__PURE__ */ import_react12.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react12.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react12.default.createElement(Button, { key: "setMemu", variant: "ghost", style: styles7.button }, /* @__PURE__ */ import_react12.default.createElement(ProfileAvatar, { profile }))), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuContent, { style: styles7.dropdownContent }, /* @__PURE__ */ import_react12.default.createElement(import_react_native13.View, { style: styles7.profileContainer }, /* @__PURE__ */ import_react12.default.createElement(ProfileAvatar, { profile, style: styles7.profileAvatar }), /* @__PURE__ */ import_react12.default.createElement(import_react_native13.View, { style: styles7.profileInfo }, /* @__PURE__ */ import_react12.default.createElement(Text2, null, profile?.fn || ""), /* @__PURE__ */ import_react12.default.createElement(
2990
3007
  Button,
2991
3008
  {
2992
3009
  size: "sm",
2993
3010
  onPress: () => navigateTo(session.webId ?? ""),
2994
3011
  text: "Edit your profile"
2995
3012
  }
2996
- ))), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuSeparator, null), /* @__PURE__ */ import_react12.default.createElement(ThemeToggleMenu, null), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuSeparator, null), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuItem, { onPress: logout }, /* @__PURE__ */ import_react12.default.createElement(import_react_native14.View, { style: styles7.logoutText }, /* @__PURE__ */ import_react12.default.createElement(Icon, { icon: import_lucide_react_native13.LogOut }), /* @__PURE__ */ import_react12.default.createElement(Text2, null, "Log Out")))));
3013
+ ))), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuSeparator, null), /* @__PURE__ */ import_react12.default.createElement(ThemeToggleMenu, null), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuSeparator, null), /* @__PURE__ */ import_react12.default.createElement(DropdownMenuItem, { onPress: logout }, /* @__PURE__ */ import_react12.default.createElement(import_react_native13.View, { style: styles7.logoutText }, /* @__PURE__ */ import_react12.default.createElement(Icon, { icon: import_lucide_react_native13.LogOut }), /* @__PURE__ */ import_react12.default.createElement(Text2, null, "Log Out")))));
2997
3014
  };
2998
- var styles7 = import_react_native14.StyleSheet.create({
3015
+ var styles7 = import_react_native13.StyleSheet.create({
2999
3016
  button: {
3000
3017
  width: 40
3001
3018
  },
@@ -3026,15 +3043,15 @@ var styles7 = import_react_native14.StyleSheet.create({
3026
3043
  });
3027
3044
 
3028
3045
  // components/nav/header/SignInMenu.tsx
3029
- var import_solid_react4 = require("@ldo/solid-react");
3046
+ var import_solid_react3 = require("@ldo/solid-react");
3030
3047
  var import_react13 = __toESM(require("react"));
3031
- var import_react_native16 = require("react-native");
3048
+ var import_react_native15 = require("react-native");
3032
3049
  var import_lucide_react_native15 = require("lucide-react-native");
3033
3050
 
3034
3051
  // components/ui/dialog.tsx
3035
3052
  var DialogPrimitive = __toESM(require("@rn-primitives/dialog"));
3036
3053
  var React14 = __toESM(require("react"));
3037
- var import_react_native15 = require("react-native");
3054
+ var import_react_native14 = require("react-native");
3038
3055
  var import_react_native_reanimated2 = __toESM(require("react-native-reanimated"));
3039
3056
  var import_lucide_react_native14 = require("lucide-react-native");
3040
3057
  var import_native9 = require("@react-navigation/native");
@@ -3049,7 +3066,7 @@ function DialogOverlayWeb({
3049
3066
  return /* @__PURE__ */ React14.createElement(
3050
3067
  DialogPrimitive.Overlay,
3051
3068
  {
3052
- style: import_react_native15.StyleSheet.flatten([styles8.overlay, style]),
3069
+ style: import_react_native14.StyleSheet.flatten([styles8.overlay, style]),
3053
3070
  ...props
3054
3071
  }
3055
3072
  );
@@ -3062,7 +3079,7 @@ function DialogOverlayNative({
3062
3079
  return /* @__PURE__ */ React14.createElement(
3063
3080
  DialogPrimitive.Overlay,
3064
3081
  {
3065
- style: [import_react_native15.StyleSheet.absoluteFill, styles8.overlayNative, style],
3082
+ style: [import_react_native14.StyleSheet.absoluteFill, styles8.overlayNative, style],
3066
3083
  ...props
3067
3084
  },
3068
3085
  /* @__PURE__ */ React14.createElement(
@@ -3075,7 +3092,7 @@ function DialogOverlayNative({
3075
3092
  )
3076
3093
  );
3077
3094
  }
3078
- var DialogOverlay = import_react_native15.Platform.select({
3095
+ var DialogOverlay = import_react_native14.Platform.select({
3079
3096
  web: DialogOverlayWeb,
3080
3097
  default: DialogOverlayNative
3081
3098
  });
@@ -3089,7 +3106,7 @@ function DialogContent({
3089
3106
  return /* @__PURE__ */ React14.createElement(DialogPortal, { hostName: portalHost }, /* @__PURE__ */ React14.createElement(DialogOverlay, null, /* @__PURE__ */ React14.createElement(
3090
3107
  DialogPrimitive.Content,
3091
3108
  {
3092
- style: import_react_native15.StyleSheet.flatten([
3109
+ style: import_react_native14.StyleSheet.flatten([
3093
3110
  styles8.content,
3094
3111
  { borderColor: colors.border, backgroundColor: colors.background },
3095
3112
  style
@@ -3097,19 +3114,19 @@ function DialogContent({
3097
3114
  ...props
3098
3115
  },
3099
3116
  children,
3100
- /* @__PURE__ */ React14.createElement(DialogPrimitive.Close, { style: styles8.closeButton }, /* @__PURE__ */ React14.createElement(import_lucide_react_native14.X, { size: import_react_native15.Platform.OS === "web" ? 16 : 18, color: colors.text }))
3117
+ /* @__PURE__ */ React14.createElement(DialogPrimitive.Close, { style: styles8.closeButton }, /* @__PURE__ */ React14.createElement(import_lucide_react_native14.X, { size: import_react_native14.Platform.OS === "web" ? 16 : 18, color: colors.text }))
3101
3118
  )));
3102
3119
  }
3103
3120
  function DialogHeader({ style, ...props }) {
3104
- return /* @__PURE__ */ React14.createElement(import_react_native15.View, { style: import_react_native15.StyleSheet.flatten([styles8.header, style]), ...props });
3121
+ return /* @__PURE__ */ React14.createElement(import_react_native14.View, { style: import_react_native14.StyleSheet.flatten([styles8.header, style]), ...props });
3105
3122
  }
3106
3123
  function DialogFooter({ style, ...props }) {
3107
3124
  return /* @__PURE__ */ React14.createElement(
3108
- import_react_native15.View,
3125
+ import_react_native14.View,
3109
3126
  {
3110
- style: import_react_native15.StyleSheet.flatten([
3127
+ style: import_react_native14.StyleSheet.flatten([
3111
3128
  styles8.footer,
3112
- import_react_native15.Platform.OS === "web" && styles8.footerRow,
3129
+ import_react_native14.Platform.OS === "web" && styles8.footerRow,
3113
3130
  style
3114
3131
  ]),
3115
3132
  ...props
@@ -3124,7 +3141,7 @@ function DialogTitle({
3124
3141
  return /* @__PURE__ */ React14.createElement(
3125
3142
  DialogPrimitive.Title,
3126
3143
  {
3127
- style: import_react_native15.StyleSheet.flatten([styles8.title, { color: colors.text }, style]),
3144
+ style: import_react_native14.StyleSheet.flatten([styles8.title, { color: colors.text }, style]),
3128
3145
  ...props
3129
3146
  }
3130
3147
  );
@@ -3137,7 +3154,7 @@ function DialogDescription({
3137
3154
  return /* @__PURE__ */ React14.createElement(
3138
3155
  DialogPrimitive.Description,
3139
3156
  {
3140
- style: import_react_native15.StyleSheet.flatten([
3157
+ style: import_react_native14.StyleSheet.flatten([
3141
3158
  styles8.description,
3142
3159
  { color: colors.text },
3143
3160
  style
@@ -3146,7 +3163,7 @@ function DialogDescription({
3146
3163
  }
3147
3164
  );
3148
3165
  }
3149
- var styles8 = import_react_native15.StyleSheet.create({
3166
+ var styles8 = import_react_native14.StyleSheet.create({
3150
3167
  overlay: {
3151
3168
  backgroundColor: "rgba(0, 0, 0, 0.6)",
3152
3169
  flex: 1,
@@ -3198,8 +3215,7 @@ var styles8 = import_react_native15.StyleSheet.create({
3198
3215
  flexDirection: "column",
3199
3216
  gap: 6,
3200
3217
  // gap-1.5
3201
- textAlign: "center",
3202
- borderBottomWidth: 1
3218
+ textAlign: "center"
3203
3219
  },
3204
3220
  footer: {
3205
3221
  flexDirection: "column-reverse",
@@ -3211,17 +3227,17 @@ var styles8 = import_react_native15.StyleSheet.create({
3211
3227
  justifyContent: "flex-end"
3212
3228
  },
3213
3229
  title: {
3214
- fontSize: import_react_native15.Platform.OS === "web" ? 18 : 20,
3230
+ fontSize: import_react_native14.Platform.OS === "web" ? 18 : 20,
3215
3231
  // text-lg native:text-xl
3216
3232
  fontWeight: "600",
3217
3233
  // font-semibold
3218
- lineHeight: import_react_native15.Platform.OS === "web" ? 20 : 22,
3234
+ lineHeight: import_react_native14.Platform.OS === "web" ? 20 : 22,
3219
3235
  // leading-none
3220
3236
  letterSpacing: -0.025
3221
3237
  // tracking-tight
3222
3238
  },
3223
3239
  description: {
3224
- fontSize: import_react_native15.Platform.OS === "web" ? 14 : 16,
3240
+ fontSize: import_react_native14.Platform.OS === "web" ? 14 : 16,
3225
3241
  // text-sm native:text-base
3226
3242
  opacity: 0.7
3227
3243
  }
@@ -3231,14 +3247,14 @@ var styles8 = import_react_native15.StyleSheet.create({
3231
3247
  var SignInMenu = () => {
3232
3248
  const [idpValue, setIdpValue] = (0, import_react13.useState)("");
3233
3249
  const [, setIdpError] = (0, import_react13.useState)();
3234
- const { login, signUp } = (0, import_solid_react4.useSolidAuth)();
3235
- const { width } = (0, import_react_native16.useWindowDimensions)();
3250
+ const { login, signUp } = (0, import_solid_react3.useSolidAuth)();
3251
+ const { width } = (0, import_react_native15.useWindowDimensions)();
3236
3252
  const { defaultIssuer } = useDataBrowserConfig();
3237
3253
  const isSmallScreen = width < 640;
3238
3254
  const onIdpSubmit = (0, import_react13.useCallback)(async () => {
3239
3255
  setIdpError(void 0);
3240
3256
  try {
3241
- await login(idpValue);
3257
+ await login(idpValue, window.location.href);
3242
3258
  } catch (err) {
3243
3259
  if (err instanceof Error) {
3244
3260
  setIdpError(err.message);
@@ -3248,11 +3264,11 @@ var SignInMenu = () => {
3248
3264
  }
3249
3265
  }, [idpValue, login]);
3250
3266
  const renderButtonGroup = () => {
3251
- return /* @__PURE__ */ import_react13.default.createElement(import_react_native16.View, { style: styles9.buttonGroup }, !isSmallScreen && /* @__PURE__ */ import_react13.default.createElement(
3267
+ return /* @__PURE__ */ import_react13.default.createElement(import_react_native15.View, { style: styles9.buttonGroup }, !isSmallScreen && /* @__PURE__ */ import_react13.default.createElement(
3252
3268
  Button,
3253
3269
  {
3254
3270
  key: "signUp",
3255
- onPress: () => signUp(defaultIssuer),
3271
+ onPress: () => signUp(defaultIssuer, window.location.href),
3256
3272
  variant: "ghost",
3257
3273
  text: "Sign Up"
3258
3274
  }
@@ -3260,7 +3276,7 @@ var SignInMenu = () => {
3260
3276
  Button,
3261
3277
  {
3262
3278
  key: "logIn",
3263
- onPress: () => login(defaultIssuer),
3279
+ onPress: () => login(defaultIssuer, window.location.href),
3264
3280
  variant: "default",
3265
3281
  text: "Log In"
3266
3282
  }
@@ -3276,13 +3292,13 @@ var SignInMenu = () => {
3276
3292
  )), /* @__PURE__ */ import_react13.default.createElement(DropdownMenuContent, { style: styles9.dropdownContent }, /* @__PURE__ */ import_react13.default.createElement(DropdownMenuGroup, null, isSmallScreen && /* @__PURE__ */ import_react13.default.createElement(
3277
3293
  DropdownMenuItem,
3278
3294
  {
3279
- onPress: () => signUp(defaultIssuer)
3295
+ onPress: () => signUp(defaultIssuer, window.location.href)
3280
3296
  },
3281
3297
  /* @__PURE__ */ import_react13.default.createElement(Text2, null, "Sign Up")
3282
3298
  ), isSmallScreen && /* @__PURE__ */ import_react13.default.createElement(
3283
3299
  DropdownMenuItem,
3284
3300
  {
3285
- onPress: () => login(defaultIssuer)
3301
+ onPress: () => login(defaultIssuer, window.location.href)
3286
3302
  },
3287
3303
  /* @__PURE__ */ import_react13.default.createElement(Text2, null, "Log In")
3288
3304
  ), /* @__PURE__ */ import_react13.default.createElement(Dialog, null, /* @__PURE__ */ import_react13.default.createElement(DialogTrigger, { asChild: true }, /* @__PURE__ */ import_react13.default.createElement(DropdownMenuItem, { closeOnPress: false }, /* @__PURE__ */ import_react13.default.createElement(Text2, null, "Log in with Another Pod"))), /* @__PURE__ */ import_react13.default.createElement(DialogContent, { style: styles9.dialogContent }, /* @__PURE__ */ import_react13.default.createElement(DialogHeader, null, /* @__PURE__ */ import_react13.default.createElement(DialogTitle, null, "Solid WebId or Identity Provider"), /* @__PURE__ */ import_react13.default.createElement(DialogDescription, null, /* @__PURE__ */ import_react13.default.createElement(
@@ -3297,7 +3313,7 @@ var SignInMenu = () => {
3297
3313
  };
3298
3314
  return renderButtonGroup();
3299
3315
  };
3300
- var styles9 = import_react_native16.StyleSheet.create({
3316
+ var styles9 = import_react_native15.StyleSheet.create({
3301
3317
  buttonGroup: {
3302
3318
  flexDirection: "row"
3303
3319
  },
@@ -3317,7 +3333,7 @@ var styles9 = import_react_native16.StyleSheet.create({
3317
3333
 
3318
3334
  // components/nav/header/ViewMenu.tsx
3319
3335
  var import_react16 = __toESM(require("react"));
3320
- var import_react_native19 = require("react-native");
3336
+ var import_react_native18 = require("react-native");
3321
3337
  var import_lucide_react_native23 = require("lucide-react-native");
3322
3338
 
3323
3339
  // components/useViewContext.tsx
@@ -3336,7 +3352,7 @@ var import_react14 = __toESM(require("react"));
3336
3352
 
3337
3353
  // components/ui/card.tsx
3338
3354
  var React16 = __toESM(require("react"));
3339
- var import_react_native17 = require("react-native");
3355
+ var import_react_native16 = require("react-native");
3340
3356
  var import_native10 = require("@react-navigation/native");
3341
3357
  function Card({
3342
3358
  style,
@@ -3344,11 +3360,11 @@ function Card({
3344
3360
  }) {
3345
3361
  const { colors } = (0, import_native10.useTheme)();
3346
3362
  return /* @__PURE__ */ React16.createElement(
3347
- import_react_native17.View,
3363
+ import_react_native16.View,
3348
3364
  {
3349
- style: import_react_native17.StyleSheet.flatten([
3365
+ style: import_react_native16.StyleSheet.flatten([
3350
3366
  styles10.card,
3351
- { backgroundColor: colors.background, borderColor: colors.border },
3367
+ { backgroundColor: colors.card, borderColor: colors.border },
3352
3368
  style
3353
3369
  ]),
3354
3370
  ...props
@@ -3359,7 +3375,7 @@ function CardHeader({
3359
3375
  style,
3360
3376
  ...props
3361
3377
  }) {
3362
- return /* @__PURE__ */ React16.createElement(import_react_native17.View, { style: import_react_native17.StyleSheet.flatten([styles10.header, style]), ...props });
3378
+ return /* @__PURE__ */ React16.createElement(import_react_native16.View, { style: import_react_native16.StyleSheet.flatten([styles10.header, style]), ...props });
3363
3379
  }
3364
3380
  function CardTitle({
3365
3381
  style,
@@ -3367,11 +3383,11 @@ function CardTitle({
3367
3383
  }) {
3368
3384
  const { colors } = (0, import_native10.useTheme)();
3369
3385
  return /* @__PURE__ */ React16.createElement(
3370
- import_react_native17.Text,
3386
+ import_react_native16.Text,
3371
3387
  {
3372
3388
  role: "heading",
3373
3389
  "aria-level": 3,
3374
- style: import_react_native17.StyleSheet.flatten([styles10.title, { color: colors.text }, style]),
3390
+ style: import_react_native16.StyleSheet.flatten([styles10.title, { color: colors.text }, style]),
3375
3391
  ...props
3376
3392
  }
3377
3393
  );
@@ -3382,9 +3398,9 @@ function CardDescription({
3382
3398
  }) {
3383
3399
  const { colors } = (0, import_native10.useTheme)();
3384
3400
  return /* @__PURE__ */ React16.createElement(
3385
- import_react_native17.Text,
3401
+ import_react_native16.Text,
3386
3402
  {
3387
- style: import_react_native17.StyleSheet.flatten([
3403
+ style: import_react_native16.StyleSheet.flatten([
3388
3404
  styles10.description,
3389
3405
  { color: colors.text },
3390
3406
  style
@@ -3398,15 +3414,15 @@ function CardContent({
3398
3414
  ...props
3399
3415
  }) {
3400
3416
  const { colors } = (0, import_native10.useTheme)();
3401
- return /* @__PURE__ */ React16.createElement(TextStyleProvider, { style: { color: colors.text } }, /* @__PURE__ */ React16.createElement(import_react_native17.View, { style: import_react_native17.StyleSheet.flatten([styles10.content, style]), ...props }));
3417
+ return /* @__PURE__ */ React16.createElement(TextStyleProvider, { style: { color: colors.text } }, /* @__PURE__ */ React16.createElement(import_react_native16.View, { style: import_react_native16.StyleSheet.flatten([styles10.content, style]), ...props }));
3402
3418
  }
3403
3419
  function CardFooter({
3404
3420
  style,
3405
3421
  ...props
3406
3422
  }) {
3407
- return /* @__PURE__ */ React16.createElement(import_react_native17.View, { style: import_react_native17.StyleSheet.flatten([styles10.footer, style]), ...props });
3423
+ return /* @__PURE__ */ React16.createElement(import_react_native16.View, { style: import_react_native16.StyleSheet.flatten([styles10.footer, style]), ...props });
3408
3424
  }
3409
- var styles10 = import_react_native17.StyleSheet.create({
3425
+ var styles10 = import_react_native16.StyleSheet.create({
3410
3426
  card: {
3411
3427
  borderRadius: 10,
3412
3428
  borderWidth: 1
@@ -3439,14 +3455,14 @@ var styles10 = import_react_native17.StyleSheet.create({
3439
3455
  });
3440
3456
 
3441
3457
  // components/utilityResourceViews/ErrorMessageResourceView.tsx
3442
- var import_react_native18 = require("react-native");
3458
+ var import_react_native17 = require("react-native");
3443
3459
  var import_native11 = require("@react-navigation/native");
3444
3460
  var ErrorMessageResourceView = ({ icon, message }) => {
3445
3461
  const Icon2 = icon;
3446
3462
  const { colors } = (0, import_native11.useTheme)();
3447
- return /* @__PURE__ */ import_react14.default.createElement(import_react_native18.View, { style: styles11.container }, /* @__PURE__ */ import_react14.default.createElement(Card, { style: styles11.card }, /* @__PURE__ */ import_react14.default.createElement(Icon2, { size: 60, color: colors.text, style: styles11.icon }), /* @__PURE__ */ import_react14.default.createElement(Text2, { style: styles11.message }, message)));
3463
+ return /* @__PURE__ */ import_react14.default.createElement(import_react_native17.View, { style: styles11.container }, /* @__PURE__ */ import_react14.default.createElement(Card, { style: styles11.card }, /* @__PURE__ */ import_react14.default.createElement(Icon2, { size: 60, color: colors.text, style: styles11.icon }), /* @__PURE__ */ import_react14.default.createElement(Text2, { style: styles11.message }, message)));
3448
3464
  };
3449
- var styles11 = import_react_native18.StyleSheet.create({
3465
+ var styles11 = import_react_native17.StyleSheet.create({
3450
3466
  container: {
3451
3467
  flex: 1,
3452
3468
  justifyContent: "center",
@@ -3469,11 +3485,11 @@ var styles11 = import_react_native18.StyleSheet.create({
3469
3485
  });
3470
3486
 
3471
3487
  // components/useViewContext.tsx
3472
- var import_solid_react5 = require("@ldo/solid-react");
3488
+ var import_solid_react4 = require("@ldo/solid-react");
3473
3489
  var [ViewContextProvider, useViewContext] = (0, import_constate.default)(() => {
3474
3490
  const { targetUri, targetResource, refresh, navigateTo } = useTargetResource();
3475
3491
  const { resourceViews } = useDataBrowserConfig();
3476
- const { dataset: dataset2 } = (0, import_solid_react5.useLdo)();
3492
+ const { dataset } = (0, import_solid_react4.useLdo)();
3477
3493
  const validViews = (0, import_react15.useMemo)(() => {
3478
3494
  if (!targetResource || !targetUri) {
3479
3495
  return [
@@ -3493,10 +3509,10 @@ var [ViewContextProvider, useViewContext] = (0, import_constate.default)(() => {
3493
3509
  const errorViews = getErrorViews(targetResource);
3494
3510
  if (errorViews) return errorViews;
3495
3511
  const potentialViews = resourceViews.filter(
3496
- (view) => view.canDisplay(targetUri, targetResource, dataset2)
3512
+ (view) => view.canDisplay(targetUri, targetResource, dataset)
3497
3513
  );
3498
3514
  return potentialViews.length > 0 ? potentialViews : [constructErrorView(`No valid view for ${targetUri}`, import_lucide_react_native17.OctagonX)];
3499
- }, [targetResource, targetUri, resourceViews, dataset2]);
3515
+ }, [targetResource, targetUri, resourceViews, dataset]);
3500
3516
  const [curViewConfig, setCurViewConfig] = (0, import_react15.useState)(
3501
3517
  validViews[0]
3502
3518
  );
@@ -3579,7 +3595,7 @@ function getErrorViews(targetResource) {
3579
3595
  var import_native12 = require("@react-navigation/native");
3580
3596
  var ViewMenu = () => {
3581
3597
  const { validViews } = useViewContext();
3582
- const { width } = (0, import_react_native19.useWindowDimensions)();
3598
+ const { width } = (0, import_react_native18.useWindowDimensions)();
3583
3599
  return /* @__PURE__ */ import_react16.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react16.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react16.default.createElement(
3584
3600
  Button,
3585
3601
  {
@@ -3590,7 +3606,7 @@ var ViewMenu = () => {
3590
3606
  )), /* @__PURE__ */ import_react16.default.createElement(
3591
3607
  DropdownMenuContent,
3592
3608
  {
3593
- style: import_react_native19.StyleSheet.flatten([styles12.contentContainer])
3609
+ style: import_react_native18.StyleSheet.flatten([styles12.contentContainer])
3594
3610
  },
3595
3611
  validViews.map((menuItem) => /* @__PURE__ */ import_react16.default.createElement(ListItem, { key: menuItem.name, viewConfig: menuItem }, menuItem.displayName))
3596
3612
  ));
@@ -3603,7 +3619,7 @@ var ListItem = ({ viewConfig, children }) => {
3603
3619
  return /* @__PURE__ */ import_react16.default.createElement(
3604
3620
  DropdownMenuItem,
3605
3621
  {
3606
- style: import_react_native19.StyleSheet.flatten([
3622
+ style: import_react_native18.StyleSheet.flatten([
3607
3623
  styles12.listItem,
3608
3624
  isSelected && {
3609
3625
  backgroundColor: colors.border
@@ -3616,7 +3632,7 @@ var ListItem = ({ viewConfig, children }) => {
3616
3632
  );
3617
3633
  };
3618
3634
  ListItem.displayName = "ListItem";
3619
- var styles12 = import_react_native19.StyleSheet.create({
3635
+ var styles12 = import_react_native18.StyleSheet.create({
3620
3636
  triggerContainer: {
3621
3637
  flexDirection: "row",
3622
3638
  alignItems: "center",
@@ -3649,12 +3665,12 @@ var import_lucide_react_native31 = require("lucide-react-native");
3649
3665
 
3650
3666
  // components/sharing/SharingModal.tsx
3651
3667
  var import_react28 = __toESM(require("react"));
3652
- var import_react_native35 = require("react-native");
3668
+ var import_react_native34 = require("react-native");
3653
3669
  var import_native18 = require("@react-navigation/native");
3654
3670
 
3655
3671
  // components/sharing/CopyLink.tsx
3656
3672
  var import_react17 = __toESM(require("react"));
3657
- var import_react_native20 = require("react-native");
3673
+ var import_react_native19 = require("react-native");
3658
3674
  var import_lucide_react_native24 = require("lucide-react-native");
3659
3675
  var CopyLink = () => {
3660
3676
  const { targetUri } = useViewContext();
@@ -3676,7 +3692,7 @@ var CopyLink = () => {
3676
3692
  }
3677
3693
  );
3678
3694
  };
3679
- var styles13 = import_react_native20.StyleSheet.create({
3695
+ var styles13 = import_react_native19.StyleSheet.create({
3680
3696
  button: {
3681
3697
  flexDirection: "row"
3682
3698
  }
@@ -3686,7 +3702,7 @@ var styles13 = import_react_native20.StyleSheet.create({
3686
3702
  var import_react18 = __toESM(require("react"));
3687
3703
  var import_native13 = require("@react-navigation/native");
3688
3704
  var import_react_native_progress2 = require("react-native-progress");
3689
- var import_react_native21 = require("react-native");
3705
+ var import_react_native20 = require("react-native");
3690
3706
  var LoadingBar = ({
3691
3707
  isLoading
3692
3708
  }) => {
@@ -3704,7 +3720,7 @@ var LoadingBar = ({
3704
3720
  }
3705
3721
  );
3706
3722
  };
3707
- var styles14 = import_react_native21.StyleSheet.create({
3723
+ var styles14 = import_react_native20.StyleSheet.create({
3708
3724
  bar: {
3709
3725
  position: "absolute",
3710
3726
  top: 0,
@@ -3714,17 +3730,17 @@ var styles14 = import_react_native21.StyleSheet.create({
3714
3730
  });
3715
3731
 
3716
3732
  // components/sharing/SharingModal.tsx
3717
- var import_react_native36 = require("react-native");
3733
+ var import_react_native35 = require("react-native");
3718
3734
 
3719
3735
  // components/sharing/WacRuleForm.tsx
3720
3736
  var import_react27 = __toESM(require("react"));
3721
- var import_react_native33 = require("react-native");
3737
+ var import_react_native32 = require("react-native");
3722
3738
 
3723
3739
  // components/ui/separator.tsx
3724
3740
  var import_native14 = require("@react-navigation/native");
3725
3741
  var SeparatorPrimitive = __toESM(require("@rn-primitives/separator"));
3726
3742
  var React22 = __toESM(require("react"));
3727
- var import_react_native22 = require("react-native");
3743
+ var import_react_native21 = require("react-native");
3728
3744
  function Separator2({
3729
3745
  style,
3730
3746
  orientation = "horizontal",
@@ -3737,7 +3753,7 @@ function Separator2({
3737
3753
  {
3738
3754
  decorative,
3739
3755
  orientation,
3740
- style: import_react_native22.StyleSheet.flatten([
3756
+ style: import_react_native21.StyleSheet.flatten([
3741
3757
  orientation === "horizontal" ? styles15.horizontal : styles15.vertical,
3742
3758
  { backgroundColor: colors.border },
3743
3759
  style
@@ -3746,7 +3762,7 @@ function Separator2({
3746
3762
  }
3747
3763
  );
3748
3764
  }
3749
- var styles15 = import_react_native22.StyleSheet.create({
3765
+ var styles15 = import_react_native21.StyleSheet.create({
3750
3766
  horizontal: {
3751
3767
  flexShrink: 0,
3752
3768
  height: 1,
@@ -3764,22 +3780,22 @@ var import_react25 = __toESM(require("react"));
3764
3780
 
3765
3781
  // components/sharing/agentPermissions/AgentPermissionRow.tsx
3766
3782
  var import_react21 = __toESM(require("react"));
3767
- var import_react_native26 = require("react-native");
3783
+ var import_react_native25 = require("react-native");
3768
3784
 
3769
3785
  // components/sharing/agentPermissions/AgentInformation.tsx
3770
- var import_solid_react6 = require("@ldo/solid-react");
3786
+ var import_solid_react5 = require("@ldo/solid-react");
3771
3787
  var import_react19 = __toESM(require("react"));
3772
- var import_react_native23 = require("react-native");
3788
+ var import_react_native22 = require("react-native");
3773
3789
  var AgentInformation = ({
3774
3790
  webId,
3775
3791
  accessoryRight
3776
3792
  }) => {
3777
- const { session } = (0, import_solid_react6.useSolidAuth)();
3778
- (0, import_solid_react6.useResource)(webId);
3779
- const agentProfile = (0, import_solid_react6.useSubject)(SolidProfileShapeType, webId);
3780
- return /* @__PURE__ */ import_react19.default.createElement(import_react_native23.View, { style: styles16.container }, /* @__PURE__ */ import_react19.default.createElement(ProfileAvatar, { profile: agentProfile }), /* @__PURE__ */ import_react19.default.createElement(import_react_native23.View, { style: styles16.textContainer }, /* @__PURE__ */ import_react19.default.createElement(Text2, null, agentProfile["@id"] === session.webId ? "You" : agentProfile.fn ?? agentProfile.name ?? "Unnamed Agent"), /* @__PURE__ */ import_react19.default.createElement(Text2, { size: "xs", muted: true }, webId)), accessoryRight);
3793
+ const { session } = (0, import_solid_react5.useSolidAuth)();
3794
+ (0, import_solid_react5.useResource)(webId);
3795
+ const agentProfile = (0, import_solid_react5.useSubject)(SolidProfileShapeType, webId);
3796
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_native22.View, { style: styles16.container }, /* @__PURE__ */ import_react19.default.createElement(ProfileAvatar, { profile: agentProfile }), /* @__PURE__ */ import_react19.default.createElement(import_react_native22.View, { style: styles16.textContainer }, /* @__PURE__ */ import_react19.default.createElement(Text2, null, agentProfile["@id"] === session.webId ? "You" : agentProfile.fn ?? agentProfile.name ?? "Unnamed Agent"), /* @__PURE__ */ import_react19.default.createElement(Text2, { size: "xs", muted: true }, webId)), accessoryRight);
3781
3797
  };
3782
- var styles16 = import_react_native23.StyleSheet.create({
3798
+ var styles16 = import_react_native22.StyleSheet.create({
3783
3799
  container: {
3784
3800
  flexDirection: "row",
3785
3801
  gap: 16,
@@ -3797,7 +3813,7 @@ var import_react20 = __toESM(require("react"));
3797
3813
  // components/ui/checkbox.tsx
3798
3814
  var CheckboxPrimitive = __toESM(require("@rn-primitives/checkbox"));
3799
3815
  var React24 = __toESM(require("react"));
3800
- var import_react_native24 = require("react-native");
3816
+ var import_react_native23 = require("react-native");
3801
3817
  var import_lucide_react_native25 = require("lucide-react-native");
3802
3818
  var import_native15 = require("@react-navigation/native");
3803
3819
  var getCheckboxStyles = (checked = false, disabled = false, theme) => {
@@ -3817,7 +3833,7 @@ var getCheckboxStyles = (checked = false, disabled = false, theme) => {
3817
3833
  const disabledStyles = disabled ? {
3818
3834
  opacity: 0.5
3819
3835
  } : {};
3820
- return import_react_native24.StyleSheet.flatten([baseStyles, checkedStyles, disabledStyles]);
3836
+ return import_react_native23.StyleSheet.flatten([baseStyles, checkedStyles, disabledStyles]);
3821
3837
  };
3822
3838
  var getIndicatorStyles = () => ({
3823
3839
  alignItems: "center",
@@ -3830,7 +3846,7 @@ function Checkbox({
3830
3846
  ...props
3831
3847
  }) {
3832
3848
  const theme = (0, import_native15.useTheme)();
3833
- const rootStyle = import_react_native24.StyleSheet.flatten([
3849
+ const rootStyle = import_react_native23.StyleSheet.flatten([
3834
3850
  getCheckboxStyles(props.checked, props.disabled, theme),
3835
3851
  style
3836
3852
  ]);
@@ -3838,7 +3854,7 @@ function Checkbox({
3838
3854
  import_lucide_react_native25.Check,
3839
3855
  {
3840
3856
  size: 12,
3841
- strokeWidth: import_react_native24.Platform.OS === "web" ? 2.5 : 3.5,
3857
+ strokeWidth: import_react_native23.Platform.OS === "web" ? 2.5 : 3.5,
3842
3858
  color: theme.colors.background
3843
3859
  }
3844
3860
  )));
@@ -3846,7 +3862,7 @@ function Checkbox({
3846
3862
 
3847
3863
  // components/sharing/AccessDropdown.tsx
3848
3864
  var import_lucide_react_native26 = require("lucide-react-native");
3849
- var import_react_native25 = require("react-native");
3865
+ var import_react_native24 = require("react-native");
3850
3866
  var AccessDropdown = ({
3851
3867
  value,
3852
3868
  onChange
@@ -3895,7 +3911,7 @@ var AccessDropdown = ({
3895
3911
  /* @__PURE__ */ import_react20.default.createElement(Text2, null, accessModeName.charAt(0).toUpperCase() + accessModeName.slice(1))
3896
3912
  )))));
3897
3913
  };
3898
- var styles17 = import_react_native25.StyleSheet.create({
3914
+ var styles17 = import_react_native24.StyleSheet.create({
3899
3915
  button: {
3900
3916
  display: "flex",
3901
3917
  width: 130,
@@ -3908,14 +3924,14 @@ var styles17 = import_react_native25.StyleSheet.create({
3908
3924
  });
3909
3925
 
3910
3926
  // components/sharing/agentPermissions/AgentPermissionRow.tsx
3911
- var import_react_native27 = require("react-native");
3927
+ var import_react_native26 = require("react-native");
3912
3928
  var import_lucide_react_native27 = require("lucide-react-native");
3913
3929
  var AgentPermissionRow = ({
3914
3930
  webId,
3915
3931
  value,
3916
3932
  onChange
3917
3933
  }) => {
3918
- return /* @__PURE__ */ import_react21.default.createElement(import_react_native27.View, { style: styles18.container }, /* @__PURE__ */ import_react21.default.createElement(AgentInformation, { webId }), /* @__PURE__ */ import_react21.default.createElement(import_react_native27.View, { style: styles18.rightSection }, /* @__PURE__ */ import_react21.default.createElement(
3934
+ return /* @__PURE__ */ import_react21.default.createElement(import_react_native26.View, { style: styles18.container }, /* @__PURE__ */ import_react21.default.createElement(AgentInformation, { webId }), /* @__PURE__ */ import_react21.default.createElement(import_react_native26.View, { style: styles18.rightSection }, /* @__PURE__ */ import_react21.default.createElement(
3919
3935
  Button,
3920
3936
  {
3921
3937
  variant: "ghost",
@@ -3926,7 +3942,7 @@ var AgentPermissionRow = ({
3926
3942
  }
3927
3943
  ), /* @__PURE__ */ import_react21.default.createElement(AccessDropdown, { value, onChange })));
3928
3944
  };
3929
- var styles18 = import_react_native26.StyleSheet.create({
3945
+ var styles18 = import_react_native25.StyleSheet.create({
3930
3946
  container: {
3931
3947
  flexDirection: "row",
3932
3948
  justifyContent: "space-between",
@@ -3945,14 +3961,14 @@ var styles18 = import_react_native26.StyleSheet.create({
3945
3961
 
3946
3962
  // components/sharing/agentPermissions/AgentInput.tsx
3947
3963
  var import_react24 = __toESM(require("react"));
3948
- var import_react_native29 = require("react-native");
3964
+ var import_react_native28 = require("react-native");
3949
3965
  var import_native17 = require("@react-navigation/native");
3950
- var import_react_native30 = require("react-native");
3951
- var import_solid_react7 = require("@ldo/solid-react");
3966
+ var import_react_native29 = require("react-native");
3967
+ var import_solid_react6 = require("@ldo/solid-react");
3952
3968
 
3953
3969
  // components/ui/input-dropdown.tsx
3954
3970
  var import_react22 = __toESM(require("react"));
3955
- var import_react_native28 = require("react-native");
3971
+ var import_react_native27 = require("react-native");
3956
3972
  var import_native16 = require("@react-navigation/native");
3957
3973
  function InputDropdown({
3958
3974
  items,
@@ -4016,7 +4032,7 @@ function InputDropdown({
4016
4032
  backgroundColor: colors.background,
4017
4033
  borderColor: colors.border
4018
4034
  };
4019
- return /* @__PURE__ */ import_react22.default.createElement(import_react_native28.View, { style: containerStyles, ref: inputRef }, /* @__PURE__ */ import_react22.default.createElement(
4035
+ return /* @__PURE__ */ import_react22.default.createElement(import_react_native27.View, { style: containerStyles, ref: inputRef }, /* @__PURE__ */ import_react22.default.createElement(
4020
4036
  Input,
4021
4037
  {
4022
4038
  ...inputProps,
@@ -4024,9 +4040,9 @@ function InputDropdown({
4024
4040
  onFocus: handleInputFocus,
4025
4041
  buttonRight
4026
4042
  }
4027
- ), isDropdownOpen && (filteredItems.length > 0 || isLoading) && /* @__PURE__ */ import_react22.default.createElement(Card, { style: dropdownStyles }, isLoading && /* @__PURE__ */ import_react22.default.createElement(LoadingBar, { isLoading }), filteredItems.map((item, index) => /* @__PURE__ */ import_react22.default.createElement(import_react_native28.View, { key: index }, renderItem(item, handleItemSelect)))));
4043
+ ), isDropdownOpen && (filteredItems.length > 0 || isLoading) && /* @__PURE__ */ import_react22.default.createElement(Card, { style: dropdownStyles }, isLoading && /* @__PURE__ */ import_react22.default.createElement(LoadingBar, { isLoading }), filteredItems.map((item, index) => /* @__PURE__ */ import_react22.default.createElement(import_react_native27.View, { key: index }, renderItem(item, handleItemSelect)))));
4028
4044
  }
4029
- var styles19 = import_react_native28.StyleSheet.create({
4045
+ var styles19 = import_react_native27.StyleSheet.create({
4030
4046
  container: {
4031
4047
  position: "relative"
4032
4048
  },
@@ -4074,7 +4090,7 @@ var import_lucide_react_native28 = require("lucide-react-native");
4074
4090
  var ContactDropdownItem = ({ webId, onSelect }) => {
4075
4091
  const { colors } = (0, import_native17.useTheme)();
4076
4092
  return /* @__PURE__ */ import_react24.default.createElement(
4077
- import_react_native30.Pressable,
4093
+ import_react_native29.Pressable,
4078
4094
  {
4079
4095
  style: ({ hovered }) => [
4080
4096
  styles20.dropdownItem,
@@ -4097,9 +4113,9 @@ var AgentInput = ({
4097
4113
  existingAgents,
4098
4114
  className
4099
4115
  }) => {
4100
- const { session } = (0, import_solid_react7.useSolidAuth)();
4116
+ const { session } = (0, import_solid_react6.useSolidAuth)();
4101
4117
  const [inputValue, setInputValue] = (0, import_react24.useState)("");
4102
- const currentUserProfile = (0, import_solid_react7.useLinkQuery)(
4118
+ const currentUserProfile = (0, import_solid_react6.useLinkQuery)(
4103
4119
  SolidProfileShapeType,
4104
4120
  session.webId,
4105
4121
  session.webId,
@@ -4161,7 +4177,7 @@ var AgentInput = ({
4161
4177
  }
4162
4178
  );
4163
4179
  };
4164
- var styles20 = import_react_native29.StyleSheet.create({
4180
+ var styles20 = import_react_native28.StyleSheet.create({
4165
4181
  dropdownItem: {
4166
4182
  padding: 8,
4167
4183
  borderBottomWidth: 1
@@ -4213,21 +4229,21 @@ var AgentPermissions = ({
4213
4229
  };
4214
4230
 
4215
4231
  // components/sharing/WacRuleForm.tsx
4216
- var import_react_native34 = require("react-native");
4232
+ var import_react_native33 = require("react-native");
4217
4233
 
4218
4234
  // components/sharing/PermissionRow.tsx
4219
4235
  var import_react26 = __toESM(require("react"));
4236
+ var import_react_native30 = require("react-native");
4220
4237
  var import_react_native31 = require("react-native");
4221
- var import_react_native32 = require("react-native");
4222
4238
  var PermissionRow = ({
4223
4239
  Icon: Icon2,
4224
4240
  displayName,
4225
4241
  value,
4226
4242
  onChange
4227
4243
  }) => {
4228
- return /* @__PURE__ */ import_react26.default.createElement(import_react_native32.View, { style: styles21.container }, /* @__PURE__ */ import_react26.default.createElement(import_react_native32.View, { style: styles21.leftSection }, /* @__PURE__ */ import_react26.default.createElement(Avatar, { alt: displayName }, /* @__PURE__ */ import_react26.default.createElement(AvatarFallback, null, /* @__PURE__ */ import_react26.default.createElement(Text2, null, /* @__PURE__ */ import_react26.default.createElement(Icon2, null)))), /* @__PURE__ */ import_react26.default.createElement(Text2, { bold: true }, displayName)), /* @__PURE__ */ import_react26.default.createElement(AccessDropdown, { value, onChange }));
4244
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_native31.View, { style: styles21.container }, /* @__PURE__ */ import_react26.default.createElement(import_react_native31.View, { style: styles21.leftSection }, /* @__PURE__ */ import_react26.default.createElement(Avatar, { alt: displayName }, /* @__PURE__ */ import_react26.default.createElement(AvatarFallback, null, /* @__PURE__ */ import_react26.default.createElement(Text2, null, /* @__PURE__ */ import_react26.default.createElement(Icon2, null)))), /* @__PURE__ */ import_react26.default.createElement(Text2, { bold: true }, displayName)), /* @__PURE__ */ import_react26.default.createElement(AccessDropdown, { value, onChange }));
4229
4245
  };
4230
- var styles21 = import_react_native31.StyleSheet.create({
4246
+ var styles21 = import_react_native30.StyleSheet.create({
4231
4247
  container: {
4232
4248
  flexDirection: "row",
4233
4249
  justifyContent: "space-between",
@@ -4248,7 +4264,7 @@ var WacRuleForm = ({
4248
4264
  value,
4249
4265
  onChange
4250
4266
  }) => {
4251
- return /* @__PURE__ */ import_react27.default.createElement(import_react_native34.View, { style: styles22.container }, /* @__PURE__ */ import_react27.default.createElement(
4267
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_native33.View, { style: styles22.container }, /* @__PURE__ */ import_react27.default.createElement(
4252
4268
  PermissionRow,
4253
4269
  {
4254
4270
  displayName: "Public Access",
@@ -4272,7 +4288,7 @@ var WacRuleForm = ({
4272
4288
  }
4273
4289
  ));
4274
4290
  };
4275
- var styles22 = import_react_native33.StyleSheet.create({
4291
+ var styles22 = import_react_native32.StyleSheet.create({
4276
4292
  container: {
4277
4293
  gap: 16,
4278
4294
  marginTop: 8,
@@ -4298,6 +4314,7 @@ var SharingModalProvider = ({
4298
4314
  const { targetResource } = useViewContext();
4299
4315
  const { colors } = (0, import_native18.useTheme)();
4300
4316
  const [isOpen, setIsOpen] = (0, import_react28.useState)(false);
4317
+ const [resourceOverride, setResourceOverride] = (0, import_react28.useState)();
4301
4318
  const [wacResult, setWacResult] = (0, import_react28.useState)();
4302
4319
  const [isLoading, setIsLoading] = (0, import_react28.useState)(false);
4303
4320
  const [editedRules, setEditedRules] = (0, import_react28.useState)({
@@ -4305,11 +4322,12 @@ var SharingModalProvider = ({
4305
4322
  authenticated: { read: false, write: false, append: false, control: false },
4306
4323
  agent: {}
4307
4324
  });
4308
- const { width, height } = (0, import_react_native35.useWindowDimensions)();
4325
+ const { width, height } = (0, import_react_native34.useWindowDimensions)();
4326
+ const activeResource = resourceOverride ?? targetResource;
4309
4327
  (0, import_react28.useEffect)(() => {
4310
- if (targetResource && targetResource.type !== "InvalidIdentifierResource" && isOpen) {
4328
+ if (isOpen && (activeResource?.type === "SolidContainer" || activeResource?.type === "SolidLeaf")) {
4311
4329
  setIsLoading(true);
4312
- targetResource.getWac().then((wac) => {
4330
+ activeResource.getWac().then((wac) => {
4313
4331
  setWacResult(
4314
4332
  wac
4315
4333
  );
@@ -4319,7 +4337,7 @@ var SharingModalProvider = ({
4319
4337
  setIsLoading(false);
4320
4338
  });
4321
4339
  }
4322
- }, [targetResource, isOpen]);
4340
+ }, [activeResource, isOpen]);
4323
4341
  const didEdit = (0, import_react28.useMemo)(() => {
4324
4342
  if (wacResult?.type !== "getWacRuleSuccess") return false;
4325
4343
  return !(0, import_lodash.isEqual)(editedRules, wacResult.wacRule);
@@ -4327,19 +4345,26 @@ var SharingModalProvider = ({
4327
4345
  const context = (0, import_react28.useMemo)(
4328
4346
  () => ({
4329
4347
  isModalOpen: isOpen,
4330
- openSharingModal: () => setIsOpen(true),
4331
- closeSharingModal: () => setIsOpen(false)
4348
+ openSharingModal: (resource) => {
4349
+ setResourceOverride(resource);
4350
+ setIsOpen(true);
4351
+ },
4352
+ closeSharingModal: () => {
4353
+ setIsOpen(false);
4354
+ setResourceOverride(void 0);
4355
+ }
4332
4356
  }),
4333
4357
  [isOpen]
4334
4358
  );
4335
4359
  const onApplyChanges = (0, import_react28.useCallback)(async () => {
4336
- if (didEdit && (targetResource?.type === "SolidContainer" || targetResource?.type === "SolidLeaf")) {
4360
+ if (didEdit && (activeResource?.type === "SolidContainer" || activeResource?.type === "SolidLeaf")) {
4337
4361
  setIsLoading(true);
4338
- const result = await targetResource.setWac(editedRules);
4362
+ const result = await activeResource.setWac(editedRules);
4339
4363
  setIsLoading(false);
4340
4364
  }
4341
4365
  setIsOpen(false);
4342
- }, [editedRules, targetResource, didEdit]);
4366
+ setResourceOverride(void 0);
4367
+ }, [editedRules, activeResource, didEdit]);
4343
4368
  return /* @__PURE__ */ import_react28.default.createElement(sharingModalContext.Provider, { value: context }, /* @__PURE__ */ import_react28.default.createElement(Dialog, { open: isOpen, onOpenChange: (value) => setIsOpen(value) }, /* @__PURE__ */ import_react28.default.createElement(
4344
4369
  DialogContent,
4345
4370
  {
@@ -4351,7 +4376,7 @@ var SharingModalProvider = ({
4351
4376
  /* @__PURE__ */ import_react28.default.createElement(LoadingBar, { isLoading }),
4352
4377
  /* @__PURE__ */ import_react28.default.createElement(DialogHeader, null, /* @__PURE__ */ import_react28.default.createElement(DialogTitle, null, "Resource Sharing Preferences")),
4353
4378
  /* @__PURE__ */ import_react28.default.createElement(
4354
- import_react_native36.ScrollView,
4379
+ import_react_native35.ScrollView,
4355
4380
  {
4356
4381
  style: [{ borderColor: colors.border }, styles23.scrollView]
4357
4382
  },
@@ -4372,11 +4397,10 @@ var SharingModalProvider = ({
4372
4397
  ))
4373
4398
  )), children);
4374
4399
  };
4375
- var styles23 = import_react_native35.StyleSheet.create({
4400
+ var styles23 = import_react_native34.StyleSheet.create({
4376
4401
  scrollView: {
4377
4402
  flex: 1,
4378
4403
  borderTopWidth: 1,
4379
- borderBottomWidth: 1,
4380
4404
  paddingTop: 8,
4381
4405
  paddingBottom: 8,
4382
4406
  marginLeft: -24,
@@ -4388,33 +4412,26 @@ var styles23 = import_react_native35.StyleSheet.create({
4388
4412
 
4389
4413
  // components/nav/header/Header.tsx
4390
4414
  var Header = () => {
4391
- const { session } = (0, import_solid_react8.useSolidAuth)();
4415
+ const { session } = (0, import_solid_react7.useSolidAuth)();
4392
4416
  const { openSharingModal } = useSharingModal();
4393
- const { colors } = (0, import_native19.useTheme)();
4394
- return /* @__PURE__ */ import_react29.default.createElement(
4395
- Card,
4417
+ const { targetResource } = useViewContext();
4418
+ const handleShare = () => {
4419
+ if (targetResource?.type === "SolidLeaf" || targetResource?.type === "SolidContainer") {
4420
+ openSharingModal(targetResource);
4421
+ }
4422
+ };
4423
+ return /* @__PURE__ */ import_react29.default.createElement(Card, { style: styles24.card }, /* @__PURE__ */ import_react29.default.createElement(AddressBox, null), session.isActive && /* @__PURE__ */ import_react29.default.createElement(
4424
+ Button,
4396
4425
  {
4397
- style: [
4398
- styles24.card,
4399
- { borderBottomWidth: 1, borderBottomColor: colors.border }
4400
- ]
4401
- },
4402
- /* @__PURE__ */ import_react29.default.createElement(AddressBox, null),
4403
- session.isLoggedIn && /* @__PURE__ */ import_react29.default.createElement(
4404
- Button,
4405
- {
4406
- key: "setMemu",
4407
- variant: "ghost",
4408
- style: styles24.shareButton,
4409
- onPress: openSharingModal,
4410
- iconLeft: import_lucide_react_native31.UserPlus
4411
- }
4412
- ),
4413
- /* @__PURE__ */ import_react29.default.createElement(ViewMenu, null),
4414
- session.isLoggedIn ? /* @__PURE__ */ import_react29.default.createElement(AvatarMenu, null) : /* @__PURE__ */ import_react29.default.createElement(SignInMenu, null)
4415
- );
4426
+ key: "setMemu",
4427
+ variant: "ghost",
4428
+ style: styles24.shareButton,
4429
+ onPress: handleShare,
4430
+ iconLeft: import_lucide_react_native31.UserPlus
4431
+ }
4432
+ ), /* @__PURE__ */ import_react29.default.createElement(ViewMenu, null), session.isActive ? /* @__PURE__ */ import_react29.default.createElement(AvatarMenu, null) : /* @__PURE__ */ import_react29.default.createElement(SignInMenu, null));
4416
4433
  };
4417
- var styles24 = import_react_native37.StyleSheet.create({
4434
+ var styles24 = import_react_native36.StyleSheet.create({
4418
4435
  card: {
4419
4436
  height: 56,
4420
4437
  flexDirection: "row",
@@ -4435,11 +4452,11 @@ var styles24 = import_react_native37.StyleSheet.create({
4435
4452
  });
4436
4453
 
4437
4454
  // components/nav/Layout.tsx
4438
- var import_react_native39 = require("react-native");
4455
+ var import_react_native38 = require("react-native");
4439
4456
 
4440
4457
  // components/nav/DialogProvider.tsx
4441
4458
  var import_react30 = __toESM(require("react"));
4442
- var import_react_native38 = require("react-native");
4459
+ var import_react_native37 = require("react-native");
4443
4460
  var DialogContext = (0, import_react30.createContext)(null);
4444
4461
  var useDialog = () => {
4445
4462
  const ctx = (0, import_react30.useContext)(DialogContext);
@@ -4494,7 +4511,7 @@ var DialogProvider = ({
4494
4511
  setVisible(false);
4495
4512
  resolver.current?.(options?.type === "confirm" ? true : inputValue);
4496
4513
  };
4497
- return /* @__PURE__ */ import_react30.default.createElement(DialogContext.Provider, { value: { showDialog, prompt, confirm } }, children, /* @__PURE__ */ import_react30.default.createElement(Dialog, { open: visible, onOpenChange: setVisible }, /* @__PURE__ */ import_react30.default.createElement(DialogContent, null, /* @__PURE__ */ import_react30.default.createElement(DialogHeader, null, /* @__PURE__ */ import_react30.default.createElement(DialogTitle, null, options?.title), options?.message && /* @__PURE__ */ import_react30.default.createElement(DialogDescription, null, options.message)), options?.type === "prompt" && /* @__PURE__ */ import_react30.default.createElement(import_react_native38.View, { className: "my-2" }, /* @__PURE__ */ import_react30.default.createElement(
4514
+ return /* @__PURE__ */ import_react30.default.createElement(DialogContext.Provider, { value: { showDialog, prompt, confirm } }, children, /* @__PURE__ */ import_react30.default.createElement(Dialog, { open: visible, onOpenChange: setVisible }, /* @__PURE__ */ import_react30.default.createElement(DialogContent, null, /* @__PURE__ */ import_react30.default.createElement(DialogHeader, null, /* @__PURE__ */ import_react30.default.createElement(DialogTitle, null, options?.title), options?.message && /* @__PURE__ */ import_react30.default.createElement(DialogDescription, null, options.message)), options?.type === "prompt" && /* @__PURE__ */ import_react30.default.createElement(import_react_native37.View, { className: "my-2" }, /* @__PURE__ */ import_react30.default.createElement(
4498
4515
  Input,
4499
4516
  {
4500
4517
  value: inputValue,
@@ -4508,22 +4525,22 @@ var DialogProvider = ({
4508
4525
  };
4509
4526
 
4510
4527
  // components/nav/Layout.tsx
4511
- var import_solid_react9 = require("@ldo/solid-react");
4512
- var import_native20 = require("@react-navigation/native");
4528
+ var import_solid_react8 = require("@ldo/solid-react");
4529
+ var import_native19 = require("@react-navigation/native");
4513
4530
  var ValidViewContext = (0, import_react31.createContext)({});
4514
4531
  var Layout = () => {
4515
- const { ranInitialAuthCheck } = (0, import_solid_react9.useSolidAuth)();
4516
- const { colors } = (0, import_native20.useTheme)();
4532
+ const { ranInitialAuthCheck } = (0, import_solid_react8.useSolidAuth)();
4533
+ const { colors } = (0, import_native19.useTheme)();
4517
4534
  if (!ranInitialAuthCheck) {
4518
4535
  return /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null);
4519
4536
  }
4520
4537
  return /* @__PURE__ */ import_react31.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react31.default.createElement(ViewContextProvider, null, /* @__PURE__ */ import_react31.default.createElement(SharingModalProvider, null, /* @__PURE__ */ import_react31.default.createElement(
4521
- import_react_native39.View,
4538
+ import_react_native38.View,
4522
4539
  {
4523
4540
  style: [styles25.container, { backgroundColor: colors.background }]
4524
4541
  },
4525
4542
  /* @__PURE__ */ import_react31.default.createElement(Header, null),
4526
- /* @__PURE__ */ import_react31.default.createElement(import_react_native39.View, { style: styles25.contentView }, /* @__PURE__ */ import_react31.default.createElement(RenderView, null))
4543
+ /* @__PURE__ */ import_react31.default.createElement(import_react_native38.View, { style: styles25.contentView }, /* @__PURE__ */ import_react31.default.createElement(RenderView, null))
4527
4544
  ))));
4528
4545
  };
4529
4546
  var RenderView = () => {
@@ -4536,7 +4553,7 @@ var RenderView = () => {
4536
4553
  const CurView = viewToRender.view;
4537
4554
  return /* @__PURE__ */ import_react31.default.createElement(CurView, null);
4538
4555
  };
4539
- var styles25 = import_react_native39.StyleSheet.create({
4556
+ var styles25 = import_react_native38.StyleSheet.create({
4540
4557
  container: {
4541
4558
  flex: 1
4542
4559
  },
@@ -4549,25 +4566,25 @@ var styles25 = import_react_native39.StyleSheet.create({
4549
4566
  // components/DataBrowser.tsx
4550
4567
  var import_portal = require("@rn-primitives/portal");
4551
4568
  var import_react_native_notifier = require("react-native-notifier");
4552
- var import_react_native40 = require("react-native");
4569
+ var import_react_native39 = require("react-native");
4553
4570
  var DataBrowser = (props) => {
4554
4571
  const providerProps = (0, import_react32.useMemo)(() => {
4555
4572
  return {
4556
- origin: import_react_native40.Platform.OS === "web" && !props.origin ? window.location.origin : void 0,
4573
+ origin: import_react_native39.Platform.OS === "web" && !props.origin ? window.location.origin : void 0,
4557
4574
  defaultIssuer: props.mode === "server-ui" ? window.location.origin : "https://solidcommunity.net",
4558
4575
  ...props
4559
4576
  };
4560
4577
  }, [props]);
4561
- return /* @__PURE__ */ import_react33.default.createElement(ThemeProvider, null, /* @__PURE__ */ import_react33.default.createElement(import_solid_react10.BrowserSolidLdoProvider, null, /* @__PURE__ */ import_react33.default.createElement(import_react_native_notifier.NotifierWrapper, null, /* @__PURE__ */ import_react33.default.createElement(DataBrowserConfigContext.Provider, { value: providerProps }, /* @__PURE__ */ import_react33.default.createElement(TargetResourceProvider, null, /* @__PURE__ */ import_react33.default.createElement(Layout, null), /* @__PURE__ */ import_react33.default.createElement(import_portal.PortalHost, null))))));
4578
+ return /* @__PURE__ */ import_react33.default.createElement(ThemeProvider, null, /* @__PURE__ */ import_react33.default.createElement(import_solid_react9.BrowserSolidLdoProvider, null, /* @__PURE__ */ import_react33.default.createElement(import_react_native_notifier.NotifierWrapper, null, /* @__PURE__ */ import_react33.default.createElement(DataBrowserConfigContext.Provider, { value: providerProps }, /* @__PURE__ */ import_react33.default.createElement(TargetResourceProvider, null, /* @__PURE__ */ import_react33.default.createElement(Layout, null), /* @__PURE__ */ import_react33.default.createElement(import_portal.PortalHost, null))))));
4562
4579
  };
4563
4580
 
4564
4581
  // components/ui/accordion.tsx
4565
4582
  var AccordionPrimitive = __toESM(require("@rn-primitives/accordion"));
4566
4583
  var React37 = __toESM(require("react"));
4567
- var import_react_native41 = require("react-native");
4584
+ var import_react_native40 = require("react-native");
4568
4585
  var import_react_native_reanimated3 = __toESM(require("react-native-reanimated"));
4569
4586
  var import_lucide_react_native32 = require("lucide-react-native");
4570
- var import_native21 = require("@react-navigation/native");
4587
+ var import_native20 = require("@react-navigation/native");
4571
4588
  function Accordion({
4572
4589
  children,
4573
4590
  ...props
@@ -4576,7 +4593,7 @@ function Accordion({
4576
4593
  AccordionPrimitive.Root,
4577
4594
  {
4578
4595
  ...props,
4579
- asChild: import_react_native41.Platform.OS !== "web"
4596
+ asChild: import_react_native40.Platform.OS !== "web"
4580
4597
  },
4581
4598
  /* @__PURE__ */ React37.createElement(import_react_native_reanimated3.default.View, { layout: import_react_native_reanimated3.LinearTransition.duration(200) }, children)
4582
4599
  ));
@@ -4586,7 +4603,7 @@ function AccordionItem({
4586
4603
  value,
4587
4604
  ...props
4588
4605
  }) {
4589
- const { colors } = (0, import_native21.useTheme)();
4606
+ const { colors } = (0, import_native20.useTheme)();
4590
4607
  return /* @__PURE__ */ React37.createElement(
4591
4608
  import_react_native_reanimated3.default.View,
4592
4609
  {
@@ -4596,7 +4613,7 @@ function AccordionItem({
4596
4613
  /* @__PURE__ */ React37.createElement(
4597
4614
  AccordionPrimitive.Item,
4598
4615
  {
4599
- style: import_react_native41.StyleSheet.flatten([
4616
+ style: import_react_native40.StyleSheet.flatten([
4600
4617
  styles26.item,
4601
4618
  { borderBottomColor: colors.border },
4602
4619
  style
@@ -4607,13 +4624,13 @@ function AccordionItem({
4607
4624
  )
4608
4625
  );
4609
4626
  }
4610
- var Trigger4 = import_react_native41.Platform.OS === "web" ? import_react_native41.View : import_react_native41.Pressable;
4627
+ var Trigger4 = import_react_native40.Platform.OS === "web" ? import_react_native40.View : import_react_native40.Pressable;
4611
4628
  function AccordionTrigger({
4612
4629
  style,
4613
4630
  children,
4614
4631
  ...props
4615
4632
  }) {
4616
- const { colors } = (0, import_native21.useTheme)();
4633
+ const { colors } = (0, import_native20.useTheme)();
4617
4634
  const { isExpanded } = AccordionPrimitive.useItemContext();
4618
4635
  const progress = (0, import_react_native_reanimated3.useDerivedValue)(
4619
4636
  () => isExpanded ? (0, import_react_native_reanimated3.withTiming)(1, { duration: 250 }) : (0, import_react_native_reanimated3.withTiming)(0, { duration: 200 })
@@ -4623,16 +4640,16 @@ function AccordionTrigger({
4623
4640
  opacity: (0, import_react_native_reanimated3.interpolate)(progress.value, [0, 1], [1, 0.8], import_react_native_reanimated3.Extrapolation.CLAMP)
4624
4641
  }));
4625
4642
  const textStyles2 = {
4626
- fontSize: import_react_native41.Platform.OS === "web" ? 16 : 18,
4643
+ fontSize: import_react_native40.Platform.OS === "web" ? 16 : 18,
4627
4644
  fontWeight: "500",
4628
4645
  color: colors.text
4629
4646
  };
4630
4647
  return /* @__PURE__ */ React37.createElement(TextStyleProvider, { style: textStyles2 }, /* @__PURE__ */ React37.createElement(AccordionPrimitive.Header, { style: styles26.header }, /* @__PURE__ */ React37.createElement(AccordionPrimitive.Trigger, { ...props, asChild: true }, /* @__PURE__ */ React37.createElement(
4631
4648
  Trigger4,
4632
4649
  {
4633
- style: import_react_native41.StyleSheet.flatten([
4650
+ style: import_react_native40.StyleSheet.flatten([
4634
4651
  styles26.trigger,
4635
- { flex: import_react_native41.Platform.OS === "web" ? 1 : void 0 },
4652
+ { flex: import_react_native40.Platform.OS === "web" ? 1 : void 0 },
4636
4653
  style
4637
4654
  ])
4638
4655
  },
@@ -4645,15 +4662,15 @@ function AccordionContent({
4645
4662
  children,
4646
4663
  ...props
4647
4664
  }) {
4648
- const { colors } = (0, import_native21.useTheme)();
4665
+ const { colors } = (0, import_native20.useTheme)();
4649
4666
  const textStyles2 = {
4650
- fontSize: import_react_native41.Platform.OS === "web" ? 14 : 18,
4667
+ fontSize: import_react_native40.Platform.OS === "web" ? 14 : 18,
4651
4668
  color: colors.text
4652
4669
  };
4653
4670
  return /* @__PURE__ */ React37.createElement(TextStyleProvider, { style: textStyles2 }, /* @__PURE__ */ React37.createElement(
4654
4671
  AccordionPrimitive.Content,
4655
4672
  {
4656
- style: import_react_native41.StyleSheet.flatten([
4673
+ style: import_react_native40.StyleSheet.flatten([
4657
4674
  styles26.content,
4658
4675
  { overflow: "hidden" },
4659
4676
  style
@@ -4667,20 +4684,20 @@ function InnerContent({
4667
4684
  children,
4668
4685
  style
4669
4686
  }) {
4670
- if (import_react_native41.Platform.OS === "web") {
4671
- return /* @__PURE__ */ React37.createElement(import_react_native41.View, { style: import_react_native41.StyleSheet.flatten([styles26.innerContent, style]) }, children);
4687
+ if (import_react_native40.Platform.OS === "web") {
4688
+ return /* @__PURE__ */ React37.createElement(import_react_native40.View, { style: import_react_native40.StyleSheet.flatten([styles26.innerContent, style]) }, children);
4672
4689
  }
4673
4690
  return /* @__PURE__ */ React37.createElement(
4674
4691
  import_react_native_reanimated3.default.View,
4675
4692
  {
4676
4693
  entering: import_react_native_reanimated3.FadeIn,
4677
4694
  exiting: import_react_native_reanimated3.FadeOutUp.duration(200),
4678
- style: import_react_native41.StyleSheet.flatten([styles26.innerContent, style])
4695
+ style: import_react_native40.StyleSheet.flatten([styles26.innerContent, style])
4679
4696
  },
4680
4697
  children
4681
4698
  );
4682
4699
  }
4683
- var styles26 = import_react_native41.StyleSheet.create({
4700
+ var styles26 = import_react_native40.StyleSheet.create({
4684
4701
  itemContainer: {
4685
4702
  overflow: "hidden"
4686
4703
  },
@@ -4705,9 +4722,9 @@ var styles26 = import_react_native41.StyleSheet.create({
4705
4722
  });
4706
4723
 
4707
4724
  // components/ui/alert.tsx
4708
- var import_native22 = require("@react-navigation/native");
4725
+ var import_native21 = require("@react-navigation/native");
4709
4726
  var React38 = __toESM(require("react"));
4710
- var import_react_native42 = require("react-native");
4727
+ var import_react_native41 = require("react-native");
4711
4728
  function Alert({
4712
4729
  style,
4713
4730
  variant = "default",
@@ -4716,16 +4733,16 @@ function Alert({
4716
4733
  iconSize = 16,
4717
4734
  ...props
4718
4735
  }) {
4719
- const { colors } = (0, import_native22.useTheme)();
4736
+ const { colors } = (0, import_native21.useTheme)();
4720
4737
  const getAlertStyles = () => {
4721
4738
  const baseAlertStyles = {
4722
4739
  backgroundColor: colors.background,
4723
4740
  borderColor: variant === "destructive" ? colors.notification : colors.border,
4724
4741
  shadowColor: colors.text
4725
4742
  };
4726
- return import_react_native42.StyleSheet.flatten([styles27.base, baseAlertStyles, style]);
4743
+ return import_react_native41.StyleSheet.flatten([styles27.base, baseAlertStyles, style]);
4727
4744
  };
4728
- return /* @__PURE__ */ React38.createElement(import_react_native42.View, { role: "alert", style: getAlertStyles(), ...props }, /* @__PURE__ */ React38.createElement(import_react_native42.View, { style: styles27.icon }, /* @__PURE__ */ React38.createElement(
4745
+ return /* @__PURE__ */ React38.createElement(import_react_native41.View, { role: "alert", style: getAlertStyles(), ...props }, /* @__PURE__ */ React38.createElement(import_react_native41.View, { style: styles27.icon }, /* @__PURE__ */ React38.createElement(
4729
4746
  Icon2,
4730
4747
  {
4731
4748
  size: iconSize,
@@ -4734,11 +4751,11 @@ function Alert({
4734
4751
  )), children);
4735
4752
  }
4736
4753
  function AlertTitle({ style, ...props }) {
4737
- const { colors } = (0, import_native22.useTheme)();
4754
+ const { colors } = (0, import_native21.useTheme)();
4738
4755
  return /* @__PURE__ */ React38.createElement(
4739
4756
  Text2,
4740
4757
  {
4741
- style: import_react_native42.StyleSheet.flatten([styles27.title, { color: colors.text }, style]),
4758
+ style: import_react_native41.StyleSheet.flatten([styles27.title, { color: colors.text }, style]),
4742
4759
  ...props
4743
4760
  }
4744
4761
  );
@@ -4747,11 +4764,11 @@ function AlertDescription({
4747
4764
  style,
4748
4765
  ...props
4749
4766
  }) {
4750
- const { colors } = (0, import_native22.useTheme)();
4767
+ const { colors } = (0, import_native21.useTheme)();
4751
4768
  return /* @__PURE__ */ React38.createElement(
4752
4769
  Text2,
4753
4770
  {
4754
- style: import_react_native42.StyleSheet.flatten([
4771
+ style: import_react_native41.StyleSheet.flatten([
4755
4772
  styles27.description,
4756
4773
  { color: colors.text },
4757
4774
  style
@@ -4760,7 +4777,7 @@ function AlertDescription({
4760
4777
  }
4761
4778
  );
4762
4779
  }
4763
- var styles27 = import_react_native42.StyleSheet.create({
4780
+ var styles27 = import_react_native41.StyleSheet.create({
4764
4781
  base: {
4765
4782
  position: "relative",
4766
4783
  width: "100%",
@@ -4806,11 +4823,11 @@ var AspectRatio = AspectRatioPrimitive.Root;
4806
4823
  // components/ui/badge.tsx
4807
4824
  var import_react34 = __toESM(require("react"));
4808
4825
  var Slot2 = __toESM(require("@rn-primitives/slot"));
4809
- var import_react_native43 = require("react-native");
4810
- var import_native23 = require("@react-navigation/native");
4826
+ var import_react_native42 = require("react-native");
4827
+ var import_native22 = require("@react-navigation/native");
4811
4828
  function Badge({ style, variant = "default", asChild, ...props }) {
4812
- const { colors } = (0, import_native23.useTheme)();
4813
- const Component = asChild ? Slot2.View : import_react_native43.View;
4829
+ const { colors } = (0, import_native22.useTheme)();
4830
+ const Component = asChild ? Slot2.View : import_react_native42.View;
4814
4831
  const getVariantStyles = () => {
4815
4832
  switch (variant) {
4816
4833
  case "default":
@@ -4842,18 +4859,18 @@ function Badge({ style, variant = "default", asChild, ...props }) {
4842
4859
  return colors.background;
4843
4860
  }
4844
4861
  };
4845
- const badgeStyle = import_react_native43.StyleSheet.flatten([
4862
+ const badgeStyle = import_react_native42.StyleSheet.flatten([
4846
4863
  styles28.base,
4847
4864
  getVariantStyles(),
4848
4865
  style
4849
4866
  ]);
4850
- const textStyle = import_react_native43.StyleSheet.flatten([
4867
+ const textStyle = import_react_native42.StyleSheet.flatten([
4851
4868
  textStyles.base,
4852
4869
  { color: getTextColor() }
4853
4870
  ]);
4854
4871
  return /* @__PURE__ */ import_react34.default.createElement(TextStyleProvider, { style: textStyle }, /* @__PURE__ */ import_react34.default.createElement(Component, { style: badgeStyle, ...props }));
4855
4872
  }
4856
- var styles28 = import_react_native43.StyleSheet.create({
4873
+ var styles28 = import_react_native42.StyleSheet.create({
4857
4874
  base: {
4858
4875
  flexDirection: "row",
4859
4876
  alignItems: "center",
@@ -4863,7 +4880,7 @@ var styles28 = import_react_native43.StyleSheet.create({
4863
4880
  paddingVertical: 2
4864
4881
  }
4865
4882
  });
4866
- var textStyles = import_react_native43.StyleSheet.create({
4883
+ var textStyles = import_react_native42.StyleSheet.create({
4867
4884
  base: {
4868
4885
  fontSize: 12,
4869
4886
  fontWeight: "600"
@@ -4879,12 +4896,12 @@ var CollapsibleContent = CollapsiblePrimitive.Content;
4879
4896
  // components/ui/context-menu.tsx
4880
4897
  var ContextMenuPrimitive = __toESM(require("@rn-primitives/context-menu"));
4881
4898
  var React40 = __toESM(require("react"));
4882
- var import_react_native44 = require("react-native");
4899
+ var import_react_native43 = require("react-native");
4883
4900
  var import_lucide_react_native33 = require("lucide-react-native");
4884
4901
  var import_lucide_react_native34 = require("lucide-react-native");
4885
4902
  var import_lucide_react_native35 = require("lucide-react-native");
4886
4903
  var import_lucide_react_native36 = require("lucide-react-native");
4887
- var import_native24 = require("@react-navigation/native");
4904
+ var import_native23 = require("@react-navigation/native");
4888
4905
  var ContextMenu = ContextMenuPrimitive.Root;
4889
4906
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
4890
4907
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -4896,14 +4913,14 @@ function ContextMenuSubTrigger({
4896
4913
  children,
4897
4914
  ...props
4898
4915
  }) {
4899
- const { colors } = (0, import_native24.useTheme)();
4916
+ const { colors } = (0, import_native23.useTheme)();
4900
4917
  const { open } = ContextMenuPrimitive.useSubContext();
4901
- const Icon2 = import_react_native44.Platform.OS === "web" ? import_lucide_react_native35.ChevronRight : open ? import_lucide_react_native36.ChevronUp : import_lucide_react_native34.ChevronDown;
4918
+ const Icon2 = import_react_native43.Platform.OS === "web" ? import_lucide_react_native35.ChevronRight : open ? import_lucide_react_native36.ChevronUp : import_lucide_react_native34.ChevronDown;
4902
4919
  const textStyles2 = {
4903
- fontSize: import_react_native44.Platform.OS === "web" ? 14 : 18,
4920
+ fontSize: import_react_native43.Platform.OS === "web" ? 14 : 18,
4904
4921
  color: open ? colors.primary : colors.primary
4905
4922
  };
4906
- const triggerStyles = import_react_native44.StyleSheet.flatten([
4923
+ const triggerStyles = import_react_native43.StyleSheet.flatten([
4907
4924
  styles29.subTrigger,
4908
4925
  {
4909
4926
  backgroundColor: open ? colors.border : "transparent",
@@ -4917,8 +4934,8 @@ function ContextMenuSubContent({
4917
4934
  style,
4918
4935
  ...props
4919
4936
  }) {
4920
- const { colors } = (0, import_native24.useTheme)();
4921
- const contentStyles = import_react_native44.StyleSheet.flatten([
4937
+ const { colors } = (0, import_native23.useTheme)();
4938
+ const contentStyles = import_react_native43.StyleSheet.flatten([
4922
4939
  styles29.subContent,
4923
4940
  {
4924
4941
  backgroundColor: colors.background,
@@ -4935,8 +4952,8 @@ function ContextMenuContent({
4935
4952
  portalHost,
4936
4953
  ...props
4937
4954
  }) {
4938
- const { colors } = (0, import_native24.useTheme)();
4939
- const contentStyles = import_react_native44.StyleSheet.flatten([
4955
+ const { colors } = (0, import_native23.useTheme)();
4956
+ const contentStyles = import_react_native43.StyleSheet.flatten([
4940
4957
  styles29.content,
4941
4958
  {
4942
4959
  backgroundColor: colors.background,
@@ -4948,10 +4965,10 @@ function ContextMenuContent({
4948
4965
  return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ React40.createElement(
4949
4966
  ContextMenuPrimitive.Overlay,
4950
4967
  {
4951
- style: overlayStyle ? import_react_native44.StyleSheet.flatten([
4952
- import_react_native44.Platform.OS !== "web" ? import_react_native44.StyleSheet.absoluteFill : void 0,
4968
+ style: overlayStyle ? import_react_native43.StyleSheet.flatten([
4969
+ import_react_native43.Platform.OS !== "web" ? import_react_native43.StyleSheet.absoluteFill : void 0,
4953
4970
  overlayStyle
4954
- ]) : import_react_native44.Platform.OS !== "web" ? import_react_native44.StyleSheet.absoluteFill : void 0
4971
+ ]) : import_react_native43.Platform.OS !== "web" ? import_react_native43.StyleSheet.absoluteFill : void 0
4955
4972
  },
4956
4973
  /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.Content, { style: contentStyles, ...props })
4957
4974
  ));
@@ -4961,12 +4978,12 @@ function ContextMenuItem({
4961
4978
  inset,
4962
4979
  ...props
4963
4980
  }) {
4964
- const { colors } = (0, import_native24.useTheme)();
4981
+ const { colors } = (0, import_native23.useTheme)();
4965
4982
  const textStyles2 = {
4966
- fontSize: import_react_native44.Platform.OS === "web" ? 14 : 18,
4983
+ fontSize: import_react_native43.Platform.OS === "web" ? 14 : 18,
4967
4984
  color: colors.text
4968
4985
  };
4969
- const itemStyles = import_react_native44.StyleSheet.flatten([
4986
+ const itemStyles = import_react_native43.StyleSheet.flatten([
4970
4987
  styles29.item,
4971
4988
  {
4972
4989
  paddingLeft: inset ? 32 : 8,
@@ -4981,38 +4998,38 @@ function ContextMenuCheckboxItem({
4981
4998
  children,
4982
4999
  ...props
4983
5000
  }) {
4984
- const { colors } = (0, import_native24.useTheme)();
4985
- const checkboxStyles = import_react_native44.StyleSheet.flatten([
5001
+ const { colors } = (0, import_native23.useTheme)();
5002
+ const checkboxStyles = import_react_native43.StyleSheet.flatten([
4986
5003
  styles29.checkboxItem,
4987
5004
  {
4988
5005
  opacity: props.disabled ? 0.5 : 1
4989
5006
  },
4990
5007
  style
4991
5008
  ]);
4992
- return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.CheckboxItem, { style: checkboxStyles, ...props }, /* @__PURE__ */ React40.createElement(import_react_native44.View, { style: styles29.checkboxIndicator }, /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React40.createElement(import_lucide_react_native33.Check, { size: 14, strokeWidth: 3, color: colors.text }))), children);
5009
+ return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.CheckboxItem, { style: checkboxStyles, ...props }, /* @__PURE__ */ React40.createElement(import_react_native43.View, { style: styles29.checkboxIndicator }, /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React40.createElement(import_lucide_react_native33.Check, { size: 14, strokeWidth: 3, color: colors.text }))), children);
4993
5010
  }
4994
5011
  function ContextMenuRadioItem({
4995
5012
  style,
4996
5013
  children,
4997
5014
  ...props
4998
5015
  }) {
4999
- const { colors } = (0, import_native24.useTheme)();
5000
- const radioStyles = import_react_native44.StyleSheet.flatten([
5016
+ const { colors } = (0, import_native23.useTheme)();
5017
+ const radioStyles = import_react_native43.StyleSheet.flatten([
5001
5018
  styles29.radioItem,
5002
5019
  {
5003
5020
  opacity: props.disabled ? 0.5 : 1
5004
5021
  },
5005
5022
  style
5006
5023
  ]);
5007
- return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.RadioItem, { style: radioStyles, ...props }, /* @__PURE__ */ React40.createElement(import_react_native44.View, { style: styles29.radioIndicator }, /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React40.createElement(import_react_native44.View, { style: [styles29.radioDot, { backgroundColor: colors.text }] }))), children);
5024
+ return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.RadioItem, { style: radioStyles, ...props }, /* @__PURE__ */ React40.createElement(import_react_native43.View, { style: styles29.radioIndicator }, /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.ItemIndicator, null, /* @__PURE__ */ React40.createElement(import_react_native43.View, { style: [styles29.radioDot, { backgroundColor: colors.text }] }))), children);
5008
5025
  }
5009
5026
  function ContextMenuLabel({
5010
5027
  style,
5011
5028
  inset,
5012
5029
  ...props
5013
5030
  }) {
5014
- const { colors } = (0, import_native24.useTheme)();
5015
- const labelStyles = import_react_native44.StyleSheet.flatten([
5031
+ const { colors } = (0, import_native23.useTheme)();
5032
+ const labelStyles = import_react_native43.StyleSheet.flatten([
5016
5033
  styles29.label,
5017
5034
  {
5018
5035
  color: colors.text,
@@ -5026,8 +5043,8 @@ function ContextMenuSeparator({
5026
5043
  style,
5027
5044
  ...props
5028
5045
  }) {
5029
- const { colors } = (0, import_native24.useTheme)();
5030
- const separatorStyles = import_react_native44.StyleSheet.flatten([
5046
+ const { colors } = (0, import_native23.useTheme)();
5047
+ const separatorStyles = import_react_native43.StyleSheet.flatten([
5031
5048
  styles29.separator,
5032
5049
  {
5033
5050
  backgroundColor: colors.border
@@ -5037,17 +5054,17 @@ function ContextMenuSeparator({
5037
5054
  return /* @__PURE__ */ React40.createElement(ContextMenuPrimitive.Separator, { style: separatorStyles, ...props });
5038
5055
  }
5039
5056
  function ContextMenuShortcut({ style, ...props }) {
5040
- const { colors } = (0, import_native24.useTheme)();
5041
- const shortcutStyles = import_react_native44.StyleSheet.flatten([
5057
+ const { colors } = (0, import_native23.useTheme)();
5058
+ const shortcutStyles = import_react_native43.StyleSheet.flatten([
5042
5059
  styles29.shortcut,
5043
5060
  {
5044
5061
  color: colors.text
5045
5062
  },
5046
5063
  style
5047
5064
  ]);
5048
- return /* @__PURE__ */ React40.createElement(import_react_native44.Text, { style: shortcutStyles, ...props });
5065
+ return /* @__PURE__ */ React40.createElement(import_react_native43.Text, { style: shortcutStyles, ...props });
5049
5066
  }
5050
- var styles29 = import_react_native44.StyleSheet.create({
5067
+ var styles29 = import_react_native43.StyleSheet.create({
5051
5068
  subTrigger: {
5052
5069
  flexDirection: "row",
5053
5070
  alignItems: "center",
@@ -5132,7 +5149,7 @@ var styles29 = import_react_native44.StyleSheet.create({
5132
5149
  label: {
5133
5150
  paddingHorizontal: 8,
5134
5151
  paddingVertical: 6,
5135
- fontSize: import_react_native44.Platform.OS === "web" ? 14 : 16,
5152
+ fontSize: import_react_native43.Platform.OS === "web" ? 14 : 16,
5136
5153
  fontWeight: "600"
5137
5154
  },
5138
5155
  separator: {
@@ -5142,7 +5159,7 @@ var styles29 = import_react_native44.StyleSheet.create({
5142
5159
  },
5143
5160
  shortcut: {
5144
5161
  marginLeft: "auto",
5145
- fontSize: import_react_native44.Platform.OS === "web" ? 12 : 14,
5162
+ fontSize: import_react_native43.Platform.OS === "web" ? 12 : 14,
5146
5163
  letterSpacing: 1
5147
5164
  }
5148
5165
  });
@@ -5150,9 +5167,9 @@ var styles29 = import_react_native44.StyleSheet.create({
5150
5167
  // components/ui/hover-card.tsx
5151
5168
  var HoverCardPrimitive = __toESM(require("@rn-primitives/hover-card"));
5152
5169
  var React41 = __toESM(require("react"));
5153
- var import_react_native45 = require("react-native");
5170
+ var import_react_native44 = require("react-native");
5154
5171
  var import_react_native_reanimated4 = __toESM(require("react-native-reanimated"));
5155
- var import_native25 = require("@react-navigation/native");
5172
+ var import_native24 = require("@react-navigation/native");
5156
5173
  var HoverCard = HoverCardPrimitive.Root;
5157
5174
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
5158
5175
  function HoverCardContent({
@@ -5161,8 +5178,8 @@ function HoverCardContent({
5161
5178
  sideOffset = 4,
5162
5179
  ...props
5163
5180
  }) {
5164
- const { colors } = (0, import_native25.useTheme)();
5165
- const contentStyles = import_react_native45.StyleSheet.flatten([
5181
+ const { colors } = (0, import_native24.useTheme)();
5182
+ const contentStyles = import_react_native44.StyleSheet.flatten([
5166
5183
  styles30.content,
5167
5184
  {
5168
5185
  backgroundColor: colors.background,
@@ -5177,7 +5194,7 @@ function HoverCardContent({
5177
5194
  return /* @__PURE__ */ React41.createElement(HoverCardPrimitive.Portal, null, /* @__PURE__ */ React41.createElement(
5178
5195
  HoverCardPrimitive.Overlay,
5179
5196
  {
5180
- style: import_react_native45.Platform.OS !== "web" ? import_react_native45.StyleSheet.absoluteFill : void 0
5197
+ style: import_react_native44.Platform.OS !== "web" ? import_react_native44.StyleSheet.absoluteFill : void 0
5181
5198
  },
5182
5199
  /* @__PURE__ */ React41.createElement(import_react_native_reanimated4.default.View, { entering: import_react_native_reanimated4.FadeIn }, /* @__PURE__ */ React41.createElement(TextStyleProvider, { style: textStyles2 }, /* @__PURE__ */ React41.createElement(
5183
5200
  HoverCardPrimitive.Content,
@@ -5190,7 +5207,7 @@ function HoverCardContent({
5190
5207
  )))
5191
5208
  ));
5192
5209
  }
5193
- var styles30 = import_react_native45.StyleSheet.create({
5210
+ var styles30 = import_react_native44.StyleSheet.create({
5194
5211
  content: {
5195
5212
  zIndex: 50,
5196
5213
  width: 256,
@@ -5207,7 +5224,7 @@ var styles30 = import_react_native45.StyleSheet.create({
5207
5224
  // components/ui/label.tsx
5208
5225
  var LabelPrimitive = __toESM(require("@rn-primitives/label"));
5209
5226
  var React42 = __toESM(require("react"));
5210
- var import_react_native46 = require("react-native");
5227
+ var import_react_native45 = require("react-native");
5211
5228
  function Label3({
5212
5229
  style,
5213
5230
  onPress,
@@ -5228,13 +5245,13 @@ function Label3({
5228
5245
  /* @__PURE__ */ React42.createElement(
5229
5246
  LabelPrimitive.Text,
5230
5247
  {
5231
- style: import_react_native46.StyleSheet.flatten([styles31.text, style]),
5248
+ style: import_react_native45.StyleSheet.flatten([styles31.text, style]),
5232
5249
  ...props
5233
5250
  }
5234
5251
  )
5235
5252
  );
5236
5253
  }
5237
- var styles31 = import_react_native46.StyleSheet.create({
5254
+ var styles31 = import_react_native45.StyleSheet.create({
5238
5255
  root: {
5239
5256
  // web:cursor-default - handled by platform
5240
5257
  },
@@ -5251,12 +5268,12 @@ var styles31 = import_react_native46.StyleSheet.create({
5251
5268
  // components/ui/menubar.tsx
5252
5269
  var MenubarPrimitive = __toESM(require("@rn-primitives/menubar"));
5253
5270
  var React43 = __toESM(require("react"));
5254
- var import_react_native47 = require("react-native");
5271
+ var import_react_native46 = require("react-native");
5255
5272
  var import_lucide_react_native37 = require("lucide-react-native");
5256
5273
  var import_lucide_react_native38 = require("lucide-react-native");
5257
5274
  var import_lucide_react_native39 = require("lucide-react-native");
5258
5275
  var import_lucide_react_native40 = require("lucide-react-native");
5259
- var import_native26 = require("@react-navigation/native");
5276
+ var import_native25 = require("@react-navigation/native");
5260
5277
  var MenubarMenu = MenubarPrimitive.Menu;
5261
5278
  var MenubarGroup = MenubarPrimitive.Group;
5262
5279
  var MenubarPortal = MenubarPrimitive.Portal;
@@ -5266,8 +5283,8 @@ function Menubar({
5266
5283
  style,
5267
5284
  ...props
5268
5285
  }) {
5269
- const { colors } = (0, import_native26.useTheme)();
5270
- const rootStyles = import_react_native47.StyleSheet.flatten([
5286
+ const { colors } = (0, import_native25.useTheme)();
5287
+ const rootStyles = import_react_native46.StyleSheet.flatten([
5271
5288
  styles32.root,
5272
5289
  {
5273
5290
  backgroundColor: colors.background,
@@ -5281,10 +5298,10 @@ function MenubarTrigger({
5281
5298
  style,
5282
5299
  ...props
5283
5300
  }) {
5284
- const { colors } = (0, import_native26.useTheme)();
5301
+ const { colors } = (0, import_native25.useTheme)();
5285
5302
  const { value } = MenubarPrimitive.useRootContext();
5286
5303
  const { value: itemValue } = MenubarPrimitive.useMenuContext();
5287
- const triggerStyles = import_react_native47.StyleSheet.flatten([
5304
+ const triggerStyles = import_react_native46.StyleSheet.flatten([
5288
5305
  styles32.trigger,
5289
5306
  {
5290
5307
  backgroundColor: value === itemValue ? colors.border : "transparent",
@@ -5300,14 +5317,14 @@ function MenubarSubTrigger({
5300
5317
  children,
5301
5318
  ...props
5302
5319
  }) {
5303
- const { colors } = (0, import_native26.useTheme)();
5320
+ const { colors } = (0, import_native25.useTheme)();
5304
5321
  const { open } = MenubarPrimitive.useSubContext();
5305
- const Icon2 = import_react_native47.Platform.OS === "web" ? import_lucide_react_native39.ChevronRight : open ? import_lucide_react_native40.ChevronUp : import_lucide_react_native38.ChevronDown;
5322
+ const Icon2 = import_react_native46.Platform.OS === "web" ? import_lucide_react_native39.ChevronRight : open ? import_lucide_react_native40.ChevronUp : import_lucide_react_native38.ChevronDown;
5306
5323
  const textStyles2 = {
5307
- fontSize: import_react_native47.Platform.OS === "web" ? 14 : 18,
5324
+ fontSize: import_react_native46.Platform.OS === "web" ? 14 : 18,
5308
5325
  color: open ? colors.primary : colors.primary
5309
5326
  };
5310
- const triggerStyles = import_react_native47.StyleSheet.flatten([
5327
+ const triggerStyles = import_react_native46.StyleSheet.flatten([
5311
5328
  styles32.subTrigger,
5312
5329
  {
5313
5330
  backgroundColor: open ? colors.border : "transparent",
@@ -5321,8 +5338,8 @@ function MenubarSubContent({
5321
5338
  style,
5322
5339
  ...props
5323
5340
  }) {
5324
- const { colors } = (0, import_native26.useTheme)();
5325
- const contentStyles = import_react_native47.StyleSheet.flatten([
5341
+ const { colors } = (0, import_native25.useTheme)();
5342
+ const contentStyles = import_react_native46.StyleSheet.flatten([
5326
5343
  styles32.subContent,
5327
5344
  {
5328
5345
  backgroundColor: colors.background,
@@ -5338,8 +5355,8 @@ function MenubarContent({
5338
5355
  portalHost,
5339
5356
  ...props
5340
5357
  }) {
5341
- const { colors } = (0, import_native26.useTheme)();
5342
- const contentStyles = import_react_native47.StyleSheet.flatten([
5358
+ const { colors } = (0, import_native25.useTheme)();
5359
+ const contentStyles = import_react_native46.StyleSheet.flatten([
5343
5360
  styles32.content,
5344
5361
  {
5345
5362
  backgroundColor: colors.background,
@@ -5355,12 +5372,12 @@ function MenubarItem({
5355
5372
  inset,
5356
5373
  ...props
5357
5374
  }) {
5358
- const { colors } = (0, import_native26.useTheme)();
5375
+ const { colors } = (0, import_native25.useTheme)();
5359
5376
  const textStyles2 = {
5360
- fontSize: import_react_native47.Platform.OS === "web" ? 14 : 18,
5377
+ fontSize: import_react_native46.Platform.OS === "web" ? 14 : 18,
5361
5378
  color: colors.text
5362
5379
  };
5363
- const itemStyles = import_react_native47.StyleSheet.flatten([
5380
+ const itemStyles = import_react_native46.StyleSheet.flatten([
5364
5381
  styles32.item,
5365
5382
  {
5366
5383
  paddingLeft: inset ? 32 : 8,
@@ -5376,8 +5393,8 @@ function MenubarCheckboxItem({
5376
5393
  checked,
5377
5394
  ...props
5378
5395
  }) {
5379
- const { colors } = (0, import_native26.useTheme)();
5380
- const checkboxStyles = import_react_native47.StyleSheet.flatten([
5396
+ const { colors } = (0, import_native25.useTheme)();
5397
+ const checkboxStyles = import_react_native46.StyleSheet.flatten([
5381
5398
  styles32.checkboxItem,
5382
5399
  {
5383
5400
  opacity: props.disabled ? 0.5 : 1
@@ -5391,7 +5408,7 @@ function MenubarCheckboxItem({
5391
5408
  checked,
5392
5409
  ...props
5393
5410
  },
5394
- /* @__PURE__ */ React43.createElement(import_react_native47.View, { style: styles32.checkboxIndicator }, /* @__PURE__ */ React43.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React43.createElement(import_lucide_react_native37.Check, { size: 14, strokeWidth: 3, color: colors.text }))),
5411
+ /* @__PURE__ */ React43.createElement(import_react_native46.View, { style: styles32.checkboxIndicator }, /* @__PURE__ */ React43.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React43.createElement(import_lucide_react_native37.Check, { size: 14, strokeWidth: 3, color: colors.text }))),
5395
5412
  children
5396
5413
  );
5397
5414
  }
@@ -5400,23 +5417,23 @@ function MenubarRadioItem({
5400
5417
  children,
5401
5418
  ...props
5402
5419
  }) {
5403
- const { colors } = (0, import_native26.useTheme)();
5404
- const radioStyles = import_react_native47.StyleSheet.flatten([
5420
+ const { colors } = (0, import_native25.useTheme)();
5421
+ const radioStyles = import_react_native46.StyleSheet.flatten([
5405
5422
  styles32.radioItem,
5406
5423
  {
5407
5424
  opacity: props.disabled ? 0.5 : 1
5408
5425
  },
5409
5426
  style
5410
5427
  ]);
5411
- return /* @__PURE__ */ React43.createElement(MenubarPrimitive.RadioItem, { style: radioStyles, ...props }, /* @__PURE__ */ React43.createElement(import_react_native47.View, { style: styles32.radioIndicator }, /* @__PURE__ */ React43.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React43.createElement(import_react_native47.View, { style: [styles32.radioDot, { backgroundColor: colors.text }] }))), children);
5428
+ return /* @__PURE__ */ React43.createElement(MenubarPrimitive.RadioItem, { style: radioStyles, ...props }, /* @__PURE__ */ React43.createElement(import_react_native46.View, { style: styles32.radioIndicator }, /* @__PURE__ */ React43.createElement(MenubarPrimitive.ItemIndicator, null, /* @__PURE__ */ React43.createElement(import_react_native46.View, { style: [styles32.radioDot, { backgroundColor: colors.text }] }))), children);
5412
5429
  }
5413
5430
  function MenubarLabel({
5414
5431
  style,
5415
5432
  inset,
5416
5433
  ...props
5417
5434
  }) {
5418
- const { colors } = (0, import_native26.useTheme)();
5419
- const labelStyles = import_react_native47.StyleSheet.flatten([
5435
+ const { colors } = (0, import_native25.useTheme)();
5436
+ const labelStyles = import_react_native46.StyleSheet.flatten([
5420
5437
  styles32.label,
5421
5438
  {
5422
5439
  color: colors.text,
@@ -5430,8 +5447,8 @@ function MenubarSeparator({
5430
5447
  style,
5431
5448
  ...props
5432
5449
  }) {
5433
- const { colors } = (0, import_native26.useTheme)();
5434
- const separatorStyles = import_react_native47.StyleSheet.flatten([
5450
+ const { colors } = (0, import_native25.useTheme)();
5451
+ const separatorStyles = import_react_native46.StyleSheet.flatten([
5435
5452
  styles32.separator,
5436
5453
  {
5437
5454
  backgroundColor: colors.border
@@ -5441,20 +5458,20 @@ function MenubarSeparator({
5441
5458
  return /* @__PURE__ */ React43.createElement(MenubarPrimitive.Separator, { style: separatorStyles, ...props });
5442
5459
  }
5443
5460
  function MenubarShortcut({ style, ...props }) {
5444
- const { colors } = (0, import_native26.useTheme)();
5445
- const shortcutStyles = import_react_native47.StyleSheet.flatten([
5461
+ const { colors } = (0, import_native25.useTheme)();
5462
+ const shortcutStyles = import_react_native46.StyleSheet.flatten([
5446
5463
  styles32.shortcut,
5447
5464
  {
5448
5465
  color: colors.text
5449
5466
  },
5450
5467
  style
5451
5468
  ]);
5452
- return /* @__PURE__ */ React43.createElement(import_react_native47.Text, { style: shortcutStyles, ...props });
5469
+ return /* @__PURE__ */ React43.createElement(import_react_native46.Text, { style: shortcutStyles, ...props });
5453
5470
  }
5454
- var styles32 = import_react_native47.StyleSheet.create({
5471
+ var styles32 = import_react_native46.StyleSheet.create({
5455
5472
  root: {
5456
5473
  flexDirection: "row",
5457
- height: import_react_native47.Platform.OS === "web" ? 40 : 48,
5474
+ height: import_react_native46.Platform.OS === "web" ? 40 : 48,
5458
5475
  alignItems: "center",
5459
5476
  gap: 4,
5460
5477
  borderRadius: 6,
@@ -5467,7 +5484,7 @@ var styles32 = import_react_native47.StyleSheet.create({
5467
5484
  borderRadius: 6,
5468
5485
  paddingHorizontal: 12,
5469
5486
  paddingVertical: 6,
5470
- fontSize: import_react_native47.Platform.OS === "web" ? 14 : 16,
5487
+ fontSize: import_react_native46.Platform.OS === "web" ? 14 : 16,
5471
5488
  fontWeight: "500"
5472
5489
  },
5473
5490
  subTrigger: {
@@ -5551,7 +5568,7 @@ var styles32 = import_react_native47.StyleSheet.create({
5551
5568
  label: {
5552
5569
  paddingHorizontal: 8,
5553
5570
  paddingVertical: 6,
5554
- fontSize: import_react_native47.Platform.OS === "web" ? 14 : 16,
5571
+ fontSize: import_react_native46.Platform.OS === "web" ? 14 : 16,
5555
5572
  fontWeight: "600"
5556
5573
  },
5557
5574
  separator: {
@@ -5561,7 +5578,7 @@ var styles32 = import_react_native47.StyleSheet.create({
5561
5578
  },
5562
5579
  shortcut: {
5563
5580
  marginLeft: "auto",
5564
- fontSize: import_react_native47.Platform.OS === "web" ? 12 : 14,
5581
+ fontSize: import_react_native46.Platform.OS === "web" ? 12 : 14,
5565
5582
  letterSpacing: 1
5566
5583
  },
5567
5584
  icon: {
@@ -5572,9 +5589,9 @@ var styles32 = import_react_native47.StyleSheet.create({
5572
5589
  // components/ui/navigation-menu.tsx
5573
5590
  var NavigationMenuPrimitive = __toESM(require("@rn-primitives/navigation-menu"));
5574
5591
  var React44 = __toESM(require("react"));
5575
- var import_react_native48 = require("react-native");
5592
+ var import_react_native47 = require("react-native");
5576
5593
  var import_lucide_react_native41 = require("lucide-react-native");
5577
- var import_native27 = require("@react-navigation/native");
5594
+ var import_native26 = require("@react-navigation/native");
5578
5595
  function NavigationMenu({
5579
5596
  style,
5580
5597
  children,
@@ -5583,11 +5600,11 @@ function NavigationMenu({
5583
5600
  return /* @__PURE__ */ React44.createElement(
5584
5601
  NavigationMenuPrimitive.Root,
5585
5602
  {
5586
- style: import_react_native48.StyleSheet.flatten([styles33.navigationMenu, style]),
5603
+ style: import_react_native47.StyleSheet.flatten([styles33.navigationMenu, style]),
5587
5604
  ...props
5588
5605
  },
5589
5606
  children,
5590
- import_react_native48.Platform.OS === "web" && /* @__PURE__ */ React44.createElement(NavigationMenuViewport, null)
5607
+ import_react_native47.Platform.OS === "web" && /* @__PURE__ */ React44.createElement(NavigationMenuViewport, null)
5591
5608
  );
5592
5609
  }
5593
5610
  function NavigationMenuList({
@@ -5597,7 +5614,7 @@ function NavigationMenuList({
5597
5614
  return /* @__PURE__ */ React44.createElement(
5598
5615
  NavigationMenuPrimitive.List,
5599
5616
  {
5600
- style: import_react_native48.StyleSheet.flatten([styles33.navigationMenuList, style]),
5617
+ style: import_react_native47.StyleSheet.flatten([styles33.navigationMenuList, style]),
5601
5618
  ...props
5602
5619
  }
5603
5620
  );
@@ -5608,12 +5625,12 @@ function NavigationMenuTrigger({
5608
5625
  children,
5609
5626
  ...props
5610
5627
  }) {
5611
- const { colors } = (0, import_native27.useTheme)();
5628
+ const { colors } = (0, import_native26.useTheme)();
5612
5629
  const { value } = NavigationMenuPrimitive.useRootContext();
5613
5630
  const { value: itemValue } = NavigationMenuPrimitive.useItemContext();
5614
5631
  const isActive = value === itemValue;
5615
5632
  return /* @__PURE__ */ React44.createElement(NavigationMenuPrimitive.Trigger, { asChild: true }, /* @__PURE__ */ React44.createElement(
5616
- import_react_native48.Pressable,
5633
+ import_react_native47.Pressable,
5617
5634
  {
5618
5635
  style: ({ hovered }) => ({
5619
5636
  ...styles33.trigger,
@@ -5623,7 +5640,7 @@ function NavigationMenuTrigger({
5623
5640
  ...props
5624
5641
  },
5625
5642
  children,
5626
- /* @__PURE__ */ React44.createElement(import_react_native48.View, { style: styles33.chevronContainer }, /* @__PURE__ */ React44.createElement(import_lucide_react_native41.ChevronDown, { size: 12, color: colors.text, "aria-hidden": true }))
5643
+ /* @__PURE__ */ React44.createElement(import_react_native47.View, { style: styles33.chevronContainer }, /* @__PURE__ */ React44.createElement(import_lucide_react_native41.ChevronDown, { size: 12, color: colors.text, "aria-hidden": true }))
5627
5644
  ));
5628
5645
  }
5629
5646
  function NavigationMenuContent({
@@ -5632,11 +5649,11 @@ function NavigationMenuContent({
5632
5649
  portalHost,
5633
5650
  ...props
5634
5651
  }) {
5635
- const { colors } = (0, import_native27.useTheme)();
5652
+ const { colors } = (0, import_native26.useTheme)();
5636
5653
  return /* @__PURE__ */ React44.createElement(NavigationMenuPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ React44.createElement(
5637
5654
  NavigationMenuPrimitive.Content,
5638
5655
  {
5639
- style: import_react_native48.StyleSheet.flatten([
5656
+ style: import_react_native47.StyleSheet.flatten([
5640
5657
  styles33.content,
5641
5658
  {
5642
5659
  backgroundColor: colors.background,
@@ -5646,7 +5663,7 @@ function NavigationMenuContent({
5646
5663
  ]),
5647
5664
  ...props
5648
5665
  },
5649
- /* @__PURE__ */ React44.createElement(import_react_native48.View, null, children)
5666
+ /* @__PURE__ */ React44.createElement(import_react_native47.View, null, children)
5650
5667
  ));
5651
5668
  }
5652
5669
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
@@ -5654,11 +5671,11 @@ function NavigationMenuViewport({
5654
5671
  style,
5655
5672
  ...props
5656
5673
  }) {
5657
- const { colors } = (0, import_native27.useTheme)();
5658
- return /* @__PURE__ */ React44.createElement(import_react_native48.View, { style: styles33.viewportContainer }, /* @__PURE__ */ React44.createElement(
5659
- import_react_native48.View,
5674
+ const { colors } = (0, import_native26.useTheme)();
5675
+ return /* @__PURE__ */ React44.createElement(import_react_native47.View, { style: styles33.viewportContainer }, /* @__PURE__ */ React44.createElement(
5676
+ import_react_native47.View,
5660
5677
  {
5661
- style: import_react_native48.StyleSheet.flatten([
5678
+ style: import_react_native47.StyleSheet.flatten([
5662
5679
  styles33.viewport,
5663
5680
  {
5664
5681
  backgroundColor: colors.background,
@@ -5676,18 +5693,18 @@ function NavigationMenuIndicator({
5676
5693
  style,
5677
5694
  ...props
5678
5695
  }) {
5679
- const { colors } = (0, import_native27.useTheme)();
5696
+ const { colors } = (0, import_native26.useTheme)();
5680
5697
  return /* @__PURE__ */ React44.createElement(
5681
5698
  NavigationMenuPrimitive.Indicator,
5682
5699
  {
5683
5700
  ref,
5684
- style: import_react_native48.StyleSheet.flatten([styles33.indicator, style]),
5701
+ style: import_react_native47.StyleSheet.flatten([styles33.indicator, style]),
5685
5702
  ...props
5686
5703
  },
5687
5704
  /* @__PURE__ */ React44.createElement(
5688
- import_react_native48.View,
5705
+ import_react_native47.View,
5689
5706
  {
5690
- style: import_react_native48.StyleSheet.flatten([
5707
+ style: import_react_native47.StyleSheet.flatten([
5691
5708
  styles33.indicatorArrow,
5692
5709
  { backgroundColor: colors.border }
5693
5710
  ])
@@ -5695,7 +5712,7 @@ function NavigationMenuIndicator({
5695
5712
  )
5696
5713
  );
5697
5714
  }
5698
- var styles33 = import_react_native48.StyleSheet.create({
5715
+ var styles33 = import_react_native47.StyleSheet.create({
5699
5716
  navigationMenu: {
5700
5717
  position: "relative",
5701
5718
  zIndex: 10,
@@ -5710,14 +5727,14 @@ var styles33 = import_react_native48.StyleSheet.create({
5710
5727
  alignItems: "center",
5711
5728
  justifyContent: "center",
5712
5729
  gap: 4,
5713
- ...import_react_native48.Platform.OS === "web" && {
5730
+ ...import_react_native47.Platform.OS === "web" && {
5714
5731
  listStyle: "none"
5715
5732
  }
5716
5733
  },
5717
5734
  trigger: {
5718
5735
  flexDirection: "row",
5719
- height: import_react_native48.Platform.OS === "web" ? 40 : 48,
5720
- paddingHorizontal: import_react_native48.Platform.OS === "web" ? 16 : 12,
5736
+ height: import_react_native47.Platform.OS === "web" ? 40 : 48,
5737
+ paddingHorizontal: import_react_native47.Platform.OS === "web" ? 16 : 12,
5721
5738
  paddingVertical: 8,
5722
5739
  alignItems: "center",
5723
5740
  justifyContent: "center",
@@ -5730,7 +5747,7 @@ var styles33 = import_react_native48.StyleSheet.create({
5730
5747
  },
5731
5748
  content: {
5732
5749
  width: "100%",
5733
- ...import_react_native48.Platform.OS !== "web" && {
5750
+ ...import_react_native47.Platform.OS !== "web" && {
5734
5751
  borderWidth: 1,
5735
5752
  borderRadius: 8,
5736
5753
  shadowColor: "#000",
@@ -5742,7 +5759,7 @@ var styles33 = import_react_native48.StyleSheet.create({
5742
5759
  }
5743
5760
  },
5744
5761
  viewportContainer: {
5745
- ...import_react_native48.Platform.OS === "web" && {
5762
+ ...import_react_native47.Platform.OS === "web" && {
5746
5763
  position: "fixed",
5747
5764
  right: 0,
5748
5765
  top: 48,
@@ -5753,7 +5770,7 @@ var styles33 = import_react_native48.StyleSheet.create({
5753
5770
  }
5754
5771
  },
5755
5772
  viewport: {
5756
- ...import_react_native48.Platform.OS === "web" && {
5773
+ ...import_react_native47.Platform.OS === "web" && {
5757
5774
  position: "relative",
5758
5775
  marginTop: 6,
5759
5776
  width: "100%",
@@ -5795,9 +5812,9 @@ var styles33 = import_react_native48.StyleSheet.create({
5795
5812
  // components/ui/popover.tsx
5796
5813
  var import_react35 = __toESM(require("react"));
5797
5814
  var PopoverPrimitive = __toESM(require("@rn-primitives/popover"));
5798
- var import_react_native49 = require("react-native");
5815
+ var import_react_native48 = require("react-native");
5799
5816
  var import_react_native_reanimated5 = __toESM(require("react-native-reanimated"));
5800
- var import_native28 = require("@react-navigation/native");
5817
+ var import_native27 = require("@react-navigation/native");
5801
5818
  var Popover = PopoverPrimitive.Root;
5802
5819
  var PopoverTrigger = PopoverPrimitive.Trigger;
5803
5820
  function PopoverContent({
@@ -5807,8 +5824,8 @@ function PopoverContent({
5807
5824
  portalHost,
5808
5825
  ...props
5809
5826
  }) {
5810
- const { colors } = (0, import_native28.useTheme)();
5811
- const contentStyles = import_react_native49.StyleSheet.flatten([
5827
+ const { colors } = (0, import_native27.useTheme)();
5828
+ const contentStyles = import_react_native48.StyleSheet.flatten([
5812
5829
  styles34.content,
5813
5830
  {
5814
5831
  backgroundColor: colors.background,
@@ -5823,7 +5840,7 @@ function PopoverContent({
5823
5840
  return /* @__PURE__ */ import_react35.default.createElement(PopoverPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ import_react35.default.createElement(
5824
5841
  PopoverPrimitive.Overlay,
5825
5842
  {
5826
- style: import_react_native49.Platform.OS !== "web" ? import_react_native49.StyleSheet.absoluteFill : void 0
5843
+ style: import_react_native48.Platform.OS !== "web" ? import_react_native48.StyleSheet.absoluteFill : void 0
5827
5844
  },
5828
5845
  /* @__PURE__ */ import_react35.default.createElement(import_react_native_reanimated5.default.View, { entering: import_react_native_reanimated5.FadeIn.duration(200), exiting: import_react_native_reanimated5.FadeOut }, /* @__PURE__ */ import_react35.default.createElement(TextStyleProvider, { style: textStyles2 }, /* @__PURE__ */ import_react35.default.createElement(
5829
5846
  PopoverPrimitive.Content,
@@ -5836,7 +5853,7 @@ function PopoverContent({
5836
5853
  )))
5837
5854
  ));
5838
5855
  }
5839
- var styles34 = import_react_native49.StyleSheet.create({
5856
+ var styles34 = import_react_native48.StyleSheet.create({
5840
5857
  content: {
5841
5858
  zIndex: 50,
5842
5859
  width: 288,
@@ -5853,17 +5870,17 @@ var styles34 = import_react_native49.StyleSheet.create({
5853
5870
  // components/ui/progress.tsx
5854
5871
  var ProgressPrimitive = __toESM(require("@rn-primitives/progress"));
5855
5872
  var React46 = __toESM(require("react"));
5856
- var import_react_native50 = require("react-native");
5873
+ var import_react_native49 = require("react-native");
5857
5874
  var import_react_native_reanimated6 = __toESM(require("react-native-reanimated"));
5858
- var import_native29 = require("@react-navigation/native");
5875
+ var import_native28 = require("@react-navigation/native");
5859
5876
  function Progress({
5860
5877
  style,
5861
5878
  value,
5862
5879
  indicatorStyle,
5863
5880
  ...props
5864
5881
  }) {
5865
- const { colors } = (0, import_native29.useTheme)();
5866
- const progressStyles = import_react_native50.StyleSheet.flatten([
5882
+ const { colors } = (0, import_native28.useTheme)();
5883
+ const progressStyles = import_react_native49.StyleSheet.flatten([
5867
5884
  styles35.progress,
5868
5885
  { backgroundColor: colors.border },
5869
5886
  style
@@ -5874,7 +5891,7 @@ function Indicator4({
5874
5891
  value,
5875
5892
  style
5876
5893
  }) {
5877
- const { colors } = (0, import_native29.useTheme)();
5894
+ const { colors } = (0, import_native28.useTheme)();
5878
5895
  const progress = (0, import_react_native_reanimated6.useDerivedValue)(() => value ?? 0);
5879
5896
  const indicator = (0, import_react_native_reanimated6.useAnimatedStyle)(() => {
5880
5897
  return {
@@ -5884,11 +5901,11 @@ function Indicator4({
5884
5901
  )
5885
5902
  };
5886
5903
  });
5887
- if (import_react_native50.Platform.OS === "web") {
5904
+ if (import_react_native49.Platform.OS === "web") {
5888
5905
  return /* @__PURE__ */ React46.createElement(
5889
- import_react_native50.View,
5906
+ import_react_native49.View,
5890
5907
  {
5891
- style: import_react_native50.StyleSheet.flatten([
5908
+ style: import_react_native49.StyleSheet.flatten([
5892
5909
  styles35.indicatorWeb,
5893
5910
  {
5894
5911
  transform: `translateX(-${100 - (value ?? 0)}%)`,
@@ -5903,7 +5920,7 @@ function Indicator4({
5903
5920
  return /* @__PURE__ */ React46.createElement(ProgressPrimitive.Indicator, { asChild: true }, /* @__PURE__ */ React46.createElement(
5904
5921
  import_react_native_reanimated6.default.View,
5905
5922
  {
5906
- style: import_react_native50.StyleSheet.flatten([
5923
+ style: import_react_native49.StyleSheet.flatten([
5907
5924
  indicator,
5908
5925
  styles35.indicator,
5909
5926
  { backgroundColor: colors.primary },
@@ -5912,7 +5929,7 @@ function Indicator4({
5912
5929
  }
5913
5930
  ));
5914
5931
  }
5915
- var styles35 = import_react_native50.StyleSheet.create({
5932
+ var styles35 = import_react_native49.StyleSheet.create({
5916
5933
  progress: {
5917
5934
  position: "relative",
5918
5935
  height: 16,
@@ -5933,8 +5950,8 @@ var styles35 = import_react_native50.StyleSheet.create({
5933
5950
  // components/ui/radio-group.tsx
5934
5951
  var import_react36 = __toESM(require("react"));
5935
5952
  var RadioGroupPrimitive = __toESM(require("@rn-primitives/radio-group"));
5936
- var import_react_native51 = require("react-native");
5937
- var import_native30 = require("@react-navigation/native");
5953
+ var import_react_native50 = require("react-native");
5954
+ var import_native29 = require("@react-navigation/native");
5938
5955
  function RadioGroup4({
5939
5956
  style,
5940
5957
  ...props
@@ -5942,7 +5959,7 @@ function RadioGroup4({
5942
5959
  return /* @__PURE__ */ import_react36.default.createElement(
5943
5960
  RadioGroupPrimitive.Root,
5944
5961
  {
5945
- style: import_react_native51.StyleSheet.flatten([styles36.root, style]),
5962
+ style: import_react_native50.StyleSheet.flatten([styles36.root, style]),
5946
5963
  ...props
5947
5964
  }
5948
5965
  );
@@ -5951,8 +5968,8 @@ function RadioGroupItem({
5951
5968
  style,
5952
5969
  ...props
5953
5970
  }) {
5954
- const { colors } = (0, import_native30.useTheme)();
5955
- const itemStyles = import_react_native51.StyleSheet.flatten([
5971
+ const { colors } = (0, import_native29.useTheme)();
5972
+ const itemStyles = import_react_native50.StyleSheet.flatten([
5956
5973
  styles36.item,
5957
5974
  {
5958
5975
  borderColor: colors.primary,
@@ -5960,19 +5977,19 @@ function RadioGroupItem({
5960
5977
  },
5961
5978
  style
5962
5979
  ]);
5963
- const indicatorStyles = import_react_native51.StyleSheet.flatten([
5980
+ const indicatorStyles = import_react_native50.StyleSheet.flatten([
5964
5981
  styles36.indicator,
5965
5982
  { backgroundColor: colors.primary }
5966
5983
  ]);
5967
- return /* @__PURE__ */ import_react36.default.createElement(RadioGroupPrimitive.Item, { style: itemStyles, ...props }, /* @__PURE__ */ import_react36.default.createElement(RadioGroupPrimitive.Indicator, { style: styles36.indicatorContainer }, /* @__PURE__ */ import_react36.default.createElement(import_react_native51.View, { style: indicatorStyles })));
5984
+ return /* @__PURE__ */ import_react36.default.createElement(RadioGroupPrimitive.Item, { style: itemStyles, ...props }, /* @__PURE__ */ import_react36.default.createElement(RadioGroupPrimitive.Indicator, { style: styles36.indicatorContainer }, /* @__PURE__ */ import_react36.default.createElement(import_react_native50.View, { style: indicatorStyles })));
5968
5985
  }
5969
5986
  function RadioGroupItemWithLabel({
5970
5987
  value,
5971
5988
  children
5972
5989
  }) {
5973
- return /* @__PURE__ */ import_react36.default.createElement(import_react_native51.View, { style: styles36.itemWithLabel }, /* @__PURE__ */ import_react36.default.createElement(RadioGroupItem, { "aria-labelledby": `label-for-${value}`, value }), /* @__PURE__ */ import_react36.default.createElement(Label3, { nativeID: `label-for-${value}`, style: styles36.label }, children));
5990
+ return /* @__PURE__ */ import_react36.default.createElement(import_react_native50.View, { style: styles36.itemWithLabel }, /* @__PURE__ */ import_react36.default.createElement(RadioGroupItem, { "aria-labelledby": `label-for-${value}`, value }), /* @__PURE__ */ import_react36.default.createElement(Label3, { nativeID: `label-for-${value}`, style: styles36.label }, children));
5974
5991
  }
5975
- var styles36 = import_react_native51.StyleSheet.create({
5992
+ var styles36 = import_react_native50.StyleSheet.create({
5976
5993
  root: {
5977
5994
  gap: 8
5978
5995
  },
@@ -6010,7 +6027,7 @@ var styles36 = import_react_native51.StyleSheet.create({
6010
6027
  // components/ui/select.tsx
6011
6028
  var SelectPrimitive = __toESM(require("@rn-primitives/select"));
6012
6029
  var React48 = __toESM(require("react"));
6013
- var import_react_native52 = require("react-native");
6030
+ var import_react_native51 = require("react-native");
6014
6031
  var import_react_native_reanimated7 = __toESM(require("react-native-reanimated"));
6015
6032
  var import_lucide_react_native42 = require("lucide-react-native");
6016
6033
  var import_lucide_react_native43 = require("lucide-react-native");
@@ -6024,7 +6041,7 @@ function SelectTrigger({
6024
6041
  children,
6025
6042
  ...props
6026
6043
  }) {
6027
- const triggerStyle = import_react_native52.StyleSheet.flatten([
6044
+ const triggerStyle = import_react_native51.StyleSheet.flatten([
6028
6045
  styles37.trigger,
6029
6046
  props.disabled && styles37.triggerDisabled,
6030
6047
  style
@@ -6035,13 +6052,13 @@ function SelectScrollUpButton({
6035
6052
  style,
6036
6053
  ...props
6037
6054
  }) {
6038
- if (import_react_native52.Platform.OS !== "web") {
6055
+ if (import_react_native51.Platform.OS !== "web") {
6039
6056
  return null;
6040
6057
  }
6041
6058
  return /* @__PURE__ */ React48.createElement(
6042
6059
  SelectPrimitive.ScrollUpButton,
6043
6060
  {
6044
- style: import_react_native52.StyleSheet.flatten([styles37.scrollButton, style]),
6061
+ style: import_react_native51.StyleSheet.flatten([styles37.scrollButton, style]),
6045
6062
  ...props
6046
6063
  },
6047
6064
  /* @__PURE__ */ React48.createElement(import_lucide_react_native44.ChevronUp, { size: 14, style: styles37.chevron })
@@ -6051,13 +6068,13 @@ function SelectScrollDownButton({
6051
6068
  style,
6052
6069
  ...props
6053
6070
  }) {
6054
- if (import_react_native52.Platform.OS !== "web") {
6071
+ if (import_react_native51.Platform.OS !== "web") {
6055
6072
  return null;
6056
6073
  }
6057
6074
  return /* @__PURE__ */ React48.createElement(
6058
6075
  SelectPrimitive.ScrollDownButton,
6059
6076
  {
6060
- style: import_react_native52.StyleSheet.flatten([styles37.scrollButton, style]),
6077
+ style: import_react_native51.StyleSheet.flatten([styles37.scrollButton, style]),
6061
6078
  ...props
6062
6079
  },
6063
6080
  /* @__PURE__ */ React48.createElement(import_lucide_react_native43.ChevronDown, { size: 14, style: styles37.chevron })
@@ -6074,7 +6091,7 @@ function SelectContent({
6074
6091
  return /* @__PURE__ */ React48.createElement(SelectPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ React48.createElement(
6075
6092
  SelectPrimitive.Overlay,
6076
6093
  {
6077
- style: import_react_native52.Platform.OS !== "web" ? import_react_native52.StyleSheet.absoluteFill : void 0
6094
+ style: import_react_native51.Platform.OS !== "web" ? import_react_native51.StyleSheet.absoluteFill : void 0
6078
6095
  },
6079
6096
  /* @__PURE__ */ React48.createElement(
6080
6097
  import_react_native_reanimated7.default.View,
@@ -6086,7 +6103,7 @@ function SelectContent({
6086
6103
  /* @__PURE__ */ React48.createElement(
6087
6104
  SelectPrimitive.Content,
6088
6105
  {
6089
- style: import_react_native52.StyleSheet.flatten([styles37.content, style]),
6106
+ style: import_react_native51.StyleSheet.flatten([styles37.content, style]),
6090
6107
  position,
6091
6108
  ...props
6092
6109
  },
@@ -6094,7 +6111,7 @@ function SelectContent({
6094
6111
  /* @__PURE__ */ React48.createElement(
6095
6112
  SelectPrimitive.Viewport,
6096
6113
  {
6097
- style: import_react_native52.StyleSheet.flatten([
6114
+ style: import_react_native51.StyleSheet.flatten([
6098
6115
  styles37.viewport,
6099
6116
  position === "popper" && {
6100
6117
  height: "var(--radix-select-trigger-height)",
@@ -6117,7 +6134,7 @@ function SelectLabel({
6117
6134
  return /* @__PURE__ */ React48.createElement(
6118
6135
  SelectPrimitive.Label,
6119
6136
  {
6120
- style: import_react_native52.StyleSheet.flatten([styles37.label, style]),
6137
+ style: import_react_native51.StyleSheet.flatten([styles37.label, style]),
6121
6138
  ...props
6122
6139
  }
6123
6140
  );
@@ -6126,12 +6143,12 @@ function SelectItem({
6126
6143
  style,
6127
6144
  ...props
6128
6145
  }) {
6129
- const itemStyle = import_react_native52.StyleSheet.flatten([
6146
+ const itemStyle = import_react_native51.StyleSheet.flatten([
6130
6147
  styles37.item,
6131
6148
  props.disabled && styles37.itemDisabled,
6132
6149
  style
6133
6150
  ]);
6134
- return /* @__PURE__ */ React48.createElement(SelectPrimitive.Item, { style: itemStyle, ...props }, /* @__PURE__ */ React48.createElement(import_react_native52.View, { style: styles37.itemIndicator }, /* @__PURE__ */ React48.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React48.createElement(
6151
+ return /* @__PURE__ */ React48.createElement(SelectPrimitive.Item, { style: itemStyle, ...props }, /* @__PURE__ */ React48.createElement(import_react_native51.View, { style: styles37.itemIndicator }, /* @__PURE__ */ React48.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React48.createElement(
6135
6152
  import_lucide_react_native42.Check,
6136
6153
  {
6137
6154
  size: 16,
@@ -6147,12 +6164,12 @@ function SelectSeparator({
6147
6164
  return /* @__PURE__ */ React48.createElement(
6148
6165
  SelectPrimitive.Separator,
6149
6166
  {
6150
- style: import_react_native52.StyleSheet.flatten([styles37.separator, style]),
6167
+ style: import_react_native51.StyleSheet.flatten([styles37.separator, style]),
6151
6168
  ...props
6152
6169
  }
6153
6170
  );
6154
6171
  }
6155
- var styles37 = import_react_native52.StyleSheet.create({
6172
+ var styles37 = import_react_native51.StyleSheet.create({
6156
6173
  trigger: {
6157
6174
  flexDirection: "row",
6158
6175
  height: 40,
@@ -6245,14 +6262,14 @@ var styles37 = import_react_native52.StyleSheet.create({
6245
6262
  // components/ui/skeleton.tsx
6246
6263
  var React49 = __toESM(require("react"));
6247
6264
  var import_react_native_reanimated8 = __toESM(require("react-native-reanimated"));
6248
- var import_react_native53 = require("react-native");
6249
- var import_native31 = require("@react-navigation/native");
6265
+ var import_react_native52 = require("react-native");
6266
+ var import_native30 = require("@react-navigation/native");
6250
6267
  var duration = 1e3;
6251
6268
  function Skeleton({
6252
6269
  style,
6253
6270
  ...props
6254
6271
  }) {
6255
- const { colors } = (0, import_native31.useTheme)();
6272
+ const { colors } = (0, import_native30.useTheme)();
6256
6273
  const sv = (0, import_react_native_reanimated8.useSharedValue)(1);
6257
6274
  React49.useEffect(() => {
6258
6275
  sv.value = (0, import_react_native_reanimated8.withRepeat)(
@@ -6268,7 +6285,7 @@ function Skeleton({
6268
6285
  }));
6269
6286
  return /* @__PURE__ */ React49.createElement(import_react_native_reanimated8.default.View, { style: animatedStyle, ...props });
6270
6287
  }
6271
- var styles38 = import_react_native53.StyleSheet.create({
6288
+ var styles38 = import_react_native52.StyleSheet.create({
6272
6289
  skeleton: {
6273
6290
  borderRadius: 6
6274
6291
  }
@@ -6277,7 +6294,7 @@ var styles38 = import_react_native53.StyleSheet.create({
6277
6294
  // components/ui/table.tsx
6278
6295
  var TablePrimitive = __toESM(require("@rn-primitives/table"));
6279
6296
  var React50 = __toESM(require("react"));
6280
- var import_react_native54 = require("react-native");
6297
+ var import_react_native53 = require("react-native");
6281
6298
  function Table({
6282
6299
  style,
6283
6300
  ...props
@@ -6285,7 +6302,7 @@ function Table({
6285
6302
  return /* @__PURE__ */ React50.createElement(
6286
6303
  TablePrimitive.Root,
6287
6304
  {
6288
- style: import_react_native54.StyleSheet.flatten([styles39.table, style]),
6305
+ style: import_react_native53.StyleSheet.flatten([styles39.table, style]),
6289
6306
  ...props
6290
6307
  }
6291
6308
  );
@@ -6297,7 +6314,7 @@ function TableHeader({
6297
6314
  return /* @__PURE__ */ React50.createElement(
6298
6315
  TablePrimitive.Header,
6299
6316
  {
6300
- style: import_react_native54.StyleSheet.flatten([styles39.header, style]),
6317
+ style: import_react_native53.StyleSheet.flatten([styles39.header, style]),
6301
6318
  ...props
6302
6319
  }
6303
6320
  );
@@ -6309,7 +6326,7 @@ function TableBody({
6309
6326
  return /* @__PURE__ */ React50.createElement(
6310
6327
  TablePrimitive.Body,
6311
6328
  {
6312
- style: import_react_native54.StyleSheet.flatten([styles39.body, { minHeight: 2 }, style]),
6329
+ style: import_react_native53.StyleSheet.flatten([styles39.body, { minHeight: 2 }, style]),
6313
6330
  ...props
6314
6331
  }
6315
6332
  );
@@ -6321,7 +6338,7 @@ function TableFooter({
6321
6338
  return /* @__PURE__ */ React50.createElement(
6322
6339
  TablePrimitive.Footer,
6323
6340
  {
6324
- style: import_react_native54.StyleSheet.flatten([styles39.footer, style]),
6341
+ style: import_react_native53.StyleSheet.flatten([styles39.footer, style]),
6325
6342
  ...props
6326
6343
  }
6327
6344
  );
@@ -6333,7 +6350,7 @@ function TableRow({
6333
6350
  return /* @__PURE__ */ React50.createElement(
6334
6351
  TablePrimitive.Row,
6335
6352
  {
6336
- style: import_react_native54.StyleSheet.flatten([styles39.row, style]),
6353
+ style: import_react_native53.StyleSheet.flatten([styles39.row, style]),
6337
6354
  ...props
6338
6355
  }
6339
6356
  );
@@ -6350,7 +6367,7 @@ function TableHead({
6350
6367
  /* @__PURE__ */ React50.createElement(
6351
6368
  TablePrimitive.Head,
6352
6369
  {
6353
- style: import_react_native54.StyleSheet.flatten([styles39.head, style]),
6370
+ style: import_react_native53.StyleSheet.flatten([styles39.head, style]),
6354
6371
  ...props
6355
6372
  }
6356
6373
  )
@@ -6363,12 +6380,12 @@ function TableCell({
6363
6380
  return /* @__PURE__ */ React50.createElement(
6364
6381
  TablePrimitive.Cell,
6365
6382
  {
6366
- style: import_react_native54.StyleSheet.flatten([styles39.cell, style]),
6383
+ style: import_react_native53.StyleSheet.flatten([styles39.cell, style]),
6367
6384
  ...props
6368
6385
  }
6369
6386
  );
6370
6387
  }
6371
- var styles39 = import_react_native54.StyleSheet.create({
6388
+ var styles39 = import_react_native53.StyleSheet.create({
6372
6389
  table: {
6373
6390
  width: "100%",
6374
6391
  fontSize: 14
@@ -6409,7 +6426,7 @@ var styles39 = import_react_native54.StyleSheet.create({
6409
6426
  // components/ui/tabs.tsx
6410
6427
  var TabsPrimitive = __toESM(require("@rn-primitives/tabs"));
6411
6428
  var React51 = __toESM(require("react"));
6412
- var import_react_native55 = require("react-native");
6429
+ var import_react_native54 = require("react-native");
6413
6430
  var Tabs = TabsPrimitive.Root;
6414
6431
  function TabsList({
6415
6432
  style,
@@ -6418,7 +6435,7 @@ function TabsList({
6418
6435
  return /* @__PURE__ */ React51.createElement(
6419
6436
  TabsPrimitive.List,
6420
6437
  {
6421
- style: import_react_native55.StyleSheet.flatten([styles40.list, style]),
6438
+ style: import_react_native54.StyleSheet.flatten([styles40.list, style]),
6422
6439
  ...props
6423
6440
  }
6424
6441
  );
@@ -6429,13 +6446,13 @@ function TabsTrigger({
6429
6446
  }) {
6430
6447
  const { value } = TabsPrimitive.useRootContext();
6431
6448
  const isActive = props.value === value;
6432
- const triggerStyle = import_react_native55.StyleSheet.flatten([
6449
+ const triggerStyle = import_react_native54.StyleSheet.flatten([
6433
6450
  styles40.trigger,
6434
6451
  isActive && styles40.triggerActive,
6435
6452
  props.disabled && styles40.triggerDisabled,
6436
6453
  style
6437
6454
  ]);
6438
- const textStyle = isActive ? import_react_native55.StyleSheet.flatten([styles40.triggerText, styles40.triggerTextActive]) : styles40.triggerText;
6455
+ const textStyle = isActive ? import_react_native54.StyleSheet.flatten([styles40.triggerText, styles40.triggerTextActive]) : styles40.triggerText;
6439
6456
  return /* @__PURE__ */ React51.createElement(TextStyleContext.Provider, { value: { style: textStyle } }, /* @__PURE__ */ React51.createElement(TabsPrimitive.Trigger, { style: triggerStyle, ...props }));
6440
6457
  }
6441
6458
  function TabsContent({
@@ -6444,7 +6461,7 @@ function TabsContent({
6444
6461
  }) {
6445
6462
  return /* @__PURE__ */ React51.createElement(TabsPrimitive.Content, { style, ...props });
6446
6463
  }
6447
- var styles40 = import_react_native55.StyleSheet.create({
6464
+ var styles40 = import_react_native54.StyleSheet.create({
6448
6465
  list: {
6449
6466
  flexDirection: "row",
6450
6467
  height: 40,
@@ -6489,7 +6506,7 @@ var styles40 = import_react_native55.StyleSheet.create({
6489
6506
 
6490
6507
  // components/ui/textarea.tsx
6491
6508
  var React52 = __toESM(require("react"));
6492
- var import_react_native56 = require("react-native");
6509
+ var import_react_native55 = require("react-native");
6493
6510
  function Textarea({
6494
6511
  style,
6495
6512
  multiline = true,
@@ -6497,13 +6514,13 @@ function Textarea({
6497
6514
  placeholderTextColor,
6498
6515
  ...props
6499
6516
  }) {
6500
- const textareaStyle = import_react_native56.StyleSheet.flatten([
6517
+ const textareaStyle = import_react_native55.StyleSheet.flatten([
6501
6518
  styles41.textarea,
6502
6519
  props.editable === false && styles41.textareaDisabled,
6503
6520
  style
6504
6521
  ]);
6505
6522
  return /* @__PURE__ */ React52.createElement(
6506
- import_react_native56.TextInput,
6523
+ import_react_native55.TextInput,
6507
6524
  {
6508
6525
  style: textareaStyle,
6509
6526
  placeholderTextColor: placeholderTextColor || "hsl(var(--muted-foreground))",
@@ -6514,7 +6531,7 @@ function Textarea({
6514
6531
  }
6515
6532
  );
6516
6533
  }
6517
- var styles41 = import_react_native56.StyleSheet.create({
6534
+ var styles41 = import_react_native55.StyleSheet.create({
6518
6535
  textarea: {
6519
6536
  minHeight: 80,
6520
6537
  width: "100%",
@@ -6537,8 +6554,8 @@ var styles41 = import_react_native56.StyleSheet.create({
6537
6554
 
6538
6555
  // components/ui/toggle-group.tsx
6539
6556
  var React53 = __toESM(require("react"));
6540
- var import_react_native57 = require("react-native");
6541
- var import_native32 = require("@react-navigation/native");
6557
+ var import_react_native56 = require("react-native");
6558
+ var import_native31 = require("@react-navigation/native");
6542
6559
  var ToggleGroupPrimitive = __toESM(require("@rn-primitives/toggle-group"));
6543
6560
  var ToggleGroupContext = React53.createContext(null);
6544
6561
  function ToggleGroup({
@@ -6551,7 +6568,7 @@ function ToggleGroup({
6551
6568
  return /* @__PURE__ */ React53.createElement(
6552
6569
  ToggleGroupPrimitive.Root,
6553
6570
  {
6554
- style: import_react_native57.StyleSheet.flatten([styles42.root, style]),
6571
+ style: import_react_native56.StyleSheet.flatten([styles42.root, style]),
6555
6572
  ...props
6556
6573
  },
6557
6574
  /* @__PURE__ */ React53.createElement(ToggleGroupContext.Provider, { value: { variant, size } }, children)
@@ -6573,7 +6590,7 @@ function ToggleGroupItem({
6573
6590
  size,
6574
6591
  ...props
6575
6592
  }) {
6576
- const { colors } = (0, import_native32.useTheme)();
6593
+ const { colors } = (0, import_native31.useTheme)();
6577
6594
  const context = useToggleGroupContext();
6578
6595
  const { value } = ToggleGroupPrimitive.useRootContext();
6579
6596
  const isSelected = ToggleGroupPrimitive.utils.getIsSelected(
@@ -6603,7 +6620,7 @@ function ToggleGroupItem({
6603
6620
  return styles42.defaultItem;
6604
6621
  }
6605
6622
  };
6606
- const itemStyles = import_react_native57.StyleSheet.flatten([
6623
+ const itemStyles = import_react_native56.StyleSheet.flatten([
6607
6624
  styles42.item,
6608
6625
  getVariantStyles(),
6609
6626
  getSizeStyles(),
@@ -6620,10 +6637,10 @@ function ToggleGroupIcon({
6620
6637
  icon: Icon2,
6621
6638
  ...props
6622
6639
  }) {
6623
- const { colors } = (0, import_native32.useTheme)();
6640
+ const { colors } = (0, import_native31.useTheme)();
6624
6641
  return /* @__PURE__ */ React53.createElement(Icon2, { color: colors.text, ...props });
6625
6642
  }
6626
- var styles42 = import_react_native57.StyleSheet.create({
6643
+ var styles42 = import_react_native56.StyleSheet.create({
6627
6644
  root: {
6628
6645
  flexDirection: "row",
6629
6646
  alignItems: "center",
@@ -6659,8 +6676,8 @@ var styles42 = import_react_native57.StyleSheet.create({
6659
6676
  // components/ui/toggle.tsx
6660
6677
  var TogglePrimitive = __toESM(require("@rn-primitives/toggle"));
6661
6678
  var React54 = __toESM(require("react"));
6662
- var import_react_native58 = require("react-native");
6663
- var import_native33 = require("@react-navigation/native");
6679
+ var import_react_native57 = require("react-native");
6680
+ var import_native32 = require("@react-navigation/native");
6664
6681
  var toggleVariants = {
6665
6682
  default: {
6666
6683
  backgroundColor: "transparent"
@@ -6680,7 +6697,7 @@ function Toggle({
6680
6697
  size = "default",
6681
6698
  ...props
6682
6699
  }) {
6683
- const { colors } = (0, import_native33.useTheme)();
6700
+ const { colors } = (0, import_native32.useTheme)();
6684
6701
  const textStyles2 = {
6685
6702
  fontSize: size === "sm" ? 14 : size === "lg" ? 16 : 14,
6686
6703
  fontWeight: "500",
@@ -6704,7 +6721,7 @@ function Toggle({
6704
6721
  return styles43.defaultVariant;
6705
6722
  }
6706
6723
  };
6707
- const toggleStyles = import_react_native58.StyleSheet.flatten([
6724
+ const toggleStyles = import_react_native57.StyleSheet.flatten([
6708
6725
  styles43.toggle,
6709
6726
  getVariantStyles(),
6710
6727
  getSizeStyles(),
@@ -6721,10 +6738,10 @@ function ToggleIcon({
6721
6738
  icon: Icon2,
6722
6739
  ...props
6723
6740
  }) {
6724
- const { colors } = (0, import_native33.useTheme)();
6741
+ const { colors } = (0, import_native32.useTheme)();
6725
6742
  return /* @__PURE__ */ React54.createElement(Icon2, { color: colors.text, ...props });
6726
6743
  }
6727
- var styles43 = import_react_native58.StyleSheet.create({
6744
+ var styles43 = import_react_native57.StyleSheet.create({
6728
6745
  toggle: {
6729
6746
  alignItems: "center",
6730
6747
  justifyContent: "center",
@@ -6754,9 +6771,9 @@ var styles43 = import_react_native58.StyleSheet.create({
6754
6771
  // components/ui/tooltip.tsx
6755
6772
  var TooltipPrimitive = __toESM(require("@rn-primitives/tooltip"));
6756
6773
  var React55 = __toESM(require("react"));
6757
- var import_react_native59 = require("react-native");
6774
+ var import_react_native58 = require("react-native");
6758
6775
  var import_react_native_reanimated9 = __toESM(require("react-native-reanimated"));
6759
- var import_native34 = require("@react-navigation/native");
6776
+ var import_native33 = require("@react-navigation/native");
6760
6777
  var Tooltip = TooltipPrimitive.Root;
6761
6778
  var TooltipTrigger = TooltipPrimitive.Trigger;
6762
6779
  function TooltipContent({
@@ -6765,8 +6782,8 @@ function TooltipContent({
6765
6782
  portalHost,
6766
6783
  ...props
6767
6784
  }) {
6768
- const { colors } = (0, import_native34.useTheme)();
6769
- const tooltipStyles = import_react_native59.StyleSheet.flatten([
6785
+ const { colors } = (0, import_native33.useTheme)();
6786
+ const tooltipStyles = import_react_native58.StyleSheet.flatten([
6770
6787
  styles44.content,
6771
6788
  {
6772
6789
  backgroundColor: colors.background,
@@ -6776,19 +6793,19 @@ function TooltipContent({
6776
6793
  style
6777
6794
  ]);
6778
6795
  const textStyles2 = {
6779
- fontSize: import_react_native59.Platform.OS === "web" ? 14 : 16,
6796
+ fontSize: import_react_native58.Platform.OS === "web" ? 14 : 16,
6780
6797
  color: colors.text
6781
6798
  };
6782
6799
  return /* @__PURE__ */ React55.createElement(TooltipPrimitive.Portal, { hostName: portalHost }, /* @__PURE__ */ React55.createElement(
6783
6800
  TooltipPrimitive.Overlay,
6784
6801
  {
6785
- style: import_react_native59.Platform.OS !== "web" ? import_react_native59.StyleSheet.absoluteFill : void 0
6802
+ style: import_react_native58.Platform.OS !== "web" ? import_react_native58.StyleSheet.absoluteFill : void 0
6786
6803
  },
6787
6804
  /* @__PURE__ */ React55.createElement(
6788
6805
  import_react_native_reanimated9.default.View,
6789
6806
  {
6790
- entering: import_react_native59.Platform.select({ web: void 0, default: import_react_native_reanimated9.FadeIn }),
6791
- exiting: import_react_native59.Platform.select({ web: void 0, default: import_react_native_reanimated9.FadeOut })
6807
+ entering: import_react_native58.Platform.select({ web: void 0, default: import_react_native_reanimated9.FadeIn }),
6808
+ exiting: import_react_native58.Platform.select({ web: void 0, default: import_react_native_reanimated9.FadeOut })
6792
6809
  },
6793
6810
  /* @__PURE__ */ React55.createElement(TextStyleProvider, { style: textStyles2 }, /* @__PURE__ */ React55.createElement(
6794
6811
  TooltipPrimitive.Content,
@@ -6801,7 +6818,7 @@ function TooltipContent({
6801
6818
  )
6802
6819
  ));
6803
6820
  }
6804
- var styles44 = import_react_native59.StyleSheet.create({
6821
+ var styles44 = import_react_native58.StyleSheet.create({
6805
6822
  content: {
6806
6823
  zIndex: 50,
6807
6824
  overflow: "hidden",
@@ -6819,98 +6836,98 @@ var styles44 = import_react_native59.StyleSheet.create({
6819
6836
  // components/ui/typography.tsx
6820
6837
  var Slot3 = __toESM(require("@rn-primitives/slot"));
6821
6838
  var React56 = __toESM(require("react"));
6822
- var import_react_native60 = require("react-native");
6839
+ var import_react_native59 = require("react-native");
6823
6840
  function H1({ style, asChild = false, ...props }) {
6824
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6841
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6825
6842
  return /* @__PURE__ */ React56.createElement(
6826
6843
  Component,
6827
6844
  {
6828
6845
  role: "heading",
6829
6846
  "aria-level": "1",
6830
- style: import_react_native60.StyleSheet.flatten([styles45.h1, style]),
6847
+ style: import_react_native59.StyleSheet.flatten([styles45.h1, style]),
6831
6848
  ...props
6832
6849
  }
6833
6850
  );
6834
6851
  }
6835
6852
  function H2({ style, asChild = false, ...props }) {
6836
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6853
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6837
6854
  return /* @__PURE__ */ React56.createElement(
6838
6855
  Component,
6839
6856
  {
6840
6857
  role: "heading",
6841
6858
  "aria-level": "2",
6842
- style: import_react_native60.StyleSheet.flatten([styles45.h2, style]),
6859
+ style: import_react_native59.StyleSheet.flatten([styles45.h2, style]),
6843
6860
  ...props
6844
6861
  }
6845
6862
  );
6846
6863
  }
6847
6864
  function H3({ style, asChild = false, ...props }) {
6848
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6865
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6849
6866
  return /* @__PURE__ */ React56.createElement(
6850
6867
  Component,
6851
6868
  {
6852
6869
  role: "heading",
6853
6870
  "aria-level": "3",
6854
- style: import_react_native60.StyleSheet.flatten([styles45.h3, style]),
6871
+ style: import_react_native59.StyleSheet.flatten([styles45.h3, style]),
6855
6872
  ...props
6856
6873
  }
6857
6874
  );
6858
6875
  }
6859
6876
  function H4({ style, asChild = false, ...props }) {
6860
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6877
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6861
6878
  return /* @__PURE__ */ React56.createElement(
6862
6879
  Component,
6863
6880
  {
6864
6881
  role: "heading",
6865
6882
  "aria-level": "4",
6866
- style: import_react_native60.StyleSheet.flatten([styles45.h4, style]),
6883
+ style: import_react_native59.StyleSheet.flatten([styles45.h4, style]),
6867
6884
  ...props
6868
6885
  }
6869
6886
  );
6870
6887
  }
6871
6888
  function P({ style, asChild = false, ...props }) {
6872
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6873
- return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native60.StyleSheet.flatten([styles45.p, style]), ...props });
6889
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6890
+ return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native59.StyleSheet.flatten([styles45.p, style]), ...props });
6874
6891
  }
6875
6892
  function BlockQuote({ style, asChild = false, ...props }) {
6876
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6893
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6877
6894
  return /* @__PURE__ */ React56.createElement(
6878
6895
  Component,
6879
6896
  {
6880
- role: import_react_native60.Platform.OS === "web" ? "blockquote" : void 0,
6881
- style: import_react_native60.StyleSheet.flatten([styles45.blockquote, style]),
6897
+ role: import_react_native59.Platform.OS === "web" ? "blockquote" : void 0,
6898
+ style: import_react_native59.StyleSheet.flatten([styles45.blockquote, style]),
6882
6899
  ...props
6883
6900
  }
6884
6901
  );
6885
6902
  }
6886
6903
  function Code({ style, asChild = false, ...props }) {
6887
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6904
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6888
6905
  return /* @__PURE__ */ React56.createElement(
6889
6906
  Component,
6890
6907
  {
6891
- role: import_react_native60.Platform.OS === "web" ? "code" : void 0,
6892
- style: import_react_native60.StyleSheet.flatten([styles45.code, style]),
6908
+ role: import_react_native59.Platform.OS === "web" ? "code" : void 0,
6909
+ style: import_react_native59.StyleSheet.flatten([styles45.code, style]),
6893
6910
  ...props
6894
6911
  }
6895
6912
  );
6896
6913
  }
6897
6914
  function Lead({ style, asChild = false, ...props }) {
6898
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6899
- return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native60.StyleSheet.flatten([styles45.lead, style]), ...props });
6915
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6916
+ return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native59.StyleSheet.flatten([styles45.lead, style]), ...props });
6900
6917
  }
6901
6918
  function Large({ style, asChild = false, ...props }) {
6902
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6903
- return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native60.StyleSheet.flatten([styles45.large, style]), ...props });
6919
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6920
+ return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native59.StyleSheet.flatten([styles45.large, style]), ...props });
6904
6921
  }
6905
6922
  function Small({ style, asChild = false, ...props }) {
6906
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6907
- return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native60.StyleSheet.flatten([styles45.small, style]), ...props });
6923
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6924
+ return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native59.StyleSheet.flatten([styles45.small, style]), ...props });
6908
6925
  }
6909
6926
  function Muted({ style, asChild = false, ...props }) {
6910
- const Component = asChild ? Slot3.Text : import_react_native60.Text;
6911
- return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native60.StyleSheet.flatten([styles45.muted, style]), ...props });
6927
+ const Component = asChild ? Slot3.Text : import_react_native59.Text;
6928
+ return /* @__PURE__ */ React56.createElement(Component, { style: import_react_native59.StyleSheet.flatten([styles45.muted, style]), ...props });
6912
6929
  }
6913
- var styles45 = import_react_native60.StyleSheet.create({
6930
+ var styles45 = import_react_native59.StyleSheet.create({
6914
6931
  h1: {
6915
6932
  fontSize: 36,
6916
6933
  color: "hsl(var(--foreground))",
@@ -7007,7 +7024,7 @@ var import_lucide_react_native46 = require("lucide-react-native");
7007
7024
  var RdfResourceCreator = {
7008
7025
  name: "createRdf",
7009
7026
  displayName: "RDF Turtle",
7010
- displayIcon: import_lucide_react_native46.Code,
7027
+ displayIcon: import_lucide_react_native46.FileCode,
7011
7028
  canCreate: (container) => container.type === "SolidContainer",
7012
7029
  create: async ({ container, createUtils }) => {
7013
7030
  createUtils.loadingMessage("Asking for file name\u2026");
@@ -7025,6 +7042,7 @@ var RdfResourceCreator = {
7025
7042
 
7026
7043
  // resourceCreators/FileUploadResourceCreator.ts
7027
7044
  var import_lucide_react_native47 = require("lucide-react-native");
7045
+ var import_react_native60 = require("react-native");
7028
7046
  function basename(path) {
7029
7047
  const lastSlash = path.lastIndexOf("/");
7030
7048
  return lastSlash === -1 ? path : path.slice(lastSlash + 1);
@@ -7045,9 +7063,11 @@ var FileUploadResourceCreator = {
7045
7063
  const slug = basename(file.name);
7046
7064
  const mimeType = file.type || "application/octet-stream";
7047
7065
  createUtils.loadingMessage(`Uploading ${slug}\u2026`);
7066
+ const body = import_react_native60.Platform.OS !== "web" ? await file.arrayBuffer() : file;
7048
7067
  const result = await container.uploadChildAndOverwrite(
7049
7068
  slug,
7050
- file,
7069
+ // @ts-ignore
7070
+ body,
7051
7071
  mimeType
7052
7072
  );
7053
7073
  if (result.isError) {
@@ -7059,25 +7079,25 @@ var FileUploadResourceCreator = {
7059
7079
  };
7060
7080
 
7061
7081
  // resourceViews/Container/ContainerResourceView.tsx
7062
- var import_lucide_react_native55 = require("lucide-react-native");
7082
+ var import_lucide_react_native52 = require("lucide-react-native");
7083
+
7084
+ // resourceViews/Container/DefaultContainerView.tsx
7085
+ var import_react42 = __toESM(require("react"));
7063
7086
 
7064
7087
  // resourceViews/Container/ContainerView.tsx
7065
7088
  var import_react37 = __toESM(require("react"));
7066
7089
  var import_react_native61 = require("react-native");
7067
7090
  var DocumentPicker = __toESM(require("expo-document-picker"));
7068
7091
  var import_lucide_react_native48 = require("lucide-react-native");
7069
- var import_lucide_react_native49 = require("lucide-react-native");
7070
- var import_lucide_react_native50 = require("lucide-react-native");
7071
- var import_lucide_react_native51 = require("lucide-react-native");
7072
- var import_lucide_react_native52 = require("lucide-react-native");
7073
- var import_lucide_react_native53 = require("lucide-react-native");
7074
7092
  var import_react_native_notifier2 = require("react-native-notifier");
7075
- var import_native35 = require("@react-navigation/native");
7076
- var import_lucide_react_native54 = require("lucide-react-native");
7077
- var ContainerView = () => {
7093
+ var ContainerView = ({
7094
+ Layout: Layout2,
7095
+ SideMenu,
7096
+ Content: Content13,
7097
+ ResourceItem
7098
+ }) => {
7078
7099
  const { targetResource, navigateTo } = useViewContext();
7079
7100
  const { prompt } = useDialog();
7080
- const { colors } = (0, import_native35.useTheme)();
7081
7101
  const { resourceCreators = [] } = useDataBrowserConfig();
7082
7102
  const [isCreating, setIsCreating] = (0, import_react37.useState)(false);
7083
7103
  const [loadingMessages, setLoadingMessages] = (0, import_react37.useState)([]);
@@ -7121,10 +7141,7 @@ var ContainerView = () => {
7121
7141
  setIsCreating(true);
7122
7142
  setLoadingMessages([]);
7123
7143
  try {
7124
- await creator.create({
7125
- container: targetResource,
7126
- createUtils
7127
- });
7144
+ await creator.create({ container: targetResource, createUtils });
7128
7145
  } finally {
7129
7146
  setIsCreating(false);
7130
7147
  setLoadingMessages([]);
@@ -7135,9 +7152,8 @@ var ContainerView = () => {
7135
7152
  const onDelete = (0, import_react37.useCallback)(
7136
7153
  async (item) => {
7137
7154
  if (targetResource?.type !== "SolidContainer") return;
7138
- const createResult = await item.delete();
7139
- if (createResult.isError)
7140
- import_react_native_notifier2.Notifier.showNotification({ title: createResult.message });
7155
+ const result = await item.delete();
7156
+ if (result.isError) import_react_native_notifier2.Notifier.showNotification({ title: result.message });
7141
7157
  },
7142
7158
  [targetResource?.type]
7143
7159
  );
@@ -7150,100 +7166,159 @@ var ContainerView = () => {
7150
7166
  }
7151
7167
  );
7152
7168
  }
7153
- return /* @__PURE__ */ import_react37.default.createElement(import_react_native61.View, { style: styles46.mainContainer }, /* @__PURE__ */ import_react37.default.createElement(import_react_native61.View, { style: styles46.leftPanel }, /* @__PURE__ */ import_react37.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react37.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react37.default.createElement(
7169
+ const renderResource = (item) => {
7170
+ const displayName = item.uri.replace(targetResource.uri, "").replace(/\/$/, "") || "/";
7171
+ return /* @__PURE__ */ import_react37.default.createElement(
7172
+ ResourceItem,
7173
+ {
7174
+ key: item.uri,
7175
+ item,
7176
+ displayName,
7177
+ onNavigate: () => navigateTo(item.uri),
7178
+ onDelete: () => onDelete(item)
7179
+ }
7180
+ );
7181
+ };
7182
+ return /* @__PURE__ */ import_react37.default.createElement(
7183
+ Layout2,
7184
+ {
7185
+ sideMenu: /* @__PURE__ */ import_react37.default.createElement(
7186
+ SideMenu,
7187
+ {
7188
+ creators: availableCreators,
7189
+ isCreating,
7190
+ loadingMessages,
7191
+ onCreate: runCreator
7192
+ }
7193
+ ),
7194
+ content: /* @__PURE__ */ import_react37.default.createElement(
7195
+ Content13,
7196
+ {
7197
+ resources: targetResource.children(),
7198
+ renderResource,
7199
+ creatorsAvailable: availableCreators.length > 0
7200
+ }
7201
+ )
7202
+ }
7203
+ );
7204
+ };
7205
+
7206
+ // resourceViews/Container/DefaultContainerLayout.tsx
7207
+ var import_react38 = __toESM(require("react"));
7208
+ var import_react_native62 = require("react-native");
7209
+ var import_native34 = require("@react-navigation/native");
7210
+ var DefaultContainerLayout = ({ sideMenu, content }) => {
7211
+ const { colors } = (0, import_native34.useTheme)();
7212
+ return /* @__PURE__ */ import_react38.default.createElement(import_react_native62.View, { style: [styles46.container, { backgroundColor: colors.card }] }, /* @__PURE__ */ import_react38.default.createElement(import_react_native62.View, { style: styles46.leftPanel }, sideMenu), /* @__PURE__ */ import_react38.default.createElement(import_react_native62.View, { style: [styles46.rightPanel, { backgroundColor: colors.background }] }, content));
7213
+ };
7214
+ var styles46 = import_react_native62.StyleSheet.create({
7215
+ container: {
7216
+ flex: 1,
7217
+ flexDirection: "row",
7218
+ paddingTop: 16
7219
+ },
7220
+ leftPanel: {
7221
+ maxWidth: 220,
7222
+ flex: 1,
7223
+ paddingHorizontal: 16,
7224
+ paddingBottom: 16
7225
+ },
7226
+ rightPanel: {
7227
+ flex: 3,
7228
+ borderTopLeftRadius: 12
7229
+ }
7230
+ });
7231
+
7232
+ // resourceViews/Container/DefaultContainerSideMenu.tsx
7233
+ var import_react39 = __toESM(require("react"));
7234
+ var import_react_native63 = require("react-native");
7235
+ var import_lucide_react_native49 = require("lucide-react-native");
7236
+ var import_native35 = require("@react-navigation/native");
7237
+ var import_solid_react10 = require("@ldo/solid-react");
7238
+ var DefaultContainerSideMenu = ({ creators, isCreating, loadingMessages, onCreate }) => {
7239
+ const { colors } = (0, import_native35.useTheme)();
7240
+ const { session } = (0, import_solid_react10.useSolidAuth)();
7241
+ const storageRoot = (0, import_solid_react10.useRootContainerFor)(session.webId);
7242
+ const { navigateTo } = useTargetResource();
7243
+ return /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react39.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react39.default.createElement(
7154
7244
  Button,
7155
7245
  {
7156
7246
  text: "Create",
7157
- iconLeft: import_lucide_react_native53.Plus,
7158
- disabled: isCreating || availableCreators.length === 0
7247
+ iconLeft: import_lucide_react_native49.Plus,
7248
+ disabled: isCreating || creators.length === 0
7159
7249
  }
7160
- )), /* @__PURE__ */ import_react37.default.createElement(DropdownMenuContent, { style: styles46.createDropdownContent }, availableCreators.map((creator) => /* @__PURE__ */ import_react37.default.createElement(
7161
- DropdownMenuItem,
7162
- {
7163
- key: creator.name,
7164
- onPress: () => runCreator(creator)
7165
- },
7166
- /* @__PURE__ */ import_react37.default.createElement(Icon, { icon: creator.displayIcon }),
7167
- /* @__PURE__ */ import_react37.default.createElement(Text2, null, creator.displayName)
7168
- )))), isCreating && /* @__PURE__ */ import_react37.default.createElement(
7169
- import_react_native61.View,
7250
+ )), /* @__PURE__ */ import_react39.default.createElement(
7251
+ DropdownMenuContent,
7170
7252
  {
7171
- style: [styles46.creatingPanel, { backgroundColor: colors.border }]
7253
+ align: "start",
7254
+ sideOffset: 4,
7255
+ style: styles47.dropdownContent
7172
7256
  },
7173
- /* @__PURE__ */ import_react37.default.createElement(import_react_native61.View, { style: styles46.creatingHeader }, /* @__PURE__ */ import_react37.default.createElement(import_lucide_react_native54.Loader2, { size: 16, style: styles46.spinner }), /* @__PURE__ */ import_react37.default.createElement(Text2, null, "Creating\u2026")),
7174
- loadingMessages.length > 0 && /* @__PURE__ */ import_react37.default.createElement(
7175
- import_react_native61.ScrollView,
7257
+ creators.map((creator) => /* @__PURE__ */ import_react39.default.createElement(
7258
+ DropdownMenuItem,
7176
7259
  {
7177
- style: styles46.loadingMessages,
7178
- contentContainerStyle: styles46.loadingMessagesContent
7260
+ key: creator.name,
7261
+ onPress: () => onCreate(creator)
7179
7262
  },
7180
- loadingMessages.map((msg, i) => /* @__PURE__ */ import_react37.default.createElement(Text2, { key: i, style: styles46.loadingMessageItem }, msg))
7181
- )
7182
- )), /* @__PURE__ */ import_react37.default.createElement(
7183
- import_react_native61.View,
7263
+ /* @__PURE__ */ import_react39.default.createElement(Icon, { icon: creator.displayIcon }),
7264
+ /* @__PURE__ */ import_react39.default.createElement(Text2, null, creator.displayName)
7265
+ ))
7266
+ )), isCreating && /* @__PURE__ */ import_react39.default.createElement(
7267
+ import_react_native63.View,
7184
7268
  {
7185
- style: [
7186
- styles46.rightPanel,
7187
- { borderLeftWidth: 1, borderLeftColor: colors.border }
7188
- ]
7269
+ style: [styles47.creatingPanel, { backgroundColor: colors.border }]
7189
7270
  },
7190
- /* @__PURE__ */ import_react37.default.createElement(
7191
- import_react_native61.FlatList,
7271
+ /* @__PURE__ */ import_react39.default.createElement(import_react_native63.View, { style: styles47.creatingHeader }, /* @__PURE__ */ import_react39.default.createElement(import_lucide_react_native49.Loader2, { size: 16, style: styles47.spinner }), /* @__PURE__ */ import_react39.default.createElement(Text2, null, "Creating\u2026")),
7272
+ loadingMessages.length > 0 && /* @__PURE__ */ import_react39.default.createElement(
7273
+ import_react_native63.ScrollView,
7192
7274
  {
7193
- data: targetResource.children(),
7194
- keyExtractor: (item) => item.uri,
7195
- ItemSeparatorComponent: () => /* @__PURE__ */ import_react37.default.createElement(
7196
- import_react_native61.View,
7197
- {
7198
- style: [styles46.listSeparator, { backgroundColor: colors.border }]
7199
- }
7200
- ),
7201
- renderItem: ({ item }) => {
7202
- const TypeIcon = item.type === "SolidContainer" ? import_lucide_react_native49.Folder : item.uri.endsWith(".ttl") ? import_lucide_react_native50.Code : import_lucide_react_native51.File;
7203
- const displayName = item.uri.replace(targetResource.uri, "").replace(/\/$/, "") || "/";
7204
- return /* @__PURE__ */ import_react37.default.createElement(
7205
- import_react_native61.Pressable,
7206
- {
7207
- onPress: () => navigateTo(item.uri),
7208
- style: ({ hovered }) => [
7209
- styles46.listItemRow,
7210
- hovered && { backgroundColor: colors.border }
7211
- ]
7212
- },
7213
- /* @__PURE__ */ import_react37.default.createElement(import_react_native61.View, { style: styles46.listItem }, /* @__PURE__ */ import_react37.default.createElement(import_react_native61.View, { style: styles46.listItemText }, /* @__PURE__ */ import_react37.default.createElement(Icon, { icon: TypeIcon, size: 18 }), /* @__PURE__ */ import_react37.default.createElement(
7214
- Text2,
7215
- {
7216
- style: styles46.listItemLabel,
7217
- numberOfLines: 1,
7218
- ellipsizeMode: "middle"
7219
- },
7220
- displayName
7221
- )), /* @__PURE__ */ import_react37.default.createElement(
7222
- Button,
7223
- {
7224
- variant: "ghost",
7225
- size: "icon",
7226
- style: styles46.deleteButton,
7227
- onPress: () => onDelete(item),
7228
- iconLeft: import_lucide_react_native52.Trash
7229
- }
7230
- ))
7231
- );
7232
- }
7233
- }
7275
+ style: styles47.loadingMessages,
7276
+ contentContainerStyle: styles47.loadingMessagesContent
7277
+ },
7278
+ loadingMessages.map((msg, i) => /* @__PURE__ */ import_react39.default.createElement(Text2, { key: i, style: styles47.loadingMessageItem }, msg))
7234
7279
  )
7235
- ));
7280
+ ), session.isActive && /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(
7281
+ import_react_native63.View,
7282
+ {
7283
+ style: [styles47.separator, { backgroundColor: colors.border }]
7284
+ }
7285
+ ), /* @__PURE__ */ import_react39.default.createElement(import_react_native63.View, { style: styles47.navSection }, storageRoot && /* @__PURE__ */ import_react39.default.createElement(
7286
+ Button,
7287
+ {
7288
+ variant: "ghost",
7289
+ iconLeft: import_lucide_react_native49.Home,
7290
+ text: "Home",
7291
+ style: styles47.navItem,
7292
+ onPress: () => navigateTo(storageRoot.uri)
7293
+ }
7294
+ ), /* @__PURE__ */ import_react39.default.createElement(
7295
+ Button,
7296
+ {
7297
+ variant: "ghost",
7298
+ iconLeft: import_lucide_react_native49.User,
7299
+ text: "Profile",
7300
+ style: styles47.navItem,
7301
+ onPress: () => navigateTo(session.webId ?? "")
7302
+ }
7303
+ ))));
7236
7304
  };
7237
- var styles46 = import_react_native61.StyleSheet.create({
7238
- mainContainer: {
7239
- flex: 1,
7240
- flexDirection: "row"
7305
+ var styles47 = import_react_native63.StyleSheet.create({
7306
+ navSection: {
7307
+ gap: 2,
7308
+ marginBottom: 4
7241
7309
  },
7242
- leftPanel: {
7243
- maxWidth: 220,
7244
- flex: 1,
7245
- padding: 16,
7246
- paddingRight: 12
7310
+ navItem: {
7311
+ justifyContent: "flex-start",
7312
+ paddingHorizontal: 8
7313
+ },
7314
+ separator: {
7315
+ height: 1,
7316
+ marginBottom: 12
7317
+ },
7318
+ dropdownContent: {
7319
+ minWidth: 220,
7320
+ paddingVertical: 6,
7321
+ paddingHorizontal: 6
7247
7322
  },
7248
7323
  creatingPanel: {
7249
7324
  marginTop: 12,
@@ -7268,89 +7343,192 @@ var styles46 = import_react_native61.StyleSheet.create({
7268
7343
  loadingMessageItem: {
7269
7344
  fontSize: 12,
7270
7345
  opacity: 0.85
7346
+ }
7347
+ });
7348
+
7349
+ // resourceViews/Container/DefaultContainerContent.tsx
7350
+ var import_react40 = __toESM(require("react"));
7351
+ var import_react_native64 = require("react-native");
7352
+ var import_lucide_react_native50 = require("lucide-react-native");
7353
+ var import_native36 = require("@react-navigation/native");
7354
+ var DefaultContainerContent = ({ resources, renderResource, creatorsAvailable }) => {
7355
+ const { colors } = (0, import_native36.useTheme)();
7356
+ const emptyState = /* @__PURE__ */ import_react40.default.createElement(import_react_native64.View, { style: styles48.emptyState }, /* @__PURE__ */ import_react40.default.createElement(import_react_native64.View, { style: styles48.emptyStateIcon }, /* @__PURE__ */ import_react40.default.createElement(import_lucide_react_native50.FolderOpen, { size: 40, color: colors.text })), /* @__PURE__ */ import_react40.default.createElement(Text2, { muted: true }, "This container is empty"), creatorsAvailable && /* @__PURE__ */ import_react40.default.createElement(Text2, { muted: true, size: "sm" }, "Use Create to add resources"));
7357
+ return /* @__PURE__ */ import_react40.default.createElement(
7358
+ import_react_native64.FlatList,
7359
+ {
7360
+ data: resources,
7361
+ keyExtractor: (item) => item.uri,
7362
+ style: styles48.list,
7363
+ contentContainerStyle: styles48.listContent,
7364
+ ListEmptyComponent: /* @__PURE__ */ import_react40.default.createElement(import_react40.default.Fragment, null, emptyState),
7365
+ ItemSeparatorComponent: () => /* @__PURE__ */ import_react40.default.createElement(import_react_native64.View, { style: [styles48.separator, { backgroundColor: colors.border }] }),
7366
+ renderItem: ({ item }) => renderResource(item)
7367
+ }
7368
+ );
7369
+ };
7370
+ var styles48 = import_react_native64.StyleSheet.create({
7371
+ list: {
7372
+ flex: 1
7271
7373
  },
7272
- rightPanel: {
7273
- flex: 3
7374
+ listContent: {
7375
+ flexGrow: 1,
7376
+ paddingHorizontal: 16,
7377
+ paddingVertical: 8
7274
7378
  },
7275
- createDropdownContent: {
7276
- minWidth: 220,
7277
- paddingVertical: 6,
7278
- paddingHorizontal: 6
7379
+ emptyState: {
7380
+ flex: 1,
7381
+ alignItems: "center",
7382
+ justifyContent: "center",
7383
+ gap: 4,
7384
+ paddingVertical: 48
7385
+ },
7386
+ emptyStateIcon: {
7387
+ opacity: 0.2,
7388
+ marginBottom: 8
7279
7389
  },
7280
- listSeparator: {
7390
+ separator: {
7281
7391
  height: 1,
7282
7392
  width: "100%"
7283
- },
7284
- listItemRow: {
7393
+ }
7394
+ });
7395
+
7396
+ // resourceViews/Container/DefaultContainerResourceItem.tsx
7397
+ var import_react41 = __toESM(require("react"));
7398
+ var import_react_native65 = require("react-native");
7399
+ var import_lucide_react_native51 = require("lucide-react-native");
7400
+ var import_native37 = require("@react-navigation/native");
7401
+ var import_solid_react11 = require("@ldo/solid-react");
7402
+ var import_react_native_notifier3 = require("react-native-notifier");
7403
+ var DefaultContainerResourceItem = ({ item, displayName, onNavigate, onDelete }) => {
7404
+ const { colors } = (0, import_native37.useTheme)();
7405
+ const { fetch: fetch2 } = (0, import_solid_react11.useSolidAuth)();
7406
+ const { openSharingModal } = useSharingModal();
7407
+ const TypeIcon = item.type === "SolidContainer" ? import_lucide_react_native51.Folder : item.uri.endsWith(".ttl") ? import_lucide_react_native51.Code : import_lucide_react_native51.File;
7408
+ const handleDownload = (0, import_react41.useCallback)(async () => {
7409
+ if (item.type !== "SolidLeaf") return;
7410
+ if (import_react_native65.Platform.OS !== "web") {
7411
+ import_react_native_notifier3.Notifier.showNotification({ title: "Download is only available on web" });
7412
+ return;
7413
+ }
7414
+ const response = await fetch2(item.uri);
7415
+ const blob = await response.blob();
7416
+ const url = URL.createObjectURL(blob);
7417
+ const a = document.createElement("a");
7418
+ a.href = url;
7419
+ a.download = displayName;
7420
+ document.body.appendChild(a);
7421
+ a.click();
7422
+ document.body.removeChild(a);
7423
+ URL.revokeObjectURL(url);
7424
+ }, [item, displayName, fetch2]);
7425
+ const handleShare = (0, import_react41.useCallback)(() => {
7426
+ if (item.type === "SolidLeaf" || item.type === "SolidContainer") {
7427
+ openSharingModal(item);
7428
+ }
7429
+ }, [item, openSharingModal]);
7430
+ return /* @__PURE__ */ import_react41.default.createElement(
7431
+ import_react_native65.Pressable,
7432
+ {
7433
+ onPress: onNavigate,
7434
+ style: ({ hovered }) => [
7435
+ styles49.row,
7436
+ hovered && { backgroundColor: colors.border }
7437
+ ]
7438
+ },
7439
+ /* @__PURE__ */ import_react41.default.createElement(import_react_native65.View, { style: styles49.inner }, /* @__PURE__ */ import_react41.default.createElement(import_react_native65.View, { style: styles49.label }, /* @__PURE__ */ import_react41.default.createElement(Icon, { icon: TypeIcon, size: 18 }), /* @__PURE__ */ import_react41.default.createElement(Text2, { style: styles49.name, numberOfLines: 1, ellipsizeMode: "middle" }, displayName)), /* @__PURE__ */ import_react41.default.createElement(DropdownMenu, null, /* @__PURE__ */ import_react41.default.createElement(DropdownMenuTrigger, { asChild: true }, /* @__PURE__ */ import_react41.default.createElement(
7440
+ Button,
7441
+ {
7442
+ variant: "ghost",
7443
+ size: "icon",
7444
+ style: styles49.actionButton,
7445
+ iconLeft: import_lucide_react_native51.MoreHorizontal
7446
+ }
7447
+ )), /* @__PURE__ */ import_react41.default.createElement(DropdownMenuContent, { align: "end", sideOffset: 4 }, item.type === "SolidLeaf" && /* @__PURE__ */ import_react41.default.createElement(DropdownMenuItem, { onPress: handleDownload }, /* @__PURE__ */ import_react41.default.createElement(Icon, { icon: import_lucide_react_native51.Download }), /* @__PURE__ */ import_react41.default.createElement(Text2, null, "Download")), /* @__PURE__ */ import_react41.default.createElement(DropdownMenuItem, { onPress: handleShare }, /* @__PURE__ */ import_react41.default.createElement(Icon, { icon: import_lucide_react_native51.Share2 }), /* @__PURE__ */ import_react41.default.createElement(Text2, null, "Share")), /* @__PURE__ */ import_react41.default.createElement(DropdownMenuSeparator, null), /* @__PURE__ */ import_react41.default.createElement(DropdownMenuItem, { onPress: onDelete }, /* @__PURE__ */ import_react41.default.createElement(Icon, { icon: import_lucide_react_native51.Trash }), /* @__PURE__ */ import_react41.default.createElement(Text2, { style: { color: colors.notification } }, "Delete")))))
7448
+ );
7449
+ };
7450
+ var styles49 = import_react_native65.StyleSheet.create({
7451
+ row: {
7285
7452
  minHeight: 48,
7286
7453
  justifyContent: "center"
7287
7454
  },
7288
- listItem: {
7455
+ inner: {
7289
7456
  flexDirection: "row",
7290
7457
  paddingHorizontal: 16,
7291
7458
  paddingVertical: 12,
7292
7459
  justifyContent: "space-between",
7293
7460
  alignItems: "center"
7294
7461
  },
7295
- listItemText: {
7462
+ label: {
7296
7463
  flexDirection: "row",
7297
7464
  alignItems: "center",
7298
7465
  gap: 12,
7299
7466
  flex: 1,
7300
7467
  minWidth: 0
7301
7468
  },
7302
- listItemLabel: {
7469
+ name: {
7303
7470
  flex: 1
7304
7471
  },
7305
- deleteButton: {
7472
+ actionButton: {
7306
7473
  width: 36,
7307
7474
  height: 36,
7308
7475
  padding: 0
7309
7476
  }
7310
7477
  });
7311
7478
 
7479
+ // resourceViews/Container/DefaultContainerView.tsx
7480
+ var DefaultContainerView = () => /* @__PURE__ */ import_react42.default.createElement(
7481
+ ContainerView,
7482
+ {
7483
+ Layout: DefaultContainerLayout,
7484
+ SideMenu: DefaultContainerSideMenu,
7485
+ Content: DefaultContainerContent,
7486
+ ResourceItem: DefaultContainerResourceItem
7487
+ }
7488
+ );
7489
+
7312
7490
  // resourceViews/Container/ContainerResourceView.tsx
7313
7491
  var ContainerResourceView = {
7314
7492
  name: "container",
7315
7493
  displayName: "Container",
7316
- displayIcon: import_lucide_react_native55.Folders,
7317
- view: ContainerView,
7494
+ displayIcon: import_lucide_react_native52.Folders,
7495
+ view: DefaultContainerView,
7318
7496
  canDisplay: (targetUri, targetResource) => {
7319
7497
  return targetResource.type === "SolidContainer";
7320
7498
  }
7321
7499
  };
7322
7500
 
7323
7501
  // resourceViews/Profile/ProfileResourceView.tsx
7324
- var import_lucide_react_native58 = require("lucide-react-native");
7502
+ var import_lucide_react_native55 = require("lucide-react-native");
7325
7503
 
7326
7504
  // resourceViews/Profile/ProfileView.tsx
7327
- var import_react_native63 = require("react-native");
7328
- var import_react39 = __toESM(require("react"));
7505
+ var import_react_native67 = require("react-native");
7506
+ var import_react44 = __toESM(require("react"));
7329
7507
 
7330
7508
  // resourceViews/Profile/ProfileKnows.tsx
7331
- var import_react38 = __toESM(require("react"));
7332
- var import_lucide_react_native56 = require("lucide-react-native");
7333
- var import_react_native62 = require("react-native");
7334
- var import_lucide_react_native57 = require("lucide-react-native");
7509
+ var import_react43 = __toESM(require("react"));
7510
+ var import_lucide_react_native53 = require("lucide-react-native");
7511
+ var import_react_native66 = require("react-native");
7512
+ var import_lucide_react_native54 = require("lucide-react-native");
7335
7513
  var ProfileKnows = ({
7336
7514
  resource,
7337
7515
  profile,
7338
7516
  setProfile
7339
7517
  }) => {
7340
- const [newContact, setNewContact] = (0, import_react38.useState)("");
7341
- const addNewContact = (0, import_react38.useCallback)(() => {
7518
+ const [newContact, setNewContact] = (0, import_react43.useState)("");
7519
+ const addNewContact = (0, import_react43.useCallback)(() => {
7342
7520
  setProfile(resource, (cProfile) => {
7343
7521
  cProfile.knows?.add({ "@id": newContact });
7344
7522
  });
7345
7523
  setNewContact("");
7346
7524
  }, [newContact, resource, setProfile]);
7347
- return /* @__PURE__ */ import_react38.default.createElement(import_react_native62.View, { style: styles47.container }, /* @__PURE__ */ import_react38.default.createElement(
7525
+ return /* @__PURE__ */ import_react43.default.createElement(import_react_native66.View, { style: styles50.container }, /* @__PURE__ */ import_react43.default.createElement(
7348
7526
  Input,
7349
7527
  {
7350
7528
  placeholder: "https://example.pod/john/profile/card#me",
7351
7529
  label: "New Contact WebId",
7352
7530
  buttonRight: {
7353
- iconRight: import_lucide_react_native56.Plus,
7531
+ iconRight: import_lucide_react_native53.Plus,
7354
7532
  onPress: addNewContact,
7355
7533
  variant: "secondary"
7356
7534
  },
@@ -7358,16 +7536,16 @@ var ProfileKnows = ({
7358
7536
  onChangeText: setNewContact,
7359
7537
  onSubmitEditing: addNewContact
7360
7538
  }
7361
- ), profile.knows?.map((friend) => /* @__PURE__ */ import_react38.default.createElement(
7539
+ ), profile.knows?.map((friend) => /* @__PURE__ */ import_react43.default.createElement(
7362
7540
  AgentInformation,
7363
7541
  {
7364
7542
  key: friend["@id"],
7365
7543
  webId: friend["@id"],
7366
- accessoryRight: /* @__PURE__ */ import_react38.default.createElement(
7544
+ accessoryRight: /* @__PURE__ */ import_react43.default.createElement(
7367
7545
  Button,
7368
7546
  {
7369
7547
  variant: "ghost",
7370
- iconRight: import_lucide_react_native57.Trash,
7548
+ iconRight: import_lucide_react_native54.Trash,
7371
7549
  onPress: () => {
7372
7550
  setProfile(resource, (cProfile) => {
7373
7551
  cProfile.knows?.delete(friend);
@@ -7378,7 +7556,7 @@ var ProfileKnows = ({
7378
7556
  }
7379
7557
  )));
7380
7558
  };
7381
- var styles47 = import_react_native62.StyleSheet.create({
7559
+ var styles50 = import_react_native66.StyleSheet.create({
7382
7560
  container: {
7383
7561
  gap: 16
7384
7562
  // gap-4 equivalent (4 * 4px = 16px)
@@ -7386,14 +7564,14 @@ var styles47 = import_react_native62.StyleSheet.create({
7386
7564
  });
7387
7565
 
7388
7566
  // resourceViews/Profile/ProfileView.tsx
7389
- var import_solid_react11 = require("@ldo/solid-react");
7567
+ var import_solid_react12 = require("@ldo/solid-react");
7390
7568
  var ProfileView = () => {
7391
7569
  const { targetUri } = useViewContext();
7392
- const profileResource = (0, import_solid_react11.useResource)(targetUri);
7393
- const [profile, setProfile, commitProfile, transactionDataset] = (0, import_solid_react11.useChangeSubject)(SolidProfileShapeType, targetUri);
7570
+ const profileResource = (0, import_solid_react12.useResource)(targetUri);
7571
+ const [profile, setProfile, commitProfile, transactionDataset] = (0, import_solid_react12.useChangeSubject)(SolidProfileShapeType, targetUri);
7394
7572
  if (!targetUri || !profileResource || !profile || profileResource.type === "InvalidIdentifierResource")
7395
- return /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null);
7396
- return /* @__PURE__ */ import_react39.default.createElement(import_react_native63.ScrollView, { contentContainerStyle: styles48.scrollContainer }, /* @__PURE__ */ import_react39.default.createElement(import_react_native63.View, { style: styles48.container }, /* @__PURE__ */ import_react39.default.createElement(Text2, { variant: "h1" }, "Profile"), /* @__PURE__ */ import_react39.default.createElement(
7573
+ return /* @__PURE__ */ import_react44.default.createElement(import_react44.default.Fragment, null);
7574
+ return /* @__PURE__ */ import_react44.default.createElement(import_react_native67.ScrollView, { contentContainerStyle: styles51.scrollContainer }, /* @__PURE__ */ import_react44.default.createElement(import_react_native67.View, { style: styles51.container }, /* @__PURE__ */ import_react44.default.createElement(Text2, { variant: "h1" }, "Profile"), /* @__PURE__ */ import_react44.default.createElement(
7397
7575
  Input,
7398
7576
  {
7399
7577
  placeholder: "John Doe",
@@ -7405,25 +7583,25 @@ var ProfileView = () => {
7405
7583
  });
7406
7584
  }
7407
7585
  }
7408
- ), /* @__PURE__ */ import_react39.default.createElement(Separator2, null), /* @__PURE__ */ import_react39.default.createElement(Text2, { variant: "h2" }, "Contacts"), /* @__PURE__ */ import_react39.default.createElement(
7586
+ ), /* @__PURE__ */ import_react44.default.createElement(Separator2, null), /* @__PURE__ */ import_react44.default.createElement(Text2, { variant: "h2" }, "Contacts"), /* @__PURE__ */ import_react44.default.createElement(
7409
7587
  ProfileKnows,
7410
7588
  {
7411
7589
  profile,
7412
7590
  setProfile,
7413
7591
  resource: profileResource
7414
7592
  }
7415
- ), /* @__PURE__ */ import_react39.default.createElement(
7593
+ ), /* @__PURE__ */ import_react44.default.createElement(
7416
7594
  Button,
7417
7595
  {
7418
7596
  disabled: !transactionDataset.hasChanges(),
7419
7597
  text: "Update Profile",
7420
- style: styles48.updateButton,
7598
+ style: styles51.updateButton,
7421
7599
  onPress: commitProfile,
7422
7600
  isLoading: profileResource.isLoading()
7423
7601
  }
7424
7602
  )));
7425
7603
  };
7426
- var styles48 = import_react_native63.StyleSheet.create({
7604
+ var styles51 = import_react_native67.StyleSheet.create({
7427
7605
  scrollContainer: {
7428
7606
  flexDirection: "row",
7429
7607
  justifyContent: "center",
@@ -7445,10 +7623,10 @@ var styles48 = import_react_native63.StyleSheet.create({
7445
7623
  var ProfileResourceView = {
7446
7624
  name: "profile",
7447
7625
  displayName: "Profile",
7448
- displayIcon: import_lucide_react_native58.User,
7626
+ displayIcon: import_lucide_react_native55.User,
7449
7627
  view: ProfileView,
7450
- canDisplay: (targetUri, targetResource, dataset2) => {
7451
- const profile = dataset2.usingType(SolidProfileShapeType).fromSubject(targetUri);
7628
+ canDisplay: (targetUri, targetResource, dataset) => {
7629
+ const profile = dataset.usingType(SolidProfileShapeType).fromSubject(targetUri);
7452
7630
  return !!profile?.type?.some?.(
7453
7631
  (val) => val["@id"] === "Person" || val["@id"] === "Person2"
7454
7632
  );
@@ -7456,20 +7634,20 @@ var ProfileResourceView = {
7456
7634
  };
7457
7635
 
7458
7636
  // resourceViews/RawCode/RawCodeResourceView.tsx
7459
- var import_lucide_react_native60 = require("lucide-react-native");
7637
+ var import_lucide_react_native57 = require("lucide-react-native");
7460
7638
 
7461
7639
  // resourceViews/RawCode/RawCodeView.tsx
7462
- var import_solid_react12 = require("@ldo/solid-react");
7463
- var import_react42 = __toESM(require("react"));
7640
+ var import_solid_react13 = require("@ldo/solid-react");
7641
+ var import_react47 = __toESM(require("react"));
7464
7642
 
7465
7643
  // resourceViews/RawCode/RawCodeEditor.tsx
7466
- var import_react40 = __toESM(require("react"));
7467
- var import_react41 = __toESM(require("@monaco-editor/react"));
7644
+ var import_react45 = __toESM(require("react"));
7645
+ var import_react46 = __toESM(require("@monaco-editor/react"));
7468
7646
  var RawCodeEditor = ({
7469
7647
  value,
7470
7648
  onChange
7471
7649
  }) => {
7472
- const monacoRef = (0, import_react40.useRef)(null);
7650
+ const monacoRef = (0, import_react45.useRef)(null);
7473
7651
  const { colorScheme } = useThemeChange();
7474
7652
  function handleEditorWillMount(monaco) {
7475
7653
  monaco.languages.typescript.javascriptDefaults.setEagerModelSync(true);
@@ -7477,8 +7655,8 @@ var RawCodeEditor = ({
7477
7655
  const handleEditorDidMount = (editor, monaco) => {
7478
7656
  monacoRef.current = monaco;
7479
7657
  };
7480
- return /* @__PURE__ */ import_react40.default.createElement(
7481
- import_react41.default,
7658
+ return /* @__PURE__ */ import_react45.default.createElement(
7659
+ import_react46.default,
7482
7660
  {
7483
7661
  className: "flex-1",
7484
7662
  defaultLanguage: "turtle",
@@ -7492,26 +7670,26 @@ var RawCodeEditor = ({
7492
7670
  };
7493
7671
 
7494
7672
  // resourceViews/RawCode/RawCodeView.tsx
7495
- var import_react_native64 = require("react-native");
7496
- var import_react_native_notifier3 = require("react-native-notifier");
7497
- var import_lucide_react_native59 = require("lucide-react-native");
7498
- var import_native36 = require("@react-navigation/native");
7673
+ var import_react_native68 = require("react-native");
7674
+ var import_react_native_notifier4 = require("react-native-notifier");
7675
+ var import_lucide_react_native56 = require("lucide-react-native");
7676
+ var import_native38 = require("@react-navigation/native");
7499
7677
  var RawCodeView = () => {
7500
- const { fetch: fetch2 } = (0, import_solid_react12.useSolidAuth)();
7501
- const { colors } = (0, import_native36.useTheme)();
7502
- const [content, setContent] = (0, import_react42.useState)("");
7503
- const [contentType, setContentType] = (0, import_react42.useState)("");
7504
- const [didEdit, setDidEdit] = (0, import_react42.useState)(false);
7678
+ const { fetch: fetch2 } = (0, import_solid_react13.useSolidAuth)();
7679
+ const { colors } = (0, import_native38.useTheme)();
7680
+ const [content, setContent] = (0, import_react47.useState)("");
7681
+ const [contentType, setContentType] = (0, import_react47.useState)("");
7682
+ const [didEdit, setDidEdit] = (0, import_react47.useState)(false);
7505
7683
  const { curViewConfig, targetResource } = useViewContext();
7506
- const [isFetching, setIsFetching] = (0, import_react42.useState)(false);
7507
- const [isSaving, setIsSaving] = (0, import_react42.useState)(false);
7684
+ const [isFetching, setIsFetching] = (0, import_react47.useState)(false);
7685
+ const [isSaving, setIsSaving] = (0, import_react47.useState)(false);
7508
7686
  const targetUri = targetResource?.uri;
7509
- const fetchContent = (0, import_react42.useCallback)(async () => {
7687
+ const fetchContent = (0, import_react47.useCallback)(async () => {
7510
7688
  if (!targetUri || curViewConfig.name !== "rawCode") return;
7511
7689
  setIsFetching(true);
7512
7690
  const response = await fetch2(targetUri);
7513
7691
  if (response.status !== 200) {
7514
- import_react_native_notifier3.Notifier.showNotification({
7692
+ import_react_native_notifier4.Notifier.showNotification({
7515
7693
  title: `Could not fetch document. Recieved ${response.status}`
7516
7694
  });
7517
7695
  }
@@ -7520,7 +7698,7 @@ var RawCodeView = () => {
7520
7698
  setDidEdit(false);
7521
7699
  setContentType(response.headers.get("content-type") ?? "");
7522
7700
  }, [curViewConfig.name, fetch2, targetUri]);
7523
- const submitChanges = (0, import_react42.useCallback)(async () => {
7701
+ const submitChanges = (0, import_react47.useCallback)(async () => {
7524
7702
  if (!targetUri) return;
7525
7703
  setIsSaving(true);
7526
7704
  const response = await fetch2(targetUri, {
@@ -7531,23 +7709,23 @@ var RawCodeView = () => {
7531
7709
  body: content
7532
7710
  });
7533
7711
  if (response.status !== 205) {
7534
- import_react_native_notifier3.Notifier.showNotification({
7712
+ import_react_native_notifier4.Notifier.showNotification({
7535
7713
  title: `Could save document. Recieved ${response.status}`
7536
7714
  });
7537
7715
  setIsSaving(false);
7538
7716
  return;
7539
7717
  }
7540
- import_react_native_notifier3.Notifier.showNotification({
7718
+ import_react_native_notifier4.Notifier.showNotification({
7541
7719
  title: `Document Saved`
7542
7720
  });
7543
7721
  await fetchContent();
7544
7722
  setIsSaving(false);
7545
7723
  setDidEdit(false);
7546
7724
  }, [content, contentType, fetch2, fetchContent, targetUri]);
7547
- (0, import_react42.useEffect)(() => {
7725
+ (0, import_react47.useEffect)(() => {
7548
7726
  fetchContent();
7549
7727
  }, [fetchContent]);
7550
- return /* @__PURE__ */ import_react42.default.createElement(import_react_native64.View, { style: [styles49.container, { backgroundColor: colors.background }] }, /* @__PURE__ */ import_react42.default.createElement(LoadingBar, { isLoading: isFetching || isSaving }), /* @__PURE__ */ import_react42.default.createElement(
7728
+ return /* @__PURE__ */ import_react47.default.createElement(import_react_native68.View, { style: [styles52.container, { backgroundColor: colors.background }] }, /* @__PURE__ */ import_react47.default.createElement(LoadingBar, { isLoading: isFetching || isSaving }), /* @__PURE__ */ import_react47.default.createElement(
7551
7729
  RawCodeEditor,
7552
7730
  {
7553
7731
  value: content,
@@ -7556,19 +7734,19 @@ var RawCodeView = () => {
7556
7734
  setContent(value ?? "");
7557
7735
  }
7558
7736
  }
7559
- ), /* @__PURE__ */ import_react42.default.createElement(
7737
+ ), /* @__PURE__ */ import_react47.default.createElement(
7560
7738
  Button,
7561
7739
  {
7562
- style: styles49.saveButton,
7740
+ style: styles52.saveButton,
7563
7741
  onPress: submitChanges,
7564
7742
  text: "Save Changes",
7565
- iconLeft: import_lucide_react_native59.Save,
7743
+ iconLeft: import_lucide_react_native56.Save,
7566
7744
  isLoading: isSaving,
7567
7745
  disabled: !didEdit || isSaving
7568
7746
  }
7569
7747
  ));
7570
7748
  };
7571
- var styles49 = import_react_native64.StyleSheet.create({
7749
+ var styles52 = import_react_native68.StyleSheet.create({
7572
7750
  container: {
7573
7751
  flex: 1,
7574
7752
  position: "relative"
@@ -7585,60 +7763,60 @@ var styles49 = import_react_native64.StyleSheet.create({
7585
7763
  var RawCodeResourceView = {
7586
7764
  name: "rawCode",
7587
7765
  displayName: "Raw Code",
7588
- displayIcon: import_lucide_react_native60.Code,
7766
+ displayIcon: import_lucide_react_native57.Code,
7589
7767
  view: RawCodeView,
7590
7768
  canDisplay: () => true
7591
7769
  };
7592
7770
 
7593
7771
  // resourceViews/Image/ImageResourceView.tsx
7594
- var import_lucide_react_native61 = require("lucide-react-native");
7772
+ var import_lucide_react_native58 = require("lucide-react-native");
7595
7773
 
7596
7774
  // resourceViews/Image/ImageView.tsx
7597
- var import_react43 = __toESM(require("react"));
7598
- var import_react_native65 = require("react-native");
7599
- var import_solid_react13 = require("@ldo/solid-react");
7775
+ var import_react48 = __toESM(require("react"));
7776
+ var import_react_native69 = require("react-native");
7777
+ var import_solid_react14 = require("@ldo/solid-react");
7600
7778
  var ImageView = () => {
7601
7779
  const { targetUri } = useViewContext();
7602
- const imageResource = (0, import_solid_react13.useResource)(targetUri);
7603
- const blobUrl = (0, import_react43.useMemo)(() => {
7780
+ const imageResource = (0, import_solid_react14.useResource)(targetUri);
7781
+ const blobUrl = (0, import_react48.useMemo)(() => {
7604
7782
  if (!imageResource?.isBinary()) return void 0;
7605
7783
  const blob2 = imageResource.getBlob();
7606
7784
  if (!blob2 || !blob2.type.startsWith("image/")) return void 0;
7607
7785
  return URL.createObjectURL(blob2);
7608
7786
  }, [imageResource]);
7609
- (0, import_react43.useEffect)(() => {
7787
+ (0, import_react48.useEffect)(() => {
7610
7788
  return () => {
7611
7789
  if (blobUrl) URL.revokeObjectURL(blobUrl);
7612
7790
  };
7613
7791
  }, [blobUrl]);
7614
7792
  if (!targetUri || !imageResource) return null;
7615
7793
  if (imageResource.isLoading?.() ?? imageResource.status?.type === "unfetched") {
7616
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.center }, /* @__PURE__ */ import_react43.default.createElement(LoadingBar, { isLoading: true }), /* @__PURE__ */ import_react43.default.createElement(Text2, null, "Loading image\u2026"));
7794
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.center }, /* @__PURE__ */ import_react48.default.createElement(LoadingBar, { isLoading: true }), /* @__PURE__ */ import_react48.default.createElement(Text2, null, "Loading image\u2026"));
7617
7795
  }
7618
7796
  if (imageResource.status?.isError) {
7619
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.center }, /* @__PURE__ */ import_react43.default.createElement(Text2, null, imageResource.status.message ?? "Failed to load image."));
7797
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.center }, /* @__PURE__ */ import_react48.default.createElement(Text2, null, imageResource.status.message ?? "Failed to load image."));
7620
7798
  }
7621
7799
  if (!imageResource.isBinary()) {
7622
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.center }, /* @__PURE__ */ import_react43.default.createElement(Text2, null, "This resource is not a binary image."));
7800
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.center }, /* @__PURE__ */ import_react48.default.createElement(Text2, null, "This resource is not a binary image."));
7623
7801
  }
7624
7802
  const blob = imageResource.getBlob();
7625
7803
  if (!blob || !blob.type.startsWith("image/")) {
7626
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.center }, /* @__PURE__ */ import_react43.default.createElement(Text2, null, "This binary resource is not an image (", blob?.type ?? "unknown type", ")."));
7804
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.center }, /* @__PURE__ */ import_react48.default.createElement(Text2, null, "This binary resource is not an image (", blob?.type ?? "unknown type", ")."));
7627
7805
  }
7628
7806
  if (!blobUrl) {
7629
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.center }, /* @__PURE__ */ import_react43.default.createElement(Text2, null, "Unable to display image."));
7807
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.center }, /* @__PURE__ */ import_react48.default.createElement(Text2, null, "Unable to display image."));
7630
7808
  }
7631
- return /* @__PURE__ */ import_react43.default.createElement(import_react_native65.View, { style: styles50.container }, /* @__PURE__ */ import_react43.default.createElement(
7632
- import_react_native65.Image,
7809
+ return /* @__PURE__ */ import_react48.default.createElement(import_react_native69.View, { style: styles53.container }, /* @__PURE__ */ import_react48.default.createElement(
7810
+ import_react_native69.Image,
7633
7811
  {
7634
7812
  source: { uri: blobUrl },
7635
- style: styles50.image,
7813
+ style: styles53.image,
7636
7814
  resizeMode: "contain",
7637
7815
  accessibilityLabel: "Image resource"
7638
7816
  }
7639
7817
  ));
7640
7818
  };
7641
- var styles50 = import_react_native65.StyleSheet.create({
7819
+ var styles53 = import_react_native69.StyleSheet.create({
7642
7820
  container: {
7643
7821
  flex: 1,
7644
7822
  padding: 16,
@@ -7662,7 +7840,7 @@ var styles50 = import_react_native65.StyleSheet.create({
7662
7840
  var ImageResourceView = {
7663
7841
  name: "image",
7664
7842
  displayName: "Image",
7665
- displayIcon: import_lucide_react_native61.Image,
7843
+ displayIcon: import_lucide_react_native58.Image,
7666
7844
  view: ImageView,
7667
7845
  canDisplay: (_targetUri, targetResource) => {
7668
7846
  if (targetResource.type !== "SolidLeaf") return false;
@@ -7729,6 +7907,11 @@ console.log("Exporting components");
7729
7907
  CopyLink,
7730
7908
  DataBrowser,
7731
7909
  DataBrowserConfigContext,
7910
+ DefaultContainerContent,
7911
+ DefaultContainerLayout,
7912
+ DefaultContainerResourceItem,
7913
+ DefaultContainerSideMenu,
7914
+ DefaultContainerView,
7732
7915
  Dialog,
7733
7916
  DialogClose,
7734
7917
  DialogContent,