@react95/core
Version:
Windows 95 styleguide
112 lines (111 loc) • 3.04 kB
JavaScript
;
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;