@po-ui/ng-components 21.33.0 → 21.34.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 (29) hide show
  1. package/fesm2022/po-ui-ng-components.mjs +1779 -1266
  2. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  3. package/lib/components/po-chart/po-chart-base.component.d.ts +1 -1
  4. package/lib/components/po-dropdown/po-dropdown-base.component.d.ts +41 -2
  5. package/lib/components/po-dropdown/po-dropdown.component.d.ts +13 -5
  6. package/lib/components/po-listbox/interfaces/po-listbox-literals.interface.d.ts +6 -0
  7. package/lib/components/po-listbox/po-listbox-base.component.d.ts +1 -0
  8. package/lib/components/po-listbox/po-listbox.component.d.ts +31 -5
  9. package/lib/components/po-popup/po-popup-action.interface.d.ts +29 -0
  10. package/lib/components/po-popup/po-popup-base.component.d.ts +38 -2
  11. package/lib/components/po-popup/po-popup.component.d.ts +16 -1
  12. package/package.json +4 -4
  13. package/po-ui-ng-components-21.34.0.tgz +0 -0
  14. package/schematics/ng-add/index.js +1 -1
  15. package/schematics/ng-update/v14/index.js +1 -1
  16. package/schematics/ng-update/v15/index.js +1 -1
  17. package/schematics/ng-update/v16/index.js +1 -1
  18. package/schematics/ng-update/v17/index.js +1 -1
  19. package/schematics/ng-update/v18/index.js +2 -2
  20. package/schematics/ng-update/v19/index.js +2 -2
  21. package/schematics/ng-update/v2/index.js +1 -1
  22. package/schematics/ng-update/v20/index.js +2 -2
  23. package/schematics/ng-update/v21/index.js +1 -1
  24. package/schematics/ng-update/v3/index.js +1 -1
  25. package/schematics/ng-update/v4/index.js +1 -1
  26. package/schematics/ng-update/v5/index.js +1 -1
  27. package/schematics/ng-update/v6/index.js +1 -1
  28. package/types/po-ui-ng-components.d.ts +506 -348
  29. package/po-ui-ng-components-21.33.0.tgz +0 -0
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, ElementRef, TemplateRef, OnInit, OnDestroy, Renderer2, QueryList, OnChanges, ChangeDetectorRef, SimpleChanges, AfterViewInit, Type, ViewContainerRef, DoCheck, AfterViewChecked, IterableDiffers, ComponentFactoryResolver, ApplicationRef, Injector, ComponentRef, PipeTransform, WritableSignal, InjectionToken, ModuleWithProviders, RendererFactory2, AfterContentInit, AnimationCallbackEvent, SimpleChange } from '@angular/core';
2
+ import { EventEmitter, ElementRef, TemplateRef, OnInit, OnDestroy, Renderer2, QueryList, OnChanges, ChangeDetectorRef, SimpleChanges, AfterViewInit, WritableSignal, Type, ViewContainerRef, DoCheck, AfterViewChecked, IterableDiffers, ComponentFactoryResolver, ApplicationRef, Injector, ComponentRef, PipeTransform, InjectionToken, ModuleWithProviders, RendererFactory2, AfterContentInit, AnimationCallbackEvent, SimpleChange } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { DecimalPipe, TitleCasePipe, CurrencyPipe, DatePipe } from '@angular/common';
5
5
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
- import * as i9 from '@angular/cdk/listbox';
6
+ import * as i11 from '@angular/cdk/listbox';
7
7
  import { CdkListbox, CdkOption } from '@angular/cdk/listbox';
8
8
  import * as rxjs from 'rxjs';
9
9
  import { Observable, Subject, Subscription } from 'rxjs';
@@ -1929,6 +1929,12 @@ interface PoListBoxLiterals {
1929
1929
  /** Texto do checkbox para selecionar todos os itens. */
1930
1930
  selectAll?: string;
1931
1931
  footerActionListbox?: string;
1932
+ /** Mensagem exibida quando o carregamento assíncrono de um subnível falha. */
1933
+ subItemsErrorMessage?: string;
1934
+ /** Texto acessível anunciado durante o carregamento assíncrono de um subnível. */
1935
+ subItemsLoading?: string;
1936
+ /** Texto do botão para tentar novamente o carregamento de um subnível. */
1937
+ retry?: string;
1932
1938
  }
1933
1939
 
