ngx-opalbytes-components 1.28.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +298 -0
  2. package/cli/cao-comp.cjs +10 -10
  3. package/fesm2022/ngx-opalbytes-components.mjs +394 -6
  4. package/fesm2022/ngx-opalbytes-components.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/src/lib/shared/components/avatar/avatar.constants.ts +17 -0
  7. package/src/lib/shared/components/avatar/avatar.css +44 -0
  8. package/src/lib/shared/components/avatar/avatar.html +27 -0
  9. package/src/lib/shared/components/avatar/avatar.model.ts +3 -0
  10. package/src/lib/shared/components/avatar/avatar.spec.ts +88 -0
  11. package/src/lib/shared/components/avatar/avatar.stories.ts +85 -0
  12. package/src/lib/shared/components/avatar/avatar.ts +83 -0
  13. package/src/lib/shared/components/avatar/index.ts +3 -0
  14. package/src/lib/shared/components/breadcrumb/breadcrumb.css +105 -0
  15. package/src/lib/shared/components/breadcrumb/breadcrumb.html +108 -0
  16. package/src/lib/shared/components/breadcrumb/breadcrumb.model.ts +54 -0
  17. package/src/lib/shared/components/breadcrumb/breadcrumb.spec.ts +93 -0
  18. package/src/lib/shared/components/breadcrumb/breadcrumb.stories.ts +122 -0
  19. package/src/lib/shared/components/breadcrumb/breadcrumb.ts +72 -0
  20. package/src/lib/shared/components/breadcrumb/index.ts +2 -0
  21. package/src/lib/shared/components/index.ts +5 -1
  22. package/src/lib/shared/components/popover/index.ts +3 -0
  23. package/src/lib/shared/components/popover/popover.css +149 -0
  24. package/src/lib/shared/components/popover/popover.html +44 -0
  25. package/src/lib/shared/components/popover/popover.model.ts +19 -0
  26. package/src/lib/shared/components/popover/popover.spec.ts +22 -0
  27. package/src/lib/shared/components/popover/popover.stories.ts +0 -0
  28. package/src/lib/shared/components/popover/popover.ts +312 -0
  29. package/src/lib/shared/components/progress-bar/index.ts +2 -0
  30. package/src/lib/shared/components/progress-bar/progress-bar.css +141 -0
  31. package/src/lib/shared/components/progress-bar/progress-bar.html +39 -0
  32. package/src/lib/shared/components/progress-bar/progress-bar.model.ts +8 -0
  33. package/src/lib/shared/components/progress-bar/progress-bar.spec.ts +94 -0
  34. package/src/lib/shared/components/progress-bar/progress-bar.stories.ts +53 -0
  35. package/src/lib/shared/components/progress-bar/progress-bar.ts +50 -0
  36. package/src/lib/shared/components/progress-spinner/index.ts +2 -0
  37. package/src/lib/shared/components/progress-spinner/progress-spinner.css +90 -0
  38. package/src/lib/shared/components/progress-spinner/progress-spinner.html +50 -0
  39. package/src/lib/shared/components/progress-spinner/progress-spinner.model.ts +8 -0
  40. package/src/lib/shared/components/progress-spinner/progress-spinner.spec.ts +85 -0
  41. package/src/lib/shared/components/progress-spinner/progress-spinner.stories.ts +73 -0
  42. package/src/lib/shared/components/progress-spinner/progress-spinner.ts +71 -0
  43. package/types/ngx-opalbytes-components.d.ts +262 -3
@@ -5,11 +5,11 @@ import { ControlValueAccessor, AbstractControl, FormControl } from '@angular/for
5
5
  import { MatDateRangeInput } from '@angular/material/datepicker';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Observable } from 'rxjs';
8
- import { Router, ActivatedRoute } from '@angular/router';
8
+ import { Router, ActivatedRoute, Params } from '@angular/router';
9
9
  import { PageEvent, MatPaginator, MatPaginatorIntl } from '@angular/material/paginator';
