@storybook/react-native-ui-lite 9.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.d.ts +94 -0
  3. package/dist/index.js +5437 -0
  4. package/package.json +80 -0
  5. package/src/Button.stories.tsx +134 -0
  6. package/src/Button.tsx +172 -0
  7. package/src/Explorer.stories.tsx +40 -0
  8. package/src/Explorer.tsx +38 -0
  9. package/src/IconButton.tsx +10 -0
  10. package/src/Layout.stories.tsx +70 -0
  11. package/src/Layout.tsx +310 -0
  12. package/src/LayoutProvider.tsx +32 -0
  13. package/src/MobileAddonsPanel.tsx +195 -0
  14. package/src/MobileMenuDrawer.tsx +90 -0
  15. package/src/Refs.tsx +82 -0
  16. package/src/Search.tsx +234 -0
  17. package/src/SearchResults.stories.tsx +102 -0
  18. package/src/SearchResults.tsx +254 -0
  19. package/src/SelectedNodeProvider.tsx +58 -0
  20. package/src/Sidebar.stories.tsx +188 -0
  21. package/src/Sidebar.tsx +131 -0
  22. package/src/StorageProvider.tsx +21 -0
  23. package/src/StorybookLogo.stories.tsx +76 -0
  24. package/src/StorybookLogo.tsx +108 -0
  25. package/src/Tree.stories.tsx +177 -0
  26. package/src/Tree.tsx +390 -0
  27. package/src/TreeNode.stories.tsx +117 -0
  28. package/src/TreeNode.tsx +154 -0
  29. package/src/assets/react-native-logo.png +0 -0
  30. package/src/constants.ts +4 -0
  31. package/src/hooks/useExpanded.ts +64 -0
  32. package/src/hooks/useLastViewed.ts +48 -0
  33. package/src/hooks/useStoreState.ts +27 -0
  34. package/src/icon/iconDataUris.tsx +365 -0
  35. package/src/index.tsx +11 -0
  36. package/src/mockdata.large.ts +25217 -0
  37. package/src/mockdata.ts +287 -0
  38. package/src/types.ts +66 -0
  39. package/src/util/StoryHash.ts +249 -0
  40. package/src/util/status.tsx +87 -0
  41. package/src/util/tree.ts +93 -0
  42. package/src/util/useStyle.ts +28 -0
