@flowtomic/ui 0.1.1 → 0.1.4
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/dist/blocks/developer-panel/page.d.ts +86 -0
- package/dist/blocks/developer-panel/page.d.ts.map +1 -0
- package/dist/blocks/developer-panel/page.js +35 -0
- package/dist/components/atoms/actions/badge/badge.d.ts +1 -1
- package/dist/components/atoms/actions/button/button.d.ts +2 -2
- package/dist/components/atoms/actions/button/button.d.ts.map +1 -1
- package/dist/components/atoms/actions/button/button.js +1 -2
- package/dist/components/atoms/animation/backdrop-blur/backdrop-blur.d.ts.map +1 -1
- package/dist/components/atoms/animation/backdrop-blur/backdrop-blur.js +9 -8
- package/dist/components/atoms/animation/encrypted-text/encrypted-text.d.ts +57 -0
- package/dist/components/atoms/animation/encrypted-text/encrypted-text.d.ts.map +1 -0
- package/dist/components/atoms/animation/encrypted-text/encrypted-text.js +104 -0
- package/dist/components/atoms/animation/encrypted-text/index.d.ts +3 -0
- package/dist/components/atoms/animation/encrypted-text/index.d.ts.map +1 -0
- package/dist/components/atoms/animation/encrypted-text/index.js +1 -0
- package/dist/components/atoms/animation/index.d.ts +2 -0
- package/dist/components/atoms/animation/index.d.ts.map +1 -1
- package/dist/components/atoms/animation/index.js +1 -0
- package/dist/components/atoms/animation/sliding-number/sliding-number.d.ts.map +1 -1
- package/dist/components/atoms/animation/sliding-number/sliding-number.js +6 -1
- package/dist/components/atoms/data-display/carousel/carousel.d.ts.map +1 -1
- package/dist/components/atoms/data-display/carousel/carousel.js +3 -1
- package/dist/components/atoms/data-display/chart/chart.d.ts.map +1 -1
- package/dist/components/atoms/data-display/chart/chart.js +3 -1
- package/dist/components/atoms/feedback/alert/alert.d.ts +1 -1
- package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
- package/dist/components/atoms/feedback/tooltip/index.d.ts +1 -1
- package/dist/components/atoms/feedback/tooltip/index.d.ts.map +1 -1
- package/dist/components/atoms/feedback/tooltip/index.js +1 -1
- package/dist/components/atoms/feedback/tooltip/tooltip.d.ts +42 -5
- package/dist/components/atoms/feedback/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/atoms/feedback/tooltip/tooltip.js +188 -5
- package/dist/components/atoms/forms/autocomplete/autocomplete-context.d.ts +29 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-context.d.ts.map +1 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-context.js +10 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-item.d.ts +16 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-item.d.ts.map +1 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-item.js +48 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-section.d.ts +14 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-section.d.ts.map +1 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete-section.js +13 -0
- package/dist/components/atoms/forms/autocomplete/autocomplete.d.ts +13 -9
- package/dist/components/atoms/forms/autocomplete/autocomplete.d.ts.map +1 -1
- package/dist/components/atoms/forms/autocomplete/autocomplete.js +295 -87
- package/dist/components/atoms/forms/autocomplete/index.d.ts +6 -0
- package/dist/components/atoms/forms/autocomplete/index.d.ts.map +1 -1
- package/dist/components/atoms/forms/autocomplete/index.js +3 -0
- package/dist/components/atoms/forms/field/field.d.ts.map +1 -1
- package/dist/components/atoms/forms/field/field.js +4 -2
- package/dist/components/atoms/forms/index.d.ts +0 -2
- package/dist/components/atoms/forms/index.d.ts.map +1 -1
- package/dist/components/atoms/forms/index.js +0 -1
- package/dist/components/atoms/forms/input/input.d.ts +2 -2
- package/dist/components/atoms/forms/input-otp/input-otp.d.ts.map +1 -1
- package/dist/components/atoms/forms/input-otp/input-otp.js +3 -1
- package/dist/components/atoms/forms/slider/slider.d.ts.map +1 -1
- package/dist/components/atoms/forms/slider/slider.js +2 -1
- package/dist/components/atoms/forms/toggle/toggle.d.ts +2 -2
- package/dist/components/atoms/layout/sidebar/sidebar.d.ts +2 -2
- package/dist/components/atoms/layout/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/atoms/navigation/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/atoms/navigation/breadcrumb/breadcrumb.js +3 -1
- package/dist/components/atoms/navigation/command/command.d.ts +7 -7
- package/dist/components/atoms/navigation/tabs/tabs.js +2 -2
- package/dist/components/molecules/auth/auth-navigation-link/auth-navigation-link.d.ts +1 -11
- package/dist/components/molecules/auth/auth-navigation-link/auth-navigation-link.d.ts.map +1 -1
- package/dist/components/molecules/auth/auth-navigation-link/auth-navigation-link.js +2 -3
- package/dist/components/molecules/data-display/bar-chart/bar-chart.d.ts.map +1 -1
- package/dist/components/molecules/data-display/bar-chart/bar-chart.js +14 -9
- package/dist/components/molecules/data-display/circular-progress-chart/circular-progress-chart.d.ts.map +1 -1
- package/dist/components/molecules/data-display/circular-progress-chart/circular-progress-chart.js +6 -1
- package/dist/components/molecules/data-display/message/message.d.ts.map +1 -1
- package/dist/components/molecules/data-display/message/message.js +1 -1
- package/dist/components/molecules/data-display/project-list/project-list.d.ts.map +1 -1
- package/dist/components/molecules/data-display/project-list/project-list.js +14 -1
- package/dist/components/molecules/data-display/reminder-card/reminder-card.d.ts.map +1 -1
- package/dist/components/molecules/data-display/reminder-card/reminder-card.js +1 -1
- package/dist/components/molecules/data-display/stat-card/stat-card.d.ts.map +1 -1
- package/dist/components/molecules/data-display/team-member-list/team-member-list.d.ts.map +1 -1
- package/dist/components/molecules/data-display/team-member-list/team-member-list.js +14 -1
- package/dist/components/molecules/data-display/time-tracker/time-tracker.d.ts.map +1 -1
- package/dist/components/molecules/data-display/tool/tool.d.ts.map +1 -1
- package/dist/components/molecules/feedback/confirmation/confirmation.d.ts.map +1 -1
- package/dist/components/molecules/forms/autocomplete/autocomplete-context.d.ts +16 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-context.d.ts.map +1 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-context.js +14 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-item.d.ts +23 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-item.d.ts.map +1 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-item.js +29 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts +19 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts.map +1 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete-section.js +13 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete.d.ts +33 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/components/molecules/forms/autocomplete/autocomplete.js +101 -0
- package/dist/components/molecules/forms/autocomplete/index.d.ts +9 -0
- package/dist/components/molecules/forms/autocomplete/index.d.ts.map +1 -0
- package/dist/components/molecules/forms/autocomplete/index.js +4 -0
- package/dist/components/molecules/forms/input-group/input-group.d.ts.map +1 -1
- package/dist/components/molecules/forms/item/item.d.ts +4 -4
- package/dist/components/molecules/forms/item/item.d.ts.map +1 -1
- package/dist/components/molecules/forms/item/item.js +1 -1
- package/dist/components/molecules/index.d.ts +2 -2
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/molecules/index.js +1 -1
- package/dist/components/molecules/layout/dashboard-header/dashboard-header.d.ts.map +1 -1
- package/dist/components/molecules/navigation/menu-dock/menu-dock.d.ts +5 -0
- package/dist/components/molecules/navigation/menu-dock/menu-dock.d.ts.map +1 -1
- package/dist/components/molecules/navigation/menu-dock/menu-dock.js +103 -10
- package/dist/components/molecules/typography/index.d.ts +0 -2
- package/dist/components/molecules/typography/index.d.ts.map +1 -1
- package/dist/components/molecules/typography/index.js +1 -1
- package/dist/components/organisms/context/context.d.ts +4 -4
- package/dist/components/organisms/conversation/conversation.d.ts.map +1 -1
- package/dist/components/organisms/conversation/conversation.js +2 -2
- package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts.map +1 -1
- package/dist/components/organisms/genealogy-canvas/genealogy-canvas.js +1 -1
- package/dist/components/organisms/index.d.ts +2 -0
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/organisms/index.js +1 -0
- package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
- package/dist/components/organisms/prompt-input/prompt-input.js +2 -2
- package/dist/components/organisms/script-editor/index.d.ts +3 -0
- package/dist/components/organisms/script-editor/index.d.ts.map +1 -0
- package/dist/components/organisms/script-editor/index.js +1 -0
- package/dist/components/organisms/script-editor/script-editor.d.ts +52 -0
- package/dist/components/organisms/script-editor/script-editor.d.ts.map +1 -0
- package/dist/components/organisms/script-editor/script-editor.js +86 -0
- package/dist/components/organisms/stats-grid/stats-grid.d.ts.map +1 -1
- package/dist/index.js +477 -498
- package/package.json +28 -17
|
@@ -20,7 +20,9 @@ function BreadcrumbLink({ asChild, className, ...props }) {
|
|
|
20
20
|
}
|
|
21
21
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
22
22
|
function BreadcrumbPage({ className, ...props }) {
|
|
23
|
-
return (
|
|
23
|
+
return (
|
|
24
|
+
// biome-ignore lint/a11y/useSemanticElements: Usar span para manter flexibilidade de estilização
|
|
25
|
+
_jsx("span", { "data-slot": "breadcrumb-page", role: "link", "aria-disabled": "true", "aria-current": "page", tabIndex: -1, className: cn("text-foreground font-normal", className), ...props }));
|
|
24
26
|
}
|
|
25
27
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
26
28
|
function BreadcrumbSeparator({ children, className, ...props }) {
|
|
@@ -23,7 +23,7 @@ declare const Command: React.ForwardRefExoticComponent<Omit<{
|
|
|
23
23
|
ref?: React.Ref<HTMLDivElement>;
|
|
24
24
|
} & {
|
|
25
25
|
asChild?: boolean;
|
|
26
|
-
}, "
|
|
26
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
27
27
|
label?: string;
|
|
28
28
|
shouldFilter?: boolean;
|
|
29
29
|
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
@@ -48,7 +48,7 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
|
|
|
48
48
|
ref?: React.Ref<HTMLInputElement>;
|
|
49
49
|
} & {
|
|
50
50
|
asChild?: boolean;
|
|
51
|
-
}, "
|
|
51
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
|
|
52
52
|
value?: string;
|
|
53
53
|
onValueChange?: (search: string) => void;
|
|
54
54
|
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -61,7 +61,7 @@ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
|
|
|
61
61
|
ref?: React.Ref<HTMLDivElement>;
|
|
62
62
|
} & {
|
|
63
63
|
asChild?: boolean;
|
|
64
|
-
}, "
|
|
64
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
65
65
|
label?: string;
|
|
66
66
|
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
67
67
|
/**
|
|
@@ -73,7 +73,7 @@ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
|
|
|
73
73
|
ref?: React.Ref<HTMLDivElement>;
|
|
74
74
|
} & {
|
|
75
75
|
asChild?: boolean;
|
|
76
|
-
}, "
|
|
76
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
77
77
|
/**
|
|
78
78
|
* CommandGroup - Grupo do command
|
|
79
79
|
*/
|
|
@@ -83,7 +83,7 @@ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
|
|
|
83
83
|
ref?: React.Ref<HTMLDivElement>;
|
|
84
84
|
} & {
|
|
85
85
|
asChild?: boolean;
|
|
86
|
-
}, "
|
|
86
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "heading" | "value"> & {
|
|
87
87
|
heading?: React.ReactNode;
|
|
88
88
|
value?: string;
|
|
89
89
|
forceMount?: boolean;
|
|
@@ -95,7 +95,7 @@ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<R
|
|
|
95
95
|
ref?: React.Ref<HTMLDivElement>;
|
|
96
96
|
} & {
|
|
97
97
|
asChild?: boolean;
|
|
98
|
-
}, "
|
|
98
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
99
99
|
alwaysRender?: boolean;
|
|
100
100
|
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
101
101
|
/**
|
|
@@ -107,7 +107,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
|
|
|
107
107
|
ref?: React.Ref<HTMLDivElement>;
|
|
108
108
|
} & {
|
|
109
109
|
asChild?: boolean;
|
|
110
|
-
}, "
|
|
110
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
|
|
111
111
|
disabled?: boolean;
|
|
112
112
|
onSelect?: (value: string) => void;
|
|
113
113
|
value?: string;
|
|
@@ -41,7 +41,7 @@ const TabsList = React.forwardRef(({ className, ...props }, ref) => {
|
|
|
41
41
|
ref.current = node;
|
|
42
42
|
}
|
|
43
43
|
listRef.current = node;
|
|
44
|
-
}, className: cn("relative inline-flex h-10 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground", className), ...props, children: [props.children, _jsx(motion.div, { className: "absolute rounded-md bg-
|
|
44
|
+
}, className: cn("relative inline-flex h-10 items-center justify-center rounded-lg bg-muted/50 p-1 text-muted-foreground", className), ...props, children: [props.children, _jsx(motion.div, { className: "absolute rounded-md bg-primary/10", initial: false, animate: shouldReduceMotion
|
|
45
45
|
? {
|
|
46
46
|
opacity: indicatorStyle.opacity,
|
|
47
47
|
}
|
|
@@ -88,7 +88,7 @@ const TabsTrigger = React.forwardRef(({ className, value, ...props }, ref) => {
|
|
|
88
88
|
node.setAttribute("data-value", value);
|
|
89
89
|
context.registerTrigger(node, value);
|
|
90
90
|
}
|
|
91
|
-
}, value: value, "data-value": value, className: cn("relative inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-
|
|
91
|
+
}, value: value, "data-value": value, className: cn("relative inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-muted-foreground hover:text-foreground data-[state=active]:bg-primary/10 data-[state=active]:text-primary", className), ...props, children: _jsx("span", { className: "relative z-10", children: props.children }) }));
|
|
92
92
|
});
|
|
93
93
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
94
94
|
const TabsContent = React.forwardRef(({ className, value, ...props }, ref) => {
|
|
@@ -33,21 +33,11 @@ export interface AuthNavigationLinkProps {
|
|
|
33
33
|
* Classe CSS adicional
|
|
34
34
|
*/
|
|
35
35
|
className?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Se true, aplica efeito de texto animado (AnimatedShinyText) no linkText
|
|
38
|
-
* @default false
|
|
39
|
-
*/
|
|
40
|
-
animated?: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Largura do shimmer para o efeito animado (apenas quando animated=true)
|
|
43
|
-
* @default 100
|
|
44
|
-
*/
|
|
45
|
-
shimmerWidth?: number;
|
|
46
36
|
}
|
|
47
37
|
/**
|
|
48
38
|
* Componente reutilizável para links de navegação entre páginas de autenticação
|
|
49
39
|
*
|
|
50
40
|
* Usado em Login e Register para navegação entre as páginas
|
|
51
41
|
*/
|
|
52
|
-
export declare function AuthNavigationLink({ text, linkText, to, LinkComponent, className,
|
|
42
|
+
export declare function AuthNavigationLink({ text, linkText, to, LinkComponent, className, }: AuthNavigationLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
53
43
|
//# sourceMappingURL=auth-navigation-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-navigation-link.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/auth/auth-navigation-link/auth-navigation-link.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-navigation-link.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/auth/auth-navigation-link/auth-navigation-link.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC3B,CAAC,CAAC;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,aAAa,EACb,SAAc,GACf,EAAE,uBAAuB,2CAkBzB"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { AnimatedShinyText } from "../../typography/animated-shiny-text";
|
|
3
2
|
/**
|
|
4
3
|
* Componente reutilizável para links de navegação entre páginas de autenticação
|
|
5
4
|
*
|
|
6
5
|
* Usado em Login e Register para navegação entre as páginas
|
|
7
6
|
*/
|
|
8
|
-
export function AuthNavigationLink({ text, linkText, to, LinkComponent, className = "",
|
|
7
|
+
export function AuthNavigationLink({ text, linkText, to, LinkComponent, className = "", }) {
|
|
9
8
|
const linkClassName = "text-[#5B5FED] dark:text-[#7B7FFF] hover:underline font-semibold";
|
|
10
|
-
const linkContent =
|
|
9
|
+
const linkContent = LinkComponent ? (_jsx(LinkComponent, { to: to, className: linkClassName, children: linkText })) : (_jsx("a", { href: to, className: linkClassName, children: linkText }));
|
|
11
10
|
return (_jsxs("p", { className: `text-center text-sm text-gray-600 dark:text-gray-300 ${className}`, children: [text, " ", linkContent] }));
|
|
12
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bar-chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/bar-chart/bar-chart.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"bar-chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/bar-chart/bar-chart.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,MAAY,EACZ,YAAoC,EACpC,aAAmC,EACnC,UAAkB,EAClB,SAAS,GACV,EAAE,aAAa,2CA8Ff"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* BarChart - Componente Visual
|
|
4
|
+
*
|
|
5
|
+
* Gráfico de barras simples para analytics usando SVG puro
|
|
6
|
+
*/
|
|
2
7
|
import { Card, CardContent, CardHeader, CardTitle } from "../../../atoms";
|
|
3
8
|
/**
|
|
4
9
|
* Componente de gráfico de barras
|
|
@@ -10,14 +15,14 @@ export function BarChart({ data, title, height = 200, defaultColor = "hsl(var(--
|
|
|
10
15
|
// Calcular valores máximos para normalização
|
|
11
16
|
const maxValue = Math.max(...data.map((d) => d.value));
|
|
12
17
|
const chartPadding = 40;
|
|
13
|
-
const
|
|
18
|
+
const _barWidth = Math.max(20, (height - chartPadding * 2) / data.length - 8);
|
|
14
19
|
const chartWidth = 300;
|
|
15
|
-
return (_jsxs(Card, { className: className, children: [title && (_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) })), _jsx(CardContent, { children: _jsx("div", { className: "w-full", children:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
return (_jsxs(Card, { className: className, children: [title && (_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) })), _jsx(CardContent, { children: _jsx("div", { className: "w-full", children: _jsxs("svg", { width: "100%", height: height, viewBox: `0 0 ${chartWidth} ${height}`, className: "overflow-visible", role: "img", "aria-label": title || "Bar chart", children: [_jsx("title", { children: title || "Bar chart" }), data.map((point, index) => {
|
|
21
|
+
const barHeight = maxValue > 0 ? (point.value / maxValue) * (height - chartPadding * 2) : 0;
|
|
22
|
+
const x = (index * chartWidth) / data.length + chartPadding / 2;
|
|
23
|
+
const y = height - chartPadding - barHeight;
|
|
24
|
+
const isActive = point.value > 0;
|
|
25
|
+
const fillColor = point.color || (isActive ? defaultColor : inactiveColor);
|
|
26
|
+
return (_jsxs("g", { children: [_jsx("rect", { x: x, y: y, width: (chartWidth - chartPadding) / data.length - 4, height: barHeight, fill: fillColor, rx: 4, className: "transition-all duration-300" }), showValues && point.value > 0 && (_jsxs("text", { x: x + (chartWidth - chartPadding) / data.length / 2 - 4, y: y - 5, fontSize: "10", fill: "currentColor", textAnchor: "middle", className: "fill-foreground", children: [point.value, "%"] })), _jsx("text", { x: x + (chartWidth - chartPadding) / data.length / 2 - 4, y: height - chartPadding + 15, fontSize: "12", fill: "currentColor", textAnchor: "middle", className: "fill-muted-foreground", children: point.label })] }, `bar-${point.label}-${index}`));
|
|
27
|
+
})] }) }) })] }));
|
|
23
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circular-progress-chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/circular-progress-chart/circular-progress-chart.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"circular-progress-chart.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/circular-progress-chart/circular-progress-chart.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,GAAS,EACT,KAAK,EACL,KAAK,EACL,IAAU,EACV,WAAgB,EAChB,aAAqC,EACrC,UAAgC,EAChC,WAAW,EACX,MAAM,EACN,SAAS,GACV,EAAE,0BAA0B,2CA6F5B"}
|
package/dist/components/molecules/data-display/circular-progress-chart/circular-progress-chart.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* CircularProgressChart - Componente Visual
|
|
4
|
+
*
|
|
5
|
+
* Gráfico circular de progresso usando SVG puro
|
|
6
|
+
*/
|
|
2
7
|
import { Card, CardContent, CardHeader, CardTitle } from "../../../atoms";
|
|
3
8
|
/**
|
|
4
9
|
* Componente de gráfico circular de progresso
|
|
@@ -20,5 +25,5 @@ export function CircularProgressChart({ value, max = 100, label, title, size = 2
|
|
|
20
25
|
const radius = (size - strokeWidth) / 2;
|
|
21
26
|
const circumference = 2 * Math.PI * radius;
|
|
22
27
|
const offset = circumference - (percentage / 100) * circumference;
|
|
23
|
-
return (_jsxs(Card, { className: className, children: [title && (_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) })), _jsx(CardContent, { children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-4", children: [_jsxs("div", { className: "relative", style: { width: size, height: size }, children: [_jsxs("svg", { width: size, height: size, className: "transform -rotate-90", children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: trackColor, strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: 0, className: "opacity-20" }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: finalProgressColor, strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: offset, strokeLinecap: "round", className: "transition-all duration-500 ease-in-out" })] }), label && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center", style: { fontSize: size * 0.15 }, children: _jsxs("div", { className: "text-center", children: [_jsxs("div", { className: "font-bold text-foreground", children: [Math.round(percentage), "%"] }), label && _jsx("div", { className: "text-xs text-muted-foreground mt-1", children: label })] }) }))] }), legend && legend.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-4 justify-center mt-2", children: legend.map((item
|
|
28
|
+
return (_jsxs(Card, { className: className, children: [title && (_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) })), _jsx(CardContent, { children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-4", children: [_jsxs("div", { className: "relative", style: { width: size, height: size }, children: [_jsxs("svg", { width: size, height: size, className: "transform -rotate-90", role: "img", "aria-label": title || label || "Circular progress chart", children: [_jsx("title", { children: title || label || "Circular progress chart" }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: trackColor, strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: 0, className: "opacity-20" }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: finalProgressColor, strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: offset, strokeLinecap: "round", className: "transition-all duration-500 ease-in-out" })] }), label && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center", style: { fontSize: size * 0.15 }, children: _jsxs("div", { className: "text-center", children: [_jsxs("div", { className: "font-bold text-foreground", children: [Math.round(percentage), "%"] }), label && _jsx("div", { className: "text-xs text-muted-foreground mt-1", children: label })] }) }))] }), legend && legend.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-4 justify-center mt-2", children: legend.map((item) => (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "w-3 h-3 rounded-full", style: { backgroundColor: item.color } }), _jsx("span", { className: "text-xs text-muted-foreground", children: item.label })] }, `legend-${item.label}`))) }))] }) })] }));
|
|
24
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/message/message.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,MAAM,EAA4D,MAAM,gBAAgB,CAAC;AAGlG,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC1D,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,OAAO;UAHZ,SAAS,CAAC,MAAM,CAAC;wCAexB,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,cAAc,4FAe1B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,6JAM1B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,2GAwBzB,CAAC;AAwBF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,aAAa;oBAJR,MAAM;qBACL,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI;wCAsC/C,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,kGA8BhC,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACxE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB;UAH1B,SAAS,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/message/message.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,MAAM,EAA4D,MAAM,gBAAgB,CAAC;AAGlG,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC1D,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,OAAO;UAHZ,SAAS,CAAC,MAAM,CAAC;wCAexB,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,cAAc,4FAe1B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,6JAM1B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,2GAwBzB,CAAC;AAwBF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,aAAa;oBAJR,MAAM;qBACL,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI;wCAsC/C,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,kGA8BhC,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACxE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB;UAH1B,SAAS,CAAC,MAAM,CAAC;wCAwBxB,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,qBAAqB,sKAoBhC,CAAC;AAGH,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,sKAmB7B,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAErE,eAAO,MAAM,iBAAiB,gGAc7B,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAgBrE,eAAO,MAAM,eAAe,EAAE,GAG7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACpE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,iBAAiB;UALtB,UAAU;gBACJ,MAAM;eACP,MAAM,IAAI;wCAyEtB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,6JAgB9B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,6JAU1B,CAAC"}
|
|
@@ -90,7 +90,7 @@ export const MessageBranchPage = React.forwardRef(({ className, ...props }, ref)
|
|
|
90
90
|
return (_jsxs(ButtonGroupText, { ref: ref, className: cn("border-none bg-transparent text-muted-foreground shadow-none", className), ...props, children: [currentBranch + 1, " of ", totalBranches] }));
|
|
91
91
|
});
|
|
92
92
|
MessageBranchPage.displayName = "MessageBranchPage";
|
|
93
|
-
const MessageResponseComponent = React.forwardRef(({ className, ...props },
|
|
93
|
+
const MessageResponseComponent = React.forwardRef(({ className, ...props }, _ref) => {
|
|
94
94
|
const { ref: _, ...streamdownProps } = props;
|
|
95
95
|
return (_jsx(Streamdown, { className: cn("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", className), ...streamdownProps }));
|
|
96
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/project-list/project-list.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAuB,EACvB,SAAS,GACV,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"project-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/project-list/project-list.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAuB,EACvB,SAAS,GACV,EAAE,gBAAgB,2CAkFlB"}
|
|
@@ -22,7 +22,20 @@ function formatDate(date) {
|
|
|
22
22
|
* Componente de lista de projetos
|
|
23
23
|
*/
|
|
24
24
|
export function ProjectList({ projects, title = "Project", onProjectClick, onAddNew, addButtonText = "+ New", className, }) {
|
|
25
|
-
return (_jsxs(Card, { className: className, children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [_jsx(CardTitle, { children: title }), onAddNew && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: onAddNew, children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), addButtonText] }))] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-3", children: projects.length === 0 ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "No projects" })) : (projects.map((project) => (_jsxs("div", {
|
|
25
|
+
return (_jsxs(Card, { className: className, children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [_jsx(CardTitle, { children: title }), onAddNew && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: onAddNew, children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), addButtonText] }))] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-3", children: projects.length === 0 ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "No projects" })) : (projects.map((project) => (_jsxs("div", { ...(onProjectClick
|
|
26
|
+
? {
|
|
27
|
+
role: "button",
|
|
28
|
+
tabIndex: 0,
|
|
29
|
+
onClick: () => onProjectClick(project),
|
|
30
|
+
onKeyDown: (e) => {
|
|
31
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
onProjectClick(project);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
: {}), className: cn("flex items-center gap-3 p-3 rounded-lg border transition-colors", onProjectClick &&
|
|
38
|
+
"cursor-pointer hover:bg-accent focus:outline-none focus:ring-2 focus:ring-ring"), children: [project.icon && (_jsx("div", { className: cn("flex items-center justify-center w-10 h-10 rounded", project.iconColor || "bg-primary/10"), style: project.iconColor ? { backgroundColor: project.iconColor } : undefined, children: project.icon })), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-medium text-sm truncate", children: project.name }), _jsxs("div", { className: "flex items-center gap-1 text-xs text-muted-foreground mt-1", children: [_jsx(Calendar, { className: "h-3 w-3" }), _jsxs("span", { children: ["Due date: ", formatDate(project.dueDate)] })] })] }), project.status && (_jsx(Badge, { variant: project.status === "completed"
|
|
26
39
|
? "default"
|
|
27
40
|
: project.status === "active"
|
|
28
41
|
? "secondary"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reminder-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/reminder-card/reminder-card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"reminder-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/reminder-card/reminder-card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAmB,EACnB,gBAAkC,EAClC,cAAc,EACd,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,2CAgEnB"}
|
|
@@ -14,6 +14,6 @@ export function ReminderCard({ reminders, title = "Reminders", actionButtonText
|
|
|
14
14
|
return (_jsxs(Card, { className: className, children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) }), _jsx(CardContent, { children: _jsx("div", { className: "text-center text-muted-foreground py-8", children: "No reminders" }) })] }));
|
|
15
15
|
}
|
|
16
16
|
// Mostrar apenas o primeiro lembrete (ou todos se necessário)
|
|
17
|
-
const
|
|
17
|
+
const _primaryReminder = reminders[0];
|
|
18
18
|
return (_jsxs(Card, { className: className, children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: title }) }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-4", children: reminders.map((reminder) => (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "font-medium text-sm", children: reminder.title }), reminder.description && (_jsx("div", { className: "text-xs text-muted-foreground mt-1", children: reminder.description }))] }), onDismiss && (_jsx(Button, { variant: "ghost", size: "sm", className: "h-6 w-6 p-0", onClick: () => onDismiss(reminder), children: _jsx(X, { className: "h-4 w-4" }) }))] }), _jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [_jsx(Clock, { className: "h-4 w-4" }), _jsx("span", { children: reminder.time })] }), onStartMeeting && (_jsx(Button, { onClick: () => onStartMeeting(reminder), className: "w-full", size: "sm", children: actionButtonText }))] }, reminder.id))) }) })] }));
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stat-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/stat-card/stat-card.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"stat-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/stat-card/stat-card.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAajE,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAE7D;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAkBD,QAAA,MAAM,QAAQ,sFAgVb,CAAC;AAIF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-member-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/team-member-list/team-member-list.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"team-member-list.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/team-member-list/team-member-list.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,KAA4B,EAC5B,aAAa,EACb,WAAW,EACX,aAA8B,EAC9B,SAAS,GACV,EAAE,mBAAmB,2CA2ErB"}
|
|
@@ -52,7 +52,20 @@ function getInitials(name) {
|
|
|
52
52
|
* Componente de lista de membros da equipe
|
|
53
53
|
*/
|
|
54
54
|
export function TeamMemberList({ members, title = "Team Collaboration", onMemberClick, onAddMember, addButtonText = "+ Add Member", className, }) {
|
|
55
|
-
return (_jsxs(Card, { className: className, children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [_jsx(CardTitle, { children: title }), onAddMember && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: onAddMember, children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), addButtonText] }))] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-4", children: members.length === 0 ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "No team members" })) : (members.map((member) => (_jsxs("div", {
|
|
55
|
+
return (_jsxs(Card, { className: className, children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [_jsx(CardTitle, { children: title }), onAddMember && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: onAddMember, children: [_jsx(Plus, { className: "h-4 w-4 mr-1" }), addButtonText] }))] }), _jsx(CardContent, { children: _jsx("div", { className: "space-y-4", children: members.length === 0 ? (_jsx("div", { className: "text-center text-muted-foreground py-8", children: "No team members" })) : (members.map((member) => (_jsxs("div", { ...(onMemberClick
|
|
56
|
+
? {
|
|
57
|
+
role: "button",
|
|
58
|
+
tabIndex: 0,
|
|
59
|
+
onClick: () => onMemberClick(member),
|
|
60
|
+
onKeyDown: (e) => {
|
|
61
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
62
|
+
e.preventDefault();
|
|
63
|
+
onMemberClick(member);
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
}
|
|
67
|
+
: {}), className: cn("flex items-start gap-3 p-3 rounded-lg border transition-colors", onMemberClick &&
|
|
68
|
+
"cursor-pointer hover:bg-accent focus:outline-none focus:ring-2 focus:ring-ring"), children: [_jsxs(Avatar, { className: "h-10 w-10", children: [_jsx(AvatarImage, { src: member.avatar, alt: member.name }), _jsx(AvatarFallback, { children: member.avatar ? _jsx(User, { className: "h-5 w-5" }) : getInitials(member.name) })] }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-medium text-sm", children: member.name }), _jsxs("div", { className: "text-xs text-muted-foreground mt-1", children: ["Working on ", member.task] }), _jsxs("div", { className: cn("text-xs font-medium mt-1", getStatusColor(member.status)), children: ["Status: ", getStatusText(member.status)] })] }), _jsx(Badge, { variant: member.status === "completed"
|
|
56
69
|
? "default"
|
|
57
70
|
: member.status === "in-progress"
|
|
58
71
|
? "secondary"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-tracker.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/time-tracker/time-tracker.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"time-tracker.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/time-tracker/time-tracker.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,WAAe,EACf,KAAsB,EACtB,MAAmB,EACnB,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,eAAe,GAChB,EAAE,gBAAgB,2CA4DlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/tool/tool.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASrC,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,WAAW,EACX,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,eAAO,MAAM,IAAI,kLAQhB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/tool/tool.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AASrC,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAGL,WAAW,EACX,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,eAAO,MAAM,IAAI,kLAQhB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoCF,eAAO,MAAM,UAAU,2FAetB,CAAC;AAGF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,eAAO,MAAM,WAAW,4OAWvB,CAAC;AAGF,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,SAAS,oGAWrB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpD,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,UAAU,qGA+BtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/feedback/confirmation/confirmation.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,kBAAkB,GACnB;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD,SAAS,CAAC;AAEd,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/feedback/confirmation/confirmation.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAEvF,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEjE,KAAK,kBAAkB,GACnB;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACD,SAAS,CAAC;AAEd,KAAK,aAAa,GACd,UAAU,CAAC,OAAO,CAAC,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,CAAC;AAmBpB,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,GAAG;IAC7D,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,YAAY,uGAYxB,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7E,eAAO,MAAM,iBAAiB,sLAI7B,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,mBAAmB;mBAAkB,wBAAwB;;CASzE,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,oBAAoB;mBAAkB,yBAAyB;;CAY3E,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,oBAAoB;mBAAkB,yBAAyB;;CAY3E,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE7D,eAAO,MAAM,mBAAmB,mKAiB/B,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,kBAAkB,sKAE9B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutocompleteContext - Context para Compound Components
|
|
3
|
+
*
|
|
4
|
+
* Fornece estado e helpers do hook useAutocomplete para subcomponentes
|
|
5
|
+
*/
|
|
6
|
+
import { type UseAutocompleteReturn } from "flowtomic/logic";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
export interface AutocompleteContextValue extends UseAutocompleteReturn {
|
|
9
|
+
size?: "sm" | "default" | "lg";
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
maxListboxHeight?: string;
|
|
12
|
+
emptyMessage?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const AutocompleteContext: React.Context<AutocompleteContextValue | undefined>;
|
|
15
|
+
export declare function useAutocompleteContext(): AutocompleteContextValue;
|
|
16
|
+
//# sourceMappingURL=autocomplete-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete-context.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-context.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,qDAEpB,CAAC;AAEb,wBAAgB,sBAAsB,IAAI,wBAAwB,CAQjE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutocompleteContext - Context para Compound Components
|
|
3
|
+
*
|
|
4
|
+
* Fornece estado e helpers do hook useAutocomplete para subcomponentes
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
export const AutocompleteContext = React.createContext(undefined);
|
|
8
|
+
export function useAutocompleteContext() {
|
|
9
|
+
const context = React.useContext(AutocompleteContext);
|
|
10
|
+
if (!context) {
|
|
11
|
+
throw new Error("useAutocompleteContext must be used within Autocomplete component");
|
|
12
|
+
}
|
|
13
|
+
return context;
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutocompleteItem - Item da lista de opções
|
|
3
|
+
*
|
|
4
|
+
* Subcomponente para modo composição
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
export interface AutocompleteItemProps extends React.HTMLAttributes<HTMLLIElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Valor do item
|
|
10
|
+
*/
|
|
11
|
+
value: string;
|
|
12
|
+
/**
|
|
13
|
+
* Se o item está desabilitado
|
|
14
|
+
*/
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Conteúdo do item
|
|
18
|
+
*/
|
|
19
|
+
children?: React.ReactNode;
|
|
20
|
+
}
|
|
21
|
+
declare const AutocompleteItem: React.ForwardRefExoticComponent<AutocompleteItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
22
|
+
export { AutocompleteItem };
|
|
23
|
+
//# sourceMappingURL=autocomplete-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-item.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAC3C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,gBAAgB,6FAiDrB,CAAC;AAIF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "@/lib/utils";
|
|
4
|
+
import { useAutocompleteContext } from "./autocomplete-context";
|
|
5
|
+
const AutocompleteItem = React.forwardRef(({ className, value, disabled, children, ...props }, ref) => {
|
|
6
|
+
const context = useAutocompleteContext();
|
|
7
|
+
// Encontrar o item correspondente
|
|
8
|
+
const item = context.filteredItems.find((i) => i.value === value);
|
|
9
|
+
if (!item) {
|
|
10
|
+
// Se não encontrou, criar um item temporário para composição
|
|
11
|
+
const tempItem = {
|
|
12
|
+
value,
|
|
13
|
+
label: typeof children === "string" ? children : value,
|
|
14
|
+
disabled,
|
|
15
|
+
};
|
|
16
|
+
const itemProps = context.getItemProps(tempItem, {
|
|
17
|
+
...props,
|
|
18
|
+
className,
|
|
19
|
+
});
|
|
20
|
+
return (_jsx("li", { ...itemProps, ref: ref, className: cn("cursor-pointer px-2 py-1.5", className), children: children || value }));
|
|
21
|
+
}
|
|
22
|
+
const itemProps = context.getItemProps(item, {
|
|
23
|
+
...props,
|
|
24
|
+
className,
|
|
25
|
+
});
|
|
26
|
+
return (_jsx("li", { ...itemProps, ref: ref, className: cn("cursor-pointer rounded-sm px-2 py-1.5 text-sm outline-none transition-colors", "hover:bg-accent focus:bg-accent", item.disabled && "pointer-events-none opacity-50", className), children: children || item.label }));
|
|
27
|
+
});
|
|
28
|
+
AutocompleteItem.displayName = "AutocompleteItem";
|
|
29
|
+
export { AutocompleteItem };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutocompleteSection - Seção de agrupamento de items
|
|
3
|
+
*
|
|
4
|
+
* Subcomponente para modo composição
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
export interface AutocompleteSectionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Título da seção
|
|
10
|
+
*/
|
|
11
|
+
title?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Conteúdo da seção (items)
|
|
14
|
+
*/
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
declare const AutocompleteSection: React.ForwardRefExoticComponent<AutocompleteSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export { AutocompleteSection };
|
|
19
|
+
//# sourceMappingURL=autocomplete-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete-section.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-section.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,wBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,mBAAmB,iGAsBvB,CAAC;AAIH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* AutocompleteSection - Seção de agrupamento de items
|
|
4
|
+
*
|
|
5
|
+
* Subcomponente para modo composição
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { cn } from "@/lib/utils";
|
|
9
|
+
const AutocompleteSection = React.forwardRef(({ className, title, children, ...props }, ref) => {
|
|
10
|
+
return (_jsxs("div", { ref: ref, ...props, className: cn("space-y-1", className), role: "group", "aria-label": title, children: [title && (_jsx("div", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground", children: title })), _jsx("ul", { role: "group", className: "space-y-0.5", children: children })] }));
|
|
11
|
+
});
|
|
12
|
+
AutocompleteSection.displayName = "AutocompleteSection";
|
|
13
|
+
export { AutocompleteSection };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Autocomplete Component - Flowtomic UI
|
|
3
|
+
*
|
|
4
|
+
* Componente de autocomplete usando hook headless useAutocomplete
|
|
5
|
+
* Suporta API antiga (options) e composição (Compound Components)
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { type AutocompleteOption } from "flowtomic/logic";
|
|
9
|
+
export interface AutocompleteProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "value" | "onChange" | "defaultValue"> {
|
|
10
|
+
options?: AutocompleteOption[];
|
|
11
|
+
value?: string;
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
onValueChange?: (value: string | undefined) => void;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
size?: "sm" | "default" | "lg";
|
|
17
|
+
className?: string;
|
|
18
|
+
inputClassName?: string;
|
|
19
|
+
emptyMessage?: string;
|
|
20
|
+
filterFunction?: (option: AutocompleteOption, searchTerm: string) => boolean;
|
|
21
|
+
allowCustomValue?: boolean;
|
|
22
|
+
isLoading?: boolean;
|
|
23
|
+
maxListboxHeight?: string;
|
|
24
|
+
children?: React.ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export declare const Autocomplete: React.ForwardRefExoticComponent<AutocompleteProps & React.RefAttributes<HTMLInputElement>> & {
|
|
27
|
+
List: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLUListElement> & React.RefAttributes<HTMLUListElement>>;
|
|
28
|
+
Empty: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
Loading: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
Item: React.ForwardRefExoticComponent<import("./autocomplete-item").AutocompleteItemProps & React.RefAttributes<HTMLLIElement>>;
|
|
31
|
+
Section: React.ForwardRefExoticComponent<import("./autocomplete-section").AutocompleteSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=autocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAoC3E,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAC/C;IAED,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAoPD,eAAO,MAAM,YAAY;;;;;;CAMvB,CAAC"}
|