@storybook/react-native-ui-lite 10.3.0-next.2 → 10.3.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -424,26 +424,34 @@ StoryNode.displayName = "StoryNode";
424
424
  // src/Tree.tsx
425
425
  var import_react_native_theming3 = require("@storybook/react-native-theming");
426
426
  var import_react_native_ui_common = require("@storybook/react-native-ui-common");
427
- var import_react4 = __toESM(require("react"));
428
- var import_react_native2 = require("react-native");
429
- var import_list = require("@legendapp/list");
427
+ var import_react5 = __toESM(require("react"));
428
+ var import_react_native4 = require("react-native");
429
+
430
+ // src/LegendList.tsx
431
+ var import_react3 = require("@legendapp/list/react");
432
+ var import_react_native2 = require("@legendapp/list/react-native");
433
+ var import_react_native3 = require("react-native");
434
+ var isWeb = import_react_native3.Platform.OS === "web";
435
+ var LegendList = isWeb ? import_react3.LegendList : import_react_native2.LegendList;
436
+
437
+ // src/Tree.tsx
430
438
  var import_react_native_safe_area_context = require("react-native-safe-area-context");
431
439
 
432
440
  // src/SelectedNodeProvider.tsx
433
- var import_react3 = require("react");
441
+ var import_react4 = require("react");
434
442
  var import_jsx_runtime3 = require("react/jsx-runtime");
