ngx-opalbytes-components 1.14.1 → 1.16.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.
package/README.md
CHANGED
|
@@ -91,6 +91,8 @@ src/
|
|
|
91
91
|
| ├── links-button/
|
|
92
92
|
| ├── paginator/
|
|
93
93
|
| ├── stepper/
|
|
94
|
+
| ├── tab-group/
|
|
95
|
+
| ├── tab-panel/
|
|
94
96
|
| └── time-picker/
|
|
95
97
|
└── features/
|
|
96
98
|
├── base-modal/
|
|
@@ -648,6 +650,129 @@ Um menu suspenso (dropdown) com busca, que funciona com `ngModel` ou `formContro
|
|
|
648
650
|
|
|
649
651
|
---
|
|
650
652
|
|
|
653
|
+
### `CaoTabGroup` e `CaoTabPanel`
|
|
654
|
+
|
|
655
|
+
Um sistema de abas (tabs) que permite navegar entre diferentes conteúdos organizados em painéis.
|
|
656
|
+
|
|
657
|
+
**Seletores:**
|
|
658
|
+
- `<cao-tab-group>` — Container de abas
|
|
659
|
+
- `<cao-tab-panel>` — Painel individual de conteúdo
|
|
660
|
+
|
|
661
|
+
#### Interface `ICaoTabChangeEvent`
|
|
662
|
+
|
|
663
|
+
| Propriedade | Tipo | Descrição |
|
|
664
|
+
| --- | --- | --- |
|
|
665
|
+
| `previousIndex` | `number` | Índice da aba anteriormente ativa |
|
|
666
|
+
| `index` | `number` | Índice da aba recém-selecionada |
|
|
667
|
+
| `tab` | `CaoTabPanel` | Instância do painel selecionado |
|
|
668
|
+
|
|
669
|
+
#### Atributos do `CaoTabGroup` (Inputs)
|
|
670
|
+
|
|
671
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
672
|
+
| --- | --- | --- | --- |
|
|
673
|
+
| `selectedIndex` | `number` | `0` | Índice da aba ativa |
|
|
674
|
+
| `labelHeight` | `string` | `'48px'` | Altura do label de cada aba |
|
|
675
|
+
| `labelPaddingX` | `string` | `'16px'` | Padding horizontal do label |
|
|
676
|
+
| `labelGap` | `string` | `'6px'` | Espaçamento entre abas |
|
|
677
|
+
| `colorText` | `string` | `'#6b7280'` | Cor do texto das abas inativas |
|
|
678
|
+
| `colorActive` | `string` | `'#4f46e5'` | Cor do texto da aba ativa |
|
|
679
|
+
| `colorHoverBg` | `string` | `'#f3f4f6'` | Cor de fundo ao passar o mouse |
|
|
680
|
+
| `colorDisabled` | `string` | `'#d1d5db'` | Cor de texto de aba desabilitada |
|
|
681
|
+
| `colorInkBar` | `string` | `'#4f46e5'` | Cor da barra indicadora (ink bar) |
|
|
682
|
+
| `colorHeaderBorder` | `string` | `'#e5e7eb'` | Cor da borda inferior do cabeçalho |
|
|
683
|
+
| `inkBarHeight` | `string` | `'2px'` | Altura da barra indicadora |
|
|
684
|
+
| `contentPaddingTop` | `string` | `'20px'` | Padding superior do conteúdo |
|
|
685
|
+
| `labelRadius` | `string` | `'4px'` | Border-radius do label |
|
|
686
|
+
| `animationDuration` | `string` | `'300ms'` | Duração da animação da ink bar |
|
|
687
|
+
| `dynamicHeight` | `boolean` | `false` | Altura dinâmica do conteúdo |
|
|
688
|
+
| `labelAlign` | `'start' \| 'center' \| 'end'` | `'start'` | Alinhamento das abas no cabeçalho |
|
|
689
|
+
| `iconColorActive` | `string` | `''` | Cor dos ícones na aba ativa |
|
|
690
|
+
| `iconColorInactive` | `string` | `''` | Cor dos ícones nas abas inativas |
|
|
691
|
+
| `strokeWidthIcon` | `number` | `1` | Espessura do stroke de ícones Lucide |
|
|
692
|
+
|
|
693
|
+
#### Eventos do `CaoTabGroup` (Outputs)
|
|
694
|
+
|
|
695
|
+
| Evento | Tipo | Descrição |
|
|
696
|
+
| --- | --- | --- |
|
|
697
|
+
| `selectedTabChange` | `EventEmitter<ICaoTabChangeEvent>` | Emitido quando a aba ativa muda |
|
|
698
|
+
| `focusChange` | `EventEmitter<number>` | Emitido quando uma aba recebe foco |
|
|
699
|
+
|
|
700
|
+
#### Atributos do `CaoTabPanel` (Inputs)
|
|
701
|
+
|
|
702
|
+
| Atributo | Tipo | Padrão | Descrição |
|
|
703
|
+
| --- | --- | --- | --- |
|
|
704
|
+
| `label` | `string` | `''` | Texto exibido no label da aba |
|
|
705
|
+
| `isLucideIcon` | `boolean` | `true` | Define se os ícones são do Lucide |
|
|
706
|
+
| `leadingIcon` | `string \| null` | `null` | Ícone exibido antes do label |
|
|
707
|
+
| `trailingIcon` | `string \| null` | `null` | Ícone exibido após o label |
|
|
708
|
+
| `isDisabled` | `boolean` | `false` | Desabilita a aba |
|
|
709
|
+
|
|
710
|
+
#### Diretivas customizadas
|
|
711
|
+
|
|
712
|
+
| Diretiva | Seletor | Descrição |
|
|
713
|
+
| --- | --- | --- |
|
|
714
|
+
| `CaoTabLabelDirective` | `[caoTabLabel]` | Template customizado para o label da aba |
|
|
715
|
+
| `CaoTabContentDirective` | `[caoTabContent]` | Template para conteúdo lazy (renderizado apenas quando a aba é ativada) |
|
|
716
|
+
|
|
717
|
+
#### Exemplo de uso
|
|
718
|
+
|
|
719
|
+
```html
|
|
720
|
+
<cao-tab-group
|
|
721
|
+
[selectedIndex]="1"
|
|
722
|
+
(selectedTabChange)="onTabChange($event)"
|
|
723
|
+
labelAlign="center"
|
|
724
|
+
colorActive="#dc2626"
|
|
725
|
+
>
|
|
726
|
+
<cao-tab-panel label="Primeira">
|
|
727
|
+
<p>Conteúdo da primeira aba.</p>
|
|
728
|
+
</cao-tab-panel>
|
|
729
|
+
|
|
730
|
+
<cao-tab-panel label="Segunda" isDisabled>
|
|
731
|
+
<p>Esta aba está desabilitada.</p>
|
|
732
|
+
</cao-tab-panel>
|
|
733
|
+
|
|
734
|
+
<cao-tab-panel label="Com ícone" leadingIcon="home" [isLucideIcon]="true">
|
|
735
|
+
<p>Aba com ícone Lucide.</p>
|
|
736
|
+
</cao-tab-panel>
|
|
737
|
+
|
|
738
|
+
<cao-tab-panel label="Customizada">
|
|
739
|
+
<ng-template caoTabLabel>
|
|
740
|
+
<span style="font-weight: bold;">🌟 Custom</span>
|
|
741
|
+
</ng-template>
|
|
742
|
+
|
|
743
|
+
<ng-template caoTabContent>
|
|
744
|
+
<p>Conteúdo carregado sob demanda via diretiva <code>caoTabContent</code>.</p>
|
|
745
|
+
</ng-template>
|
|
746
|
+
</cao-tab-panel>
|
|
747
|
+
</cao-tab-group>
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
#### CSS Custom Properties
|
|
751
|
+
|
|
752
|
+
O componente `CaoTabGroup` expõe todas as suas propriedades visuais via CSS custom properties, que podem ser sobrescritas globalmente ou por instância:
|
|
753
|
+
|
|
754
|
+
| Propriedade | Padrão | Descrição |
|
|
755
|
+
| --- | --- | --- |
|
|
756
|
+
| `--cao-tab-font-family` | `inherit` | Família da fonte dos labels |
|
|
757
|
+
| `--cao-tab-font-size` | `0.875rem` | Tamanho da fonte dos labels |
|
|
758
|
+
| `--cao-tab-font-weight` | `500` | Peso da fonte dos labels |
|
|
759
|
+
| `--caoTabLabelHeight` | `48px` | Altura do label |
|
|
760
|
+
| `--caoTabLabelPx` | `16px` | Padding horizontal do label |
|
|
761
|
+
| `--caoTabLabelGap` | `6px` | Espaçamento entre abas |
|
|
762
|
+
| `--caoTabColorText` | `#6b7280` | Cor do texto inativo |
|
|
763
|
+
| `--caoTabColorActive` | `#4f46e5` | Cor do texto ativo |
|
|
764
|
+
| `--caoTabColorHoverBg` | `#f3f4f6` | Fundo no hover |
|
|
765
|
+
| `--caoTabColorDisabled` | `#d1d5db` | Cor do texto desabilitado |
|
|
766
|
+
| `--caoTabColorInkBar` | `#4f46e5` | Cor da ink bar |
|
|
767
|
+
| `--caoTabColorHeaderBorder` | `#e5e7eb` | Cor da borda do header |
|
|
768
|
+
| `--caoTabInkBarHeight` | `2px` | Altura da ink bar |
|
|
769
|
+
| `--caoTabContentPt` | `20px` | Padding superior do conteúdo |
|
|
770
|
+
| `--caoTabRadius` | `4px` | Border-radius do label |
|
|
771
|
+
|
|
772
|
+
> **Nota:** As propriedades com prefixo `--cao-` (hífen) podem ser definidas via CSS. As propriedades com prefixo `--cao` (sem hífen) são definidas via `@Input()` no componente, mas também podem ser sobrescritas via CSS.
|
|
773
|
+
|
|
774
|
+
---
|
|
775
|
+
|
|
651
776
|
### `Footer`
|
|
652
777
|
Um rodapé simples para a aplicação.
|
|
653
778
|
|