@datalayer/primer-rjsf
Version:
React JSON Schema Form (RJSF) for Primer
27 lines (26 loc) • 1.59 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { IconButton, Tooltip } from "@primer/react";
import { CopyIcon, ArrowUpIcon, ArrowDownIcon, TrashIcon } from '@primer/octicons-react';
import { TranslatableString, } from "@rjsf/utils";
export default function PrimerIconButton({ uiSchema, color, title, icon, ...props }) {
if (!color)
color = "primary";
return (_jsx(Tooltip, { sx: { p: 1 }, "aria-label": color, text: "", children: _jsx(IconButton, { variant: color, size: "small", icon: icon, onClick: (e) => e.preventDefault(), onSubmit: (e) => e.preventDefault(), "aria-label": title, ...props }) }));
}
export function CopyButton(props) {
const { registry: { translateString }, } = props;
return (_jsx(PrimerIconButton, { title: translateString(TranslatableString.CopyButton), ...props, icon: CopyIcon }));
}
export function MoveDownButton(props) {
const { registry: { translateString }, } = props;
return (_jsx(PrimerIconButton, { title: translateString(TranslatableString.MoveDownButton), ...props, icon: ArrowDownIcon }));
}
export function MoveUpButton(props) {
const { registry: { translateString }, } = props;
return (_jsx(PrimerIconButton, { title: translateString(TranslatableString.MoveUpButton), ...props, icon: ArrowUpIcon }));
}
export function RemoveButton(props) {
const { iconType, ...otherProps } = props;
const { registry: { translateString }, } = otherProps;
return (_jsx(PrimerIconButton, { title: translateString(TranslatableString.RemoveButton), ...otherProps, color: "danger", icon: TrashIcon }));
}