UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

126 lines (114 loc) 4.95 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunkHN2HFYUOjs = require('./chunk-HN2HFYUO.js'); var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js'); // src/components/Accordation/Accordation.tsx var _react = require('react'); var _CaretRight = require('@phosphor-icons/react/dist/csr/CaretRight'); var _jsxruntime = require('react/jsx-runtime'); var CardAccordation = _react.forwardRef.call(void 0, ({ trigger, children, className, defaultExpanded = false, expanded: controlledExpanded, onToggleExpanded, value, disabled = false, triggerClassName, contentClassName, ...props }, ref) => { const [internalExpanded, setInternalExpanded] = _react.useState.call(void 0, defaultExpanded); const generatedId = _react.useId.call(void 0, ); const contentId = value ? `accordion-content-${value}` : generatedId; const headerId = value ? `accordion-header-${value}` : `${generatedId}-header`; const isControlled = controlledExpanded !== void 0; const isExpanded = isControlled ? controlledExpanded : internalExpanded; _react.useEffect.call(void 0, () => { if (isControlled) { setInternalExpanded(controlledExpanded); } }, [isControlled, controlledExpanded]); const handleToggle = () => { if (disabled) return; const newExpanded = !isExpanded; if (!isControlled) { setInternalExpanded(newExpanded); } _optionalChain([onToggleExpanded, 'optionalCall', _ => _(newExpanded)]); }; const handleKeyDown = (event) => { if (disabled) return; if (event.key === "Enter" || event.key === " ") { event.preventDefault(); handleToggle(); } }; return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkHN2HFYUOjs.CardBase, { ref, layout: "vertical", padding: "none", minHeight: "none", className: _chunkTN3AYOMVjs.cn.call(void 0, "overflow-hidden", className), ...props, children: [ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "button", { id: headerId, type: "button", onClick: handleToggle, onKeyDown: handleKeyDown, disabled, className: _chunkTN3AYOMVjs.cn.call(void 0, "w-full cursor-pointer not-aria-expanded:rounded-xl aria-expanded:rounded-t-xl flex items-center justify-between gap-3 text-left transition-colors duration-200 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-950 focus-visible:ring-inset pl-2 pr-10", disabled && "cursor-not-allowed text-text-400", triggerClassName ), "aria-expanded": isExpanded, "aria-controls": contentId, "aria-disabled": disabled, "data-value": value, children: [ trigger, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CaretRight.CaretRightIcon, { size: 20, className: _chunkTN3AYOMVjs.cn.call(void 0, "transition-transform duration-200 flex-shrink-0", disabled ? "text-gray-400" : "text-text-700", isExpanded ? "rotate-90" : "rotate-0" ), "data-testid": "accordion-caret" } ) ] } ), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "section", { id: contentId, "aria-labelledby": headerId, "aria-hidden": !isExpanded, className: _chunkTN3AYOMVjs.cn.call(void 0, "transition-all duration-300 ease-in-out overflow-hidden", isExpanded ? "opacity-100" : "max-h-0 opacity-0" ), "data-testid": "accordion-content", "data-value": value, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkTN3AYOMVjs.cn.call(void 0, "p-4 pt-0", contentClassName), children }) } ) ] } ); } ); CardAccordation.displayName = "CardAccordation"; exports.CardAccordation = CardAccordation; //# sourceMappingURL=chunk-YBM4EYPA.js.map