UNPKG

@react95/core

Version:
112 lines (111 loc) 3.04 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const cn = require("classnames"); const React = require("react"); const close = require("./close.svg.cjs"); const help = require("./help.svg.cjs"); const maximize = require("./maximize.svg.cjs"); const minimize = require("./minimize.svg.cjs"); const restore = require("./restore.svg.cjs"); const Frame = require("../Frame/Frame.cjs"); const Button_css = require("../Button/Button.css.cjs"); const TitleBar_css = require("./TitleBar.css.cjs"); const defaultOptions = { help: { alt: "help", src: help }, close: { alt: "close", src: close }, maximize: { alt: "maximize", src: maximize }, minimize: { alt: "minimize", src: minimize }, restore: { alt: "restore", src: restore } }; const OptionsBox = Frame.fixedForwardRef( (rest, ref) => /* @__PURE__ */ React.createElement( Frame.Frame, { ...rest, ref, className: cn(TitleBar_css.optionsBox, rest.className) } ) ); const Option = Frame.fixedForwardRef( (rest, ref) => /* @__PURE__ */ React.createElement( Frame.Frame, { as: "button", ...rest, ref, className: cn(Button_css.button, TitleBar_css.option, rest.className) } ) ); const DefaultOption = Frame.fixedForwardRef( (props, ref) => { const { kind, ...rest } = props; const optionType = defaultOptions[kind] || defaultOptions.help; return /* @__PURE__ */ React.createElement(Option, { ...rest, ref }, /* @__PURE__ */ React.createElement("img", { src: optionType.src, alt: optionType.alt })); } ); const Help = Frame.fixedForwardRef( (props, ref) => { return /* @__PURE__ */ React.createElement(DefaultOption, { ...props, kind: "help", ref }); } ); const Close = Frame.fixedForwardRef( (props, ref) => { return /* @__PURE__ */ React.createElement(DefaultOption, { ...props, kind: "close", ref }); } ); const Maximize = Frame.fixedForwardRef( (props, ref) => { return /* @__PURE__ */ React.createElement(DefaultOption, { ...props, kind: "maximize", ref }); } ); const Minimize = Frame.fixedForwardRef( (props, ref) => { return /* @__PURE__ */ React.createElement(DefaultOption, { ...props, kind: "minimize", ref }); } ); const Restore = Frame.fixedForwardRef( (props, ref) => { return /* @__PURE__ */ React.createElement(DefaultOption, { ...props, kind: "restore", ref }); } ); const TitleBarRenderer = ({ children, title = "UNKNOWN.EXE", icon, active = true, ...rest }, ref) => /* @__PURE__ */ React.createElement( Frame.Frame, { ...rest, className: cn(TitleBar_css.titleBarBackground({ active }), rest.className), ref }, icon && icon, /* @__PURE__ */ React.createElement("div", { className: TitleBar_css.title }, title), children ); const TitleBar = Object.assign( Frame.fixedForwardRef(TitleBarRenderer), { Option, OptionsBox, Help, Close, Maximize, Minimize, Restore } ); exports.TitleBar = TitleBar;