1934
1940
  /**
@@ -2038,12 +2044,13 @@ declare class PoListBoxBaseComponent {
2038
2044
  clickTab: EventEmitter<any>;
2039
2045
  changeStateTabs: EventEmitter<any>;
2040
2046
  clickItem: EventEmitter<any>;
2047
+ subItemsLoad: EventEmitter<any>;
2041
2048
  footerActionListboxEvent: EventEmitter<any>;
2042
2049
  constructor(languageService: PoLanguageService);
2043
2050
  protected onThemeChange(): void;
2044
2051
  private applySizeBasedOnA11y;
2045
2052
  static ɵfac: i0.ɵɵFactoryDeclaration<PoListBoxBaseComponent, never>;
2046
- static ɵdir: i0.ɵɵDirectiveDeclaration<PoListBoxBaseComponent, never, never, { "listboxSubitems": { "alias": "p-listbox-subitems"; "required": false; }; "visible": { "alias": "p-visible"; "required": false; "isSignal": true; }; "type": { "alias": "p-type"; "required": false; }; "items": { "alias": "p-items"; "required": false; }; "literals": { "alias": "p-literals"; "required": false; }; "isTabs": { "alias": "p-is-tabs"; "required": false; }; "param": { "alias": "p-param"; "required": false; }; "checkboxAllValue": { "alias": "p-checkboxAllValue"; "required": false; }; "selectedOptions": { "alias": "p-selected-options"; "required": false; }; "selectedOption": { "alias": "p-selected-option"; "required": false; }; "fieldValue": { "alias": "p-field-value"; "required": false; }; "fieldLabel": { "alias": "p-field-label"; "required": false; }; "literalSearch": { "alias": "p-literal-search"; "required": false; }; "fieldValueSearch": { "alias": "p-field-value-search"; "required": false; }; "hideSearch": { "alias": "p-hide-search"; "required": false; }; "hideSelectAll": { "alias": "p-hide-select-all"; "required": false; }; "multiselectTemplate": { "alias": "p-multiselect-template"; "required": false; }; "template": { "alias": "p-template"; "required": false; }; "placeholderSearch": { "alias": "p-placeholder-search"; "required": false; }; "searchValue": { "alias": "p-search-value"; "required": false; }; "isServerSearching": { "alias": "p-is-searching"; "required": false; }; "infiniteLoading": { "alias": "p-infinite-loading"; "required": false; }; "infiniteScroll": { "alias": "p-infinite-scroll"; "required": false; }; "cache": { "alias": "p-cache"; "required": false; }; "infiniteScrollDistance": { "alias": "p-infinite-scroll-distance"; "required": false; }; "filterMode": { "alias": "p-filter-mode"; "required": false; }; "isFiltering": { "alias": "p-filtering"; "required": false; }; "shouldMarkLetters": { "alias": "p-should-mark-letter"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "compareCache": { "alias": "p-compare-cache"; "required": false; }; "comboService": { "alias": "p-combo-service"; "required": false; }; "containerWidth": { "alias": "p-container-width"; "required": false; }; "keysLabel": { "alias": "p-keys-label"; "required": false; }; "footerActionListbox": { "alias": "p-footer-action-listbox"; "required": false; }; "placeholderListbox": { "alias": "p-placeholder-listbox"; "required": false; }; "separator": { "alias": "p-separator"; "required": false; }; }, { "changeSearch": "p-change-search"; "selectItem": "p-select-item"; "closeEvent": "p-close"; "change": "p-change"; "selectCombo": "p-selectcombo-item"; "changeAll": "p-change-all"; "UpdateInfiniteScroll": "p-update-infinite-scroll"; "activatedTab": "p-activated-tabs"; "clickTab": "p-click-tabs"; "changeStateTabs": "p-change-state-tabs"; "clickItem": "p-click-item"; "footerActionListboxEvent": "p-footer-action-listbox-event"; }, never, never, true, never>;
2053
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PoListBoxBaseComponent, never, never, { "listboxSubitems": { "alias": "p-listbox-subitems"; "required": false; }; "visible": { "alias": "p-visible"; "required": false; "isSignal": true; }; "type": { "alias": "p-type"; "required": false; }; "items": { "alias": "p-items"; "required": false; }; "literals": { "alias": "p-literals"; "required": false; }; "isTabs": { "alias": "p-is-tabs"; "required": false; }; "param": { "alias": "p-param"; "required": false; }; "checkboxAllValue": { "alias": "p-checkboxAllValue"; "required": false; }; "selectedOptions": { "alias": "p-selected-options"; "required": false; }; "selectedOption": { "alias": "p-selected-option"; "required": false; }; "fieldValue": { "alias": "p-field-value"; "required": false; }; "fieldLabel": { "alias": "p-field-label"; "required": false; }; "literalSearch": { "alias": "p-literal-search"; "required": false; }; "fieldValueSearch": { "alias": "p-field-value-search"; "required": false; }; "hideSearch": { "alias": "p-hide-search"; "required": false; }; "hideSelectAll": { "alias": "p-hide-select-all"; "required": false; }; "multiselectTemplate": { "alias": "p-multiselect-template"; "required": false; }; "template": { "alias": "p-template"; "required": false; }; "placeholderSearch": { "alias": "p-placeholder-search"; "required": false; }; "searchValue": { "alias": "p-search-value"; "required": false; }; "isServerSearching": { "alias": "p-is-searching"; "required": false; }; "infiniteLoading": { "alias": "p-infinite-loading"; "required": false; }; "infiniteScroll": { "alias": "p-infinite-scroll"; "required": false; }; "cache": { "alias": "p-cache"; "required": false; }; "infiniteScrollDistance": { "alias": "p-infinite-scroll-distance"; "required": false; }; "filterMode": { "alias": "p-filter-mode"; "required": false; }; "isFiltering": { "alias": "p-filtering"; "required": false; }; "shouldMarkLetters": { "alias": "p-should-mark-letter"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "compareCache": { "alias": "p-compare-cache"; "required": false; }; "comboService": { "alias": "p-combo-service"; "required": false; }; "containerWidth": { "alias": "p-container-width"; "required": false; }; "keysLabel": { "alias": "p-keys-label"; "required": false; }; "footerActionListbox": { "alias": "p-footer-action-listbox"; "required": false; }; "placeholderListbox": { "alias": "p-placeholder-listbox"; "required": false; }; "separator": { "alias": "p-separator"; "required": false; }; }, { "changeSearch": "p-change-search"; "selectItem": "p-select-item"; "closeEvent": "p-close"; "change": "p-change"; "selectCombo": "p-selectcombo-item"; "changeAll": "p-change-all"; "UpdateInfiniteScroll": "p-update-infinite-scroll"; "activatedTab": "p-activated-tabs"; "clickTab": "p-click-tabs"; "changeStateTabs": "p-change-state-tabs"; "clickItem": "p-click-item"; "subItemsLoad": "p-sub-items-load"; "footerActionListboxEvent": "p-footer-action-listbox-event"; }, never, never, true, never>;
2047
2054
  static ngAcceptInputType_isTabs: any;
2048
2055
  static ngAcceptInputType_isServerSearching: any;
2049
2056
  static ngAcceptInputType_infiniteLoading: any;
@@ -2163,6 +2170,10 @@ interface PoPopupAction {
2163
2170
  *
2164
2171
  * Define uma lista de subitens para criação de menus aninhados.
2165
2172
  *
2173
+ * ```
2174
+ * { label: 'Relatórios', subItems: [{ label: 'Mensal' }, { label: 'Anual' }] }
2175
+ * ```
2176
+ *
2166
2177
  * Ao definir esta propriedade, o item exibirá um ícone indicador de subnível.
2167
2178
  * Recomenda-se utilizar no máximo três níveis hierárquicos para garantir a usabilidade.
2168
2179
  *
@@ -2173,6 +2184,30 @@ interface PoPopupAction {
2173
2184
  * > Em subníveis aninhados, o `icon` do agrupador é substituído pelo indicador de navegação (seta).
2174
2185
  */
2175
2186
  subItems?: Array<PoPopupAction>;
2187
+ /**
2188
+ * @optional
2189
+ *
2190
+ * @description
2191
+ *
2192
+ * Define o carregamento assíncrono (lazy loading) dos subitens de um agrupador.
2193
+ *
2194
+ * Recebe o item agrupador e retorna um `Observable<Array<PoPopupAction>>`. A requisição é disparada
2195
+ * **apenas** no momento da expansão (clique ou atalho de teclado), exibindo placeholders com `po-skeleton`
2196
+ * enquanto os dados são carregados:
2197
+ *
2198
+ * ```
2199
+ * {
2200
+ * label: 'Relatórios',
2201
+ * subItemsLazy: (item) => this.reportService.getReports(item)
2202
+ * }
2203
+ * ```
2204
+ *
2205
+ * > O resultado é armazenado em cache após o primeiro carregamento bem-sucedido.
2206
+ * Em caso de falha, é exibida uma mensagem com a opção de tentar novamente.
2207
+ *
2208
+ * Ao definir esta propriedade, o item exibirá um ícone indicador de subnível.
2209
+ */
2210
+ subItemsLazy?: (item: PoPopupAction) => Observable<Array<PoPopupAction>>;
2176
2211
  $subItemTemplate?: TemplateRef<any>;
2177
2212
  }
2178
2213
 
@@ -2194,6 +2229,16 @@ declare class PoListBoxComponent extends PoListBoxBaseComponent implements OnIni
2194
2229
  element: ElementRef<any>;
2195
2230
  currentItems: Array<PoDropdownAction>;
2196
2231
  currentGroup: PoDropdownAction | null;
2232
+ readonly subItemsLoading: WritableSignal<Record<string, boolean>>;
2233
+ readonly subItemsError: WritableSignal<Record<string, boolean>>;
2234
+ readonly subItemsSkeletonPlaceholders: number[];
2235
+ rootLazyLoad?: () => Observable<Array<PoDropdownAction>>;
2236
+ rootItemsLoad: EventEmitter<void>;
2237
+ contentChange: EventEmitter<void>;
2238
+ private readonly loadedSubItems;
2239
+ private lastLoadedGroup;
2240
+ private rootLoaded;
2241
+ private readonly destroySubItems$;
2197
2242
  private readonly navigationStack;
2198
2243
  private readonly renderer;
2199
2244
  private readonly router;
@@ -2214,12 +2259,30 @@ declare class PoListBoxComponent extends PoListBoxBaseComponent implements OnIni
2214
2259
  ngOnChanges(changes?: SimpleChanges): void;
2215
2260
  ngOnDestroy(): void;
2216
2261
  openGroup(group: PoDropdownAction, event?: MouseEvent | KeyboardEvent): void;
2262
+ private loadSubItemsAsync;
2263
+ onRetryKeydown(event: KeyboardEvent, scope: 'root' | 'subItems'): void;
2264
+ retrySubItems(event?: MouseEvent | KeyboardEvent): void;
2265
+ loadRootItemsAsync(): void;
2266
+ retryRootItems(event?: MouseEvent | KeyboardEvent): void;
2267
+ isRootLoading(): boolean;
2268
+ isRootError(): boolean;
2269
+ isSubItemsLoading(group: PoDropdownAction | null): boolean;
2270
+ isSubItemsError(group: PoDropdownAction | null): boolean;
2271
+ isFunction(value: unknown): boolean;
2272
+ isGroupItem(item: PoDropdownAction): boolean;
2273
+ private hasSubItems;
2274
+ private getGroupKey;
2275
+ private setSubItemsState;
2276
+ private clearSubItemsState;
2277
+ private focusGroupHeader;
2217
2278
  goBack(event: MouseEvent | KeyboardEvent): void;
2218
2279
  onKeydownGoBack(event: KeyboardEvent, currentGroup?: PoDropdownAction): void;
