@geist-ui/react
Version:
Modern and minimalist React UI library.
976 lines (850 loc) • 64 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var styledJsx_cjs = require('../styled-jsx.cjs.js');
var React = require('react');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly && (symbols = symbols.filter(function (sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})), keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
_defineProperty(target, key, source[key]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
function _typeof(obj) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
}, _typeof(obj);
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = _objectWithoutPropertiesLoose(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _createForOfIteratorHelper(o, allowArrayLike) {
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
if (!it) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
var F = function () {};
return {
s: F,
n: function () {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
},
e: function (e) {
throw e;
},
f: F
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var normalCompletion = true,
didErr = false,
err;
return {
s: function () {
it = it.call(o);
},
n: function () {
var step = it.next();
normalCompletion = step.done;
return step;
},
e: function (e) {
didErr = true;
err = e;
},
f: function () {
try {
if (!normalCompletion && it.return != null) it.return();
} finally {
if (didErr) throw err;
}
}
};
}
var defaultFont = {
sans: '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
mono: 'Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace'
};
var defaultBreakpoints = {
xs: {
min: '0',
max: '650px'
},
sm: {
min: '650px',
max: '900px'
},
md: {
min: '900px',
max: '1280px'
},
lg: {
min: '1280px',
max: '1920px'
},
xl: {
min: '1920px',
max: '10000px'
}
};
var defaultLayout = {
gap: '16pt',
gapNegative: '-16pt',
gapHalf: '8pt',
gapHalfNegative: '-8pt',
gapQuarter: '4pt',
gapQuarterNegative: '-4pt',
pageMargin: '16pt',
pageWidth: '750pt',
pageWidthWithMargin: '782pt',
breakpointMobile: defaultBreakpoints.xs.max,
breakpointTablet: defaultBreakpoints.sm.max,
radius: '5px',
unit: '16px'
};
var palette$1 = {
accents_1: '#fafafa',
accents_2: '#eaeaea',
accents_3: '#999',
accents_4: '#888',
accents_5: '#666',
accents_6: '#444',
accents_7: '#333',
accents_8: '#111',
background: '#fff',
foreground: '#000',
selection: '#79ffe1',
secondary: '#666',
code: '#f81ce5',
border: '#eaeaea',
error: '#e00',
errorLight: '#ff1a1a',
errorLighter: '#f7d4d6',
errorDark: '#c50000',
success: '#0070f3',
successLight: '#3291ff',
successLighter: '#d3e5ff',
successDark: '#0761d1',
warning: '#f5a623',
warningLight: '#f7b955',
warningLighter: '#ffefcf',
warningDark: '#ab570a',
cyan: '#50e3c2',
cyanLighter: '#aaffec',
cyanLight: '#79ffe1',
cyanDark: '#29bc9b',
violet: '#7928ca',
violetLighter: '#e3d7fc',
violetLight: '#8a63d2',
violetDark: '#4c2889',
purple: '#f81ce5',
alert: '#ff0080',
magenta: '#eb367f',
link: '#0070f3'
};
var expressiveness$1 = {
linkStyle: 'none',
linkHoverStyle: 'none',
dropdownBoxShadow: '0 4px 4px 0 rgba(0, 0, 0, 0.02)',
scrollerStart: 'rgba(255, 255, 255, 1)',
scrollerEnd: 'rgba(255, 255, 255, 0)',
shadowSmall: '0 5px 10px rgba(0, 0, 0, 0.12)',
shadowMedium: '0 8px 30px rgba(0, 0, 0, 0.12)',
shadowLarge: '0 30px 60px rgba(0, 0, 0, 0.12)',
portalOpacity: 0.25
};
var font$1 = defaultFont;
var breakpoints$1 = defaultBreakpoints;
var layout$1 = defaultLayout;
var themes$1 = {
type: 'light',
font: font$1,
layout: layout$1,
palette: palette$1,
breakpoints: breakpoints$1,
expressiveness: expressiveness$1
};
var palette = {
accents_1: '#111',
accents_2: '#333',
accents_3: '#444',
accents_4: '#666',
accents_5: '#888',
accents_6: '#999',
accents_7: '#eaeaea',
accents_8: '#fafafa',
background: '#000',
foreground: '#fff',
selection: '#f81ce5',
secondary: '#888',
code: '#79ffe1',
border: '#333',
error: '#e00',
errorLighter: '#f7d4d6',
errorLight: '#ff1a1a',
errorDark: '#c50000',
success: '#0070f3',
successLighter: '#d3e5ff',
successLight: '#3291ff',
successDark: '#0761d1',
warning: '#f5a623',
warningLighter: '#ffefcf',
warningLight: '#f7b955',
warningDark: '#ab570a',
cyan: '#50e3c2',
cyanLighter: '#aaffec',
cyanLight: '#79ffe1',
cyanDark: '#29bc9b',
violet: '#7928ca',
violetLighter: '#e3d7fc',
violetLight: '#8a63d2',
violetDark: '#4c2889',
purple: '#f81ce5',
alert: '#ff0080',
magenta: '#eb367f',
link: '#3291ff'
};
var expressiveness = {
linkStyle: 'none',
linkHoverStyle: 'none',
dropdownBoxShadow: '0 0 0 1px #333',
scrollerStart: 'rgba(255, 255, 255, 1)',
scrollerEnd: 'rgba(255, 255, 255, 0)',
shadowSmall: '0 0 0 1px #333',
shadowMedium: '0 0 0 1px #333',
shadowLarge: '0 0 0 1px #333',
portalOpacity: 0.75
};
var font = defaultFont;
var breakpoints = defaultBreakpoints;
var layout = defaultLayout;
var themes = {
type: 'dark',
font: font,
layout: layout,
palette: palette,
breakpoints: breakpoints,
expressiveness: expressiveness
};
var isObject = function isObject(target) {
return target && _typeof(target) === 'object';
};
var deepDuplicable = function deepDuplicable(source, target) {
if (!isObject(target) || !isObject(source)) return source;
var sourceKeys = Object.keys(source);
var result = {};
for (var _i = 0, _sourceKeys = sourceKeys; _i < _sourceKeys.length; _i++) {
var key = _sourceKeys[_i];
var sourceValue = source[key];
var targetValue = target[key];
if (Array.isArray(sourceValue) && Array.isArray(targetValue)) {
result[key] = targetValue.concat(sourceValue);
} else if (isObject(sourceValue) && isObject(targetValue)) {
result[key] = deepDuplicable(sourceValue, _objectSpread2({}, targetValue));
} else if (targetValue) {
result[key] = targetValue;
} else {
result[key] = sourceValue;
}
}
return result;
};
var getPresets = function getPresets() {
return [themes$1, themes];
};
var getPresetStaticTheme = function getPresetStaticTheme() {
return themes$1;
};
var isAvailableThemeType = function isAvailableThemeType(type) {
if (!type) return false;
var presetThemes = getPresets();
var hasType = presetThemes.find(function (theme) {
return theme.type === type;
});
return !hasType;
};
var isPresetTheme = function isPresetTheme(themeOrType) {
if (!themeOrType) return false;
var isType = typeof themeOrType === 'string';
var type = isType ? themeOrType : themeOrType.type;
return !isAvailableThemeType(type);
};
var hasUserCustomTheme = function hasUserCustomTheme() {
var themes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
return !!themes.find(function (item) {
return isAvailableThemeType(item.type);
});
};
var create = function create(base, custom) {
if (!isAvailableThemeType(custom.type)) {
throw new Error('Duplicate or unavailable theme type');
}
return deepDuplicable(base, custom);
};
var createFromDark = function createFromDark(custom) {
return create(themes, custom);
};
var createFromLight = function createFromLight(custom) {
return create(themes$1, custom);
};
var Themes = {
isPresetTheme: isPresetTheme,
isAvailableThemeType: isAvailableThemeType,
hasUserCustomTheme: hasUserCustomTheme,
getPresets: getPresets,
getPresetStaticTheme: getPresetStaticTheme,
create: create,
createFromDark: createFromDark,
createFromLight: createFromLight
};
var defaultTheme = Themes.getPresetStaticTheme();
var ThemeContext = /*#__PURE__*/React__default["default"].createContext(defaultTheme);
var useTheme = function useTheme() {
return React__default["default"].useContext(ThemeContext);
};
var defaultProps$6 = {
width: 22,
height: 22
};
var TreeFileIcon = function TreeFileIcon(_ref) {
var color = _ref.color,
width = _ref.width,
height = _ref.height;
var theme = useTheme();
return /*#__PURE__*/React__default["default"].createElement("svg", {
viewBox: "0 0 24 24",
width: width,
height: height,
stroke: "currentColor",
strokeWidth: "1",
strokeLinecap: "round",
strokeLinejoin: "round",
fill: "none",
shapeRendering: "geometricPrecision",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}, /*#__PURE__*/React__default["default"].createElement("path", {
d: "M13 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V9z",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), /*#__PURE__*/React__default["default"].createElement("path", {
d: "M13 2v7h7",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "4043754792",
dynamic: [color || theme.palette.accents_8]
}, "svg.__jsx-style-dynamic-selector{color:".concat(color || theme.palette.accents_8, ";}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWUtZmlsZS1pY29uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ2tCLEFBRzhDLG1DQUNyQyIsImZpbGUiOiJ0cmVlLWZpbGUtaWNvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlVGhlbWUgZnJvbSAnLi4vdXNlLXRoZW1lJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVGaWxlSWNvblByb3BzIHtcbiAgY29sb3I/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6IDIyLFxuICBoZWlnaHQ6IDIyLFxufVxuXG5jb25zdCBUcmVlRmlsZUljb246IFJlYWN0LkZDPFRyZWVGaWxlSWNvblByb3BzPiA9ICh7XG4gIGNvbG9yLFxuICB3aWR0aCxcbiAgaGVpZ2h0LFxufTogVHJlZUZpbGVJY29uUHJvcHMgJiB0eXBlb2YgZGVmYXVsdFByb3BzKSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlV2lkdGg9XCIxXCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHNoYXBlUmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCI+XG4gICAgICA8cGF0aCBkPVwiTTEzIDJINmEyIDIgMCAwMC0yIDJ2MTZhMiAyIDAgMDAyIDJoMTJhMiAyIDAgMDAyLTJWOXpcIiAvPlxuICAgICAgPHBhdGggZD1cIk0xMyAydjdoN1wiIC8+XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgY29sb3I6ICR7Y29sb3IgfHwgdGhlbWUucGFsZXR0ZS5hY2NlbnRzXzh9O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuVHJlZUZpbGVJY29uLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wc1xuVHJlZUZpbGVJY29uLmRpc3BsYXlOYW1lID0gJ0dlaXN0VHJlZUZpbGVJY29uJ1xuZXhwb3J0IGRlZmF1bHQgVHJlZUZpbGVJY29uXG4iXX0= */\n/*@ sourceURL=tree-file-icon.tsx */")));
};
TreeFileIcon.defaultProps = defaultProps$6;
TreeFileIcon.displayName = 'GeistTreeFileIcon';
var defaultContext = {
initialExpand: false,
isImperative: false
};
var TreeContext = /*#__PURE__*/React__default["default"].createContext(defaultContext);
var useTreeContext = function useTreeContext() {
return React__default["default"].useContext(TreeContext);
};
var TreeIndents = function TreeIndents(_ref) {
var count = _ref.count;
if (count === 0) return null;
return (
/*#__PURE__*/
/* eslint-disable react/jsx-no-useless-fragment */
React__default["default"].createElement(React__default["default"].Fragment, null, _toConsumableArray(new Array(count)).map(function (_, index) {
return /*#__PURE__*/React__default["default"].createElement("span", {
key: "indent-".concat(index),
className: styledJsx_cjs.style.dynamic([["2622387629", [index + 1]]]) + " " + "indent"
}, /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "2622387629",
dynamic: [index + 1]
}, "span.indent.__jsx-style-dynamic-selector{left:calc(-1.875rem * ".concat(index + 1, " + 0.75rem);}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWUtaW5kZW50cy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYXNCLEFBRzZFLDhEQUNoRSIsImZpbGUiOiJ0cmVlLWluZGVudHMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBjb3VudDogbnVtYmVyXG59XG5cbmNvbnN0IFRyZWVJbmRlbnRzOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyBjb3VudCB9KSA9PiB7XG4gIGlmIChjb3VudCA9PT0gMCkgcmV0dXJuIG51bGxcbiAgcmV0dXJuIChcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtbm8tdXNlbGVzcy1mcmFnbWVudCAqL1xuICAgIDw+XG4gICAgICB7Wy4uLm5ldyBBcnJheShjb3VudCldLm1hcCgoXywgaW5kZXgpID0+IChcbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5kZW50XCIga2V5PXtgaW5kZW50LSR7aW5kZXh9YH0+XG4gICAgICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAgICAgc3Bhbi5pbmRlbnQge1xuICAgICAgICAgICAgICBsZWZ0OiBjYWxjKC0xLjg3NXJlbSAqICR7aW5kZXggKyAxfSArIDAuNzVyZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGB9PC9zdHlsZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKSl9XG4gICAgPC8+XG4gICAgLyogZXNsaW50LWVuYWJsZSAqL1xuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFRyZWVJbmRlbnRzXG4iXX0= */\n/*@ sourceURL=tree-indents.tsx */")));
}))
/* eslint-enable */
);
};
var sortChildren = function sortChildren(children, folderComponentType) {
return React__default["default"].Children.toArray(children).sort(function (a, b) {
if (! /*#__PURE__*/React__default["default"].isValidElement(a) || ! /*#__PURE__*/React__default["default"].isValidElement(b)) return 0;
if (a.type !== b.type) return a.type !== folderComponentType ? 1 : -1;
return "".concat(a.props.name).charCodeAt(0) - "".concat(b.props.name).charCodeAt(0);
});
};
var makeChildPath = function makeChildPath(name, parentPath) {
if (!parentPath) return name;
return "".concat(parentPath, "/").concat(name);
};
var stopPropagation = function stopPropagation(event) {
event.stopPropagation();
event.nativeEvent.stopImmediatePropagation();
};
var setChildrenProps = function setChildrenProps(children, props) {
var targetComponents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
if (React__default["default"].Children.count(children) === 0) return [];
var allowAll = targetComponents.length === 0;
var clone = function clone(child) {
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return /*#__PURE__*/React__default["default"].cloneElement(child, props);
};
return React__default["default"].Children.map(children, function (item) {
if (! /*#__PURE__*/React__default["default"].isValidElement(item)) return item;
if (allowAll) return clone(item, props);
var isAllowed = targetComponents.find(function (child) {
return child === item.type;
});
if (isAllowed) return clone(item, props);
return item;
});
};
var ScaleablePropKeys = ['paddingLeft', 'pl', 'paddingRight', 'pr', 'paddingTop', 'pt', 'paddingBottom', 'pb', 'marginTop', 'mt', 'marginRight', 'mr', 'marginBottom', 'mb', 'marginLeft', 'ml', 'px', 'py', 'mx', 'my', 'width', 'height', 'font', 'unit', 'scale', 'size'];
var withPureProps = function withPureProps(props) {
if (!props) return {};
var keys = Object.keys(props).filter(function (key) {
return key !== '';
});
var nextProps = {};
var _iterator = _createForOfIteratorHelper(keys),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var key = _step.value;
if (!ScaleablePropKeys.includes(key)) {
nextProps[key] = props[key];
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return nextProps;
};
var _excluded$2 = ["name", "parentPath", "level", "extra", "className"];
var defaultProps$5 = {
level: 0,
className: '',
parentPath: ''
};
var TreeFile = function TreeFile(_ref) {
var name = _ref.name,
parentPath = _ref.parentPath,
level = _ref.level,
extra = _ref.extra,
className = _ref.className,
props = _objectWithoutProperties(_ref, _excluded$2);
var theme = useTheme();
var _useTreeContext = useTreeContext(),
onFileClick = _useTreeContext.onFileClick;
var currentPath = React.useMemo(function () {
return makeChildPath(name, parentPath);
}, []);
var clickHandler = function clickHandler(event) {
stopPropagation(event);
onFileClick && onFileClick(currentPath);
};
return /*#__PURE__*/React__default["default"].createElement("div", _extends({
onClick: clickHandler
}, withPureProps(props), {
className: styledJsx_cjs.style.dynamic([["4220802947", [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "file ".concat(className)
}), /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["4220802947", [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "names"
}, /*#__PURE__*/React__default["default"].createElement(TreeIndents, {
count: level
}), /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["4220802947", [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "icon"
}, /*#__PURE__*/React__default["default"].createElement(TreeFileIcon, null)), /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["4220802947", [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "name"
}, name, extra && /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["4220802947", [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "extra"
}, extra))), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "4220802947",
dynamic: [level, theme.palette.accents_2, theme.palette.accents_8, theme.palette.accents_5]
}, ".file.__jsx-style-dynamic-selector{cursor:pointer;line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:calc(1.875rem * ".concat(level, ");}.names.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:1.75rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;}.names.__jsx-style-dynamic-selector>.indent{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:100%;background-color:").concat(theme.palette.accents_2, ";margin-left:-1px;}.icon.__jsx-style-dynamic-selector{width:1.5rem;height:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:0.5rem;}.name.__jsx-style-dynamic-selector{-webkit-transition:opacity 100ms ease 0ms;transition:opacity 100ms ease 0ms;color:").concat(theme.palette.accents_8, ";white-space:nowrap;font-size:0.875rem;}.extra.__jsx-style-dynamic-selector{font-size:0.75rem;-webkit-align-self:baseline;-ms-flex-item-align:baseline;align-self:baseline;padding-left:4px;color:").concat(theme.palette.accents_5, ";}.name.__jsx-style-dynamic-selector:hover{opacity:0.7;}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWUtZmlsZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcURrQixBQUcwQixBQU9GLEFBT0ssQUFVTCxBQVFxQixBQU9oQixBQU9OLFlBQ2QsQ0F0QmMsRUF4QkUsR0FjTixBQXlCWSxPQWRBLENBVk8sR0FkViw2Q0FNRixFQXlCb0IsYUF4QmhCLE1BZ0NGLGdCQVBFLENBUWdCLEVBdkN1QixLQWNoRCxRQVVTLEVBVFAsQ0FpQk8sV0FoQjJCLE1Bd0JoRCxFQVBBLHVCQWhDQSxVQU1vQixLQVVELGFBVG5CLElBVUEsZ0JBT3NCLG9CQUN0QiIsImZpbGUiOiJ0cmVlLWZpbGUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VUaGVtZSBmcm9tICcuLi91c2UtdGhlbWUnXG5pbXBvcnQgVHJlZUZpbGVJY29uIGZyb20gJy4vdHJlZS1maWxlLWljb24nXG5pbXBvcnQgeyB1c2VUcmVlQ29udGV4dCB9IGZyb20gJy4vdHJlZS1jb250ZXh0J1xuaW1wb3J0IFRyZWVJbmRlbnRzIGZyb20gJy4vdHJlZS1pbmRlbnRzJ1xuaW1wb3J0IHsgbWFrZUNoaWxkUGF0aCwgc3RvcFByb3BhZ2F0aW9uIH0gZnJvbSAnLi90cmVlLWhlbHAnXG5pbXBvcnQgeyB3aXRoUHVyZVByb3BzIH0gZnJvbSAnLi4vdXNlLXNjYWxlYWJsZSdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgbmFtZTogc3RyaW5nXG4gIGV4dHJhPzogc3RyaW5nXG4gIHBhcmVudFBhdGg/OiBzdHJpbmdcbiAgbGV2ZWw/OiBudW1iZXJcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgbGV2ZWw6IDAsXG4gIGNsYXNzTmFtZTogJycsXG4gIHBhcmVudFBhdGg6ICcnLFxufVxuXG50eXBlIE5hdGl2ZUF0dHJzID0gT21pdDxSZWFjdC5IVE1MQXR0cmlidXRlczxhbnk+LCBrZXlvZiBQcm9wcz5cbmV4cG9ydCB0eXBlIFRyZWVGaWxlUHJvcHMgPSBQcm9wcyAmIE5hdGl2ZUF0dHJzXG5cbmNvbnN0IFRyZWVGaWxlOiBSZWFjdC5GQzxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxUcmVlRmlsZVByb3BzPj4gPSAoe1xuICBuYW1lLFxuICBwYXJlbnRQYXRoLFxuICBsZXZlbCxcbiAgZXh0cmEsXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPFRyZWVGaWxlUHJvcHM+ICYgdHlwZW9mIGRlZmF1bHRQcm9wcykgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKClcbiAgY29uc3QgeyBvbkZpbGVDbGljayB9ID0gdXNlVHJlZUNvbnRleHQoKVxuICBjb25zdCBjdXJyZW50UGF0aCA9IHVzZU1lbW8oKCkgPT4gbWFrZUNoaWxkUGF0aChuYW1lLCBwYXJlbnRQYXRoKSwgW10pXG4gIGNvbnN0IGNsaWNrSGFuZGxlciA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIHN0b3BQcm9wYWdhdGlvbihldmVudClcbiAgICBvbkZpbGVDbGljayAmJiBvbkZpbGVDbGljayhjdXJyZW50UGF0aClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2BmaWxlICR7Y2xhc3NOYW1lfWB9IG9uQ2xpY2s9e2NsaWNrSGFuZGxlcn0gey4uLndpdGhQdXJlUHJvcHMocHJvcHMpfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmFtZXNcIj5cbiAgICAgICAgPFRyZWVJbmRlbnRzIGNvdW50PXtsZXZlbH0gLz5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaWNvblwiPlxuICAgICAgICAgIDxUcmVlRmlsZUljb24gLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYW1lXCI+XG4gICAgICAgICAge25hbWV9XG4gICAgICAgICAge2V4dHJhICYmIDxzcGFuIGNsYXNzTmFtZT1cImV4dHJhXCI+e2V4dHJhfTwvc3Bhbj59XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHN0eWxlIGpzeD57YFxuICAgICAgICAuZmlsZSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDEuODc1cmVtICogJHtsZXZlbH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hbWVzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGhlaWdodDogMS43NXJlbTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYW1lcyA+IDpnbG9iYWwoLmluZGVudCkge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjY2VudHNfMn07XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYW1lIHtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zIGVhc2UgMG1zO1xuICAgICAgICAgIGNvbG9yOiAke3RoZW1lLnBhbGV0dGUuYWNjZW50c184fTtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZXh0cmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgICAgICBjb2xvcjogJHt0aGVtZS5wYWxldHRlLmFjY2VudHNfNX07XG4gICAgICAgIH1cblxuICAgICAgICAubmFtZTpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuVHJlZUZpbGUuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzXG5UcmVlRmlsZS5kaXNwbGF5TmFtZSA9ICdHZWlzdFRyZWVGaWxlJ1xuZXhwb3J0IGRlZmF1bHQgVHJlZUZpbGVcbiJdfQ== */\n/*@ sourceURL=tree-file.tsx */")));
};
TreeFile.defaultProps = defaultProps$5;
TreeFile.displayName = 'GeistTreeFile';
var getRealShape = function getRealShape(el) {
var defaultShape = {
width: 0,
height: 0
};
if (!el || typeof window === 'undefined') return defaultShape;
var rect = el.getBoundingClientRect();
var _window$getComputedSt = window.getComputedStyle(el),
width = _window$getComputedSt.width,
height = _window$getComputedSt.height;
var getCSSStyleVal = function getCSSStyleVal(str, parentNum) {
if (!str) return 0;
var strVal = str.includes('px') ? +str.split('px')[0] : str.includes('%') ? +str.split('%')[0] * parentNum * 0.01 : str;
return Number.isNaN(+strVal) ? 0 : +strVal;
};
return {
width: getCSSStyleVal("".concat(width), rect.width),
height: getCSSStyleVal("".concat(height), rect.height)
};
};
var useRealShape = function useRealShape(ref) {
var _useState = React.useState({
width: 0,
height: 0
}),
_useState2 = _slicedToArray(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var update = function update() {
var _getRealShape = getRealShape(ref.current),
width = _getRealShape.width,
height = _getRealShape.height;
setState({
width: width,
height: height
});
};
React.useEffect(function () {
return update();
}, [ref.current]);
return [state, update];
};
var defaultProps$4 = {
isExpanded: false,
delay: 200
};
var Expand = function Expand(_ref) {
var isExpanded = _ref.isExpanded,
delay = _ref.delay,
children = _ref.children;
var _useState = React.useState(isExpanded ? 'auto' : '0'),
_useState2 = _slicedToArray(_useState, 2),
height = _useState2[0],
setHeight = _useState2[1];
var _useState3 = React.useState(isExpanded),
_useState4 = _slicedToArray(_useState3, 2),
selfExpanded = _useState4[0],
setSelfExpanded = _useState4[1];
var _useState5 = React.useState(isExpanded),
_useState6 = _slicedToArray(_useState5, 2),
visible = _useState6[0],
setVisible = _useState6[1];
var contentRef = React.useRef(null);
var entryTimer = React.useRef();
var leaveTimer = React.useRef();
var resetTimer = React.useRef();
var _useRealShape = useRealShape(contentRef),
_useRealShape2 = _slicedToArray(_useRealShape, 2),
state = _useRealShape2[0],
updateShape = _useRealShape2[1];
React.useEffect(function () {
return setHeight("".concat(state.height, "px"));
}, [state.height]);
React.useEffect(function () {
// show element or reset height.
// force an update once manually, even if the element does not change.
// (the height of the element might be "auto")
if (isExpanded) {
setVisible(isExpanded);
} else {
updateShape();
setHeight("".concat(state.height, "px"));
} // show expand animation
entryTimer.current = window.setTimeout(function () {
setSelfExpanded(isExpanded);
clearTimeout(entryTimer.current);
}, 30); // Reset height after animation
if (isExpanded) {
resetTimer.current = window.setTimeout(function () {
setHeight('auto');
clearTimeout(resetTimer.current);
}, delay);
} else {
leaveTimer.current = window.setTimeout(function () {
setVisible(isExpanded);
clearTimeout(leaveTimer.current);
}, delay / 2);
}
return function () {
clearTimeout(entryTimer.current);
clearTimeout(leaveTimer.current);
clearTimeout(resetTimer.current);
};
}, [isExpanded]);
return /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["1918690829", [visible ? 'visible' : 'hidden', delay, height]]]) + " " + "container ".concat(selfExpanded ? 'expanded' : '')
}, /*#__PURE__*/React__default["default"].createElement("div", {
ref: contentRef,
className: styledJsx_cjs.style.dynamic([["1918690829", [visible ? 'visible' : 'hidden', delay, height]]]) + " " + "content"
}, children), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "1918690829",
dynamic: [visible ? 'visible' : 'hidden', delay, height]
}, ".container.__jsx-style-dynamic-selector{padding:0;margin:0;height:0;overflow:hidden;visibility:".concat(visible ? 'visible' : 'hidden', ";-webkit-transition:height ").concat(delay, "ms ease;transition:height ").concat(delay, "ms ease;}.expanded.__jsx-style-dynamic-selector{height:").concat(height, ";visibility:visible;}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4cGFuZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUVrQixBQUdxQixBQVMwQixVQVIzQixTQUNBLFNBQ08sUUFPRyxRQU5xQixXQU8xQyw2QkFOd0Qsb0hBQ3hEIiwiZmlsZSI6ImV4cGFuZC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlUmVhbFNoYXBlIGZyb20gJy4uL3V0aWxzL3VzZS1yZWFsLXNoYXBlJ1xuXG5leHBvcnQgdHlwZSBFeHBhbmRQcm9wcyA9IHtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW5cbiAgZGVsYXk/OiBudW1iZXJcbn1cblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBpc0V4cGFuZGVkOiBmYWxzZSxcbiAgZGVsYXk6IDIwMCxcbn1cblxuY29uc3QgRXhwYW5kOiBSZWFjdC5GQzxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxFeHBhbmRQcm9wcz4+ID0gKHtcbiAgaXNFeHBhbmRlZCxcbiAgZGVsYXksXG4gIGNoaWxkcmVuLFxufTogUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48RXhwYW5kUHJvcHM+ICYgdHlwZW9mIGRlZmF1bHRQcm9wcykgPT4ge1xuICBjb25zdCBbaGVpZ2h0LCBzZXRIZWlnaHRdID0gdXNlU3RhdGU8c3RyaW5nPihpc0V4cGFuZGVkID8gJ2F1dG8nIDogJzAnKVxuICBjb25zdCBbc2VsZkV4cGFuZGVkLCBzZXRTZWxmRXhwYW5kZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oaXNFeHBhbmRlZClcbiAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oaXNFeHBhbmRlZClcbiAgY29uc3QgY29udGVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgZW50cnlUaW1lciA9IHVzZVJlZjxudW1iZXI+KClcbiAgY29uc3QgbGVhdmVUaW1lciA9IHVzZVJlZjxudW1iZXI+KClcbiAgY29uc3QgcmVzZXRUaW1lciA9IHVzZVJlZjxudW1iZXI+KClcbiAgY29uc3QgW3N0YXRlLCB1cGRhdGVTaGFwZV0gPSB1c2VSZWFsU2hhcGU8SFRNTERpdkVsZW1lbnQ+KGNvbnRlbnRSZWYpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHNldEhlaWdodChgJHtzdGF0ZS5oZWlnaHR9cHhgKSwgW3N0YXRlLmhlaWdodF0pXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gc2hvdyBlbGVtZW50IG9yIHJlc2V0IGhlaWdodC5cbiAgICAvLyBmb3JjZSBhbiB1cGRhdGUgb25jZSBtYW51YWxseSwgZXZlbiBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBjaGFuZ2UuXG4gICAgLy8gKHRoZSBoZWlnaHQgb2YgdGhlIGVsZW1lbnQgbWlnaHQgYmUgXCJhdXRvXCIpXG4gICAgaWYgKGlzRXhwYW5kZWQpIHtcbiAgICAgIHNldFZpc2libGUoaXNFeHBhbmRlZClcbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlU2hhcGUoKVxuICAgICAgc2V0SGVpZ2h0KGAke3N0YXRlLmhlaWdodH1weGApXG4gICAgfVxuXG4gICAgLy8gc2hvdyBleHBhbmQgYW5pbWF0aW9uXG4gICAgZW50cnlUaW1lci5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2VsZkV4cGFuZGVkKGlzRXhwYW5kZWQpXG4gICAgICBjbGVhclRpbWVvdXQoZW50cnlUaW1lci5jdXJyZW50KVxuICAgIH0sIDMwKVxuXG4gICAgLy8gUmVzZXQgaGVpZ2h0IGFmdGVyIGFuaW1hdGlvblxuICAgIGlmIChpc0V4cGFuZGVkKSB7XG4gICAgICByZXNldFRpbWVyLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldEhlaWdodCgnYXV0bycpXG4gICAgICAgIGNsZWFyVGltZW91dChyZXNldFRpbWVyLmN1cnJlbnQpXG4gICAgICB9LCBkZWxheSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGVhdmVUaW1lci5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRWaXNpYmxlKGlzRXhwYW5kZWQpXG4gICAgICAgIGNsZWFyVGltZW91dChsZWF2ZVRpbWVyLmN1cnJlbnQpXG4gICAgICB9LCBkZWxheSAvIDIpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChlbnRyeVRpbWVyLmN1cnJlbnQpXG4gICAgICBjbGVhclRpbWVvdXQobGVhdmVUaW1lci5jdXJyZW50KVxuICAgICAgY2xlYXJUaW1lb3V0KHJlc2V0VGltZXIuY3VycmVudClcbiAgICB9XG4gIH0sIFtpc0V4cGFuZGVkXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgY29udGFpbmVyICR7c2VsZkV4cGFuZGVkID8gJ2V4cGFuZGVkJyA6ICcnfWB9PlxuICAgICAgPGRpdiByZWY9e2NvbnRlbnRSZWZ9IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdmlzaWJpbGl0eTogJHt2aXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9O1xuICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAke2RlbGF5fW1zIGVhc2U7XG4gICAgICAgIH1cblxuICAgICAgICAuZXhwYW5kZWQge1xuICAgICAgICAgIGhlaWdodDogJHtoZWlnaHR9O1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5FeHBhbmQuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzXG5FeHBhbmQuZGlzcGxheU5hbWUgPSAnR2Vpc3RFeHBhbmQnXG5leHBvcnQgZGVmYXVsdCBFeHBhbmRcbiJdfQ== */\n/*@ sourceURL=expand.tsx */")));
};
Expand.defaultProps = defaultProps$4;
Expand.displayName = 'GeistExpand';
var defaultProps$3 = {
width: 22,
height: 22
};
var TreeFolderIcon = function TreeFolderIcon(_ref) {
var color = _ref.color,
width = _ref.width,
height = _ref.height;
var theme = useTheme();
return /*#__PURE__*/React__default["default"].createElement("svg", {
viewBox: "0 0 24 24",
width: width,
height: height,
stroke: "currentColor",
strokeWidth: "1",
strokeLinecap: "round",
strokeLinejoin: "round",
fill: "none",
shapeRendering: "geometricPrecision",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}, /*#__PURE__*/React__default["default"].createElement("path", {
d: "M2.707 7.454V5.62C2.707 4.725 3.469 4 4.409 4h4.843c.451 0 .884.17 1.204.474l.49.467c.126.12.296.186.473.186h8.399c.94 0 1.55.695 1.55 1.59v.737m-18.661 0h-.354a.344.344 0 00-.353.35l.508 11.587c.015.34.31.609.668.609h17.283c.358 0 .652-.269.667-.61L22 7.805a.344.344 0 00-.353-.35h-.278m-18.662 0h18.662",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "4043754792",
dynamic: [color || theme.palette.accents_8]
}, "svg.__jsx-style-dynamic-selector{color:".concat(color || theme.palette.accents_8, ";}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWUtZm9sZGVyLWljb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDa0IsQUFHOEMsbUNBQ3JDIiwiZmlsZSI6InRyZWUtZm9sZGVyLWljb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZVRoZW1lIGZyb20gJy4uL3VzZS10aGVtZSdcblxuZXhwb3J0IGludGVyZmFjZSBUcmVlRm9sZGVySWNvblByb3BzIHtcbiAgY29sb3I/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG59XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgd2lkdGg6IDIyLFxuICBoZWlnaHQ6IDIyLFxufVxuXG5jb25zdCBUcmVlRm9sZGVySWNvbjogUmVhY3QuRkM8VHJlZUZvbGRlckljb25Qcm9wcz4gPSAoe1xuICBjb2xvcixcbiAgd2lkdGgsXG4gIGhlaWdodCxcbn06IFRyZWVGb2xkZXJJY29uUHJvcHMgJiB0eXBlb2YgZGVmYXVsdFByb3BzKSA9PiB7XG4gIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKVxuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlV2lkdGg9XCIxXCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHNoYXBlUmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCI+XG4gICAgICA8cGF0aCBkPVwiTTIuNzA3IDcuNDU0VjUuNjJDMi43MDcgNC43MjUgMy40NjkgNCA0LjQwOSA0aDQuODQzYy40NTEgMCAuODg0LjE3IDEuMjA0LjQ3NGwuNDkuNDY3Yy4xMjYuMTIuMjk2LjE4Ni40NzMuMTg2aDguMzk5Yy45NCAwIDEuNTUuNjk1IDEuNTUgMS41OXYuNzM3bS0xOC42NjEgMGgtLjM1NGEuMzQ0LjM0NCAwIDAwLS4zNTMuMzVsLjUwOCAxMS41ODdjLjAxNS4zNC4zMS42MDkuNjY4LjYwOWgxNy4yODNjLjM1OCAwIC42NTItLjI2OS42NjctLjYxTDIyIDcuODA1YS4zNDQuMzQ0IDAgMDAtLjM1My0uMzVoLS4yNzhtLTE4LjY2MiAwaDE4LjY2MlwiIC8+XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgY29sb3I6ICR7Y29sb3IgfHwgdGhlbWUucGFsZXR0ZS5hY2NlbnRzXzh9O1xuICAgICAgICB9XG4gICAgICBgfTwvc3R5bGU+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuVHJlZUZvbGRlckljb24uZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzXG5UcmVlRm9sZGVySWNvbi5kaXNwbGF5TmFtZSA9ICdHZWlzdFRyZWVGb2xkZXJJY29uJ1xuZXhwb3J0IGRlZmF1bHQgVHJlZUZvbGRlckljb25cbiJdfQ== */\n/*@ sourceURL=tree-folder-icon.tsx */")));
};
TreeFolderIcon.defaultProps = defaultProps$3;
TreeFolderIcon.displayName = 'GeistTreeFolderIcon';
var defaultProps$2 = {
width: 12,
height: 12,
active: false
};
var TreeStatusIcon = function TreeStatusIcon(_ref) {
var color = _ref.color,
width = _ref.width,
height = _ref.height,
active = _ref.active;
var theme = useTheme();
return /*#__PURE__*/React__default["default"].createElement("svg", {
viewBox: "0 0 24 24",
width: width,
height: height,
stroke: "currentColor",
strokeWidth: "1.5",
strokeLinecap: "round",
strokeLinejoin: "round",
fill: "none",
shapeRendering: "geometricPrecision",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}, /*#__PURE__*/React__default["default"].createElement("rect", {
x: "3",
y: "3",
width: "18",
height: "18",
rx: "2",
ry: "2",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), !active && /*#__PURE__*/React__default["default"].createElement("path", {
d: "M12 8v8",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), /*#__PURE__*/React__default["default"].createElement("path", {
d: "M8 12h8",
className: styledJsx_cjs.style.dynamic([["4043754792", [color || theme.palette.accents_8]]])
}), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "4043754792",
dynamic: [color || theme.palette.accents_8]
}, "svg.__jsx-style-dynamic-selector{color:".concat(color || theme.palette.accents_8, ";}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWUtc3RhdHVzLWljb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDa0IsQUFHOEMsbUNBQ3JDIiwiZmlsZSI6InRyZWUtc3RhdHVzLWljb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHVzZVRoZW1lIGZyb20gJy4uL3VzZS10aGVtZSdcblxuZXhwb3J0IGludGVyZmFjZSBUcmVlU3RhdHVzSWNvblByb3BzIHtcbiAgY29sb3I/OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXJcbiAgaGVpZ2h0PzogbnVtYmVyXG4gIGFjdGl2ZT86IGJvb2xlYW5cbn1cblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICB3aWR0aDogMTIsXG4gIGhlaWdodDogMTIsXG4gIGFjdGl2ZTogZmFsc2UsXG59XG5cbmNvbnN0IFRyZWVTdGF0dXNJY29uOiBSZWFjdC5GQzxUcmVlU3RhdHVzSWNvblByb3BzPiA9ICh7XG4gIGNvbG9yLFxuICB3aWR0aCxcbiAgaGVpZ2h0LFxuICBhY3RpdmUsXG59OiBUcmVlU3RhdHVzSWNvblByb3BzICYgdHlwZW9mIGRlZmF1bHRQcm9wcykgPT4ge1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKClcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHNoYXBlUmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCI+XG4gICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cbiAgICAgIHshYWN0aXZlICYmIDxwYXRoIGQ9XCJNMTIgOHY4XCIgLz59XG4gICAgICA8cGF0aCBkPVwiTTggMTJoOFwiIC8+XG5cbiAgICAgIDxzdHlsZSBqc3g+e2BcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBjb2xvcjogJHtjb2xvciB8fCB0aGVtZS5wYWxldHRlLmFjY2VudHNfOH07XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5UcmVlU3RhdHVzSWNvbi5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHNcblRyZWVTdGF0dXNJY29uLmRpc3BsYXlOYW1lID0gJ0dlaXN0VHJlZVN0YXR1c0ljb24nXG5leHBvcnQgZGVmYXVsdCBUcmVlU3RhdHVzSWNvblxuIl19 */\n/*@ sourceURL=tree-status-icon.tsx */")));
};
TreeStatusIcon.defaultProps = defaultProps$2;
TreeStatusIcon.displayName = 'GeistTreeStatusIcon';
var _excluded$1 = ["name", "children", "parentPath", "level", "extra", "className"];
var defaultProps$1 = {
level: 0,
className: '',
parentPath: ''
};
var TreeFolder = function TreeFolder(_ref) {
var name = _ref.name,
children = _ref.children,
parentPath = _ref.parentPath,
parentLevel = _ref.level,
extra = _ref.extra,
className = _ref.className,
props = _objectWithoutProperties(_ref, _excluded$1);
var theme = useTheme();
var _useTreeContext = useTreeContext(),
initialExpand = _useTreeContext.initialExpand,
isImperative = _useTreeContext.isImperative;
var _useState = React.useState(initialExpand),
_useState2 = _slicedToArray(_useState, 2),
expanded = _useState2[0],
setExpanded = _useState2[1];
React.useEffect(function () {
return setExpanded(initialExpand);
}, []);
var currentPath = React.useMemo(function () {
return makeChildPath(name, parentPath);
}, []);
var clickHandler = function clickHandler() {
return setExpanded(!expanded);
};
var nextChildren = setChildrenProps(children, {
parentPath: currentPath,
level: parentLevel + 1
}, [TreeFolder, TreeFile]);
var sortedChildren = isImperative ? nextChildren : sortChildren(nextChildren, TreeFolder);
return /*#__PURE__*/React__default["default"].createElement("div", _extends({
onClick: clickHandler
}, withPureProps(props), {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "folder ".concat(className)
}), /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "names"
}, /*#__PURE__*/React__default["default"].createElement(TreeIndents, {
count: parentLevel
}), /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "status"
}, /*#__PURE__*/React__default["default"].createElement(TreeStatusIcon, {
active: expanded
})), /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "icon"
}, /*#__PURE__*/React__default["default"].createElement(TreeFolderIcon, null)), /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "name"
}, name, extra && /*#__PURE__*/React__default["default"].createElement("span", {
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "extra"
}, extra))), /*#__PURE__*/React__default["default"].createElement(Expand, {
isExpanded: expanded
}, /*#__PURE__*/React__default["default"].createElement("div", {
onClick: stopPropagation,
className: styledJsx_cjs.style.dynamic([["1983983326", [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]]]) + " " + "content"
}, sortedChildren)), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "1983983326",
dynamic: [parentLevel, theme.palette.accents_2, theme.palette.background, theme.palette.accents_8, theme.palette.accents_5]
}, ".folder.__jsx-style-dynamic-selector{cursor:pointer;line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.names.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:1.75rem;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:calc(1.875rem * ".concat(parentLevel, ");position:relative;}.names.__jsx-style-dynamic-selector>.indent{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:100%;background-color:").concat(theme.palette.accents_2, ";margin-left:-1px;}.status.__jsx-style-dynamic-selector{position:absolute;left:calc(-1.125rem);top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:0.875rem;height:0.875rem;z-index:10;background-color:").concat(theme.palette.background, ";}.icon.__jsx-style-dynamic-selector{width:1.5rem;height:100%;margin-right:0.5rem;}.status.__jsx-style-dynamic-selector,.icon.__jsx-style-dynamic-selector{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.name.__jsx-style-dynamic-selector{-webkit-transition:opacity 100ms ease 0ms;transition:opacity 100ms ease 0ms;color:").concat(theme.palett