@wellingtonhlc/shared-ui 0.26.13 → 0.27.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.
- package/README.md +405 -405
- package/dist/components/Banner.d.ts +13 -0
- package/dist/components/Banner.d.ts.map +1 -0
- package/dist/components/Banner.js +29 -0
- package/dist/components/FieldControl.d.ts +2 -0
- package/dist/components/FieldControl.d.ts.map +1 -1
- package/dist/components/FieldControl.js +22 -22
- package/dist/components/Filter.d.ts.map +1 -1
- package/dist/components/Filter.js +2 -2
- package/dist/components/Loading.d.ts +17 -0
- package/dist/components/Loading.d.ts.map +1 -0
- package/dist/components/Loading.js +15 -0
- package/dist/components/LoadingOverlay.d.ts +11 -0
- package/dist/components/LoadingOverlay.d.ts.map +1 -0
- package/dist/components/LoadingOverlay.js +8 -0
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +3 -3
- package/dist/components/SelectionField.js +1 -1
- package/dist/components/Table.js +1 -1
- package/dist/components/TextareaField.d.ts +2 -0
- package/dist/components/TextareaField.d.ts.map +1 -1
- package/dist/components/TextareaField.js +15 -7
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/Workspace.js +3 -3
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/styles.css +216 -34
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export type BannerVariant = 'info' | 'warning' | 'critical' | 'success';
|
|
3
|
+
export type BannerSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export interface BannerProps {
|
|
5
|
+
variant?: BannerVariant;
|
|
6
|
+
size?: BannerSize;
|
|
7
|
+
closable?: boolean;
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function Banner({ variant, size, closable, onClose, className, children, }: BannerProps): import("react").JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=Banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/components/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAeD,wBAAgB,MAAM,CAAC,EACrB,OAAgB,EAChB,IAAW,EACX,QAAe,EACf,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EAAE,WAAW,sCAwCb"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { X } from 'lucide-react';
|
|
4
|
+
import { Button } from './Button';
|
|
5
|
+
import { cn } from '../utils/cn';
|
|
6
|
+
const variantStyles = {
|
|
7
|
+
info: 'border-[color-mix(in_srgb,#60a5fa_45%,var(--app-border))] bg-[color-mix(in_srgb,#3b82f6_16%,var(--background-secondary))] text-[var(--status-info-text)]',
|
|
8
|
+
warning: 'border-[color-mix(in_srgb,#fbbf24_52%,var(--app-border))] bg-[color-mix(in_srgb,#f59e0b_16%,var(--background-secondary))] text-[var(--status-warning-text)]',
|
|
9
|
+
critical: 'border-[color-mix(in_srgb,#f87171_52%,var(--app-border))] bg-[color-mix(in_srgb,#ef4444_16%,var(--background-secondary))] text-[var(--status-danger-text)]',
|
|
10
|
+
success: 'border-[color-mix(in_srgb,#34d399_45%,var(--app-border))] bg-[color-mix(in_srgb,#10b981_16%,var(--background-secondary))] text-[var(--status-success-text)]',
|
|
11
|
+
};
|
|
12
|
+
const sizeStyles = {
|
|
13
|
+
sm: 'min-h-10 px-3 py-2 text-sm',
|
|
14
|
+
md: 'min-h-11 px-4 py-2.5 text-sm',
|
|
15
|
+
lg: 'min-h-12 px-4 py-3 text-base',
|
|
16
|
+
};
|
|
17
|
+
export function Banner({ variant = 'info', size = 'md', closable = true, onClose, className, children, }) {
|
|
18
|
+
const [visible, setVisible] = useState(true);
|
|
19
|
+
function handleClose() {
|
|
20
|
+
if (onClose) {
|
|
21
|
+
onClose();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
setVisible(false);
|
|
25
|
+
}
|
|
26
|
+
if (!visible)
|
|
27
|
+
return null;
|
|
28
|
+
return (_jsxs("div", { className: cn('relative flex w-full items-center border shadow-sm', variantStyles[variant], sizeStyles[size], className), children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center justify-center gap-2 text-center", children: children }), closable ? (_jsx(Button, { variant: "ghost", size: "xs", rounded: true, "aria-label": "Fechar banner", className: "absolute top-1/2 right-2 -translate-y-1/2 text-current hover:bg-black/10 dark:hover:bg-white/10", onClick: handleClose, children: _jsx(X, { className: "size-4" }) })) : null] }));
|
|
29
|
+
}
|
|
@@ -11,6 +11,8 @@ export interface FieldControlProps {
|
|
|
11
11
|
roundedFull?: boolean;
|
|
12
12
|
size?: FormControlSize;
|
|
13
13
|
labelPosition?: 'top' | 'right' | 'bottom' | 'left';
|
|
14
|
+
/** Faz o campo preencher a altura disponivel do container (wrapper e controle crescem). */
|
|
15
|
+
stretch?: boolean;
|
|
14
16
|
disabled?: boolean;
|
|
15
17
|
children?: React.ReactNode | ((props: FormControlRenderProps) => React.ReactNode);
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldControl.d.ts","sourceRoot":"","sources":["../../src/components/FieldControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CACnF;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"FieldControl.d.ts","sourceRoot":"","sources":["../../src/components/FieldControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAErB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CACnF;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2HpD,CAAC"}
|
|
@@ -3,7 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { cn } from '../utils/cn';
|
|
4
4
|
import { fieldWrapper, labelBase, } from './form-control-helpers';
|
|
5
5
|
import { FieldValidationError } from './FieldValidationError';
|
|
6
|
-
export const FieldControl = ({ label, id, wrapperClassName, labelClassName = '', labelAction, labelPosition = 'top', errorMessage, roundedFull = false, size = 'sm', disabled = false, hasValidation = false, children, }) => {
|
|
6
|
+
export const FieldControl = ({ label, id, wrapperClassName, labelClassName = '', labelAction, labelPosition = 'top', errorMessage, roundedFull = false, size = 'sm', stretch = false, disabled = false, hasValidation = false, children, }) => {
|
|
7
7
|
const generatedId = React.useId().replace(/:/g, '');
|
|
8
8
|
const componentId = id ?? `fc-${generatedId}`;
|
|
9
9
|
const errorId = `${componentId}-error`;
|
|
@@ -48,26 +48,26 @@ export const FieldControl = ({ label, id, wrapperClassName, labelClassName = '',
|
|
|
48
48
|
};
|
|
49
49
|
const renderedChildren = typeof children === 'function' ? children(renderProps) : children;
|
|
50
50
|
const renderedLabel = label ? (_jsxs("div", { className: cn('flex items-center justify-between gap-2', isHorizontal && 'shrink-0'), style: { order: labelOrder }, children: [_jsx("label", { htmlFor: componentId, className: mergedLabelClassName, children: label }), labelAction] })) : null;
|
|
51
|
-
return (_jsxs("div", { className: cn(fieldWrapper, wrapperClassName, scopeClass, roundedClass), "data-disabled": disabled || undefined, "data-invalid": !!errorMessage || undefined, children: [_jsx("style", { children: `
|
|
52
|
-
.${scopeClass} input,
|
|
53
|
-
.${scopeClass} textarea,
|
|
54
|
-
.${scopeClass} select { color: var(--foreground); }
|
|
55
|
-
.${scopeClass} input::placeholder,
|
|
56
|
-
.${scopeClass} textarea::placeholder,
|
|
57
|
-
.${scopeClass} select::placeholder { color: var(--muted-foreground); opacity: 0.34; }
|
|
58
|
-
.dark .${scopeClass} input::placeholder,
|
|
59
|
-
.dark .${scopeClass} textarea::placeholder,
|
|
60
|
-
.dark .${scopeClass} select::placeholder { color: var(--muted-foreground); opacity: 0.50; }
|
|
61
|
-
.${scopeClass} input::-webkit-input-placeholder,
|
|
62
|
-
.${scopeClass} textarea::-webkit-input-placeholder { color: var(--muted-foreground); opacity: 0.34; }
|
|
63
|
-
.dark .${scopeClass} input::-webkit-input-placeholder,
|
|
64
|
-
.dark .${scopeClass} textarea::-webkit-input-placeholder { color: var(--muted-foreground); opacity: 0.50; }
|
|
65
|
-
.${roundedClass} input,
|
|
66
|
-
.${roundedClass} textarea,
|
|
67
|
-
.${roundedClass} select { border-radius: 9999px; padding: 0.375rem 1rem; min-height: 2rem; }
|
|
68
|
-
.${roundedClass} input::placeholder,
|
|
69
|
-
.${roundedClass} textarea::placeholder,
|
|
70
|
-
.${roundedClass} select::placeholder { opacity: 0.5; }
|
|
71
|
-
` }), _jsxs("div", { className: cn('flex gap-2', flexDirection), children: [labelOrder === 0 && renderedLabel, _jsx("div", { style: { order: inputOrder }, className: isHorizontal
|
|
51
|
+
return (_jsxs("div", { className: cn(fieldWrapper, stretch && 'h-full min-h-0', wrapperClassName, scopeClass, roundedClass), "data-disabled": disabled || undefined, "data-invalid": !!errorMessage || undefined, children: [_jsx("style", { children: `
|
|
52
|
+
.${scopeClass} input,
|
|
53
|
+
.${scopeClass} textarea,
|
|
54
|
+
.${scopeClass} select { color: var(--foreground); }
|
|
55
|
+
.${scopeClass} input::placeholder,
|
|
56
|
+
.${scopeClass} textarea::placeholder,
|
|
57
|
+
.${scopeClass} select::placeholder { color: var(--muted-foreground); opacity: 0.34; }
|
|
58
|
+
.dark .${scopeClass} input::placeholder,
|
|
59
|
+
.dark .${scopeClass} textarea::placeholder,
|
|
60
|
+
.dark .${scopeClass} select::placeholder { color: var(--muted-foreground); opacity: 0.50; }
|
|
61
|
+
.${scopeClass} input::-webkit-input-placeholder,
|
|
62
|
+
.${scopeClass} textarea::-webkit-input-placeholder { color: var(--muted-foreground); opacity: 0.34; }
|
|
63
|
+
.dark .${scopeClass} input::-webkit-input-placeholder,
|
|
64
|
+
.dark .${scopeClass} textarea::-webkit-input-placeholder { color: var(--muted-foreground); opacity: 0.50; }
|
|
65
|
+
.${roundedClass} input,
|
|
66
|
+
.${roundedClass} textarea,
|
|
67
|
+
.${roundedClass} select { border-radius: 9999px; padding: 0.375rem 1rem; min-height: 2rem; }
|
|
68
|
+
.${roundedClass} input::placeholder,
|
|
69
|
+
.${roundedClass} textarea::placeholder,
|
|
70
|
+
.${roundedClass} select::placeholder { opacity: 0.5; }
|
|
71
|
+
` }), _jsxs("div", { className: cn('flex gap-2', flexDirection, stretch && 'min-h-0 flex-1'), children: [labelOrder === 0 && renderedLabel, _jsx("div", { style: { order: inputOrder }, className: cn(isHorizontal && 'flex-1', stretch && 'min-h-0 flex-1'), children: renderedChildren }), labelOrder === 1 && renderedLabel] }), _jsx(FieldValidationError, { id: errorId, message: errorMessage, hasValidation: hasValidation })] }));
|
|
72
72
|
};
|
|
73
73
|
FieldControl.displayName = 'FieldControl';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../src/components/Filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EAEd,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAK5F,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAC;IACtF,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,uBAAuB,8DAA2D,CAAC;AAEhG,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../src/components/Filter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,SAAS,EAEd,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,EAAyB,KAAK,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAK5F,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAC;IACtF,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,uBAAuB,8DAA2D,CAAC;AAEhG,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,iBAAiB,+BAS/D;AAED,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAiB/H;AAED,iBAAS,aAAa,CAAC,EAAE,WAAW,EAAE,KAAiB,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BAmB/F;AAuBD,iBAAS,UAAU,CAAC,EAClB,KAAiB,EACjB,WAAgB,EAChB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAuB,EACvB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,YAAoB,EACpB,eAAuB,EACvB,eAAe,GAChB,EAAE,eAAe,+BAoDjB;AAED,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { Card } from './Card';
|
|
|
8
8
|
import { RenderIf } from './RenderIf';
|
|
9
9
|
export const FilterVisibilityContext = createContext(null);
|
|
10
10
|
function FilterFooter({ children, className }) {
|
|
11
|
-
return (_jsx("div", { className: cn('border-app-border flex shrink-0 items-center justify-end gap-2 border-t px-4 py-3', className), children: children }));
|
|
11
|
+
return (_jsx("div", { "data-slot": "filter-footer", className: cn('border-app-border flex shrink-0 items-center justify-end gap-2 border-t px-4 py-3', className), children: children }));
|
|
12
12
|
}
|
|
13
13
|
function FilterVisibility({ children, defaultOpen = true, open: controlledOpen, onOpenChange, className }) {
|
|
14
14
|
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
|
|
@@ -58,7 +58,7 @@ function FilterRoot({ title = 'Filtros', description = '', children, className,
|
|
|
58
58
|
onSubmit?.(event);
|
|
59
59
|
}
|
|
60
60
|
const bodyContent = (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-3", children: [_jsx("div", { className: cn('min-h-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]', contentClassName), children: _jsxs("div", { className: cn('flex flex-col gap-1 py-3 pl-4 pr-1', fieldsClassName), children: [description ? _jsx("p", { className: "text-foreground-muted text-xs leading-5", children: description }) : null, contentChildren] }) }), hasExplicitFooter ? footerChildren : null, !hasExplicitFooter && hasAutomaticActions ? (_jsx(FilterActions, { actionsDisabled: actionsDisabled, clearLabel: clearLabel, isSubmitting: isSubmitting, onClear: onClear, onSubmit: onSubmit, submitLabel: submitLabel })) : null] }));
|
|
61
|
-
return (_jsxs(Card.Root, { id: visibility?.contentId, className: cn('flex h-full w-full min-w-0 flex-col overflow-hidden', maxHeightClassName, className), "data-slot": "filter-root", "data-state": isOpen ? 'open' : 'closed', children: [_jsxs(Card.Title, { children: [_jsx(FilterIcon, { className: "text-primary h-4 w-4" }), title] }), _jsx(Card.Body, { density: "none", className: cn('flex min-h-0 flex-1 flex-col', bodyClassName), children: onSubmit ? _jsx("form", { className: "flex min-h-0 flex-1 flex-col", onSubmit: handleSubmit, children: bodyContent }) : bodyContent })] }));
|
|
61
|
+
return (_jsxs(Card.Root, { id: visibility?.contentId, className: cn('flex h-full w-full min-w-0 flex-col overflow-hidden', maxHeightClassName, className), "data-slot": "filter-root", "data-state": isOpen ? 'open' : 'closed', children: [_jsxs(Card.Title, { "data-slot": "filter-header", children: [_jsx(FilterIcon, { className: "text-primary h-4 w-4" }), title] }), _jsx(Card.Body, { density: "none", className: cn('flex min-h-0 flex-1 flex-col', bodyClassName), children: onSubmit ? _jsx("form", { className: "flex min-h-0 flex-1 flex-col", onSubmit: handleSubmit, children: bodyContent }) : bodyContent })] }));
|
|
62
62
|
}
|
|
63
63
|
export const Filter = {
|
|
64
64
|
Root: FilterRoot,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ReactNode, type SVGProps } from 'react';
|
|
2
|
+
declare const sizeClasses: {
|
|
3
|
+
readonly xs: "h-3 w-3";
|
|
4
|
+
readonly sm: "h-4 w-4";
|
|
5
|
+
readonly md: "h-5 w-5";
|
|
6
|
+
readonly lg: "h-6 w-6";
|
|
7
|
+
};
|
|
8
|
+
export type LoadingSize = keyof typeof sizeClasses;
|
|
9
|
+
export interface LoadingProps extends Omit<SVGProps<SVGSVGElement>, 'children'> {
|
|
10
|
+
isLoading?: boolean;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
size?: LoadingSize;
|
|
13
|
+
strokeWidth?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function Loading({ isLoading, children, className, size, strokeWidth, 'aria-label': ariaLabel, ...props }: LoadingProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=Loading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../src/components/Loading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAS,MAAM,OAAO,CAAC;AAI7D,QAAA,MAAM,WAAW;;;;;CAKP,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,WAAW,CAAC;AAEnD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAgB,EAChB,QAAQ,EACR,SAAS,EACT,IAAW,EACX,WAAe,EACf,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EAAE,YAAY,+TAoCd"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
import { cn } from '../utils/cn';
|
|
4
|
+
const sizeClasses = {
|
|
5
|
+
xs: 'h-3 w-3',
|
|
6
|
+
sm: 'h-4 w-4',
|
|
7
|
+
md: 'h-5 w-5',
|
|
8
|
+
lg: 'h-6 w-6',
|
|
9
|
+
};
|
|
10
|
+
export function Loading({ isLoading = true, children, className, size = 'sm', strokeWidth = 4, 'aria-label': ariaLabel, ...props }) {
|
|
11
|
+
const gradientId = useId().replace(/:/g, '');
|
|
12
|
+
if (!isLoading)
|
|
13
|
+
return children;
|
|
14
|
+
return (_jsxs("svg", { className: cn('text-brand m-auto animate-spin', sizeClasses[size], className), viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", role: ariaLabel ? 'status' : undefined, "aria-label": ariaLabel, "aria-hidden": ariaLabel ? undefined : true, ...props, children: [_jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [_jsx("stop", { offset: "0%", stopColor: "currentColor", stopOpacity: "1" }), _jsx("stop", { offset: "70%", stopColor: "currentColor", stopOpacity: "0.25" }), _jsx("stop", { offset: "100%", stopColor: "currentColor", stopOpacity: "0" })] }) }), _jsx("circle", { cx: "24", cy: "24", r: "18", stroke: "currentColor", strokeOpacity: "0.06", strokeWidth: strokeWidth, fill: "none" }), _jsx("circle", { cx: "24", cy: "24", r: "18", stroke: `url(#${gradientId})`, strokeWidth: strokeWidth, strokeLinecap: "round", strokeDasharray: "80 113", transform: "rotate(-90 24 24)", fill: "none" })] }));
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type LoadingSize } from './Loading';
|
|
2
|
+
export type LoadingOverlayVariant = 'solid' | 'scrim';
|
|
3
|
+
export interface LoadingOverlayProps {
|
|
4
|
+
open?: boolean;
|
|
5
|
+
variant?: LoadingOverlayVariant;
|
|
6
|
+
size?: LoadingSize;
|
|
7
|
+
label?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function LoadingOverlay({ open, variant, size, label, className, }: LoadingOverlayProps): import("react").JSX.Element | null;
|
|
11
|
+
//# sourceMappingURL=LoadingOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/components/LoadingOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAItD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAY,EACZ,OAAiB,EACjB,IAAW,EACX,KAAoB,EACpB,SAAS,GACV,EAAE,mBAAmB,sCAiBrB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Loading } from './Loading';
|
|
3
|
+
import { cn } from '../utils/cn';
|
|
4
|
+
export function LoadingOverlay({ open = false, variant = 'solid', size = 'lg', label = 'Carregando', className, }) {
|
|
5
|
+
if (!open)
|
|
6
|
+
return null;
|
|
7
|
+
return (_jsx("div", { className: cn('fixed inset-0 z-[999] flex items-center justify-center', variant === 'solid' ? 'bg-background' : 'bg-background/40 backdrop-blur-[3px]', className), role: "status", "aria-label": label, "aria-live": "polite", children: _jsx(Loading, { size: size, "aria-label": label }) }));
|
|
8
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACpE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkED,iBAAS,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,4UAW9F;AAED,iBAAS,SAAS,CAAC,EACjB,kBAA0B,EAC1B,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,OAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,eAAsB,EACtB,IAAW,EACX,OAAmB,EACnB,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/components/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IACvF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACpE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkED,iBAAS,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,4UAW9F;AAED,iBAAS,SAAS,CAAC,EACjB,kBAA0B,EAC1B,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,OAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,eAAsB,EACtB,IAAW,EACX,OAAmB,EACnB,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,cAAc,qBAqEhB;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,OAAmB,EAAE,SAAiB,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAetG;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,OAAmB,EAAE,eAAuB,EAAE,UAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,qBAc3H;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,OAAmB,EAAE,SAAgB,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAcrG;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAE9F;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,qBAE1G;AAED,eAAO,MAAM,KAAK;;;;;;;;;;;CAWjB,CAAC"}
|
package/dist/components/Modal.js
CHANGED
|
@@ -73,17 +73,17 @@ function ModalRoot({ allowExternalFocus = false, centered = false, children, cla
|
|
|
73
73
|
onOpenChange?.(nextOpen);
|
|
74
74
|
}
|
|
75
75
|
const hasFooter = React.Children.toArray(children).some((child) => React.isValidElement(child) && child.type === ModalFooter);
|
|
76
|
-
return (_jsx(DialogPrimitive.Root, { ...props, open: open, onOpenChange: handleOpenChange, children: _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { style: { zIndex: overlayZIndex }, className: cn('fixed inset-0 z-[100] bg-black/50 backdrop-blur-[2px]
|
|
76
|
+
return (_jsx(DialogPrimitive.Root, { ...props, open: open, onOpenChange: handleOpenChange, children: _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { style: { zIndex: overlayZIndex }, className: cn('fixed inset-0 z-[100] bg-black/50 backdrop-blur-[2px]', overlayClassName) }), _jsxs(DialogPrimitive.Content, { onFocusOutside: allowExternalFocus ? (event) => event.preventDefault() : undefined, style: {
|
|
77
77
|
zIndex: contentZIndex,
|
|
78
78
|
width: widthVariants[size],
|
|
79
79
|
...(!centered && offset ? { top: `${offset}px` } : {}),
|
|
80
|
-
}, className: cn('fixed z-[110] grid max-h-[95vh]', hasFooter ? 'grid-rows-[auto_minmax(0,1fr)_auto]' : 'grid-rows-[auto_minmax(0,1fr)]', 'rounded-xl
|
|
80
|
+
}, className: cn('fixed z-[110] grid max-h-[95vh]', hasFooter ? 'grid-rows-[auto_minmax(0,1fr)_auto]' : 'grid-rows-[auto_minmax(0,1fr)]', 'rounded-xl', density === 'default' && 'p-6', density === 'compact' && 'p-4', variant === 'default' && 'border-app-border bg-background-secondary text-foreground border shadow-lg', variant === 'elevated' && 'border-app-border bg-surface text-foreground border shadow-2xl', centered ? 'left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2' : 'left-[50%] top-[2.5%] -translate-x-1/2', sizeVariants[size], minHeightVariants[size], className), children: [children, showCloseButton ? (_jsxs(DialogPrimitive.Close, { className: cn('absolute right-4 top-4 inline-flex h-8 w-8 items-center justify-center rounded-md', 'text-foreground-muted hover:bg-background hover:text-foreground cursor-pointer transition-colors', 'focus:ring-brand/50 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none'), children: [_jsx(XIcon, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Fechar" })] })) : null] })] }) }));
|
|
81
81
|
}
|
|
82
82
|
function ModalHeader({ className, density = 'default', separated = false, ...props }) {
|
|
83
83
|
return (_jsx("div", { "data-slot": "modal-header", className: cn('flex flex-col text-center sm:text-left', density === 'default' && 'gap-1.5 [&_[data-slot=modal-description]]:text-sm [&_[data-slot=modal-title]]:text-lg', density === 'compact' && 'gap-0.5 [&_[data-slot=modal-description]]:text-xs [&_[data-slot=modal-title]]:text-base', separated && density === 'default' && 'border-app-border border-b pb-4', separated && density === 'compact' && 'border-app-border border-b pb-2', className), ...props }));
|
|
84
84
|
}
|
|
85
85
|
function ModalBody({ className, density = 'default', overflowVisible = false, scrollable = false, ...props }) {
|
|
86
|
-
return (_jsx("div", { "data-slot": "modal-body", className: cn('flex min-h-0 flex-col', density === 'default' && 'space-y-5 text-sm leading-6', density === 'compact' && 'space-y-2 text-xs leading-5', overflowVisible ? 'overflow-visible' : scrollable ? 'overflow-y-auto
|
|
86
|
+
return (_jsx("div", { "data-slot": "modal-body", className: cn('flex min-h-0 flex-col', density === 'default' && 'space-y-5 py-4 text-sm leading-6', density === 'compact' && 'space-y-2 py-2 text-xs leading-5', overflowVisible ? 'overflow-visible' : scrollable ? 'overflow-y-auto pr-1' : 'overflow-visible', className), ...props }));
|
|
87
87
|
}
|
|
88
88
|
function ModalFooter({ className, density = 'default', separated = true, ...props }) {
|
|
89
89
|
return (_jsx("div", { "data-slot": "modal-footer", className: cn('flex flex-col-reverse sm:flex-row sm:justify-end', density === 'default' && 'mt-3 gap-2.5 pt-5', density === 'compact' && 'mt-0 gap-1.5 pt-2', separated && 'border-app-border border-t', className), ...props }));
|
|
@@ -100,6 +100,6 @@ export function SelectionField({ label, description, value, placeholder = 'Selec
|
|
|
100
100
|
? 'cursor-not-allowed'
|
|
101
101
|
: cn('cursor-pointer', !isClearHover &&
|
|
102
102
|
'hover:border-[color-mix(in_srgb,var(--brand)_58%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_8%,var(--surface))]'), size === 'lg' ? 'rounded-lg' : 'rounded-md', controlSizeClass[size], controlGapClass[size], resolvedIcon ? controlIconPaddingClass[size] : controlLeadingPaddingClass[size], controlClassName),
|
|
103
|
-
}), "data-empty": !hasValue || undefined, "data-loading": loading || undefined, onClick: handleOpen, children: [resolvedIcon ? (_jsx("span", { className: cn('inline-flex shrink-0 items-center justify-center rounded-md text-foreground-muted', !hasValue && 'text-[color-mix(in_srgb,var(--brand)_72%,var(--foreground-muted))]', actionSizeClass[size], iconSizeClass[size]), "aria-hidden": "true", children: resolvedIcon })) : null, _jsxs("div", { className: cn('min-w-0 flex-1 text-left', textGapClass[size]), children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsxs("span", { className: cn('min-w-0 truncate font-semibold', hasValue ? 'text-foreground' : 'text-foreground-muted'), children: [title, required && !hasValue ? _jsx("span", { "aria-hidden": "true", children: " *" }) : null] }), meta ? (_jsx("span", { className: "border-app-border bg-background text-foreground-muted shrink-0 rounded border px-1.5 py-0.5 font-mono text-[0.65rem] leading-none", children: meta })) : null] }), subtitle ? (_jsx("p", { className: cn('text-foreground-muted truncate text-xs font-medium', (size === 'xs' || size === 'sm') && 'sr-only'), children: subtitle })) : null] }), shortcutHint ? (_jsx("kbd", { className: "border-app-border bg-background text-foreground-muted hidden shrink-0 rounded border px-1.5 py-1 font-mono text-[0.65rem] leading-none sm:inline-flex", children: shortcutHint })) : null, showClear ? (_jsx("button", { type: "button", "aria-label": clearTooltip, className: cn('inline-flex cursor-pointer shrink-0 items-center justify-center rounded-md border border-transparent bg-transparent text-foreground-muted transition-colors', 'hover:bg-[color-mix(in_srgb,var(--destructive)_10%,transparent)] hover:text-[var(--destructive)]', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--destructive)]/25', actionSizeClass[size]), title: clearTooltip, onClick: handleClear, onMouseEnter: handleClearMouseEnter, onMouseLeave: handleClearMouseLeave, children: _jsx(X, { "aria-hidden": "true" }) })) : null, _jsx("span", { onClick: stopPropagation, children: selectionTrigger })] }), description ? (_jsx("p", { id: describedById, className: "mt-1 text-xs font-medium text-foreground-muted", children: description })) : null] }));
|
|
103
|
+
}), "data-empty": !hasValue || undefined, "data-loading": loading || undefined, onClick: handleOpen, children: [resolvedIcon ? (_jsx("span", { className: cn('inline-flex shrink-0 items-center justify-center rounded-md text-foreground-muted', !hasValue && 'text-[color-mix(in_srgb,var(--brand)_72%,var(--foreground-muted))]', actionSizeClass[size], iconSizeClass[size]), "aria-hidden": "true", children: resolvedIcon })) : null, _jsxs("div", { className: cn('min-w-0 flex-1 text-left', textGapClass[size]), children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsxs("span", { className: cn('min-w-0 truncate font-semibold', hasValue ? 'text-foreground' : 'text-foreground-muted'), children: [title, required && !hasValue ? _jsx("span", { "aria-hidden": "true", children: " *" }) : null] }), meta ? (_jsx("span", { className: "border-app-border bg-background text-foreground-muted shrink-0 rounded border px-1.5 py-0.5 font-mono text-[0.65rem] leading-none", children: meta })) : null] }), subtitle ? (_jsx("p", { className: cn('text-foreground-muted truncate text-xs font-medium', (size === 'xs' || size === 'sm') && 'sr-only'), children: subtitle })) : null] }), shortcutHint ? (_jsx("kbd", { className: "border-app-border bg-background text-foreground-muted hidden shrink-0 rounded border px-1.5 py-1 font-mono text-[0.65rem] leading-none sm:inline-flex", children: shortcutHint })) : null, showClear ? (_jsx("button", { type: "button", "aria-label": clearTooltip, className: cn('inline-flex cursor-pointer shrink-0 items-center justify-center rounded-md border border-transparent bg-transparent text-foreground-muted transition-colors', 'hover:bg-[color-mix(in_srgb,var(--destructive)_10%,transparent)] hover:text-[var(--destructive)]', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--destructive)]/25', actionSizeClass[size]), title: clearTooltip, onClick: handleClear, onMouseEnter: handleClearMouseEnter, onMouseLeave: handleClearMouseLeave, children: _jsx(X, { "aria-hidden": "true" }) })) : null, disabled ? null : _jsx("span", { onClick: stopPropagation, children: selectionTrigger })] }), description ? (_jsx("p", { id: describedById, className: "mt-1 text-xs font-medium text-foreground-muted", children: description })) : null] }));
|
|
104
104
|
} }));
|
|
105
105
|
}
|
package/dist/components/Table.js
CHANGED
|
@@ -8,7 +8,7 @@ const Root = forwardRef(({ children, chrome = 'default', className, density = 'd
|
|
|
8
8
|
const tableChildren = childNodes.filter((child) => !isValidElement(child) || child.type !== Pagination);
|
|
9
9
|
const paginationChildren = childNodes.filter((child) => isValidElement(child) && child.type === Pagination);
|
|
10
10
|
const { className: wrapperPropsClassName, ...resolvedWrapperProps } = wrapperProps ?? {};
|
|
11
|
-
return (_jsxs("div", { ...resolvedWrapperProps, "data-slot": "table-root", className: cn('bg-surface flex w-full min-w-0 flex-col overflow-hidden', fill && 'h-full min-h-0 grow', isFramed && 'border-app-border rounded-[var(--radius)] border', isFramed && chrome === 'default' && 'shadow-[0_4px_6px_-1px_rgb(0_0_0/0.07),0_2px_4px_-2px_rgb(0_0_0/0.05)]', density === 'compact' && '[&_td]:py-2 [&_th]:py-2', wrapperPropsClassName, wrapperClassName), children: [_jsx("div", { className: cn('min-h-0 flex-1 overflow-auto', viewportClassName), children: _jsx("table", { ref: ref, className: cn('w-full border-separate border-spacing-0 caption-bottom text-sm text-foreground', className), ...props, children: tableChildren }) }), paginationChildren.length > 0 && (_jsx("div", { className: cn('border-app-border bg-
|
|
11
|
+
return (_jsxs("div", { ...resolvedWrapperProps, "data-slot": "table-root", className: cn('bg-surface flex w-full min-w-0 flex-col overflow-hidden', fill && 'h-full min-h-0 grow', isFramed && 'border-app-border rounded-[var(--radius)] border', isFramed && chrome === 'default' && 'shadow-[0_4px_6px_-1px_rgb(0_0_0/0.07),0_2px_4px_-2px_rgb(0_0_0/0.05)]', density === 'compact' && '[&_td]:py-2 [&_th]:py-2', wrapperPropsClassName, wrapperClassName), children: [_jsx("div", { className: cn('min-h-0 flex-1 overflow-auto', viewportClassName), children: _jsx("table", { ref: ref, className: cn('w-full border-separate border-spacing-0 caption-bottom text-sm text-foreground', className), ...props, children: tableChildren }) }), paginationChildren.length > 0 && (_jsx("div", { "data-slot": "table-pagination", className: cn('border-app-border bg-background-secondary shrink-0 border-t px-3 py-2', density === 'compact' && 'px-3 py-2'), children: paginationChildren }))] }));
|
|
12
12
|
});
|
|
13
13
|
Root.displayName = 'Table.Root';
|
|
14
14
|
const Header = forwardRef(({ className, ...props }, ref) => _jsx("thead", { ref: ref, className: cn('bg-background-secondary', className), ...props }));
|
|
@@ -7,6 +7,8 @@ export interface TextareaFieldProps extends Omit<React.TextareaHTMLAttributes<HT
|
|
|
7
7
|
hasValidation?: boolean;
|
|
8
8
|
roundedFull?: boolean;
|
|
9
9
|
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
10
|
+
/** Faz o textarea preencher a altura disponivel do container em vez de usar altura fixa. */
|
|
11
|
+
stretch?: boolean;
|
|
10
12
|
}
|
|
11
13
|
export declare const TextareaField: React.ForwardRefExoticComponent<TextareaFieldProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
12
14
|
//# sourceMappingURL=TextareaField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaField.d.ts","sourceRoot":"","sources":["../../src/components/TextareaField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACzG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"TextareaField.d.ts","sourceRoot":"","sources":["../../src/components/TextareaField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACzG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,gGA8EzB,CAAC"}
|
|
@@ -3,24 +3,32 @@ import React from 'react';
|
|
|
3
3
|
import { cn } from '../utils/cn';
|
|
4
4
|
import { controlClasses } from './form-control-helpers';
|
|
5
5
|
import { FieldControl } from './FieldControl';
|
|
6
|
-
export const TextareaField = React.forwardRef(({ label, errorMessage, id, className, wrapperClassName = '', labelClassName = '', roundedFull = false, size = 'sm', placeholder, disabled = false, hasValidation = false, ...props }, ref) => {
|
|
6
|
+
export const TextareaField = React.forwardRef(({ label, errorMessage, id, className, wrapperClassName = '', labelClassName = '', roundedFull = false, size = 'sm', stretch = false, placeholder, disabled = false, hasValidation = false, ...props }, ref) => {
|
|
7
7
|
const componentId = id || props.name;
|
|
8
8
|
const sizeMap = {
|
|
9
|
-
xs: '
|
|
10
|
-
sm: '
|
|
11
|
-
md: '
|
|
12
|
-
lg: '
|
|
9
|
+
xs: 'text-xs px-2',
|
|
10
|
+
sm: 'text-sm px-3',
|
|
11
|
+
md: 'text-sm px-4',
|
|
12
|
+
lg: 'text-base px-6',
|
|
13
|
+
};
|
|
14
|
+
const heightMap = {
|
|
15
|
+
xs: 'h-7',
|
|
16
|
+
sm: 'h-9',
|
|
17
|
+
md: 'h-12',
|
|
18
|
+
lg: 'h-14',
|
|
13
19
|
};
|
|
14
20
|
const roundedClass = roundedFull ? 'rounded-full' : size === 'lg' ? 'rounded-lg' : 'rounded-md';
|
|
15
21
|
const sizeClassArr = [];
|
|
16
22
|
if (!props.rows) {
|
|
17
23
|
sizeClassArr.push(sizeMap[size ?? 'sm']);
|
|
24
|
+
if (!stretch)
|
|
25
|
+
sizeClassArr.push(heightMap[size ?? 'sm']);
|
|
18
26
|
sizeClassArr.push(roundedClass);
|
|
19
27
|
}
|
|
20
|
-
return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: labelClassName, wrapperClassName: wrapperClassName, errorMessage: errorMessage, roundedFull: roundedFull, size: size, disabled: disabled, hasValidation: hasValidation, children: ({ controlId, describedBy, errorMessage: controlError, disabled: controlDisabled, label: controlLabel }) => (_jsx("textarea", { ref: ref, ...props, id: controlId, disabled: controlDisabled, placeholder: placeholder ?? controlLabel, "aria-invalid": !!controlError, "aria-describedby": describedBy, className: controlClasses({
|
|
28
|
+
return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: labelClassName, wrapperClassName: wrapperClassName, errorMessage: errorMessage, roundedFull: roundedFull, size: size, stretch: stretch, disabled: disabled, hasValidation: hasValidation, children: ({ controlId, describedBy, errorMessage: controlError, disabled: controlDisabled, label: controlLabel }) => (_jsx("textarea", { ref: ref, ...props, id: controlId, disabled: controlDisabled, placeholder: placeholder ?? controlLabel, "aria-invalid": !!controlError, "aria-describedby": describedBy, className: controlClasses({
|
|
21
29
|
errorMessage: controlError,
|
|
22
30
|
disabled: controlDisabled,
|
|
23
|
-
extra: cn(...sizeClassArr, roundedFull && 'min-h-[2rem] px-4 py-1.5', className),
|
|
31
|
+
extra: cn(...sizeClassArr, roundedFull && 'min-h-[2rem] px-4 py-1.5', stretch && 'h-full min-h-0', className),
|
|
24
32
|
}) })) }));
|
|
25
33
|
});
|
|
26
34
|
TextareaField.displayName = 'TextareaField';
|
|
@@ -36,5 +36,5 @@ export function Tooltip({ children, className, content, delayDuration = 300, ope
|
|
|
36
36
|
return;
|
|
37
37
|
setOpen((current) => !current);
|
|
38
38
|
}
|
|
39
|
-
return (_jsx(TooltipPrimitive.Provider, { delayDuration: delayDuration, children: _jsxs(TooltipPrimitive.Root, { open: openOnClick ? open : undefined, onOpenChange: openOnClick ? handleOpenChange : undefined, children: [_jsx(TooltipPrimitive.Trigger, { asChild: true, ref: triggerRef, onClick: handleTriggerClick, children: children }), _jsx(TooltipPrimitive.Portal, { children: _jsxs(TooltipPrimitive.Content, { ref: contentRef, className: cn('border-app-border bg-surface text-foreground z-
|
|
39
|
+
return (_jsx(TooltipPrimitive.Provider, { delayDuration: delayDuration, children: _jsxs(TooltipPrimitive.Root, { open: openOnClick ? open : undefined, onOpenChange: openOnClick ? handleOpenChange : undefined, children: [_jsx(TooltipPrimitive.Trigger, { asChild: true, ref: triggerRef, onClick: handleTriggerClick, children: children }), _jsx(TooltipPrimitive.Portal, { children: _jsxs(TooltipPrimitive.Content, { ref: contentRef, className: cn('border-app-border bg-surface text-foreground z-[200] rounded-md border px-3 py-1.5 text-xs shadow-lg', 'data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0', className), side: side, sideOffset: sideOffset, children: [content, _jsx(TooltipPrimitive.Arrow, { className: "fill-surface" })] }) })] }) }));
|
|
40
40
|
}
|
|
@@ -15,9 +15,9 @@ function WorkspaceRoot({ filters, children, className, appearance = 'separated'
|
|
|
15
15
|
const isJoined = appearance === 'joined';
|
|
16
16
|
const isFilterOpen = visibility?.open ?? true;
|
|
17
17
|
const result = children;
|
|
18
|
-
return (_jsxs("div", { className: cn('grid min-h-0 flex-1 xl:grid-rows-[minmax(0,1fr)]', isJoined
|
|
19
|
-
? 'gap-0 overflow-hidden rounded-[var(--radius)] border border-app-border bg-background-secondary [&_[data-slot=filter-root]]:rounded-none [&_[data-slot=filter-root]]:border-0 [&_[data-slot=filter-root]]:!border-r [&_[data-slot=filter-root]]:!border-app-border [&_[data-slot=table-root]]
|
|
20
|
-
: 'gap-3', isFilterOpen ? 'xl:grid-cols-[280px_minmax(0,1fr)]' : 'xl:grid-cols-[minmax(0,1fr)]', className), children: [_jsx(RenderIf, { when: isFilterOpen, children: _jsx("aside", { className: "min-h-0 xl:self-stretch xl:[&>*]:h-full xl:[&>*]:min-h-0", children: filters }) }), _jsx("section", { className: cn('flex min-h-0 flex-1 flex-col', isJoined ? 'bg-background-secondary' : 'bg-transparent'), children: _jsx(WorkspaceResultContext.Provider, { value: true, children: _jsxs(RenderCase.Root, { children: [_jsx(RenderCase.If, { when: Boolean(result && (Array.isArray(result) ? result.length > 0 : true)), children: result }), _jsx(RenderCase.Else, { children: _jsx(Card.Root, { className: "flex flex-1 items-center justify-center bg-surface/60 p-8 shadow-sm", children: _jsx(EmptyState, { title: "Nenhum resultado", description: "Ajuste os filtros e pesquise novamente." }) }) })] }) }) })] }));
|
|
18
|
+
return (_jsxs("div", { className: cn('grid h-full min-h-0 flex-1 xl:grid-rows-[minmax(0,1fr)]', isJoined
|
|
19
|
+
? 'gap-0 overflow-hidden rounded-[var(--radius)] border border-app-border bg-background-secondary [&_[data-slot=filter-root]]:rounded-none [&_[data-slot=filter-root]]:border-0 [&_[data-slot=filter-root]]:!border-r [&_[data-slot=filter-root]]:!border-app-border [&_[data-slot=filter-header]]:!h-10 [&_[data-slot=filter-header]]:!rounded-none [&_[data-slot=filter-header]]:!bg-background-secondary [&_[data-slot=filter-footer]]:!px-3 [&_[data-slot=filter-footer]]:!py-2 [&_[data-slot=filter-footer]_button]:!h-8 [&_[data-slot=filter-footer]_button]:!min-h-8 [&_[data-slot=filter-footer]_button]:!px-2.5 [&_[data-slot=filter-footer]_button]:!py-0 [&_[data-slot=filter-footer]_button]:!text-xs [&_[data-slot=table-root]]:!rounded-none [&_[data-slot=table-root]]:!border-0 [&_[data-slot=table-root]]:!shadow-none [&_[data-slot=table-pagination]]:!px-3 [&_[data-slot=table-pagination]]:!py-2'
|
|
20
|
+
: 'gap-3', isFilterOpen ? 'xl:grid-cols-[280px_minmax(0,1fr)]' : 'xl:grid-cols-[minmax(0,1fr)]', className), children: [_jsx(RenderIf, { when: isFilterOpen, children: _jsx("aside", { className: "min-h-0 xl:self-stretch xl:[&>*]:h-full xl:[&>*]:min-h-0", children: filters }) }), _jsx("section", { className: cn('flex h-full min-h-0 flex-1 flex-col', isJoined ? 'bg-background-secondary' : 'bg-transparent'), children: _jsx(WorkspaceResultContext.Provider, { value: true, children: _jsxs(RenderCase.Root, { children: [_jsx(RenderCase.If, { when: Boolean(result && (Array.isArray(result) ? result.length > 0 : true)), children: result }), _jsx(RenderCase.Else, { children: _jsx(Card.Root, { className: "flex flex-1 items-center justify-center bg-surface/60 p-8 shadow-sm", children: _jsx(EmptyState, { title: "Nenhum resultado", description: "Ajuste os filtros e pesquise novamente." }) }) })] }) }) })] }));
|
|
21
21
|
}
|
|
22
22
|
export const Workspace = {
|
|
23
23
|
Root: WorkspaceRoot,
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,10 @@ export { cn } from './utils/cn';
|
|
|
2
2
|
export { AppShell, type AppShellContentMode, type AppShellMainProps, type AppShellOverlayProps, type AppShellOverlayVariant, type AppShellTopbarButtonProps, type AppShellTopbarProps, } from './components/AppShell';
|
|
3
3
|
export { AppShellActionButton, AppShellActions, AppShellActionsSeparator, type AppShellActionButtonProps, type AppShellActionButtonVariant, type AppShellActionsAlign, type AppShellActionsProps, type AppShellActionsRegion, type AppShellActionsSeparatorProps, } from './components/AppShellActions';
|
|
4
4
|
export { Badge, type BadgeProps, type BadgeVariant } from './components/Badge';
|
|
5
|
+
export { Banner, type BannerProps, type BannerSize, type BannerVariant } from './components/Banner';
|
|
5
6
|
export { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from './components/Button';
|
|
7
|
+
export { Loading, type LoadingProps, type LoadingSize } from './components/Loading';
|
|
8
|
+
export { LoadingOverlay, type LoadingOverlayProps, type LoadingOverlayVariant, } from './components/LoadingOverlay';
|
|
6
9
|
export { DismissiblePopover, type DismissiblePopoverProps } from './components/DismissiblePopover';
|
|
7
10
|
export { ConfirmationDialog, type ConfirmationDialogAction, type ConfirmationDialogProps, type ConfirmationDialogVariant, type ConfirmationDialogVariantInput, } from './components/ConfirmationDialog';
|
|
8
11
|
export { CopyableField, type CopyableFieldProps } from './components/CopyableField';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,10 @@ export { cn } from './utils/cn';
|
|
|
2
2
|
export { AppShell, } from './components/AppShell';
|
|
3
3
|
export { AppShellActionButton, AppShellActions, AppShellActionsSeparator, } from './components/AppShellActions';
|
|
4
4
|
export { Badge } from './components/Badge';
|
|
5
|
+
export { Banner } from './components/Banner';
|
|
5
6
|
export { Button } from './components/Button';
|
|
7
|
+
export { Loading } from './components/Loading';
|
|
8
|
+
export { LoadingOverlay, } from './components/LoadingOverlay';
|
|
6
9
|
export { DismissiblePopover } from './components/DismissiblePopover';
|
|
7
10
|
export { ConfirmationDialog, } from './components/ConfirmationDialog';
|
|
8
11
|
export { CopyableField } from './components/CopyableField';
|