2219
2280
  protected onKeydownTemplate(event: KeyboardEvent): void;
2220
- onSelectItem(itemListAction: PoItemListOption | PoItemListOptionGroup | any, event?: MouseEvent | KeyboardEvent): void | Promise<boolean>;
2281
+ onSelectItem(itemListAction: any, event?: MouseEvent | KeyboardEvent): void | Promise<boolean>;
2221
2282
  onSelectAllCheckboxKeyDown(event: KeyboardEvent): void;
2222
- onKeyDown(itemListAction: PoItemListOption | PoItemListOptionGroup | any, event?: KeyboardEvent): void;
2283
+ onKeyDown(itemListAction: any, event?: KeyboardEvent): void;
2284
+ private handleArrowRightKey;
2285
+ private handleEnterOrSpaceKey;
2223
2286
  checkboxClicked({ option, selected }: {
2224
2287
  option: any;
2225
2288
  selected: any;
@@ -2253,7 +2316,7 @@ declare class PoListBoxComponent extends PoListBoxBaseComponent implements OnIni
2253
2316
  formatItemList(item: any): string;
2254
2317
  handleFooterActionListbox(): void;
2255
2318
  static ɵfac: i0.ɵɵFactoryDeclaration<PoListBoxComponent, never>;
2256
- static ɵcmp: i0.ɵɵComponentDeclaration<PoListBoxComponent, "po-listbox", never, {}, {}, never, ["[p-popup-header-template]"], false, never>;
2319
+ static ɵcmp: i0.ɵɵComponentDeclaration<PoListBoxComponent, "po-listbox", never, { "rootLazyLoad": { "alias": "p-root-lazy-load"; "required": false; }; }, { "rootItemsLoad": "p-root-items-load"; "contentChange": "p-content-change"; }, never, ["[p-popup-header-template]"], false, never>;
2257
2320
  }
2258
2321
 
2259
2322
  /**
@@ -4406,9 +4469,337 @@ declare class PoCheckboxModule {
4406
4469
  static ɵinj: i0.ɵɵInjectorDeclaration<PoCheckboxModule>;
4407
4470
  }
4408
4471
 
4472
+ /**
4473
+ * @usedBy PoSkeletonComponent
4474
+ *
4475
+ * @description
4476
+ *
4477
+ * Define os tipos de animação do componente `po-skeleton`.
4478
+ */
4479
+ declare enum PoSkeletonAnimation {
4480
+ /** Sem animação */
4481
+ none = "none",
4482
+ /** Animação de pulsação */
4483
+ pulse = "pulse",
4484
+ /** Animação de brilho deslizante */
4485
+ shimmer = "shimmer"
4486
+ }
4487
+
4488
+ /**
4489
+ * @usedBy PoSkeletonComponent
4490
+ *
4491
+ * @description
4492
+ *
4493
+ * Define os tamanhos disponíveis para o componente `po-skeleton`.
4494
+ */
4495
+ declare enum PoSkeletonSize {
4496
+ /** Tamanho extra pequeno */
4497
+ xs = "xs",
4498
+ /** Tamanho pequeno */
4499
+ sm = "sm",
4500
+ /** Tamanho médio */
4501
+ md = "md",
4502
+ /** Tamanho grande */
4503
+ lg = "lg",
4504
+ /** Tamanho extra grande */
4505
+ xl = "xl",
4506
+ /** Tamanho extra extra grande */
4507
+ xxl = "2xl"
4508
+ }
4509
+
4510
+ /**
4511
+ * @usedBy PoSkeletonComponent
4512
+ *
4513
+ * @description
4514
+ *
4515
+ * Define os tipos visuais disponíveis para o componente `po-skeleton`.
4516
+ */
4517
+ declare enum PoSkeletonType {
4518
+ /** Tipo padrão com cor neutra clara */
4519
+ normal = "normal",
4520
+ /** Tipo primário com cor neutra média */
4521
+ primary = "primary",
4522
+ /** Tipo de conteúdo com fundo branco */
4523
+ content = "content"
4524
+ }
4525
+
4526
+ /**
4527
+ * @usedBy PoSkeletonComponent
4528
+ *
4529
+ * @description
4530
+ *
4531
+ * Define as variantes visuais do componente `po-skeleton`.
4532
+ */
4533
+ declare enum PoSkeletonVariant {
4534
+ /** Variante para simular texto */
4535
+ text = "text",
4536
+ /** Variante retangular (largura maior que altura) */
4537
+ rectangle = "rectangle",
4538
+ /** Variante quadrada (largura igual à altura) */
4539
+ square = "square",
4540
+ /** Variante circular */
4541
+ circle = "circle"
4542
+ }
4543
+
4544
+ /**
4545
+ * @description
4546
+ *
4547
+ * O componente `po-skeleton` é utilizado para exibir placeholders durante o carregamento de conteúdo,
4548
+ * melhorando a experiência do usuário ao indicar que a informação está sendo processada.
4549
+ *
4550
+ * Ele oferece diferentes variantes visuais (texto, retângulo, círculo) e animações (pulse, shimmer)
4551
+ * para simular diversos tipos de conteúdo em estado de carregamento.
4552
+ *
4553
+ * #### Tokens customizáveis
4554
+ *
4555
+ * É possível alterar o estilo do componente usando os seguintes tokens (CSS):
4556
+ *
4557
+ * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization).
4558
+ *
4559
+ * | Propriedade | Descrição | Valor Padrão |
4560
+ * |----------------------------------------|------------------------------------------------------|---------------------------------|
4561
+ * | **Cores** | | |
4562
+ * | `--color` | Cor de fundo do skeleton (tipo normal) | `var(--color-neutral-light-20)` |
4563
+ * | `--color-primary` | Cor de fundo do skeleton (tipo primary) | `var(--color-neutral-mid-40)` |
4564
+ * | `--color-content` | Cor de fundo do skeleton (tipo content) | `var(--color-neutral-light-00)` |
4565
+ * | `--shimmer-highlight` | Cor de destaque do shimmer (tipo normal) | `var(--color-neutral-light-30)` |
4566
+ * | `--shimmer-highlight-primary` | Cor de destaque do shimmer (tipo primary) | `var(--color-neutral-light-20)` |
4567
+ * | `--shimmer-highlight-content` | Cor de destaque do shimmer (tipo content) | `var(--color-neutral-light-05)` |
4568
+ * | **Espaçamento** | | |
4569
+ * | `--margin-bottom` | Margem inferior do skeleton | `var(--spacing-xs)` |
4570
+ * | **Bordas** | | |
4571
+ * | `--border-radius` | Raio da borda do skeleton | `var(--border-radius-md)` |
4572
+ * | `--border-radius-text` | Raio da borda para a variante text | `var(--border-radius-md)` |
4573
+ * | `--border-radius-primary` | Raio da borda do skeleton (tipo primary) | `var(--border-radius-md)` |
4574
+ * | `--border-radius-content` | Raio da borda do skeleton (tipo content) | `var(--border-radius-lg)` |
4575
+ * | **Transições** | | |
4576
+ * | `--transition-property` | Propriedade CSS da transição | `all` |
4577
+ * | `--transition-duration` | Duração da transição de cor | `var(--duration-moderate)` |
4578
+ * | `--transition-timing` | Função de temporização da transição/animação | `var(--timing-continuous)` |
4579
+ * | **Animações** | | |
4580
+ * | `--animation-duration-pulse` | Duração da animação de pulsação | `var(--duration-very-slow)` |
4581
+ * | `--animation-duration-shimmer` | Duração da animação de brilho deslizante | `var(--duration-ultra-slow)` |
4582
+ *
4583
+ */
4584
+ declare class PoSkeletonBaseComponent {
4585
+ /**
4586
+ * @optional
4587
+ *
4588
+ * @description
4589
+ *
4590
+ * Define a variante visual do skeleton.
4591
+ *
4592
+ * Valores válidos:
4593
+ * - `text`: Simula uma linha de texto (altura padrão: 1em)
4594
+ * - `rectangle`: Forma retangular (proporção 3:1 por padrão)
4595
+ * - `square`: Forma quadrada (largura e altura iguais)
4596
+ * - `circle`: Forma circular (largura e altura iguais)
4597
+ *
4598
+ * @default `text`
4599
+ */
4600
+ variant: i0.InputSignal<PoSkeletonVariant>;
4601
+ /**
4602
+ * @optional
4603
+ *
4604
+ * @description
4605
+ *
4606
+ * Define o tipo visual do skeleton, alterando sua cor de fundo.
4607
+ *
4608
+ * Valores válidos:
4609
+ * - `normal`: Cor neutra clara (padrão)
4610
+ * - `primary`: Cor neutra média
4611
+ * - `content`: Fundo branco
4612
+ *
4613
+ * @default `normal`
4614
+ */
4615
+ type: i0.InputSignal<PoSkeletonType>;
4616
+ /**
4617
+ * @optional
4618
+ *
4619
+ * @description
4620
+ *
4621
+ * Define o tipo de animação do skeleton.
4622
+ *
4623
+ * Valores válidos:
4624
+ * - `none`: Sem animação
4625
+ * - `pulse`: Animação de pulsação
4626
+ * - `shimmer`: Animação de brilho deslizante
4627
+ *
4628
+ * @default `shimmer`
4629
+ */
4630
+ animation: i0.InputSignal<PoSkeletonAnimation>;
4631
+ /**
4632
+ * @optional
4633
+ *
4634
+ * @description
4635
+ *
4636
+ * Define o tamanho do skeleton para as variantes pré-definidas (`rectangle`, `square`, `circle`).
4637
+ *
4638
+ * Valores válidos:
4639
+ * - `xs`: Extra pequeno (24px para square/circle, 72px x 24px para rectangle)
4640
+ * - `sm`: Pequeno (32px para square/circle, 96px x 32px para rectangle)
4641
+ * - `md`: Médio (48px para square/circle, 144px x 48px para rectangle)
4642
+ * - `lg`: Grande (64px para square/circle, 192px x 64px para rectangle)
4643
+ * - `xl`: Extra grande (96px para square/circle, 288px x 96px para rectangle)
4644
+ * - `2xl`: Extra extra grande (144px para square/circle, 432px x 144px para rectangle)
4645
+ *
4646
+ * Esta propriedade é ignorada quando `p-width` ou `p-height` são definidos explicitamente.
4647
+ *
4648
+ * @default `md`
4649
+ */
4650
+ size: i0.InputSignal<PoSkeletonSize>;
4651
+ /**
4652
+ * @optional
4653
+ *
4654
+ * @description
4655
+ *
4656
+ * Define a largura do skeleton.
4657
+ * Aceita valores CSS válidos (px, %, em, rem).
4658
+ *
4659
+ * Quando definido, sobrescreve a largura padrão da variante.
4660
+ *
4661
+ * @default `100%` para variante `text`, tamanho baseado em `p-size` para outras variantes
4662
+ */
4663
+ width: i0.InputSignal<string>;
4664
+ /**
4665
+ * @optional
4666
+ *
4667
+ * @description
4668
+ *
4669
+ * Define a altura do skeleton.
4670
+ * Aceita valores CSS válidos (px, %, em, rem).
4671
+ *
4672
+ * Quando definido, sobrescreve a altura padrão da variante.
4673
+ */
4674
+ height: i0.InputSignal<string>;
4675
+ /**
4676
+ * @optional
4677
+ *
4678
+ * @description
4679
+ *
4680
+ * Define o raio da borda do skeleton.
4681
+ * Aceita valores CSS válidos (px, %, em, rem).
4682
+ *
4683
+ * Esta propriedade sobrescreve o border-radius padrão de cada variante.
4684
+ */
4685
+ borderRadius: i0.InputSignal<string>;
4686
+ /**
4687
+ * @optional
4688
+ *
4689
+ * @description
4690
+ *
4691
+ * Define a descrição acessível do conteúdo que está sendo carregado.
4692
+ *
4693
+ * Este texto será anunciado por leitores de tela, garantindo que usuários de tecnologias assistivas
4694
+ * sejam informados sobre o estado de carregamento.
4695
+ *
4696
+ * **Quando usar:**
4697
+ * - Use em **skeletons únicos** ou no **primeiro skeleton de um grupo** com descrição contextual
4698
+ * - Evite usar em múltiplos skeletons dentro da mesma área sem contexto, para não causar repetição excessiva
4699
+ *
4700
+ * **Exemplos de uso:**
4701
+ *
4702
+ * ```html
4703
+ * <!-- ✅ BOM: Skeleton único com contexto -->
4704
+ * <po-skeleton p-aria-label="Carregando perfil do usuário"></po-skeleton>
4705
+ *
4706
+ * <!-- ✅ BOM: Grupo de skeletons - apenas o primeiro anuncia -->
4707
+ * <po-skeleton p-aria-label="Carregando lista de produtos"></po-skeleton>
4708
+ * <po-skeleton p-type="primary"></po-skeleton>
4709
+ * <po-skeleton p-variant="circle"></po-skeleton>
4710
+ *
4711
+ * <!-- ❌ EVITE: Múltiplos skeletons com a mesma label -->
4712
+ * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" -->
4713
+ * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" -->
4714
+ * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" (repetitivo!) -->
4715
+ * ```
4716
+ *
4717
+ * > **Boas práticas de acessibilidade:**
4718
+ * > - Forneça contexto específico na label para que os usuários entendam o que está carregando
4719
+ *
4720
+ * > - Em casos complexos, considere usar um único `<div role="status">` para todo o grupo
4721
+ * > de skeletons, ao invés de múltiplas labels idênticas, para evitar repetição excessiva de anúncios
4722
+ */
4723
+ ariaLabel: i0.InputSignal<string>;
4724
+ static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonBaseComponent, never>;
4725
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PoSkeletonBaseComponent, never, never, { "variant": { "alias": "p-variant"; "required": false; "isSignal": true; }; "type": { "alias": "p-type"; "required": false; "isSignal": true; }; "animation": { "alias": "p-animation"; "required": false; "isSignal": true; }; "size": { "alias": "p-size"; "required": false; "isSignal": true; }; "width": { "alias": "p-width"; "required": false; "isSignal": true; }; "height": { "alias": "p-height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "p-border-radius"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "p-aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
4726
+ }
4727
+
4728
+ /**
4729
+ * @docsExtends PoSkeletonBaseComponent
4730
+ *
4731
+ * @example
4732
+ *
4733
+ * <example name="po-skeleton-basic" title="PO Skeleton Basic">
4734
+ * <file name="sample-po-skeleton-basic/sample-po-skeleton-basic.component.html"> </file>
4735
+ * <file name="sample-po-skeleton-basic/sample-po-skeleton-basic.component.ts"> </file>
4736
+ * </example>
4737
+ *
4738
+ * <example name="po-skeleton-labs" title="PO Skeleton Labs">
4739
+ * <file name="sample-po-skeleton-labs/sample-po-skeleton-labs.component.html"> </file>
4740
+ * <file name="sample-po-skeleton-labs/sample-po-skeleton-labs.component.ts"> </file>
4741
+ * </example>
4742
+ *
4743
+ * <example name="po-skeleton-credit-card" title="PO Skeleton - Credit Card">
4744
+ * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.html"> </file>
4745
+ * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.ts"> </file>
4746
+ * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.css"> </file>
4747
+ * </example>
4748
+ *
4749
+ * <example name="po-skeleton-widget-card" title="PO Skeleton - Widget Card">
4750
+ * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.html"> </file>
4751
+ * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.ts"> </file>
4752
+ * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.css"> </file>
4753
+ * </example>
4754
+ *
4755
+ * <example name="po-skeleton-user-profile" title="PO Skeleton - User Profile">
4756
+ * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.html"> </file>
4757
+ * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.ts"> </file>
4758
+ * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.css"> </file>
4759
+ * </example>
4760
+ *
4761
+ * <example name="po-skeleton-social-post" title="PO Skeleton - Social Post">
4762
+ * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.html"> </file>
4763
+ * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.ts"> </file>
4764
+ * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.css"> </file>
4765
+ * </example>
4766
+ *
4767
+ * <example name="po-skeleton-article" title="PO Skeleton - Article">
4768
+ * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.html"> </file>
4769
+ * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.ts"> </file>
4770
+ * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.css"> </file>
4771
+ * </example>
4772
+ */
4773
+ declare class PoSkeletonComponent extends PoSkeletonBaseComponent {
4774
+ private readonly sizeMap;
4775
+ private readonly defaultTextDimensions;
4776
+ private readonly defaultBorderRadius;
4777
+ computedStyles: i0.Signal<{
4778
+ [key: string]: string;
4779
+ }>;
4780
+ computedClasses: i0.Signal<{
4781
+ [x: string]: boolean;
4782
+ 'po-skeleton': boolean;
4783
+ }>;
4784
+ private getDimensions;
4785
+ static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonComponent, never>;
4786
+ static ɵcmp: i0.ɵɵComponentDeclaration<PoSkeletonComponent, "po-skeleton", never, {}, {}, never, never, false, never>;
4787
+ }
4788
+
4789
+ /**
4790
+ * @description
4791
+ *
4792
+ * Módulo do componente po-skeleton.
4793
+ */
4794
+ declare class PoSkeletonModule {
4795
+ static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonModule, never>;
4796
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PoSkeletonModule, [typeof PoSkeletonComponent], [typeof i2.CommonModule], [typeof PoSkeletonComponent]>;
4797
+ static ɵinj: i0.ɵɵInjectorDeclaration<PoSkeletonModule>;
4798
+ }
4799
+
4409
4800
  declare class PoListBoxModule {
4410
4801
  static ɵfac: i0.ɵɵFactoryDeclaration<PoListBoxModule, never>;
4411
- static ɵmod: i0.ɵɵNgModuleDeclaration<PoListBoxModule, [typeof PoListBoxComponent, typeof PoItemListComponent, typeof PoSearchListComponent], [typeof i2.CommonModule, typeof PoCheckboxModule, typeof PoIconModule, typeof PoLoadingModule, typeof PoTagModule, typeof i9.CdkListboxModule], [typeof PoListBoxComponent]>;
4802
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PoListBoxModule, [typeof PoListBoxComponent, typeof PoItemListComponent, typeof PoSearchListComponent], [typeof i2.CommonModule, typeof PoButtonModule, typeof PoCheckboxModule, typeof PoIconModule, typeof PoLoadingModule, typeof PoSkeletonModule, typeof PoTagModule, typeof i11.CdkListboxModule], [typeof PoListBoxComponent]>;
4412
4803
  static ɵinj: i0.ɵɵInjectorDeclaration<PoListBoxModule>;
4413
4804
  }
4414
4805
 
@@ -4490,10 +4881,14 @@ declare class PoPopupBaseComponent {
4490
4881
  private _position?;
4491
4882
  private _size?;
4492
4883
  private _target;
4884
+ rootLazyLoad?: () => Observable<Array<PoPopupAction>>;
4493
4885
  get computedListboxSubitems(): boolean;
4494
4886
  templateIcon: boolean;
4495
- /** Lista de ações que serão exibidas no componente. */
4496
- set actions(value: Array<PoPopupAction>);
4887
+ /**
4888
+ * Lista de ações que serão exibidas no componente.
4889
+ * Aceita um *array* de `PoPopupAction`.
4890
+ */
4891
+ set actions(value: Array<PoPopupAction> | (() => Observable<Array<PoPopupAction>>));
4497
4892
  get actions(): Array<PoPopupAction>;
4498
4893
  /**
4499
4894
  * @optional
@@ -4621,10 +5016,41 @@ declare class PoPopupBaseComponent {
4621
5016
  set target(value: any);
4622
5017
  get target(): any;
4623
5018
  closeEvent: EventEmitter<any>;
5019
+ /**
5020
+ * @optional
5021
+ *
5022
+ * @description
5023
+ *
5024
+ * Evento disparado a cada clique em um item do menu.
5025
+ * Retorna o item clicado (`PoDropdownAction`).
5026
+ *
5027
+ * > Não é disparado para a ação interna de voltar (`goBack`).
5028
+ */
4624
5029
  clickItem: EventEmitter<any>;
4625
5030
  openEvent: EventEmitter<any>;
5031
+ /**
5032
+ * @optional
5033
+ *
5034
+ * @description
5035
+ *
5036
+ * Evento disparado no momento em que a requisição assíncrona de um subnível é iniciada.
5037
+ * Retorna o item agrupador (`PoPopupAction`) que originou o carregamento.
5038
+ *
5039
+ * > Compatível com a propriedade PoPopupAction.subItemsLazy
5040
+ */
5041
+ subItemsLoad: EventEmitter<PoPopupAction>;
5042
+ /**
5043
+ * @optional
5044
+ *
5045
+ * @description
5046
+ *
5047
+ * Evento disparado no momento em que a requisição assíncrona do nível raiz é iniciada
5048
+ *
5049
+ * > Compatível com a propriedade PoPopupAction.subItemsLazy
5050
+ */
5051
+ rootItemsLoad: EventEmitter<void>;
4626
5052
  static ɵfac: i0.ɵɵFactoryDeclaration<PoPopupBaseComponent, never>;
4627
- static ɵdir: i0.ɵɵDirectiveDeclaration<PoPopupBaseComponent, never, never, { "templateIcon": { "alias": "p-template-icon"; "required": false; }; "actions": { "alias": "p-actions"; "required": false; }; "hideArrow": { "alias": "p-hide-arrow"; "required": false; }; "isCornerAlign": { "alias": "p-is-corner-align"; "required": false; }; "position": { "alias": "p-position"; "required": false; }; "customPositions": { "alias": "p-custom-positions"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "target": { "alias": "p-target"; "required": false; }; }, { "closeEvent": "p-close"; "clickItem": "p-click-item"; "openEvent": "p-open"; }, never, never, true, never>;
5053
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PoPopupBaseComponent, never, never, { "templateIcon": { "alias": "p-template-icon"; "required": false; }; "actions": { "alias": "p-actions"; "required": false; }; "hideArrow": { "alias": "p-hide-arrow"; "required": false; }; "isCornerAlign": { "alias": "p-is-corner-align"; "required": false; }; "position": { "alias": "p-position"; "required": false; }; "customPositions": { "alias": "p-custom-positions"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "target": { "alias": "p-target"; "required": false; }; }, { "closeEvent": "p-close"; "clickItem": "p-click-item"; "openEvent": "p-open"; "subItemsLoad": "p-sub-items-load"; "rootItemsLoad": "p-root-items-load"; }, never, never, true, never>;
4628
5054
  }
4629
5055
 
4630
5056
  /**
@@ -4659,6 +5085,8 @@ declare class PoPopupComponent extends PoPopupBaseComponent implements AfterView
4659
5085
  changeDetector: ChangeDetectorRef;
4660
5086
  popupRef: ElementRef;
4661
5087
  listbox: ElementRef;
5088
+ private readonly popupOffset;
5089
+ private readonly viewportMargin;
4662
5090
  poListBoxRef: PoListBoxComponent;
4663
5091
  ngAfterViewInit(): void;
4664
5092
  /**
@@ -4666,7 +5094,10 @@ declare class PoPopupComponent extends PoPopupBaseComponent implements AfterView
4666
5094
  *
4667
5095
  * > Por padrão, este comportamento é acionado somente ao clicar fora do componente ou em determinada ação / url.
4668
5096
  */
4669
- close(): void;
5097
+ close(closeEvent?: {
5098
+ reason?: string;
5099
+ origin?: string;
5100
+ }): void;
4670
5101
  onActionClick(popupAction: PoPopupAction): void | Promise<boolean>;
4671
5102
  /**
4672
5103
  * Abre o componente *popup*.
@@ -4684,10 +5115,13 @@ declare class PoPopupComponent extends PoPopupBaseComponent implements AfterView
4684
5115
  */
4685
5116
  toggle(param?: any): void;
4686
5117
  onClickItem(item: any): void;
5118
+ onContentChange(): void;
4687
5119
  protected checkAllActionIsInvisible(): boolean;
4688
5120
  private clickedOutDisabledItem;
4689
5121
  private clickedOutHeaderTemplate;
5122
+ private isEventInsideElement;
4690
5123
  private clickedOutTarget;
5124
+ private clickedOutPopup;
4691
5125
  private closePopupOnClickout;
4692
5126
  private elementContains;
4693
5127
  private hasContentToShow;
@@ -4696,7 +5130,14 @@ declare class PoPopupComponent extends PoPopupBaseComponent implements AfterView
4696
5130
  private openUrl;
4697
5131
  private removeListeners;
4698
5132
  private setPosition;
5133
+ private resolvePositions;
5134
+ private getVerticalFirstPositions;
5135
+ private clampHeightToViewport;
5136
+ private getScrollableListboxElement;
5137
+ private isOpeningUp;
5138
+ private getStickyPositions;
4699
5139
  private validateInitialContent;
5140
+ private focusTarget;
4700
5141
  static ɵfac: i0.ɵɵFactoryDeclaration<PoPopupComponent, never>;
4701
5142
  static ɵcmp: i0.ɵɵComponentDeclaration<PoPopupComponent, "po-popup", never, {}, {}, never, ["[p-popup-header-template]"], false, never>;
4702
5143
  }
@@ -14007,13 +14448,18 @@ declare class PoDropdownBaseComponent {
14007
14448
  icon: string;
14008
14449
  open: boolean;
14009
14450
  private _actions;
14451
+ private _rootLazyLoad?;
14010
14452
  private _disabled;
14011
14453
  private _size?;
14012
14454
  private _initialSize?;
14013
14455
  private _position;
14014
- /** Lista de ações que serão exibidas no componente. */
14015
- set actions(value: Array<PoDropdownAction>);
14456
+ /**
14457
+ * Lista de ações que serão exibidas no componente.
14458
+ * Aceita um *array* de `PoDropdownAction`.
14459
+ */
14460
+ set actions(value: Array<PoDropdownAction> | (() => Observable<Array<PoDropdownAction>>));
14016
14461
  get actions(): Array<PoDropdownAction>;
14462
+ get popupActions(): Array<PoDropdownAction> | (() => Observable<Array<PoDropdownAction>>);
14017
14463
  /**
14018
14464
  * @optional
14019
14465
  *
@@ -14068,11 +14514,43 @@ declare class PoDropdownBaseComponent {
14068
14514
  */
14069
14515
  set position(value: string);
14070
14516
  get position(): string;
14517
+ /**
14518
+ * @optional
14519
+ *
14520
+ * @description
14521
+ *
14522
+ * Evento disparado a cada clique em um item do menu.
14523
+ * Retorna o item clicado (`PoDropdownAction`).
14524
+ *
14525
+ * > Não é disparado para a ação interna de voltar (`goBack`).
14526
+ */
14527
+ clickItem: EventEmitter<PoDropdownAction>;
14528
+ /**
14529
+ * @optional
14530
+ *
14531
+ * @description
14532
+ *
14533
+ * Evento disparado no momento em que a requisição assíncrona de um subnível é iniciada.
14534
+ * Retorna o item agrupador (`PoDropdownAction`) que originou o carregamento.
14535
+ *
14536
+ * > Compatível com a propriedade PoPopupAction.subItemsLazy
14537
+ */
14538
+ subItemsLoad: EventEmitter<PoDropdownAction>;
14539
+ /**
14540
+ * @optional
14541
+ *
14542
+ * @description
14543
+ *
14544
+ * Evento disparado no momento em que a requisição assíncrona do nível raiz é iniciada
14545
+ *
14546
+ * > Compatível com a propriedade PoPopupAction.subItemsLazy
14547
+ */
14548
+ rootItemsLoad: EventEmitter<void>;
14071
14549
  get popupCustomPositions(): Array<string>;
14072
14550
  protected onThemeChange(): void;
14073
14551
  private applySizeBasedOnA11y;
14074
14552
  static ɵfac: i0.ɵɵFactoryDeclaration<PoDropdownBaseComponent, never>;
14075
- static ɵdir: i0.ɵɵDirectiveDeclaration<PoDropdownBaseComponent, never, never, { "label": { "alias": "p-label"; "required": false; }; "actions": { "alias": "p-actions"; "required": false; }; "disabled": { "alias": "p-disabled"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "position": { "alias": "p-position"; "required": false; }; }, {}, never, never, true, never>;
14553
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PoDropdownBaseComponent, never, never, { "label": { "alias": "p-label"; "required": false; }; "actions": { "alias": "p-actions"; "required": false; }; "disabled": { "alias": "p-disabled"; "required": false; }; "size": { "alias": "p-size"; "required": false; }; "position": { "alias": "p-position"; "required": false; }; }, { "clickItem": "p-click-item"; "subItemsLoad": "p-sub-items-load"; "rootItemsLoad": "p-root-items-load"; }, never, never, true, never>;
14076
14554
  }
14077
14555
 
14078
14556
  /**
@@ -14085,11 +14563,6 @@ declare class PoDropdownBaseComponent {
14085
14563
  * <file name="sample-po-dropdown-basic/sample-po-dropdown-basic.component.ts"> </file>
14086
14564
  * </example>
14087
14565
  *
14088
- * <example name="po-dropdown-subitems" title="PO Dropdown Subitems" >
14089
- * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.html"> </file>
14090
- * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.ts"> </file>
14091
- * </example>
14092
- *
14093
14566
  * <example name="po-dropdown-labs" title="PO Dropdown Labs" >
14094
14567
  * <file name="sample-po-dropdown-labs/sample-po-dropdown-labs.component.html"> </file>
14095
14568
  * <file name="sample-po-dropdown-labs/sample-po-dropdown-labs.component.ts"> </file>
@@ -14099,6 +14572,16 @@ declare class PoDropdownBaseComponent {
14099
14572
  * <file name="sample-po-dropdown-social-network/sample-po-dropdown-social-network.component.html"> </file>
14100
14573
  * <file name="sample-po-dropdown-social-network/sample-po-dropdown-social-network.component.ts"> </file>
14101
14574
  * </example>
14575
+ *
14576
+ * <example name="po-dropdown-subitems" title="PO Dropdown Subitems" >
14577
+ * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.html"> </file>
14578
+ * <file name="sample-po-dropdown-subitems/sample-po-dropdown-subitems.component.ts"> </file>
14579
+ * </example>
14580
+ *
14581
+ * <example name="po-dropdown-lazy-subitems" title="PO Dropdown Lazy Subitems" >
14582
+ * <file name="sample-po-dropdown-lazy-subitems/sample-po-dropdown-lazy-subitems.component.html"> </file>
14583
+ * <file name="sample-po-dropdown-lazy-subitems/sample-po-dropdown-lazy-subitems.component.ts"> </file>
14584
+ * </example>
14102
14585
  */
14103
14586
  declare class PoDropdownComponent extends PoDropdownBaseComponent {
14104
14587
  private readonly renderer;
@@ -14109,10 +14592,13 @@ declare class PoDropdownComponent extends PoDropdownBaseComponent {
14109
14592
  private resizeListener;
14110
14593
  onKeyDown(event: any): void;
14111
14594
  toggleDropdown(): void;
14595
+ onPopupClose(): void;
14596
+ private isEventInsideElement;
14112
14597
  private checkClickArea;
14113
14598
  private hideDropdown;
14114
14599
  private initializeListeners;
14115
14600
  private readonly onScroll;
14601
+ private isScrollInsidePopup;
14116
14602
  private isDropdownClosed;
14117
14603
  private removeListeners;
14118
14604
  private showDropdown;
@@ -15799,7 +16285,7 @@ declare abstract class PoChartBaseComponent implements OnInit {
15799
16285
  * - Os marcadores (*bullets*) terão seu estilo ajustado.
15800
16286
  * - As outras séries ficarão com opacidade reduzida ao passar o mouse sobre a série ativa.
15801
16287
  *
15802
- * > Disponível para gráficos do tipo `line` e `radar`.
16288
+ * > Disponível para gráficos do tipo `line`, `area`, `column`, `bar` e `radar`.
15803
16289
  *
15804
16290
  * #### Exemplo de utilização:
15805
16291
  * ```typescript
@@ -39863,334 +40349,6 @@ declare class PoTreeViewModule {
39863
40349
  static ɵinj: i0.ɵɵInjectorDeclaration<PoTreeViewModule>;
39864
40350
  }
39865
40351
 
39866
- /**
39867
- * @usedBy PoSkeletonComponent
39868
- *
39869
- * @description
39870
- *
39871
- * Define os tipos de animação do componente `po-skeleton`.
39872
- */
39873
- declare enum PoSkeletonAnimation {
39874
- /** Sem animação */
39875
- none = "none",
39876
- /** Animação de pulsação */
39877
- pulse = "pulse",
39878
- /** Animação de brilho deslizante */
39879
- shimmer = "shimmer"
39880
- }
39881
-
39882
- /**
39883
- * @usedBy PoSkeletonComponent
39884
- *
39885
- * @description
39886
- *
39887
- * Define os tamanhos disponíveis para o componente `po-skeleton`.
39888
- */
39889
- declare enum PoSkeletonSize {
39890
- /** Tamanho extra pequeno */
39891
- xs = "xs",
39892
- /** Tamanho pequeno */
39893
- sm = "sm",
39894
- /** Tamanho médio */
39895
- md = "md",
39896
- /** Tamanho grande */
39897
- lg = "lg",
39898
- /** Tamanho extra grande */
39899
- xl = "xl",
39900
- /** Tamanho extra extra grande */
39901
- xxl = "2xl"
39902
- }
39903
-
39904
- /**
39905
- * @usedBy PoSkeletonComponent
39906
- *
39907
- * @description
39908
- *
39909
- * Define os tipos visuais disponíveis para o componente `po-skeleton`.
39910
- */
39911
- declare enum PoSkeletonType {
39912
- /** Tipo padrão com cor neutra clara */
39913
- normal = "normal",
39914
- /** Tipo primário com cor neutra média */
39915
- primary = "primary",
39916
- /** Tipo de conteúdo com fundo branco */
39917
- content = "content"
39918
- }
39919
-
39920
- /**
39921
- * @usedBy PoSkeletonComponent
39922
- *
39923
- * @description
39924
- *
39925
- * Define as variantes visuais do componente `po-skeleton`.
39926
- */
39927
- declare enum PoSkeletonVariant {
39928
- /** Variante para simular texto */
39929
- text = "text",
39930
- /** Variante retangular (largura maior que altura) */
39931
- rectangle = "rectangle",
39932
- /** Variante quadrada (largura igual à altura) */
39933
- square = "square",
39934
- /** Variante circular */
39935
- circle = "circle"
39936
- }
39937
-
39938
- /**
39939
- * @description
39940
- *
39941
- * O componente `po-skeleton` é utilizado para exibir placeholders durante o carregamento de conteúdo,
39942
- * melhorando a experiência do usuário ao indicar que a informação está sendo processada.
39943
- *
39944
- * Ele oferece diferentes variantes visuais (texto, retângulo, círculo) e animações (pulse, shimmer)
39945
- * para simular diversos tipos de conteúdo em estado de carregamento.
39946
- *
39947
- * #### Tokens customizáveis
39948
- *
39949
- * É possível alterar o estilo do componente usando os seguintes tokens (CSS):
39950
- *
39951
- * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization).
39952
- *
39953
- * | Propriedade | Descrição | Valor Padrão |
39954
- * |----------------------------------------|------------------------------------------------------|---------------------------------|
39955
- * | **Cores** | | |
39956
- * | `--color` | Cor de fundo do skeleton (tipo normal) | `var(--color-neutral-light-20)` |
39957
- * | `--color-primary` | Cor de fundo do skeleton (tipo primary) | `var(--color-neutral-mid-40)` |
39958
- * | `--color-content` | Cor de fundo do skeleton (tipo content) | `var(--color-neutral-light-00)` |
39959
- * | `--shimmer-highlight` | Cor de destaque do shimmer (tipo normal) | `var(--color-neutral-light-30)` |
39960
- * | `--shimmer-highlight-primary` | Cor de destaque do shimmer (tipo primary) | `var(--color-neutral-light-20)` |
39961
- * | `--shimmer-highlight-content` | Cor de destaque do shimmer (tipo content) | `var(--color-neutral-light-05)` |
39962
- * | **Espaçamento** | | |
39963
- * | `--margin-bottom` | Margem inferior do skeleton | `var(--spacing-xs)` |
39964
- * | **Bordas** | | |
39965
- * | `--border-radius` | Raio da borda do skeleton | `var(--border-radius-md)` |
39966
- * | `--border-radius-text` | Raio da borda para a variante text | `var(--border-radius-md)` |
39967
- * | `--border-radius-primary` | Raio da borda do skeleton (tipo primary) | `var(--border-radius-md)` |
39968
- * | `--border-radius-content` | Raio da borda do skeleton (tipo content) | `var(--border-radius-lg)` |
39969
- * | **Transições** | | |
39970
- * | `--transition-property` | Propriedade CSS da transição | `all` |
39971
- * | `--transition-duration` | Duração da transição de cor | `var(--duration-moderate)` |
39972
- * | `--transition-timing` | Função de temporização da transição/animação | `var(--timing-continuous)` |
39973
- * | **Animações** | | |
39974
- * | `--animation-duration-pulse` | Duração da animação de pulsação | `var(--duration-very-slow)` |
39975
- * | `--animation-duration-shimmer` | Duração da animação de brilho deslizante | `var(--duration-ultra-slow)` |
39976
- *
39977
- */
39978
- declare class PoSkeletonBaseComponent {
39979
- /**
39980
- * @optional
39981
- *
39982
- * @description
39983
- *
39984
- * Define a variante visual do skeleton.
39985
- *
39986
- * Valores válidos:
39987
- * - `text`: Simula uma linha de texto (altura padrão: 1em)
39988
- * - `rectangle`: Forma retangular (proporção 3:1 por padrão)
39989
- * - `square`: Forma quadrada (largura e altura iguais)
39990
- * - `circle`: Forma circular (largura e altura iguais)
39991
- *
39992
- * @default `text`
39993
- */
39994
- variant: i0.InputSignal<PoSkeletonVariant>;
39995
- /**
39996
- * @optional
39997
- *
39998
- * @description
39999
- *
40000
- * Define o tipo visual do skeleton, alterando sua cor de fundo.
40001
- *
40002
- * Valores válidos:
40003
- * - `normal`: Cor neutra clara (padrão)
40004
- * - `primary`: Cor neutra média
40005
- * - `content`: Fundo branco
40006
- *
40007
- * @default `normal`
40008
- */
40009
- type: i0.InputSignal<PoSkeletonType>;
40010
- /**
40011
- * @optional
40012
- *
40013
- * @description
40014
- *
40015
- * Define o tipo de animação do skeleton.
40016
- *
40017
- * Valores válidos:
40018
- * - `none`: Sem animação
40019
- * - `pulse`: Animação de pulsação
40020
- * - `shimmer`: Animação de brilho deslizante
40021
- *
40022
- * @default `shimmer`
40023
- */
40024
- animation: i0.InputSignal<PoSkeletonAnimation>;
40025
- /**
40026
- * @optional
40027
- *
40028
- * @description
40029
- *
40030
- * Define o tamanho do skeleton para as variantes pré-definidas (`rectangle`, `square`, `circle`).
40031
- *
40032
- * Valores válidos:
40033
- * - `xs`: Extra pequeno (24px para square/circle, 72px x 24px para rectangle)
40034
- * - `sm`: Pequeno (32px para square/circle, 96px x 32px para rectangle)
40035
- * - `md`: Médio (48px para square/circle, 144px x 48px para rectangle)
40036
- * - `lg`: Grande (64px para square/circle, 192px x 64px para rectangle)
40037
- * - `xl`: Extra grande (96px para square/circle, 288px x 96px para rectangle)
40038
- * - `2xl`: Extra extra grande (144px para square/circle, 432px x 144px para rectangle)
40039
- *
40040
- * Esta propriedade é ignorada quando `p-width` ou `p-height` são definidos explicitamente.
40041
- *
40042
- * @default `md`
40043
- */
40044
- size: i0.InputSignal<PoSkeletonSize>;
40045
- /**
40046
- * @optional
40047
- *
40048
- * @description
40049
- *
40050
- * Define a largura do skeleton.
40051
- * Aceita valores CSS válidos (px, %, em, rem).
40052
- *
40053
- * Quando definido, sobrescreve a largura padrão da variante.
40054
- *
40055
- * @default `100%` para variante `text`, tamanho baseado em `p-size` para outras variantes
40056
- */
40057
- width: i0.InputSignal<string>;
40058
- /**
40059
- * @optional
40060
- *
40061
- * @description
40062
- *
40063
- * Define a altura do skeleton.
40064
- * Aceita valores CSS válidos (px, %, em, rem).
40065
- *
40066
- * Quando definido, sobrescreve a altura padrão da variante.
40067
- */
40068
- height: i0.InputSignal<string>;
40069
- /**
40070
- * @optional
40071
- *
40072
- * @description
40073
- *
40074
- * Define o raio da borda do skeleton.
40075
- * Aceita valores CSS válidos (px, %, em, rem).
40076
- *
40077
- * Esta propriedade sobrescreve o border-radius padrão de cada variante.
40078
- */
40079
- borderRadius: i0.InputSignal<string>;
40080
- /**
40081
- * @optional
40082
- *
40083
- * @description
40084
- *
40085
- * Define a descrição acessível do conteúdo que está sendo carregado.
40086
- *
40087
- * Este texto será anunciado por leitores de tela, garantindo que usuários de tecnologias assistivas
40088
- * sejam informados sobre o estado de carregamento.
40089
- *
40090
- * **Quando usar:**
40091
- * - Use em **skeletons únicos** ou no **primeiro skeleton de um grupo** com descrição contextual
40092
- * - Evite usar em múltiplos skeletons dentro da mesma área sem contexto, para não causar repetição excessiva
40093
- *
40094
- * **Exemplos de uso:**
40095
- *
40096
- * ```html
40097
- * <!-- ✅ BOM: Skeleton único com contexto -->
40098
- * <po-skeleton p-aria-label="Carregando perfil do usuário"></po-skeleton>
40099
- *
40100
- * <!-- ✅ BOM: Grupo de skeletons - apenas o primeiro anuncia -->
40101
- * <po-skeleton p-aria-label="Carregando lista de produtos"></po-skeleton>
40102
- * <po-skeleton p-type="primary"></po-skeleton>
40103
- * <po-skeleton p-variant="circle"></po-skeleton>
40104
- *
40105
- * <!-- ❌ EVITE: Múltiplos skeletons com a mesma label -->
40106
- * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" -->
40107
- * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" -->
40108
- * <po-skeleton p-aria-label="Carregando"></po-skeleton> <!-- "Carregando" (repetitivo!) -->
40109
- * ```
40110
- *
40111
- * > **Boas práticas de acessibilidade:**
40112
- * > - Forneça contexto específico na label para que os usuários entendam o que está carregando
40113
- *
40114
- * > - Em casos complexos, considere usar um único `<div role="status">` para todo o grupo
40115
- * > de skeletons, ao invés de múltiplas labels idênticas, para evitar repetição excessiva de anúncios
40116
- */
40117
- ariaLabel: i0.InputSignal<string>;
40118
- static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonBaseComponent, never>;
40119
- static ɵdir: i0.ɵɵDirectiveDeclaration<PoSkeletonBaseComponent, never, never, { "variant": { "alias": "p-variant"; "required": false; "isSignal": true; }; "type": { "alias": "p-type"; "required": false; "isSignal": true; }; "animation": { "alias": "p-animation"; "required": false; "isSignal": true; }; "size": { "alias": "p-size"; "required": false; "isSignal": true; }; "width": { "alias": "p-width"; "required": false; "isSignal": true; }; "height": { "alias": "p-height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "p-border-radius"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "p-aria-label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
40120
- }
40121
-
40122
- /**
40123
- * @docsExtends PoSkeletonBaseComponent
40124
- *
40125
- * @example
40126
- *
40127
- * <example name="po-skeleton-basic" title="PO Skeleton Basic">
40128
- * <file name="sample-po-skeleton-basic/sample-po-skeleton-basic.component.html"> </file>
40129
- * <file name="sample-po-skeleton-basic/sample-po-skeleton-basic.component.ts"> </file>
40130
- * </example>
40131
- *
40132
- * <example name="po-skeleton-labs" title="PO Skeleton Labs">
40133
- * <file name="sample-po-skeleton-labs/sample-po-skeleton-labs.component.html"> </file>
40134
- * <file name="sample-po-skeleton-labs/sample-po-skeleton-labs.component.ts"> </file>
40135
- * </example>
40136
- *
40137
- * <example name="po-skeleton-credit-card" title="PO Skeleton - Credit Card">
40138
- * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.html"> </file>
40139
- * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.ts"> </file>
40140
- * <file name="sample-po-skeleton-credit-card/sample-po-skeleton-credit-card.component.css"> </file>
40141
- * </example>
40142
- *
40143
- * <example name="po-skeleton-widget-card" title="PO Skeleton - Widget Card">
40144
- * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.html"> </file>
40145
- * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.ts"> </file>
40146
- * <file name="sample-po-skeleton-widget-card/sample-po-skeleton-widget-card.component.css"> </file>
40147
- * </example>
40148
- *
40149
- * <example name="po-skeleton-user-profile" title="PO Skeleton - User Profile">
40150
- * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.html"> </file>
40151
- * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.ts"> </file>
40152
- * <file name="sample-po-skeleton-user-profile/sample-po-skeleton-user-profile.component.css"> </file>
40153
- * </example>
40154
- *
40155
- * <example name="po-skeleton-social-post" title="PO Skeleton - Social Post">
40156
- * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.html"> </file>
40157
- * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.ts"> </file>
40158
- * <file name="sample-po-skeleton-social-post/sample-po-skeleton-social-post.component.css"> </file>
40159
- * </example>
40160
- *
40161
- * <example name="po-skeleton-article" title="PO Skeleton - Article">
40162
- * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.html"> </file>
40163
- * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.ts"> </file>
40164
- * <file name="sample-po-skeleton-article/sample-po-skeleton-article.component.css"> </file>
40165
- * </example>
40166
- */
40167
- declare class PoSkeletonComponent extends PoSkeletonBaseComponent {
40168
- private readonly sizeMap;
40169
- private readonly defaultTextDimensions;
40170
- private readonly defaultBorderRadius;
40171
- computedStyles: i0.Signal<{
40172
- [key: string]: string;
40173
- }>;
40174
- computedClasses: i0.Signal<{
40175
- [x: string]: boolean;
40176
- 'po-skeleton': boolean;
40177
- }>;
40178
- private getDimensions;
40179
- static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonComponent, never>;
40180
- static ɵcmp: i0.ɵɵComponentDeclaration<PoSkeletonComponent, "po-skeleton", never, {}, {}, never, never, false, never>;
40181
- }
40182
-
40183
- /**
40184
- * @description
40185
- *
40186
- * Módulo do componente po-skeleton.
40187
- */
40188
- declare class PoSkeletonModule {
40189
- static ɵfac: i0.ɵɵFactoryDeclaration<PoSkeletonModule, never>;
40190
- static ɵmod: i0.ɵɵNgModuleDeclaration<PoSkeletonModule, [typeof PoSkeletonComponent], [typeof i2.CommonModule], [typeof PoSkeletonComponent]>;
40191
- static ɵinj: i0.ɵɵInjectorDeclaration<PoSkeletonModule>;
40192
- }
40193
-
40194
40352
  /**
40195
40353
  * @usedBy PoHeaderComponent
40196
40354
  *