@@ -0,0 +1,64 @@
1
+ import type { StoriesHash } from 'storybook/internal/manager-api';
2
+ import type { Dispatch } from 'react';
3
+ import { useCallback, useEffect, useReducer } from 'react';
4
+ import { getAncestorIds } from '../util/tree';
5
+
6
+ export type ExpandedState = Record<string, boolean>;
7
+
8
+ export interface ExpandAction {
9
+ ids: string[];
10
+ value: boolean;
11
+ }
12
+
13
+ export interface ExpandedProps {
14
+ refId: string;
15
+ data: StoriesHash;
16
+ initialExpanded?: ExpandedState;
17
+ rootIds: string[];
18
+ selectedStoryId: string | null;
19
+ onSelectStoryId: (storyId: string) => void;
20
+ }
21
+
22
+ const initializeExpanded = ({
23
+ initialExpanded,
24
+ rootIds,
25
+ }: {
26
+ refId: string;
27
+ data: StoriesHash;
28
+ initialExpanded?: ExpandedState;
29
+ rootIds: string[];
30
+ }) => {
31
+ const highlightedAncestors = [];
32
+ return [...rootIds, ...highlightedAncestors].reduce<ExpandedState>(
33
+ (acc, id) => Object.assign(acc, { [id]: id in initialExpanded ? initialExpanded[id] : true }),
34
+ {}
35
+ );
36
+ };
37
+
38
+ export const useExpanded = ({
39
+ refId,
40
+ data,
41
+ initialExpanded,
42
+ rootIds,
43
+ selectedStoryId,
44
+ }: ExpandedProps): [ExpandedState, Dispatch<ExpandAction>] => {
45
+ // Track the set of currently expanded nodes within this tree.
46
+ // Root nodes are expanded by default.
47
+ const [expanded, setExpanded] = useReducer(
48
+ (state: ExpandedState, { ids, value }: ExpandAction) =>
49
+ ids.reduce((acc, id) => Object.assign(acc, { [id]: value }), { ...state }),
50
+ { refId, data, rootIds, initialExpanded },
51
+ initializeExpanded
52
+ );
53
+
54
+ const updateExpanded = useCallback(({ ids, value }: ExpandAction) => {
55
+ setExpanded({ ids, value });
56
+ }, []);
57
+
58
+ // Expand the whole ancestry of the currently selected story whenever it changes.
59
+ useEffect(() => {
60
+ setExpanded({ ids: getAncestorIds(data, selectedStoryId), value: true });
61
+ }, [data, selectedStoryId]);
62
+
63
+ return [expanded, updateExpanded];
64
+ };
@@ -0,0 +1,48 @@
1
+ import debounce from 'lodash/debounce.js';
2
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
3
+ import store from 'store2';
4
+
5
+ import type { Selection, StoryRef } from '../types';
6
+
7
+ const save = debounce((value) => store.set('lastViewedStoryIds', value), 1000);
8
+
9
+ export const useLastViewed = (selection: Selection) => {
10
+ const initialLastViewedStoryIds = useMemo((): StoryRef[] => {
11
+ const items = store.get('lastViewedStoryIds');
12
+ if (!items || !Array.isArray(items)) return [];
13
+ if (!items.some((item) => typeof item === 'object' && item.storyId && item.refId)) return [];
14
+ return items;
15
+ }, []);
16
+
17
+ const lastViewedRef = useRef(initialLastViewedStoryIds);
18
+
19
+ const updateLastViewed = useCallback(
20
+ (story: StoryRef) => {
21
+ const items = lastViewedRef.current;
22
+ const index = items.findIndex(
23
+ ({ storyId, refId }) => storyId === story.storyId && refId === story.refId
24
+ );
25
+ if (index === 0) return;
26
+ if (index === -1) {
27
+ lastViewedRef.current = [story, ...items];
28
+ } else {
29
+ lastViewedRef.current = [story, ...items.slice(0, index), ...items.slice(index + 1)];
30
+ }
31
+ save(lastViewedRef.current);
32
+ },
33
+ [lastViewedRef]
34
+ );
35
+
36
+ useEffect(() => {
37
+ if (selection) updateLastViewed(selection);
38
+ // eslint-disable-next-line react-hooks/exhaustive-deps
39
+ }, [selection]);
40
+
41
+ return {
42
+ getLastViewed: useCallback(() => lastViewedRef.current, [lastViewedRef]),
43
+ clearLastViewed: useCallback(() => {
44
+ lastViewedRef.current = lastViewedRef.current.slice(0, 1);
45
+ save(lastViewedRef.current);
46
+ }, [lastViewedRef]),
47
+ };
48
+ };
@@ -0,0 +1,27 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { useStorage } from '../StorageProvider';
3
+
4
+ export const useStoreBooleanState = (
5
+ key: string,
6
+ defaultValue: boolean
7
+ ): ReturnType<typeof useState<boolean>> => {
8
+ const storage = useStorage();
9
+
10
+ const [val, setVal] = useState<boolean>(defaultValue);
11
+
12
+ useEffect(() => {
13
+ storage.getItem(key).then((newVal) => {
14
+ if (newVal === null || newVal === undefined) {
15
+ setVal(defaultValue);
16
+ } else {
17
+ setVal(newVal === 'true');
18
+ }
19
+ });
20
+ }, [key, storage, defaultValue]);
21
+
22
+ useEffect(() => {
23
+ storage.setItem(key, val.toString());
24
+ }, [key, storage, val]);
25
+
26
+ return [val, setVal];
27
+ };
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Auto-generated file with icon data URIs
3
+ * Generated on: 2025-05-15T19:52:58.689Z
4
+ * Do not modify manually
5
+ */
6
+ import { styled } from '@storybook/react-native-theming';
7
+ import { FC } from 'react';
8
+ import { Image } from 'react-native';
9
+
10
+ // Icon data URIs for React Native Image component
11
+ export interface IconDataURIs {
12
+ [iconName: string]: string; // Base64 PNG data
13
+ }
14
+
15
+ // Export all icon data URIs
16
+ export const iconDataURIs: IconDataURIs = {
17
+ BottomBarToggleIcon:
18
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAADqklEQVR4nO2dO2sUURiGH9QYMQoijrcmoKQQlHhp1B8gKqTw1iiktMtqIZGUqUVRImopNopom0bEW53GQkUQL4U2UbyAos3KwRMIuHNm5uzufDuz7wOnSSbfnHmf2S87mdkTEEIIIYQQ6SwBhoEtGuTJYNhn1jaDwEXgB9DUoEgGLrMLPsNoLit02j3x3AkcxTLgpwTQroBfwECMANfL1HboSAYuy8KMSACdOgFdlhJAjQTMAw80WJzBfJkCZmMK1pxZCbBFAoyRAGMkwBgJMEYCjJEAYyTAGAkwpq8ErAZmgA9+zPivWdI3AhLgeYs5vQA2Gs6rLwQkKeH3goTaC0gywreWUGsBSc7wLSXUVkBSMHwrCbUUkESGbyGhdgKSNsNfGC9LklArAUmHwi9TQm0EJB0OvywJtRCQdCn8MiRUXsByYC5HiKGn9fI8yTfn99VpKi/gTI7wHgNTge9P+W2y6kx0Yf6VF3AnR/hDQCOwTcNvkyXhdhfmX3kBVwL7ewas8ttlCXCsBB4GtrvUhflXXsA2/yRxKPy8AkISfgPbuzD/ygtwHAbe+3388X/nd0ESIQD/s1d9Lff9d8AhukMtBCywOfBOpYiABQZ9zW5SKwEhYgSUgQQgAaXQ0CtALagVakGoBZVCQy1ILagVakGoBZVCQy1ILagVakGoBZVCQy3o3w0Pq7WDpgMCpg3nFboJpKUKsB0SgAT09RiJ+WWn5WqQgGYPnL16BWAfYM+1IK0XxH/rJWm9IGP65k8RvYoEGCMBxkiAMRJgTM8JWAuMAacD40CLZz9D7ADGA/XGCz54O+TnEJrjmD+WSglwD9l+znmR8hbYlVFvKXCrwIXPTf8zIXb7h3Xz1HPv8Q9WRYD7nNeXgleKr/xi4Wmcjbj6dJ+4ScPt63XBeu6EWlcFAccjwmr69pLGk4h6jwL1RiPneLQKAk5EHtxooObTiHruDlUaOyPn6E6unhewAfhW8MDeZLSgyYiwzgXqDfjfPUXqfQXWV0EA/qX6PeeBfQT2ZtRzgd0vENa9DKGOfcCnnPXcCXUko15PCXBsAk4B51PGpBe1psCc9vuPmKbVnPDB5sXt+1ignhsn/bFQNQH9xqwE2CIBxkiAMRJgjAT0kwD3/vmuBoszCF1T6MEsbIcEUEEBW40n3azRcFkWZiBl+RgNyvlnno5rCpx2Tzi3XE407n7tjUXr7WiQOwOX2fWC97xTWeFvmOzRIE8Goz4zIYQQQghBK/4C+VNIj+qA4OcAAAAASUVORK5CYII=',
19
+ CloseFullscreenIcon:
20
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAACLElEQVR4nO2bTU4CQRCF34ozKK5MlFvgwp8riTdwPAJ6F9BLgAdwdGE0MbhhVSamJUhodWGqOtPfl/SGzZvumql6JK+lOHqSriQ9SmolNem3ruoWRyPJNlbTYd3ieNxyEE8d1i0Oy6yu6haHUQAKYHwBogXRgsQMMIYwQ7g6DBdEAQwXJFwQLUi4IMMFMYSrw3BBFMBwQcIF0YKECzJcEEO4OgwXRAEMFyRcEC1IuCDDBfmylxnAbw7ai4x2XxVxkTmEmYP2fUZ7pArop40uM4cwdniGm4z2Mj2b+5ewnha24HXssN/TAvb5LZW9LS0csSby47aA/a5S2SW8+S+SDhwLsC/puYB9f6ay2wIOfyh/hkk7cu9tdAuaOL/5mxxKmgbu/1JpEDROX8IiWc2x08D9KyfpmWY//E/47ze/2qtRAAAAAAAAAAAAAAAAAAAAAAA14JmOfpc0l3SdUsqlcJZi6/fpGV2DWZHRxNsUD4xiIOkuOh0dHc59DQrnHiXt8HBudAEsIJ4+KODwVwUo5YLG1LEAkW0nNB392zpxGrjR+wxLR5d+Se+8luuqo8whzB20q76m+sVO5hAWDtq5Cxi7qgzLrK7qFodRAApgfAGiBdGCxAwwhjBDuDoMF0QBDBckXBAtSLggwwUxhKvDcEEUwHBBwgXRgoQLMlwQQ7g6DBdEAQwXJFwQLUi4IMMF+dNuaT8PHdYtjiaXFu6obnH01lLZnmnhKN2tfAD6PcoFaT2ppgAAAABJRU5ErkJggg==',
21
+ CloseIcon:
22
+ 'data:image/png;base64,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',
23
+ CollapseAllIcon:
24
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAACP0lEQVR4nO2cT0ocQRSHfxsvoidIiAvBSMgZYo7i29kuPUaiy/y5hZqVmLjVU2hvdFGhoQqCyEwnGee9qvo+KBhmMfT7Pnq6e+hpaXXsSfohaZT0S9K+2uGjpOs820WeNRSvJT1ISk/Wsern6Jm5HiVtKxDfn9nIsgbVy7Bgrq8KxNWCDa01wrBkpksF4mTJxtYWYZgxzycFYlPSXSMRhhlz3OWZQ7E7M8JxZQfc9GRNZ0LvFZTdiveEo9rl1xzBWpFfYwRrTX5NEaxV+TVEsNblR45gvciPGMF6kx8pgvUqP0IE612+ZwRDvl8EQ75fBEO+XwRDvl8EQ75fBEO+XwRDvl8EQ75fBEP+anmXr0qXRTjMa84V7vSZ8AJ7QuLnhbgRxh5+24kaYUS+X4QR+X4RRuT7RRiR7xdhRP762JF084f8m/werJENSa/yml4DAAAAAAAAAAAAAAAAAAAAAAAAAPwHG/mZ1dPi1sQ1syPplptzfXjL7enx5Cf+I+AvPxHBX34igr/8RAR/+YkI/vITEV5e/qGkAyL4yS8QwVF+gQiO8gtEcJRfIIKj/AIRHOUXiLAi+YP+HR7m5yi/QARH+QUiOMovdB/BU756jxBBfrcRIsnvLkJE+d1EiCy/+Qg1yG82Qk3ym4tQo/xmItQsv/oIWw3ILwwz5phm3VQgThuR/zcRPisQVw3JnxvhUoH41pj8ORG+KBDT85sfGpO/6MD8KOmNgrEn6VzSff5K+qB22Jf0M892ls/4VsJvmYBl6EFAgbYAAAAASUVORK5CYII=',
25
+ CollapseIcon:
26
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYAAAAGACAYAAACkx7W/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAMQklEQVR4nO3d345dVQHHcRJiQl9AuFApd4ZGfRq0IfLnygsItLP2tHBBe7rXhIR0rdNyIdjKG/QdDOVeRQzotYIvQGzxpmCmxdKZFgNlZq9Tfp9PshKjJsrsyfe395kzcx56iI0z7bQnpnPtuan2y1NtV6e5fVJqvzbV/sXuufmvd/+9ub+7+9/ZqutnT6wuHh39/xuA+7C9Ov/YVNsrpfYP/hf6b33m9pcy99Mvv/7moy4CwANwt19q//00t//cd/j3nVL7Z9PcLnkqANhAW+v1kWlu9WasDyj893giuD7N7dzu/9bof14Adu/6V+3JaW5/PbTw33Xa37dX53/uiw8w0HY9//TNO/PF4n/H00Btx118gAHKTn+p1H5j8fh/NQKfT7WdcvEBlo3/i8PCf/cQnHXxARZ62Wfonf+9R+A1Fx/gEJ2sF44Nec3fkwDAOLtvvyy1fzQ89J4EAJa1+z7/4YH3JAAw5Dd8D++XvDwJAGymaW7vDI+6JwGA5f+w2wN193/n8e4ggPtX5v7q8JB7EgBY3nf6k86bcvyyGMB9fJjL6Hgf3Aj4ZTGAb6rU/vzwcHsSAFjerY9x3IBwexIAWFaZ+3vDg+1JAGB5ux/WPjzWngQAlrexf/jtoI53BwHc7akrVx4eHmgjALC8mAHwJAAQ+BKQEQC4t1L7x8PDvOwI+GUxgF1TbVeHR9mTAMDyprldGh5kTwIAy5vOteeGx9iTAMDyTqwuHh0eYk8CAGOU2t8fHmJPAgDLK3M/PTzCo4/fGAYSvfz6m48+sB8JebAj4C2iQJ7YdwPdPQJnR18LgOV/GJz0W8H/fwQ8CQBZSu3z8PhuyvEkACTZWq+PTHP7cHh8N+V4EgCSnKwXjpXarw2P76YcTwJAkqm246X2G8PjuynHkwCQZJrbC8PDu0nHkwCQZKrt1PDwbtIxAkASI2AEgGBGwAgAwYyAEQCCGQEjAAQzAkYACGYEjAAQzAgYASCYETACQDAjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMHK3LeHf6TjJh0fLwkkMQJGAAhmBIwAEMwIGAEgmBEwAkAwI2AEgGBGwAgAwYyAEQCCGQEjAAQzAkYACGYEjAAQzAgYASCYETACQDAjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMGMgBEAghkBIwAEMwJGAAg21TZN+0OYfOZ2dvQ1AViMETACQDAjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMGMgBEAghkBIwAEMwJGAAhmBIwAEMwIGAEgmBEwAkAwI2AEgGBGwAgAwYyAEQCCGQEjAAQzAkYACGYEjAAQzAgYASBYmXuZ9ocw+czt7OhrArAYI2AEgGBGwAgAwYyAEQCCGQEjAAQzAkYACGYEjAAQzAgYASCYETACQDAjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMGMgBEAghkBIwAEMwJGAAhmBIwAEMwIGAEgmBEwAkCwqbataX8Ik8/czo6+JgCLMQJGAAhmBIwAEMwIGAEgmBEwAkAwI2AEgGBGwAgAwYyAEQCCGQEjAAQzAkYACGYEjAAQzAgYASCYETACQDAjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMGMgBEAghkBIwAE257Pn5z2hzD5zO3s6GsCsBgjYASAYEbACADBjIARAIIZASMABDMCRgAIZgSMABDMCBgBIJgRMAJAMCNgBIBgRsAIAMGMgBEAghkBIwAEMwJGAAhmBPaOQJl7GX1NABbj8wTuGIDab0y1HfftB8TwJLBnBD7bqutfjL4mAIvxJLBnBD7aWq+P+PYDYngS2DMCq9HXA2BRngRuf6zk9ROri0d9+wFRPAncHoG3R18LgMV5Erj1A+Ht1fnHfPsBcTwJ3PzdgO3R1wFgiPQRKLW/71sPyB6BuX0+OsbDzk57fPQ1ABgmeQS26vpZ33pAtOCXgy6P/toDDJf5JNCujv66A2yEtCeBUvu/Rn/NATZG1JPA3K6P/noDbJSkEfjN5cs/GP31BtgYSS8FGQCAwPh7CQggMf63BuATFx+IFxf/W38P6N34Cw9kS4z/l08Al0Z/7QGGiY3/7jnXnvGtB0SKjn/tX7yyeuMno68BwOLS4z/N7c++7YA48fG/OQJtGn0dABblIyF9JCQQyJ3/7Zd/fjv6WgAsxp3/rfiX2q/54S8Qw53/Vz/8LbWfGX09ABbhzn/PO38+XK1Wj/jWA7733Pnfcec/939Pq/bk6GsCcOjc+e952edGOdd/5dsO+N5z57//F7/a1uhrAnDoxH9v/P3QF4jgZR/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcrcy7QvgMmn1H5m9DUBOHTiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAom/+AOBxF/8gUDiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAom/+AOBxF/8gUDiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAom/+AOBxF/8gUBTbdO0L4DJp9R+ZvQ1ATh04i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFAZe7b074AJp9S+5nR1wTg0Im/+AOBxF/8gUDiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAom/+AOBxF/8gUDiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAom/+AOBxF/8gUDiL/5AIPEXfyCQ+Is/EEj8xR8IJP7iDwQSf/EHAk21nZr2BTD5lNrPjL4mAIdO/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxBI/MUfCCT+4g8EEn/xBwKJv/gDgcRf/IFA4i/+QCDxF38gkPiLPxCozP30tC+AyafUfmb0NQE4dOIv/kAg8Rd/IJD4iz8QSPzFHwgk/uIPBBJ/8QcClZ3+4ui3V27S8VZPIMJ2Pf90qf3G6OhuzJnba6OvCcChO1kvHJvmdn14dDfkuPMHImyt10dK7R+Nju7GHHf+QIppbnV4dDfkuPMHYkw77YlS+2ejw7sRx50/kGSa2zvDw7sBx50/EGV7df4xd//u/IFAZe6vjr7zHn3c+QORSu0fjA6w+AMM+OHv6AAPPX7gC6QqtT8/PMKDjpd9gGhT7ZdHh9idP8AAZe7vDY+xO3+A5U1z+2R0kBc9XvMHuCXpD795zR/gS09dufLw6CiLP8AAKQPgzh8g8CUg8Qf4GqX2j0dH+tCOH/gCfL2ptqvDQ+3OH2B509wujY61O3+AAaZz7bnhwT7A4zV/gG/oxOri0dHRPrDjNX+Ab6fU/v7weLvzB1hemfvp0QH/LsfLPgD36eXX33z0gf1ISC/7AOS9G8idP8BB/TD4QfqtYHf+AAen1D4PD7s7f4Dlba3XR6a5fTg68O78AQY4WS8cK7VfGx76exyv+QMcsqm246X2G6ODv+d4zR9gGdPcXhgefXf+AGOUnf7S0CeBuX0+1XbK9QcY93LQ4j8TuPW/2X7pogMMVFb9p6X2Dxa88//bVl3/zEUH2Jy3iJ49zF8W273r332nz2q1emT0Py8A+0w77fFS++8O9G8Hze16qf2tstN/7AsO8CD8Abm5b5fa//Qd4v/HqbZpWrUfjv7nAeA+7N65T+faMzefDOb+h2lu/yxz//T2Sztz/7TU/o8v/7O3t+r616dXb/zIFxt46Fv4L6gIAb4zkj6tAAAAAElFTkSuQmCC',
27
+ ComponentIcon:
28
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD4klEQVR4nO2dy4uOURjAf+5icismym0hNspCLMRGSbIxshIWiixZuGRhFixchyh3dhbuuTQi/4GNZEPkPoOYsmCMcvTU+TRpzDnfZb7nnPd7fvXszvvN8zy/mfOd9216H6iMQcA8YBtwCXgEvAe6AFfw6ALe+Zql9q2+F9KTAacZaAVeJtAIl1i8APb4HtWcccAx4HsChbrEQ3rU5ntWE1YDHxMozGUWncCqaho/FDieQCEu4/gNHAWGlNv8kcDNBApwBYnrvqdRiK1rCSTtCha3/K4S5EQCybqChhxk+mVNBV80Z4EWYC4wiYHHBWKgmeRrbfG1l3tAkev6ZALwKfJDPgM7gBHUH6cs4F+GAZuAjsjeibDx1Ww97bU84xZAQAlp6r1Kt6IpQHfEhacqOVI1iAB8b05H5PgDmEwv9kVcdDeB5qcuAN+j9og895YuGAy8CSz+AIwlDVziAvBbdGcgz1elB3gLIoraTDq4DAQIWyJynS8LdwYWvYu9gagTLhMBw/wj+v5y3U7EXa+cjlLCZSJAOBnI9bIsehJYtIK0cBkJWBnI9bEs+hJYNIu0cBkJmBNxQ8vPwKIm0sJlJGBMINfu3AoqZL6FKygxTIAyJkAZE6CMCVDGBChjApQxAcqYAGVMgDImQBkToIwJUMYEKGMClDEBypgAZUyAMiZAGROgjAlQxgQoYwJyF2DBgPbAGoxuD0wAJgDtJthfAPqNsC2Ixgz1BFyDh3oCrsEjvCAxXNHyLVxBiWEClDEBypgAZUyAMiZAGROgjAlQxgQoYwKUMQHKmABlTIAyJkAZE6CMCVDGBChjApQxAcqYAGVMgDImQBkTkLqAnsACe3Fr5TQFeisvzeVrYJG9urhyZse8uvhpYNEy0sJl9I9ZywO5yovTuRFYJKP4UsJlJCA0CvKqLNodMWpDxpykgstEgMySeR3IdZcsXBRR1AbSwWUiYGNErgtLpkKjNsTkaNLAZSBATj9vI0bD/N1ZDkQUdqVeY7szFzAochjq/t4XTY+4H3BelLYEl7AA6c3BiBzl/D/134vPRlxYGjwzCj1cogJG+13CRU4k7HNKaOimrBRv/ABLjcl6LjEBg/0U2peRvZOZPRP/92HrIz+kFC+AQ8BSYBowvAEEDPe1Ss2HfQ/K6dna0A+4UOYHWhDdgzOxE+Bix7JaEN2Dh+XMX5Zz7ANrMLX6BbtfyVNl2esumgSqbf65ar8b5TFEl4mg3MbLiXIdNaIZOA/8MhGEGt/j76nkWF9zZgJtEcOKGzE6gCPADOqAzBdeArQCd4DnwLcEmuDqFFLrM+A2sAdYXOnM5T+zntdc+VUv0gAAAABJRU5ErkJggg==',
29
+ DarkLogo:
30
+ 'data:image/png;base64,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',
31
+ ExpandAllIcon:
32
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAACM0lEQVR4nO2dXUocQRRGv1dvBH1IRoJuxa1o1uIPbkEDkn0kjqBPMa8q9A50D4ItDVUgPuhMYry3bp0DDSIy1D1nZhqkq1tqk3VJ3yXdl+NE0pr3onphJula0vjiGCR99V5cr/JHIvjLH4ngL38kgr/8kQj+8kci+MsfifD3bEi6XUDuvBxv/d1teU14x3f+haRVSSuSfvFJ8JFfIYKj/AoRHOVXiOAov0KE/yD/ckH5zyOccWL2kV8xIvjJrxDBUX6FCI7yK0RwlF/pOoK3/K4jRJHfZYRo8ruKEFV+FxGiy08doRX5KSO0Jj9VhFblp4jwSdLNAos/L4NGxcoa35rjJtocRwnkLxvhUIH4k0T+MhF+KxBnDX7n/+s54acCsZvknb/MJ2FHwdiX9FAW9yjptHH5FSuzVPHTjHsKymdJ25I2lY/NMts0IwAAAAAAAAAAAAAAAAAAAAAAAAB8CF/K5XtbysdWmW2aMSTPL84dk12c++PFxbnTrKH41uHl6bsKxHnSDRrzV+aabpUZhqsOtyhdKRCHHW7SO1CwRbNN1ZkMG7XnrW7Ubj2CtbxLvvUIlkl+axEso/xWIlhm+dEjWA/yo0awnuRHi2A9yo8SwXqWX+HWxQHg5t0B4Pb1AZjxAIe8EYwTrl8EQ75fBEO+XwRDvl8EQ75fBEP++7PB42z9mfFAZ39mPNK83QhD5v9qRo8wIN8vwoB8vwgD8v0iDMj/ONYkHUu6K8f08/S75ngCx9JowhDirVwAAAAASUVORK5CYII=',
33
+ FaceHappyIcon:
34
+ 'data:image/png;base64,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',
35
+ FullscreenIcon:
36
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAADv0lEQVR4nO2dzU4UQRSFz0J+TMQlupPBGOE5FHCDsrJmwcDbGMJC+VkqPoYLJDwE6A5hD3sGI+OYTgqD4/TQXbe661b1+ZJadufec2aqu+vnFkAIIYQQQvIZA9ACMOvQpiIWdsox55bVTMx9ALsArgD0HVsPwAGAGcRDC8Chjd017y6AHQCTkkB2BQEMtmMAE9DPBIDvHvPedg1kzLrY99gWoJ8lzzl3Xbujp54Dydoa9LNWQd6ZlqV55jmIrD99Dv3MCfv+YS3TMrgB7xAPGzEacAHg65D2CcAy4uO1jX1YThcaDbiOpI+XYgD80mhAE0wwDuLX/gxI1QTjKH7tBqRoghGIX4kB51bku0xYRfysFsz1vE4DvgB4W+BXEfs/wRTMsWM1qdUAJG6CKSE+QhmQqgmmpPhBDUjNBOMgfnADUjHBOIpfiQEPRgxKfRQmoNEEI4x9L+eanmRW8CDnpsseXts60EPHw2v1m5zr9qVTc8cDbhYZ1YzJhI7Hb5qNgV7jCMATaYDjdiZrreR4fgwmdCr4oJyzWr202gVF8zPBKI4tSKLrNcbUbor4ZUzo1WRC48TXZEK7qeJrMKHddPFDmtCm+OFMaFN82Tv4kkD8VxF8i6g34Yfg/mcU348J0w7iP6L4fp4JXcfFraMWFzfibceXCe8F99yi+OVYsn1+324K+SDc4DBpTbjZYHIifKg3hmlfW3wsY47PEUIIIYQQQgghhBBCkudxBYNx2QQNKTCHe2aHjn/aoWTpcPS2vVd2z1MOR5dfvbAlMGAn4Aq8qGiPmJK8cuyOxm/98mnCCDqclNct/ong/lmfzzVBAvGvuTAr/s0RpuAyyMYsUwmxM8VwfWh4IUzTTdAggFEQQxA0JW4UxVILGhM2CmNqXKJGcWz/DWgt2kDmS1zX1I3a81arRR+1smcHCln37Hb8FMSvwoRNAL9vXfdNWjX+MCegrKhpCuL7NGEl57qs4IkTD0eUq8kqykbdr1YQ++eca3pWy8oLNsUsvo8cglbMSkF8aS7BDEhJfElOQQxIUXw45la7ASmLf0OZHGs1gKWLEbZ0cT+y93wpRUpyqipfn5L4Pkyo9QCHFMWXmlDbESYpiy8xIeghPnu2qGlsrNjYoznE565WZBRVC5uec1dhQM8WNdXO/MCQcjADmnqU4bqWowzvAbj0HMgL6GdBy2Geecu7XduRhlrKBZiwM1m+8pYsr/+7waEr7Pv3fVQRr5EZO5MlOdTz0sMGk3+6Ix5pjlJHmmeaEUIIIYQQDOMPupAp3dDrtpMAAAAASUVORK5CYII=',
37
+ GroupIcon:
38
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAABzklEQVR4nO3dv2pUQRxH8QOiBMTCxpAyhYWdy6bxSfIYPoF9bJK8gvgGImkCaQQL60hCwDS2aVNpMmEhAYtsyCLc7/w5H/j1987hDgsLMyBJkjS6F8AMmIdmBmwwoKfAPnAFlArmDHgPPGMQHypY9HLPfAdeMYDzCha7LJnTEbal6woWujwwP4F1OpZe4DL6l5Be3DJ6hGUv/BvYmXAORt2Olr3st4mf4wnwacQvoZYAq0Q46SlCTQHuInx+RIRjYBN42dCs0UCAVSK0Nn+AH8A7Kg+wynbU4lwCr2sP0HuEjy0E6Hk7+tJKgF6/hK8tBegxQnMB7iLsAYeNzFFvAVr8l9EAQQYIM0CYAcIMEGaAMAOEGSDMAGEGCDNAmAHCDBBmgDADhBkgzABhBggzQJgBwgwQZoAwA4QZIMwAYQYIM0CYAcIMEGaAMAOEGSDMAGEGCDNAmAHCDBBmgDADhBkgzABhBggzQJgBwgwQZoAwA4QZIMwALQeY+vDunQ5n938COGQP7XOYJkDtV5iU3gP8quBhyoCzuDqs6musSsezOEV969+L3BaHof6t4MHKAHMBbN/3m/U58DZ4leF8gHlze/qvJEmSJEmSJDGWG1ta+0f87ZqWAAAAAElFTkSuQmCC',
39
+ Logo: 'data:image/png;base64,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',
40
+ MenuIcon:
41
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAABbklEQVR4nO3cO04DMRRG4SORirACnhvgsRsgHVCAYAEotATWAiwEJWsAhRWQGiSKQSO5xZ7CToaZ80m3S2H9dzIeyboGSZIkSZIkSZIkSZIkSX2wDbwAC6CyyJHBImS6lQp/CLwbOqUevA9gI9aAC8On9L/+LNaARxtA6QY8xBpwYgMo3YDjWAMGwNQmUCr8V2AtsQ+zDkxCI+YWOTKos7wP2UqSJEmSJElqkz1gBFxa5MhgFDJt5Ab49kyA3GcBdabXqfCPgB/Dp9SBTJ3tQawBd4ZP6SPJcawB4yUsoO91G2vAoa8gSr+C9lP7QL1RuAmTPfwv4IqGdv0MJfdn6E7T8CVJkiRJkiQtyTBMS84cTyLXiNYsTEcmR5QG4cerPjWqOlrTkPGfTluwyKrPY6oOarPaQe3zFjwhVZ+vKqg3ibcWLLLqaM1Tl3UQrlR5Bj5bsOCqI1Vn+QRspsKXJEmSJEmSJEmSJEmSxL/3C8bh/uJJ2iEuAAAAAElFTkSuQmCC',
42
+ SearchIcon:
43
+ 'data:image/png;base64,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',
44
+ StoryIcon:
45
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC10lEQVR4nO2dT2oUQRxGX9yIoAiO6AWC6BkSSTyFiBiyMwREPIFKgrgNCOpaV+YQRhFzBUWzDURjFiqISNLS0MIQJmNVTXW+/vM9qN1Q8+t6VNdX3cMU1MNZ4DmwDRQtb9vA0+qaWsEJYKMBA1dkbu+qa2s8cw0YrKKmNksLWG7AQBU1tSVawN0GDFRRU7tDC7CABgv4Cmw1vO12eQa04QLutbx+C1DjGSDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYgBgLEGMBYixAjAWIsQAxFiDGAsRYQE8EXABuAjeAixn79Z93B7AI/BwS+x24RR4sYAxTwIMxM2wtw0E7FnAEJ4GXAceMrAOnSMcCRjAA3kSc9bJZrREpWMAhpoGPCQfulMeRXCYeCxhipjp3JvXUoz3gGnFYwFDS+Z3h6KmyjwXC6b2AKWA14jazFfC5A+BhlaIsIEPSKYYW2pgF+lVAQurtDBhEDOThqBkj7v1/ElIvBUxHJJ2jNlv/NmkHEyak3gmYCUw6f4DbGRfvMiHN913AYsRgxcTJUKmjElIvBMTeLq4k1FHe1j4E9F/W8HgoIXVeQErSSeVcQkLqtID7EySdVErhLyIS0qMuC9gPHIjVwE1TKGVfK4Hfvd9lAbmSTirXgV8T1NdpAXsJD85SKBPSFwvIk3RSCU1IvZgBmxMmnUkS0kbfBaxnSjrHkZA6J2Atwwv0HMRsClshYDlg+18+gmgaCwGPRZZoAfMNSDqpzAHfxtR/lRZQTum3I4r/nPiS/Li5BHwaUf/rzJvDWjkDPAN2q1+wlQvdedrDoKr5B7ADPAFO1/FNfwEktpuzXhupdgAAAABJRU5ErkJggg==',
46
+ };
47
+
48
+ // Convenience function to get an icon by name
49
+ export function getIconDataURI(iconName: string): string {
50
+ if (!iconDataURIs[iconName]) {
51
+ console.warn("Icon '" + iconName + "' not found");
52
+ return '';
53
+ }
54
+
55
+ return iconDataURIs[iconName];
56
+ }
57
+
58
+ export function BottomBarToggleIcon({
59
+ color,
60
+ width = 14,
61
+ height = 14,
62
+ size,
63
+ }: {
64
+ color?: string;
65
+ width?: number;
66
+ height?: number;
67
+ size?: number;
68
+ }) {
69
+ return (
70
+ <Image
71
+ source={{ uri: getIconDataURI('BottomBarToggleIcon') }}
72
+ style={{ width: size || width, height: size || height, tintColor: color }}
73
+ />
74
+ );
75
+ }
76
+
77
+ export function CloseFullscreenIcon({
78
+ color,
79
+ width = 14,
80
+ height = 14,
81
+ size,
82
+ }: {
83
+ color?: string;
84
+ width?: number;
85
+ height?: number;
86
+ size?: number;
87
+ }) {
88
+ return (
89
+ <Image
90
+ source={{ uri: getIconDataURI('CloseFullscreenIcon') }}
91
+ style={{ width: size || width, height: size || height, tintColor: color }}
92
+ />
93
+ );
94
+ }
95
+
96
+ export function CloseIcon({
97
+ color,
98
+ width = 14,
99
+ height = 14,
100
+ size,
101
+ }: {
102
+ color?: string;
103
+ width?: number;
104
+ height?: number;
105
+ size?: number;
106
+ }) {
107
+ return (
108
+ <Image
109
+ source={{ uri: getIconDataURI('CloseIcon') }}
110
+ style={{ width: size || width, height: size || height, tintColor: color }}
111
+ />
112
+ );
113
+ }
114
+
115
+ export function CollapseAllIcon({
116
+ color,
117
+ width = 14,
118
+ height = 14,
119
+ size,
120
+ }: {
121
+ color?: string;
122
+ width?: number;
123
+ height?: number;
124
+ size?: number;
125
+ }) {
126
+ return (
127
+ <Image
128
+ source={{ uri: getIconDataURI('CollapseAllIcon') }}
129
+ style={{ width: size || width, height: size || height, tintColor: color }}
130
+ />
131
+ );
132
+ }
133
+
134
+ interface CollapseIconProps {
135
+ isExpanded: boolean;
136
+ }
137
+
138
+ export const CollapseIconWrapper = styled.View<{ isExpanded: boolean }>(
139
+ ({ theme, isExpanded }) => ({
140
+ width: 8,
141
+ height: 8,
142
+ display: 'flex',
143
+ justifyContent: 'center',
144
+ alignItems: 'center',
145
+ color: theme.textMutedColor,
146
+ transform: isExpanded ? 'rotateZ(90deg)' : 'none',
147
+ transition: 'transform .1s ease-out',
148
+ })
149
+ );
150
+
151
+ export const CollapseIcon: FC<CollapseIconProps> = ({ isExpanded }) => (
152
+ <CollapseIconWrapper isExpanded={isExpanded}>
153
+ {/* <Icon icon="arrowRight" width={8} height={8} /> */}
154
+ <CollapseIconOrig />
155
+ </CollapseIconWrapper>
156
+ );
157
+
158
+ export function CollapseIconOrig({
159
+ color,
160
+ width = 8,
161
+ height = 8,
162
+ size,
163
+ }: {
164
+ color?: string;
165
+ width?: number;
166
+ height?: number;
167
+ size?: number;
168
+ }) {
169
+ return (
170
+ <Image
171
+ source={{ uri: getIconDataURI('CollapseIcon') }}
172
+ style={{ width: size || width, height: size || height, tintColor: color }}
173
+ />
174
+ );
175
+ }
176
+
177
+ export function ComponentIcon({
178
+ color,
179
+ width = 12,
180
+ height = 12,
181
+ size,
182
+ }: {
183
+ color?: string;
184
+ width?: number;
185
+ height?: number;
186
+ size?: number;
187
+ }) {
188
+ return (
189
+ <Image
190
+ source={{ uri: getIconDataURI('ComponentIcon') }}
191
+ style={{ width: size || width, height: size || height, tintColor: color }}
192
+ />
193
+ );
194
+ }
195
+
196
+ export function DarkLogo({
197
+ color,
198
+ width = 300,
199
+ height = 60,
200
+ size,
201
+ }: {
202
+ color?: string;
203
+ width?: number;
204
+ height?: number;
205
+ size?: number;
206
+ }) {
207
+ return (
208
+ <Image
209
+ source={{ uri: getIconDataURI('DarkLogo') }}
210
+ style={{ width: size || width, height: size || height, tintColor: color }}
211
+ />
212
+ );
213
+ }
214
+
215
+ export function ExpandAllIcon({
216
+ color,
217
+ width = 14,
218
+ height = 14,
219
+ size,
220
+ }: {
221
+ color?: string;
222
+ width?: number;
223
+ height?: number;
224
+ size?: number;
225
+ }) {
226
+ return (
227
+ <Image
228
+ source={{ uri: getIconDataURI('ExpandAllIcon') }}
229
+ style={{ width: size || width, height: size || height, tintColor: color }}
230
+ />
231
+ );
232
+ }
233
+
234
+ export function FaceHappyIcon({
235
+ color,
236
+ width = 14,
237
+ height = 14,
238
+ size,
239
+ }: {
240
+ color?: string;
241
+ width?: number;
242
+ height?: number;
243
+ size?: number;
244
+ }) {
245
+ return (
246
+ <Image
247
+ source={{ uri: getIconDataURI('FaceHappyIcon') }}
248
+ style={{ width: size || width, height: size || height, tintColor: color }}
249
+ />
250
+ );
251
+ }
252
+
253
+ export function FullscreenIcon({
254
+ color,
255
+ width = 14,
256
+ height = 14,
257
+ size,
258
+ }: {
259
+ color?: string;
260
+ width?: number;
261
+ height?: number;
262
+ size?: number;
263
+ }) {
264
+ return (
265
+ <Image
266
+ source={{ uri: getIconDataURI('FullscreenIcon') }}
267
+ style={{ width: size || width, height: size || height, tintColor: color }}
268
+ />
269
+ );
270
+ }
271
+
272
+ export function GroupIcon({
273
+ color,
274
+ width = 15,
275
+ height = 15,
276
+ size,
277
+ }: {
278
+ color?: string;
279
+ width?: number;
280
+ height?: number;
281
+ size?: number;
282
+ }) {
283
+ return (
284
+ <Image
285
+ source={{ uri: getIconDataURI('GroupIcon') }}
286
+ style={{ width: size || width, height: size || height, tintColor: color }}
287
+ />
288
+ );
289
+ }
290
+
291
+ export function Logo({
292
+ color,
293
+ width = 300,
294
+ height = 60,
295
+ size,
296
+ }: {
297
+ color?: string;
298
+ width?: number;
299
+ height?: number;
300
+ size?: number;
301
+ }) {
302
+ return (
303
+ <Image
304
+ source={{ uri: getIconDataURI('Logo') }}
305
+ style={{ width: size || width, height: size || height, tintColor: color }}
306
+ />
307
+ );
308
+ }
309
+
310
+ export function MenuIcon({
311
+ color,
312
+ width = 14,
313
+ height = 14,
314
+ size,
315
+ }: {
316
+ color?: string;
317
+ width?: number;
318
+ height?: number;
319
+ size?: number;
320
+ }) {
321
+ return (
322
+ <Image
323
+ source={{ uri: getIconDataURI('MenuIcon') }}
324
+ style={{ width: size || width, height: size || height, tintColor: color }}
325
+ />
326
+ );
327
+ }
328
+
329
+ export function SearchIcon({
330
+ color,
331
+ width = 14,
332
+ height = 14,
333
+ size,
334
+ }: {
335
+ color?: string;
336
+ width?: number;
337
+ height?: number;
338
+ size?: number;
339
+ }) {
340
+ return (
341
+ <Image
342
+ source={{ uri: getIconDataURI('SearchIcon') }}
343
+ style={{ width: size || width, height: size || height, tintColor: color }}
344
+ />
345
+ );
346
+ }
347
+
348
+ export function StoryIcon({
349
+ color,
350
+ width = 12,
351
+ height = 12,
352
+ size,
353
+ }: {
354
+ color?: string;
355
+ width?: number;
356
+ height?: number;
357
+ size?: number;
358
+ }) {
359
+ return (
360
+ <Image
361
+ source={{ uri: getIconDataURI('StoryIcon') }}
362
+ style={{ width: size || width, height: size || height, tintColor: color }}
363
+ />
364
+ );
365
+ }
package/src/index.tsx ADDED
@@ -0,0 +1,11 @@
1
+ // export * from './TreeNode';
2
+ // export * from './Tree';
3
+ // export * from './Button';
4
+ // export * from './IconButton';
5
+ // export * from './LayoutProvider';
6
+ // export * from './Explorer';
7
+ // export * from './Sidebar';
8
+ export * from './types';
9
+ export * from './Layout';
10
+ export * from './util/StoryHash';
11
+ export * from './StorageProvider';