analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
45 lines (43 loc) • 1.57 kB
JavaScript
// src/components/Chips/Chips.tsx
import { Check } from "phosphor-react";
// src/utils/utils.ts
import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";
function cn(...inputs) {
return twMerge(clsx(inputs));
}
// src/components/Chips/Chips.tsx
import { jsx, jsxs } from "react/jsx-runtime";
var STATE_CLASSES = {
default: "bg-background text-text-950 border border-border-100 hover:bg-secondary-50 hover:border-border-300",
selected: "bg-info-background text-primary-950 border-2 border-primary-950 hover:bg-secondary-50 focus-visible:border-0"
};
var Chips = ({
children,
selected = false,
className = "",
disabled,
type = "button",
...props
}) => {
const stateClasses = selected ? STATE_CLASSES.selected : STATE_CLASSES.default;
const baseClasses = "inline-flex items-center justify-center rounded-full cursor-pointer font-normal text-sm px-4 py-2 gap-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-0 focus-visible:ring-primary-600 disabled:opacity-40 disabled:cursor-not-allowed";
return /* @__PURE__ */ jsxs(
"button",
{
className: cn(baseClasses, stateClasses, className),
disabled,
type,
...props,
children: [
selected && /* @__PURE__ */ jsx("span", { className: `flex items-center`, children: /* @__PURE__ */ jsx(Check, { weight: "bold", size: 16 }) }),
/* @__PURE__ */ jsx("span", { className: "flex-1", children })
]
}
);
};
var Chips_default = Chips;
export {
Chips_default as default
};
//# sourceMappingURL=index.mjs.map