10
10
  import { DateAdapter } from '@angular/material/core';
11
11
  import { MatTimepickerOption } from '@angular/material/timepicker';
12
- import { Overlay, OverlayRef } from '@angular/cdk/overlay';
12
+ import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';
13
13
  import { LiveAnnouncer } from '@angular/cdk/a11y';
14
14
  import { SelectionModel } from '@angular/cdk/collections';
15
15
  import { MatSort, Sort } from '@angular/material/sort';
@@ -1008,6 +1008,265 @@ declare class CaoCheckboxComponent implements ControlValueAccessor, OnChanges, O
1008
1008
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoCheckboxComponent, "cao-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "dataCy": { "alias": "dataCy"; "required": false; }; "control": { "alias": "control"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "color": { "alias": "color"; "required": false; }; "uncheckedColor": { "alias": "uncheckedColor"; "required": false; }; "disabledColor": { "alias": "disabledColor"; "required": false; }; "labelColor": { "alias": "labelColor"; "required": false; }; "disabledLabelColor": { "alias": "disabledLabelColor"; "required": false; }; "focusRingColor": { "alias": "focusRingColor"; "required": false; }; "size": { "alias": "size"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "checkedIcon": { "alias": "checkedIcon"; "required": false; }; "uncheckedIcon": { "alias": "uncheckedIcon"; "required": false; }; "indeterminateIcon": { "alias": "indeterminateIcon"; "required": false; }; "isLucideIcon": { "alias": "isLucideIcon"; "required": false; }; "iconColor": { "alias": "iconColor"; "required": false; }; "checkedIconColor": { "alias": "checkedIconColor"; "required": false; }; "uncheckedIconColor": { "alias": "uncheckedIconColor"; "required": false; }; "iconSize": { "alias": "iconSize"; "required": false; }; "iconStrokeWidth": { "alias": "iconStrokeWidth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; "checkboxChange": "checkboxChange"; }, never, ["*"], true, never>;
1009
1009
  }
1010
1010
 
