@selectwin/kit 0.1.120 → 0.1.122

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.
@@ -12,6 +12,10 @@ export interface SelectButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonE
12
12
  trailingIcon?: ReactNode;
13
13
  /** Size to content instead of filling the width (toolbars, inline actions). */
14
14
  inline?: boolean;
15
+ /** `critical` on a `secondary` button: the outlined button with red ink — the quiet
16
+ * destructive action at the foot of a page ("Excluir produto"), where the solid `danger`
17
+ * would shout louder than the page's own save. */
18
+ tone?: 'critical';
15
19
  children: ReactNode;
16
20
  }
17
21
  export declare const SelectButton: import('react').ForwardRefExoticComponent<SelectButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -29,6 +29,11 @@ type SelectComboboxOwnProps = {
29
29
  /** Show the in-list search box (default true). Set false for a plain styled picker — the
30
30
  * portal dropdown of SelectSelect without a search field (short option lists). */
31
31
  searchable?: boolean;
32
+ /** Aceita um valor que não está nas opções: o que foi digitado na busca vira a linha
33
+ * `Usar "…"` (e o Enter escolhe). O valor livre continua aparecendo no gatilho. */
34
+ allowCustom?: boolean;
35
+ /** Rótulo da linha do valor livre. Padrão: `Usar "…"`. */
36
+ customLabel?: (query: string) => ReactNode;
32
37
  };
33
38
  export type SelectComboboxProps = SelectComboboxOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectComboboxOwnProps>;
34
39
  export declare const SelectCombobox: import('react').ForwardRefExoticComponent<SelectComboboxOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectComboboxOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -16,5 +16,8 @@ export interface SelectCopyableIdProps {
16
16
  * tabela. 'always' mantém o botão sempre visível: use fora de tabelas (menus,
17
17
  * mastheads), onde não há hover de linha para revelar o affordance. */
18
18
  reveal?: 'hover' | 'always';
19
+ /** 'inline' (padrão) é o id discreto de tabela. 'code' é o chip tracejado de um código que a
20
+ * pessoa digita (cupom): monoespaçado, com o botão de copiar sempre visível. */
21
+ variant?: 'inline' | 'code';
19
22
  }
