@letsprogram/ng-oat 0.1.4 → 0.1.6
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/assets/oat/css/00-base.css +100 -1
- package/assets/oat/css/01-theme.css +39 -15
- package/assets/oat/css/accordion.css +1 -1
- package/assets/oat/css/alert.css +1 -1
- package/assets/oat/css/card.css +36 -0
- package/assets/oat/css/chips.css +2 -1
- package/assets/oat/css/dropdown.css +1 -0
- package/assets/oat/css/file-upload.css +2 -0
- package/assets/oat/css/grid.css +121 -77
- package/assets/oat/css/sidebar.css +10 -8
- package/assets/oat/css/tabs.css +8 -0
- package/assets/oat/css/toast.css +20 -4
- package/assets/oat/css/utilities.css +270 -4
- package/assets/oat/oat.css +1246 -669
- package/fesm2022/letsprogram-ng-oat.mjs +336 -96
- package/package.json +1 -1
- package/types/letsprogram-ng-oat.d.ts +171 -34
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { EnvironmentProviders, TemplateRef, ViewContainerRef, OnInit, OnDestroy, InjectionToken, AfterViewInit } from '@angular/core';
|
|
2
|
+
import { EnvironmentProviders, TemplateRef, ViewContainerRef, OnInit, OnDestroy, InjectionToken, AfterViewInit, ModelSignal } from '@angular/core';
|
|
3
3
|
import { FormCheckboxControl, FormValueControl, ValidationError, FieldState } from '@angular/forms/signals';
|
|
4
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
4
5
|
|
|
5
6
|
/** Configuration for provideNgOat() */
|
|
6
7
|
interface NgOatOptions {
|
|
@@ -707,12 +708,13 @@ declare class NgOatSpinner {
|
|
|
707
708
|
declare class NgOatSwitch implements FormCheckboxControl {
|
|
708
709
|
readonly label: _angular_core.InputSignal<string>;
|
|
709
710
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
710
|
-
readonly disabled: _angular_core.
|
|
711
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
712
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
711
713
|
readonly value: undefined;
|
|
712
714
|
readonly changed: _angular_core.OutputEmitterRef<boolean>;
|
|
713
715
|
onInputChange(event: Event): void;
|
|
714
716
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatSwitch, never>;
|
|
715
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSwitch, "ng-oat-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "changed": "changed"; }, never, never, true, never>;
|
|
717
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSwitch, "ng-oat-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "touched": "touchedChange"; "changed": "changed"; }, never, never, true, never>;
|
|
716
718
|
}
|
|
717
719
|
|
|
718
720
|
type NgOatSkeletonType = 'line' | 'box';
|
|
@@ -916,13 +918,27 @@ declare class NgOatTooltipComponent {
|
|
|
916
918
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatTooltipComponent, "ng-oat-tooltip", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
917
919
|
}
|
|
918
920
|
|
|
921
|
+
type NgOatSidebarMode = 'fixed' | 'overlay';
|
|
919
922
|
/**
|
|
920
923
|
* Angular component wrapper for Oat's sidebar layout.
|
|
921
924
|
*
|
|
922
|
-
*
|
|
925
|
+
* Supports two modes:
|
|
926
|
+
* - `fixed` (default): Permanent sidebar on desktop, slide-out drawer on mobile.
|
|
927
|
+
* - `overlay`: Slide-out drawer at all screen sizes (ideal for app shells
|
|
928
|
+
* that already have a toolbar with nav links).
|
|
929
|
+
*
|
|
930
|
+
* Usage (fixed — permanent desktop sidebar):
|
|
923
931
|
* ```html
|
|
924
|
-
* <ng-oat-sidebar
|
|
925
|
-
* <aside sidebar>Navigation</aside>
|
|
932
|
+
* <ng-oat-sidebar>
|
|
933
|
+
* <aside data-sidebar>Navigation</aside>
|
|
934
|
+
* <main>Main content</main>
|
|
935
|
+
* </ng-oat-sidebar>
|
|
936
|
+
* ```
|
|
937
|
+
*
|
|
938
|
+
* Usage (overlay — mobile-style drawer at all sizes):
|
|
939
|
+
* ```html
|
|
940
|
+
* <ng-oat-sidebar mode="overlay">
|
|
941
|
+
* <aside data-sidebar>Navigation</aside>
|
|
926
942
|
* <main>Main content</main>
|
|
927
943
|
* </ng-oat-sidebar>
|
|
928
944
|
* ```
|
|
@@ -933,22 +949,35 @@ declare class NgOatSidebarComponent {
|
|
|
933
949
|
private destroyRef;
|
|
934
950
|
private platformId;
|
|
935
951
|
private doc;
|
|
936
|
-
/**
|
|
952
|
+
/**
|
|
953
|
+
* Layout mode:
|
|
954
|
+
* - `'fixed'` (default) — permanent sidebar on desktop, drawer on mobile.
|
|
955
|
+
* - `'overlay'` — always a slide-out drawer at any screen size.
|
|
956
|
+
*/
|
|
957
|
+
readonly mode: _angular_core.InputSignal<NgOatSidebarMode>;
|
|
958
|
+
/** Whether scroll lock is applied when sidebar is open */
|
|
937
959
|
readonly scrollLock: _angular_core.InputSignal<boolean>;
|
|
938
960
|
readonly initialOpen: _angular_core.InputSignal<boolean>;
|
|
939
961
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
940
962
|
readonly openChange: _angular_core.OutputEmitterRef<boolean>;
|
|
963
|
+
/** Whether the sidebar is in overlay mode */
|
|
964
|
+
readonly isOverlay: _angular_core.Signal<boolean>;
|
|
941
965
|
private cleanupFns;
|
|
942
966
|
constructor();
|
|
943
967
|
open(): void;
|
|
944
968
|
close(): void;
|
|
945
969
|
toggle(): void;
|
|
970
|
+
/**
|
|
971
|
+
* Whether the sidebar should auto-close on outside click / ESC.
|
|
972
|
+
* In overlay mode: always. In fixed mode: only on mobile.
|
|
973
|
+
*/
|
|
974
|
+
private shouldAutoClose;
|
|
946
975
|
private isMobile;
|
|
947
976
|
private lockScroll;
|
|
948
977
|
private restoreScroll;
|
|
949
978
|
private listen;
|
|
950
979
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatSidebarComponent, never>;
|
|
951
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSidebarComponent, "ng-oat-sidebar", never, { "scrollLock": { "alias": "scrollLock"; "required": false; "isSignal": true; }; "initialOpen": { "alias": "initialOpen"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
980
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSidebarComponent, "ng-oat-sidebar", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "scrollLock": { "alias": "scrollLock"; "required": false; "isSignal": true; }; "initialOpen": { "alias": "initialOpen"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
|
|
952
981
|
}
|
|
953
982
|
|
|
954
983
|
interface NgOatTabItem {
|
|
@@ -1109,9 +1138,10 @@ declare class NgOatFileUpload {
|
|
|
1109
1138
|
declare class NgOatInputOtp implements FormValueControl<string> {
|
|
1110
1139
|
readonly length: _angular_core.InputSignal<number>;
|
|
1111
1140
|
readonly separator: _angular_core.InputSignal<number>;
|
|
1112
|
-
readonly disabled: _angular_core.
|
|
1141
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1113
1142
|
readonly mask: _angular_core.InputSignal<boolean>;
|
|
1114
1143
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1144
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1115
1145
|
readonly checked: undefined;
|
|
1116
1146
|
private slotInputRefs;
|
|
1117
1147
|
protected slots: _angular_core.Signal<string[]>;
|
|
@@ -1123,7 +1153,7 @@ declare class NgOatInputOtp implements FormValueControl<string> {
|
|
|
1123
1153
|
private focusSlot;
|
|
1124
1154
|
focus(options?: FocusOptions): void;
|
|
1125
1155
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatInputOtp, never>;
|
|
1126
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInputOtp, "ng-oat-input-otp", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
1156
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInputOtp, "ng-oat-input-otp", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1127
1157
|
}
|
|
1128
1158
|
|
|
1129
1159
|
/**
|
|
@@ -1138,7 +1168,7 @@ declare class NgOatInputOtp implements FormValueControl<string> {
|
|
|
1138
1168
|
*/
|
|
1139
1169
|
declare class NgOatSearchInput implements FormValueControl<string>, OnInit, OnDestroy {
|
|
1140
1170
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1141
|
-
readonly disabled: _angular_core.
|
|
1171
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1142
1172
|
readonly shortcut: _angular_core.InputSignal<string>;
|
|
1143
1173
|
readonly debounceMs: _angular_core.InputSignal<number>;
|
|
1144
1174
|
readonly value: _angular_core.ModelSignal<string>;
|
|
@@ -1160,7 +1190,7 @@ declare class NgOatSearchInput implements FormValueControl<string>, OnInit, OnDe
|
|
|
1160
1190
|
focus(options?: FocusOptions): void;
|
|
1161
1191
|
private focusInput;
|
|
1162
1192
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatSearchInput, never>;
|
|
1163
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSearchInput, "ng-oat-search-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "search": "search"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1193
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSearchInput, "ng-oat-search-input", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shortcut": { "alias": "shortcut"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "value": "valueChange"; "search": "search"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1164
1194
|
}
|
|
1165
1195
|
|
|
1166
1196
|
type NgOatSeparatorOrientation = 'horizontal' | 'vertical';
|
|
@@ -1714,7 +1744,7 @@ declare class NgOatInput implements FormValueControl<string> {
|
|
|
1714
1744
|
private static nextId;
|
|
1715
1745
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1716
1746
|
readonly checked: undefined;
|
|
1717
|
-
readonly disabled: _angular_core.
|
|
1747
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1718
1748
|
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1719
1749
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1720
1750
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
@@ -1724,16 +1754,17 @@ declare class NgOatInput implements FormValueControl<string> {
|
|
|
1724
1754
|
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
1725
1755
|
readonly minLength: _angular_core.InputSignal<number | undefined>;
|
|
1726
1756
|
readonly maxLength: _angular_core.InputSignal<number | undefined>;
|
|
1757
|
+
readonly autocomplete: _angular_core.InputSignal<string | undefined>;
|
|
1727
1758
|
readonly label: _angular_core.InputSignal<string>;
|
|
1728
1759
|
readonly type: _angular_core.InputSignal<NgOatInputType>;
|
|
1729
1760
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1730
1761
|
readonly showErrors: _angular_core.InputSignal<boolean>;
|
|
1731
|
-
protected inputId:
|
|
1762
|
+
protected readonly inputId: string;
|
|
1732
1763
|
onInput(event: Event): void;
|
|
1733
1764
|
onBlur(): void;
|
|
1734
1765
|
focus(options?: FocusOptions): void;
|
|
1735
1766
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatInput, never>;
|
|
1736
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInput, "ng-oat-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1767
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatInput, "ng-oat-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1737
1768
|
}
|
|
1738
1769
|
|
|
1739
1770
|
/**
|
|
@@ -1754,7 +1785,7 @@ declare class NgOatTextarea implements FormValueControl<string> {
|
|
|
1754
1785
|
private static nextId;
|
|
1755
1786
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1756
1787
|
readonly checked: undefined;
|
|
1757
|
-
readonly disabled: _angular_core.
|
|
1788
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1758
1789
|
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
1759
1790
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1760
1791
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
@@ -1766,12 +1797,12 @@ declare class NgOatTextarea implements FormValueControl<string> {
|
|
|
1766
1797
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1767
1798
|
readonly rows: _angular_core.InputSignal<number>;
|
|
1768
1799
|
readonly showErrors: _angular_core.InputSignal<boolean>;
|
|
1769
|
-
protected textareaId:
|
|
1800
|
+
protected readonly textareaId: string;
|
|
1770
1801
|
onInput(event: Event): void;
|
|
1771
1802
|
onBlur(): void;
|
|
1772
1803
|
focus(options?: FocusOptions): void;
|
|
1773
1804
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatTextarea, never>;
|
|
1774
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatTextarea, "ng-oat-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1805
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatTextarea, "ng-oat-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1775
1806
|
}
|
|
1776
1807
|
|
|
1777
1808
|
interface NgOatSelectOption {
|
|
@@ -1800,7 +1831,7 @@ declare class NgOatSelect implements FormValueControl<string> {
|
|
|
1800
1831
|
private static nextId;
|
|
1801
1832
|
readonly checked: undefined;
|
|
1802
1833
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1803
|
-
readonly disabled: _angular_core.
|
|
1834
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1804
1835
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1805
1836
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1806
1837
|
readonly errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
@@ -1809,12 +1840,12 @@ declare class NgOatSelect implements FormValueControl<string> {
|
|
|
1809
1840
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1810
1841
|
readonly options: _angular_core.InputSignal<NgOatSelectOption[]>;
|
|
1811
1842
|
readonly showErrors: _angular_core.InputSignal<boolean>;
|
|
1812
|
-
protected selectId:
|
|
1843
|
+
protected readonly selectId: string;
|
|
1813
1844
|
onChange(event: Event): void;
|
|
1814
1845
|
onBlur(): void;
|
|
1815
1846
|
focus(options?: FocusOptions): void;
|
|
1816
1847
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatSelect, never>;
|
|
1817
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSelect, "ng-oat-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1848
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatSelect, "ng-oat-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1818
1849
|
}
|
|
1819
1850
|
|
|
1820
1851
|
/**
|
|
@@ -1833,13 +1864,14 @@ declare class NgOatSelect implements FormValueControl<string> {
|
|
|
1833
1864
|
*/
|
|
1834
1865
|
declare class NgOatCheckbox implements FormCheckboxControl {
|
|
1835
1866
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
1836
|
-
readonly disabled: _angular_core.
|
|
1867
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1868
|
+
readonly touched: _angular_core.ModelSignal<boolean>;
|
|
1837
1869
|
/** FormCheckboxControl requires `value` to be undefined */
|
|
1838
1870
|
readonly value: undefined;
|
|
1839
1871
|
readonly label: _angular_core.InputSignal<string>;
|
|
1840
1872
|
onChange(event: Event): void;
|
|
1841
1873
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatCheckbox, never>;
|
|
1842
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatCheckbox, "ng-oat-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
1874
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatCheckbox, "ng-oat-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1843
1875
|
}
|
|
1844
1876
|
|
|
1845
1877
|
interface NgOatRadioOption {
|
|
@@ -1874,7 +1906,7 @@ declare class NgOatRadioGroup implements FormValueControl<string> {
|
|
|
1874
1906
|
private static nextId;
|
|
1875
1907
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1876
1908
|
readonly checked: undefined;
|
|
1877
|
-
readonly disabled: _angular_core.
|
|
1909
|
+
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
1878
1910
|
readonly required: _angular_core.InputSignal<boolean>;
|
|
1879
1911
|
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
1880
1912
|
readonly errors: _angular_core.InputSignal<readonly ValidationError.WithOptionalFieldTree[]>;
|
|
@@ -1882,29 +1914,134 @@ declare class NgOatRadioGroup implements FormValueControl<string> {
|
|
|
1882
1914
|
readonly label: _angular_core.InputSignal<string>;
|
|
1883
1915
|
readonly options: _angular_core.InputSignal<NgOatRadioOption[]>;
|
|
1884
1916
|
readonly showErrors: _angular_core.InputSignal<boolean>;
|
|
1885
|
-
protected groupName:
|
|
1917
|
+
protected readonly groupName: string;
|
|
1886
1918
|
onSelect(val: string): void;
|
|
1887
1919
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatRadioGroup, never>;
|
|
1888
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatRadioGroup, "ng-oat-radio-group", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1920
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatRadioGroup, "ng-oat-radio-group", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
1889
1921
|
}
|
|
1890
1922
|
|
|
1891
1923
|
/**
|
|
1892
|
-
* Displays validation errors for
|
|
1893
|
-
* Shows errors only when the field has been touched and is invalid.
|
|
1924
|
+
* Displays validation errors for form fields.
|
|
1894
1925
|
*
|
|
1895
|
-
*
|
|
1926
|
+
* **Signal Forms** — pass the `FieldState` directly:
|
|
1896
1927
|
* ```html
|
|
1897
|
-
* <ng-oat-input label="Email" [formField]="myForm.email" />
|
|
1898
1928
|
* <ng-oat-form-error [control]="myForm.email" />
|
|
1899
1929
|
* ```
|
|
1930
|
+
*
|
|
1931
|
+
* **Reactive / Template-driven** — pass error strings and a visibility flag:
|
|
1932
|
+
* ```html
|
|
1933
|
+
* <ng-oat-form-error [errors]="['Email is required']" [show]="email.touched && email.invalid" />
|
|
1934
|
+
* ```
|
|
1900
1935
|
*/
|
|
1901
1936
|
declare class NgOatFormError {
|
|
1902
|
-
|
|
1937
|
+
/** Signal Forms FieldState — for automatic error display. */
|
|
1938
|
+
readonly control: _angular_core.InputSignal<FieldState<unknown, string | number> | undefined>;
|
|
1939
|
+
/** Plain error message strings — for Reactive / Template-driven forms. */
|
|
1940
|
+
readonly errors: _angular_core.InputSignal<string[]>;
|
|
1941
|
+
/** External visibility flag — for Reactive / Template-driven forms. */
|
|
1942
|
+
readonly show: _angular_core.InputSignal<boolean>;
|
|
1943
|
+
/** Unified list of error message strings. */
|
|
1944
|
+
protected readonly errorMessages: _angular_core.Signal<(string | undefined)[]>;
|
|
1903
1945
|
protected readonly shouldShowError: _angular_core.Signal<boolean>;
|
|
1904
1946
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatFormError, never>;
|
|
1905
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatFormError, "ng-oat-form-error", never, { "control": { "alias": "control"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1947
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgOatFormError, "ng-oat-form-error", never, { "control": { "alias": "control"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1948
|
+
}
|
|
1949
|
+
|
|
1950
|
+
/**
|
|
1951
|
+
* ControlValueAccessor adapter for ng-oat **value-type** components.
|
|
1952
|
+
*
|
|
1953
|
+
* Auto-activates when a Reactive Forms or Template-driven directive is present
|
|
1954
|
+
* (`formControlName`, `[formControl]`, or `[(ngModel)]`).
|
|
1955
|
+
*
|
|
1956
|
+
* Add this directive to your component's `imports` alongside the form component:
|
|
1957
|
+
* ```typescript
|
|
1958
|
+
* imports: [ReactiveFormsModule, NgOatInput, NgOatValueCva]
|
|
1959
|
+
* ```
|
|
1960
|
+
*
|
|
1961
|
+
* ```html
|
|
1962
|
+
* <ng-oat-input label="Email" formControlName="email" />
|
|
1963
|
+
* <ng-oat-input label="Name" [(ngModel)]="name" />
|
|
1964
|
+
* ```
|
|
1965
|
+
*/
|
|
1966
|
+
declare class NgOatValueCva implements ControlValueAccessor {
|
|
1967
|
+
private readonly host;
|
|
1968
|
+
private onChange;
|
|
1969
|
+
private onTouched;
|
|
1970
|
+
/**
|
|
1971
|
+
* Listen for native `input` and `change` events that bubble from the inner
|
|
1972
|
+
* `<input>`, `<textarea>`, or `<select>` element up to the host component.
|
|
1973
|
+
*/
|
|
1974
|
+
onHostValueChange(): void;
|
|
1975
|
+
/** Mark as touched when focus leaves the host element tree. */
|
|
1976
|
+
onHostBlur(): void;
|
|
1977
|
+
writeValue(val: string): void;
|
|
1978
|
+
registerOnChange(fn: (val: string) => void): void;
|
|
1979
|
+
registerOnTouched(fn: () => void): void;
|
|
1980
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1981
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatValueCva, never>;
|
|
1982
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgOatValueCva, "ng-oat-input[formControlName],ng-oat-input[formControl],ng-oat-input[ngModel],ng-oat-textarea[formControlName],ng-oat-textarea[formControl],ng-oat-textarea[ngModel],ng-oat-select[formControlName],ng-oat-select[formControl],ng-oat-select[ngModel],ng-oat-radio-group[formControlName],ng-oat-radio-group[formControl],ng-oat-radio-group[ngModel],ng-oat-search-input[formControlName],ng-oat-search-input[formControl],ng-oat-search-input[ngModel],ng-oat-input-otp[formControlName],ng-oat-input-otp[formControl],ng-oat-input-otp[ngModel]", never, {}, {}, never, never, true, never>;
|
|
1906
1983
|
}
|
|
1907
1984
|
|
|
1985
|
+
/**
|
|
1986
|
+
* ControlValueAccessor adapter for ng-oat **checkbox-type** components.
|
|
1987
|
+
*
|
|
1988
|
+
* Auto-activates when a Reactive Forms or Template-driven directive is present
|
|
1989
|
+
* (`formControlName`, `[formControl]`, or `[(ngModel)]`).
|
|
1990
|
+
*
|
|
1991
|
+
* Add this directive to your component's `imports` alongside the form component:
|
|
1992
|
+
* ```typescript
|
|
1993
|
+
* imports: [ReactiveFormsModule, NgOatCheckbox, NgOatCheckboxCva]
|
|
1994
|
+
* ```
|
|
1995
|
+
*
|
|
1996
|
+
* ```html
|
|
1997
|
+
* <ng-oat-checkbox label="Accept terms" formControlName="accepted" />
|
|
1998
|
+
* <ng-oat-switch label="Alerts" [(ngModel)]="alertsOn" />
|
|
1999
|
+
* ```
|
|
2000
|
+
*/
|
|
2001
|
+
declare class NgOatCheckboxCva implements ControlValueAccessor {
|
|
2002
|
+
private readonly host;
|
|
2003
|
+
private onChange;
|
|
2004
|
+
private onTouched;
|
|
2005
|
+
/**
|
|
2006
|
+
* Listen for native `change` events that bubble from the inner
|
|
2007
|
+
* `<input type="checkbox">` up to the host component.
|
|
2008
|
+
*/
|
|
2009
|
+
onHostChange(): void;
|
|
2010
|
+
/** Mark as touched when focus leaves the host element tree. */
|
|
2011
|
+
onHostBlur(): void;
|
|
2012
|
+
writeValue(val: boolean): void;
|
|
2013
|
+
registerOnChange(fn: (val: boolean) => void): void;
|
|
2014
|
+
registerOnTouched(fn: () => void): void;
|
|
2015
|
+
setDisabledState(isDisabled: boolean): void;
|
|
2016
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgOatCheckboxCva, never>;
|
|
2017
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgOatCheckboxCva, "ng-oat-checkbox[formControlName],ng-oat-checkbox[formControl],ng-oat-checkbox[ngModel],ng-oat-switch[formControlName],ng-oat-switch[formControl],ng-oat-switch[ngModel]", never, {}, {}, never, never, true, never>;
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
/**
|
|
2021
|
+
* Host interface for ng-oat components that carry a string `value`.
|
|
2022
|
+
* Used by the CVA adapter directives to bridge Reactive & Template-driven forms.
|
|
2023
|
+
*/
|
|
2024
|
+
interface NgOatValueHost {
|
|
2025
|
+
readonly value: ModelSignal<string>;
|
|
2026
|
+
readonly touched: ModelSignal<boolean>;
|
|
2027
|
+
readonly disabled: ModelSignal<boolean>;
|
|
2028
|
+
}
|
|
2029
|
+
/**
|
|
2030
|
+
* Host interface for ng-oat checkbox-style components that carry a boolean `checked`.
|
|
2031
|
+
*/
|
|
2032
|
+
interface NgOatCheckboxHost {
|
|
2033
|
+
readonly checked: ModelSignal<boolean>;
|
|
2034
|
+
readonly touched: ModelSignal<boolean>;
|
|
2035
|
+
readonly disabled: ModelSignal<boolean>;
|
|
2036
|
+
}
|
|
2037
|
+
/** Injection token provided by each value-type ng-oat form component. */
|
|
2038
|
+
declare const NG_OAT_VALUE_HOST: InjectionToken<NgOatValueHost>;
|
|
2039
|
+
/** Injection token provided by each checkbox-type ng-oat form component. */
|
|
2040
|
+
declare const NG_OAT_CHECKBOX_HOST: InjectionToken<NgOatCheckboxHost>;
|
|
2041
|
+
|
|
2042
|
+
/** Convenience array — import both CVA adapters at once. */
|
|
2043
|
+
declare const NgOatFormsCva: readonly [typeof NgOatValueCva, typeof NgOatCheckboxCva];
|
|
2044
|
+
|
|
1908
2045
|
/** Upstream Oat version this build is synced to. */
|
|
1909
2046
|
declare const OAT_VERSION = "0.0.0-vendored";
|
|
1910
2047
|
|
|
@@ -1923,5 +2060,5 @@ interface TooltipPositioner {
|
|
|
1923
2060
|
/** DI token for tooltip positioning strategy */
|
|
1924
2061
|
declare const TOOLTIP_POSITIONER: InjectionToken<TooltipPositioner>;
|
|
1925
2062
|
|
|
1926
|
-
export { NG_OAT_CHIP_GROUP, NG_OAT_TOGGLE_GROUP, NgOatAccordion, NgOatAlert, NgOatAvatar, NgOatBadge, NgOatBreadcrumb, NgOatButton, NgOatCard, NgOatCardCarousel, NgOatCardFooter, NgOatCardHeader, NgOatCarousel, NgOatCheckbox, NgOatChip, NgOatChipGroup, NgOatChipInput, NgOatDialog, NgOatDialogComponent, NgOatDropdown, NgOatDropdownComponent, NgOatFileUpload, NgOatFormError, NgOatInput, NgOatInputOtp, NgOatMeter, NgOatPagination, NgOatProgress, NgOatRadioGroup, NgOatSearchInput, NgOatSelect, NgOatSeparator, NgOatSidebar, NgOatSidebarComponent, NgOatSkeleton, NgOatSpinner, NgOatSplitButton, NgOatSwitch, NgOatTable, NgOatTabs, NgOatTabsComponent, NgOatTextarea, NgOatThemeRef, NgOatThemeSelector, NgOatThemeSelectorIcon, NgOatToast, NgOatToggle, NgOatToggleGroup, NgOatToolbar, NgOatToolbarRow, NgOatTooltip, NgOatTooltipComponent, OAT_TOKEN_MAP, OAT_VERSION, OAT_VERSION_TOKEN, TOOLTIP_POSITIONER, provideNgOat, provideNgOatTheme };
|
|
1927
|
-
export type { NgOatAccordionItem, NgOatAlertVariant, NgOatAvatarSize, NgOatBadgeVariant, NgOatButtonSize, NgOatButtonStyle, NgOatButtonVariant, NgOatCarouselAspectRatio, NgOatCarouselOrientation, NgOatCarouselSlide, NgOatChipGroupHost, NgOatChipSize, NgOatChipVariant, NgOatInputType, NgOatOptions, NgOatProductCard, NgOatRadioOption, NgOatSelectOption, NgOatSeparatorOrientation, NgOatSkeletonType, NgOatSpinnerSize, NgOatTabItem, NgOatTableColumn, NgOatTheme, NgOatThemeConfig, NgOatThemeOption, NgOatToastOptions, NgOatToastPlacement, NgOatToastVariant, NgOatToggleGroupHost, NgOatToggleGroupSize, NgOatToggleGroupVariant, NgOatToggleSize, NgOatToggleVariant, NgOatToolbarColor, OatBreadcrumbItem, OatTokens, Placement, TooltipPositioner };
|
|
2063
|
+
export { NG_OAT_CHECKBOX_HOST, NG_OAT_CHIP_GROUP, NG_OAT_TOGGLE_GROUP, NG_OAT_VALUE_HOST, NgOatAccordion, NgOatAlert, NgOatAvatar, NgOatBadge, NgOatBreadcrumb, NgOatButton, NgOatCard, NgOatCardCarousel, NgOatCardFooter, NgOatCardHeader, NgOatCarousel, NgOatCheckbox, NgOatCheckboxCva, NgOatChip, NgOatChipGroup, NgOatChipInput, NgOatDialog, NgOatDialogComponent, NgOatDropdown, NgOatDropdownComponent, NgOatFileUpload, NgOatFormError, NgOatFormsCva, NgOatInput, NgOatInputOtp, NgOatMeter, NgOatPagination, NgOatProgress, NgOatRadioGroup, NgOatSearchInput, NgOatSelect, NgOatSeparator, NgOatSidebar, NgOatSidebarComponent, NgOatSkeleton, NgOatSpinner, NgOatSplitButton, NgOatSwitch, NgOatTable, NgOatTabs, NgOatTabsComponent, NgOatTextarea, NgOatThemeRef, NgOatThemeSelector, NgOatThemeSelectorIcon, NgOatToast, NgOatToggle, NgOatToggleGroup, NgOatToolbar, NgOatToolbarRow, NgOatTooltip, NgOatTooltipComponent, NgOatValueCva, OAT_TOKEN_MAP, OAT_VERSION, OAT_VERSION_TOKEN, TOOLTIP_POSITIONER, provideNgOat, provideNgOatTheme };
|
|
2064
|
+
export type { NgOatAccordionItem, NgOatAlertVariant, NgOatAvatarSize, NgOatBadgeVariant, NgOatButtonSize, NgOatButtonStyle, NgOatButtonVariant, NgOatCarouselAspectRatio, NgOatCarouselOrientation, NgOatCarouselSlide, NgOatCheckboxHost, NgOatChipGroupHost, NgOatChipSize, NgOatChipVariant, NgOatInputType, NgOatOptions, NgOatProductCard, NgOatRadioOption, NgOatSelectOption, NgOatSeparatorOrientation, NgOatSkeletonType, NgOatSpinnerSize, NgOatTabItem, NgOatTableColumn, NgOatTheme, NgOatThemeConfig, NgOatThemeOption, NgOatToastOptions, NgOatToastPlacement, NgOatToastVariant, NgOatToggleGroupHost, NgOatToggleGroupSize, NgOatToggleGroupVariant, NgOatToggleSize, NgOatToggleVariant, NgOatToolbarColor, NgOatValueHost, OatBreadcrumbItem, OatTokens, Placement, TooltipPositioner };
|