1011
+ /** Posição do ícone em relação ao texto do item. */
1012
+ type CaoBreadcrumbIconPosition = 'left' | 'right';
1013
+ /** Item do breadcrumb. */
1014
+ interface ICaoBreadcrumbItem {
1015
+ /** Texto exibido. Pode ser omitido em itens apenas com ícone (informe `ariaLabel`). */
1016
+ label?: string;
1017
+ /** Nome do ícone Lucide ou caminho/URL/data URI da imagem. */
1018
+ icon?: string;
1019
+ /** Define se `icon` é um ícone Lucide. Padrão: `true`. */
1020
+ isLucideIcon?: boolean;
1021
+ /** Posição do ícone em relação ao texto. Padrão: `'left'`. */
1022
+ iconPosition?: CaoBreadcrumbIconPosition;
1023
+ /** Cor do ícone (aplicada a ícones Lucide). */
1024
+ iconColor?: string;
1025
+ /** Tamanho do ícone em px. Padrão: `16`. */
1026
+ iconSize?: number;
1027
+ /** Espessura do traço do ícone Lucide. Padrão: `1.5`. */
1028
+ iconStrokeWidth?: number;
1029
+ /** Navegação interna via Angular Router (ex.: `'/clientes'` ou `['/clientes', 12]`). */
1030
+ link?: string | unknown[];
1031
+ /** Query params usados junto com `link`. */
1032
+ queryParams?: Params;
1033
+ /** Navegação externa via `href`. Ignorado se `link` estiver definido. */
1034
+ href?: string;
1035
+ /** `target` do link (ex.: `'_blank'`). */
1036
+ target?: '_self' | '_blank' | '_parent' | '_top';
1037
+ /** Callback executado ao clicar (item sem `link`/`href` vira um botão). */
1038
+ command?: (event: ICaoBreadcrumbItemClickEvent) => void;
1039
+ /** Texto/valor do badge exibido após o item. */
1040
+ badge?: string | number;
1041
+ /** Cor do texto do badge. */
1042
+ badgeColor?: string;
1043
+ /** Cor de fundo do badge. */
1044
+ badgeBgColor?: string;
1045
+ /** Desabilita a interação com o item. */
1046
+ disabled?: boolean;
1047
+ /** `aria-label` do item (recomendado para itens apenas com ícone). */
1048
+ ariaLabel?: string;
1049
+ /** Atributo `data-cy` para testes E2E. */
1050
+ dataCy?: string;
1051
+ }
1052
+ /** Evento emitido ao clicar em um item. */
1053
+ interface ICaoBreadcrumbItemClickEvent {
1054
+ item: ICaoBreadcrumbItem;
1055
+ index: number;
1056
+ originalEvent: Event;
1057
+ }
1058
+
1059
+ declare class CaoBreadcrumbComponent {
1060
+ /** Itens do breadcrumb. O último item é tratado como página atual. */
1061
+ readonly items: _angular_core.InputSignal<ICaoBreadcrumbItem[]>;
1062
+ /** Item "home" opcional, sempre exibido como primeiro item. */
1063
+ readonly home: _angular_core.InputSignal<ICaoBreadcrumbItem | undefined>;
1064
+ /** Texto do divisor. Padrão: `'/'`. Ignorado se `separatorIcon` for informado. */
1065
+ readonly separator: _angular_core.InputSignal<string>;
1066
+ /** Ícone do divisor (nome Lucide ou imagem). Tem prioridade sobre `separator`. */
1067
+ readonly separatorIcon: _angular_core.InputSignal<string>;
1068
+ readonly isLucideSeparatorIcon: _angular_core.InputSignal<boolean>;
1069
+ readonly separatorIconSize: _angular_core.InputSignal<number>;
1070
+ readonly separatorIconStrokeWidth: _angular_core.InputSignal<number>;
1071
+ readonly linkColor: _angular_core.InputSignal<string>;
1072
+ readonly linkHoverColor: _angular_core.InputSignal<string>;
1073
+ readonly currentColor: _angular_core.InputSignal<string>;
1074
+ readonly separatorColor: _angular_core.InputSignal<string>;
1075
+ readonly fontSize: _angular_core.InputSignal<string>;
1076
+ readonly gap: _angular_core.InputSignal<string>;
1077
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1078
+ readonly dataCy: _angular_core.InputSignal<string>;
1079
+ /** Emitido ao clicar em qualquer item interativo. */
1080
+ readonly itemClick: _angular_core.OutputEmitterRef<ICaoBreadcrumbItemClickEvent>;
1081
+ protected readonly allItems: _angular_core.Signal<ICaoBreadcrumbItem[]>;
1082
+ protected isInteractive(item: ICaoBreadcrumbItem, isLast: boolean): boolean;
1083
+ protected hasLink(item: ICaoBreadcrumbItem): boolean;
1084
+ protected onItemClick(item: ICaoBreadcrumbItem, index: number, event: Event): void;
1085
+ protected iconPosition(item: ICaoBreadcrumbItem): 'left' | 'right';
1086
+ protected isLucide(item: ICaoBreadcrumbItem): boolean;
1087
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CaoBreadcrumbComponent, never>;
1088
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoBreadcrumbComponent, "cao-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "home": { "alias": "home"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "separatorIcon": { "alias": "separatorIcon"; "required": false; "isSignal": true; }; "isLucideSeparatorIcon": { "alias": "isLucideSeparatorIcon"; "required": false; "isSignal": true; }; "separatorIconSize": { "alias": "separatorIconSize"; "required": false; "isSignal": true; }; "separatorIconStrokeWidth": { "alias": "separatorIconStrokeWidth"; "required": false; "isSignal": true; }; "linkColor": { "alias": "linkColor"; "required": false; "isSignal": true; }; "linkHoverColor": { "alias": "linkHoverColor"; "required": false; "isSignal": true; }; "currentColor": { "alias": "currentColor"; "required": false; "isSignal": true; }; "separatorColor": { "alias": "separatorColor"; "required": false; "isSignal": true; }; "fontSize": { "alias": "fontSize"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "dataCy": { "alias": "dataCy"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
1089
+ }
1090
+
1091
+ /**
1092
+ * Modo da barra de progresso (mesmos modos do Angular Material).
1093
+ * - `determinate`: progresso conhecido, controlado por `value`.
1094
+ * - `indeterminate`: progresso desconhecido, animação contínua.
1095
+ * - `buffer`: `value` + `bufferValue` (ex.: carregamento de mídia).
1096
+ * - `query`: indeterminado com animação invertida (ex.: aguardando resposta antes de um determinate).
1097
+ */
1098
+ type CaoProgressBarMode = 'determinate' | 'indeterminate' | 'buffer' | 'query';
1099
+
1100
+ declare class CaoProgressBarComponent {
1101
+ /** Modo de exibição. Padrão: `'determinate'`. */
1102
+ readonly mode: _angular_core.InputSignal<CaoProgressBarMode>;
1103
+ /** Progresso de 0 a 100 (modos `determinate` e `buffer`). */
1104
+ readonly value: _angular_core.InputSignalWithTransform<number, unknown>;
1105
+ /** Valor do buffer de 0 a 100 (modo `buffer`). */
1106
+ readonly bufferValue: _angular_core.InputSignalWithTransform<number, unknown>;
1107
+ /** Cor da barra de progresso (qualquer cor CSS). */
1108
+ readonly color: _angular_core.InputSignal<string>;
1109
+ /** Cor do trilho. */
1110
+ readonly trackColor: _angular_core.InputSignal<string>;
1111
+ /** Cor do buffer (modo `buffer`). */
1112
+ readonly bufferColor: _angular_core.InputSignal<string>;
1113
+ /** Altura da barra. */
1114
+ readonly height: _angular_core.InputSignal<string>;
1115
+ /** Raio da borda. Padrão: totalmente arredondada. */
1116
+ readonly borderRadius: _angular_core.InputSignal<string>;
1117
+ /** Duração do ciclo da animação nos modos indeterminado/query/buffer. */
1118
+ readonly animationDuration: _angular_core.InputSignal<string>;
1119
+ /** Exibe o percentual ao lado da barra (modos `determinate` e `buffer`). */
1120
+ readonly showValue: _angular_core.InputSignal<boolean>;
1121
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1122
+ readonly ariaLabelledBy: _angular_core.InputSignal<string>;
1123
+ readonly dataCy: _angular_core.InputSignal<string>;
1124
+ protected readonly clampedValue: _angular_core.Signal<number>;
1125
+ protected readonly clampedBuffer: _angular_core.Signal<number>;
1126
+ protected readonly hasValue: _angular_core.Signal<boolean>;
1127
+ protected readonly ariaValueNow: _angular_core.Signal<number | null>;
1128
+ protected readonly valueLabel: _angular_core.Signal<string>;
1129
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CaoProgressBarComponent, never>;
1130
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoProgressBarComponent, "cao-progress-bar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "bufferValue": { "alias": "bufferValue"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "bufferColor": { "alias": "bufferColor"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "dataCy": { "alias": "dataCy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1131
+ }
1132
+
1133
+ /**
1134
+ * Modo do spinner de progresso (mesmos modos do Angular Material).
1135
+ * - `determinate`: progresso conhecido, controlado por `value`.
1136
+ * - `indeterminate`: progresso desconhecido, animação contínua.
1137
+ */
1138
+ type CaoProgressSpinnerMode = 'determinate' | 'indeterminate';
1139
+ type CaoProgressSpinnerLinecap = 'round' | 'butt' | 'square';
1140
+
1141
+ declare class CaoProgressSpinnerComponent {
1142
+ /** Modo de exibição. Padrão: `'indeterminate'`. */
1143
+ readonly mode: _angular_core.InputSignal<CaoProgressSpinnerMode>;
1144
+ /** Progresso de 0 a 100 (modo `determinate`). */
1145
+ readonly value: _angular_core.InputSignalWithTransform<number, unknown>;
1146
+ /** Diâmetro em px. */
1147
+ readonly diameter: _angular_core.InputSignalWithTransform<number, unknown>;
1148
+ /** Espessura do traço em px. `0` = automático (10% do diâmetro). */
1149
+ readonly strokeWidth: _angular_core.InputSignalWithTransform<number, unknown>;
1150
+ /** Formato da ponta do traço. */
1151
+ readonly strokeLinecap: _angular_core.InputSignal<CaoProgressSpinnerLinecap>;
1152
+ /** Cor do indicador (qualquer cor CSS). */
1153
+ readonly color: _angular_core.InputSignal<string>;
1154
+ /** Cor do trilho (círculo de fundo). Padrão: transparente. */
1155
+ readonly trackColor: _angular_core.InputSignal<string>;
1156
+ /** Duração de uma volta completa no modo indeterminado. */
1157
+ readonly animationDuration: _angular_core.InputSignal<string>;
1158
+ /** Exibe o percentual no centro (modo `determinate`). */
1159
+ readonly showValue: _angular_core.InputSignal<boolean>;
1160
+ /** Cor do percentual. */
1161
+ readonly textColor: _angular_core.InputSignal<string>;
1162
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1163
+ readonly ariaLabelledBy: _angular_core.InputSignal<string>;
1164
+ readonly dataCy: _angular_core.InputSignal<string>;
1165
+ protected readonly isDeterminate: _angular_core.Signal<boolean>;
1166
+ protected readonly size: _angular_core.Signal<number>;
1167
+ protected readonly stroke: _angular_core.Signal<number>;
1168
+ protected readonly center: _angular_core.Signal<number>;
1169
+ protected readonly radius: _angular_core.Signal<number>;
1170
+ protected readonly circumference: _angular_core.Signal<number>;
1171
+ protected readonly clampedValue: _angular_core.Signal<number>;
1172
+ protected readonly dashOffset: _angular_core.Signal<number | null>;
1173
+ protected readonly ariaValueNow: _angular_core.Signal<number | null>;
1174
+ protected readonly valueLabel: _angular_core.Signal<string>;
1175
+ protected readonly fontSize: _angular_core.Signal<number>;
1176
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CaoProgressSpinnerComponent, never>;
1177
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoProgressSpinnerComponent, "cao-progress-spinner", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "strokeLinecap": { "alias": "strokeLinecap"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "textColor": { "alias": "textColor"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "dataCy": { "alias": "dataCy"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1178
+ }
1179
+
1180
+ /** Lado do elemento de origem em que o popover é exibido. */
1181
+ type CaoPopoverPosition = 'top' | 'bottom' | 'left' | 'right';
1182
+ /** Alinhamento do popover em relação ao elemento de origem. */
1183
+ type CaoPopoverAlign = 'start' | 'center' | 'end';
1184
+ /** Elemento de origem (âncora) do popover. */
1185
+ type CaoPopoverTarget = HTMLElement | ElementRef<HTMLElement> | null | undefined;
1186
+ interface ICaoPopoverShowOptions {
1187
+ /** Move o foco para dentro do popover ao abrir. Padrão: valor de `focusOnShow`. */
1188
+ focus?: boolean;
1189
+ }
1190
+
1191
+ declare const CAO_POPOVER_POSITION_PREFIX = "cao-popover-pos-";
1192
+ /** Posição preferida seguida das alternativas (oposta e perpendiculares) usadas quando não há espaço. */
1193
+ declare function buildPopoverPositions(position: CaoPopoverPosition, align: CaoPopoverAlign, offset: number): ConnectedPosition[];
1194
+ declare class CaoPopoverComponent {
1195
+ private readonly overlay;
1196
+ private readonly viewContainerRef;
1197
+ private readonly destroyRef;
1198
+ private readonly panelTemplate;
1199
+ private overlayRef;
1200
+ private origin;
1201
+ private subscriptions;
1202
+ private focusMoved;
1203
+ private readonly openState;
1204
+ protected readonly panelId: string;
1205
+ protected readonly placement: _angular_core.WritableSignal<CaoPopoverPosition>;
1206
+ /** Lado do elemento de origem em que o popover aparece. Se não houver espaço, o CDK escolhe outro lado. */
1207
+ readonly position: _angular_core.InputSignal<CaoPopoverPosition>;
1208
+ /** Alinhamento em relação ao elemento de origem. */
1209
+ readonly align: _angular_core.InputSignal<CaoPopoverAlign>;
1210
+ /** Distância (px) entre a origem e o popover. */
1211
+ readonly offset: _angular_core.InputSignalWithTransform<number, unknown>;
1212
+ /** Exibe a seta apontando para a origem. */
1213
+ readonly showArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
1214
+ /** Fecha ao clicar fora do popover. */
1215
+ readonly dismissable: _angular_core.InputSignalWithTransform<boolean, unknown>;
1216
+ /** Fecha ao pressionar `Esc`. */
1217
+ readonly closeOnEscape: _angular_core.InputSignalWithTransform<boolean, unknown>;
1218
+ /** Exibe o botão de fechar no canto superior direito. */
1219
+ readonly showCloseIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
1220
+ /** Move o foco para o primeiro elemento focável do popover ao abrir (e devolve à origem ao fechar). */
1221
+ readonly focusOnShow: _angular_core.InputSignalWithTransform<boolean, unknown>;
1222
+ /** Largura fixa do popover (ex.: `'320px'`). */
1223
+ readonly width: _angular_core.InputSignal<string>;
1224
+ /** Largura máxima. */
1225
+ readonly maxWidth: _angular_core.InputSignal<string>;
1226
+ readonly bgColor: _angular_core.InputSignal<string>;
1227
+ readonly textColor: _angular_core.InputSignal<string>;
1228
+ readonly borderColor: _angular_core.InputSignal<string>;
1229
+ readonly borderRadius: _angular_core.InputSignal<string>;
1230
+ readonly padding: _angular_core.InputSignal<string>;
1231
+ /** Classe(s) CSS adicionais aplicadas ao painel do popover. */
1232
+ readonly styleClass: _angular_core.InputSignal<string>;
1233
+ /** Classe(s) CSS adicionais aplicadas ao painel do overlay (CDK). */
1234
+ readonly panelClass: _angular_core.InputSignal<string | string[]>;
1235
+ readonly role: _angular_core.InputSignal<string>;
1236
+ readonly ariaLabel: _angular_core.InputSignal<string>;
1237
+ readonly ariaLabelledBy: _angular_core.InputSignal<string>;
1238
+ readonly closeAriaLabel: _angular_core.InputSignal<string>;
1239
+ readonly dataCy: _angular_core.InputSignal<string>;
1240
+ /** Emitido após o popover ser aberto. */
1241
+ readonly shown: _angular_core.OutputEmitterRef<void>;
1242
+ /** Emitido após o popover ser fechado. */
1243
+ readonly hidden: _angular_core.OutputEmitterRef<void>;
1244
+ /** Emitido quando o ponteiro entra/sai do painel (usado pelo gatilho `hover`). */
1245
+ readonly panelHoverChange: _angular_core.OutputEmitterRef<boolean>;
1246
+ /** `true` enquanto o popover está aberto. */
1247
+ readonly isOpen: _angular_core.Signal<boolean>;
1248
+ constructor();
1249
+ /** Abre o popover se estiver fechado (ou aberto em outra origem); fecha se já estiver aberto na mesma origem. */
1250
+ toggle(event?: Event | null, target?: CaoPopoverTarget, options?: ICaoPopoverShowOptions): void;
1251
+ /** Abre o popover ancorado em `target` (ou em `event.currentTarget`). */
1252
+ show(event?: Event | null, target?: CaoPopoverTarget, options?: ICaoPopoverShowOptions): void;
1253
+ /** Fecha o popover. */
1254
+ hide(): void;
1255
+ /** Recalcula a posição (útil se a origem mudou de lugar ou o conteúdo mudou de tamanho). */
1256
+ reposition(): void;
1257
+ /** Indica se o nó está dentro do painel do popover aberto. */
1258
+ containsNode(node: Node | null | undefined): boolean;
1259
+ protected onCloseClick(): void;
1260
+ private close;
1261
+ private dispose;
1262
+ private onPositionChange;
1263
+ private resolveOrigin;
1264
+ private focusPanel;
1265
+ private setOriginAria;
1266
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CaoPopoverComponent, never>;
1267
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoPopoverComponent, "cao-popover", ["caoPopover"], { "position": { "alias": "position"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "showArrow": { "alias": "showArrow"; "required": false; "isSignal": true; }; "dismissable": { "alias": "dismissable"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "showCloseIcon": { "alias": "showCloseIcon"; "required": false; "isSignal": true; }; "focusOnShow": { "alias": "focusOnShow"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "bgColor": { "alias": "bgColor"; "required": false; "isSignal": true; }; "textColor": { "alias": "textColor"; "required": false; "isSignal": true; }; "borderColor": { "alias": "borderColor"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; "isSignal": true; }; "dataCy": { "alias": "dataCy"; "required": false; "isSignal": true; }; }, { "shown": "shown"; "hidden": "hidden"; "panelHoverChange": "panelHoverChange"; }, never, ["*"], true, never>;
1268
+ }
1269
+
1011
1270
  type ModalType = "validation" | "finger" | "facial" | "clinic" | "graph" | "restriction" | "default";
1012
1271
  interface IModal {
1013
1272
  status: boolean;
@@ -1463,5 +1722,5 @@ declare class CaoBaseWidgetComponent<TData = unknown> {
1463
1722
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CaoBaseWidgetComponent<any>, "cao-base-widget", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "widgetIcon": { "alias": "widgetIcon"; "required": false; "isSignal": true; }; "cancelTextButton": { "alias": "cancelTextButton"; "required": false; "isSignal": true; }; "saveTextButton": { "alias": "saveTextButton"; "required": false; "isSignal": true; }; "displayActionButton": { "alias": "displayActionButton"; "required": false; "isSignal": true; }; "displaySaveButton": { "alias": "displaySaveButton"; "required": false; "isSignal": true; }; "displayCancelButton": { "alias": "displayCancelButton"; "required": false; "isSignal": true; }; "shouldCloseWhenCancel": { "alias": "shouldCloseWhenCancel"; "required": false; "isSignal": true; }; "widgetDirection": { "alias": "widgetDirection"; "required": false; "isSignal": true; }; "typeCancel": { "alias": "typeCancel"; "required": false; "isSignal": true; }; "saveDisabled": { "alias": "saveDisabled"; "required": false; "isSignal": true; }; "saveIcon": { "alias": "saveIcon"; "required": false; "isSignal": true; }; "saveIconPosition": { "alias": "saveIconPosition"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "confirmOnClose": { "alias": "confirmOnClose"; "required": false; "isSignal": true; }; "widgetData": { "alias": "widgetData"; "required": false; "isSignal": true; }; }, { "save": "save"; "deleted": "deleted"; "cancelEvent": "cancelEvent"; "closeRequest": "closeRequest"; }, never, ["widget-title", "*"], true, never>;
1464
1723
  }
1465
1724
 
1466
- export { BaseAlert, BaseAlertService, BaseDialog, BaseDialogService, BaseFilterTablePaginatedService, BaseFilterTableService, BaseModal, BaseModalService, BasePaginationService, BaseTable, BaseTablePaginated, BaseTableService, BaseTimeRange, CAO_ACCORDION, CaoAccordionComponent, CaoAccordionItemComponent, CaoAutocompleteComponent, CaoBaseButtonComponent, CaoBaseIcon, CaoBaseInput, CaoBaseToggleComponent, CaoBaseWidgetComponent, CaoCardComponent, CaoCheckboxComponent, CaoDropDownComponent, CaoError, CaoFormField, CaoHint, CaoKpi, CaoRadioButtonComponent, CaoRadioGroupComponent, CaoSkeletonComponent, CaoSlideToggleComponent, CaoTabGroup, CaoTabPanel, CaoWidgetService, DEFAULT_ERROR_STATE_MATCHER, ErrorStateMatcher, Footer, LinksButton, Paginator, ShowOnDirtyErrorStateMatcher, StepComponent, StepperComponent, TablePaginatedService, TimePicker, getPtBrPaginatorIntlBasePaginated, getPtBrPaginatorIntlBaseTable };
1725
+ export { BaseAlert, BaseAlertService, BaseDialog, BaseDialogService, BaseFilterTablePaginatedService, BaseFilterTableService, BaseModal, BaseModalService, BasePaginationService, BaseTable, BaseTablePaginated, BaseTableService, BaseTimeRange, CAO_ACCORDION, CAO_POPOVER_POSITION_PREFIX, CaoAccordionComponent, CaoAccordionItemComponent, CaoAutocompleteComponent, CaoBaseButtonComponent, CaoBaseIcon, CaoBaseInput, CaoBaseToggleComponent, CaoBaseWidgetComponent, CaoBreadcrumbComponent, CaoCardComponent, CaoCheckboxComponent, CaoDropDownComponent, CaoError, CaoFormField, CaoHint, CaoKpi, CaoPopoverComponent, CaoProgressBarComponent, CaoProgressSpinnerComponent, CaoRadioButtonComponent, CaoRadioGroupComponent, CaoSkeletonComponent, CaoSlideToggleComponent, CaoTabGroup, CaoTabPanel, CaoWidgetService, DEFAULT_ERROR_STATE_MATCHER, ErrorStateMatcher, Footer, LinksButton, Paginator, ShowOnDirtyErrorStateMatcher, StepComponent, StepperComponent, TablePaginatedService, TimePicker, buildPopoverPositions, getPtBrPaginatorIntlBasePaginated, getPtBrPaginatorIntlBaseTable };
1467
1726
  export type { AlertType, CaoAccordionAlign, CaoAccordionDisplayMode, CaoAccordionTogglePosition, CaoCardVariant, CaoSkeletonVariant, CaoTypeInputs, CaoWidgetDirection, DialogType, IAlertConfig, ICaoAccordionHost, ICaoAccordionItemRef, ICaoAutoCompleteOption, ICaoCardAvatar, ICaoCardBadge, ICaoCardMeta, ICaoCheckboxChangeEvent, ICaoDropDownOption, ICaoImage, ICaoKPI, ICaoRadioChangeEvent, ICaoSlideToggleChangeEvent, ICaoTabChangeEvent, ICaoWidgetOptions, IColumnButton, IColumnConfig, IColumnPaginatedButton, IColumnPaginatedConfig, IDialogConfig, IErrorStateMatcher, IFormFieldControl, IModal, INavContent, INavLink, ITableConfig, ITablePaginatedConfig, ModalType, ModalTypeClass, ModalTypeSize };