@geist-ui/react
Version:
Modern and minimalist React UI library.
1,060 lines (914 loc) • 55.6 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 CollapseIcon = function CollapseIcon(_ref) {
var active = _ref.active;
return /*#__PURE__*/React__default["default"].createElement("svg", {
viewBox: "0 0 24 24",
stroke: "currentColor",
strokeWidth: "1.5",
strokeLinecap: "round",
strokeLinejoin: "round",
fill: "none",
shapeRendering: "geometricPrecision",
style: {
color: 'currentColor'
},
className: styledJsx_cjs.style.dynamic([["2249786880", [active ? '-180deg' : '0']]])
}, /*#__PURE__*/React__default["default"].createElement("path", {
d: "M6 9l6 6 6-6",
className: styledJsx_cjs.style.dynamic([["2249786880", [active ? '-180deg' : '0']]])
}), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "2249786880",
dynamic: [active ? '-180deg' : '0']
}, "svg.__jsx-style-dynamic-selector{-webkit-transition:-webkit-transform 200ms ease;-webkit-transition:transform 200ms ease;transition:transform 200ms ease;-webkit-transform:rotateZ(".concat(active ? '-180deg' : '0', ");-ms-transform:rotateZ(").concat(active ? '-180deg' : '0', ");transform:rotateZ(").concat(active ? '-180deg' : '0', ");width:1.5em;height:1.5em;}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbGxhcHNlLWljb24udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1Ca0IsQUFHMkMsd0hBQ2dCLDRKQUNwQyxZQUNDLGFBQ2YiLCJmaWxlIjoiY29sbGFwc2UtaWNvbi50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGFjdGl2ZT86IGJvb2xlYW5cbn1cblxuY29uc3QgQ29sbGFwc2VJY29uOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyBhY3RpdmUgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZVdpZHRoPVwiMS41XCJcbiAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHNoYXBlUmVuZGVyaW5nPVwiZ2VvbWV0cmljUHJlY2lzaW9uXCJcbiAgICAgIHN0eWxlPXt7IGNvbG9yOiAnY3VycmVudENvbG9yJyB9fT5cbiAgICAgIDxwYXRoIGQ9XCJNNiA5bDYgNiA2LTZcIiAvPlxuXG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2U7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVaKCR7YWN0aXZlID8gJy0xODBkZWcnIDogJzAnfSk7XG4gICAgICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgICAgIGhlaWdodDogMS41ZW07XG4gICAgICAgIH1cbiAgICAgIGB9PC9zdHlsZT5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5jb25zdCBNZW1vQ29sbGFwc2VJY29uID0gUmVhY3QubWVtbyhDb2xsYXBzZUljb24pXG5cbmV4cG9ydCBkZWZhdWx0IE1lbW9Db2xsYXBzZUljb25cbiJdfQ== */\n/*@ sourceURL=collapse-icon.tsx */")));
};
var MemoCollapseIcon = /*#__PURE__*/React__default["default"].memo(CollapseIcon);
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 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$2 = {
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$2;
Expand.displayName = 'GeistExpand';
var defaultContext$1 = {
values: []
};
var CollapseContext = /*#__PURE__*/React__default["default"].createContext(defaultContext$1);
var useCollapseContext = function useCollapseContext() {
return React__default["default"].useContext(CollapseContext);
};
var useCurrentState = function useCurrentState(initialState) {
var _useState = React.useState(function () {
return typeof initialState === 'function' ? initialState() : initialState;
}),
_useState2 = _slicedToArray(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var ref = React.useRef(initialState);
React.useEffect(function () {
ref.current = state;
}, [state]);
var setValue = function setValue(val) {
var result = typeof val === 'function' ? val(ref.current) : val;
ref.current = result;
setState(result);
};
return [state, setValue, ref];
};
var warningStack = {};
var useWarning = function useWarning(message, component) {
var tag = component ? " [".concat(component, "]") : ' ';
var log = "[Geist UI]".concat(tag, ": ").concat(message);
if (typeof console === 'undefined') return;
if (warningStack[log]) return;
warningStack[log] = true;
if (process.env.NODE_ENV !== 'production') {
return console.error(log);
}
console.warn(log);
};
var defaultDynamicLayoutPipe = function defaultDynamicLayoutPipe(scale1x) {
return "".concat(scale1x);
};
var defaultContext = {
getScaleableProps: function getScaleableProps() {
return undefined;
},
SCALES: {
pl: defaultDynamicLayoutPipe,
pr: defaultDynamicLayoutPipe,
pb: defaultDynamicLayoutPipe,
pt: defaultDynamicLayoutPipe,
px: defaultDynamicLayoutPipe,
py: defaultDynamicLayoutPipe,
mb: defaultDynamicLayoutPipe,
ml: defaultDynamicLayoutPipe,
mr: defaultDynamicLayoutPipe,
mt: defaultDynamicLayoutPipe,
mx: defaultDynamicLayoutPipe,
my: defaultDynamicLayoutPipe,
width: defaultDynamicLayoutPipe,
height: defaultDynamicLayoutPipe,
font: defaultDynamicLayoutPipe
},
unit: '16px'
};
var ScaleableContext = /*#__PURE__*/React__default["default"].createContext(defaultContext);
var useScaleable = function useScaleable() {
return React__default["default"].useContext(ScaleableContext);
};
var setChildrenIndex = function setChildrenIndex(children) {
var targetComponents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
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);
};
var index = 0;
return React__default["default"].Children.map(children, function (item) {
if (! /*#__PURE__*/React__default["default"].isValidElement(item)) return item;
index = index + 1;
if (allowAll) return clone(item, {
index: index
});
var isAllowed = targetComponents.find(function (child) {
return child === item.type;
});
if (isAllowed) return clone(item, {
index: index
});
index = index - 1;
return item;
});
};
var isCSSNumberValue = function isCSSNumberValue(value) {
return value !== undefined && !Number.isNaN(+value);
};
var _excluded$2 = ["children"];
var reduceScaleCoefficient = function reduceScaleCoefficient(scale) {
if (scale === 1) return scale;
var diff = Math.abs((scale - 1) / 2);
return scale > 1 ? 1 + diff : 1 - diff;
};
var withScaleable = function withScaleable(Render) {
var ScaleableFC = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
var _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33;
var children = _ref.children,
props = _objectWithoutProperties(_ref, _excluded$2);
var _useTheme = useTheme(),
layout = _useTheme.layout;
var paddingLeft = props.paddingLeft,
pl = props.pl,
paddingRight = props.paddingRight,
pr = props.pr,
paddingTop = props.paddingTop,
pt = props.pt,
paddingBottom = props.paddingBottom,
pb = props.pb,
marginTop = props.marginTop,
mt = props.mt,
marginRight = props.marginRight,
mr = props.mr,
marginBottom = props.marginBottom,
mb = props.mb,
marginLeft = props.marginLeft,
ml = props.ml,
px = props.px,
py = props.py,
mx = props.mx,
my = props.my,
width = props.width,
height = props.height,
font = props.font,
w = props.w,
h = props.h,
margin = props.margin,
padding = props.padding,
_props$unit = props.unit,
unit = _props$unit === void 0 ? layout.unit : _props$unit,
_props$scale = props.scale,
scale = _props$scale === void 0 ? 1 : _props$scale;
var makeScaleHandler = function makeScaleHandler(attrValue) {
return function (scale1x, defaultValue) {
// 0 means disable scale and the default value is 0
if (scale1x === 0) {
scale1x = 1;
defaultValue = defaultValue || 0;
}
var factor = reduceScaleCoefficient(scale) * scale1x;
if (typeof attrValue === 'undefined') {
if (typeof defaultValue !== 'undefined') return "".concat(defaultValue);
return "calc(".concat(factor, " * ").concat(unit, ")");
}
if (!isCSSNumberValue(attrValue)) return "".concat(attrValue);
var customFactor = factor * Number(attrValue);
return "calc(".concat(customFactor, " * ").concat(unit, ")");
};
};
var getScaleableProps = function getScaleableProps(keyOrKeys) {
if (!Array.isArray(keyOrKeys)) return props[keyOrKeys];
var value = undefined;
var _iterator = _createForOfIteratorHelper(keyOrKeys),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var key = _step.value;
var currentValue = props[key];
if (typeof currentValue !== 'undefined') {
value = currentValue;
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return value;
};
var value = {
unit: unit,
SCALES: {
pt: makeScaleHandler((_ref2 = (_ref3 = paddingTop !== null && paddingTop !== void 0 ? paddingTop : pt) !== null && _ref3 !== void 0 ? _ref3 : py) !== null && _ref2 !== void 0 ? _ref2 : padding),
pr: makeScaleHandler((_ref4 = (_ref5 = paddingRight !== null && paddingRight !== void 0 ? paddingRight : pr) !== null && _ref5 !== void 0 ? _ref5 : px) !== null && _ref4 !== void 0 ? _ref4 : padding),
pb: makeScaleHandler((_ref6 = (_ref7 = paddingBottom !== null && paddingBottom !== void 0 ? paddingBottom : pb) !== null && _ref7 !== void 0 ? _ref7 : py) !== null && _ref6 !== void 0 ? _ref6 : padding),
pl: makeScaleHandler((_ref8 = (_ref9 = paddingLeft !== null && paddingLeft !== void 0 ? paddingLeft : pl) !== null && _ref9 !== void 0 ? _ref9 : px) !== null && _ref8 !== void 0 ? _ref8 : padding),
px: makeScaleHandler((_ref10 = (_ref11 = (_ref12 = (_ref13 = px !== null && px !== void 0 ? px : paddingLeft) !== null && _ref13 !== void 0 ? _ref13 : paddingRight) !== null && _ref12 !== void 0 ? _ref12 : pl) !== null && _ref11 !== void 0 ? _ref11 : pr) !== null && _ref10 !== void 0 ? _ref10 : padding),
py: makeScaleHandler((_ref14 = (_ref15 = (_ref16 = (_ref17 = py !== null && py !== void 0 ? py : paddingTop) !== null && _ref17 !== void 0 ? _ref17 : paddingBottom) !== null && _ref16 !== void 0 ? _ref16 : pt) !== null && _ref15 !== void 0 ? _ref15 : pb) !== null && _ref14 !== void 0 ? _ref14 : padding),
mt: makeScaleHandler((_ref18 = (_ref19 = marginTop !== null && marginTop !== void 0 ? marginTop : mt) !== null && _ref19 !== void 0 ? _ref19 : my) !== null && _ref18 !== void 0 ? _ref18 : margin),
mr: makeScaleHandler((_ref20 = (_ref21 = marginRight !== null && marginRight !== void 0 ? marginRight : mr) !== null && _ref21 !== void 0 ? _ref21 : mx) !== null && _ref20 !== void 0 ? _ref20 : margin),
mb: makeScaleHandler((_ref22 = (_ref23 = marginBottom !== null && marginBottom !== void 0 ? marginBottom : mb) !== null && _ref23 !== void 0 ? _ref23 : my) !== null && _ref22 !== void 0 ? _ref22 : margin),
ml: makeScaleHandler((_ref24 = (_ref25 = marginLeft !== null && marginLeft !== void 0 ? marginLeft : ml) !== null && _ref25 !== void 0 ? _ref25 : mx) !== null && _ref24 !== void 0 ? _ref24 : margin),
mx: makeScaleHandler((_ref26 = (_ref27 = (_ref28 = (_ref29 = mx !== null && mx !== void 0 ? mx : marginLeft) !== null && _ref29 !== void 0 ? _ref29 : marginRight) !== null && _ref28 !== void 0 ? _ref28 : ml) !== null && _ref27 !== void 0 ? _ref27 : mr) !== null && _ref26 !== void 0 ? _ref26 : margin),
my: makeScaleHandler((_ref30 = (_ref31 = (_ref32 = (_ref33 = my !== null && my !== void 0 ? my : marginTop) !== null && _ref33 !== void 0 ? _ref33 : marginBottom) !== null && _ref32 !== void 0 ? _ref32 : mt) !== null && _ref31 !== void 0 ? _ref31 : mb) !== null && _ref30 !== void 0 ? _ref30 : margin),
width: makeScaleHandler(width !== null && width !== void 0 ? width : w),
height: makeScaleHandler(height !== null && height !== void 0 ? height : h),
font: makeScaleHandler(font)
},
getScaleableProps: getScaleableProps
};
return /*#__PURE__*/React__default["default"].createElement(ScaleableContext.Provider, {
value: value
}, /*#__PURE__*/React__default["default"].createElement(Render, _extends({}, props, {
ref: ref
}), children));
});
ScaleableFC.displayName = "Scaleable".concat(Render.displayName || 'Wrapper');
return ScaleableFC;
};
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$1 = ["children", "title", "subtitle", "initialVisible", "shadow", "className", "index"];
var defaultProps$1 = {
className: '',
shadow: false,
initialVisible: false
};
var CollapseComponent = function CollapseComponent(_ref) {
var children = _ref.children,
title = _ref.title,
subtitle = _ref.subtitle,
initialVisible = _ref.initialVisible,
shadow = _ref.shadow,
className = _ref.className,
index = _ref.index,
props = _objectWithoutProperties(_ref, _excluded$1);
var theme = useTheme();
var _useScaleable = useScaleable(),
SCALES = _useScaleable.SCALES;
var _useCollapseContext = useCollapseContext(),
values = _useCollapseContext.values,
updateValues = _useCollapseContext.updateValues;
var _useCurrentState = useCurrentState(initialVisible),
_useCurrentState2 = _slicedToArray(_useCurrentState, 3),
visible = _useCurrentState2[0],
setVisible = _useCurrentState2[1],
visibleRef = _useCurrentState2[2];
if (!title) {
useWarning('"title" is required.', 'Collapse');
}
React.useEffect(function () {
if (!values.length) return;
var isActive = !!values.find(function (item) {
return item === index;
});
setVisible(isActive);
}, [values.join(',')]);
var clickHandler = function clickHandler() {
var next = !visibleRef.current;
setVisible(next);
updateValues && updateValues(index, next);
};
return /*#__PURE__*/React__default["default"].createElement("div", _extends({}, withPureProps(props), {
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]]) + " " + "collapse ".concat(shadow ? 'shadow' : '', " ").concat(className)
}), /*#__PURE__*/React__default["default"].createElement("div", {
role: "button",
onClick: clickHandler,
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]]) + " " + "view"
}, /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]]) + " " + "title"
}, /*#__PURE__*/React__default["default"].createElement("h3", {
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]])
}, title), " ", /*#__PURE__*/React__default["default"].createElement(MemoCollapseIcon, {
active: visible
})), subtitle && /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]]) + " " + "subtitle"
}, subtitle)), /*#__PURE__*/React__default["default"].createElement(Expand, {
isExpanded: visible
}, /*#__PURE__*/React__default["default"].createElement("div", {
className: styledJsx_cjs.style.dynamic([["3106940587", [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]]]) + " " + "content"
}, children)), /*#__PURE__*/React__default["default"].createElement(styledJsx_cjs.style, {
id: "3106940587",
dynamic: [theme.palette.border, theme.palette.border, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), theme.expressiveness.shadowSmall, theme.layout.radius, theme.layout.gap, theme.palette.foreground, theme.palette.accents_5, SCALES.pt(1.2), SCALES.pr(0), SCALES.pb(1.2), SCALES.pl(0)]
}, ".collapse.__jsx-style-dynamic-selector{border-top:1px solid ".concat(theme.palette.border, ";border-bottom:1px solid ").concat(theme.palette.border, ";font-size:").concat(SCALES.font(1), ";width:").concat(SCALES.width(1, 'auto'), ";height:").concat(SCALES.height(1, 'auto'), ";padding:").concat(SCALES.pt(1.2), " ").concat(SCALES.pr(0), " ").concat(SCALES.pb(1.2), " ").concat(SCALES.pl(0), ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}.shadow.__jsx-style-dynamic-selector{box-shadow:").concat(theme.expressiveness.shadowSmall, ";border:none;border-radius:").concat(theme.layout.radius, ";padding:").concat(theme.layout.gap, ";}.view.__jsx-style-dynamic-selector{cursor:pointer;outline:none;}.title.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:").concat(theme.palette.foreground, ";}.title.__jsx-style-dynamic-selector h3.__jsx-style-dynamic-selector{margin:0;font-size:1.5em;}.subtitle.__jsx-style-dynamic-selector{color:").concat(theme.palette.accents_5, ";margin:0;}.subtitle.__jsx-style-dynamic-selector>*{margin:0;}.content.__jsx-style-dynamic-selector{font-size:inherit;line-height:1.6em;padding:").concat(SCALES.pt(1.2), " ").concat(SCALES.pr(0), " ").concat(SCALES.pb(1.2), " ").concat(SCALES.pl(0), ";}.content.__jsx-style-dynamic-selector>*:first-child{margin-top:0;}.content.__jsx-style-dynamic-selector>*:last-child{margin-bottom:0;}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbGxhcHNlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RWtCLEFBRzZELEFBVVQsQUFPMUIsQUFLRixBQU9KLEFBSzJCLEFBSzNCLEFBSVMsQUFNTCxBQUlHLFNBdkJBLEFBVWxCLElBVUEsRUFoQ2UsQ0FvQ2YsRUFWb0IsT0FicEIsR0FaQSxRQWdCVyxBQVV1SCxLQWxDcEgsSUF5QmQsS0FuQ3VELEdBV1QscUJBV2QsdUJBVlEsTUFYQyxnQ0FZekMsT0FYcUMsc0JBMkNyQyxhQTFDc0MsWUFvQmpCLHdCQW5CeUcscUVBb0J4RixvQ0FDdEMsbUJBcEJnSSw4SEFDaEkiLCJmaWxlIjoiY29sbGFwc2UudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IENvbGxhcHNlSWNvbiBmcm9tICcuL2NvbGxhcHNlLWljb24nXG5pbXBvcnQgdXNlVGhlbWUgZnJvbSAnLi4vdXNlLXRoZW1lJ1xuaW1wb3J0IEV4cGFuZCBmcm9tICcuLi9zaGFyZWQvZXhwYW5kJ1xuaW1wb3J0IHsgdXNlQ29sbGFwc2VDb250ZXh0IH0gZnJvbSAnLi9jb2xsYXBzZS1jb250ZXh0J1xuaW1wb3J0IHVzZUN1cnJlbnRTdGF0ZSBmcm9tICcuLi91dGlscy91c2UtY3VycmVudC1zdGF0ZSdcbmltcG9ydCB1c2VXYXJuaW5nIGZyb20gJy4uL3V0aWxzL3VzZS13YXJuaW5nJ1xuaW1wb3J0IHVzZVNjYWxlYWJsZSwgeyB3aXRoUHVyZVByb3BzLCB3aXRoU2NhbGVhYmxlIH0gZnJvbSAnLi4vdXNlLXNjYWxlYWJsZSdcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBzdWJ0aXRsZT86IFJlYWN0LlJlYWN0Tm9kZSB8IHN0cmluZ1xuICBpbml0aWFsVmlzaWJsZT86IGJvb2xlYW5cbiAgc2hhZG93PzogYm9vbGVhblxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgaW5kZXg/OiBudW1iZXJcbn1cblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBzaGFkb3c6IGZhbHNlLFxuICBpbml0aWFsVmlzaWJsZTogZmFsc2UsXG59XG5cbnR5cGUgTmF0aXZlQXR0cnMgPSBPbWl0PFJlYWN0LkhUTUxBdHRyaWJ1dGVzPGFueT4sIGtleW9mIFByb3BzPlxuZXhwb3J0IHR5cGUgQ29sbGFwc2VQcm9wcyA9IFByb3BzICYgTmF0aXZlQXR0cnNcblxuY29uc3QgQ29sbGFwc2VDb21wb25lbnQ6IFJlYWN0LkZDPFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPENvbGxhcHNlUHJvcHM+PiA9ICh7XG4gIGNoaWxkcmVuLFxuICB0aXRsZSxcbiAgc3VidGl0bGUsXG4gIGluaXRpYWxWaXNpYmxlLFxuICBzaGFkb3csXG4gIGNsYXNzTmFtZSxcbiAgaW5kZXgsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxDb2xsYXBzZVByb3BzPiAmIHR5cGVvZiBkZWZhdWx0UHJvcHMpID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpXG4gIGNvbnN0IHsgU0NBTEVTIH0gPSB1c2VTY2FsZWFibGUoKVxuICBjb25zdCB7IHZhbHVlcywgdXBkYXRlVmFsdWVzIH0gPSB1c2VDb2xsYXBzZUNvbnRleHQoKVxuICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZSwgdmlzaWJsZVJlZl0gPSB1c2VDdXJyZW50U3RhdGU8Ym9vbGVhbj4oaW5pdGlhbFZpc2libGUpXG5cbiAgaWYgKCF0aXRsZSkge1xuICAgIHVzZVdhcm5pbmcoJ1widGl0bGVcIiBpcyByZXF1aXJlZC4nLCAnQ29sbGFwc2UnKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZhbHVlcy5sZW5ndGgpIHJldHVyblxuICAgIGNvbnN0IGlzQWN0aXZlID0gISF2YWx1ZXMuZmluZChpdGVtID0+IGl0ZW0gPT09IGluZGV4KVxuICAgIHNldFZpc2libGUoaXNBY3RpdmUpXG4gIH0sIFt2YWx1ZXMuam9pbignLCcpXSlcblxuICBjb25zdCBjbGlja0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV4dCA9ICF2aXNpYmxlUmVmLmN1cnJlbnRcbiAgICBzZXRWaXNpYmxlKG5leHQpXG4gICAgdXBkYXRlVmFsdWVzICYmIHVwZGF0ZVZhbHVlcyhpbmRleCwgbmV4dClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgY29sbGFwc2UgJHtzaGFkb3cgPyAnc2hhZG93JyA6ICcnfSAke2NsYXNzTmFtZX1gfVxuICAgICAgey4uLndpdGhQdXJlUHJvcHMocHJvcHMpfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidmlld1wiIHJvbGU9XCJidXR0b25cIiBvbkNsaWNrPXtjbGlja0hhbmRsZXJ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgPGgzPnt0aXRsZX08L2gzPiA8Q29sbGFwc2VJY29uIGFjdGl2ZT17dmlzaWJsZX0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtzdWJ0aXRsZSAmJiA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+e3N1YnRpdGxlfTwvZGl2Pn1cbiAgICAgIDwvZGl2PlxuICAgICAgPEV4cGFuZCBpc0V4cGFuZGVkPXt2aXNpYmxlfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9FeHBhbmQ+XG4gICAgICA8c3R5bGUganN4PntgXG4gICAgICAgIC5jb2xsYXBzZSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ib3JkZXJ9O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3RoZW1lLnBhbGV0dGUuYm9yZGVyfTtcbiAgICAgICAgICBmb250LXNpemU6ICR7U0NBTEVTLmZvbnQoMSl9O1xuICAgICAgICAgIHdpZHRoOiAke1NDQUxFUy53aWR0aCgxLCAnYXV0bycpfTtcbiAgICAgICAgICBoZWlnaHQ6ICR7U0NBTEVTLmhlaWdodCgxLCAnYXV0bycpfTtcbiAgICAgICAgICBwYWRkaW5nOiAke1NDQUxFUy5wdCgxLjIpfSAke1NDQUxFUy5wcigwKX0gJHtTQ0FMRVMucGIoMS4yKX0gJHtTQ0FMRVMucGwoMCl9O1xuICAgICAgICAgIG1hcmdpbjogJHtTQ0FMRVMubXQoMCl9ICR7U0NBTEVTLm1yKDApfSAke1NDQUxFUy5tYigwKX0gJHtTQ0FMRVMubWwoMCl9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNoYWRvdyB7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHt0aGVtZS5leHByZXNzaXZlbmVzcy5zaGFkb3dTbWFsbH07XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR7dGhlbWUubGF5b3V0LnJhZGl1c307XG4gICAgICAgICAgcGFkZGluZzogJHt0aGVtZS5sYXlvdXQuZ2FwfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC52aWV3IHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJHt0aGVtZS5wYWxldHRlLmZvcmVncm91bmR9O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIGgzIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICR7dGhlbWUucGFsZXR0ZS5hY2NlbnRzXzV9O1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0aXRsZSA+IDpnbG9iYWwoKikge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICAgICAgICAgIHBhZGRpbmc6ICR7U0NBTEVTLnB0KDEuMil9ICR7U0NBTEVTLnByKDApfSAke1NDQUxFUy5wYigxLjIpfSAke1NDQUxFUy5wbCgwKX07XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCA+IDpnbG9iYWwoKjpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCA+IDpnbG9iYWwoKjpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvZGl2PlxuICApXG59XG5cbkNvbGxhcHNlQ29tcG9uZW50LmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wc1xuQ29sbGFwc2VDb21wb25lbnQuZGlzcGxheU5hbWUgPSAnR2Vpc3RDb2xsYXBzZSdcbmNvbnN0IENvbGxhcHNlID0gd2l0aFNjYWxlYWJsZShDb2xsYXBzZUNvbXBvbmVudClcbmV4cG9ydCBkZWZhdWx0IENvbGxhcHNlXG4iXX0= */\n/*@ sourceURL=collapse.tsx */")));
};
CollapseComponent.defaultProps = defaultProps$1;
CollapseComponent.displayName = 'GeistCollapse';
var Collapse = withScaleable(CollapseComponent);
var _excluded = ["children", "accordion", "className"];
var defaultProps = {
accordion: true,
className: ''
};
var CollapseGroupComponent = function CollapseGroupComponent(_ref) {
var children = _ref.children,
accordion = _ref.accordion,
className = _ref.className,
props = _objectWithoutProperties(_ref, _excluded);
var _useScaleable = useScaleable(),
SCALES = _useScaleable.SCALES;
var _useCurrentState = useCurrentState([]),
_useCurrentState2 = _slicedToArray(_useCurrentState, 3),
state = _useCurrentState2[0],
setState = _useCurrentState2[1],
stateRef = _useCurrentState2[2];
var updateValues = function updateValues(currentIndex, nextState) {
var hasChild = stateRef.current.find(function (val) {
return val === currentIndex;
});
if (accordion) {
if (nextState) return setState([currentIndex]);
return setState([]);
}
if (nextState) {
// In a few cases, the user will set Collapse Component state manually.
// If the user incorrectly set the state, Group component should ignore it.
/* istanbul ignore if */
if (hasChild) return;
return setState([].concat(_toConsumableArray(stateRef.current), [currentIndex]));
}
setState(stateRef.current.filter(function (item) {
return item !== currentIndex;
}));
};
var initialValue = React.useMemo(function () {
return {
values: state,
updateVal