@iclips/ui 1.2.11 → 1.2.13
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/components/ui/button.d.ts +1 -0
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/empty-state.d.ts +48 -0
- package/dist/components/ui/empty-state.d.ts.map +1 -0
- package/dist/components/ui/illustrations.d.ts +9 -13
- package/dist/components/ui/illustrations.d.ts.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/input-validation.d.ts +35 -0
- package/dist/components/ui/input-validation.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/index.cjs +59 -59
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29466 -24459
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,6 +9,7 @@ declare const Button: React.ForwardRefExoticComponent<Omit<React.ClassAttributes
|
|
|
9
9
|
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
10
10
|
} & import('class-variance-authority/dist/types').ClassProp) | undefined) => string> & {
|
|
11
11
|
asChild?: boolean;
|
|
12
|
+
isLoading?: boolean;
|
|
12
13
|
}, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
13
14
|
export { Button, buttonVariants };
|
|
14
15
|
//# sourceMappingURL=button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,QAAA,MAAM,cAAc;;;mFA+BnB,CAAC;AAEF,QAAA,MAAM,MAAM;;;;cAII,OAAO;gBACL,OAAO;mDAsBvB,CAAC;AAIH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,MAAa,EACb,GAAG,KAAK,EACT,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/calendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,UAAU,EACV,eAAsB,EACtB,MAAa,EACb,GAAG,KAAK,EACT,EAAE,aAAa,2CAqDf;kBA3DQ,QAAQ;;;AA+DjB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { LucideIcon } from 'lucide-react';
|
|
2
|
+
import { Button } from './button';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export type EmptyStateVariant = "first-use" | "cleared" | "no-results" | "error";
|
|
5
|
+
export interface EmptyStateAction {
|
|
6
|
+
label: string;
|
|
7
|
+
onClick: () => void;
|
|
8
|
+
/** @default "default" */
|
|
9
|
+
variant?: React.ComponentProps<typeof Button>["variant"];
|
|
10
|
+
}
|
|
11
|
+
export interface EmptyStateProps {
|
|
12
|
+
/** Ícone principal. Prefira ícones do lucide-react com semântica relacionada ao contexto. */
|
|
13
|
+
icon: LucideIcon;
|
|
14
|
+
/** Título curto e orientado à situação do usuário. */
|
|
15
|
+
title: string;
|
|
16
|
+
/** Descrição que explica o valor da funcionalidade e o próximo passo. */
|
|
17
|
+
description: string;
|
|
18
|
+
/** Variante semântica do empty state. Controla o estilo do ícone. */
|
|
19
|
+
variant?: EmptyStateVariant;
|
|
20
|
+
/** Ação primária — botão principal de CTA. */
|
|
21
|
+
primaryAction?: EmptyStateAction;
|
|
22
|
+
/** Ação secundária — alternativa ou link de ajuda. */
|
|
23
|
+
secondaryAction?: EmptyStateAction;
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* EmptyState — Estado vazio padronizado do iClips.
|
|
28
|
+
*
|
|
29
|
+
* Age como "mentor" (arquétipo Herói): nunca exibe uma tela em branco nem
|
|
30
|
+
* culpa o usuário. Em vez disso, explica o contexto e convida à ação.
|
|
31
|
+
*
|
|
32
|
+
* Variantes:
|
|
33
|
+
* - **first-use**: Primeira visita ao módulo. Foco em benefício + CTA.
|
|
34
|
+
* - **cleared**: Usuário concluiu ou limpou tudo. Tom celebratório.
|
|
35
|
+
* - **no-results**: Busca/filtro sem retorno. Oriente a ajustar a busca.
|
|
36
|
+
* - **error**: Falha de carregamento. Explique e dê uma saída clara.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <EmptyState
|
|
40
|
+
* variant="first-use"
|
|
41
|
+
* icon={FolderOpen}
|
|
42
|
+
* title="Seu primeiro projeto está esperando por você"
|
|
43
|
+
* description="Centralize jobs, prazos e equipe em um único lugar."
|
|
44
|
+
* primaryAction={{ label: "Criar Primeiro Projeto", onClick: handleCreate }}
|
|
45
|
+
* />
|
|
46
|
+
*/
|
|
47
|
+
export declare function EmptyState({ icon: Icon, title, description, variant, primaryAction, secondaryAction, className, }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
//# sourceMappingURL=empty-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../src/components/ui/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,SAAS,GACT,YAAY,GACZ,OAAO,CAAC;AAEZ,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yBAAyB;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,eAAe;IAC9B,6FAA6F;IAC7F,IAAI,EAAE,UAAU,CAAC;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,8CAA8C;IAC9C,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,sDAAsD;IACtD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,EACzB,IAAI,EAAE,IAAI,EACV,KAAK,EACL,WAAW,EACX,OAAqB,EACrB,aAAa,EACb,eAAe,EACf,SAAS,GACV,EAAE,eAAe,2CAsDjB"}
|
|
@@ -1,47 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Illustration System - iClips Design System
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Componentes de ilustração respaldados pelos assets PNG oficiais da marca.
|
|
5
|
+
* Os arquivos ficam em public/illustrations/ e são referenciados por URL.
|
|
6
6
|
*/
|
|
7
7
|
interface PropsIlustracao {
|
|
8
8
|
className?: string;
|
|
9
9
|
size?: "sm" | "md" | "lg";
|
|
10
|
-
/** Primary color - defaults to purple-500 */
|
|
11
|
-
primaryColor?: string;
|
|
12
|
-
/** Secondary color - defaults to purple-100 */
|
|
13
|
-
secondaryColor?: string;
|
|
14
10
|
}
|
|
15
11
|
/**
|
|
16
12
|
* Empty Inbox Illustration
|
|
17
13
|
* Use for: No messages, no notifications, cleared inbox
|
|
18
14
|
*/
|
|
19
|
-
export declare function EmptyInboxIllustration({
|
|
15
|
+
export declare function EmptyInboxIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
20
16
|
/**
|
|
21
17
|
* Empty Search Illustration
|
|
22
18
|
* Use for: No results found, empty search
|
|
23
19
|
*/
|
|
24
|
-
export declare function EmptySearchIllustration({
|
|
20
|
+
export declare function EmptySearchIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
25
21
|
/**
|
|
26
22
|
* Empty Projects Illustration
|
|
27
23
|
* Use for: No projects, no campaigns, empty folder
|
|
28
24
|
*/
|
|
29
|
-
export declare function EmptyProjectsIllustration({
|
|
25
|
+
export declare function EmptyProjectsIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
30
26
|
/**
|
|
31
27
|
* Empty Calendar Illustration
|
|
32
28
|
* Use for: No events, no deadlines, clear schedule
|
|
33
29
|
*/
|
|
34
|
-
export declare function EmptyCalendarIllustration({
|
|
30
|
+
export declare function EmptyCalendarIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
35
31
|
/**
|
|
36
32
|
* Error State Illustration
|
|
37
|
-
* Use for: Error loading, something went wrong
|
|
33
|
+
* Use for: Error loading, something went wrong, not found
|
|
38
34
|
*/
|
|
39
|
-
export declare function ErrorStateIllustration({
|
|
35
|
+
export declare function ErrorStateIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
40
36
|
/**
|
|
41
37
|
* Success State Illustration
|
|
42
38
|
* Use for: Action completed, all done
|
|
43
39
|
*/
|
|
44
|
-
export declare function SuccessStateIllustration({
|
|
40
|
+
export declare function SuccessStateIllustration({ size, className }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
|
|
45
41
|
export declare const Illustrations: {
|
|
46
42
|
EmptyInbox: typeof EmptyInboxIllustration;
|
|
47
43
|
EmptySearch: typeof EmptySearchIllustration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"illustrations.d.ts","sourceRoot":"","sources":["../../../src/components/ui/illustrations.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,eAAe;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"illustrations.d.ts","sourceRoot":"","sources":["../../../src/components/ui/illustrations.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,eAAe;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B;AAuBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASlF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASpF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASpF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASjF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAW,EAAE,SAAS,EAAE,EAAE,eAAe,2CASnF;AAGD,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -27,10 +27,12 @@ export * from './dialog';
|
|
|
27
27
|
export * from './drawer';
|
|
28
28
|
export * from './dropdown-menu';
|
|
29
29
|
export * from './editable-badge';
|
|
30
|
+
export * from './empty-state';
|
|
30
31
|
export * from './form';
|
|
31
32
|
export * from './hover-card';
|
|
32
33
|
export * from './input';
|
|
33
34
|
export * from './input-group';
|
|
35
|
+
export * from './input-validation';
|
|
34
36
|
export * from './input-otp';
|
|
35
37
|
export * from './label';
|
|
36
38
|
export * from './menubar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type ValidationState = "idle" | "valid" | "invalid";
|
|
3
|
+
export interface InputValidationProps extends React.ComponentProps<"input"> {
|
|
4
|
+
/**
|
|
5
|
+
* Estado de validação controlado externamente.
|
|
6
|
+
* Use "idle" antes da primeira interação, "valid" para sucesso e "invalid" para erro.
|
|
7
|
+
*/
|
|
8
|
+
validationState?: ValidationState;
|
|
9
|
+
/**
|
|
10
|
+
* Função de validação automática disparada no onChange.
|
|
11
|
+
* Retorna true para válido, false para inválido, null para idle.
|
|
12
|
+
* Só é usada se `validationState` não for fornecido.
|
|
13
|
+
*/
|
|
14
|
+
validate?: (value: string) => boolean | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* InputValidation — Input com feedback visual de validação em tempo real (Inline Validation).
|
|
18
|
+
*
|
|
19
|
+
* Exibe um ícone de CheckCircle (verde) para entradas válidas e XCircle (vermelho)
|
|
20
|
+
* para entradas inválidas, comunicando o resultado imediatamente ao usuário — sem
|
|
21
|
+
* esperar pelo submit do formulário.
|
|
22
|
+
*
|
|
23
|
+
* Arquétipo Governante: previne o erro antes que ele aconteça.
|
|
24
|
+
* Arquétipo Herói: reduz a fricção com feedback imediato e encorajador.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* // Modo controlado (recomendado com react-hook-form)
|
|
28
|
+
* <InputValidation validationState={errors.email ? "invalid" : value ? "valid" : "idle"} />
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Modo com validate automático
|
|
32
|
+
* <InputValidation validate={(v) => v.includes("@") ? true : v.length > 0 ? false : null} />
|
|
33
|
+
*/
|
|
34
|
+
export declare function InputValidation({ validationState: controlledState, validate, onChange, className, ...props }: InputValidationProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
//# sourceMappingURL=input-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-validation.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input-validation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3D,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;IACzE;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,eAAe,EAAE,eAAe,EAChC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAuCtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAe1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|