sticky-file-tree 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,199 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { SVGProps, ComponentType, HTMLAttributes, RefObject } from 'react';
3
+
4
+ type IconProps = SVGProps<SVGSVGElement>;
5
+
6
+ /**
7
+ * Defines the standard color pairing for a specific state (e.g., text and background).
8
+ */
9
+ interface ColorProps {
10
+ /** The foreground text color. */
11
+ color?: string;
12
+ /** The background color of the node row. */
13
+ backgroundColor?: string;
14
+ }
15
+ /**
16
+ * A collection of color states applied to tree nodes.
17
+ * These values follow a priority hierarchy: Folder/File options override Node options.
18
+ */
19
+ interface BaseColorsProps {
20
+ /** The initial color state of the node. */
21
+ default?: ColorProps;
22
+ /** Colors applied when the user's pointer is over the node. */
23
+ hover?: ColorProps;
24
+ /** * Colors applied when the node receives keyboard or click focus.
25
+ * Includes an optional border color for accessibility rings.
26
+ */
27
+ focus?: ColorProps & {
28
+ borderColor?: string;
29
+ };
30
+ /** Colors applied when the node is marked as selected (active). */
31
+ selected?: ColorProps;
32
+ }
33
+ /**
34
+ * Global configuration for all tree nodes (Files and Folders).
35
+ */
36
+ interface TreeNodeOptions {
37
+ /**
38
+ * The fixed height (in pixels) of each row in the tree.
39
+ * @default ```28```
40
+ */
41
+ height?: number;
42
+ /** * The global color palette for nodes.
43
+ * Individual folder or file overrides will take precedence over these values.
44
+ */
45
+ colors?: BaseColorsProps;
46
+ /**
47
+ * Horizontal spacing added to the start and end of the node row.
48
+ * Can be a single number for uniform offset or an object for granular control.
49
+ */
50
+ inlineOffset?: number | {
51
+ left?: number;
52
+ right?: number;
53
+ };
54
+ /**
55
+ * The spacing (in pixels) between the icon and the text label.
56
+ * @default ```8```
57
+ */
58
+ gap?: number;
59
+ /**
60
+ * A dynamic calculation for the left indentation of a node.
61
+ * Use this to customize how deep nesting affects left alignment.
62
+ * @default ```depthDistance * (depth - 1)```
63
+ */
64
+ depthOffset?: (props: DepthOffsetProps) => number;
65
+ }
66
+ interface CustomBaseProps {
67
+ path: string;
68
+ name: string;
69
+ }
70
+ interface CustomFileProps extends CustomBaseProps {
71
+ selected: boolean;
72
+ }
73
+ interface CustomFolderProps extends CustomBaseProps {
74
+ open: boolean;
75
+ }
76
+ interface DepthOffsetProps {
77
+ depth: number;
78
+ depthDistance: number;
79
+ gap: number;
80
+ }
81
+ /**
82
+ * Configuration specific to file (leaf) nodes.
83
+ */
84
+ interface TreeFileNodeOptions extends TreeNodeOptions {
85
+ /**
86
+ * Custom icon for file nodes. Accepts a React component for dynamic rendering
87
+ * based on file path/name, or standard `Icon` props.
88
+ */
89
+ icon?: ComponentType<CustomFileProps> | IconProps;
90
+ /**
91
+ * Custom text renderer or standard HTML span attributes for the file label.
92
+ */
93
+ text?: ComponentType<CustomFileProps> | HTMLAttributes<HTMLSpanElement>;
94
+ }
95
+ /**
96
+ * Configuration specific to folder (branch) nodes.
97
+ */
98
+ interface TreeFolderNodeOptions extends Omit<TreeNodeOptions, "colors"> {
99
+ /**
100
+ * Color palette for folder nodes. Includes the 'stuck' state for sticky headers.
101
+ */
102
+ colors?: BaseColorsProps & {
103
+ /** Colors applied when a folder header is 'stuck' at the top of the viewport. */
104
+ stuck?: ColorProps;
105
+ };
106
+ /**
107
+ * Custom icon for folder nodes or props to the default icon. Can change appearance based on the `open` state.
108
+ */
109
+ icon?: ComponentType<CustomFolderProps> | IconProps;
110
+ /**
111
+ * Custom text renderer or standard HTML span attributes for the folder label.
112
+ */
113
+ text?: ComponentType<CustomFolderProps> | HTMLAttributes<HTMLSpanElement>;
114
+ /**
115
+ * The CSS box-shadow string applied to the folder header when it is in the 'folded' (sticky) state.
116
+ * @example ```"0 4px 6px -1px rgb(0 0 0 / 0.1)"```
117
+ */
118
+ foldingShadow?: string;
119
+ }
120
+ /**
121
+ * Represents the color scheme mode for the file tree.
122
+ */
123
+ type Theme = "light" | "dark";
124
+ /**
125
+ * Configuration props for the `FileTree` component.
126
+ */
127
+ interface FileTreeProps {
128
+ /**
129
+ * An array of relative file paths to be rendered in the tree.
130
+ * The component will automatically parse these into a nested directory structure.
131
+ * @example ```["src/App.tsx", "index.html", "src/components/Button.tsx", "public/logo.svg"]```
132
+ */
133
+ files: string[];
134
+ /**
135
+ * Callback function triggered when a file node is clicked.
136
+ * @param props An object containing full path and name of the selected file.
137
+ */
138
+ onFileSelect?: (props: CustomBaseProps) => void;
139
+ /**
140
+ * When enabled, the file tree will feature a "folding" UI effect (sticky headers)
141
+ * where parent folders remain visible at the top while scrolling through their content.
142
+ * @default ```true```
143
+ */
144
+ folding?: boolean;
145
+ /**
146
+ * The horizontal indentation (in pixels) for each nested level of the tree.
147
+ * Increase this value to create a more pronounced visual hierarchy.
148
+ * @default ```16```
149
+ */
150
+ depthDistance?: number;
151
+ /**
152
+ * The amount of padding (in pixels) rendered at the bottom of the file tree.
153
+ * Useful to ensure the last node isn't obscured by floating UI elements.
154
+ * @default ```16```
155
+ */
156
+ paddingBottom?: number;
157
+ /**
158
+ * The base background color of the entire file tree container.
159
+ * Overrides the theme-specific default background.
160
+ */
161
+ backgroundColor?: string;
162
+ /**
163
+ * Global configuration for tree nodes (both file and folder nodes).
164
+ * Use this for shared styles like default height, offset, or colors.
165
+ */
166
+ nodeOptions?: TreeNodeOptions;
167
+ /**
168
+ * Specific configuration and styling overrides for file nodes (leaf nodes).
169
+ */
170
+ fileOptions?: TreeFileNodeOptions;
171
+ /**
172
+ * Specific configuration for folder nodes, including sticky behavior and
173
+ * folder-specific icons or colors.
174
+ */
175
+ folderOptions?: TreeFolderNodeOptions;
176
+ /**
177
+ * A React Ref pointing to the scrollable element.
178
+ * Required for features like "sticky folding" to calculate scroll positions accurately.
179
+ */
180
+ scrollContainerRef?: RefObject<HTMLElement | null>;
181
+ /**
182
+ * Sets the visual theme of the component.
183
+ * This affects default colors for backgrounds, text, and hover states.
184
+ * @default ```"light"```
185
+ */
186
+ theme?: Theme;
187
+ }
188
+
189
+ /**
190
+ * This component renders a highly customizable, accessible, and performant
191
+ * tree structure for file system navigation.
192
+ */
193
+ declare const FileTree: ({ files, onFileSelect, folding, depthDistance, paddingBottom, backgroundColor, nodeOptions, fileOptions, folderOptions, scrollContainerRef, theme }: FileTreeProps) => react_jsx_runtime.JSX.Element;
194
+
195
+ declare const FileIcon: ({ style, ...props }: IconProps) => react_jsx_runtime.JSX.Element;
196
+ declare const ArrowIcon: ({ style, ...props }: IconProps) => react_jsx_runtime.JSX.Element;
197
+
198
+ export { ArrowIcon, FileIcon, FileTree };
199
+ export type { FileTreeProps, Theme, TreeFileNodeOptions, TreeFolderNodeOptions, TreeNodeOptions };
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";var o,e=require("react"),l={exports:{}},r={};var n,t,i={};
2
+ /**
3
+ * @license React
4
+ * react-jsx-runtime.development.js
5
+ *
6
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */function d(){return n||(n=1,"production"!==process.env.NODE_ENV&&function(){function o(e){if(null==e)return null;if("function"==typeof e)return e.$$typeof===S?null:e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case g:return"Fragment";case h:return"Profiler";case b:return"StrictMode";case x:return"Suspense";case j:return"SuspenseList";case w:return"Activity"}if("object"==typeof e)switch("number"==typeof e.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case p:return"Portal";case m:return e.displayName||"Context";case y:return(e._context.displayName||"Context")+".Consumer";case k:var l=e.render;return(e=e.displayName)||(e=""!==(e=l.displayName||l.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case C:return null!==(l=e.displayName||null)?l:o(e.type)||"Memo";case O:l=e._payload,e=e._init;try{return o(e(l))}catch(o){}}return null}function l(o){return""+o}function r(o){try{l(o);var e=!1}catch(o){e=!0}if(e){var r=(e=console).error,n="function"==typeof Symbol&&Symbol.toStringTag&&o[Symbol.toStringTag]||o.constructor.name||"Object";return r.call(e,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),l(o)}}function n(e){if(e===g)return"<>";if("object"==typeof e&&null!==e&&e.$$typeof===O)return"<...>";try{var l=o(e);return l?"<"+l+">":"<...>"}catch(o){return"<...>"}}function t(){return Error("react-stack-top-frame")}function d(){var e=o(this.type);return T[e]||(T[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(e=this.props.ref)?e:null}function c(e,l,n,t,i,c){var a,v=l.children;if(void 0!==v)if(t)if(E(v)){for(t=0;t<v.length;t++)u(v[t]);Object.freeze&&Object.freeze(v)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else u(v);if(P.call(l,"key")){v=o(e);var p=Object.keys(l).filter(function(o){return"key"!==o});t=0<p.length?"{key: someKey, "+p.join(": ..., ")+": ...}":"{key: someKey}",B[v+t]||(p=0<p.length?"{"+p.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',t,v,p,v),B[v+t]=!0)}if(v=null,void 0!==n&&(r(n),v=""+n),function(o){if(P.call(o,"key")){var e=Object.getOwnPropertyDescriptor(o,"key").get;if(e&&e.isReactWarning)return!1}return void 0!==o.key}(l)&&(r(l.key),v=""+l.key),"key"in l)for(var g in n={},l)"key"!==g&&(n[g]=l[g]);else n=l;return v&&function(o,e){function l(){s||(s=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",e))}l.isReactWarning=!0,Object.defineProperty(o,"key",{get:l,configurable:!0})}(n,"function"==typeof e?e.displayName||e.name||"Unknown":e),function(o,e,l,r,n,t){var i=l.ref;return o={$$typeof:f,type:o,key:e,props:l,_owner:r},null!==(void 0!==i?i:null)?Object.defineProperty(o,"ref",{enumerable:!1,get:d}):Object.defineProperty(o,"ref",{enumerable:!1,value:null}),o._store={},Object.defineProperty(o._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(o,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(o,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:n}),Object.defineProperty(o,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:t}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o}(e,v,n,null===(a=_.A)?null:a.getOwner(),i,c)}function u(o){a(o)?o._store&&(o._store.validated=1):"object"==typeof o&&null!==o&&o.$$typeof===O&&("fulfilled"===o._payload.status?a(o._payload.value)&&o._payload.value._store&&(o._payload.value._store.validated=1):o._store&&(o._store.validated=1))}function a(o){return"object"==typeof o&&null!==o&&o.$$typeof===f}var s,v=e,f=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),m=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),C=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),_=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=Object.prototype.hasOwnProperty,E=Array.isArray,R=console.createTask?console.createTask:function(){return null},T={},$=(v={react_stack_bottom_frame:function(o){return o()}}).react_stack_bottom_frame.bind(v,t)(),N=R(n(t)),B={};i.Fragment=g,i.jsx=function(o,e,l){var r=1e4>_.recentlyCreatedOwnerStacks++;return c(o,e,l,!1,r?Error("react-stack-top-frame"):$,r?R(n(o)):N)},i.jsxs=function(o,e,l){var r=1e4>_.recentlyCreatedOwnerStacks++;return c(o,e,l,!0,r?Error("react-stack-top-frame"):$,r?R(n(o)):N)}}()),i}var c=(t||(t=1,"production"===process.env.NODE_ENV?l.exports=function(){if(o)return r;o=1;var e=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function n(o,l,r){var n=null;if(void 0!==r&&(n=""+r),void 0!==l.key&&(n=""+l.key),"key"in l)for(var t in r={},l)"key"!==t&&(r[t]=l[t]);else r=l;return l=r.ref,{$$typeof:e,type:o,key:n,ref:void 0!==l?l:null,props:r}}return r.Fragment=l,r.jsx=n,r.jsxs=n,r}():l.exports=d()),l.exports);function u(o,e){var l={};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&e.indexOf(r)<0&&(l[r]=o[r]);if(null!=o&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(o);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(o,r[n])&&(l[r[n]]=o[r[n]])}return l}!function(o,e){void 0===e&&(e={});var l=e.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===l&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=o:n.appendChild(document.createTextNode(o))}}('[data-file-tree] [data-folder-node] {\r\n\tcolor: var(--folder-color);\r\n\tborder-color: transparent;\r\n\tbackground-color: var(--folder-background-color);\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--folder-hover-color);\r\n\t\tbackground-color: var(--folder-hover-background-color);\r\n\t}\r\n\t&:focus {\r\n\t\tcolor: var(--folder-focus-color);\r\n\t\tborder-color: var(--folder-focus-border-color);\r\n\t\tbackground-color: var(--folder-focus-background-color);\r\n\t}\r\n\t&[data-selected="true"]:not(:focus) {\r\n\t\tcolor: var(--folder-selected-color);\r\n\t\tbackground-color: var(--folder-selected-background-color);\r\n\t}\r\n\t&[data-folder-node][data-stuck="true"] {\r\n\t\tcolor: var(--stuck-color);\r\n\t\tborder-color: transparent;\r\n\t\tbackground-color: var(--stuck-background-color);\r\n\r\n\t\t&::before {\r\n\t\t\tcontent: "";\r\n\t\t\tposition: absolute;\r\n\t\t\tinset: -1px;\r\n\t\t\tbackground-color: var(--stuck-background-color);\r\n\t\t\tz-index: -1;\r\n\t\t}\r\n\t\t&:hover {\r\n\t\t\tcolor: var(--folder-hover-color);\r\n\t\t}\r\n\t\t&:hover::before {\r\n\t\t\tbackground-color: var(--folder-hover-background-color);\r\n\t\t}\r\n\t}\r\n\t&[data-fold="true"] {\r\n\t\tbox-shadow: var(--folding-shadow);\r\n\t}\r\n}\r\n\r\n[data-file-tree] [data-file-node] {\r\n\tcolor: var(--file-color);\r\n\tborder-color: transparent;\r\n\tbackground-color: var(--file-background-color);\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--file-hover-color);\r\n\t\tbackground-color: var(--file-hover-background-color);\r\n\t}\r\n\t&:focus {\r\n\t\tcolor: var(--file-focus-color);\r\n\t\tborder-color: var(--file-focus-border-color);\r\n\t\tbackground-color: var(--file-focus-background-color);\r\n\t}\r\n\t&[data-selected="true"]:not(:focus) {\r\n\t\tcolor: var(--file-selected-color);\r\n\t\tbackground-color: var(--file-selected-background-color);\r\n\t}\r\n}\r\n'),"function"==typeof SuppressedError&&SuppressedError;const a=o=>{var{name:e,style:l}=o,r=u(o,["name","style"]);return c.jsx("span",Object.assign({},r,{"data-node-text":!0,style:Object.assign(Object.assign({fontSize:"14px"},null!=l?l:{}),{flex:1,minWidth:0,textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),children:e}))},s={light:{color:"#525252",backgroundColor:"#ffffff",hoverColor:"#000000",hoverBackgroundColor:"#f1f1f1",focusColor:"#0a0a0a",focusBorderColor:"#1e40af",focusBackgroundColor:"#dbeafe",selectedColor:"#525252",selectedBackgroundColor:"#e5e5e5",foldingShadow:"0 4px 3px -2px rgb(0 0 0 / 0.12), 0 2px 2px -2px rgb(0 0 0 / 0.12)"},dark:{color:"#adadad",backgroundColor:"#161616",hoverColor:"#fafafa",hoverBackgroundColor:"#212121",focusColor:"#f0f0f0",focusBorderColor:"#3b82f6",focusBackgroundColor:"#172554",selectedColor:"#adadad",selectedBackgroundColor:"#2c2c2c",foldingShadow:"0 4px 3px -2px rgb(0 0 0 / 0.9), 0 2px 2px -2px rgb(0 0 0 / 0.9)"}},v={left:12,right:4},f={position:"relative",width:"100%",minHeight:"100%",boxSizing:"border-box",margin:0,zIndex:1},p={width:"100%",display:"flex",alignItems:"center",justifyContent:"start",whiteSpace:"nowrap",borderWidth:"1px",borderStyle:"solid",cursor:"pointer"},g={position:"relative",zIndex:1},b={position:"sticky",zIndex:10},h=o=>{var{style:e}=o,l=u(o,["style"]);return c.jsx("svg",Object.assign({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:Object.assign({width:"16px",height:"16px",flexShrink:0},e)},l,{children:c.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.71 4.29L10.71 1.29L10 1H4L3 2V14L4 15H13L14 14V5L13.71 4.29ZM13 14H4V2H9V6H13V14ZM10 5V2L13 5H10Z",fill:"currentColor"})}))},y=o=>{var{style:e}=o,l=u(o,["style"]);return c.jsx("svg",Object.assign({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:Object.assign({width:"16px",height:"16px",flexShrink:0},e)},l,{children:c.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.0719 8.02397L5.7146 3.66666L6.33332 3.04794L11 7.71461V8.33333L6.33332 13L5.7146 12.3813L10.0719 8.02397Z",fill:"currentColor"})}))},m=e.createContext(null),k=({config:o,children:l})=>{const[r,n]=e.useState(null),t=Object.assign(Object.assign({},o),{selectedPath:r,setSelectedPath:n});return c.jsx(m.Provider,{value:t,children:l})},x=()=>{const o=e.useContext(m);if(!o)throw new Error("'useFileTreeConfig' must be used within a FileTreeConfigProvider");return o},j=e.createContext(null),C=({config:o,children:e})=>c.jsx(j.Provider,{value:o,children:e}),O=({node:o,depth:l,open:r,selected:n,currentPath:t,onClick:i})=>{var d,u,s,f,g,h,m,k,C,O,w,S;const _=e.useRef(null),{depthDistance:P,nodeOptions:E}=x(),{folderOptions:R,folding:T,scrollContainerRef:$}=(()=>{const o=e.useContext(j);if(!o)throw new Error("'useFolderNodeConfig' must be used within a FolderNodeConfigProvider");return o})(),{inlineOffset:N=v}=null!=E?E:{},B={path:t,name:o.name,open:r},L=null!==(u=null!==(d=null==R?void 0:R.height)&&void 0!==d?d:null==E?void 0:E.height)&&void 0!==u?u:28,A=L*(l-1),F=P*(l-1),z="number"==typeof N?N:null!==(s=N.left)&&void 0!==s?s:12,I="number"==typeof N?N:null!==(f=N.right)&&void 0!==f?f:4,D=null!==(h=null!==(g=null==R?void 0:R.gap)&&void 0!==g?g:null==E?void 0:E.gap)&&void 0!==h?h:8,V={depth:l,depthDistance:P,gap:D},H=null!==(O=null!==(k=null===(m=null==R?void 0:R.depthOffset)||void 0===m?void 0:m.call(R,V))&&void 0!==k?k:null===(C=null==E?void 0:E.depthOffset)||void 0===C?void 0:C.call(E,V))&&void 0!==O?O:F,M=((o,l,r,n)=>{const[t,i]=e.useState(!1);return e.useEffect(()=>{const e=null==o?void 0:o.current,t=l.current;if(!e||!t)return;let d=!1;const c=()=>{d||(window.requestAnimationFrame(()=>{const o=e.getBoundingClientRect(),l=t.getBoundingClientRect(),c=window.getComputedStyle(e),u=parseFloat(c.borderTopWidth)||0,a=parseFloat(c.paddingTop)||0,s=l.top-o.top-u-a,v=s<=r&&s+l.height>r&&e.scrollTop>0&&n;i(v),d=!1}),d=!0)};return c(),e.addEventListener("scroll",c),()=>{e.removeEventListener("scroll",c)}},[null==o?void 0:o.current,l.current,r,n,i]),t})($,_,A,r);return c.jsxs("button",{ref:_,"data-tree-node":!0,"data-folder-node":!0,"data-open":r,"data-depth":l,"data-selected":n,"data-stuck":M,"data-fold":"false",style:Object.assign(Object.assign(Object.assign({},p),$&&T?Object.assign(Object.assign({},b),{top:`${A}px`}):{}),{height:`${L}px`,paddingLeft:`${H+z}px`,paddingRight:`${I}px`,columnGap:`${D}px`}),onClick:i,children:["function"==typeof(null==R?void 0:R.icon)?c.jsx(R.icon,Object.assign({},B)):c.jsx(y,Object.assign({},null==R?void 0:R.icon,{style:Object.assign(Object.assign({},null!==(S=null===(w=null==R?void 0:R.icon)||void 0===w?void 0:w.style)&&void 0!==S?S:{}),{rotate:r?"90deg":void 0})})),"function"==typeof(null==R?void 0:R.text)?c.jsx(R.text,Object.assign({},B)):c.jsx(a,Object.assign({name:o.name},null==R?void 0:R.text))]})},w=({node:o,depth:l,elevation:r,currentPath:n})=>{var t;const i=e.useRef(null),{selectedPath:d,setSelectedPath:u}=x(),[a,s]=e.useState(!1),v=n===d;return c.jsxs("div",{"data-folder":!0,style:{position:"relative",zIndex:r},children:[c.jsx(O,{node:o,depth:l,open:a,selected:v,currentPath:n,onClick:o=>{o.stopPropagation();const e=i.current,l=null==e?void 0:e.querySelector("[data-folder-node][data-fold=true]");l&&l.setAttribute("data-fold","false"),s(!a),u(n)}}),c.jsx(e.Activity,{mode:a&&o.children?"visible":"hidden",children:c.jsx("div",{ref:i,"data-folder-content":!0,style:g,children:null===(t=o.children)||void 0===t?void 0:t.map((e,r)=>c.jsx(E,{node:e,depth:l+1,elevation:o.children.length-r,parentPath:`${n}/`},r))})})]})},S=e.createContext(null),_=({config:o,children:e})=>c.jsx(S.Provider,{value:o,children:e}),P=({node:o,depth:l,elevation:r,currentPath:n})=>{var t,i,d,u,s,f,g,b,y,m;const{onFileSelect:k,fileOptions:j}=(()=>{const o=e.useContext(S);if(!o)throw new Error("'useFileNodeConfig' must be used within a FileNodeConfigProvider");return o})(),{selectedPath:C,depthDistance:O,nodeOptions:w,setSelectedPath:_}=x(),{inlineOffset:P=v}=null!=w?w:{},E=n===C,R=null!==(i=null!==(t=null==j?void 0:j.height)&&void 0!==t?t:null==w?void 0:w.height)&&void 0!==i?i:28,T={path:n,name:o.name,selected:E},$=O*(l-1),N="number"==typeof P?P:null!==(d=P.left)&&void 0!==d?d:12,B="number"==typeof P?P:null!==(u=P.right)&&void 0!==u?u:4,L=null!==(f=null!==(s=null==j?void 0:j.gap)&&void 0!==s?s:null==w?void 0:w.gap)&&void 0!==f?f:8,A={depth:l,depthDistance:O,gap:L},F=null!==(m=null!==(b=null===(g=null==j?void 0:j.depthOffset)||void 0===g?void 0:g.call(j,A))&&void 0!==b?b:null===(y=null==w?void 0:w.depthOffset)||void 0===y?void 0:y.call(w,A))&&void 0!==m?m:$;return c.jsxs("button",{"data-tree-node":!0,"data-file-node":!0,"data-depth":l,"data-selected":E,style:Object.assign(Object.assign({},p),{height:`${R}px`,position:"relative",paddingLeft:`${F+N}px`,paddingRight:`${B}px`,columnGap:`${L}px`,zIndex:r}),onClick:e=>{e.stopPropagation(),_(n),null==k||k({path:n,name:o.name})},children:["function"==typeof(null==j?void 0:j.icon)?c.jsx(j.icon,Object.assign({},T)):c.jsx(h,Object.assign({},null==j?void 0:j.icon)),"function"==typeof(null==j?void 0:j.text)?c.jsx(j.text,Object.assign({},T)):c.jsx(a,Object.assign({name:o.name},null==j?void 0:j.text))]})},E=o=>{var{node:e,parentPath:l}=o,r=u(o,["node","parentPath"]);const n=`${l}${e.name}`,t=Object.assign(Object.assign({node:e},r),{currentPath:n});return e.children?c.jsx(w,Object.assign({},t)):c.jsx(P,Object.assign({},t))},R=({nodeOptions:o,fileOptions:e,folderOptions:l,theme:r,children:n})=>{var t,i,d,u,a,v,f,p,g,b,h,y,m,k,x,j,C,O,w,S,_,P,E,R,T,$,N,B,L,A,F,z,I,D,V,H,M,W,U,q,Z,G,J,K,X,Y,Q,oo,eo,lo,ro,no,to,io,co,uo,ao,so,vo,fo,po,go,bo,ho,yo,mo,ko,xo,jo,Co,Oo,wo,So,_o,Po,Eo,Ro,To,$o,No,Bo,Lo,Ao,Fo,zo,Io,Do,Vo,Ho,Mo,Wo,Uo,qo,Zo,Go,Jo,Ko,Xo,Yo,Qo,oe,ee,le,re,ne,te,ie,de,ce,ue,ae,se,ve,fe,pe,ge,be,he,ye,me,ke,xe,je,Ce,Oe,we,Se;return c.jsx("div",{"data-variables-provider":!0,style:{"--file-color":null!==(v=null!==(d=null===(i=null===(t=null==e?void 0:e.colors)||void 0===t?void 0:t.default)||void 0===i?void 0:i.color)&&void 0!==d?d:null===(a=null===(u=null==o?void 0:o.colors)||void 0===u?void 0:u.default)||void 0===a?void 0:a.color)&&void 0!==v?v:s[r].color,"--file-background-color":null!==(y=null!==(g=null===(p=null===(f=null==e?void 0:e.colors)||void 0===f?void 0:f.default)||void 0===p?void 0:p.backgroundColor)&&void 0!==g?g:null===(h=null===(b=null==o?void 0:o.colors)||void 0===b?void 0:b.default)||void 0===h?void 0:h.backgroundColor)&&void 0!==y?y:s[r].backgroundColor,"--file-hover-color":null!==(O=null!==(x=null===(k=null===(m=null==e?void 0:e.colors)||void 0===m?void 0:m.hover)||void 0===k?void 0:k.color)&&void 0!==x?x:null===(C=null===(j=null==o?void 0:o.colors)||void 0===j?void 0:j.hover)||void 0===C?void 0:C.color)&&void 0!==O?O:s[r].hoverColor,"--file-hover-background-color":null!==(R=null!==(_=null===(S=null===(w=null==e?void 0:e.colors)||void 0===w?void 0:w.hover)||void 0===S?void 0:S.backgroundColor)&&void 0!==_?_:null===(E=null===(P=null==o?void 0:o.colors)||void 0===P?void 0:P.hover)||void 0===E?void 0:E.backgroundColor)&&void 0!==R?R:s[r].hoverBackgroundColor,"--file-focus-color":null!==(A=null!==(N=null===($=null===(T=null==e?void 0:e.colors)||void 0===T?void 0:T.focus)||void 0===$?void 0:$.color)&&void 0!==N?N:null===(L=null===(B=null==o?void 0:o.colors)||void 0===B?void 0:B.focus)||void 0===L?void 0:L.color)&&void 0!==A?A:s[r].focusColor,"--file-focus-border-color":null!==(H=null!==(I=null===(z=null===(F=null==e?void 0:e.colors)||void 0===F?void 0:F.focus)||void 0===z?void 0:z.borderColor)&&void 0!==I?I:null===(V=null===(D=null==o?void 0:o.colors)||void 0===D?void 0:D.focus)||void 0===V?void 0:V.borderColor)&&void 0!==H?H:s[r].focusBorderColor,"--file-focus-background-color":null!==(G=null!==(U=null===(W=null===(M=null==e?void 0:e.colors)||void 0===M?void 0:M.focus)||void 0===W?void 0:W.backgroundColor)&&void 0!==U?U:null===(Z=null===(q=null==o?void 0:o.colors)||void 0===q?void 0:q.focus)||void 0===Z?void 0:Z.backgroundColor)&&void 0!==G?G:s[r].focusBackgroundColor,"--file-selected-color":null!==(oo=null!==(X=null===(K=null===(J=null==e?void 0:e.colors)||void 0===J?void 0:J.selected)||void 0===K?void 0:K.color)&&void 0!==X?X:null===(Q=null===(Y=null==o?void 0:o.colors)||void 0===Y?void 0:Y.selected)||void 0===Q?void 0:Q.color)&&void 0!==oo?oo:s[r].selectedColor,"--file-selected-background-color":null!==(io=null!==(ro=null===(lo=null===(eo=null==e?void 0:e.colors)||void 0===eo?void 0:eo.selected)||void 0===lo?void 0:lo.backgroundColor)&&void 0!==ro?ro:null===(to=null===(no=null==o?void 0:o.colors)||void 0===no?void 0:no.selected)||void 0===to?void 0:to.backgroundColor)&&void 0!==io?io:s[r].selectedBackgroundColor,"--folder-color":null!==(fo=null!==(ao=null===(uo=null===(co=null==l?void 0:l.colors)||void 0===co?void 0:co.default)||void 0===uo?void 0:uo.color)&&void 0!==ao?ao:null===(vo=null===(so=null==o?void 0:o.colors)||void 0===so?void 0:so.default)||void 0===vo?void 0:vo.color)&&void 0!==fo?fo:s[r].color,"--folder-background-color":null!==(mo=null!==(bo=null===(go=null===(po=null==l?void 0:l.colors)||void 0===po?void 0:po.default)||void 0===go?void 0:go.backgroundColor)&&void 0!==bo?bo:null===(yo=null===(ho=null==o?void 0:o.colors)||void 0===ho?void 0:ho.default)||void 0===yo?void 0:yo.backgroundColor)&&void 0!==mo?mo:s[r].backgroundColor,"--folder-hover-color":null!==(wo=null!==(jo=null===(xo=null===(ko=null==l?void 0:l.colors)||void 0===ko?void 0:ko.hover)||void 0===xo?void 0:xo.color)&&void 0!==jo?jo:null===(Oo=null===(Co=null==o?void 0:o.colors)||void 0===Co?void 0:Co.hover)||void 0===Oo?void 0:Oo.color)&&void 0!==wo?wo:s[r].hoverColor,"--folder-hover-background-color":null!==(To=null!==(Po=null===(_o=null===(So=null==l?void 0:l.colors)||void 0===So?void 0:So.hover)||void 0===_o?void 0:_o.backgroundColor)&&void 0!==Po?Po:null===(Ro=null===(Eo=null==o?void 0:o.colors)||void 0===Eo?void 0:Eo.hover)||void 0===Ro?void 0:Ro.backgroundColor)&&void 0!==To?To:s[r].hoverBackgroundColor,"--folder-focus-color":null!==(Fo=null!==(Bo=null===(No=null===($o=null==l?void 0:l.colors)||void 0===$o?void 0:$o.focus)||void 0===No?void 0:No.color)&&void 0!==Bo?Bo:null===(Ao=null===(Lo=null==o?void 0:o.colors)||void 0===Lo?void 0:Lo.focus)||void 0===Ao?void 0:Ao.color)&&void 0!==Fo?Fo:s[r].focusColor,"--folder-focus-border-color":null!==(Mo=null!==(Do=null===(Io=null===(zo=null==l?void 0:l.colors)||void 0===zo?void 0:zo.focus)||void 0===Io?void 0:Io.borderColor)&&void 0!==Do?Do:null===(Ho=null===(Vo=null==o?void 0:o.colors)||void 0===Vo?void 0:Vo.focus)||void 0===Ho?void 0:Ho.borderColor)&&void 0!==Mo?Mo:s[r].focusBorderColor,"--folder-focus-background-color":null!==(Jo=null!==(qo=null===(Uo=null===(Wo=null==l?void 0:l.colors)||void 0===Wo?void 0:Wo.focus)||void 0===Uo?void 0:Uo.backgroundColor)&&void 0!==qo?qo:null===(Go=null===(Zo=null==o?void 0:o.colors)||void 0===Zo?void 0:Zo.focus)||void 0===Go?void 0:Go.backgroundColor)&&void 0!==Jo?Jo:s[r].focusBackgroundColor,"--folder-selected-color":null!==(ee=null!==(Yo=null===(Xo=null===(Ko=null==l?void 0:l.colors)||void 0===Ko?void 0:Ko.selected)||void 0===Xo?void 0:Xo.color)&&void 0!==Yo?Yo:null===(oe=null===(Qo=null==o?void 0:o.colors)||void 0===Qo?void 0:Qo.selected)||void 0===oe?void 0:oe.color)&&void 0!==ee?ee:s[r].selectedColor,"--folder-selected-background-color":null!==(de=null!==(ne=null===(re=null===(le=null==l?void 0:l.colors)||void 0===le?void 0:le.selected)||void 0===re?void 0:re.backgroundColor)&&void 0!==ne?ne:null===(ie=null===(te=null==o?void 0:o.colors)||void 0===te?void 0:te.selected)||void 0===ie?void 0:ie.backgroundColor)&&void 0!==de?de:s[r].selectedBackgroundColor,"--stuck-color":null!==(be=null!==(fe=null!==(ae=null===(ue=null===(ce=null==l?void 0:l.colors)||void 0===ce?void 0:ce.stuck)||void 0===ue?void 0:ue.color)&&void 0!==ae?ae:null===(ve=null===(se=null==l?void 0:l.colors)||void 0===se?void 0:se.default)||void 0===ve?void 0:ve.color)&&void 0!==fe?fe:null===(ge=null===(pe=null==o?void 0:o.colors)||void 0===pe?void 0:pe.default)||void 0===ge?void 0:ge.color)&&void 0!==be?be:s[r].color,"--stuck-background-color":null!==(we=null!==(je=null!==(me=null===(ye=null===(he=null==l?void 0:l.colors)||void 0===he?void 0:he.stuck)||void 0===ye?void 0:ye.backgroundColor)&&void 0!==me?me:null===(xe=null===(ke=null==l?void 0:l.colors)||void 0===ke?void 0:ke.default)||void 0===xe?void 0:xe.backgroundColor)&&void 0!==je?je:null===(Oe=null===(Ce=null==o?void 0:o.colors)||void 0===Ce?void 0:Ce.default)||void 0===Oe?void 0:Oe.backgroundColor)&&void 0!==we?we:s[r].backgroundColor,"--folding-shadow":null!==(Se=null==l?void 0:l.foldingShadow)&&void 0!==Se?Se:s[r].foldingShadow},children:n})};function T(o){const e=[],l=function(o){const e=[...o];return e.sort((o,e)=>{let l=0;const r=Math.min(o.length,e.length);for(;l<r&&o[l]===e[l];)l++;const n=o.slice(l),t=e.slice(l),i=n.includes("/"),d=t.includes("/");return i&&!d?-1:!i&&d?1:o.localeCompare(e)}),e}([...new Set(o)]);for(const o of l){const l=o.split("/");let r=e;l.forEach((o,e)=>{const n=e===l.length-1,t=r.find(e=>e.name===o);if(t)n||(r=t.children);else{const e=n?{name:o,children:null}:{name:o,children:[]};r.push(e),n||(r=e.children)}})}return e}exports.ArrowIcon=y,exports.FileIcon=h,exports.FileTree=({files:o,onFileSelect:l,folding:r=!0,depthDistance:n=16,paddingBottom:t=16,backgroundColor:i,nodeOptions:d,fileOptions:u,folderOptions:a,scrollContainerRef:v,theme:p="light"})=>{const g=T(o),b=e.useRef(null),h={depthDistance:n,nodeOptions:d},y={scrollContainerRef:r?v:void 0,folding:r,folderOptions:a},m={onFileSelect:l,fileOptions:u};return((o,l)=>{e.useLayoutEffect(()=>{const e=null==o?void 0:o.current;if(!e||!l)return;let r;const n=()=>{const o=e.querySelectorAll("[data-stuck]");if(!o.length)return;let l=!1;[...o].reverse().forEach(o=>{const e=o.checkVisibility(),r="true"===o.getAttribute("data-stuck");!l&&e&&r?(l=!0,o.setAttribute("data-fold","true")):e&&o.setAttribute("data-fold","false")})},t=new MutationObserver(o=>{o.some(o=>"attributes"===o.type&&"data-stuck"===o.attributeName&&o.target instanceof HTMLElement&&o.target.hasAttribute("data-folder-node"))&&(clearTimeout(r),r=setTimeout(n,50))});return t.observe(e,{attributes:!0,attributeOldValue:!1,subtree:!0,childList:!1,characterData:!1}),()=>{t.disconnect()}},[o.current,l])})(b,r),c.jsx("div",{ref:b,"data-file-tree":!0,style:Object.assign(Object.assign({},f),{paddingBottom:`${t}px`,backgroundColor:null!=i?i:s[p].backgroundColor}),children:c.jsx(R,{nodeOptions:d,fileOptions:u,folderOptions:a,theme:p,children:c.jsx(k,{config:h,children:c.jsx(C,{config:y,children:c.jsx(_,{config:m,children:g.map((o,e)=>c.jsx(E,{node:o,depth:1,elevation:g.length-e,parentPath:""},o.name))})})})})})};
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/tslib/tslib.es6.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/NodeText.tsx","../src/constants/file:/D:/Coding/npm/react-file-tree/src/constants/file-tree.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/Icons.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FileTreeConfig.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FolderNodeConfig.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FolderNode.tsx","../src/hooks/file:/D:/Coding/npm/react-file-tree/src/hooks/useFolderStuck.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/Folder.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FileNodeConfig.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FileNode.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/TreeContent.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/VariablesProvider.tsx","../src/lib/file:/D:/Coding/npm/react-file-tree/src/lib/utils.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FileTree.tsx","../src/hooks/file:/D:/Coding/npm/react-file-tree/src/hooks/useUpdateFolderShadows.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import type { NodeTextProps } from \"../types/file-tree\";\r\n\r\nconst NodeText = ({ name, style, ...props }: NodeTextProps) => {\r\n return (\r\n <span\r\n {...props}\r\n data-node-text\r\n style={{\r\n fontSize: \"14px\",\r\n ...(style ?? {}),\r\n flex: 1,\r\n minWidth: 0,\r\n textAlign: \"left\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\"\r\n }}\r\n >\r\n {name}\r\n </span>\r\n );\r\n};\r\n\r\nexport default NodeText;","import type { HTMLAttributes } from \"react\";\r\n\r\nexport const DEFAULT_DEPTH_DISTANCE = 16;\r\nexport const DEFAULT_PADDING_BOTTOM = 16;\r\nexport const DEFAULT_NODE_HEIGHT = 28;\r\nexport const DEFAULT_LEFT_OFFSET = 12;\r\nexport const DEFAULT_RIGHT_OFFSET = 4;\r\nexport const DEFAULT_NODE_GAP = 8;\r\n\r\nexport const DEFAULT_VARIABLES = {\r\n light: {\r\n color: \"#525252\",\r\n backgroundColor: \"#ffffff\",\r\n hoverColor: \"#000000\",\r\n hoverBackgroundColor: \"#f1f1f1\",\r\n focusColor: \"#0a0a0a\",\r\n focusBorderColor: \"#1e40af\",\r\n focusBackgroundColor: \"#dbeafe\",\r\n selectedColor: \"#525252\",\r\n selectedBackgroundColor: \"#e5e5e5\",\r\n foldingShadow: \"0 4px 3px -2px rgb(0 0 0 / 0.12), 0 2px 2px -2px rgb(0 0 0 / 0.12)\"\r\n },\r\n dark: {\r\n color: \"#adadad\",\r\n backgroundColor: \"#161616\",\r\n hoverColor: \"#fafafa\",\r\n hoverBackgroundColor: \"#212121\",\r\n focusColor: \"#f0f0f0\",\r\n focusBorderColor: \"#3b82f6\",\r\n focusBackgroundColor: \"#172554\",\r\n selectedColor: \"#adadad\",\r\n selectedBackgroundColor: \"#2c2c2c\",\r\n foldingShadow: \"0 4px 3px -2px rgb(0 0 0 / 0.9), 0 2px 2px -2px rgb(0 0 0 / 0.9)\"\r\n }\r\n};\r\n\r\nexport const defaultInlineOffset = {\r\n left: DEFAULT_LEFT_OFFSET,\r\n right: DEFAULT_RIGHT_OFFSET\r\n};\r\n\r\nexport const fileTreeStyles: HTMLAttributes<HTMLDivElement>[\"style\"] = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n minHeight: \"100%\",\r\n boxSizing: \"border-box\",\r\n margin: 0,\r\n zIndex: 1\r\n};\r\n\r\nexport const treeNodeStyles: HTMLAttributes<HTMLButtonElement>[\"style\"] = {\r\n width: \"100%\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"start\",\r\n whiteSpace: \"nowrap\",\r\n borderWidth: \"1px\",\r\n borderStyle: \"solid\",\r\n cursor: \"pointer\"\r\n};\r\n\r\nexport const folderContainerStyles: HTMLAttributes<HTMLDivElement>[\"style\"] = {\r\n position: \"relative\",\r\n zIndex: 1\r\n};\r\n\r\nexport const folderNodeStyles: HTMLAttributes<HTMLButtonElement>[\"style\"] = {\r\n position: \"sticky\",\r\n zIndex: 10\r\n};","import type { IconProps } from \"../types/icons\";\r\n\r\nexport const FileIcon = ({ style, ...props }: IconProps) => {\r\n return (\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n style={{\r\n width: \"16px\",\r\n height: \"16px\",\r\n flexShrink: 0,\r\n ...style\r\n }}\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M13.71 4.29L10.71 1.29L10 1H4L3 2V14L4 15H13L14 14V5L13.71 4.29ZM13 14H4V2H9V6H13V14ZM10 5V2L13 5H10Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport const ArrowIcon = ({ style, ...props }: IconProps) => {\r\n return (\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n style={{\r\n width: \"16px\",\r\n height: \"16px\",\r\n flexShrink: 0,\r\n ...style\r\n }}\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M10.0719 8.02397L5.7146 3.66666L6.33332 3.04794L11 7.71461V8.33333L6.33332 13L5.7146 12.3813L10.0719 8.02397Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n );\r\n};","import { createContext, useContext, useState } from \"react\";\r\n\r\nimport type {\r\n FileTreeConfig,\r\n FileTreeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FileTreeConfigContext = createContext<FileTreeConfig | null>(null);\r\n\r\nexport const FileTreeConfigProvider = ({\r\n config,\r\n children\r\n}: FileTreeConfigProviderProps) => {\r\n const [selectedPath, setSelectedPath] = useState<string | null>(null);\r\n\r\n const value = { ...config, selectedPath, setSelectedPath };\r\n\r\n return (\r\n <FileTreeConfigContext.Provider value={value}>\r\n {children}\r\n </FileTreeConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFileTreeConfig = () => {\r\n const value = useContext(FileTreeConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFileTreeConfig' must be used within a FileTreeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import { createContext, useContext } from \"react\";\r\n\r\nimport type {\r\n FolderNodeConfig,\r\n FolderNodeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FolderItemConfigContext = createContext<FolderNodeConfig | null>(null);\r\n\r\nexport const FolderNodeConfigProvider = ({\r\n config,\r\n children\r\n}: FolderNodeConfigProviderProps) => {\r\n return (\r\n <FolderItemConfigContext.Provider value={config}>\r\n {children}\r\n </FolderItemConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFolderNodeConfig = () => {\r\n const value = useContext(FolderItemConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFolderNodeConfig' must be used within a FolderNodeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import { useRef } from \"react\";\r\n\r\nimport NodeText from \"./NodeText\";\r\nimport {\r\n DEFAULT_LEFT_OFFSET,\r\n DEFAULT_NODE_GAP,\r\n DEFAULT_NODE_HEIGHT,\r\n DEFAULT_RIGHT_OFFSET,\r\n defaultInlineOffset,\r\n folderNodeStyles,\r\n treeNodeStyles\r\n} from \"../constants/file-tree\";\r\nimport { ArrowIcon } from \"./Icons\";\r\nimport { useFolderStuck } from \"../hooks/useFolderStuck\";\r\nimport type { FolderNodeProps } from \"../types/file-tree\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport { useFolderNodeConfig } from \"../context/FolderNodeConfig\";\r\n\r\nconst FolderNode = (\r\n { node, depth, open, selected, currentPath, onClick }: FolderNodeProps\r\n) => {\r\n const ref = useRef<HTMLButtonElement | null>(null);\r\n const { depthDistance, nodeOptions } = useFileTreeConfig();\r\n const { folderOptions, folding, scrollContainerRef } = useFolderNodeConfig();\r\n const { inlineOffset = defaultInlineOffset } = nodeOptions ?? {};\r\n\r\n const customProps = { path: currentPath, name: node.name, open };\r\n const height = folderOptions?.height ?? nodeOptions?.height ?? DEFAULT_NODE_HEIGHT;\r\n const top = height * (depth - 1);\r\n const defaultDepthOffset = depthDistance * (depth - 1);\r\n const leftOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.left ?? DEFAULT_LEFT_OFFSET);\r\n const rightOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.right ?? DEFAULT_RIGHT_OFFSET);\r\n const columnGap = folderOptions?.gap ?? nodeOptions?.gap ?? DEFAULT_NODE_GAP;\r\n const depthOffsetProps = { depth, depthDistance, gap: columnGap };\r\n const depthOffset =\r\n folderOptions?.depthOffset?.(depthOffsetProps) ??\r\n nodeOptions?.depthOffset?.(depthOffsetProps) ??\r\n defaultDepthOffset;\r\n const isStuck = useFolderStuck(scrollContainerRef, ref, top, open);\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-tree-node\r\n data-folder-node\r\n data-open={open}\r\n data-depth={depth}\r\n data-selected={selected}\r\n data-stuck={isStuck}\r\n data-fold=\"false\"\r\n style={{\r\n ...treeNodeStyles,\r\n ...((scrollContainerRef && folding) ? { ...folderNodeStyles, top: `${top}px` } : {}),\r\n height: `${height}px`,\r\n paddingLeft: `${depthOffset + leftOffset}px`,\r\n paddingRight: `${rightOffset}px`,\r\n columnGap: `${columnGap}px`\r\n }}\r\n onClick={onClick}\r\n >\r\n {typeof folderOptions?.icon === \"function\" ? (\r\n <folderOptions.icon {...customProps} />\r\n ) : (\r\n <ArrowIcon\r\n {...folderOptions?.icon}\r\n style={{\r\n ...(folderOptions?.icon?.style ?? {}),\r\n rotate: open ? \"90deg\" : undefined\r\n }}\r\n />\r\n )}\r\n {typeof folderOptions?.text === \"function\" ? (\r\n <folderOptions.text {...customProps} />\r\n ) : (\r\n <NodeText name={node.name} {...folderOptions?.text} />\r\n )}\r\n </button>\r\n );\r\n};\r\n\r\nexport default FolderNode;","import { type RefObject, useEffect, useState } from \"react\";\r\n\r\nexport const useFolderStuck = (\r\n scrollContainerRef: RefObject<HTMLElement | null> | undefined,\r\n folderNodeRef: RefObject<HTMLButtonElement | null>,\r\n topOffset: number,\r\n isFolderOpen: boolean\r\n) => {\r\n const [isStuck, setIsStuck] = useState(false);\r\n\r\n useEffect(() => {\r\n const scrollContainer = scrollContainerRef?.current;\r\n const folderNode = folderNodeRef.current;\r\n if (!scrollContainer || !folderNode) return;\r\n\r\n let ticking = false;\r\n\r\n const handleScroll = () => {\r\n if (!ticking) {\r\n window.requestAnimationFrame(() => {\r\n const containerRect = scrollContainer.getBoundingClientRect();\r\n const folderNodeRect = folderNode.getBoundingClientRect();\r\n\r\n const containerStyle = window.getComputedStyle(scrollContainer);\r\n const containerBorderTop = parseFloat(containerStyle.borderTopWidth) || 0;\r\n const containerPaddingTop = parseFloat(containerStyle.paddingTop) || 0;\r\n const offset = folderNodeRect.top - containerRect.top - containerBorderTop - containerPaddingTop;\r\n\r\n const isStuck =\r\n offset <= topOffset &&\r\n offset + folderNodeRect.height > topOffset &&\r\n scrollContainer.scrollTop > 0 &&\r\n isFolderOpen;\r\n setIsStuck(isStuck);\r\n\r\n ticking = false;\r\n });\r\n\r\n ticking = true;\r\n }\r\n };\r\n\r\n handleScroll();\r\n scrollContainer.addEventListener(\"scroll\", handleScroll);\r\n\r\n return () => {\r\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [\r\n scrollContainerRef?.current,\r\n folderNodeRef.current,\r\n topOffset,\r\n isFolderOpen,\r\n setIsStuck\r\n ]);\r\n\r\n return isStuck;\r\n};","import { Activity, type MouseEvent, useRef, useState } from \"react\";\r\n\r\nimport FolderNode from \"./FolderNode\";\r\nimport TreeContent from \"./TreeContent\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport { folderContainerStyles } from \"../constants/file-tree\";\r\nimport type { FileNodeOrFolderProps } from \"../types/file-tree\";\r\n\r\nconst Folder = (\r\n { node, depth, elevation, currentPath }: FileNodeOrFolderProps\r\n) => {\r\n const folderContentRef = useRef<HTMLDivElement>(null);\r\n const { selectedPath, setSelectedPath } = useFileTreeConfig();\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const isSelected = currentPath === selectedPath;\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>) => {\r\n e.stopPropagation();\r\n const folderContent = folderContentRef.current;\r\n const foldedFolderNode = folderContent?.querySelector(\"[data-folder-node][data-fold=true]\");\r\n if (foldedFolderNode) {\r\n foldedFolderNode.setAttribute(\"data-fold\", \"false\");\r\n }\r\n setIsOpen(!isOpen);\r\n setSelectedPath(currentPath);\r\n };\r\n\r\n return (\r\n <div\r\n data-folder\r\n style={{ position: \"relative\", zIndex: elevation }}\r\n >\r\n <FolderNode\r\n node={node}\r\n depth={depth}\r\n open={isOpen}\r\n selected={isSelected}\r\n currentPath={currentPath}\r\n onClick={handleClick}\r\n />\r\n <Activity mode={(isOpen && node.children) ? \"visible\" : \"hidden\"}>\r\n <div\r\n ref={folderContentRef}\r\n data-folder-content\r\n style={folderContainerStyles}\r\n >\r\n {node.children?.map((subNode, index) => (\r\n <TreeContent\r\n key={index}\r\n node={subNode}\r\n depth={depth + 1}\r\n elevation={node.children!.length - index}\r\n parentPath={`${currentPath}/`}\r\n />\r\n ))}\r\n </div>\r\n </Activity>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Folder;","import { createContext, useContext } from \"react\";\r\n\r\nimport type {\r\n FileNodeConfig,\r\n FileNodeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FileItemConfigContext = createContext<FileNodeConfig | null>(null);\r\n\r\nexport const FileNodeConfigProvider = ({\r\n config,\r\n children\r\n}: FileNodeConfigProviderProps) => {\r\n return (\r\n <FileItemConfigContext.Provider value={config}>\r\n {children}\r\n </FileItemConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFileNodeConfig = () => {\r\n const value = useContext(FileItemConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFileNodeConfig' must be used within a FileNodeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import type { MouseEvent } from \"react\";\r\n\r\nimport NodeText from \"./NodeText\";\r\nimport {\r\n DEFAULT_LEFT_OFFSET,\r\n DEFAULT_NODE_GAP,\r\n DEFAULT_NODE_HEIGHT,\r\n DEFAULT_RIGHT_OFFSET,\r\n defaultInlineOffset,\r\n treeNodeStyles\r\n} from \"../constants/file-tree\";\r\nimport { FileIcon } from \"./Icons\";\r\nimport { useFileNodeConfig } from \"../context/FileNodeConfig\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport type { FileNodeOrFolderProps } from \"../types/file-tree\";\r\n\r\nconst FileNode = (\r\n { node, depth, elevation, currentPath }: FileNodeOrFolderProps\r\n) => {\r\n const { onFileSelect, fileOptions } = useFileNodeConfig();\r\n const { selectedPath, depthDistance, nodeOptions, setSelectedPath } = useFileTreeConfig();\r\n const { inlineOffset = defaultInlineOffset } = nodeOptions ?? {};\r\n\r\n const isSelected = currentPath === selectedPath;\r\n const height = fileOptions?.height ?? nodeOptions?.height ?? DEFAULT_NODE_HEIGHT;\r\n const customProps = { path: currentPath, name: node.name, selected: isSelected };\r\n const defaultDepthOffset = depthDistance * (depth - 1);\r\n const leftOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.left ?? DEFAULT_LEFT_OFFSET);\r\n const rightOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.right ?? DEFAULT_RIGHT_OFFSET);\r\n const columnGap = fileOptions?.gap ?? nodeOptions?.gap ?? DEFAULT_NODE_GAP;\r\n const depthOffsetProps = { depth, depthDistance, gap: columnGap };\r\n const depthOffset =\r\n fileOptions?.depthOffset?.(depthOffsetProps) ??\r\n nodeOptions?.depthOffset?.(depthOffsetProps) ??\r\n defaultDepthOffset;\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>) => {\r\n e.stopPropagation();\r\n setSelectedPath(currentPath);\r\n onFileSelect?.({ path: currentPath, name: node.name });\r\n };\r\n\r\n return (\r\n <button\r\n data-tree-node\r\n data-file-node\r\n data-depth={depth}\r\n data-selected={isSelected}\r\n style={{\r\n ...treeNodeStyles,\r\n height: `${height}px`,\r\n position: \"relative\",\r\n paddingLeft: `${depthOffset + leftOffset}px`,\r\n paddingRight: `${rightOffset}px`,\r\n columnGap: `${columnGap}px`,\r\n zIndex: elevation\r\n }}\r\n onClick={handleClick}\r\n >\r\n {typeof fileOptions?.icon === \"function\" ? (\r\n <fileOptions.icon {...customProps} />\r\n ) : (\r\n <FileIcon {...fileOptions?.icon} />\r\n )}\r\n {typeof fileOptions?.text === \"function\" ? (\r\n <fileOptions.text {...customProps} />\r\n ) : (\r\n <NodeText name={node.name} {...fileOptions?.text} />\r\n )}\r\n </button>\r\n );\r\n};\r\n\r\nexport default FileNode;","import Folder from \"./Folder\";\r\nimport FileNode from \"./FileNode\";\r\nimport type { TreeContentProps } from \"../types/file-tree\";\r\n\r\nconst TreeContent = (\r\n { node, parentPath, ...restProps }: TreeContentProps\r\n) => {\r\n const currentPath = `${parentPath}${node.name}`;\r\n const props = { node, ...restProps, currentPath };\r\n\r\n if (!node.children) {\r\n return <FileNode {...props} />;\r\n }\r\n\r\n return <Folder {...props} />;\r\n};\r\n\r\nexport default TreeContent;","import type { CSSProperties } from \"react\";\r\n\r\nimport { DEFAULT_VARIABLES } from \"../constants/file-tree\";\r\nimport type { VariablesProviderProps } from \"../types/file-tree\";\r\n\r\nconst VariablesProvider = ({\r\n nodeOptions,\r\n fileOptions,\r\n folderOptions,\r\n theme,\r\n children\r\n}: VariablesProviderProps) => {\r\n return (\r\n <div\r\n data-variables-provider\r\n style={{\r\n \"--file-color\": fileOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--file-background-color\": fileOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--file-hover-color\": fileOptions?.colors?.hover?.color ?? nodeOptions?.colors?.hover?.color ?? DEFAULT_VARIABLES[theme].hoverColor,\r\n \"--file-hover-background-color\": fileOptions?.colors?.hover?.backgroundColor ?? nodeOptions?.colors?.hover?.backgroundColor ?? DEFAULT_VARIABLES[theme].hoverBackgroundColor,\r\n \"--file-focus-color\": fileOptions?.colors?.focus?.color ?? nodeOptions?.colors?.focus?.color ?? DEFAULT_VARIABLES[theme].focusColor,\r\n \"--file-focus-border-color\": fileOptions?.colors?.focus?.borderColor ?? nodeOptions?.colors?.focus?.borderColor ?? DEFAULT_VARIABLES[theme].focusBorderColor,\r\n \"--file-focus-background-color\": fileOptions?.colors?.focus?.backgroundColor ?? nodeOptions?.colors?.focus?.backgroundColor ?? DEFAULT_VARIABLES[theme].focusBackgroundColor,\r\n \"--file-selected-color\": fileOptions?.colors?.selected?.color ?? nodeOptions?.colors?.selected?.color ?? DEFAULT_VARIABLES[theme].selectedColor,\r\n \"--file-selected-background-color\": fileOptions?.colors?.selected?.backgroundColor ?? nodeOptions?.colors?.selected?.backgroundColor ?? DEFAULT_VARIABLES[theme].selectedBackgroundColor,\r\n \"--folder-color\": folderOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--folder-background-color\": folderOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--folder-hover-color\": folderOptions?.colors?.hover?.color ?? nodeOptions?.colors?.hover?.color ?? DEFAULT_VARIABLES[theme].hoverColor,\r\n \"--folder-hover-background-color\": folderOptions?.colors?.hover?.backgroundColor ?? nodeOptions?.colors?.hover?.backgroundColor ?? DEFAULT_VARIABLES[theme].hoverBackgroundColor,\r\n \"--folder-focus-color\": folderOptions?.colors?.focus?.color ?? nodeOptions?.colors?.focus?.color ?? DEFAULT_VARIABLES[theme].focusColor,\r\n \"--folder-focus-border-color\": folderOptions?.colors?.focus?.borderColor ?? nodeOptions?.colors?.focus?.borderColor ?? DEFAULT_VARIABLES[theme].focusBorderColor,\r\n \"--folder-focus-background-color\": folderOptions?.colors?.focus?.backgroundColor ?? nodeOptions?.colors?.focus?.backgroundColor ?? DEFAULT_VARIABLES[theme].focusBackgroundColor,\r\n \"--folder-selected-color\": folderOptions?.colors?.selected?.color ?? nodeOptions?.colors?.selected?.color ?? DEFAULT_VARIABLES[theme].selectedColor,\r\n \"--folder-selected-background-color\": folderOptions?.colors?.selected?.backgroundColor ?? nodeOptions?.colors?.selected?.backgroundColor ?? DEFAULT_VARIABLES[theme].selectedBackgroundColor,\r\n \"--stuck-color\": folderOptions?.colors?.stuck?.color ?? folderOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--stuck-background-color\": folderOptions?.colors?.stuck?.backgroundColor ?? folderOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--folding-shadow\": folderOptions?.foldingShadow ?? DEFAULT_VARIABLES[theme].foldingShadow\r\n } as CSSProperties}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VariablesProvider;","import type { FileTree } from \"../types/utils\";\r\n\r\nfunction sortFilePaths(paths: string[]) {\r\n const sortedPaths = [...paths];\r\n\r\n sortedPaths.sort((a, b) => {\r\n let i = 0;\r\n const minLength = Math.min(a.length, b.length);\r\n\r\n while (i < minLength && a[i] === b[i]) {\r\n i++;\r\n }\r\n\r\n const aRemainder = a.slice(i);\r\n const bRemainder = b.slice(i);\r\n\r\n const aIsInsideFolder = aRemainder.includes(\"/\");\r\n const bIsInsideFolder = bRemainder.includes(\"/\");\r\n\r\n if (aIsInsideFolder && !bIsInsideFolder) {\r\n return -1;\r\n }\r\n\r\n if (!aIsInsideFolder && bIsInsideFolder) {\r\n return 1;\r\n }\r\n\r\n return a.localeCompare(b);\r\n });\r\n\r\n return sortedPaths;\r\n}\r\n\r\nexport function createFileTree(filePaths: string[]) {\r\n const root: FileTree[] = [];\r\n const uniqueFilePaths = new Set(filePaths);\r\n const sortedFilePaths = sortFilePaths([...uniqueFilePaths]);\r\n\r\n for (const filePath of sortedFilePaths) {\r\n const pathParts = filePath.split(\"/\");\r\n let currentLevel = root;\r\n\r\n pathParts.forEach((pathPart, index) => {\r\n const isFile = index === pathParts.length - 1;\r\n const existingNode = currentLevel.find((node) => node.name === pathPart);\r\n\r\n if (existingNode) {\r\n if (!isFile) {\r\n currentLevel = existingNode.children!;\r\n }\r\n } else {\r\n const newNode: FileTree = isFile\r\n ? { name: pathPart, children: null }\r\n : { name: pathPart, children: [] };\r\n\r\n currentLevel.push(newNode);\r\n\r\n if (!isFile) {\r\n currentLevel = newNode.children!;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return root;\r\n}","import { useRef } from \"react\";\r\n\r\nimport \"../styles/file-tree.css\";\r\nimport TreeContent from \"./TreeContent\";\r\nimport VariablesProvider from \"./VariablesProvider\";\r\nimport {\r\n DEFAULT_DEPTH_DISTANCE,\r\n DEFAULT_PADDING_BOTTOM,\r\n DEFAULT_VARIABLES,\r\n fileTreeStyles\r\n} from \"../constants/file-tree\";\r\nimport { createFileTree } from \"../lib/utils\";\r\nimport type { FileTreeProps } from \"../types/file-tree\";\r\nimport { FileNodeConfigProvider } from \"../context/FileNodeConfig\";\r\nimport { FileTreeConfigProvider } from \"../context/FileTreeConfig\";\r\nimport { FolderNodeConfigProvider } from \"../context/FolderNodeConfig\";\r\nimport { useUpdateFolderShadows } from \"../hooks/useUpdateFolderShadows\";\r\n\r\n/**\r\n * This component renders a highly customizable, accessible, and performant \r\n * tree structure for file system navigation.\r\n */\r\n// @see {@link https://my-docs-site.com/components/file-tree|Full Documentation}\r\nconst FileTree = ({\r\n files,\r\n onFileSelect,\r\n folding = true,\r\n depthDistance = DEFAULT_DEPTH_DISTANCE,\r\n paddingBottom = DEFAULT_PADDING_BOTTOM,\r\n backgroundColor,\r\n nodeOptions,\r\n fileOptions,\r\n folderOptions,\r\n scrollContainerRef,\r\n theme = \"light\"\r\n}: FileTreeProps) => {\r\n const fileTree = createFileTree(files);\r\n const fileTreeRef = useRef<HTMLDivElement | null>(null);\r\n const finalizedScrollContainerRef = folding ? scrollContainerRef : undefined;\r\n const fileTreeConfig = { depthDistance, nodeOptions };\r\n const folderNodeConfig = { scrollContainerRef: finalizedScrollContainerRef, folding, folderOptions };\r\n const fileNodeConfig = { onFileSelect, fileOptions };\r\n\r\n useUpdateFolderShadows(fileTreeRef, folding);\r\n\r\n return (\r\n <div\r\n ref={fileTreeRef}\r\n data-file-tree\r\n style={{\r\n ...fileTreeStyles,\r\n paddingBottom: `${paddingBottom}px`,\r\n backgroundColor: backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor\r\n }}\r\n >\r\n <VariablesProvider\r\n nodeOptions={nodeOptions}\r\n fileOptions={fileOptions}\r\n folderOptions={folderOptions}\r\n theme={theme}\r\n >\r\n <FileTreeConfigProvider config={fileTreeConfig}>\r\n <FolderNodeConfigProvider config={folderNodeConfig}>\r\n <FileNodeConfigProvider config={fileNodeConfig}>\r\n {fileTree.map((node, index) => (\r\n <TreeContent\r\n key={node.name}\r\n node={node}\r\n depth={1}\r\n elevation={fileTree.length - index}\r\n parentPath=\"\"\r\n />\r\n ))}\r\n </FileNodeConfigProvider>\r\n </FolderNodeConfigProvider>\r\n </FileTreeConfigProvider>\r\n </VariablesProvider>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileTree;","import { type RefObject, useLayoutEffect } from \"react\";\r\n\r\nexport const useUpdateFolderShadows = (\r\n fileTreeRef: RefObject<HTMLDivElement | null>,\r\n folding?: boolean\r\n) => {\r\n useLayoutEffect(() => {\r\n const fileTree = fileTreeRef?.current;\r\n if (!fileTree || !folding) return;\r\n\r\n let timeoutId: number;\r\n\r\n const updateFolderShadows = () => {\r\n const folderNodes = fileTree.querySelectorAll(\"[data-stuck]\");\r\n if (!folderNodes.length) return;\r\n\r\n let hasFoundLastVisibleStuckNode = false;\r\n const reversedFolderNodes = [...folderNodes].reverse();\r\n\r\n reversedFolderNodes.forEach((node) => {\r\n const isVisible = node.checkVisibility();\r\n const isStuck = node.getAttribute(\"data-stuck\") === \"true\";\r\n const isVisibleStuckNode = isVisible && isStuck;\r\n\r\n if (!hasFoundLastVisibleStuckNode && isVisibleStuckNode) {\r\n hasFoundLastVisibleStuckNode = true;\r\n node.setAttribute(\"data-fold\", \"true\");\r\n } else if (isVisible) {\r\n node.setAttribute(\"data-fold\", \"false\");\r\n }\r\n });\r\n };\r\n\r\n const observer = new MutationObserver((mutationsList) => {\r\n const hasFolderStuckAttributeChange = mutationsList.some(\r\n (mutation) =>\r\n mutation.type === \"attributes\" &&\r\n mutation.attributeName === \"data-stuck\" &&\r\n mutation.target instanceof HTMLElement &&\r\n mutation.target.hasAttribute(\"data-folder-node\")\r\n );\r\n if (hasFolderStuckAttributeChange) {\r\n clearTimeout(timeoutId);\r\n timeoutId = setTimeout(updateFolderShadows, 50);\r\n }\r\n });\r\n\r\n observer.observe(fileTree, {\r\n attributes: true,\r\n attributeOldValue: false,\r\n subtree: true,\r\n childList: false,\r\n characterData: false\r\n });\r\n\r\n return () => {\r\n observer.disconnect();\r\n }\r\n }, [fileTreeRef.current, folding]);\r\n};"],"names":["process","env","NODE_ENV","getComponentNameFromType","type","$$typeof","REACT_CLIENT_REFERENCE","displayName","name","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","console","error","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","call","getTaskName","UnknownOwner","Error","elementRefGetterWithDeprecationWarning","componentName","this","didWarnAboutElementRef","props","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","debugStack","debugTask","dispatcher","children","isArrayImpl","length","validateChildKeys","Object","freeze","hasOwnProperty","keys","filter","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","get","isReactWarning","key","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","refProp","REACT_ELEMENT_TYPE","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","isValidElement","validated","status","object","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","Array","isArray","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","__rest","s","t","p","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","css","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","SuppressedError","NodeText","_a","_jsx","assign","fontSize","flex","minWidth","textAlign","overflow","textOverflow","whiteSpace","DEFAULT_VARIABLES","light","color","backgroundColor","hoverColor","hoverBackgroundColor","focusColor","focusBorderColor","focusBackgroundColor","selectedColor","selectedBackgroundColor","foldingShadow","dark","defaultInlineOffset","left","right","fileTreeStyles","position","width","minHeight","boxSizing","margin","zIndex","treeNodeStyles","display","alignItems","justifyContent","borderWidth","borderStyle","cursor","folderContainerStyles","folderNodeStyles","FileIcon","height","viewBox","fill","xmlns","flexShrink","fillRule","clipRule","d","ArrowIcon","FileTreeConfigContext","createContext","FileTreeConfigProvider","selectedPath","setSelectedPath","useState","Provider","useFileTreeConfig","useContext","FolderItemConfigContext","FolderNodeConfigProvider","FolderNode","depth","open","selected","currentPath","onClick","useRef","depthDistance","nodeOptions","folderOptions","folding","scrollContainerRef","useFolderNodeConfig","inlineOffset","customProps","path","_b","top","defaultDepthOffset","leftOffset","_c","rightOffset","_d","columnGap","_f","_e","gap","depthOffsetProps","depthOffset","_k","_h","_g","_j","isStuck","folderNodeRef","topOffset","isFolderOpen","setIsStuck","useEffect","scrollContainer","current","folderNode","ticking","handleScroll","window","requestAnimationFrame","containerRect","getBoundingClientRect","folderNodeRect","containerStyle","getComputedStyle","containerBorderTop","parseFloat","borderTopWidth","containerPaddingTop","paddingTop","offset","scrollTop","addEventListener","removeEventListener","useFolderStuck","_jsxs","paddingLeft","paddingRight","icon","_m","_l","rotate","undefined","text","Folder","elevation","folderContentRef","isOpen","setIsOpen","isSelected","stopPropagation","folderContent","foldedFolderNode","querySelector","setAttribute","Activity","mode","map","subNode","index","TreeContent","parentPath","FileItemConfigContext","FileNodeConfigProvider","FileNode","onFileSelect","fileOptions","useFileNodeConfig","restProps","VariablesProvider","theme","colors","default","_t","_q","_p","_o","hover","_s","_r","_z","_w","_v","_u","_y","_x","_5","_2","_1","_0","focus","_4","_3","_11","_8","_7","_6","borderColor","_10","_9","_17","_14","_13","_12","_16","_15","_23","_20","_19","_18","_22","_21","_29","_26","_25","_24","_28","_27","_35","_32","_31","_30","_34","_33","_41","_38","_37","_36","_40","_39","_47","_44","_43","_42","_46","_45","_53","_50","_49","_48","_52","_51","_59","_56","_55","_54","_58","_57","_65","_62","_61","_60","_64","_63","_71","_68","_67","_66","_70","_69","_77","_74","_73","_72","_76","_75","_83","_80","_79","_78","_82","_81","_89","_86","_84","stuck","_85","_87","_88","_90","_91","_92","_98","_95","_93","_94","_96","_97","_99","_100","_101","_102","createFileTree","filePaths","root","sortedFilePaths","paths","sortedPaths","sort","a","b","minLength","Math","min","aRemainder","slice","bRemainder","aIsInsideFolder","includes","bIsInsideFolder","localeCompare","sortFilePaths","Set","filePath","pathParts","split","currentLevel","forEach","pathPart","isFile","existingNode","find","newNode","push","files","paddingBottom","fileTree","fileTreeRef","fileTreeConfig","folderNodeConfig","fileNodeConfig","useLayoutEffect","timeoutId","updateFolderShadows","folderNodes","querySelectorAll","hasFoundLastVisibleStuckNode","reverse","isVisible","checkVisibility","getAttribute","observer","MutationObserver","mutationsList","some","mutation","attributeName","target","HTMLElement","hasAttribute","clearTimeout","setTimeout","observe","attributes","attributeOldValue","subtree","childList","characterData","disconnect","useUpdateFolderShadows"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/dist/index.mjs ADDED
@@ -0,0 +1,11 @@
1
+ import o,{useState as e,useEffect as l,createContext as r,useContext as n,useRef as t,Activity as i,useLayoutEffect as d}from"react";var c,u={exports:{}},a={};var s,v,f={};
2
+ /**
3
+ * @license React
4
+ * react-jsx-runtime.development.js
5
+ *
6
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */function p(){return s||(s=1,"production"!==process.env.NODE_ENV&&function(){function e(o){if(null==o)return null;if("function"==typeof o)return o.$$typeof===S?null:o.displayName||o.name||null;if("string"==typeof o)return o;switch(o){case g:return"Fragment";case h:return"Profiler";case b:return"StrictMode";case x:return"Suspense";case j:return"SuspenseList";case w:return"Activity"}if("object"==typeof o)switch("number"==typeof o.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),o.$$typeof){case p:return"Portal";case m:return o.displayName||"Context";case y:return(o._context.displayName||"Context")+".Consumer";case k:var l=o.render;return(o=o.displayName)||(o=""!==(o=l.displayName||l.name||"")?"ForwardRef("+o+")":"ForwardRef"),o;case O:return null!==(l=o.displayName||null)?l:e(o.type)||"Memo";case C:l=o._payload,o=o._init;try{return e(o(l))}catch(o){}}return null}function l(o){return""+o}function r(o){try{l(o);var e=!1}catch(o){e=!0}if(e){var r=(e=console).error,n="function"==typeof Symbol&&Symbol.toStringTag&&o[Symbol.toStringTag]||o.constructor.name||"Object";return r.call(e,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),l(o)}}function n(o){if(o===g)return"<>";if("object"==typeof o&&null!==o&&o.$$typeof===C)return"<...>";try{var l=e(o);return l?"<"+l+">":"<...>"}catch(o){return"<...>"}}function t(){return Error("react-stack-top-frame")}function i(){var o=e(this.type);return $[o]||($[o]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(o=this.props.ref)?o:null}function d(o,l,n,t,d,u){var s,f=l.children;if(void 0!==f)if(t)if(E(f)){for(t=0;t<f.length;t++)c(f[t]);Object.freeze&&Object.freeze(f)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else c(f);if(P.call(l,"key")){f=e(o);var p=Object.keys(l).filter(function(o){return"key"!==o});t=0<p.length?"{key: someKey, "+p.join(": ..., ")+": ...}":"{key: someKey}",B[f+t]||(p=0<p.length?"{"+p.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',t,f,p,f),B[f+t]=!0)}if(f=null,void 0!==n&&(r(n),f=""+n),function(o){if(P.call(o,"key")){var e=Object.getOwnPropertyDescriptor(o,"key").get;if(e&&e.isReactWarning)return!1}return void 0!==o.key}(l)&&(r(l.key),f=""+l.key),"key"in l)for(var g in n={},l)"key"!==g&&(n[g]=l[g]);else n=l;return f&&function(o,e){function l(){a||(a=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",e))}l.isReactWarning=!0,Object.defineProperty(o,"key",{get:l,configurable:!0})}(n,"function"==typeof o?o.displayName||o.name||"Unknown":o),function(o,e,l,r,n,t){var d=l.ref;return o={$$typeof:v,type:o,key:e,props:l,_owner:r},null!==(void 0!==d?d:null)?Object.defineProperty(o,"ref",{enumerable:!1,get:i}):Object.defineProperty(o,"ref",{enumerable:!1,value:null}),o._store={},Object.defineProperty(o._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(o,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(o,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:n}),Object.defineProperty(o,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:t}),Object.freeze&&(Object.freeze(o.props),Object.freeze(o)),o}(o,f,n,null===(s=_.A)?null:s.getOwner(),d,u)}function c(o){u(o)?o._store&&(o._store.validated=1):"object"==typeof o&&null!==o&&o.$$typeof===C&&("fulfilled"===o._payload.status?u(o._payload.value)&&o._payload.value._store&&(o._payload.value._store.validated=1):o._store&&(o._store.validated=1))}function u(o){return"object"==typeof o&&null!==o&&o.$$typeof===v}var a,s=o,v=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),y=Symbol.for("react.consumer"),m=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),C=Symbol.for("react.lazy"),w=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),_=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=Object.prototype.hasOwnProperty,E=Array.isArray,R=console.createTask?console.createTask:function(){return null},$={},N=(s={react_stack_bottom_frame:function(o){return o()}}).react_stack_bottom_frame.bind(s,t)(),T=R(n(t)),B={};f.Fragment=g,f.jsx=function(o,e,l){var r=1e4>_.recentlyCreatedOwnerStacks++;return d(o,e,l,!1,r?Error("react-stack-top-frame"):N,r?R(n(o)):T)},f.jsxs=function(o,e,l){var r=1e4>_.recentlyCreatedOwnerStacks++;return d(o,e,l,!0,r?Error("react-stack-top-frame"):N,r?R(n(o)):T)}}()),f}var g=(v||(v=1,"production"===process.env.NODE_ENV?u.exports=function(){if(c)return a;c=1;var o=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function l(e,l,r){var n=null;if(void 0!==r&&(n=""+r),void 0!==l.key&&(n=""+l.key),"key"in l)for(var t in r={},l)"key"!==t&&(r[t]=l[t]);else r=l;return l=r.ref,{$$typeof:o,type:e,key:n,ref:void 0!==l?l:null,props:r}}return a.Fragment=e,a.jsx=l,a.jsxs=l,a}():u.exports=p()),u.exports);function b(o,e){var l={};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&e.indexOf(r)<0&&(l[r]=o[r]);if(null!=o&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(o);n<r.length;n++)e.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(o,r[n])&&(l[r[n]]=o[r[n]])}return l}!function(o,e){void 0===e&&(e={});var l=e.insertAt;if("undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===l&&r.firstChild?r.insertBefore(n,r.firstChild):r.appendChild(n),n.styleSheet?n.styleSheet.cssText=o:n.appendChild(document.createTextNode(o))}}('[data-file-tree] [data-folder-node] {\r\n\tcolor: var(--folder-color);\r\n\tborder-color: transparent;\r\n\tbackground-color: var(--folder-background-color);\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--folder-hover-color);\r\n\t\tbackground-color: var(--folder-hover-background-color);\r\n\t}\r\n\t&:focus {\r\n\t\tcolor: var(--folder-focus-color);\r\n\t\tborder-color: var(--folder-focus-border-color);\r\n\t\tbackground-color: var(--folder-focus-background-color);\r\n\t}\r\n\t&[data-selected="true"]:not(:focus) {\r\n\t\tcolor: var(--folder-selected-color);\r\n\t\tbackground-color: var(--folder-selected-background-color);\r\n\t}\r\n\t&[data-folder-node][data-stuck="true"] {\r\n\t\tcolor: var(--stuck-color);\r\n\t\tborder-color: transparent;\r\n\t\tbackground-color: var(--stuck-background-color);\r\n\r\n\t\t&::before {\r\n\t\t\tcontent: "";\r\n\t\t\tposition: absolute;\r\n\t\t\tinset: -1px;\r\n\t\t\tbackground-color: var(--stuck-background-color);\r\n\t\t\tz-index: -1;\r\n\t\t}\r\n\t\t&:hover {\r\n\t\t\tcolor: var(--folder-hover-color);\r\n\t\t}\r\n\t\t&:hover::before {\r\n\t\t\tbackground-color: var(--folder-hover-background-color);\r\n\t\t}\r\n\t}\r\n\t&[data-fold="true"] {\r\n\t\tbox-shadow: var(--folding-shadow);\r\n\t}\r\n}\r\n\r\n[data-file-tree] [data-file-node] {\r\n\tcolor: var(--file-color);\r\n\tborder-color: transparent;\r\n\tbackground-color: var(--file-background-color);\r\n\r\n\t&:hover {\r\n\t\tcolor: var(--file-hover-color);\r\n\t\tbackground-color: var(--file-hover-background-color);\r\n\t}\r\n\t&:focus {\r\n\t\tcolor: var(--file-focus-color);\r\n\t\tborder-color: var(--file-focus-border-color);\r\n\t\tbackground-color: var(--file-focus-background-color);\r\n\t}\r\n\t&[data-selected="true"]:not(:focus) {\r\n\t\tcolor: var(--file-selected-color);\r\n\t\tbackground-color: var(--file-selected-background-color);\r\n\t}\r\n}\r\n'),"function"==typeof SuppressedError&&SuppressedError;const h=o=>{var{name:e,style:l}=o,r=b(o,["name","style"]);return g.jsx("span",Object.assign({},r,{"data-node-text":!0,style:Object.assign(Object.assign({fontSize:"14px"},null!=l?l:{}),{flex:1,minWidth:0,textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),children:e}))},y={light:{color:"#525252",backgroundColor:"#ffffff",hoverColor:"#000000",hoverBackgroundColor:"#f1f1f1",focusColor:"#0a0a0a",focusBorderColor:"#1e40af",focusBackgroundColor:"#dbeafe",selectedColor:"#525252",selectedBackgroundColor:"#e5e5e5",foldingShadow:"0 4px 3px -2px rgb(0 0 0 / 0.12), 0 2px 2px -2px rgb(0 0 0 / 0.12)"},dark:{color:"#adadad",backgroundColor:"#161616",hoverColor:"#fafafa",hoverBackgroundColor:"#212121",focusColor:"#f0f0f0",focusBorderColor:"#3b82f6",focusBackgroundColor:"#172554",selectedColor:"#adadad",selectedBackgroundColor:"#2c2c2c",foldingShadow:"0 4px 3px -2px rgb(0 0 0 / 0.9), 0 2px 2px -2px rgb(0 0 0 / 0.9)"}},m={left:12,right:4},k={position:"relative",width:"100%",minHeight:"100%",boxSizing:"border-box",margin:0,zIndex:1},x={width:"100%",display:"flex",alignItems:"center",justifyContent:"start",whiteSpace:"nowrap",borderWidth:"1px",borderStyle:"solid",cursor:"pointer"},j={position:"relative",zIndex:1},O={position:"sticky",zIndex:10},C=o=>{var{style:e}=o,l=b(o,["style"]);return g.jsx("svg",Object.assign({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:Object.assign({width:"16px",height:"16px",flexShrink:0},e)},l,{children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.71 4.29L10.71 1.29L10 1H4L3 2V14L4 15H13L14 14V5L13.71 4.29ZM13 14H4V2H9V6H13V14ZM10 5V2L13 5H10Z",fill:"currentColor"})}))},w=o=>{var{style:e}=o,l=b(o,["style"]);return g.jsx("svg",Object.assign({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:Object.assign({width:"16px",height:"16px",flexShrink:0},e)},l,{children:g.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.0719 8.02397L5.7146 3.66666L6.33332 3.04794L11 7.71461V8.33333L6.33332 13L5.7146 12.3813L10.0719 8.02397Z",fill:"currentColor"})}))},S=r(null),_=({config:o,children:l})=>{const[r,n]=e(null),t=Object.assign(Object.assign({},o),{selectedPath:r,setSelectedPath:n});return g.jsx(S.Provider,{value:t,children:l})},P=()=>{const o=n(S);if(!o)throw new Error("'useFileTreeConfig' must be used within a FileTreeConfigProvider");return o},E=r(null),R=({config:o,children:e})=>g.jsx(E.Provider,{value:o,children:e}),$=({node:o,depth:r,open:i,selected:d,currentPath:c,onClick:u})=>{var a,s,v,f,p,b,y,k,j,C,S,_;const R=t(null),{depthDistance:$,nodeOptions:N}=P(),{folderOptions:T,folding:B,scrollContainerRef:L}=(()=>{const o=n(E);if(!o)throw new Error("'useFolderNodeConfig' must be used within a FolderNodeConfigProvider");return o})(),{inlineOffset:A=m}=null!=N?N:{},F={path:c,name:o.name,open:i},z=null!==(s=null!==(a=null==T?void 0:T.height)&&void 0!==a?a:null==N?void 0:N.height)&&void 0!==s?s:28,D=z*(r-1),I=$*(r-1),V="number"==typeof A?A:null!==(v=A.left)&&void 0!==v?v:12,H="number"==typeof A?A:null!==(f=A.right)&&void 0!==f?f:4,M=null!==(b=null!==(p=null==T?void 0:T.gap)&&void 0!==p?p:null==N?void 0:N.gap)&&void 0!==b?b:8,W={depth:r,depthDistance:$,gap:M},U=null!==(C=null!==(k=null===(y=null==T?void 0:T.depthOffset)||void 0===y?void 0:y.call(T,W))&&void 0!==k?k:null===(j=null==N?void 0:N.depthOffset)||void 0===j?void 0:j.call(N,W))&&void 0!==C?C:I,Z=((o,r,n,t)=>{const[i,d]=e(!1);return l(()=>{const e=null==o?void 0:o.current,l=r.current;if(!e||!l)return;let i=!1;const c=()=>{i||(window.requestAnimationFrame(()=>{const o=e.getBoundingClientRect(),r=l.getBoundingClientRect(),c=window.getComputedStyle(e),u=parseFloat(c.borderTopWidth)||0,a=parseFloat(c.paddingTop)||0,s=r.top-o.top-u-a,v=s<=n&&s+r.height>n&&e.scrollTop>0&&t;d(v),i=!1}),i=!0)};return c(),e.addEventListener("scroll",c),()=>{e.removeEventListener("scroll",c)}},[null==o?void 0:o.current,r.current,n,t,d]),i})(L,R,D,i);return g.jsxs("button",{ref:R,"data-tree-node":!0,"data-folder-node":!0,"data-open":i,"data-depth":r,"data-selected":d,"data-stuck":Z,"data-fold":"false",style:Object.assign(Object.assign(Object.assign({},x),L&&B?Object.assign(Object.assign({},O),{top:`${D}px`}):{}),{height:`${z}px`,paddingLeft:`${U+V}px`,paddingRight:`${H}px`,columnGap:`${M}px`}),onClick:u,children:["function"==typeof(null==T?void 0:T.icon)?g.jsx(T.icon,Object.assign({},F)):g.jsx(w,Object.assign({},null==T?void 0:T.icon,{style:Object.assign(Object.assign({},null!==(_=null===(S=null==T?void 0:T.icon)||void 0===S?void 0:S.style)&&void 0!==_?_:{}),{rotate:i?"90deg":void 0})})),"function"==typeof(null==T?void 0:T.text)?g.jsx(T.text,Object.assign({},F)):g.jsx(h,Object.assign({name:o.name},null==T?void 0:T.text))]})},N=({node:o,depth:l,elevation:r,currentPath:n})=>{var d;const c=t(null),{selectedPath:u,setSelectedPath:a}=P(),[s,v]=e(!1),f=n===u;return g.jsxs("div",{"data-folder":!0,style:{position:"relative",zIndex:r},children:[g.jsx($,{node:o,depth:l,open:s,selected:f,currentPath:n,onClick:o=>{o.stopPropagation();const e=c.current,l=null==e?void 0:e.querySelector("[data-folder-node][data-fold=true]");l&&l.setAttribute("data-fold","false"),v(!s),a(n)}}),g.jsx(i,{mode:s&&o.children?"visible":"hidden",children:g.jsx("div",{ref:c,"data-folder-content":!0,style:j,children:null===(d=o.children)||void 0===d?void 0:d.map((e,r)=>g.jsx(A,{node:e,depth:l+1,elevation:o.children.length-r,parentPath:`${n}/`},r))})})]})},T=r(null),B=({config:o,children:e})=>g.jsx(T.Provider,{value:o,children:e}),L=({node:o,depth:e,elevation:l,currentPath:r})=>{var t,i,d,c,u,a,s,v,f,p;const{onFileSelect:b,fileOptions:y}=(()=>{const o=n(T);if(!o)throw new Error("'useFileNodeConfig' must be used within a FileNodeConfigProvider");return o})(),{selectedPath:k,depthDistance:j,nodeOptions:O,setSelectedPath:w}=P(),{inlineOffset:S=m}=null!=O?O:{},_=r===k,E=null!==(i=null!==(t=null==y?void 0:y.height)&&void 0!==t?t:null==O?void 0:O.height)&&void 0!==i?i:28,R={path:r,name:o.name,selected:_},$=j*(e-1),N="number"==typeof S?S:null!==(d=S.left)&&void 0!==d?d:12,B="number"==typeof S?S:null!==(c=S.right)&&void 0!==c?c:4,L=null!==(a=null!==(u=null==y?void 0:y.gap)&&void 0!==u?u:null==O?void 0:O.gap)&&void 0!==a?a:8,A={depth:e,depthDistance:j,gap:L},F=null!==(p=null!==(v=null===(s=null==y?void 0:y.depthOffset)||void 0===s?void 0:s.call(y,A))&&void 0!==v?v:null===(f=null==O?void 0:O.depthOffset)||void 0===f?void 0:f.call(O,A))&&void 0!==p?p:$;return g.jsxs("button",{"data-tree-node":!0,"data-file-node":!0,"data-depth":e,"data-selected":_,style:Object.assign(Object.assign({},x),{height:`${E}px`,position:"relative",paddingLeft:`${F+N}px`,paddingRight:`${B}px`,columnGap:`${L}px`,zIndex:l}),onClick:e=>{e.stopPropagation(),w(r),null==b||b({path:r,name:o.name})},children:["function"==typeof(null==y?void 0:y.icon)?g.jsx(y.icon,Object.assign({},R)):g.jsx(C,Object.assign({},null==y?void 0:y.icon)),"function"==typeof(null==y?void 0:y.text)?g.jsx(y.text,Object.assign({},R)):g.jsx(h,Object.assign({name:o.name},null==y?void 0:y.text))]})},A=o=>{var{node:e,parentPath:l}=o,r=b(o,["node","parentPath"]);const n=`${l}${e.name}`,t=Object.assign(Object.assign({node:e},r),{currentPath:n});return e.children?g.jsx(N,Object.assign({},t)):g.jsx(L,Object.assign({},t))},F=({nodeOptions:o,fileOptions:e,folderOptions:l,theme:r,children:n})=>{var t,i,d,c,u,a,s,v,f,p,b,h,m,k,x,j,O,C,w,S,_,P,E,R,$,N,T,B,L,A,F,z,D,I,V,H,M,W,U,Z,q,G,J,K,X,Y,Q,oo,eo,lo,ro,no,to,io,co,uo,ao,so,vo,fo,po,go,bo,ho,yo,mo,ko,xo,jo,Oo,Co,wo,So,_o,Po,Eo,Ro,$o,No,To,Bo,Lo,Ao,Fo,zo,Do,Io,Vo,Ho,Mo,Wo,Uo,Zo,qo,Go,Jo,Ko,Xo,Yo,Qo,oe,ee,le,re,ne,te,ie,de,ce,ue,ae,se,ve,fe,pe,ge,be,he,ye,me,ke,xe,je,Oe,Ce,we,Se;return g.jsx("div",{"data-variables-provider":!0,style:{"--file-color":null!==(a=null!==(d=null===(i=null===(t=null==e?void 0:e.colors)||void 0===t?void 0:t.default)||void 0===i?void 0:i.color)&&void 0!==d?d:null===(u=null===(c=null==o?void 0:o.colors)||void 0===c?void 0:c.default)||void 0===u?void 0:u.color)&&void 0!==a?a:y[r].color,"--file-background-color":null!==(h=null!==(f=null===(v=null===(s=null==e?void 0:e.colors)||void 0===s?void 0:s.default)||void 0===v?void 0:v.backgroundColor)&&void 0!==f?f:null===(b=null===(p=null==o?void 0:o.colors)||void 0===p?void 0:p.default)||void 0===b?void 0:b.backgroundColor)&&void 0!==h?h:y[r].backgroundColor,"--file-hover-color":null!==(C=null!==(x=null===(k=null===(m=null==e?void 0:e.colors)||void 0===m?void 0:m.hover)||void 0===k?void 0:k.color)&&void 0!==x?x:null===(O=null===(j=null==o?void 0:o.colors)||void 0===j?void 0:j.hover)||void 0===O?void 0:O.color)&&void 0!==C?C:y[r].hoverColor,"--file-hover-background-color":null!==(R=null!==(_=null===(S=null===(w=null==e?void 0:e.colors)||void 0===w?void 0:w.hover)||void 0===S?void 0:S.backgroundColor)&&void 0!==_?_:null===(E=null===(P=null==o?void 0:o.colors)||void 0===P?void 0:P.hover)||void 0===E?void 0:E.backgroundColor)&&void 0!==R?R:y[r].hoverBackgroundColor,"--file-focus-color":null!==(A=null!==(T=null===(N=null===($=null==e?void 0:e.colors)||void 0===$?void 0:$.focus)||void 0===N?void 0:N.color)&&void 0!==T?T:null===(L=null===(B=null==o?void 0:o.colors)||void 0===B?void 0:B.focus)||void 0===L?void 0:L.color)&&void 0!==A?A:y[r].focusColor,"--file-focus-border-color":null!==(H=null!==(D=null===(z=null===(F=null==e?void 0:e.colors)||void 0===F?void 0:F.focus)||void 0===z?void 0:z.borderColor)&&void 0!==D?D:null===(V=null===(I=null==o?void 0:o.colors)||void 0===I?void 0:I.focus)||void 0===V?void 0:V.borderColor)&&void 0!==H?H:y[r].focusBorderColor,"--file-focus-background-color":null!==(G=null!==(U=null===(W=null===(M=null==e?void 0:e.colors)||void 0===M?void 0:M.focus)||void 0===W?void 0:W.backgroundColor)&&void 0!==U?U:null===(q=null===(Z=null==o?void 0:o.colors)||void 0===Z?void 0:Z.focus)||void 0===q?void 0:q.backgroundColor)&&void 0!==G?G:y[r].focusBackgroundColor,"--file-selected-color":null!==(oo=null!==(X=null===(K=null===(J=null==e?void 0:e.colors)||void 0===J?void 0:J.selected)||void 0===K?void 0:K.color)&&void 0!==X?X:null===(Q=null===(Y=null==o?void 0:o.colors)||void 0===Y?void 0:Y.selected)||void 0===Q?void 0:Q.color)&&void 0!==oo?oo:y[r].selectedColor,"--file-selected-background-color":null!==(io=null!==(ro=null===(lo=null===(eo=null==e?void 0:e.colors)||void 0===eo?void 0:eo.selected)||void 0===lo?void 0:lo.backgroundColor)&&void 0!==ro?ro:null===(to=null===(no=null==o?void 0:o.colors)||void 0===no?void 0:no.selected)||void 0===to?void 0:to.backgroundColor)&&void 0!==io?io:y[r].selectedBackgroundColor,"--folder-color":null!==(fo=null!==(ao=null===(uo=null===(co=null==l?void 0:l.colors)||void 0===co?void 0:co.default)||void 0===uo?void 0:uo.color)&&void 0!==ao?ao:null===(vo=null===(so=null==o?void 0:o.colors)||void 0===so?void 0:so.default)||void 0===vo?void 0:vo.color)&&void 0!==fo?fo:y[r].color,"--folder-background-color":null!==(mo=null!==(bo=null===(go=null===(po=null==l?void 0:l.colors)||void 0===po?void 0:po.default)||void 0===go?void 0:go.backgroundColor)&&void 0!==bo?bo:null===(yo=null===(ho=null==o?void 0:o.colors)||void 0===ho?void 0:ho.default)||void 0===yo?void 0:yo.backgroundColor)&&void 0!==mo?mo:y[r].backgroundColor,"--folder-hover-color":null!==(wo=null!==(jo=null===(xo=null===(ko=null==l?void 0:l.colors)||void 0===ko?void 0:ko.hover)||void 0===xo?void 0:xo.color)&&void 0!==jo?jo:null===(Co=null===(Oo=null==o?void 0:o.colors)||void 0===Oo?void 0:Oo.hover)||void 0===Co?void 0:Co.color)&&void 0!==wo?wo:y[r].hoverColor,"--folder-hover-background-color":null!==($o=null!==(Po=null===(_o=null===(So=null==l?void 0:l.colors)||void 0===So?void 0:So.hover)||void 0===_o?void 0:_o.backgroundColor)&&void 0!==Po?Po:null===(Ro=null===(Eo=null==o?void 0:o.colors)||void 0===Eo?void 0:Eo.hover)||void 0===Ro?void 0:Ro.backgroundColor)&&void 0!==$o?$o:y[r].hoverBackgroundColor,"--folder-focus-color":null!==(Fo=null!==(Bo=null===(To=null===(No=null==l?void 0:l.colors)||void 0===No?void 0:No.focus)||void 0===To?void 0:To.color)&&void 0!==Bo?Bo:null===(Ao=null===(Lo=null==o?void 0:o.colors)||void 0===Lo?void 0:Lo.focus)||void 0===Ao?void 0:Ao.color)&&void 0!==Fo?Fo:y[r].focusColor,"--folder-focus-border-color":null!==(Mo=null!==(Io=null===(Do=null===(zo=null==l?void 0:l.colors)||void 0===zo?void 0:zo.focus)||void 0===Do?void 0:Do.borderColor)&&void 0!==Io?Io:null===(Ho=null===(Vo=null==o?void 0:o.colors)||void 0===Vo?void 0:Vo.focus)||void 0===Ho?void 0:Ho.borderColor)&&void 0!==Mo?Mo:y[r].focusBorderColor,"--folder-focus-background-color":null!==(Jo=null!==(Zo=null===(Uo=null===(Wo=null==l?void 0:l.colors)||void 0===Wo?void 0:Wo.focus)||void 0===Uo?void 0:Uo.backgroundColor)&&void 0!==Zo?Zo:null===(Go=null===(qo=null==o?void 0:o.colors)||void 0===qo?void 0:qo.focus)||void 0===Go?void 0:Go.backgroundColor)&&void 0!==Jo?Jo:y[r].focusBackgroundColor,"--folder-selected-color":null!==(ee=null!==(Yo=null===(Xo=null===(Ko=null==l?void 0:l.colors)||void 0===Ko?void 0:Ko.selected)||void 0===Xo?void 0:Xo.color)&&void 0!==Yo?Yo:null===(oe=null===(Qo=null==o?void 0:o.colors)||void 0===Qo?void 0:Qo.selected)||void 0===oe?void 0:oe.color)&&void 0!==ee?ee:y[r].selectedColor,"--folder-selected-background-color":null!==(de=null!==(ne=null===(re=null===(le=null==l?void 0:l.colors)||void 0===le?void 0:le.selected)||void 0===re?void 0:re.backgroundColor)&&void 0!==ne?ne:null===(ie=null===(te=null==o?void 0:o.colors)||void 0===te?void 0:te.selected)||void 0===ie?void 0:ie.backgroundColor)&&void 0!==de?de:y[r].selectedBackgroundColor,"--stuck-color":null!==(be=null!==(fe=null!==(ae=null===(ue=null===(ce=null==l?void 0:l.colors)||void 0===ce?void 0:ce.stuck)||void 0===ue?void 0:ue.color)&&void 0!==ae?ae:null===(ve=null===(se=null==l?void 0:l.colors)||void 0===se?void 0:se.default)||void 0===ve?void 0:ve.color)&&void 0!==fe?fe:null===(ge=null===(pe=null==o?void 0:o.colors)||void 0===pe?void 0:pe.default)||void 0===ge?void 0:ge.color)&&void 0!==be?be:y[r].color,"--stuck-background-color":null!==(we=null!==(je=null!==(me=null===(ye=null===(he=null==l?void 0:l.colors)||void 0===he?void 0:he.stuck)||void 0===ye?void 0:ye.backgroundColor)&&void 0!==me?me:null===(xe=null===(ke=null==l?void 0:l.colors)||void 0===ke?void 0:ke.default)||void 0===xe?void 0:xe.backgroundColor)&&void 0!==je?je:null===(Ce=null===(Oe=null==o?void 0:o.colors)||void 0===Oe?void 0:Oe.default)||void 0===Ce?void 0:Ce.backgroundColor)&&void 0!==we?we:y[r].backgroundColor,"--folding-shadow":null!==(Se=null==l?void 0:l.foldingShadow)&&void 0!==Se?Se:y[r].foldingShadow},children:n})};function z(o){const e=[],l=function(o){const e=[...o];return e.sort((o,e)=>{let l=0;const r=Math.min(o.length,e.length);for(;l<r&&o[l]===e[l];)l++;const n=o.slice(l),t=e.slice(l),i=n.includes("/"),d=t.includes("/");return i&&!d?-1:!i&&d?1:o.localeCompare(e)}),e}([...new Set(o)]);for(const o of l){const l=o.split("/");let r=e;l.forEach((o,e)=>{const n=e===l.length-1,t=r.find(e=>e.name===o);if(t)n||(r=t.children);else{const e=n?{name:o,children:null}:{name:o,children:[]};r.push(e),n||(r=e.children)}})}return e}const D=({files:o,onFileSelect:e,folding:l=!0,depthDistance:r=16,paddingBottom:n=16,backgroundColor:i,nodeOptions:c,fileOptions:u,folderOptions:a,scrollContainerRef:s,theme:v="light"})=>{const f=z(o),p=t(null),b={depthDistance:r,nodeOptions:c},h={scrollContainerRef:l?s:void 0,folding:l,folderOptions:a},m={onFileSelect:e,fileOptions:u};return((o,e)=>{d(()=>{const l=null==o?void 0:o.current;if(!l||!e)return;let r;const n=()=>{const o=l.querySelectorAll("[data-stuck]");if(!o.length)return;let e=!1;[...o].reverse().forEach(o=>{const l=o.checkVisibility(),r="true"===o.getAttribute("data-stuck");!e&&l&&r?(e=!0,o.setAttribute("data-fold","true")):l&&o.setAttribute("data-fold","false")})},t=new MutationObserver(o=>{o.some(o=>"attributes"===o.type&&"data-stuck"===o.attributeName&&o.target instanceof HTMLElement&&o.target.hasAttribute("data-folder-node"))&&(clearTimeout(r),r=setTimeout(n,50))});return t.observe(l,{attributes:!0,attributeOldValue:!1,subtree:!0,childList:!1,characterData:!1}),()=>{t.disconnect()}},[o.current,e])})(p,l),g.jsx("div",{ref:p,"data-file-tree":!0,style:Object.assign(Object.assign({},k),{paddingBottom:`${n}px`,backgroundColor:null!=i?i:y[v].backgroundColor}),children:g.jsx(F,{nodeOptions:c,fileOptions:u,folderOptions:a,theme:v,children:g.jsx(_,{config:b,children:g.jsx(R,{config:h,children:g.jsx(B,{config:m,children:f.map((o,e)=>g.jsx(A,{node:o,depth:1,elevation:f.length-e,parentPath:""},o.name))})})})})})};export{w as ArrowIcon,C as FileIcon,D as FileTree};
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/tslib/tslib.es6.js","../node_modules/style-inject/dist/style-inject.es.js","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/NodeText.tsx","../src/constants/file:/D:/Coding/npm/react-file-tree/src/constants/file-tree.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/Icons.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FileTreeConfig.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FolderNodeConfig.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FolderNode.tsx","../src/hooks/file:/D:/Coding/npm/react-file-tree/src/hooks/useFolderStuck.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/Folder.tsx","../src/context/file:/D:/Coding/npm/react-file-tree/src/context/FileNodeConfig.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FileNode.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/TreeContent.tsx","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/VariablesProvider.tsx","../src/lib/file:/D:/Coding/npm/react-file-tree/src/lib/utils.ts","../src/hooks/file:/D:/Coding/npm/react-file-tree/src/hooks/useUpdateFolderShadows.ts","../src/components/file:/D:/Coding/npm/react-file-tree/src/components/FileTree.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import type { NodeTextProps } from \"../types/file-tree\";\r\n\r\nconst NodeText = ({ name, style, ...props }: NodeTextProps) => {\r\n return (\r\n <span\r\n {...props}\r\n data-node-text\r\n style={{\r\n fontSize: \"14px\",\r\n ...(style ?? {}),\r\n flex: 1,\r\n minWidth: 0,\r\n textAlign: \"left\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\"\r\n }}\r\n >\r\n {name}\r\n </span>\r\n );\r\n};\r\n\r\nexport default NodeText;","import type { HTMLAttributes } from \"react\";\r\n\r\nexport const DEFAULT_DEPTH_DISTANCE = 16;\r\nexport const DEFAULT_PADDING_BOTTOM = 16;\r\nexport const DEFAULT_NODE_HEIGHT = 28;\r\nexport const DEFAULT_LEFT_OFFSET = 12;\r\nexport const DEFAULT_RIGHT_OFFSET = 4;\r\nexport const DEFAULT_NODE_GAP = 8;\r\n\r\nexport const DEFAULT_VARIABLES = {\r\n light: {\r\n color: \"#525252\",\r\n backgroundColor: \"#ffffff\",\r\n hoverColor: \"#000000\",\r\n hoverBackgroundColor: \"#f1f1f1\",\r\n focusColor: \"#0a0a0a\",\r\n focusBorderColor: \"#1e40af\",\r\n focusBackgroundColor: \"#dbeafe\",\r\n selectedColor: \"#525252\",\r\n selectedBackgroundColor: \"#e5e5e5\",\r\n foldingShadow: \"0 4px 3px -2px rgb(0 0 0 / 0.12), 0 2px 2px -2px rgb(0 0 0 / 0.12)\"\r\n },\r\n dark: {\r\n color: \"#adadad\",\r\n backgroundColor: \"#161616\",\r\n hoverColor: \"#fafafa\",\r\n hoverBackgroundColor: \"#212121\",\r\n focusColor: \"#f0f0f0\",\r\n focusBorderColor: \"#3b82f6\",\r\n focusBackgroundColor: \"#172554\",\r\n selectedColor: \"#adadad\",\r\n selectedBackgroundColor: \"#2c2c2c\",\r\n foldingShadow: \"0 4px 3px -2px rgb(0 0 0 / 0.9), 0 2px 2px -2px rgb(0 0 0 / 0.9)\"\r\n }\r\n};\r\n\r\nexport const defaultInlineOffset = {\r\n left: DEFAULT_LEFT_OFFSET,\r\n right: DEFAULT_RIGHT_OFFSET\r\n};\r\n\r\nexport const fileTreeStyles: HTMLAttributes<HTMLDivElement>[\"style\"] = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n minHeight: \"100%\",\r\n boxSizing: \"border-box\",\r\n margin: 0,\r\n zIndex: 1\r\n};\r\n\r\nexport const treeNodeStyles: HTMLAttributes<HTMLButtonElement>[\"style\"] = {\r\n width: \"100%\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"start\",\r\n whiteSpace: \"nowrap\",\r\n borderWidth: \"1px\",\r\n borderStyle: \"solid\",\r\n cursor: \"pointer\"\r\n};\r\n\r\nexport const folderContainerStyles: HTMLAttributes<HTMLDivElement>[\"style\"] = {\r\n position: \"relative\",\r\n zIndex: 1\r\n};\r\n\r\nexport const folderNodeStyles: HTMLAttributes<HTMLButtonElement>[\"style\"] = {\r\n position: \"sticky\",\r\n zIndex: 10\r\n};","import type { IconProps } from \"../types/icons\";\r\n\r\nexport const FileIcon = ({ style, ...props }: IconProps) => {\r\n return (\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n style={{\r\n width: \"16px\",\r\n height: \"16px\",\r\n flexShrink: 0,\r\n ...style\r\n }}\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M13.71 4.29L10.71 1.29L10 1H4L3 2V14L4 15H13L14 14V5L13.71 4.29ZM13 14H4V2H9V6H13V14ZM10 5V2L13 5H10Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport const ArrowIcon = ({ style, ...props }: IconProps) => {\r\n return (\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 16 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n style={{\r\n width: \"16px\",\r\n height: \"16px\",\r\n flexShrink: 0,\r\n ...style\r\n }}\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M10.0719 8.02397L5.7146 3.66666L6.33332 3.04794L11 7.71461V8.33333L6.33332 13L5.7146 12.3813L10.0719 8.02397Z\"\r\n fill=\"currentColor\"\r\n />\r\n </svg>\r\n );\r\n};","import { createContext, useContext, useState } from \"react\";\r\n\r\nimport type {\r\n FileTreeConfig,\r\n FileTreeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FileTreeConfigContext = createContext<FileTreeConfig | null>(null);\r\n\r\nexport const FileTreeConfigProvider = ({\r\n config,\r\n children\r\n}: FileTreeConfigProviderProps) => {\r\n const [selectedPath, setSelectedPath] = useState<string | null>(null);\r\n\r\n const value = { ...config, selectedPath, setSelectedPath };\r\n\r\n return (\r\n <FileTreeConfigContext.Provider value={value}>\r\n {children}\r\n </FileTreeConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFileTreeConfig = () => {\r\n const value = useContext(FileTreeConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFileTreeConfig' must be used within a FileTreeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import { createContext, useContext } from \"react\";\r\n\r\nimport type {\r\n FolderNodeConfig,\r\n FolderNodeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FolderItemConfigContext = createContext<FolderNodeConfig | null>(null);\r\n\r\nexport const FolderNodeConfigProvider = ({\r\n config,\r\n children\r\n}: FolderNodeConfigProviderProps) => {\r\n return (\r\n <FolderItemConfigContext.Provider value={config}>\r\n {children}\r\n </FolderItemConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFolderNodeConfig = () => {\r\n const value = useContext(FolderItemConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFolderNodeConfig' must be used within a FolderNodeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import { useRef } from \"react\";\r\n\r\nimport NodeText from \"./NodeText\";\r\nimport {\r\n DEFAULT_LEFT_OFFSET,\r\n DEFAULT_NODE_GAP,\r\n DEFAULT_NODE_HEIGHT,\r\n DEFAULT_RIGHT_OFFSET,\r\n defaultInlineOffset,\r\n folderNodeStyles,\r\n treeNodeStyles\r\n} from \"../constants/file-tree\";\r\nimport { ArrowIcon } from \"./Icons\";\r\nimport { useFolderStuck } from \"../hooks/useFolderStuck\";\r\nimport type { FolderNodeProps } from \"../types/file-tree\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport { useFolderNodeConfig } from \"../context/FolderNodeConfig\";\r\n\r\nconst FolderNode = (\r\n { node, depth, open, selected, currentPath, onClick }: FolderNodeProps\r\n) => {\r\n const ref = useRef<HTMLButtonElement | null>(null);\r\n const { depthDistance, nodeOptions } = useFileTreeConfig();\r\n const { folderOptions, folding, scrollContainerRef } = useFolderNodeConfig();\r\n const { inlineOffset = defaultInlineOffset } = nodeOptions ?? {};\r\n\r\n const customProps = { path: currentPath, name: node.name, open };\r\n const height = folderOptions?.height ?? nodeOptions?.height ?? DEFAULT_NODE_HEIGHT;\r\n const top = height * (depth - 1);\r\n const defaultDepthOffset = depthDistance * (depth - 1);\r\n const leftOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.left ?? DEFAULT_LEFT_OFFSET);\r\n const rightOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.right ?? DEFAULT_RIGHT_OFFSET);\r\n const columnGap = folderOptions?.gap ?? nodeOptions?.gap ?? DEFAULT_NODE_GAP;\r\n const depthOffsetProps = { depth, depthDistance, gap: columnGap };\r\n const depthOffset =\r\n folderOptions?.depthOffset?.(depthOffsetProps) ??\r\n nodeOptions?.depthOffset?.(depthOffsetProps) ??\r\n defaultDepthOffset;\r\n const isStuck = useFolderStuck(scrollContainerRef, ref, top, open);\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-tree-node\r\n data-folder-node\r\n data-open={open}\r\n data-depth={depth}\r\n data-selected={selected}\r\n data-stuck={isStuck}\r\n data-fold=\"false\"\r\n style={{\r\n ...treeNodeStyles,\r\n ...((scrollContainerRef && folding) ? { ...folderNodeStyles, top: `${top}px` } : {}),\r\n height: `${height}px`,\r\n paddingLeft: `${depthOffset + leftOffset}px`,\r\n paddingRight: `${rightOffset}px`,\r\n columnGap: `${columnGap}px`\r\n }}\r\n onClick={onClick}\r\n >\r\n {typeof folderOptions?.icon === \"function\" ? (\r\n <folderOptions.icon {...customProps} />\r\n ) : (\r\n <ArrowIcon\r\n {...folderOptions?.icon}\r\n style={{\r\n ...(folderOptions?.icon?.style ?? {}),\r\n rotate: open ? \"90deg\" : undefined\r\n }}\r\n />\r\n )}\r\n {typeof folderOptions?.text === \"function\" ? (\r\n <folderOptions.text {...customProps} />\r\n ) : (\r\n <NodeText name={node.name} {...folderOptions?.text} />\r\n )}\r\n </button>\r\n );\r\n};\r\n\r\nexport default FolderNode;","import { type RefObject, useEffect, useState } from \"react\";\r\n\r\nexport const useFolderStuck = (\r\n scrollContainerRef: RefObject<HTMLElement | null> | undefined,\r\n folderNodeRef: RefObject<HTMLButtonElement | null>,\r\n topOffset: number,\r\n isFolderOpen: boolean\r\n) => {\r\n const [isStuck, setIsStuck] = useState(false);\r\n\r\n useEffect(() => {\r\n const scrollContainer = scrollContainerRef?.current;\r\n const folderNode = folderNodeRef.current;\r\n if (!scrollContainer || !folderNode) return;\r\n\r\n let ticking = false;\r\n\r\n const handleScroll = () => {\r\n if (!ticking) {\r\n window.requestAnimationFrame(() => {\r\n const containerRect = scrollContainer.getBoundingClientRect();\r\n const folderNodeRect = folderNode.getBoundingClientRect();\r\n\r\n const containerStyle = window.getComputedStyle(scrollContainer);\r\n const containerBorderTop = parseFloat(containerStyle.borderTopWidth) || 0;\r\n const containerPaddingTop = parseFloat(containerStyle.paddingTop) || 0;\r\n const offset = folderNodeRect.top - containerRect.top - containerBorderTop - containerPaddingTop;\r\n\r\n const isStuck =\r\n offset <= topOffset &&\r\n offset + folderNodeRect.height > topOffset &&\r\n scrollContainer.scrollTop > 0 &&\r\n isFolderOpen;\r\n setIsStuck(isStuck);\r\n\r\n ticking = false;\r\n });\r\n\r\n ticking = true;\r\n }\r\n };\r\n\r\n handleScroll();\r\n scrollContainer.addEventListener(\"scroll\", handleScroll);\r\n\r\n return () => {\r\n scrollContainer.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [\r\n scrollContainerRef?.current,\r\n folderNodeRef.current,\r\n topOffset,\r\n isFolderOpen,\r\n setIsStuck\r\n ]);\r\n\r\n return isStuck;\r\n};","import { Activity, type MouseEvent, useRef, useState } from \"react\";\r\n\r\nimport FolderNode from \"./FolderNode\";\r\nimport TreeContent from \"./TreeContent\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport { folderContainerStyles } from \"../constants/file-tree\";\r\nimport type { FileNodeOrFolderProps } from \"../types/file-tree\";\r\n\r\nconst Folder = (\r\n { node, depth, elevation, currentPath }: FileNodeOrFolderProps\r\n) => {\r\n const folderContentRef = useRef<HTMLDivElement>(null);\r\n const { selectedPath, setSelectedPath } = useFileTreeConfig();\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const isSelected = currentPath === selectedPath;\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>) => {\r\n e.stopPropagation();\r\n const folderContent = folderContentRef.current;\r\n const foldedFolderNode = folderContent?.querySelector(\"[data-folder-node][data-fold=true]\");\r\n if (foldedFolderNode) {\r\n foldedFolderNode.setAttribute(\"data-fold\", \"false\");\r\n }\r\n setIsOpen(!isOpen);\r\n setSelectedPath(currentPath);\r\n };\r\n\r\n return (\r\n <div\r\n data-folder\r\n style={{ position: \"relative\", zIndex: elevation }}\r\n >\r\n <FolderNode\r\n node={node}\r\n depth={depth}\r\n open={isOpen}\r\n selected={isSelected}\r\n currentPath={currentPath}\r\n onClick={handleClick}\r\n />\r\n <Activity mode={(isOpen && node.children) ? \"visible\" : \"hidden\"}>\r\n <div\r\n ref={folderContentRef}\r\n data-folder-content\r\n style={folderContainerStyles}\r\n >\r\n {node.children?.map((subNode, index) => (\r\n <TreeContent\r\n key={index}\r\n node={subNode}\r\n depth={depth + 1}\r\n elevation={node.children!.length - index}\r\n parentPath={`${currentPath}/`}\r\n />\r\n ))}\r\n </div>\r\n </Activity>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Folder;","import { createContext, useContext } from \"react\";\r\n\r\nimport type {\r\n FileNodeConfig,\r\n FileNodeConfigProviderProps\r\n} from \"../types/file-tree\";\r\n\r\nconst FileItemConfigContext = createContext<FileNodeConfig | null>(null);\r\n\r\nexport const FileNodeConfigProvider = ({\r\n config,\r\n children\r\n}: FileNodeConfigProviderProps) => {\r\n return (\r\n <FileItemConfigContext.Provider value={config}>\r\n {children}\r\n </FileItemConfigContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFileNodeConfig = () => {\r\n const value = useContext(FileItemConfigContext);\r\n if (!value) {\r\n throw new Error(\"'useFileNodeConfig' must be used within a FileNodeConfigProvider\");\r\n }\r\n\r\n return value;\r\n};","import type { MouseEvent } from \"react\";\r\n\r\nimport NodeText from \"./NodeText\";\r\nimport {\r\n DEFAULT_LEFT_OFFSET,\r\n DEFAULT_NODE_GAP,\r\n DEFAULT_NODE_HEIGHT,\r\n DEFAULT_RIGHT_OFFSET,\r\n defaultInlineOffset,\r\n treeNodeStyles\r\n} from \"../constants/file-tree\";\r\nimport { FileIcon } from \"./Icons\";\r\nimport { useFileNodeConfig } from \"../context/FileNodeConfig\";\r\nimport { useFileTreeConfig } from \"../context/FileTreeConfig\";\r\nimport type { FileNodeOrFolderProps } from \"../types/file-tree\";\r\n\r\nconst FileNode = (\r\n { node, depth, elevation, currentPath }: FileNodeOrFolderProps\r\n) => {\r\n const { onFileSelect, fileOptions } = useFileNodeConfig();\r\n const { selectedPath, depthDistance, nodeOptions, setSelectedPath } = useFileTreeConfig();\r\n const { inlineOffset = defaultInlineOffset } = nodeOptions ?? {};\r\n\r\n const isSelected = currentPath === selectedPath;\r\n const height = fileOptions?.height ?? nodeOptions?.height ?? DEFAULT_NODE_HEIGHT;\r\n const customProps = { path: currentPath, name: node.name, selected: isSelected };\r\n const defaultDepthOffset = depthDistance * (depth - 1);\r\n const leftOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.left ?? DEFAULT_LEFT_OFFSET);\r\n const rightOffset = typeof inlineOffset === \"number\"\r\n ? inlineOffset\r\n : (inlineOffset.right ?? DEFAULT_RIGHT_OFFSET);\r\n const columnGap = fileOptions?.gap ?? nodeOptions?.gap ?? DEFAULT_NODE_GAP;\r\n const depthOffsetProps = { depth, depthDistance, gap: columnGap };\r\n const depthOffset =\r\n fileOptions?.depthOffset?.(depthOffsetProps) ??\r\n nodeOptions?.depthOffset?.(depthOffsetProps) ??\r\n defaultDepthOffset;\r\n\r\n const handleClick = (e: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>) => {\r\n e.stopPropagation();\r\n setSelectedPath(currentPath);\r\n onFileSelect?.({ path: currentPath, name: node.name });\r\n };\r\n\r\n return (\r\n <button\r\n data-tree-node\r\n data-file-node\r\n data-depth={depth}\r\n data-selected={isSelected}\r\n style={{\r\n ...treeNodeStyles,\r\n height: `${height}px`,\r\n position: \"relative\",\r\n paddingLeft: `${depthOffset + leftOffset}px`,\r\n paddingRight: `${rightOffset}px`,\r\n columnGap: `${columnGap}px`,\r\n zIndex: elevation\r\n }}\r\n onClick={handleClick}\r\n >\r\n {typeof fileOptions?.icon === \"function\" ? (\r\n <fileOptions.icon {...customProps} />\r\n ) : (\r\n <FileIcon {...fileOptions?.icon} />\r\n )}\r\n {typeof fileOptions?.text === \"function\" ? (\r\n <fileOptions.text {...customProps} />\r\n ) : (\r\n <NodeText name={node.name} {...fileOptions?.text} />\r\n )}\r\n </button>\r\n );\r\n};\r\n\r\nexport default FileNode;","import Folder from \"./Folder\";\r\nimport FileNode from \"./FileNode\";\r\nimport type { TreeContentProps } from \"../types/file-tree\";\r\n\r\nconst TreeContent = (\r\n { node, parentPath, ...restProps }: TreeContentProps\r\n) => {\r\n const currentPath = `${parentPath}${node.name}`;\r\n const props = { node, ...restProps, currentPath };\r\n\r\n if (!node.children) {\r\n return <FileNode {...props} />;\r\n }\r\n\r\n return <Folder {...props} />;\r\n};\r\n\r\nexport default TreeContent;","import type { CSSProperties } from \"react\";\r\n\r\nimport { DEFAULT_VARIABLES } from \"../constants/file-tree\";\r\nimport type { VariablesProviderProps } from \"../types/file-tree\";\r\n\r\nconst VariablesProvider = ({\r\n nodeOptions,\r\n fileOptions,\r\n folderOptions,\r\n theme,\r\n children\r\n}: VariablesProviderProps) => {\r\n return (\r\n <div\r\n data-variables-provider\r\n style={{\r\n \"--file-color\": fileOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--file-background-color\": fileOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--file-hover-color\": fileOptions?.colors?.hover?.color ?? nodeOptions?.colors?.hover?.color ?? DEFAULT_VARIABLES[theme].hoverColor,\r\n \"--file-hover-background-color\": fileOptions?.colors?.hover?.backgroundColor ?? nodeOptions?.colors?.hover?.backgroundColor ?? DEFAULT_VARIABLES[theme].hoverBackgroundColor,\r\n \"--file-focus-color\": fileOptions?.colors?.focus?.color ?? nodeOptions?.colors?.focus?.color ?? DEFAULT_VARIABLES[theme].focusColor,\r\n \"--file-focus-border-color\": fileOptions?.colors?.focus?.borderColor ?? nodeOptions?.colors?.focus?.borderColor ?? DEFAULT_VARIABLES[theme].focusBorderColor,\r\n \"--file-focus-background-color\": fileOptions?.colors?.focus?.backgroundColor ?? nodeOptions?.colors?.focus?.backgroundColor ?? DEFAULT_VARIABLES[theme].focusBackgroundColor,\r\n \"--file-selected-color\": fileOptions?.colors?.selected?.color ?? nodeOptions?.colors?.selected?.color ?? DEFAULT_VARIABLES[theme].selectedColor,\r\n \"--file-selected-background-color\": fileOptions?.colors?.selected?.backgroundColor ?? nodeOptions?.colors?.selected?.backgroundColor ?? DEFAULT_VARIABLES[theme].selectedBackgroundColor,\r\n \"--folder-color\": folderOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--folder-background-color\": folderOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--folder-hover-color\": folderOptions?.colors?.hover?.color ?? nodeOptions?.colors?.hover?.color ?? DEFAULT_VARIABLES[theme].hoverColor,\r\n \"--folder-hover-background-color\": folderOptions?.colors?.hover?.backgroundColor ?? nodeOptions?.colors?.hover?.backgroundColor ?? DEFAULT_VARIABLES[theme].hoverBackgroundColor,\r\n \"--folder-focus-color\": folderOptions?.colors?.focus?.color ?? nodeOptions?.colors?.focus?.color ?? DEFAULT_VARIABLES[theme].focusColor,\r\n \"--folder-focus-border-color\": folderOptions?.colors?.focus?.borderColor ?? nodeOptions?.colors?.focus?.borderColor ?? DEFAULT_VARIABLES[theme].focusBorderColor,\r\n \"--folder-focus-background-color\": folderOptions?.colors?.focus?.backgroundColor ?? nodeOptions?.colors?.focus?.backgroundColor ?? DEFAULT_VARIABLES[theme].focusBackgroundColor,\r\n \"--folder-selected-color\": folderOptions?.colors?.selected?.color ?? nodeOptions?.colors?.selected?.color ?? DEFAULT_VARIABLES[theme].selectedColor,\r\n \"--folder-selected-background-color\": folderOptions?.colors?.selected?.backgroundColor ?? nodeOptions?.colors?.selected?.backgroundColor ?? DEFAULT_VARIABLES[theme].selectedBackgroundColor,\r\n \"--stuck-color\": folderOptions?.colors?.stuck?.color ?? folderOptions?.colors?.default?.color ?? nodeOptions?.colors?.default?.color ?? DEFAULT_VARIABLES[theme].color,\r\n \"--stuck-background-color\": folderOptions?.colors?.stuck?.backgroundColor ?? folderOptions?.colors?.default?.backgroundColor ?? nodeOptions?.colors?.default?.backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor,\r\n \"--folding-shadow\": folderOptions?.foldingShadow ?? DEFAULT_VARIABLES[theme].foldingShadow\r\n } as CSSProperties}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default VariablesProvider;","import type { FileTree } from \"../types/utils\";\r\n\r\nfunction sortFilePaths(paths: string[]) {\r\n const sortedPaths = [...paths];\r\n\r\n sortedPaths.sort((a, b) => {\r\n let i = 0;\r\n const minLength = Math.min(a.length, b.length);\r\n\r\n while (i < minLength && a[i] === b[i]) {\r\n i++;\r\n }\r\n\r\n const aRemainder = a.slice(i);\r\n const bRemainder = b.slice(i);\r\n\r\n const aIsInsideFolder = aRemainder.includes(\"/\");\r\n const bIsInsideFolder = bRemainder.includes(\"/\");\r\n\r\n if (aIsInsideFolder && !bIsInsideFolder) {\r\n return -1;\r\n }\r\n\r\n if (!aIsInsideFolder && bIsInsideFolder) {\r\n return 1;\r\n }\r\n\r\n return a.localeCompare(b);\r\n });\r\n\r\n return sortedPaths;\r\n}\r\n\r\nexport function createFileTree(filePaths: string[]) {\r\n const root: FileTree[] = [];\r\n const uniqueFilePaths = new Set(filePaths);\r\n const sortedFilePaths = sortFilePaths([...uniqueFilePaths]);\r\n\r\n for (const filePath of sortedFilePaths) {\r\n const pathParts = filePath.split(\"/\");\r\n let currentLevel = root;\r\n\r\n pathParts.forEach((pathPart, index) => {\r\n const isFile = index === pathParts.length - 1;\r\n const existingNode = currentLevel.find((node) => node.name === pathPart);\r\n\r\n if (existingNode) {\r\n if (!isFile) {\r\n currentLevel = existingNode.children!;\r\n }\r\n } else {\r\n const newNode: FileTree = isFile\r\n ? { name: pathPart, children: null }\r\n : { name: pathPart, children: [] };\r\n\r\n currentLevel.push(newNode);\r\n\r\n if (!isFile) {\r\n currentLevel = newNode.children!;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return root;\r\n}","import { type RefObject, useLayoutEffect } from \"react\";\r\n\r\nexport const useUpdateFolderShadows = (\r\n fileTreeRef: RefObject<HTMLDivElement | null>,\r\n folding?: boolean\r\n) => {\r\n useLayoutEffect(() => {\r\n const fileTree = fileTreeRef?.current;\r\n if (!fileTree || !folding) return;\r\n\r\n let timeoutId: number;\r\n\r\n const updateFolderShadows = () => {\r\n const folderNodes = fileTree.querySelectorAll(\"[data-stuck]\");\r\n if (!folderNodes.length) return;\r\n\r\n let hasFoundLastVisibleStuckNode = false;\r\n const reversedFolderNodes = [...folderNodes].reverse();\r\n\r\n reversedFolderNodes.forEach((node) => {\r\n const isVisible = node.checkVisibility();\r\n const isStuck = node.getAttribute(\"data-stuck\") === \"true\";\r\n const isVisibleStuckNode = isVisible && isStuck;\r\n\r\n if (!hasFoundLastVisibleStuckNode && isVisibleStuckNode) {\r\n hasFoundLastVisibleStuckNode = true;\r\n node.setAttribute(\"data-fold\", \"true\");\r\n } else if (isVisible) {\r\n node.setAttribute(\"data-fold\", \"false\");\r\n }\r\n });\r\n };\r\n\r\n const observer = new MutationObserver((mutationsList) => {\r\n const hasFolderStuckAttributeChange = mutationsList.some(\r\n (mutation) =>\r\n mutation.type === \"attributes\" &&\r\n mutation.attributeName === \"data-stuck\" &&\r\n mutation.target instanceof HTMLElement &&\r\n mutation.target.hasAttribute(\"data-folder-node\")\r\n );\r\n if (hasFolderStuckAttributeChange) {\r\n clearTimeout(timeoutId);\r\n timeoutId = setTimeout(updateFolderShadows, 50);\r\n }\r\n });\r\n\r\n observer.observe(fileTree, {\r\n attributes: true,\r\n attributeOldValue: false,\r\n subtree: true,\r\n childList: false,\r\n characterData: false\r\n });\r\n\r\n return () => {\r\n observer.disconnect();\r\n }\r\n }, [fileTreeRef.current, folding]);\r\n};","import { useRef } from \"react\";\r\n\r\nimport \"../styles/file-tree.css\";\r\nimport TreeContent from \"./TreeContent\";\r\nimport VariablesProvider from \"./VariablesProvider\";\r\nimport {\r\n DEFAULT_DEPTH_DISTANCE,\r\n DEFAULT_PADDING_BOTTOM,\r\n DEFAULT_VARIABLES,\r\n fileTreeStyles\r\n} from \"../constants/file-tree\";\r\nimport { createFileTree } from \"../lib/utils\";\r\nimport type { FileTreeProps } from \"../types/file-tree\";\r\nimport { FileNodeConfigProvider } from \"../context/FileNodeConfig\";\r\nimport { FileTreeConfigProvider } from \"../context/FileTreeConfig\";\r\nimport { FolderNodeConfigProvider } from \"../context/FolderNodeConfig\";\r\nimport { useUpdateFolderShadows } from \"../hooks/useUpdateFolderShadows\";\r\n\r\n/**\r\n * This component renders a highly customizable, accessible, and performant \r\n * tree structure for file system navigation.\r\n */\r\n// @see {@link https://my-docs-site.com/components/file-tree|Full Documentation}\r\nconst FileTree = ({\r\n files,\r\n onFileSelect,\r\n folding = true,\r\n depthDistance = DEFAULT_DEPTH_DISTANCE,\r\n paddingBottom = DEFAULT_PADDING_BOTTOM,\r\n backgroundColor,\r\n nodeOptions,\r\n fileOptions,\r\n folderOptions,\r\n scrollContainerRef,\r\n theme = \"light\"\r\n}: FileTreeProps) => {\r\n const fileTree = createFileTree(files);\r\n const fileTreeRef = useRef<HTMLDivElement | null>(null);\r\n const finalizedScrollContainerRef = folding ? scrollContainerRef : undefined;\r\n const fileTreeConfig = { depthDistance, nodeOptions };\r\n const folderNodeConfig = { scrollContainerRef: finalizedScrollContainerRef, folding, folderOptions };\r\n const fileNodeConfig = { onFileSelect, fileOptions };\r\n\r\n useUpdateFolderShadows(fileTreeRef, folding);\r\n\r\n return (\r\n <div\r\n ref={fileTreeRef}\r\n data-file-tree\r\n style={{\r\n ...fileTreeStyles,\r\n paddingBottom: `${paddingBottom}px`,\r\n backgroundColor: backgroundColor ?? DEFAULT_VARIABLES[theme].backgroundColor\r\n }}\r\n >\r\n <VariablesProvider\r\n nodeOptions={nodeOptions}\r\n fileOptions={fileOptions}\r\n folderOptions={folderOptions}\r\n theme={theme}\r\n >\r\n <FileTreeConfigProvider config={fileTreeConfig}>\r\n <FolderNodeConfigProvider config={folderNodeConfig}>\r\n <FileNodeConfigProvider config={fileNodeConfig}>\r\n {fileTree.map((node, index) => (\r\n <TreeContent\r\n key={node.name}\r\n node={node}\r\n depth={1}\r\n elevation={fileTree.length - index}\r\n parentPath=\"\"\r\n />\r\n ))}\r\n </FileNodeConfigProvider>\r\n </FolderNodeConfigProvider>\r\n </FileTreeConfigProvider>\r\n </VariablesProvider>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileTree;"],"names":["process","env","NODE_ENV","getComponentNameFromType","type","$$typeof","REACT_CLIENT_REFERENCE","displayName","name","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","console","error","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","call","getTaskName","UnknownOwner","Error","elementRefGetterWithDeprecationWarning","componentName","this","didWarnAboutElementRef","props","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","debugStack","debugTask","dispatcher","children","isArrayImpl","length","validateChildKeys","Object","freeze","hasOwnProperty","keys","filter","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","get","isReactWarning","key","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","refProp","REACT_ELEMENT_TYPE","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","isValidElement","validated","status","object","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","prototype","Array","isArray","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","exports","jsxProd","reactJsxRuntime_production","require$$1","__rest","s","t","p","indexOf","getOwnPropertySymbols","i","propertyIsEnumerable","css","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","SuppressedError","NodeText","_a","_jsx","assign","fontSize","flex","minWidth","textAlign","overflow","textOverflow","whiteSpace","DEFAULT_VARIABLES","light","color","backgroundColor","hoverColor","hoverBackgroundColor","focusColor","focusBorderColor","focusBackgroundColor","selectedColor","selectedBackgroundColor","foldingShadow","dark","defaultInlineOffset","left","right","fileTreeStyles","position","width","minHeight","boxSizing","margin","zIndex","treeNodeStyles","display","alignItems","justifyContent","borderWidth","borderStyle","cursor","folderContainerStyles","folderNodeStyles","FileIcon","height","viewBox","fill","xmlns","flexShrink","fillRule","clipRule","d","ArrowIcon","FileTreeConfigContext","createContext","FileTreeConfigProvider","selectedPath","setSelectedPath","useState","Provider","useFileTreeConfig","useContext","FolderItemConfigContext","FolderNodeConfigProvider","FolderNode","depth","open","selected","currentPath","onClick","useRef","depthDistance","nodeOptions","folderOptions","folding","scrollContainerRef","useFolderNodeConfig","inlineOffset","customProps","path","_b","top","defaultDepthOffset","leftOffset","_c","rightOffset","_d","columnGap","_f","_e","gap","depthOffsetProps","depthOffset","_k","_h","_g","_j","isStuck","folderNodeRef","topOffset","isFolderOpen","setIsStuck","useEffect","scrollContainer","current","folderNode","ticking","handleScroll","window","requestAnimationFrame","containerRect","getBoundingClientRect","folderNodeRect","containerStyle","getComputedStyle","containerBorderTop","parseFloat","borderTopWidth","containerPaddingTop","paddingTop","offset","scrollTop","addEventListener","removeEventListener","useFolderStuck","_jsxs","paddingLeft","paddingRight","icon","_m","_l","rotate","undefined","text","Folder","elevation","folderContentRef","isOpen","setIsOpen","isSelected","stopPropagation","folderContent","foldedFolderNode","querySelector","setAttribute","Activity","mode","map","subNode","index","TreeContent","parentPath","FileItemConfigContext","FileNodeConfigProvider","FileNode","onFileSelect","fileOptions","useFileNodeConfig","restProps","VariablesProvider","theme","colors","default","_t","_q","_p","_o","hover","_s","_r","_z","_w","_v","_u","_y","_x","_5","_2","_1","_0","focus","_4","_3","_11","_8","_7","_6","borderColor","_10","_9","_17","_14","_13","_12","_16","_15","_23","_20","_19","_18","_22","_21","_29","_26","_25","_24","_28","_27","_35","_32","_31","_30","_34","_33","_41","_38","_37","_36","_40","_39","_47","_44","_43","_42","_46","_45","_53","_50","_49","_48","_52","_51","_59","_56","_55","_54","_58","_57","_65","_62","_61","_60","_64","_63","_71","_68","_67","_66","_70","_69","_77","_74","_73","_72","_76","_75","_83","_80","_79","_78","_82","_81","_89","_86","_84","stuck","_85","_87","_88","_90","_91","_92","_98","_95","_93","_94","_96","_97","_99","_100","_101","_102","createFileTree","filePaths","root","sortedFilePaths","paths","sortedPaths","sort","a","b","minLength","Math","min","aRemainder","slice","bRemainder","aIsInsideFolder","includes","bIsInsideFolder","localeCompare","sortFilePaths","Set","filePath","pathParts","split","currentLevel","forEach","pathPart","isFile","existingNode","find","newNode","push","FileTree","files","paddingBottom","fileTree","fileTreeRef","fileTreeConfig","folderNodeConfig","fileNodeConfig","useLayoutEffect","timeoutId","updateFolderShadows","folderNodes","querySelectorAll","hasFoundLastVisibleStuckNode","reverse","isVisible","checkVisibility","getAttribute","observer","MutationObserver","mutationsList","some","mutation","attributeName","target","HTMLElement","hasAttribute","clearTimeout","setTimeout","observe","attributes","attributeOldValue","subtree","childList","characterData","disconnect","useUpdateFolderShadows"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "sticky-file-tree",
3
+ "version": "0.0.1",
4
+ "description": "A customizable file tree component for React apps.",
5
+ "homepage": "https://github.com/bhuvanpddahal/react-file-tree#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/bhuvanpddahal/react-file-tree/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/bhuvanpddahal/react-file-tree.git"
12
+ },
13
+ "license": "ISC",
14
+ "author": "Bhuvan Dahal",
15
+ "type": "module",
16
+ "main": "dist/index.js",
17
+ "module": "dist/index.mjs",
18
+ "types": "dist/index.d.ts",
19
+ "scripts": {
20
+ "rollup": "rollup -c --bundleConfigAsCjs",
21
+ "test": "echo \"Error: no test specified\" && exit 1"
22
+ },
23
+ "devDependencies": {
24
+ "@rollup/plugin-commonjs": "^29.0.0",
25
+ "@rollup/plugin-node-resolve": "^16.0.3",
26
+ "@rollup/plugin-terser": "^0.4.4",
27
+ "@rollup/plugin-typescript": "^12.3.0",
28
+ "@types/react": "^19.2.6",
29
+ "react": "^19.2.0",
30
+ "rollup": "^4.53.3",
31
+ "rollup-plugin-dts": "^6.3.0",
32
+ "rollup-plugin-peer-deps-external": "^2.2.4",
33
+ "rollup-plugin-postcss": "^4.0.2",
34
+ "tslib": "^2.8.1",
35
+ "typescript": "^5.9.3"
36
+ }
37
+ }