@grazziotin/react-components-next 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/Button/Button.tsx","../src/components/ui/Input/Input.tsx","../src/components/ui/Card/Card.tsx","../src/components/ui/Badge/Badge.tsx","../src/components/ui/Avatar/Avatar.tsx"],"names":["sizeStyles","jsxs","jsx","variantStyles"],"mappings":"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","file":"index.mjs","sourcesContent":["export type ClassValue =\r\n | string\r\n | number\r\n | bigint\r\n | boolean\r\n | undefined\r\n | null\r\n | ClassValue[];\r\n\r\nexport function cn(...inputs: ClassValue[]): string {\r\n const result: string[] = [];\r\n\r\n for (const input of inputs) {\r\n if (!input && input !== 0) continue;\r\n if (typeof input === \"string\") {\r\n result.push(input);\r\n } else if (typeof input === \"number\" || typeof input === \"bigint\") {\r\n result.push(String(input));\r\n } else if (Array.isArray(input)) {\r\n const nested = cn(...(input as ClassValue[]));\r\n if (nested) result.push(nested);\r\n }\r\n }\r\n\r\n return result.join(\" \").replace(/\\s+/g, \" \").trim();\r\n}\r\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"secondary\"\n | \"outline\"\n | \"ghost\"\n | \"destructive\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n fullWidth?: boolean;\n}\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary:\n \"bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800 focus-visible:ring-blue-500\",\n secondary:\n \"bg-gray-100 text-gray-900 hover:bg-gray-200 active:bg-gray-300 focus-visible:ring-gray-400\",\n outline:\n \"border border-gray-300 bg-transparent text-gray-900 hover:bg-gray-50 active:bg-gray-100 focus-visible:ring-gray-400\",\n ghost:\n \"bg-transparent text-gray-700 hover:bg-gray-100 active:bg-gray-200 focus-visible:ring-gray-400\",\n destructive:\n \"bg-red-600 text-white hover:bg-red-700 active:bg-red-800 focus-visible:ring-red-500\",\n};\n\nconst sizeStyles: Record<ButtonSize, string> = {\n sm: \"h-8 px-3 text-sm gap-1.5\",\n md: \"h-10 px-4 text-sm gap-2\",\n lg: \"h-12 px-6 text-base gap-2.5\",\n};\n\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n loading = false,\n leftIcon,\n rightIcon,\n fullWidth = false,\n children,\n className,\n disabled,\n ...props\n}: ButtonProps) {\n const isDisabled = disabled || loading;\n\n return (\n <button\n className={cn(\n \"inline-flex items-center justify-center rounded-md font-medium\",\n \"transition-colors duration-150 ease-in-out\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n variantStyles[variant],\n sizeStyles[size],\n fullWidth && \"w-full\",\n className\n )}\n disabled={isDisabled}\n {...props}\n >\n {loading ? (\n <Spinner size={size} />\n ) : (\n leftIcon && <span className=\"shrink-0\">{leftIcon}</span>\n )}\n {children}\n {!loading && rightIcon && (\n <span className=\"shrink-0\">{rightIcon}</span>\n )}\n </button>\n );\n}\n\nfunction Spinner({ size }: { size: ButtonSize }) {\n const spinnerSize = size === \"sm\" ? \"h-3 w-3\" : size === \"lg\" ? \"h-5 w-5\" : \"h-4 w-4\";\n return (\n <svg\n className={cn(\"animate-spin shrink-0\", spinnerSize)}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n />\n </svg>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n label?: string;\n hint?: string;\n error?: string;\n size?: InputSize;\n leftAddon?: React.ReactNode;\n rightAddon?: React.ReactNode;\n fullWidth?: boolean;\n}\n\nconst sizeStyles: Record<InputSize, string> = {\n sm: \"h-8 px-2.5 text-sm\",\n md: \"h-10 px-3 text-sm\",\n lg: \"h-12 px-4 text-base\",\n};\n\nexport function Input({\n label,\n hint,\n error,\n size = \"md\",\n leftAddon,\n rightAddon,\n fullWidth = false,\n className,\n id,\n ...props\n}: InputProps) {\n const inputId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", fullWidth && \"w-full\")}>\n {label && (\n <label\n htmlFor={inputId}\n className=\"text-sm font-medium text-gray-700\"\n >\n {label}\n </label>\n )}\n <div className=\"relative flex items-center\">\n {leftAddon && (\n <span className=\"absolute left-3 flex items-center text-gray-500\">\n {leftAddon}\n </span>\n )}\n <input\n id={inputId}\n className={cn(\n \"w-full rounded-md border bg-white text-gray-900 placeholder:text-gray-400\",\n \"transition-colors duration-150\",\n \"focus:outline-none focus:ring-2 focus:ring-offset-0\",\n \"disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500\",\n sizeStyles[size],\n error\n ? \"border-red-400 focus:border-red-400 focus:ring-red-300\"\n : \"border-gray-300 focus:border-blue-500 focus:ring-blue-300\",\n leftAddon && \"pl-9\",\n rightAddon && \"pr-9\",\n className\n )}\n {...props}\n />\n {rightAddon && (\n <span className=\"absolute right-3 flex items-center text-gray-500\">\n {rightAddon}\n </span>\n )}\n </div>\n {(hint || error) && (\n <p className={cn(\"text-xs\", error ? \"text-red-500\" : \"text-gray-500\")}>\n {error ?? hint}\n </p>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n shadow?: \"none\" | \"sm\" | \"md\" | \"lg\";\n hoverable?: boolean;\n bordered?: boolean;\n padding?: \"none\" | \"sm\" | \"md\" | \"lg\";\n}\n\nconst shadowStyles = {\n none: \"\",\n sm: \"shadow-sm\",\n md: \"shadow-md\",\n lg: \"shadow-lg\",\n};\n\nconst paddingStyles = {\n none: \"\",\n sm: \"p-4\",\n md: \"p-6\",\n lg: \"p-8\",\n};\n\nexport function Card({\n shadow = \"sm\",\n hoverable = false,\n bordered = true,\n padding = \"md\",\n className,\n children,\n ...props\n}: CardProps) {\n return (\n <div\n className={cn(\n \"rounded-xl bg-white\",\n shadowStyles[shadow],\n paddingStyles[padding],\n bordered && \"border border-gray-200\",\n hoverable &&\n \"cursor-pointer transition-shadow duration-200 hover:shadow-md\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function CardHeader({ className, children, ...props }: CardHeaderProps) {\n return (\n <div className={cn(\"mb-4 flex flex-col gap-1\", className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nexport function CardTitle({ className, children, ...props }: CardTitleProps) {\n return (\n <h3\n className={cn(\"text-lg font-semibold text-gray-900\", className)}\n {...props}\n >\n {children}\n </h3>\n );\n}\n\nexport interface CardDescriptionProps\n extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nexport function CardDescription({\n className,\n children,\n ...props\n}: CardDescriptionProps) {\n return (\n <p className={cn(\"text-sm text-gray-500\", className)} {...props}>\n {children}\n </p>\n );\n}\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function CardContent({\n className,\n children,\n ...props\n}: CardContentProps) {\n return (\n <div className={cn(\"text-sm text-gray-700\", className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function CardFooter({ className, children, ...props }: CardFooterProps) {\n return (\n <div\n className={cn(\"mt-4 flex items-center gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n","import React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type BadgeVariant =\n | \"default\"\n | \"primary\"\n | \"success\"\n | \"warning\"\n | \"danger\"\n | \"info\";\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n variant?: BadgeVariant;\n dot?: boolean;\n}\n\nconst variantStyles: Record<BadgeVariant, string> = {\n default: \"bg-gray-100 text-gray-700\",\n primary: \"bg-blue-100 text-blue-700\",\n success: \"bg-green-100 text-green-700\",\n warning: \"bg-yellow-100 text-yellow-700\",\n danger: \"bg-red-100 text-red-700\",\n info: \"bg-sky-100 text-sky-700\",\n};\n\nconst dotStyles: Record<BadgeVariant, string> = {\n default: \"bg-gray-500\",\n primary: \"bg-blue-500\",\n success: \"bg-green-500\",\n warning: \"bg-yellow-500\",\n danger: \"bg-red-500\",\n info: \"bg-sky-500\",\n};\n\nexport function Badge({\n variant = \"default\",\n dot = false,\n className,\n children,\n ...props\n}: BadgeProps) {\n return (\n <span\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium\",\n variantStyles[variant],\n className\n )}\n {...props}\n >\n {dot && (\n <span\n className={cn(\"h-1.5 w-1.5 rounded-full\", dotStyles[variant])}\n />\n )}\n {children}\n </span>\n );\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n src?: string;\n alt?: string;\n fallback?: string;\n size?: AvatarSize;\n}\n\nconst sizeStyles: Record<AvatarSize, string> = {\n xs: \"h-6 w-6 text-xs\",\n sm: \"h-8 w-8 text-sm\",\n md: \"h-10 w-10 text-sm\",\n lg: \"h-12 w-12 text-base\",\n xl: \"h-16 w-16 text-lg\",\n};\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .slice(0, 2)\n .map((word) => word[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n}\n\nexport function Avatar({\n src,\n alt = \"\",\n fallback,\n size = \"md\",\n className,\n ...props\n}: AvatarProps) {\n const [imgError, setImgError] = React.useState(false);\n const showFallback = !src || imgError;\n const initials = fallback ? getInitials(fallback) : alt ? getInitials(alt) : \"?\";\n\n return (\n <span\n className={cn(\n \"relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full bg-gray-200\",\n sizeStyles[size],\n className\n )}\n {...props}\n >\n {!showFallback ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n />\n ) : (\n <span className=\"font-medium text-gray-600 select-none\">\n {initials}\n </span>\n )}\n </span>\n );\n}\n"]}
1
+ {"version":3,"sources":["#style-inject:#style-inject","../src/styles/tailwind-output.css"],"names":[],"mappings":";;;;AACyB,SAAR,YAA6B,GAAA,EAAK,EAAE,QAAA,EAAS,GAAI,EAAC,EAAG;AAC1D,EAAA,IAAY,OAAO,QAAA,KAAa,WAAA,EAAa;AAE7C,EAAA,MAAM,OAAO,QAAA,CAAS,IAAA,IAAQ,SAAS,oBAAA,CAAqB,MAAM,EAAE,CAAC,CAAA;AACrE,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA;AAC5C,EAAA,KAAA,CAAM,IAAA,GAAO,UAAA;AAEb,EAAA,IAAI,aAAa,KAAA,EAAO;AACtB,IAAA,IAAI,KAAK,UAAA,EAAY;AACnB,MAAA,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,IAAA,CAAK,UAAU,CAAA;AAAA,IAC1C,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,CAAA,MAAO;AACL,IAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,MAAM,UAAA,EAAY;AACpB,IAAA,KAAA,CAAM,WAAW,OAAA,GAAU,GAAA;AAAA,EAC7B,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,WAAA,CAAY,QAAA,CAAS,cAAA,CAAe,GAAG,CAAC,CAAA;AAAA,EAChD;AACF;;;ACvB8B,WAAA,CAAY,+sfAAmyf,CAAA","file":"index.mjs","sourcesContent":["\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\"/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\\n@layer properties {\\n @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {\\n *,\\n :before,\\n :after,\\n ::backdrop {\\n --tw-border-style:solid;\\n --tw-font-weight:initial;\\n --tw-shadow:0 0 #0000;\\n --tw-shadow-color:initial;\\n --tw-shadow-alpha:100%;\\n --tw-inset-shadow:0 0 #0000;\\n --tw-inset-shadow-color:initial;\\n --tw-inset-shadow-alpha:100%;\\n --tw-ring-color:initial;\\n --tw-ring-shadow:0 0 #0000;\\n --tw-inset-ring-color:initial;\\n --tw-inset-ring-shadow:0 0 #0000;\\n --tw-ring-inset:initial;\\n --tw-ring-offset-width:0px;\\n --tw-ring-offset-color:#fff;\\n --tw-ring-offset-shadow:0 0 #0000;\\n --tw-outline-style:solid;\\n --tw-blur:initial;\\n --tw-brightness:initial;\\n --tw-contrast:initial;\\n --tw-grayscale:initial;\\n --tw-hue-rotate:initial;\\n --tw-invert:initial;\\n --tw-opacity:initial;\\n --tw-saturate:initial;\\n --tw-sepia:initial;\\n --tw-drop-shadow:initial;\\n --tw-drop-shadow-color:initial;\\n --tw-drop-shadow-alpha:100%;\\n --tw-drop-shadow-size:initial;\\n }\\n }\\n}\\n@layer theme {\\n :root,\\n :host {\\n --font-sans:ui-sans-serif,\\n system-ui,\\n sans-serif,\\n \\\"Apple Color Emoji\\\",\\n \\\"Segoe UI Emoji\\\",\\n \\\"Segoe UI Symbol\\\",\\n \\\"Noto Color Emoji\\\";\\n --font-mono:ui-monospace,\\n SFMono-Regular,\\n Menlo,\\n Monaco,\\n Consolas,\\n \\\"Liberation Mono\\\",\\n \\\"Courier New\\\",\\n monospace;\\n --color-red-600:oklch(57.7% .245 27.325);\\n --color-green-50:oklch(98.2% .018 155.826);\\n --color-green-400:oklch(79.2% .209 151.711);\\n --color-green-500:oklch(72.3% .219 149.579);\\n --color-blue-500:oklch(62.3% .214 259.815);\\n --color-gray-50:oklch(98.5% .002 247.839);\\n --color-gray-100:oklch(96.7% .003 264.542);\\n --color-gray-200:oklch(92.8% .006 264.531);\\n --color-gray-500:oklch(55.1% .027 264.364);\\n --color-gray-600:oklch(44.6% .03 256.802);\\n --color-gray-700:oklch(37.3% .034 259.733);\\n --color-gray-900:oklch(21% .034 264.665);\\n --color-black:#000;\\n --color-white:#fff;\\n --spacing:.25rem;\\n --text-xs:.75rem;\\n --text-xs--line-height:calc(1 / .75);\\n --text-sm:.875rem;\\n --text-sm--line-height:calc(1.25 / .875);\\n --text-2xl:1.5rem;\\n --text-2xl--line-height:calc(2 / 1.5);\\n --font-weight-medium:500;\\n --font-weight-semibold:600;\\n --font-weight-bold:700;\\n --radius-lg:.5rem;\\n --default-transition-duration:.15s;\\n --default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);\\n --default-font-family:var(--font-sans);\\n --default-mono-font-family:var(--font-mono);\\n }\\n}\\n@layer base {\\n *,\\n :after,\\n :before,\\n ::backdrop {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n ::file-selector-button {\\n box-sizing: border-box;\\n border: 0 solid;\\n margin: 0;\\n padding: 0;\\n }\\n html,\\n :host {\\n -webkit-text-size-adjust: 100%;\\n tab-size: 4;\\n line-height: 1.5;\\n font-family: var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\");\\n font-feature-settings: var(--default-font-feature-settings,normal);\\n font-variation-settings: var(--default-font-variation-settings,normal);\\n -webkit-tap-highlight-color: transparent;\\n }\\n hr {\\n height: 0;\\n color: inherit;\\n border-top-width: 1px;\\n }\\n abbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n }\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-size: inherit;\\n font-weight: inherit;\\n }\\n a {\\n color: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n -webkit-text-decoration: inherit;\\n text-decoration: inherit;\\n }\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n code,\\n kbd,\\n samp,\\n pre {\\n font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace);\\n font-feature-settings: var(--default-mono-font-feature-settings,normal);\\n font-variation-settings: var(--default-mono-font-variation-settings,normal);\\n font-size: 1em;\\n }\\n small {\\n font-size: 80%;\\n }\\n sub,\\n sup {\\n vertical-align: baseline;\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n }\\n sub {\\n bottom: -.25em;\\n }\\n sup {\\n top: -.5em;\\n }\\n table {\\n text-indent: 0;\\n border-color: inherit;\\n border-collapse: collapse;\\n }\\n :-moz-focusring {\\n outline: auto;\\n }\\n progress {\\n vertical-align: baseline;\\n }\\n summary {\\n display: list-item;\\n }\\n ol,\\n ul,\\n menu {\\n list-style: none;\\n }\\n img,\\n svg,\\n video,\\n canvas,\\n audio,\\n iframe,\\n embed,\\n object {\\n vertical-align: middle;\\n display: block;\\n }\\n img,\\n video {\\n max-width: 100%;\\n height: auto;\\n }\\n button,\\n input,\\n select,\\n optgroup,\\n textarea {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n ::file-selector-button {\\n font: inherit;\\n font-feature-settings: inherit;\\n font-variation-settings: inherit;\\n letter-spacing: inherit;\\n color: inherit;\\n opacity: 1;\\n background-color: #0000;\\n border-radius: 0;\\n }\\n :where(select:is([multiple], [size])) optgroup {\\n font-weight: bolder;\\n }\\n :where(select:is([multiple], [size])) optgroup option {\\n padding-inline-start: 20px;\\n }\\n ::file-selector-button {\\n margin-inline-end: 4px;\\n }\\n ::placeholder {\\n opacity: 1;\\n }\\n @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {\\n ::placeholder {\\n color: currentColor;\\n }\\n @supports (color:color-mix(in lab, red, red)) {\\n ::placeholder {\\n color: color-mix(in oklab, currentcolor 50%, transparent);\\n }\\n }\\n }\\n textarea {\\n resize: vertical;\\n }\\n ::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n ::-webkit-date-and-time-value {\\n min-height: 1lh;\\n text-align: inherit;\\n }\\n ::-webkit-datetime-edit {\\n display: inline-flex;\\n }\\n ::-webkit-datetime-edit-fields-wrapper {\\n padding: 0;\\n }\\n ::-webkit-datetime-edit {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-year-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-month-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-day-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-hour-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-minute-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-second-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-millisecond-field {\\n padding-block: 0;\\n }\\n ::-webkit-datetime-edit-meridiem-field {\\n padding-block: 0;\\n }\\n ::-webkit-calendar-picker-indicator {\\n line-height: 1;\\n }\\n :-moz-ui-invalid {\\n box-shadow: none;\\n }\\n button,\\n input:where([type=button], [type=reset], [type=submit]) {\\n appearance: button;\\n }\\n ::file-selector-button {\\n appearance: button;\\n }\\n ::-webkit-inner-spin-button {\\n height: auto;\\n }\\n ::-webkit-outer-spin-button {\\n height: auto;\\n }\\n [hidden]:where(:not([hidden=until-found])) {\\n display: none !important;\\n }\\n}\\n@layer components;\\n@layer utilities {\\n .container {\\n width: 100%;\\n }\\n @media (min-width: 40rem) {\\n .container {\\n max-width: 40rem;\\n }\\n }\\n @media (min-width: 48rem) {\\n .container {\\n max-width: 48rem;\\n }\\n }\\n @media (min-width: 64rem) {\\n .container {\\n max-width: 64rem;\\n }\\n }\\n @media (min-width: 80rem) {\\n .container {\\n max-width: 80rem;\\n }\\n }\\n @media (min-width: 96rem) {\\n .container {\\n max-width: 96rem;\\n }\\n }\\n .mt-2 {\\n margin-top: calc(var(--spacing) * 2);\\n }\\n .mt-4 {\\n margin-top: calc(var(--spacing) * 4);\\n }\\n .block {\\n display: block;\\n }\\n .block\\\\! {\\n display: block !important;\\n }\\n .flex {\\n display: flex;\\n }\\n .hidden {\\n display: none;\\n }\\n .inline-block {\\n display: inline-block;\\n }\\n .table {\\n display: table;\\n }\\n .min-h-screen {\\n min-height: 100vh;\\n }\\n .min-w-0 {\\n min-width: calc(var(--spacing) * 0);\\n }\\n .flex-1 {\\n flex: 1;\\n }\\n .border-collapse {\\n border-collapse: collapse;\\n }\\n .resize {\\n resize: both;\\n }\\n .flex-col {\\n flex-direction: column;\\n }\\n .items-center {\\n align-items: center;\\n }\\n .justify-center {\\n justify-content: center;\\n }\\n .gap-2 {\\n gap: calc(var(--spacing) * 2);\\n }\\n .gap-3 {\\n gap: calc(var(--spacing) * 3);\\n }\\n .truncate {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n }\\n .truncate\\\\! {\\n text-overflow: ellipsis !important;\\n white-space: nowrap !important;\\n overflow: hidden !important;\\n }\\n .rounded {\\n border-radius: .25rem;\\n }\\n .rounded-lg {\\n border-radius: var(--radius-lg);\\n }\\n .border {\\n border-style: var(--tw-border-style);\\n border-width: 1px;\\n }\\n .border-green-500 {\\n border-color: var(--color-green-500);\\n }\\n .bg-blue-500 {\\n background-color: var(--color-blue-500);\\n }\\n .bg-gray-50 {\\n background-color: var(--color-gray-50);\\n }\\n .bg-gray-100 {\\n background-color: var(--color-gray-100);\\n }\\n .bg-gray-200 {\\n background-color: var(--color-gray-200);\\n }\\n .bg-gray-900 {\\n background-color: var(--color-gray-900);\\n }\\n .bg-green-50 {\\n background-color: var(--color-green-50);\\n }\\n .bg-red-600 {\\n background-color: var(--color-red-600);\\n }\\n .p-4 {\\n padding: calc(var(--spacing) * 4);\\n }\\n .px-2 {\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n .px-4 {\\n padding-inline: calc(var(--spacing) * 4);\\n }\\n .px-6 {\\n padding-inline: calc(var(--spacing) * 6);\\n }\\n .py-0 {\\n padding-block: calc(var(--spacing) * 0);\\n }\\n .py-0\\\\.5 {\\n padding-block: calc(var(--spacing) * .5);\\n }\\n .py-1 {\\n padding-block: calc(var(--spacing) * 1);\\n }\\n .py-2 {\\n padding-block: calc(var(--spacing) * 2);\\n }\\n .py-3 {\\n padding-block: calc(var(--spacing) * 3);\\n }\\n .text-center {\\n text-align: center;\\n }\\n .font-mono {\\n font-family: var(--font-mono);\\n }\\n .text-2xl {\\n font-size: var(--text-2xl);\\n line-height: var(--tw-leading,var(--text-2xl--line-height));\\n }\\n .text-sm {\\n font-size: var(--text-sm);\\n line-height: var(--tw-leading,var(--text-sm--line-height));\\n }\\n .text-sm\\\\! {\\n font-size: var(--text-sm) !important;\\n line-height: var(--tw-leading,var(--text-sm--line-height)) !important;\\n }\\n .text-xs {\\n font-size: var(--text-xs);\\n line-height: var(--tw-leading,var(--text-xs--line-height));\\n }\\n .text-xs\\\\! {\\n font-size: var(--text-xs) !important;\\n line-height: var(--tw-leading,var(--text-xs--line-height)) !important;\\n }\\n .font-bold {\\n --tw-font-weight:var(--font-weight-bold);\\n font-weight: var(--font-weight-bold);\\n }\\n .font-medium {\\n --tw-font-weight:var(--font-weight-medium);\\n font-weight: var(--font-weight-medium);\\n }\\n .font-semibold {\\n --tw-font-weight:var(--font-weight-semibold);\\n font-weight: var(--font-weight-semibold);\\n }\\n .font-semibold\\\\! {\\n --tw-font-weight:var(--font-weight-semibold) !important;\\n font-weight: var(--font-weight-semibold) !important;\\n }\\n .text-black {\\n color: var(--color-black);\\n }\\n .text-gray-500 {\\n color: var(--color-gray-500);\\n }\\n .text-gray-600 {\\n color: var(--color-gray-600);\\n }\\n .text-gray-700 {\\n color: var(--color-gray-700);\\n }\\n .text-gray-900 {\\n color: var(--color-gray-900);\\n }\\n .text-green-400 {\\n color: var(--color-green-400);\\n }\\n .text-white {\\n color: var(--color-white);\\n }\\n .underline {\\n text-decoration-line: underline;\\n }\\n .antialiased {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n }\\n .shadow {\\n --tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);\\n box-shadow:\\n var(--tw-inset-shadow),\\n var(--tw-inset-ring-shadow),\\n var(--tw-ring-offset-shadow),\\n var(--tw-ring-shadow),\\n var(--tw-shadow);\\n }\\n .outline {\\n outline-style: var(--tw-outline-style);\\n outline-width: 1px;\\n }\\n .blur {\\n --tw-blur:blur(8px);\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .filter {\\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\\n }\\n .transition {\\n transition-property:\\n color,\\n background-color,\\n border-color,\\n outline-color,\\n text-decoration-color,\\n fill,\\n stroke,\\n --tw-gradient-from,\\n --tw-gradient-via,\\n --tw-gradient-to,\\n opacity,\\n box-shadow,\\n transform,\\n translate,\\n scale,\\n rotate,\\n filter,\\n -webkit-backdrop-filter,\\n backdrop-filter,\\n display,\\n content-visibility,\\n overlay,\\n pointer-events;\\n transition-timing-function: var(--tw-ease,var(--default-transition-timing-function));\\n transition-duration: var(--tw-duration,var(--default-transition-duration));\\n }\\n}\\n@property --tw-border-style { syntax:\\\"*\\\";inherits:false;initial-value:solid }\\n@property --tw-font-weight { syntax:\\\"*\\\";inherits:false }\\n@property --tw-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-inset-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-inset-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-inset-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-ring-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ring-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-inset-ring-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-inset-ring-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-ring-inset { syntax:\\\"*\\\";inherits:false }\\n@property --tw-ring-offset-width { syntax:\\\"<length>\\\";inherits:false;initial-value:0 }\\n@property --tw-ring-offset-color { syntax:\\\"*\\\";inherits:false;initial-value:#fff }\\n@property --tw-ring-offset-shadow { syntax:\\\"*\\\";inherits:false;initial-value:0 0 #0000 }\\n@property --tw-outline-style { syntax:\\\"*\\\";inherits:false;initial-value:solid }\\n@property --tw-blur { syntax:\\\"*\\\";inherits:false }\\n@property --tw-brightness { syntax:\\\"*\\\";inherits:false }\\n@property --tw-contrast { syntax:\\\"*\\\";inherits:false }\\n@property --tw-grayscale { syntax:\\\"*\\\";inherits:false }\\n@property --tw-hue-rotate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-invert { syntax:\\\"*\\\";inherits:false }\\n@property --tw-opacity { syntax:\\\"*\\\";inherits:false }\\n@property --tw-saturate { syntax:\\\"*\\\";inherits:false }\\n@property --tw-sepia { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow-color { syntax:\\\"*\\\";inherits:false }\\n@property --tw-drop-shadow-alpha { syntax:\\\"<percentage>\\\";inherits:false;initial-value:100% }\\n@property --tw-drop-shadow-size { syntax:\\\"*\\\";inherits:false }\\n\")"]}
@@ -0,0 +1,224 @@
1
+ import { CSSProperties, Breakpoint } from '@mui/material';
2
+ import React$1, { ComponentPropsWithoutRef } from 'react';
3
+
4
+ /**
5
+ * Tipo do atributo nativo `className` de um elemento `div` no React.
6
+ * Equivalente a `React.HTMLAttributes<HTMLDivElement>["className"]`.
7
+ */
8
+ type CardClassName = ComponentPropsWithoutRef<"div">["className"];
9
+ /**
10
+ * Propriedades do componente {@link Card}.
11
+ * O Card é um container com cabeçalho opcional (título, ícone) e área de conteúdo.
12
+ * Estilos dinâmicos são aplicados via MUI `Box`; classes utilitárias podem ser
13
+ * combinadas com `className` e a função `cn`.
14
+ */
15
+ interface CardProps {
16
+ /**
17
+ * Largura do card.
18
+ * Aceita qualquer valor CSS válido (ex.: `"100%"`, `"320px"`, `"auto"`).
19
+ * @default "100%"
20
+ */
21
+ width?: string;
22
+ /**
23
+ * Altura do card.
24
+ * Aceita qualquer valor CSS válido (ex.: `"auto"`, `"200px"`, `"100%"`).
25
+ * @default "auto"
26
+ */
27
+ height?: string;
28
+ /**
29
+ * Margem externa do card.
30
+ * Aceita shorthand ou valores individuais do CSS (ex.: `"16px"`, `"0 8px"`).
31
+ */
32
+ margin?: string;
33
+ /**
34
+ * Texto exibido no cabeçalho do card.
35
+ * Sempre renderizado; quando o texto ultrapassa o espaço, é truncado com reticências.
36
+ */
37
+ title?: string;
38
+ /**
39
+ * Habilita o tooltip do Mantine sobre o título ao passar o mouse.
40
+ * O título continua visível com ou sem tooltip; quando `false`, o hover não exibe popup.
41
+ * @default false
42
+ */
43
+ toolTip?: boolean;
44
+ /**
45
+ * Atributo `className` do container principal (tipo nativo do React).
46
+ * String de classes CSS; mesclada com classes internas via `cn`.
47
+ * @see {@link CardClassName}
48
+ */
49
+ className?: CardClassName;
50
+ /**
51
+ * Largura da barra do cabeçalho (área do título e ícone).
52
+ * @default "100%"
53
+ */
54
+ titleWidth?: string;
55
+ /**
56
+ * Cor de fundo do cabeçalho.
57
+ * Aceita cores CSS (hex, rgb, variáveis CSS, etc.).
58
+ * @default "var(--color-primary)"
59
+ */
60
+ titleColor?: string;
61
+ /**
62
+ * Raio da borda apenas do cabeçalho (ex.: `"8px 8px 0 0"`).
63
+ * Útil para arredondar só o topo quando o conteúdo não tem o mesmo radius.
64
+ */
65
+ borderTitle?: string;
66
+ /**
67
+ * Callback ao clicar no card inteiro.
68
+ * Quando definido, o cursor do card passa a ser `pointer` com `!important`.
69
+ */
70
+ onClick?: () => void;
71
+ /**
72
+ * Raio da borda do container principal do card (ex.: `"10px"`).
73
+ */
74
+ borderRadius?: string;
75
+ /**
76
+ * Elemento React exibido à direita do título no cabeçalho (ícone, botão, ação, etc.).
77
+ */
78
+ icon?: React.ReactNode;
79
+ /**
80
+ * Conteúdo principal do card, renderizado abaixo do cabeçalho.
81
+ */
82
+ children: React.ReactNode;
83
+ /**
84
+ * Alinhamento horizontal dos itens no cabeçalho (título e `icon`).
85
+ * Mesmos valores de `justify-content` do CSS (ex.: `"space-between"`, `"flex-end"`).
86
+ * @default "space-between"
87
+ */
88
+ justifyContent?: CSSProperties["justifyContent"];
89
+ }
90
+
91
+ /**
92
+ * Container de UI com cabeçalho colorido (título e ícone opcionais) e área de conteúdo.
93
+ *
94
+ * O card usa MUI `Box` para dimensões, sombra e responsividade; classes Tailwind
95
+ * extras podem ser passadas em `className` e são mescladas com `cn`. O título é
96
+ * sempre exibido e truncado quando necessário; o tooltip (Mantine) só aparece se
97
+ * `toolTip` for `true`.
98
+ *
99
+ * @param props - Propriedades do componente. Detalhes em {@link CardProps}.
100
+ * @param props.width - Largura do card. Padrão: `"100%"`.
101
+ * @param props.height - Altura do card. Padrão: `"auto"`.
102
+ * @param props.margin - Margem externa.
103
+ * @param props.title - Texto do cabeçalho.
104
+ * @param props.toolTip - Habilita tooltip no título.
105
+ * @param props.className - `className` nativo do React no container.
106
+ * @param props.titleWidth - Largura da barra do cabeçalho. Padrão: `"100%"`.
107
+ * @param props.titleColor - Cor de fundo do cabeçalho. Padrão: `var(--color-primary)`.
108
+ * @param props.borderTitle - `border-radius` só do cabeçalho.
109
+ * @param props.onClick - Clique no card; adiciona `cursor: pointer !important`.
110
+ * @param props.borderRadius - `border-radius` do container.
111
+ * @param props.icon - Conteúdo à direita do título.
112
+ * @param props.children - Corpo do card.
113
+ * @param props.justifyContent - Alinhamento título/ícone. Padrão: `"space-between"`.
114
+ *
115
+ * @returns Elemento `Box` com cabeçalho e `children`.
116
+ *
117
+ * @example
118
+ * ```tsx
119
+ * <Card title="Resumo" toolTip icon={<span>+</span>}>
120
+ * <p>Conteúdo interno</p>
121
+ * </Card>
122
+ * ```
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <Card
127
+ * title="Clique aqui"
128
+ * width="320px"
129
+ * onClick={() => alert("Card clicado")}
130
+ * >
131
+ * Card interativo
132
+ * </Card>
133
+ * ```
134
+ */
135
+ declare function Card({ margin, onClick, title, toolTip, className, borderTitle, children, borderRadius, width, height, titleWidth, justifyContent, titleColor, icon, }: Readonly<CardProps>): React.ReactElement;
136
+
137
+ /**
138
+ * Propriedades do componente {@link Dialog}.
139
+ * Modal baseado no MUI `Dialog`, com título, conteúdo principal e rodapé de ações opcionais.
140
+ * O componente usa `fullWidth` por padrão; a largura máxima é controlada por `maxWidth`.
141
+ */
142
+ interface DialogProps {
143
+ /**
144
+ * Controla se o diálogo está aberto e visível.
145
+ */
146
+ open: boolean;
147
+ /**
148
+ * Texto exibido no cabeçalho do diálogo.
149
+ * Quando omitido, o bloco de título não é renderizado.
150
+ */
151
+ title?: string;
152
+ /**
153
+ * Callback invocado ao fechar o diálogo
154
+ * (clique no backdrop, tecla ESC ou botão de fechar do MUI).
155
+ */
156
+ onClose: () => void;
157
+ /**
158
+ * Aplica desfoque e overlay escuro semitransparente no backdrop.
159
+ * @default false
160
+ */
161
+ blurBackdrop?: boolean;
162
+ /**
163
+ * Conteúdo principal exibido na área central do diálogo.
164
+ */
165
+ children: React.ReactNode;
166
+ /**
167
+ * Conteúdo do rodapé (botões, links ou ações customizadas).
168
+ * Quando omitido, `DialogActions` não é renderizado.
169
+ */
170
+ actions?: React.ReactNode;
171
+ /**
172
+ * Largura máxima do diálogo conforme breakpoints do MUI
173
+ * (`xs`, `sm`, `md`, `lg`, `xl`).
174
+ * Use `false` para desativar o limite de largura.
175
+ */
176
+ maxWidth?: false | Breakpoint;
177
+ }
178
+
179
+ /**
180
+ * Modal de diálogo baseado no MUI `Dialog`, com título, conteúdo e ações opcionais.
181
+ *
182
+ * O componente usa `fullWidth` por padrão e permite limitar a largura via `maxWidth`.
183
+ * Com `blurBackdrop`, o fundo recebe desfoque e overlay escuro semitransparente.
184
+ *
185
+ * @param props - Propriedades do componente. Detalhes em {@link DialogProps}.
186
+ * @param props.open - Controla se o diálogo está visível.
187
+ * @param props.title - Título exibido no topo; omitido se não informado.
188
+ * @param props.onClose - Callback ao fechar (clique fora, ESC ou botão de fechar do MUI).
189
+ * @param props.actions - Rodapé com botões ou ações customizadas.
190
+ * @param props.children - Conteúdo principal do diálogo.
191
+ * @param props.maxWidth - Largura máxima do MUI (`xs`, `sm`, `md`, `lg`, `xl` ou `false`).
192
+ * @param props.blurBackdrop - Aplica blur e escurecimento no backdrop. Padrão: `false`.
193
+ *
194
+ * @returns Instância do `Dialog` do Material UI.
195
+ *
196
+ * @example
197
+ * ```tsx
198
+ * const [open, setOpen] = useState(false);
199
+ *
200
+ * <Dialog
201
+ * open={open}
202
+ * title="Confirmar exclusão"
203
+ * onClose={() => setOpen(false)}
204
+ * actions={<Button onClick={() => setOpen(false)}>OK</Button>}
205
+ * >
206
+ * Deseja realmente excluir este item?
207
+ * </Dialog>
208
+ * ```
209
+ *
210
+ * @example
211
+ * ```tsx
212
+ * <Dialog
213
+ * open={open}
214
+ * onClose={handleClose}
215
+ * maxWidth="sm"
216
+ * blurBackdrop
217
+ * >
218
+ * Conteúdo sem título.
219
+ * </Dialog>
220
+ * ```
221
+ */
222
+ declare function Dialog({ open, title, onClose, actions, children, maxWidth, blurBackdrop, }: Readonly<DialogProps>): React$1.ReactElement;
223
+
224
+ export { Card, type CardClassName, type CardProps, Dialog, type DialogProps };
@@ -0,0 +1,224 @@
1
+ import { CSSProperties, Breakpoint } from '@mui/material';
2
+ import React$1, { ComponentPropsWithoutRef } from 'react';
3
+
4
+ /**
5
+ * Tipo do atributo nativo `className` de um elemento `div` no React.
6
+ * Equivalente a `React.HTMLAttributes<HTMLDivElement>["className"]`.
7
+ */
8
+ type CardClassName = ComponentPropsWithoutRef<"div">["className"];
9
+ /**
10
+ * Propriedades do componente {@link Card}.
11
+ * O Card é um container com cabeçalho opcional (título, ícone) e área de conteúdo.
12
+ * Estilos dinâmicos são aplicados via MUI `Box`; classes utilitárias podem ser
13
+ * combinadas com `className` e a função `cn`.
14
+ */
15
+ interface CardProps {
16
+ /**
17
+ * Largura do card.
18
+ * Aceita qualquer valor CSS válido (ex.: `"100%"`, `"320px"`, `"auto"`).
19
+ * @default "100%"
20
+ */
21
+ width?: string;
22
+ /**
23
+ * Altura do card.
24
+ * Aceita qualquer valor CSS válido (ex.: `"auto"`, `"200px"`, `"100%"`).
25
+ * @default "auto"
26
+ */
27
+ height?: string;
28
+ /**
29
+ * Margem externa do card.
30
+ * Aceita shorthand ou valores individuais do CSS (ex.: `"16px"`, `"0 8px"`).
31
+ */
32
+ margin?: string;
33
+ /**
34
+ * Texto exibido no cabeçalho do card.
35
+ * Sempre renderizado; quando o texto ultrapassa o espaço, é truncado com reticências.
36
+ */
37
+ title?: string;
38
+ /**
39
+ * Habilita o tooltip do Mantine sobre o título ao passar o mouse.
40
+ * O título continua visível com ou sem tooltip; quando `false`, o hover não exibe popup.
41
+ * @default false
42
+ */
43
+ toolTip?: boolean;
44
+ /**
45
+ * Atributo `className` do container principal (tipo nativo do React).
46
+ * String de classes CSS; mesclada com classes internas via `cn`.
47
+ * @see {@link CardClassName}
48
+ */
49
+ className?: CardClassName;
50
+ /**
51
+ * Largura da barra do cabeçalho (área do título e ícone).
52
+ * @default "100%"
53
+ */
54
+ titleWidth?: string;
55
+ /**
56
+ * Cor de fundo do cabeçalho.
57
+ * Aceita cores CSS (hex, rgb, variáveis CSS, etc.).
58
+ * @default "var(--color-primary)"
59
+ */
60
+ titleColor?: string;
61
+ /**
62
+ * Raio da borda apenas do cabeçalho (ex.: `"8px 8px 0 0"`).
63
+ * Útil para arredondar só o topo quando o conteúdo não tem o mesmo radius.
64
+ */
65
+ borderTitle?: string;
66
+ /**
67
+ * Callback ao clicar no card inteiro.
68
+ * Quando definido, o cursor do card passa a ser `pointer` com `!important`.
69
+ */
70
+ onClick?: () => void;
71
+ /**
72
+ * Raio da borda do container principal do card (ex.: `"10px"`).
73
+ */
74
+ borderRadius?: string;
75
+ /**
76
+ * Elemento React exibido à direita do título no cabeçalho (ícone, botão, ação, etc.).
77
+ */
78
+ icon?: React.ReactNode;
79
+ /**
80
+ * Conteúdo principal do card, renderizado abaixo do cabeçalho.
81
+ */
82
+ children: React.ReactNode;
83
+ /**
84
+ * Alinhamento horizontal dos itens no cabeçalho (título e `icon`).
85
+ * Mesmos valores de `justify-content` do CSS (ex.: `"space-between"`, `"flex-end"`).
86
+ * @default "space-between"
87
+ */
88
+ justifyContent?: CSSProperties["justifyContent"];
89
+ }
90
+
91
+ /**
92
+ * Container de UI com cabeçalho colorido (título e ícone opcionais) e área de conteúdo.
93
+ *
94
+ * O card usa MUI `Box` para dimensões, sombra e responsividade; classes Tailwind
95
+ * extras podem ser passadas em `className` e são mescladas com `cn`. O título é
96
+ * sempre exibido e truncado quando necessário; o tooltip (Mantine) só aparece se
97
+ * `toolTip` for `true`.
98
+ *
99
+ * @param props - Propriedades do componente. Detalhes em {@link CardProps}.
100
+ * @param props.width - Largura do card. Padrão: `"100%"`.
101
+ * @param props.height - Altura do card. Padrão: `"auto"`.
102
+ * @param props.margin - Margem externa.
103
+ * @param props.title - Texto do cabeçalho.
104
+ * @param props.toolTip - Habilita tooltip no título.
105
+ * @param props.className - `className` nativo do React no container.
106
+ * @param props.titleWidth - Largura da barra do cabeçalho. Padrão: `"100%"`.
107
+ * @param props.titleColor - Cor de fundo do cabeçalho. Padrão: `var(--color-primary)`.
108
+ * @param props.borderTitle - `border-radius` só do cabeçalho.
109
+ * @param props.onClick - Clique no card; adiciona `cursor: pointer !important`.
110
+ * @param props.borderRadius - `border-radius` do container.
111
+ * @param props.icon - Conteúdo à direita do título.
112
+ * @param props.children - Corpo do card.
113
+ * @param props.justifyContent - Alinhamento título/ícone. Padrão: `"space-between"`.
114
+ *
115
+ * @returns Elemento `Box` com cabeçalho e `children`.
116
+ *
117
+ * @example
118
+ * ```tsx
119
+ * <Card title="Resumo" toolTip icon={<span>+</span>}>
120
+ * <p>Conteúdo interno</p>
121
+ * </Card>
122
+ * ```
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <Card
127
+ * title="Clique aqui"
128
+ * width="320px"
129
+ * onClick={() => alert("Card clicado")}
130
+ * >
131
+ * Card interativo
132
+ * </Card>
133
+ * ```
134
+ */
135
+ declare function Card({ margin, onClick, title, toolTip, className, borderTitle, children, borderRadius, width, height, titleWidth, justifyContent, titleColor, icon, }: Readonly<CardProps>): React.ReactElement;
136
+
137
+ /**
138
+ * Propriedades do componente {@link Dialog}.
139
+ * Modal baseado no MUI `Dialog`, com título, conteúdo principal e rodapé de ações opcionais.
140
+ * O componente usa `fullWidth` por padrão; a largura máxima é controlada por `maxWidth`.
141
+ */
142
+ interface DialogProps {
143
+ /**
144
+ * Controla se o diálogo está aberto e visível.
145
+ */
146
+ open: boolean;
147
+ /**
148
+ * Texto exibido no cabeçalho do diálogo.
149
+ * Quando omitido, o bloco de título não é renderizado.
150
+ */
151
+ title?: string;
152
+ /**
153
+ * Callback invocado ao fechar o diálogo
154
+ * (clique no backdrop, tecla ESC ou botão de fechar do MUI).
155
+ */
156
+ onClose: () => void;
157
+ /**
158
+ * Aplica desfoque e overlay escuro semitransparente no backdrop.
159
+ * @default false
160
+ */
161
+ blurBackdrop?: boolean;
162
+ /**
163
+ * Conteúdo principal exibido na área central do diálogo.
164
+ */
165
+ children: React.ReactNode;
166
+ /**
167
+ * Conteúdo do rodapé (botões, links ou ações customizadas).
168
+ * Quando omitido, `DialogActions` não é renderizado.
169
+ */
170
+ actions?: React.ReactNode;
171
+ /**
172
+ * Largura máxima do diálogo conforme breakpoints do MUI
173
+ * (`xs`, `sm`, `md`, `lg`, `xl`).
174
+ * Use `false` para desativar o limite de largura.
175
+ */
176
+ maxWidth?: false | Breakpoint;
177
+ }
178
+
179
+ /**
180
+ * Modal de diálogo baseado no MUI `Dialog`, com título, conteúdo e ações opcionais.
181
+ *
182
+ * O componente usa `fullWidth` por padrão e permite limitar a largura via `maxWidth`.
183
+ * Com `blurBackdrop`, o fundo recebe desfoque e overlay escuro semitransparente.
184
+ *
185
+ * @param props - Propriedades do componente. Detalhes em {@link DialogProps}.
186
+ * @param props.open - Controla se o diálogo está visível.
187
+ * @param props.title - Título exibido no topo; omitido se não informado.
188
+ * @param props.onClose - Callback ao fechar (clique fora, ESC ou botão de fechar do MUI).
189
+ * @param props.actions - Rodapé com botões ou ações customizadas.
190
+ * @param props.children - Conteúdo principal do diálogo.
191
+ * @param props.maxWidth - Largura máxima do MUI (`xs`, `sm`, `md`, `lg`, `xl` ou `false`).
192
+ * @param props.blurBackdrop - Aplica blur e escurecimento no backdrop. Padrão: `false`.
193
+ *
194
+ * @returns Instância do `Dialog` do Material UI.
195
+ *
196
+ * @example
197
+ * ```tsx
198
+ * const [open, setOpen] = useState(false);
199
+ *
200
+ * <Dialog
201
+ * open={open}
202
+ * title="Confirmar exclusão"
203
+ * onClose={() => setOpen(false)}
204
+ * actions={<Button onClick={() => setOpen(false)}>OK</Button>}
205
+ * >
206
+ * Deseja realmente excluir este item?
207
+ * </Dialog>
208
+ * ```
209
+ *
210
+ * @example
211
+ * ```tsx
212
+ * <Dialog
213
+ * open={open}
214
+ * onClose={handleClose}
215
+ * maxWidth="sm"
216
+ * blurBackdrop
217
+ * >
218
+ * Conteúdo sem título.
219
+ * </Dialog>
220
+ * ```
221
+ */
222
+ declare function Dialog({ open, title, onClose, actions, children, maxWidth, blurBackdrop, }: Readonly<DialogProps>): React$1.ReactElement;
223
+
224
+ export { Card, type CardClassName, type CardProps, Dialog, type DialogProps };