Vacancy added

This commit is contained in:
libertyoms
2025-04-27 08:51:09 +02:00
parent 809f5c6ff7
commit 1be00d7a42
20 changed files with 1203 additions and 1 deletions

View File

@ -20,7 +20,7 @@ const Button: React.FC<ButtonProps> = ({
}) => {
// Base styles including focus ring using semantic vars
const baseStyle =
"inline-flex items-center justify-center rounded-lg font-semibold transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";
"inline-flex items-center justify-center rounded-lg font-semibold transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background cursor-pointer disabled:pointer-events-none disabled:opacity-50 text-sm";
// Variant styles using semantic vars (Tailwind classes generated via @theme)
const variantStyles = {

View File

@ -0,0 +1,19 @@
import React from "react";
const CustomButton = React.forwardRef<
HTMLButtonElement,
React.ButtonHTMLAttributes<HTMLButtonElement>
>(({ className, children, ...props }, ref) => {
return (
<button
className={`inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 ${className}`}
ref={ref}
{...props}
>
{children}
</button>
);
});
CustomButton.displayName = "CustomButton";
export { CustomButton };

View File

@ -0,0 +1,19 @@
import React from "react";
type CustomInputProps = React.InputHTMLAttributes<HTMLInputElement>;
const CustomInput = React.forwardRef<HTMLInputElement, CustomInputProps>(
({ className, type, ...props }, ref) => {
return (
<input
type={type}
className={`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${className}`}
ref={ref}
{...props}
/>
);
}
);
CustomInput.displayName = "CustomInput";
export { CustomInput };

View File

@ -0,0 +1,18 @@
import React from "react";
type CustomLabelProps = React.LabelHTMLAttributes<HTMLLabelElement>;
const CustomLabel = React.forwardRef<HTMLLabelElement, CustomLabelProps>(
({ className, ...props }, ref) => {
return (
<label
ref={ref}
className={`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 ${className}`}
{...props}
/>
);
}
);
CustomLabel.displayName = "CustomLabel";
export { CustomLabel };

View File

@ -0,0 +1,19 @@
import React from "react";
type CustomTextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
const CustomTextarea = React.forwardRef<
HTMLTextAreaElement,
CustomTextareaProps
>(({ className, ...props }, ref) => {
return (
<textarea
className={`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 ${className}`}
ref={ref}
{...props}
/>
);
});
CustomTextarea.displayName = "CustomTextarea";
export { CustomTextarea };