UNPKG

flowbite-react

Version:

Official React components built for Flowbite and Tailwind CSS

52 lines (48 loc) 2.21 kB
'use client'; 'use strict'; var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); var get = require('../../helpers/get.cjs'); var resolveProps = require('../../helpers/resolve-props.cjs'); var resolveTheme = require('../../helpers/resolve-theme.cjs'); var tailwindMerge = require('../../helpers/tailwind-merge.cjs'); var outlineXIcon = require('../../icons/outline-x-icon.cjs'); var provider = require('../../theme/provider.cjs'); var ModalContext = require('./ModalContext.cjs'); var theme = require('./theme.cjs'); const ModalHeader = React.forwardRef((props, ref) => { const { theme: rootTheme, clearTheme: rootClearTheme, applyTheme: rootApplyTheme, popup, onClose, setHeaderId } = ModalContext.useModalContext(); const provider$1 = provider.useThemeProvider(); const theme$1 = resolveTheme.useResolveTheme( [theme.modalTheme.header, provider$1.theme?.modal?.header, rootTheme?.header, props.theme], [get.get(provider$1.clearTheme, "modal.header"), get.get(rootClearTheme, "header"), props.clearTheme], [get.get(provider$1.applyTheme, "modal.header"), get.get(rootApplyTheme, "header"), props.applyTheme] ); const { as: Component = "h3", children, className, id, ...restProps } = resolveProps.resolveProps(props, provider$1.props?.modalHeader); const innerHeaderId = React.useId(); const headerId = id || innerHeaderId; React.useLayoutEffect(() => { setHeaderId(headerId); return () => setHeaderId(void 0); }, [headerId, setHeaderId]); return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: tailwindMerge.twMerge(theme$1.base, popup && theme$1.popup, className), ...restProps, children: [ /* @__PURE__ */ jsxRuntime.jsx(Component, { id: headerId, className: theme$1.title, children }), /* @__PURE__ */ jsxRuntime.jsx("button", { "aria-label": "Close", className: theme$1.close.base, type: "button", onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(outlineXIcon.OutlineXIcon, { "aria-hidden": true, className: theme$1.close.icon }) }) ] }); }); ModalHeader.displayName = "ModalHeader"; exports.ModalHeader = ModalHeader; //# sourceMappingURL=ModalHeader.cjs.map