@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.
@@ -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;AAIlE,QAAA,MAAM,cAAc;;;mFA8BnB,CAAC;AAEF,QAAA,MAAM,MAAM;;;;cAII,OAAO;mDAarB,CAAC;AAIH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,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,2CAgDf;kBAtDQ,QAAQ;;;AA0DjB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
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
- * Reusable SVG illustrations for empty states and onboarding.
5
- * These follow the iClips brand colors (Purple #7F26BF as primary).
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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({ className, size, primaryColor, secondaryColor, }: PropsIlustracao): import("react/jsx-runtime").JSX.Element;
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;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAQD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,SAAS,EACT,IAAW,EACX,YAAkC,EAClC,cAAoC,GACvC,EAAE,eAAe,2CAwBjB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACpC,SAAS,EACT,IAAW,EACX,YAAkC,EAClC,cAAoC,GACvC,EAAE,eAAe,2CAoBjB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,SAAS,EACT,IAAW,EACX,YAAkC,EAClC,cAAoC,GACvC,EAAE,eAAe,2CAsBjB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,EACtC,SAAS,EACT,IAAW,EACX,YAAkC,EAClC,cAAoC,GACvC,EAAE,eAAe,2CA4BjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACnC,SAAS,EACT,IAAW,EACX,YAA+B,EAC/B,cAAiC,GACpC,EAAE,eAAe,2CAmBjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,SAAS,EACT,IAAW,EACX,YAAiC,EACjC,cAAmC,GACtC,EAAE,eAAe,2CAkBjB;AAGD,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,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,2CAc1E;AAED,OAAO,EAAE,KAAK,EAAE,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"}