sticky-file-tree 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +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]}
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/sticky-file-tree/src/components/NodeText.tsx","../src/constants/file:/D:/Coding/npm/sticky-file-tree/src/constants/file-tree.ts","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/Icons.tsx","../src/context/file:/D:/Coding/npm/sticky-file-tree/src/context/FileTreeConfig.tsx","../src/context/file:/D:/Coding/npm/sticky-file-tree/src/context/FolderNodeConfig.tsx","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/FolderNode.tsx","../src/hooks/file:/D:/Coding/npm/sticky-file-tree/src/hooks/useFolderStuck.ts","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/Folder.tsx","../src/context/file:/D:/Coding/npm/sticky-file-tree/src/context/FileNodeConfig.tsx","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/FileNode.tsx","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/TreeContent.tsx","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/VariablesProvider.tsx","../src/lib/file:/D:/Coding/npm/sticky-file-tree/src/lib/utils.ts","../src/components/file:/D:/Coding/npm/sticky-file-tree/src/components/FileTree.tsx","../src/hooks/file:/D:/Coding/npm/sticky-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: 14,\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 fontWeight: 400,\r\n whiteSpace: \"nowrap\",\r\n borderWidth: \"1px\",\r\n borderStyle: \"solid\",\r\n borderRadius: 0,\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: 16,\r\n height: 16,\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: 16,\r\n height: 16,\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 } : {}),\r\n height,\r\n paddingLeft: depthOffset + leftOffset,\r\n paddingRight: rightOffset,\r\n columnGap\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,\r\n position: \"relative\",\r\n paddingLeft: depthOffset + leftOffset,\r\n paddingRight: rightOffset,\r\n columnGap,\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 customizable tree structure for file system navigation.\r\n * @see {@link https://www.npmjs.com/package/sticky-file-tree|Full Documentation}\r\n */\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","fontWeight","borderWidth","borderStyle","borderRadius","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]}