20
- export declare function SelectCopyableId({ value, children, truncate, label, fallback, to, reveal, }: SelectCopyableIdProps): import("react").JSX.Element;
23
+ export declare function SelectCopyableId({ value, children, truncate, label, fallback, to, reveal, variant, }: SelectCopyableIdProps): import("react").JSX.Element;
@@ -62,7 +62,7 @@ export interface SelectDataColumn<T> {
62
62
  * guards mirror SelectMoney — storage unavailable = in-memory only.
63
63
  */
64
64
  export declare function useSelectPageSize(key: string, fallback: number, options?: number[]): [number, (size: number) => void];
65
- export declare function SelectDataTable<T>({ columns, items, getId, loading, empty, pagination, onRowClick, title, help, description, action, filters, columnsKey, getChildren, defaultExpanded, }: {
65
+ export declare function SelectDataTable<T>({ columns, items, getId, loading, empty, pagination, onRowClick, title, help, description, action, filters, columnsKey, getChildren, defaultExpanded, compactRow, compactQuery, onCompactRowClick, }: {
66
66
  columns: SelectDataColumn<T>[];
67
67
  items: T[];
68
68
  getId: (item: T) => string;
@@ -118,4 +118,16 @@ export declare function SelectDataTable<T>({ columns, items, getId, loading, emp
118
118
  /** Mães abertas no primeiro render (padrão: todas fechadas). Avaliado por item, então vale
119
119
  * também para a mãe que só chega na página seguinte. */
120
120
  defaultExpanded?: (item: T) => boolean;
121
+ /**
122
+ * A linha no CELULAR. Com ela, abaixo de `compactQuery` a tabela troca a grade de colunas por
123
+ * uma linha só por item (o que esta função desenhar: foto, valor, status) — mesma casca, mesmas
124
+ * faixas de título/filtros e o mesmo rodapé de paginação; somem só o cabeçalho de colunas e o
125
+ * seletor de colunas. Sem ela, a tabela rola na horizontal como sempre.
126
+ */
127
+ compactRow?: (item: T) => ReactNode;
128
+ /** Media query do modo compacto. Padrão `(max-width: 40rem)`. */
129
+ compactQuery?: string;
130
+ /** Clique na linha COMPACTA (padrão: `onRowClick`). Existe porque a linha larga costuma ter
131
+ * controles nas células (copiar id, menu) e por isso não é clicável — a compacta, sem eles, é. */
132
+ onCompactRowClick?: (item: T) => void;
121
133
  }): import("react").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { ReactNode } from 'react';
1
2
  export interface SelectFeeLine {
2
3
  label: string;
3
4
  /** Deduction in CENTS (positive number = subtracted from gross). */
@@ -10,5 +11,10 @@ export interface SelectFeeBreakdownProps {
10
11
  netCents?: number;
11
12
  grossLabel?: string;
12
13
  netLabel?: string;
14
+ /** Desenha, acima das linhas, a barra do bruto partida em líquido (verde, com o valor dentro) e
15
+ * taxas (hachurado), mais a legenda com o % das taxas — "para onde foi o dinheiro". */
16
+ bar?: boolean;
17
+ /** Texto dentro da faixa do líquido (padrão: `netLabel · valor`). */
18
+ barLabel?: ReactNode;
13
19
  }
14
20
  export declare const SelectFeeBreakdown: import('react').ForwardRefExoticComponent<SelectFeeBreakdownProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectFeeBreakdownProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -11,6 +11,10 @@ type SelectLabelRowOwnProps = {
11
11
  };
12
12
  export type SelectLabelRowProps = SelectLabelRowOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectLabelRowOwnProps>;
13
13
  export declare const SelectLabelRow: import('react').ForwardRefExoticComponent<SelectLabelRowOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectLabelRowOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
14
+ /** O contador "24/40" da linha do rótulo (`showCount`). Sem teto não há o que contar. */
15
+ export declare function charCount(value: string, maxLength: number | undefined): ReactNode;
16
+ /** Junta o contador à ação do rótulo — os dois cabem na mesma ponta da linha. */
17
+ export declare function withCount(action: ReactNode, count: ReactNode): ReactNode;
14
18
  export interface SelectFieldProps {
15
19
  /** Field label. Omit when an outer row already labels the field. */
16
20
  label?: string;
@@ -55,6 +59,9 @@ export interface SelectFieldProps {
55
59
  id?: string;
56
60
  minLength?: number;
57
61
  maxLength?: number;
62
+ /** Contador "24/40" na linha do rótulo (exige `maxLength`). Para textos com teto que a pessoa
63
+ * escreve — nome, título —, onde descobrir o limite pelo corte do teclado é pior que vê-lo chegar. */
64
+ showCount?: boolean;
58
65
  /** Numeric bounds (type="number"). */
59
66
  min?: number | string;
60
67
  max?: number | string;
@@ -1,8 +1,11 @@
1
- import { ComponentPropsWithoutRef } from 'react';
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import { SelectFunnelStage } from './chartUtils';
3
3
  type SelectFunnelOwnProps = {
4
4
  stages: SelectFunnelStage[];
5
5
  format?: (n: number) => string;
6
+ palette?: 'ramp' | 'mono';
7
+ /** Texto da conversão de uma etapa sobre a anterior (padrão "56%"). */
8
+ convLabel?: (pct: number, index: number) => ReactNode;
6
9
  };
7
10
  export type SelectFunnelProps = SelectFunnelOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectFunnelOwnProps>;
8
11
  export declare const SelectFunnel: import('react').ForwardRefExoticComponent<SelectFunnelOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectFunnelOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,11 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type SelectIconTileTone = 'neutral' | 'success' | 'critical' | 'warning' | 'info' | 'pro';
3
+ type SelectIconTileOwnProps = {
4
+ icon: ReactNode;
5
+ tone?: SelectIconTileTone;
6
+ /** sm 1.75rem · md 2.125rem · lg 2.5rem. */
7
+ size?: 'sm' | 'md' | 'lg';
8
+ };
9
+ export type SelectIconTileProps = SelectIconTileOwnProps & Omit<ComponentPropsWithoutRef<'span'>, keyof SelectIconTileOwnProps>;
10
+ export declare const SelectIconTile: import('react').ForwardRefExoticComponent<SelectIconTileOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, keyof SelectIconTileOwnProps> & import('react').RefAttributes<HTMLSpanElement>>;
11
+ export {};
@@ -0,0 +1,40 @@
1
+ import { ReactNode, ComponentPropsWithoutRef } from 'react';
2
+ export interface SelectGalleryItem {
3
+ /** Chave estável: a própria url de uma imagem hospedada, um id gerado para um arquivo. */
4
+ key: string;
5
+ /** Imagem já hospedada (https://…). */
6
+ url?: string;
7
+ /** Arquivo escolhido agora — sobe no salvar; a prévia é um object URL. */
8
+ file?: File;
9
+ }
10
+ /** Item de galeria para um arquivo recém-escolhido (chave única, estável enquanto ele existir). */
11
+ export declare function galleryItemFromFile(file: File): SelectGalleryItem;
12
+ /** Item de galeria para uma imagem que já está hospedada. */
13
+ export declare function galleryItemFromUrl(url: string): SelectGalleryItem;
14
+ type SelectImageGalleryFieldOwnProps = {
15
+ label?: ReactNode;
16
+ /** Ajuda contextual: o "!" ao lado do rótulo. */
17
+ help?: ReactNode;
18
+ items: SelectGalleryItem[];
19
+ onChange: (items: SelectGalleryItem[]) => void;
20
+ /** Teto de fotos (o botão de adicionar some ao chegar). Padrão 10. */
21
+ max?: number;
22
+ /** Tipos aceitos, ex. '.jpg,.jpeg,.png,.webp'. */
23
+ accept?: string;
24
+ /** Teto por arquivo, em MB. */
25
+ maxSizeMB?: number;
26
+ hint?: ReactNode;
27
+ error?: string;
28
+ /** Oferece "Colar link de imagem" (padrão true). */
29
+ allowUrl?: boolean;
30
+ /** Lado do quadrado de cada foto, em px (padrão 88). */
31
+ tileSize?: number;
32
+ /** Rótulo do quadrado de adicionar (padrão "Adicionar"). */
33
+ addLabel?: string;
34
+ /** Selo da primeira foto (padrão "Capa"); `null` tira o selo e o "Tornar capa" (foto única). */
35
+ coverLabel?: string | null;
36
+ disabled?: boolean;
37
+ };
38
+ export type SelectImageGalleryFieldProps = SelectImageGalleryFieldOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectImageGalleryFieldOwnProps>;
39
+ export declare const SelectImageGalleryField: import('react').ForwardRefExoticComponent<SelectImageGalleryFieldOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectImageGalleryFieldOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
40
+ export {};
@@ -0,0 +1,32 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type SelectJourneyState = 'done' | 'current' | 'upcoming' | 'failed';
3
+ export type SelectJourneyTone = 'brand' | 'success' | 'critical' | 'warning';
4
+ export interface SelectJourneyStep {
5
+ key?: string;
6
+ label: ReactNode;
7
+ /** Linha sob o rótulo ("Processada em 1,4 s"). */
8
+ description?: ReactNode;
9
+ /** Quando: hora, data, "em 22 dias". Na trilha vertical fica à direita. */
10
+ meta?: ReactNode;
11
+ state: SelectJourneyState;
12
+ /** Cor do marcador deste passo (padrão: o `accent` da jornada; `failed` é sempre crítico). */
13
+ tone?: SelectJourneyTone;
14
+ /** Glifo dentro do marcador de um passo por vir (o relógio de um ciclo agendado). */
15
+ icon?: ReactNode;
16
+ }
17
+ type SelectJourneyOwnProps = {
18
+ steps: SelectJourneyStep[];
19
+ /** Cor dos passos feitos e das linhas já percorridas. Padrão `brand`. */
20
+ accent?: 'brand' | 'success';
21
+ align?: 'start' | 'center';
22
+ size?: 'sm' | 'md' | 'lg';
23
+ orientation?: 'auto' | 'horizontal' | 'vertical';
24
+ /** Um marco entre dois passos: `after` é o índice do passo à esquerda dele. */
25
+ marker?: {
26
+ after: number;
27
+ label: ReactNode;
28
+ };
29
+ };
30
+ export type SelectJourneyProps = SelectJourneyOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectJourneyOwnProps>;
31
+ export declare const SelectJourney: import('react').ForwardRefExoticComponent<SelectJourneyOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectJourneyOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
32
+ export {};
@@ -10,9 +10,12 @@ type SelectListCardOwnProps = {
10
10
  };
11
11
  export type SelectListCardProps = SelectListCardOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectListCardOwnProps>;
12
12
  export declare const SelectListCard: import('react').ForwardRefExoticComponent<SelectListCardOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectListCardOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
13
- export declare function SelectListRow({ media, title, secondary, action, muted, onClick, }: {
13
+ export declare function SelectListRow({ media, mediaSize, title, secondary, action, muted, onClick, }: {
14
14
  /** Leading visual — an icon or SelectAvatar. */
15
15
  media?: ReactNode;
16
+ /** `icon` (padrão) encaixa um glifo cru numa caixa de 1.25rem; `auto` deixa o visual com o
17
+ * tamanho dele — um SelectIconTile, um SelectThumbnail, um SelectAvatar maior. */
18
+ mediaSize?: 'icon' | 'auto';
16
19
  title: ReactNode;
17
20
  /** Sub-text under the title (e.g. an email under a name). */
18
21
  secondary?: ReactNode;
@@ -22,4 +25,12 @@ export declare function SelectListRow({ media, title, secondary, action, muted,
22
25
  muted?: boolean;
23
26
  onClick?: () => void;
24
27
  }): import("react").JSX.Element;
28
+ /**
29
+ * SelectListLabel — o rótulo de um GRUPO dentro da caixa de linhas ("O que mais conta neste
30
+ * motivo" / "Outros comprovantes"): caixa alta pequena, sem ação. Separa as linhas sem abrir um
31
+ * segundo card.
32
+ */
33
+ export declare function SelectListLabel({ children }: {
34
+ children: ReactNode;
35
+ }): import("react").JSX.Element;
25
36
  export {};
@@ -0,0 +1,13 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface SelectMiniStat {
3
+ key?: string;
4
+ label: ReactNode;
5
+ value: ReactNode;
6
+ }
7
+ type SelectMiniStatsOwnProps = {
8
+ items: SelectMiniStat[];
9
+ order?: 'label-first' | 'value-first';
10
+ };
11
+ export type SelectMiniStatsProps = SelectMiniStatsOwnProps & Omit<ComponentPropsWithoutRef<'dl'>, keyof SelectMiniStatsOwnProps>;
12
+ export declare const SelectMiniStats: import('react').ForwardRefExoticComponent<SelectMiniStatsOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDListElement>, HTMLDListElement>, "ref">, keyof SelectMiniStatsOwnProps> & import('react').RefAttributes<HTMLDListElement>>;
13
+ export {};
@@ -3,6 +3,8 @@ type SelectNoteOwnProps = {
3
3
  children: ReactNode;
4
4
  tone?: 'neutral' | 'info' | 'warning' | 'critical';
5
5
  hideIcon?: boolean;
6
+ icon?: ReactNode;
7
+ title?: ReactNode;
6
8
  };
7
9
  export type SelectNoteProps = SelectNoteOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectNoteOwnProps>;
8
10
  export declare const SelectNote: import('react').ForwardRefExoticComponent<SelectNoteOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectNoteOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -11,6 +11,11 @@ type SelectOfferPriceOwnProps = {
11
11
  zeroLabel?: ReactNode;
12
12
  /** Nota discreta ao lado do preço (o prazo de entrega, por exemplo). */
13
13
  note?: ReactNode;
14
+ /** Texto miúdo ANTES do preço — "a partir de", quando o card resume vários preços pelo menor. */
15
+ prefix?: ReactNode;
16
+ /** Texto miúdo colado DEPOIS do preço — a cadência de uma assinatura ("/mês", "a cada 3 meses").
17
+ * Fica antes do "de" riscado: é parte do preço, não do desconto. */
18
+ suffix?: ReactNode;
14
19
  };
15
20
  export type SelectOfferPriceProps = SelectOfferPriceOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectOfferPriceOwnProps>;
16
21
  export declare const SelectOfferPrice: import('react').ForwardRefExoticComponent<SelectOfferPriceOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectOfferPriceOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,11 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ type SelectPaymentCardOwnProps = {
3
+ /** Bandeira como a API grava (`visa`, `mastercard`, `elo`…). */
4
+ brand?: string;
5
+ lastDigits?: string;
6
+ /** Linha sob o número ("3x de R$ 99,00"). */
7
+ caption?: ReactNode;
8
+ };
9
+ export type SelectPaymentCardProps = SelectPaymentCardOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectPaymentCardOwnProps>;
10
+ export declare const SelectPaymentCard: import('react').ForwardRefExoticComponent<SelectPaymentCardOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectPaymentCardOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
11
+ export {};
@@ -0,0 +1,13 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ type SelectPipsOwnProps = {
3
+ /** Quantos pontos existem. */
4
+ total: number;
5
+ /** Quantos estão cheios. */
6
+ value: number;
7
+ /** Texto ao lado (padrão "2 de 3"); `null` esconde. */
8
+ label?: ReactNode;
9
+ tone?: 'success' | 'brand';
10
+ };
11
+ export type SelectPipsProps = SelectPipsOwnProps & Omit<ComponentPropsWithoutRef<'span'>, keyof SelectPipsOwnProps>;
12
+ export declare const SelectPips: import('react').ForwardRefExoticComponent<SelectPipsOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, keyof SelectPipsOwnProps> & import('react').RefAttributes<HTMLSpanElement>>;
13
+ export {};
@@ -1,5 +1,6 @@
1
1
  import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- export type SelectProgressTone = 'brand' | 'success' | 'warning' | 'critical';
2
+ /** `neutral` é a barra que não julga (o risco de uma sessão que já acabou); `info`, a azul. */
3
+ export type SelectProgressTone = 'brand' | 'success' | 'warning' | 'critical' | 'info' | 'neutral';
3
4
  type SelectProgressBarOwnProps = {
4
5
  /** De 0 a `max`. */
5
6
  value?: number;
@@ -0,0 +1,23 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type SelectRingTone = 'brand' | 'success' | 'warning' | 'critical' | 'info' | 'neutral';
3
+ type SelectRingOwnProps = {
4
+ /** Quanto do anel pinta, de 0 a `max`. */
5
+ value: number;
6
+ max?: number;
7
+ /** Diâmetro em px na raiz de 16px (renderizado em rem, acompanha a escala fluida). Padrão 64. */
8
+ size?: number;
9
+ /** Espessura do traço em px. Padrão ≈ 11% do diâmetro. */
10
+ thickness?: number;
11
+ tone?: SelectRingTone;
12
+ /** O valor grande no centro ("19 h", "76", "23"). */
13
+ label?: ReactNode;
14
+ /** A linha pequena sob ele ("restantes", "min"). */
15
+ caption?: ReactNode;
16
+ /** Sobre fundo escuro (SelectSpotlight `inverse`): o trilho vira um branco translúcido. */
17
+ inverse?: boolean;
18
+ /** Nome acessível — sem ele, o anel é decorativo (o texto ao lado já diz o número). */
19
+ ariaLabel?: string;
20
+ };
21
+ export type SelectRingProps = SelectRingOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectRingOwnProps>;
22
+ export declare const SelectRing: import('react').ForwardRefExoticComponent<SelectRingOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectRingOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
23
+ export {};
@@ -13,6 +13,12 @@ type SelectSegmentedOwnProps = {
13
13
  ariaLabel?: string;
14
14
  /** Stretch to 100% width with equal-width segments (forms/tabs). Default: hugs labels. */
15
15
  fullWidth?: boolean;
16
+ /** Form label above the track (wraps the control in the field shell). */
17
+ label?: ReactNode;
18
+ /** Helper line under the track (only with `label`). */
19
+ hint?: ReactNode;
20
+ /** Freeze the choice: segments don't respond and the track dims. */
21
+ disabled?: boolean;
16
22
  };
17
23
  export type SelectSegmentedProps = SelectSegmentedOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectSegmentedOwnProps>;
18
24
  export declare const SelectSegmented: import('react').ForwardRefExoticComponent<SelectSegmentedOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectSegmentedOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -2,10 +2,14 @@ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  export interface SelectShareItem {
3
3
  label: string;
4
4
  value: number;
5
+ /** Chave estável da parte (o que `onSelect` devolve). Padrão: o `label`. */
6
+ key?: string;
5
7
  /** Segment + dot color (else the chart ramp, in order). */
6
8
  color?: string;
7
9
  /** Shown before the % in the legend (e.g. the amount). */
8
10
  valueText?: ReactNode;
11
+ /** Na legenda em fichas: o número em negrito ao lado do rótulo (a contagem). */
12
+ count?: ReactNode;
9
13
  }
10
14
  type SelectShareBarOwnProps = {
11
15
  items: SelectShareItem[];
@@ -13,7 +17,15 @@ type SelectShareBarOwnProps = {
13
17
  label?: ReactNode;
14
18
  /** Right side of that line (a total, a scope like "aprovado"). */
15
19
  aside?: ReactNode;
20
+ legend?: 'list' | 'chips';
21
+ size?: 'sm' | 'md';
22
+ /** Torna fichas e faixas clicáveis. */
23
+ onSelect?: (key: string) => void;
24
+ /** A parte escolhida (as outras esmaecem). */
25
+ selected?: string | null;
26
+ /** Linha discreta sob a legenda. */
27
+ hint?: ReactNode;
16
28
  };
17
29
  export type SelectShareBarProps = SelectShareBarOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectShareBarOwnProps>;
18
- export declare function SelectShareBar({ items, label, aside, className, ...rest }: SelectShareBarProps): import("react").JSX.Element | null;
30
+ export declare function SelectShareBar({ items, label, aside, legend, size, onSelect, selected, hint, className, ...rest }: SelectShareBarProps): import("react").JSX.Element | null;
19
31
  export {};
@@ -0,0 +1,17 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type SelectSpotlightTone = 'inverse' | 'critical' | 'warning' | 'info' | 'neutral';
3
+ type SelectSpotlightOwnProps = {
4
+ tone?: SelectSpotlightTone;
5
+ media?: ReactNode;
6
+ /** Rótulo pequeno acima do título ("Ação recomendada"). */
7
+ eyebrow?: ReactNode;
8
+ title: ReactNode;
9
+ description?: ReactNode;
10
+ actions?: ReactNode;
11
+ actionsPlacement?: 'below' | 'end';
12
+ aside?: ReactNode;
13
+ children?: ReactNode;
14
+ };
15
+ export type SelectSpotlightProps = SelectSpotlightOwnProps & Omit<ComponentPropsWithoutRef<'section'>, keyof SelectSpotlightOwnProps | 'title'>;
16
+ export declare const SelectSpotlight: import('react').ForwardRefExoticComponent<SelectSpotlightOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, keyof SelectSpotlightOwnProps> & import('react').RefAttributes<HTMLElement>>;
17
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ type SelectTaskCardOwnProps = {
3
+ tone?: 'critical' | 'warning' | 'neutral';
4
+ /** Visual da cabeça (um SelectRing de prazo, um SelectIconTile). */
5
+ media?: ReactNode;
6
+ title: ReactNode;
7
+ subtitle?: ReactNode;
8
+ meta?: ReactNode;
9
+ children?: ReactNode;
10
+ footer?: ReactNode;
11
+ };
12
+ export type SelectTaskCardProps = SelectTaskCardOwnProps & Omit<ComponentPropsWithoutRef<'article'>, keyof SelectTaskCardOwnProps | 'title'>;
13
+ export declare const SelectTaskCard: import('react').ForwardRefExoticComponent<SelectTaskCardOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref">, keyof SelectTaskCardOwnProps> & import('react').RefAttributes<HTMLElement>>;
14
+ export {};
@@ -20,6 +20,8 @@ type SelectTextareaOwnProps = {
20
20
  required?: boolean;
21
21
  disabled?: boolean;
22
22
  maxLength?: number;
23
+ /** Contador "96/400" na linha do rótulo (exige `maxLength`). */
24
+ showCount?: boolean;
23
25
  onBlur?: () => void;
24
26
  /** Control density. Default `md`; use `sm` in dense surfaces and modal/card forms. */
25
27
  size?: 'sm' | 'md';
@@ -3,6 +3,9 @@ type SelectThumbnailOwnProps = {
3
3
  src?: string;
4
4
  alt?: string;
5
5
  size?: number;
6
+ /** Quantos itens a MAIS esta imagem representa: um selo "+N" no canto (a cobrança com 3
7
+ * produtos mostra a foto do primeiro e "+2"). 0/ausente = sem selo. */
8
+ count?: number;
6
9
  };
7
10
  export type SelectThumbnailProps = SelectThumbnailOwnProps & Omit<ComponentPropsWithoutRef<'span'>, keyof SelectThumbnailOwnProps>;
8
11
  export declare const SelectThumbnail: import('react').ForwardRefExoticComponent<SelectThumbnailOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, keyof SelectThumbnailOwnProps> & import('react').RefAttributes<HTMLSpanElement>>;
@@ -6,10 +6,14 @@ export interface SelectTimelineItem {
6
6
  description?: ReactNode;
7
7
  content?: ReactNode;
8
8
  tone?: SelectTimelineTone;
9
+ /** Selo ao lado do título. */
10
+ badge?: ReactNode;
9
11
  }
10
12
  type SelectTimelineOwnProps = {
11
13
  items: SelectTimelineItem[];
14
+ markers?: 'outcome' | 'each';
15
+ timePosition?: 'end' | 'start';
12
16
  };
13
17
  export type SelectTimelineProps = SelectTimelineOwnProps & Omit<ComponentPropsWithoutRef<'ul'>, keyof SelectTimelineOwnProps>;
14
- export declare const SelectTimeline: import('react').ForwardRefExoticComponent<SelectTimelineOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref">, "items"> & import('react').RefAttributes<HTMLUListElement>>;
18
+ export declare const SelectTimeline: import('react').ForwardRefExoticComponent<SelectTimelineOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref">, keyof SelectTimelineOwnProps> & import('react').RefAttributes<HTMLUListElement>>;
15
19
  export {};
@@ -2,6 +2,8 @@ import { ReactNode, ComponentPropsWithoutRef } from 'react';
2
2
  type SelectToggleListOwnProps = {
3
3
  children: ReactNode;
4
4
  scroll?: boolean;
5
+ /** Hairline ABOVE the first row too — for a list that follows other fields in a form. */
6
+ bordered?: boolean;
5
7
  };
6
8
  export type SelectToggleListProps = SelectToggleListOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectToggleListOwnProps>;
7
9
  export declare const SelectToggleList: import('react').ForwardRefExoticComponent<SelectToggleListOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectToggleListOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -11,6 +13,10 @@ type SelectToggleRowOwnProps = {
11
13
  checked: boolean;
12
14
  onChange: (checked: boolean) => void;
13
15
  disabled?: boolean;
16
+ /** Quiet line under the label — what turning it on DOES. */
17
+ description?: ReactNode;
18
+ /** Revealed under the row while `checked` (the fields the switch turns on). */
19
+ children?: ReactNode;
14
20
  };
15
21
  export type SelectToggleRowProps = SelectToggleRowOwnProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SelectToggleRowOwnProps>;
16
22
  export declare const SelectToggleRow: import('react').ForwardRefExoticComponent<SelectToggleRowOwnProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SelectToggleRowOwnProps> & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,7 +1,9 @@
1
- export declare function SelectZoomThumbnail({ src, alt, size, title, }: {
1
+ export declare function SelectZoomThumbnail({ src, alt, size, title, count, }: {
2
2
  src?: string;
3
3
  alt?: string;
4
4
  size?: number;
5
5
  /** Heading on the zoom modal (defaults to `alt`). */
6
6
  title?: string;
7
+ /** Selo "+N" (ver SelectThumbnail). */
8
+ count?: number;
7
9
  }): import("react").JSX.Element;
@@ -77,4 +77,8 @@ export interface SelectDonutSegment {
77
77
  export interface SelectFunnelStage {
78
78
  label: string;
79
79
  value: number;
80
+ /** Cor da barra desta etapa (vence a paleta do funil). */
81
+ color?: string;
82
+ /** Destaca a conversão desta etapa (a maior perda do funil): texto crítico com ▼. */
83
+ flag?: boolean;
80
84
  }
package/dist/icons.d.ts CHANGED
@@ -106,6 +106,12 @@ export declare function MoneyReceiveIcon(): import("react").JSX.Element;
106
106
  export declare function ClipboardIcon(): import("react").JSX.Element;
107
107
  export declare function NoteIcon(): import("react").JSX.Element;
108
108
  export declare function DiscountIcon(): import("react").JSX.Element;
109
+ /**
110
+ * Bilhete com o "%" — o glifo de UM cupom (o card da lista, a prévia do formulário). O
111
+ * `DiscountIcon` (o selo) continua sendo a SEÇÃO Cupons no menu: o recurso e o item dele
112
+ * não usam o mesmo desenho. Iconsax Linear "ticket-discount".
113
+ */
114
+ export declare function TicketDiscountIcon(): import("react").JSX.Element;
109
115
  /**
110
116
  * Sinal saindo de um ponto — o glifo do RASTREIO (pixels do checkout). Não reaproveitar
111
117
  * `ChartLineIcon` aqui: aquele é o glifo do **Analytics** (item do menu lateral e empty
@@ -147,4 +153,25 @@ export declare function AwardIcon(): import("react").JSX.Element;
147
153
  export declare function UsersIcon(): import("react").JSX.Element;
148
154
  /** Três círculos sobrepostos (Iconsax colorfilter) — cor, identidade visual. */
149
155
  export declare function PaletteIcon(): import("react").JSX.Element;
156
+ /** Duas barras (Iconsax pause) — pausar uma cobrança recorrente. */
157
+ export declare function PauseIcon(): import("react").JSX.Element;
158
+ /** Seta voltando em volta (Iconsax arrow-rotate-left) — o ESTORNO: o dinheiro que volta. Não é o
159
+ * `RefreshIcon` (recarregar), que desenha o mesmo gesto para "de novo". */
160
+ export declare function RefundIcon(): import("react").JSX.Element;
161
+ /** Recibo com linhas (Iconsax receipt-text) — o comprovante de uma cobrança. */
162
+ export declare function ReceiptIcon(): import("react").JSX.Element;
163
+ /** Balão de conversa (Iconsax message) — falar com o cliente (WhatsApp, conversa). */
164
+ export declare function ChatIcon(): import("react").JSX.Element;
165
+ /** Estrela com rastro (Iconsax magic-star) — uma RECOMENDAÇÃO: o que costuma resolver. */
166
+ export declare function SparkleIcon(): import("react").JSX.Element;
167
+ /** Bandeira (Iconsax flag) — o motivo alegado numa contestação. */
168
+ export declare function FlagIcon(): import("react").JSX.Element;
169
+ /** Pino de mapa (Iconsax location) — um endereço. */
170
+ export declare function LocationIcon(): import("react").JSX.Element;
171
+ /** X num círculo (Iconsax close-circle) — encerrar, cancelar de vez. */
172
+ export declare function CloseCircleIcon(): import("react").JSX.Element;
173
+ /** Raio (Iconsax flash) — o que é instantâneo: oferecer Pix no lugar do cartão. */
174
+ export declare function FlashIcon(): import("react").JSX.Element;
175
+ /** Documento com texto (Iconsax document-text) — nota fiscal, documento anexado. */
176
+ export declare function DocumentTextIcon(): import("react").JSX.Element;
150
177
  export {};
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export { SelectDocumentField } from './SelectDocumentField';
14
14
  export { SelectFileDropzone } from './SelectFileDropzone';
15
15
  export { SelectImageUrlsField } from './SelectImageUrlsField';
16
16
  export { SelectImageUploadField } from './SelectImageUploadField';
17
+ export { SelectImageGalleryField, galleryItemFromFile, galleryItemFromUrl } from './SelectImageGalleryField';
17
18
  export { SelectBankAccountField } from './SelectBankAccountField';
18
19
  export { SelectFieldGrid } from './SelectFieldGrid';
19
20
  export { SelectToggleList, SelectToggleRow } from './SelectToggle';
@@ -107,6 +108,22 @@ export { SelectDonut } from './SelectDonut';
107
108
  export { SelectColumnChart } from './SelectColumnChart';
108
109
  export { SelectChartLegend } from './SelectChartLegend';
109
110
  export { SelectShareBar } from './SelectShareBar';
111
+ export { SelectRing } from './SelectRing';
112
+ export type { SelectRingProps, SelectRingTone } from './SelectRing';
113
+ export { SelectJourney } from './SelectJourney';
114
+ export type { SelectJourneyProps, SelectJourneyStep, SelectJourneyState, SelectJourneyTone } from './SelectJourney';
115
+ export { SelectPips } from './SelectPips';
116
+ export type { SelectPipsProps } from './SelectPips';
117
+ export { SelectIconTile } from './SelectIconTile';
118
+ export type { SelectIconTileProps, SelectIconTileTone } from './SelectIconTile';
119
+ export { SelectSpotlight } from './SelectSpotlight';
120
+ export type { SelectSpotlightProps, SelectSpotlightTone } from './SelectSpotlight';
121
+ export { SelectTaskCard } from './SelectTaskCard';
122
+ export type { SelectTaskCardProps } from './SelectTaskCard';
123
+ export { SelectMiniStats } from './SelectMiniStats';
124
+ export type { SelectMiniStatsProps, SelectMiniStat } from './SelectMiniStats';
125
+ export { SelectPaymentCard } from './SelectPaymentCard';
126
+ export type { SelectPaymentCardProps } from './SelectPaymentCard';
110
127
  export { SelectFunnel } from './SelectFunnel';
111
128
  export { SelectGauge } from './SelectGauge';
112
129
  export { SelectHeatmap } from './SelectHeatmap';
@@ -160,7 +177,7 @@ export type { SelectSetupGuideProps, SelectSetupGroup, SelectSetupStep, SelectSe
160
177
  export { SelectTour } from './SelectTour';
161
178
  export type { SelectTourProps, SelectTourStep } from './SelectTour';
162
179
  export { SelectPlanCard } from './SelectPlanCard';
163
- export { SelectListCard, SelectListRow } from './SelectListCard';
180
+ export { SelectListCard, SelectListRow, SelectListLabel } from './SelectListCard';
164
181
  export { SelectThumbnail } from './SelectThumbnail';
165
182
  export { SelectZoomThumbnail } from './SelectZoomThumbnail';
166
183
  export { SelectMediaCell } from './SelectMediaCell';
@@ -214,6 +231,7 @@ export type { SelectDateRangeFieldProps, SelectDateRangeValue } from './SelectDa
214
231
  export type { SelectFileDropzoneProps } from './SelectFileDropzone';
215
232
  export type { SelectImageUrlsFieldProps } from './SelectImageUrlsField';
216
233
  export type { SelectImageUploadFieldProps, SelectImageUploadMode } from './SelectImageUploadField';
234
+ export type { SelectImageGalleryFieldProps, SelectGalleryItem } from './SelectImageGalleryField';
217
235
  export type { SelectFileTileProps } from './SelectFileTile';
218
236
  export type { SelectKeyValuePair, SelectKeyValueEditorProps } from './SelectKeyValueEditor';
219
237
  export type { SelectBankAccount, SelectBankOption } from './SelectBankAccountField';