435
- var SelectedNodeContext = (0, import_react3.createContext)({
443
+ var SelectedNodeContext = (0, import_react4.createContext)({
436
444
  registerCallback: () => {
437
445
  },
438
446
  scrollCallback: () => {
439
447
  }
440
448
  });
441
449
  var SelectedNodeProvider = ({ children }) => {
442
- const [scrollCallbackValue, setScrollCallback] = (0, import_react3.useState)(null);
443
- const registerCallback = (0, import_react3.useCallback)((callback) => {
450
+ const [scrollCallbackValue, setScrollCallback] = (0, import_react4.useState)(null);
451
+ const registerCallback = (0, import_react4.useCallback)((callback) => {
444
452
  setScrollCallback(() => callback);
445
453
  }, []);
446
- const scrollCallback = (0, import_react3.useCallback)(
454
+ const scrollCallback = (0, import_react4.useCallback)(
447
455
  (options) => {
448
456
  scrollCallbackValue?.(options);
449
457
  },
@@ -460,11 +468,11 @@ var SelectedNodeProvider = ({ children }) => {
460
468
  }
461
469
  );
462
470
  };
463
- var useSelectedNode = () => (0, import_react3.useContext)(SelectedNodeContext);
471
+ var useSelectedNode = () => (0, import_react4.useContext)(SelectedNodeContext);
464
472
 
465
473
  // src/Tree.tsx
466
474
  var import_jsx_runtime4 = require("react/jsx-runtime");
467
- var Node = import_react4.default.memo(function Node2({
475
+ var Node = import_react5.default.memo(function Node2({
468
476
  item,
469
477
  refId,
470
478
  isOrphan: _isOrphan,
@@ -599,12 +607,12 @@ var ROOT_ITEM_HEIGHT = 54;
599
607
  var getEstimatedItemSize = (item, _index) => {
600
608
  return item?.isRoot ? ROOT_ITEM_HEIGHT : ITEM_HEIGHT;
601
609
  };
602
- var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, status, docsMode, selectedStoryId, onSelectStoryId }) {
610
+ var Tree = import_react5.default.memo(function Tree2({ isMain, refId, data, status, docsMode, selectedStoryId, onSelectStoryId }) {
603
611
  const { registerCallback } = useSelectedNode();
604
- const [idToScrolllOnMount, setIdToScrolllOnMount] = (0, import_react4.useState)(null);
612
+ const [idToScrolllOnMount, setIdToScrolllOnMount] = (0, import_react5.useState)(null);
605
613
  const insets = (0, import_react_native_safe_area_context.useSafeAreaInsets)();
606
- const listRef = (0, import_react4.useRef)(null);
607
- const [rootIds, orphanIds, initialExpanded] = (0, import_react4.useMemo)(
614
+ const listRef = (0, import_react5.useRef)(null);
615
+ const [rootIds, orphanIds, initialExpanded] = (0, import_react5.useMemo)(
608
616
  () => Object.keys(data).reduce(
609
617
  (acc, id) => {
610
618
  const item = data[id];
@@ -617,7 +625,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
617
625
  ),
618
626
  [data]
619
627
  );
620
- const { expandableDescendants } = (0, import_react4.useMemo)(() => {
628
+ const { expandableDescendants } = (0, import_react5.useMemo)(() => {
621
629
  return [...orphanIds, ...rootIds].reduce(
622
630
  (acc, nodeId) => {
623
631
  acc.expandableDescendants[nodeId] = (0, import_react_native_ui_common.getDescendantIds)(data, nodeId, false).filter(
@@ -628,7 +636,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
628
636
  { orphansFirst: [], expandableDescendants: {} }
629
637
  );
630
638
  }, [data, rootIds, orphanIds]);
631
- const singleStoryComponentIds = (0, import_react4.useMemo)(() => {
639
+ const singleStoryComponentIds = (0, import_react5.useMemo)(() => {
632
640
  return Object.keys(data).filter((id) => {
633
641
  const entry = data[id];
634
642
  if (entry.type !== "component") return false;
@@ -640,11 +648,11 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
640
648
  return false;
641
649
  });
642
650
  }, [data]);
643
- const collapsedItems = (0, import_react4.useMemo)(
651
+ const collapsedItems = (0, import_react5.useMemo)(
644
652
  () => Object.keys(data).filter((id) => !singleStoryComponentIds.includes(id)),
645
653
  [singleStoryComponentIds, data]
646
654
  );
647
- const collapsedData = (0, import_react4.useMemo)(() => {
655
+ const collapsedData = (0, import_react5.useMemo)(() => {
648
656
  return singleStoryComponentIds.reduce(
649
657
  (acc, id) => {
650
658
  const { children, parent, name } = data[id];
@@ -673,7 +681,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
673
681
  selectedStoryId,
674
682
  onSelectStoryId
675
683
  });
676
- const parentMap = (0, import_react4.useMemo)(() => {
684
+ const parentMap = (0, import_react5.useMemo)(() => {
677
685
  const map = {};
678
686
  collapsedItems.forEach((id) => {
679
687
  const item = collapsedData[id];
@@ -681,7 +689,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
681
689
  });
682
690
  return map;
683
691
  }, [collapsedItems, collapsedData]);
684
- const isItemVisible = (0, import_react4.useCallback)(
692
+ const isItemVisible = (0, import_react5.useCallback)(
685
693
  (itemId) => {
686
694
  const item = collapsedData[itemId];
687
695
  if (item.type === "root") return true;
@@ -695,7 +703,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
695
703
  },
696
704
  [collapsedData, expanded, parentMap]
697
705
  );
698
- const treeData = (0, import_react4.useMemo)(() => {
706
+ const treeData = (0, import_react5.useMemo)(() => {
699
707
  return collapsedItems.map((itemId) => {
700
708
  const item = collapsedData[itemId];
701
709
  if (!isItemVisible(itemId)) {
@@ -720,7 +728,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
720
728
  };
721
729
  }).filter(Boolean);
722
730
  }, [collapsedData, collapsedItems, expandableDescendants, expanded, isItemVisible, orphanIds]);
723
- const renderItem = (0, import_react4.useCallback)(
731
+ const renderItem = (0, import_react5.useCallback)(
724
732
  ({ item: treeItem }) => {
725
733
  const { itemId, item, isRoot } = treeItem;
726
734
  const id = (0, import_react_native_ui_common.createId)(itemId, refId);
@@ -765,13 +773,13 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
765
773
  },
766
774
  [docsMode, expanded, onSelectStoryId, refId, selectedStoryId, setExpanded, status]
767
775
  );
768
- const keyExtractor = (0, import_react4.useCallback)(
776
+ const keyExtractor = (0, import_react5.useCallback)(
769
777
  (item) => {
770
778
  return (0, import_react_native_ui_common.createId)(item.itemId, refId);
771
779
  },
772
780
  [refId]
773
781
  );
774
- const contentContainerStyle2 = (0, import_react4.useMemo)(
782
+ const contentContainerStyle2 = (0, import_react5.useMemo)(
775
783
  () => ({
776
784
  marginTop: isMain && orphanIds.length > 0 ? 20 : 0,
777
785
  paddingBottom: insets.bottom + 20,
@@ -779,7 +787,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
779
787
  }),
780
788
  [isMain, orphanIds.length, insets.bottom]
781
789
  );
782
- (0, import_react4.useLayoutEffect)(() => {
790
+ (0, import_react5.useLayoutEffect)(() => {
783
791
  registerCallback(({ id: nextId, animated }) => {
784
792
  const targetId = nextId ?? selectedStoryId;
785
793
  const ancestorIds = (0, import_react_native_ui_common.getAncestorIds)(collapsedData, targetId);
@@ -787,7 +795,7 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
787
795
  setIdToScrolllOnMount(targetId);
788
796
  });
789
797
  }, [collapsedData, registerCallback, selectedStoryId, setExpanded]);
790
- (0, import_react4.useEffect)(() => {
798
+ (0, import_react5.useEffect)(() => {
791
799
  if (idToScrolllOnMount) {
792
800
  const index = treeData.findIndex((item) => {
793
801
  return item.itemId === idToScrolllOnMount;
@@ -803,8 +811,8 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
803
811
  }
804
812
  }
805
813
  }, [idToScrolllOnMount, treeData]);
806
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native2.View, { style: flexStyle, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
807
- import_list.LegendList,
814
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_native4.View, { style: flexStyle, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
815
+ LegendList,
808
816
  {
809
817
  ref: listRef,
810
818
  style: flexStyle,
@@ -818,13 +826,13 @@ var Tree = import_react4.default.memo(function Tree2({ isMain, refId, data, stat
818
826
  }
819
827
  ) });
820
828
  });
821
- var Root = import_react4.default.memo(function Root2({
829
+ var Root = import_react5.default.memo(function Root2({
822
830
  setExpanded,
823
831
  isFullyExpanded,
824
832
  expandableDescendants,
825
833
  ...props
826
834
  }) {
827
- const setFullyExpanded = (0, import_react4.useCallback)(
835
+ const setFullyExpanded = (0, import_react5.useCallback)(
828
836
  () => setExpanded({ ids: expandableDescendants, value: !isFullyExpanded }),
829
837
  [setExpanded, isFullyExpanded, expandableDescendants]
830
838
  );
@@ -840,17 +848,17 @@ var Root = import_react4.default.memo(function Root2({
840
848
  });
841
849
 
842
850
  // src/Explorer.tsx
843
- var import_react6 = __toESM(require("react"));
851
+ var import_react7 = __toESM(require("react"));
844
852
 
845
853
  // src/Refs.tsx
846
- var import_react5 = __toESM(require("react"));
854
+ var import_react6 = __toESM(require("react"));
847
855
  var import_react_native_theming4 = require("@storybook/react-native-theming");
848
856
  var import_react_native_ui_common2 = require("@storybook/react-native-ui-common");
849
857
  var import_jsx_runtime5 = require("react/jsx-runtime");
850
858
  var Wrapper2 = import_react_native_theming4.styled.View(() => ({
851
859
  flex: 1
852
860
  }));
853
- var Ref = import_react5.default.memo(
861
+ var Ref = import_react6.default.memo(
854
862
  function Ref2(props) {
855
863
  const {
856
864
  index,
@@ -866,20 +874,20 @@ var Ref = import_react5.default.memo(
866
874
  previewInitialized,
867
875
  setSelection
868
876
  } = props;
869
- const length = (0, import_react5.useMemo)(() => index ? Object.keys(index).length : 0, [index]);
877
+ const length = (0, import_react6.useMemo)(() => index ? Object.keys(index).length : 0, [index]);
870
878
  const isLoadingInjected = type === "auto-inject" && !previewInitialized || type === "server-checked";
871
879
  const isLoading = isLoadingMain || isLoadingInjected || type === "unknown";
872
880
  const isError = !!indexError;
873
881
  const isEmpty = !isLoading && length === 0;
874
882
  const isAuthRequired = !!loginUrl && length === 0;
875
883
  const state = (0, import_react_native_ui_common2.getStateType)(isLoading, isAuthRequired, isError, isEmpty);
876
- const [isExpanded, setExpanded] = (0, import_react5.useState)(expanded);
877
- (0, import_react5.useEffect)(() => {
884
+ const [isExpanded, setExpanded] = (0, import_react6.useState)(expanded);
885
+ (0, import_react6.useEffect)(() => {
878
886
  if (index && selectedStoryId && index[selectedStoryId]) {
879
887
  setExpanded(true);
880
888
  }
881
889
  }, [setExpanded, index, selectedStoryId]);
882
- const onSelectStoryId = (0, import_react5.useCallback)(
890
+ const onSelectStoryId = (0, import_react6.useCallback)(
883
891
  (storyId) => {
884
892
  setSelection({ refId, storyId });
885
893
  },
@@ -902,26 +910,26 @@ var Ref = import_react5.default.memo(
902
910
  );
903
911
 
904
912
  // src/Explorer.tsx
905
- var import_react_native3 = require("react-native");
913
+ var import_react_native5 = require("react-native");
906
914
  var import_jsx_runtime6 = require("react/jsx-runtime");
907
- var import_react7 = require("react");
915
+ var import_react8 = require("react");
908
916
  var containerStyle = { flex: 1 };
909
- var Explorer = import_react6.default.memo(function Explorer2({
917
+ var Explorer = import_react7.default.memo(function Explorer2({
910
918
  isLoading,
911
919
  isBrowsing,
912
920
  dataset,
913
921
  selected,
914
922
  setSelection
915
923
  }) {
916
- const containerRef = (0, import_react6.useRef)(null);
924
+ const containerRef = (0, import_react7.useRef)(null);
917
925
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
918
- import_react_native3.View,
926
+ import_react_native5.View,
919
927
  {
920
928
  ref: containerRef,
921
929
  style: containerStyle,
922
930
  id: "storybook-explorer-tree",
923
931
  testID: "storybook-explorer-tree",
924
- children: dataset.entries.map(([refId, ref]) => /* @__PURE__ */ (0, import_react7.createElement)(
932
+ children: dataset.entries.map(([refId, ref]) => /* @__PURE__ */ (0, import_react8.createElement)(
925
933
  Ref,
926
934
  {
927
935
  ...ref,
@@ -939,8 +947,8 @@ var Explorer = import_react6.default.memo(function Explorer2({
939
947
  // src/Sidebar.tsx
940
948
  var import_react_native_theming7 = require("@storybook/react-native-theming");
941
949
  var import_react_native_ui_common5 = require("@storybook/react-native-ui-common");
942
- var import_react11 = __toESM(require("react"));
943
- var import_react_native6 = require("react-native");
950
+ var import_react12 = __toESM(require("react"));
951
+ var import_react_native8 = require("react-native");
944
952
 
945
953
  // src/constants.ts
946
954
  var BREAKPOINT = 1e3;
@@ -949,9 +957,9 @@ var DEFAULT_REF_ID = "storybook_internal";
949
957
 
950
958
  // src/Search.tsx
951
959
  var import_react_native_theming5 = require("@storybook/react-native-theming");
952
- var import_react8 = require("@nozbe/microfuzz/react");
953
- var import_react9 = __toESM(require("react"));
954
- var import_react_native4 = require("react-native");
960
+ var import_react9 = require("@nozbe/microfuzz/react");
961
+ var import_react10 = __toESM(require("react"));
962
+ var import_react_native6 = require("react-native");
955
963
  var import_react_native_ui_common3 = require("@storybook/react-native-ui-common");
956
964
  var import_jsx_runtime7 = require("react/jsx-runtime");
957
965
  var DEFAULT_MAX_SEARCH_RESULTS = 50;
@@ -969,7 +977,7 @@ var SearchIconWrapper = import_react_native_theming5.styled.View({
969
977
  var SearchField = import_react_native_theming5.styled.View({
970
978
  flexShrink: 0
971
979
  });
972
- var inputPlatformSpecificStyles = import_react_native4.Platform.select({
980
+ var inputPlatformSpecificStyles = import_react_native6.Platform.select({
973
981
  macos: {
974
982
  paddingVertical: 6
975
983
  },
@@ -981,7 +989,7 @@ var inputPlatformSpecificStyles = import_react_native4.Platform.select({
981
989
  height: 32
982
990
  }
983
991
  });
984
- var Input = (0, import_react_native_theming5.styled)(import_react_native4.TextInput)(({ theme }) => ({
992
+ var Input = (0, import_react_native_theming5.styled)(import_react_native6.TextInput)(({ theme }) => ({
985
993
  ...inputPlatformSpecificStyles,
986
994
  paddingLeft: 28,
987
995
  paddingRight: 28,
@@ -1009,14 +1017,14 @@ var ClearIcon = import_react_native_theming5.styled.TouchableOpacity(({ theme })
1009
1017
  }));
1010
1018
  var flexStyle2 = { flex: 1 };
1011
1019
  var searchFieldWrapperStyle = { paddingHorizontal: 10, marginBottom: 4 };
1012
- var Search = import_react9.default.memo(function Search2({ children, dataset, setSelection, getLastViewed, initialQuery = "" }) {
1020
+ var Search = import_react10.default.memo(function Search2({ children, dataset, setSelection, getLastViewed, initialQuery = "" }) {
1013
1021
  const theme = (0, import_react_native_theming5.useTheme)();
1014
- const inputRef = (0, import_react9.useRef)(null);
1015
- const [inputValue, setInputValue] = (0, import_react9.useState)(initialQuery);
1016
- const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
1017
- const [allComponents, showAllComponents] = (0, import_react9.useState)(false);
1022
+ const inputRef = (0, import_react10.useRef)(null);
1023
+ const [inputValue, setInputValue] = (0, import_react10.useState)(initialQuery);
1024
+ const [isOpen, setIsOpen] = (0, import_react10.useState)(false);
1025
+ const [allComponents, showAllComponents] = (0, import_react10.useState)(false);
1018
1026
  const { scrollCallback } = useSelectedNode();
1019
- const selectStory = (0, import_react9.useCallback)(
1027
+ const selectStory = (0, import_react10.useCallback)(
1020
1028
  (id, refId) => {
1021
1029
  setSelection({ storyId: id, refId });
1022
1030
  inputRef.current?.blur();
@@ -1026,7 +1034,7 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1026
1034
  },
1027
1035
  [scrollCallback, setSelection]
1028
1036
  );
1029
- const getItemProps = (0, import_react9.useCallback)(
1037
+ const getItemProps = (0, import_react10.useCallback)(
1030
1038
  ({ item: result }) => {
1031
1039
  return {
1032
1040
  icon: result?.item?.type === "component" ? "component" : "story",
@@ -1047,8 +1055,8 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1047
1055
  },
1048
1056
  [selectStory]
1049
1057
  );
1050
- const deferredDataset = (0, import_react9.useDeferredValue)(dataset);
1051
- const searchList = (0, import_react9.useMemo)(() => {
1058
+ const deferredDataset = (0, import_react10.useDeferredValue)(dataset);
1059
+ const searchList = (0, import_react10.useMemo)(() => {
1052
1060
  return deferredDataset.entries.reduce((acc, [refId, { index }]) => {
1053
1061
  if (index) {
1054
1062
  acc.push(
@@ -1060,10 +1068,10 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1060
1068
  return acc;
1061
1069
  }, []);
1062
1070
  }, [deferredDataset]);
1063
- const deferredQuery = (0, import_react9.useDeferredValue)(inputValue);
1064
- const queryText = (0, import_react9.useMemo)(() => deferredQuery ? deferredQuery.trim() : "", [deferredQuery]);
1065
- const getText = (0, import_react9.useCallback)((item) => [item.name, item.path?.join(" ") ?? ""], []);
1066
- const mapResultItem = (0, import_react9.useCallback)(
1071
+ const deferredQuery = (0, import_react10.useDeferredValue)(inputValue);
1072
+ const queryText = (0, import_react10.useMemo)(() => deferredQuery ? deferredQuery.trim() : "", [deferredQuery]);
1073
+ const getText = (0, import_react10.useCallback)((item) => [item.name, item.path?.join(" ") ?? ""], []);
1074
+ const mapResultItem = (0, import_react10.useCallback)(
1067
1075
  ({
1068
1076
  item,
1069
1077
  score,
@@ -1075,13 +1083,13 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1075
1083
  }),
1076
1084
  []
1077
1085
  );
1078
- const fuzzyResults = (0, import_react8.useFuzzySearchList)({
1086
+ const fuzzyResults = (0, import_react9.useFuzzySearchList)({
1079
1087
  list: searchList,
1080
1088
  queryText,
1081
1089
  getText,
1082
1090
  mapResultItem
1083
1091
  });
1084
- const results = (0, import_react9.useMemo)(() => {
1092
+ const results = (0, import_react10.useMemo)(() => {
1085
1093
  if (!queryText) return [];
1086
1094
  const maxResults = allComponents ? 1e3 : DEFAULT_MAX_SEARCH_RESULTS;
1087
1095
  const processedResults = [];
@@ -1110,8 +1118,8 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1110
1118
  }
1111
1119
  return processedResults;
1112
1120
  }, [queryText, fuzzyResults, allComponents]);
1113
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native4.View, { style: flexStyle2, children: [
1114
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native4.View, { style: searchFieldWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(SearchField, { children: [
1121
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native6.View, { style: flexStyle2, children: [
1122
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native6.View, { style: searchFieldWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(SearchField, { children: [
1115
1123
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SearchIconWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SearchIcon, {}) }),
1116
1124
  /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1117
1125
  Input,
@@ -1135,7 +1143,7 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1135
1143
  }
1136
1144
  )
1137
1145
  ] }) }),
1138
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native4.View, { style: flexStyle2, children: children({
1146
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native6.View, { style: flexStyle2, children: children({
1139
1147
  query: queryText,
1140
1148
  results,
1141
1149
  isBrowsing: !isOpen || !inputValue.length,
@@ -1148,15 +1156,13 @@ var Search = import_react9.default.memo(function Search2({ children, dataset, se
1148
1156
  });
1149
1157
 
1150
1158
  // src/SearchResults.tsx
1151
- var import_list2 = require("@legendapp/list");
1152
1159
  var import_react_native_theming6 = require("@storybook/react-native-theming");
1153
1160
  var import_react_native_ui_common4 = require("@storybook/react-native-ui-common");
1154
1161
  var import_polished2 = require("polished");
1155
- var import_react10 = __toESM(require("react"));
1156
- var import_react_native5 = require("react-native");
1162
+ var import_react11 = __toESM(require("react"));
1163
+ var import_react_native7 = require("react-native");
1157
1164
  var import_react_native_safe_area_context2 = require("react-native-safe-area-context");
1158
1165
  var import_jsx_runtime8 = require("react/jsx-runtime");
1159
- var isWeb = import_react_native5.Platform.OS === "web";
1160
1166
  var noResultsFirstLineStyle = { marginBottom: 4 };
1161
1167
  var flexStyle3 = { flex: 1 };
1162
1168
  var ResultRow = import_react_native_theming6.styled.TouchableOpacity(
@@ -1224,7 +1230,7 @@ var RecentlyOpenedTitle = import_react_native_theming6.styled.View(({ theme }) =
1224
1230
  marginBottom: 4,
1225
1231
  alignItems: "center"
1226
1232
  }));
1227
- var Highlight = import_react10.default.memo(
1233
+ var Highlight = import_react11.default.memo(
1228
1234
  function Highlight2({ children, text, ranges }) {
1229
1235
  if (!ranges || ranges.length === 0) return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Text, { children: children ?? text });
1230
1236
  const { nodes: result } = ranges.reduce(
@@ -1259,7 +1265,7 @@ var PathText = import_react_native_theming6.styled.Text(({ theme }) => ({
1259
1265
  fontSize: theme.typography.size.s1 - 1,
1260
1266
  color: theme.textMutedColor
1261
1267
  }));
1262
- var Result = import_react10.default.memo(function Result2({
1268
+ var Result = import_react11.default.memo(function Result2({
1263
1269
  item,
1264
1270
  matches,
1265
1271
  icon: _icon,
@@ -1267,7 +1273,7 @@ var Result = import_react10.default.memo(function Result2({
1267
1273
  ...props
1268
1274
  }) {
1269
1275
  const theme = (0, import_react_native_theming6.useTheme)();
1270
- const press = (0, import_react10.useCallback)(
1276
+ const press = (0, import_react11.useCallback)(
1271
1277
  (event) => {
1272
1278
  event.preventDefault();
1273
1279
  onPress?.(event);
@@ -1299,7 +1305,7 @@ var Result = import_react10.default.memo(function Result2({
1299
1305
  var Text = import_react_native_theming6.styled.Text(({ theme }) => ({
1300
1306
  color: theme.color.defaultText
1301
1307
  }));
1302
- var SearchResults = import_react10.default.memo(function SearchResults2({
1308
+ var SearchResults = import_react11.default.memo(function SearchResults2({
1303
1309
  query,
1304
1310
  results,
1305
1311
  closeMenu,
@@ -1308,11 +1314,11 @@ var SearchResults = import_react10.default.memo(function SearchResults2({
1308
1314
  clearLastViewed
1309
1315
  }) {
1310
1316
  const insets = (0, import_react_native_safe_area_context2.useSafeAreaInsets)();
1311
- const handleClearLastViewed = (0, import_react10.useCallback)(() => {
1317
+ const handleClearLastViewed = (0, import_react11.useCallback)(() => {
1312
1318
  clearLastViewed();
1313
1319
  closeMenu();
1314
1320
  }, [clearLastViewed, closeMenu]);
1315
- const contentContainerStyle2 = (0, import_react10.useMemo)(
1321
+ const contentContainerStyle2 = (0, import_react11.useMemo)(
1316
1322
  () => ({
1317
1323
  paddingHorizontal: 10,
1318
1324
  paddingTop: 8,
@@ -1320,7 +1326,7 @@ var SearchResults = import_react10.default.memo(function SearchResults2({
1320
1326
  }),
1321
1327
  [insets.bottom]
1322
1328
  );
1323
- const listData = (0, import_react10.useMemo)(() => {
1329
+ const listData = (0, import_react11.useMemo)(() => {
1324
1330
  const items = [];
1325
1331
  if (results.length > 0 && !query) {
1326
1332
  items.push({ type: "header", clearLastViewed: handleClearLastViewed });
@@ -1337,7 +1343,7 @@ var SearchResults = import_react10.default.memo(function SearchResults2({
1337
1343
  });
1338
1344
  return items;
1339
1345
  }, [results, query, handleClearLastViewed]);
1340
- const keyExtractor = (0, import_react10.useCallback)((item) => {
1346
+ const keyExtractor = (0, import_react11.useCallback)((item) => {
1341
1347
  switch (item.type) {
1342
1348
  case "header":
1343
1349
  return "header";
@@ -1351,7 +1357,7 @@ var SearchResults = import_react10.default.memo(function SearchResults2({
1351
1357
  }
1352
1358
  }
1353
1359
  }, []);
1354
- const renderItem = (0, import_react10.useCallback)(
1360
+ const renderItem = (0, import_react11.useCallback)(
1355
1361
  ({ item: listItem }) => {
1356
1362
  switch (listItem.type) {
1357
1363
  case "header":
@@ -1401,11 +1407,8 @@ var SearchResults = import_react10.default.memo(function SearchResults2({
1401
1407
  },
1402
1408
  [getItemProps, highlightedIndex]
1403
1409
  );
1404
- if (isWeb) {
1405
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native5.View, { style: flexStyle3, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: { flex: 1, overflow: "auto", ...contentContainerStyle2 }, children: listData.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { children: renderItem({ item }) }, keyExtractor(item))) }) });
1406
- }
1407
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native5.View, { style: flexStyle3, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1408
- import_list2.LegendList,
1410
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_native7.View, { style: flexStyle3, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1411
+ LegendList,
1409
1412
  {
1410
1413
  style: flexStyle3,
1411
1414
  data: listData,
@@ -1437,16 +1440,16 @@ var noneStyle = {
1437
1440
  width: 0,
1438
1441
  opacity: 0
1439
1442
  };
1440
- var Swap = import_react11.default.memo(function Swap2({
1443
+ var Swap = import_react12.default.memo(function Swap2({
1441
1444
  children,
1442
1445
  condition
1443
1446
  }) {
1444
- const [a, b] = import_react11.default.Children.toArray(children);
1445
- const aStyle = (0, import_react11.useMemo)(() => condition ? flexStyle4 : noneStyle, [condition]);
1446
- const bStyle = (0, import_react11.useMemo)(() => condition ? noneStyle : flexStyle4, [condition]);
1447
+ const [a, b] = import_react12.default.Children.toArray(children);
1448
+ const aStyle = (0, import_react12.useMemo)(() => condition ? flexStyle4 : noneStyle, [condition]);
1449
+ const bStyle = (0, import_react12.useMemo)(() => condition ? noneStyle : flexStyle4, [condition]);
1447
1450
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
1448
1451
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1449
- import_react_native6.View,
1452
+ import_react_native8.View,
1450
1453
  {
1451
1454
  style: aStyle,
1452
1455
  accessibilityElementsHidden: !condition,
@@ -1455,7 +1458,7 @@ var Swap = import_react11.default.memo(function Swap2({
1455
1458
  }
1456
1459
  ),
1457
1460
  /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1458
- import_react_native6.View,
1461
+ import_react_native8.View,
1459
1462
  {
1460
1463
  style: bStyle,
1461
1464
  accessibilityElementsHidden: condition,
@@ -1466,7 +1469,7 @@ var Swap = import_react11.default.memo(function Swap2({
1466
1469
  ] });
1467
1470
  });
1468
1471
  var useCombination = (index, indexError, previewInitialized, status, refs) => {
1469
- const hash = (0, import_react11.useMemo)(
1472
+ const hash = (0, import_react12.useMemo)(
1470
1473
  () => ({
1471
1474
  [DEFAULT_REF_ID]: {
1472
1475
  index,
@@ -1481,9 +1484,9 @@ var useCombination = (index, indexError, previewInitialized, status, refs) => {
1481
1484
  }),
1482
1485
  [refs, index, indexError, previewInitialized, status]
1483
1486
  );
1484
- return (0, import_react11.useMemo)(() => ({ hash, entries: Object.entries(hash) }), [hash]);
1487
+ return (0, import_react12.useMemo)(() => ({ hash, entries: Object.entries(hash) }), [hash]);
1485
1488
  };
1486
- var Sidebar = import_react11.default.memo(function Sidebar2({
1489
+ var Sidebar = import_react12.default.memo(function Sidebar2({
1487
1490
  storyId = null,
1488
1491
  refId = DEFAULT_REF_ID,
1489
1492
  index,
@@ -1493,7 +1496,7 @@ var Sidebar = import_react11.default.memo(function Sidebar2({
1493
1496
  refs = {},
1494
1497
  setSelection
1495
1498
  }) {
1496
- const selected = (0, import_react11.useMemo)(() => storyId && { storyId, refId }, [storyId, refId]);
1499
+ const selected = (0, import_react12.useMemo)(() => storyId && { storyId, refId }, [storyId, refId]);
1497
1500
  const dataset = useCombination(index, indexError, previewInitialized, status, refs);
1498
1501
  const lastViewedProps = (0, import_react_native_ui_common5.useLastViewed)(selected);
1499
1502
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Container, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Top, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Search, { dataset, setSelection, ...lastViewedProps, children: ({ query, results, isBrowsing, closeMenu, getItemProps, highlightedIndex }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(Swap, { condition: isBrowsing, children: [
@@ -1526,8 +1529,8 @@ var Sidebar = import_react11.default.memo(function Sidebar2({
1526
1529
  var import_portal2 = require("@gorhom/portal");
1527
1530
  var import_react_native_theming11 = require("@storybook/react-native-theming");
1528
1531
  var import_react_native_ui_common7 = require("@storybook/react-native-ui-common");
1529
- var import_react17 = require("react");
1530
- var import_react_native12 = require("react-native");
1532
+ var import_react18 = require("react");
1533
+ var import_react_native14 = require("react-native");
1531
1534
  var import_react_native_safe_area_context4 = require("react-native-safe-area-context");
1532
1535
  var import_core_events = require("storybook/internal/core-events");
1533
1536
  var import_manager_api2 = require("storybook/manager-api");
@@ -1535,18 +1538,18 @@ var import_manager_api2 = require("storybook/manager-api");
1535
1538
  // src/MobileAddonsPanel.tsx
1536
1539
  var import_react_native_theming8 = require("@storybook/react-native-theming");
1537
1540
  var import_react_native_ui_common6 = require("@storybook/react-native-ui-common");
1538
- var import_react13 = require("react");
1539
- var import_react_native8 = require("react-native");
1541
+ var import_react14 = require("react");
1542
+ var import_react_native10 = require("react-native");
1540
1543
  var import_manager_api = require("storybook/manager-api");
1541
1544
  var import_types = require("storybook/internal/types");
1542
1545
 
1543
1546
  // src/useAnimatedValue.ts
1544
- var import_react12 = require("react");
1545
- var import_react_native7 = require("react-native");
1547
+ var import_react13 = require("react");
1548
+ var import_react_native9 = require("react-native");
1546
1549
  function useAnimatedValue(initialValue, config) {
1547
- const ref = (0, import_react12.useRef)(null);
1550
+ const ref = (0, import_react13.useRef)(null);
1548
1551
  if (ref.current == null) {
1549
- ref.current = new import_react_native7.Animated.Value(initialValue, config);
1552
+ ref.current = new import_react_native9.Animated.Value(initialValue, config);
1550
1553
  }
1551
1554
  return ref.current;
1552
1555
  }
@@ -1554,94 +1557,94 @@ function useAnimatedValue(initialValue, config) {
1554
1557
  // src/MobileAddonsPanel.tsx
1555
1558
  var import_react_native_safe_area_context3 = require("react-native-safe-area-context");
1556
1559
  var import_jsx_runtime10 = require("react/jsx-runtime");
1557
- var MobileAddonsPanel = (0, import_react13.forwardRef)(
1560
+ var MobileAddonsPanel = (0, import_react14.forwardRef)(
1558
1561
  ({ storyId }, ref) => {
1559
1562
  const theme = (0, import_react_native_theming8.useTheme)();
1560
- const { height } = (0, import_react_native8.useWindowDimensions)();
1563
+ const { height } = (0, import_react_native10.useWindowDimensions)();
1561
1564
  const panelHeight = useAnimatedValue(0);
1562
1565
  const positionBottomAnimation = useAnimatedValue(height / 2);
1563
- const [isOpen, setIsOpen] = (0, import_react13.useState)(false);
1564
- const setMobileMenuOpen = (0, import_react13.useCallback)(
1566
+ const [isOpen, setIsOpen] = (0, import_react14.useState)(false);
1567
+ const setMobileMenuOpen = (0, import_react14.useCallback)(
1565
1568
  (open) => {
1566
1569
  setIsOpen(open);
1567
1570
  if (open) {
1568
- import_react_native8.Animated.parallel([
1569
- import_react_native8.Animated.timing(positionBottomAnimation, {
1571
+ import_react_native10.Animated.parallel([
1572
+ import_react_native10.Animated.timing(positionBottomAnimation, {
1570
1573
  toValue: 0,
1571
1574
  // Negative to move up
1572
1575
  duration: 350,
1573
1576
  useNativeDriver: false,
1574
- easing: import_react_native8.Easing.inOut(import_react_native8.Easing.cubic)
1577
+ easing: import_react_native10.Easing.inOut(import_react_native10.Easing.cubic)
1575
1578
  }),
1576
- import_react_native8.Animated.timing(panelHeight, {
1579
+ import_react_native10.Animated.timing(panelHeight, {
1577
1580
  toValue: height / 2,
1578
1581
  duration: 350,
1579
1582
  useNativeDriver: false,
1580
- easing: import_react_native8.Easing.inOut(import_react_native8.Easing.cubic)
1583
+ easing: import_react_native10.Easing.inOut(import_react_native10.Easing.cubic)
1581
1584
  })
1582
1585
  ]).start();
1583
1586
  } else {
1584
- import_react_native8.Animated.parallel([
1585
- import_react_native8.Animated.timing(positionBottomAnimation, {
1587
+ import_react_native10.Animated.parallel([
1588
+ import_react_native10.Animated.timing(positionBottomAnimation, {
1586
1589
  toValue: height / 2,
1587
1590
  duration: 350,
1588
1591
  useNativeDriver: false,
1589
- easing: import_react_native8.Easing.inOut(import_react_native8.Easing.cubic)
1592
+ easing: import_react_native10.Easing.inOut(import_react_native10.Easing.cubic)
1590
1593
  }),
1591
- import_react_native8.Animated.timing(panelHeight, {
1594
+ import_react_native10.Animated.timing(panelHeight, {
1592
1595
  toValue: 0,
1593
1596
  duration: 350,
1594
1597
  useNativeDriver: false,
1595
- easing: import_react_native8.Easing.inOut(import_react_native8.Easing.cubic)
1598
+ easing: import_react_native10.Easing.inOut(import_react_native10.Easing.cubic)
1596
1599
  })
1597
1600
  ]).start();
1598
1601
  }
1599
1602
  },
1600
1603
  [height, positionBottomAnimation, panelHeight]
1601
1604
  );
1602
- (0, import_react13.useEffect)(() => {
1605
+ (0, import_react14.useEffect)(() => {
1603
1606
  const handleKeyboardShow = ({ endCoordinates, duration, easing }) => {
1604
1607
  if (isOpen) {
1605
- import_react_native8.Animated.parallel([
1606
- import_react_native8.Animated.timing(panelHeight, {
1608
+ import_react_native10.Animated.parallel([
1609
+ import_react_native10.Animated.timing(panelHeight, {
1607
1610
  toValue: (height - endCoordinates.height) / 2,
1608
1611
  duration,
1609
1612
  useNativeDriver: false,
1610
- easing: import_react_native8.Easing[easing] || import_react_native8.Easing.out(import_react_native8.Easing.ease)
1613
+ easing: import_react_native10.Easing[easing] || import_react_native10.Easing.out(import_react_native10.Easing.ease)
1611
1614
  }),
1612
- import_react_native8.Animated.timing(positionBottomAnimation, {
1615
+ import_react_native10.Animated.timing(positionBottomAnimation, {
1613
1616
  toValue: -endCoordinates.height,
1614
1617
  // Negative to move up
1615
1618
  duration,
1616
1619
  useNativeDriver: false,
1617
- easing: import_react_native8.Easing[easing] || import_react_native8.Easing.out(import_react_native8.Easing.ease)
1620
+ easing: import_react_native10.Easing[easing] || import_react_native10.Easing.out(import_react_native10.Easing.ease)
1618
1621
  })
1619
1622
  ]).start();
1620
1623
  }
1621
1624
  };
1622
1625
  const handleKeyboardHide = ({ duration, easing }) => {
1623
1626
  if (isOpen) {
1624
- import_react_native8.Animated.parallel([
1625
- import_react_native8.Animated.timing(positionBottomAnimation, {
1627
+ import_react_native10.Animated.parallel([
1628
+ import_react_native10.Animated.timing(positionBottomAnimation, {
1626
1629
  toValue: 0,
1627
1630
  // Back to original position
1628
1631
  duration,
1629
1632
  useNativeDriver: false,
1630
- easing: import_react_native8.Easing[easing] || import_react_native8.Easing.out(import_react_native8.Easing.ease)
1633
+ easing: import_react_native10.Easing[easing] || import_react_native10.Easing.out(import_react_native10.Easing.ease)
1631
1634
  }),
1632
- import_react_native8.Animated.timing(panelHeight, {
1635
+ import_react_native10.Animated.timing(panelHeight, {
1633
1636
  toValue: height / 2,
1634
1637
  duration,
1635
1638
  useNativeDriver: false,
1636
- easing: import_react_native8.Easing[easing] || import_react_native8.Easing.out(import_react_native8.Easing.ease)
1639
+ easing: import_react_native10.Easing[easing] || import_react_native10.Easing.out(import_react_native10.Easing.ease)
1637
1640
  })
1638
1641
  ]).start();
1639
1642
  }
1640
1643
  };
1641
- const showSubscription = import_react_native8.Keyboard.addListener("keyboardDidShow", handleKeyboardShow);
1642
- const willShowSubscription = import_react_native8.Keyboard.addListener("keyboardWillShow", handleKeyboardShow);
1643
- const hideSubscription = import_react_native8.Keyboard.addListener("keyboardWillHide", handleKeyboardHide);
1644
- const didHideSubscription = import_react_native8.Keyboard.addListener("keyboardDidHide", handleKeyboardHide);
1644
+ const showSubscription = import_react_native10.Keyboard.addListener("keyboardDidShow", handleKeyboardShow);
1645
+ const willShowSubscription = import_react_native10.Keyboard.addListener("keyboardWillShow", handleKeyboardShow);
1646
+ const hideSubscription = import_react_native10.Keyboard.addListener("keyboardWillHide", handleKeyboardHide);
1647
+ const didHideSubscription = import_react_native10.Keyboard.addListener("keyboardDidHide", handleKeyboardHide);
1645
1648
  return () => {
1646
1649
  showSubscription.remove();
1647
1650
  willShowSubscription.remove();
@@ -1649,7 +1652,7 @@ var MobileAddonsPanel = (0, import_react13.forwardRef)(
1649
1652
  didHideSubscription.remove();
1650
1653
  };
1651
1654
  }, [height, panelHeight, positionBottomAnimation, isOpen]);
1652
- (0, import_react13.useImperativeHandle)(ref, () => ({
1655
+ (0, import_react14.useImperativeHandle)(ref, () => ({
1653
1656
  setAddonsPanelOpen: (open) => {
1654
1657
  if (open) {
1655
1658
  setMobileMenuOpen(true);
@@ -1659,7 +1662,7 @@ var MobileAddonsPanel = (0, import_react13.forwardRef)(
1659
1662
  }
1660
1663
  }));
1661
1664
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1662
- import_react_native8.Animated.View,
1665
+ import_react_native10.Animated.View,
1663
1666
  {
1664
1667
  style: {
1665
1668
  position: "absolute",
@@ -1673,14 +1676,14 @@ var MobileAddonsPanel = (0, import_react13.forwardRef)(
1673
1676
  accessibilityElementsHidden: !isOpen,
1674
1677
  importantForAccessibility: isOpen ? "auto" : "no-hide-descendants",
1675
1678
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1676
- import_react_native8.View,
1679
+ import_react_native10.View,
1677
1680
  {
1678
1681
  style: {
1679
1682
  flex: 1,
1680
1683
  justifyContent: "flex-end"
1681
1684
  },
1682
1685
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1683
- import_react_native8.View,
1686
+ import_react_native10.View,
1684
1687
  {
1685
1688
  style: {
1686
1689
  height: "100%",
@@ -1688,14 +1691,14 @@ var MobileAddonsPanel = (0, import_react13.forwardRef)(
1688
1691
  paddingTop: 10,
1689
1692
  borderTopColor: theme.appBorderColor,
1690
1693
  borderTopWidth: 1,
1691
- paddingBottom: import_react_native8.Platform.OS === "android" ? 16 : 0
1694
+ paddingBottom: import_react_native10.Platform.OS === "android" ? 16 : 0
1692
1695
  },
1693
1696
  children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1694
1697
  AddonsTabs,
1695
1698
  {
1696
1699
  onClose: () => {
1697
1700
  setMobileMenuOpen(false);
1698
- import_react_native8.Keyboard.dismiss();
1701
+ import_react_native10.Keyboard.dismiss();
1699
1702
  },
1700
1703
  storyId
1701
1704
  }
@@ -1733,30 +1736,25 @@ var centeredStyle = {
1733
1736
  alignItems: "center",
1734
1737
  justifyContent: "center"
1735
1738
  };
1739
+ var hiddenStyle = {
1740
+ display: "none"
1741
+ };
1736
1742
  var hitSlop = { top: 10, right: 10, bottom: 10, left: 10 };
1737
1743
  var AddonsTabs = ({ onClose, storyId }) => {
1738
1744
  const panels = import_manager_api.addons.getElements(import_types.Addon_TypesEnum.PANEL);
1739
1745
  const insets = (0, import_react_native_safe_area_context3.useSafeAreaInsets)();
1740
- const [addonSelected, setAddonSelected] = (0, import_react13.useState)(Object.keys(panels)[0]);
1741
- const panel = (0, import_react13.useMemo)(() => {
1742
- if (!storyId) {
1743
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native8.View, { style: centeredStyle, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native8.Text, { children: "No Story Selected" }) });
1744
- }
1745
- if (Object.keys(panels).length === 0) {
1746
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native8.View, { style: centeredStyle, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native8.Text, { children: "No addons loaded." }) });
1747
- }
1748
- return panels[addonSelected].render({ active: true });
1749
- }, [addonSelected, panels, storyId]);
1746
+ const [addonSelected, setAddonSelected] = (0, import_react14.useState)(Object.keys(panels)[0]);
1747
+ const panelEntries = (0, import_react14.useMemo)(() => Object.entries(panels), [panels]);
1750
1748
  const scrollContentContainerStyle = (0, import_react_native_ui_common6.useStyle)(
1751
1749
  () => ({
1752
1750
  paddingBottom: insets.bottom + 16
1753
1751
  }),
1754
1752
  [insets]
1755
1753
  );
1756
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native8.View, { style: addonsTabsContainerStyle, children: [
1757
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native8.View, { style: addonsTabsStyle, children: [
1754
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native10.View, { style: addonsTabsContainerStyle, children: [
1755
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react_native10.View, { style: addonsTabsStyle, children: [
1758
1756
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1759
- import_react_native8.ScrollView,
1757
+ import_react_native10.ScrollView,
1760
1758
  {
1761
1759
  horizontal: true,
1762
1760
  showsHorizontalScrollIndicator: false,
@@ -1769,7 +1767,7 @@ var AddonsTabs = ({ onClose, storyId }) => {
1769
1767
  {
1770
1768
  active: id === addonSelected,
1771
1769
  onPress: () => setAddonSelected(id),
1772
- text: resolvedTitle
1770
+ text: String(resolvedTitle)
1773
1771
  },
1774
1772
  id
1775
1773
  );
@@ -1788,16 +1786,19 @@ var AddonsTabs = ({ onClose, storyId }) => {
1788
1786
  )
1789
1787
  ] }),
1790
1788
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1791
- import_react_native8.ScrollView,
1789
+ import_react_native10.ScrollView,
1792
1790
  {
1793
1791
  style: addonsScrollStyle,
1794
1792
  contentContainerStyle: scrollContentContainerStyle,
1795
- children: panel
1793
+ children: !storyId ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native10.View, { style: centeredStyle, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native10.Text, { children: "No Story Selected" }) }) : panelEntries.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native10.View, { style: centeredStyle, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native10.Text, { children: "No addons loaded." }) }) : panelEntries.map(([id, p]) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_native10.View, { style: id === addonSelected ? void 0 : hiddenStyle, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PanelRenderer, { panel: p }) }, id))
1796
1794
  },
1797
1795
  `addons-scroll-${storyId}`
1798
1796
  )
1799
1797
  ] });
1800
1798
  };
1799
+ var PanelRenderer = ({ panel }) => {
1800
+ return panel.render({ active: true });
1801
+ };
1801
1802
  var Tab = ({ active, onPress, text }) => {
1802
1803
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1803
1804
  TabButton,
@@ -1829,8 +1830,8 @@ var TabText = import_react_native_theming8.styled.Text(({ theme, active }) => ({
1829
1830
  // src/MobileMenuDrawer.tsx
1830
1831
  var import_portal = require("@gorhom/portal");
1831
1832
  var import_react_native_theming9 = require("@storybook/react-native-theming");
1832
- var import_react14 = require("react");
1833
- var import_react_native9 = require("react-native");
1833
+ var import_react15 = require("react");
1834
+ var import_react_native11 = require("react-native");
1834
1835
  var import_jsx_runtime11 = require("react/jsx-runtime");
1835
1836
  var flexStyle5 = { flex: 1 };
1836
1837
  var portalContainerStyle = {
@@ -1843,48 +1844,48 @@ var portalContainerStyle = {
1843
1844
  zIndex: 1e3
1844
1845
  };
1845
1846
  var useAnimatedModalHeight = () => {
1846
- const { height } = (0, import_react_native9.useWindowDimensions)();
1847
+ const { height } = (0, import_react_native11.useWindowDimensions)();
1847
1848
  const animatedHeight = useAnimatedValue(0.65 * height);
1848
- (0, import_react14.useEffect)(() => {
1849
+ (0, import_react15.useEffect)(() => {
1849
1850
  const modalHeight = 0.65 * height;
1850
1851
  const maxModalHeight = 0.85 * height;
1851
- const expand = (duration = 250) => import_react_native9.Animated.timing(animatedHeight, {
1852
+ const expand = (duration = 250) => import_react_native11.Animated.timing(animatedHeight, {
1852
1853
  toValue: maxModalHeight,
1853
1854
  duration,
1854
- easing: import_react_native9.Easing.out(import_react_native9.Easing.quad),
1855
+ easing: import_react_native11.Easing.out(import_react_native11.Easing.quad),
1855
1856
  useNativeDriver: false
1856
1857
  }).start();
1857
- const collapse = (duration = 250) => import_react_native9.Animated.timing(animatedHeight, {
1858
+ const collapse = (duration = 250) => import_react_native11.Animated.timing(animatedHeight, {
1858
1859
  toValue: modalHeight,
1859
1860
  duration,
1860
- easing: import_react_native9.Easing.out(import_react_native9.Easing.quad),
1861
+ easing: import_react_native11.Easing.out(import_react_native11.Easing.quad),
1861
1862
  useNativeDriver: false
1862
1863
  }).start();
1863
1864
  const handleKeyboardWillShow = (e) => {
1864
- if (import_react_native9.Platform.OS === "ios") {
1865
+ if (import_react_native11.Platform.OS === "ios") {
1865
1866
  expand(e.duration);
1866
1867
  }
1867
1868
  };
1868
1869
  const handleKeyboardDidShow = (e) => {
1869
- if (import_react_native9.Platform.OS === "android") {
1870
+ if (import_react_native11.Platform.OS === "android") {
1870
1871
  expand();
1871
1872
  }
1872
1873
  };
1873
1874
  const handleKeyboardWillHide = (e) => {
1874
- if (import_react_native9.Platform.OS === "ios") {
1875
+ if (import_react_native11.Platform.OS === "ios") {
1875
1876
  collapse(e.duration);
1876
1877
  }
1877
1878
  };
1878
1879
  const handleKeyboardDidHide = (e) => {
1879
- if (import_react_native9.Platform.OS === "android") {
1880
+ if (import_react_native11.Platform.OS === "android") {
1880
1881
  collapse();
1881
1882
  }
1882
1883
  };
1883
1884
  const subscriptions = [
1884
- import_react_native9.Keyboard.addListener("keyboardWillShow", handleKeyboardWillShow),
1885
- import_react_native9.Keyboard.addListener("keyboardDidShow", handleKeyboardDidShow),
1886
- import_react_native9.Keyboard.addListener("keyboardWillHide", handleKeyboardWillHide),
1887
- import_react_native9.Keyboard.addListener("keyboardDidHide", handleKeyboardDidHide)
1885
+ import_react_native11.Keyboard.addListener("keyboardWillShow", handleKeyboardWillShow),
1886
+ import_react_native11.Keyboard.addListener("keyboardDidShow", handleKeyboardDidShow),
1887
+ import_react_native11.Keyboard.addListener("keyboardWillHide", handleKeyboardWillHide),
1888
+ import_react_native11.Keyboard.addListener("keyboardDidHide", handleKeyboardDidHide)
1888
1889
  ];
1889
1890
  return () => {
1890
1891
  subscriptions.forEach((subscription) => subscription.remove());
@@ -1892,25 +1893,25 @@ var useAnimatedModalHeight = () => {
1892
1893
  }, [animatedHeight, height]);
1893
1894
  return animatedHeight;
1894
1895
  };
1895
- var MobileMenuDrawer = (0, import_react14.memo)(
1896
- (0, import_react14.forwardRef)(
1896
+ var MobileMenuDrawer = (0, import_react15.memo)(
1897
+ (0, import_react15.forwardRef)(
1897
1898
  ({ children, onVisibilityChange }, ref) => {
1898
- const [isVisible, setIsVisible] = (0, import_react14.useState)(false);
1899
+ const [isVisible, setIsVisible] = (0, import_react15.useState)(false);
1899
1900
  const { scrollCallback } = useSelectedNode();
1900
1901
  const theme = (0, import_react_native_theming9.useTheme)();
1901
- const { height } = (0, import_react_native9.useWindowDimensions)();
1902
+ const { height } = (0, import_react_native11.useWindowDimensions)();
1902
1903
  const animatedHeight = useAnimatedModalHeight();
1903
1904
  const slideAnim = useAnimatedValue(height);
1904
1905
  const dragY = useAnimatedValue(0);
1905
- const openDrawer = (0, import_react14.useCallback)(() => {
1906
+ const openDrawer = (0, import_react15.useCallback)(() => {
1906
1907
  dragY.setValue(0);
1907
1908
  slideAnim.setValue(height);
1908
1909
  setIsVisible(true);
1909
1910
  onVisibilityChange?.(true);
1910
- import_react_native9.Animated.timing(slideAnim, {
1911
+ import_react_native11.Animated.timing(slideAnim, {
1911
1912
  toValue: 0,
1912
1913
  duration: 300,
1913
- easing: import_react_native9.Easing.out(import_react_native9.Easing.quad),
1914
+ easing: import_react_native11.Easing.out(import_react_native11.Easing.quad),
1914
1915
  useNativeDriver: true
1915
1916
  }).start(({ finished }) => {
1916
1917
  if (finished) {
@@ -1918,13 +1919,13 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1918
1919
  }
1919
1920
  });
1920
1921
  }, [dragY, height, onVisibilityChange, scrollCallback, slideAnim]);
1921
- const closeDrawer = (0, import_react14.useCallback)(() => {
1922
- import_react_native9.Keyboard.dismiss();
1922
+ const closeDrawer = (0, import_react15.useCallback)(() => {
1923
+ import_react_native11.Keyboard.dismiss();
1923
1924
  onVisibilityChange?.(false);
1924
- import_react_native9.Animated.timing(slideAnim, {
1925
+ import_react_native11.Animated.timing(slideAnim, {
1925
1926
  toValue: height,
1926
1927
  duration: 300,
1927
- easing: import_react_native9.Easing.in(import_react_native9.Easing.quad),
1928
+ easing: import_react_native11.Easing.in(import_react_native11.Easing.quad),
1928
1929
  useNativeDriver: true
1929
1930
  }).start(({ finished }) => {
1930
1931
  if (finished) {
@@ -1932,8 +1933,8 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1932
1933
  }
1933
1934
  });
1934
1935
  }, [height, onVisibilityChange, slideAnim]);
1935
- const panResponder = (0, import_react14.useMemo)(
1936
- () => import_react_native9.PanResponder.create({
1936
+ const panResponder = (0, import_react15.useMemo)(
1937
+ () => import_react_native11.PanResponder.create({
1937
1938
  onStartShouldSetPanResponder: () => true,
1938
1939
  onMoveShouldSetPanResponder: (_, gestureState) => {
1939
1940
  return gestureState.dy > 0;
@@ -1947,10 +1948,10 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1947
1948
  if (gestureState.dy > 50) {
1948
1949
  closeDrawer();
1949
1950
  } else {
1950
- import_react_native9.Animated.timing(dragY, {
1951
+ import_react_native11.Animated.timing(dragY, {
1951
1952
  toValue: 0,
1952
1953
  duration: 300,
1953
- easing: import_react_native9.Easing.out(import_react_native9.Easing.quad),
1954
+ easing: import_react_native11.Easing.out(import_react_native11.Easing.quad),
1954
1955
  useNativeDriver: true
1955
1956
  }).start();
1956
1957
  }
@@ -1958,7 +1959,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1958
1959
  }),
1959
1960
  [closeDrawer, dragY]
1960
1961
  );
1961
- (0, import_react14.useImperativeHandle)(ref, () => ({
1962
+ (0, import_react15.useImperativeHandle)(ref, () => ({
1962
1963
  setMobileMenuOpen: (open) => {
1963
1964
  if (open) {
1964
1965
  openDrawer();
@@ -1967,7 +1968,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1967
1968
  }
1968
1969
  }
1969
1970
  }));
1970
- const handleStyle = (0, import_react14.useMemo)(
1971
+ const handleStyle = (0, import_react15.useMemo)(
1971
1972
  () => ({
1972
1973
  width: 40,
1973
1974
  height: 5,
@@ -1977,7 +1978,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1977
1978
  }),
1978
1979
  [theme.color.mediumdark]
1979
1980
  );
1980
- const drawerContainerStyle = (0, import_react14.useMemo)(
1981
+ const drawerContainerStyle = (0, import_react15.useMemo)(
1981
1982
  () => ({
1982
1983
  flex: 1,
1983
1984
  borderTopColor: theme.appBorderColor,
@@ -1989,7 +1990,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1989
1990
  }),
1990
1991
  [theme.appBorderColor, theme.background.content, theme.color.border]
1991
1992
  );
1992
- const dragHandleWrapperStyle = (0, import_react14.useMemo)(
1993
+ const dragHandleWrapperStyle = (0, import_react15.useMemo)(
1993
1994
  () => ({
1994
1995
  alignItems: "center",
1995
1996
  justifyContent: "center",
@@ -1999,7 +2000,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
1999
2000
  }),
2000
2001
  [theme.background.content]
2001
2002
  );
2002
- const childrenWrapperStyle = (0, import_react14.useMemo)(
2003
+ const childrenWrapperStyle = (0, import_react15.useMemo)(
2003
2004
  () => ({
2004
2005
  flex: 1,
2005
2006
  backgroundColor: theme.background.content
@@ -2007,7 +2008,7 @@ var MobileMenuDrawer = (0, import_react14.memo)(
2007
2008
  [theme.background.content]
2008
2009
  );
2009
2010
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_portal.Portal, { hostName: "storybook-lite-ui-root", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2010
- import_react_native9.Animated.View,
2011
+ import_react_native11.Animated.View,
2011
2012
  {
2012
2013
  style: [portalContainerStyle, { transform: [{ translateY: slideAnim }] }],
2013
2014
  pointerEvents: isVisible ? "auto" : "none",
@@ -2015,8 +2016,8 @@ var MobileMenuDrawer = (0, import_react14.memo)(
2015
2016
  importantForAccessibility: isVisible ? "auto" : "no-hide-descendants",
2016
2017
  accessibilityViewIsModal: isVisible,
2017
2018
  children: [
2018
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native9.View, { style: flexStyle5, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2019
- import_react_native9.Pressable,
2019
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native11.View, { style: flexStyle5, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2020
+ import_react_native11.Pressable,
2020
2021
  {
2021
2022
  style: flexStyle5,
2022
2023
  onPress: closeDrawer,
@@ -2025,14 +2026,14 @@ var MobileMenuDrawer = (0, import_react14.memo)(
2025
2026
  }
2026
2027
  ) }),
2027
2028
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2028
- import_react_native9.Animated.View,
2029
+ import_react_native11.Animated.View,
2029
2030
  {
2030
2031
  style: {
2031
2032
  height: animatedHeight
2032
2033
  },
2033
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native9.Animated.View, { style: [drawerContainerStyle, { transform: [{ translateY: dragY }] }], children: [
2034
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native9.View, { ...panResponder.panHandlers, style: dragHandleWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native9.View, { style: handleStyle }) }),
2035
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native9.View, { style: childrenWrapperStyle, children })
2034
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react_native11.Animated.View, { style: [drawerContainerStyle, { transform: [{ translateY: dragY }] }], children: [
2035
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native11.View, { ...panResponder.panHandlers, style: dragHandleWrapperStyle, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native11.View, { style: handleStyle }) }),
2036
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_native11.View, { style: childrenWrapperStyle, children })
2036
2037
  ] })
2037
2038
  }
2038
2039
  )
@@ -2045,21 +2046,21 @@ var MobileMenuDrawer = (0, import_react14.memo)(
2045
2046
 
2046
2047
  // src/ResizeHandle.tsx
2047
2048
  var import_react_native_theming10 = require("@storybook/react-native-theming");
2048
- var import_react15 = require("react");
2049
- var import_react_native10 = require("react-native");
2049
+ var import_react16 = require("react");
2050
+ var import_react_native12 = require("react-native");
2050
2051
  var import_jsx_runtime12 = require("react/jsx-runtime");
2051
- var ResizeHandle = (0, import_react15.memo)(function ResizeHandle2({
2052
+ var ResizeHandle = (0, import_react16.memo)(function ResizeHandle2({
2052
2053
  direction,
2053
2054
  onResize,
2054
2055
  onResizeStart,
2055
2056
  onResizeEnd
2056
2057
  }) {
2057
2058
  const theme = (0, import_react_native_theming10.useTheme)();
2058
- const [active, setActive] = (0, import_react15.useState)(false);
2059
- const startValueRef = (0, import_react15.useRef)(0);
2059
+ const [active, setActive] = (0, import_react16.useState)(false);
2060
+ const startValueRef = (0, import_react16.useRef)(0);
2060
2061
  const isHorizontal = direction === "horizontal";
2061
- const panResponder = (0, import_react15.useMemo)(
2062
- () => import_react_native10.PanResponder.create({
2062
+ const panResponder = (0, import_react16.useMemo)(
2063
+ () => import_react_native12.PanResponder.create({
2063
2064
  onStartShouldSetPanResponder: () => true,
2064
2065
  onMoveShouldSetPanResponder: () => true,
2065
2066
  onPanResponderTerminationRequest: () => false,
@@ -2086,7 +2087,7 @@ var ResizeHandle = (0, import_react15.memo)(function ResizeHandle2({
2086
2087
  }),
2087
2088
  [isHorizontal, onResize, onResizeStart, onResizeEnd]
2088
2089
  );
2089
- const style = (0, import_react15.useMemo)(() => {
2090
+ const style = (0, import_react16.useMemo)(() => {
2090
2091
  const borderColor = active ? theme.barSelectedColor : theme.appBorderColor;
2091
2092
  if (isHorizontal) {
2092
2093
  return {
@@ -2111,22 +2112,22 @@ var ResizeHandle = (0, import_react15.memo)(function ResizeHandle2({
2111
2112
  cursor: "row-resize"
2112
2113
  };
2113
2114
  }, [active, isHorizontal, theme.appBorderColor, theme.barSelectedColor]);
2114
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native10.View, { ...panResponder.panHandlers, style });
2115
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native12.View, { ...panResponder.panHandlers, style });
2115
2116
  });
2116
2117
 
2117
2118
  // src/StorybookLogo.tsx
2118
- var import_react16 = require("react");
2119
- var import_react_native11 = require("react-native");
2119
+ var import_react17 = require("react");
2120
+ var import_react_native13 = require("react-native");
2120
2121
  var import_jsx_runtime13 = require("react/jsx-runtime");
2121
2122
  var WIDTH = 125;
2122
2123
  var HEIGHT = 25;
2123
2124
  var NoBrandLogo = ({ theme }) => theme.base === "light" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Logo, { height: HEIGHT, width: WIDTH }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DarkLogo, { height: HEIGHT, width: WIDTH });
2124
2125
  function isElement(value) {
2125
- return (0, import_react16.isValidElement)(value);
2126
+ return (0, import_react17.isValidElement)(value);
2126
2127
  }
2127
2128
  var BrandLogo = ({ theme }) => {
2128
2129
  const imageHasNoWidthOrHeight = typeof theme.brand.image === "object" && typeof theme.brand.image === "object" && "uri" in theme.brand.image && (!("height" in theme.brand.image) || !("width" in theme.brand.image));
2129
- (0, import_react16.useEffect)(() => {
2130
+ (0, import_react17.useEffect)(() => {
2130
2131
  if (imageHasNoWidthOrHeight) {
2131
2132
  console.warn(
2132
2133
  "STORYBOOK: When using a remote image as the brand logo, you must also set the width and height.\nFor example: brand: { image: { uri: 'https://sb.com/img.png', height: 25, width: 25}}"
@@ -2140,7 +2141,7 @@ var BrandLogo = ({ theme }) => {
2140
2141
  return theme.brand.image;
2141
2142
  }
2142
2143
  const image = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2143
- import_react_native11.Image,
2144
+ import_react_native13.Image,
2144
2145
  {
2145
2146
  source: theme.brand.image,
2146
2147
  resizeMode: theme.brand.resizeMode ?? "contain",
@@ -2149,10 +2150,10 @@ var BrandLogo = ({ theme }) => {
2149
2150
  );
2150
2151
  if (theme.brand.url) {
2151
2152
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2152
- import_react_native11.TouchableOpacity,
2153
+ import_react_native13.TouchableOpacity,
2153
2154
  {
2154
2155
  onPress: () => {
2155
- if (theme.brand.url) import_react_native11.Linking.openURL(theme.brand.url);
2156
+ if (theme.brand.url) import_react_native13.Linking.openURL(theme.brand.url);
2156
2157
  },
2157
2158
  accessibilityRole: "link",
2158
2159
  accessibilityLabel: theme.brand.title ?? "Brand logo",
@@ -2164,7 +2165,7 @@ var BrandLogo = ({ theme }) => {
2164
2165
  }
2165
2166
  };
2166
2167
  var BrandTitle = ({ theme }) => {
2167
- const brandTitleStyle = (0, import_react16.useMemo)(() => {
2168
+ const brandTitleStyle = (0, import_react17.useMemo)(() => {
2168
2169
  return {
2169
2170
  width: WIDTH,
2170
2171
  height: HEIGHT,
@@ -2172,13 +2173,13 @@ var BrandTitle = ({ theme }) => {
2172
2173
  fontSize: theme.typography.size.m1
2173
2174
  };
2174
2175
  }, [theme]);
2175
- const title = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native11.Text, { style: brandTitleStyle, numberOfLines: 1, ellipsizeMode: "tail", children: theme.brand.title });
2176
+ const title = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native13.Text, { style: brandTitleStyle, numberOfLines: 1, ellipsizeMode: "tail", children: theme.brand.title });
2176
2177
  if (theme.brand.url) {
2177
2178
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2178
- import_react_native11.TouchableOpacity,
2179
+ import_react_native13.TouchableOpacity,
2179
2180
  {
2180
2181
  onPress: () => {
2181
- if (theme.brand.url) import_react_native11.Linking.openURL(theme.brand.url);
2182
+ if (theme.brand.url) import_react_native13.Linking.openURL(theme.brand.url);
2182
2183
  },
2183
2184
  accessibilityRole: "link",
2184
2185
  accessibilityLabel: theme.brand.title,
@@ -2190,8 +2191,8 @@ var BrandTitle = ({ theme }) => {
2190
2191
  }
2191
2192
  };
2192
2193
  var StorybookLogo = ({ theme }) => {
2193
- const image = (0, import_react16.useMemo)(() => theme.brand?.image, [theme.brand?.image]);
2194
- const title = (0, import_react16.useMemo)(() => theme.brand?.title, [theme.brand?.title]);
2194
+ const image = (0, import_react17.useMemo)(() => theme.brand?.image, [theme.brand?.image]);
2195
+ const title = (0, import_react17.useMemo)(() => theme.brand?.title, [theme.brand?.title]);
2195
2196
  if (image) {
2196
2197
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(BrandLogo, { theme });
2197
2198
  } else if (title) {
@@ -2265,24 +2266,24 @@ var Layout = ({
2265
2266
  "desktopAddonsPanelHeight",
2266
2267
  300
2267
2268
  );
2268
- const { width: windowWidth, height: windowHeight } = (0, import_react_native12.useWindowDimensions)();
2269
- const handleSidebarResize = (0, import_react17.useCallback)(
2269
+ const { width: windowWidth, height: windowHeight } = (0, import_react_native14.useWindowDimensions)();
2270
+ const handleSidebarResize = (0, import_react18.useCallback)(
2270
2271
  (delta) => {
2271
2272
  setSidebarWidth((prev) => Math.min(Math.max(prev + delta, 180), windowWidth * 0.5));
2272
2273
  },
2273
2274
  [setSidebarWidth, windowWidth]
2274
2275
  );
2275
- const handleAddonsPanelResize = (0, import_react17.useCallback)(
2276
+ const handleAddonsPanelResize = (0, import_react18.useCallback)(
2276
2277
  (delta) => {
2277
2278
  setAddonsPanelHeight((prev) => Math.min(Math.max(prev - delta, 100), windowHeight * 0.6));
2278
2279
  },
2279
2280
  [setAddonsPanelHeight, windowHeight]
2280
2281
  );
2281
- const [isResizing, setIsResizing] = (0, import_react17.useState)(false);
2282
- const onResizeStart = (0, import_react17.useCallback)(() => setIsResizing(true), []);
2283
- const onResizeEnd = (0, import_react17.useCallback)(() => setIsResizing(false), []);
2284
- const [uiHidden, setUiHidden] = (0, import_react17.useState)(false);
2285
- (0, import_react17.useLayoutEffect)(() => {
2282
+ const [isResizing, setIsResizing] = (0, import_react18.useState)(false);
2283
+ const onResizeStart = (0, import_react18.useCallback)(() => setIsResizing(true), []);
2284
+ const onResizeEnd = (0, import_react18.useCallback)(() => setIsResizing(false), []);
2285
+ const [uiHidden, setUiHidden] = (0, import_react18.useState)(false);
2286
+ (0, import_react18.useLayoutEffect)(() => {
2286
2287
  setUiHidden(story?.parameters?.storybookUIVisibility === "hidden");
2287
2288
  }, [story?.parameters?.storybookUIVisibility]);
2288
2289
  const desktopSidebarStyle = (0, import_react_native_ui_common7.useStyle)(
@@ -2352,23 +2353,23 @@ var Layout = ({
2352
2353
  }),
2353
2354
  [theme.barTextColor]
2354
2355
  );
2355
- const mobileMenuDrawerRef = (0, import_react17.useRef)(null);
2356
- const addonPanelRef = (0, import_react17.useRef)(null);
2357
- const [isDrawerOpen, setIsDrawerOpen] = (0, import_react17.useState)(false);
2358
- const setSelection = (0, import_react17.useCallback)(({ storyId: newStoryId }) => {
2356
+ const mobileMenuDrawerRef = (0, import_react18.useRef)(null);
2357
+ const addonPanelRef = (0, import_react18.useRef)(null);
2358
+ const [isDrawerOpen, setIsDrawerOpen] = (0, import_react18.useState)(false);
2359
+ const setSelection = (0, import_react18.useCallback)(({ storyId: newStoryId }) => {
2359
2360
  const channel = import_manager_api2.addons.getChannel();
2360
2361
  channel.emit(import_core_events.SET_CURRENT_STORY, { storyId: newStoryId });
2361
2362
  }, []);
2362
2363
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
2363
- import_react_native12.View,
2364
+ import_react_native14.View,
2364
2365
  {
2365
2366
  style: containerStyle2,
2366
2367
  accessibilityElementsHidden: isDrawerOpen,
2367
2368
  importantForAccessibility: isDrawerOpen ? "no-hide-descendants" : "auto",
2368
2369
  children: [
2369
2370
  isDesktop ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
2370
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: desktopSidebarStyle, pointerEvents: isResizing ? "none" : "auto", children: desktopSidebarOpen ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
2371
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: desktopLogoContainer, children: [
2371
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.View, { style: desktopSidebarStyle, pointerEvents: isResizing ? "none" : "auto", children: desktopSidebarOpen ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
2372
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native14.View, { style: desktopLogoContainer, children: [
2372
2373
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StorybookLogo, { theme }),
2373
2374
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2374
2375
  import_react_native_ui_common7.IconButton,
@@ -2379,7 +2380,7 @@ var Layout = ({
2379
2380
  }
2380
2381
  )
2381
2382
  ] }),
2382
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: flexStyle6, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2383
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.View, { style: flexStyle6, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2383
2384
  Sidebar,
2384
2385
  {
2385
2386
  previewInitialized: true,
@@ -2410,9 +2411,9 @@ var Layout = ({
2410
2411
  }
2411
2412
  ) : null
2412
2413
  ] }) : null,
2413
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.View, { style: mobileContentStyle, children: [
2414
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native14.View, { style: mobileContentStyle, children: [
2414
2415
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2415
- import_react_native12.View,
2416
+ import_react_native14.View,
2416
2417
  {
2417
2418
  style: isDesktop ? storyContentStyle : contentContainerStyle,
2418
2419
  pointerEvents: isResizing ? "none" : "auto",
@@ -2420,7 +2421,7 @@ var Layout = ({
2420
2421
  }
2421
2422
  ),
2422
2423
  story?.parameters?.hideFullScreenButton || isDesktop ? null : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2423
- import_react_native12.TouchableOpacity,
2424
+ import_react_native14.TouchableOpacity,
2424
2425
  {
2425
2426
  style: fullScreenButtonStyle,
2426
2427
  hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
@@ -2440,7 +2441,7 @@ var Layout = ({
2440
2441
  onResizeEnd
2441
2442
  }
2442
2443
  ) : null,
2443
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: desktopAddonsPanelStyle, pointerEvents: isResizing ? "none" : "auto", children: desktopAddonsPanelOpen ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AddonsTabs, { storyId: story?.id, onClose: () => setDesktopAddonsPanelOpen(false) }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2444
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.View, { style: desktopAddonsPanelStyle, pointerEvents: isResizing ? "none" : "auto", children: desktopAddonsPanelOpen ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AddonsTabs, { storyId: story?.id, onClose: () => setDesktopAddonsPanelOpen(false) }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2444
2445
  import_react_native_ui_common7.IconButton,
2445
2446
  {
2446
2447
  style: iconFloatRightStyle,
@@ -2463,7 +2464,7 @@ var Layout = ({
2463
2464
  accessibilityLabel: "Open story list",
2464
2465
  children: [
2465
2466
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(MenuIcon, { color: theme.color.mediumdark }),
2466
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native12.Text, { style: navButtonTextStyle, numberOfLines: 1, children: [
2467
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_react_native14.Text, { style: navButtonTextStyle, numberOfLines: 1, children: [
2467
2468
  story?.title,
2468
2469
  "/",
2469
2470
  story?.name
@@ -2483,7 +2484,7 @@ var Layout = ({
2483
2484
  )
2484
2485
  ] }) }) : null,
2485
2486
  isDesktop ? null : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(MobileMenuDrawer, { ref: mobileMenuDrawerRef, onVisibilityChange: setIsDrawerOpen, children: [
2486
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native12.View, { style: mobileMenuDrawerContentStyle, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StorybookLogo, { theme }) }),
2487
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.View, { style: mobileMenuDrawerContentStyle, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StorybookLogo, { theme }) }),
2487
2488
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2488
2489
  Sidebar,
2489
2490
  {